When writing a JIT compiler using LLVM, as I understand it, you can use two alternative APIs, MCJIT and Orc. The latter offers lazy compilation. Would it be accurate to say that if you want eager compilation - always compile an entire module upfront - you should use MCJIT? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160329/b2904326/attachment.html>
Russell Wallace via llvm-dev <llvm-dev at lists.llvm.org> writes:> When writing a JIT compiler using LLVM, as I understand it, you can use two > alternative APIs, MCJIT and Orc. The latter offers lazy compilation. Would > it be accurate to say that if you want eager compilation - always compile > an entire module upfront - you should use MCJIT?+lang. My understanding is that Orc is strictly more flexible than MCJIT. You can, in fact, exactly implement the MCJIT API using the Orc APIs. I think the general advice is that MCJIT's a bit more mature and stable, but you probably want Orc in new code unless you really need that maturity.
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? On Wed, Mar 30, 2016 at 12:19 AM, Justin Bogner <mail at justinbogner.com> wrote:> Russell Wallace via llvm-dev <llvm-dev at lists.llvm.org> writes: > > When writing a JIT compiler using LLVM, as I understand it, you can use > two > > alternative APIs, MCJIT and Orc. The latter offers lazy compilation. > Would > > it be accurate to say that if you want eager compilation - always compile > > an entire module upfront - you should use MCJIT? > > +lang. > > My understanding is that Orc is strictly more flexible than MCJIT. You > can, in fact, exactly implement the MCJIT API using the Orc APIs. > > I think the general advice is that MCJIT's a bit more mature and stable, > but you probably want Orc in new code unless you really need that > maturity. >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160330/981f8acc/attachment.html>