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 12, 2009
  3. May 30, 2009
  4. May 14, 2009
  5. May 13, 2009
  6. Feb 05, 2009
  7. Dec 03, 2008
  8. Nov 14, 2008
  9. Nov 13, 2008
  10. Nov 12, 2008
  11. Nov 07, 2008
  12. Nov 06, 2008
  13. Nov 05, 2008
  14. Nov 03, 2008
  15. Oct 31, 2008
  16. Oct 14, 2008
  17. Oct 12, 2008
  18. Oct 07, 2008
  19. Sep 17, 2008
  20. Sep 13, 2008
  21. Sep 12, 2008
  22. Sep 01, 2008
  23. Aug 31, 2008
  24. Aug 29, 2008
  25. Jul 27, 2008
  26. Mar 15, 2008
Loading