Skip to content
  1. Dec 21, 2011
  2. Aug 12, 2011
  3. Aug 11, 2011
  4. Jul 08, 2011
    • Jakob Stoklund Olesen's avatar
      Be more aggressive about following hints. · 4931bbc6
      Jakob Stoklund Olesen authored
      RAGreedy::tryAssign will now evict interference from the preferred
      register even when another register is free.
      
      To support this, add the EvictionCost struct that counts how many hints
      are broken by an eviction. We don't want to break one hint just to
      satisfy another.
      
      Rename canEvict to shouldEvict, and add the first bit of eviction policy
      that doesn't depend on spill weights: Always make room in the preferred
      register as long as the evictees can be split and aren't already
      assigned to their preferred register.
      
      Also make the CSR avoidance more accurate. When looking for a cheaper
      register it is OK to use a new volatile register. Only CSR aliases that
      have never been used before should be avoided.
      
      llvm-svn: 134735
      4931bbc6
  5. Apr 12, 2011
  6. Apr 11, 2011
  7. Mar 31, 2011
  8. Mar 16, 2011
  9. Mar 13, 2011
  10. Feb 09, 2011
  11. Dec 17, 2010
  12. Dec 14, 2010
  13. Dec 09, 2010
  14. Dec 08, 2010
  15. Dec 07, 2010
  16. Dec 01, 2010
  17. Nov 11, 2010
  18. Nov 10, 2010
  19. Nov 09, 2010
  20. Nov 08, 2010
  21. Oct 27, 2010
  22. Oct 26, 2010
  23. Oct 23, 2010
    • Andrew Trick's avatar
      This is a prototype of an experimental register allocation · 1c24605a
      Andrew Trick authored
      framework. It's purpose is not to improve register allocation per se,
      but to make it easier to develop powerful live range splitting. I call
      it the basic allocator because it is as simple as a global allocator
      can be but provides the building blocks for sophisticated register
      allocation with live range splitting. 
      
      A minimal implementation is provided that trivially spills whenever it
      runs out of registers. I'm checking in now to get high-level design
      and style feedback. I've only done minimal testing. The next step is
      implementing a "greedy" allocation algorithm that does some register
      reassignment and makes better splitting decisions.
      
      llvm-svn: 117174
      1c24605a
Loading