[PATCH] D156141: [NFC][ValueTracking]: Move some code from isKnownNonZero to isKnownNonZeroFromOperator
    Nikita Popov via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Tue Jul 25 01:13:04 PDT 2023
    
    
  
nikic added inline comments.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:2459-2461
+    if (PointerType *PtrTy = dyn_cast<PointerType>(I->getType());
+        PtrTy && PtrTy->getAddressSpace() == 0)
+      return true;
----------------
Alloca always returns a pointer.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:2696
     return false;
   case Instruction::Call:
+    if (const auto *Call = dyn_cast<CallBase>(I)) {
----------------
Should add `case Instruction::Invoke:` here as well.
================
Comment at: llvm/lib/Analysis/ValueTracking.cpp:2697
   case Instruction::Call:
+    if (const auto *Call = dyn_cast<CallBase>(I)) {
+      if (Call->isReturnNonNull())
----------------
Can be `cast<>`. We should probably also guard this against `I->getType()->isPointerTy()`.
Repository:
  rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D156141/new/
https://reviews.llvm.org/D156141
    
    
More information about the llvm-commits
mailing list