[Pl-seminar] 12/08: Maxime Chevalier-Boisvert, Lazy, Incremental JIT Compilation with Basic Block Versioning

Vincent St-Amour stamourv at ccs.neu.edu
Tue Nov 25 16:39:20 EST 2014

NUPRL Seminar presents

Maxime Chevalier-Boisvert
Université de Montréal

2:30 - 4:00 (non-standard time)
Monday, 12/08 (non-standard day)
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)

Lazy, Incremental JIT Compilation with Basic Block Versioning

Dynamically typed programming languages such as JavaScript, Python,
MATLAB and R are notoriously difficult to analyze and optimize. The need
for high performance implementations has led to the design of
increasingly complex JIT compilers. Mozilla's SpiderMonkey JavaScript
VM, for instance, employs type feedback, hybrid interprocedural type
analysis and on-stack replacement in a three-tiered architecture.

We introduce a novel JIT compiler architecture in which compilation is
performed lazily and incrementally, one basic block at a time. Our
design employs basic block versioning, an optimization technique which
type-specializes machine code as it is generated. This technique has
been implemented and tested in Higgs, an experimental JIT compiler for
JavaScript. We show that a majority of dynamic type tests can be
eliminated and execution times improved without using on-stack
replacement and without requiring a separate analysis pass.

This talk also introduces research currently in progress: a technique
which we refer to as "typed shapes", which enables basic block
versioning to efficiently specialize code based on object types and
shapes. We conclude with future work and the many interesting
possibilities offered by a compiler architecture based on basic block
versioning, such as the idea of performing function inlining

More information about the pl-seminar mailing list