aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch210
1 files changed, 0 insertions, 210 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch
deleted file mode 100644
index cdf44b1184..0000000000
--- a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99522.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-2011-07-11 Revital Eres <revital.eres@linaro.org>
-
- Backport from mainline -r175091
- gcc/
- * modulo-sched.c (struct ps_insn): Remove row_rest_count field.
- (struct partial_schedule): Add rows_length field.
- (verify_partial_schedule): Check rows_length.
- (ps_insert_empty_row): Handle rows_length.
- (create_partial_schedule): Likewise.
- (free_partial_schedule): Likewise.
- (reset_partial_schedule): Likewise.
- (create_ps_insn): Remove rest_count argument.
- (remove_node_from_ps): Update rows_length.
- (add_node_to_ps): Update rows_length and call create_ps_insn
- without passing row_rest_count.
- (rotate_partial_schedule): Update rows_length.
-
-=== modified file 'gcc/modulo-sched.c'
---- old/gcc/modulo-sched.c 2011-05-13 16:16:22 +0000
-+++ new/gcc/modulo-sched.c 2011-07-04 11:39:09 +0000
-@@ -134,8 +134,6 @@
- ps_insn_ptr next_in_row,
- prev_in_row;
-
-- /* The number of nodes in the same row that come after this node. */
-- int row_rest_count;
- };
-
- /* Holds the partial schedule as an array of II rows. Each entry of the
-@@ -149,6 +147,12 @@
- /* rows[i] points to linked list of insns scheduled in row i (0<=i<ii). */
- ps_insn_ptr *rows;
-
-+ /* rows_length[i] holds the number of instructions in the row.
-+ It is used only (as an optimization) to back off quickly from
-+ trying to schedule a node in a full row; that is, to avoid running
-+ through futile DFA state transitions. */
-+ int *rows_length;
-+
- /* The earliest absolute cycle of an insn in the partial schedule. */
- int min_cycle;
-
-@@ -1907,6 +1911,7 @@
- int ii = ps->ii;
- int new_ii = ii + 1;
- int row;
-+ int *rows_length_new;
-
- verify_partial_schedule (ps, sched_nodes);
-
-@@ -1921,9 +1926,11 @@
- rotate_partial_schedule (ps, PS_MIN_CYCLE (ps));
-
- rows_new = (ps_insn_ptr *) xcalloc (new_ii, sizeof (ps_insn_ptr));
-+ rows_length_new = (int *) xcalloc (new_ii, sizeof (int));
- for (row = 0; row < split_row; row++)
- {
- rows_new[row] = ps->rows[row];
-+ rows_length_new[row] = ps->rows_length[row];
- ps->rows[row] = NULL;
- for (crr_insn = rows_new[row];
- crr_insn; crr_insn = crr_insn->next_in_row)
-@@ -1944,6 +1951,7 @@
- for (row = split_row; row < ii; row++)
- {
- rows_new[row + 1] = ps->rows[row];
-+ rows_length_new[row + 1] = ps->rows_length[row];
- ps->rows[row] = NULL;
- for (crr_insn = rows_new[row + 1];
- crr_insn; crr_insn = crr_insn->next_in_row)
-@@ -1965,6 +1973,8 @@
- + (SMODULO (ps->max_cycle, ii) >= split_row ? 1 : 0);
- free (ps->rows);
- ps->rows = rows_new;
-+ free (ps->rows_length);
-+ ps->rows_length = rows_length_new;
- ps->ii = new_ii;
- gcc_assert (ps->min_cycle >= 0);
-
-@@ -2040,16 +2050,23 @@
- ps_insn_ptr crr_insn;
-
- for (row = 0; row < ps->ii; row++)
-- for (crr_insn = ps->rows[row]; crr_insn; crr_insn = crr_insn->next_in_row)
-- {
-- ddg_node_ptr u = crr_insn->node;
--
-- gcc_assert (TEST_BIT (sched_nodes, u->cuid));
-- /* ??? Test also that all nodes of sched_nodes are in ps, perhaps by
-- popcount (sched_nodes) == number of insns in ps. */
-- gcc_assert (SCHED_TIME (u) >= ps->min_cycle);
-- gcc_assert (SCHED_TIME (u) <= ps->max_cycle);
-- }
-+ {
-+ int length = 0;
-+
-+ for (crr_insn = ps->rows[row]; crr_insn; crr_insn = crr_insn->next_in_row)
-+ {
-+ ddg_node_ptr u = crr_insn->node;
-+
-+ length++;
-+ gcc_assert (TEST_BIT (sched_nodes, u->cuid));
-+ /* ??? Test also that all nodes of sched_nodes are in ps, perhaps by
-+ popcount (sched_nodes) == number of insns in ps. */
-+ gcc_assert (SCHED_TIME (u) >= ps->min_cycle);
-+ gcc_assert (SCHED_TIME (u) <= ps->max_cycle);
-+ }
-+
-+ gcc_assert (ps->rows_length[row] == length);
-+ }
- }
-
-
-@@ -2455,6 +2472,7 @@
- {
- partial_schedule_ptr ps = XNEW (struct partial_schedule);
- ps->rows = (ps_insn_ptr *) xcalloc (ii, sizeof (ps_insn_ptr));
-+ ps->rows_length = (int *) xcalloc (ii, sizeof (int));
- ps->ii = ii;
- ps->history = history;
- ps->min_cycle = INT_MAX;
-@@ -2493,6 +2511,7 @@
- return;
- free_ps_insns (ps);
- free (ps->rows);
-+ free (ps->rows_length);
- free (ps);
- }
-
-@@ -2510,6 +2529,8 @@
- ps->rows = (ps_insn_ptr *) xrealloc (ps->rows, new_ii
- * sizeof (ps_insn_ptr));
- memset (ps->rows, 0, new_ii * sizeof (ps_insn_ptr));
-+ ps->rows_length = (int *) xrealloc (ps->rows_length, new_ii * sizeof (int));
-+ memset (ps->rows_length, 0, new_ii * sizeof (int));
- ps->ii = new_ii;
- ps->min_cycle = INT_MAX;
- ps->max_cycle = INT_MIN;
-@@ -2538,14 +2559,13 @@
-
- /* Creates an object of PS_INSN and initializes it to the given parameters. */
- static ps_insn_ptr
--create_ps_insn (ddg_node_ptr node, int rest_count, int cycle)
-+create_ps_insn (ddg_node_ptr node, int cycle)
- {
- ps_insn_ptr ps_i = XNEW (struct ps_insn);
-
- ps_i->node = node;
- ps_i->next_in_row = NULL;
- ps_i->prev_in_row = NULL;
-- ps_i->row_rest_count = rest_count;
- ps_i->cycle = cycle;
-
- return ps_i;
-@@ -2578,6 +2598,8 @@
- if (ps_i->next_in_row)
- ps_i->next_in_row->prev_in_row = ps_i->prev_in_row;
- }
-+
-+ ps->rows_length[row] -= 1;
- free (ps_i);
- return true;
- }
-@@ -2734,17 +2756,12 @@
- sbitmap must_precede, sbitmap must_follow)
- {
- ps_insn_ptr ps_i;
-- int rest_count = 1;
- int row = SMODULO (cycle, ps->ii);
-
-- if (ps->rows[row]
-- && ps->rows[row]->row_rest_count >= issue_rate)
-+ if (ps->rows_length[row] >= issue_rate)
- return NULL;
-
-- if (ps->rows[row])
-- rest_count += ps->rows[row]->row_rest_count;
--
-- ps_i = create_ps_insn (node, rest_count, cycle);
-+ ps_i = create_ps_insn (node, cycle);
-
- /* Finds and inserts PS_I according to MUST_FOLLOW and
- MUST_PRECEDE. */
-@@ -2754,6 +2771,7 @@
- return NULL;
- }
-
-+ ps->rows_length[row] += 1;
- return ps_i;
- }
-
-@@ -2909,11 +2927,16 @@
- for (i = 0; i < backward_rotates; i++)
- {
- ps_insn_ptr first_row = ps->rows[0];
-+ int first_row_length = ps->rows_length[0];
-
- for (row = 0; row < last_row; row++)
-- ps->rows[row] = ps->rows[row+1];
-+ {
-+ ps->rows[row] = ps->rows[row + 1];
-+ ps->rows_length[row] = ps->rows_length[row + 1];
-+ }
-
- ps->rows[last_row] = first_row;
-+ ps->rows_length[last_row] = first_row_length;
- }
-
- ps->max_cycle -= start_cycle;
-