Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:LI

39   LiveInterval &LI = LIS.getOrCreateInterval(VReg);
40 newRegs_.push_back(&LI);
41 return LI;
101 LiveInterval &li = lis.getInterval(MO.getReg());
102 const VNInfo *OVNI = li.getVNInfoAt(OrigIdx);
105 if (OVNI != li.getVNInfoAt(UseIdx))
162 bool LiveRangeEdit::foldAsLoad(LiveInterval *LI,
170 for (MachineRegisterInfo::reg_nodbg_iterator I = MRI.reg_nodbg_begin(LI->reg),
196 if (UseMI->readsWritesVirtualRegister(LI->reg, &Ops).second)
205 DefMI->addRegisterDead(LI->reg, 0);
249 LiveInterval &LI = LIS.getInterval(Reg);
257 LI.killedAt(Idx)))
258 ToShrink.insert(&LI);
262 if (VNInfo *VNI = LI.getVNInfoAt(Idx)) {
264 delegate_->LRE_WillShrinkVirtReg(LI.reg);
265 LI.removeValNo(VNI);
266 if (LI.empty()) {
267 ToShrink.remove(&LI);
285 LiveInterval *LI = ToShrink.back();
287 if (foldAsLoad(LI, Dead, MRI, LIS, TII))
290 delegate_->LRE_WillShrinkVirtReg(LI->reg);
291 if (!LIS.shrinkToUses(LI, &Dead))
294 // LI may have been separated, create new intervals.
295 LI->RenumberValues(LIS);
297 unsigned NumComp = ConEQ.Classify(LI);
301 bool IsOriginal = VRM.getOriginal(LI->reg) == LI->reg;
302 DEBUG(dbgs() << NumComp << " components: " << *LI << '\n');
303 SmallVector<LiveInterval*, 8> Dups(1, LI);
305 Dups.push_back(&createFrom(LI->reg, LIS, VRM));
306 // If LI is an original interval that hasn't been split yet, make the new
307 // intervals their own originals instead of referring to LI. The original
308 // interval must contain all the split products, and LI doesn't.
312 delegate_->LRE_DidCloneVirtReg(Dups.back()->reg, LI->reg);
324 LiveInterval &LI = **I;
325 if (MRI.recomputeRegClass(LI.reg, MF.getTarget()))
326 DEBUG(dbgs() << "Inflated " << PrintReg(LI.reg) << " to "
327 << MRI.getRegClass(LI.reg)->getName() << '\n');
328 VRAI.CalculateWeightAndHint(LI);