[Mono-dev] Using libJIT in Mono Instead of LLVM

Kirill Kononenko kirill.kononenko at gmail.com
Sat Apr 11 13:03:56 EDT 2009


Thanks a lot for your reply.

> You can post patches in this list, but for us to integrate the code into
> Mono, you would have to sign a copyright assignment for the code to
> allow Novell to relicense the code as we actively relicense Mono for
> people that do not want to use the LGPL.

If I contribute some code to Mono source code, I will allow Novell to
relicense this code. LibJIT is a stand-alone library. So basically its
source code does not need to be included in Mono source code, at least
from technical point of view. I don't know about legal point of view
and other things. Let me know if there is any issue about this.

> Just to set expectations right: currently we are not planning on
> replacing Mono's code generation engine to LLVM or another JIT engine.
> We are very happy with the balance that we have reached in terms of
> startup performance and code generation quality as well as the wide
> reach of platforms that Mono supports.
> The work on the LLVM backend at this point is a research project from
> Zoltan and is far from ready.   Adding a new backend to the list of
> backends or interfaces to maintain is likely going to be a lot of work
> at this point, and any cycles that we spend are going to go towards
> integrating LLVM due to the other optimizations present on it.   Feel
> free to plug your engine and post patches here for discussion as you
> move along, or join us in the IRC channels.

It is unlikely I will have time soon to contribute my own code,
because I am very busy at this time. But maybe there will be someone
interested to try add code to Mono source code that would use libJIT
for code generation. I think this support may be done in a summer of
code project for example, by someone who understands what he is doing.

> The research into LLVM is mostly with an eye towards batch compilation,
> where folks can afford slow compile times in exchange for more
> optimizations being applied to the code.   This is something that JIT
> engines can not afford to do as they have to compile code quickly to
> keep startup time to a minimum.

Yes, I agree about this direction. But I feel like it would be more
beneficial to plugin code generation with gcc somehow. It might pass
years before LLVM reaches quality of GCC. Still GCC is not a
competitor to Intel compiler. But using LLVM is also one possible
direction, I am simply not sure about its benefits, but I don't know
LLVM internals that well. I can only judge from what I read, without
studying its source code.


More information about the Mono-devel-list mailing list