This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] SMS - Pass the actual schedulable rows to compute_split_row


Revital1 Eres/Haifa/IBM wrote on 13/03/2009 07:50:08:

> Hello,
>
> > > Using testsuite/gcc.dg/sms-6.c as an example and compiling it for
> > PowerPC,
> > > node 18 (see attachment) is in a SCC and cannot be scheduled until
> > spliting
> > > twice. The MII = 20 and the schedule can only  be found at II = 24.
> >
> > Yes, I see. This example raises a couple of issues:
> >
> > o The first row split (from II=20 to II=21) is miscalculated; it should
be
> > row 20=0 instead of 19. Splitting row 19 cannot help schedule node 18,
and
> > indeed we immediately split another row. We're now checking a small
patch
> > to fix this, which should save one cycle of II in the above example.
>
> Here is the patch, on behalf of Ayal.
> Passed bootstrap + regtest with SMS flags on ppc64 and bootstrap +
> regtest x86.
>
> I'll commit it later today to trunk if that's OK.
>

OK for trunk, when it's reopened for general patches (it's currently in
stage 4, allowing only regression fixes; this is a missed-optimization fix,
as splitting a row outside the window should not cause any problems except
for inefficiency). Please add a short comment for this short fix,
documenting the fact that the scheduling window is exclusive of 'end'
whereas compute_split_window() expects an inclusive, ordered range.

Bingfeng, you're welcome to try it out.

Thanks, Ayal.


> Thanks,
> Revital
>
>         * modulo-sched.c (sms_schedule_by_order): Pass the actual
>         schedulable rows to compute_split_row.
>
> [attachment "patch_sms_12_3.txt" deleted by Ayal Zaks/Haifa/IBM]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]