Skip to content
  1. Jul 09, 2011
    • Jakob Stoklund Olesen's avatar
      Hoist spills within a basic block. · bf6afec3
      Jakob Stoklund Olesen authored
      Try to move spills as early as possible in their basic block. This can
      help eliminate interferences by shortening the live range being
      spilled.
      
      This fixes PR10221.
      
      llvm-svn: 134776
      bf6afec3
  2. Jul 05, 2011
    • Jakob Stoklund Olesen's avatar
      Fix PR10277. · bbad3bce
      Jakob Stoklund Olesen authored
      Remat during spilling triggers dead code elimination. If a phi-def
      becomes unused, that may also cause live ranges to split into separate
      connected components.
      
      This type of splitting is different from normal live range splitting. In
      particular, there may not be a common original interval.
      
      When the split range is its own original, make sure that the new
      siblings are also their own originals. The range being split cannot be
      used as an original since it doesn't cover the new siblings.
      
      llvm-svn: 134413
      bbad3bce
  3. Jun 30, 2011
  4. May 11, 2011
  5. May 05, 2011
  6. Apr 30, 2011
  7. Apr 21, 2011
  8. Apr 18, 2011
  9. Mar 31, 2011
    • Jakob Stoklund Olesen's avatar
      Pick a conservative register class when creating a small live range for remat. · ae044c06
      Jakob Stoklund Olesen authored
      The rematerialized instruction may require a more constrained register class
      than the register being spilled. In the test case, the spilled register has been
      inflated to the DPR register class, but we are rematerializing a load of the
      ssub_0 sub-register which only exists for DPR_VFP2 registers.
      
      The register class is reinflated after spilling, so the conservative choice is
      only temporary.
      
      llvm-svn: 128610
      ae044c06
  10. Mar 29, 2011
  11. Mar 26, 2011
  12. Mar 20, 2011
  13. Mar 18, 2011
    • Jakob Stoklund Olesen's avatar
      Hoist spills when the same value is known to be in less loopy sibling registers. · 27320cb8
      Jakob Stoklund Olesen authored
      Stack slot real estate is virtually free compared to registers, so it is
      advantageous to spill earlier even though the same value is now kept in both a
      register and a stack slot.
      
      Also eliminate redundant spills by extending the stack slot live range
      underneath reloaded registers.
      
      This can trigger a dead code elimination, removing copies and even reloads that
      were only feeding spills.
      
      llvm-svn: 127868
      27320cb8
  14. Mar 17, 2011
  15. Mar 15, 2011
    • Jakob Stoklund Olesen's avatar
      Trace back through sibling copies to hoist spills and find rematerializable defs. · a0d5ec10
      Jakob Stoklund Olesen authored
      After live range splitting, an original value may be available in multiple
      registers. Tracing back through the registers containing the same value, find
      the best place to insert a spill, determine if the value has already been
      spilled, or discover a reaching def that may be rematerialized.
      
      This is only the analysis part. The information is not used for anything yet.
      
      llvm-svn: 127698
      a0d5ec10
  16. Mar 14, 2011
  17. Mar 13, 2011
  18. Mar 12, 2011
  19. Mar 10, 2011
  20. Mar 09, 2011
  21. Mar 07, 2011
  22. Feb 24, 2011
  23. Feb 23, 2011
  24. Feb 09, 2011
  25. Feb 08, 2011
  26. Jan 09, 2011
  27. Dec 18, 2010
  28. Dec 10, 2010
  29. Nov 15, 2010
  30. Nov 11, 2010
  31. Nov 10, 2010
Loading