diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/Core.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/Core.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/Core.cpp b/llvm/lib/ExecutionEngine/Orc/Core.cpp index dd80630a33c1..4a9d0d470a8e 100644 --- a/llvm/lib/ExecutionEngine/Orc/Core.cpp +++ b/llvm/lib/ExecutionEngine/Orc/Core.cpp @@ -17,6 +17,7 @@ #include <condition_variable> #include <future> +#include <optional> #define DEBUG_TYPE "orc" @@ -970,10 +971,9 @@ Error JITDylib::resolve(MaterializationResponsibility &MR, SymbolsInErrorState.insert(KV.first); else { auto Flags = KV.second.getFlags(); - Flags &= ~(JITSymbolFlags::Weak | JITSymbolFlags::Common); + Flags &= ~JITSymbolFlags::Common; assert(Flags == - (SymI->second.getFlags() & - ~(JITSymbolFlags::Weak | JITSymbolFlags::Common)) && + (SymI->second.getFlags() & ~JITSymbolFlags::Common) && "Resolved flags should match the declared flags"); Worklist.push_back( @@ -1482,8 +1482,8 @@ void JITDylib::dump(raw_ostream &OS) { void JITDylib::MaterializingInfo::addQuery( std::shared_ptr<AsynchronousSymbolQuery> Q) { - auto I = std::lower_bound( - PendingQueries.rbegin(), PendingQueries.rend(), Q->getRequiredState(), + auto I = llvm::lower_bound( + llvm::reverse(PendingQueries), Q->getRequiredState(), [](const std::shared_ptr<AsynchronousSymbolQuery> &V, SymbolState S) { return V->getRequiredState() <= S; }); @@ -2244,8 +2244,8 @@ void ExecutionSession::dump(raw_ostream &OS) { void ExecutionSession::dispatchOutstandingMUs() { LLVM_DEBUG(dbgs() << "Dispatching MaterializationUnits...\n"); while (true) { - Optional<std::pair<std::unique_ptr<MaterializationUnit>, - std::unique_ptr<MaterializationResponsibility>>> + std::optional<std::pair<std::unique_ptr<MaterializationUnit>, + std::unique_ptr<MaterializationResponsibility>>> JMU; { @@ -2285,9 +2285,10 @@ Error ExecutionSession::removeResourceTracker(ResourceTracker &RT) { Error Err = Error::success(); + auto &JD = RT.getJITDylib(); for (auto *L : reverse(CurrentResourceManagers)) - Err = - joinErrors(std::move(Err), L->handleRemoveResources(RT.getKeyUnsafe())); + Err = joinErrors(std::move(Err), + L->handleRemoveResources(JD, RT.getKeyUnsafe())); for (auto &Q : QueriesToFail) Q->handleFailed( @@ -2316,7 +2317,8 @@ void ExecutionSession::transferResourceTracker(ResourceTracker &DstRT, auto &JD = DstRT.getJITDylib(); JD.transferTracker(DstRT, SrcRT); for (auto *L : reverse(ResourceManagers)) - L->handleTransferResources(DstRT.getKeyUnsafe(), SrcRT.getKeyUnsafe()); + L->handleTransferResources(JD, DstRT.getKeyUnsafe(), + SrcRT.getKeyUnsafe()); }); } @@ -2427,7 +2429,7 @@ void ExecutionSession::OL_applyQueryPhase1( // Add any non-candidates from the last JITDylib (if any) back on to the // list of definition candidates for this JITDylib, reset definition - // non-candiates to the empty set. + // non-candidates to the empty set. SymbolLookupSet Tmp; std::swap(IPLS->DefGeneratorNonCandidates, Tmp); IPLS->DefGeneratorCandidates.append(std::move(Tmp)); @@ -2909,13 +2911,13 @@ Error ExecutionSession::OL_notifyResolved(MaterializationResponsibility &MR, }); #ifndef NDEBUG for (auto &KV : Symbols) { - auto WeakFlags = JITSymbolFlags::Weak | JITSymbolFlags::Common; auto I = MR.SymbolFlags.find(KV.first); assert(I != MR.SymbolFlags.end() && "Resolving symbol outside this responsibility set"); assert(!I->second.hasMaterializationSideEffectsOnly() && "Can't resolve materialization-side-effects-only symbol"); - assert((KV.second.getFlags() & ~WeakFlags) == (I->second & ~WeakFlags) && + assert((KV.second.getFlags() & ~JITSymbolFlags::Common) == + (I->second & ~JITSymbolFlags::Common) && "Resolving symbol with incorrect flags"); } #endif |