<div dir="ltr">Hi Chuck,<div><br></div><div><br>> We're currently using LLVM 3.3 in production (due to performance regressions in newer versions), so I don't know if > some other scheme is appropriate for current levels.<br><div class="gmail_extra"><br></div><div class="gmail_extra">Do you have any insight into what regressed? If it's related to the JIT infrastructure I'd be curious to hear about that so I can keep it in mind while working on these new APIs. Slowdowns in IR/CodeGen are also interesting, though I'm less likely to be able to deal with them personally.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Cheers,</div><div class="gmail_extra">Lang.</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sun, Jan 18, 2015 at 7:12 AM, Caldarale, Charles R <span dir="ltr"><<a href="mailto:Chuck.Caldarale@unisys.com" target="_blank">Chuck.Caldarale@unisys.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">> From: Armin Steinhoff [mailto:<a href="mailto:armin@steinhoff.de">armin@steinhoff.de</a>]<br>
<span class="">> Subject: Re: [LLVMdev] New JIT APIs<br>
<br>
</span><span class="">> is<br>
>  delete EE;   // execution engine<br>
>  llvm_shutdown();<br>
> sufficient ?<br>
<br>
</span>AFAICT, llvm_shutdown() must not be called unless you reach a point where LLVM will not be used again by the process (e.g., termination), as it destroys statically allocated objects.  We delete the ExecutionEngine (which automatically deletes TargetMachine and Module) after each compilation.  The LLVMContext and IRBuilder objects are deleted after some configurable number of compilations, in order to avoid unbounded growth in the constant pool.<br>
<br>
We're currently using LLVM 3.3 in production (due to performance regressions in newer versions), so I don't know if some other scheme is appropriate for current levels.<br>
<br>
 - Chuck<br>
<br>
</blockquote></div><br></div></div></div>