Skip to main content

Probabilistic Points-to Analysis

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

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

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.

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

    Google Scholar 

  2. Tim Callahan and John Wawrzynek. Simple profiling system for suif. In Proceedings of the First SUIF Compiler Workshop, January 1996.

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  5. Intel Corporation. IA-64 Application Developer’s Architecture Guide. 1999.

    Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

  9. The Stanford SUIF Compiler Group. The suif library. Technical report, Stanford University, 1995.

    Google Scholar 

  10. M.S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, 1977.

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    Google Scholar 

  14. Steven S. Muchnick. Advanced Compiler Design & Implementation. Morgen Kaufmann, 1997.

    Google Scholar 

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

    Article  MathSciNet  Google Scholar 

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

    Google Scholar 

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

    Article  MathSciNet  Google Scholar 

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

    Article  Google Scholar 

  19. B. G. Ryder and M. C. Paull. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18(3):277–316, September 1986.

    Article  Google Scholar 

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

    Google Scholar 

  21. Michael D. Smith. The suif machine library. Technical report, Division of of Engineering and Applied Science, Harvard University, March 1998.

    Google Scholar 

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

    Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

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

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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

Publish with us

Policies and ethics