Skip to content
  1. Nov 07, 2009
    • Jeffrey Yasskin's avatar
      Make the need-stub variables accurate and consistent. In the case of · db5f24ce
      Jeffrey Yasskin authored
      MachineRelocations, "stub" always refers to a far-call stub or a
      load-a-faraway-global stub, so this patch adds "Far" to the term. (Other stubs
      are used for lazy compilation and dlsym address replacement.) The variable was
      also inconsistent between the positive and negative sense, and the positive
      sense ("NeedStub") was more demanding than is accurate (since a nearby-enough
      function can be called directly even if the platform often requires a stub).
      Since the negative sense causes double-negatives, I switched to
      "MayNeedFarStub" globally.
      
      llvm-svn: 86363
      db5f24ce
  2. Nov 02, 2009
  3. Oct 25, 2009
  4. Oct 06, 2009
  5. Oct 05, 2009
  6. Oct 01, 2009
  7. Sep 28, 2009
  8. Sep 21, 2009
  9. Sep 10, 2009
  10. Aug 29, 2009
  11. Aug 23, 2009
  12. Aug 22, 2009
  13. Aug 13, 2009
  14. Aug 11, 2009
  15. Aug 03, 2009
  16. Jul 25, 2009
  17. Jul 22, 2009
  18. Jul 17, 2009
  19. Jul 14, 2009
  20. Jul 12, 2009
  21. Jul 08, 2009
  22. Jul 07, 2009
  23. Jul 06, 2009
  24. Jun 30, 2009
  25. Jun 26, 2009
  26. 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
  27. Jun 01, 2009
  28. May 30, 2009
  29. Dec 10, 2008
  30. Nov 20, 2008
Loading