EMI Testing: Finding 1000+ Bugs in GCC and LLVM in 3 Years - Zhendong Su





The interactive transcript could not be loaded.


Rating is available when the video has been rented.
This feature is not available right now. Please try again later.
Published on Jan 9, 2017

Workshop on Software Correctness and Reliability 2016

We describe equivalence modulo inputs (EMI), a general methodology for validating optimizing compilers. The key insight is toexploit the close interplay between (1) dynamically executing a exploit the close interplay between (1) dynamically executing a program on some test input and (2) statically compiling the program to work on all possible input. Indeed, the test input induces a natural collection of the original program's EMI variants, which help test any compiler and specifically target the difficult-to-find miscompilations.

We have developed a series of gradually sophisticated techniques to generate EMI variants by (1) profiling a program's test executions, and (2) stochastically deleting/inserting/mutating code. Our extensive testing to date has led to 1000+ confirmed bug reports for GCC and LLVM alone, of which 600+ have already been fixed. The EMI concept is widely applicable --- beyond testing compilers, it can be adapted to validate program transformations and analyses, and software in general.


When autoplay is enabled, a suggested video will automatically play next.

Up next

to add this to Watch Later

Add to

Loading playlists...