mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-20 08:54:08 +00:00
Don't tamper with <undef> operands in MachineInstr::addRegisterKilled.
For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78095 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ded2e3b0d0
commit
efb8e3e113
@ -1030,7 +1030,7 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg,
|
||||
SmallVector<unsigned,4> DeadOps;
|
||||
for (unsigned i = 0, e = getNumOperands(); i != e; ++i) {
|
||||
MachineOperand &MO = getOperand(i);
|
||||
if (!MO.isReg() || !MO.isUse())
|
||||
if (!MO.isReg() || !MO.isUse() || MO.isUndef())
|
||||
continue;
|
||||
unsigned Reg = MO.getReg();
|
||||
if (!Reg)
|
||||
@ -1041,8 +1041,6 @@ bool MachineInstr::addRegisterKilled(unsigned IncomingReg,
|
||||
if (MO.isKill())
|
||||
// The register is already marked kill.
|
||||
return true;
|
||||
// This operand can no longer be undef since Reg is live-in.
|
||||
MO.setIsUndef(false);
|
||||
if (isPhysReg && isRegTiedToDefOperand(i))
|
||||
// Two-address uses of physregs must not be marked kill.
|
||||
return true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user