Effectiveness of cross-platform optimizations for a java just-in-time compiler

  • Authors:
  • Kazuaki Ishizaki;Mikio Takeuchi;Kiyokuni Kawachiya;Toshio Suganuma;Osamu Gohda;Tatsushi Inagaki;Akira Koseki;Kazunori Ogata;Motohiro Kawahito;Toshiaki Yasue;Takeshi Ogasawara;Tamiya Onodera;Hideaki Komatsu;Toshio Nakatani

  • Affiliations:
  • IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan;IBM Research, Kanagawa, Japan

  • Venue:
  • OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes the system overview of our Java Just-In-Time (JIT) compiler, which is the basis for the latest production version of IBM Java JIT compiler that supports a diversity of processor architectures including both 32-bit and 64-bit modes, CISC, RISC, and VLIW architectures. In particular, we focus on the design and evaluation of the cross-platform optimizations that are common across different architectures. We studied the effectiveness of each optimization by selectively disabling it in our JIT compiler on three different platforms: IA-32, IA-64, and PowerPC. Our detailed measurements allowed us to rank the optimizations in terms of the greatest performance improvements with the smallest compilation times. The identified set includes method inlining only for tiny methods, exception check eliminations using forward dataflow analysis and partial redundancy elimination, scalar replacement for instance and class fields using dataflow analysis, optimizations for type inclusion checks, and the elimination of merge points in the control flow graphs. These optimizations can achieve 90% of the peak performance for two industry-standard benchmark programs on these platforms with only 34% of the compilation time compared to the case for using all of the optimizations.