aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorNikita Popov <npopov@redhat.com>2022-10-04 11:02:31 +0200
committerNikita Popov <npopov@redhat.com>2022-10-04 11:02:31 +0200
commit45dec8f5fdd82cf1ed456b0fa860774a26c0acca (patch)
tree523983754717eddf9dad646e2cac376a9f6dd755 /llvm/lib/Analysis/ValueTracking.cpp
parent9c0314f54ed693f4eeb38c6337c5c990e1594068 (diff)
downloadllvm-45dec8f5fdd82cf1ed456b0fa860774a26c0acca.zip
llvm-45dec8f5fdd82cf1ed456b0fa860774a26c0acca.tar.gz
llvm-45dec8f5fdd82cf1ed456b0fa860774a26c0acca.tar.bz2
[ValueTracking] Avoid known bits fallthrough for freeze (NFCI)
The known bits logic should never produce a better result than the direct recursive non-zero query here, so skip the fallthrough.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index e7c7d63..81f606f 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -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;