The just-in-time compilers have been widely adopted in J2SE and J2ME virtual machines. However, it is a big challenge for a JIT compiler to generate high-quality native code under the tight time and memory constraints on embedded systems. This paper presents the framework and key optimizations of a JIT compiler we designed for Intelpsilas J2ME virtual machine, namely XORP, for XScaletrade architecture. We describe the bytecode-based optimizations, e.g. bytecode inlining, Array Bounds Check Elimination, Null Pointer Check Elimination, etc., and some key optimizations aimed at XScaletrade architecture, e.g. instruction scheduling, etc., in the XORP JIT. XORP is more than 15 times faster than the reference implementation of J2ME CLDC, KVM, for EEMBC, with a 350KB executable file, including interpreter, JIT compiler, GC and all other JVM components. Comparing with other high-performance J2ME JVMs, like JeodeK and CLDC-HI, XORP is also at least 69% faster than them.
['Xiaohua Shi', 'Maozhong Jin', 'Bu Qi Cheng', 'Peng Guo']
Design a High-Performance Just-In-Time Compiler for a J2ME JVM on XScale