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

  • R. Vinodh Kumar
  • B. Lakshmi Narayanan
  • R. Govindarajan
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2552)


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 overhead 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.


Basic Block Store Node Java Virtual Machine Region Expansion Register Allocation 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    A.-R. Adl-Tabatabai, M. Cierniak, G-Y. Lueh, V.M. Parikh, and J.M. Stichnoth. Fast effective code generation in a Just-In-Time Java compiler. In Proc. of the ACM SIGPLAN’ 98 Conf. on Programming Language Design and Implementation, June 1998. 496Google Scholar
  2. [2]
    M. Arnold, S. J. Fink, D. Grove, M. Hind, P. F. Sweeney. Adaptive optimization in the Jalapeno JVM. In Proc. of the ACM SIGPLAN Conf. on Object Oriented Programming, Systems, Languages and Applications (OOPSLA’00), Oct. 2000. 496Google Scholar
  3. [3]
    M. Arnold, M. Hind and B.G. Ryder. An empirical study of selective optimization. In Proc. of the 13th Intl. Workshop on Languages and Compilers for Parallel Computing, 2000. 504Google Scholar
  4. [4]
    V. Bala, E. Duesterwald, S. Banerjia. Dynamo: A transparent dynamic optimization system. In Proc. of the SIGPLAN’ 98 Conf. on Programming Language Design and Implementation, 2000. 503Google Scholar
  5. [5]
    T. Ball and J.R. Larus. Optimally profiling and tracing programs. In Proc. of the 19th Symp. on Principles of Programming Languages, Jan. 1992. 496, 498Google Scholar
  6. [6]
    T. Ball and J.R. Larus. Eficient path profiling. In Proc. of 29th Symp. on Microarchitecture, Dec. 1996. 496Google Scholar
  7. [7]
    T. Ball, P. Mataga and M. Sagiv. Edge profiling versus path profiling: The showdown. In Proc. of the 25th ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, Jan. 1998. 496, 504Google Scholar
  8. [8]
    R.G. Burger and R. K. Dybvig. An infrastructure for profile-driven dynamic recompilation. In Proc. of Intl. Conf. on Computer Languages (ICCL’98), May 1998. 503, 504Google Scholar
  9. [9]
    M.G. Burke, D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. J. Serrano, V.C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno dynamic optimizing compiler for Java. In Proc. of 1999 ACM Java Grande Conference, June 1999. 503, 504Google Scholar
  10. [10]
    W.Y. Chen, S.A. Mahlke, N. J. Warter, S. Anik, W. W. Hwu. Profile-assisted instruction scheduling. International Journal of Parallel Programming, 1994. 496, 500Google Scholar
  11. [11]
    E. Duesterwald and V. Bala. Software profiling for hot path prediction: Less is more. In Proc. of the 9th Intl. Conf. on Architecture Support for Programming Languages and Operating Systems, 2000. 496, 503Google Scholar
  12. [12]
    B. Grant, M. Mock, M. Philipose, C. Chambers and S. J. Eggers. DyC: An expressive annotation-directed dynamic compiler for C. Technical Report UW-CSE-97-03-03, Dept. of Computer Science and Engineering, University of Washington, Seattle, WA, 1997. 503Google Scholar
  13. [13]
    W. W. Hwu, S. A. Mahlke, W.Y. Chen, P.P. Chang, N. J. Warter, R.A. Bringmann, R. G. Ouellette, R.E. Hank, T. Kiyohara, G.E. Haab, J.G. Holm, and D.M. Lavery. The Superblock: An effective structure for VLIW and superscalar compilation. Journal of Supercomputing, Feb. 1993.Google Scholar
  14. [15]
    J. Lee, B-S. Yang, S. Kim, S. Lee, Y. C. Chung, H. Lee, J.H. Lee, S-M. Moon, K. Ebicioglu, E. Altman. Reducing virtual call overheads in a Java VM Just-in-Time compiler. In Proc. of 1999 Workshop on Interaction between Compilers and Computer Architectures, Jan. 2000. 497Google Scholar
  15. [16]
    S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., 1997. 501Google Scholar
  16. [17]
    The SPARC Architecture Manual Version 8. 497Google Scholar
  17. [18]
    R. Vinodh Kumar. Dynamic path profile aided recompilation in a Java Just-In-Time compiler M.E. Dissertation Project, Indian Institute of Science, Dept. of Computer Science & Automation, Bangalore, 560 012, India, Jan. 2000. 499Google Scholar
  18. [19]
    B-S. Yang, S-M. Moon, S. Park, J. Lee, S. Lee, J. Park, Y.C. Chung, S. Kim, K. Ebcioglu, and E. Altman. LaTTe: A Java VM Just-In-Time compiler with fast and efficient register allocation. In Proceedings of the 1999 Intl. Conf. on Parallel Architectures and Compilation Techniques, Oct. 1999. 496, 497, 501Google Scholar
  19. [20]
    F. Yellin and T. Lindholm, The Java Virtual Machine Specification, Addison-Wesley, 1996. Hall, 1999. 495Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • R. Vinodh Kumar
    • 1
  • B. Lakshmi Narayanan
    • 2
  • R. Govindarajan
    • 3
  1. 1.Cisco SystemsBangaloreIndia
  2. 2.School of Computer Science and EngineeringCollege of Engineering-Guindy Anna UniversityChennaiIndia
  3. 3.Department of Computer Science and Automation and Supercomputer Education and Research CentreIndian Institute of ScienceBangaloreIndia

Personalised recommendations