IRILL - Research and Innovation on Free Software

20221122 - Of JavaScript Ahead-Of-Time Compilation Performance


"20221122 - Of JavaScript Ahead-Of-Time Compilation Performance"
by Manuel Serrano,
Download Webm format

JavaScript is particularly difficult to implement efficiently because most of its expressions have all sorts of different meanings that involve all sorts of different executions that are not distinguished by any syntactic or type annotation. The common intuition is that only JIT compilers can handle it efficiently because they can rely on heuristic-based strategies that require having the program and the data on hand. But static (AOT) compilers can speculate and use heuristics too! To demonstrate that, we propose Hopc, an AOT compiler for JavaScript, based on the following assumption:

The most likely data structure a program will use is the one for which the compiler is able to produce its best code.

Thus, contrary to most AOT compilers, Hopc does not rely on complex static analyses to optimize programs. It simply tries to generate its best code that it protects with guards. In this presentation, I will present its main optimizations and a performance analysis.