summaryrefslogtreecommitdiffstats
path: root/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-06-12 20:43:17 +0000
committerLang Hames <lhames@gmail.com>2018-06-12 20:43:17 +0000
commit253584fdaf7dcda75fc56478895f0d4fad1e8534 (patch)
tree112c005f72812e93ce544d7a6ac0fe090850bb5c /llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
parent22a7440200a7eb23f784a5da3dbf6595acb204a1 (diff)
downloadbcm5719-llvm-253584fdaf7dcda75fc56478895f0d4fad1e8534.tar.gz
bcm5719-llvm-253584fdaf7dcda75fc56478895f0d4fad1e8534.zip
[ORC] Refactor blocking lookup logic into the blockingLookup function, and
implement existing blocking lookups (the lookup function) and JITSymbolResolverAdapter on top of that. llvm-svn: 334537
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h')
-rw-r--r--llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
index 38f0e17fd27..922ec476204 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
+++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
@@ -177,6 +177,7 @@ class OrcMCJITReplacement : public ExecutionEngine {
if (auto Sym = M.findMangledSymbol(*S)) {
if (auto Addr = Sym.getAddress()) {
Query->resolve(S, JITEvaluatedSymbol(*Addr, Sym.getFlags()));
+ Query->notifySymbolReady();
NewSymbolsResolved = true;
} else {
M.ES.failQuery(*Query, Addr.takeError());
@@ -189,6 +190,7 @@ class OrcMCJITReplacement : public ExecutionEngine {
if (auto Sym2 = M.ClientResolver->findSymbol(*S)) {
if (auto Addr = Sym2.getAddress()) {
Query->resolve(S, JITEvaluatedSymbol(*Addr, Sym2.getFlags()));
+ Query->notifySymbolReady();
NewSymbolsResolved = true;
} else {
M.ES.failQuery(*Query, Addr.takeError());
@@ -205,6 +207,9 @@ class OrcMCJITReplacement : public ExecutionEngine {
if (NewSymbolsResolved && Query->isFullyResolved())
Query->handleFullyResolved();
+ if (NewSymbolsResolved && Query->isFullyReady())
+ Query->handleFullyReady();
+
return UnresolvedSymbols;
}
OpenPOWER on IntegriCloud