ECOOP 2024
Mon 16 - Fri 20 September 2024 Vienna, Austria
co-located with ISSTA/ECOOP 2024
Mon 16 Sep 2024 10:30 - 10:45 at EI 7 - Compilation and Runtimes Chair(s): Stefan Marr

Basic Block Versioning (BBV) is a compilation technique for optimizing program execution. It consists in duplicating and specializing basic blocks of code according to the execution contexts of the blocks, up to a version limit. BBV has been used in Just-In-Time (JIT) compilers for reducing the dynamic type checks of dynamic languages. Our work revisits the BBV technique to adapt it to Ahead-of-Time (AOT) compilation. This Static BBV (SBBV) raises new challenges, most importantly how to ensure the convergence of the algorithm when the specializations of the basic blocks are not based on profiled variable values and how to select the good specialization contexts. SBBV opens new opportunities for more precise optimizations as the compiler can explore multiple versions and only keep those within the version limit that yield better generated code.

In this paper, we present the main SBBV algorithm and its use to optimize the dynamic type checks, array bound checks, and mixed-type arithmetic operators often found in dynamic languages. We have implemented SBBV in two AOT compilers for the Scheme programming language that we have used to evaluate the technique’s effectiveness. On a suite of benchmarks, we have observed that even with a low limit of 2 versions, SBBV greatly reduces the number of dynamic type tests (by 54% and 62% on average) and accelerates the execution time (by about 10% on average). Previous work has needed a higher version limit to achieve a similar level of optimization. We also observe a small impact on compilation time and code size (a decrease in some cases).

Mon 16 Sep

Displayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change

10:30 - 12:00
Compilation and RuntimesTechnical Papers at EI 7
Chair(s): Stefan Marr University of Kent
10:30
15m
Talk
Static Basic Block Versioning
Technical Papers
Manuel Serrano Inria; Université Côte d’Azur, Olivier Melançon DIRO, Université de Montréal, Marc Feeley Université de Montréal
10:45
15m
Talk
Cross Module Quickening - The Curious Case of C Extensions
Technical Papers
Felix Berlakovich μCSRL, CODE Research Institute, University of the Bundeswehr Munich, Stefan Brunthaler μCSRL, CODE Research Institute, University of the Bundeswehr Munich
11:00
15m
Talk
Compiling with Arrays
Technical Papers
David Richter Technical University of Darmstadt, Timon Böhler Technical University of Darmstadt, Pascal Weisenburger University of St. Gallen, Mira Mezini TU Darmstadt; hessian.AI; National Research Center for Applied Cybersecurity ATHENE
Pre-print
11:15
15m
Talk
The Performance Effects of Virtual-Machine Instruction Pointer Updates
Technical Papers
11:30
15m
Talk
Taking a Closer Look: An Outlier-Driven Approach to Compilation-Time Optimization
Technical Papers
Florian Huemer JKU Linz, David Leopoldseder Oracle Labs, Aleksandar Prokopec Oracle Labs, Raphael Mosaner JKU Linz, Hanspeter Mössenböck JKU Linz
11:45
15m
Talk
Optimizing Layout of Recursive Datatypes with Marmoset
Technical Papers
Vidush Singhal Purdue University, Chaitanya S. Koparkar Indiana University, Joseph Zullo Purdue University, Artem Pelenitsyn Purdue University, Michael Vollmer University of Kent, Mike Rainey Carnegie Mellon University, Ryan R. Newton Purdue University, Milind Kulkarni Purdue University
DOI Pre-print

Information for Participants
Mon 16 Sep 2024 10:30 - 12:00 at EI 7 - Compilation and Runtimes Chair(s): Stefan Marr
Info for room EI 7:

Map: https://tuw-maps.tuwien.ac.at/?q=CDEG13

Room tech: https://raumkatalog.tiss.tuwien.ac.at/room/15417