LLVM 19.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions | Variables
Core.h File Reference
#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.