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 | 00c1aaec5aa8e69213caf64bc4d9681440658ede (patch) | |
| tree | ed4884767d97f124712b715718d39c3a91918cc0 /llvm/lib | |
| parent | a2d2adfa4ee8b16d7f2828ff69bab5b217dbcb83 (diff) | |
| download | bcm5719-llvm-00c1aaec5aa8e69213caf64bc4d9681440658ede.tar.gz bcm5719-llvm-00c1aaec5aa8e69213caf64bc4d9681440658ede.zip | |
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.
llvm-svn: 76504
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Analysis/ScalarEvolution.cpp | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 04ddc4e1a7c..2b97a8cc13d 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/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: { |

