Question about SMS scheduling windows
Ayal Zaks
ayal.zaks@gmail.com
Wed Jul 27 16:42:00 GMT 2011
(sorry for replicated submissions, had to convert to plain text)
>2011/7/27 Revital1 Eres <ERES@il.ibm.com>
>
>Hello Richard,
>
>
>> 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.
>
>
>Yes, I think it indeed should be fixed. Thanks for reporting on this.
>
>Revital
Agreed;
if (e->data_type == MEM_DEP)
end = MIN (end, SCHED_TIME (v_node) + ii - 1);
should be replaced with
if (e->data_type == MEM_DEP)
end = MIN (end, p_st + ii);
also for the (3rd) case when there are both previously-scheduled
predessors and previously-scheduled successors. The range is inclusive
of start and exclusive of end: for (c = start; c != end; c += step)...
>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?
I think not: in both cases you'll be trying to minimize the same
number of live ranges. But indeed it's good to be consistent with the
comment.
Thanks,
Ayal.
More information about the Gcc
mailing list