| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
LLVM.Internal.OrcJIT.IRTransformLayer
Synopsis
- data IRTransformLayer baseLayer = IRTransformLayer {
- compileLayer :: !(Ptr IRTransformLayer)
- dataLayout :: !(Ptr DataLayout)
- cleanupActions :: !(IORef [IO ()])
- newIRTransformLayer :: CompileLayer l => l -> TargetMachine -> (Ptr Module -> IO (Ptr Module)) -> IO (IRTransformLayer l)
- withIRTransformLayer :: CompileLayer l => l -> TargetMachine -> (Ptr Module -> IO (Ptr Module)) -> (IRTransformLayer l -> IO a) -> IO a
Documentation
data IRTransformLayer baseLayer Source #
IRTransformLayer allows transforming modules before handing off
compilation to the underlying CompileLayer.
Constructors
| IRTransformLayer | |
Fields
| |
Instances
| Eq (IRTransformLayer baseLayer) Source # | |
Defined in LLVM.Internal.OrcJIT.IRTransformLayer Methods (==) :: IRTransformLayer baseLayer -> IRTransformLayer baseLayer -> Bool # (/=) :: IRTransformLayer baseLayer -> IRTransformLayer baseLayer -> Bool # | |
| CompileLayer (IRTransformLayer l) Source # | |
Defined in LLVM.Internal.OrcJIT.IRTransformLayer Methods getCompileLayer :: IRTransformLayer l -> Ptr CompileLayer Source # getDataLayout :: IRTransformLayer l -> Ptr DataLayout Source # getCleanups :: IRTransformLayer l -> IORef [IO ()] Source # | |
Arguments
| :: CompileLayer l | |
| => l | |
| -> TargetMachine | |
| -> (Ptr Module -> IO (Ptr Module)) | module transformation |
| -> IO (IRTransformLayer l) |
Create a new IRTransformLayer.
When the layer is no longer needed, it should be disposed using disposeCompileLayer.
Arguments
| :: CompileLayer l | |
| => l | |
| -> TargetMachine | |
| -> (Ptr Module -> IO (Ptr Module)) | module transformation |
| -> (IRTransformLayer l -> IO a) | |
| -> IO a |
bracket-style wrapper around newIRTransformLayer and disposeCompileLayer.