mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-09 13:33:17 +00:00
Simplify a check for implicit defs and remove a FIXME.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122537 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d82ed5b734
commit
ef485d8658
@ -189,20 +189,18 @@ void StrongPHIElimination::InsertCopiesForPHI(MachineInstr* PHI,
|
||||
SmallPtrSet<MachineBasicBlock*, 8> MBBsInsertedInto;
|
||||
for (unsigned i = 1; i < PHI->getNumOperands(); i += 2) {
|
||||
MachineOperand& SrcMO = PHI->getOperand(i);
|
||||
|
||||
// If a source is defined by an implicit def, there is no need to insert a
|
||||
// copy in the predecessor.
|
||||
if (SrcMO.isUndef())
|
||||
continue;
|
||||
|
||||
unsigned SrcReg = SrcMO.getReg();
|
||||
unsigned SrcSubReg = SrcMO.getSubReg();
|
||||
|
||||
assert(TargetRegisterInfo::isVirtualRegister(SrcReg) &&
|
||||
"Machine PHI Operands must all be virtual registers!");
|
||||
|
||||
// If source is defined by an implicit def, there is no need to insert a
|
||||
// copy.
|
||||
// FIXME: For some reason, if LiveIntervals is run prior to PHI elimination
|
||||
// implcit defs have no defining instruction. Is this expected?
|
||||
MachineInstr* DefMI = MRI->getVRegDef(SrcReg);
|
||||
if (!DefMI)
|
||||
continue;
|
||||
|
||||
MachineBasicBlock* PredBB = PHI->getOperand(i + 1).getMBB();
|
||||
|
||||
// A copy may have already been inserted in the predecessor in the case of a
|
||||
|
Loading…
x
Reference in New Issue
Block a user