llvm-project/llvm/lib
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
..
Analysis [LV] Teach vectorizer about variant value store into uniform address 2018-10-16 15:46:26 +00:00
AsmParser Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
BinaryFormat Revert r343317 2018-09-28 17:01:50 +00:00
Bitcode Emit template type and value parameter DIEs for template variables. 2018-10-03 18:44:53 +00:00
CodeGen Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
DebugInfo [DwarfVerifier] Fixed -Wimplicit-fallthrough warning 2018-10-10 20:10:37 +00:00
Demangle NFC: Fix a -Wsign-conversion warning 2018-10-15 22:03:53 +00:00
ExecutionEngine [ORC] Make the VModuleKey optional, propagate it via MaterializationUnit and 2018-10-16 20:13:06 +00:00
FuzzMutate [New PM] Introducing PassInstrumentation framework 2018-09-20 17:08:45 +00:00
Fuzzer
IR [Intrinsic] Signed Saturation Addition Intrinsic 2018-10-16 17:35:41 +00:00
IRReader
LTO Revert "[NewPM] teach -passes= to emit meaningful error messages" 2018-10-15 15:36:08 +00:00
LineEditor
Linker llvm-link: Improve diagnostic for module-level metadata mismatch 2018-10-09 01:17:27 +00:00
MC Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
Object llvm-ar: Darwin archive format fixes. 2018-10-10 21:07:02 +00:00
ObjectYAML [WebAssembly] Add V128 value type to binary format 2018-09-20 22:04:44 +00:00
OptRemarks Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
Option [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Passes Revert "[NewPM] teach -passes= to emit meaningful error messages" 2018-10-15 15:36:08 +00:00
ProfileData Support for remapping profile data when symbols change, for sample-based 2018-10-10 21:31:01 +00:00
Support [Support] exit with custom return code for SIGPIPE 2018-10-12 17:22:07 +00:00
TableGen [TableGen] fix assert in !cast when used out of definition in a multiclass 2018-10-10 10:52:57 +00:00
Target Revert "[WebAssembly] LSDA info generation" 2018-10-16 18:50:09 +00:00
Testing Fix error with SmallString implicit conversion. 2018-09-06 22:47:32 +00:00
ToolDrivers [opt] Change the parameter of OptTable::PrintHelp from Name to Usage and don't append "[options] <inputs>" 2018-10-10 00:15:31 +00:00
Transforms [LV] Teach vectorizer about variant value store into uniform address 2018-10-16 15:46:26 +00:00
WindowsManifest Convert line endings of lib/WindowsManifest/CMakeLists.txt to unix. 2018-04-07 04:28:08 +00:00
XRay Use the container form llvm::sort(C, ...) 2018-09-30 22:31:29 +00:00
CMakeLists.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00
LLVMBuild.txt Reland: [OptRemarks] Add library for parsing optimization remarks 2018-10-10 18:43:42 +00:00