forked from OSchip/llvm-project
8853ac7e02
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 |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
CompileOnDemandLayer.cpp | ||
CompileUtils.cpp | ||
Core.cpp | ||
ExecutionUtils.cpp | ||
IRCompileLayer.cpp | ||
IRTransformLayer.cpp | ||
IndirectionUtils.cpp | ||
JITTargetMachineBuilder.cpp | ||
LLJIT.cpp | ||
LLVMBuild.txt | ||
Layer.cpp | ||
LazyReexports.cpp | ||
Legacy.cpp | ||
NullResolver.cpp | ||
ObjectLinkingLayer.cpp | ||
ObjectTransformLayer.cpp | ||
OrcABISupport.cpp | ||
OrcCBindings.cpp | ||
OrcCBindingsStack.h | ||
OrcError.cpp | ||
OrcMCJITReplacement.cpp | ||
OrcMCJITReplacement.h | ||
RPCUtils.cpp | ||
RTDyldObjectLinkingLayer.cpp | ||
SpeculateAnalyses.cpp | ||
Speculation.cpp | ||
ThreadSafeModule.cpp |