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

Phase detection using trace compilation

Abstract: Dynamic compilers can optimize application code specifically for observed code behavior. Such behavior does not have to be stable across the entire program execution to be beneficial for optimizations, it must only be stable for a certain program phase. To specialize code for a program phase, it is necessary to detect when the execution behavior of the program changes (phase change). Trace-based compilation is an efficient method to detect such phase changes. A trace tree is a collection of frequently executed… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2011
2011
2013
2013

Publication Types

Select...
3
1
1

Relationship

0
5

Authors

Journals

citations
Cited by 7 publications
(7 citation statements)
references
References 22 publications
0
7
0
Order By: Relevance
“…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].…”
Section: Region-recording For Multi-threaded Applicationsmentioning
confidence: 99%
See 3 more Smart Citations
“…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].…”
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
“…Furthermore, when our trace-based compiler compiles traces for the first time, it may happen that not all relevant paths have been recorded yet. This is a common problem for trace compilation, as different parts of a method might be hot during different execution phases of the application [29].…”
Section: Dacapomentioning
confidence: 99%