DLS
Sun 15 - Fri 20 November 2020 Online Conference
co-located with SPLASH 2020
Fri 20 Nov 2020 00:00 - 00:20 at SPLASH - 7
Thu 19 Nov 2020 12:00 - 12:20 at SPLASH - 7

To efficiently execute dynamically typed languages, many language implementations have adopted a two-tier architecture. The first tier aims for low-latency startup times and collects dynamic profiles, such as the types of every program variable. The second tier provides high-throughput using an optimizing compiler that specializes code to the recorded type information. If the program behavior changes to the point that not previously seen types occur in specialized code, that specialized code becomes invalid, it is deoptimized, and control is transferred back to the first tier execution engine which will start specializing anew. However, if the program behavior becomes more specific, for instance, if a variable that was recorded as holding values of many types becomes monomorphic, no deoptimization will be triggered. Once the program is running optimized code, there are no means to notice that an opportunity for optimization has been missed or to restart specialization.

We propose to employ a sampling-based profiler to monitor native code without any instrumentation. The absence of instrumentation means that when the profiler is not active, no overhead is incurred. When the profiler is active, the overhead can be controlled by limiting the sampling rate. Our implementation is in the context of the Ř just-in-time, optimizing, compiler for the R language. Based on the sampled profiles, we are able to detect when the native code produced by Ř is specialized for stale type feedback and recompile it to more type-specific code. We show that recording in our profiler adds an overhead of less than 3% in most cases and up to 9% in few cases when engaged and that it reliably detects stale type feedback within milliseconds.

Thu 19 Nov
Times are displayed in time zone: (GMT-05:00) Central Time (US & Canada) change

11:00 - 12:20: 7SAS / DLS at SPLASH +12h
11:00 - 11:20
Research paper
SAS
Hugo IllousCEA & INRIA / ENS Paris, Matthieu Lemerre, Xavier RivalINRIA/CNRS/ENS Paris
11:20 - 11:40
Talk
DLS
John Magnus MortonUniversity of Edinburgh, Kuba KaszykUniversity of Edinburgh, Lu LiLinköping University, Jiawen SunUniversity of Edinburgh, Christophe DubachMcGill University, Michel SteuwerThe University of Edinburgh, Murray ColeUniversity of Edinburgh, UK, Michael O'BoyleUniversity of Edinburgh
11:40 - 12:00
Research paper
SAS
Christian MüllerTechnical University of Munich, Helmut SeidlTechnische Universität München
12:00 - 12:20
Talk
DLS
Olivier FlückigerNortheastern University, USA, Andreas WälchliUniversity of Bern, Sebastián KrynskiCzech Technical University, National University of Quilmes, Jan VitekNortheastern University
DOI Pre-print
23:00 - 00:20: 7SAS / DLS at SPLASH
23:00 - 23:20
Research paper
SAS
Hugo IllousCEA & INRIA / ENS Paris, Matthieu Lemerre, Xavier RivalINRIA/CNRS/ENS Paris
23:20 - 23:40
Talk
DLS
John Magnus MortonUniversity of Edinburgh, Kuba KaszykUniversity of Edinburgh, Lu LiLinköping University, Jiawen SunUniversity of Edinburgh, Christophe DubachMcGill University, Michel SteuwerThe University of Edinburgh, Murray ColeUniversity of Edinburgh, UK, Michael O'BoyleUniversity of Edinburgh
23:40 - 00:00
Research paper
SAS
Christian MüllerTechnical University of Munich, Helmut SeidlTechnische Universität München
00:00 - 00:20
Talk
DLS
Olivier FlückigerNortheastern University, USA, Andreas WälchliUniversity of Bern, Sebastián KrynskiCzech Technical University, National University of Quilmes, Jan VitekNortheastern University
DOI Pre-print