> 1. Use APInt::getSignBit to reduce clutter (patch by Sheng Zhou) > 2. Replace uses of the "isPositive" utility function with > APInt::isPositive
Oooh, beautiful. Nice work guys, -Chris > > --- > Diffs of the changes: (+4 -8) > > InstructionCombining.cpp | 12 ++++-------- > 1 files changed, 4 insertions(+), 8 deletions(-) > > > Index: llvm/lib/Transforms/Scalar/InstructionCombining.cpp > diff -u llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.663 > llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.664 > --- llvm/lib/Transforms/Scalar/InstructionCombining.cpp:1.663 Mon > Mar 19 15:47:50 2007 > +++ llvm/lib/Transforms/Scalar/InstructionCombining.cpp Mon Mar 19 > 15:58:18 2007 > @@ -2760,7 +2760,7 @@ > // highest order bit set. > static bool isSignBit(ConstantInt *CI) { > unsigned NumBits = CI->getType()->getPrimitiveSizeInBits(); > - return (CI->getZExtValue() & (~0ULL >> (64-NumBits))) == (1ULL > << (NumBits-1)); > + return CI->getValue() == APInt::getSignBit(NumBits); > } > > Instruction *InstCombiner::visitSub(BinaryOperator &I) { > @@ -4925,10 +4925,6 @@ > return Changed ? &I : 0; > } > > -static bool isPositive(ConstantInt *C) { > - return C->getSExtValue() >= 0; > -} > - > /// AddWithOverflow - Compute Result = In1+In2, returning true if > the result > /// overflowed for this type. > static bool AddWithOverflow(ConstantInt *&Result, ConstantInt *In1, > @@ -5707,12 +5703,12 @@ > LoBound = Prod; > LoOverflow = ProdOV; > HiOverflow = ProdOV || AddWithOverflow(HiBound, > LoBound, DivRHS); > - } else if (isPositive(DivRHS)) { // Divisor is > 0. > + } else if (DivRHS->getValue().isPositive()) { // Divisor > is > 0. > if (CI->isNullValue()) { // (X / pos) op 0 > // Can't overflow. > LoBound = cast<ConstantInt>(ConstantExpr::getNeg > (SubOne(DivRHS))); > HiBound = DivRHS; > - } else if (isPositive(CI)) { // (X / pos) op pos > + } else if (CI->getValue().isPositive()) { // (X / > pos) op pos > LoBound = Prod; > LoOverflow = ProdOV; > HiOverflow = ProdOV || AddWithOverflow(HiBound, > Prod, DivRHS); > @@ -5729,7 +5725,7 @@ > HiBound = cast<ConstantInt>(ConstantExpr::getNeg > (DivRHS)); > if (HiBound == DivRHS) > LoBound = 0; // - INTMIN = INTMIN > - } else if (isPositive(CI)) { // (X / neg) op pos > + } else if (CI->getValue().isPositive()) { // (X / > neg) op pos > HiOverflow = LoOverflow = ProdOV; > if (!LoOverflow) > LoOverflow = AddWithOverflow(LoBound, Prod, AddOne > (DivRHS)); > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits