Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Contributions A context sensitive framework for dataflow analysis on general class of problems IFDS problems are transformed into a kind of graph-reachability problem IFDS: Interprocedural – Finite – Distributive – Subset problems
Definitions A program is represented by its supergraph Collection of CFGs Gs, each G has a unique start and exit node In the graph, each statement is represented by a node, where procedure calls are represented by two nodes.
Definitions A valid path is defined as follows
An IFDS Problem D – all variables in the program F – The edges in the lattice M – maps functions in F to CFG’s edges Meet operator – same as we used before (like join)
Solution to IFDS problems MVP solution: meet-over-all-valid paths solution Don’t look at the formula – Intuitively it means “union of all solutions from initial state to node n” Example: Possibly uninitialized variables problem
Converting it into a graph reachability problem Represent functions as relations Composition of two relations relates to the compositions of two functions Using this property, we define exploded supergraph