]> granicus.if.org Git - llvm/commitdiff
[LCSSA] Add expensive verification of LCSSA form for sub-loops.
authorFlorian Hahn <flo@fhahn.com>
Sat, 2 Feb 2019 14:42:27 +0000 (14:42 +0000)
committerFlorian Hahn <flo@fhahn.com>
Sat, 2 Feb 2019 14:42:27 +0000 (14:42 +0000)
This assertion makes sure all sub-loops are in LCSSA form before
bringing their parent in LCSSA form. This precondition was added to
formLCSSA in D56848.

Reviewers: davide, efriedma, mzolotukhin

Reviewed By: davide

Differential Revision: https://reviews.llvm.org/D56921

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352958 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/LCSSA.cpp

index 3a089775c56d9085beba0981e547985aacb67f22..27067668a8d85d9ac996f20d9ac43757e0449c31 100644 (file)
@@ -305,6 +305,12 @@ bool llvm::formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI,
                      ScalarEvolution *SE) {
   bool Changed = false;
 
+#ifdef EXPENSIVE_CHECKS
+  // Verify all sub-loops are in LCSSA form already.
+  for (Loop *SubLoop: L)
+    assert(SubLoop->isRecursivelyLCSSAForm(DT, *LI) && "Subloop not in LCSSA!");
+#endif
+
   SmallVector<BasicBlock *, 8> ExitBlocks;
   L.getExitBlocks(ExitBlocks);
   if (ExitBlocks.empty())