Logo image
Alive-FP: Automated Verification of Floating Point Based Peephole Optimizations in LLVM
Technical documentation   Open access

Alive-FP: Automated Verification of Floating Point Based Peephole Optimizations in LLVM

David Menendez, Santosh Nagarakatte and Aarti Gupta
Rutgers University
2016
DOI:
https://doi.org/10.7282/T3XW4PC5

Abstract

Peephole optimizations optimize and canonicalize code to enable other optimizations but are error-prone. Our prior research on Alive, a domain-specific language for specifying LLVM’s peephole optimizations, automatically verifies the correctness of integer-based peephole optimizations and generates C++ code for use within LLVM. This paper proposes Alive-FP, an automated verification and code generation framework for floating point based peephole optimizations in LLVM. Alive-FP handles bit precise floating point optimizations and a class of fast-math optimizations involving signed zeros, not-a-number, and infinities. This paper provides multiple encodings for various floating point operations to account for the various kinds of undefined behavior and under-specification in the LLVM’s language reference manual. We have translated all optimizations that belong to this category into Alive-FP. In this process, we have discovered seven wrong optimizations in LLVM.
pdf
tr5b55e017bf748355.17 kBDownloadView
Version of Record (VoR) Technical Documentation Open Access
url
Report an accessibility issueView
Please complete a content remediation request to report an accessibility issue with a library electronic resource, website, or service.

Metrics

207 File downloads
93 Record Views

Details

Logo image