From 52bdd655b06d5ef4e32a6d9627f907cdb83c1012 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Fri, 31 Jul 2009 02:30:03 +0000 Subject: [PATCH] Return unknow from scev instantiation if the result is not above instantiate_below. 2009-07-30 Sebastian Pop * tree-scalar-evolution.c: Fix comment. (instantiate_scev_1): Return unknow from scev instantiation if the result is not above instantiate_below. From-SVN: r150290 --- gcc/ChangeLog | 6 ++++++ gcc/tree-scalar-evolution.c | 14 +++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 82f6a919227..ca1cd1ad9bd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-07-30 Sebastian Pop + + * tree-scalar-evolution.c: Fix comment. + (instantiate_scev_1): Return unknow from scev instantiation if the + result is not above instantiate_below. + 2009-07-30 Sebastian Pop * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop): Not diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index e817ffe64c3..02a4eed646e 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -1893,18 +1893,16 @@ analyze_scalar_evolution_1 (struct loop *loop, tree var, tree res) return res; } -/* Entry point for the scalar evolution analyzer. - Analyzes and returns the scalar evolution of the ssa_name VAR. - LOOP_NB is the identifier number of the loop in which the variable - is used. +/* Analyzes and returns the scalar evolution of the ssa_name VAR in + LOOP. LOOP is the loop in which the variable is used. Example of use: having a pointer VAR to a SSA_NAME node, STMT a pointer to the statement that uses this variable, in order to determine the evolution function of the variable, use the following calls: - unsigned loop_nb = loop_containing_stmt (stmt)->num; - tree chrec_with_symbols = analyze_scalar_evolution (loop_nb, var); + loop_p loop = loop_containing_stmt (stmt); + tree chrec_with_symbols = analyze_scalar_evolution (loop, var); tree chrec_instantiated = instantiate_parameters (loop, chrec_with_symbols); */ @@ -2177,7 +2175,9 @@ instantiate_scev_1 (basic_block instantiate_below, else res = chrec; - if (res == NULL_TREE) + if (res == NULL_TREE + || !dominated_by_p (CDI_DOMINATORS, instantiate_below, + gimple_bb (SSA_NAME_DEF_STMT (res)))) res = chrec_dont_know; } -- 2.30.2