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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsPreview
Unable to display preview. Download preview PDF.
References
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)
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)
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)
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)
Blume, W., Eigenmann, R.: Nonlinear and symbolic data dependence testing. IEEE Transactions on Parallel and Distributed Systems 9(12), 1180–1194 (1998)
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)
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)
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)
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)
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)
Havlak, P.: Interprocedural Symbolic Analysis. PhD thesis, Dept. of Computer Science, Rice University (May 1994)
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)
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)
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)
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)
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)
Tu, P., Padua, D.: Array privatization for shared and distributed memory machines (extended abstract). SIGPLAN Not. 28(1), 64–67 (1993)
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)
Yong, S.H., Horwitz, S.: Pointer-range analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 133–148. Springer, Heidelberg (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)