Safe Haskell | None |
---|---|
Language | Haskell2010 |
LLVM.ExecutionEngine
Description
Tools for JIT execution
Documentation
class ExecutionEngine e f | e -> f where Source #
Minimal complete definition
Methods
withModuleInEngine :: e -> Module -> (ExecutableModule e -> IO a) -> IO a Source #
getFunction :: ExecutableModule e -> Name -> IO (Maybe f) Source #
Instances
ExecutionEngine MCJIT (FunPtr ()) Source # | |
Defined in LLVM.Internal.ExecutionEngine Methods withModuleInEngine :: MCJIT -> Module -> (ExecutableModule MCJIT -> IO a) -> IO a Source # getFunction :: ExecutableModule MCJIT -> Name -> IO (Maybe (FunPtr ())) Source # | |
ExecutionEngine (Ptr ExecutionEngine) (FunPtr ()) Source # | |
Defined in LLVM.Internal.ExecutionEngine Methods withModuleInEngine :: Ptr ExecutionEngine -> Module -> (ExecutableModule (Ptr ExecutionEngine) -> IO a) -> IO a Source # getFunction :: ExecutableModule (Ptr ExecutionEngine) -> Name -> IO (Maybe (FunPtr ())) Source # |
data ExecutableModule e Source #
a ExecutableModule
e represents a Module
which is currently "in" an
ExecutionEngine
, and so the functions of which may be executed.
http://llvm.org/doxygen/classllvm_1_1MCJIT.html http://blog.llvm.org/2010/04/intro-to-llvm-mc-project.html N.B. - the LLVM MCJIT does not current support adding multiple modules to any one instance of the MCJIT.
Instances
ExecutionEngine MCJIT (FunPtr ()) Source # | |
Defined in LLVM.Internal.ExecutionEngine Methods withModuleInEngine :: MCJIT -> Module -> (ExecutableModule MCJIT -> IO a) -> IO a Source # getFunction :: ExecutableModule MCJIT -> Name -> IO (Maybe (FunPtr ())) Source # |
Arguments
:: Context | |
-> Maybe Word | optimization level |
-> Maybe Model | |
-> Maybe Bool | True to disable frame pointer elimination |
-> Maybe Bool | True to enable fast instruction selection -> Maybe MemoryManager -- llvm-hs doesn't support this yet |
-> (MCJIT -> IO a) | |
-> IO a |
bracket the creation and destruction of an MCJIT