aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch138
1 files changed, 0 insertions, 138 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch
deleted file mode 100644
index 8743583065..0000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99528.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-2011-07-19 Revital Eres <revital.eres@linaro.org>
-
- Backport from mainline -r175090
- gcc/
- * ddg.c (add_intra_loop_mem_dep): New function.
- (build_intra_loop_deps): Call it.
-
- gcc/testsuite
- * gcc.dg/sms-9.c: New file.
-
-=== modified file 'gcc/ddg.c'
---- old/gcc/ddg.c 2011-05-13 16:16:22 +0000
-+++ new/gcc/ddg.c 2011-07-05 09:02:18 +0000
-@@ -352,6 +352,33 @@
- }
-
-
-+/* Given two nodes, analyze their RTL insns and add intra-loop mem deps
-+ to ddg G. */
-+static void
-+add_intra_loop_mem_dep (ddg_ptr g, ddg_node_ptr from, ddg_node_ptr to)
-+{
-+
-+ if ((from->cuid == to->cuid)
-+ || !insn_alias_sets_conflict_p (from->insn, to->insn))
-+ /* Do not create edge if memory references have disjoint alias sets
-+ or 'to' and 'from' are the same instruction. */
-+ return;
-+
-+ if (mem_write_insn_p (from->insn))
-+ {
-+ if (mem_read_insn_p (to->insn))
-+ create_ddg_dep_no_link (g, from, to,
-+ DEBUG_INSN_P (to->insn)
-+ ? ANTI_DEP : TRUE_DEP, MEM_DEP, 0);
-+ else
-+ create_ddg_dep_no_link (g, from, to,
-+ DEBUG_INSN_P (to->insn)
-+ ? ANTI_DEP : OUTPUT_DEP, MEM_DEP, 0);
-+ }
-+ else if (!mem_read_insn_p (to->insn))
-+ create_ddg_dep_no_link (g, from, to, ANTI_DEP, MEM_DEP, 0);
-+}
-+
- /* Given two nodes, analyze their RTL insns and add inter-loop mem deps
- to ddg G. */
- static void
-@@ -439,10 +466,22 @@
- if (DEBUG_INSN_P (j_node->insn))
- continue;
- if (mem_access_insn_p (j_node->insn))
-- /* Don't bother calculating inter-loop dep if an intra-loop dep
-- already exists. */
-+ {
-+ /* Don't bother calculating inter-loop dep if an intra-loop dep
-+ already exists. */
- if (! TEST_BIT (dest_node->successors, j))
- add_inter_loop_mem_dep (g, dest_node, j_node);
-+ /* If -fmodulo-sched-allow-regmoves
-+ is set certain anti-dep edges are not created.
-+ It might be that these anti-dep edges are on the
-+ path from one memory instruction to another such that
-+ removing these edges could cause a violation of the
-+ memory dependencies. Thus we add intra edges between
-+ every two memory instructions in this case. */
-+ if (flag_modulo_sched_allow_regmoves
-+ && !TEST_BIT (dest_node->predecessors, j))
-+ add_intra_loop_mem_dep (g, j_node, dest_node);
-+ }
- }
- }
- }
-
-=== added file 'gcc/testsuite/gcc.dg/sms-9.c'
---- old/gcc/testsuite/gcc.dg/sms-9.c 1970-01-01 00:00:00 +0000
-+++ new/gcc/testsuite/gcc.dg/sms-9.c 2011-07-04 11:13:26 +0000
-@@ -0,0 +1,60 @@
-+/* { dg-do run } */
-+/* { dg-options "-O2 -fmodulo-sched -fno-auto-inc-dec -O2 -fmodulo-sched-allow-regmoves" } */
-+
-+#include <stdlib.h>
-+#include <stdarg.h>
-+
-+struct df_ref_info
-+{
-+ unsigned int *begin;
-+ unsigned int *count;
-+};
-+
-+extern void *memset (void *s, int c, __SIZE_TYPE__ n);
-+
-+
-+__attribute__ ((noinline))
-+ int
-+ df_reorganize_refs_by_reg_by_insn (struct df_ref_info *ref_info,
-+ int num, unsigned int start)
-+{
-+ unsigned int m = num;
-+ unsigned int offset = 77;
-+ unsigned int r;
-+
-+ for (r = start; r < m; r++)
-+ {
-+ ref_info->begin[r] = offset;
-+ offset += ref_info->count[r];
-+ ref_info->count[r] = 0;
-+ }
-+
-+ return offset;
-+}
-+
-+int
-+main ()
-+{
-+ struct df_ref_info temp;
-+ int num = 100;
-+ unsigned int start = 5;
-+ int i, offset;
-+
-+ temp.begin = malloc (100 * sizeof (unsigned int));
-+ temp.count = malloc (100 * sizeof (unsigned int));
-+
-+ memset (temp.begin, 0, sizeof (unsigned int) * num);
-+ memset (temp.count, 0, sizeof (unsigned int) * num);
-+
-+ for (i = 0; i < num; i++)
-+ temp.count[i] = i + 1;
-+
-+ offset = df_reorganize_refs_by_reg_by_insn (&temp, num, start);
-+
-+ if (offset != 5112)
-+ abort ();
-+
-+ free (temp.begin);
-+ free (temp.count);
-+ return 0;
-+}
-