Skip to content
  1. Mar 05, 2011
    • Jakob Stoklund Olesen's avatar
      Work around a coalescer bug. · 27e0a4ab
      Jakob Stoklund Olesen authored
      The coalescer can in very rare cases leave too large live intervals around after
      rematerializing cheap-as-a-move instructions.
      
      Linear scan doesn't really care, but live range splitting gets very confused
      when a live range is killed by a ghost instruction.
      
      I will fix this properly in the coalescer after 2.9 branches.
      
      llvm-svn: 127096
      27e0a4ab
  2. Mar 04, 2011
  3. Mar 03, 2011
  4. Mar 02, 2011
  5. Feb 23, 2011
  6. Feb 22, 2011
  7. Feb 19, 2011
  8. Feb 10, 2011
  9. Feb 09, 2011
  10. Feb 08, 2011
  11. Feb 04, 2011
  12. Feb 03, 2011
  13. Jan 26, 2011
  14. Jan 20, 2011
  15. 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
  16. Jan 18, 2011
  17. Jan 04, 2011
  18. Dec 22, 2010
  19. Dec 21, 2010
    • Jakob Stoklund Olesen's avatar
      Add EdgeBundles to SplitKit. · 2530cd2a
      Jakob Stoklund Olesen authored
      Edge bundles is an annotation on the CFG that turns it into a bipartite directed
      graph where each basic block is connected to an outgoing and an ingoing bundle.
      These bundles are useful for identifying regions of the CFG for live range
      splitting.
      
      llvm-svn: 122301
      2530cd2a
Loading