~/talk

Random Testing for C and C++ Compilers with YARPGen

Talkat OOPSLA 2020 · 2020-11-15..11-20· [compilers-and-language-design]
links:none on file
links:none on file
slides:none on file

YARPGen is a C/C++ fuzzer that generates UB-free code by exact value tracking and operation swapping for arithmetic trees, applies generation policies (contexts, constant neighborhoods, parameter shuffling) to target scalar optimizations, and feeds an automated pipeline with differential testing, CReduce support and a bug classifier that groups failures by assert messages and optimization-disabling. An experiment shows policies increase rediscovery rates for nine bugs, YARPGen spends ~5% of test time while compilation is ~95%, and it finds >220 bugs in GCC, LLVM and Intel C++.

AI-written summary · about

  1. 0:00Intro
  2. 0:30Why Yet Another C Compiler Fuzzer?
  3. 1:34Requirements
  4. 2:02Arithmetic Expression Tree
  5. 2:42Undefined Behavior Avoidance
  6. 3:22Rewrite Rules
  7. 3:44Generation Policies: Overview
  8. 4:19Generation Policies: Contexts
  9. 6:02Impact of Generation Policies (GP) Evaluation through bug rediscovery process
  10. 7:14Automation
  11. 7:49Bug Classification
  12. 8:17Sample Report: LLVM bug #32830
  13. 8:58Testing Performance
  14. 9:58Limitations
  15. 10:32Reported Bugs: Overview
  16. 10:52Reported Bugs: GCC
  17. 11:07Reported Bugs: LLVM
  18. 11:25Reported Bugs: Intel® C++ Compiler
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.