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 { }
- | CleanupRet { }
- | CatchRet { }
- | CatchSwitch { }
- 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 {
- type' :: Type
- cleanup :: Bool
- clauses :: [LandingPadClause]
- metadata :: InstructionMetadata
- | CatchPad {
- catchSwitch :: Operand
- args :: [Operand]
- metadata :: InstructionMetadata
- | CleanupPad { }
- 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 | |
CleanupRet | |
CatchRet | |
CatchSwitch | |
data FastMathFlags Source #
data MemoryOrdering Source #
data SynchronizationScope 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.