aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRevital Eres <revital.eres@linaro.org>2011-07-31 10:21:01 +0000
committerRevital Eres <revitale@gcc.gnu.org>2011-07-31 10:21:01 +0000
commit413e50a27db9ed8489cd6b4814f82a0cb99e6c38 (patch)
tree3219b92dd93b47947ff786bf17c144a4584ee3ec
parentf047e5183b142d9f0c64b17d8e51f328fe02d2f1 (diff)
downloadgcc-413e50a27db9ed8489cd6b4814f82a0cb99e6c38.zip
gcc-413e50a27db9ed8489cd6b4814f82a0cb99e6c38.tar.gz
gcc-413e50a27db9ed8489cd6b4814f82a0cb99e6c38.tar.bz2
SMS: Misc. fixes
From-SVN: r176970
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/modulo-sched.c28
2 files changed, 23 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5e64d3e..5372f24 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-31 Revital Eres <revital.eres@linaro.org>
+
+ * modulo-sched.c: Change comment.
+ (reset_sched_times): Fix print message.
+ (print_partial_schedule): Add print info.
+
2011-07-31 Tom de Vries <tom@codesourcery.com>
PR middle-end/43513
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 668aa22..8c349d3 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -84,13 +84,14 @@ along with GCC; see the file COPYING3. If not see
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
@@ -598,8 +599,8 @@ reset_sched_times (partial_schedule_ptr ps, int amount)
/* 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");
@@ -2550,8 +2551,13 @@ print_partial_schedule (partial_schedule_ptr ps, FILE *dump)
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;
}
}