diff options
author | Duncan Sands <baldrick@free.fr> | 2011-01-25 15:14:15 +0000 |
---|---|---|
committer | Duncan Sands <baldrick@free.fr> | 2011-01-25 15:14:15 +0000 |
commit | 9e9d5b25e261431629ba9c33cb2e2967b29a9380 (patch) | |
tree | a5873a84c3e10dcb0a2ef44ab4a2ab71bd30dc1e /llvm/lib/Analysis | |
parent | 0c125f9f02dc0e8fc864074ded2b2ed7463c656a (diff) | |
download | bcm5719-llvm-9e9d5b25e261431629ba9c33cb2e2967b29a9380.tar.gz bcm5719-llvm-9e9d5b25e261431629ba9c33cb2e2967b29a9380.zip |
In which I discover that zero+zero is zero, d'oh!
llvm-svn: 124188
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r-- | llvm/lib/Analysis/ValueTracking.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/ValueTracking.cpp b/llvm/lib/Analysis/ValueTracking.cpp index 98b4489cba7..5320fa0768d 100644 --- a/llvm/lib/Analysis/ValueTracking.cpp +++ b/llvm/lib/Analysis/ValueTracking.cpp @@ -740,10 +740,10 @@ bool llvm::isKnownNonZero(Value *V, const TargetData *TD, unsigned Depth) { ComputeSignBit(Y, YKnownNonNegative, YKnownNegative, TD, Depth); // If X and Y are both non-negative (as signed values) then their sum is not - // zero. + // zero unless both X and Y are zero. if (XKnownNonNegative && YKnownNonNegative) - return false; -// return true; + if (isKnownNonZero(X, TD, Depth) || isKnownNonZero(Y, TD, Depth)) + return true; // If X and Y are both negative (as signed values) then their sum is not // zero unless both X and Y equal INT_MIN. |