diff options
| author | Samuel Benzaquen <sbenza@google.com> | 2016-05-25 16:19:23 +0000 |
|---|---|---|
| committer | Samuel Benzaquen <sbenza@google.com> | 2016-05-25 16:19:23 +0000 |
| commit | 7663d3be15c21158ebf17941faa75b1bd8ee830d (patch) | |
| tree | a37487667b72597b3799a36f8adb579daccbd78e /clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h | |
| parent | f5f140db28a56b8682b9e081e9e554edc389ce34 (diff) | |
| download | bcm5719-llvm-7663d3be15c21158ebf17941faa75b1bd8ee830d.tar.gz bcm5719-llvm-7663d3be15c21158ebf17941faa75b1bd8ee830d.zip | |
Speed up check by using a recursive visitor.
Summary:
Use a recursive visitor instead of forEachDescendant() matcher.
The latter requires several layers of virtual function calls for each node and
it is more expensive than the visitor.
Benchmark results show improvement of ~6% walltime in clang-tidy.
Reviewers: alexfh
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D20597
llvm-svn: 270714
Diffstat (limited to 'clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h')
| -rw-r--r-- | clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h | 10 |
1 files changed, 0 insertions, 10 deletions
diff --git a/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h b/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h index 1231cb139ea..ed40330c3cd 100644 --- a/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h +++ b/clang-tools-extra/clang-tidy/readability/FunctionSizeCheck.h @@ -34,21 +34,11 @@ public: void storeOptions(ClangTidyOptions::OptionMap &Opts) override; void registerMatchers(ast_matchers::MatchFinder *Finder) override; void check(const ast_matchers::MatchFinder::MatchResult &Result) override; - void onEndOfTranslationUnit() override; private: - struct FunctionInfo { - FunctionInfo() : Lines(0), Statements(0), Branches(0) {} - unsigned Lines; - unsigned Statements; - unsigned Branches; - }; - const unsigned LineThreshold; const unsigned StatementThreshold; const unsigned BranchThreshold; - - llvm::DenseMap<const FunctionDecl *, FunctionInfo> FunctionInfos; }; } // namespace readability |

