From 509b48a64a1baf497a85a2a1f86d9141b18cb1e1 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sat, 2 Feb 2019 14:42:27 +0000 Subject: [PATCH] [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 llvm-svn: 352958 --- llvm/lib/Transforms/Utils/LCSSA.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/llvm/lib/Transforms/Utils/LCSSA.cpp b/llvm/lib/Transforms/Utils/LCSSA.cpp index 3a08977..2706766 100644 --- a/llvm/lib/Transforms/Utils/LCSSA.cpp +++ b/llvm/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()) -- 2.7.4