llvm-hs-pure-9.0.0: Pure Haskell LLVM functionality (no FFI).
Safe HaskellSafe
LanguageHaskell2010

LLVM.AST.Type

Description

A representation of an LLVM type

Synopsis

Documentation

data FloatingPointType Source #

LLVM supports some special formats floating point format. This type is to distinguish those format. Also see http://llvm.org/docs/LangRef.html#floating-point-types

Constructors

HalfFP

16-bit floating point value

FloatFP

32-bit floating point value

DoubleFP

64-bit floating point value

FP128FP

128-bit floating point value (112-bit mantissa)

X86_FP80FP

80-bit floating point value (X87)

PPC_FP128FP

128-bit floating point value (two 64-bits)

Instances

Instances details
Eq FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Data FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FloatingPointType -> c FloatingPointType #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FloatingPointType #

toConstr :: FloatingPointType -> Constr #

dataTypeOf :: FloatingPointType -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FloatingPointType) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FloatingPointType) #

gmapT :: (forall b. Data b => b -> b) -> FloatingPointType -> FloatingPointType #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FloatingPointType -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FloatingPointType -> r #

gmapQ :: (forall d. Data d => d -> u) -> FloatingPointType -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> FloatingPointType -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> FloatingPointType -> m FloatingPointType #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FloatingPointType -> m FloatingPointType #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FloatingPointType -> m FloatingPointType #

Ord FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Read FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Show FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Generic FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

Associated Types

type Rep FloatingPointType :: Type -> Type #

type Rep FloatingPointType Source # 
Instance details

Defined in LLVM.AST.Type

type Rep FloatingPointType = D1 ('MetaData "FloatingPointType" "LLVM.AST.Type" "llvm-hs-pure-9.0.0-inplace" 'False) ((C1 ('MetaCons "HalfFP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "FloatFP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "DoubleFP" 'PrefixI 'False) (U1 :: Type -> Type))) :+: (C1 ('MetaCons "FP128FP" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "X86_FP80FP" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PPC_FP128FP" 'PrefixI 'False) (U1 :: Type -> Type))))

data Type Source #

Instances

Instances details
Eq Type Source # 
Instance details

Defined in LLVM.AST.Type

Methods

(==) :: Type -> Type -> Bool #

(/=) :: Type -> Type -> Bool #

Data Type Source # 
Instance details

Defined in LLVM.AST.Type

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Type -> c Type #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Type #

toConstr :: Type -> Constr #

dataTypeOf :: Type -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Type) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Type) #

gmapT :: (forall b. Data b => b -> b) -> Type -> Type #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Type -> r #

gmapQ :: (forall d. Data d => d -> u) -> Type -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Type -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Type -> m Type #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Type -> m Type #

Ord Type Source # 
Instance details

Defined in LLVM.AST.Type

Methods

compare :: Type -> Type -> Ordering #

(<) :: Type -> Type -> Bool #

(<=) :: Type -> Type -> Bool #

(>) :: Type -> Type -> Bool #

(>=) :: Type -> Type -> Bool #

max :: Type -> Type -> Type #

min :: Type -> Type -> Type #

Read Type Source # 
Instance details

Defined in LLVM.AST.Type

Show Type Source # 
Instance details

Defined in LLVM.AST.Type

Methods

showsPrec :: Int -> Type -> ShowS #

show :: Type -> String #

showList :: [Type] -> ShowS #

Generic Type Source # 
Instance details

Defined in LLVM.AST.Type

Associated Types

type Rep Type :: Type -> Type #

Methods

from :: Type -> Rep Type x #

to :: Rep Type x -> Type #

type Rep Type Source # 
Instance details

Defined in LLVM.AST.Type

type Rep Type = D1 ('MetaData "Type" "LLVM.AST.Type" "llvm-hs-pure-9.0.0-inplace" 'False) (((C1 ('MetaCons "VoidType" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IntegerType" 'PrefixI 'True) (S1 ('MetaSel ('Just "typeBits") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32)) :+: C1 ('MetaCons "PointerType" 'PrefixI 'True) (S1 ('MetaSel ('Just "pointerReferent") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: S1 ('MetaSel ('Just "pointerAddrSpace") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AddrSpace)))) :+: (C1 ('MetaCons "FloatingPointType" 'PrefixI 'True) (S1 ('MetaSel ('Just "floatingPointType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 FloatingPointType)) :+: (C1 ('MetaCons "FunctionType" 'PrefixI 'True) (S1 ('MetaSel ('Just "resultType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type) :*: (S1 ('MetaSel ('Just "argumentTypes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type]) :*: S1 ('MetaSel ('Just "isVarArg") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :+: C1 ('MetaCons "VectorType" 'PrefixI 'True) (S1 ('MetaSel ('Just "nVectorElements") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word32) :*: S1 ('MetaSel ('Just "elementType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type))))) :+: ((C1 ('MetaCons "StructureType" 'PrefixI 'True) (S1 ('MetaSel ('Just "isPacked") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "elementTypes") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [Type])) :+: (C1 ('MetaCons "ArrayType" 'PrefixI 'True) (S1 ('MetaSel ('Just "nArrayElements") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Word64) :*: S1 ('MetaSel ('Just "elementType") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Type)) :+: C1 ('MetaCons "NamedTypeReference" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Name)))) :+: (C1 ('MetaCons "MetadataType" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "LabelType" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TokenType" 'PrefixI 'False) (U1 :: Type -> Type)))))

void :: Type Source #

An abbreviation for VoidType

i1 :: Type Source #

An abbreviation for IntegerType 1

i8 :: Type Source #

An abbreviation for IntegerType 8

i16 :: Type Source #

An abbreviation for IntegerType 16

i32 :: Type Source #

An abbreviation for IntegerType 32

i64 :: Type Source #

An abbreviation for IntegerType 64

i128 :: Type Source #

An abbreviation for IntegerType 128

ptr :: Type -> Type Source #

An abbreviation for PointerType t (AddrSpace 0)

half :: Type Source #

An abbreviation for FloatingPointType HalfFP

float :: Type Source #

An abbreviation for FloatingPointType FloatFP

fp128 :: Type Source #

An abbreviation for FloatingPointType FP128FP