Skip to content
  1. Sep 30, 2011
  2. Sep 28, 2011
    • Bill Wendling's avatar
      Don't conditionalize execution of the SjLj EH prepare pass. · e6138e3a
      Bill Wendling authored
      We may need an SjLj EH preparation pass for some call site information, at least
      in the short term.
      
      llvm-svn: 140674
      e6138e3a
    • Bill Wendling's avatar
      This is the start of the new SjLj EH preparation pass, which will replace the · 354ff9e3
      Bill Wendling authored
      current IR-level pass.
      
      The old SjLj EH pass has some problems, especially with the new EH model. Most
      significantly, it violates some of the new restrictions the new model has. For
      instance, the 'dispatch' table wants to jump to the landing pad, but we cannot
      allow that because only an invoke's unwind edge can jump to a landing pad. This
      requires us to mangle the code something awful. In addition, we need to keep the
      now dead landingpad instructions around instead of CSE'ing them because the
      DWARF emitter uses that information (they are dead because no control flow edge
      will execute them - the control flow edge from an invoke's unwind is superceded
      by the edge coming from the dispatch).
      
      Basically, this pass belongs not at the IR level where SSA is king, but at the
      code-gen level, where we have more flexibility.
      
      llvm-svn: 140646
      354ff9e3
  3. Sep 25, 2011
  4. Sep 07, 2011
  5. Aug 24, 2011
  6. Aug 19, 2011
  7. Jul 26, 2011
  8. Jul 20, 2011
  9. Jul 19, 2011
  10. Jul 18, 2011
  11. Jul 15, 2011
  12. Jul 11, 2011
    • Evan Cheng's avatar
      - Eliminate MCCodeEmitter's dependency on TargetMachine. It now uses MCInstrInfo · c5e6d2f5
      Evan Cheng authored
        and MCSubtargetInfo.
      - Added methods to update subtarget features (used when targets automatically
        detect subtarget features or switch modes).
      - Teach X86Subtarget to update MCSubtargetInfo features bits since the
        MCSubtargetInfo layer can be shared with other modules.
      - These fixes .code 16 / .code 32 support since mode switch is updated in
        MCSubtargetInfo so MC code emitter can do the right thing.
      
      llvm-svn: 134884
      c5e6d2f5
  13. Jul 08, 2011
    • Evan Cheng's avatar
      Eliminate asm parser's dependency on TargetMachine: · 4d1ca96b
      Evan Cheng authored
      - Each target asm parser now creates its own MCSubtatgetInfo (if needed).
      - Changed AssemblerPredicate to take subtarget features which tablegen uses
        to generate asm matcher subtarget feature queries. e.g.
        "ModeThumb,FeatureThumb2" is translated to
        "(Bits & ModeThumb) != 0 && (Bits & FeatureThumb2) != 0".
      
      llvm-svn: 134678
      4d1ca96b
  14. Jul 06, 2011
  15. 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
  16. 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
  17. Jun 16, 2011
  18. May 28, 2011
  19. May 22, 2011
  20. May 06, 2011
  21. Apr 30, 2011
  22. Mar 29, 2011
  23. Mar 21, 2011
  24. 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
  25. Mar 05, 2011
  26. Feb 28, 2011
  27. Jan 23, 2011
  28. Jan 14, 2011
  29. Dec 18, 2010
  30. Dec 16, 2010
  31. Dec 10, 2010
  32. 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
Loading