Lines Matching defs:VirtReg
99 MCRegister selectOrSplit(const LiveInterval &VirtReg,
118 bool spillInterferences(const LiveInterval &VirtReg, MCRegister PhysReg,
146 bool RABasic::LRE_CanEraseVirtReg(Register VirtReg) {
147 LiveInterval &LI = LIS->getInterval(VirtReg);
148 if (VRM->hasPhys(VirtReg)) {
156 // dump will show the right state for that VirtReg.
161 void RABasic::LRE_WillShrinkVirtReg(Register VirtReg) {
162 if (!VRM->hasPhys(VirtReg))
166 LiveInterval &LI = LIS->getInterval(VirtReg);
204 // that interfere with VirtReg. The newly spilled or split live intervals are
206 bool RABasic::spillInterferences(const LiveInterval &VirtReg,
215 LiveIntervalUnion::Query &Q = Matrix->query(VirtReg, Unit);
217 if (!Intf->isSpillable() || Intf->weight() > VirtReg.weight())
223 << " interferences with " << VirtReg << "\n");
255 MCRegister RABasic::selectOrSplit(const LiveInterval &VirtReg,
262 AllocationOrder::create(VirtReg.reg(), *VRM, RegClassInfo, Matrix);
266 switch (Matrix->checkInterference(VirtReg, PhysReg)) {
284 if (!spillInterferences(VirtReg, PhysReg, SplitVRegs))
287 assert(!Matrix->checkInterference(VirtReg, PhysReg) &&
293 // No other spill candidates were found, so spill the current VirtReg.
294 LLVM_DEBUG(dbgs() << "spilling: " << VirtReg << '\n');
295 if (!VirtReg.isSpillable())
297 LiveRangeEdit LRE(&VirtReg, SplitVRegs, *MF, *LIS, VRM, this, &DeadRemats);