aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2021-12-27 13:38:11 -0500
committerSanjay Patel <spatel@rotateright.com>2021-12-27 13:41:50 -0500
commit773ab3c6655f4d2beec25bb3516b4d4fe2eea990 (patch)
treee9c0e3d1562c8c7920d66eb63909c9309ea0d1dc /llvm/lib/Analysis/ValueTracking.cpp
parentc49dcb4830df1ef113bfa1c42132f47b0979789c (diff)
downloadllvm-773ab3c6655f4d2beec25bb3516b4d4fe2eea990.zip
llvm-773ab3c6655f4d2beec25bb3516b4d4fe2eea990.tar.gz
llvm-773ab3c6655f4d2beec25bb3516b4d4fe2eea990.tar.bz2
[Analysis] remove unneeded casts; NFC
The callee does the casting too; this matches a plain call later in the same function for 'shl'.
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index fc378f9..7a1caed 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -6762,11 +6762,13 @@ static void setLimitsForBinOp(const BinaryOperator &BO, APInt &Lower,
switch (BO.getOpcode()) {
case Instruction::Add:
if (match(BO.getOperand(1), m_APInt(C)) && !C->isZero()) {
+ bool HasNSW = IIQ.hasNoSignedWrap(&BO);
+ bool HasNUW = IIQ.hasNoUnsignedWrap(&BO);
// FIXME: If we have both nuw and nsw, we should reduce the range further.
- if (IIQ.hasNoUnsignedWrap(cast<OverflowingBinaryOperator>(&BO))) {
+ if (HasNUW) {
// 'add nuw x, C' produces [C, UINT_MAX].
Lower = *C;
- } else if (IIQ.hasNoSignedWrap(cast<OverflowingBinaryOperator>(&BO))) {
+ } else if (HasNSW) {
if (C->isNegative()) {
// 'add nsw x, -C' produces [SINT_MIN, SINT_MAX - C].
Lower = APInt::getSignedMinValue(Width);