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