Wednesday, June 6, 2012

The Art and Beauty of Test Case Reduction for Compiler Bugs


Hi everyone,

My name is Yang Chen, a fifth year PhD student in the School of Computing at the University of Utah, advised by Prof. John Regehr

First of all, I confess that the title was almost stolen from my advisor's blog entry :-). I am choosing this title because it is hard for me to find a better description to summarize our PLDI '12 paper entitled "Test-Case Reduction for C Compiler Bugs", co-authored with John Regehr, Pascal Cuoq, Eric Eide, Chucky Ellison and Xuejun Yang. This paper presents our efforts towards automatically producing valid and reportable test cases from large bug-inducing C program. 

Out of the three new reducers described in our paper, two of them are tied with Csmith, our random C program generator which has uncovered more than 450 previously unknown bugs in a variety of C compilers. Our best reducer, C-Reduce, is generic and capable of reducing any C programs. Since the paper was accepted, we have made our progress in adding C++ specific transformations. C-Reduce works much better on C programs by now. 

Csmith and C-Reduce are both open-source software. Also, you can watch our development on github (Csmith repo and C-Reduce repo). Suggestions, critiques or patches are all welcome!

I am looking forward to meeting you guys in Beijing!

No comments:

Post a Comment