Lines Matching refs:end

93     if (I == segments().end()) {
128 if (I->end <= StartIdx)
130 if (I->end < Use)
144 if (I->end <= StartIdx)
146 if (I->end < Use) {
147 if (LR->isUndefIn(Undefs, I->end, BeforeUse))
155 /// by I to end at the specified endpoint. To do this, we should
159 assert(I != segments().end() && "Not a valid segment!");
165 for (; MergeTo != segments().end() && NewEnd >= MergeTo->end; ++MergeTo)
169 S->end = std::max(NewEnd, std::prev(MergeTo)->end);
173 if (MergeTo != segments().end() && MergeTo->start <= I->end &&
175 S->end = MergeTo->end;
187 assert(I != segments().end() && "Not a valid segment!");
205 if (MergeTo->end >= NewStart && MergeTo->valno == ValNo) {
206 segmentAt(MergeTo)->end = S->end;
212 MergeToSeg->end = S->end;
220 SlotIndex Start = S.start, End = S.end;
223 // If the inserted segment starts in the middle or right at the end of
228 if (B->start <= Start && B->end >= Start) {
235 assert(B->end <= Start &&
243 if (I != segments().end()) {
250 if (End > I->end)
322 LR->segmentSet->insert(LR->segmentSet->end(), S);
331 if (Pos < (*PrevI).end)
338 if (I != LR->segmentSet->end() && !(S.start < *I))
344 } // end anonymous namespace
355 return end();
360 if (Pos < I[Mid].end) {
408 const_iterator ie = end();
410 const_iterator je = other.end();
413 StartPos != other.end() && "Bogus start position hint!");
420 if (StartPos != other.end() && StartPos->start <= i->start) {
421 assert(StartPos < other.end() && i < end());
437 if (i->end > j->start)
453 const_iterator IE = end();
457 const_iterator JE = Other.end();
463 assert(J->end >= I->start);
465 if (J->start < I->end) {
474 if (J->end > I->end) {
478 // Advance J until J->end >= I->start.
482 while (J->end < I->start);
490 const_iterator I = std::lower_bound(begin(), end(), End);
491 return I != begin() && (--I)->end > Start;
501 if (I == end() || I->start > O.start)
504 // Check adjacent live segments and see if we can get behind O.end.
505 while (I->end < O.end) {
509 if (I == end() || Last->end != I->start)
552 return end();
560 assert(segments.empty() || segments.back().end <= S.start);
587 assert(I != end() && "Segment is not in range!");
594 if (I->end == End) {
598 for (const_iterator II = begin(), EE = end(); II != EE; ++II)
615 // Otherwise if the span we are removing is at the end of the Segment,
617 if (I->end == End) {
618 I->end = Start;
623 SlotIndex OldEnd = I->end;
624 I->end = Start; // Trim the old segment.
636 }), end());
667 for (iterator I = std::next(OutIt), E = end(); I != E; ++I) {
674 if (OutIt->valno == nextValNo && OutIt->end == I->start) {
675 OutIt->end = I->end;
682 OutIt->end = I->end;
686 // If we merge some segments, chop off the end.
688 segments.erase(OutIt, end());
728 Updater.add(S.start, S.end, LHSValNo);
742 Updater.add(S.start, S.end, LHSValNo);
764 for (iterator I = begin(); I != end(); ) {
772 if (Prev->valno == V2 && Prev->end == S->start) {
773 Prev->end = S->end;
789 if (I != end()) {
790 if (I->start == S->end && I->valno == V2) {
791 S->end = I->end;
809 segments.append(segmentSet->begin(), segmentSet->end());
816 ArrayRef<SlotIndex>::iterator SlotE = Slots.end();
824 const_iterator SegmentE = end();
826 // If there are no segments that end after the first slot, we're done.
972 Sum += S.start.distance(S.end);
1001 return OS << '[' << S.start << ',' << S.end << ':' << S.valno->id << ')';
1070 for (const_iterator I = begin(), E = end(); I != E; ++I) {
1072 assert(I->end.isValid());
1073 assert(I->start < I->end);
1078 assert(I->end <= std::next(I)->start);
1079 if (I->end == std::next(I)->start)
1122 // 2. [ReadI; end) at the back of LR.
1125 // - LR.begin() <= WriteI <= ReadI <= LR.end().
1157 for (const auto &S : make_range(ReadI, LR->end()))
1171 if (A.end == B.start)
1173 if (A.end < B.start)
1202 LiveRange::iterator E = LR->end();
1203 if (ReadI != E && ReadI->end <= Seg.start) {
1211 while (ReadI != E && ReadI->end <= Seg.start)
1215 assert(ReadI == E || ReadI->end > Seg.start);
1221 if (ReadI->end >= Seg.end)
1230 Seg.end = std::max(Seg.end, ReadI->end);
1237 Seg.end = std::max(Spills.back().end, Seg.end);
1243 WriteI[-1].end = std::max(WriteI[-1].end, Seg.end);
1256 WriteI = ReadI = LR->end();
1269 LiveRange::iterator SpillSrc = Spills.end();
1282 assert(NumMoved == size_t(Spills.end() - SpillSrc));
1283 Spills.erase(SpillSrc, Spills.end());