Lines Matching defs:MPhi
210 static bool isSourceDefinedByImplicitDef(const MachineInstr *MPhi,
212 for (unsigned i = 1; i != MPhi->getNumOperands(); i += 2)
213 if (!isImplicitlyDefined(MPhi->getOperand(i).getReg(), MRI))
228 MachineInstr *MPhi = MBB.remove(MBB.begin());
230 unsigned NumSrcs = (MPhi->getNumOperands() - 1) / 2;
231 unsigned DestReg = MPhi->getOperand(0).getReg();
232 assert(MPhi->getOperand(0).getSubReg() == 0 && "Can't handle sub-reg PHIs");
233 bool isDead = MPhi->getOperand(0).isDead();
244 if (isSourceDefinedByImplicitDef(MPhi, MRI))
247 BuildMI(MBB, AfterPHIsIt, MPhi->getDebugLoc(),
252 unsigned &entry = LoweredPHIs[MPhi];
258 DEBUG(dbgs() << "Reusing " << PrintReg(IncomingReg) << " for " << *MPhi);
263 BuildMI(MBB, AfterPHIsIt, MPhi->getDebugLoc(),
298 LV->removeVirtualRegistersKilled(MPhi);
303 LV->removeVirtualRegisterDead(DestReg, MPhi);
350 for (unsigned i = 1; i != MPhi->getNumOperands(); i += 2)
351 --VRegPHIUseCount[BBVRegPair(MPhi->getOperand(i+1).getMBB()->getNumber(),
352 MPhi->getOperand(i).getReg())];
358 unsigned SrcReg = MPhi->getOperand(i*2+1).getReg();
359 unsigned SrcSubReg = MPhi->getOperand(i*2+1).getSubReg();
360 bool SrcUndef = MPhi->getOperand(i*2+1).isUndef() ||
367 MachineBasicBlock &opBlock = *MPhi->getOperand(i*2+2).getMBB();
387 NewSrcInstr = BuildMI(opBlock, InsertPos, MPhi->getDebugLoc(),
396 NewSrcInstr = BuildMI(opBlock, InsertPos, MPhi->getDebugLoc(),
524 LIS->RemoveMachineInstrFromMaps(MPhi);
525 MF.DeleteMachineInstr(MPhi);