llvm-extra-0.12.0.1: Utility functions for the llvm interface
Safe HaskellSafe-Inferred
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

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

Defined in LLVM.Extra.Function

Associated Types

type CodeGen (IO a) 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) Source #

Methods

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

type family CodeGen f Source #

Instances

Instances details
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

class IsFirstClass a => Return a Source #

Minimal complete definition

ret

Instances

Instances details
Return Int16 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int16 Source #

Return Int32 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int32 Source #

Return Int64 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int64 Source #

Return Int8 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int8 Source #

Return Word16 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word16 Source #

Return Word32 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word32 Source #

Return Word64 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word64 Source #

Return Word8 Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word8 Source #

Return () Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result () Source #

Methods

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

Return Bool Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Bool Source #

Return Double Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Double Source #

Return Float Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Float Source #

Return Int Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Int Source #

Return Word Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result Word Source #

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

Defined in LLVM.Extra.Function

Associated Types

type Result (FunPtr a) Source #

Methods

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

Return (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (Ptr a) Source #

Methods

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

Return (StablePtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

Associated Types

type Result (StablePtr a) Source #

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

Defined in LLVM.Extra.Function

Associated Types

type Result (Ptr a) Source #

Methods

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

type family Result a Source #

Instances

Instances details
type Result Int16 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int32 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int64 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int8 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word16 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word32 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word64 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word8 Source # 
Instance details

Defined in LLVM.Extra.Function

type Result () Source # 
Instance details

Defined in LLVM.Extra.Function

type Result () = ()
type Result Bool Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Double Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Float Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Int Source # 
Instance details

Defined in LLVM.Extra.Function

type Result Word Source # 
Instance details

Defined in LLVM.Extra.Function

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)
type Result (StablePtr a) Source # 
Instance details

Defined in LLVM.Extra.Function

type Result (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Function

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