aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorYingwei Zheng <dtcxzyw2333@gmail.com>2025-02-05 05:27:05 +0800
committerGitHub <noreply@github.com>2025-02-05 05:27:05 +0800
commit837bf325528440ab0a73b31f810a39d6f8bec53e (patch)
tree1504e270e99e4e4c949623e039a2277460efdcb4 /llvm/lib/Analysis/ValueTracking.cpp
parentbbc90f899a464048eb6fef2626fcaae66eecee06 (diff)
downloadllvm-837bf325528440ab0a73b31f810a39d6f8bec53e.zip
llvm-837bf325528440ab0a73b31f810a39d6f8bec53e.tar.gz
llvm-837bf325528440ab0a73b31f810a39d6f8bec53e.tar.bz2
[ValueTracking] Remove unused `V ^ Mask == C` from `computeKnownBitsFromCmp`. NFCI. (#125666)
I believe it is unused since we always convert it into `V == Mask ^ C`. Code coverage: https://dtcxzyw.github.io/llvm-opt-benchmark/coverage/data/zyw/opt-ci/actions-runner/_work/llvm-opt-benchmark/llvm-opt-benchmark/llvm/llvm-project/llvm/lib/Analysis/ValueTracking.cpp.html#L706
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp10
1 files changed, 2 insertions, 8 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 55feb15..f495816 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -702,11 +702,6 @@ static void computeKnownBitsFromCmp(const Value *V, CmpInst::Predicate Pred,
Known.Zero |= ~*C;
if (match(Y, m_APInt(Mask)))
Known.One |= *C & ~*Mask;
- // assume(V ^ Mask = C)
- } else if (match(LHS, m_Xor(m_V, m_APInt(Mask))) &&
- match(RHS, m_APInt(C))) {
- // Equivalent to assume(V == Mask ^ C)
- Known = Known.unionWith(KnownBits::makeConstant(*C ^ *Mask));
// assume(V << ShAmt = C)
} else if (match(LHS, m_Shl(m_V, m_ConstantInt(ShAmt))) &&
match(RHS, m_APInt(C)) && ShAmt < BitWidth) {
@@ -10217,10 +10212,9 @@ void llvm::findValuesAffectedByCondition(
if (ICmpInst::isEquality(Pred)) {
if (HasRHSC) {
Value *Y;
- // (X & C) or (X | C) or (X ^ C).
+ // (X & C) or (X | C).
// (X << C) or (X >>_s C) or (X >>_u C).
- if (match(A, m_BitwiseLogic(m_Value(X), m_ConstantInt())) ||
- match(A, m_Shift(m_Value(X), m_ConstantInt())))
+ if (match(A, m_Shift(m_Value(X), m_ConstantInt())))
AddAffected(X);
else if (match(A, m_And(m_Value(X), m_Value(Y))) ||
match(A, m_Or(m_Value(X), m_Value(Y)))) {