Index: lib/Transforms/Utils/LoopSimplify.cpp =================================================================== --- lib/Transforms/Utils/LoopSimplify.cpp +++ lib/Transforms/Utils/LoopSimplify.cpp @@ -697,8 +697,8 @@ } DT->eraseNode(ExitingBlock); - BI->getSuccessor(0)->removePredecessor(ExitingBlock); - BI->getSuccessor(1)->removePredecessor(ExitingBlock); + BI->getSuccessor(0)->removePredecessor(ExitingBlock, true); + BI->getSuccessor(1)->removePredecessor(ExitingBlock, true); ExitingBlock->eraseFromParent(); } } Index: lib/Transforms/Utils/LoopUnroll.cpp =================================================================== --- lib/Transforms/Utils/LoopUnroll.cpp +++ lib/Transforms/Utils/LoopUnroll.cpp @@ -469,9 +469,8 @@ if (!OuterL && !CompletelyUnroll) OuterL = L; if (OuterL) { - ScalarEvolution *SE = PP->getAnalysisIfAvailable(); - simplifyLoop(OuterL, DT, LI, PP, /*AliasAnalysis*/ 0, SE); - formLCSSARecursively(*OuterL, *DT, SE); + simplifyLoop(OuterL, DT, LI, PP, /*AliasAnalysis*/ 0, + PP->getAnalysisIfAvailable()); } }