Author: Victor Chernyakin Date: 2026-01-31T09:43:51-08:00 New Revision: 83003ab29390bce3a3bb21414a14ec72a97ee4a9
URL: https://github.com/llvm/llvm-project/commit/83003ab29390bce3a3bb21414a14ec72a97ee4a9 DIFF: https://github.com/llvm/llvm-project/commit/83003ab29390bce3a3bb21414a14ec72a97ee4a9.diff LOG: [clang-tidy] Speed up `llvm-prefer-isa-or-dyn-cast-in-conditionals` (#178997) Same approach as described in #178829. ```txt ---User Time--- --System Time-- --User+System-- ---Wall Time--- --- Name --- Status quo: 0.2031 (100.0%) 0.0469 (100.0%) 0.2500 (100.0%) 0.2635 (100.0%) llvm-prefer-isa-or-dyn-cast-in-conditionals With this change: 0.0312 (100.0%) 0.0312 (100.0%) 0.0190 (100.0%) llvm-prefer-isa-or-dyn-cast-in-conditionals ``` (I think `--enable-check-profile` doesn't report any system time after this change because it's too small). Added: Modified: clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp Removed: ################################################################################ diff --git a/clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp b/clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp index 8966745eb44a7..7c9833aa6ee24 100644 --- a/clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp +++ b/clang-tools-extra/clang-tidy/llvm/PreferIsaOrDynCastInConditionalsCheck.cpp @@ -46,16 +46,17 @@ void PreferIsaOrDynCastInConditionalsCheck::registerMatchers( hasArgument(0, mapAnyOf(declRefExpr, cxxMemberCallExpr).bind("arg"))) .bind("rhs"); - Finder->addMatcher( - stmt(anyOf(ifStmt(CondExprOrCondVar), forStmt(CondExprOrCondVar), - whileStmt(CondExprOrCondVar), doStmt(CondExpr), - binaryOperator(unless(isExpansionInFileMatching( - "llvm/include/llvm/Support/Casting.h")), - hasOperatorName("&&"), - hasLHS(implicitCastExpr().bind("lhs")), - hasRHS(ignoringImpCasts(CallWithBindedArg))) - .bind("and"))), - this); + Finder->addMatcher(ifStmt(CondExprOrCondVar), this); + Finder->addMatcher(forStmt(CondExprOrCondVar), this); + Finder->addMatcher(whileStmt(CondExprOrCondVar), this); + Finder->addMatcher(doStmt(CondExpr), this); + Finder->addMatcher(binaryOperator(hasRHS(ignoringImpCasts(CallWithBindedArg)), + hasLHS(implicitCastExpr().bind("lhs")), + hasOperatorName("&&"), + unless(isExpansionInFileMatching( + "llvm/include/llvm/Support/Casting.h"))) + .bind("and"), + this); } void PreferIsaOrDynCastInConditionalsCheck::check( _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
