diff options
| author | Chen Zheng <czhengsz@cn.ibm.com> | 2019-10-08 03:00:31 +0000 |
|---|---|---|
| committer | Chen Zheng <czhengsz@cn.ibm.com> | 2019-10-08 03:00:31 +0000 |
| commit | 9806a1d5f90a21a16c4bfc6d4bb10e0d5b870573 (patch) | |
| tree | 729bb1f5686ce6717595d95c52d0571074018956 | |
| parent | a58ddba1137dc11462955a5a4aecda112923c8a8 (diff) | |
| download | bcm5719-llvm-9806a1d5f90a21a16c4bfc6d4bb10e0d5b870573.tar.gz bcm5719-llvm-9806a1d5f90a21a16c4bfc6d4bb10e0d5b870573.zip | |
[ConstantRange] [NFC] replace addWithNoSignedWrap with addWithNoWrap.
llvm-svn: 374016
| -rw-r--r-- | llvm/include/llvm/IR/ConstantRange.h | 4 | ||||
| -rw-r--r-- | llvm/lib/IR/ConstantRange.cpp | 10 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 4 | ||||
| -rw-r--r-- | llvm/unittests/IR/ConstantRangeTest.cpp | 26 |
4 files changed, 2 insertions, 42 deletions
diff --git a/llvm/include/llvm/IR/ConstantRange.h b/llvm/include/llvm/IR/ConstantRange.h index ce4b851cb45..964f9e8e9bc 100644 --- a/llvm/include/llvm/IR/ConstantRange.h +++ b/llvm/include/llvm/IR/ConstantRange.h @@ -338,10 +338,6 @@ public: ConstantRange addWithNoWrap(const ConstantRange &Other, unsigned NoWrapKind, PreferredRangeType RangeType = Smallest) const; - /// Return a new range representing the possible values resulting from a - /// known NSW addition of a value in this range and \p Other constant. - ConstantRange addWithNoSignedWrap(const APInt &Other) const; - /// Return a new range representing the possible values resulting /// from a subtraction of a value in this range and a value in \p Other. ConstantRange sub(const ConstantRange &Other) const; diff --git a/llvm/lib/IR/ConstantRange.cpp b/llvm/lib/IR/ConstantRange.cpp index 8ea688ff1f0..592042bc0c7 100644 --- a/llvm/lib/IR/ConstantRange.cpp +++ b/llvm/lib/IR/ConstantRange.cpp @@ -866,16 +866,6 @@ ConstantRange ConstantRange::addWithNoWrap(const ConstantRange &Other, return Result; } -ConstantRange ConstantRange::addWithNoSignedWrap(const APInt &Other) const { - // Calculate the subset of this range such that "X + Other" is - // guaranteed not to wrap (overflow) for all X in this subset. - auto NSWRange = ConstantRange::makeExactNoWrapRegion( - BinaryOperator::Add, Other, OverflowingBinaryOperator::NoSignedWrap); - auto NSWConstrainedRange = intersectWith(NSWRange); - - return NSWConstrainedRange.add(ConstantRange(Other)); -} - ConstantRange ConstantRange::sub(const ConstantRange &Other) const { if (isEmptySet() || Other.isEmptySet()) diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp index 1aaa0265bad..c55783ac215 100644 --- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -1839,8 +1839,8 @@ void WidenIV::calculatePostIncRange(Instruction *NarrowDef, auto CmpRHSRange = SE->getSignedRange(SE->getSCEV(CmpRHS)); auto CmpConstrainedLHSRange = ConstantRange::makeAllowedICmpRegion(P, CmpRHSRange); - auto NarrowDefRange = - CmpConstrainedLHSRange.addWithNoSignedWrap(*NarrowDefRHS); + auto NarrowDefRange = CmpConstrainedLHSRange.addWithNoWrap( + *NarrowDefRHS, OverflowingBinaryOperator::NoSignedWrap); updatePostIncRangeInfo(NarrowDef, NarrowUser, NarrowDefRange); }; diff --git a/llvm/unittests/IR/ConstantRangeTest.cpp b/llvm/unittests/IR/ConstantRangeTest.cpp index 7c43d2fb09c..58a25166d83 100644 --- a/llvm/unittests/IR/ConstantRangeTest.cpp +++ b/llvm/unittests/IR/ConstantRangeTest.cpp @@ -643,32 +643,6 @@ TEST_F(ConstantRangeTest, Add) { ConstantRange(APInt(16, 0xe))); } -TEST_F(ConstantRangeTest, AddWithNoSignedWrap) { - EXPECT_EQ(Empty.addWithNoSignedWrap(APInt(16, 1)), Empty); - EXPECT_EQ(Full.addWithNoSignedWrap(APInt(16, 1)), - ConstantRange(APInt(16, INT16_MIN+1), APInt(16, INT16_MIN))); - EXPECT_EQ(ConstantRange(APInt(8, -50), APInt(8, 50)).addWithNoSignedWrap(APInt(8, 10)), - ConstantRange(APInt(8, -40), APInt(8, 60))); - EXPECT_EQ(ConstantRange(APInt(8, -50), APInt(8, 120)).addWithNoSignedWrap(APInt(8, 10)), - ConstantRange(APInt(8, -40), APInt(8, INT8_MIN))); - EXPECT_EQ(ConstantRange(APInt(8, 120), APInt(8, -10)).addWithNoSignedWrap(APInt(8, 5)), - ConstantRange(APInt(8, 125), APInt(8, -5))); - EXPECT_EQ(ConstantRange(APInt(8, 120), APInt(8, -120)).addWithNoSignedWrap(APInt(8, 10)), - ConstantRange(APInt(8, INT8_MIN+10), APInt(8, -110))); - - EXPECT_EQ(Empty.addWithNoSignedWrap(APInt(16, -1)), Empty); - EXPECT_EQ(Full.addWithNoSignedWrap(APInt(16, -1)), - ConstantRange(APInt(16, INT16_MIN), APInt(16, INT16_MAX))); - EXPECT_EQ(ConstantRange(APInt(8, -50), APInt(8, 50)).addWithNoSignedWrap(APInt(8, -10)), - ConstantRange(APInt(8, -60), APInt(8, 40))); - EXPECT_EQ(ConstantRange(APInt(8, -120), APInt(8, 50)).addWithNoSignedWrap(APInt(8, -10)), - ConstantRange(APInt(8, INT8_MIN), APInt(8, 40))); - EXPECT_EQ(ConstantRange(APInt(8, 120), APInt(8, -120)).addWithNoSignedWrap(APInt(8, -5)), - ConstantRange(APInt(8, 115), APInt(8, -125))); - EXPECT_EQ(ConstantRange(APInt(8, 120), APInt(8, -120)).addWithNoSignedWrap(APInt(8, -10)), - ConstantRange(APInt(8, 110), APInt(8, INT8_MIN-10))); -} - template <typename Fn1, typename Fn2> static void TestAddWithNoSignedWrapExhaustive(Fn1 RangeFn, Fn2 IntFn) { unsigned Bits = 4; |

