Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:Spills

660 // - When LastStart is invalid, Spills is empty and the iterators are invalid.
668 // 3. Spills.
673 // - Segments in Spills precede and can't coalesce with segments in area 2.
674 // - No coalescing is possible between segments in Spills and segments in area
677 // The segments in Spills are not ordered with respect to the segments in area
680 // When they exist, Spills.back().start <= LastStart,
697 OS << "\n Spills:";
698 for (unsigned I = 0, E = Spills.size(); I != E; ++I)
699 OS << ' ' << Spills[I];
731 assert(Spills.empty() && "Leftover spilled segments");
741 // First try to close the gap between WriteI and ReadI with spills.
771 // Try coalescing Spills.back() into Seg.
772 if (!Spills.empty() && coalescable(Spills.back(), Seg)) {
773 Seg.start = Spills.back().start;
774 Seg.end = std::max(Spills.back().end, Seg.end);
775 Spills.pop_back();
790 // Finally, append to LR or Spills.
795 Spills.push_back(Seg);
801 // Perform a backwards merge of Spills and [SpillI;WriteI).
803 size_t NumMoved = std::min(Spills.size(), GapSize);
806 LiveRange::iterator SpillSrc = Spills.end();
809 // This is the new WriteI position after merging spills.
812 // Now merge Src and Spills backwards.
819 assert(NumMoved == size_t(Spills.end() - SpillSrc));
820 Spills.erase(SpillSrc, Spills.end());
832 if (Spills.empty()) {
838 // Resize the WriteI - ReadI gap to match Spills.
840 if (GapSize < Spills.size()) {
843 LR->segments.insert(ReadI, Spills.size() - GapSize, LiveRange::Segment());
848 LR->segments.erase(WriteI + Spills.size(), ReadI);
850 ReadI = WriteI + Spills.size();