Lines Matching defs:LR

159     if (LiveRange *LR = RegUnitRanges[i])
160 OS << PrintRegUnit(i, TRI) << ' ' << *LR << '\n';
269 void LiveIntervals::computeRegUnitRange(LiveRange &LR, unsigned Unit) {
282 LRCalc->createDeadDefs(LR, *Supers);
286 // Now extend LR to reach all uses.
293 LRCalc->extendToUses(LR, Reg);
299 LR.flushSegmentSet();
329 LiveRange *LR = RegUnitRanges[Unit];
330 if (!LR) {
332 LR = RegUnitRanges[Unit] = new LiveRange(UseSegmentSetForPhysRegs);
335 VNInfo *VNI = LR->createDeadDef(Begin, getVNInfoAllocator());
352 static void createSegmentsForValues(LiveRange &LR,
358 LR.addSegment(LiveRange::Segment(Def, Def.getDeadSlot(), VNI));
364 static void extendSegmentsToUses(LiveRange &LR, const SlotIndexes &Indexes,
381 if (VNInfo *ExtVNI = LR.extendInBlock(BlockStart, Idx)) {
402 LR.addSegment(LiveRange::Segment(BlockStart, Idx, VNI));
597 void LiveIntervals::extendToIndices(LiveRange &LR,
602 LRCalc->extend(LR, Indices[i]);
605 void LiveIntervals::pruneValue(LiveRange &LR, SlotIndex Kill,
607 LiveQueryResult LRQ = LR.Query(Kill);
617 LR.removeSegment(Kill, LRQ.endPoint());
623 LR.removeSegment(Kill, MBBEnd);
642 LiveQueryResult LRQ = LR.Query(MBBStart);
651 LR.removeSegment(MBBStart, LRQ.endPoint());
658 LR.removeSegment(MBBStart, MBBEnd);
991 if (LiveRange *LR = getRegUnitLI(*Units))
992 updateRange(*LR, *Units, 0);
1001 void updateRange(LiveRange &LR, unsigned Reg, LaneBitmask LaneMask) {
1002 if (!Updated.insert(&LR).second)
1013 dbgs() << ":\t" << LR << '\n';
1016 handleMoveDown(LR);
1018 handleMoveUp(LR, Reg, LaneMask);
1019 DEBUG(dbgs() << " -->\t" << LR << '\n');
1020 LR.verify();
1023 /// Update LR to reflect an instruction has been moved downwards from OldIdx
1043 void handleMoveDown(LiveRange &LR) {
1045 LiveRange::iterator I = LR.find(OldIdx.getBaseIndex());
1046 LiveRange::iterator E = LR.end();
1047 // Is LR even live at OldIdx?
1064 // Adjust I->end to reach NewIdx. This may temporarily make LR invalid by
1093 LiveRange::iterator NewI = LR.advanceTo(I, NewIdx.getRegSlot());
1098 LR.removeValNo(DefVNI);
1102 // If the def at OldIdx was dead, we allow it to be moved across other LR
1111 /// Update LR to reflect an instruction has been moved upwards from OldIdx
1131 void handleMoveUp(LiveRange &LR, unsigned Reg, LaneBitmask LaneMask) {
1133 LiveRange::iterator I = LR.find(OldIdx.getBaseIndex());
1134 LiveRange::iterator E = LR.end();
1135 // Is LR even live at OldIdx?
1164 LiveRange::iterator NewI = LR.find(NewIdx.getRegSlot());
1170 LR.removeValNo(DefVNI);
1175 LR.removeValNo(NewI->valno);
1186 // DefVNI is a dead def. It may have been moved across other values in LR,
1287 LiveRange &LR, const unsigned Reg,
1289 LiveInterval::iterator LII = LR.find(endIdx);
1291 if (LII != LR.end() && LII->start < endIdx)
1323 if (LII != LR.begin())
1328 LR.removeSegment(*LII, true);
1330 LII = LR.find(prevStart);
1332 LII = LR.begin();
1345 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1348 LII = LR.addSegment(S);
1350 VNInfo *VNI = LR.getNextValue(instrIdx.getRegSlot(), VNInfoAllocator);
1352 LII = LR.addSegment(S);
1426 if (LiveRange *LR = getCachedRegUnit(*Units))
1427 if (VNInfo *VNI = LR->getVNInfoAt(Pos))
1428 LR->removeValNo(VNI);