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