diff --git a/lib/SILOptimizer/LoopTransforms/LoopUnroll.cpp b/lib/SILOptimizer/LoopTransforms/LoopUnroll.cpp index b2a1cf84da4..b9f99872b11 100644 --- a/lib/SILOptimizer/LoopTransforms/LoopUnroll.cpp +++ b/lib/SILOptimizer/LoopTransforms/LoopUnroll.cpp @@ -74,7 +74,8 @@ void LoopCloner::cloneLoop() { Loop->getExitBlocks(ExitBlocks); // Clone the entire loop. - cloneReachableBlocks(Loop->getHeader(), ExitBlocks); + cloneReachableBlocks(Loop->getHeader(), ExitBlocks, + /*insertAfter*/Loop->getLoopLatch()); } /// Determine the number of iterations the loop is at most executed. The loop @@ -93,7 +94,7 @@ static Optional getMaxLoopTripCount(SILLoop *Loop, if (!Loop->isLoopExiting(Latch)) return None; - // Get the loop exit condition. + // Get the loop exit condition. auto *CondBr = dyn_cast(Latch->getTerminator()); if (!CondBr) return None;