Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data Module = Module {
- modSourceName :: Maybe String
- modDataLayout :: DataLayout
- modTypes :: [TypeDecl]
- modNamedMd :: [NamedMd]
- modUnnamedMd :: [UnnamedMd]
- modComdat :: Map String SelectionKind
- modGlobals :: [Global]
- modDeclares :: [Declare]
- modDefines :: [Define]
- modInlineAsm :: InlineAsm
- modAliases :: [GlobalAlias]
- emptyModule :: Module
- data NamedMd = NamedMd {}
- data UnnamedMd = UnnamedMd {}
- data GlobalAlias = GlobalAlias {}
- type DataLayout = [LayoutSpec]
- data LayoutSpec
- = BigEndian
- | LittleEndian
- | PointerSize !Int !Int !Int (Maybe Int)
- | IntegerSize !Int !Int (Maybe Int)
- | VectorSize !Int !Int (Maybe Int)
- | FloatSize !Int !Int (Maybe Int)
- | StackObjSize !Int !Int (Maybe Int)
- | AggregateSize !Int !Int (Maybe Int)
- | NativeIntSize [Int]
- | StackAlign !Int
- | Mangling Mangling
- data Mangling
- parseDataLayout :: MonadPlus m => String -> m DataLayout
- type InlineAsm = [String]
- data SelectionKind
- newtype Ident = Ident String
- newtype Symbol = Symbol String
- data PrimType
- data FloatType
- type Type = Type' Ident
- data Type' ident
- updateAliasesA :: Applicative f => (a -> f (Type' b)) -> Type' a -> f (Type' b)
- updateAliases :: (a -> Type' b) -> Type' a -> Type' b
- isFloatingPoint :: PrimType -> Bool
- isAlias :: Type -> Bool
- isPrimTypeOf :: (PrimType -> Bool) -> Type -> Bool
- isLabel :: PrimType -> Bool
- isInteger :: PrimType -> Bool
- isVector :: Type -> Bool
- isVectorOf :: (Type -> Bool) -> Type -> Bool
- isArray :: Type -> Bool
- isPointer :: Type -> Bool
- data NullResult lab
- = HasNull (Value' lab)
- | ResolveNull Ident
- primTypeNull :: PrimType -> Value' lab
- floatTypeNull :: FloatType -> Value' lab
- typeNull :: Type -> NullResult lab
- elimFunTy :: MonadPlus m => Type -> m (Type, [Type], Bool)
- elimAlias :: MonadPlus m => Type -> m Ident
- elimPtrTo :: MonadPlus m => Type -> m Type
- elimVector :: MonadPlus m => Type -> m (Word64, Type)
- elimArray :: MonadPlus m => Type -> m (Word64, Type)
- elimFunPtr :: MonadPlus m => Type -> m (Type, [Type], Bool)
- elimPrimType :: MonadPlus m => Type -> m PrimType
- elimFloatType :: MonadPlus m => PrimType -> m FloatType
- elimSequentialType :: MonadPlus m => Type -> m Type
- data TypeDecl = TypeDecl {}
- data Global = Global {}
- addGlobal :: Global -> Module -> Module
- data GlobalAttrs = GlobalAttrs {}
- emptyGlobalAttrs :: GlobalAttrs
- data Declare = Declare {}
- decFunType :: Declare -> Type
- data Define = Define {
- defLinkage :: Maybe Linkage
- defRetType :: Type
- defName :: Symbol
- defArgs :: [Typed Ident]
- defVarArgs :: Bool
- defAttrs :: [FunAttr]
- defSection :: Maybe String
- defGC :: Maybe GC
- defBody :: [BasicBlock]
- defMetadata :: FnMdAttachments
- defComdat :: Maybe String
- defFunType :: Define -> Type
- addDefine :: Define -> Module -> Module
- data FunAttr
- = AlignStack Int
- | Alwaysinline
- | Builtin
- | Cold
- | Inlinehint
- | Jumptable
- | Minsize
- | Naked
- | Nobuiltin
- | Noduplicate
- | Noimplicitfloat
- | Noinline
- | Nonlazybind
- | Noredzone
- | Noreturn
- | Nounwind
- | Optnone
- | Optsize
- | Readnone
- | Readonly
- | ReturnsTwice
- | SanitizeAddress
- | SanitizeMemory
- | SanitizeThread
- | SSP
- | SSPreq
- | SSPstrong
- | UWTable
- data BlockLabel
- data BasicBlock' lab = BasicBlock {}
- type BasicBlock = BasicBlock' BlockLabel
- brTargets :: BasicBlock' lab -> [lab]
- data Linkage
- data Visibility
- newtype GC = GC {}
- data Typed a = Typed {
- typedType :: Type
- typedValue :: a
- mapMTyped :: Monad m => (a -> m b) -> Typed a -> m (Typed b)
- data ArithOp
- isIArith :: ArithOp -> Bool
- isFArith :: ArithOp -> Bool
- data BitOp
- data ConvOp
- data AtomicRWOp
- data AtomicOrdering
- type Align = Int
- data Instr' lab
- = Ret (Typed (Value' lab))
- | RetVoid
- | Arith ArithOp (Typed (Value' lab)) (Value' lab)
- | Bit BitOp (Typed (Value' lab)) (Value' lab)
- | Conv ConvOp (Typed (Value' lab)) Type
- | Call Bool Type (Value' lab) [Typed (Value' lab)]
- | Alloca Type (Maybe (Typed (Value' lab))) (Maybe Int)
- | Load (Typed (Value' lab)) (Maybe AtomicOrdering) (Maybe Align)
- | Store (Typed (Value' lab)) (Typed (Value' lab)) (Maybe AtomicOrdering) (Maybe Align)
- | Fence (Maybe String) AtomicOrdering
- | CmpXchg Bool Bool (Typed (Value' lab)) (Typed (Value' lab)) (Typed (Value' lab)) (Maybe String) AtomicOrdering AtomicOrdering
- | AtomicRW Bool AtomicRWOp (Typed (Value' lab)) (Typed (Value' lab)) (Maybe String) AtomicOrdering
- | ICmp ICmpOp (Typed (Value' lab)) (Value' lab)
- | FCmp FCmpOp (Typed (Value' lab)) (Value' lab)
- | Phi Type [(Value' lab, lab)]
- | GEP Bool (Typed (Value' lab)) [Typed (Value' lab)]
- | Select (Typed (Value' lab)) (Typed (Value' lab)) (Value' lab)
- | ExtractValue (Typed (Value' lab)) [Int32]
- | InsertValue (Typed (Value' lab)) (Typed (Value' lab)) [Int32]
- | ExtractElt (Typed (Value' lab)) (Value' lab)
- | InsertElt (Typed (Value' lab)) (Typed (Value' lab)) (Value' lab)
- | ShuffleVector (Typed (Value' lab)) (Value' lab) (Typed (Value' lab))
- | Jump lab
- | Br (Typed (Value' lab)) lab lab
- | Invoke Type (Value' lab) [Typed (Value' lab)] lab lab
- | Comment String
- | Unreachable
- | Unwind
- | VaArg (Typed (Value' lab)) Type
- | IndirectBr (Typed (Value' lab)) [lab]
- | Switch (Typed (Value' lab)) lab [(Integer, lab)]
- | LandingPad Type (Maybe (Typed (Value' lab))) Bool [Clause' lab]
- | Resume (Typed (Value' lab))
- type Instr = Instr' BlockLabel
- data Clause' lab
- type Clause = Clause' BlockLabel
- isTerminator :: Instr' lab -> Bool
- isComment :: Instr' lab -> Bool
- isPhi :: Instr' lab -> Bool
- data ICmpOp
- data FCmpOp
- data Value' lab
- = ValInteger Integer
- | ValBool Bool
- | ValFloat Float
- | ValDouble Double
- | ValFP80 FP80Value
- | ValIdent Ident
- | ValSymbol Symbol
- | ValNull
- | ValArray Type [Value' lab]
- | ValVector Type [Value' lab]
- | ValStruct [Typed (Value' lab)]
- | ValPackedStruct [Typed (Value' lab)]
- | ValString [Word8]
- | ValConstExpr (ConstExpr' lab)
- | ValUndef
- | ValLabel lab
- | ValZeroInit
- | ValAsm Bool Bool String String
- | ValMd (ValMd' lab)
- type Value = Value' BlockLabel
- data FP80Value = FP80_LongDouble Word16 Word64
- data ValMd' lab
- = ValMdString String
- | ValMdValue (Typed (Value' lab))
- | ValMdRef Int
- | ValMdNode [Maybe (ValMd' lab)]
- | ValMdLoc (DebugLoc' lab)
- | ValMdDebugInfo (DebugInfo' lab)
- type ValMd = ValMd' BlockLabel
- type KindMd = String
- type FnMdAttachments = Map KindMd ValMd
- type GlobalMdAttachments = Map KindMd ValMd
- data DebugLoc' lab = DebugLoc {}
- type DebugLoc = DebugLoc' BlockLabel
- isConst :: Value' lab -> Bool
- elimValSymbol :: MonadPlus m => Value' lab -> m Symbol
- elimValInteger :: MonadPlus m => Value' lab -> m Integer
- data Stmt' lab
- type Stmt = Stmt' BlockLabel
- stmtInstr :: Stmt' lab -> Instr' lab
- stmtMetadata :: Stmt' lab -> [(String, ValMd' lab)]
- extendMetadata :: (String, ValMd' lab) -> Stmt' lab -> Stmt' lab
- data ConstExpr' lab
- = ConstGEP Bool (Maybe Word64) (Maybe Type) [Typed (Value' lab)]
- | ConstConv ConvOp (Typed (Value' lab)) Type
- | ConstSelect (Typed (Value' lab)) (Typed (Value' lab)) (Typed (Value' lab))
- | ConstBlockAddr Symbol lab
- | ConstFCmp FCmpOp (Typed (Value' lab)) (Typed (Value' lab))
- | ConstICmp ICmpOp (Typed (Value' lab)) (Typed (Value' lab))
- | ConstArith ArithOp (Typed (Value' lab)) (Value' lab)
- | ConstBit BitOp (Typed (Value' lab)) (Value' lab)
- type ConstExpr = ConstExpr' BlockLabel
- data DebugInfo' lab
- = DebugInfoBasicType DIBasicType
- | DebugInfoCompileUnit (DICompileUnit' lab)
- | DebugInfoCompositeType (DICompositeType' lab)
- | DebugInfoDerivedType (DIDerivedType' lab)
- | DebugInfoEnumerator String !Int64
- | DebugInfoExpression DIExpression
- | DebugInfoFile DIFile
- | DebugInfoGlobalVariable (DIGlobalVariable' lab)
- | DebugInfoGlobalVariableExpression (DIGlobalVariableExpression' lab)
- | DebugInfoLexicalBlock (DILexicalBlock' lab)
- | DebugInfoLexicalBlockFile (DILexicalBlockFile' lab)
- | DebugInfoLocalVariable (DILocalVariable' lab)
- | DebugInfoSubprogram (DISubprogram' lab)
- | DebugInfoSubrange DISubrange
- | DebugInfoSubroutineType (DISubroutineType' lab)
- | DebugInfoNameSpace (DINameSpace' lab)
- | DebugInfoTemplateTypeParameter (DITemplateTypeParameter' lab)
- | DebugInfoTemplateValueParameter (DITemplateValueParameter' lab)
- | DebugInfoImportedEntity (DIImportedEntity' lab)
- | DebugInfoLabel (DILabel' lab)
- type DebugInfo = DebugInfo' BlockLabel
- type DILabel = DILabel' BlockLabel
- data DILabel' lab = DILabel {}
- type DIImportedEntity = DIImportedEntity' BlockLabel
- data DIImportedEntity' lab = DIImportedEntity {}
- type DITemplateTypeParameter = DITemplateTypeParameter' BlockLabel
- data DITemplateTypeParameter' lab = DITemplateTypeParameter {}
- type DITemplateValueParameter = DITemplateValueParameter' BlockLabel
- data DITemplateValueParameter' lab = DITemplateValueParameter {}
- type DINameSpace = DINameSpace' BlockLabel
- data DINameSpace' lab = DINameSpace {}
- type DwarfAttrEncoding = Word16
- type DwarfLang = Word16
- type DwarfTag = Word16
- type DwarfVirtuality = Word8
- type DIFlags = Word32
- type DIEmissionKind = Word8
- data DIBasicType = DIBasicType {}
- data DICompileUnit' lab = DICompileUnit {
- dicuLanguage :: DwarfLang
- dicuFile :: Maybe (ValMd' lab)
- dicuProducer :: Maybe String
- dicuIsOptimized :: Bool
- dicuFlags :: Maybe String
- dicuRuntimeVersion :: Word16
- dicuSplitDebugFilename :: Maybe FilePath
- dicuEmissionKind :: DIEmissionKind
- dicuEnums :: Maybe (ValMd' lab)
- dicuRetainedTypes :: Maybe (ValMd' lab)
- dicuSubprograms :: Maybe (ValMd' lab)
- dicuGlobals :: Maybe (ValMd' lab)
- dicuImports :: Maybe (ValMd' lab)
- dicuMacros :: Maybe (ValMd' lab)
- dicuDWOId :: Word64
- dicuSplitDebugInlining :: Bool
- type DICompileUnit = DICompileUnit' BlockLabel
- data DICompositeType' lab = DICompositeType {
- dictTag :: DwarfTag
- dictName :: Maybe String
- dictFile :: Maybe (ValMd' lab)
- dictLine :: Word32
- dictScope :: Maybe (ValMd' lab)
- dictBaseType :: Maybe (ValMd' lab)
- dictSize :: Word64
- dictAlign :: Word64
- dictOffset :: Word64
- dictFlags :: DIFlags
- dictElements :: Maybe (ValMd' lab)
- dictRuntimeLang :: DwarfLang
- dictVTableHolder :: Maybe (ValMd' lab)
- dictTemplateParams :: Maybe (ValMd' lab)
- dictIdentifier :: Maybe String
- dictDiscriminator :: Maybe (ValMd' lab)
- type DICompositeType = DICompositeType' BlockLabel
- data DIDerivedType' lab = DIDerivedType {}
- type DIDerivedType = DIDerivedType' BlockLabel
- data DIExpression = DIExpression {
- dieElements :: [Word64]
- data DIFile = DIFile {}
- data DIGlobalVariable' lab = DIGlobalVariable {
- digvScope :: Maybe (ValMd' lab)
- digvName :: Maybe String
- digvLinkageName :: Maybe String
- digvFile :: Maybe (ValMd' lab)
- digvLine :: Word32
- digvType :: Maybe (ValMd' lab)
- digvIsLocal :: Bool
- digvIsDefinition :: Bool
- digvVariable :: Maybe (ValMd' lab)
- digvDeclaration :: Maybe (ValMd' lab)
- digvAlignment :: Maybe Word32
- type DIGlobalVariable = DIGlobalVariable' BlockLabel
- data DIGlobalVariableExpression' lab = DIGlobalVariableExpression {
- digveVariable :: Maybe (ValMd' lab)
- digveExpression :: Maybe (ValMd' lab)
- type DIGlobalVariableExpression = DIGlobalVariableExpression' BlockLabel
- data DILexicalBlock' lab = DILexicalBlock {}
- type DILexicalBlock = DILexicalBlock' BlockLabel
- data DILexicalBlockFile' lab = DILexicalBlockFile {
- dilbfScope :: ValMd' lab
- dilbfFile :: Maybe (ValMd' lab)
- dilbfDiscriminator :: Word32
- type DILexicalBlockFile = DILexicalBlockFile' BlockLabel
- data DILocalVariable' lab = DILocalVariable {}
- type DILocalVariable = DILocalVariable' BlockLabel
- data DISubprogram' lab = DISubprogram {
- dispScope :: Maybe (ValMd' lab)
- dispName :: Maybe String
- dispLinkageName :: Maybe String
- dispFile :: Maybe (ValMd' lab)
- dispLine :: Word32
- dispType :: Maybe (ValMd' lab)
- dispIsLocal :: Bool
- dispIsDefinition :: Bool
- dispScopeLine :: Word32
- dispContainingType :: Maybe (ValMd' lab)
- dispVirtuality :: DwarfVirtuality
- dispVirtualIndex :: Word32
- dispThisAdjustment :: Int64
- dispFlags :: DIFlags
- dispIsOptimized :: Bool
- dispUnit :: Maybe (ValMd' lab)
- dispTemplateParams :: Maybe (ValMd' lab)
- dispDeclaration :: Maybe (ValMd' lab)
- dispVariables :: Maybe (ValMd' lab)
- dispThrownTypes :: Maybe (ValMd' lab)
- type DISubprogram = DISubprogram' BlockLabel
- data DISubrange = DISubrange {}
- data DISubroutineType' lab = DISubroutineType {
- distFlags :: DIFlags
- distTypeArray :: Maybe (ValMd' lab)
- type DISubroutineType = DISubroutineType' BlockLabel
- data IndexResult
- isInvalid :: IndexResult -> Bool
- resolveGepFull :: (Ident -> Maybe Type) -> Type -> [Typed (Value' lab)] -> Maybe Type
- resolveGep :: Type -> [Typed (Value' lab)] -> IndexResult
- resolveGepBody :: Type -> [Typed (Value' lab)] -> IndexResult
- isGepIndex :: Typed (Value' lab) -> Bool
- isGepStructIndex :: Typed (Value' lab) -> Maybe Integer
- resolveValueIndex :: Type -> [Int32] -> IndexResult
Documentation
Module | |
|
Instances
emptyModule :: Module Source #
Instances
Eq NamedMd Source # | |
Data NamedMd Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NamedMd -> c NamedMd # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NamedMd # toConstr :: NamedMd -> Constr # dataTypeOf :: NamedMd -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NamedMd) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NamedMd) # gmapT :: (forall b. Data b => b -> b) -> NamedMd -> NamedMd # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NamedMd -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NamedMd -> r # gmapQ :: (forall d. Data d => d -> u) -> NamedMd -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> NamedMd -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> NamedMd -> m NamedMd # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedMd -> m NamedMd # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NamedMd -> m NamedMd # | |
Ord NamedMd Source # | |
Show NamedMd Source # | |
Generic NamedMd Source # | |
type Rep NamedMd Source # | |
Defined in Text.LLVM.AST type Rep NamedMd = D1 (MetaData "NamedMd" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "NamedMd" PrefixI True) (S1 (MetaSel (Just "nmName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: S1 (MetaSel (Just "nmValues") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Int]))) |
Instances
Eq UnnamedMd Source # | |
Data UnnamedMd Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> UnnamedMd -> c UnnamedMd # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c UnnamedMd # toConstr :: UnnamedMd -> Constr # dataTypeOf :: UnnamedMd -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c UnnamedMd) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c UnnamedMd) # gmapT :: (forall b. Data b => b -> b) -> UnnamedMd -> UnnamedMd # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> UnnamedMd -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> UnnamedMd -> r # gmapQ :: (forall d. Data d => d -> u) -> UnnamedMd -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> UnnamedMd -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> UnnamedMd -> m UnnamedMd # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> UnnamedMd -> m UnnamedMd # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> UnnamedMd -> m UnnamedMd # | |
Ord UnnamedMd Source # | |
Defined in Text.LLVM.AST | |
Show UnnamedMd Source # | |
Generic UnnamedMd Source # | |
type Rep UnnamedMd Source # | |
Defined in Text.LLVM.AST type Rep UnnamedMd = D1 (MetaData "UnnamedMd" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "UnnamedMd" PrefixI True) (S1 (MetaSel (Just "umIndex") NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Int) :*: (S1 (MetaSel (Just "umValues") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 ValMd) :*: S1 (MetaSel (Just "umDistinct") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))) |
data GlobalAlias Source #
Instances
type DataLayout = [LayoutSpec] Source #
data LayoutSpec Source #
BigEndian | |
LittleEndian | |
PointerSize !Int !Int !Int (Maybe Int) | address space, size, abi, pref |
IntegerSize !Int !Int (Maybe Int) | size, abi, pref |
VectorSize !Int !Int (Maybe Int) | size, abi, pref |
FloatSize !Int !Int (Maybe Int) | size, abi, pref |
StackObjSize !Int !Int (Maybe Int) | size, abi, pref |
AggregateSize !Int !Int (Maybe Int) | size, abi, pref |
NativeIntSize [Int] | |
StackAlign !Int | size |
Mangling Mangling |
Instances
Instances
Enum Mangling Source # | |
Eq Mangling Source # | |
Data Mangling Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Mangling -> c Mangling # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Mangling # toConstr :: Mangling -> Constr # dataTypeOf :: Mangling -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Mangling) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mangling) # gmapT :: (forall b. Data b => b -> b) -> Mangling -> Mangling # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mangling -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mangling -> r # gmapQ :: (forall d. Data d => d -> u) -> Mangling -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Mangling -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Mangling -> m Mangling # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Mangling -> m Mangling # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Mangling -> m Mangling # | |
Ord Mangling Source # | |
Defined in Text.LLVM.AST | |
Show Mangling Source # | |
Generic Mangling Source # | |
type Rep Mangling Source # | |
Defined in Text.LLVM.AST type Rep Mangling = D1 (MetaData "Mangling" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((C1 (MetaCons "ElfMangling" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "MipsMangling" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "MachOMangling" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "WindowsCoffMangling" PrefixI False) (U1 :: Type -> Type))) |
parseDataLayout :: MonadPlus m => String -> m DataLayout Source #
Parse the data layout string.
data SelectionKind Source #
Instances
Instances
Eq Ident Source # | |
Data Ident Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Ident -> c Ident # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Ident # dataTypeOf :: Ident -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Ident) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Ident) # gmapT :: (forall b. Data b => b -> b) -> Ident -> Ident # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Ident -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Ident -> r # gmapQ :: (forall d. Data d => d -> u) -> Ident -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Ident -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Ident -> m Ident # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Ident -> m Ident # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Ident -> m Ident # | |
Ord Ident Source # | |
Show Ident Source # | |
IsString Ident Source # | |
Defined in Text.LLVM.AST fromString :: String -> Ident # | |
Generic Ident Source # | |
IsValue Ident Source # | |
DefineArgs Type (Typed Value -> BB ()) Source # | |
DefineArgs (Type, Type) (Typed Value -> Typed Value -> BB ()) Source # | |
DefineArgs as k => DefineArgs (Type :> as) (Typed Value -> k) Source # | |
DefineArgs (Type, Type, Type) (Typed Value -> Typed Value -> Typed Value -> BB ()) Source # | |
type Rep Ident Source # | |
Defined in Text.LLVM.AST |
Instances
Eq Symbol Source # | |
Data Symbol Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Symbol -> c Symbol # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Symbol # toConstr :: Symbol -> Constr # dataTypeOf :: Symbol -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Symbol) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Symbol) # gmapT :: (forall b. Data b => b -> b) -> Symbol -> Symbol # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Symbol -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Symbol -> r # gmapQ :: (forall d. Data d => d -> u) -> Symbol -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Symbol -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Symbol -> m Symbol # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Symbol -> m Symbol # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Symbol -> m Symbol # | |
Ord Symbol Source # | |
Show Symbol Source # | |
IsString Symbol Source # | |
Defined in Text.LLVM.AST fromString :: String -> Symbol # | |
Generic Symbol Source # | |
Semigroup Symbol Source # | |
Monoid Symbol Source # | |
IsValue Symbol Source # | |
type Rep Symbol Source # | |
Defined in Text.LLVM.AST |
Instances
Eq PrimType Source # | |
Data PrimType Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> PrimType -> c PrimType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c PrimType # toConstr :: PrimType -> Constr # dataTypeOf :: PrimType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c PrimType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c PrimType) # gmapT :: (forall b. Data b => b -> b) -> PrimType -> PrimType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> PrimType -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> PrimType -> r # gmapQ :: (forall d. Data d => d -> u) -> PrimType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> PrimType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> PrimType -> m PrimType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> PrimType -> m PrimType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> PrimType -> m PrimType # | |
Ord PrimType Source # | |
Defined in Text.LLVM.AST | |
Show PrimType Source # | |
Generic PrimType Source # | |
type Rep PrimType Source # | |
Defined in Text.LLVM.AST type Rep PrimType = D1 (MetaData "PrimType" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((C1 (MetaCons "Label" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Void" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Integer" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word32)))) :+: (C1 (MetaCons "FloatType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FloatType)) :+: (C1 (MetaCons "X86mmx" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Metadata" PrefixI False) (U1 :: Type -> Type)))) |
Instances
Enum FloatType Source # | |
Defined in Text.LLVM.AST succ :: FloatType -> FloatType # pred :: FloatType -> FloatType # fromEnum :: FloatType -> Int # enumFrom :: FloatType -> [FloatType] # enumFromThen :: FloatType -> FloatType -> [FloatType] # enumFromTo :: FloatType -> FloatType -> [FloatType] # enumFromThenTo :: FloatType -> FloatType -> FloatType -> [FloatType] # | |
Eq FloatType Source # | |
Data FloatType Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FloatType -> c FloatType # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FloatType # toConstr :: FloatType -> Constr # dataTypeOf :: FloatType -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FloatType) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FloatType) # gmapT :: (forall b. Data b => b -> b) -> FloatType -> FloatType # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FloatType -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FloatType -> r # gmapQ :: (forall d. Data d => d -> u) -> FloatType -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FloatType -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FloatType -> m FloatType # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FloatType -> m FloatType # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FloatType -> m FloatType # | |
Ord FloatType Source # | |
Defined in Text.LLVM.AST | |
Show FloatType Source # | |
Generic FloatType Source # | |
type Rep FloatType Source # | |
Defined in Text.LLVM.AST type Rep FloatType = D1 (MetaData "FloatType" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((C1 (MetaCons "Half" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Float" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Double" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "Fp128" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "X86_fp80" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "PPC_fp128" PrefixI False) (U1 :: Type -> Type)))) |
PrimType PrimType | |
Alias ident | |
Array Word64 (Type' ident) | |
FunTy (Type' ident) [Type' ident] Bool | |
PtrTo (Type' ident) | |
Struct [Type' ident] | |
PackedStruct [Type' ident] | |
Vector Word64 (Type' ident) | |
Opaque |
Instances
updateAliasesA :: Applicative f => (a -> f (Type' b)) -> Type' a -> f (Type' b) Source #
Applicatively traverse a type, updating or removing aliases.
updateAliases :: (a -> Type' b) -> Type' a -> Type' b Source #
Traverse a type, updating or removing aliases.
isFloatingPoint :: PrimType -> Bool Source #
data NullResult lab Source #
HasNull (Value' lab) | |
ResolveNull Ident |
Instances
primTypeNull :: PrimType -> Value' lab Source #
floatTypeNull :: FloatType -> Value' lab Source #
typeNull :: Type -> NullResult lab Source #
elimSequentialType :: MonadPlus m => Type -> m Type Source #
Eliminator for array, pointer and vector types.
Instances
Eq TypeDecl Source # | |
Data TypeDecl Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> TypeDecl -> c TypeDecl # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c TypeDecl # toConstr :: TypeDecl -> Constr # dataTypeOf :: TypeDecl -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c TypeDecl) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c TypeDecl) # gmapT :: (forall b. Data b => b -> b) -> TypeDecl -> TypeDecl # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> TypeDecl -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> TypeDecl -> r # gmapQ :: (forall d. Data d => d -> u) -> TypeDecl -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> TypeDecl -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> TypeDecl -> m TypeDecl # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeDecl -> m TypeDecl # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> TypeDecl -> m TypeDecl # | |
Ord TypeDecl Source # | |
Defined in Text.LLVM.AST | |
Show TypeDecl Source # | |
Generic TypeDecl Source # | |
type Rep TypeDecl Source # | |
Defined in Text.LLVM.AST type Rep TypeDecl = D1 (MetaData "TypeDecl" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "TypeDecl" PrefixI True) (S1 (MetaSel (Just "typeName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Ident) :*: S1 (MetaSel (Just "typeValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type))) |
Instances
Eq Global Source # | |
Data Global Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Global -> c Global # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Global # toConstr :: Global -> Constr # dataTypeOf :: Global -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Global) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Global) # gmapT :: (forall b. Data b => b -> b) -> Global -> Global # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Global -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Global -> r # gmapQ :: (forall d. Data d => d -> u) -> Global -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Global -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Global -> m Global # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Global -> m Global # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Global -> m Global # | |
Ord Global Source # | |
Show Global Source # | |
Generic Global Source # | |
type Rep Global Source # | |
Defined in Text.LLVM.AST type Rep Global = D1 (MetaData "Global" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Global" PrefixI True) ((S1 (MetaSel (Just "globalSym") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Symbol) :*: (S1 (MetaSel (Just "globalAttrs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 GlobalAttrs) :*: S1 (MetaSel (Just "globalType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type))) :*: (S1 (MetaSel (Just "globalValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Value)) :*: (S1 (MetaSel (Just "globalAlign") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe Align)) :*: S1 (MetaSel (Just "globalMetadata") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 GlobalMdAttachments))))) |
data GlobalAttrs Source #
Instances
Instances
decFunType :: Declare -> Type Source #
The function type of this declaration
Define | |
|
Instances
defFunType :: Define -> Type Source #
Instances
Eq FunAttr Source # | |
Data FunAttr Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FunAttr -> c FunAttr # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FunAttr # toConstr :: FunAttr -> Constr # dataTypeOf :: FunAttr -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FunAttr) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FunAttr) # gmapT :: (forall b. Data b => b -> b) -> FunAttr -> FunAttr # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FunAttr -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FunAttr -> r # gmapQ :: (forall d. Data d => d -> u) -> FunAttr -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FunAttr -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FunAttr -> m FunAttr # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FunAttr -> m FunAttr # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FunAttr -> m FunAttr # | |
Ord FunAttr Source # | |
Show FunAttr Source # | |
Generic FunAttr Source # | |
type Rep FunAttr Source # | |
Defined in Text.LLVM.AST type Rep FunAttr = D1 (MetaData "FunAttr" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((((C1 (MetaCons "AlignStack" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Int)) :+: (C1 (MetaCons "Alwaysinline" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Builtin" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Cold" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Inlinehint" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Jumptable" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Minsize" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "Naked" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Nobuiltin" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Noduplicate" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Noimplicitfloat" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Noinline" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Nonlazybind" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Noredzone" PrefixI False) (U1 :: Type -> Type))))) :+: (((C1 (MetaCons "Noreturn" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Nounwind" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Optnone" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Optsize" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Readnone" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Readonly" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "ReturnsTwice" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "SanitizeAddress" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "SanitizeMemory" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "SanitizeThread" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "SSP" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "SSPreq" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "SSPstrong" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "UWTable" PrefixI False) (U1 :: Type -> Type)))))) |
data BlockLabel Source #
Instances
data BasicBlock' lab Source #
Instances
type BasicBlock = BasicBlock' BlockLabel Source #
brTargets :: BasicBlock' lab -> [lab] Source #
Symbol Linkage
Private | |
LinkerPrivate | |
LinkerPrivateWeak | |
LinkerPrivateWeakDefAuto | |
Internal | |
AvailableExternally | |
Linkonce | |
Weak | |
Common | |
Appending | |
ExternWeak | |
LinkonceODR | |
WeakODR | |
External | |
DLLImport | |
DLLExport |
Instances
Enum Linkage Source # | |
Eq Linkage Source # | |
Data Linkage Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Linkage -> c Linkage # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Linkage # toConstr :: Linkage -> Constr # dataTypeOf :: Linkage -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Linkage) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Linkage) # gmapT :: (forall b. Data b => b -> b) -> Linkage -> Linkage # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Linkage -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Linkage -> r # gmapQ :: (forall d. Data d => d -> u) -> Linkage -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Linkage -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Linkage -> m Linkage # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Linkage -> m Linkage # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Linkage -> m Linkage # | |
Ord Linkage Source # | |
Show Linkage Source # | |
Generic Linkage Source # | |
type Rep Linkage Source # | |
Defined in Text.LLVM.AST type Rep Linkage = D1 (MetaData "Linkage" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((((C1 (MetaCons "Private" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "LinkerPrivate" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "LinkerPrivateWeak" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "LinkerPrivateWeakDefAuto" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Internal" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "AvailableExternally" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Linkonce" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Weak" PrefixI False) (U1 :: Type -> Type)))) :+: (((C1 (MetaCons "Common" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Appending" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "ExternWeak" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "LinkonceODR" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "WeakODR" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "External" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "DLLImport" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DLLExport" PrefixI False) (U1 :: Type -> Type))))) |
data Visibility Source #
Instances
Instances
Eq GC Source # | |
Data GC Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> GC -> c GC # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c GC # dataTypeOf :: GC -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c GC) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c GC) # gmapT :: (forall b. Data b => b -> b) -> GC -> GC # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> GC -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> GC -> r # gmapQ :: (forall d. Data d => d -> u) -> GC -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> GC -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> GC -> m GC # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> GC -> m GC # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> GC -> m GC # | |
Ord GC Source # | |
Show GC Source # | |
Generic GC Source # | |
type Rep GC Source # | |
Defined in Text.LLVM.AST |
Typed | |
|
Instances
Functor Typed Source # | |
Foldable Typed Source # | |
Defined in Text.LLVM.AST fold :: Monoid m => Typed m -> m # foldMap :: Monoid m => (a -> m) -> Typed a -> m # foldr :: (a -> b -> b) -> b -> Typed a -> b # foldr' :: (a -> b -> b) -> b -> Typed a -> b # foldl :: (b -> a -> b) -> b -> Typed a -> b # foldl' :: (b -> a -> b) -> b -> Typed a -> b # foldr1 :: (a -> a -> a) -> Typed a -> a # foldl1 :: (a -> a -> a) -> Typed a -> a # elem :: Eq a => a -> Typed a -> Bool # maximum :: Ord a => Typed a -> a # minimum :: Ord a => Typed a -> a # | |
Traversable Typed Source # | |
DefineArgs Type (Typed Value -> BB ()) Source # | |
Eq a => Eq (Typed a) Source # | |
Data a => Data (Typed a) Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Typed a -> c (Typed a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Typed a) # toConstr :: Typed a -> Constr # dataTypeOf :: Typed a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Typed a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Typed a)) # gmapT :: (forall b. Data b => b -> b) -> Typed a -> Typed a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Typed a -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Typed a -> r # gmapQ :: (forall d. Data d => d -> u) -> Typed a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Typed a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Typed a -> m (Typed a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Typed a -> m (Typed a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Typed a -> m (Typed a) # | |
Ord a => Ord (Typed a) Source # | |
Show a => Show (Typed a) Source # | |
Generic (Typed a) Source # | |
IsValue a => IsValue (Typed a) Source # | |
Generic1 Typed Source # | |
DefineArgs (Type, Type) (Typed Value -> Typed Value -> BB ()) Source # | |
DefineArgs as k => DefineArgs (Type :> as) (Typed Value -> k) Source # | |
DefineArgs (Type, Type, Type) (Typed Value -> Typed Value -> Typed Value -> BB ()) Source # | |
type Rep (Typed a) Source # | |
Defined in Text.LLVM.AST type Rep (Typed a) = D1 (MetaData "Typed" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Typed" PrefixI True) (S1 (MetaSel (Just "typedType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type) :*: S1 (MetaSel (Just "typedValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 a))) | |
type Rep1 Typed Source # | |
Defined in Text.LLVM.AST type Rep1 Typed = D1 (MetaData "Typed" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Typed" PrefixI True) (S1 (MetaSel (Just "typedType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type) :*: S1 (MetaSel (Just "typedValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) Par1)) |
Add Bool Bool |
|
FAdd | Floating point addition. |
Sub Bool Bool |
|
FSub | Floating point subtraction. |
Mul Bool Bool |
|
FMul | Floating point multiplication. |
UDiv Bool |
|
SDiv Bool |
|
FDiv | Floating point division. |
URem | Integral unsigned reminder resulting from unsigned division. Division by 0 is undefined. |
SRem |
|
FRem |
|
Instances
Binary bitwise operators.
Shl Bool Bool |
|
Lshr Bool |
The value of the second parameter must be strictly less than the number of bits in the first parameter, otherwise the result is undefined. |
Ashr Bool |
The value of the second parameter must be strictly less than the number of bits in the first parameter, otherwise the result is undefined. |
And | |
Or | |
Xor |
Instances
Eq BitOp Source # | |
Data BitOp Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BitOp -> c BitOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BitOp # dataTypeOf :: BitOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BitOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BitOp) # gmapT :: (forall b. Data b => b -> b) -> BitOp -> BitOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BitOp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BitOp -> r # gmapQ :: (forall d. Data d => d -> u) -> BitOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> BitOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> BitOp -> m BitOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BitOp -> m BitOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BitOp -> m BitOp # | |
Ord BitOp Source # | |
Show BitOp Source # | |
Generic BitOp Source # | |
type Rep BitOp Source # | |
Defined in Text.LLVM.AST type Rep BitOp = D1 (MetaData "BitOp" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((C1 (MetaCons "Shl" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) :+: (C1 (MetaCons "Lshr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)) :+: C1 (MetaCons "Ashr" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool)))) :+: (C1 (MetaCons "And" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Or" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Xor" PrefixI False) (U1 :: Type -> Type)))) |
Conversions from one type to another.
Instances
Enum ConvOp Source # | |
Defined in Text.LLVM.AST | |
Eq ConvOp Source # | |
Data ConvOp Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ConvOp -> c ConvOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ConvOp # toConstr :: ConvOp -> Constr # dataTypeOf :: ConvOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ConvOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ConvOp) # gmapT :: (forall b. Data b => b -> b) -> ConvOp -> ConvOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ConvOp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ConvOp -> r # gmapQ :: (forall d. Data d => d -> u) -> ConvOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ConvOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ConvOp -> m ConvOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ConvOp -> m ConvOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ConvOp -> m ConvOp # | |
Ord ConvOp Source # | |
Show ConvOp Source # | |
Generic ConvOp Source # | |
type Rep ConvOp Source # | |
Defined in Text.LLVM.AST type Rep ConvOp = D1 (MetaData "ConvOp" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (((C1 (MetaCons "Trunc" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "ZExt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "SExt" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "FpTrunc" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "FpExt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "FpToUi" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "FpToSi" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "UiToFp" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "SiToFp" PrefixI False) (U1 :: Type -> Type))) :+: (C1 (MetaCons "PtrToInt" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "IntToPtr" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "BitCast" PrefixI False) (U1 :: Type -> Type))))) |
data AtomicRWOp Source #
AtomicXchg | |
AtomicAdd | |
AtomicSub | |
AtomicAnd | |
AtomicNand | |
AtomicOr | |
AtomicXor | |
AtomicMax | |
AtomicMin | |
AtomicUMax | |
AtomicUMin |
Instances
data AtomicOrdering Source #
Instances
Ret (Typed (Value' lab)) |
|
RetVoid |
|
Arith ArithOp (Typed (Value' lab)) (Value' lab) |
|
Bit BitOp (Typed (Value' lab)) (Value' lab) |
|
Conv ConvOp (Typed (Value' lab)) Type |
|
Call Bool Type (Value' lab) [Typed (Value' lab)] |
|
Alloca Type (Maybe (Typed (Value' lab))) (Maybe Int) |
|
Load (Typed (Value' lab)) (Maybe AtomicOrdering) (Maybe Align) |
|
Store (Typed (Value' lab)) (Typed (Value' lab)) (Maybe AtomicOrdering) (Maybe Align) |
|
Fence (Maybe String) AtomicOrdering |
|
CmpXchg Bool Bool (Typed (Value' lab)) (Typed (Value' lab)) (Typed (Value' lab)) (Maybe String) AtomicOrdering AtomicOrdering |
|
AtomicRW Bool AtomicRWOp (Typed (Value' lab)) (Typed (Value' lab)) (Maybe String) AtomicOrdering |
|
ICmp ICmpOp (Typed (Value' lab)) (Value' lab) |
|
FCmp FCmpOp (Typed (Value' lab)) (Value' lab) |
|
Phi Type [(Value' lab, lab)] |
|
GEP Bool (Typed (Value' lab)) [Typed (Value' lab)] |
The types in path are the types of the index, not the fields. The indexes are in units of fields (i.e., the first element in a struct is field 0, the next one is 1, etc., regardless of the size of the fields in bytes). |
Select (Typed (Value' lab)) (Typed (Value' lab)) (Value' lab) |
|
ExtractValue (Typed (Value' lab)) [Int32] |
|
InsertValue (Typed (Value' lab)) (Typed (Value' lab)) [Int32] |
|
ExtractElt (Typed (Value' lab)) (Value' lab) |
|
InsertElt (Typed (Value' lab)) (Typed (Value' lab)) (Value' lab) |
|
ShuffleVector (Typed (Value' lab)) (Value' lab) (Typed (Value' lab)) | |
Jump lab |
|
Br (Typed (Value' lab)) lab lab |
|
Invoke Type (Value' lab) [Typed (Value' lab)] lab lab | |
Comment String | Comment |
Unreachable | No defined sematics, we should not get to here. |
Unwind | |
VaArg (Typed (Value' lab)) Type | |
IndirectBr (Typed (Value' lab)) [lab] | |
Switch (Typed (Value' lab)) lab [(Integer, lab)] |
|
LandingPad Type (Maybe (Typed (Value' lab))) Bool [Clause' lab] | |
Resume (Typed (Value' lab)) |
Instances
type Instr = Instr' BlockLabel Source #
Instances
Functor Clause' Source # | |
HasLabel Clause' Source # | |
Defined in Text.LLVM.Labels | |
Eq lab => Eq (Clause' lab) Source # | |
Data lab => Data (Clause' lab) Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Clause' lab -> c (Clause' lab) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Clause' lab) # toConstr :: Clause' lab -> Constr # dataTypeOf :: Clause' lab -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Clause' lab)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Clause' lab)) # gmapT :: (forall b. Data b => b -> b) -> Clause' lab -> Clause' lab # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Clause' lab -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Clause' lab -> r # gmapQ :: (forall d. Data d => d -> u) -> Clause' lab -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Clause' lab -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Clause' lab -> m (Clause' lab) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause' lab -> m (Clause' lab) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Clause' lab -> m (Clause' lab) # | |
Ord lab => Ord (Clause' lab) Source # | |
Defined in Text.LLVM.AST | |
Show lab => Show (Clause' lab) Source # | |
Generic (Clause' lab) Source # | |
Generic1 Clause' Source # | |
type Rep (Clause' lab) Source # | |
Defined in Text.LLVM.AST type Rep (Clause' lab) = D1 (MetaData "Clause'" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Catch" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Typed (Value' lab)))) :+: C1 (MetaCons "Filter" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Typed (Value' lab))))) | |
type Rep1 Clause' Source # | |
Defined in Text.LLVM.AST type Rep1 Clause' = D1 (MetaData "Clause'" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Catch" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Typed :.: Rec1 Value')) :+: C1 (MetaCons "Filter" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Typed :.: Rec1 Value'))) |
type Clause = Clause' BlockLabel Source #
isTerminator :: Instr' lab -> Bool Source #
Integer comparison operators.
Instances
Enum ICmpOp Source # | |
Defined in Text.LLVM.AST | |
Eq ICmpOp Source # | |
Data ICmpOp Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ICmpOp -> c ICmpOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ICmpOp # toConstr :: ICmpOp -> Constr # dataTypeOf :: ICmpOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ICmpOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ICmpOp) # gmapT :: (forall b. Data b => b -> b) -> ICmpOp -> ICmpOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ICmpOp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ICmpOp -> r # gmapQ :: (forall d. Data d => d -> u) -> ICmpOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> ICmpOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> ICmpOp -> m ICmpOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ICmpOp -> m ICmpOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ICmpOp -> m ICmpOp # | |
Ord ICmpOp Source # | |
Show ICmpOp Source # | |
Generic ICmpOp Source # | |
type Rep ICmpOp Source # | |
Defined in Text.LLVM.AST type Rep ICmpOp = D1 (MetaData "ICmpOp" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (((C1 (MetaCons "Ieq" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Ine" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Iugt" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Iuge" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Iult" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "Iule" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Isgt" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Isge" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Islt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Isle" PrefixI False) (U1 :: Type -> Type))))) |
Floating-point comparison operators.
Instances
Enum FCmpOp Source # | |
Defined in Text.LLVM.AST | |
Eq FCmpOp Source # | |
Data FCmpOp Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FCmpOp -> c FCmpOp # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FCmpOp # toConstr :: FCmpOp -> Constr # dataTypeOf :: FCmpOp -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FCmpOp) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FCmpOp) # gmapT :: (forall b. Data b => b -> b) -> FCmpOp -> FCmpOp # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FCmpOp -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FCmpOp -> r # gmapQ :: (forall d. Data d => d -> u) -> FCmpOp -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FCmpOp -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FCmpOp -> m FCmpOp # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FCmpOp -> m FCmpOp # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FCmpOp -> m FCmpOp # | |
Ord FCmpOp Source # | |
Show FCmpOp Source # | |
Generic FCmpOp Source # | |
type Rep FCmpOp Source # | |
Defined in Text.LLVM.AST type Rep FCmpOp = D1 (MetaData "FCmpOp" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) ((((C1 (MetaCons "Ffalse" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Foeq" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Fogt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Foge" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Folt" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Fole" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Fone" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Ford" PrefixI False) (U1 :: Type -> Type)))) :+: (((C1 (MetaCons "Fueq" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Fugt" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Fuge" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Fult" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Fule" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Fune" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Funo" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Ftrue" PrefixI False) (U1 :: Type -> Type))))) |
ValInteger Integer | |
ValBool Bool | |
ValFloat Float | |
ValDouble Double | |
ValFP80 FP80Value | |
ValIdent Ident | |
ValSymbol Symbol | |
ValNull | |
ValArray Type [Value' lab] | |
ValVector Type [Value' lab] | |
ValStruct [Typed (Value' lab)] | |
ValPackedStruct [Typed (Value' lab)] | |
ValString [Word8] | |
ValConstExpr (ConstExpr' lab) | |
ValUndef | |
ValLabel lab | |
ValZeroInit | |
ValAsm Bool Bool String String | |
ValMd (ValMd' lab) |
Instances
type Value = Value' BlockLabel Source #
Instances
Eq FP80Value Source # | |
Data FP80Value Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> FP80Value -> c FP80Value # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c FP80Value # toConstr :: FP80Value -> Constr # dataTypeOf :: FP80Value -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c FP80Value) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c FP80Value) # gmapT :: (forall b. Data b => b -> b) -> FP80Value -> FP80Value # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> FP80Value -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> FP80Value -> r # gmapQ :: (forall d. Data d => d -> u) -> FP80Value -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> FP80Value -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> FP80Value -> m FP80Value # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> FP80Value -> m FP80Value # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> FP80Value -> m FP80Value # | |
Ord FP80Value Source # | |
Defined in Text.LLVM.AST | |
Show FP80Value Source # | |
Generic FP80Value Source # | |
type Rep FP80Value Source # | |
Defined in Text.LLVM.AST type Rep FP80Value = D1 (MetaData "FP80Value" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "FP80_LongDouble" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word16) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Word64))) |
ValMdString String | |
ValMdValue (Typed (Value' lab)) | |
ValMdRef Int | |
ValMdNode [Maybe (ValMd' lab)] | |
ValMdLoc (DebugLoc' lab) | |
ValMdDebugInfo (DebugInfo' lab) |
Instances
type ValMd = ValMd' BlockLabel Source #
Instances
type DebugLoc = DebugLoc' BlockLabel Source #
Instances
type Stmt = Stmt' BlockLabel Source #
data ConstExpr' lab Source #
ConstGEP Bool (Maybe Word64) (Maybe Type) [Typed (Value' lab)] | Element type introduced in LLVM 3.7 |
ConstConv ConvOp (Typed (Value' lab)) Type | |
ConstSelect (Typed (Value' lab)) (Typed (Value' lab)) (Typed (Value' lab)) | |
ConstBlockAddr Symbol lab | |
ConstFCmp FCmpOp (Typed (Value' lab)) (Typed (Value' lab)) | |
ConstICmp ICmpOp (Typed (Value' lab)) (Typed (Value' lab)) | |
ConstArith ArithOp (Typed (Value' lab)) (Value' lab) | |
ConstBit BitOp (Typed (Value' lab)) (Value' lab) |
Instances
type ConstExpr = ConstExpr' BlockLabel Source #
data DebugInfo' lab Source #
Instances
type DebugInfo = DebugInfo' BlockLabel Source #
type DILabel = DILabel' BlockLabel Source #
Instances
data DIImportedEntity' lab Source #
Instances
data DITemplateTypeParameter' lab Source #
Instances
data DITemplateValueParameter' lab Source #
Instances
type DINameSpace = DINameSpace' BlockLabel Source #
data DINameSpace' lab Source #
Instances
type DwarfAttrEncoding = Word16 Source #
type DwarfVirtuality = Word8 Source #
type DIEmissionKind = Word8 Source #
data DIBasicType Source #
Instances
data DICompileUnit' lab Source #
DICompileUnit | |
|
Instances
type DICompileUnit = DICompileUnit' BlockLabel Source #
data DICompositeType' lab Source #
DICompositeType | |
|
Instances
data DIDerivedType' lab Source #
Instances
type DIDerivedType = DIDerivedType' BlockLabel Source #
data DIExpression Source #
Instances
Instances
Eq DIFile Source # | |
Data DIFile Source # | |
Defined in Text.LLVM.AST gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DIFile -> c DIFile # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DIFile # toConstr :: DIFile -> Constr # dataTypeOf :: DIFile -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DIFile) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DIFile) # gmapT :: (forall b. Data b => b -> b) -> DIFile -> DIFile # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DIFile -> r # gmapQr :: (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DIFile -> r # gmapQ :: (forall d. Data d => d -> u) -> DIFile -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DIFile -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DIFile -> m DIFile # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DIFile -> m DIFile # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DIFile -> m DIFile # | |
Ord DIFile Source # | |
Show DIFile Source # | |
Generic DIFile Source # | |
type Rep DIFile Source # | |
Defined in Text.LLVM.AST type Rep DIFile = D1 (MetaData "DIFile" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "DIFile" PrefixI True) (S1 (MetaSel (Just "difFilename") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath) :*: S1 (MetaSel (Just "difDirectory") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 FilePath))) |
data DIGlobalVariable' lab Source #
DIGlobalVariable | |
|
Instances
data DIGlobalVariableExpression' lab Source #
DIGlobalVariableExpression | |
|
Instances
data DILexicalBlock' lab Source #
Instances
data DILexicalBlockFile' lab Source #
DILexicalBlockFile | |
|
Instances
data DILocalVariable' lab Source #
Instances
data DISubprogram' lab Source #
DISubprogram | |
|
Instances
type DISubprogram = DISubprogram' BlockLabel Source #
data DISubrange Source #
Instances
data DISubroutineType' lab Source #
DISubroutineType | |
|
Instances
data IndexResult Source #
Invalid | An invalid use of GEP |
HasType Type | A resolved type |
Resolve Ident (Type -> IndexResult) | Continue, after resolving an alias |
Instances
Generic IndexResult Source # | |
Defined in Text.LLVM.AST type Rep IndexResult :: Type -> Type # from :: IndexResult -> Rep IndexResult x # to :: Rep IndexResult x -> IndexResult # | |
type Rep IndexResult Source # | |
Defined in Text.LLVM.AST type Rep IndexResult = D1 (MetaData "IndexResult" "Text.LLVM.AST" "llvm-pretty-0.11.0-HjiEHfHm3J36rXBFPR2FNK" False) (C1 (MetaCons "Invalid" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "HasType" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Type)) :+: C1 (MetaCons "Resolve" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Ident) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Type -> IndexResult))))) |
isInvalid :: IndexResult -> Bool Source #
:: (Ident -> Maybe Type) | Type alias resolution |
-> Type | Pointer type |
-> [Typed (Value' lab)] | Path |
-> Maybe Type | Type of result |
Resolves the type of a GEP instruction. Type aliases are resolved
using the given function. An invalid use of GEP or one relying
on unknown type aliases will return Nothing
resolveGep :: Type -> [Typed (Value' lab)] -> IndexResult Source #
Resolve the type of a GEP instruction. Note that the type produced is the type of the result, not necessarily a pointer.
resolveGepBody :: Type -> [Typed (Value' lab)] -> IndexResult Source #
Resolve the type of a GEP instruction. This assumes that the input has already been processed as a pointer.
resolveValueIndex :: Type -> [Int32] -> IndexResult Source #