From 6f1c9cd02fe6c75045024074dc9edf59c2981042 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Thu, 21 Jun 2007 17:06:05 +0000 Subject: re PR tree-optimization/19590 (IVs with the same evolution not eliminated) PR tree-optimization/19590 * tree-vrp.c (adjust_range_with_scev): Set the range when the result of scev is a constant. * gcc/testsuite/gcc.dg/tree-ssa/pr19590.c: New. From-SVN: r125925 --- gcc/tree-vrp.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'gcc/tree-vrp.c') diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 937a76b..06931f1f7 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2638,6 +2638,14 @@ adjust_range_with_scev (value_range_t *vr, struct loop *loop, tree stmt, return; chrec = instantiate_parameters (loop, analyze_scalar_evolution (loop, var)); + + /* Like in PR19590, scev can return a constant function. */ + if (is_gimple_min_invariant (chrec)) + { + set_value_range (vr, VR_RANGE, chrec, chrec, vr->equiv); + return; + } + if (TREE_CODE (chrec) != POLYNOMIAL_CHREC) return; -- cgit v1.1