Icing: supporting fast-math style optimizations in a verified compiler
Paper in 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.

Optimization

Floating-point arithmetic

Compiler verification

Author

Heiko Becker

Max Planck Society

Eva Darulova

Max Planck Society

Magnus Myreen

Chalmers, Computer Science and Engineering (Chalmers), Formal methods

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,

Subject Categories

Language Technology (Computational Linguistics)

Embedded Systems

Computer Science

DOI

10.1007/978-3-030-25543-5_10

More information

Latest update

11/11/2019