Understanding the behavior of compiler optimizations

Compiler optimizations are difficult to implement and add complexity to a compiler. For this reason, compiler writers are selective about implementing them: they implement only the ones that they believe will be beneficial. To support compiler writers in this, we describe a method for measuring the cost and benefits of compiler optimizations, both individually and in synergy with other optimizations. We demonstrate our method by presenting results for the optimizations implemented in the Jikes Research Virtual Machine on the PowerPC and IA32 platforms. Copyright © 2006 John Wiley & Sons, Ltd.

[1]  Samuel P. Midkiff,et al.  Quicksilver: a quasi-static compiler for Java , 2000, OOPSLA '00.

[2]  Toshiaki Yasue,et al.  A dynamic optimization framework for a Java just-in-time compiler , 2001, OOPSLA '01.

[3]  Kathryn S. McKinley,et al.  Beltway: getting around garbage collection gridlock , 2002, PLDI '02.

[4]  John Whaley Partial method compilation using dynamic profile information , 2001, OOPSLA '01.

[5]  Brian N. Bershad,et al.  Fast, effective dynamic compilation , 1996, PLDI '96.

[6]  Jong-Deok Choi,et al.  The Jalape�o Dynamic Optimizing Compiler for JavaTM , 1999, JAVA '99.

[7]  James M. Stichnoth,et al.  Practicing JUDO: Java under dynamic optimizations , 2000, PLDI '00.

[8]  Vivek Sarkar,et al.  Unified Analysis of Array and Object References in Strongly Typed Languages , 2000, SAS.

[9]  Craig Chambers,et al.  Staged compilation , 2002, PEPM '02.

[10]  David Detlefs,et al.  Inlining of Virtual Methods , 1999, ECOOP.

[11]  Toshiaki Yasue,et al.  Effectiveness of cross-platform optimizations for a java just-in-time compiler , 2003, OOPSLA 2003.

[12]  Amer Diwan,et al.  Using types to analyze and optimize object-oriented programs , 2001, TOPL.

[13]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[14]  Markus Mock,et al.  The benefits and costs of DyC's run-time optimizations , 2000, TOPL.

[15]  Toshiaki Yasue,et al.  Design, implementation, and evaluation of optimizations in a just-in-time compiler , 1999, JAVA '99.

[16]  Narayanan Vijaykrishnan,et al.  Architectural issues in Java runtime systems , 2000, Proceedings Sixth International Symposium on High-Performance Computer Architecture. HPCA-6 (Cat. No.PR00550).

[17]  Matthew Arnold,et al.  Online feedback-directed optimization of Java , 2002, OOPSLA '02.

[18]  Vivek Sarkar,et al.  Linear scan register allocation , 1999, TOPL.

[19]  Urs Hölzle,et al.  Reconciling responsiveness with performance in pure object-oriented languages , 1996, TOPL.

[20]  Markus Mock,et al.  A retrospective on: "an evaluation of staged run-time optimizations in DyC" , 2004, SIGP.

[21]  Mark N. Wegman,et al.  Efficiently computing static single assignment form and the control dependence graph , 1991, TOPL.

[22]  Michael Voss,et al.  High-level adaptive program optimization with ADAPT , 2001, PPoPP '01.

[23]  Ron Cytron,et al.  Does “just in time” = “better late than never”? , 1997, POPL '97.