MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Efficient Computation of Interprocedural Control Dependence

Download:
Download as a PDF | Download as a PS
by James Ezick, Gianfranco Bilardi, Keshav Pingali
http://www.cs.cornell.edu/Info/Projects/Bernoulli/papers/issta.ps
Add To MetaCart

Abstract:

Control dependence information is useful for a wide range of software maintenance and testing tasks. For example, program slicers use it to determine statements and predicates that might affect the value of a particular variable at a particular program location. In the intraprocedural context an optimal algorithm is known for computing control dependence which unfortunately relies critically on the underlying intraprocedural postdominance relation being tree-structured. Hence, this algorithm is not directly applicable to the interprocedural case, where the transitive reduction of the postdominance relation can be a directed acyclic graph (DAG), with nodes having multiple immediate dominators. In this paper, we present an efficient, conceptually simple algorithm for computing the interprocedural postdominance relation, and use it to compute interprocedural control dependence. For an interprocedural control flow graph G = (V; E), our algorithm takes time and space O(jV j

Citations

689 The program dependence graph and its use in optimization – Ferrante, Ottenstein, et al. - 1987
658 Efficiently computing static single assignment form and the control dependence graph – Cytron, Ferrante, et al. - 1991
576 Trace Scheduling: A Technique for Global Microcode Compaction – Fisher - 1981
540 Interprocedural slicing using dependence graphs – Horwitz, Reps, et al. - 1988
252 Precise interprocedural dataflow analysis via graph reachability – Reps, Horowitz, et al. - 1995
237 The program dependence graph in a software development environment – Ottenstein, Ottenstein - 1984
231 Two approaches to interprocedural data flow analysis – Sharir, Pnueli - 1981
219 Integrating non-interfering versions of programs – Horowitz, Prins, et al. - 1988
120 Global instruction scheduling for superscalar machines – Bernstein, Rodeh - 1991
114 L.: A formal model of program dependences and its implications for software testing, debugging, and maintenance – Podgurski, Clarke - 1990
110 Automatic construction of sparse data flow evaluation graphs – Choi, Cytron, et al. - 1991
110 A fast algorithm for finding dominators in a flowgraph – Lengauer, Tarjan - 1979
45 Incremental data flow analysis algorithms – Ryder, Paull - 1988
40 Slicing objects using system dependence graphs – Liang, Harrold - 1998
39 The program structure tree: Computing control regions in linear time – Johnson, Pearson, et al. - 1994
37 An Incremental Version of Iterative Data Flow Analysis – Pollock, Soffa - 1989
29 Interprocedural control dependence – Sinha, Harrold, et al. - 2001
28 Using Dependence Analysis to Support the Software Maintenance Process – Loyall, Mathisen - 1993
25 Linear-time pointermachine algorithms for least common ancestors, mst verification, and dominators – Buchsbaum, Kaplan, et al. - 1998
22 A framework for generalized control dependences – Bilardi, Pingali - 1996
21 A Framework for Determining Useful Parallelism – Allen, Burke, et al. - 1988
21 Compact representations for control dependence – Cytron, Ferrante, et al. - 1990
18 Region Scheduling – Gupta, Soffa - 1987
7 Parallelizing data flow analysis – Gupta, Pollock, et al. - 1990
7 Efficient Program Analysis Using Dependence Flow Graphs – Johnson - 1994
6 Systemdependence -graph-based slicing of programs with arbitrary interprocedural control flow – Sinha, Harrold, et al. - 1999
5 A foundation for sequentializing parallel code – Simons, Alpern, et al. - 1990
5 The SUIF Library. The SUIF compiler documentation set – Group - 1994
4 A PDG-based tool and its use in analyzing program control dependences – Newburn, Noonburg, et al. - 1994
2 Optimal control dependence and the roman chariots problem – Pingali, Bilardi - 1997
1 The MachSUIF library. The MachSUIF documentation set – Group - 1997