[Mono-dev] llvm and mini
Miguel de Icaza
miguel at xamarin.com
Wed Jan 28 22:59:20 UTC 2015
This has a couple of stages:
- Easy, allow for re-JITing of a method (in fact, I think this is one of
our interview questions)
- Easy, support regular + LLVM code generation
- Easy, instrument the code to track hot methods, and set a flag to do
LLVM code gen
- Easy, use the first and third bullet points to achieve what you want
- Very hard: replace a running method with a re-JITed version, this is
hard because you would need to "transplant" the state from one set of
generated code to another one.
- Very hard: hijack returns to return to re-JITed methods, has the same
problem as above, but also requires some system to return to the new code.
On Wed, Jan 28, 2015 at 2:19 PM, Alex Rønne Petersen <alex at alexrp.com>
> We don't have such a system in Mono. When you run `mono --llvm`, Mono
> will try to use LLVM for all methods.
> I could see a system like this being implemented based on the
> instrumentation functions we have in the JIT. I think the real
> challenge would lie in notifying the rest of the runtime/program that
> an already-JITed method has been re-JITed, and in a non-racy way.
> On Wed, Jan 28, 2015 at 7:59 PM, Jerry Maine <crashfourit at gmail.com>
> > I am wondering if mono could have (or already has) a feature that could
> > mini (the current jit) to quickly compiling code and then recompile
> > critical pieces with llvm if warranted and want would it take to develop
> > if mono does not have it already.
> > _______________________________________________
> > Mono-devel-list mailing list
> > Mono-devel-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
> Mono-devel-list mailing list
> Mono-devel-list at lists.ximian.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-devel-list