llvm-hs-9.0.1: General purpose LLVM bindings
Safe HaskellNone
LanguageHaskell2010

LLVM.Internal.OrcJIT

Synopsis

Documentation

data JITSymbolFlags Source #

Contrary to the C++ interface, we do not store the HasError flag here. Instead decoding a JITSymbol produces a sumtype based on whether that flag is set or not.

Constructors

JITSymbolFlags 

Fields

data JITSymbol Source #

Constructors

JITSymbol 

Fields

newtype SymbolResolver Source #

Specifies how external symbols in a module added to a CompileLayer should be resolved.

Instances

Instances details
MonadIO m => EncodeM m SymbolResolver (IORef [IO ()] -> Ptr ExecutionSession -> IO (Ptr SymbolResolver)) Source # 
Instance details

Defined in LLVM.Internal.OrcJIT

withSymbolResolver :: ExecutionSession -> SymbolResolver -> (Ptr SymbolResolver -> IO a) -> IO a Source #

Create a SymbolResolver that can be used with the JIT.

allocWithCleanup :: IORef [IO ()] -> IO a -> (a -> IO ()) -> IO a Source #

Allocate the resource and register it for cleanup.

allocFunPtr :: IORef [IO ()] -> IO (FunPtr a) -> IO (FunPtr a) Source #

Allocate a function pointer and register it for cleanup.

disposeExecutionSession :: ExecutionSession -> IO () Source #

Dispose of an ExecutionSession. This should be called when the ExecutionSession is not needed anymore.

allocateModuleKey :: ExecutionSession -> IO ModuleKey Source #

Allocate a module key for a new module to add to the JIT.

releaseModuleKey :: ExecutionSession -> ModuleKey -> IO () Source #

Return a module key to the ExecutionSession so that it can be re-used.