diff options
Diffstat (limited to 'lib/CodeGen/OptimizeCmps.cpp')
-rw-r--r-- | lib/CodeGen/OptimizeCmps.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/CodeGen/OptimizeCmps.cpp b/lib/CodeGen/OptimizeCmps.cpp index 5b524cd641..209c8b9504 100644 --- a/lib/CodeGen/OptimizeCmps.cpp +++ b/lib/CodeGen/OptimizeCmps.cpp @@ -72,9 +72,8 @@ bool OptimizeCmps::OptimizeCmpInstr(MachineInstr *MI, MachineBasicBlock *MBB) { // physical register, we can try to optimize it. unsigned SrcReg; int CmpValue; - if (!TII->isCompareInstr(MI, SrcReg, CmpValue) || - TargetRegisterInfo::isPhysicalRegister(SrcReg) || - CmpValue != 0) + if (!TII->AnalyzeCompare(MI, SrcReg, CmpValue) || + TargetRegisterInfo::isPhysicalRegister(SrcReg) || CmpValue != 0) return false; MachineRegisterInfo::def_iterator DI = MRI->def_begin(SrcReg); @@ -83,7 +82,7 @@ bool OptimizeCmps::OptimizeCmpInstr(MachineInstr *MI, MachineBasicBlock *MBB) { return false; // Attempt to convert the defining instruction to set the "zero" flag. - if (TII->convertToSetZeroFlag(&*DI, MI)) { + if (TII->ConvertToSetZeroFlag(&*DI, MI)) { ++NumEliminated; return true; } @@ -104,7 +103,8 @@ bool OptimizeCmps::runOnMachineFunction(MachineFunction &MF) { for (MachineBasicBlock::iterator MII = MBB->begin(), ME = MBB->end(); MII != ME; ) { MachineInstr *MI = &*MII++; - Changed |= OptimizeCmpInstr(MI, MBB); + if (MI->getDesc().isCompare()) + Changed |= OptimizeCmpInstr(MI, MBB); } } |