Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/949305.949322acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

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

Published: 26 October 2003 Publication History

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.

References

[1]
K. Arnold and J. Gosling. Java Programming Language, Addison-Wesley, 1996.]]
[2]
T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A Dynamic Optimization Framework for a Java Just-In-Time Compiler, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 180--194, 2001.]]
[3]
M. Paleczny, C. Vick, and C. Click. The Java HotSpot Server Compiler, In USENIX 1st Java Virtual Machine Research and Technology Symposium (JVM'01), pp. 1--12, 2001.]]
[4]
T. Suganuma, T. Ogasawara, M. Takeuchi, T. Yasue, M. Kawahito, K. Ishizaki, H. Komatsu, and T. Nakatani. Overview of the IBM Java Just-in-Time Compiler, IBM Systems Journal, Vol. 39, No. 1, pp. 175--193, 2000.]]
[5]
M. Kawahito, H. Komatsu, and T. Nakatani. Effective Null Pointer Check Elimination Utilizing Hardware Trap, In the Proceedings of the International Conference on Architectural Support for Programming Language and Operating Systems, pp. 139--149, 2000.]]
[6]
K. Ishizaki, M. Kawahito, T. Yasue, H. Komatsu, and T. Nakatani. A Study of Devirtualization Techniques for a Java Just-In-Time Compiler, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, 2000.]]
[7]
The Standard Performance Evaluation Corp., SPECjvm98 Benchmarks, available at http://www.spec.org/osg/jvm98/.]]
[8]
The Standard Performance Evaluation Corp., SPECjbb2000 Benchmarks, available at http://www.spec.org/osg/jbb2000/.]]
[9]
T. Onodera and K. Kawachiya. A Study of Locking Objects with Bimodal Fields, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 223--237, 1999.]]
[10]
D. F. Bacon, R. Konuru. C. Murthy, and M. Serrano. Thin Locks: Featherweight Synchronization for Java, In the Proceedings of ACM SIGPLAN '98 Conference on Programming Languages Design and Implementation, pp. 258--268, 1998.]]
[11]
R. Jones and R. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. John Wiley & Sons, 1996.]]
[12]
Y. Ossia, O. Ben-Yitzhak, I. Goft, E. K. Kolodner, V. Leikehman, and A. Owshanko. A Parallel, Incremental and Concurrent GC for Servers, In the Proceedings of SIGPLAN 2002 Conference on Programming Languages Design and Implementation, pp. 129--140, 2002.]]
[13]
S. A. Mahlke, W. Y. Chen, R. A. Bringmann, R. E. Hank, W. W. Hwu, B. R. Rau, and M. S. Schlansker. Sentinel scheduling: A model for compiler-controlled speculative execution. ACM Transactions on Computer Systems, Vol. 11, No. 4, pp. 376--408, 1993.]]
[14]
C. Chambers, I. Pechtchanski, V. Sarkar, M. J. Serrano, and H. Srinivasan. Dependence analysis for Java, In 12th International Workshop on Languages and Compilers for Parallel Computing (LCPC'99), Volume 1863 of LNCS, Springer-Verlag, pp. 32--52, 1999.]]
[15]
J.-D. Choi, D. Grove, M. Hind, V. Sarkar. Efficient and Precise Modeling of Exceptions for the Analysis of Java Programs, In ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering (PASTE'99), pp. 21--31, 1999.]]
[16]
J. Palsberg and M. I. Schwartzbach, Object-Oriented Type Inference, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 146--161, 1991.]]
[17]
E. M. Gagnon, L. J. Hendren, and G. Marceau. Efficient Inference of Static Types for Java Bytecode, In Static Analysis 7th international Symposium (SAS'00), Volume 1824 of LNCS, Springer-Verlag, pp. 199--219, 2000.]]
[18]
T. Suganuma, T. Yasue, and T. Nakatani. An Empirical Study of Method Inlining for a Java Just-In-Time Compiler, In USENIX 2nd Java Virtual Machine Research and Technology Symposium, pp. 91--104, 2002.]]
[19]
J. Dean, D. Grove, and C. Chambers. Optimization of object-oriented programs using static class hierarchy, In the proceedings of the 9th European Conference on Object-Oriented Programming - ECOOP, Volume 952 of LNCS, Springer-Verlag, pp. 77--101, 1995.]]
[20]
D. Detlefs and O. Agesen. Inlining of Virtual Methods, In the proceedings of the 13th European Conference on Object-Oriented Programming - ECOOP, Volume 1628 of LNCS, Springer-Verlag, pp. 258--278, 1999.]]
[21]
R. Gupta. Optimizing array bound checks using flow analysis, ACM Letters on Programming Languages and Systems, Vol. 2, No. 1-4, pp. 135-150, 1993.]]
[22]
M. Kawahito, H. Komatsu, and T. Nakatani. Eliminating Exception Checks and Partial Redundancies for Java Just-in-Time Compilers. IBM Research Report RT0350, 2000.]]
[23]
A. Aho, V. Jeffrey, and D. Ullman, Principles of Compiler Design. Addison-Wesley, 1977.]]
[24]
C. Chambers and D. Ungar. Making pure object-oriented languages practical, In the Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 1--15, 1991.]]
[25]
M. Arnold, B. G. Ryder. Thin Guards: A Simple and Effective Technique for Reducing the Penalty of Dynamic Class Loading, In the Proceedings of the 16th European Conference on Object-Oriented Programming - ECOOP, Volume 2374 of LNCS, Springer-Verlag, pp. 498--524, 2002.]]
[26]
J. Whaley and M. Rinard. Compositional Pointer and Escape Analysis for Java Programs, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp. 187--206, 1999.]]
[27]
J. Knoop, O. Ruthing, and B. Steffen. Optimal code motion, ACM Transactions on Programming Languages and Systems, Vol. 17, No. 5, pp. 777-802, 1995.]]
[28]
K. Ishizaki, M. Kawahito, T. Yasue, M. Takeuchi, T. Ogasawara, T. Suganuma, T. Onodera, H. Komatsu, T. Nakatani. Design, Implementation, and Evaluation of Optimizations in a Java(tm) Just-In-Time Compiler, Concurrency: Practice and Experience, Vol. 12, No. 6, pp. 457--475, 2000.]]
[29]
B. Alpern, A. Cocchi, and D. Grove. Dynamic type checking in Jalapeno, In USENIX 1st Java Virtual Machine Research and Technology Symposium (JVM'01), pp. 41--52, 2001.]]
[30]
T. Ogasawara, H. Komatsu, and T. Nakatani. A Study of Exception Handling and Its Dynamic Optimization in Java, In the Proceedings of ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications, pp. 83--95, 2001.]]
[31]
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, ACM Transactions on Programming Languages and Systems, Vol. 13, No. 4, pp. 451--490, 1991.]]
[32]
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently Computing Static Single Assignment Form and the Control Dependence Graph, ACM Transactions on Programming Languages and Systems, Vol. 13, No. 4, pp. 451--490, 1991.]]
[33]
V. C. Sreedhar, R. D. Ju, D. M. Gillies, and V. Santhanam. Translating Out of Static Single Assignment Form, In Static Analysis 6th international Symposium (SAS'99), Volume 1694 of LNCS, pp. 194--210, 1999.]]
[34]
J. R. Allen and K. Kennedy and C. Porterfield and J. Warren. Conversion of control dependence to data dependence, In Conference Record of the 10th Annual ACM Symposium on Principles of Programming Languages, pp. 177--189, 1983.]]
[35]
S. A. Mahlke, D. C. Lin, W. Y. Chen, R. E. Hank, R. A. Bringmann. Effective Compiler Support for Predicated Execution Using the Hyperblock, In the proceedings of the 25th International Symposium on Microarchitecture, pp. 45--54, 1992.]]
[36]
J. Gosling, B. Joy, and G. Steele. The Java Programming Language Specification, Addison-Wesley, 1996.]]
[37]
M. Kawahito, H. Komatsu, and T. Nakatani. Effective Sign Extension Elimination, In the Proceedings of SIGPLAN 2002 Conference on Programming Language Design and Implementation, pp. 187--198, 2002.]]
[38]
M. Poletto and V. Sarkar. Linear scan register allocation, ACM Transactions on Programming Languages and Systems, Vol. 21, No. 5, pp. 895--913, 1999.]]
[39]
G. J. Chaitin. Register allocation and spilling via graph coloring, In the proceedings of the ACM SIGPLAN Symposium on Compiler Construction, SIGPLAN Notices, Vol. 17, No. 6, pp. 257--265, 1982.]]
[40]
D. Stefanovic, M. Hertz, S. M. Blackburn, K. S. McKinley and J. E. B. Moss. Older-first Garbage Collection in Practice: Evaluation in a Java Virtual Machine, ACM SIGPLAN Workshop on Memory System Performance, pp. 25--36, 2002.]]
[41]
B. Alpern, C. R. Attanasio, J. J. Barton, M. G. Burke, P Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. F. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. C. Shepherd, S. E. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. Implementing Jalapeno in Java, IBM System Journal, Vol 39, No 1, pp. 211--238, 2000.]]
[42]
M. Cierniak, B. T. Lewis, and J. M. Stichnoth. Open Runtime Platform: Flexibility with Performance using Interfaces, In the Proceedings of the Joint ACM Java Grande - ISCOPE 2002 Conference, pp. 156--164, 2002.]]
[43]
E. Pelegri-Llopart and S. L. Graham. Optimal code generation for expression trees: an application of the BURS theory, In the Proceedings of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, pp. 294--308, 1988.]]
[44]
M. Arnold, M. Hind, and B. G. Ryder. Online Instrumentation and Feedback-Directed Optimization of Java, In the Proceedings of the Conference on Object-Oriented Programming, Systems, Languages and Applications, pp. 111--129, 2002.]]
[45]
A.-R. A.-Tabatabai, M. Cierniak, G.-Y. Lueh, V. M. Parakh, and J. M. Stichnoth. Fast, Effective Code Generation in a Just-In-Time Java Compiler, In the Proceedings of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 280--290, 1998.]]
[46]
M. Cierniak, G.-Y. Lueh, and J. M. Stichnoth. Practicing JUDO: Java Under Dynamic Optimizations, In the Proceedings of SIGPLAN 2000 Conference on Programming Language Design and Implementation, pp. 13--26, 2000.]]

