Author: alexfh Date: Tue May 16 12:28:17 2017 New Revision: 303191 URL: http://llvm.org/viewvc/llvm-project?rev=303191&view=rev Log: [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. Modified: clang-tools-extra/trunk/clang-tidy/performance/UnnecessaryValueParamCheck.cpp Modified: clang-tools-extra/trunk/clang-tidy/performance/UnnecessaryValueParamCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/performance/UnnecessaryValueParamCheck.cpp?rev=303191&r1=303190&r2=303191&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/performance/UnnecessaryValueParamCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/performance/UnnecessaryValueParamCheck.cpp Tue May 16 12:28:17 2017 @@ -68,15 +68,14 @@ UnnecessaryValueParamCheck::UnnecessaryV 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); } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits