Module 14: Approaches to Control Flow Analysis
  Lecture 28: Structural Analysis
 
gen(S) = gen(S1)
kill(S) = kill(S1)
out(S) = out(S1)
in(S1) = in(S) S gen(S1)

Assumptions : All paths in the flow graph are possible

Suppose E is true and it never goes to S2
gen(S) = gen(S1)
kill(S) = kill(S1)
out(S) = out(S1)

Therefore

true gen(S) ⊂ gen(S)
true kill(S) ⊃ kill(S)

True is what is computed during execution therefore, this is safe estimate

  • Prevents optimization
  • No wrong optimization