Close

Presentation

CIRE: LLVM Analysis for Floating-Point Rounding Error Affected by Precision and Optimizations
DescriptionNumerical programmers often adjust precision settings and compiler optimizations to maximize performance, but these changes can unpredictably affect floating-point rounding errors. We present CIRE, a tool that statically estimates tight bounds on floating-point rounding error by analyzing LLVM code which reflects precision and optimization choices. This enables simultaneous optimization of both error and performance. CIRE uses symbolic automatic differentiation with interval-based optimization to calculate maximum error across input intervals of interest. Our findings reveal that (1) optimizations sometimes improve both performance and accuracy by reducing the number of operations; (2) results vary significantly between different source languages, such as C++ and Rust; and (3) error and performance depend heavily on which subexpressions are subject to lower-precision allocation. We evaluate various combinations of optimizations and precision across popular benchmarks, providing insights into factors affecting numerical error and computational performance.