Skip to main content

Demand-driven, symbolic range propagation

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

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

Abstract

To effectively parallelize real programs, parallelizing compilers need powerful symbolic analysis techniques [13, 6]. In previous work we have introduced an algorithm called range propagation [4] that provides such capabilities. Range propagation has been implemented in Polaris, a parallelizing Fortran compiler being developed at the University of Illinois [7]. Because the algorithm is relatively expensive and several compilation passes make use of it, we have studied opportunities for increasing its efficiency. In this paper we present an algorithm that provides range analysis on-demand. We have implemented this algorithm in Polaris as well, and have measured its effectiveness.

This work was done at the University of Illinois at Urbana-Champaign under support by Army contract DABT63-92-C-0033. This work is not necessarily representative of the positions or policies of the U.S. Army or the government.

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. H. Abelson, G. J. Sussman, and J. Sussman. Structure and Interpretation of Computer Programs. The MIT Press, 1985.

    Google Scholar 

  2. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, Mass., 1986.

    Google Scholar 

  3. M. Berry, D. Chen, P. Koss, D. Kuck, L. Pointer, 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 Evalution of Supercomputers. Int'l. Journal of Supercomputer Applications, Fall 1989, 3(3):5–40, Fall 1989.

    Google Scholar 

  4. William Blume and Rudolf Eigenmann. Symbolic Range Propagation. Proceedings of the 9th International Parallel Processing Symposium, April 1995.

    Google Scholar 

  5. William Blume and Rudolf Eigenmann. The Range Test: A Dependence Test for Symbolic, Non-linear Expressions. Proceedings of Supercomputing '94, Washington D.C., November 1994, pages 528–537.

    Google Scholar 

  6. William Blume and Rudolf Eigenmann. An Overview of Symbolic Analysis Techniques Needed for the Effective Parallelization of the Perfect Benchmarks. Proceedings of the 1994 International Conference on Parallel Processing, pages II233–II238, August, 1994.

    Google Scholar 

  7. William Blume, Rudolf Eigenmann, Keith Faigin, John Grout, Jay Hoeflinger, David Padua, Paul Petersen, Bill Pottenger, Lawrence Rauchwerger, Peng Tu, and Stephen Weatherford. Polaris: Improving the Effectiveness of Parallelizing Compilers. Proceedings of the Seventh Workshop on Languages and Compilers for Parallel Computing, Ithaca, New York; also: Lecture Notes in Computer Science 892, Springer-Verlag, pages 141–154, August 1994.

    Google Scholar 

  8. William Joseph Blume. Symbolic Analysis Techniques for Effective Automatice Parallelization. PhD thesis, Univ. of Illinois at Urbana-Champaign, Cntr. for Supercomputing Res. & Dev., June 1995.

    Google Scholar 

  9. Francois Bourdoncle. Abstract Debugging of Higher-Order Imperative Languages. Proceedings of the ACM SIGPLAN '93 Conference on Programming Language Design and Implementation, pages 46–55, June 1993.

    Google Scholar 

  10. Partrick Cousot and Radhia Cousot. Abstract Interpretation: A unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. Proceedings of the 4th Annual ACM Symposium on Principles of Programming Languages, pages 238–252, January 1977.

    Google Scholar 

  11. Patrick Cousot and Nicolas Halbwachs. Automatic Discovery of Linear Restraints Among Variables of a Program. In Proceedings of the 5th Annual ACM Symposium on Principles of Programming Languages, pages 84–97, 1978.

    Google Scholar 

  12. 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, 13(4):451–490, October 1991.

    Google Scholar 

  13. Mohammad Haghighat and Constantine Polychronopoulos. Symbolic Dependence Analysis for High-Performance Parallelizing Compilers. Parallel and Distributed Computing: Advances in Languages and Compilers for Parallel Processing, MIT Press, Cambridge, MA, pages 310–330, 1991.

    Google Scholar 

  14. D. Harel. A linear time algorithm for finding dominators in a flow graph and related problems. Proceedings of the 17th ACM Symposium of Theory of Computing, pages 185–194, May 1985.

    Google Scholar 

  15. William H. Harrison. Compiler Analysis of the Value Ranges for Variables. IEEE Transactions on Software Engineering, SE-3(3):243–250, May 1977.

    Google Scholar 

  16. Matthew S. Hecht and Jeffrey D. Ullman. A Simple Algorithm for Global Data Flow Analysis Problems. SIAM Journal on Computing, 4(4):519–532, December 1975.

    Article  Google Scholar 

  17. D. Maydan, J. Hennessy, and M. Lam. Efficient and exact data dependence analysis. In SIGPLAN NOTICES: Proceedings of the ACM SIGPLAN 91 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada, June 26–28, pages 1–14. ACM Press, 1991.

    Google Scholar 

  18. Peng Tu and David Padua. Gated SSA-Based Demand-Driven Symbolic Analysis for Parallelizing Compilers. Proceedings of the 9th ACM International Conference on Supercomputing, Barcelona, Spain, July 1995.

    Google Scholar 

  19. Peng Tu and David Padua. Automatic Array Privatization. In Utpal Banerjee-David GelernterAlex NicolauDavid Padua, editor, Proc. Sixth Workshop on Languages and Compilers for Parallel Computing, Portland, OR. Lecture Notes in Computer Science., volume 768, pages 500–521, August 12–14, 1993.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Chua-Huang Huang Ponnuswamy Sadayappan Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1996 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Blume, W., Eigenmann, R. (1996). Demand-driven, symbolic range propagation. In: Huang, CH., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1995. Lecture Notes in Computer Science, vol 1033. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0014197

Download citation

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

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-60765-6

  • Online ISBN: 978-3-540-49446-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics