Advertisement

Probabilistic Points-to Analysis

  • Yuan-Shin Hwang
  • Peng-Sheng Chen
  • Jenq Kuen Lee
  • Roy Dz-Ching Ju
Conference paper
Part of the Lecture Notes in Computer Science book series (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.

Keywords

Transfer Function Program Point Preliminary Experimental Result Benchmark Program Program Language Design 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [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. [2]
    Tim Callahan and John Wawrzynek. Simple profiling system for suif. In Proceedings of the First SUIF Compiler Workshop, January 1996.Google Scholar
  3. [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. [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. [5]
    Intel Corporation. IA-64 Application Developer’s Architecture Guide. 1999.Google Scholar
  6. [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.CrossRefGoogle Scholar
  7. [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.CrossRefGoogle Scholar
  8. [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.CrossRefGoogle Scholar
  9. [9]
    The Stanford SUIF Compiler Group. The suif library. Technical report, Stanford University, 1995.Google Scholar
  10. [10]
    M.S. Hecht. Flow Analysis of Computer Programs. Elsevier North-Holland, 1977.Google Scholar
  11. [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. [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.CrossRefGoogle Scholar
  13. [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. [14]
    Steven S. Muchnick. Advanced Compiler Design & Implementation. Morgen Kaufmann, 1997.Google Scholar
  15. [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.CrossRefMathSciNetGoogle Scholar
  16. [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. [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.CrossRefMathSciNetGoogle Scholar
  18. [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.CrossRefGoogle Scholar
  19. [19]
    B. G. Ryder and M. C. Paull. Elimination algorithms for data flow analysis. ACM Computing Surveys, 18(3):277–316, September 1986.CrossRefGoogle Scholar
  20. [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. [21]
    Michael D. Smith. The suif machine library. Technical report, Division of of Engineering and Applied Science, Harvard University, March 1998.Google Scholar
  22. [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. [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.CrossRefGoogle Scholar
  24. [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.CrossRefGoogle Scholar
  25. [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.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2003

Authors and Affiliations

  • Yuan-Shin Hwang
    • 1
  • Peng-Sheng Chen
    • 2
  • Jenq Kuen Lee
    • 2
  • Roy Dz-Ching Ju
    • 3
  1. 1.Department of Computer ScienceNational Taiwan Ocean UniversityKeelungTaiwan
  2. 2.Department of Computer ScienceNational Tsing Hua UniversityHsinchuTaiwan
  3. 3.Microprocessor Research Lab.Intel CorporationSanta ClaraUSA

Personalised recommendations