Lines Matching refs:WriteI
1110 // 1. [begin; WriteI) at the front of LR.
1114 // - LR.begin() <= WriteI <= ReadI <= LR.end().
1125 // and WriteI[-1].start <= LastStart.
1137 OS << " updater with gap = " << (ReadI - WriteI)
1140 for (const auto &S : make_range(LR->begin(), WriteI))
1184 WriteI = ReadI = LR->begin();
1193 // First try to close the gap between WriteI and ReadI with spills.
1194 if (ReadI != WriteI)
1197 if (ReadI == WriteI)
1198 ReadI = WriteI = LR->find(Seg.start);
1201 *WriteI++ = *ReadI++;
1230 // Try coalescing Seg into WriteI[-1].
1231 if (WriteI != LR->begin() && coalescable(WriteI[-1], Seg)) {
1232 WriteI[-1].end = std::max(WriteI[-1].end, Seg.end);
1237 if (WriteI != ReadI) {
1238 *WriteI++ = Seg;
1243 if (WriteI == E) {
1245 WriteI = ReadI = LR->end();
1250 // Merge as many spilled segments as possible into the gap between WriteI
1251 // and ReadI. Advance WriteI to reflect the inserted instructions.
1253 // Perform a backwards merge of Spills and [SpillI;WriteI).
1254 size_t GapSize = ReadI - WriteI;
1256 LiveRange::iterator Src = WriteI;
1261 // This is the new WriteI position after merging spills.
1262 WriteI = Dst;
1285 LR->segments.erase(WriteI, ReadI);
1290 // Resize the WriteI - ReadI gap to match Spills.
1291 size_t GapSize = ReadI - WriteI;
1294 size_t WritePos = WriteI - LR->begin();
1297 WriteI = LR->begin() + WritePos;
1300 LR->segments.erase(WriteI + Spills.size(), ReadI);
1302 ReadI = WriteI + Spills.size();