Module 16: Data Flow Analysis in Presence of Procedure Calls
  Lecture 32: Iteration
 
  • For statements involving A[i,,j]
    distance vector (0,0)
    direction vector (=,=)
    dependence is loop independent
  • For statements involving B[i,,j]
    distance vector (0,1)
    direction vector (=,<)
    dependence is carried by the inner loop
  • For statements involving C[i,,j]
    distance vector (1,-1)
    direction vector (<,>)
    dependence is carried by the outer loop

Dependence Level

Loop nest level that carries the data dependence relation

Therefore, for C[i,,j] level is 1
for B[i,,j] level is 2
for A[i,,j] level is

Iteration Vector - Triangular Space

Advantages of normalized iteration vector:

  • Later iterations have larger iteration vector
  • Adjacent iterations differ by only one
    However, neither of these require first iteration to have vector (0,0, · · ·, 0).

Consider following program:

for i = 1 to 7 do
for j = i to 7 do
A[i+1,,j] = A[i,,j]+1
endfor
endfor