diff options
Diffstat (limited to 'llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp')
-rw-r--r-- | llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp b/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp index 204f11ce151..dcfd3e8317a 100644 --- a/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp +++ b/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp @@ -447,13 +447,12 @@ bool HexagonGenPredicate::eliminatePredCopies(MachineFunction &MF) { // the convertible instruction is converted, its predicate result will be // copied back into the original gpr. - for (MachineFunction::iterator A = MF.begin(), Z = MF.end(); A != Z; ++A) { - MachineBasicBlock &B = *A; - for (MachineBasicBlock::iterator I = B.begin(), E = B.end(); I != E; ++I) { - if (I->getOpcode() != TargetOpcode::COPY) + for (MachineBasicBlock &MBB : MF) { + for (MachineInstr &MI : MBB) { + if (MI.getOpcode() != TargetOpcode::COPY) continue; - Register DR = I->getOperand(0); - Register SR = I->getOperand(1); + Register DR = MI.getOperand(0); + Register SR = MI.getOperand(1); if (!TargetRegisterInfo::isVirtualRegister(DR.R)) continue; if (!TargetRegisterInfo::isVirtualRegister(SR.R)) @@ -464,7 +463,7 @@ bool HexagonGenPredicate::eliminatePredCopies(MachineFunction &MF) { continue; assert(!DR.S && !SR.S && "Unexpected subregister"); MRI->replaceRegWith(DR.R, SR.R); - Erase.insert(I); + Erase.insert(&MI); Changed = true; } } |