[ValueTracking] Avoid known bits fallthrough for freeze (NFCI)
authorNikita Popov <npopov@redhat.com>
Tue, 4 Oct 2022 09:02:31 +0000 (11:02 +0200)
committerNikita Popov <npopov@redhat.com>
Tue, 4 Oct 2022 09:02:31 +0000 (11:02 +0200)
The known bits logic should never produce a better result than
the direct recursive non-zero query here, so skip the fallthrough.

llvm/lib/Analysis/ValueTracking.cpp

index e7c7d63..81f606f 100644 (file)
@@ -2737,10 +2737,9 @@ bool isKnownNonZero(const Value *V, const APInt &DemandedElts, unsigned Depth,
     }
     break;
   case Instruction::Freeze:
-    if (isKnownNonZero(I->getOperand(0), Depth, Q) &&
-        isGuaranteedNotToBePoison(I->getOperand(0), Q.AC, Q.CxtI, Q.DT, Depth))
-      return true;
-    break;
+    return isKnownNonZero(I->getOperand(0), Depth, Q) &&
+           isGuaranteedNotToBePoison(I->getOperand(0), Q.AC, Q.CxtI, Q.DT,
+                                     Depth);
   case Instruction::Call:
     if (cast<CallInst>(I)->getIntrinsicID() == Intrinsic::vscale)
       return true;