Abstract
Recently, Static Single Assignment Form and Sparse Evaluation Graphs have been advanced for the efficient solution of program optimization problems. Each method is provided with an initial set of flow graph nodes that inherently affect a problem's solution. Other relevant nodes are those where potentially disparate solutions must combine. Previously, these so-called φ-nodes were found by computing the iterated dominance frontiers of the initial set of nodes, a process that could take worst case quadratic time with respect to the input flow graph. In this paper we present an almost-linear algorithm for determining exactly the same set of φ-nodes.
Preview
Unable to display preview. Download preview PDF.
References
Alfred Aho, John Hopcroft, and Jeffrey Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.
A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.
Bowen Alpern, Mark N. Wegman, and F. Kenneth Zadeck. Detecting equality of variables in programs. Fifteenth ACM Principles of Programming Languages Symposium, pages 1–11, January 1988. San Diego, CA.
M. Berry, D. Chen, P. Koss, D. Kuck, S. Lo, Y. Pang, R. Roloff, A. Sameh, E. Clementi, S. Chin, D. Schneider, G. Fox, P. Messina, D. Walker, C. Hsiung, J. Schwarzmeier, K. Lue, S. Orszag, F. Seidl, O. Johnson, G. Swanson, R. Goodrum, and J. Martin. The perfect club benchmarks: Effective performance evaluation of supercomputers the performance evaluation club (perfect). Technical report, U. of Ill-Center for Supercomputing Research and Development, November 1988.
Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, January 1993.
Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. Automatic construction of sparse data flow evaluation graphs. Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, January 1991.
Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. On the efficient treatment of preserving definitions. Technical report, IBM Research, 1991. Research Report RC17065.
Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. The MIT Press, 1990.
Ron Cytron, Jeanne Ferrante, Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, October 1991.
Ron Cytron, Andy Lowry, and Ken Zadeck. Code motion of control structures in high-level languages. Conf. Rec. of the ACM Symp. on Principles of Compiler Construction, 1986.
Ron K. Cytron and Jeanne Ferrante. Efficiently computing φ-nodes on-the-fly. Technical report, IBM T.J. Watson Research Labs, 1993. Order as RC19099. Also available as technical report WUCS 93-24 from Washington University in St. Louis and wuarchive ftp.
J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart. Linpack Users' Guide. SIAM Press, 1979.
Richard Johnson and Keshav Pingali. Dependence-based program analysis. Proceedings of the ACM SIGPLAN '93 Conference on Programming Langauge Design and Implementation, 1993. Published as SIGPLAN Notices Volume 28 Number 6.
Thomas J. Marlowe. Data Flow Analysis and Incremental Iteration. PhD thesis, Rutgers University, October 1989.
Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Global value numbers and redundant computations. Fifteenth ACM Principles of Programming Languages Symposium, pages 12–27, January 1988. San Diego, CA.
B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, Y. Ikebe, V. C. Klema, and C. B. Moler. Matrix Eigensystem Routines — Eispack Guide. Springer-Verlag, 1976.
Robert Tarjan. Applications of path compression on balanced trees. JACM, 26(4):690–715, October 1979.
Mark Wegman and Ken Zadeck. Constant propagation with conditional branches. Conf. Rec. Twelfth ACM Symposium on Principles of Programming Languages, pages 291–299, January 1985.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Cytron, R.K., Ferrante, J. (1994). Efficiently computing φ-nodes on-the-fly. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1993. Lecture Notes in Computer Science, vol 768. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57659-2_27
Download citation
DOI: https://doi.org/10.1007/3-540-57659-2_27
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57659-4
Online ISBN: 978-3-540-48308-3
eBook Packages: Springer Book Archive