Incremental Computation of Dominator Trees

Data flow analysis based on an incremental approach may require that the dominator tree be correctly maintained at all times. Previous solutions to the problem of incrementally maintaining dominator trees were restricted to reducible flowgraphs. In this paper we present a new algorithm for incrementally maintaining the dominator tree of an arbitrary flowgraph, either reducible or irreducible, based on a program representation called the DJ-graph. For the case where an edge is inserted, our algorithm is also faster than previous approaches (in the worst case). For the deletion case, our algorithm is likely to run fast on the average cases.

[1]  Guang R. Gao,et al.  An efficient incremental algorithm for maintaining dominator trees and its application to $phi$-node , 1994 .

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

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

[4]  Keshav Pingali,et al.  The program structure tree: computing control regions in linear time , 1994, PLDI '94.

[5]  Guang R. Gao,et al.  DJ-graphs and their application to flow graph analyses , 1994 .

[6]  Bowen Alpern,et al.  Incremental evaluation of computational circuits , 1990, SODA '90.

[7]  Jong-Deok Choi,et al.  Automatic construction of sparse data flow evaluation graphs , 1991, POPL '91.

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

[9]  Keshav Pingali,et al.  Dependence-based program analysis , 1993, PLDI '93.

[10]  G. Ramalingam Bounded Incremental Computation , 1996, Lecture Notes in Computer Science.

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

[12]  Incremental Computation of Static Single Assignment Form , 1996, CC.

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

[14]  Barbara G. Ryder,et al.  Conditions for incremental iteration: Examples and counterexamples , 1988, Sci. Comput. Program..

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

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

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

[18]  Michael D. Ernst,et al.  Value dependence graphs: representation without taxation , 1994, POPL '94.

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

[20]  Dov Harel,et al.  A linear algorithm for finding dominators in flow graphs and related problems , 1985, STOC '85.

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