LaTTe: A Java VM Just-in-Time Compiler with Fast and Efficient Register Allocation

  • Authors:
  • Byung-Sun Yang;Soo-Mook Moon;Seongbae Park;Junpyo Lee;SeungIl Lee;Jinpyo Park;Yoo C. Chung;Suhyun Kim;Kemal Ebcioglu;Erik Altman

  • Affiliations:
  • -;-;-;-;-;-;-;-;-;-

  • Venue:
  • PACT '99 Proceedings of the 1999 International Conference on Parallel Architectures and Compilation Techniques
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

For network computing on desktop machines, fast execution of Java bytecode programs is essential because these machines are expected to run substantial application programs written in Java. Higher Java performance can be achieved by Just-in-Time (JIT) compilers which translate the stack-based bytecode into register-based machine code on demand. One crucial problem in Java JIT compilation is how to map and allocate stack entries and local variables into registers efficiently and quickly, so as to improve the Java performance.This paper introduces LaTTe, a Java JIT compiler that performs fast and efficient register mapping and allocation for RISC machines. LaTTe first translates the bytecode into pseudo RISC code with symbolic registers, which is then register allocated while coalescing those copies corresponding to pushes and pops between local variables and the stack. The LaTTe JVM also includes an enhanced object model, a lightweight monitor, a fast mark-and-sweep garbage collector, and an on-demand exception handling mechanism, all of which are closely coordinated with LaTTe's JIT compilation.Our experimental results on the SPARC platform with SPECJVM98 benchmarks and 15 non-trivial Java programs indicate that the current LaTTe JVMs achieve performance better than or comparable to the latest SUN JIT compilers (JDK 1.1.6 and HotSpot). It is also shown that LaTTe makes a reasonable trade-off between quality and speed of register allocation (i.e., the translation overhead consistently takes 1-2 seconds for SPECJVM98 which runs 40-80 seconds on LaTTe).