public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Question about SMS scheduling windows
@ 2011-07-27 10:21 Richard Sandiford
  2011-07-27 13:34 ` Richard Sandiford
  2011-07-27 13:40 ` Revital1 Eres
  0 siblings, 2 replies; 9+ messages in thread
From: Richard Sandiford @ 2011-07-27 10:21 UTC (permalink / raw)
  To: gcc; +Cc: zaks, eres

I've been looking at SMS, and have a question about get_sched_window.
When there are previously-scheduled predessors, we use:

	      if (e->data_type == MEM_DEP)
		end = MIN (end, SCHED_TIME (v_node) + ii - 1);

to get an upper bound on the scheduling window that is permitted
by memory dependencies.  I think this:

    SCHED_TIME (v_node) + ii - 1

is an inclusive bound, in that scheduling the node at that time
would not break the memory dependence, whereas scheduling at
SCHED_TIME (v_node) would.  Is that right?

I ask because in the final range:

      start = early_start;
      end = MIN (end, early_start + ii);
      /* Schedule the node close to it's predecessors.  */
      step = 1;

END is an exclusive bound.  It seems like we might be double-counting here,
and effectively limiting the schedule to SCHED_TIME (v_node) + ii - 2.

While I'm here, I was also curious about:

      /* If there are more successors than predecessors schedule the
         node close to it's successors.  */
      if (count_succs >= count_preds)
        {
          int old_start = start;

          start = end - 1;
          end = old_start - 1;
          step = -1;
        }

This doesn't seem to be in the paper, and the comment suggests
"count_succs > count_preds" rather than "count_succs >= count_preds".
Is the ">=" vs ">" important?

Thanks,
Richard

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-08-09 11:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-27 10:21 Question about SMS scheduling windows Richard Sandiford
2011-07-27 13:34 ` Richard Sandiford
2011-07-27 13:40 ` Revital1 Eres
2011-07-27 16:42   ` Ayal Zaks
2011-08-04  9:03     ` Richard Sandiford
2011-08-04 16:27       ` Ayal Zaks
2011-08-08  9:30         ` Richard Sandiford
2011-08-08 19:36           ` Ayal Zaks
2011-08-09 11:19             ` Richard Sandiford

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).