aboutsummaryrefslogtreecommitdiffstats
path: root/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch')
-rw-r--r--toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch63
1 files changed, 63 insertions, 0 deletions
diff --git a/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch
new file mode 100644
index 0000000000..196da9d9d8
--- /dev/null
+++ b/toolchain-layer/recipes-devtools/gcc/gcc-4.5/linaro/gcc-4.5-linaro-r99533.patch
@@ -0,0 +1,63 @@
+2011-08-09 Revital Eres <revital.eres@linaro.org>
+
+ gcc/
+ Backport from trunk -r176970:
+
+ * modulo-sched.c: Change comment.
+ (reset_sched_times): Fix print message.
+ (print_partial_schedule): Add print
+ info.
+
+=== modified file 'gcc/modulo-sched.c'
+--- old/gcc/modulo-sched.c 2011-08-03 12:20:38 +0000
++++ new/gcc/modulo-sched.c 2011-08-09 04:31:10 +0000
+@@ -84,13 +84,14 @@
+ II cycles (i.e. use register copies to prevent a def from overwriting
+ itself before reaching the use).
+
+- SMS works with countable loops whose loop count can be easily
+- adjusted. This is because we peel a constant number of iterations
+- into a prologue and epilogue for which we want to avoid emitting
+- the control part, and a kernel which is to iterate that constant
+- number of iterations less than the original loop. So the control
+- part should be a set of insns clearly identified and having its
+- own iv, not otherwise used in the loop (at-least for now), which
++ SMS works with countable loops (1) whose control part can be easily
++ decoupled from the rest of the loop and (2) whose loop count can
++ be easily adjusted. This is because we peel a constant number of
++ iterations into a prologue and epilogue for which we want to avoid
++ emitting the control part, and a kernel which is to iterate that
++ constant number of iterations less than the original loop. So the
++ control part should be a set of insns clearly identified and having
++ its own iv, not otherwise used in the loop (at-least for now), which
+ initializes a register before the loop to the number of iterations.
+ Currently SMS relies on the do-loop pattern to recognize such loops,
+ where (1) the control part comprises of all insns defining and/or
+@@ -636,8 +637,8 @@
+ /* Print the scheduling times after the rotation. */
+ fprintf (dump_file, "crr_insn->node=%d (insn id %d), "
+ "crr_insn->cycle=%d, min_cycle=%d", crr_insn->node->cuid,
+- INSN_UID (crr_insn->node->insn), SCHED_TIME (u),
+- normalized_time);
++ INSN_UID (crr_insn->node->insn), normalized_time,
++ new_min_cycle);
+ if (JUMP_P (crr_insn->node->insn))
+ fprintf (dump_file, " (branch)");
+ fprintf (dump_file, "\n");
+@@ -2782,8 +2783,13 @@
+ fprintf (dump, "\n[ROW %d ]: ", i);
+ while (ps_i)
+ {
+- fprintf (dump, "%d, ",
+- INSN_UID (ps_i->node->insn));
++ if (JUMP_P (ps_i->node->insn))
++ fprintf (dump, "%d (branch), ",
++ INSN_UID (ps_i->node->insn));
++ else
++ fprintf (dump, "%d, ",
++ INSN_UID (ps_i->node->insn));
++
+ ps_i = ps_i->next_in_row;
+ }
+ }
+