reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1176 LR->addSegmentToSet(Seg); 1181 if (!LastStart.isValid() || LastStart > Seg.start) { 1190 LastStart = Seg.start; 1194 if (ReadI != E && ReadI->end <= Seg.start) { 1200 ReadI = WriteI = LR->find(Seg.start); 1202 while (ReadI != E && ReadI->end <= Seg.start) 1206 assert(ReadI == E || ReadI->end > Seg.start); 1209 if (ReadI != E && ReadI->start <= Seg.start) { 1210 assert(ReadI->valno == Seg.valno && "Cannot overlap different values"); 1212 if (ReadI->end >= Seg.end) 1215 Seg.start = ReadI->start; 1220 while (ReadI != E && coalescable(Seg, *ReadI)) { 1221 Seg.end = std::max(Seg.end, ReadI->end); 1221 Seg.end = std::max(Seg.end, ReadI->end); 1226 if (!Spills.empty() && coalescable(Spills.back(), Seg)) { 1227 Seg.start = Spills.back().start; 1228 Seg.end = std::max(Spills.back().end, Seg.end); 1228 Seg.end = std::max(Spills.back().end, Seg.end); 1233 if (WriteI != LR->begin() && coalescable(WriteI[-1], Seg)) { 1234 WriteI[-1].end = std::max(WriteI[-1].end, Seg.end); 1240 *WriteI++ = Seg; 1246 LR->segments.push_back(Seg); 1249 Spills.push_back(Seg);