Skip to content
  1. Jul 06, 2011
  2. Jul 04, 2011
    • Rafael Espindola's avatar
      Move early tail duplication earlier. · c74d9378
      Rafael Espindola authored
      This fixes the issue noted in PR10251 where early tail dup of bbs with
      indirectbr would cause a bb to be duplicated into a loop preheader
      and then into its predecessors, creating phi nodes with identical
      operands just before register allocation.
      
      This helps with jsinterp.o size (__TEXT goes from 163568 to 126656)
      and a bit with performance 1.005x faster on sunspider (jits still enabled).
      
      The result on webkit with the jit disabled is more significant: 1.021x faster.
      
      llvm-svn: 134372
      c74d9378
  3. Jun 17, 2011
    • Bill Wendling's avatar
      b74b9de1
    • Bill Wendling's avatar
      Add an option that allows one to "decode" the LSDA. · e303114b
      Bill Wendling authored
      The LSDA is a bit difficult for the non-initiated to read. Even with comments,
      it's not always clear what's going on. This wraps the ASM streamer in a class
      that retains the LSDA and then emits a human-readable description of what's
      going on in it.
      
      So instead of having to make sense of:
      
      Lexception1:
              .byte   255
              .byte   155
              .byte   168
              .space  1
              .byte   3
              .byte   26
      Lset0 = Ltmp7-Leh_func_begin1
            .long     Lset0
      Lset1 = Ltmp812-Ltmp7
            .long     Lset1
      Lset2 = Ltmp913-Leh_func_begin1
            .long     Lset2
            .byte     3
      Lset3 = Ltmp812-Leh_func_begin1
            .long     Lset3
      Lset4 = Leh_func_end1-Ltmp812
            .long     Lset4
            .long     0
            .byte     0
            .byte     1
            .byte     0
            .byte     2
            .byte     125
            .long     __ZTIi@GOTPCREL+4
            .long     __ZTIPKc@GOTPCREL+4
      
      you can read this instead:
      
      ## Exception Handling Table: Lexception1
      ##  @LPStart Encoding: omit
      ##    @TType Encoding: indirect pcrel sdata4
      ##        @TType Base: 40 bytes
      ## @CallSite Encoding: udata4
      ## @Action Table Size: 26 bytes
      
      ## Action 1:
      ##   A throw between Ltmp7 and Ltmp812 jumps to Ltmp913 on an exception.
      ##     For type(s):  __ZTIi@GOTPCREL+4 __ZTIPKc@GOTPCREL+4
      ## Action 2:
      ##   A throw between Ltmp812 and Leh_func_end1 does not have a landing pad.
      
      llvm-svn: 133286
      e303114b
  4. Jun 16, 2011
  5. May 28, 2011
  6. May 22, 2011
  7. May 06, 2011
  8. Apr 30, 2011
  9. Mar 29, 2011
  10. Mar 21, 2011
  11. Mar 18, 2011
    • Jim Grosbach's avatar
      Beginnings of MC-JIT code generation. · 7b162490
      Jim Grosbach authored
      Proof-of-concept code that code-gens a module to an in-memory MachO object.
      This will be hooked up to a run-time dynamic linker library (see: llvm-rtdyld
      for similarly conceptual work for that part) which will take the compiled
      object and link it together with the rest of the system, providing back to the
      JIT a table of available symbols which will be used to respond to the
      getPointerTo*() queries.
      
      llvm-svn: 127916
      7b162490
  12. Mar 05, 2011
  13. Feb 28, 2011
  14. Jan 23, 2011
  15. Jan 14, 2011
  16. Dec 18, 2010
  17. Dec 16, 2010
  18. Dec 10, 2010
  19. Nov 19, 2010
    • Rafael Espindola's avatar
      Change some methods in MCDwarf.cpp to be able to handle an arbitrary · b58867cc
      Rafael Espindola authored
      MCStreamer instead of just MCObjectStreamer. Address changes cannot
      be as efficient as we have to use DW_LNE_set_addres, but at least
      most of the logic is shared.
      
      This will be used so that, with CodeGen still using EmitDwarfLocDirective,
      llvm-gcc is able to produce debug_line sections without needing an
      assembler that supports .loc.
      
      llvm-svn: 119777
      b58867cc
  20. Nov 18, 2010
  21. Nov 17, 2010
    • Evan Cheng's avatar
      Remove ARM isel hacks that fold large immediates into a pair of add, sub, and, · 7f8ab6ee
      Evan Cheng authored
      and xor. The 32-bit move immediates can be hoisted out of loops by machine
      LICM but the isel hacks were preventing them.
      
      Instead, let peephole optimization pass recognize registers that are defined by
      immediates and the ARM target hook will fold the immediates in.
      
      Other changes include 1) do not fold and / xor into cmp to isel TST / TEQ
      instructions if there are multiple uses. This happens when the 'and' is live
      out, machine sink would have sinked the computation and that ends up pessimizing
      code. The peephole pass would recognize situations where the 'and' can be
      toggled to define CPSR and eliminate the comparison anyway.
      
      2) Move peephole pass to after machine LICM, sink, and CSE to avoid blocking
      important optimizations.
      
      rdar://8663787, rdar://8241368
      
      llvm-svn: 119548
      7f8ab6ee
  22. Nov 16, 2010
  23. Nov 08, 2010
  24. Oct 18, 2010
  25. Oct 08, 2010
  26. Aug 31, 2010
  27. Aug 24, 2010
  28. Aug 14, 2010
    • Jim Grosbach's avatar
      Add a local stack object block allocation pass. This is still an · a030fa52
      Jim Grosbach authored
      experimental pass that allocates locals relative to one another before
      register allocation and then assigns them to actual stack slots as a block
      later in PEI. This will eventually allow targets with limited index offset
      range to allocate additional base registers (not just FP and SP) to
      more efficiently reference locals, as well as handle situations where
      locals cannot be referenced via SP or FP at all (dynamic stack realignment
      together with variable sized objects, for example). It's currently
      incomplete and almost certainly buggy. Work in progress.
      
      Disabled by default and gated via the -enable-local-stack-alloc command
      line option.
      
      rdar://8277890
      
      llvm-svn: 111059
      a030fa52
  29. Aug 13, 2010
  30. Aug 10, 2010
  31. Aug 06, 2010
    • Bill Wendling's avatar
      Add the Optimize Compares pass (disabled by default). · 7de9d52c
      Bill Wendling authored
      This pass tries to remove comparison instructions when possible. For instance,
      if you have this code:
      
         sub r1, 1
         cmp r1, 0
         bz  L1
      
      and "sub" either sets the same flag as the "cmp" instruction or could be
      converted to set the same flag, then we can eliminate the "cmp" instruction all
      together. This is a important for ARM where the ALU instructions could set the
      CPSR flag, but need a special suffix ('s') to do so.
      
      llvm-svn: 110423
      7de9d52c
  32. Aug 05, 2010
  33. Aug 04, 2010
  34. Jul 29, 2010
Loading