diff options
author | Michael Zolotukhin <mzolotukhin@apple.com> | 2016-07-27 23:35:53 +0000 |
---|---|---|
committer | Michael Zolotukhin <mzolotukhin@apple.com> | 2016-07-27 23:35:53 +0000 |
commit | ff5ce639deb23595b4c4c9b995d6d6d47dda64fb (patch) | |
tree | d611d99b01d7880c96d1b2b7fb06f8f4903fc15b /llvm/lib | |
parent | dbd35c44d4fe5e4f092ecdd2d2ca1c2205f7d2c1 (diff) | |
download | bcm5719-llvm-ff5ce639deb23595b4c4c9b995d6d6d47dda64fb.tar.gz bcm5719-llvm-ff5ce639deb23595b4c4c9b995d6d6d47dda64fb.zip |
Add verifyAnalysis for LCSSA.
Summary:
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.
Reviewers: chandlerc, sanjoy, hfinkel
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D22888
llvm-svn: 276941
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Transforms/Utils/LCSSA.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Transforms/Utils/LCSSA.cpp b/llvm/lib/Transforms/Utils/LCSSA.cpp index 0d5a25b8ebc..1c8990fcc78 100644 --- a/llvm/lib/Transforms/Utils/LCSSA.cpp +++ b/llvm/lib/Transforms/Utils/LCSSA.cpp @@ -315,6 +315,11 @@ struct LCSSAWrapperPass : public FunctionPass { 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, |