<div dir="ltr">Hi Russell,<div><br></div><div>Apologies for the delayed reply.</div><div><br></div><div>Orc's current advantages over MCJIT are:</div><div><br></div><div>(1) Built-in support for lazy compilation.</div><div>(2) Cleaner support for multi-module management, including un-loading modules.</div><div>(3) Much better memory management (depending on use-case, can consume far less memory for JIT'd code).</div><div><br></div><div>I expect Orc to gain further advantages over MCJIT in the future too.</div><div><br></div><div>I'd recommend using Orc rather than MCJIT.</div><div><br></div><div>- Lang.</div><div> </div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 29, 2016 at 4:22 PM, Russell Wallace via llvm-dev <span dir="ltr"><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Right, but is there any known use case where Orc's flexibility allows something to be done that couldn't be with MCJIT, apart from lazy compilation?</div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Mar 30, 2016 at 12:19 AM, Justin Bogner <span dir="ltr"><<a href="mailto:mail@justinbogner.com" target="_blank">mail@justinbogner.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>Russell Wallace via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> writes:<br>
> When writing a JIT compiler using LLVM, as I understand it, you can use two<br>
> alternative APIs, MCJIT and Orc. The latter offers lazy compilation. Would<br>
> it be accurate to say that if you want eager compilation - always compile<br>
> an entire module upfront - you should use MCJIT?<br>
<br>
</div></div>+lang.<br>
<br>
My understanding is that Orc is strictly more flexible than MCJIT. You<br>
can, in fact, exactly implement the MCJIT API using the Orc APIs.<br>
<br>
I think the general advice is that MCJIT's a bit more mature and stable,<br>
but you probably want Orc in new code unless you really need that<br>
maturity.<br>
</blockquote></div><br></div>
</div></div><br>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
<br></blockquote></div><br></div>