Module 16: Data Flow Analysis in Presence of Procedure Calls
  Lecture 32: Iteration
 


Normalized Iteration Vector

  • Iterations are labeled 0, 1, 2, . . .
  • Advantage
    • Later iterations always have larger vector than earlier iterations if then is always executed before
    • next iteration is always one more than the current iteration

Dependence Distance

Vector difference between iteration vector of the source and the target iterations.

Direction Vector

  • Frequently used but less precise
  • It is ordering vector relating the source and the target iteration vectors
  • For some optimizations direction information is sufficient
  • Some times distance is not fixed but the direction is fixed
for i = 1 to 10 do
A[2*I] = B[I] + 1
C[I] = A[I]
endfor
  • Distance varies from 1 to 5, therefore
  • Direction is constant,

Loop Carried Dependence Relations

for i = 1 to n do
for j = 1 to n do
A[i,j] =
= A[i,j]
B[i,j+1] =
= B[i,j]
C[i+1,j] =
= C[i,j+1]
endfor
endfor