Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 20:12, Richard Sandiford wrote: > But what I'm trying to say is that you're not just doing loop > unrolling followed by scheduling. You're doing loop unrolling, > followed by scheduling, followed by an overlapping of the unrolled loop > iterations. It just felt strange that the overla

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Richard Sandiford
Bernd Schmidt writes: > On 10/03/11 19:23, Richard Sandiford wrote: >> Bernd Schmidt writes: Reason for asking is that (AIUI) SMS used to use stronger memory disambiguation, but had to pull back to something more conservative for similar reasons. >>> >>> Pointers? All I could find

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 19:23, Richard Sandiford wrote: > Bernd Schmidt writes: >>> Reason for asking is that (AIUI) SMS used to use stronger memory >>> disambiguation, but had to pull back to something more conservative >>> for similar reasons. >> >> Pointers? All I could find is a thread where rth seems to

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Richard Sandiford
Bernd Schmidt writes: >> Reason for asking is that (AIUI) SMS used to use stronger memory >> disambiguation, but had to pull back to something more conservative >> for similar reasons. > > Pointers? All I could find is a thread where rth seems to be of the same > opinion as me: > > http://gcc.gn

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 17:26, Richard Sandiford wrote: > are necessarily equivalent to: > > Loop 3: > A > B A > C B A > D C B A > A D C B > B A D C > C B A D > D C B A > D C B > D C > D Sort of. The insns wouldn't rotate like this in a modulo-scheduled loop. > Is that righ

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Richard Sandiford
Bernd Schmidt writes: > On 10/03/11 16:21, Richard Sandiford wrote: >> so inter-iteration dependencies aren't a problem. Whereas I thought your >> modulo instruction did: >> >> A1 >> B1 A2 >> C1 B2 A3 >> D1 C2 B3 >> D2 C3 >> D3 >> >> so if D1 writes to memory that

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 16:21, Richard Sandiford wrote: > I'm not sure I follow. Unrolling a loop {A, B, C, D} gives: > > A1 > B1 > C1 > D1 > A2 > B2 > C2 > D2 > A3 > B3 > C3 > D3 > > so inter-iteration dependencies aren't a problem. Expanding on

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 16:21, Richard Sandiford wrote: > so inter-iteration dependencies aren't a problem. Whereas I thought your > modulo instruction did: > > A1 > B1 A2 > C1 B2 A3 > D1 C2 B3 > D2 C3 > D3 > > so if D1 writes to memory that A2 (but not A1) _might_ load, then t

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Richard Sandiford
Bernd Schmidt writes: > On 10/03/11 10:23, Richard Sandiford wrote: >> Bernd Schmidt writes: >>> On 09/14/11 11:03, Richard Sandiford wrote: ...I didn't see from an admittedly quick read of the patch how you handle memory disambiguation between iterations. If a loop includes:

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Bernd Schmidt
On 10/03/11 10:23, Richard Sandiford wrote: > Bernd Schmidt writes: >> On 09/14/11 11:03, Richard Sandiford wrote: >>> ...I didn't see from an admittedly quick read of the patch how you >>> handle memory disambiguation between iterations. If a loop includes: >>> >>> lb $3,($4) >>> sb $5

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-10-03 Thread Richard Sandiford
Bernd Schmidt writes: > On 09/14/11 11:03, Richard Sandiford wrote: >> ...I didn't see from an admittedly quick read of the patch how you >> handle memory disambiguation between iterations. If a loop includes: >> >> lb $3,($4) >> sb $5,1($4) >> >> then the two instructions can be reor

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-09-29 Thread Bernd Schmidt
On 09/29/11 23:32, Vladimir Makarov wrote: > Bernd, sorry for the delay. No problem. > I thought for long time about this approach because we already have > selective scheduler which with some modifications could be used for > this. Selective scheduler was implemented for Itanium, designed to

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-09-29 Thread Vladimir Makarov
On 09/27/2011 08:36 AM, Bernd Schmidt wrote: Ping: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00811.html Bernd, sorry for the delay. I thought for long time about this approach because we already have selective scheduler which with some modifications could be used for this. Selective sc

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-09-27 Thread Bernd Schmidt
Ping: http://gcc.gnu.org/ml/gcc-patches/2011-09/msg00811.html Bernd

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-09-14 Thread Bernd Schmidt
On 09/14/11 11:03, Richard Sandiford wrote: > ...I didn't see from an admittedly quick read of the patch how you > handle memory disambiguation between iterations. If a loop includes: > > lb $3,($4) > sb $5,1($4) > > then the two instructions can be reordered by normal ebb scheduling,

Re: [0/4] Modulo scheduling with haifa-sched for C6X

2011-09-14 Thread Richard Sandiford
Bernd Schmidt writes: > I have added support for this to haifa-sched.c. I expect the question > "why not use SMS" to come up; there were a number of reasons why I felt > that code is unsuitable: Fully agree that SMS is unsuitable here FWIW, but... > There are (or were, when I started) some glari