Module 16: Data Flow Analysis in Presence of Procedure Calls
  Lecture 31: Data Dependence Analysis
 
Latency:
delay required between initiation times of I1 and I2 minus execution time required for I1 before another instruction can start. For example, if two cycles must elapse between I1 and I2 then latency is 1.
r2 ← [r1](4)
r3 ← [r1+4](4)
r4 ← r2 + r3
r5 ← r2 - 1

assume load has latency of 1; requires 2 cycles to finish.

Data Dependence in Loops

  • Each statement executed many times
  • Dependence can flow from one statement to any other
  • Dependence can flow to the same statement
for i = 2, 9 do
x(i) = y(i) + z(i) S1
a(i) = x(i-1) + 1 S2
endfor
S1 → S2