SPUR: A Trace-Based JIT Compiler for CIL

Michael Bebenita, Florian Brandner, Manuel Fahndrich, Francesco Logozzo, Wolfram Schulte, Nikolai Tillmann, Herman Venter

Research output: Contribution to journalConference articleResearchpeer-review

Abstract

Tracing just-in-time compilers (TJITs) determine frequently executed traces (hot paths and loops) in running programs and focus their optimization effort by emitting optimized machine code specialized to these traces. Prior work has established this strategy to be especially beneficial for dynamic languages such as JavaScript, where the TJIT interfaces with the interpreter and produces machine code from the JavaScript trace. This direct coupling with a JavaScript interpreter makes it difficult to harness the power of a TJIT for other components that are not written in JavaScript, e. g., the DOM implementation or the layout engine inside a browser. Furthermore, if a TJIT is tied to a particular high-level language interpreter, it is difficult to reuse it for other input languages as the optimizations are likely targeted at specific idioms of the source language. To address these issues, we designed and implemented a TJIT for Microsoft's Common Intermediate Language CIL (the target language of C#, VisualBasic, F#, and many other languages). Working on CIL enables TJIT optimizations for any program compiled to this platform. In addition, to validate that the performance gains of a TJIT for JavaScript do not depend on specific idioms of JavaScript that are lost in the translation to CIL, we provide a performance evaluation of our JavaScript runtime which translates JavaScript to CIL and then runs on top of our CIL TJIT.
Keyword: tracing,dynamic compilation,CIL,Performance,just-in-time,JavaScript,Languages,Design
Original languageEnglish
JournalSIGPLAN Notices
Volume45
Issue number10
Pages (from-to)708-725
ISSN0362-1340
DOIs
Publication statusPublished - 2010
Externally publishedYes
EventConference on Object Oriented Programming Systems, Languages and Applications/SPLASH -
Duration: 1 Jan 2010 → …

Conference

ConferenceConference on Object Oriented Programming Systems, Languages and Applications/SPLASH
Period01/01/2010 → …

Fingerprint Dive into the research topics of 'SPUR: A Trace-Based JIT Compiler for CIL'. Together they form a unique fingerprint.

Cite this