Safe Haskell | Safe |
---|---|
Language | Haskell98 |
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
Ret | |
CondBr | |
Br | |
| |
Switch | |
| |
IndirectBr | |
| |
Invoke | |
Resume | |
Unreachable | |
data FastMathFlags Source
data MemoryOrdering Source
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
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.