Proceedings of the 27th Annual ACM Symposium on Applied Computing 2012
DOI: 10.1145/2245276.2232084
|View full text |Cite
|
Sign up to set email alerts
|

Evaluation of trace inlining heuristics for Java

Abstract: Method inlining is one of the most important optimizations in method-based just-in-time (JIT) compilers. It widens the compilation scope and therefore allows optimizing multiple methods as a whole, which increases the performance. However, if method inlining is used too frequently, the compilation time increases and too much machine code is generated. This impacts the performance negatively.Trace-based JIT compilers only compile frequently executed paths, so-called traces, instead of whole methods. This may re… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2012
2012
2014
2014

Publication Types

Select...
4
2

Relationship

2
4

Authors

Journals

citations
Cited by 7 publications
(10 citation statements)
references
References 14 publications
0
10
0
Order By: Relevance
“…In previous work [Häubl and Mössenböck 2011;Häubl et al 2012Häubl et al , 2013, we implemented a trace recording infrastructure and a simple trace-based JIT compiler for Java based on the production-quality Java HotSpot VM. Our implementation supports two different kinds of traces: loop traces anchored at loop headers, and method traces anchored at method entries.…”
Section: Previous Workmentioning
confidence: 99%
See 3 more Smart Citations
“…In previous work [Häubl and Mössenböck 2011;Häubl et al 2012Häubl et al , 2013, we implemented a trace recording infrastructure and a simple trace-based JIT compiler for Java based on the production-quality Java HotSpot VM. Our implementation supports two different kinds of traces: loop traces anchored at loop headers, and method traces anchored at method entries.…”
Section: Previous Workmentioning
confidence: 99%
“…Trace inlining is our most profitable optimization. It is more powerful than method inlining because traces contain context-sensitive information, which helps us to avoid inlining unnecessary method parts [Häubl et al 2012[Häubl et al , 2013. This is shown in Figure 4, where two different callers invoke the same method.…”
Section: Compilationmentioning
confidence: 99%
See 2 more Smart Citations
“…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%