[Mono-dev] Using libJIT in Mono Instead of LLVM
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