Skip to main content

Efficient Computation of Parameterized Pointer Information for Interprocedural Analyses

  • Conference paper
  • First Online:
Static Analysis (SAS 2001)

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

Included in the following conference series:

Abstract

This paper presents a modular algorithm that efficiently computes parameterized pointer information, in which symbolic names are introduced to identify memory locations whose addresses may be passed into a procedure. Parameterized pointer information can be used by a client program analysis to compute parameterized summary information for a procedure. The client can then instantiate such information at each specific callsite by binding the symbolic names. Compared to non-parameterized pointer information, in which memory locations are identified using the same name throughout a program, parameterized pointer information lets the client reduce the spurious information that is propagated across procedure boundaries. Such reduction will improve not only the precision, but also the efficiency of the client. The paper also presents a set of empirical studies. The studies show that (1) the algorithm is efficient; and (2) using parameterized pointer information may significantly improve the precision and efficiency of program analyses.

Supported by NSF under CCR-9988294, CCR-0096321, and EIA-0196145, by Boeing Aerospace Corporation, and by the State of Georgia under the Yamacraw Mission.

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. L. Andersen. Program analysis and specialization for the C programming language. Technical Report 94-19, University of Copenhagen, 1994.

    Google Scholar 

  2. D. C. Atkinson and W. G. Griswold. Effective whole-program analysis in the presence of pointers. In 6th International Symposium on the Foundations of Software Engineering, pages 46–55, Nov. 1998.

    Google Scholar 

  3. R. Chatterjee, B. G. Ryder, and W. A. Landi. Relevant context inference. In 26th Symposium on Principles of programming languages, pages 133–146, Jan. 1999.

    Google Scholar 

  4. B. Cheng and W. Hwu. Modular interprocedural pointer analysis using access paths: Design, implementation, and evaluation. In Conference on Programming Language Design and Implementation, pages 57–69, June 2000.

    Google Scholar 

  5. J.-D. Choi, M. Burke, and P. Carini. Efficient flow-sensitive interprocedural computation of pointer-induced aliases and side effects. In Symposium on Principles of Programming Languages, pages 232–245, Jan. 1993.

    Google Scholar 

  6. M. Das. Unification-based pointer analysis with directional assignments. In Conference on Programming Language Design and Implementation, June 2000.

    Google Scholar 

  7. M. Emami, R. Ghiya, and L. J. Hendren. Context-sensitive interprocedural points-to analysis in the presence of function pointers. In Conference on Programming Language Design and Implementation, pages 242–256, June 1994.

    Google Scholar 

  8. M. Fahndrich, J. Rehof, and M. Das. Scalable context-sensitive flow analysis using instantiation constraints. In Conference on Programming Language Design and Implementation, pages 253–263, June 2000.

    Google Scholar 

  9. J. S. Foster, M. Fahndrich, and A. Aiken. Polymorphic verus monomorphic flow-insensitive points-to analysis for C. In Proceedings of 7th International Static Analysis Symposium, June 2000.

    Google Scholar 

  10. P. L. R. Group. PROLANGS Analysis Framework. http://www.prolangs.rutgers.edu/, Rutgers University, 1998.

  11. M. Hind, M. Burke, P. Carini, and J.-D. Choi. Interprocedural pointer alias analysis. ACM Transactions on Programming Languages and Systems, 21(4):848–894, July 1999.

    Google Scholar 

  12. M. Hind and A. Pioli. Which pointer analysis should I use? In International Symposium on Software Testing and Analysis, pages 113–123, Aug. 2000.

    Google Scholar 

  13. N. Jones and S. Muchnick. Flow analysis and optimization of lisp-like structures. In S. Muchnick and N. Jones, editors, Program Flow Analysis: Theory and Applications, pages 102–131. 1979.

    Google Scholar 

  14. W. Landi and B. G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. In Conference on Programming Language Design and Implementation, pages 235–248, July 1992.

    Google Scholar 

  15. D. Liang and M. J. Harrold. Efficient points-to analysis for whole-program analysis. In Joint 7th European Software Engineering Conference and 7th ACM Symposium on Foundations of Software Engineering, pages 199–215, Sept. 1999.

    Google Scholar 

  16. D. Liang and M. J. Harrold. Reuse-driven interprocedural slicing in the presence of pointers and recursion. In International Conference on Software Maintenance, pages 421–430, Sept. 1999.

    Google Scholar 

  17. H. D. Pande, W. A. Landi, and B. G. Ryder. Interprocedural def-use associa-tions for C systems with single level pointers. IEEE Transactions on Software Engineering, 20(5):385–403, May 1994.

    Google Scholar 

  18. E. Ruf. Context-insensitive alias analysis reconsidered. In Conference on Program-ming Language Design and Implementation, pages 13–23, June 1995.

    Google Scholar 

  19. B. Steensgaard. Points-to analysis in almost linear time. In 23rd ACM Symposium on Principles of Programming Languages, pages 32–41, Jan. 1996.

    Google Scholar 

  20. M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352–357, July 1984.

    Google Scholar 

  21. R. P. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for C programs. In Conference on Programming Language Design and Implementation, pages 1–12, June 1995.

    Google Scholar 

  22. S. H. Yong, S. Horwitz, and T. Reps. Pointer analysis for programs with structures and casting. ACM SIGPLAN Notices, 34(5):91–103, May 1999.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Liang, D., Harrold, M.J. (2001). Efficient Computation of Parameterized Pointer Information for Interprocedural Analyses. In: Cousot, P. (eds) Static Analysis. SAS 2001. Lecture Notes in Computer Science, vol 2126. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47764-0_16

Download citation

  • DOI: https://doi.org/10.1007/3-540-47764-0_16

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42314-0

  • Online ISBN: 978-3-540-47764-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics