diff options
author | Sebastian Pop <seb@napoca> | 2010-02-11 19:42:38 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-02-11 19:42:38 +0000 |
commit | a1954f72c64181e9cd63945c12776e168f166bc3 (patch) | |
tree | 9a93f6270813899e2fca5101fe3e5ca955c10cee /gcc/graphite.c | |
parent | 01e64c3dc777ec3515ca89cb279410edab2fc5c2 (diff) | |
download | gcc-a1954f72c64181e9cd63945c12776e168f166bc3.zip gcc-a1954f72c64181e9cd63945c12776e168f166bc3.tar.gz gcc-a1954f72c64181e9cd63945c12776e168f166bc3.tar.bz2 |
re PR tree-optimization/42771 ([graphite] ICE: in graphite_loop_normal_form, at graphite-sese-to-poly.c (2))
Fix PR42771.
2010-02-10 Sebastian Pop <seb@napoca>
PR middle-end/42771
* graphite-clast-to-gimple.c (gloog): Call rename_sese_parameters.
* graphite-clast-to-gimple.h (gloog): Update declaration.
* graphite-poly.c (new_scop): Clear POLY_SCOP_P.
* graphite-poly.h (struct poly_bb): Add missing comments.
(struct scop): Add poly_scop_p field.
(POLY_SCOP_P): New.
* graphite-sese-to-poly.c (build_poly_scop): Set POLY_SCOP_P.
* graphite.c (graphite_transform_loops): Build the polyhedral
representation for each scop before code generation.
* sese.c (rename_variables_in_operand): Removed.
(rename_variables_in_expr): Return the renamed expression.
(rename_sese_parameters): New.
* sese.h (rename_sese_parameters): Declared.
* gcc.dg/graphite/pr42771.c: New.
From-SVN: r156711
Diffstat (limited to 'gcc/graphite.c')
-rw-r--r-- | gcc/graphite.c | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/gcc/graphite.c b/gcc/graphite.c index 7037a3f..ba05cc7 100644 --- a/gcc/graphite.c +++ b/gcc/graphite.c @@ -268,20 +268,13 @@ graphite_transform_loops (void) bb_pbb_mapping = htab_create (10, bb_pbb_map_hash, eq_bb_pbb_map, free); for (i = 0; VEC_iterate (scop_p, scops, i, scop); i++) - { - bool transform_done = false; - - if (!build_poly_scop (scop)) - continue; + build_poly_scop (scop); - if (apply_poly_transforms (scop)) - transform_done = gloog (scop, bb_pbb_mapping); - else - check_poly_representation (scop); - - if (transform_done) - need_cfg_cleanup_p = true; - } + for (i = 0; VEC_iterate (scop_p, scops, i, scop); i++) + if (POLY_SCOP_P (scop) + && apply_poly_transforms (scop) + && gloog (scop, scops, bb_pbb_mapping)) + need_cfg_cleanup_p = true; htab_delete (bb_pbb_mapping); free_scops (scops); |