From: Chen Zheng Date: Tue, 8 Oct 2019 03:00:31 +0000 (+0000) Subject: [ConstantRange] [NFC] replace addWithNoSignedWrap with addWithNoWrap. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1d5e0a93b46832fe290b03faf0f87755253d07d1;p=llvm [ConstantRange] [NFC] replace addWithNoSignedWrap with addWithNoWrap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@374016 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/IR/ConstantRange.h b/include/llvm/IR/ConstantRange.h index ce4b851cb45..964f9e8e9bc 100644 --- a/include/llvm/IR/ConstantRange.h +++ b/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/lib/IR/ConstantRange.cpp b/lib/IR/ConstantRange.cpp index 8ea688ff1f0..592042bc0c7 100644 --- a/lib/IR/ConstantRange.cpp +++ b/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/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 1aaa0265bad..c55783ac215 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/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/unittests/IR/ConstantRangeTest.cpp b/unittests/IR/ConstantRangeTest.cpp index 7c43d2fb09c..58a25166d83 100644 --- a/unittests/IR/ConstantRangeTest.cpp +++ b/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 static void TestAddWithNoSignedWrapExhaustive(Fn1 RangeFn, Fn2 IntFn) { unsigned Bits = 4;