2017
DOI: 10.1145/3110262
|View full text |Cite
|
Sign up to set email alerts
|

Verifying efficient function calls in CakeML

Abstract: We have designed an intermediate language (IL) for the CakeML compiler that supports the veriied, eicient compilation of functions and calls. Veriied compilation steps include batching of multiple curried arguments, detecting calls to statically known functions, and specialising calls to known functions with no free variables. Finally, we verify the translation to a lower-level IL that only supports closed, irst-order functions.These compilation steps resemble those found in other compilers (especially OCaml).… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
9
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 13 publications
(9 citation statements)
references
References 30 publications
0
9
0
Order By: Relevance
“…Until recently, building formally verified compilers for realistic languages was seen as a grand challenge. However, the advent of the CompCert [Kästner et al 2018;Leroy 2006Leroy , 2009aLeroy et al 2016], Vellvm [Zhao et al 2012[Zhao et al , 2013, Crellvm [Kang et al 2018], and CakeML [Kumar et al 2014;Lööw et al 2019;Owens et al 2017;Tan et al 2016] verified compilers show that they are now well within reachÐalthough admittedly, every formally verified compiler for a realistic language remains a feat.…”
Section: Introductionmentioning
confidence: 99%
“…Until recently, building formally verified compilers for realistic languages was seen as a grand challenge. However, the advent of the CompCert [Kästner et al 2018;Leroy 2006Leroy , 2009aLeroy et al 2016], Vellvm [Zhao et al 2012[Zhao et al , 2013, Crellvm [Kang et al 2018], and CakeML [Kumar et al 2014;Lööw et al 2019;Owens et al 2017;Tan et al 2016] verified compilers show that they are now well within reachÐalthough admittedly, every formally verified compiler for a realistic language remains a feat.…”
Section: Introductionmentioning
confidence: 99%
“…For example, the register allocator may face less register pressure around call sites after multi- argument functions get introduced. In Owens et al (2017), we also observed that the multiargument introduction optimisation provided the most significant improvements over the other CLOSLANG optimisations. The BVL optimisations and register allocator provide slightly more modest improvements, but they also clearly have important roles to play.…”
Section: Comparison Across Compiler Optimisationsmentioning
confidence: 56%
“…This language is the last language with explicit closure values, and is designed as a place where functionalprogramming specific optimisations (e.g., lambda lifting) can prepare the input programs for closure conversion. We give a brief overview of CLOSLANG and its optimisations here, and refer readers to Owens et al (2017) for a complete discussion, including the in-depth details of the techniques used to verify its various optimisations.…”
Section: Top-level Correctness Theoremmentioning
confidence: 99%
See 2 more Smart Citations