From: Florian Hahn Date: Sat, 2 Feb 2019 14:42:27 +0000 (+0000) Subject: [LCSSA] Add expensive verification of LCSSA form for sub-loops. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df8b0228421808fcdc64b13ca712a2897353094d;p=llvm [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 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@352958 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/LCSSA.cpp b/lib/Transforms/Utils/LCSSA.cpp index 3a089775c56..27067668a8d 100644 --- a/lib/Transforms/Utils/LCSSA.cpp +++ b/lib/Transforms/Utils/LCSSA.cpp @@ -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 ExitBlocks; L.getExitBlocks(ExitBlocks); if (ExitBlocks.empty())