Equations for Live Variable Analysis

Algorithm for Computing Live Variables

Data Structures for Live Variables

9.4.1 Equations for Live Variable Analysis

The equations for live variables resemble those for except that the data "flows backwards" from the Out's to the In's rather than from the In's to the Out's. Note that In still refers to the "top" of a block and Out to the "bottom", with "top" referring to the part of a block where there is the head of an arrow, and "bottom" meaning a tail.

Transfer Equation New information transfers from the end to the beginning of a block. We define Gen and Kill, however, as follows:

     Kill (B)  : {variables defined in B}
     Gen (b)  : {variables used before a redefinition in B}
     
     In(B) = (Out(B) - Kill(B))  Gen(B)
     

Confluence Rule The confluence rules for back wards flow are really "divergence rules".

     Out (B) =  In(S)
     
      S Succ(B)