On-Stack Replacement for Program Generators and Source-to-Source CompilersVirtual
Sun 17 Oct 2021 22:35 - 22:50 at Zurich C - GPCE/SLE Session 3 Chair(s): Alex Potanin
On-stack replacement (OSR) describes the ability to replace currently executing code with a different version, either a more optimized one (tiered execution) or a more general one (deoptimization to undo speculative optimization). While OSR is a key component in all modern VMs for languages like Java or JavaScript, OSR has only recently been studied as a more abstract program transformation, independent of language VMs. Still, previous work has only considered OSR in the context of low-level execution models based on stack frames, labels, and jumps.
With the goal of making OSR more broadly applicable, this paper presents a surprisingly simple pattern for implementing OSR in source-to-source compilers or explicit program generators that target languages with structured control flow (loops and conditionals). We evaluate our approach through experiments demonstrating both tiered execution and speculative optimization, based on representative code patterns in the context of a state-of-the-art in-memory database system that compiles SQL queries to C at runtime. We further show that casting OSR as a high-level transformation enables new speculative optimization patterns beyond what is commonly implemented in language VMs.
Sun 17 OctDisplayed time zone: Central Time (US & Canada) change
13:50 - 15:10 | |||
13:50 15mTalk | A Variational Database Management SystemVirtual GPCE Parisa Ataei Oregon State University, Fariba Khan Oregon State University, Eric Walkingshaw Unaffiliated | ||
14:05 15mTalk | The Life Cycle of Features in Highly-Configurable Software Systems Evolving in Space and TimeVirtual GPCE Gabriela Karoline Michelon Johannes Kepler University Linz, Wesley Assunção Pontifical Catholic University of Rio de Janeiro (PUC-Rio), David Obermann Johannes Kepler University Linz, Lukas Linsbauer TU Braunschweig, Paul Grünbacher Johannes Kepler University Linz, Austria, Alexander Egyed Johannes Kepler University Linz | ||
14:20 15mTalk | Towards Supporting SPL Engineering in Low-Code Platforms using a DSL ApproachVirtual GPCE Alexandre Bragança Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Isabel Azevedo Games, Interaction and Learning Technologies (GILT) - Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Nuno Bettencourt Interdisciplinary Studies Research Center (ISRC) – Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Carlos Morais NumbersBelieve, Diogo Teixeira NumbersBelieve, David Caetano NumbersBelieve | ||
14:35 15mTalk | On-Stack Replacement for Program Generators and Source-to-Source CompilersVirtual GPCE | ||
14:50 20mLive Q&A | Discussion, Questions, Answers GPCE |
21:50 - 23:10 | |||
21:50 15mTalk | A Variational Database Management SystemVirtual GPCE Parisa Ataei Oregon State University, Fariba Khan Oregon State University, Eric Walkingshaw Unaffiliated | ||
22:05 15mTalk | The Life Cycle of Features in Highly-Configurable Software Systems Evolving in Space and TimeVirtual GPCE Gabriela Karoline Michelon Johannes Kepler University Linz, Wesley Assunção Pontifical Catholic University of Rio de Janeiro (PUC-Rio), David Obermann Johannes Kepler University Linz, Lukas Linsbauer TU Braunschweig, Paul Grünbacher Johannes Kepler University Linz, Austria, Alexander Egyed Johannes Kepler University Linz | ||
22:20 15mTalk | Towards Supporting SPL Engineering in Low-Code Platforms using a DSL ApproachVirtual GPCE Alexandre Bragança Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Isabel Azevedo Games, Interaction and Learning Technologies (GILT) - Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Nuno Bettencourt Interdisciplinary Studies Research Center (ISRC) – Institute of Engineering of Porto – Polytechnic of Porto (ISEP/IPP), Carlos Morais NumbersBelieve, Diogo Teixeira NumbersBelieve, David Caetano NumbersBelieve | ||
22:35 15mTalk | On-Stack Replacement for Program Generators and Source-to-Source CompilersVirtual GPCE | ||
22:50 20mLive Q&A | Discussion, Questions, Answers GPCE |