CGO 2024
Sat 2 - Wed 6 March 2024 Edinburgh, United Kingdom
Tue 5 Mar 2024 16:10 - 16:30 at Tinto - Supporting Tools Chair(s): Ayal Zaks

Finding bugs is key to the correctness of compilers in wide use today. If the behaviour of a compiled program, as allowed by its architecture memory model, is not a behaviour of the source program under its source model, then there is a bug. This holds for all programs, but we focus on concurrency bugs that occur only with two or more threads of execution. We focus on testing techniques that detect such bugs in C/C++ compilers.

We seek a testing technique that automatically covers concurrency bugs up to fixed bounds on program sizes and that scales to find bugs in compiled programs with many lines of code. Otherwise, a testing technique can miss bugs. Unfortunately, the state-of-the-art techniques are yet to satisfy all of these properties.

We present the T'el'echat compiler testing tool for concurrent programs. T'el'echat compiles a concurrent C/C++ program and compares source and compiled program behaviours using source and architecture memory models. We make three claims: T'el'echat improves the state-of-the-art at finding bugs in code generation for multi-threaded execution, it is the first public description of a compiler testing tool for concurrency that is deployed in industry, and it is the first tool that takes a significant step towards the desired properties. We provide experimental evidence suggesting T'el'echat finds bugs missed by other state-of-the-art techniques, case studies indicating that T'el'echat satisfies the properties, and reports of our experience deploying T'el'echat in industry regression testing.

Tue 5 Mar

Displayed time zone: London change

16:10 - 17:30
Supporting ToolsMain Conference at Tinto
Chair(s): Ayal Zaks Mobileye
16:10
20m
Talk
Compiler Testing with Relaxed Memory Models
Main Conference
Luke Geeson University College London, Lee Smith Arm
16:30
20m
Talk
High-Throughput, Formal-Methods-Assisted Fuzzing for LLVM
Main Conference
Yuyou Fan University of Utah, John Regehr University of Utah
16:50
20m
Talk
EasyTracker: A Python Library for Controlling and Inspecting Program Execution
Main Conference
Théo Barollet University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG, Christophe Guillon University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG, Manuel Selva University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG, François Broquedis University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG, Florent Bouchez-Tichadou University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG, Fabrice Rastello University Grenoble Alpes - Inria - CNRS - Grenoble INP - LIG
Pre-print
17:10
20m
Talk
OptiWISE: Combining Sampling and Instrumentation for Granular CPI Analysis
Main Conference
Yuxin Guo University of Cambridge, Alexandra W. Chadwick University of Cambridge, Marton Erdos University of Cambridge, Utpal Bora University of Cambridge, Ilias Vougioukas Arm, Giacomo Gabrielli Arm, Timothy M. Jones University of Cambridge
Pre-print Media Attached