<div dir="ltr">Hey,<div><br></div><div>This has a couple of stages:</div><div><ul><li>Easy, allow for re-JITing of a method (in fact, I think this is one of our interview questions)</li><li>Easy, support regular + LLVM code generation</li><li>Easy, instrument the code to track hot methods, and set a flag to do LLVM code gen</li><li>Easy, use the first and third bullet points to achieve what you want</li><li>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.</li><li>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.</li></ul><div>Miguel</div></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 2:19 PM, Alex Rønne Petersen <span dir="ltr"><<a href="mailto:alex@alexrp.com" target="_blank">alex@alexrp.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We don't have such a system in Mono. When you run `mono --llvm`, Mono<br>
will try to use LLVM for all methods.<br>
<br>
I could see a system like this being implemented based on the<br>
instrumentation functions we have in the JIT. I think the real<br>
challenge would lie in notifying the rest of the runtime/program that<br>
an already-JITed method has been re-JITed, and in a non-racy way.<br>
<br>
Regards,<br>
Alex<br>
<div><div class="h5"><br>
On Wed, Jan 28, 2015 at 7:59 PM, Jerry Maine <<a href="mailto:crashfourit@gmail.com">crashfourit@gmail.com</a>> wrote:<br>
> I am wondering if mono could have (or already has) a feature that could use<br>
> mini (the current jit) to quickly compiling code and then recompile certain<br>
> critical pieces with llvm if warranted and want would it take to develop it<br>
> if mono does not have it already.<br>
><br>
</div></div>> _______________________________________________<br>
> Mono-devel-list mailing list<br>
> <a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
> <a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
><br>
_______________________________________________<br>
Mono-devel-list mailing list<br>
<a href="mailto:Mono-devel-list@lists.ximian.com">Mono-devel-list@lists.ximian.com</a><br>
<a href="http://lists.ximian.com/mailman/listinfo/mono-devel-list" target="_blank">http://lists.ximian.com/mailman/listinfo/mono-devel-list</a><br>
</blockquote></div><br></div>