𝔖 Bobbio Scriptorium
✦   LIBER   ✦

CACAO — A 64-bit JavaVM just-in-time compiler

✍ Scribed by Krall, Andreas; Grafl, Reinhard


Publisher
John Wiley and Sons
Year
1997
Tongue
English
Weight
98 KB
Volume
9
Category
Article
ISSN
1040-3108

No coin nor oath required. For personal study only.

✦ Synopsis


This paper describes the design and implementation of CACAO, a just-in-time compiler for Java. The CACAO system translates Java byte code on demand into native code for the AL-PHA processor. During this translation process the stack-oriented Java byte code is transformed into a register-oriented intermediate code. Local variables and stack locations are replaced by pseudo-registers eliminating the 32-bit restriction on address types. A fast register allocation algorithm is applied to map the pseudo-registers to machine registers. During code generation, field offsets are computed for proper alignment on 64-bit architectures. Even though the CACAO system has to incur loading and compilation time, it executes Java programs up to 85 times faster than the JDK interpreter, and up to seven times faster than the kaffe JIT compiler. It is slightly slower than equivalent C programs compiled at the highest optimization level.