Sun 25 Mar 2018 10:45 - 11:15 - Session 1: Lost in Translation Chair(s): Harry Xu

On-stack replacement (OSR) is a performance-critical technology for many languages, especially dynamic languages. Conventional wisdom, apparent in JavaScript engines such as V8 and SpiderMonkey, is that OSR must be implemented in a low-level (i.e., in assembly) and language-specific way.

This paper presents an OSR abstraction based on Swapstack, materialized as the API for a low-level virtual machine, and shows how the abstraction of resumption protocols facilitates an elegant implementation of this API on real hardware. Using an experimental JavaScript implementation, we demonstrate that this API enables the language implementation to perform OSR without the need to deal with machine-level details. We also show that the API itself is implementable on concrete hardware. This work helps crystallize OSR abstractions and, by providing a reusable implementation, brings OSR within reach for more language implementers.

Sun 25 Mar

Displayed time zone: Eastern Time (US & Canada) change

10:45 - 11:45
Session 1: Lost in TranslationResearch Papers
Chair(s): Harry Xu University of California, Irvine
Hop, Skip, & Jump: Practical On-Stack Replacement for a Cross-Platform Language-Neutral VM
Research Papers
Kunshan Wang Huawei / Australian National University, Steve Blackburn Australian National University , Tony Hosking Australian National University / Data61, Michael Norrish Data61 at CSIRO, Australia / Australian National University, Australia
Improving Dynamically-Generated Code Performance on Dynamic Binary Translators
Research Papers
Wenwen Wang University of Minnesota, Twin Cities, Wu Jiacheng , Xiaoli Gong Nankai University, Tao Li Nankai University, Pen-Chung Yew University of Minnesota