Welcome to MSDN Blogs Sign in | Join | Help

Execution Engine-independent JIT compilers

I have recently put together a set of slides about LIL (Low-level Intermediate Language) and gave a talk at Microsoft.  This work was done before I joined Microsoft: LIL was developed by the ORP (Open Runtime Platform) team at Intel.  LIL was addressing multiple issues in the ORP design (papers referenced below can give you an idea) but the focus of this presentation was more narrow: how to improve the interface between the JIT (Just-In-Time compiler) and the rest of the VM.  I'd like to point out that I use the terms VM (Virtual Machine) and EE (Execution Engine) interchangeably (see this post for a discussion of this terminology).  Others have come up independently with somewhat similar ideas and I found quite a lot of interest in the LIL approach in conversations both inside and outside of Microsoft.  For my current presentation I took some of the old LIL slides that I used in a talk I gave at ETH Zürich in 2003 and modified them to focus on the JIT/EE interface.  This version of slides benefited from my conversations with many people in the last year, after the original LIL papers were published.  I think that I owe most to my conversations with George Bosworth and to comments by Thorsten Brunklaus who worked on the SEAM VM (see below) and now is in the CLR team.

LIL is described at length in the VM'04 paper.  The MPOOL'03 paper (pdf) presents some thoughts on how LIL could be used to abstract away the object model from the JIT.  Full references to these two papers are available on my publications page.

The talk I just gave had the title "Execution Engine-independent JIT compilers" and the basic idea is that LIL enables a much better abstraction of the EE from a JIT's point of view then what is used in all known to me implementations of virtual machines for JVM and CLR/CLI.  I made the full presentation available as a pdf file.

Here are references to the related work mentioned in the slides:

Published Wednesday, February 23, 2005 4:55 PM by michaljc
Filed under:

Comments

# re: Execution Engine-independent JIT compilers

Thanks for your presentation about LIL, because
I couldn't access your VM04 paper without password.

I have 2 questions:
1) Has Rotor similar interface-based architecture as OPR?
2) Will LIL be implemented in next version of Rotor?


Wednesday, February 23, 2005 9:22 PM by Qiong

# re: Execution Engine-independent JIT compilers

There are a lot of similarities between the interfaces of ORP and Rotor. There's an interesting paper showing how an ORP JIT and GC were ported to Rotor: http://www.jot.fm/issues/issue_2004_10/article3/index_html
There are no plans to implement LIL in Rotor. It would be an interesting research problem though.
Thursday, February 24, 2005 1:12 AM by Michał Cierniak

# LIL and Phoenix

Thursday, February 24, 2005 4:41 PM by Andrew Stopford's Weblog

# Other LIL languages

My most recent post was about LIL (Low-level Intermediate Language).  I realized recently that this...
Thursday, March 30, 2006 12:06 AM by Michał Cierniak
Anonymous comments are disabled
 
Page view tracker