LLVM  12.0.0git
Classes | Typedefs | Enumerations | Functions | Variables
Orc.h File Reference
#include "llvm-c/Error.h"
#include "llvm-c/TargetMachine.h"
#include "llvm-c/Types.h"
Include dependency graph for Orc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  LLVMJITSymbolFlags
 Represents the linkage flags for a symbol definition. More...
 
struct  LLVMJITEvaluatedSymbol
 Represents an evaluated symbol address and flags. More...
 
struct  LLVMJITCSymbolMapPair
 Represents a pair of a symbol name and an evaluated symbol. More...
 
struct  LLVMOrcCLookupSetElement
 An element type for a symbol lookup set. More...
 

Typedefs

typedef uint8_t LLVMJITTargetSymbolFlags
 Represents target specific flags for a symbol definition. More...
 
typedef struct LLVMOrcOpaqueExecutionSession * LLVMOrcExecutionSessionRef
 A reference to an orc::ExecutionSession instance. More...
 
typedef void(* LLVMOrcErrorReporterFunction) (void *Ctx, LLVMErrorRef Err)
 Error reporter function. More...
 
typedef struct LLVMOrcOpaqueSymbolStringPool * LLVMOrcSymbolStringPoolRef
 A reference to an orc::SymbolStringPool. More...
 
typedef struct LLVMOrcOpaqueSymbolStringPoolEntry * LLVMOrcSymbolStringPoolEntryRef
 A reference to an orc::SymbolStringPool table entry. More...
 
typedef LLVMJITCSymbolMapPairLLVMOrcCSymbolMapPairs
 Represents a list of (SymbolStringPtr, JITEvaluatedSymbol) pairs that can be used to construct a SymbolMap. More...
 
typedef LLVMOrcCLookupSetElementLLVMOrcCLookupSet
 A set of symbols to look up / generate. More...
 
typedef struct LLVMOrcOpaqueMaterializationUnit * LLVMOrcMaterializationUnitRef
 A reference to an orc::MaterializationUnit. More...
 
typedef struct LLVMOrcOpaqueJITDylib * LLVMOrcJITDylibRef
 A reference to an orc::JITDylib instance. More...
 
typedef struct LLVMOrcOpaqueResourceTracker * LLVMOrcResourceTrackerRef
 A reference to an orc::ResourceTracker instance. More...
 
typedef struct LLVMOrcOpaqueDefinitionGenerator * LLVMOrcDefinitionGeneratorRef
 A reference to an orc::DefinitionGenerator. More...
 
typedef struct LLVMOrcOpaqueLookupState * LLVMOrcLookupStateRef
 An opaque lookup state object. More...
 
typedef LLVMErrorRef(* LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction) (LLVMOrcDefinitionGeneratorRef GeneratorObj, void *Ctx, LLVMOrcLookupStateRef *LookupState, LLVMOrcLookupKind Kind, LLVMOrcJITDylibRef JD, LLVMOrcJITDylibLookupFlags JDLookupFlags, LLVMOrcCLookupSet LookupSet, size_t LookupSetSize)
 A custom generator function. More...
 
typedef int(* LLVMOrcSymbolPredicate) (void *Ctx, LLVMOrcSymbolStringPoolEntryRef Sym)
 Predicate function for SymbolStringPoolEntries. More...
 
typedef struct LLVMOrcOpaqueThreadSafeContext * LLVMOrcThreadSafeContextRef
 A reference to an orc::ThreadSafeContext instance. More...
 
typedef struct LLVMOrcOpaqueThreadSafeModule * LLVMOrcThreadSafeModuleRef
 A reference to an orc::ThreadSafeModule instance. More...
 
typedef struct LLVMOrcOpaqueJITTargetMachineBuilder * LLVMOrcJITTargetMachineBuilderRef
 A reference to an orc::JITTargetMachineBuilder instance. More...
 
typedef struct LLVMOrcOpaqueObjectLayer * LLVMOrcObjectLayerRef
 A reference to an orc::ObjectLayer instance. More...
 

Enumerations

enum  LLVMJITSymbolGenericFlags { LLVMJITSymbolGenericFlagsExported = 1U << 0, LLVMJITSymbolGenericFlagsWeak = 1U << 1 }
 Represents generic linkage flags for a symbol definition. More...
 
