diff options
| author | Sebastian Pop <sebastian.pop@amd.com> | 2010-01-10 21:46:42 +0000 |
|---|---|---|
| committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-01-10 21:46:42 +0000 |
| commit | e1496917f1a8651786675c13c702de19518cf8e4 (patch) | |
| tree | 0e6f539a020e4f9c2e0602ac03b56ada5e952081 /gcc/graphite-clast-to-gimple.c | |
| parent | dadcb84c8f3e312a42496ba959e9568673823b34 (diff) | |
| download | gcc-e1496917f1a8651786675c13c702de19518cf8e4.zip gcc-e1496917f1a8651786675c13c702de19518cf8e4.tar.gz gcc-e1496917f1a8651786675c13c702de19518cf8e4.tar.bz2 | |
re PR middle-end/42393 ([graphite] internal compiler error: in check_loop_closed_ssa_use)
Fix PR42393.
2010-01-08 Sebastian Pop <sebastian.pop@amd.com>
PR middle-end/42393
* graphite-clast-to-gimple.c: Fix formatting.
* sese.c (defined_in_loop_p): Renamed name_defined_in_loop_p.
(expr_defined_in_loop_p): New.
(add_loop_exit_phis): Also handle full expressions: remove from
the rename_map the expressions defined in the loop that we're closing.
* testsuite/gfortran.dg/graphite/pr42393-1.f90: New.
* testsuite/gfortran.dg/graphite/pr42393.f90: Add new flags
-fno-loop-block -fno-loop-interchange -fno-loop-strip-mine to also
make this testcase useful in the Graphite branch.
From-SVN: r155795
Diffstat (limited to 'gcc/graphite-clast-to-gimple.c')
| -rw-r--r-- | gcc/graphite-clast-to-gimple.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/gcc/graphite-clast-to-gimple.c b/gcc/graphite-clast-to-gimple.c index 827a934..bbc77d2 100644 --- a/gcc/graphite-clast-to-gimple.c +++ b/gcc/graphite-clast-to-gimple.c @@ -812,10 +812,11 @@ graphite_create_new_loop_guard (sese region, edge entry_edge, - PARAMS_INDEX connects the cloog parameters with the gimple parameters in the sese region. */ static edge -translate_clast_for_loop (sese region, loop_p context_loop, struct clast_for *stmt, edge next_e, - htab_t rename_map, VEC (tree, heap) **newivs, - htab_t newivs_index, htab_t bb_pbb_mapping, int level, - htab_t params_index) +translate_clast_for_loop (sese region, loop_p context_loop, + struct clast_for *stmt, edge next_e, + htab_t rename_map, VEC (tree, heap) **newivs, + htab_t newivs_index, htab_t bb_pbb_mapping, + int level, htab_t params_index) { struct loop *loop = graphite_create_new_loop (region, next_e, stmt, context_loop, newivs, @@ -858,8 +859,8 @@ translate_clast_for_loop (sese region, loop_p context_loop, struct clast_for *st - PARAMS_INDEX connects the cloog parameters with the gimple parameters in the sese region. */ static edge -translate_clast_for (sese region, loop_p context_loop, struct clast_for *stmt, edge next_e, - htab_t rename_map, VEC (tree, heap) **newivs, +translate_clast_for (sese region, loop_p context_loop, struct clast_for *stmt, + edge next_e, htab_t rename_map, VEC (tree, heap) **newivs, htab_t newivs_index, htab_t bb_pbb_mapping, int level, htab_t params_index) { @@ -875,7 +876,8 @@ translate_clast_for (sese region, loop_p context_loop, struct clast_for *stmt, e eq_rename_map_elts, free); htab_traverse (rename_map, copy_renames, before_guard); - next_e = translate_clast_for_loop (region, context_loop, stmt, true_e, rename_map, newivs, + next_e = translate_clast_for_loop (region, context_loop, stmt, true_e, + rename_map, newivs, newivs_index, bb_pbb_mapping, level, params_index); |
