Abstract
Information gathered by the existing pointer analysis techniques can be classified as must aliases or definitely-points-to relationships, which hold for all executions, and may aliases or possibly-points-to relationships, which might hold for some executions. Such information does not provide quantitative descriptions to tell how likely the conditions will hold for the executions, which are needed for modern compiler optimizations, and thus has hindered compilers from more aggressive optimizations. This paper addresses this issue by proposing a probabilistic points-to analysis technique to compute the probability of each points-to relationship. Initial experiments are done by incorporating the probabilistic data flow analysis algorithm into SUIF and MachSUIF, and preliminary experimental results show the probability distributions of points-to relationships in several benchmark programs. This work presents a major enhancement for pointer analysis to keep up with modern compiler optimizations.
The work was supported in part by NSC of Taiwan under grant no. NSC-89-2213-E-019-019, NSC-90-2213-E-019-016, NSC-89-2218-E-007-023, NSC-89-2219-E-007-012, and MOE research excellent project under grant no. 89-E-FA04-1-4.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Michael Burke, Paul Carini, Jong-Deok Choi, and Michael Hind. Flow-insensitive interprocedural alias analysis in the presence of pointers. In Proceedings of the 8th International Workshop on Languages and Compilers for Parallel Computing, Columbus, Ohio, August 1995.
Tim Callahan and John Wawrzynek. Simple profiling system for suif. In Proceedings of the First SUIF Compiler Workshop, January 1996.
M. C. Carlisle and A. Rogers. Software caching and computation migration in olden. In Proceedings of ACM SIGPLAN Conference on Principles and Practice of Parallel Programming, pages 29–39, July 1995.
Jong-Deok Choi, Michael Burke, and Paul Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Conference Record of the Twentieth Annual ACMSIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 232–245, Charleston, South Carolina, January 1993.
Intel Corporation. IA-64 Application Developer’s Architecture Guide. 1999.
Manuvir Das. Unification-based pointer analysis with directional assignments. SIGPLAN Notices, 35(5):35–46, May 2000. Proceedings of the ACM SIGPLAN’ 00 Conference on Programming Language Design and Implementation.
Alain Deutsch. Interprocedural May-Alias analysis for pointers: Beyond k-limiting. SIGPLAN Notices, 29(6):230–241, June 1994. Proceedings of the ACM SIGPLAN’ 94 Conference on Programming Language Design and Implementation.
Maryam Emami, Rakesh Ghiya, and Laurie J. Hendren. Context-sensitive interprocedural Points-to analysis in the presence of function pointers. SIGPLAN Notices, 29(6):242–256, June 1994. Proceedings of the ACM SIGPLAN’ 94 Conference on Programming Language Design and Implementation.
The Stanford SUIF Compiler Group. The suif library. Technical report, Stanford University, 1995.
M.S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, 1977.
R. D.C. Ju, J.-F. Collard, and K. Oukbir. Probabilistic memory disambiguation and its application to data speculation. In Proceedings of the 3rd Workshop on Interaction between Compilers and Computer Architecture, Oct 1998.
William Landi and Barbara G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. SIGPLAN Notices, 27(7):235–248, July 1992. Proceedings of the ACM SIGPLAN’ 92 Conference on Programming Language Design and Implementation.
Jenq Kuen Lee, Dan Ho, and Yue-Chee Chuang. Data distribution analysis and optimization for pointer-based distributed programs. In Proceedings of the 26th International Conference on Parallel Proces sing (ICPP), Bloomingdale, IL, August 1997.
Steven S. Muchnick. Advanced Compiler Design & Implementation. Morgen Kaufmann, 1997.
G. Ramalingam. Data flow frequency analysis. SIGPLAN Notices, 31(5):267–277, May 1996. Proceedings of the ACM SIGPLAN’ 96 Conference on Programming Language Design and Implementation.
Thomas Reps, Susan Horwitz, and Mooly Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Conference Record of POPL’ 95: 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 49–61, San Francisco, California, January 1995.
Erik Ruf. Context-insensitive alias analysis reconsidered. SIGPLAN Notices, 30(6):13–22, June 1995. Proceedings of the ACM SIGPLAN’ 95 Conference on Programming Language Design and Implementation.
Radu Rugina and Martin Rinard. Pointer analysis for multithreaded programs. SIGPLAN Notices, 34(5):77–90, May 1999. Proceedings of the ACM SIGPLAN’ 99 Conference on Programming Language Design and Implementation.
B. G. Ryder and M. C. Paull. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18(3):277–316, September 1986.
Marc Shapiro and Susan Horwitz. Fast and accurate flow-insensitive points-to analysis. In Conference Record of POPL’ 97: 24nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 1–14, Paris, France, January 1997.
Michael D. Smith. The suif machine library. Technical report, Division of of Engineering and Applied Science, Harvard University, March 1998.
Bjarne Steensgaard. Points-to analysis in almost linear time. In Conference Record of POPL’ 96: 23nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 32–41, St. Petersburg Beach, Florida, January 1996.
Tim A. Wagner, Vance Maverick, Susan L. Graham, and Michael A. Harrison. Accurate static estimators for program optimization. SIGPLAN Notices, 29(6):85–96, June 1994. Proceedings of the ACM SIGPLAN’ 94 Conference on Programming Language Design and Implementation.
Robert P. Wilson and Monica S. Lam. Efficient context-sensitive pointer analysis for C programs. SIGPLAN Notices, 30(6):1–12, June 1995. Proceedings of the ACM SIGPLAN’ 95 Conference on Programming Language Design and Implementation.
Suan Hsi Yong, Susan Horwitz, and Thomas Reps. Pointer analysis for programs with structures and casting. SIGPLAN Notices, 34(5):91–103, May 1999. Proceedings of the ACM SIGPLAN’ 99 Conference on Programming Language Design and Implementation.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Hwang, YS., Chen, PS., Lee, J.K., Ju, R.DC. (2003). Probabilistic Points-to Analysis. In: Dietz, H.G. (eds) Languages and Compilers for Parallel Computing. LCPC 2001. Lecture Notes in Computer Science, vol 2624. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-35767-X_19
Download citation
DOI: https://doi.org/10.1007/3-540-35767-X_19
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-04029-3
Online ISBN: 978-3-540-35767-4
eBook Packages: Springer Book Archive