Skip to main content

Interprocedural Symbolic Range Propagation for Optimizing Compilers

  • Conference paper

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

Abstract

We have designed and implemented an interprocedural algorithm to analyze symbolic value ranges that can be assumed by variables at any given point in a program. Our algorithm contrasts with related work on interprocedural value range analysis in that it extends the ability to handle symbolic range expressions. It builds on our previous work of intraprocedural symbolic range analysis. We have evaluated our algorithm using 11 Perfect Benchmarks and 10 SPEC floating-point benchmarks of the CPU 95 and CPU 2000 suites. We have measured the ability to perform test elision, dead code elimination, and detect data dependences. We have also evaluated the algorithm’s ability to help detect zero-trip loops for induction variable substitution and subscript ranges for array reductions.

This work is supported in part by the National Science Foundation under Grants No. 0103582-EIA, and 0429535-CCF.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Balasundaram, V., Kennedy, K., Kremer, U., McKinley, K., Subhlok, J.: The parascope editor: an interactive parallel programming tool. In: Supercomputing 1989: Proceedings of the 1989 ACM/IEEE conference on Supercomputing, pp. 540–550. ACM Press, New York (1989)

    Chapter  Google Scholar 

  2. Blume, W., Doallo, R., Eigenmann, R., Grout, J., Hoeflinger, J., Lawrence, T., Lee, J., Padua, D., Paek, Y., Pottenger, B., Rauchwerger, L., Tu, P.: Parallel programming with Polaris. IEEE Computer 29(12), 78–82 (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.: Demand-driven, Symbolic Range Propagation. In: Huang, C.-H., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1995. LNCS, vol. 1033, pp. 141–160. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

  5. 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 

  6. Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proceedings of the 2nd Internatioal Symposium on Programming, April 1976, pp. 106–130 (1976)

    Google Scholar 

  7. 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 

  8. Creusillet, B., Irigoin, F.: Interprocedural Array Region Analyses. In: Huang, C.-H., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1995. LNCS, vol. 1033, pp. 4–1 – 4–15. Springer, Heidelberg (1996)

    Google Scholar 

  9. Grove, D., Torczon, L.: Interprocedural constant propagation: A study of jump function implementations. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 90–99 (1993)

    Google Scholar 

  10. Hall, M.W., Murphy, B.R., Amarasinghe, S.P., Liao, S.-W., Lam, M.S.: Interprocedural analysis for parallelization. In: Huang, C.-H., Sadayappan, P., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1995. LNCS, vol. 1033, pp. 61–80. Springer, Heidelberg (1996)

    Chapter  Google Scholar 

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

    Google Scholar 

  12. Hendren, L.J., Donawa, C., Emami, M., Gao, G.R., Justiani, Sridharan, B.: Designing the mccat compiler based on a family of structured intermediate representations. In: Banerjee, U., Gelernter, D., Nicolau, A., Padua, D.A. (eds.) LCPC 1992. LNCS, vol. 757, pp. 406–420. Springer, Heidelberg (1993)

    Google Scholar 

  13. Min, S.-J., Kim, S.W., Voss, M., Lee, S.-I., Eigenmann, R.: Portable compilers for OpenMP. In: Eigenmann, R., Voss, M.J. (eds.) WOMPAT 2001. LNCS, vol. 2104, pp. 11–19. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  14. Patterson, J.R.C.: Accurate static branch prediction by value range propagation. In: Proceedings of the conference on Programming language design and implementation, pp. 67–78. ACM Press, New York (1995)

    Google Scholar 

  15. 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 

  16. 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 

  17. Tu, P., Padua, D.: Array privatization for shared and distributed memory machines (extended abstract). SIGPLAN Not. 28(1), 64–67 (1993)

    Article  Google Scholar 

  18. Verbrugge, C., Co, P., Hendren, L.J.: Generalized constant propagation: A study in c. In: Proceedings of the Internatioal Conference on Compiler Construction, April 1996, pp. 74–90 (1996)

    Google Scholar 

  19. Yong, S.H., Horwitz, S.: Pointer-range analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 133–148. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bae, H., Eigenmann, R. (2006). Interprocedural Symbolic Range Propagation for Optimizing Compilers. In: Ayguadé, E., Baumgartner, G., Ramanujam, J., Sadayappan, P. (eds) Languages and Compilers for Parallel Computing. LCPC 2005. Lecture Notes in Computer Science, vol 4339. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-69330-7_28

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-69330-7_28

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-69329-1

  • Online ISBN: 978-3-540-69330-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics