2012
DOI: 10.1145/2103621.2103709
|View full text |Cite
|
Sign up to set email alerts
|

Formalizing the LLVM intermediate representation for verified program transformations

Abstract: This paper presents Vellvm (verified LLVM), a framework for reasoning about programs expressed in LLVM's intermediate representation and transformations that operate on it. Vellvm provides a mechanized formal semantics of LLVM's intermediate representation, its type system, and properties of its SSA form. The framework is built using the Coq interactive theorem prover. It includes multiple operational semantics and proves relations among them to facilitate different reasoning styles and proof techniques. To va… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
79
0
1

Year Published

2012
2012
2021
2021

Publication Types

Select...
7
2

Relationship

0
9

Authors

Journals

citations
Cited by 92 publications
(80 citation statements)
references
References 39 publications
0
79
0
1
Order By: Relevance
“…Eventually, it should be possible to shift all CompCert optimisations into the SSA middle-end. In the longer term, it would be appealing to apply our methods to LLVM, building on [23,21,26].…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Eventually, it should be possible to shift all CompCert optimisations into the SSA middle-end. In the longer term, it would be appealing to apply our methods to LLVM, building on [23,21,26].…”
Section: Discussionmentioning
confidence: 99%
“…Moreover, it is not clear whether their semantics of SSA can be used to reason about optimizations. Zhao et al [26] formalize the LLVM intermediate representation in Coq. They define and relate several formal semantics of LLVM, including a static and dynamic semantics.…”
Section: Related Workmentioning
confidence: 99%
“…Not only does this allow ZEUS to leverage an industry strength tool-chain for analysis, it enables ZEUS to plug in any verifier that operates upon the standardized (and formally verified [74]) LLVM bitcode. Use of LLVM bitcode also helps ZEUS to support verification of smart contracts for different blockchain platforms, including Ethereum [13] and Hyperledger Fabric [24] (or Fabric), written in diverse high-level languages, such as C#, GO and JAVA.…”
Section: Introductionmentioning
confidence: 99%
“…Zhao et al [20,18] formalize the LLVM SSA intermediate form and its generation algorithm in Coq. Their work follows closely the LLVM design and their verified transformation can be run inside the LLVM platform itself.…”
Section: Introduction and Related Workmentioning
confidence: 99%