Skip to content
  1. Feb 08, 2011
  2. Feb 04, 2011
  3. Feb 03, 2011
  4. Jan 26, 2011
  5. Jan 20, 2011
  6. 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
  7. Jan 18, 2011
  8. Jan 04, 2011
  9. Dec 22, 2010
  10. 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
  11. Dec 18, 2010
  12. Dec 15, 2010
  13. Nov 11, 2010
  14. Nov 10, 2010
    • Jakob Stoklund Olesen's avatar
      Basic rematerialization during splitting. · 6ee7d9aa
      Jakob Stoklund Olesen authored
      Whenever splitting wants to insert a copy, it checks if the value can be
      rematerialized cheaply instead.
      
      Missing features:
      - Delete instructions when all uses have been rematerialized.
      - Truncate live ranges to the remaining uses after rematerialization.
      
      llvm-svn: 118702
      6ee7d9aa
  15. Nov 03, 2010
  16. Nov 02, 2010
  17. Nov 01, 2010
  18. Oct 30, 2010
  19. Oct 29, 2010
  20. Oct 28, 2010
  21. Oct 27, 2010
  22. Oct 23, 2010
    • Jakob Stoklund Olesen's avatar
      Be more strict about detecting multi-use blocks for isolation. · 4cf8fe31
      Jakob Stoklund Olesen authored
      When a block has exactly two uses and the register is both live-in and live-out,
      don't isolate the block. We would be inserting two copies, so we haven't really
      made any progress.
      
      If the live-in and live-out values separate into disconnected components after
      splitting, we would be making progress. We can't detect that for now.
      
      llvm-svn: 117169
      4cf8fe31
  23. Oct 22, 2010
  24. Oct 21, 2010
Loading