llvm-project/llvm/lib/ExecutionEngine
Lang Hames 8b94274f22 [ORC] Make the VModuleKey optional, propagate it via MaterializationUnit and
MaterializationResponsibility.

VModuleKeys are intended to enable selective removal of modules from a JIT
session, however for a wide variety of use cases selective removal is not
needed and introduces unnecessary overhead. As of this commit, the default
constructed VModuleKey value is reserved as a "do not track" value, and
becomes the default when adding a new module to the JIT.

This commit also changes the propagation of VModuleKeys. They were passed
alongside the MaterializationResponsibity instance in XXLayer::emit methods,
but are now propagated as part of the MaterializationResponsibility instance
itself (and as part of MaterializationUnit when stored in a JITDylib).
Associating VModuleKeys with MaterializationUnits in this way should allow
for a thread-safe module removal mechanism in the future, even when a module
is in the process of being compiled, by having the
MaterializationResponsibility object check in on its VModuleKey's state
before commiting its results to the JITDylib.

llvm-svn: 344643
2018-10-16 20:13:06 +00:00
..
IntelJITEvents Remove trailing space 2018-07-30 19:41:25 +00:00
Interpreter Remove trailing space 2018-07-30 19:41:25 +00:00
MCJIT [MCJIT] Fix a case of Error::success() being passed to report_fatal_error. 2018-08-15 20:11:21 +00:00
OProfileJIT Add debug info for OProfile profiling support 2018-06-15 00:07:28 +00:00
Orc [ORC] Make the VModuleKey optional, propagate it via MaterializationUnit and 2018-10-16 20:13:06 +00:00
PerfJITEvents Add PerfJITEventListener for perf profiling support. 2018-07-24 00:54:06 +00:00
RuntimeDyld [ORC] Add partitioning support to CompileOnDemandLayer2. 2018-09-29 23:49:57 +00:00
CMakeLists.txt Add PerfJITEventListener for perf profiling support. 2018-07-24 00:54:06 +00:00
ExecutionEngine.cpp Add handling for GlobalAliases in ExecutionEngine::getConstantValue. 2018-05-24 19:07:34 +00:00
ExecutionEngineBindings.cpp Remove trailing space 2018-07-30 19:41:25 +00:00
GDBRegistrationListener.cpp [C-API] Add functions to create GDB, Intel, Oprofile event listeners. 2018-05-24 21:32:54 +00:00
LLVMBuild.txt Add PerfJITEventListener for perf profiling support. 2018-07-24 00:54:06 +00:00
SectionMemoryManager.cpp Add missing vtable anchors 2018-04-11 23:09:20 +00:00
TargetSelect.cpp [TLS] use emulated TLS if the target supports only this mode 2018-02-28 17:48:55 +00:00