llvm-extra-0.12.0.1: Utility functions for the llvm interface
Safe HaskellSafe-Inferred
LanguageHaskell98

LLVM.Extra.Struct

Description

In contrast to Struct it allows to store high-level values and thus allows to implement arbitrary-sized tuples of MultiValue's.

Documentation

newtype T struct Source #

Constructors

Cons struct 

Instances

Instances details
(Phi s, Undefined s, StructFields (StructStruct s), ConvertStruct (StructStruct s) D0 s) => C (T s) Source # 
Instance details

Defined in LLVM.Extra.Memory

Associated Types

type Struct (T s) Source #

Methods

load :: Value (Ptr (Struct (T s))) -> CodeGenFunction r (T s) Source #

store :: T s -> Value (Ptr (Struct (T s))) -> CodeGenFunction r () Source #

decompose :: Value (Struct (T s)) -> CodeGenFunction r (T s) Source #

compose :: T s -> CodeGenFunction r (Value (Struct (T s))) Source #

Struct struct => C (T struct) Source # 
Instance details

Defined in LLVM.Extra.Multi.Value.Private

Associated Types

type Repr (T struct) Source #

Methods

cons :: T struct -> T0 (T struct) Source #

undef :: T0 (T struct) Source #

zero :: T0 (T struct) Source #

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

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

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

Defined in LLVM.Extra.Struct

Associated Types

type ValueOf (T struct) Source #

Methods

valueOf :: T struct -> ValueOf (T struct) 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 #

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

Defined in LLVM.Extra.Struct

Methods

undef :: T struct Source #

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

Defined in LLVM.Extra.Struct

Methods

zero :: T struct Source #

type Struct (T s) Source # 
Instance details

Defined in LLVM.Extra.Memory

type Struct (T s)
type Repr (T struct) Source # 
Instance details

Defined in LLVM.Extra.Multi.Value.Private

type Repr (T struct) = T (Repr struct)
type ValueOf (T struct) Source # 
Instance details

Defined in LLVM.Extra.Struct

type ValueOf (T struct) = T (ValueOf struct)

class Undefined struct where Source #

Methods

undef :: struct Source #

Instances

Instances details
Undefined () Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

undef :: () Source #

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

Defined in LLVM.Extra.Struct

Methods

undef :: (a, as) Source #

class Zero struct where Source #

Methods

zero :: struct Source #

Instances

Instances details
Zero () Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

zero :: () Source #

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

Defined in LLVM.Extra.Struct

Methods

zero :: (a, as) Source #

class Phi struct where Source #

Methods

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

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

Instances

Instances details
Phi () Source # 
Instance details

Defined in LLVM.Extra.Struct

Methods

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

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

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

Defined in LLVM.Extra.Struct

Methods

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

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

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

Associated Types

type ValueOf struct Source #

Methods

valueOf :: struct -> ValueOf struct Source #

Instances

Instances details
Value () Source # 
Instance details

Defined in LLVM.Extra.Struct

Associated Types

type ValueOf () Source #

Methods

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

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

Defined in LLVM.Extra.Struct

Associated Types

type ValueOf (a, as) Source #

Methods

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