[llvm-dev] [ORC] Removing / replacing JITDylibs

Kavon Farvardin via llvm-dev llvm-dev at lists.llvm.org
Mon Aug 19 15:38:31 PDT 2019


Hi,

I'm working on a runtime autotuner that utilizes ORCv2 JIT (I'm closely tracking
tip-of-tree), so linking new object files and patching in the new function(s)
will happen frequently. 

One of the concerns my runtime system has is the ability to do one of the
following: (1) replacement of the contents of a JITDylib with a new object file
[to provide semi-space GC-style reclaiming], (2) the outright removal of a
JITDylib.

Right now, I have one ExecutionSession instance for my linker and am creating a
new JITDylib for each object file that I'd like to link in. There doesn't appear
to be a corresponding ExecutionSession::removeJITDylib(..) method, so I'm
wondering: how do I reclaim the memory for code that I've linked in previously
but no longer need?

When using MCJIT, I would reclaim this memory by destroying the ExecutionEngine
that was created for each "JITDylib". Should I do the same with
ExecutionSessions?

For reference, here's the short bit of code I'm playing with for linking with
ORC: 

https://github.com/halo-project/llvm/blob/master/compiler-rt/lib/halomon/DynamicLinker.h#L55

Thanks,
Kavon
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190819/ae346237/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/20190819/ae346237/attachment.sig>


More information about the llvm-dev mailing list