<div dir="ltr"><br><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:0 0 0 .8ex;border-left:1px #ccc 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. </blockquote><div><br></div><div>At least in theory all those lazy static objects should be re-initialized when they're first used after a call to llvm_shutdown (bits of the code clearly intend this to be a supported scenario) but it's probably under-tested & I'm not sure if people have ideas about killing it off (so I'm not sure if the right path forward is to avoid relying on that behavior so it can be killed, or to fix the bugs).</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> 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></blockquote><div><br>Yeah, I don't believe the context's constant pool growth has been addressed even in recent versions.<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<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="HOEnZb"><div class="h5"><br>
 - Chuck<br>
<br>
<br>
_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu" target="_blank">http://llvm.cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br>
</div></div></blockquote></div><br></div></div>