diff options
author | Lang Hames <lhames@gmail.com> | 2018-07-20 18:31:52 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-07-20 18:31:52 +0000 |
commit | d4df0f17335c125068fed51f554a5d81caebeb1a (patch) | |
tree | c9976f0c403de2d1a46735af1c6dc20f0c0588e0 /llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h | |
parent | fd0c1e71694ef1def33ec6293dbfae1f4c96f39b (diff) | |
download | bcm5719-llvm-d4df0f17335c125068fed51f554a5d81caebeb1a.tar.gz bcm5719-llvm-d4df0f17335c125068fed51f554a5d81caebeb1a.zip |
[ORC] Simplify VSO::lookupFlags to return the flags map.
This discards the unresolved symbols set and returns the flags map directly
(rather than mutating it via the first argument).
The unresolved symbols result made it easy to chain lookupFlags calls, but such
chaining should be rare to non-existant (especially now that symbol resolvers
are being deprecated) so the simpler method signature is preferable.
llvm-svn: 337594
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h index 922ec476204..ded53ac3106 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h +++ b/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h @@ -144,28 +144,26 @@ class OrcMCJITReplacement : public ExecutionEngine { public: LinkingORCResolver(OrcMCJITReplacement &M) : M(M) {} - SymbolNameSet lookupFlags(SymbolFlagsMap &SymbolFlags, - const SymbolNameSet &Symbols) override { - SymbolNameSet UnresolvedSymbols; + SymbolFlagsMap lookupFlags(const SymbolNameSet &Symbols) override { + SymbolFlagsMap SymbolFlags; for (auto &S : Symbols) { if (auto Sym = M.findMangledSymbol(*S)) { SymbolFlags[S] = Sym.getFlags(); } else if (auto Err = Sym.takeError()) { M.reportError(std::move(Err)); - return SymbolNameSet(); + return SymbolFlagsMap(); } else { if (auto Sym2 = M.ClientResolver->findSymbolInLogicalDylib(*S)) { SymbolFlags[S] = Sym2.getFlags(); } else if (auto Err = Sym2.takeError()) { M.reportError(std::move(Err)); - return SymbolNameSet(); - } else - UnresolvedSymbols.insert(S); + return SymbolFlagsMap(); + } } } - return UnresolvedSymbols; + return SymbolFlags; } SymbolNameSet lookup(std::shared_ptr<AsynchronousSymbolQuery> Query, |