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

Rajesh S R via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 7 15:56:09 PDT 2019


Thanks Kavon! What would be useful is to have a Handle interface as shown
here: https://releases.llvm.org/6.0.0/docs/tutorial/BuildingAJIT1.html
Should i just use this API for now?

On Tue, Oct 1, 2019 at 12:59 PM Kavon Farvardin <kavon at farvard.in> wrote:

> 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
> <https://llvm.org/docs/tutorial/BuildingAJIT1.html> 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 list
>
> llvm-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/20191007/30d5a9a2/attachment.html>


More information about the llvm-dev mailing list