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
Times are displayed in time zone: (GMT-07:00) Pacific Time (US & Canada) change

15:00 - 16:30: Main Conference - Session 3 Runtime Techniques
Chair(s): Jose Nelson AmaralUniversity of Alberta
CC-2020-main-conference15:00 - 15:22
Research paper
Cosmin GorgovanUniversity of Manchester, Guillermo CallaghanUniversity of Manchester, Mikel LujánUniversity of Manchester
CC-2020-main-conference15:22 - 15:45
Research paper
Andreas KurthETH Zurich, Koen WoltersETH Zurich, Björn ForsbergETH Zurich, Alessandro CapotondiUniversity of Modena and Reggio Emilia, Andrea MarongiuUniversity of Modena and Reggio Emilia, Tobias GrosserETH Zurich, Luca BeniniETH Zurich
CC-2020-main-conference15:45 - 16:07
Research paper
Manuel SerranoInria, France, Robby FindlerNorthwestern University, USA
CC-2020-main-conference16:07 - 16:30
Research paper
Raquel LazcanoCentre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Daniel MadroñalCentre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Eduardo JuarezCentre of Software Technologies and Multimedia Systems, Universidad Politecnica de Madrid, Philippe ClaussUniversity of Strasbourg