reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1139 OS << " updater with gap = " << (ReadI - WriteI) 1148 for (const auto &S : make_range(ReadI, LR->end())) 1186 WriteI = ReadI = LR->begin(); 1194 if (ReadI != E && ReadI->end <= Seg.start) { 1194 if (ReadI != E && ReadI->end <= Seg.start) { 1196 if (ReadI != WriteI) 1199 if (ReadI == WriteI) 1200 ReadI = WriteI = LR->find(Seg.start); 1202 while (ReadI != E && ReadI->end <= Seg.start) 1202 while (ReadI != E && ReadI->end <= Seg.start) 1203 *WriteI++ = *ReadI++; 1206 assert(ReadI == E || ReadI->end > Seg.start); 1206 assert(ReadI == E || ReadI->end > Seg.start); 1209 if (ReadI != E && ReadI->start <= 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; 1216 ++ReadI; 1220 while (ReadI != E && coalescable(Seg, *ReadI)) { 1220 while (ReadI != E && coalescable(Seg, *ReadI)) { 1221 Seg.end = std::max(Seg.end, ReadI->end); 1222 ++ReadI; 1239 if (WriteI != ReadI) { 1247 WriteI = ReadI = LR->end(); 1256 size_t GapSize = ReadI - WriteI; 1287 LR->segments.erase(WriteI, ReadI); 1293 size_t GapSize = ReadI - WriteI; 1297 LR->segments.insert(ReadI, Spills.size() - GapSize, LiveRange::Segment()); 1302 LR->segments.erase(WriteI + Spills.size(), ReadI); 1304 ReadI = WriteI + Spills.size();