diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 7 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Legacy.cpp | 4 |
2 files changed, 6 insertions, 5 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index ff78ba19939..886bd7e7915 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -288,8 +288,7 @@ void VSO::finalize(SymbolNameSet SymbolsToFinalize) { } } -LookupFlagsResult VSO::lookupFlags(SymbolNameSet Names) { - SymbolFlagsMap FlagsFound; +SymbolNameSet VSO::lookupFlags(SymbolFlagsMap &Flags, SymbolNameSet Names) { for (SymbolNameSet::iterator I = Names.begin(), E = Names.end(); I != E;) { auto Tmp = I++; @@ -301,11 +300,11 @@ LookupFlagsResult VSO::lookupFlags(SymbolNameSet Names) { Names.erase(Tmp); - FlagsFound[SymI->first] = + Flags[SymI->first] = JITSymbolFlags::stripTransientFlags(SymI->second.getFlags()); } - return {std::move(FlagsFound), std::move(Names)}; + return Names; } VSO::LookupResult VSO::lookup(AsynchronousSymbolQuery &Query, diff --git a/llvm/lib/ExecutionEngine/Orc/Legacy.cpp b/llvm/lib/ExecutionEngine/Orc/Legacy.cpp index e4eba8bd756..7a11b94c7cf 100644 --- a/llvm/lib/ExecutionEngine/Orc/Legacy.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Legacy.cpp @@ -62,8 +62,10 @@ JITSymbolResolverAdapter::lookupFlags(const LookupSet &Symbols) { for (auto &S : Symbols) InternedSymbols.insert(ES.getSymbolStringPool().intern(S)); + SymbolFlagsMap SymbolFlags; + R.lookupFlags(SymbolFlags, InternedSymbols); LookupFlagsResult Result; - for (auto &KV : R.lookupFlags(InternedSymbols).SymbolFlags) { + for (auto &KV : SymbolFlags) { ResolvedStrings.insert(KV.first); Result[*KV.first] = KV.second; } |