summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils/LCSSA.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2019-02-02 14:42:27 +0000
committerFlorian Hahn <flo@fhahn.com>2019-02-02 14:42:27 +0000
commit509b48a64a1baf497a85a2a1f86d9141b18cb1e1 (patch)
tree521b1590f282a012db62014a6f1708c5f0502361 /llvm/lib/Transforms/Utils/LCSSA.cpp
parent44d6f9e131980f7e061dfb42a7a8bc622cfe4273 (diff)
downloadbcm5719-llvm-509b48a64a1baf497a85a2a1f86d9141b18cb1e1.tar.gz
bcm5719-llvm-509b48a64a1baf497a85a2a1f86d9141b18cb1e1.zip
[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
Diffstat (limited to 'llvm/lib/Transforms/Utils/LCSSA.cpp')
-rw-r--r--llvm/lib/Transforms/Utils/LCSSA.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/LCSSA.cpp b/llvm/lib/Transforms/Utils/LCSSA.cpp
index 3a089775c56..27067668a8d 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<BasicBlock *, 8> ExitBlocks;
L.getExitBlocks(ExitBlocks);
if (ExitBlocks.empty())
OpenPOWER on IntegriCloud