Lines Matching defs:li
40 LiveInterval &LI = LIS.getOrCreateInterval(VReg);
41 NewRegs.push_back(&LI);
42 return LI;
95 LiveInterval &li = LIS.getInterval(MO.getReg());
96 const VNInfo *OVNI = li.getVNInfoAt(OrigIdx);
106 if (OVNI != li.getVNInfoAt(UseIdx))
160 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI,
165 for (MachineRegisterInfo::reg_nodbg_iterator I = MRI.reg_nodbg_begin(LI->reg),
204 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second)
213 DefMI->addRegisterDead(LI->reg, 0);
263 LiveInterval &LI = LIS.getInterval(Reg);
271 LI.killedAt(Idx)))
272 ToShrink.insert(&LI);
276 if (VNInfo *VNI = LI.getVNInfoAt(Idx)) {
278 TheDelegate->LRE_WillShrinkVirtReg(LI.reg);
279 LI.removeValNo(VNI);
280 if (LI.empty())
326 LiveInterval *LI = ToShrink.back();
328 if (foldAsLoad(LI, Dead))
331 TheDelegate->LRE_WillShrinkVirtReg(LI->reg);
332 if (!LIS.shrinkToUses(LI, &Dead))
341 if (LI->reg == RegsBeingSpilled[i]) {
349 // LI may have been separated, create new intervals.
350 LI->RenumberValues(LIS);
352 unsigned NumComp = ConEQ.Classify(LI);
356 bool IsOriginal = VRM && VRM->getOriginal(LI->reg) == LI->reg;
357 DEBUG(dbgs() << NumComp << " components: " << *LI << '\n');
358 SmallVector<LiveInterval*, 8> Dups(1, LI);
360 Dups.push_back(&createFrom(LI->reg));
361 // If LI is an original interval that hasn't been split yet, make the new
362 // intervals their own originals instead of referring to LI. The original
363 // interval must contain all the split products, and LI doesn't.
367 TheDelegate->LRE_DidCloneVirtReg(Dups.back()->reg, LI->reg);
381 LiveInterval &LI = **I;
382 if (MRI.recomputeRegClass(LI.reg, MF.getTarget()))
383 DEBUG(dbgs() << "Inflated " << PrintReg(LI.reg) << " to "
384 << MRI.getRegClass(LI.reg)->getName() << '\n');
385 VRAI.CalculateWeightAndHint(LI);