25
Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

Embed Size (px)

Citation preview

Page 1: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

Precise Interprocedural Dataflow Analysis via Graph Reachibility

Thomas Reps

Susan Horwitz

Mooly Sagiv

Directed Reading Week # 4Erkan Keremoglu

Page 2: 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

Page 3: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

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.

Page 4: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 5: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

Definitions

• A valid path is defined as follows

Page 6: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 7: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

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)

Page 8: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

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

Page 9: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 10: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu

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

Page 11: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 12: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 13: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 14: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 15: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 16: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 17: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 18: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 19: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 20: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 21: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 22: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 23: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 24: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu
Page 25: Precise Interprocedural Dataflow Analysis via Graph Reachibility Thomas Reps Susan Horwitz Mooly Sagiv Directed Reading Week # 4 Erkan Keremoglu