summaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-21 17:06:05 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-21 17:06:05 +0000
commit437fd8c09ad87e30302098cc76e638d8734f8208 (patch)
tree414e7e5e598d92016ed799bc6cc85640717125a5 /gcc/tree-vrp.c
parentf5f2a0d1ed00430209e153d21878d3bf5e92d0f7 (diff)
downloadgcc-437fd8c09ad87e30302098cc76e638d8734f8208.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125925 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 937a76b7046..06931f1f74d 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;