John Wickerson
Research Interests
Explore related searches
Contact this professor
Get a free first email built on one of their papers, ready for you to edit and send yourself.
Articles (10)
Year:
2023
Year:
2023
Summary We present a technique and automated toolbox for randomized testing of C compilers. Unlike prior compiler‐testing approaches, we generate concurrent test cases in which threads communicate using fine‐grained atomic operations, and we study actual compiler implementations rather than abstract mappings. Our approach is (1) to generate test cases with precise oracles directly from an axiomatization of the C concurrency model; (2) to apply metamorphic fuzzing to each test case, aiming to amplify the coverage they are likely to achieve on compiler codebases; and (3) to execute each fuzzed test case extensively on a range of real machines. Our tool, C4, benefits compiler developers in two ways. First, test cases generated by C4 can achieve line coverage of parts of the LLVM C compiler that are reached by neither the LLVM test suite nor an existing (sequential) C fuzzer. This information can be used to guide further development of the LLVM test suite and can also shed light on where and how concurrency‐related compiler optimizations are implemented. Second, C4 can be used to gain confidence that a compiler implements concurrency correctly. As evidence of this, we show that C4 achieves high strong mutation coverage with respect to a set of concurrency‐related mutants derived from a recent version of LLVM and that it can find historic concurrency‐related bugs in GCC. As a by‐product of concurrency‐focused testing, C4 also revealed two previously unknown sequential compiler bugs in recent versions of GCC and the IBM XL compiler.
Year:
2022
Year:
2022
Year:
2022
Year:
2022
Year:
2022
Year:
2021
Year:
2021
Year:
2021
Collaborators (4)
Jianyi Cheng
Assistant Professor
University of Edinburgh
Lana Josipovic
Assistant Professor
ETH Zürich
Tyler Sorensen
Assistant Professor
University of California, Santa Cruz
Yann Herklotz
EPFL (École Polytechnique Fédérale de Lausanne)
Make your next move.
Prepare your application
Review drafts before you send them.