[LoopUnroll] Fix not-rotated.ll by adding back a limitation was unintentionally
authorWhitney Tsang <whitneyt@ca.ibm.com>
Fri, 29 May 2020 03:02:27 +0000 (03:02 +0000)
committerWhitney Tsang <whitneyt@ca.ibm.com>
Fri, 29 May 2020 03:05:58 +0000 (03:05 +0000)
removed in https://reviews.llvm.org/D80477

llvm/lib/Transforms/Utils/LoopUnroll.cpp

index 4525681..06e9f7f 100644 (file)
@@ -326,6 +326,11 @@ LoopUnrollResult llvm::UnrollLoop(Loop *L, UnrollLoopOptions ULO, LoopInfo *LI,
                          "branch in latch or a single exiting block.\n");
     return LoopUnrollResult::Unmodified;
   }
+  if (LatchBI->isConditional() && LatchBI != ExitingBI) {
+    LLVM_DEBUG(
+        dbgs() << "Can't unroll; a conditional latch must exit the loop");
+    return LoopUnrollResult::Unmodified;
+  }
   LLVM_DEBUG(dbgs() << "  Exiting Block = " << ExitingBI->getParent()->getName()
                     << "\n");