Skip to main content

Concurrent static single assignment form and constant propagation for explicitly parallel programs

  • Data Locality
  • Conference paper
  • First Online:
Book cover Languages and Compilers for Parallel Computing (LCPC 1997)

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

Abstract

Static Single Assignment (SSA) form has shown its usefulness as a program representation for code optimization techniques in sequential programs. We introduce the Concurrent Static Single Assignment (CSSA) form to represent explicitly parallel programs with interleaving semantics and post-wait synchronization. The parallel construct considered in this paper is cobegin/coend. A new confluence function, the π-assignment, which summarizes the information of interleaving statements between threads, is introduced. The Concurrent Control Flow Graph, which contains information about conflicting statements, control flow, and synchronization, is used as an underlying representation for the CSSA from. An extension of the Sparse Conditional Constant propagation algorithm based on the CSSA form makes it possible to apply the constant propagation optimization to explicitly parallel programs.

Research supported in part by Army contract #DABT63-95-C-0097. This work is not necessarily representative of the positions or policies of the Army or the government. Research supported in part by IBM. Jaejin Lee's work is partially supported by IBM cooperative fellowship. This work is not necessarily representative of the positions or policies of the IBM Corp.

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 V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986.

    Google Scholar 

  2. Mark M. Brandis and Hanspeter Mössenböek. Single-pass generation of static single assignment form for structured languages. ACM Transactions on Programming Language and Systems, 16(6):1684–1698, 1994.

    Google Scholar 

  3. Preston Briggs and Keith D. Cooper. Effective partial redundancy elimination. In Proceedings of the ACM SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 159–170, June 1994.

    Google Scholar 

  4. David Callahan and Jaspal Subhlok. Static analysis of low-level synchronization. In Proceedings of the ACM SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, pages 100–111, May 1988.

    Google Scholar 

  5. Ron Cytron, Jeanne Ferrante, Barry K. Rosen, and Mark N. Wegman. Efficiently computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4):451–490, October 1991.

    Google Scholar 

  6. Perry A. Emrath, Sanjoy Ghosh, and David A. Padua. Event synchronization analysis for debugging parallel programs. In Proceedings of Supercomputing '89, pages 580–588, 1989.

    Google Scholar 

  7. Perry A. Emrath, Sanjoy Ghosh, and David A. Padua. Detecting nondeterminacy in parallel programs. IEEE Software, pages 69–77, January 1992.

    Google Scholar 

  8. Michael P. Gerlek, Eric Stoltz, and Michael Wolfe. Beyond induction variables: Detecting and classifying sequences using a demand-driven SSA form. ACM Transactions on Programming Languages and Systems, 17(1):85–122, January 1995.

    Google Scholar 

  9. Jaejin Lee, Samuel P. Midkiff, and David A. Padua. Concurrent staticsingle assignment form and concurrent sparse conditional constant propagation for explicitly parallel programs. Technical Report TR#1525, CSRD, University of Illinois at Urbana-Champaign, July 1997.

    Google Scholar 

  10. S. P. Midkiff and D. A. Padua. Issues in the optimization of parallel programs. In Proceedings of the 1990 International Conference on Parallel Processing, Val. II Software, pages 105–113, August 1990.

    Google Scholar 

  11. Robert H. B. Netzer and Barton P. Miller. On the complexity of event ordering for shared memory parallel program executions. In Proceedings of the 1990 International Conference on Parallel Processing, Vol. II Software, pages 93–104, August 1990.

    Google Scholar 

  12. Barry K. Rosen, Mark N. Wegman, and F. Kenneth Zadeck. Gloabal value numbers and redundant computations. In Conference Record of the Fifteenth ACM Symposium on Principles of Programming Laguages, pages 12–27, January 1988.

    Google Scholar 

  13. Vivek Sarkar. Analysis and optimization of explicitly parallel programs using the parallel program graph representation. In The Tenth Annual Workshop on Languages and Compilers for Parallel Computing, August 1997.

    Google Scholar 

  14. Vivek Sarkar and Barbara Simons. Parallel program graphs and their classification. In Utpal Banerjee, David Gelernter, Alex Nicolau, and David Padua, editors, The Sixth Annual Workshop on Languages and Compilers for Parallel Computing, volume 768 of Lecture Notes in Computer Science. Springer-Verlag, August 1993.

    Google Scholar 

  15. Harini Srinivasan and Dirk Grunwald. An efficient construction of parallel static single assignment form for structured parallel programs. Technical Report CUCS-564-91, University of Colorado at Boulder, December 1991.

    Google Scholar 

  16. Harini Srinivasan, James Hook, and Michael Wolfe. Static single assignment for explicitly parallel programs. In Proceedings of the 20th ACM Symposium on Principles of Programming Languages, pages 260–272, January 1993.

    Google Scholar 

  17. Mark N. Wegman and F. Kenneth Zadeck. Constant propagation with conditional branches. ACM Transactions on Programming Languages and Systems, 13(2):181–210, April 1991.

    Google Scholar 

  18. Michael Wolfe and Harini Srinivasan. Data structures for optimizing programs with explicit parallelism. In Proceeedings of the First International Conference of the Austrian Center for Parallel Computation, September 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Zhiyuan Li Pen-Chung Yew Siddharta Chatterjee Chua-Huang Huang P. Sadayappan David Sehr

Rights and permissions

Reprints and permissions

Copyright information

© 1998 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Lee, J., Midkiff, S.P., Padua, D.A. (1998). Concurrent static single assignment form and constant propagation for explicitly parallel programs. In: Li, Z., Yew, PC., Chatterjee, S., Huang, CH., Sadayappan, P., Sehr, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1997. Lecture Notes in Computer Science, vol 1366. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0032687

Download citation

  • DOI: https://doi.org/10.1007/BFb0032687

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-64472-9

  • Online ISBN: 978-3-540-69788-6

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics