[llvm-commits] [llvm] r47090 - in /llvm/trunk: include/llvm/ADT/APInt.h lib/Transforms/Scalar/InstructionCombining.cpp
Dan Gohman
gohman at apple.com
Wed Feb 13 14:09:18 PST 2008
Author: djg
Date: Wed Feb 13 16:09:18 2008
New Revision: 47090
URL: http://llvm.org/viewvc/llvm-project?rev=47090&view=rev
Log:
Rename APInt's isPositive to isNonNegative, to reflect what it
actually does.
Modified:
llvm/trunk/include/llvm/ADT/APInt.h
llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
Modified: llvm/trunk/include/llvm/ADT/APInt.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/APInt.h?rev=47090&r1=47089&r2=47090&view=diff
==============================================================================
--- llvm/trunk/include/llvm/ADT/APInt.h (original)
+++ llvm/trunk/include/llvm/ADT/APInt.h Wed Feb 13 16:09:18 2008
@@ -232,16 +232,17 @@
}
/// This tests the high bit of the APInt to determine if it is unset.
- /// @brief Determine if this APInt Value is positive (not negative).
- bool isPositive() const {
+ /// @brief Determine if this APInt Value is non-negative (>= 0)
+ bool isNonNegative() const {
return !isNegative();
}
- /// This tests if the value of this APInt is strictly positive (> 0).
- /// @returns true if this APInt is Positive and not zero.
- /// @brief Determine if this APInt Value is strictly positive.
+ /// This tests if the value of this APInt is positive (> 0). Note
+ /// that 0 is not a positive value.
+ /// @returns true if this APInt is positive.
+ /// @brief Determine if this APInt Value is positive.
inline bool isStrictlyPositive() const {
- return isPositive() && (*this) != 0;
+ return isNonNegative() && (*this) != 0;
}
/// This checks to see if the value has all bits of the APInt are set or not.
Modified: llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp?rev=47090&r1=47089&r2=47090&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp (original)
+++ llvm/trunk/lib/Transforms/Scalar/InstructionCombining.cpp Wed Feb 13 16:09:18 2008
@@ -5293,12 +5293,12 @@
HiOverflow = LoOverflow = ProdOV;
if (!HiOverflow)
HiOverflow = AddWithOverflow(HiBound, LoBound, DivRHS, false);
- } else if (DivRHS->getValue().isPositive()) { // Divisor is > 0.
+ } else if (DivRHS->getValue().isStrictlyPositive()) { // Divisor is > 0.
if (CmpRHSV == 0) { // (X / pos) op 0
// Can't overflow. e.g. X/2 op 0 --> [-1, 2)
LoBound = cast<ConstantInt>(ConstantExpr::getNeg(SubOne(DivRHS)));
HiBound = DivRHS;
- } else if (CmpRHSV.isPositive()) { // (X / pos) op pos
+ } else if (CmpRHSV.isStrictlyPositive()) { // (X / pos) op pos
LoBound = Prod; // e.g. X/5 op 3 --> [15, 20)
HiOverflow = LoOverflow = ProdOV;
if (!HiOverflow)
@@ -5311,7 +5311,7 @@
HiBound = AddOne(Prod);
HiOverflow = ProdOV ? -1 : 0;
}
- } else { // Divisor is < 0.
+ } else if (DivRHS->getValue().isNegative()) { // Divisor is < 0.
if (CmpRHSV == 0) { // (X / neg) op 0
// e.g. X/-5 op 0 --> [-4, 5)
LoBound = AddOne(DivRHS);
@@ -5320,7 +5320,7 @@
HiOverflow = 1; // [INTMIN+1, overflow)
HiBound = 0; // e.g. X/INTMIN = 0 --> X > INTMIN
}
- } else if (CmpRHSV.isPositive()) { // (X / neg) op pos
+ } else if (CmpRHSV.isStrictlyPositive()) { // (X / neg) op pos
// e.g. X/-5 op 3 --> [-19, -14)
HiOverflow = LoOverflow = ProdOV ? -1 : 0;
if (!LoOverflow)
@@ -5434,8 +5434,8 @@
// Extending a relational comparison when we're checking the sign
// bit would not work.
if (Cast->hasOneUse() &&
- (ICI.isEquality() || AndCST->getValue().isPositive() &&
- RHSV.isPositive())) {
+ (ICI.isEquality() || AndCST->getValue().isNonNegative() &&
+ RHSV.isNonNegative())) {
uint32_t BitWidth =
cast<IntegerType>(Cast->getOperand(0)->getType())->getBitWidth();
APInt NewCST = AndCST->getValue();
More information about the llvm-commits
mailing list