Will You Still Compile Me Tomorrow? Static Cross-Version Compiler Validation

This paper describes a cross-version compiler validator and measures its effectiveness on the CLR JIT compiler. The validator checks for semantically equivalent assembly language output from various versions of the compiler, including versions across a seven-month time period, across two architectures (x86 and ARM), across two compilation scenarios (JIT and MDIL), and across optimizations levels. For month-to-month comparisons, the validator achieves a false alarm rate of just 2.2%. To help understand reported semantic differences, the validator performs a root-cause analysis on the counterexample traces generated by the underlying automated theorem proving tools. This root-cause analysis groups most of the counterexamples into a small number of buckets, reducing the number of counterexamples analyzed by hand by anywhere from 53% to 96%. The validator ran on over 500,000 methods across a large suite of test programs,finding 12 previously unknown correctness and performance bugs in the CLR compiler.

compiler-validation-fse13.pdf
PDF file
FSE-2013-Compiler-SymDiff.pptx
PowerPoint presentation

In  Foundations of Software Engineering (FSE'13)

Publisher  ACM

Details

TypeInproceedings
> Publications > Will You Still Compile Me Tomorrow? Static Cross-Version Compiler Validation