Cited By

View all
  • (2016)Don't get caught in the cold, warm-up your JVMProceedings of the 12th USENIX conference on Operating Systems Design and Implementation10.5555/3026877.3026907(383-400)Online publication date: 2-Nov-2016
  • (2013)Performance potential of optimization phase selection during dynamic JIT compilationACM SIGPLAN Notices10.1145/2517326.245153948:7(131-142)Online publication date: 16-Mar-2013
  • (2013)Performance potential of optimization phase selection during dynamic JIT compilationProceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/2451512.2451539(131-142)Online publication date: 16-Mar-2013
  • Show More Cited By

Index Terms

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

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
    October 2003
    430 pages
    ISBN:1581137125
    DOI:10.1145/949305
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 11
      Special Issue: Proceedings of the OOPSLA '03 conference
      November 2003
      417 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/949343
      Issue’s Table of Contents
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 October 2003

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java
    2. just-in-time compiler
    3. optimization

    Qualifiers

    • Article

    Conference

    OOPSLA03
    Sponsor:

    Acceptance Rates

    OOPSLA '03 Paper Acceptance Rate 26 of 147 submissions, 18%;
    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)19
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 20 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2016)Don't get caught in the cold, warm-up your JVMProceedings of the 12th USENIX conference on Operating Systems Design and Implementation10.5555/3026877.3026907(383-400)Online publication date: 2-Nov-2016
    • (2013)Performance potential of optimization phase selection during dynamic JIT compilationACM SIGPLAN Notices10.1145/2517326.245153948:7(131-142)Online publication date: 16-Mar-2013
    • (2013)Performance potential of optimization phase selection during dynamic JIT compilationProceedings of the 9th ACM SIGPLAN/SIGOPS international conference on Virtual execution environments10.1145/2451512.2451539(131-142)Online publication date: 16-Mar-2013
    • (2010)Exploitation of multicore systems in a java virtual machineIBM Journal of Research and Development10.1147/JRD.2010.205791154:5(445-455)Online publication date: 1-Sep-2010
    • (2010)Automated just-in-time compiler tuningProceedings of the 8th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1772954.1772965(62-72)Online publication date: 24-Apr-2010
    • (2009)Comparison and evaluation of back-translation algorithms for static single assignment formsComputer Languages, Systems and Structures10.1016/j.cl.2007.03.00135:2(173-195)Online publication date: 1-Jul-2009
    • (2008)Design of the Java HotSpot™ client compiler for Java 6ACM Transactions on Architecture and Code Optimization10.1145/1369396.13700175:1(1-32)Online publication date: 29-May-2008
    • (2008)ColeProceedings of the 6th annual IEEE/ACM international symposium on Code generation and optimization10.1145/1356058.1356080(165-174)Online publication date: 6-Apr-2008
    • (2007)Adaptive inlining and on-stack replacement in the CACAO virtual machineProceedings of the 5th international symposium on Principles and practice of programming in Java10.1145/1294325.1294356(221-226)Online publication date: 5-Sep-2007
    • (2007)Redundant boxing elimination by a dynamic compiler for JavaProceedings of the 5th international symposium on Principles and practice of programming in Java10.1145/1294325.1294355(215-220)Online publication date: 5-Sep-2007
    • Show More Cited By

    View Options

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media