Skip to content
  1. Oct 18, 2009
    • Evan Cheng's avatar
      -Revert parts of 84326 and 84411. Distinquishing between fixed and non-fixed · 0e9d9ca8
      Evan Cheng authored
      stack slots and giving them different PseudoSourceValue's did not fix the
      problem of post-alloc scheduling miscompiling llvm itself.
      - Apply Dan's conservative workaround by assuming any non fixed stack slots can
      alias other memory locations. This means a load from spill slot #1 cannot 
      move above a store of spill slot #2. 
      - Enable post-alloc scheduling for x86 at optimization leverl Default and above.
      
      llvm-svn: 84424
      0e9d9ca8
  2. Oct 17, 2009
  3. Oct 07, 2009
  4. Sep 28, 2009
  5. Sep 13, 2009
  6. Sep 08, 2009
  7. Aug 27, 2009
  8. Aug 22, 2009
  9. Aug 11, 2009
  10. Aug 10, 2009
  11. Aug 08, 2009
  12. Aug 07, 2009
  13. Aug 05, 2009
  14. Aug 02, 2009
  15. Aug 01, 2009
  16. Jul 31, 2009
  17. Jul 28, 2009
    • Evan Cheng's avatar
      - More refactoring. This gets rid of all of the getOpcode calls. · 780748d5
      Evan Cheng authored
      - This change also makes it possible to switch between ARM / Thumb on a
        per-function basis.
      - Fixed thumb2 routine which expand reg + arbitrary immediate. It was using
        using ARM so_imm logic.
      - Use movw and movt to do reg + imm when profitable.
      - Other code clean ups and minor optimizations.
      
      llvm-svn: 77300
      780748d5
  18. Jul 27, 2009
  19. Jul 25, 2009
    • Evan Cheng's avatar
      Change Thumb2 jumptable codegen to one that uses two level jumps: · f3a1fce8
      Evan Cheng authored
      Before:
            adr r12, #LJTI3_0_0
            ldr pc, [r12, +r0, lsl #2]
      LJTI3_0_0:
            .long    LBB3_24
            .long    LBB3_30
            .long    LBB3_31
            .long    LBB3_32
      
      After:
            adr r12, #LJTI3_0_0
            add pc, r12, +r0, lsl #2
      LJTI3_0_0:
            b.w    LBB3_24
            b.w    LBB3_30
            b.w    LBB3_31
            b.w    LBB3_32
      
      This has several advantages.
      1. This will make it easier to optimize this to a TBB / TBH instruction +
         (smaller) table.
      2. This eliminate the need for ugly asm printer hack to force the address
         into thumb addresses (bit 0 is one).
      3. Same codegen for pic and non-pic.
      4. This eliminate the need to align the table so constantpool island pass
         won't have to over-estimate the size.
      
      Based on my calculation, the later is probably slightly faster as well since
      ldr pc with shifter address is very slow. That is, it should be a win as long
      as the HW implementation can do a reasonable job of branch predict the second
      branch.
      
      llvm-svn: 77024
      f3a1fce8
  20. Jul 24, 2009
Loading