Safe Haskell | Safe |
---|---|
Language | Haskell98 |
LLVM.General.AST.Instruction
Description
LLVM instructions http://llvm.org/docs/LangRef.html#instruction-reference
- type InstructionMetadata = [(String, MetadataNode)]
- data Terminator
- = Ret { }
- | CondBr { }
- | Br { }
- | Switch {
- operand0' :: Operand
- defaultDest :: Name
- dests :: [(Constant, Name)]
- metadata' :: InstructionMetadata
- | IndirectBr { }
- | Invoke { }
- | Resume { }
- | Unreachable { }
- data FastMathFlags
- = NoFastMathFlags
- | UnsafeAlgebra
- | FastMathFlags {
- noNaNs :: Bool
- noInfs :: Bool
- noSignedZeros :: Bool
- allowReciprocal :: Bool
- data MemoryOrdering
- data SynchronizationScope
- type Atomicity = (SynchronizationScope, MemoryOrdering)
- data LandingPadClause
- data TailCallKind
- data Instruction
- = Add { }
- | FAdd { }
- | Sub { }
- | FSub { }
- | Mul { }
- | FMul { }
- | UDiv { }
- | SDiv { }
- | FDiv { }
- | URem { }
- | SRem { }
- | FRem { }
- | Shl { }
- | LShr { }
- | AShr { }
- | And { }
- | Or { }
- | Xor { }
- | Alloca { }
- | Load { }
- | Store { }
- | GetElementPtr { }
- | Fence { }
- | CmpXchg { }
- | AtomicRMW { }
- | Trunc { }
- | ZExt { }
- | SExt { }
- | FPToUI { }
- | FPToSI { }
- | UIToFP { }
- | SIToFP { }
- | FPTrunc { }
- | FPExt { }
- | PtrToInt { }
- | IntToPtr { }
- | BitCast { }
- | AddrSpaceCast { }
- | ICmp { }
- | FCmp { }
- | Phi {
- type' :: Type
- incomingValues :: [(Operand, Name)]
- metadata :: InstructionMetadata
- | Call { }
- | Select { }
- | VAArg { }
- | ExtractElement { }
- | InsertElement { }
- | ShuffleVector { }
- | ExtractValue { }
- | InsertValue { }
- | LandingPad { }
- data Named a
Documentation
type InstructionMetadata = [(String, MetadataNode)] Source
http://llvm.org/docs/LangRef.html#metadata-nodes-and-metadata-strings Metadata can be attached to an instruction
data Terminator Source
Constructors
Ret | |
Fields | |
CondBr | |
Br | |
Fields
| |
Switch | |
Fields
| |
IndirectBr | |
Fields
| |
Invoke | |
Resume | |
Fields | |
Unreachable | |
Fields |
Instances
data FastMathFlags Source
Constructors
NoFastMathFlags | |
UnsafeAlgebra | |
FastMathFlags | |
Fields
|
data MemoryOrdering Source
http://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints http://llvm.org/docs/Atomics.html
Constructors
Unordered | |
Monotonic | |
Acquire | |
Release | |
AcquireRelease | |
SequentiallyConsistent |
data SynchronizationScope Source
Constructors
SingleThread | |
CrossThread |
type Atomicity = (SynchronizationScope, MemoryOrdering) Source
An Atomicity
describes constraints on the visibility of effects of an atomic instruction
data LandingPadClause Source
For the redoubtably complex LandingPad
instruction
data TailCallKind Source
For the call instruction http://llvm.org/docs/LangRef.html#call-instruction
data Instruction Source
non-terminator instructions: http://llvm.org/docs/LangRef.html#binaryops http://llvm.org/docs/LangRef.html#bitwiseops http://llvm.org/docs/LangRef.html#memoryops http://llvm.org/docs/LangRef.html#otherops
Constructors
Add | |
FAdd | |
Fields | |
Sub | |
FSub | |
Fields | |
Mul | |
FMul | |
Fields | |
UDiv | |
SDiv | |
FDiv | |
Fields | |
URem | |
SRem | |
FRem | |
Fields | |
Shl | |
LShr | |
AShr | |
And | |
Or | |
Xor | |
Alloca | |
Fields | |
Load | |
Store | |
GetElementPtr | |
Fence | |
Fields | |
CmpXchg | |
Fields | |
AtomicRMW | |
Fields
| |
Trunc | |
ZExt | |
SExt | |
FPToUI | |
FPToSI | |
UIToFP | |
SIToFP | |
FPTrunc | |
FPExt | |
PtrToInt | |
IntToPtr | |
BitCast | |
AddrSpaceCast | |
ICmp | |
Fields | |
FCmp | |
Fields | |
Phi | |
Fields
| |
Call | |
Select | |
Fields | |
VAArg | |
ExtractElement | |
InsertElement | |
ShuffleVector | |
ExtractValue | |
InsertValue | |
LandingPad | |
Fields
|
Instances of instructions may be given a name, allowing their results to be referenced as Operand
s.
Sometimes instructions - e.g. a call to a function returning void - don't need names.