Abstract
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.
This work was done when the first author was a graduate student at the Department of Computer Science and Automation, Indian Institute of Science, Bangalore. It was extended when the second author was a Summer Research Fellow of Jawaharlal Nehru Centre for Advanced Scientiifc Research, Bangalore, at the Supercomputer Education and Research Centre, Indian Institute of Science, Bangalore. The last author acknowledges the research funding received from the Department of Science and Technology, India, which partly supported this work.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
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. 496
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. 496
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. 504
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. 503
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, 498
T. Ball and J.R. Larus. Eficient path profiling. In Proc. of 29th Symp. on Microarchitecture, Dec. 1996. 496
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, 504
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, 504
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, 504
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, 500
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, 503
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. 503
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.
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. 497
S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers Inc., 1997. 501
The SPARC Architecture Manual Version 8. 497
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. 499
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, 501
F. Yellin and T. Lindholm, The Java Virtual Machine Specification, Addison-Wesley, 1996. Hall, 1999. 495
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vinodh Kumar, R., Lakshmi Narayanan, B., Govindarajan, R. (2002). Dynamic Path Profile Aided Recompilation in a JAVA Just-In-Time Compiler. In: Sahni, S., Prasanna, V.K., Shukla, U. (eds) High Performance Computing — HiPC 2002. HiPC 2002. Lecture Notes in Computer Science, vol 2552. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-36265-7_47
Download citation
DOI: https://doi.org/10.1007/3-540-36265-7_47
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-00303-8
Online ISBN: 978-3-540-36265-4
eBook Packages: Springer Book Archive