Skip to content
  1. Jun 29, 2009
    • Evan Cheng's avatar
      Implement Thumb2 ldr. · b23b50d5
      Evan Cheng authored
      After much back and forth, I decided to deviate from ARM design and split LDR into 4 instructions (r + imm12, r + imm8, r + r << imm12, constantpool). The advantage of this is 1) it follows the latest ARM technical manual, and 2) makes it easier to reduce the width of the instruction later. The down side is this creates more inconsistency between the two sub-targets. We should split ARM LDR instruction in a similar fashion later. I've added a README entry for this.
      
      llvm-svn: 74420
      b23b50d5
  2. Jun 26, 2009
  3. Jun 25, 2009
  4. Jun 23, 2009
  5. Jun 22, 2009
  6. Jun 19, 2009
  7. Jun 17, 2009
  8. Jun 15, 2009
    • Anton Korobeynikov's avatar
      Rename methods for the sake of consistency. · 409105fc
      Anton Korobeynikov authored
      llvm-svn: 73428
      409105fc
    • Evan Cheng's avatar
      Part 1. · 1283c6a0
      Evan Cheng authored
      - Change register allocation hint to a pair of unsigned integers. The hint type is zero (which means prefer the register specified as second part of the pair) or entirely target dependent.
      - Allow targets to specify alternative register allocation orders based on allocation hint.
      
      Part 2.
      - Use the register allocation hint system to implement more aggressive load / store multiple formation.
      - Aggressively form LDRD / STRD. These are formed *before* register allocation. It has to be done this way to shorten live interval of base and offset registers. e.g.
      v1025 = LDR v1024, 0
      v1026 = LDR v1024, 0
      =>
      v1025,v1026 = LDRD v1024, 0
      
      If this transformation isn't done before allocation, v1024 will overlap v1025 which means it more difficult to allocate a register pair.
      
      - Even with the register allocation hint, it may not be possible to get the desired allocation. In that case, the post-allocation load / store multiple pass must fix the ldrd / strd instructions. They can either become ldm / stm instructions or back to a pair of ldr / str instructions.
      
      This is work in progress, not yet enabled.
      
      llvm-svn: 73381
      1283c6a0
  9. Jun 12, 2009
  10. May 30, 2009
  11. May 14, 2009
  12. May 13, 2009
  13. Feb 05, 2009
  14. Dec 03, 2008
  15. Nov 14, 2008
  16. Nov 13, 2008
  17. Nov 12, 2008
  18. Nov 07, 2008
  19. Nov 06, 2008
  20. Nov 05, 2008
  21. Nov 03, 2008
  22. Oct 31, 2008
  23. Oct 14, 2008
  24. Oct 12, 2008
  25. Oct 07, 2008
Loading