Blogs (28) >>
ECOOP 2016
Sun 17 - Fri 22 July 2016 Rome, Italy
Wed 20 Jul 2016 10:55 - 11:20 at Auditorium Loyola - Session 1 Chair(s): Camil Demetrescu

Previous work proposed lazy basic block versioning, a technique for just-in-time compilation of dynamic languages which we believe represents an interesting point in the design space. Basic block versioning is simple to implement, simple enough that a single developer can build a complete just-in-time compiler for JavaScript in a year, yet it performs surprisingly well as it propagates context-sensitive type information to generate type-specialized code on-the-fly. In this paper, we demonstrate that lazy basic block versioning can be extended in simple ways to propagate type information across function call boundaries. This gives some of the benefits of whole-program analysis, or a tracing compiler, without having to implement the machinery for either. We have implemented this proposal in the Higgs JavaScript virtual machine and report on the empirical evaluation of this system on a set of industry standard benchmarks. We are able to eliminate 94.3% of dynamic type tests on average, which we show is more than what is achievable with any static whole-program type analysis.

Wed 20 Jul

ecoop-2016-papers
10:30 - 12:00: Research Track - Session 1 at Auditorium Loyola
Chair(s): Camil DemetrescuSapienza University of Rome
ecoop-2016-papers146900340000010:30 - 10:55
Talk
Zachary PalmerSwarthmore College, Scott F. SmithThe Johns Hopkins University
Link to publication DOI Media Attached
ecoop-2016-papers146900490000010:55 - 11:20
Talk
Maxime Chevalier-BoisvertUniversity of Montreal, Marc FeeleyUniversité de Montréal
Link to publication DOI Media Attached
ecoop-2016-papers146900640000011:20 - 11:45
Talk
Kamil JezekUniversity of West Bohemia, Pilsen, CZ, Jens DietrichMassey University, New Zealand
Link to publication DOI Pre-print Media Attached
ecoop-2016-papers146900790000011:45 - 12:00