Verifying Precise Floating-Point Optimizations in LLVM
It is vital to optimize floating-point arithmetic because it is ubiqui- tous, costly, and used in compute-heavy workloads. Implementing precise optimizations correctly, however, is difficult, since devel- opers must account for all the esoteric properties of floating-point arithmetic to ensure that their transformations do not alter the out- put of a program. Manual reasoning is error prone and stifles incor- poration of new optimizations. In this paper, we present an approach to automate reasoning about floating-point optimizations using satisfiability modulo the- ories (SMT) solvers. We implement the approach in LifeJacket, a system for automatically verifying precise floating-point optimiza- tions for the LLVM assembly language. We have used LifeJacket to verify 43 correct optimizations and to discover eight incorrect ones, including three previously unreported problems. LifeJacket is an open source extension of the Alive system for optimization verification
Tue 14 JunDisplayed time zone: Tijuana, Baja California change
13:30 - 15:00 | Session IIISOAP at San Miguel East Chair(s): Eric Bodden Heinz Nixdorf Institut, Paderborn University and Fraunhofer IEM | ||
13:30 50mTalk | Invited Talk: Machine-code analysis and transformation at GrammaTech SOAP Matt Noonan GrammaTech, Inc | ||
14:20 20mTalk | On The Unsoundness of Static Analysis for Android GUIs SOAP | ||
14:40 20mTalk | Verifying Precise Floating-Point Optimizations in LLVM SOAP |