Fast and precise hybrid type inference for JavaScript

8 years 5 months ago
Fast and precise hybrid type inference for JavaScript
JavaScript performance is often bound by its dynamically typed nature. Compilers do not have access to static type information, making generation of efficient, type-specialized machine code difficult. We seek to solve this problem by inferring types. In this paper we present a hybrid type inference algorithm for JavaScript based on points-to analysis. Our algorithm is fast, in that it pays for itself in the optimizations it enables. Our algorithm is also precise, generating information that closely reflects the program’s actual behavior even when analyzing polymorphic code, by augmenting static analysis with run-time type barriers. We showcase an implementation for Mozilla Firefox’s JavaScript engine, demonstrating both performance gains and viability. Through integration with the just-in-time (JIT) compiler in Firefox, we have improved performance on major benchmarks and JavaScript-heavy websites by up to 50%. Inference-enabled compilation is the default compilation mode as of...
Brian Hackett, Shu-yu Guo
Added 27 Sep 2012
Updated 27 Sep 2012
Type Journal
Year 2012
Where PLDI
Authors Brian Hackett, Shu-yu Guo
Comments (0)