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


Non Tightly Nested Loops

A nested loop where outer loop contains additional statements outside inner loop. For example

for i = 1 to n do
B[i] = B[i] / A[i,i]
for j = i+1 to n do
B[j] = B[j]-A[i,,j]*B[i]
endfor
endfor


 
 

Code Sinking

Sink outer loop body into the inner loop by adding conditionals:

for i = 1 to n do
for j = i to n do
if (j=i) B[i] = B[i] / A[i,i]
if (j>i) B[j] = B[j]-A[i,,j]*B[i]
endfor
endfor