An Attempt to Catch Up with JIT Compilers: The False Lead of Optimizing Inline Caches
Aurore Poirier (University of Rennes - Inria - CNRS - IRISA, France),, Erven Rohou (University of Rennes - Inria - CNRS - IRISA, France), Manuel, Serrano (Inria - University of C\^ote d'Azur, France)

TL;DR
This paper investigates whether adding Dynamic Binary Modification to Ahead-of-Time JavaScript compilers improves performance, finding that reducing memory accesses does not necessarily lead to faster execution on modern architectures.
Contribution
It introduces a new DBM-based optimization for inline caches in AoT compilers and evaluates its impact, revealing limitations of such optimizations on current hardware.
Findings
DBM optimization does not reduce execution time on x86_64.
Reducing memory accesses alone is insufficient for speedup on modern CPUs.
Sophisticated compiler optimizations are only beneficial if hardware cannot automatically optimize code.
Abstract
Context: Just-in-Time (JIT) compilers are able to specialize the code they generate according to a continuous profiling of the running programs. This gives them an advantage when compared to Ahead-of-Time (AoT) compilers that must choose the code to generate once for all. Inquiry: Is it possible to improve the performance of AoT compilers by adding Dynamic Binary Modification (DBM) to the executions? Approach: We added to the Hopc AoT JavaScript compiler a new optimization based on DBM to the inline cache (IC), a classical optimization dynamic languages use to implement object property accesses efficiently. Knowledge: Reducing the number of memory accesses as the new optimization does, does not shorten execution times on contemporary architectures. Grounding: The DBM optimization we have implemented is fully operational on x86_64 architectures. We have conducted several…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
