[PATCH] D53773: [ExecutionEngine] Track objects using an abstract ObjectKey in JITEventListeners.

Lang Hames via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 26 12:02:20 PDT 2018


lhames created this revision.
lhames added reviewers: andrew.w.kaylor, eliben, jyasskin, rpgurd, anarazel, reames, loladiro.
Herald added a subscriber: llvm-commits.

The aim of this patch is to enable JITEventListeners to work with ORC without
forcing us to keep object files alive longer than necessary.

Currently JITEventListener::NotifyObjectEmitted and NotifyObjectFreed take a
reference to the object file being emitted, but in NotifyObjectFreed this is
only ever used as a key to deallocate resources that were allocated in
NotifyObjectEmitted. Switching to an abstract key allows the JIT to deallocate
object file buffers after NotifyObjectEmitted has been called.

No guarantee is made about the key value, except that it will be distinct for
each object that has been allocated. Keys may be re-used after they are freed.


Repository:
  rL LLVM

https://reviews.llvm.org/D53773

Files:
  include/llvm/ExecutionEngine/JITEventListener.h
  lib/ExecutionEngine/GDBRegistrationListener.cpp
  lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp
  lib/ExecutionEngine/MCJIT/MCJIT.cpp
  lib/ExecutionEngine/MCJIT/MCJIT.h
  lib/ExecutionEngine/OProfileJIT/OProfileJITEventListener.cpp
  lib/ExecutionEngine/Orc/OrcCBindingsStack.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53773.171327.patch
Type: text/x-patch
Size: 12592 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181026/8b48ba01/attachment.bin>


More information about the llvm-commits mailing list