[llvm-dev] "Freeing" functions generated with SimpleORC for JIT use-case

Kavon Farvardin via llvm-dev llvm-dev at lists.llvm.org
Tue Oct 1 12:59:10 PDT 2019

See below for replies:
On Mon, 2019-09-23 at 12:16 -0700, Rajesh S R via llvm-dev wrote:
> Hi all,I am using LLVM for JIT use-case and compile functions on the fly. I
> want to "free" the modules after some time and reclaim any memory associated
> with it. I am using the SimpleORC API now. 
> Is there an API to "free" all the memory associated with the module? I use one
> "compiler" instance (think similar to KaleidoscopeJIT class with its
> ExecutionSession, CompileLayer etc.) in my process. 

AFAIK the memory associated with JIT compiled code is owned by the
ExecutionSession from which you obtained the JITEvaluatedSymbol and is initially
allocated by the ObjectLayer using a SectionMemoryManager. 
> Is there an API to reset all memory used? Does deleting the "KaleidoscopeJIT"
> class ensure all memory is reclaimed? In that case i can periodically re-
> create that class to achieve what i want.

Beyond running the destructor for either the ExecutionSession or ObjectLayer, I
have not seen a way to do this. Perhaps it's possible by implementing your own
SectionMemoryManager-like class?
> Thanks!
> Rajesh S R
> _______________________________________________LLVM Developers mailing
> listllvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191001/13c15b08/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191001/13c15b08/attachment.sig>

More information about the llvm-dev mailing list