[llvm] de059a2 - [NFC][ValueTracking] Remove calls to computeKnownBits for non-intrinsic CallInsts in isKnownNonZeroFromOperator

Dhruv Chawla via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 16 10:22:55 PDT 2023


Author: Dhruv Chawla
Date: 2023-08-16T22:52:13+05:30
New Revision: de059a2ea299845b3586d6b6e1b2441b65b1a556

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

LOG: [NFC][ValueTracking] Remove calls to computeKnownBits for non-intrinsic CallInsts in isKnownNonZeroFromOperator

For non-intrinsic CallInsts, computeKnownBits only handles range
metadata and checking getReturnedArgOperand(). Both of these are now
handled in isKnownNonZero, so there is no need to fall through to
a call to computeKnownBits anymore.

Differential Revision: https://reviews.llvm.org/D158095

Added: 
    

Modified: 
    llvm/lib/Analysis/ValueTracking.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 5711de18723311..02ea7a3369058b 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -2729,6 +2729,9 @@ static bool isKnownNonZeroFromOperator(const Operator *I,
         return true;
       if (const auto *RP = getArgumentAliasingToReturnedPointer(Call, true))
         return isKnownNonZero(RP, Depth, Q);
+    } else if (const Value *RV = cast<CallBase>(I)->getReturnedArgOperand()) {
+      if (isKnownNonZero(RV, Depth, Q))
+        return true;
     }
 
     if (auto *II = dyn_cast<IntrinsicInst>(I)) {
@@ -2791,8 +2794,10 @@ static bool isKnownNonZeroFromOperator(const Operator *I,
       default:
         break;
       }
+      break;
     }
-    break;
+
+    return false;
   }
 
   KnownBits Known(BitWidth);


        


More information about the llvm-commits mailing list