Lines Matching refs:Seg
1190 void LiveRangeUpdater::add(LiveRange::Segment Seg) { in add() argument
1196 LR->addSegmentToSet(Seg); in add()
1201 if (!LastStart.isValid() || LastStart > Seg.start) { in add()
1210 LastStart = Seg.start; in add()
1214 if (ReadI != E && ReadI->end <= Seg.start) { in add()
1220 ReadI = WriteI = LR->find(Seg.start); in add()
1222 while (ReadI != E && ReadI->end <= Seg.start) in add()
1226 assert(ReadI == E || ReadI->end > Seg.start); in add()
1229 if (ReadI != E && ReadI->start <= Seg.start) { in add()
1230 assert(ReadI->valno == Seg.valno && "Cannot overlap different values"); in add()
1232 if (ReadI->end >= Seg.end) in add()
1235 Seg.start = ReadI->start; in add()
1240 while (ReadI != E && coalescable(Seg, *ReadI)) { in add()
1241 Seg.end = std::max(Seg.end, ReadI->end); in add()
1246 if (!Spills.empty() && coalescable(Spills.back(), Seg)) { in add()
1247 Seg.start = Spills.back().start; in add()
1248 Seg.end = std::max(Spills.back().end, Seg.end); in add()
1253 if (WriteI != LR->begin() && coalescable(WriteI[-1], Seg)) { in add()
1254 WriteI[-1].end = std::max(WriteI[-1].end, Seg.end); in add()
1260 *WriteI++ = Seg; in add()
1266 LR->segments.push_back(Seg); in add()
1269 Spills.push_back(Seg); in add()