aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <joern.rennecke@st.com>2009-08-09 17:50:53 +0000
committerJ"orn Rennecke <joern.rennecke@st.com>2009-08-09 17:50:53 +0000
commitb5123c1462e2a64314254bb1efbd6f47efc43662 (patch)
tree92935e6fb160cc3f8f6efd1b127ada2060064dd8
parent28d432119710c66d4a296f1d5065e76c94056b5a (diff)
* tree-parloops.c (compute_reduction_results): Create empty block
for reduction loads. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/milepost-integration@150593 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.multi-target3
-rw-r--r--gcc/tree-parloops.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog.multi-target b/gcc/ChangeLog.multi-target
index b0ec03b6f84..1f7107e3d50 100644
--- a/gcc/ChangeLog.multi-target
+++ b/gcc/ChangeLog.multi-target
@@ -11,6 +11,9 @@
* tree-parloops.c (create_call_for_reduction_1): If the reduction
is for a vector type, set the DECL_GIMPLE_REG_P of tmp_load.
+ * tree-parloops.c (compute_reduction_results): Create empty block
+ for reduction loads.
+
2009-08-07 J"orn Rennecke <joern.rennecke@arc.com>
* tree-parloops.c (struct reduction_info): New member keep_res_name.
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 0606e5a3e16..811c1a94e5e 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -1674,6 +1674,9 @@ compute_reduction_results (struct loop *loop, htab_t reduction_list)
gsi_next (&gsi);
}
gcc_assert (control_name != NULL_TREE);
+ /* Create an empty block where the reduction loads can be placed -
+ before any phis from joins with paths skipping the loop. */
+ split_edge (single_dom_exit (loop));
return control_name;
}