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

We define \emph{webs} to be the collections of producers and consumers (\emph{e.g.}, functions and calls) in a program that are constrained: in higher-order languages, multiple functions can flow to the same call, all of which must agree on an interface (\emph{e.g.}, calling convention). We argue that webs are fundamentally the \emph{unit of transformation}: a change to one member requires changes across the entire web. We introduce a web-centric intermediate language that exposes webs as annotations, and describe web-based (that is, flow-directed) transformations guided by these annotations. As they affect all members of a web, these transformations are interprocedural, operating over entire modules. Through the lens of webs we reframe and generalize a collection of transformations from the literature, including dead-parameter elimination, uncurrying, and defunctionalization, as well as describe novel transformations. We contrast this approach with rewriting strategies that rely on inlining and cascading rewrites.

Webs are an over-approximation of the semantic function-call relationship produced by control-flow analyses (CFA). This information is inherently independent from the transformations; more precise analyses permit more transformations. A limitation of precise analyses is that the transformations may not maintain well-typedness, as the type system is a less-precise static analysis. Our solution is a simple and lightweight typed-based analysis that causes the flow-directed transformations to preserve well-typedness, making flow-directed, type-preserving transformations easily accessible in many compilers. This analysis builds on unification, distinguishing types that \emph{look} the same from types that have to \emph{be} the same. Our experiments show that while our analysis is theoretically less precise, in practice its precision is similar to CFAs.

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