[llvm] 1566380 - [ValueTracking] Switch analyzeKnownBitsFromAndXorOr() to use SimplifyQuery (NFC)
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 30 05:06:15 PST 2023
Author: Nikita Popov
Date: 2023-11-30T14:06:05+01:00
New Revision: 1566380e6b47d7876c0f3eaa105097063dbe7cc8
URL: https://github.com/llvm/llvm-project/commit/1566380e6b47d7876c0f3eaa105097063dbe7cc8
DIFF: https://github.com/llvm/llvm-project/commit/1566380e6b47d7876c0f3eaa105097063dbe7cc8.diff
LOG: [ValueTracking] Switch analyzeKnownBitsFromAndXorOr() to use SimplifyQuery (NFC)
It already used it internally, make the public API use it as well.
Added:
Modified:
llvm/include/llvm/Analysis/ValueTracking.h
llvm/lib/Analysis/ValueTracking.cpp
llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/ValueTracking.h b/llvm/include/llvm/Analysis/ValueTracking.h
index a04562dc874be51..f353eec8c89bb99 100644
--- a/llvm/include/llvm/Analysis/ValueTracking.h
+++ b/llvm/include/llvm/Analysis/ValueTracking.h
@@ -94,11 +94,10 @@ void computeKnownBitsFromContext(const Value *V, KnownBits &Known,
unsigned Depth, const SimplifyQuery &Q);
/// Using KnownBits LHS/RHS produce the known bits for logic op (and/xor/or).
-KnownBits analyzeKnownBitsFromAndXorOr(
- const Operator *I, const KnownBits &KnownLHS, const KnownBits &KnownRHS,
- unsigned Depth, const DataLayout &DL, AssumptionCache *AC = nullptr,
- const Instruction *CxtI = nullptr, const DominatorTree *DT = nullptr,
- bool UseInstrInfo = true);
+KnownBits analyzeKnownBitsFromAndXorOr(const Operator *I,
+ const KnownBits &KnownLHS,
+ const KnownBits &KnownRHS,
+ unsigned Depth, const SimplifyQuery &SQ);
/// Return true if LHS and RHS have no common bits set.
bool haveNoCommonBitsSet(const WithCache<const Value *> &LHSCache,
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 71884dd0fbd559b..250ce739ea5147c 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -868,17 +868,17 @@ getKnownBitsFromAndXorOr(const Operator *I, const APInt &DemandedElts,
}
// Public so this can be used in `SimplifyDemandedUseBits`.
-KnownBits llvm::analyzeKnownBitsFromAndXorOr(
- const Operator *I, const KnownBits &KnownLHS, const KnownBits &KnownRHS,
- unsigned Depth, const DataLayout &DL, AssumptionCache *AC,
- const Instruction *CxtI, const DominatorTree *DT, bool UseInstrInfo) {
+KnownBits llvm::analyzeKnownBitsFromAndXorOr(const Operator *I,
+ const KnownBits &KnownLHS,
+ const KnownBits &KnownRHS,
+ unsigned Depth,
+ const SimplifyQuery &SQ) {
auto *FVTy = dyn_cast<FixedVectorType>(I->getType());
APInt DemandedElts =
FVTy ? APInt::getAllOnes(FVTy->getNumElements()) : APInt(1, 1);
- return getKnownBitsFromAndXorOr(
- I, DemandedElts, KnownLHS, KnownRHS, Depth,
- SimplifyQuery(DL, DT, AC, safeCxtI(I, CxtI), UseInstrInfo));
+ return getKnownBitsFromAndXorOr(I, DemandedElts, KnownLHS, KnownRHS, Depth,
+ SQ);
}
ConstantRange llvm::getVScaleRange(const Function *F, unsigned BitWidth) {
diff --git a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
index 5e7ed7e165eceb1..a4b17372e44b3e7 100644
--- a/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
+++ b/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp
@@ -207,7 +207,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseBits(Value *V, APInt DemandedMask,
assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?");
Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown,
- Depth, DL, &AC, CxtI, &DT);
+ Depth, SQ.getWithInstruction(CxtI));
// If the client is only demanding bits that we know, return the known
// constant.
@@ -240,7 +240,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseBits(Value *V, APInt DemandedMask,
assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?");
Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown,
- Depth, DL, &AC, CxtI, &DT);
+ Depth, SQ.getWithInstruction(CxtI));
// If the client is only demanding bits that we know, return the known
// constant.
@@ -279,7 +279,7 @@ Value *InstCombinerImpl::SimplifyDemandedUseBits(Value *V, APInt DemandedMask,
assert(!LHSKnown.hasConflict() && "Bits known to be one AND zero?");
Known = analyzeKnownBitsFromAndXorOr(cast<Operator>(I), LHSKnown, RHSKnown,
- Depth, DL, &AC, CxtI, &DT);
+ Depth, SQ.getWithInstruction(CxtI));
// If the client is only demanding bits that we know, return the known
// constant.
More information about the llvm-commits
mailing list