[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.5555/776261.776288acmconferencesArticle/Chapter ViewAbstractPublication PagescgoConference Proceedingsconference-collections
Article

Design, implementation and evaluation of adaptive recompilation with on-stack replacement

Published: 23 March 2003 Publication History

Abstract

Modern virtual machines often maintain multiple compiled versions of a method. An on-stack replacement (OSR) mechanism enables a virtual machine to transfer execution between compiled versions, even while a method runs. Relying on this mechanism, the system can exploit powerful techniques to reduce compile time and code space, dynamically de-optimize code, and invalidate speculative optimizations.This paper presents a new, simple, mostly compiler-independent mechanism to transfer execution into compiled code. Additionally, we present enhancements to an analytic model for recompilation to exploit OSR for more aggressive optimization. We have implemented these techniques in Jikes RVM and present a comprehensive evaluation, including a study of fully automatic, online, profile-driven deferred compilation.

References

[1]
M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeño JVM: The controller's analytical model. In 3rd ACM Workshop on Feedback-Directed and Dynamic Optimization (FDDO-3), Dec. 2000.]]
[2]
M. Arnold, D. Grove, S. Fink, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeño JVM. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA 2000), Minneapolis, MN, Oct. 2000. Also published as ACM SIGPLAN Notices, volume 35, number 10.]]
[3]
D. Bruening and E. Duesterwald. Exploring Optimal Compilation Unit Shapes for an Embedded Just-In-Time Compiler. In Proceedings of the 2000 ACM Workshop on Feedback-Directed and Dynamic Optimization FDDO-3, Dec 2000.]]
[4]
C. Chambers. The Design and Implementation of the Self Compiler, an Optimizing Compiler for Object-Oriented Programming Languages. PhD thesis, Stanford University, Mar. 1992. Published as technical report STAN-CS-92-1420.]]
[5]
C. Chambers and D. Ungar. Making pure object-oriented languages practical. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 1--15, Nov. 1991.]]
[6]
R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. An efficient method for computing static single assignment form and the control dependence graph. ACM Transactions on Programming Languages and Systems, 13(4):451--490, 1991.]]
[7]
D. Detlefs and O. Agesen. Inlining of virtual methods. In 13th European Conference on Object-Oriented Programming, June 1999.]]
[8]
S. Fink, K. Knobe, and V. Sarkar. Unified analysis of array and object references in strongly typed languages. In Seventh International Static Analysis Symposium (2000), June 2000.]]
[9]
U. Hölzle, C. Chambers, and D. Ungar. Debugging optimized code with dynamic deoptimization. ACM SIGPLAN Notices, 27(7):32--43, July 1992.]]
[10]
U. Holzle and D. Ungar. A third generation self implementation: Reconciling responsiveness with performance. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 229--243, 1994.]]
[11]
T. Lindholm and F. Yellin. The Java Virtual Machine Specification Second Edition. The Java Series. Addison-Wesley, 1999.]]
[12]
M. Paleczny, C. Vick, and C. Click. The Java Hotspot(tm) Server Compiler. In USENIX Java Virtual Machine Research and Technology Symposium, pages 1--12, Apr 2001.]]
[13]
T. Suganama, 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, 39(1), 2000.]]
[14]
T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a Java just-in-time compiler. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 180--195, Oct. 2001.]]
[15]
The Standard Performance Evaluation Corporation. SPEC JVM98 Benchmarks. http://www.spec.org/osg/jvm98/, 1998.]]
[16]
J. Whaley. Partial method compilation using dynamic profile information. In ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, Oct 2001.]]

Cited By

View all
  • (2023)Exploiting Partially Context-sensitive Profiles to Improve Performance of Hot CodeACM Transactions on Programming Languages and Systems10.1145/361293745:4(1-64)Online publication date: 1-Dec-2023
  • (2021)ScabbardProceedings of the VLDB Endowment10.14778/3489496.348951515:2(361-374)Online publication date: 1-Oct-2021
  • (2021)Lightweight on-stack replacement in languages with unstructured loopsProceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3486606.3486782(4-13)Online publication date: 19-Oct-2021
  • Show More Cited By

Index Terms

  1. Design, implementation and evaluation of adaptive recompilation with on-stack replacement

      Recommendations

      Comments

      Please enable JavaScript to view thecomments powered by Disqus.

      Information & Contributors

      Information

      Published In

      cover image ACM Conferences
      CGO '03: Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
      March 2003
      349 pages
      ISBN:076951913X

      Sponsors

      Publisher

      IEEE Computer Society

      United States

      Publication History

      Published: 23 March 2003

      Check for updates

      Qualifiers

      • Article

      Conference

      CGO03
      Sponsor:

      Acceptance Rates

      Overall Acceptance Rate 312 of 1,061 submissions, 29%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)5
      • Downloads (Last 6 weeks)3
      Reflects downloads up to 11 Dec 2024

      Other Metrics

      Citations

      Cited By

      View all
      • (2023)Exploiting Partially Context-sensitive Profiles to Improve Performance of Hot CodeACM Transactions on Programming Languages and Systems10.1145/361293745:4(1-64)Online publication date: 1-Dec-2023
      • (2021)ScabbardProceedings of the VLDB Endowment10.14778/3489496.348951515:2(361-374)Online publication date: 1-Oct-2021
      • (2021)Lightweight on-stack replacement in languages with unstructured loopsProceedings of the 13th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages10.1145/3486606.3486782(4-13)Online publication date: 19-Oct-2021
      • (2018)On-stack replacement, distilledACM SIGPLAN Notices10.1145/3296979.319239653:4(166-180)Online publication date: 11-Jun-2018
      • (2018)Hop, Skip, & JumpACM SIGPLAN Notices10.1145/3296975.318641253:3(1-16)Online publication date: 25-Mar-2018
      • (2018)On-stack replacement, distilledProceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3192366.3192396(166-180)Online publication date: 11-Jun-2018
      • (2018)Hop, Skip, & JumpProceedings of the 14th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3186411.3186412(1-16)Online publication date: 25-Mar-2018
      • (2017)Integrating Profile Caching into the HotSpot Multi-Tier Compilation SystemProceedings of the 14th International Conference on Managed Languages and Runtimes10.1145/3132190.3132210(105-118)Online publication date: 27-Sep-2017
      • (2017)SistaProceedings of the 14th International Conference on Managed Languages and Runtimes10.1145/3132190.3132201(1-11)Online publication date: 27-Sep-2017
      • (2017)One compiler: deoptimization to optimized codeProceedings of the 26th International Conference on Compiler Construction10.1145/3033019.3033025(55-64)Online publication date: 5-Feb-2017
      • 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