skip to main content
10.1145/2594291.2594328acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
research-article

Hybrid top-down and bottom-up interprocedural analysis

Published:09 June 2014Publication History

ABSTRACT

Interprocedural static analyses are broadly classified into top-down and bottom-up, depending upon how they compute, instantiate, and reuse procedure summaries. Both kinds of analyses are challenging to scale: top-down analyses are hindered by ineffective reuse of summaries whereas bottom-up analyses are hindered by inefficient computation and instantiation of summaries. This paper presents a hybrid approach Swift that combines top-down and bottom-up analyses in a manner that gains their benefits without suffering their drawbacks. Swift is general in that it is parametrized by the top-down and bottom-up analyses it combines. We show an instantiation of Swift on a type-state analysis and evaluate it on a suite of 12 Java programs of size 60-250 KLOC each. Swift outperforms both conventional approaches, finishing on all the programs while both of those approaches fail on the larger programs.

References

  1. A. Albarghouthi, R. Kumar, A. Nori, and S. Rajamani. Parallelizing top-down interprocedural analyses. In PLDI, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. T. Ball and S. Rajamani. Bebop: a path-sensitive interprocedural dataflow engine. In PASTE, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Calcagno, D. Distefano, P. O'Hearn, and H. Yang. Compositional shape analysis by means of bi-abduction. J. ACM, 58(6), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. Chatterjee, B. Ryder, and W. Landi. Relevant context inference. In POPL, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In E. Neuhold, editor, Formal Descriptions of Programming Concepts. North-Holland, 1978.Google ScholarGoogle Scholar
  6. P. Cousot and R. Cousot. Modular static program analysis. In CC, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. I. Dillig, T. Dillig, A. Aiken, and M. Sagiv. Precise and compact modular procedure summaries for heap manipulating programs. In PLDI, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. S. Fink, E. Yahav, N. Dor, G. Ramalingam, and E. Geay. Effective typestate verification in the presence of aliasing. ACM TOSEM, 17(2), 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. R. Ghiya and L. Hendren. Connection analysis: A practical interprocedural heap analysis for C. IJPP, 24(6), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. B. Gulavani, S. Chakraborty, G. Ramalingam, and A. Nori. Bottom-up shape analysis using lisf. ACM TOPLAS, 33(5), 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. S. Gulwani and A. Tiwari. Computing procedure summaries for interprocedural analysis. In ESOP, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. B. Jeannet, A. Loginov, T. Reps, and M. Sagiv. A relational approach to interprocedural shape analysis. ACM TOPLAS, 32(2), 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Madhavan, G. Ramalingam, and K. Vaswani. Modular heap analysis for higher-order programs. In SAS, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In POPL, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. N. Rinetzky, J. Bauer, T. Reps, S. Sagiv, and R. Wilhelm. A semantics for procedure local heaps and its abstractions. In POPL, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. N. Rinetzky, M. Sagiv, and E. Yahav. Interprocedural shape analysis for cutpoint-free programs. In SAS, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. S. Sagiv, T. W. Reps, and S. Horwitz. Precise interprocedural dataflow analysis with applications to constant propagation. Theor. Comput. Sci., 167(1&2), 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Salcianu and M. Rinard. Purity and side effect analysis for Java programs. In VMCAI, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In Program Flow Analysis: Theory and Applications, chapter 7. Prentice-Hall, 1981.Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Whaley and M. Rinard. Compositional pointer and escape analysis for Java programs. In OOPSLA, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Y. Xie and A. Aiken. Saturn: A scalable framework for error detection using boolean satisfiability. ACM TOPLAS, 29(3), 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. G. Yorsh, E. Rabinovich, M. Sagiv, A. Meyer, and A. Bouajjani. A logic of reachable patterns in linked data-structures. In FOSSACS, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. G. Yorsh, E. Yahav, and S. Chandra. Generating precise and concise procedure summaries. In POPL, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Hybrid top-down and bottom-up interprocedural analysis

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2014
              619 pages
              ISBN:9781450327848
              DOI:10.1145/2594291
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 49, Issue 6
                PLDI '14
                June 2014
                598 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/2666356
                • Editor:
                • Andy Gill
                Issue’s Table of Contents

              Copyright © 2014 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 9 June 2014

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              PLDI '14 Paper Acceptance Rate52of287submissions,18%Overall Acceptance Rate406of2,067submissions,20%

              Upcoming Conference

              PLDI '24

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader