llvm-extra-0.11: Utility functions for the llvm interface

Safe HaskellNone
LanguageHaskell98

LLVM.Extra.Function

Description

Alternative to defineFunction that creates the final ret instruction for you.

Synopsis

Documentation

class FunctionArgs f => C f Source #

CodeGen (a->b->...-> IO z) =
   Value a -> Value b -> ... CodeGenFunction r (Value z)@.

Minimal complete definition

addRet

Instances
Return a => C (IO a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type CodeGen (IO a) :: Type Source #

Methods

addRet :: Proxy (IO a) -> CodeGen (IO a) -> FunctionCodeGen (IO a)

(C b, IsFirstClass a) => C (a -> b) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type CodeGen (a -> b) :: Type Source #

Methods

addRet :: Proxy (a -> b) -> CodeGen (a -> b) -> FunctionCodeGen (a -> b)

type family CodeGen f Source #

Instances
type CodeGen (IO a) Source # 
Instance details

Defined in LLVM.Extra.Function

type CodeGen (IO a) = CodeGenFunction a (Result a)
type CodeGen (a -> b) Source # 
Instance details

Defined in LLVM.Extra.Function

type CodeGen (a -> b) = Value a -> CodeGen b

define :: C f => Function f -> CodeGen f -> CodeGenModule () Source #

create :: C f => Linkage -> CodeGen f -> CodeGenModule (Function f) Source #

createNamed :: C f => Linkage -> String -> CodeGen f -> CodeGenModule (Function f) Source #

class IsFirstClass a => Return a Source #

Minimal complete definition

ret

Instances
Return Bool Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Bool :: Type Source #

Methods

ret :: Result Bool -> CodeGenFunction Bool () Source #

Return Double Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Double :: Type Source #

Methods

ret :: Result Double -> CodeGenFunction Double () Source #

Return Float Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Float :: Type Source #

Methods

ret :: Result Float -> CodeGenFunction Float () Source #

Return Int Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int :: Type Source #

Methods

ret :: Result Int -> CodeGenFunction Int () Source #

Return Int8 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int8 :: Type Source #

Methods

ret :: Result Int8 -> CodeGenFunction Int8 () Source #

Return Int16 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int16 :: Type Source #

Methods

ret :: Result Int16 -> CodeGenFunction Int16 () Source #

Return Int32 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int32 :: Type Source #

Methods

ret :: Result Int32 -> CodeGenFunction Int32 () Source #

Return Int64 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int64 :: Type Source #

Methods

ret :: Result Int64 -> CodeGenFunction Int64 () Source #

Return Word Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word :: Type Source #

Methods

ret :: Result Word -> CodeGenFunction Word () Source #

Return Word8 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word8 :: Type Source #

Methods

ret :: Result Word8 -> CodeGenFunction Word8 () Source #

Return Word16 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word16 :: Type Source #

Methods

ret :: Result Word16 -> CodeGenFunction Word16 () Source #

Return Word32 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word32 :: Type Source #

Methods

ret :: Result Word32 -> CodeGenFunction Word32 () Source #

Return Word64 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word64 :: Type Source #

Methods

ret :: Result Word64 -> CodeGenFunction Word64 () Source #

Return () Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result () :: Type Source #

Methods

ret :: Result () -> CodeGenFunction () () Source #

Return (StablePtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (StablePtr a) :: Type Source #

Methods

ret :: Result (StablePtr a) -> CodeGenFunction (StablePtr a) () Source #

Return (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (Ptr a) :: Type Source #

Methods

ret :: Result (Ptr a) -> CodeGenFunction (Ptr a) () Source #

IsFunction a => Return (FunPtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (FunPtr a) :: Type Source #

Methods

ret :: Result (FunPtr a) -> CodeGenFunction (FunPtr a) () Source #

IsType a => Return (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (Ptr a) :: Type Source #

Methods

ret :: Result (Ptr a) -> CodeGenFunction (Ptr a) () Source #

type family Result a Source #

Instances
type Result Bool Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Bool = Value Bool
type Result Double Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Double = Value Double
type Result Float Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Float = Value Float
type Result Int Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int = Value Int
type Result Int8 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int8 = Value Int8
type Result Int16 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int16 = Value Int16
type Result Int32 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int32 = Value Int32
type Result Int64 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int64 = Value Int64
type Result Word Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word = Value Word
type Result Word8 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word8 = Value Word8
type Result Word16 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word16 = Value Word16
type Result Word32 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word32 = Value Word32
type Result Word64 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word64 = Value Word64
type Result () Source # 
Instance details

Defined in LLVM.Extra.Function

type Result () = ()
type Result (StablePtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

type Result (StablePtr a) = Value (StablePtr a)
type Result (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

type Result (Ptr a) = Value (Ptr a)
type Result (FunPtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

type Result (FunPtr a) = Value (FunPtr a)
type Result (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

type Result (Ptr a) = Value (Ptr a)

ret :: Return a => Result a -> CodeGenFunction a () Source #