aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRevital Eres <revital.eres@linaro.org>2011-07-31 10:37:35 +0000
committerRevital Eres <revitale@gcc.gnu.org>2011-07-31 10:37:35 +0000
commitdcaac07dbf07815294d7f8b1568ef9e157b57dae (patch)
treea85f97f3444494e2d405423a55348c5201edae89
parent0291fa2509cbd6816d720aebfacdebffe1c9dcad (diff)
downloadgcc-dcaac07dbf07815294d7f8b1568ef9e157b57dae.zip
gcc-dcaac07dbf07815294d7f8b1568ef9e157b57dae.tar.gz
gcc-dcaac07dbf07815294d7f8b1568ef9e157b57dae.tar.bz2
Move the creation of anti-dep edge
From-SVN: r176972
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ddg.c10
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5372f24..c10b1e0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,12 @@
2011-07-31 Revital Eres <revital.eres@linaro.org>
+ * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
+ of anti-dep edge from a branch.
+ (add_cross_iteration_register_deps): Create anti-dep edge from
+ a branch.
+
+2011-07-31 Revital Eres <revital.eres@linaro.org>
+
* modulo-sched.c: Change comment.
(reset_sched_times): Fix print message.
(print_partial_schedule): Add print info.
diff --git a/gcc/ddg.c b/gcc/ddg.c
index d06bdbb..856fa4e 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -197,11 +197,6 @@ create_ddg_dep_from_intra_loop_link (ddg_ptr g, ddg_node_ptr src_node,
}
}
- /* If a true dep edge enters the branch create an anti edge in the
- opposite direction to prevent the creation of reg-moves. */
- if ((DEP_TYPE (link) == REG_DEP_TRUE) && JUMP_P (dest_node->insn))
- create_ddg_dep_no_link (g, dest_node, src_node, ANTI_DEP, REG_DEP, 1);
-
latency = dep_cost (link);
e = create_ddg_edge (src_node, dest_node, t, dt, latency, distance);
add_edge_to_ddg (g, e);
@@ -306,8 +301,11 @@ add_cross_iteration_register_deps (ddg_ptr g, df_ref last_def)
gcc_assert (first_def_node);
+ /* Always create the edge if the use node is a branch in
+ order to prevent the creation of reg-moves. */
if (DF_REF_ID (last_def) != DF_REF_ID (first_def)
- || !flag_modulo_sched_allow_regmoves)
+ || !flag_modulo_sched_allow_regmoves
+ || JUMP_P (use_node->insn))
create_ddg_dep_no_link (g, use_node, first_def_node, ANTI_DEP,
REG_DEP, 1);