[llvm] 23e3e10 - [GVN] GVNPass::ValueTable::lookupOrAdd - merge isa<> and cast<> into single dyn_cast<>. NFCI.

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 14 11:49:03 PST 2022


Author: Simon Pilgrim
Date: 2022-12-14T19:47:57Z
New Revision: 23e3e107dceb1fd8c1fb81d1229f6aab09a1fce2

URL: https://github.com/llvm/llvm-project/commit/23e3e107dceb1fd8c1fb81d1229f6aab09a1fce2
DIFF: https://github.com/llvm/llvm-project/commit/23e3e107dceb1fd8c1fb81d1229f6aab09a1fce2.diff

LOG: [GVN] GVNPass::ValueTable::lookupOrAdd - merge isa<> and cast<> into single dyn_cast<>. NFCI.

Avoid calling separate isa<> and cast<> if we can - dyn_cast<> can more efficiently check for a safe cast and give the casted pointer.

Added: 
    

Modified: 
    llvm/lib/Transforms/Scalar/GVN.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Transforms/Scalar/GVN.cpp b/llvm/lib/Transforms/Scalar/GVN.cpp
index d51fee78597b..96c0aa16e085 100644
--- a/llvm/lib/Transforms/Scalar/GVN.cpp
+++ b/llvm/lib/Transforms/Scalar/GVN.cpp
@@ -580,12 +580,12 @@ uint32_t GVNPass::ValueTable::lookupOrAdd(Value *V) {
   if (VI != valueNumbering.end())
     return VI->second;
 
-  if (!isa<Instruction>(V)) {
+  auto *I = dyn_cast<Instruction>(V);
+  if (!I) {
     valueNumbering[V] = nextValueNumber;
     return nextValueNumber++;
   }
 
-  Instruction* I = cast<Instruction>(V);
   Expression exp;
   switch (I->getOpcode()) {
     case Instruction::Call:


        


More information about the llvm-commits mailing list