Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:LI

40   LiveInterval &LI = LIS.getOrCreateInterval(VReg);
41 newRegs_.push_back(&LI);
42 return LI;
91 LiveInterval &li = LIS.getInterval(MO.getReg());
92 const VNInfo *OVNI = li.getVNInfoAt(OrigIdx);
95 if (OVNI != li.getVNInfoAt(UseIdx))
149 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI,
154 for (MachineRegisterInfo::reg_nodbg_iterator I = MRI.reg_nodbg_begin(LI->reg),
180 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second)
189 DefMI->addRegisterDead(LI->reg, 0);
231 LiveInterval &LI = LIS.getInterval(Reg);
239 LI.killedAt(Idx)))
240 ToShrink.insert(&LI);
244 if (VNInfo *VNI = LI.getVNInfoAt(Idx)) {
246 delegate_->LRE_WillShrinkVirtReg(LI.reg);
247 LI.removeValNo(VNI);
248 if (LI.empty()) {
249 ToShrink.remove(&LI);
267 LiveInterval *LI = ToShrink.back();
269 if (foldAsLoad(LI, Dead))
272 delegate_->LRE_WillShrinkVirtReg(LI->reg);
273 if (!LIS.shrinkToUses(LI, &Dead))
282 if (LI->reg == RegsBeingSpilled[i]) {
290 // LI may have been separated, create new intervals.
291 LI->RenumberValues(LIS);
293 unsigned NumComp = ConEQ.Classify(LI);
297 bool IsOriginal = VRM && VRM->getOriginal(LI->reg) == LI->reg;
298 DEBUG(dbgs() << NumComp << " components: " << *LI << '\n');
299 SmallVector<LiveInterval*, 8> Dups(1, LI);
301 Dups.push_back(&createFrom(LI->reg));
302 // If LI is an original interval that hasn't been split yet, make the new
303 // intervals their own originals instead of referring to LI. The original
304 // interval must contain all the split products, and LI doesn't.
308 delegate_->LRE_DidCloneVirtReg(Dups.back()->reg, LI->reg);
318 LiveInterval &LI = **I;
319 if (MRI.recomputeRegClass(LI.reg, MF.getTarget()))
320 DEBUG(dbgs() << "Inflated " << PrintReg(LI.reg) << " to "
321 << MRI.getRegClass(LI.reg)->getName() << '\n');
322 VRAI.CalculateWeightAndHint(LI);