Write a Blog >>
CC 2020
Sat 22 - Wed 26 February 2020 San Diego, California, United States
Sat 22 Feb 2020 15:45 - 16:07 - Session 3 Runtime Techniques Chair(s): Jose Nelson Amaral

Inline caches and hidden classes are two essential components for closing the performance gap between static languages such as Java, Scheme, or ML and dynamic languages such as JavaScript or Python. They rely on the observation that for a particular object access located at a particular point of the program, the shapes, usually referred to as the hidden classes, of accessed objects are likely to be the same. Taking benefit of that invariant, they replace the expensive lookup the semantics of these languages normally demand with one test, the inline cache, and a memory read indexed by an offset computed during the last cache miss. These optimizations are essential but they are not general enough to cope with JavaScript’s proxies. In particular, when the property name is itself unknown statically, inline cache-based optimizations always take a slow path.

In this paper, we show how to generalize inline caches to cope with an unknown property name. The paper first discusses the general principle of the extension and then presents the experimental results we collected using a modified version of the \hop JavaScript compiler, demonstrating how the optimization is crucial for improving the performance of proxy objects (as they naturally use dynamic property names extensively). The evaluation report shows that the modified \hop outperforms all other implementations of the language, including the most efficient commercial ones, by a factor ranging from 2\times× to 100\times×. Even better, our optimizations are applicable to existing compilers as they require only straightforward changes to runtime data structures; no complex analyses are required.

Sat 22 Feb

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

15:00 - 16:30
Session 3 Runtime TechniquesMain Conference
Chair(s): Jose Nelson Amaral University of Alberta
15:00
22m
Research paper
Balancing Performance and Productivity for the Development of Dynamic Binary Instrumentation Tools: A Case Study on Arm Systems
Main Conference
Cosmin Gorgovan University of Manchester, Guillermo Callaghan University of Manchester, Mikel Luján University of Manchester
15:22
22m
Research paper
Mixed-Data-Model Heterogeneous Compilation and OpenMP Offloading
Main Conference
Andreas Kurth ETH Zurich, Koen Wolters ETH Zurich, Björn Forsberg ETH Zurich, Alessandro Capotondi University of Modena and Reggio Emilia, Andrea Marongiu University of Modena and Reggio Emilia, Tobias Grosser ETH Zurich, Luca Benini ETH Zurich
15:45
22m
Research paper
Dynamic Property Caches: A Step towards Faster JavaScript Proxy Objects
Main Conference
Manuel Serrano Inria, France, Robert Bruce Findler Northwestern University, USA
16:07
22m
Research paper
Runtime Multi-Versioning and Specialization inside a Memoized Speculative Loop Optimizer
Main Conference
Raquel Lazcano Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Daniel Madroñal Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Eduardo Juarez Centre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Philippe Clauss University of Strasbourg