[clang-tools-extra] 83003ab - [clang-tidy] Speed up `llvm-prefer-isa-or-dyn-cast-in-conditionals` (#178997)
via cfe-commits
cfe-commits at lists.llvm.org
Sat Jan 31 09:43:55 PST 2026
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(
More information about the cfe-commits
mailing list