A new framework for elimination-based data flow analysis using DJ graphs

In this article, we present a new framework for elimination-based exhaustive and incremental data flow analysis using the DJ graph representation of a program. Unlike previous approaches to elimination-based incremental data flow analysis, our approach can handle arbitrary structural and nonstructural changes to program flowgraphs, including irreducibility. We show how our approach is related to dominance frontiers, and we exploit this relationship to establish the complexity of our exhaustive analysis and to aid the design of our incremental analysis.

[1]  Jan van Leeuwen,et al.  Worst-case Analysis of Set Union Algorithms , 1984, JACM.

[2]  Robert E. Tarjan,et al.  Data-Structural Bootstrapping, Linear Path Compression, and Catenable Heap-Ordered Double-Ended Queues , 1995, SIAM J. Comput..

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

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

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

[6]  Barbara G. Ryder,et al.  An efficient hybrid algorithm for incremental data flow analysis , 1989, POPL '90.

[7]  Guang R. Gao,et al.  Computing phi-nodes in linear time using DJ graphs , 1995, J. Program. Lang..

[8]  John Cocke,et al.  A program data flow analysis procedure , 1976, CACM.

[9]  Guang R. Gao,et al.  Identifying loops using DJ graphs , 1996, TOPL.

[10]  Barbara G. Ryder,et al.  Elimination algorithms for data flow analysis , 1986, CSUR.

[11]  Barbara G. Ryder,et al.  Incremental data flow analysis via dominator and attribute update , 1988, POPL '88.

[12]  Michael G. Burke An interval-based approach to exhaustive and incremental interprocedural data-flow analysis , 1990, TOPL.

[13]  Guang R. Gao,et al.  Incremental Computation of Dominator Trees , 1995, Intermediate Representations Workshop.

[14]  Guang R. Gao,et al.  A linear time algorithm for placing φ-nodes , 1995, POPL '95.

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

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

[17]  Vugranam C. Sreedhar,et al.  Efficient program analysis using DJ graphs , 1996 .

[18]  Ron Cytron,et al.  Efficiently computing Φ-nodes on-the-fly , 1993, TOPL.

[19]  Mark N. Wegman,et al.  A Fast and Usually Linear Algorithm for Global Flow Analysis , 1976, J. ACM.

[20]  Joan M. Lucas Postorder Disjoint Set Union is Linear , 1990, SIAM J. Comput..

[21]  Barbara G. Ryder,et al.  Data flow update via dominator and attribute updates , 1988 .

[22]  Steven W. K. Tjiang,et al.  Sharlit—a tool for building optimizers , 1992, PLDI '92.

[23]  Thomas W. Reps Optimal-time incremental semantic analysis for syntax-directed editors , 1982, POPL '82.

[24]  Jeffrey D. Ullman,et al.  Characterizations of Reducible Flow Graphs , 1974, JACM.

[25]  Thomas W. Reps,et al.  An incremental algorithm for maintaining the dominator tree of a reducible flowgraph , 1994, POPL '94.