LLVM  14.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/WrapperFunctionUtils.h"
#include "llvm/ExecutionEngine/Orc/TaskDispatch.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ExtensibleRTTI.h"
#include <atomic>
#include <future>
#include <memory>
#include <vector>
Include dependency graph for Core.h:
This graph shows which files directly or indirectly include this file:

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::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...
 
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...
 
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
 A symbol table that supports asynchoronous symbol queries. 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::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

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::orc
 

Typedefs

using llvm::orc::ResourceTrackerSP = uint8_t 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. More...
 
using llvm::orc::SymbolNameVector = std::vector< SymbolStringPtr >
 A vector of symbol names. More...
 
using llvm::orc::SymbolMap = DenseMap< SymbolStringPtr, JITEvaluatedSymbol >
 A map from symbol names (as SymbolStringPtrs) to JITSymbols (address/flags pairs). More...
 
using llvm::orc::SymbolFlagsMap = DenseMap< SymbolStringPtr, JITSymbolFlags >
 A map from symbol names (as SymbolStringPtrs) to JITSymbolFlags. More...
 
using llvm::orc::SymbolDependenceMap = DenseMap< JITDylib *, SymbolNameSet >
 A map from JITDylibs to sets of symbols. More...
 
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. More...
 
using llvm::orc::SymbolAliasMap = DenseMap< SymbolStringPtr, SymbolAliasMapEntry >
 A map of Symbols to (Symbol, Flags) pairs. More...
 
using llvm::orc::SymbolsResolvedCallback = unique_function< void(Expected< SymbolMap >)>
 Callback to notify client that symbols have been resolved. More...
 
using llvm::orc::RegisterDependenciesFunction = std::function< void(const SymbolDependenceMap &)>
 Callback to register the dependencies for a given query. More...
 

Enumerations

enum  llvm::orc::JITDylibLookupFlags { llvm::orc::JITDylibLookupFlags::MatchExportedSymbolsOnly, llvm::orc::JITDylibLookupFlags::MatchAllSymbols }
 Lookup flags that apply to each dylib in the search order for a lookup. More...
 
enum  llvm::orc::SymbolLookupFlags { llvm::orc::SymbolLookupFlags::RequiredSymbol, llvm::orc::SymbolLookupFlags::WeaklyReferencedSymbol }
 Lookup flags that apply to each symbol in a lookup. More...
 
enum  llvm::orc::LookupKind { llvm::orc::LookupKind::Static, llvm::orc::LookupKind::DLSym }
 Describes the kind of lookup being performed. More...
 
enum  llvm::orc::SymbolState : uint8_t {
  llvm::orc::SymbolState::Invalid, llvm::orc::SymbolState::NeverSearched, llvm::orc::SymbolState::Materializing, llvm::orc::SymbolState::Resolved,
  llvm::orc::SymbolState::Emitted, llvm::orc::SymbolState::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. More...
 
std::unique_ptr< AbsoluteSymbolsMaterializationUnit > llvm::orc::absoluteSymbols (SymbolMap Symbols)
 Create an AbsoluteSymbolsMaterializationUnit with the given symbols. More...
 
std::unique_ptr< ReExportsMaterializationUnit > llvm::orc::symbolAliases (SymbolAliasMap Aliases)
 Create a ReExportsMaterializationUnit with the given aliases. More...
 
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. More...
 
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. More...
 

Variables

RegisterDependenciesFunction llvm::orc::NoDependenciesToRegister
 This can be used as the value for a RegisterDependenciesFunction if there are no dependants to register with. More...