diff options
author | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 04:54:30 +0000 |
---|---|---|
committer | spop <spop@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-11-25 04:54:30 +0000 |
commit | 30f4f4a647d8e4c8fcaa92f0e2f2c775f5b8e398 (patch) | |
tree | b5e1d1cd97c6ef8d389112a92df304c433f8bd89 /gcc/sese.h | |
parent | dcdff5dc8e894acc08a0edf7d93977530a9797b1 (diff) | |
download | gcc-30f4f4a647d8e4c8fcaa92f0e2f2c775f5b8e398.tar.gz |
2009-10-05 Sebastian Pop <sebastian.pop@amd.com>
* graphite-dependences.c (reduction_ddr): New.
(graphite_legal_transform_bb): Call reduction_ddr.
* graphite-poly.c (new_poly_bb): Pass a new bool parameter.
Initialize PBB_IS_REDUCTION.
* graphite-poly.h (struct poly_bb): New bool field is_reduction.
(PBB_IS_REDUCTION): New.
(new_poly_bb): Update declaration.
* graphite-scop-detection.h (build_scop_bbs): Removed.
(nb_reductions_in_loop): Removed.
* graphite-sese-to-poly.c (try_generate_gimple_bb): Pass a sbitmap
parameter for reductions.
(try_generate_gimple_bb): Update call to new_poly_bb.
(build_scop_bbs_1): Same.
(build_scop_bbs): Same.
(gsi_for_phi_node): New.
(scalar_close_phi_node_p): Remove gcc_assert.
(split_reduction_stmt): New.
(is_reduction_operation_p): New.
(phi_contains_arg): New.
(follow_ssa_with_commutative_ops): New.
(detect_commutative_reduction_arg): New.
(detect_commutative_reduction_assign): New.
(follow_inital_value_to_phi): New.
(edge_initial_value_for_loop_phi): New.
(initial_value_for_loop_phi): New.
(detect_commutative_reduction): New.
(translate_scalar_reduction_to_array_for_stmt): New.
(insert_copyout): New.
(insert_copyin): New.
(translate_scalar_reduction_to_array): New.
(rewrite_commutative_reductions_out_of_ssa_close_phi): New.
(rewrite_commutative_reductions_out_of_ssa_loop): New.
(rewrite_commutative_reductions_out_of_ssa): New.
(build_poly_scop): Call rewrite_commutative_reductions_out_of_ssa.
* sese.h (split_region_for_bb): New.
* gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add -ffast-math.
* gcc.dg/graphite/interchange-1.c: Fix format.
* gcc.dg/graphite/interchange-10.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@154561 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sese.h')
-rw-r--r-- | gcc/sese.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gcc/sese.h b/gcc/sese.h index ace63ba6719..ca167f53ce6 100644 --- a/gcc/sese.h +++ b/gcc/sese.h @@ -188,6 +188,33 @@ sese_loop_depth (sese region, loop_p loop) return depth; } +/* Splits BB to make a single entry single exit region. */ + +static inline sese +split_region_for_bb (basic_block bb) +{ + edge entry, exit; + + if (single_pred_p (bb)) + entry = single_pred_edge (bb); + else + { + entry = split_block_after_labels (bb); + bb = single_succ (bb); + } + + if (single_succ_p (bb)) + exit = single_succ_edge (bb); + else + { + gimple_stmt_iterator gsi = gsi_last_bb (bb); + gsi_prev (&gsi); + exit = split_block (bb, gsi_stmt (gsi)); + } + + return new_sese (entry, exit); +} + /* Returns the block preceding the entry of a SESE. */ static inline basic_block |