[llvm] d374001 - [ValueTracking] computeKnownBitsFromShiftOperator - remove non-zero shift amount handling.
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Feb 24 05:49:55 PST 2021
Author: Simon Pilgrim
Date: 2021-02-24T13:49:13Z
New Revision: d37400168ce2f1f9ccc91847431f5b8c020a7d67
URL: https://github.com/llvm/llvm-project/commit/d37400168ce2f1f9ccc91847431f5b8c020a7d67
DIFF: https://github.com/llvm/llvm-project/commit/d37400168ce2f1f9ccc91847431f5b8c020a7d67.diff
LOG: [ValueTracking] computeKnownBitsFromShiftOperator - remove non-zero shift amount handling.
This no longer affects any tests after the improvements to the KnownBits shift helpers.
Added:
Modified:
llvm/lib/Analysis/ValueTracking.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 9e5c8b49767e..a979a7d8cbf2 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -1018,15 +1018,10 @@ static void computeKnownBitsFromShiftOperator(
// If we know the shifter operand is nonzero, we can sometimes infer more
// known bits. However this is expensive to compute, so be lazy about it and
// only compute it when absolutely necessary.
- Optional<bool> ShifterOperandIsNonZero;
-
// Early exit if we can't constrain any well-defined shift amount.
if (!(ShiftAmtKZ & (PowerOf2Ceil(BitWidth) - 1)) &&
!(ShiftAmtKO & (PowerOf2Ceil(BitWidth) - 1))) {
- ShifterOperandIsNonZero =
- isKnownNonZero(I->getOperand(1), DemandedElts, Depth + 1, Q);
- if (!*ShifterOperandIsNonZero)
- return;
+ return;
}
Known.Zero.setAllBits();
@@ -1038,17 +1033,6 @@ static void computeKnownBitsFromShiftOperator(
continue;
if ((ShiftAmt | ShiftAmtKO) != ShiftAmt)
continue;
- // If we know the shifter is nonzero, we may be able to infer more known
- // bits. This check is sunk down as far as possible to avoid the expensive
- // call to isKnownNonZero if the cheaper checks above fail.
- if (ShiftAmt == 0) {
- if (!ShifterOperandIsNonZero.hasValue())
- ShifterOperandIsNonZero =
- isKnownNonZero(I->getOperand(1), DemandedElts, Depth + 1, Q);
- if (*ShifterOperandIsNonZero)
- continue;
- }
-
Known = KnownBits::commonBits(
Known, KF(Known2, KnownBits::makeConstant(APInt(32, ShiftAmt))));
}
More information about the llvm-commits
mailing list