diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-08-11 20:24:16 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-08-11 20:24:16 +0000 |
commit | 3a7086cc51984f7b1f5b0d709500382eb16875e2 (patch) | |
tree | d0cb67f308415d8102e0a5fbb919071f3a5e86cd /gcc/graphite-sese-to-poly.c | |
parent | 61ca46ce9b4343929106dae5f06f65362663dac7 (diff) | |
download | gcc-3a7086cc51984f7b1f5b0d709500382eb16875e2.zip gcc-3a7086cc51984f7b1f5b0d709500382eb16875e2.tar.gz gcc-3a7086cc51984f7b1f5b0d709500382eb16875e2.tar.bz2 |
Detect commutative reductions in all the scops before rewriting out of SSA all the other scalar dependences.
2010-06-12 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (build_scop_bbs): Not static anymore.
(rewrite_reductions_out_of_ssa): Same.
(rewrite_commutative_reductions_out_of_ssa): Same.
(build_poly_scop): Do not call these functions.
* graphite-sese-to-poly.h (build_poly_scop): Declared.
(rewrite_reductions_out_of_ssa): Declared.
(rewrite_commutative_reductions_out_of_ssa): Declared.
* graphite.c (graphite_transform_loops): Call on every scop
rewrite_commutative_reductions_out_of_ssa before calling
rewrite_reductions_out_of_ssa and build_scop_bbs.
From-SVN: r163116
Diffstat (limited to 'gcc/graphite-sese-to-poly.c')
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 68cb2a4..969ef2b 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -462,7 +462,7 @@ build_scop_bbs_1 (scop_p scop, sbitmap visited, basic_block bb, sbitmap reductio /* Gather the basic blocks belonging to the SCOP. */ -static void +void build_scop_bbs (scop_p scop, sbitmap reductions) { sbitmap visited = sbitmap_alloc (last_basic_block); @@ -2399,7 +2399,7 @@ rewrite_cross_bb_scalar_deps (sese region, gimple_stmt_iterator *gsi) /* Rewrite out of SSA all the reduction phi nodes of SCOP. */ -static void +void rewrite_reductions_out_of_ssa (scop_p scop) { basic_block bb; @@ -2578,7 +2578,7 @@ detect_commutative_reduction_arg (tree lhs, gimple stmt, tree arg, } /* Detect commutative and associative scalar reductions starting at - the STMT. Return the phi node of the reduction cycle, or NULL. */ + STMT. Return the phi node of the reduction cycle, or NULL. */ static gimple detect_commutative_reduction_assign (gimple stmt, VEC (gimple, heap) **in, @@ -2666,7 +2666,7 @@ initial_value_for_loop_phi (gimple phi) } /* Detect commutative and associative scalar reductions starting at - the loop closed phi node CLOSE_PHI. Return the phi node of the + the loop closed phi node STMT. Return the phi node of the reduction cycle, or NULL. */ static gimple @@ -2874,7 +2874,7 @@ rewrite_commutative_reductions_out_of_ssa_loop (loop_p loop, /* Rewrites all the commutative reductions from SCOP out of SSA. */ -static void +void rewrite_commutative_reductions_out_of_ssa (sese region, sbitmap reductions) { loop_iterator li; @@ -2973,14 +2973,8 @@ void build_poly_scop (scop_p scop) { sese region = SCOP_REGION (scop); - sbitmap reductions = sbitmap_alloc (last_basic_block * 2); graphite_dim_t max_dim; - sbitmap_zero (reductions); - rewrite_commutative_reductions_out_of_ssa (region, reductions); - rewrite_reductions_out_of_ssa (scop); - build_scop_bbs (scop, reductions); - sbitmap_free (reductions); /* FIXME: This restriction is needed to avoid a problem in CLooG. Once CLooG is fixed, remove this guard. Anyways, it makes no |