Skip to content
  1. Jun 15, 2009
    • 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
  2. Jun 13, 2009
  3. Jun 12, 2009
  4. Jun 09, 2009
  5. Jun 08, 2009
  6. Jun 06, 2009
  7. Jun 05, 2009
  8. Jun 04, 2009
  9. Jun 03, 2009
  10. Jun 01, 2009
  11. May 30, 2009
  12. May 25, 2009
  13. May 23, 2009
  14. May 22, 2009
  15. May 20, 2009
  16. May 19, 2009
  17. May 18, 2009
  18. May 14, 2009
  19. May 13, 2009
  20. May 12, 2009
Loading