summaryrefslogtreecommitdiff
path: root/gcc/sese.h
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-25 04:54:30 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2009-11-25 04:54:30 +0000
commit30f4f4a647d8e4c8fcaa92f0e2f2c775f5b8e398 (patch)
treeb5e1d1cd97c6ef8d389112a92df304c433f8bd89 /gcc/sese.h
parentdcdff5dc8e894acc08a0edf7d93977530a9797b1 (diff)
downloadgcc-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.h27
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