Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Dmitry Babokin

dblp:163/0094 · DBLP profile ↗
← Back
2ranked-venue papers
0as first author
1since 2021 · last 2023
0009-0000-4338-3337ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 2 · 1 since 2021

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Software testing · 71% Compilers and program optimization · 18% Program synthesis and code generation · 12%

Topics — the 5 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Software testing › fuzzing › system software fuzzing
compiler fuzzing
1.122023
Fuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages · Proc. ACM Program. Lang. 2023
Random testing for C and C++ compilers with YARPGen · Proc. ACM Program. Lang. 2020
Software testing
compiler testing
1.122023
Fuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages · Proc. ACM Program. Lang. 2023
Random testing for C and C++ compilers with YARPGen · Proc. ACM Program. Lang. 2020
Compilers and program optimization
loop optimization
0.712023
Fuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages · Proc. ACM Program. Lang. 2023
Software testing
fuzzing
0.412020
Random testing for C and C++ compilers with YARPGen · Proc. ACM Program. Lang. 2020
Program synthesis and code generation
random program generation
0.412020
Random testing for C and C++ compilers with YARPGen · Proc. ACM Program. Lang. 2020

Methods — techniques the papers use, named apart from their topics

static undefined-behavior avoidance · 0.7random program generation · 0.7random testing · 0.4
YearPublicationVenuePosition
2023 Fuzzing Loop Optimizations in Compilers for C++ and Data-Parallel Languages
abstract
Compilers are part of the foundation upon which software systems are built; they need to be as correct as possible. This paper is about stress-testing loop optimizers; it presents a major reimplementation of Yet Another Random Program Generator (YARPGen), an open-source generative compiler fuzzer. This new version has found 122 bugs, both in compilers for data-parallel languages, such as the Intel® Implicit SPMD Program Compiler and the Intel® oneAPI DPC++ compiler, and in C++ compilers such as GCC and Clang/LLVM. The first main contribution of our work is a novel method for statically avoiding undefined behavior when generating loops; the resulting programs conform to the relevant language standard, enabling automated testing. The second main contribution is a collection of mechanisms for increasing the diversity of generated loop code; in our evaluation, we demonstrate that these make it possible to trigger loop optimizations significantly more often, providing opportunities to discover bugs in the optimizers.
Vsevolod Livinskii, Dmitry Babokin, John Regehr
Proc. ACM Program. Lang.2
2020 Random testing for C and C++ compilers with YARPGen
abstract
Compilers should not crash and they should not miscompile applications. Random testing is an effective method for finding compiler bugs that have escaped other kinds of testing. This paper presents Yet Another Random Program Generator (YARPGen), a random test-case generator for C and C++ that we used to find and report more than 220 bugs in GCC, LLVM, and the Intel® C++ Compiler. Our research contributions include a method for generating expressive programs that avoid undefined behavior without using dynamic checks, and generation policies, a mechanism for increasing diversity of generated code and for triggering more optimizations. Generation policies decrease the testing time to find hard-to-trigger compiler bugs and, for the kinds of scalar optimizations YARPGen was designed to stress-test, increase the number of times these optimizations are applied by the compiler by an average of 20% for LLVM and 40% for GCC. We also created tools for automating most of the common tasks related to compiler fuzzing; these tools are also useful for fuzzers other than ours.
Vsevolod Livinskii, Dmitry Babokin, John Regehr
Proc. ACM Program. Lang.2