Skip to content
  1. Dec 21, 2011
  2. Aug 12, 2011
  3. Aug 11, 2011
    • Jakob Stoklund Olesen's avatar
      Remove more dead code. · da4f0eb1
      Jakob Stoklund Olesen authored
      collectInterferingVRegs will be the primary function for interference
      checks.
      
      llvm-svn: 137354
      da4f0eb1
    • Jakob Stoklund Olesen's avatar
      Remove some dead code. · 05ff9d1f
      Jakob Stoklund Olesen authored
      The InterferenceResult iterator turned out to be less important than we
      thought it would be.  LiveIntervalUnion clients want higher level
      information, like the list of interfering virtual registers.
      
      llvm-svn: 137346
      05ff9d1f
  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 11, 2011
  6. Feb 09, 2011
  7. Jan 09, 2011
  8. Dec 18, 2010
  9. Dec 17, 2010
  10. Dec 16, 2010
  11. Dec 14, 2010
  12. Dec 09, 2010
  13. Dec 08, 2010
  14. Dec 01, 2010
  15. Nov 10, 2010
  16. Nov 09, 2010
  17. Nov 08, 2010
  18. Oct 27, 2010
  19. Oct 26, 2010
  20. Oct 23, 2010
    • Chandler Carruth's avatar
      Fix a likely bug in an assertion by adding parentheses around '||'. This bug · 9733158b
      Chandler Carruth authored
      was found by a GCC warning. ;]
      
      llvm-svn: 117199
      9733158b
    • 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