skip to main content
10.1145/2823363.2823369acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper

A formal foundation for trace-based JIT compilers

Published: 26 October 2015 Publication History

Abstract

Trace-based JIT compilers identify frequently executed program paths at run-time and subsequently record, compile and optimize their execution. In order to improve the performance of the generated machine instructions, JIT compilers heavily rely on dynamic analysis of the code. Existing work treats the components of a JIT compiler as a monolithic whole, tied to particular execution semantics. We propose a formal framework that facilitates the design and implementation of a tracing JIT compiler and its accompanying dynamic analyses by decoupling the tracing, optimization, and interpretation processes. This results in a framework that is more configurable and extensible than existing formal tracing models. We formalize the tracer and interpreter as two abstract state machines that communicate through a minimal, well-defined interface. Developing a tracing JIT compiler becomes possible for arbitrary interpreters that implement this interface. The abstract machines also provide the necessary hooks to plug in custom analyses and optimizations.

References

[1]
C. F. Bolz, A. Cuni, M. Fijalkowski, and A. Rigo. Tracing the meta-level: Pypy’s tracing jit compiler. In Proc. of the 4th Workshop of ICOOOLPS, ’09, pages 18–25.
[2]
S. Dissegna, F. Logozzo, and F. Ranzato. Tracing compilation by abstract interpretation. In Proc. of the 41st ACM SIGPLANSIGACT Symposium of POPL, ’14, pages 47–59, 2014.
[3]
M. Felleisen and D. P. Friedman. A calculus for assignments in higher-order languages. In Proc. of the 14th ACM SIGACTSIGPLAN Symposium of POPL, ’87, pages 314–, 1987.
[4]
M. Fulton and M. Stoodley. Compilation techniques for realtime java programs. In Proc. of CGO, pages 221–231, 2007.
[5]
S.-y. Guo and J. Palsberg. The essence of compiling with traces. SIGPLAN Not., 46(1):563–574, Jan. 2011.
[6]
T. Suganuma, T. Yasue, M. Kawahito, H. Komatsu, and T. Nakatani. A dynamic optimization framework for a java justin-time compiler. In ACM SIGPLAN Notices, volume 36, pages 180–195. ACM, 2001.
[7]
Introduction Trace-Based JIT Compilation Tracing Machine Tracer State Tracing Interface Transition Rules Evaluation Conclusion

Cited By

View all
  • (2017)STRAF: A Scala Framework for Experiments in Trace-Based JIT CompilationGrand Timely Topics in Software Engineering10.1007/978-3-319-60074-1_10(223-234)Online publication date: 29-Jun-2017

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
WODA 2015: Proceedings of the 13th International Workshop on Dynamic Analysis
October 2015
38 pages
ISBN:9781450339094
DOI:10.1145/2823363
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 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic analysis
  2. operational semantics
  3. tracing JIT compilation

Qualifiers

  • Short-paper

Funding Sources

Conference

SPLASH '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)2
Reflects downloads up to 19 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2017)STRAF: A Scala Framework for Experiments in Trace-Based JIT CompilationGrand Timely Topics in Software Engineering10.1007/978-3-319-60074-1_10(223-234)Online publication date: 29-Jun-2017

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media