This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [0/4] Modulo scheduling with haifa-sched for C6X
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