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 the previous answer, yes they are if this basic block is
later scheduled by haifa sched. Modulo scheduling using the algorithm in
my patch is exactly equivalent to scheduling an unrolled loop, with
nothing more than the additional constraint that for any insn X,
  t(Xn+1) = t(Xn) + II

So, the above would be a valid schedule, and if there are no
inter-iteration dependencies, so would the following:

>   A1
>   B1  A2
>   C1  B2  A3
>   D1  C2  B3
>       D2  C3
>           D3


Bernd

Reply via email to