aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/ValueTracking.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2016-06-29 04:57:00 +0000
committerCraig Topper <craig.topper@gmail.com>2016-06-29 04:57:00 +0000
commitdf7454f94b984e2adc66df41c346c5901d71d99e (patch)
tree409d15c0d07d834d95840254fe9f1347ed0697cb /llvm/lib/Analysis/ValueTracking.cpp
parentb5beb97b07ce7e5f868373543537bed3c471a796 (diff)
downloadllvm-df7454f94b984e2adc66df41c346c5901d71d99e.zip
llvm-df7454f94b984e2adc66df41c346c5901d71d99e.tar.gz
llvm-df7454f94b984e2adc66df41c346c5901d71d99e.tar.bz2
Revert "[ValueTracking] Teach computeKnownBits for PHI nodes to compute sign bit for a recurrence with a NSW addition."
This is breaking an optimizaton remark test in clang. I've identified a couple fixes for that, but want to understand it better before I commit to anything. llvm-svn: 274102
Diffstat (limited to 'llvm/lib/Analysis/ValueTracking.cpp')
-rw-r--r--llvm/lib/Analysis/ValueTracking.cpp12
1 files changed, 0 insertions, 12 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp
index 78ec220..16dd307 100644
--- a/llvm/lib/Analysis/ValueTracking.cpp
+++ b/llvm/lib/Analysis/ValueTracking.cpp
@@ -1240,18 +1240,6 @@ static void computeKnownBitsFromOperator(Operator *I, APInt &KnownZero,
KnownZero = APInt::getLowBitsSet(BitWidth,
std::min(KnownZero2.countTrailingOnes(),
KnownZero3.countTrailingOnes()));
-
- // If the operation is an addition that can't have signed overflow,
- // then the sign bit is known to be zero if both input sign bits
- // are zero. Similar for two negative inputs.
- if (Opcode == Instruction::Add &&
- cast<OverflowingBinaryOperator>(LU)->hasNoSignedWrap()) {
- if (KnownZero2.isNegative() && KnownZero3.isNegative())
- KnownZero.setBit(BitWidth-1);
- if (KnownOne2.isNegative() && KnownOne3.isNegative())
- KnownOne.setBit(BitWidth-1);
- }
-
break;
}
}