skip to main content
10.1145/379605.379690acmconferencesArticle/Chapter ViewAbstractPublication PagespasteConference Proceedingsconference-collections
Article

Bebop: a path-sensitive interprocedural dataflow engine

Published:01 June 2001Publication History

ABSTRACT

Flow-sensitive data analyses can lose precision because they assume that all paths in a control-flow graph are executable (feasible). Path-sensitive dataflow analyses can rule out infeasible paths by tracking correlations between dataflow facts. To track such correlations, in general, requires recording a set of sets of facts per statement in a program. Naive representation of such sets can lead to a very high memory consumption and running time.

We reformulate an interprocedural dataflow algorithm by Reps, Horwitz and Sagiv (based on context-free graph reachability) into a traditional interprocedural flow-sensitive dataflow algorithm. We then show how to use Binary Decision Diagrams (BDDs), a data structure from the model checking community, to turn this reformulated algorithm into an interprocedural path-sensitive dataflow analysis algorithm that tracks a set of set of facts per program statement. We have implemented this algorithm in a tool called \bebop.

References

  1. 1.A. Aho, R. Sethi, and J. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. 2.G. Ammons and J. R. Larus. Improving data-flow analysis with path profiles. In PLDI 98: Programming Language Design and Implementation, pages 72-84. ACM, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.T. Ball, R. Majumdar, T. Millstein, and S. K. Rajamani. Automatic predicate abstraction of C programs. In PLDI 01: Programming Language Design and Implementation. ACM, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. 4.T. Ball and S. K. Rajamani. Bebop: A symbolic model checker for Boolean programs. In SPIN 00: SPIN Workshop, LNCS 1885, pages 113-130. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. 5.R. Bodik and S. Anik. Path-sensitive value-flow analysis. In POPL 98: Principles of Programming Languages, pages 237-251. ACM, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. 6.R. Bodik, R. Gupta, and M. L. Soffa. Refining data ow information using infeasible paths. In ESEC/FSE 97: European Software Engineering/Foundations of Software Engineering, LNCS 1301, pages 361-377. Springer-Verlag, 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.R. Bryant. Graph-based algorithms for boolean function manipulation. IEEE Transactions on Computers, C-35(8):677-691, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. 8.M. Das. Unification-based pointer analysis with directional assignments. In PLDI 00: Programming Language Design and Implementation, pages 35-46. ACM, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.S. G. Govindaraju and D. L. Dill. Approximate symbolic model checking using overlapping projections. In Electronic Notes in Theoretical Computer Science, July 1999.Google ScholarGoogle ScholarCross RefCross Ref
  10. 10.K. McMillan. Symbolic Model Checking: An Approach to the State-Explosion Problem. Kluwer Academic Publishers, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural data ow analysis via graph reachability. InPOPL 95: Principles of Programming Languages, pages 49-61. ACM, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. 12.M. Sagiv, T. Reps, and R. Wilhelm. Parametric shape analysis via 3-valued logic. In POPL 99: Principles of Programming Languages, pages 105-118. ACM, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.M. Sharir and A. Pnueli. Two approaches to interprocedural data ow analysis. In Program Flow Analysis: Theory and Applications, pages 189-233. Prentice-Hall, 1981.Google ScholarGoogle Scholar
  14. 14.M. Siff. personal communication. July 12 2000.Google ScholarGoogle Scholar
  15. 15.S. W. K. Tjiang and J. L. Hennessy. Sharlit - a tool for building optimizers. In PLDI 92: Programming Language Design and Implementation, pages 82-93. ACM, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.G. A. Venkatesh. A framework for construction and evaluation of high-level specifications for program analysis techniques. In PLDI 89: Programming Language Design and Implementation, pages 1-12. ACM, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Bebop: a path-sensitive interprocedural dataflow engine

          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
            PASTE '01: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
            June 2001
            103 pages
            ISBN:1581134134
            DOI:10.1145/379605

            Copyright © 2001 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 ACM 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: 1 June 2001

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • Article

            Acceptance Rates

            PASTE '01 Paper Acceptance Rate13of24submissions,54%Overall Acceptance Rate57of159submissions,36%

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader