diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp --- a/llvm/lib/Passes/PassBuilder.cpp +++ b/llvm/lib/Passes/PassBuilder.cpp @@ -582,6 +582,7 @@ LPM2.addPass(LoopIdiomRecognizePass()); LPM2.addPass(IndVarSimplifyPass()); + LPM2.addPass(LoopSimplifyCFGPass()); for (auto &C : LateLoopOptimizationsEPCallbacks) C(LPM2, Level); @@ -757,6 +758,7 @@ EnableO3NonTrivialUnswitching)); LPM2.addPass(LoopIdiomRecognizePass()); LPM2.addPass(IndVarSimplifyPass()); + LPM2.addPass(LoopSimplifyCFGPass()); for (auto &C : LateLoopOptimizationsEPCallbacks) C(LPM2, Level); @@ -1790,6 +1792,7 @@ LoopPassManager LPM(DebugLogging); LPM.addPass(IndVarSimplifyPass()); + LPM.addPass(LoopSimplifyCFGPass()); LPM.addPass(LoopDeletionPass()); // FIXME: Add loop interchange.