diff options
-rw-r--r-- | llvm/lib/Target/X86/X86InstrInfo.cpp | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/llvm/lib/Target/X86/X86InstrInfo.cpp b/llvm/lib/Target/X86/X86InstrInfo.cpp index 62ed00b1235..38b66d8c8af 100644 --- a/llvm/lib/Target/X86/X86InstrInfo.cpp +++ b/llvm/lib/Target/X86/X86InstrInfo.cpp @@ -3675,15 +3675,9 @@ bool X86InstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, unsigned SrcReg, } // Make sure Sub instruction defines EFLAGS and mark the def live. - unsigned i = 0, e = Sub->getNumOperands(); - for (; i != e; ++i) { - MachineOperand &MO = Sub->getOperand(i); - if (MO.isReg() && MO.isDef() && MO.getReg() == X86::EFLAGS) { - MO.setIsDead(false); - break; - } - } - assert(i != e && "Unable to locate a def EFLAGS operand"); + MachineOperand *FlagDef = Sub->findRegisterDefOperand(X86::EFLAGS); + assert(FlagDef && "Unable to locate a def EFLAGS operand"); + FlagDef->setIsDead(false); CmpInstr.eraseFromParent(); |