2003 · 41 citations · 10 references
ComputingComputer ScienceComputer SystemsCompilersOperating SystemsVirtualizationCode GenerationSpeculative ExecutionCompile-time OptimizationDynamic CompilationDynamic RecompilationOn-stack ReplacementProfile-guided Optimization
Modern virtual machines often maintain multiple compiled versions of a method. An on-stack replacement (OSR) mechanism enables a virtual machine to transfer execution between compiled versions, even while a method runs. Relying on this mechanism, the system can exploit powerful techniques to reduce compile time and code space, dynamically de-optimize code, and invalidate speculative optimizations. The paper presents a new, simple, mostly compiler-independent mechanism to transfer execution into compiled code. Additionally, we present enhancements to an analytic model for recompilation to exploit OSR for more aggressive optimization. We have implemented these techniques in Jikes RVM and present a comprehensive evaluation, including a study of fully automatic, online, profile-driven deferred compilation.
10
The java hotspot TM server compiler
Michael Paleczny, Christopher A. Vick, Cliff Click · 2001 · 266 citations
Adaptive optimization in the Jalapeño JVM
Matthew Arnold, Stephen J. Fink, David Grove et al. · 2000 · 258 citations
Overview of the IBM Java Just-in-Time Compiler
Toshio Suganuma, Takeshi Ogasawara, M. Takeuchi et al. · IBM Systems Journal · 2000 · 236 citations
Making pure object-oriented languages practical
Craig Chambers, David Ungar · 1991 · 165 citations