diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86CondBrFolding.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86CondBrFolding.cpp b/llvm/lib/Target/X86/X86CondBrFolding.cpp index 9a5ae704171..8b9ef20d916 100644 --- a/llvm/lib/Target/X86/X86CondBrFolding.cpp +++ b/llvm/lib/Target/X86/X86CondBrFolding.cpp @@ -424,8 +424,9 @@ bool X86CondBrFolding::optimize() { } NumFixedCondBrs += RemoveList.size(); for (auto MBBI : RemoveList) { - for (auto *Succ : MBBI->successors()) - MBBI->removeSuccessor(Succ); + while (!MBBI->succ_empty()) + MBBI->removeSuccessor(MBBI->succ_end() - 1); + MBBI->eraseFromParent(); } |

