Safe Haskell | Safe |
---|---|
Language | Haskell2010 |
LLVM instructions http://llvm.org/docs/LangRef.html#instruction-reference
Synopsis
- type InstructionMetadata = [(ShortByteString, MDRef MDNode)]
- data Terminator
- = Ret { }
- | CondBr { }
- | Br { }
- | Switch {
- operand0' :: Operand
- defaultDest :: Name
- dests :: [(Constant, Name)]
- metadata' :: InstructionMetadata
- | IndirectBr { }
- | Invoke { }
- | Resume { }
- | Unreachable { }
- | CleanupRet { }
- | CatchRet { }
- | CatchSwitch { }
- data FastMathFlags = FastMathFlags {
- allowReassoc :: Bool
- noNaNs :: Bool
- noInfs :: Bool
- noSignedZeros :: Bool
- allowReciprocal :: Bool
- allowContract :: Bool
- approxFunc :: Bool
- noFastMathFlags :: FastMathFlags
- 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 = [(ShortByteString, MDRef MDNode)] 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 | |
Instances
data FastMathFlags Source #
FastMathFlags | |
|
Instances
data MemoryOrdering Source #
http://llvm.org/docs/LangRef.html#atomic-memory-ordering-constraints http://llvm.org/docs/Atomics.html
Instances
data SynchronizationScope Source #
Instances
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
Instances
data TailCallKind Source #
For the call instruction http://llvm.org/docs/LangRef.html#call-instruction
Instances
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
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.
Instances
Eq a => Eq (Named a) Source # | |
Data a => Data (Named a) Source # | |
Defined in LLVM.AST.Instruction gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Named a -> c (Named a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Named a) # toConstr :: Named a -> Constr # dataTypeOf :: Named a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Named a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Named a)) # gmapT :: (forall b. Data b => b -> b) -> Named a -> Named a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Named a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Named a -> r # gmapQ :: (forall d. Data d => d -> u) -> Named a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Named a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Named a -> m (Named a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Named a -> m (Named a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Named a -> m (Named a) # | |
Read a => Read (Named a) Source # | |
Show a => Show (Named a) Source # | |
Generic (Named a) Source # | |
type Rep (Named a) Source # | |
Defined in LLVM.AST.Instruction type Rep (Named a) = D1 (MetaData "Named" "LLVM.AST.Instruction" "llvm-hs-pure-7.0.0-inplace" False) (C1 (MetaCons ":=" (InfixI LeftAssociative 9) False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Name) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a)) :+: C1 (MetaCons "Do" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) |