diff options
author | Lang Hames <lhames@gmail.com> | 2018-06-12 20:43:17 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-06-12 20:43:17 +0000 |
commit | 253584fdaf7dcda75fc56478895f0d4fad1e8534 (patch) | |
tree | 112c005f72812e93ce544d7a6ac0fe090850bb5c /llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h | |
parent | 22a7440200a7eb23f784a5da3dbf6595acb204a1 (diff) | |
download | bcm5719-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.h | 5 |
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; } |