From c4091a9281512473fc117071158d11df0f5ccf48 Mon Sep 17 00:00:00 2001 From: spop Date: Fri, 17 Jul 2009 00:20:26 +0000 Subject: [PATCH] Reset scev info after code generation of each scop. 2009-07-16 Sebastian Pop * graphite.c (graphite_finalize): Fix comment. (graphite_transform_loops): Reset scev info after code generation of each scop. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/graphite@149732 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog.graphite | 6 ++++++ gcc/graphite.c | 26 ++++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index ee49c57fe54..aea2ae77be5 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,11 @@ 2009-07-16 Sebastian Pop + * graphite.c (graphite_finalize): Fix comment. + (graphite_transform_loops): Reset scev info after code generation + of each scop. + +2009-07-16 Sebastian Pop + * graphite.c (graphite_finalize): Call scev_reset. 2009-07-16 Sebastian Pop diff --git a/gcc/graphite.c b/gcc/graphite.c index f800b4b03fd..7108712b675 100644 --- a/gcc/graphite.c +++ b/gcc/graphite.c @@ -222,16 +222,14 @@ graphite_initialize (void) return true; } -/* Finalize graphite: perform cleanup when TRANSFORM_DONE. */ +/* Finalize graphite: perform CFG cleanup when NEED_CFG_CLEANUP_P is + true. */ static void -graphite_finalize (bool transform_done) +graphite_finalize (bool need_cfg_cleanup_p) { - if (transform_done) - { - scev_reset (); - cleanup_tree_cfg (); - } + if (need_cfg_cleanup_p) + cleanup_tree_cfg (); cloog_finalize (); free_original_copy_tables (); @@ -249,7 +247,7 @@ graphite_transform_loops (void) { int i; scop_p scop; - bool transform_done = false; + bool need_cfg_cleanup_p = false; VEC (scop_p, heap) *scops = NULL; htab_t bb_pbb_mapping; @@ -268,13 +266,21 @@ graphite_transform_loops (void) for (i = 0; VEC_iterate (scop_p, scops, i, scop); i++) { + bool transform_done = false; + if (!build_poly_scop (scop)) continue; if (apply_poly_transforms (scop)) - transform_done |= gloog (scop, bb_pbb_mapping); + transform_done = gloog (scop, bb_pbb_mapping); else check_poly_representation (scop); + + if (transform_done) + { + scev_reset (); + need_cfg_cleanup_p = true; + } } if (flag_graphite_force_parallel) @@ -282,7 +288,7 @@ graphite_transform_loops (void) htab_delete (bb_pbb_mapping); free_scops (scops); - graphite_finalize (transform_done); + graphite_finalize (need_cfg_cleanup_p); } #else /* If Cloog is not available: #ifndef HAVE_cloog. */ -- 2.11.4.GIT