Wed 15 Jun 2022 13:30 - 13:50 at Toucan - Compilation Chair(s): James Larus
Thu 16 Jun 2022 01:30 - 01:50 at Toucan - Compilation

We propose a testing framework for validating static typing procedures in compilers. Our core component is a program generator suitably crafted for producing programs that are likely to trigger typing compiler bugs. One of our main contributions is that our program generator gives rise to transformation-based compiler testing for finding typing bugs. We present two novel approaches (\emph{type erasure mutation} and \emph{type overwriting mutation}) that apply targeted transformations to an input program to reveal type inference and soundness compiler bugs respectively. Both approaches are guided by an intra-procedural type inference analysis used to capture type information flow.

We implement our techniques as a tool, which we call Hephaestus. The extensibility of Hephaestus enables us to test the compilers of three popular JVM languages: Java, Kotlin, and Groovy. Within nine months of testing, we have found 153 bugs (128 confirmed and 71 fixed) with diverse manifestations and root causes in all the examined compilers. Most of the discovered bugs lie in the heart of many critical components related to static typing, such as type inference.

Wed 15 Jun

Displayed time zone: Pacific Time (US & Canada) change

13:30 - 14:50
CompilationPLDI at Toucan +12h
Chair(s): James Larus EPFL
13:30
20m
Talk
Finding Typing Compiler Bugs
PLDI
Stefanos Chaliasos Imperial College London, Thodoris Sotiropoulos Athens University of Economics and Business, Diomidis Spinellis Athens University of Economics and Business & Delft University of Technology, Arthur Gervais Imperial College London, Ben Livshits Imperial College London, UK, Dimitris Mitropoulos University of Athens
DOI
13:50
20m
Talk
IRDL: An IR Definition Language for SSA Compilers
PLDI
Mathieu Fehr University of Edinburgh, Jeff Niu University of Waterloo, River Riddle Google, Mehdi Amini Google, Zhendong Su ETH Zurich, Tobias Grosser University of Edinburgh
DOI
14:10
20m
Talk
Sequential Reasoning for Optimizing Compilers Under Weak Memory Concurrency
PLDI
Minki Cho Seoul National University, Sung-Hwan Lee Seoul National University, Dongjae Lee Seoul National University, Chung-Kil Hur Seoul National University, Ori Lahav Tel Aviv University
DOI Pre-print
14:30
20m
Talk
Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations
PLDI
Olivier Flückiger Northeastern University, Jan Ječmen Czech Technical University, Sebastián Krynski Czech Technical University, Jan Vitek Northeastern University; Czech Technical University
DOI Pre-print

Thu 16 Jun

Displayed time zone: Pacific Time (US & Canada) change

01:30 - 02:50
CompilationPLDI at Toucan
01:30
20m
Talk
Finding Typing Compiler Bugs
PLDI
Stefanos Chaliasos Imperial College London, Thodoris Sotiropoulos Athens University of Economics and Business, Diomidis Spinellis Athens University of Economics and Business & Delft University of Technology, Arthur Gervais Imperial College London, Ben Livshits Imperial College London, UK, Dimitris Mitropoulos University of Athens
DOI
01:50
20m
Talk
IRDL: An IR Definition Language for SSA Compilers
PLDI
Mathieu Fehr University of Edinburgh, Jeff Niu University of Waterloo, River Riddle Google, Mehdi Amini Google, Zhendong Su ETH Zurich, Tobias Grosser University of Edinburgh
DOI
02:10
20m
Talk
Sequential Reasoning for Optimizing Compilers Under Weak Memory Concurrency
PLDI
Minki Cho Seoul National University, Sung-Hwan Lee Seoul National University, Dongjae Lee Seoul National University, Chung-Kil Hur Seoul National University, Ori Lahav Tel Aviv University
DOI Pre-print
02:30
20m
Talk
Deoptless: Speculation with Dispatched On-Stack Replacement and Specialized Continuations
PLDI
Olivier Flückiger Northeastern University, Jan Ječmen Czech Technical University, Sebastián Krynski Czech Technical University, Jan Vitek Northeastern University; Czech Technical University
DOI Pre-print