enum  LLVMOrcLookupKind { LLVMOrcLookupKindStatic, LLVMOrcLookupKindDLSym }
 Lookup kind. More...
 
enum  LLVMOrcJITDylibLookupFlags { LLVMOrcJITDylibLookupFlagsMatchExportedSymbolsOnly, LLVMOrcJITDylibLookupFlagsMatchAllSymbols }
 JITDylib lookup flags. More...
 
enum  LLVMOrcSymbolLookupFlags { LLVMOrcSymbolLookupFlagsRequiredSymbol, LLVMOrcSymbolLookupFlagsWeaklyReferencedSymbol }
 Symbol lookup flags for lookup sets. More...
 

Functions

void LLVMOrcExecutionSessionSetErrorReporter (LLVMOrcExecutionSessionRef ES, LLVMOrcErrorReporterFunction ReportError, void *Ctx)
 Attach a custom error reporter function to the ExecutionSession. More...
 
LLVMOrcSymbolStringPoolRef LLVMOrcExecutionSessionGetSymbolStringPool (LLVMOrcExecutionSessionRef ES)
 Return a reference to the SymbolStringPool for an ExecutionSession. More...
 
void LLVMOrcSymbolStringPoolClearDeadEntries (LLVMOrcSymbolStringPoolRef SSP)
 Clear all unreferenced symbol string pool entries. More...
 
LLVMOrcSymbolStringPoolEntryRef LLVMOrcExecutionSessionIntern (LLVMOrcExecutionSessionRef ES, const char *Name)
 Intern a string in the ExecutionSession's SymbolStringPool and return a reference to it. More...
 
void LLVMOrcRetainSymbolStringPoolEntry (LLVMOrcSymbolStringPoolEntryRef S)
 Increments the ref-count for a SymbolStringPool entry. More...
 
void LLVMOrcReleaseSymbolStringPoolEntry (LLVMOrcSymbolStringPoolEntryRef S)
 Reduces the ref-count for of a SymbolStringPool entry. More...
 
const charLLVMOrcSymbolStringPoolEntryStr (LLVMOrcSymbolStringPoolEntryRef S)
 
void LLVMOrcReleaseResourceTracker (LLVMOrcResourceTrackerRef RT)
 Reduces the ref-count of a ResourceTracker. More...
 
void LLVMOrcResourceTrackerTransferTo (LLVMOrcResourceTrackerRef SrcRT, LLVMOrcResourceTrackerRef DstRT)
 Transfers tracking of all resources associated with resource tracker SrcRT to resource tracker DstRT. More...
 
LLVMErrorRef LLVMOrcResourceTrackerRemove (LLVMOrcResourceTrackerRef RT)
 Remove all resources associated with the given tracker. More...
 
void LLVMOrcDisposeDefinitionGenerator (LLVMOrcDefinitionGeneratorRef DG)
 Dispose of a JITDylib::DefinitionGenerator. More...
 
void LLVMOrcDisposeMaterializationUnit (LLVMOrcMaterializationUnitRef MU)
 Dispose of a MaterializationUnit. More...
 
LLVMOrcMaterializationUnitRef LLVMOrcAbsoluteSymbols (LLVMOrcCSymbolMapPairs Syms, size_t NumPairs)
 Create a MaterializationUnit to define the given symbols as pointing to the corresponding raw addresses. More...
 
LLVMOrcJITDylibRef LLVMOrcExecutionSessionCreateBareJITDylib (LLVMOrcExecutionSessionRef ES, const char *Name)
 Create a "bare" JITDylib. More...
 
LLVMErrorRef LLVMOrcExecutionSessionCreateJITDylib (LLVMOrcExecutionSessionRef ES, LLVMOrcJITDylibRef *Result, const char *Name)
 Create a JITDylib. More...
 
LLVMOrcJITDylibRef LLVMOrcExecutionSessionGetJITDylibByName (const char *Name)
 Returns the JITDylib with the given name, or NULL if no such JITDylib exists. More...
 
LLVMOrcResourceTrackerRef LLVMOrcJITDylibCreateResourceTracker (LLVMOrcJITDylibRef JD)
 Return a reference to a newly created resource tracker associated with JD. More...
 
