Abstract of Talk
SPUR: A Trace-Based JIT Compiler for CIL
-Nikolai Tillmann
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 mplementation 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.
Biography: Nikolai Tillmann is a Principal Research Software Design Engineer in the Research in Software Engineering (RiSE) group at Microsoft Research. He is leading the Pex project, a framework for automated test case generation for .NET applications based on parameterized unit testing and dynamic symbolic execution. Nikolai is also involved in the Spur project, where he works on a tracing Just-In-Time compiler for .NET and JavaScript code. Previously, he worked on AsmL and Spec Explorer, which are an executable modeling language and a model-based testing tool, which is now used on a large scale in Microsoft to facilitate quality assurance of protocol documentation.
Before coming to Microsoft Research, Nikolai received his M.S. (Diplom) in Computer Science from the Technical University of Berlin in 2000, and was involved in the development of a school management system in Germany.


