A trace-based Java JIT compiler retrofitted from a method-based compiler
A trace-based Java JIT compiler retrofitted from a method-based compiler
复制标题
基于跟踪的 Java JIT 编译器由基于方法的编译器改造而来
DOI:
10.1109/cgo.2011.5764692
复制
发表时间:
2011
期刊:
影响因子:
--
通讯作者:
T. Nakatani
中科院分区:
文献类型:
--
作者:
H. Inoue;H. Hayashizaki;Peng Wu;T. Nakatani
This paper describes our trace-based JIT compiler (trace-JIT) for Java developed from a production-quality method-based JIT compiler (method-JIT). We first describe the design and implementation of our trace-JIT with emphasis on how we retrofitted a method-JIT as a trace-based compiler. Then we show that the trace-JIT often produces better quality code than the method-JIT by extending the compilation scope. Forming longer traces that span multiple methods turns out to be more powerful than method inlining in extending the compilation scope. It reduces method-invocation overhead and also offers more compiler optimization opportunities. However, the trace-JIT incurs additional runtime overhead compared to the method-JIT that may be offset by gains from the improved code quality. Overall, our trace-JIT achieved performance roughly comparable to the baseline method-JIT. We also discuss the issues in trace-based compilation from the viewpoint of compiler optimizations. Our results show the potentials of trace-based compilation as an alternative or complementary approach to compiling languages with mature method-based compilers.