aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis/ScalarEvolution.h
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2012-10-26 17:31:32 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2012-10-26 17:31:32 +0000
commitff18310274e872429cd06d679b1c8c8a14166328 (patch)
tree275ba33053533ae0caba3e63aec8d7b9c9daa6dc /include/llvm/Analysis/ScalarEvolution.h
parent12145f0339648426af2a33ed50c11de7cfcdbdf8 (diff)
downloadexternal_llvm-ff18310274e872429cd06d679b1c8c8a14166328.zip
external_llvm-ff18310274e872429cd06d679b1c8c8a14166328.tar.gz
external_llvm-ff18310274e872429cd06d679b1c8c8a14166328.tar.bz2
Add a basic verifier for SCEV's backedge taken counts.
Enabled with -verify-scev. This could be extended significantly but hopefully catches the common cases now. Note that it's not enabled by default in any configuration because the way it tries to distinguish SCEVs is still fragile and may produce false positives. Also the test-suite isn't clean yet, one example is that it fails if a pass drops an NSW bit but it's still present in SCEV's cached. Cleaning up all those cases will take some time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166786 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis/ScalarEvolution.h')
-rw-r--r--include/llvm/Analysis/ScalarEvolution.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h
index d2df670..b5025d3 100644
--- a/include/llvm/Analysis/ScalarEvolution.h
+++ b/include/llvm/Analysis/ScalarEvolution.h
@@ -874,6 +874,7 @@ namespace llvm {
virtual void releaseMemory();
virtual void getAnalysisUsage(AnalysisUsage &AU) const;
virtual void print(raw_ostream &OS, const Module* = 0) const;
+ virtual void verifyAnalysis() const;
private:
FoldingSet<SCEV> UniqueSCEVs;