llvm-project/llvm/lib/ExecutionEngine/Orc
Lang Hames 8853ac7e02 [ORC] Make sure that queries on emitted-but-not-ready symbols fail correctly.
In r369808 the failure scheme for ORC symbols was changed to make
MaterializationResponsibility objects responsible for failing the symbols
they represented. This simplifies error logic in the case where symbols are
still covered by a MaterializationResponsibility, but left a gap in error
handling: Symbols that have been emitted but are not yet ready (due to a
dependence on some unemitted symbol) are not covered by a
MaterializationResponsibility object. Under the scheme introduced in r369808
such symbols would be moved to the error state, but queries on those symbols
were never notified. This led to deadlocks when such symbols were failed.

This commit updates error logic to immediately fail queries on any symbol that
has already been emitted if one of its dependencies fails.

llvm-svn: 369976
2019-08-26 21:42:51 +00:00
..
CMakeLists.txt [cmake] Link in LLVMPasses due to dependency by LLVMOrcJIT; NFC 2019-08-19 23:12:48 +00:00
CompileOnDemandLayer.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
CompileUtils.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
Core.cpp [ORC] Make sure that queries on emitted-but-not-ready symbols fail correctly. 2019-08-26 21:42:51 +00:00
ExecutionUtils.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
IRCompileLayer.cpp [ORC] Change the locking scheme for ThreadSafeModule. 2019-08-02 15:21:37 +00:00
IRTransformLayer.cpp [ORC] Change the locking scheme for ThreadSafeModule. 2019-08-02 15:21:37 +00:00
IndirectionUtils.cpp [ORC] Fix a FIXME: Propagate errors to dependencies. 2019-08-23 20:37:31 +00:00
JITTargetMachineBuilder.cpp Re-land D65760/r367944 2019-08-06 16:24:17 +00:00
LLJIT.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
LLVMBuild.txt [JITLink][ORC] Add JITLink to the list of dependencies for ORC. 2019-04-20 22:15:57 +00:00
Layer.cpp [ORC] fix use-after-free detected by -Wreturn-stack-address 2019-08-19 21:59:44 +00:00
LazyReexports.cpp [ORC] Fix a FIXME: Propagate errors to dependencies. 2019-08-23 20:37:31 +00:00
Legacy.cpp [ORC] Update symbol lookup to use a single callback with a required symbol state 2019-06-07 19:33:51 +00:00
NullResolver.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
ObjectLinkingLayer.cpp [ORC] Fix a FIXME: Propagate errors to dependencies. 2019-08-23 20:37:31 +00:00
ObjectTransformLayer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OrcABISupport.cpp [Support] Add error handling to sys::Process::getPageSize(). 2019-05-08 02:11:07 +00:00
OrcCBindings.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OrcCBindingsStack.h [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
OrcError.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
OrcMCJITReplacement.cpp [ORC] Add deprecation warnings to ORCv1 layers and utilities. 2019-07-17 16:40:52 +00:00
OrcMCJITReplacement.h [ORC] Add deprecation warnings to ORCv1 layers and utilities. 2019-07-17 16:40:52 +00:00
RPCUtils.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
RTDyldObjectLinkingLayer.cpp [ORC] Fix a FIXME: Propagate errors to dependencies. 2019-08-23 20:37:31 +00:00
SpeculateAnalyses.cpp Move findBBwithCalls to the file it's used in to avoid unused function 2019-08-13 00:05:01 +00:00
Speculation.cpp Speculative Compilation 2019-08-03 14:42:13 +00:00
ThreadSafeModule.cpp [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00