diff options
author | Dan Gohman <gohman@apple.com> | 2009-07-20 23:53:35 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2009-07-20 23:53:35 +0000 |
commit | 4500e9eb803616416dc1c8bbc8a7f230c2a0bff2 (patch) | |
tree | c30d024721f6cddcb48302b1031d83fe43189f00 /lib/Analysis | |
parent | 71bbebdac9e05b3dd7e8d041ad6907d474968a6a (diff) | |
download | external_llvm-4500e9eb803616416dc1c8bbc8a7f230c2a0bff2.zip external_llvm-4500e9eb803616416dc1c8bbc8a7f230c2a0bff2.tar.gz external_llvm-4500e9eb803616416dc1c8bbc8a7f230c2a0bff2.tar.bz2 |
Remove the code that tried to evaluate whether (A pred B) is known
by determining if (B pred (B-A)) is known, as it doesn't handle
overflow correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76504 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/ScalarEvolution.cpp | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index 04ddc4e..2b97a8c 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -4274,20 +4274,6 @@ bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, return true; if (LHSRange.getSignedMin().sge(RHSRange.getSignedMax())) return false; - - const SCEV *Diff = getMinusSCEV(LHS, RHS); - ConstantRange DiffRange = getUnsignedRange(Diff); - if (isKnownNegative(Diff)) { - if (DiffRange.getUnsignedMax().ult(LHSRange.getUnsignedMin())) - return true; - if (DiffRange.getUnsignedMin().uge(LHSRange.getUnsignedMax())) - return false; - } else if (isKnownPositive(Diff)) { - if (LHSRange.getUnsignedMax().ult(DiffRange.getUnsignedMin())) - return true; - if (LHSRange.getUnsignedMin().uge(DiffRange.getUnsignedMax())) - return false; - } break; } case ICmpInst::ICMP_SGE: @@ -4300,20 +4286,6 @@ bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, return true; if (LHSRange.getSignedMin().sgt(RHSRange.getSignedMax())) return false; - - const SCEV *Diff = getMinusSCEV(LHS, RHS); - ConstantRange DiffRange = getUnsignedRange(Diff); - if (isKnownNonPositive(Diff)) { - if (DiffRange.getUnsignedMax().ule(LHSRange.getUnsignedMin())) - return true; - if (DiffRange.getUnsignedMin().ugt(LHSRange.getUnsignedMax())) - return false; - } else if (isKnownNonNegative(Diff)) { - if (LHSRange.getUnsignedMax().ule(DiffRange.getUnsignedMin())) - return true; - if (LHSRange.getUnsignedMin().ugt(DiffRange.getUnsignedMax())) - return false; - } break; } case ICmpInst::ICMP_UGT: @@ -4326,13 +4298,6 @@ bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, return true; if (LHSRange.getUnsignedMin().uge(RHSRange.getUnsignedMax())) return false; - - const SCEV *Diff = getMinusSCEV(LHS, RHS); - ConstantRange DiffRange = getUnsignedRange(Diff); - if (LHSRange.getUnsignedMax().ult(DiffRange.getUnsignedMin())) - return true; - if (LHSRange.getUnsignedMin().uge(DiffRange.getUnsignedMax())) - return false; break; } case ICmpInst::ICMP_UGE: @@ -4345,13 +4310,6 @@ bool ScalarEvolution::isKnownPredicate(ICmpInst::Predicate Pred, return true; if (LHSRange.getUnsignedMin().ugt(RHSRange.getUnsignedMax())) return false; - - const SCEV *Diff = getMinusSCEV(LHS, RHS); - ConstantRange DiffRange = getUnsignedRange(Diff); - if (LHSRange.getUnsignedMax().ule(DiffRange.getUnsignedMin())) - return true; - if (LHSRange.getUnsignedMin().ugt(DiffRange.getUnsignedMax())) - return false; break; } case ICmpInst::ICMP_NE: { |