[PATCH] D22888: Add verifyAnalysis for LCSSA.

Michael Zolotukhin via llvm-commits llvm-commits at lists.llvm.org
Wed Jul 27 15:25:22 PDT 2016


mzolotukhin created this revision.
mzolotukhin added reviewers: chandlerc, sanjoy, hfinkel.
mzolotukhin added a subscriber: llvm-commits.

LCSSAWrapperPass currently doesn't override verifyAnalysis method, so pass
manager doesn't verify LCSSA. This patch adds the method so that we start
verifying LCSSA between loop passes.

https://reviews.llvm.org/D22888

Files:
  lib/Transforms/Utils/LCSSA.cpp

Index: lib/Transforms/Utils/LCSSA.cpp
===================================================================
--- lib/Transforms/Utils/LCSSA.cpp
+++ lib/Transforms/Utils/LCSSA.cpp
@@ -315,6 +315,11 @@
   ScalarEvolution *SE;
 
   bool runOnFunction(Function &F) override;
+  void verifyAnalysis() const override {
+    assert(
+        all_of(*LI, [&](Loop *L) { return L->isRecursivelyLCSSAForm(*DT); }) &&
+        "LCSSA form is broken!");
+  };
 
   /// This transformation requires natural loop information & requires that
   /// loop preheaders be inserted into the CFG.  It maintains both of these,


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D22888.65818.patch
Type: text/x-patch
Size: 602 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160727/621f5fb7/attachment.bin>


More information about the llvm-commits mailing list