Skip to content
  1. Mar 11, 2011
  2. Mar 08, 2011
  3. Mar 03, 2011
  4. Mar 02, 2011
  5. Jan 19, 2011
    • Jakob Stoklund Olesen's avatar
      Implement RAGreedy::splitAroundRegion and remove loop splitting. · 9fb04015
      Jakob Stoklund Olesen authored
      Region splitting includes loop splitting as a subset, and it is more generic.
      The splitting heuristics for variables that are live in more than one block are
      now:
      
      1. Try to create a region that covers multiple basic blocks.
      2. Try to create a new live range for each block with multiple uses.
      3. Spill.
      
      Steps 2 and 3 are similar to what the standard spiller is doing.
      
      llvm-svn: 123853
      9fb04015
  6. Jan 09, 2011
  7. Dec 21, 2010
  8. Dec 19, 2010
  9. Oct 29, 2010
  10. Oct 09, 2010
  11. Oct 08, 2010
  12. Oct 05, 2010
  13. Oct 02, 2010
  14. Sep 25, 2010
  15. Sep 21, 2010
  16. Sep 08, 2010
  17. Sep 04, 2010
    • Jakob Stoklund Olesen's avatar
      Remove dead code. · 313358fe
      Jakob Stoklund Olesen authored
      Clobber ranges are no longer used when joining physical registers.
      Instead, all aliases are checked for interference.
      
      llvm-svn: 113084
      313358fe
  18. Aug 12, 2010
  19. Aug 10, 2010
    • Jakob Stoklund Olesen's avatar
      Transpose the calculation of spill weights such that we are calculating one · e00c49da
      Jakob Stoklund Olesen authored
      register at a time. This turns out to be slightly faster than iterating over
      instructions, but more importantly, it allows us to compute spill weights for
      new registers created after the spill weight pass has run.
      
      Also compute the allocation hint at the same time as the spill weight. This
      allows us to use the spill weight as a cost metric for copies, and choose the
      most profitable hint if there is more than one possibility.
      
      The new hints provide a very small (< 0.1%) but universal code size improvement.
      
      llvm-svn: 110631
      e00c49da
  20. Aug 06, 2010
  21. Aug 02, 2010
  22. Jul 26, 2010
  23. Jul 13, 2010
  24. Jun 29, 2010
  25. Jun 26, 2010
    • Jakob Stoklund Olesen's avatar
      Don't track kills in VNInfo. Use interval ends instead. · 55d738e2
      Jakob Stoklund Olesen authored
      The VNInfo.kills vector was almost unused except for all the code keeping it
      updated. The few places using it were easily rewritten to check for interval
      ends instead.
      
      The two new methods LiveInterval::killedAt and killedInRange are replacements.
      
      This brings us down to 3 independent data structures tracking kills.
      
      llvm-svn: 106905
      55d738e2
  26. Jun 25, 2010
  27. Jun 23, 2010
Loading