Upload
mervin-lucas
View
217
Download
0
Tags:
Embed Size (px)
Citation preview
Precise Interprocedural Dataflow Analysis via Graph Reachibility
Thomas Reps
Susan Horwitz
Mooly Sagiv
Directed Reading Week # 4Erkan 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