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

Reply via email to