diff options
Diffstat (limited to 'meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106860.patch')
-rw-r--r-- | meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106860.patch | 104 |
1 files changed, 0 insertions, 104 deletions
diff --git a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106860.patch b/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106860.patch deleted file mode 100644 index 895d6a6cff..0000000000 --- a/meta-oe/recipes-devtools/gcc/gcc-4.6/linaro/gcc-4.6-linaro-r106860.patch +++ /dev/null @@ -1,104 +0,0 @@ -2012-01-12 Ulrich Weigand <ulrich.weigand@linaro.org> - - LP 879725 - Backport from mainline: - - 2012-01-02 Revital Eres <revital.eres@linaro.org> - - gcc/ - * ddg.c (def_has_ccmode_p): New function. - (add_cross_iteration_register_deps, - create_ddg_dep_from_intra_loop_link): Call it. - - gcc/testsuite/ - * gcc.dg/sms-11.c: New file. - -=== modified file 'gcc/ddg.c' ---- old/gcc/ddg.c 2011-10-02 06:56:53 +0000 -+++ new/gcc/ddg.c 2012-01-10 16:05:14 +0000 -@@ -166,6 +166,24 @@ - return false; - } - -+/* Return true if one of the definitions in INSN has MODE_CC. Otherwise -+ return false. */ -+static bool -+def_has_ccmode_p (rtx insn) -+{ -+ df_ref *def; -+ -+ for (def = DF_INSN_DEFS (insn); *def; def++) -+ { -+ enum machine_mode mode = GET_MODE (DF_REF_REG (*def)); -+ -+ if (GET_MODE_CLASS (mode) == MODE_CC) -+ return true; -+ } -+ -+ return false; -+} -+ - /* Computes the dependence parameters (latency, distance etc.), creates - a ddg_edge and adds it to the given DDG. */ - static void -@@ -202,6 +220,7 @@ - whose register has multiple defs in the loop. */ - if (flag_modulo_sched_allow_regmoves - && (t == ANTI_DEP && dt == REG_DEP) -+ && !def_has_ccmode_p (dest_node->insn) - && !autoinc_var_is_used_p (dest_node->insn, src_node->insn)) - { - rtx set; -@@ -335,7 +354,8 @@ - if (DF_REF_ID (last_def) != DF_REF_ID (first_def) - || !flag_modulo_sched_allow_regmoves - || JUMP_P (use_node->insn) -- || autoinc_var_is_used_p (DF_REF_INSN (last_def), use_insn)) -+ || autoinc_var_is_used_p (DF_REF_INSN (last_def), use_insn) -+ || def_has_ccmode_p (DF_REF_INSN (last_def))) - create_ddg_dep_no_link (g, use_node, first_def_node, ANTI_DEP, - REG_DEP, 1); - - -=== added file 'gcc/testsuite/gcc.dg/sms-11.c' ---- old/gcc/testsuite/gcc.dg/sms-11.c 1970-01-01 00:00:00 +0000 -+++ new/gcc/testsuite/gcc.dg/sms-11.c 2012-01-10 16:05:14 +0000 -@@ -0,0 +1,37 @@ -+/* { dg-do run } */ -+/* { dg-options "-O2 -fmodulo-sched -fmodulo-sched-allow-regmoves -fdump-rtl-sms" } */ -+ -+extern void abort (void); -+ -+float out[4][4] = { 6, 6, 7, 5, 6, 7, 5, 5, 6, 4, 4, 4, 6, 2, 3, 4 }; -+ -+void -+invert (void) -+{ -+ int i, j, k = 0, swap; -+ float tmp[4][4] = { 5, 6, 7, 5, 6, 7, 5, 5, 4, 4, 4, 4, 3, 2, 3, 4 }; -+ -+ for (i = 0; i < 4; i++) -+ { -+ for (j = i + 1; j < 4; j++) -+ if (tmp[j][i] > tmp[i][i]) -+ swap = j; -+ -+ if (swap != i) -+ tmp[i][k] = tmp[swap][k]; -+ } -+ -+ for (i = 0; i < 4; i++) -+ for (j = 0; j < 4; j++) -+ if (tmp[i][j] != out[i][j]) -+ abort (); -+} -+ -+int -+main () -+{ -+ invert (); -+ return 0; -+} -+ -+/* { dg-final { cleanup-rtl-dump "sms" } } */ - |