mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-20 16:17:38 +00:00
Handle REG_SEQUENCE with implicitly defined operands.
Code like that would only be produced by bugpoint, but we should still handle it correctly. When a register is defined by a REG_SEQUENCE of undefs, the register itself is undef. Previously, we would create a register with uses but no defs. Fixes part of PR10520. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136401 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -125,8 +125,14 @@ bool ProcessImplicitDefs::runOnMachineFunction(MachineFunction &fn) {
|
||||
LiveVariables::VarInfo& vi = LV->getVarInfo(MO.getReg());
|
||||
vi.removeKill(MI);
|
||||
}
|
||||
unsigned Reg = MI->getOperand(0).getReg();
|
||||
MI->eraseFromParent();
|
||||
Changed = true;
|
||||
|
||||
// A REG_SEQUENCE may have been expanded into partial definitions.
|
||||
// If this was the last one, mark Reg as implicitly defined.
|
||||
if (TargetRegisterInfo::isVirtualRegister(Reg) && MRI->def_empty(Reg))
|
||||
ImpDefRegs.insert(Reg);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user