Trace-based JIT

From JVMLangSummit

Jump to: navigation, search

Contents

Trace-based JIT

Christian Wimmer, University of California, Irvine

Project
Dynamic feedback-oriented optimizations in Java VMs
Homepage
http://www.christianwimmer.at/
Slides
File:TraceCompilation.pdf

Abstract

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.

Background

Commercial #1 Tailcalls: http://wikis.sun.com/display/HotSpotInternals/Publications+JKU#PublicationsJKU-TailCalls

Commercial #2 Visualizer: https://c1visualizer.dev.java.net/

Issue raised by Martin Buchholz: http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2009-September/001914.html

Current Status

Future

Key Issues for Discussion

(please expand cooperatively)

Personal tools