I have a question regarding example 4 on software pipelining (slide 98 in the static scheduling slides).
We are given the following program and the resulting data dependency graph:
Now the stated dependencies are:
What confuses me is the loop carried dependency in the middle from I1 to I2. Why is I2 in the next iteration of the loop dependent on I1 from the previous iteration? And if it really is dependent, why this not the case with I3? It also has a dependence on I1.
Thanks in advance.