HEC: Equivalence Verification Checking for Code Transformation via Equality Saturation
By: Jiaqi Yin , Zhan Song , Nicolas Bohm Agostini and more
Potential Business Impact:
Checks computer code changes for mistakes.
In modern computing systems, compilation employs numerous optimization techniques to enhance code performance. Source-to-source code transformations, which include control flow and datapath transformations, have been widely used in High-Level Synthesis (HLS) and compiler optimization. While researchers actively investigate methods to improve performance with source-to-source code transformations, they often overlook the significance of verifying their correctness. Current tools cannot provide a holistic verification of these transformations. This paper introduces HEC, a framework for equivalence checking that leverages the e-graph data structure to comprehensively verify functional equivalence between programs. HEC utilizes the MLIR as its frontend and integrates MLIR into the e-graph framework. Through the combination of dynamic and static e-graph rewriting, HEC facilitates the validation of comprehensive code transformations. We demonstrate effectiveness of HEC on PolyBenchC benchmarks, successfully verifying loop unrolling, tiling, and fusion transformations. HEC processes over 100,000 lines of MLIR code in 40 minutes with predictable runtime scaling. Importantly, HEC identified two critical compilation errors in mlir-opt: loop boundary check errors causing unintended executions during unrolling, and memory read-after-write violations in loop fusion that alter program semantics. These findings demonstrate HEC practical value in detecting real-world compiler bugs and highlight the importance of formal verification in optimization pipelines.
Similar Papers
FastLEC: Parallel Datapath Equivalence Checking with Hybrid Engines
Logic in Computer Science
Checks computer designs faster and better.
A Haskell to FHE Transpiler
Cryptography and Security
Lets computers do math on secret codes.
Cut Tracing with E-Graphs for Boolean FHE Circuit Synthesis
Cryptography and Security
Makes secret computer math run much faster.