Skip to content
  1. Oct 05, 2010
  2. Sep 22, 2010
    • Jakob Stoklund Olesen's avatar
      Build the complement interval dupli after the split intervals instead of · 6f8bd42e
      Jakob Stoklund Olesen authored
      creating it before and subtracting split ranges.
      
      This way, the SSA update code in LiveIntervalMap can properly create and use new
      phi values in dupli. Now it is possible to create split regions where a value
      escapes along two different CFG edges, creating phi values outside the split
      region.
      
      This is a work in progress and probably quite broken.
      
      llvm-svn: 114492
      6f8bd42e
  3. Sep 16, 2010
    • Jakob Stoklund Olesen's avatar
      Use the value mapping provided by LiveIntervalMap. This simplifies the code a · 9855109b
      Jakob Stoklund Olesen authored
      great deal because we don't have to worry about maintaining SSA form.
      
      Unconditionally copy back to dupli when the register is live out of the split
      range, even if the live-out value was defined outside the range. Skipping the
      back-copy only makes sense when the live range is going to spill outside the
      split range, and we don't know that it will. Besides, this was a hack to avoid
      SSA update issues.
      
      Clear up some confusion about the end point of a half-open LiveRange. Methinks
      LiveRanges need to be closed so both start and end are included in the range.
      The low bits of a SlotIndex are symbolic, so a half-open range doesn't really
      make sense. This would be a pervasive change, though.
      
      llvm-svn: 114043
      9855109b
  4. Sep 14, 2010
  5. Aug 18, 2010
  6. Aug 14, 2010
    • Jakob Stoklund Olesen's avatar
      Clean up the Spiller.h interface. · 27e1f265
      Jakob Stoklund Olesen authored
      The earliestStart argument is entirely specific to linear scan allocation, and
      can be easily calculated by RegAllocLinearScan.
      
      Replace std::vector with SmallVector.
      
      llvm-svn: 111055
      27e1f265
  7. Aug 13, 2010
  8. Aug 12, 2010
    • Jakob Stoklund Olesen's avatar
      Implement single block splitting. · 622848b2
      Jakob Stoklund Olesen authored
      Before spilling a live range, we split it into a separate range for each basic
      block where it is used. That way we only get one reload per basic block if the
      new smaller ranges can allocate to a register.
      
      This type of splitting is already present in the standard spiller.
      
      llvm-svn: 110934
      622848b2
  9. Aug 10, 2010
  10. Aug 07, 2010
  11. Aug 05, 2010
  12. Jul 27, 2010
  13. Jul 21, 2010
  14. Jul 20, 2010
Loading