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,  | 

