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

Safe HaskellNone
LanguageHaskell98

LLVM.Extra.Tuple

Documentation

class Phi a where Source #

Methods

phi :: BasicBlock -> a -> CodeGenFunction r a Source #

addPhi :: BasicBlock -> a -> a -> CodeGenFunction r () Source #

Instances
Phi () Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> () -> CodeGenFunction r () Source #

addPhi :: BasicBlock -> () -> () -> CodeGenFunction r () Source #

Phi a => Phi (Complex a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> Complex a -> CodeGenFunction r (Complex a) Source #

addPhi :: BasicBlock -> Complex a -> Complex a -> CodeGenFunction r () Source #

IsFirstClass a => Phi (Value a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> Value a -> CodeGenFunction r (Value a) Source #

addPhi :: BasicBlock -> Value a -> Value a -> CodeGenFunction r () Source #

Phi a => Phi (T a) Source # 
Instance details

Defined in LLVM.Extra.MaybePrivate

Methods

phi :: BasicBlock -> T a -> CodeGenFunction r (T a) Source #

addPhi :: BasicBlock -> T a -> T a -> CodeGenFunction r () Source #

Phi struct => Phi (T struct) Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

phi :: BasicBlock -> T struct -> CodeGenFunction r (T struct) Source #

addPhi :: BasicBlock -> T struct -> T struct -> CodeGenFunction r () Source #

Phi a => Phi (T a) Source # 
Instance details

Defined in LLVM.Extra.Scalar

Methods

phi :: BasicBlock -> T a -> CodeGenFunction r (T a) Source #

addPhi :: BasicBlock -> T a -> T a -> CodeGenFunction r () Source #

C a => Phi (T a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Value.Private

Methods

phi :: BasicBlock -> T a -> CodeGenFunction r (T a) Source #

addPhi :: BasicBlock -> T a -> T a -> CodeGenFunction r () Source #

(Phi a, Phi b) => Phi (a, b) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> (a, b) -> CodeGenFunction r (a, b) Source #

addPhi :: BasicBlock -> (a, b) -> (a, b) -> CodeGenFunction r () Source #

(Natural n, Phi a) => Phi (T n a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> T n a -> CodeGenFunction r (T n a) Source #

addPhi :: BasicBlock -> T n a -> T n a -> CodeGenFunction r () Source #

(Phi a, Phi b) => Phi (T a b) Source # 
Instance details

Defined in LLVM.Extra.EitherPrivate

Methods

phi :: BasicBlock -> T a b -> CodeGenFunction r (T a b) Source #

addPhi :: BasicBlock -> T a b -> T a b -> CodeGenFunction r () Source #

Phi a => Phi (Constant n a) Source # 
Instance details

Defined in LLVM.Extra.Vector

Methods

phi :: BasicBlock -> Constant n a -> CodeGenFunction r (Constant n a) Source #

addPhi :: BasicBlock -> Constant n a -> Constant n a -> CodeGenFunction r () Source #

(Positive n, C a) => Phi (T n a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Vector

Methods

phi :: BasicBlock -> T n a -> CodeGenFunction r (T n a) Source #

addPhi :: BasicBlock -> T n a -> T n a -> CodeGenFunction r () Source #

(Phi a, Phi b, Phi c) => Phi (a, b, c) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> (a, b, c) -> CodeGenFunction r (a, b, c) Source #

addPhi :: BasicBlock -> (a, b, c) -> (a, b, c) -> CodeGenFunction r () Source #

(Phi a, Phi b, Phi c, Phi d) => Phi (a, b, c, d) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

phi :: BasicBlock -> (a, b, c, d) -> CodeGenFunction r (a, b, c, d) Source #

addPhi :: BasicBlock -> (a, b, c, d) -> (a, b, c, d) -> CodeGenFunction r () Source #

phiTraversable :: (Phi a, Traversable f) => BasicBlock -> f a -> CodeGenFunction r (f a) Source #

addPhiFoldable :: (Phi a, Foldable f, Applicative f) => BasicBlock -> f a -> f a -> CodeGenFunction r () Source #

class Undefined a where Source #

Methods

undef :: a Source #

Instances
Undefined () Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: () Source #

Undefined a => Undefined (Complex a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: Complex a Source #

IsFirstClass a => Undefined (ConstValue a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: ConstValue a Source #

IsFirstClass a => Undefined (Value a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: Value a Source #

Undefined a => Undefined (T a) Source # 
Instance details

Defined in LLVM.Extra.MaybePrivate

Methods

undef :: T a Source #

Undefined struct => Undefined (T struct) Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

undef :: T struct Source #

Undefined a => Undefined (T a) Source # 
Instance details

Defined in LLVM.Extra.Scalar

Methods

undef :: T a Source #

C a => Undefined (T a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Value.Private

Methods

undef :: T a Source #

(Undefined a, Undefined b) => Undefined (a, b) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: (a, b) Source #

(Natural n, Undefined a) => Undefined (T n a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: T n a Source #

(Undefined a, Undefined b) => Undefined (T a b) Source # 
Instance details

Defined in LLVM.Extra.EitherPrivate

Methods

undef :: T a b Source #

Undefined a => Undefined (Constant n a) Source # 
Instance details

Defined in LLVM.Extra.Vector

Methods

undef :: Constant n a Source #

(Positive n, C a) => Undefined (T n a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Vector

Methods

undef :: T n a Source #

(Undefined a, Undefined b, Undefined c) => Undefined (a, b, c) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: (a, b, c) Source #

(Undefined a, Undefined b, Undefined c, Undefined d) => Undefined (a, b, c, d) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

undef :: (a, b, c, d) Source #

class Zero a where Source #

Methods

zero :: a Source #

Instances
Zero () Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: () Source #

Zero a => Zero (Complex a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: Complex a Source #

IsFirstClass a => Zero (ConstValue a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: ConstValue a Source #

IsFirstClass a => Zero (Value a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: Value a Source #

Zero struct => Zero (T struct) Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

zero :: T struct Source #

Zero a => Zero (T a) Source # 
Instance details

Defined in LLVM.Extra.Scalar

Methods

zero :: T a Source #

C a => Zero (T a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Value.Private

Methods

zero :: T a Source #

(Zero a, Zero b) => Zero (a, b) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: (a, b) Source #

(Natural n, Zero a) => Zero (T n a) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: T n a Source #

(Positive n, C a) => Zero (T n a) Source # 
Instance details

Defined in LLVM.Extra.Multi.Vector

Methods

zero :: T n a Source #

(Flags flags, Zero a, Tuple a) => Zero (Context flags a) Source # 
Instance details

Defined in LLVM.Extra.FastMath

Methods

zero :: Context flags a Source #

(Zero a, Zero b, Zero c) => Zero (a, b, c) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: (a, b, c) Source #

(Zero a, Zero b, Zero c, Zero d) => Zero (a, b, c, d) Source # 
Instance details

Defined in LLVM.Extra.TuplePrivate

Methods

zero :: (a, b, c, d) Source #

class Undefined (ValueOf a) => Value a where Source #

Associated Types

type ValueOf a Source #

Methods

valueOf :: a -> ValueOf a Source #

Instances
Value Bool Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Bool :: Type Source #

Value Double Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Double :: Type Source #

Value Float Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Float :: Type Source #

Value Int Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Int :: Type Source #

Methods

valueOf :: Int -> ValueOf Int Source #

Value Int8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Int8 :: Type Source #

Value Int16 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Int16 :: Type Source #

Value Int32 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Int32 :: Type Source #

Value Int64 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Int64 :: Type Source #

Value Word Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Word :: Type Source #

Value Word8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Word8 :: Type Source #

Value Word16 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Word16 :: Type Source #

Value Word32 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Word32 :: Type Source #

Value Word64 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Word64 :: Type Source #

Value () Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf () :: Type Source #

Methods

valueOf :: () -> ValueOf () Source #

Value Bool8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf Bool8 :: Type Source #

Value a => Value (Maybe a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Maybe a) :: Type Source #

Methods

valueOf :: Maybe a -> ValueOf (Maybe a) Source #

Value (StablePtr a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (StablePtr a) :: Type Source #

Value (Ptr a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Ptr a) :: Type Source #

Methods

valueOf :: Ptr a -> ValueOf (Ptr a) Source #

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

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (FunPtr a) :: Type Source #

Methods

valueOf :: FunPtr a -> ValueOf (FunPtr a) Source #

Value a => Value (Complex a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Complex a) :: Type Source #

Methods

valueOf :: Complex a -> ValueOf (Complex a) Source #

Value tuple => Value (Tuple tuple) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Tuple tuple) :: Type Source #

Methods

valueOf :: Tuple tuple -> ValueOf (Tuple tuple) Source #

Positive n => Value (IntN n) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (IntN n) :: Type Source #

Methods

valueOf :: IntN n -> ValueOf (IntN n) Source #

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

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Ptr a) :: Type Source #

Methods

valueOf :: Ptr a -> ValueOf (Ptr a) Source #

Positive n => Value (WordN n) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (WordN n) :: Type Source #

Methods

valueOf :: WordN n -> ValueOf (WordN n) Source #

Value struct => Value (T struct) Source # 
Instance details

Defined in LLVM.Extra.Struct

Associated Types

type ValueOf (T struct) :: Type Source #

Methods

valueOf :: T struct -> ValueOf (T struct) Source #

(Value a, Value b) => Value (Either a b) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Either a b) :: Type Source #

Methods

valueOf :: Either a b -> ValueOf (Either a b) Source #

(Value a, Value b) => Value (a, b) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (a, b) :: Type Source #

Methods

valueOf :: (a, b) -> ValueOf (a, b) Source #

(IsInteger w, IsConst w) => Value (T w i) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (T w i) :: Type Source #

Methods

valueOf :: T w i -> ValueOf (T w i) Source #

(IsInteger w, IsConst w, Num w, Enum e) => Value (T w e) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (T w e) :: Type Source #

Methods

valueOf :: T w e -> ValueOf (T w e) Source #

(Positive n, VectorValue n a, Undefined (VectorValueOf n a)) => Value (Vector n a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Vector n a) :: Type Source #

Methods

valueOf :: Vector n a -> ValueOf (Vector n a) Source #

(Value a, Value b, Value c) => Value (a, b, c) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (a, b, c) :: Type Source #

Methods

valueOf :: (a, b, c) -> ValueOf (a, b, c) Source #

Value a => Value (Tagged tag a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (Tagged tag a) :: Type Source #

Methods

valueOf :: Tagged tag a -> ValueOf (Tagged tag a) Source #

(Value a, Value b, Value c, Value d) => Value (a, b, c, d) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type ValueOf (a, b, c, d) :: Type Source #

Methods

valueOf :: (a, b, c, d) -> ValueOf (a, b, c, d) Source #

valueOfFunctor :: (Value h, Functor f) => f h -> f (ValueOf h) Source #

class (Positive n, Undefined (VectorValueOf n a)) => VectorValue n a where Source #

Associated Types

type VectorValueOf n a Source #

Methods

vectorValueOf :: Vector n a -> VectorValueOf n a Source #

Instances
Positive n => VectorValue n Word64 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Word64 :: Type Source #

Positive n => VectorValue n Word32 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Word32 :: Type Source #

Positive n => VectorValue n Word16 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Word16 :: Type Source #

Positive n => VectorValue n Word8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Word8 :: Type Source #

Methods

vectorValueOf :: Vector n Word8 -> VectorValueOf n Word8 Source #

Positive n => VectorValue n Word Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Word :: Type Source #

Methods

vectorValueOf :: Vector n Word -> VectorValueOf n Word Source #

Positive n => VectorValue n Int64 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Int64 :: Type Source #

Methods

vectorValueOf :: Vector n Int64 -> VectorValueOf n Int64 Source #

Positive n => VectorValue n Int32 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Int32 :: Type Source #

Methods

vectorValueOf :: Vector n Int32 -> VectorValueOf n Int32 Source #

Positive n => VectorValue n Int16 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Int16 :: Type Source #

Methods

vectorValueOf :: Vector n Int16 -> VectorValueOf n Int16 Source #

Positive n => VectorValue n Int8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Int8 :: Type Source #

Methods

vectorValueOf :: Vector n Int8 -> VectorValueOf n Int8 Source #

Positive n => VectorValue n Int Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Int :: Type Source #

Methods

vectorValueOf :: Vector n Int -> VectorValueOf n Int Source #

Positive n => VectorValue n Bool8 Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Bool8 :: Type Source #

Methods

vectorValueOf :: Vector n Bool8 -> VectorValueOf n Bool8 Source #

Positive n => VectorValue n Bool Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Bool :: Type Source #

Methods

vectorValueOf :: Vector n Bool -> VectorValueOf n Bool Source #

Positive n => VectorValue n Double Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Double :: Type Source #

Positive n => VectorValue n Float Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n Float :: Type Source #

Methods

vectorValueOf :: Vector n Float -> VectorValueOf n Float Source #

VectorValue n tuple => VectorValue n (Tuple tuple) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n (Tuple tuple) :: Type Source #

Methods

vectorValueOf :: Vector n (Tuple tuple) -> VectorValueOf n (Tuple tuple) Source #

(VectorValue n a, VectorValue n b) => VectorValue n (a, b) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n (a, b) :: Type Source #

Methods

vectorValueOf :: Vector n (a, b) -> VectorValueOf n (a, b) Source #

(Positive n, Positive m, Positive (n :*: m), Undefined (Vector (n :*: m) a)) => VectorValue n (Vector m a) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n (Vector m a) :: Type Source #

Methods

vectorValueOf :: Vector n (Vector m a) -> VectorValueOf n (Vector m a) Source #

(VectorValue n a, VectorValue n b, VectorValue n c) => VectorValue n (a, b, c) Source # 
Instance details

Defined in LLVM.Extra.Tuple

Associated Types

type VectorValueOf n (a, b, c) :: Type Source #

Methods

vectorValueOf :: Vector n (a, b, c) -> VectorValueOf n (a, b, c) Source #