LLVMOrcResourceTrackerRef LLVMOrcJITDylibGetDefaultResourceTracker (LLVMOrcJITDylibRef JD)
 Return a reference to the default resource tracker for the given JITDylib. More...
 
LLVMErrorRef LLVMOrcJITDylibDefine (LLVMOrcJITDylibRef JD, LLVMOrcMaterializationUnitRef MU)
 Add the given MaterializationUnit to the given JITDylib. More...
 
LLVMErrorRef LLVMOrcJITDylibClear (LLVMOrcJITDylibRef JD)
 Calls remove on all trackers associated with this JITDylib, see JITDylib::clear(). More...
 
void LLVMOrcJITDylibAddGenerator (LLVMOrcJITDylibRef JD, LLVMOrcDefinitionGeneratorRef DG)
 Add a DefinitionGenerator to the given JITDylib. More...
 
LLVMOrcDefinitionGeneratorRef LLVMOrcCreateCustomCAPIDefinitionGenerator (LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction F, void *Ctx)
 Create a custom generator. More...
 
LLVMErrorRef LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess (LLVMOrcDefinitionGeneratorRef *Result, char GlobalPrefx, LLVMOrcSymbolPredicate Filter, void *FilterCtx)
 Get a DynamicLibrarySearchGenerator that will reflect process symbols into the JITDylib. More...
 
LLVMOrcThreadSafeContextRef LLVMOrcCreateNewThreadSafeContext (void)
 Create a ThreadSafeContext containing a new LLVMContext. More...
 
LLVMContextRef LLVMOrcThreadSafeContextGetContext (LLVMOrcThreadSafeContextRef TSCtx)
 Get a reference to the wrapped LLVMContext. More...
 
void LLVMOrcDisposeThreadSafeContext (LLVMOrcThreadSafeContextRef TSCtx)
 Dispose of a ThreadSafeContext. More...
 
LLVMOrcThreadSafeModuleRef LLVMOrcCreateNewThreadSafeModule (LLVMModuleRef M, LLVMOrcThreadSafeContextRef TSCtx)
 Create a ThreadSafeModule wrapper around the given LLVM module. More...
 
void LLVMOrcDisposeThreadSafeModule (LLVMOrcThreadSafeModuleRef TSM)
 Dispose of a ThreadSafeModule. More...
 
LLVMErrorRef LLVMOrcJITTargetMachineBuilderDetectHost (LLVMOrcJITTargetMachineBuilderRef *Result)
 Create a JITTargetMachineBuilder by detecting the host. More...
 
LLVMOrcJITTargetMachineBuilderRef LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine (LLVMTargetMachineRef TM)
 Create a JITTargetMachineBuilder from the given TargetMachine template. More...
 
void LLVMOrcDisposeJITTargetMachineBuilder (LLVMOrcJITTargetMachineBuilderRef JTMB)
 Dispose of a JITTargetMachineBuilder. More...
 
void LLVMOrcDisposeObjectLayer (LLVMOrcObjectLayerRef ObjLayer)
 Dispose of an ObjectLayer. More...
 

Variables

LLVM_C_EXTERN_C_BEGIN typedef uint64_t LLVMOrcJITTargetAddress
 Represents an address in the target process. More...
 

Typedef Documentation

◆ LLVMJITTargetSymbolFlags

typedef uint8_t LLVMJITTargetSymbolFlags

Represents target specific flags for a symbol definition.

Definition at line 52 of file Orc.h.

◆ LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction

typedef LLVMErrorRef(* LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction) (LLVMOrcDefinitionGeneratorRef GeneratorObj, void *Ctx, LLVMOrcLookupStateRef *LookupState, LLVMOrcLookupKind Kind, LLVMOrcJITDylibRef JD, LLVMOrcJITDylibLookupFlags JDLookupFlags, LLVMOrcCLookupSet LookupSet, size_t LookupSetSize)

A custom generator function.

This can be used to create a custom generator object using LLVMOrcCreateCustomCAPIDefinitionGenerator. The resulting object can be attached to a JITDylib, via LLVMOrcJITDylibAddGenerator, to receive callbacks when lookups fail to match existing definitions.

GeneratorObj will contain the address of the custom generator object.

Ctx will contain the context object passed to LLVMOrcCreateCustomCAPIDefinitionGenerator.

