Skip to main content

Performance Analysis of Symbolic Analysis Techniques for Parallelizing Compilers

  • Conference paper
Languages and Compilers for Parallel Computing (LCPC 2002)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 2481))

Abstract

Understanding symbolic expressions is an important capability of advanced program analysis techniques. Many current compiler techniques assume that coefficients of program expressions, such as array subscripts and loop bounds, are integer constants. Advanced symbolic handling capabilities could make these techniques amenable to real application programs. Symbolic analysis is also likely to play an important role in supporting higher–level programming languages and optimizations. For example, entire algorithms may be recognized and replaced by better variants. In pursuit of this goal, we have measured the degree to which symbolic analysis techniques affect the behavior of current parallelizing compilers. We have chosen the Polaris parallelizing compiler and studied the techniques such as range analysis – which is the core symbolic analysis in the compiler – expression propagation, and symbolic expression manipulation. To measure the effect of a technique, we disabled it individually, and compared the performance of the resulting program with the original, fully-optimized program. We found that symbolic expression manipulation is important for most programs. Expression propagation and range analysis is important in few programs only, however they can affect these programs significantly. We also found that in all but one programs, a simpler form of range analysis – control range analysis – is sufficient.

This material is based upon work supported by the National Science Foundation under Grant, No. 9974976-EIA, 9975275-EIA, and 0103582-EIA. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Blume, W., Eigenmann, R.: An overview of symbolic analysis techniques needed for the effective parallelization of the perfect benchmarks. In: Proceedings of the 1994 International Conference on Parallel Processing, August 1994, pp. 233–238 (1994)

    Google Scholar 

  2. Blume, W., Doallo, R., Eigenmann, R., Hoeflinger, J.G.J., Lawrence, T., Lee, J., Padua, D., Paek, Y., Pottenger, B., Rauchwerger, L., Tu, P.: Parallel programming with polaris. IEEE Computer, 78–82 (December 1996)

    Google Scholar 

  3. Blume, W., Eigenmann, R.: Symbolic range propagation. In: Proceedings of the 9th International Parallel Processing Symposium, Santa Barbara, CA, April 1995, pp. 357–363 (1995)

    Google Scholar 

  4. Blume, W., Eigenmann, R.: Nonlinear and symbolic data dependence testing. IEEE Transactions on Parallel and Distributed Systems 9(12), 1180–1194 (1998)

    Article  Google Scholar 

  5. Tu, P., Padua, D.A.: Gated SSA-based demand-driven symbolic analysis for parallelizing compilers. In: Proceedings of the 1995 International Conference on Supercomputing, pp. 414–423 (1995)

    Google Scholar 

  6. Haghighat, M.R., Polychronopoulos, C.D.: Symbolic analysis for parallelizing compilers. ACM Transactions on Programming Languages and Systems 18(4), 477–518 (1996)

    Article  Google Scholar 

  7. Fahringer, T.: Efficient symbolic analysis for parallelizing compilers and performance estimators. The Journal of Supercomputing 12(3), 227–252 (1998)

    Article  MATH  Google Scholar 

  8. Havlak, P.: Interprocedural Symbolic Analysis. PhD thesis, Dept. of Computer Science, Rice University (May 1994)

    Google Scholar 

  9. Blume, W., Eigenmann, R.: Demand-driven symbolic range propagation. In: Proceedings of the 8th Workshop on Languages and Compilers for Parallel Computing, Columbus, OH, pp. 141–160 (1995)

    Google Scholar 

  10. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of 4th ACM Symposium, pp. 238–252 (1977)

    Google Scholar 

  11. Pottenger, W.M., Eigenmann, R.: Idiom recognition in the polaris parallelizing compiler. In: Proceedings of the 9th International Conference on Supercomputing, pp. 444–448 (1995)

    Google Scholar 

  12. Pugh, W., Wonnacott, D.: Nonlinear Array Dependence Analysis. In: Proceedings of 3rd Workshop on Languages, Compilers and Run-Time Systems for Scalable Computers (November 1994)

    Google Scholar 

  13. Aslot, V., Eigenmann, R.: Performance characteristics of the specomp 2001 benchmarks. In: Proceedings of the 3rd European Workshop on OpenMP (EWOMP 2001), Barcelona, Spain (September 2001)

    Google Scholar 

  14. Pugh, W., Wonnacott, D.: Constraint-based array dependence analysis. ACM Transactions on Programming Languages and Systems 20(3), 635–678 (1998)

    Article  Google Scholar 

  15. Rugina, R., Rinard, M.C.: Symbolic bounds analysis of pointers, array indices, and accessed memory regions. In: Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation, Vancouver, Canada, June 2000, pp. 182–195 (2000)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bae, H., Eigenmann, R. (2005). Performance Analysis of Symbolic Analysis Techniques for Parallelizing Compilers. In: Pugh, B., Tseng, CW. (eds) Languages and Compilers for Parallel Computing. LCPC 2002. Lecture Notes in Computer Science, vol 2481. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11596110_19

Download citation

  • DOI: https://doi.org/10.1007/11596110_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-30781-5

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics