Precise interprocedural dataflow analysis via graph reachability

The paper shows how a large class of interprocedural dataflow-analysis problems can be solved precisely in polynomial time by transforming them into a special kind of graph-reachability problem. The only restrictions are that the set of dataflow facts must be a finite set, and that the dataflow functions must distribute over the confluence operator (either union or intersection). This class of probable problems includes—but is not limited to—the classical separable problems (also known as “gen/kill” or “bit-vector” problems)—e.g., reaching definitions, available expressions, and live variables. In addition, the class of problems that our techniques handle includes many non-separable problems, including truly-live variables, copy constant propagation, and possibly-uninitialized variables. Results are reported from a preliminary experimental study of C programs (for the problem of finding possibly-uninitialized variables).

[1]  Gary A. Kildall,et al.  A unified approach to global program optimization , 1973, POPL.

[2]  Alfred V. Aho,et al.  The Design and Analysis of Computer Algorithms , 1974 .

[3]  Brian W. Kernighan,et al.  RATFOR—a preprocessor for a rational fortran , 1975, Softw. Pract. Exp..

[4]  Patrick Cousot,et al.  Static Determination of Dynamic Properties of Recursive Procedures , 1977, Formal Description of Programming Concepts.

[5]  Lawrence T. Kou,et al.  On Live-Dead Analysis for Global Data Flow Problems , 1977, JACM.

[6]  Brenda S. Baker,et al.  An Algorithm for Structuring Flowgraphs , 1977, J. ACM.

[7]  Patrick Cousot,et al.  Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints , 1977, POPL.

[8]  Barry K. Rosen,et al.  Qualified Data Flow Problems , 1981, IEEE Trans. Software Eng..

[9]  Barry K. Rosen,et al.  Qualified Data Flow Problems , 1980, IEEE Transactions on Software Engineering.

[10]  Robert Giegerich,et al.  Invariance of Approximate Semantics with Respect to Program Transformations , 1981, GI Jahrestagung.

[11]  F. Kenneth Zadeck,et al.  Incremental data flow analysis in a structured program editor , 1984, SIGPLAN '84.

[12]  Neil D. Jones,et al.  Data flow analysis of applicative programs using minimal function graphs , 1986, POPL '86.

[13]  Charles N. Fischer,et al.  Crafting a Compiler , 1988 .

[14]  Interprocedural Side-Effect Analysis in Linear Time , 1988, PLDI.

[15]  David Callahan,et al.  The program summary graph and flow-sensitive interprocedual data flow analysis , 1988, PLDI '88.

[16]  Ken Kennedy,et al.  Fast interprocedual alias analysis , 1989, POPL '89.

[17]  Alfred V. Aho,et al.  Code generation using tree matching and dynamic programming , 1989, ACM Trans. Program. Lang. Syst..

[18]  Robert Paige,et al.  Program Derivation by Fixed Point Computation , 1989, Sci. Comput. Program..

[19]  David W. Binkley,et al.  Interprocedural slicing using dependence graphs , 1990, TOPL.

[20]  Barbara G. Ryder,et al.  Pointer-induced aliasing: a problem classification , 1991, POPL '91.

[21]  Bernhard Steffen,et al.  The Interprocedural Coincidence Theorem , 1992, CC.

[22]  Flemming Nielson,et al.  Bounded fixed point iteration , 1992, POPL '92.

[23]  Flemming Nielson,et al.  Finiteness conditions for fixed point iteration , 1992, LFP '92.

[24]  Linda Torczon,et al.  Interprocedural constant propagation: a study of jump function implementation , 1993, PLDI '93.

[25]  Thomas W. Reps,et al.  Solving Demand Versions of Interprocedural Analysis Problems , 1994, CC.

[26]  Thomas W. Reps,et al.  Speeding up slicing , 1994, SIGSOFT '94.

[27]  Thomas W. Reps,et al.  Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation , 1995, TAPSOFT.

[28]  Rajiv Gupta,et al.  Demand-driven computation of interprocedural data flow , 1995, POPL '95.

[29]  Thomas W. Reps,et al.  Demand interprocedural dataflow analysis , 1995, SIGSOFT FSE.

[30]  Thomas W. Reps,et al.  Precise Interprocedural Dataflow Analysis with Applications to Constant Propagation , 1995, TAPSOFT.