diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-05-16 17:28:17 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-05-16 17:28:17 +0000 |
commit | b215d473ddadc3199bd63656bf15daff329082b6 (patch) | |
tree | 58f1ee3d381fb4d4ae352d502b0f9179159ee05d /clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp | |
parent | 369f74c16b91ddb9c9bb626e3e48284beaf2d61e (diff) | |
download | bcm5719-llvm-b215d473ddadc3199bd63656bf15daff329082b6.tar.gz bcm5719-llvm-b215d473ddadc3199bd63656bf15daff329082b6.zip |
[clang-tidy] Speed up performance-unnecessary-value-param check
Moved slower matchers closer to the end. The total speed up on a large file I
was interested in is not huge, just about 10%, since the check seems to be doing
a lot in the check() method.
llvm-svn: 303191
Diffstat (limited to 'clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp b/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp index cde30a621bc..a34f7076ea7 100644 --- a/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp +++ b/clang-tools-extra/clang-tidy/performance/UnnecessaryValueParamCheck.cpp @@ -68,15 +68,14 @@ UnnecessaryValueParamCheck::UnnecessaryValueParamCheck( void UnnecessaryValueParamCheck::registerMatchers(MatchFinder *Finder) { const auto ExpensiveValueParamDecl = - parmVarDecl(hasType(hasCanonicalType(allOf(matchers::isExpensiveToCopy(), - unless(referenceType())))), + parmVarDecl(hasType(hasCanonicalType(allOf( + unless(referenceType()), matchers::isExpensiveToCopy()))), decl().bind("param")); Finder->addMatcher( - functionDecl(hasBody(stmt()), isDefinition(), + functionDecl(hasBody(stmt()), isDefinition(), unless(isImplicit()), unless(cxxMethodDecl(anyOf(isOverride(), isFinal()))), - unless(anyOf(isInstantiated(), isImplicit())), has(typeLoc(forEach(ExpensiveValueParamDecl))), - decl().bind("functionDecl")), + unless(isInstantiated()), decl().bind("functionDecl")), this); } |