Trace-based compilation in execution environments without interpreters

PPPJ '10: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java(2010)

引用 38|浏览1
暂无评分
摘要
Trace-based compilation is a technique used in managed language runtimes to detect and compile frequently executed program paths. The goal is to reduce compilation time and improve code quality by only considering "hot" parts of methods for compilation. Trace compilation is well suited for interpreter-based execution environments because the control flow of an application program is highly visible and recordable. In this paper, we show that trace compilation is also feasible and beneficial in runtime environments without interpreters where it is more difficult to monitor the control flow of an application. We present the implementation of Maxpath, a trace-based Java just-in-time compiler for the meta-circular Maxine virtual machine. Maxine uses a tiered compilation strategy where methods are first compiled with a non-optimizing just-in-time compiler in order to collect profiling information, and then recompiled with an optimizing compiler for long-term efficient execution. We record traces by dynamically inserting instrumentation code in non-optimized methods. Execution traces are first collected into trace regions, after which they are compiled, optimized and linked to non-optimized methods for efficient execution. We show that trace-based compilation is an effective way to focus scarce compilation resources on performance critical application regions.
更多
查看译文
关键词
non-optimized method,control flow,trace-based compilation,trace compilation,interpreter-based execution environment,compilation time,tiered compilation strategy,scarce compilation resource,efficient execution,execution trace,java,ssa form,virtual machine,compiler optimization,just in time compilation,optimization,optimizing compiler,just in time compiler
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要