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

Evaluating value-graph translation validation for LLVM

Published:04 June 2011Publication History

ABSTRACT

Translation validators are static analyzers that attempt to verify that program transformations preserve semantics. Normalizing translation validators do so by trying to match the value-graphs of an original function and its transformed counterpart. In this paper, we present the design of such a validator for LLVM's intra-procedural optimizations, a design that does not require any instrumentation of the optimizer, nor any rewriting of the source code to compile, and needs to run only once to validate a pipeline of optimizations. We present the results of our preliminary experiments on a set of benchmarks that include GCC, a perl interpreter, SQLite3, and other C programs.

References

  1. LLVM 2.8. http://llvm.org.Google ScholarGoogle Scholar
  2. SQLite 3. http://www.sqlite.org.Google ScholarGoogle Scholar
  3. The Motor Industry Software Reliability Association. Guidelines for the use of the c language in critical systems. http://www.misra.org.uk, 2004.Google ScholarGoogle Scholar
  4. Clark W. Barrett, Yi Fang, Benjamin Goldberg, Ying Hu, Amir Pnueli, and Lenore Zuck. TVOC: A translation validator for optimizing compilers. In Computer Aided Verification, volume 3576 of Lecture Notes in Computer ScienceLNCS, pages 291--295. Springer, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. SPEC CPU2006. http://www.spec.org/cpu2006/.Google ScholarGoogle Scholar
  6. Paul Havlak. Construction of thinned gated single-assignment form. In Proc. 6rd Workshop on Programming Languages and Compilers for Parallel Computing, pages 477--499. Springer Verlag, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. John Hopcroft. An n log n algorithm for minimizing states of a finite automaton. In The Theory of Machines and Computations, 1971.Google ScholarGoogle ScholarCross RefCross Ref
  8. Aditya Kanade, Amitabha Sanyal, and Uday Khedker. A PVS based framework for validating compiler optimizations. In 4th Software Engineering and Formal Methods, pages 108--117. IEEE Computer Society, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Xavier Leroy. Formal certification of a compiler back-end, or: programming a compiler with a proof assistant. In 33rd symposium Principles of Programming Languagessymp. Principles of Progr. Lang, pages 42--54. ACM Press, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. E. Moggi. Computational lambda-calculus and monads. In 4th Logic in computer science, pages 14--23. IEEE, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. George C. Necula. Translation validation for an optimizing compiler. In Programming Language Design and Implementation Prog. Lang. Design and Impl. 2000, pages 83--95. ACM Press, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Amir Pnueli and Anna Zaks. Validation of interprocedural optimization. In Proc. Workshop Compiler Optimization Meets Compiler Verification (COCV 2008), Electronic Notes in Theoretical Computer Science. Elsevier, 2008.Google ScholarGoogle Scholar
  13. Amir Pnueli, Michael Siegel, and Eli Singerman. Translation validation. In Tools and Algorithms for Construction and Analysis of Systems, TACAS '98, volume 1384 of Lecture Notes in Computer ScienceLNCS, pages 151--166. Springer, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Xavier Rival. Symbolic transfer function-based approaches to certified compilation. In 31st symposium Principles of Programming Languagessymp. Principles of Progr. Lang, pages 1--13. ACM Press, 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Simulink. http://mathworks.com.Google ScholarGoogle Scholar
  16. Ross Tate, Michael Stepp, Zachary Tatlock, and Sorin Lerner. Equality saturation: A new approach to optimization. In 36th Principles of Programming Languages, pages 264--276. ACM, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Jean-Baptiste Tristan and Xavier Leroy. A simple, verified validator for software pipelining. In 37th Principles of Programming Languages, pages 83--92. ACM Press, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Peng Tu and David Padua. Efficient building and placing of gating functions. In Programming Language Design and Implementation, pages 47--55, 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Daniel Weise, Roger F. Crew, Michael D. Ernst, and Bjarne Steensgaard. Value dependence graphs: Representation without taxation. In 21st Principles of Programming Languages, pages 297--310, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Evaluating value-graph translation validation for LLVM

            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 '11: Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation
              June 2011
              668 pages
              ISBN:9781450306638
              DOI:10.1145/1993498
              • General Chair:
              • Mary Hall,
              • Program Chair:
              • David Padua
              • cover image ACM SIGPLAN Notices
                ACM SIGPLAN Notices  Volume 46, Issue 6
                PLDI '11
                June 2011
                652 pages
                ISSN:0362-1340
                EISSN:1558-1160
                DOI:10.1145/1993316
                Issue’s Table of Contents

              Copyright © 2011 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: 4 June 2011

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article

              Acceptance Rates

              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