Trace-based JIT

From JVMLangSummit
Revision as of 10:53, 18 September 2009 by Jrose (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Trace-based JIT

Christian Wimmer, University of California, Irvine

Dynamic feedback-oriented optimizations in Java VMs


Trace-Based Just-in-Time Compilation — Christian Wimmer

The execution model of Java is ideally suited for dynamic optimizations at run time. This allows novel feedback-directed optimizations that are not possible in traditional static compilers. However, current just-in-time compilers still inherit their basic structure from static compilers: the granularity of compilation are methods. Switching between the interpreter and compiled code is still mostly done when methods are called. In contrast, trace-based compilation focuses only on code that has shown to be frequently executed. The compiler operates on execution traces recorded at run time. It not only allows more aggressive optimizations of Java code, but is also well suited for dynamic languages because it simplifies the integration of type information gathered at run time. This talk introduces trace compilation, presents our recent advances, and presents optimizations that are based on this compilation approach.


Commercial #1 Tailcalls:

Commercial #2 Visualizer:

Issue raised by Martin Buchholz:

Current Status


Key Issues for Discussion

(please expand cooperatively)