LLVM 20.0.0git
|
#include "llvm/ADT/BitmaskEnum.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/FunctionExtras.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
#include "llvm/ExecutionEngine/JITLink/JITLinkDylib.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h"
#include "llvm/ExecutionEngine/Orc/Shared/WrapperFunctionUtils.h"
#include "llvm/ExecutionEngine/Orc/TaskDispatch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ExtensibleRTTI.h"
#include <atomic>
#include <deque>
#include <future>
#include <memory>
#include <vector>
Go to the source code of this file.
Classes | |
class | llvm::orc::ResourceTracker |
API to remove / transfer ownership of JIT resources. More... | |
class | llvm::orc::ResourceManager |
Listens for ResourceTracker operations. More... | |
class | llvm::orc::SymbolLookupSet |
A set of symbols to look up, each associated with a SymbolLookupFlags value. More... | |
struct | llvm::orc::SymbolAliasMapEntry |
class | llvm::orc::ResourceTrackerDefunct |
class | llvm::orc::FailedToMaterialize |
Used to notify a JITDylib that the given set of symbols failed to materialize. More... | |
class | llvm::orc::UnsatisfiedSymbolDependencies |
Used to report failure due to unsatisfiable symbol dependencies. More... | |
class | llvm::orc::SymbolsNotFound |
Used to notify clients when symbols can not be found during a lookup. More... | |
class | llvm::orc::SymbolsCouldNotBeRemoved |
Used to notify clients that a set of symbols could not be removed. More... | |
class | llvm::orc::MissingSymbolDefinitions |
Errors of this type should be returned if a module fails to include definitions that are claimed by the module's associated MaterializationResponsibility. More... | |
class | llvm::orc::UnexpectedSymbolDefinitions |
Errors of this type should be returned if a module contains definitions for symbols that are not claimed by the module's associated MaterializationResponsibility. More... | |
struct | llvm::orc::SymbolDependenceGroup |
A set of symbols and the their dependencies. More... | |
class | llvm::orc::MaterializationResponsibility |
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and JDs. More... | |
class | llvm::orc::MaterializationUnit |
A MaterializationUnit represents a set of symbol definitions that can be materialized as a group, or individually discarded (when overriding definitions are encountered). More... | |
struct | llvm::orc::MaterializationUnit::Interface |
class | llvm::orc::AbsoluteSymbolsMaterializationUnit |
A MaterializationUnit implementation for pre-existing absolute symbols. More... | |
class | llvm::orc::ReExportsMaterializationUnit |
A materialization unit for symbol aliases. More... | |
class | llvm::orc::AsynchronousSymbolQuery |
A symbol query that returns results via a callback when results are ready. More... | |
class | llvm::orc::LookupState |
Wraps state for a lookup-in-progress. More... | |
class | llvm::orc::DefinitionGenerator |
Definition generators can be attached to JITDylibs to generate new definitions for otherwise unresolved symbols during lookup. More... | |
class | llvm::orc::JITDylib |
Represents a JIT'd dynamic library. More... | |
class | llvm::orc::Platform |
Platforms set up standard symbols and mediate interactions between dynamic initializers (e.g. More... | |
class | llvm::orc::MaterializationTask |
A materialization task. More... | |
class | llvm::orc::LookupTask |
Lookups are usually run on the current thread, but in some cases they may be run as tasks, e.g. More... | |
class | llvm::orc::ExecutionSession |
An ExecutionSession represents a running JIT program. More... | |
class | llvm::orc::ReexportsGenerator |
ReexportsGenerator can be used with JITDylib::addGenerator to automatically re-export a subset of the source JITDylib's symbols in the target. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::orc |
Typedefs | |
using | llvm::orc::ResourceTrackerSP = IntrusiveRefCntPtr< ResourceTracker > |
using | llvm::orc::JITDylibSP = IntrusiveRefCntPtr< JITDylib > |
using | llvm::orc::ResourceKey = uintptr_t |
using | llvm::orc::SymbolNameSet = DenseSet< SymbolStringPtr > |
A set of symbol names (represented by SymbolStringPtrs for. | |
using | llvm::orc::SymbolNameVector = std::vector< SymbolStringPtr > |
A vector of symbol names. | |
using | llvm::orc::SymbolMap = DenseMap< SymbolStringPtr, ExecutorSymbolDef > |
A map from symbol names (as SymbolStringPtrs) to JITSymbols (address/flags pairs). | |
using | llvm::orc::SymbolFlagsMap = DenseMap< SymbolStringPtr, JITSymbolFlags > |
A map from symbol names (as SymbolStringPtrs) to JITSymbolFlags. | |
using | llvm::orc::SymbolDependenceMap = DenseMap< JITDylib *, SymbolNameSet > |
A map from JITDylibs to sets of symbols. | |
using | llvm::orc::JITDylibSearchOrder = std::vector< std::pair< JITDylib *, JITDylibLookupFlags > > |
A list of (JITDylib*, JITDylibLookupFlags) pairs to be used as a search order during symbol lookup. | |
using | llvm::orc::SymbolAliasMap = DenseMap< SymbolStringPtr, SymbolAliasMapEntry > |
A map of Symbols to (Symbol, Flags) pairs. | |
using | llvm::orc::SymbolsResolvedCallback = unique_function< void(Expected< SymbolMap >)> |
Callback to notify client that symbols have been resolved. | |
using | llvm::orc::RegisterDependenciesFunction = std::function< void(const SymbolDependenceMap &)> |
Callback to register the dependencies for a given query. | |
Enumerations | |
enum class | llvm::orc::JITDylibLookupFlags { llvm::orc::MatchExportedSymbolsOnly , llvm::orc::MatchAllSymbols } |
Lookup flags that apply to each dylib in the search order for a lookup. More... | |
enum class | llvm::orc::SymbolLookupFlags { llvm::orc::RequiredSymbol , llvm::orc::WeaklyReferencedSymbol } |
Lookup flags that apply to each symbol in a lookup. More... | |
enum class | llvm::orc::LookupKind { llvm::orc::Static , llvm::orc::DLSym } |
Describes the kind of lookup being performed. More... | |
enum class | llvm::orc::SymbolState : uint8_t { llvm::orc::Invalid , llvm::orc::NeverSearched , llvm::orc::Materializing , llvm::orc::Resolved , llvm::orc::Emitted , llvm::orc::Ready = 0x3f } |
Represents the state that a symbol has reached during materialization. More... | |
Functions | |
JITDylibSearchOrder | llvm::orc::makeJITDylibSearchOrder (ArrayRef< JITDylib * > JDs, JITDylibLookupFlags Flags=JITDylibLookupFlags::MatchExportedSymbolsOnly) |
Convenience function for creating a search order from an ArrayRef of JITDylib*, all with the same flags. | |
std::unique_ptr< AbsoluteSymbolsMaterializationUnit > | llvm::orc::absoluteSymbols (SymbolMap Symbols) |
Create an AbsoluteSymbolsMaterializationUnit with the given symbols. | |
std::unique_ptr< ReExportsMaterializationUnit > | llvm::orc::symbolAliases (SymbolAliasMap Aliases) |
Create a ReExportsMaterializationUnit with the given aliases. | |
std::unique_ptr< ReExportsMaterializationUnit > | llvm::orc::reexports (JITDylib &SourceJD, SymbolAliasMap Aliases, JITDylibLookupFlags SourceJDLookupFlags=JITDylibLookupFlags::MatchExportedSymbolsOnly) |
Create a materialization unit for re-exporting symbols from another JITDylib with alternative names/flags. | |
Expected< SymbolAliasMap > | llvm::orc::buildSimpleReexportsAliasMap (JITDylib &SourceJD, const SymbolNameSet &Symbols) |
Build a SymbolAliasMap for the common case where you want to re-export symbols from another JITDylib with the same linkage/flags. | |
Variables | |
RegisterDependenciesFunction | llvm::orc::NoDependenciesToRegister |
This can be used as the value for a RegisterDependenciesFunction if there are no dependants to register with. | |