Advertisement

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

  • Jaejin Lee
  • Samuel P. Midkiff
  • David A. Padua
Data Locality
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Control Flow Constant Propagation Basic Block Parallel Program Intermediate Representation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

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

Copyright information

© Springer-Verlag Berlin Heidelberg 1998

Authors and Affiliations

  • Jaejin Lee
    • 1
  • Samuel P. Midkiff
    • 2
  • David A. Padua
    • 1
  1. 1.Department of Computer ScienceUniversity of IllinoisIllinois
  2. 2.IBM T.J. Watson Research CenterYorktown Heights

Personalised recommendations