Icing: supporting fast-math style optimizations in a verified compiler
Paper i proceeding, 2019

Verified compilers like CompCert and CakeML offer increasingly sophisticated optimizations. However, their deterministic source semantics and strict IEEE 754 compliance prevent the verification of “fast-math” style floating-point optimizations. Developers often selectively use these optimizations in mainstream compilers like GCC and LLVM to improve the performance of computations over noisy inputs or for heuristics by allowing the compiler to perform intuitive but IEEE 754-unsound rewrites. We designed, formalized, implemented, and verified a compiler for Icing, a new language which supports selectively applying fast-math style optimizations in a verified compiler. Icing’s semantics provides the first formalization of fast-math in a verified compiler. We show how the Icing compiler can be connected to the existing verified CakeML compiler and verify the end-to-end translation by a sequence of refinement proofs from Icing to the translated CakeML. We evaluated Icing by incorporating several of GCC’s fast-math rewrites. While Icing targets CakeML’s source language, the techniques we developed are general and could also be incorporated in lower-level intermediate representations.


Floating-point arithmetic

Compiler verification


Heiko Becker


Eva Darulova


Magnus Myreen

Chalmers, Data- och informationsteknik, Formella metoder

Zachary Tatlock

University of Washington

Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)

03029743 (ISSN) 16113349 (eISSN)

Vol. 11562 LNCS 155-173
978-303025542-8 (ISBN)

31st International Conference on Computer Aided Verification, CAV 2019
New York, USA,


Språkteknologi (språkvetenskaplig databehandling)

Inbäddad systemteknik

Datavetenskap (datalogi)



Mer information

Senast uppdaterat