Safe Haskell | None |
---|---|
Language | Haskell98 |
LLVM.IRBuilder.Module
- newtype ModuleBuilderT m a = ModuleBuilderT {}
- newtype ModuleBuilderState = ModuleBuilderState {}
- emptyModuleBuilder :: ModuleBuilderState
- type ModuleBuilder = ModuleBuilderT Identity
- class Monad m => MonadModuleBuilder m where
- runModuleBuilder :: ModuleBuilderState -> ModuleBuilder a -> (a, [Definition])
- runModuleBuilderT :: Monad m => ModuleBuilderState -> ModuleBuilderT m a -> m (a, [Definition])
- execModuleBuilder :: ModuleBuilderState -> ModuleBuilder a -> [Definition]
- execModuleBuilderT :: Monad m => ModuleBuilderState -> ModuleBuilderT m a -> m [Definition]
- emitDefn :: MonadModuleBuilder m => Definition -> m ()
- data ParameterName
- function :: MonadModuleBuilder m => Name -> [(Type, ParameterName)] -> Type -> ([Operand] -> IRBuilderT m ()) -> m Operand
- extern :: MonadModuleBuilder m => Name -> [Type] -> Type -> m Operand
- typedef :: MonadModuleBuilder m => Name -> Maybe Type -> m ()
- buildModule :: ShortByteString -> ModuleBuilder a -> Module
- buildModuleT :: Monad m => ShortByteString -> ModuleBuilderT m a -> m Module
Documentation
newtype ModuleBuilderT m a #
Constructors
ModuleBuilderT | |
Fields |
Instances
MonadTrans ModuleBuilderT # | |
MonadWriter w m => MonadWriter w (ModuleBuilderT m) # | |
MonadState s m => MonadState s (ModuleBuilderT m) # | |
MonadReader r m => MonadReader r (ModuleBuilderT m) # | |
MonadError e m => MonadError e (ModuleBuilderT m) # | |
Monad m => Monad (ModuleBuilderT m) # | |
Functor m => Functor (ModuleBuilderT m) # | |
MonadFix m => MonadFix (ModuleBuilderT m) # | |
MonadFail m => MonadFail (ModuleBuilderT m) # | |
Monad m => Applicative (ModuleBuilderT m) # | |
MonadPlus m => Alternative (ModuleBuilderT m) # | |
MonadPlus m => MonadPlus (ModuleBuilderT m) # | |
MonadIO m => MonadIO (ModuleBuilderT m) # | |
MonadCont m => MonadCont (ModuleBuilderT m) # | |
Monad m => MonadModuleBuilder (ModuleBuilderT m) # | |
newtype ModuleBuilderState #
Constructors
ModuleBuilderState | |
Fields |
type ModuleBuilder = ModuleBuilderT Identity #
class Monad m => MonadModuleBuilder m where #
Methods
liftModuleState :: State ModuleBuilderState a -> m a #
liftModuleState :: (MonadTrans t, MonadModuleBuilder m1, m ~ t m1) => State ModuleBuilderState a -> m a #
Instances
MonadModuleBuilder m => MonadModuleBuilder (ListT m) # | |
MonadModuleBuilder m => MonadModuleBuilder (MaybeT m) # | |
Monad m => MonadModuleBuilder (ModuleBuilderT m) # | |
MonadModuleBuilder m => MonadModuleBuilder (IdentityT * m) # | |
MonadModuleBuilder m => MonadModuleBuilder (ExceptT e m) # | |
MonadModuleBuilder m => MonadModuleBuilder (StateT s m) # | |
MonadModuleBuilder m => MonadModuleBuilder (StateT s m) # | |
(Monoid w, MonadModuleBuilder m) => MonadModuleBuilder (WriterT w m) # | |
(Monoid w, MonadModuleBuilder m) => MonadModuleBuilder (WriterT w m) # | |
MonadModuleBuilder m => MonadModuleBuilder (ContT * r m) # | |
MonadModuleBuilder m => MonadModuleBuilder (ReaderT * r m) # | |
(MonadModuleBuilder m, Monoid w) => MonadModuleBuilder (RWST r w s m) # | |
(MonadModuleBuilder m, Monoid w) => MonadModuleBuilder (RWST r w s m) # | |
runModuleBuilder :: ModuleBuilderState -> ModuleBuilder a -> (a, [Definition]) #
Evaluate ModuleBuilder
to a result and a list of definitions
runModuleBuilderT :: Monad m => ModuleBuilderState -> ModuleBuilderT m a -> m (a, [Definition]) #
Evaluate ModuleBuilderT
to a result and a list of definitions
execModuleBuilder :: ModuleBuilderState -> ModuleBuilder a -> [Definition] #
Evaluate ModuleBuilder
to a list of definitions
execModuleBuilderT :: Monad m => ModuleBuilderState -> ModuleBuilderT m a -> m [Definition] #
Evaluate ModuleBuilderT
to a list of definitions
emitDefn :: MonadModuleBuilder m => Definition -> m () #
data ParameterName #
A parameter name suggestion
Constructors
NoParameterName | |
ParameterName ShortByteString |
Instances
Eq ParameterName # | |
Data ParameterName # | |
Ord ParameterName # | |
Read ParameterName # | |
Show ParameterName # | |
IsString ParameterName # | Using |
Generic ParameterName # | |
type Rep ParameterName # | |
Arguments
:: MonadModuleBuilder m | |
=> Name | Function name |
-> [(Type, ParameterName)] | Parameter types and name suggestions |
-> Type | Return type |
-> ([Operand] -> IRBuilderT m ()) | Function body builder |
-> m Operand |
Define and emit a (non-variadic) function definition
Arguments
:: MonadModuleBuilder m | |
=> Name | Definition name |
-> [Type] | Parametere types |
-> Type | Type |
-> m Operand |
An external function definition
buildModule :: ShortByteString -> ModuleBuilder a -> Module #
Convenience function for module construction
buildModuleT :: Monad m => ShortByteString -> ModuleBuilderT m a -> m Module #
Convenience function for module construction (transformer version)