Proceedings of the 9th International Conference on Principles and Practice of Programming in Java 2011
DOI: 10.1145/2093157.2093176
|View full text |Cite
|
Sign up to set email alerts
|

Trace-based compilation for the Java HotSpot virtual machine

Abstract: Traditional method-based just-in-time (JIT) compilation translates whole methods to optimized machine code. Trace-based compilation only generates machine code for frequently executed paths, so-called traces, that may span multiple methods.In this paper, we present our implementation of a trace-based JIT compiler in which we modified the mature, method-based Java HotSpot client compiler. To simplify trace recording, we added a bytecode preprocessing step that detects and directly marks loops within the bytecod… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
28
0

Year Published

2012
2012
2021
2021

Publication Types

Select...
5
2

Relationship

1
6

Authors

Journals

citations
Cited by 24 publications
(28 citation statements)
references
References 27 publications
0
28
0
Order By: Relevance
“…In [18][19][20], a trace that is aborted from the compiled code into the interpreted execution too frequently may be recompiled to include a trace starting from the side exit point in the compilation scope. Such recompilation is used to limit the penalty of a badly formed trace by extending the coverage by the compiled code, not for upgrading compilation for really hot traces.…”
Section: Related Workmentioning
confidence: 99%
“…In [18][19][20], a trace that is aborted from the compiled code into the interpreted execution too frequently may be recompiled to include a trace starting from the side exit point in the compilation scope. Such recompilation is used to limit the penalty of a badly formed trace by extending the coverage by the compiled code, not for upgrading compilation for really hot traces.…”
Section: Related Workmentioning
confidence: 99%
“…loop header, method entry) [2,15,17,19,36], or always enabled when interpreting code [4]. Various backbone data structures have been suggested to capture recorded traces such as trace-trees [14], control-flow-graphs (CFG) of traced basic blocks [4], or hybrids between trace-trees and CFGs called trace-regions [2] or trace-graphs [18]. In general, recording approaches for multi-threaded applications can be categorized based on how CFG recordings are accessed and constructed:…”
Section: Region-recording For Multi-threaded Applicationsmentioning
confidence: 99%
“…• Global Recording Structure -Most [2,14,15,[17][18][19]36] JIT compilation systems use one shared global recording structure ( 1 in Figure 1) to incrementally build CFG sections. This scheme works well for single-threaded execution environments but does not scale to multi-threaded applications as additional synchronisation is required when recording in parallel for multiple threads.…”
Section: Region-recording For Multi-threaded Applicationsmentioning
confidence: 99%
See 2 more Smart Citations