diff options
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99534.patch')
-rw-r--r-- | toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99534.patch | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99534.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99534.patch new file mode 100644 index 0000000..9fa6cf2 --- /dev/null +++ b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99534.patch @@ -0,0 +1,39 @@ +2011-08-09 Revital Eres <revital.eres@linaro.org> + + gcc/ + Backport from trunk -r176972: + + * 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. + +=== modified file 'gcc/ddg.c' +--- old/gcc/ddg.c 2011-07-05 09:02:18 +0000 ++++ new/gcc/ddg.c 2011-07-31 13:13:38 +0000 +@@ -197,11 +197,6 @@ + } + } + +- /* 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); +@@ -305,8 +300,11 @@ + + 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); + + |