003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/ExecutionEngine/Orc
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
ExecutionEngine
/
Orc
/
📁
..
📄
CompileOnDemandLayer.cpp
(12.91 KB)
📄
CompileUtils.cpp
(2.8 KB)
📄
Core.cpp
(71.56 KB)
📄
DebugUtils.cpp
(10.4 KB)
📄
ExecutionUtils.cpp
(13.7 KB)
📄
IRCompileLayer.cpp
(1.55 KB)
📄
IRTransformLayer.cpp
(1.17 KB)
📄
IndirectionUtils.cpp
(12.36 KB)
📄
JITTargetMachineBuilder.cpp
(3.71 KB)
📄
LLJIT.cpp
(41.6 KB)
📄
Layer.cpp
(7.61 KB)
📄
LazyReexports.cpp
(7.9 KB)
📄
Legacy.cpp
(2.08 KB)
📄
MachOPlatform.cpp
(17.2 KB)
📄
Mangling.cpp
(5.03 KB)
📄
NullResolver.cpp
(1.12 KB)
📄
ObjectLinkingLayer.cpp
(20.23 KB)
📄
ObjectTransformLayer.cpp
(1.33 KB)
📄
OrcABISupport.cpp
(41.44 KB)
📄
OrcCBindings.cpp
(5.73 KB)
📄
OrcCBindingsStack.h
(18.01 KB)
📄
OrcMCJITReplacement.cpp
(4.68 KB)
📄
OrcMCJITReplacement.h
(17.73 KB)
📄
OrcV2CBindings.cpp
(7.81 KB)
📄
RTDyldObjectLinkingLayer.cpp
(11 KB)
📄
SpeculateAnalyses.cpp
(9.8 KB)
📄
Speculation.cpp
(5.82 KB)
📄
ThreadSafeModule.cpp
(2.04 KB)
Editing: Legacy.cpp
//===------- Legacy.cpp - Adapters for ExecutionEngine API interop --------===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #include "llvm/ExecutionEngine/Orc/Legacy.h" namespace llvm { namespace orc { void SymbolResolver::anchor() {} JITSymbolResolverAdapter::JITSymbolResolverAdapter( ExecutionSession &ES, SymbolResolver &R, MaterializationResponsibility *MR) : ES(ES), R(R), MR(MR) {} void JITSymbolResolverAdapter::lookup(const LookupSet &Symbols, OnResolvedFunction OnResolved) { SymbolNameSet InternedSymbols; for (auto &S : Symbols) InternedSymbols.insert(ES.intern(S)); auto OnResolvedWithUnwrap = [OnResolved = std::move(OnResolved)]( Expected<SymbolMap> InternedResult) mutable { if (!InternedResult) { OnResolved(InternedResult.takeError()); return; } LookupResult Result; for (auto &KV : *InternedResult) Result[*KV.first] = std::move(KV.second); OnResolved(Result); }; auto Q = std::make_shared<AsynchronousSymbolQuery>( SymbolLookupSet(InternedSymbols), SymbolState::Resolved, std::move(OnResolvedWithUnwrap)); auto Unresolved = R.lookup(Q, InternedSymbols); if (Unresolved.empty()) { if (MR) MR->addDependenciesForAll(Q->QueryRegistrations); } else ES.legacyFailQuery(*Q, make_error<SymbolsNotFound>(std::move(Unresolved))); } Expected<JITSymbolResolverAdapter::LookupSet> JITSymbolResolverAdapter::getResponsibilitySet(const LookupSet &Symbols) { SymbolNameSet InternedSymbols; for (auto &S : Symbols) InternedSymbols.insert(ES.intern(S)); auto InternedResult = R.getResponsibilitySet(InternedSymbols); LookupSet Result; for (auto &S : InternedResult) { ResolvedStrings.insert(S); Result.insert(*S); } return Result; } } // End namespace orc. } // End namespace llvm.
Upload File
Create Folder