diff options
author | Anna Zaks <ganna@apple.com> | 2012-03-22 21:06:03 +0000 |
---|---|---|
committer | Anna Zaks <ganna@apple.com> | 2012-03-22 21:06:03 +0000 |
commit | 06bf78c242acbad0d8908254d47e659a14512057 (patch) | |
tree | 0939b34dce9a3d104da1b377ac5cdd3f2eda7a15 /clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp | |
parent | 395c0dd70e889ef3e91c0dd9c2c784b5b82c9d2b (diff) | |
download | bcm5719-llvm-06bf78c242acbad0d8908254d47e659a14512057.tar.gz bcm5719-llvm-06bf78c242acbad0d8908254d47e659a14512057.zip |
[analyzer] Add stats useful for coverage investigations.
llvm-svn: 153280
Diffstat (limited to 'clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp')
-rw-r--r-- | clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp b/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp index 6269acddb08..b22f7ee87f7 100644 --- a/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp +++ b/clang/lib/StaticAnalyzer/Checkers/AnalyzerStatsChecker.cpp @@ -8,6 +8,7 @@ //===----------------------------------------------------------------------===// // This file reports various statistics about analyzer visitation. //===----------------------------------------------------------------------===// +#define DEBUG_TYPE "StatsChecker" #include "ClangSACheckers.h" #include "clang/StaticAnalyzer/Core/Checker.h" @@ -20,10 +21,16 @@ #include "clang/Basic/SourceManager.h" #include "llvm/ADT/SmallPtrSet.h" #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/Statistic.h" using namespace clang; using namespace ento; +STATISTIC(NumBlocks, + "The # of blocks in top level functions"); +STATISTIC(NumBlocksUnreachable, + "The # of unreachable blocks in analyzing top level functions"); + namespace { class AnalyzerStatsChecker : public Checker<check::EndAnalysis> { public: @@ -96,6 +103,9 @@ void AnalyzerStatsChecker::checkEndAnalysis(ExplodedGraph &G, } } + NumBlocksUnreachable += unreachable; + NumBlocks += total; + output << " -> Total CFGBlocks: " << total << " | Unreachable CFGBlocks: " << unreachable << " | Exhausted Block: " << (Eng.wasBlocksExhausted() ? "yes" : "no") |