[llvm] r352958 - [LCSSA] Add expensive verification of LCSSA form for sub-loops.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Sat Feb 2 06:42:27 PST 2019


Author: fhahn
Date: Sat Feb  2 06:42:27 2019
New Revision: 352958

URL: http://llvm.org/viewvc/llvm-project?rev=352958&view=rev
Log:
[LCSSA] Add expensive verification of LCSSA form for sub-loops.

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

Modified:
    llvm/trunk/lib/Transforms/Utils/LCSSA.cpp

Modified: llvm/trunk/lib/Transforms/Utils/LCSSA.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/LCSSA.cpp?rev=352958&r1=352957&r2=352958&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/LCSSA.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/LCSSA.cpp Sat Feb  2 06:42:27 2019
@@ -305,6 +305,12 @@ bool llvm::formLCSSA(Loop &L, DominatorT
                      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())




More information about the llvm-commits mailing list