LookupState will contain a pointer to an LLVMOrcLookupStateRef object. This can optionally be modified to make the definition generation process asynchronous: If the LookupStateRef value is copied, and the original LLVMOrcLookupStateRef set to null, the lookup will be suspended. Once the asynchronous definition process has been completed clients must call LLVMOrcLookupStateContinueLookup to continue the lookup (this should be done unconditionally, even if errors have occurred in the mean time, to free the lookup state memory and notify the query object of the failures. If LookupState is captured this function must return LLVMErrorSuccess.

The Kind argument can be inspected to determine the lookup kind (e.g. as-if-during-static-link, or as-if-during-dlsym).

The JD argument specifies which JITDylib the definitions should be generated into.

The JDLookupFlags argument can be inspected to determine whether the original lookup included non-exported symobls.

Finally, the LookupSet argument contains the set of symbols that could not be found in JD already (the set of generation candidates).

Definition at line 225 of file Orc.h.

◆ LLVMOrcCLookupSet

A set of symbols to look up / generate.

The list is terminated with an element containing a null pointer for the Name field.

If a client creates an instance of this type then they are responsible for freeing it, and for ensuring that all strings have been retained over the course of its life. Clients receiving a copy from a callback are not responsible for managing lifetime or retain counts.

Definition at line 155 of file Orc.h.

◆ LLVMOrcCSymbolMapPairs

Represents a list of (SymbolStringPtr, JITEvaluatedSymbol) pairs that can be used to construct a SymbolMap.

Definition at line 103 of file Orc.h.

◆ LLVMOrcDefinitionGeneratorRef

typedef struct LLVMOrcOpaqueDefinitionGenerator* LLVMOrcDefinitionGeneratorRef

A reference to an orc::DefinitionGenerator.

Definition at line 175 of file Orc.h.

◆ LLVMOrcErrorReporterFunction

typedef void(* LLVMOrcErrorReporterFunction) (void *Ctx, LLVMErrorRef Err)

Error reporter function.

Definition at line 78 of file Orc.h.

◆ LLVMOrcExecutionSessionRef

typedef struct LLVMOrcOpaqueExecutionSession* LLVMOrcExecutionSessionRef

A reference to an orc::ExecutionSession instance.

Definition at line 73 of file Orc.h.

◆ LLVMOrcJITDylibRef

typedef struct LLVMOrcOpaqueJITDylib* LLVMOrcJITDylibRef

A reference to an orc::JITDylib instance.

Definition at line 165 of file Orc.h.

◆ LLVMOrcJITTargetMachineBuilderRef

typedef struct LLVMOrcOpaqueJITTargetMachineBuilder* LLVMOrcJITTargetMachineBuilderRef

A reference to an orc::JITTargetMachineBuilder instance.

Definition at line 250 of file Orc.h.

◆ LLVMOrcLookupStateRef

typedef struct LLVMOrcOpaqueLookupState* LLVMOrcLookupStateRef

An opaque lookup state object.

Instances of this type can be captured to suspend a lookup while a custom generator function attempts to produce a definition.

If a client captures a lookup state object then they must eventually call LLVMOrcLookupStateContinueLookup to restart the lookup. This is required in order to release memory allocated for the lookup state, even if errors have occurred while the lookup was suspended (if these errors have made the lookup impossible to complete then it will issue its own error before destruction).

Definition at line 190 of file Orc.h.

◆ LLVMOrcMaterializationUnitRef

typedef struct LLVMOrcOpaqueMaterializationUnit* LLVMOrcMaterializationUnitRef

A reference to an orc::MaterializationUnit.

Definition at line 160 of file Orc.h.

◆ LLVMOrcObjectLayerRef

typedef struct LLVMOrcOpaqueObjectLayer* LLVMOrcObjectLayerRef

A reference to an orc::ObjectLayer instance.

Definition at line 256 of file Orc.h.

◆ LLVMOrcResourceTrackerRef

typedef struct LLVMOrcOpaqueResourceTracker* LLVMOrcResourceTrackerRef

A reference to an orc::ResourceTracker instance.

Definition at line 170 of file Orc.h.

◆ LLVMOrcSymbolPredicate

typedef int(* LLVMOrcSymbolPredicate) (void *Ctx, LLVMOrcSymbolStringPoolEntryRef Sym)

Predicate function for SymbolStringPoolEntries.

Definition at line 234 of file Orc.h.

◆ LLVMOrcSymbolStringPoolEntryRef

typedef struct LLVMOrcOpaqueSymbolStringPoolEntry* LLVMOrcSymbolStringPoolEntryRef

A reference to an orc::SymbolStringPool table entry.

Definition at line 88 of file Orc.h.

◆ LLVMOrcSymbolStringPoolRef

typedef struct LLVMOrcOpaqueSymbolStringPool* LLVMOrcSymbolStringPoolRef

A reference to an orc::SymbolStringPool.

Definition at line 83 of file Orc.h.

◆ LLVMOrcThreadSafeContextRef

typedef struct LLVMOrcOpaqueThreadSafeContext* LLVMOrcThreadSafeContextRef

A reference to an orc::ThreadSafeContext instance.

Definition at line 240 of file Orc.h.

◆ LLVMOrcThreadSafeModuleRef

typedef struct LLVMOrcOpaqueThreadSafeModule* LLVMOrcThreadSafeModuleRef

A reference to an orc::ThreadSafeModule instance.

Definition at line 245 of file Orc.h.

Enumeration Type Documentation

◆ LLVMJITSymbolGenericFlags

Represents generic linkage flags for a symbol definition.

Enumerator
LLVMJITSymbolGenericFlagsExported 
LLVMJITSymbolGenericFlagsWeak 

Definition at line 44 of file Orc.h.

◆ LLVMOrcJITDylibLookupFlags

JITDylib lookup flags.

This can be used by definition generators when deciding whether to produce a definition for a requested symbol.

This enum should be kept in sync with llvm::orc::JITDylibLookupFlags.

Enumerator
LLVMOrcJITDylibLookupFlagsMatchExportedSymbolsOnly 
LLVMOrcJITDylibLookupFlagsMatchAllSymbols 

Definition at line 122 of file Orc.h.

◆ LLVMOrcLookupKind

Lookup kind.

This can be used by definition generators when deciding whether to produce a definition for a requested symbol.

This enum should be kept in sync with llvm::orc::LookupKind.

Enumerator
LLVMOrcLookupKindStatic 
LLVMOrcLookupKindDLSym 

Definition at line 111 of file Orc.h.

◆ LLVMOrcSymbolLookupFlags

Symbol lookup flags for lookup sets.

This should be kept in sync with llvm::orc::SymbolLookupFlags.

Enumerator
LLVMOrcSymbolLookupFlagsRequiredSymbol 
LLVMOrcSymbolLookupFlagsWeaklyReferencedSymbol 

Definition at line 131 of file Orc.h.

Function Documentation

◆ LLVMOrcAbsoluteSymbols()

LLVMOrcMaterializationUnitRef LLVMOrcAbsoluteSymbols ( LLVMOrcCSymbolMapPairs  Syms,
size_t  NumPairs 
)

◆ LLVMOrcCreateCustomCAPIDefinitionGenerator()

LLVMOrcDefinitionGeneratorRef LLVMOrcCreateCustomCAPIDefinitionGenerator ( LLVMOrcCAPIDefinitionGeneratorTryToGenerateFunction  F,
void *  Ctx 
)

Create a custom generator.

Definition at line 302 of file OrcV2CBindings.cpp.

References F(), and llvm::wrap().

◆ LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess()

LLVMErrorRef LLVMOrcCreateDynamicLibrarySearchGeneratorForProcess ( LLVMOrcDefinitionGeneratorRef Result,
char  GlobalPrefx,
LLVMOrcSymbolPredicate  Filter,
void *  FilterCtx 
)

Get a DynamicLibrarySearchGenerator that will reflect process symbols into the JITDylib.

On success the resulting generator is owned by the client. Ownership is typically transferred by adding the instance to a JITDylib using LLVMOrcJITDylibAddGenerator,

The GlobalPrefix argument specifies the character that appears on the front of linker-mangled symbols for the target platform (e.g. '_' on MachO). If non-null, this character will be stripped from the start of all symbol strings before passing the remaining substring to dlsym.

The optional Filter and Ctx arguments can be used to supply a symbol name filter: Only symbols for which the filter returns true will be visible to JIT'd code. If the Filter argument is null then all process symbols will be visible to JIT'd code. Note that the symbol name passed to the Filter function is the full mangled symbol: The client is responsible for stripping the global prefix if present.

Definition at line 308 of file OrcV2CBindings.cpp.

References assert(), llvm::Filter, llvm::orc::DynamicLibrarySearchGenerator::GetForCurrentProcess(), llvm::orc::OrcV2CAPIHelper::getRawPoolEntryPtr(), GlobalPrefix, LLVMErrorSuccess, and llvm::wrap().

◆ LLVMOrcCreateNewThreadSafeContext()

LLVMOrcThreadSafeContextRef LLVMOrcCreateNewThreadSafeContext ( void  )

Create a ThreadSafeContext containing a new LLVMContext.

Ownership of the underlying ThreadSafeContext data is shared: Clients can and should dispose of their ThreadSafeContext as soon as they no longer need to refer to it directly. Other references (e.g. from ThreadSafeModules) will keep the data alive as long as it is needed.

Definition at line 333 of file OrcV2CBindings.cpp.

References llvm::wrap().

◆ LLVMOrcCreateNewThreadSafeModule()

LLVMOrcThreadSafeModuleRef LLVMOrcCreateNewThreadSafeModule ( LLVMModuleRef  M,
LLVMOrcThreadSafeContextRef  TSCtx 
)

Create a ThreadSafeModule wrapper around the given LLVM module.

This takes ownership of the M argument which should not be disposed of or referenced after this function returns.

Ownership of the ThreadSafeModule is unique: If it is transferred to the JIT (e.g. by LLVMOrcLLJITAddLLVMIRModule) then the client is no longer responsible for it. If it is not transferred to the JIT then the client should call LLVMOrcDisposeThreadSafeModule to dispose of it.

Definition at line 347 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcDisposeDefinitionGenerator()

void LLVMOrcDisposeDefinitionGenerator ( LLVMOrcDefinitionGeneratorRef  DG)

Dispose of a JITDylib::DefinitionGenerator.

This should only be called if ownership has not been passed to a JITDylib (e.g. because some error prevented the client from calling LLVMOrcJITDylibAddGenerator).

Definition at line 231 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcDisposeJITTargetMachineBuilder()

void LLVMOrcDisposeJITTargetMachineBuilder ( LLVMOrcJITTargetMachineBuilderRef  JTMB)

Dispose of a JITTargetMachineBuilder.

Definition at line 391 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcDisposeMaterializationUnit()

void LLVMOrcDisposeMaterializationUnit ( LLVMOrcMaterializationUnitRef  MU)

Dispose of a MaterializationUnit.

Definition at line 235 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcDisposeObjectLayer()

void LLVMOrcDisposeObjectLayer ( LLVMOrcObjectLayerRef  ObjLayer)

Dispose of an ObjectLayer.

◆ LLVMOrcDisposeThreadSafeContext()

void LLVMOrcDisposeThreadSafeContext ( LLVMOrcThreadSafeContextRef  TSCtx)

Dispose of a ThreadSafeContext.

Definition at line 342 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcDisposeThreadSafeModule()

void LLVMOrcDisposeThreadSafeModule ( LLVMOrcThreadSafeModuleRef  TSM)

Dispose of a ThreadSafeModule.

This should only be called if ownership has not been passed to LLJIT (e.g. because some error prevented the client from adding this to the JIT).

Definition at line 353 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcExecutionSessionCreateBareJITDylib()

LLVMOrcJITDylibRef LLVMOrcExecutionSessionCreateBareJITDylib ( LLVMOrcExecutionSessionRef  ES,
const char Name 
)

Create a "bare" JITDylib.

The client is responsible for ensuring that the JITDylib's name is unique, e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.

This call does not install any library code or symbols into the newly created JITDylib. The client is responsible for all configuration.

Definition at line 260 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcExecutionSessionCreateJITDylib()

LLVMErrorRef LLVMOrcExecutionSessionCreateJITDylib ( LLVMOrcExecutionSessionRef  ES,
LLVMOrcJITDylibRef Result,
const char Name 
)

Create a JITDylib.

The client is responsible for ensuring that the JITDylib's name is unique, e.g. by calling LLVMOrcExecutionSessionGetJTIDylibByName first.

If a Platform is attached to the ExecutionSession then Platform::setupJITDylib will be called to install standard platform symbols (e.g. standard library interposes). If no Platform is installed then this call is equivalent to LLVMExecutionSessionRefCreateBareJITDylib and will always return success.

Definition at line 266 of file OrcV2CBindings.cpp.

References LLVMErrorSuccess, llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcExecutionSessionGetJITDylibByName()

LLVMOrcJITDylibRef LLVMOrcExecutionSessionGetJITDylibByName ( const char Name)

Returns the JITDylib with the given name, or NULL if no such JITDylib exists.

◆ LLVMOrcExecutionSessionGetSymbolStringPool()

LLVMOrcSymbolStringPoolRef LLVMOrcExecutionSessionGetSymbolStringPool ( LLVMOrcExecutionSessionRef  ES)

Return a reference to the SymbolStringPool for an ExecutionSession.

Ownership of the pool remains with the ExecutionSession: The caller is not required to free the pool.

Definition at line 174 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcExecutionSessionIntern()

LLVMOrcSymbolStringPoolEntryRef LLVMOrcExecutionSessionIntern ( LLVMOrcExecutionSessionRef  ES,
const char Name 
)

Intern a string in the ExecutionSession's SymbolStringPool and return a reference to it.

This increments the ref-count of the pool entry, and the returned value should be released once the client is done with it by calling LLVMOrReleaseSymbolStringPoolEntry.

Since strings are uniqued within the SymbolStringPool LLVMOrcSymbolStringPoolEntryRefs can be compared by value to test string equality.

Note that this function does not perform linker-mangling on the string.

Definition at line 183 of file OrcV2CBindings.cpp.

References llvm::orc::OrcV2CAPIHelper::releaseSymbolStringPtr(), llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcExecutionSessionSetErrorReporter()

void LLVMOrcExecutionSessionSetErrorReporter ( LLVMOrcExecutionSessionRef  ES,
LLVMOrcErrorReporterFunction  ReportError,
void *  Ctx 
)

Attach a custom error reporter function to the ExecutionSession.

The error reporter will be called to deliver failure notices that can not be directly reported to a caller. For example, failure to resolve symbols in the JIT linker is typically reported via the error reporter (callers requesting definitions from the JIT will typically be delivered a FailureToMaterialize error instead).

Definition at line 166 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcJITDylibAddGenerator()

void LLVMOrcJITDylibAddGenerator ( LLVMOrcJITDylibRef  JD,
LLVMOrcDefinitionGeneratorRef  DG 
)

Add a DefinitionGenerator to the given JITDylib.

The JITDylib will take ownership of the given generator: The client is no longer responsible for managing its memory.

Definition at line 297 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcJITDylibClear()

LLVMErrorRef LLVMOrcJITDylibClear ( LLVMOrcJITDylibRef  JD)

Calls remove on all trackers associated with this JITDylib, see JITDylib::clear().

Definition at line 293 of file OrcV2CBindings.cpp.

References clear(), llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcJITDylibCreateResourceTracker()

LLVMOrcResourceTrackerRef LLVMOrcJITDylibCreateResourceTracker ( LLVMOrcJITDylibRef  JD)

Return a reference to a newly created resource tracker associated with JD.

The tracker is returned with an initial ref-count of 1, and must be released with LLVMOrcReleaseResourceTracker when no longer needed.

Definition at line 201 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcJITDylibDefine()

LLVMErrorRef LLVMOrcJITDylibDefine ( LLVMOrcJITDylibRef  JD,
LLVMOrcMaterializationUnitRef  MU 
)

Add the given MaterializationUnit to the given JITDylib.

If this operation succeeds then JITDylib JD will take ownership of MU. If the operation fails then ownership remains with the caller who should call LLVMOrcDisposeMaterializationUnit to destroy it.

Definition at line 282 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcJITDylibGetDefaultResourceTracker()

LLVMOrcResourceTrackerRef LLVMOrcJITDylibGetDefaultResourceTracker ( LLVMOrcJITDylibRef  JD)

Return a reference to the default resource tracker for the given JITDylib.

This operation will increase the retain count of the tracker: Clients should call LLVMOrcReleaseResourceTracker when the result is no longer needed.

Definition at line 209 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine()

LLVMOrcJITTargetMachineBuilderRef LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine ( LLVMTargetMachineRef  TM)

Create a JITTargetMachineBuilder from the given TargetMachine template.

This operation takes ownership of the given TargetMachine and destroys it before returing. The resulting JITTargetMachineBuilder is owned by the client and must be passed to a consuming operation (e.g. LLVMOrcCreateLLJITBuilder) or disposed of by calling LLVMOrcDisposeJITTargetMachineBuilder.

Definition at line 372 of file OrcV2CBindings.cpp.

References LLVMDisposeTargetMachine(), llvm::SystemZISD::TM, llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcJITTargetMachineBuilderDetectHost()

LLVMErrorRef LLVMOrcJITTargetMachineBuilderDetectHost ( LLVMOrcJITTargetMachineBuilderRef Result)

Create a JITTargetMachineBuilder by detecting the host.

On success the client owns the resulting JITTargetMachineBuilder. It must be passed to a consuming operation (e.g. LLVMOrcCreateLLJITBuilder) or disposed of by calling LLVMOrcDisposeJITTargetMachineBuilder.

Definition at line 357 of file OrcV2CBindings.cpp.

References assert(), llvm::orc::JITTargetMachineBuilder::detectHost(), LLVMErrorSuccess, llvm::move(), and llvm::wrap().

◆ LLVMOrcReleaseResourceTracker()

void LLVMOrcReleaseResourceTracker ( LLVMOrcResourceTrackerRef  RT)

Reduces the ref-count of a ResourceTracker.

Definition at line 215 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcReleaseSymbolStringPoolEntry()

void LLVMOrcReleaseSymbolStringPoolEntry ( LLVMOrcSymbolStringPoolEntryRef  S)

Reduces the ref-count for of a SymbolStringPool entry.

Definition at line 192 of file OrcV2CBindings.cpp.

References llvm::orc::OrcV2CAPIHelper::releasePoolEntry(), and llvm::unwrap().

◆ LLVMOrcResourceTrackerRemove()

LLVMErrorRef LLVMOrcResourceTrackerRemove ( LLVMOrcResourceTrackerRef  RT)

Remove all resources associated with the given tracker.

See ResourceTracker::remove().

Definition at line 226 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMOrcResourceTrackerTransferTo()

void LLVMOrcResourceTrackerTransferTo ( LLVMOrcResourceTrackerRef  SrcRT,
LLVMOrcResourceTrackerRef  DstRT 
)

Transfers tracking of all resources associated with resource tracker SrcRT to resource tracker DstRT.

Definition at line 220 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcRetainSymbolStringPoolEntry()

void LLVMOrcRetainSymbolStringPoolEntry ( LLVMOrcSymbolStringPoolEntryRef  S)

Increments the ref-count for a SymbolStringPool entry.

Definition at line 188 of file OrcV2CBindings.cpp.

References llvm::orc::OrcV2CAPIHelper::retainPoolEntry(), and llvm::unwrap().

◆ LLVMOrcSymbolStringPoolClearDeadEntries()

void LLVMOrcSymbolStringPoolClearDeadEntries ( LLVMOrcSymbolStringPoolRef  SSP)

Clear all unreferenced symbol string pool entries.

This can be called at any time to release unused entries in the ExecutionSession's string pool. Since it locks the pool (preventing interning of any new strings) it is recommended that it only be called infrequently, ideally when the caller has reason to believe that some entries will have become unreferenced, e.g. after removing a module or closing a JITDylib.

Definition at line 178 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcSymbolStringPoolEntryStr()

const char* LLVMOrcSymbolStringPoolEntryStr ( LLVMOrcSymbolStringPoolEntryRef  S)

Definition at line 196 of file OrcV2CBindings.cpp.

References llvm::unwrap().

◆ LLVMOrcThreadSafeContextGetContext()

LLVMContextRef LLVMOrcThreadSafeContextGetContext ( LLVMOrcThreadSafeContextRef  TSCtx)

Get a reference to the wrapped LLVMContext.

Definition at line 338 of file OrcV2CBindings.cpp.

References llvm::unwrap(), and llvm::wrap().

Variable Documentation

◆ LLVMOrcJITTargetAddress

LLVM_C_EXTERN_C_BEGIN typedef uint64_t LLVMOrcJITTargetAddress

Represents an address in the target process.

Definition at line 39 of file Orc.h.