PLDI 2025
Mon 16 - Fri 20 June 2025 Seoul, South Korea
Wed 18 Jun 2025 10:30 - 10:50 at Grand Ball Room 2 - Compilers 1 Chair(s): Bor-Yuh Evan Chang

There is a tension in dynamic language runtime design between speed
and correctness. State-of-the-art JIT compilation, the result of
enormous industrial investment and significant research, achieves
heroic speedups at the cost of complexity. This complexity leads to
subtle and sometimes catastrophic correctness bugs. Much of this
complexity comes from the existence of multiple tiers and the need to
maintain correspondence between these separate definitions of the
language's semantics; it also comes from the indirect nature of the semantics
implicitly encoded in a compiler backend. One way to address this
complexity is to automatically derive, as much as possible, the
compiled code from a single source-of-truth, such as the interpreter
tier. In this work, we introduce a partial evaluator that can compile
a whole guest-language function ahead-of-time, without tracing or
profiling, ``for free.'' This transform unrolls an interpreter
function expressed in a standard compiler intermediate representation
(static single assignment or SSA) and uses partial evaluation of the
interpreter function and its regular control flow to drive the
guest-language compilation. The effect of this is that the transform
is applicable to almost unmodified existing interpreters in systems
languages such as C or C++, producing ahead-of-time guest-language
compilers. We show the effectiveness of this new tool by applying it
to the interpreter tier of an existing industrial JavaScript engine,
SpiderMonkey, yielding $2.17\times$ speedups, and the PUC-Rio Lua
interpreter, yielding $1.84\times$ speedups. Finally, we outline an
approach to carry this work further, deriving more of the capabilities
of a JIT backend from first principles while retaining correctness.

Wed 18 Jun

Displayed time zone: Seoul change

10:30 - 12:10
Compilers 1PLDI Research Papers at Grand Ball Room 2
Chair(s): Bor-Yuh Evan Chang University of Colorado Boulder & Amazon
10:30
20m
Talk
Partial Evaluation, Whole-Program Compilation
PLDI Research Papers
Chris Fallin F5, Maxwell Bernstein Recurse Center
DOI Pre-print
10:50
20m
Talk
Exploiting Undefined Behavior in C/C++ Programs for Optimization: A Study on the Performance Impact
PLDI Research Papers
Lucian Popescu INESC-ID; Instituto Superior Técnico - University of Lisbon; Politehnica University of Bucharest, Nuno P. Lopes INESC-ID; Instituto Superior Técnico - University of Lisbon
Link to publication DOI
11:10
20m
Talk
Relaxing Alias Analysis: Exploring the Unexplored Space
PLDI Research Papers
Michel Weber ETH Zurich, Theodoros Theodoridis ETH Zurich, Zhendong Su ETH Zurich
DOI
11:30
20m
Talk
Webs and Flow-Directed Well-Typedness Preserving Program Transformations
PLDI Research Papers
Benjamin Quiring University of Maryland, David Van Horn University of Maryland, John Reppy University of Chicago, Olin Shivers Northeastern University
DOI
11:50
20m
Talk
Slotted E-Graphs: First-Class Support for (Bound) Variables in E-Graphs
PLDI Research Papers
Rudi Schneider Technische Universität Berlin, Marcus Rossel Barkhausen Institut, Amir Shaikhha University of Edinburgh, Andrés Goens University of Amsterdam, Thomas Koehler CNRS - ICube Lab, Michel Steuwer Technische Universität Berlin
DOI Pre-print File Attached