{-# LANGUAGE ForeignFunctionInterface #-} module LLVM.Internal.FFI.OrcJIT.IRCompileLayer where import LLVM.Prelude import LLVM.Internal.FFI.DataLayout import LLVM.Internal.FFI.LLVMCTypes import LLVM.Internal.FFI.Module import LLVM.Internal.FFI.OrcJIT import LLVM.Internal.FFI.Target import Foreign.Ptr import Foreign.C data IRCompileLayer data ModuleSetHandle foreign import ccall safe "LLVM_Hs_createIRCompileLayer" createIRCompileLayer :: Ptr ObjectLinkingLayer -> Ptr TargetMachine -> IO (Ptr IRCompileLayer) foreign import ccall safe "LLVM_Hs_disposeIRCompileLayer" disposeIRCompileLayer :: Ptr IRCompileLayer -> IO () foreign import ccall safe "LLVM_Hs_IRCompileLayer_addModuleSet" addModuleSet :: Ptr IRCompileLayer -> Ptr DataLayout -> Ptr (Ptr Module) -> CUInt -> Ptr LambdaResolver -> IO (Ptr ModuleSetHandle) foreign import ccall safe "LLVM_Hs_IRCompileLayer_removeModuleSet" removeModuleSet :: Ptr IRCompileLayer -> Ptr ModuleSetHandle -> IO () foreign import ccall safe "LLVM_Hs_IRCompileLayer_findSymbol" findSymbol :: Ptr IRCompileLayer -> CString -> LLVMBool -> IO (Ptr JITSymbol)