Automatic construction of sparse data flow evaluation graphs

In this paper, we present an algorithm that constructs sparse evaluation graphs for forward or backward monotone data flow problems. The sparse graph combines information as early as possible, yet directly connects nodes that generate and use information. This allows problems from the large, general class of monotone data flow problems to err joy the advantages of solutions based on Static Single Assignment (SSA) form.

[1]  Joe D. Warren,et al.  The program dependence graph and its use in optimization , 1987, TOPL.

[2]  Bowen Alpern,et al.  Detecting equality of variables in programs , 1988, POPL '88.

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

[4]  Barry K. Rosen Data Flow Analysis for Procedural Languages , 1979, JACM.

[5]  Wuu Yang,et al.  Detecting Program Components With Equivalent Behaviors , 1989 .

[6]  Mark N. Wegman,et al.  An efficient method of computing static single assignment form , 1989, POPL '89.

[7]  Mark N. Wegman,et al.  Constant propagation with conditional branches , 1985, POPL.

[8]  John H. Reif Symbolic program analysis in almost linear time , 1978, POPL '78.

[9]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[10]  Ron Cytron,et al.  Code motion of control structures in high-level languages , 1986, POPL '86.

[11]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

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

[13]  John H. Reif,et al.  Symbolic evaluation and the global value graph , 1977, POPL.

[14]  Robert E. Tarjan,et al.  A fast algorithm for finding dominators in a flowgraph , 1979, TOPL.

[15]  M. Wegman,et al.  Global value numbers and redundant computations , 1988, POPL '88.

[16]  Robert E. Tarjan,et al.  Fast Algorithms for Solving Path Problems , 1981, JACM.

[17]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[18]  Barbara G. Ryder,et al.  Data-flow analysis and incremental iteration , 1989 .

[19]  Matthew S. Hecht,et al.  Flow Analysis of Computer Programs , 1977 .