Re: Has the CVM interprerter code been rolled into libjit?
Glenn Chambers <[email protected]> Sat, 16 Dec 2006 21:49:44 -0500
| Newsgroups | gmane.comp.gnu.dotgnu.developer |
|---|---|
| Message-ID | <[email protected]> |
On Sun, 2006-12-17 at 10:42 +0800, Deryk Robosson wrote: > On 12/17/06, Eric Engler <[email protected]> wrote: > > > Is the CVM still a viable model, or has it been super-ceded by libjit? I > > understand libjit can fallback to interpretation on a platform that doesn't > > have JIT support yet, but I'm fuzzy on the mechanics of this. Can the > > current C# compiler still generate CVM code as an option? > > The CVM is default and libjit can be chosen to be used at compile time > (of pnet). > > Now, if cscc can be passed an option to use one or the other, I'm not > aware of. One of the compiler people would have to answer that one. Not a person who works on either the compiler or the runtime, but a compiler-literate individual who's been following the project for a while. The Portable.NET runtime consumes "CIL" instructions, which as you say above are designed to be Just-In-Time compiled, not directly interpreted. The CVM interpreter in the original run-time design 'compiled' CIL instructions to CVM instructions, then interpreted the latter. The libjit version of the runtime compiles the CIL instructions to either machine code or to a libjit interpreter, which has no connection to the old CVM interpreter. The compiler emits CIL instructions only, and has no awareness of any of this. Hope this helps.