Lab for High Performance Computing SERC, Indian Institute of Science
Home | People | Research | Awards/Honours | Publications | Lab Resources | Gallery | Contact Info | Sponsored Research
Tech. Reports | Conferences / Journals | Theses / Project Reports

Dynamic Path Profile Aided Recompilation in a JAVA Just-In-Time Compiler

Proceedings of the High Performance Computing (HiPC-02)
Bangalore, India, December 2002


  1. R. Vinodh Kumar, Cisco Systems, Bangalore; Department of Computer Science and Automation
  2. B. Lakshmi Narayanan, School of Computer Science and Engineering, College of Engineering-Guindy, Anna University, Chennai
  3. R. Govindarajan, Supercomputer Education and Research Centre; Department of Computer Science and Automation


Just-in-Time (JIT) compilers for Java can be augmented by making use of runtime profile information to produce better quality code and hence achieve higher performance. In a JIT compilation environment, the profile information obtained can be readily exploited in the same run to aid recompilation and optimization of frequently executed (hot) methods. This paper discusses a low over-head path profiling scheme for dynamically profiling JIT produced native code. The profile information is used in recompilation during a subsequent invocation of the hot method. During recompilation tree regions along the hot paths are enlarged and instruction scheduling at the superblock level is performed. We have used the open source LaTTe JIT compiler framework for our implementation. Our results on a SPARC platform for SPEC JVM98 benchmarks indicate that (i) there is a significant reduction in the number of tree regions along the hot paths, and (ii) profile aided recompilation in LaTTe achieves performance comparable to that of adaptive LaTTe in spite of retranslation and profiling overheads.


Full Text