Abstract
Users depend on correct compiler optimizations but floating-point arithmetic is difficult to optimize transparently. Manually reasoning about all of floating-point arithmetic's esoteric properties is errorprone and increases the cost of adding new optimizations. We present an approach to automate reasoning about precise floating-point optimizations using satisfiability modulo theories (SMT) solvers. We implement the approach in LifeJacket, a system for automatically verifying precise floating-point optimizations for the LLVM assembly language. We have used LifeJacket to verify 43 LLVM 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.
Author supplied keywords
Cite
CITATION STYLE
Nötzli, A., & Brown, F. (2016). Lifejacket: Verifying precise floating-point optimizations in LLVM. In SOAP 2016 - Proceedings of the 5th ACM SIGPLAN International Workshop on State Of the Art in Program Analysis, Co-located with PLDI 2016 (pp. 24–29). Association for Computing Machinery, Inc. https://doi.org/10.1145/2931021.2931024
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.