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 2011 Publication 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.
[2]
SQLite 3. http://www.sqlite.org.
[3]
The Motor Industry Software Reliability Association. Guidelines for the use of the c language in critical systems. http://www.misra.org.uk, 2004.
[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.
[5]
SPEC CPU2006. http://www.spec.org/cpu2006/.
[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.
[7]
John Hopcroft. An n log n algorithm for minimizing states of a finite automaton. In The Theory of Machines and Computations, 1971.
[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.
[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.
[10]
E. Moggi. Computational lambda-calculus and monads. In 4th Logic in computer science, pages 14--23. IEEE, 1989.
[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.
[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.
[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.
[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.
[15]
Simulink. http://mathworks.com.
[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.
[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.
[18]
Peng Tu and David Padua. Efficient building and placing of gating functions. In Programming Language Design and Implementation, pages 47--55, 1995.
[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.

Cited By

View all
  • (2024)FlowCert: Translation Validation for Asynchronous Dataflow via Dynamic Fractional PermissionsProceedings of the ACM on Programming Languages10.1145/36897298:OOPSLA2(499-526)Online publication date: 8-Oct-2024
  • (2024)Modeling Dynamic (De)Allocations of Local Memory for Translation ValidationProceedings of the ACM on Programming Languages10.1145/36498638:OOPSLA1(1463-1492)Online publication date: 29-Apr-2024
  • (2023)Formally Verifying Optimizations with Block SimulationsProceedings of the ACM on Programming Languages10.1145/36227997:OOPSLA2(59-88)Online publication date: 16-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 04 June 2011

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. llvm
  2. optimization
  3. symbolic evaluation
  4. translation validation

Qualifiers

  • Research-article

Conference

PLDI '11
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)39
  • Downloads (Last 6 weeks)2
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)FlowCert: Translation Validation for Asynchronous Dataflow via Dynamic Fractional PermissionsProceedings of the ACM on Programming Languages10.1145/36897298:OOPSLA2(499-526)Online publication date: 8-Oct-2024
  • (2024)Modeling Dynamic (De)Allocations of Local Memory for Translation ValidationProceedings of the ACM on Programming Languages10.1145/36498638:OOPSLA1(1463-1492)Online publication date: 29-Apr-2024
  • (2023)Formally Verifying Optimizations with Block SimulationsProceedings of the ACM on Programming Languages10.1145/36227997:OOPSLA2(59-88)Online publication date: 16-Oct-2023
  • (2023)Mechanised Semantics for Gated Static Single AssignmentProceedings of the 12th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3573105.3575681(182-196)Online publication date: 11-Jan-2023
  • (2023)Towards End-to-End Verified TEEs via Verified Interface Conformance and Certified Compilers2023 IEEE 36th Computer Security Foundations Symposium (CSF)10.1109/CSF57540.2023.00021(324-339)Online publication date: Jul-2023
  • (2023)Automatic Target Description File GenerationJournal of Computer Science and Technology10.1007/s11390-022-1919-x38:6(1339-1355)Online publication date: 30-Nov-2023
  • (2023)TorchProbe: Fuzzing Dynamic Deep Learning CompilersProgramming Languages and Systems10.1007/978-981-99-8311-7_15(310-331)Online publication date: 21-Nov-2023
  • (2022)Relational compilation for performance-critical applications: extensible proof-producing translation of functional models into low-level codeProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523706(918-933)Online publication date: 9-Jun-2022
  • (2022)Formally verified superblock schedulingProceedings of the 11th ACM SIGPLAN International Conference on Certified Programs and Proofs10.1145/3497775.3503679(40-54)Online publication date: 17-Jan-2022
  • (2021)Language-parametric compiler validation with application to LLVMProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446751(1004-1019)Online publication date: 19-Apr-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media