Skip to main content

Efficiently computing φ-nodes on-the-fly

Extended abstract

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 768))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alfred Aho, John Hopcroft, and Jeffrey Ullman. The Design and Analysis of Computer Algorithms. Addison-Wesley, 1974.

    Google Scholar 

  2. A.V. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, 1986.

    Google Scholar 

  3. 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.

    Google Scholar 

  4. 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.

    Google Scholar 

  5. 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.

    Google Scholar 

  6. 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.

    Google Scholar 

  7. Jong-Deok Choi, Ron Cytron, and Jeanne Ferrante. On the efficient treatment of preserving definitions. Technical report, IBM Research, 1991. Research Report RC17065.

    Google Scholar 

  8. Thomas H. Cormen, Charles E. Leiserson, and Ronald L. Rivest. Introduction to Algorithms. The MIT Press, 1990.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. 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.

    Google Scholar 

  11. 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.

    Google Scholar 

  12. J. J. Dongarra, J. R. Bunch, C. B. Moler, and G. W. Stewart. Linpack Users' Guide. SIAM Press, 1979.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. Thomas J. Marlowe. Data Flow Analysis and Incremental Iteration. PhD thesis, Rutgers University, October 1989.

    Google Scholar 

  15. 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.

    Google Scholar 

  16. 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.

    Google Scholar 

  17. Robert Tarjan. Applications of path compression on balanced trees. JACM, 26(4):690–715, October 1979.

    Article  Google Scholar 

  18. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints 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

Publish with us

Policies and ethics