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.
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison Wesley, 1986.
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.
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.
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.
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.
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.
Perry A. Emrath, Sanjoy Ghosh, and David A. Padua. Detecting nondeterminacy in parallel programs. IEEE Software, pages 69–77, January 1992.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Rights 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