mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-28 14:10:41 +00:00
Handle register masks in DeadMachineInstructionElim.
Don't track live physregs that are clobbered by a register mask operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148588 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4d6ccb5f68
commit
6b88c180da
@ -173,6 +173,13 @@ bool DeadMachineInstructionElim::runOnMachineFunction(MachineFunction &MF) {
|
||||
*SubRegs; ++SubRegs)
|
||||
LivePhysRegs.reset(*SubRegs);
|
||||
}
|
||||
} else if (MO.isRegMask()) {
|
||||
// Register mask of preserved registers. All clobbers are dead.
|
||||
if (const uint32_t *Mask = MO.getRegMask())
|
||||
LivePhysRegs.clearBitsNotInMask(Mask);
|
||||
else
|
||||
LivePhysRegs.reset();
|
||||
LivePhysRegs |= ReservedRegs;
|
||||
}
|
||||
}
|
||||
// Record the physreg uses, after the defs, in case a physreg is
|
||||
|
Loading…
Reference in New Issue
Block a user