skip to main content
10.1145/1250734.1250750acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article

Automatic inference of optimizer flow functions from semantic meanings

Published:10 June 2007Publication History

ABSTRACT

Previous work presented a language called Rhodium for writing program analyses and transformations, in the form of declarative flow functions that propagate instances of user-defined dataflow fact schemas. Each dataflow fact schema specifies a semantic meaning, which allows the Rhodium system to automatically verify the correctness of the user's flow functions. In this work, we have reversed the roles of the flow functions and semantic meanings: rather than checking the correctness of the user-written flow functions using the facts' semantic meanings, we automatically infer correct flow functions solely from the meanings of the dataflow fact schemas. We have implemented our algorithm for inferring flow functions from fact schemas in the context of the Whirlwind compiler, and have used this implementation to infer flow functions for a variety of fact schemas. The automatically generated flow functions cover most of the situations covered by an earlier suite of handwritten rules.

References

  1. J. M. Andreoli. Logic programming with focusing proofs in linear logic. Journal of Logic and Computation, 1992.Google ScholarGoogle ScholarCross RefCross Ref
  2. Thomas Ball, Rupak Majumdar, Todd Millstein, and Sriram K. Rajamani. Automatic predicate abstraction of C programs. In Programming Language Design and Implementation (PLDI), June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Robert Cartwright and Derek Oppen. The logic of aliasing. Technical Report STAN-CS-79-740, Stanford University, September 1979. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. R. L. Constable, S. F. Allen, H. M. Bromley, W. R. Cleaveland, J. F. Cremer, R. W. Harper, D. J. Howe, T. B. Knoblock, N. P. Mendler, P. Panangaden, J. T. Sasaki, and S. F. Smith. Implementing Mathematics with the Nuprl Proof Development System. Prentice-Hall, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Patrick Cousot. Verification by abstract interpretation. In Verification Theory & Practice, volume 2772 of LNCS. Springer-Verlag, 2003.Google ScholarGoogle Scholar
  6. Satyaki Das, David L. Dill, and Seungjoon Park. Experience with predicate abstraction. In Computer Aided Verification (CAV), June 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. David Detlefs, Greg Nelson, and James B. Saxe. Simplify: A theorem prover for program checking. Journal of the ACM, 52(3), May 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M.J.C. Gordon. HOL: A proof generating system for higher-order logic. In VLSI Specification Verification and Synthesis. Kluwer Academic Publishers, 1988.Google ScholarGoogle ScholarCross RefCross Ref
  9. Susanne Graf and Hassen Saidi. Construction of abstract state graphs of infinite systems with PVS. In Computer Aided Verification (CAV), June 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. David Gries. The Science of Programming. Springer-Verlag, 1981. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Thomas A. Henzinger, Ranjit Jhala, Rupak Majumdar, and Gregoire Sutre. Lazy abstraction. In Principles of Programming Languages (POPL), January 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. M. Kauffmann and R. S. Boyer. The Boyer-Moore theorem prover and its interactive enhancement. Computers and Mathematics with Applications, 29(2), 1995.Google ScholarGoogle Scholar
  13. M. Kaufmann, P. Manolios, and J. S. Moore. Computer-Aided Reasoning: An Approach. Kluwer Academic Publishers, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Shuvendu Lahiri, Thomas Ball, and Byron Cook. Predicate abstraction via symbolic decision procedures. In Computer Aided Verification (CAV), July 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Sorin Lerner. Automatically Proving the Correctness of Program Analyses and Transformations. PhD thesis, University of Washington, March 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Sorin Lerner, Todd Millstein, and Craig Chambers. Automatically proving the correctness of compiler optimizations. In Programming Language Design and Implementation (PLDI), June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sorin Lerner, Todd Millstein, Erika Rice, and Craig Chambers. Automated soundness proofs for dataflow analyses and transformations via local rules. In Principles of Programming Languages (POPL), January 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. T. Lev-Ami and M. Sagiv. TVLA: A system for implementing static analyses. In Static Analysis Symposium (SAS), June 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. S. Owre, J.M. Rushby, and N. Shankar. PVS: A prototype verification system. In Automated Deduction (CADE), volume 607 of LNAI. Springer-Verlag, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. L. C. Paulson. Isabelle: A generic theorem prover, volume 828 of LNCS. Springer-Verlag, 1994.Google ScholarGoogle Scholar
  21. F. Pfenning and C. Schurmann. Sytsem description: Twelf -- a metalogical framework for deductive systems. In Automated Deduction (CADE), volume 1632 of LNAI. Springer-Verlag, July 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. John Regehr and Usit Duongsaa. Deriving abstract transfer functions for analyzing embedded software. In Languages, Compilers, and Tools for Embedded Systems (LCTES), June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. John Regehr and Alastair Reid. HOIST: A system for automatically deriving static analyzers for embedded systems. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), October 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Thomas Reps, Mooly Sagiv, and Alexey Loginov. Finite differencing of logical formulas for static analysis. In European Symposium on Programming (ESOP), April 2003.Google ScholarGoogle ScholarCross RefCross Ref
  25. Thomas Reps, Mooly Sagiv, and Greta Yorsh. Symbolic implementation of the best transformer. In Verification, Model Checking, and Abstract Interpretation (VMCAI), January 2004.Google ScholarGoogle Scholar
  26. Erika Rice, Sorin Lerner, and Craig Chambers. Automatically inferring sound dataflow functions from dataflow fact schemas. In Workshop on Compiler Optimization Meets Compiler Verification (COCV), April 2005.Google ScholarGoogle Scholar
  27. Erika Rice, Sorin Lerner, and Craig Chambers. Automatic inference of dataflow analyses. Technical Report UW-CSE-2006-06-04, University of Washington, June 2006.Google ScholarGoogle Scholar
  28. C. Schurmann and F. Pfenning. Automated theorem proving in a simple metalogic for LF. In Automated Deduction (CADE), volume 1421 of LNCS. Springer-Verlag, July 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Greta Yorsh, Thomas Reps, and Mooly Sagiv. Symbolically computing most-precise abstract operations for shape analysis. In Tools and Algorithms for the Construction and Analysis of Systems(TACAS), March 2004.Google ScholarGoogle ScholarCross RefCross Ref

Index Terms

  1. Automatic inference of optimizer flow functions from semantic meanings

    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 '07: Proceedings of the 28th ACM SIGPLAN Conference on Programming Language Design and Implementation
      June 2007
      508 pages
      ISBN:9781595936332
      DOI:10.1145/1250734
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 42, Issue 6
        Proceedings of the 2007 PLDI conference
        June 2007
        491 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/1273442
        Issue’s Table of Contents

      Copyright © 2007 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 10 June 2007

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate406of2,067submissions,20%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!