Lines Matching defs:LR
67 LiveRange *LR;
70 CalcLiveRangeUtilBase(LiveRange *LR) : LR(LR) {}
94 VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator);
115 VNInfo *VNI = ForVNI ? ForVNI : LR->getNextValue(Def, *VNInfoAllocator);
142 return std::make_pair(nullptr, LR->isUndefIn(Undefs, StartIdx, BeforeUse));
145 return std::make_pair(nullptr, LR->isUndefIn(Undefs, StartIdx, BeforeUse));
147 if (LR->isUndefIn(Undefs, I->end, BeforeUse))
288 CalcLiveRangeUtilVector(LiveRange *LR) : CalcLiveRangeUtilVectorBase(LR) {}
293 LiveRange::Segments &segmentsColl() { return LR->segments; }
295 void insertAtEnd(const Segment &S) { LR->segments.push_back(S); }
297 iterator find(SlotIndex Pos) { return LR->find(Pos); }
299 iterator findInsertPos(Segment S) { return llvm::upper_bound(*LR, S.start); }
314 CalcLiveRangeUtilSet(LiveRange *LR) : CalcLiveRangeUtilSetBase(LR) {}
319 LiveRange::SegmentSet &segmentsColl() { return *LR->segmentSet; }
322 LR->segmentSet->insert(LR->segmentSet->end(), S);
327 LR->segmentSet->upper_bound(Segment(Pos, Pos.getNextSlot(), nullptr));
328 if (I == LR->segmentSet->begin())
337 iterator I = LR->segmentSet->upper_bound(S);
338 if (I != LR->segmentSet->end() && !(S.start < *I))
1132 // 1. [begin; WriteI) at the front of LR.
1133 // 2. [ReadI; end) at the back of LR.
1136 // - LR.begin() <= WriteI <= ReadI <= LR.end().
1152 if (LR)
1153 OS << "Clean updater: " << *LR << '\n';
1158 assert(LR && "Can't have null LR in dirty updater.");
1162 for (const auto &S : make_range(LR->begin(), WriteI))
1168 for (const auto &S : make_range(ReadI, LR->end()))
1191 assert(LR && "Cannot add to a null destination");
1195 if (LR->segmentSet != nullptr) {
1196 LR->addSegmentToSet(Seg);
1206 WriteI = ReadI = LR->begin();
1213 LiveRange::iterator E = LR->end();
1220 ReadI = WriteI = LR->find(Seg.start);
1253 if (WriteI != LR->begin() && coalescable(WriteI[-1], Seg)) {
1264 // Finally, append to LR or Spills.
1266 LR->segments.push_back(Seg);
1267 WriteI = ReadI = LR->end();
1281 LiveRange::iterator B = LR->begin();
1303 assert(LR && "Cannot add to a null destination");
1307 LR->segments.erase(WriteI, ReadI);
1308 assert(LR->verify());
1316 size_t WritePos = WriteI - LR->begin();
1317 LR->segments.insert(ReadI, Spills.size() - GapSize, LiveRange::Segment());
1319 WriteI = LR->begin() + WritePos;
1322 LR->segments.erase(WriteI + Spills.size(), ReadI);
1326 assert(LR->verify());
1329 unsigned ConnectedVNInfoEqClasses::Classify(const LiveRange &LR) {
1332 EqClass.grow(LR.getNumValNums());
1337 for (const VNInfo *VNI : LR.valnos) {
1351 if (const VNInfo *PVNI = LR.getVNInfoBefore(LIS.getMBBEndIdx(Pred)))
1358 if (const VNInfo *UVNI = LR.getVNInfoBefore(VNI->def))