[LLVMdev] New JIT APIs

Caldarale, Charles R Chuck.Caldarale at unisys.com
Sun Jan 18 07:12:29 PST 2015


> From: Armin Steinhoff [mailto:armin at steinhoff.de] 
> Subject: Re: [LLVMdev] New JIT APIs

> is 
>  delete EE;   // execution engine
>  llvm_shutdown();
> sufficient ?

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.

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.

 - Chuck





More information about the llvm-dev mailing list