diff options
Diffstat (limited to 'lib/CodeGen/MachineInstr.cpp')
-rw-r--r-- | lib/CodeGen/MachineInstr.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/CodeGen/MachineInstr.cpp b/lib/CodeGen/MachineInstr.cpp index 01a3e3ee38..8c5da0272f 100644 --- a/lib/CodeGen/MachineInstr.cpp +++ b/lib/CodeGen/MachineInstr.cpp @@ -170,12 +170,14 @@ bool MachineOperand::isIdenticalTo(const MachineOperand &Other) const { } /// findRegisterUseOperand() - Returns the MachineOperand that is a use of -/// the specific register or NULL if it is not found. -MachineOperand *MachineInstr::findRegisterUseOperand(unsigned Reg) { +/// the specific register or NULL if it is not found. It further tightening +/// the search criteria to a use that kills the register if isKill is true. +MachineOperand *MachineInstr::findRegisterUseOperand(unsigned Reg, bool isKill){ for (unsigned i = 0, e = getNumOperands(); i != e; ++i) { MachineOperand &MO = getOperand(i); if (MO.isReg() && MO.isUse() && MO.getReg() == Reg) - return &MO; + if (!isKill || MO.isKill()) + return &MO; } return NULL; } |