packages feed

llvm-general-pure 3.4.5.4 → 3.5.0.0

raw patch · 19 files changed

+393/−176 lines, 19 filesdep −transformers-compatdep ~basedep ~llvm-general-puredep ~mtlPVP ok

version bump matches the API change (PVP)

Dependencies removed: transformers-compat

Dependency ranges changed: base, llvm-general-pure, mtl, transformers

API changes (from Hackage documentation)

- LLVM.General.AST: BasicBlock :: Name -> [Named Instruction] -> (Named Terminator) -> BasicBlock
- LLVM.General.AST: Function :: Linkage -> Visibility -> CallingConvention -> [ParameterAttribute] -> Type -> Name -> ([Parameter], Bool) -> [FunctionAttribute] -> Maybe String -> Word32 -> Maybe String -> [BasicBlock] -> Global
- LLVM.General.AST: GlobalAlias :: Name -> Linkage -> Visibility -> Type -> Constant -> Global
- LLVM.General.AST: GlobalDefinition :: Global -> Definition
- LLVM.General.AST: GlobalVariable :: Name -> Linkage -> Visibility -> Bool -> AddrSpace -> Bool -> Bool -> Type -> Maybe Constant -> Maybe String -> Word32 -> Global
- LLVM.General.AST: MetadataNodeDefinition :: MetadataNodeID -> [Maybe Operand] -> Definition
- LLVM.General.AST: Module :: String -> Maybe DataLayout -> Maybe String -> [Definition] -> Module
- LLVM.General.AST: ModuleInlineAssembly :: String -> Definition
- LLVM.General.AST: NamedMetadataDefinition :: String -> [MetadataNodeID] -> Definition
- LLVM.General.AST: Parameter :: Type -> Name -> [ParameterAttribute] -> Parameter
- LLVM.General.AST: TypeDefinition :: Name -> (Maybe Type) -> Definition
- LLVM.General.AST: instance Typeable Definition
- LLVM.General.AST: instance Typeable Module
- LLVM.General.AST: moduleDataLayout :: Module -> Maybe DataLayout
- LLVM.General.AST: moduleDefinitions :: Module -> [Definition]
- LLVM.General.AST: moduleName :: Module -> String
- LLVM.General.AST: moduleTargetTriple :: Module -> Maybe String
- LLVM.General.AST.AddrSpace: AddrSpace :: Word32 -> AddrSpace
- LLVM.General.AST.AddrSpace: instance Typeable AddrSpace
- LLVM.General.AST.Attribute: Alignment :: Word32 -> ParameterAttribute
- LLVM.General.AST.Attribute: AlwaysInline :: FunctionAttribute
- LLVM.General.AST.Attribute: ByVal :: ParameterAttribute
- LLVM.General.AST.Attribute: InReg :: ParameterAttribute
- LLVM.General.AST.Attribute: InlineHint :: FunctionAttribute
- LLVM.General.AST.Attribute: Naked :: FunctionAttribute
- LLVM.General.AST.Attribute: Nest :: ParameterAttribute
- LLVM.General.AST.Attribute: NoAlias :: ParameterAttribute
- LLVM.General.AST.Attribute: NoCapture :: ParameterAttribute
- LLVM.General.AST.Attribute: NoImplicitFloat :: FunctionAttribute
- LLVM.General.AST.Attribute: NoInline :: FunctionAttribute
- LLVM.General.AST.Attribute: NoRedZone :: FunctionAttribute
- LLVM.General.AST.Attribute: NoReturn :: FunctionAttribute
- LLVM.General.AST.Attribute: NoUnwind :: FunctionAttribute
- LLVM.General.AST.Attribute: NonLazyBind :: FunctionAttribute
- LLVM.General.AST.Attribute: OptimizeForSize :: FunctionAttribute
- LLVM.General.AST.Attribute: ReadNone :: FunctionAttribute
- LLVM.General.AST.Attribute: ReadOnly :: FunctionAttribute
- LLVM.General.AST.Attribute: ReturnsTwice :: FunctionAttribute
- LLVM.General.AST.Attribute: SRet :: ParameterAttribute
- LLVM.General.AST.Attribute: SignExt :: ParameterAttribute
- LLVM.General.AST.Attribute: StackAlignment :: Word32 -> FunctionAttribute
- LLVM.General.AST.Attribute: StackProtect :: FunctionAttribute
- LLVM.General.AST.Attribute: StackProtectReq :: FunctionAttribute
- LLVM.General.AST.Attribute: UWTable :: FunctionAttribute
- LLVM.General.AST.Attribute: ZeroExt :: ParameterAttribute
- LLVM.General.AST.Attribute: instance Data FunctionAttribute
- LLVM.General.AST.Attribute: instance Data ParameterAttribute
- LLVM.General.AST.Attribute: instance Eq FunctionAttribute
- LLVM.General.AST.Attribute: instance Eq ParameterAttribute
- LLVM.General.AST.Attribute: instance Read FunctionAttribute
- LLVM.General.AST.Attribute: instance Read ParameterAttribute
- LLVM.General.AST.Attribute: instance Show FunctionAttribute
- LLVM.General.AST.Attribute: instance Show ParameterAttribute
- LLVM.General.AST.Attribute: instance Typeable FunctionAttribute
- LLVM.General.AST.Attribute: instance Typeable ParameterAttribute
- LLVM.General.AST.CallingConvention: C :: CallingConvention
- LLVM.General.AST.CallingConvention: Cold :: CallingConvention
- LLVM.General.AST.CallingConvention: Fast :: CallingConvention
- LLVM.General.AST.CallingConvention: GHC :: CallingConvention
- LLVM.General.AST.CallingConvention: Numbered :: Word32 -> CallingConvention
- LLVM.General.AST.CallingConvention: instance Typeable CallingConvention
- LLVM.General.AST.Constant: AShr :: Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Add :: Bool -> Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: And :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Array :: Type -> [Constant] -> Constant
- LLVM.General.AST.Constant: BitCast :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: BlockAddress :: Name -> Name -> Constant
- LLVM.General.AST.Constant: ExtractElement :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: ExtractValue :: Constant -> [Word32] -> Constant
- LLVM.General.AST.Constant: FAdd :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: FCmp :: FloatingPointPredicate -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: FDiv :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: FMul :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: FPExt :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: FPToSI :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: FPToUI :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: FPTrunc :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: FRem :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: FSub :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Float :: SomeFloat -> Constant
- LLVM.General.AST.Constant: GetElementPtr :: Bool -> Constant -> [Constant] -> Constant
- LLVM.General.AST.Constant: GlobalReference :: Type -> Name -> Constant
- LLVM.General.AST.Constant: ICmp :: IntegerPredicate -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: InsertElement :: Constant -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: InsertValue :: Constant -> Constant -> [Word32] -> Constant
- LLVM.General.AST.Constant: Int :: Word32 -> Integer -> Constant
- LLVM.General.AST.Constant: IntToPtr :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: LShr :: Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Mul :: Bool -> Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Null :: Type -> Constant
- LLVM.General.AST.Constant: Or :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: PtrToInt :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: SDiv :: Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: SExt :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: SIToFP :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: SRem :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Select :: Constant -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Shl :: Bool -> Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: ShuffleVector :: Constant -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Struct :: Maybe Name -> Bool -> [Constant] -> Constant
- LLVM.General.AST.Constant: Sub :: Bool -> Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Trunc :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: UDiv :: Bool -> Constant -> Constant -> Constant
- LLVM.General.AST.Constant: UIToFP :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: URem :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: Undef :: Type -> Constant
- LLVM.General.AST.Constant: Vector :: [Constant] -> Constant
- LLVM.General.AST.Constant: Xor :: Constant -> Constant -> Constant
- LLVM.General.AST.Constant: ZExt :: Constant -> Type -> Constant
- LLVM.General.AST.Constant: address :: Constant -> Constant
- LLVM.General.AST.Constant: aggregate :: Constant -> Constant
- LLVM.General.AST.Constant: blockAddressBlock :: Constant -> Name
- LLVM.General.AST.Constant: blockAddressFunction :: Constant -> Name
- LLVM.General.AST.Constant: condition' :: Constant -> Constant
- LLVM.General.AST.Constant: constantType :: Constant -> Type
- LLVM.General.AST.Constant: element :: Constant -> Constant
- LLVM.General.AST.Constant: exact :: Constant -> Bool
- LLVM.General.AST.Constant: falseValue :: Constant -> Constant
- LLVM.General.AST.Constant: floatValue :: Constant -> SomeFloat
- LLVM.General.AST.Constant: fpPredicate :: Constant -> FloatingPointPredicate
- LLVM.General.AST.Constant: iPredicate :: Constant -> IntegerPredicate
- LLVM.General.AST.Constant: inBounds :: Constant -> Bool
- LLVM.General.AST.Constant: index :: Constant -> Constant
- LLVM.General.AST.Constant: indices :: Constant -> [Constant]
- LLVM.General.AST.Constant: indices' :: Constant -> [Word32]
- LLVM.General.AST.Constant: instance Typeable Constant
- LLVM.General.AST.Constant: integerBits :: Constant -> Word32
- LLVM.General.AST.Constant: integerValue :: Constant -> Integer
- LLVM.General.AST.Constant: isPacked :: Constant -> Bool
- LLVM.General.AST.Constant: mask :: Constant -> Constant
- LLVM.General.AST.Constant: memberType :: Constant -> Type
- LLVM.General.AST.Constant: memberValues :: Constant -> [Constant]
- LLVM.General.AST.Constant: nsw :: Constant -> Bool
- LLVM.General.AST.Constant: nuw :: Constant -> Bool
- LLVM.General.AST.Constant: operand0 :: Constant -> Constant
- LLVM.General.AST.Constant: operand1 :: Constant -> Constant
- LLVM.General.AST.Constant: structName :: Constant -> Maybe Name
- LLVM.General.AST.Constant: trueValue :: Constant -> Constant
- LLVM.General.AST.Constant: type' :: Constant -> Type
- LLVM.General.AST.Constant: vector :: Constant -> Constant
- LLVM.General.AST.DataLayout: AggregateAlign :: AlignType
- LLVM.General.AST.DataLayout: AlignmentInfo :: Word32 -> Maybe Word32 -> AlignmentInfo
- LLVM.General.AST.DataLayout: BigEndian :: Endianness
- LLVM.General.AST.DataLayout: DataLayout :: Maybe Endianness -> Maybe Word32 -> Map AddrSpace (Word32, AlignmentInfo) -> Map (AlignType, Word32) AlignmentInfo -> Maybe (Set Word32) -> DataLayout
- LLVM.General.AST.DataLayout: FloatAlign :: AlignType
- LLVM.General.AST.DataLayout: IntegerAlign :: AlignType
- LLVM.General.AST.DataLayout: LittleEndian :: Endianness
- LLVM.General.AST.DataLayout: StackAlign :: AlignType
- LLVM.General.AST.DataLayout: VectorAlign :: AlignType
- LLVM.General.AST.DataLayout: abiAlignment :: AlignmentInfo -> Word32
- LLVM.General.AST.DataLayout: endianness :: DataLayout -> Maybe Endianness
- LLVM.General.AST.DataLayout: instance Typeable AlignType
- LLVM.General.AST.DataLayout: instance Typeable AlignmentInfo
- LLVM.General.AST.DataLayout: instance Typeable DataLayout
- LLVM.General.AST.DataLayout: instance Typeable Endianness
- LLVM.General.AST.DataLayout: nativeSizes :: DataLayout -> Maybe (Set Word32)
- LLVM.General.AST.DataLayout: pointerLayouts :: DataLayout -> Map AddrSpace (Word32, AlignmentInfo)
- LLVM.General.AST.DataLayout: preferredAlignment :: AlignmentInfo -> Maybe Word32
- LLVM.General.AST.DataLayout: stackAlignment :: DataLayout -> Maybe Word32
- LLVM.General.AST.DataLayout: typeLayouts :: DataLayout -> Map (AlignType, Word32) AlignmentInfo
- LLVM.General.AST.Float: Double :: Double -> SomeFloat
- LLVM.General.AST.Float: Half :: Word16 -> SomeFloat
- LLVM.General.AST.Float: PPC_FP128 :: Word64 -> Word64 -> SomeFloat
- LLVM.General.AST.Float: Quadruple :: Word64 -> Word64 -> SomeFloat
- LLVM.General.AST.Float: Single :: Float -> SomeFloat
- LLVM.General.AST.Float: X86_FP80 :: Word16 -> Word64 -> SomeFloat
- LLVM.General.AST.Float: instance Typeable SomeFloat
- LLVM.General.AST.FloatingPointPredicate: False :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: OEQ :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: OGE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: OGT :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: OLE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: OLT :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: ONE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: ORD :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: True :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: UEQ :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: UGE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: UGT :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: ULE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: ULT :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: UNE :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: UNO :: FloatingPointPredicate
- LLVM.General.AST.FloatingPointPredicate: instance Typeable FloatingPointPredicate
- LLVM.General.AST.Global: BasicBlock :: Name -> [Named Instruction] -> (Named Terminator) -> BasicBlock
- LLVM.General.AST.Global: Function :: Linkage -> Visibility -> CallingConvention -> [ParameterAttribute] -> Type -> Name -> ([Parameter], Bool) -> [FunctionAttribute] -> Maybe String -> Word32 -> Maybe String -> [BasicBlock] -> Global
- LLVM.General.AST.Global: GlobalAlias :: Name -> Linkage -> Visibility -> Type -> Constant -> Global
- LLVM.General.AST.Global: GlobalVariable :: Name -> Linkage -> Visibility -> Bool -> AddrSpace -> Bool -> Bool -> Type -> Maybe Constant -> Maybe String -> Word32 -> Global
- LLVM.General.AST.Global: Parameter :: Type -> Name -> [ParameterAttribute] -> Parameter
- LLVM.General.AST.Global: addrSpace :: Global -> AddrSpace
- LLVM.General.AST.Global: aliasee :: Global -> Constant
- LLVM.General.AST.Global: alignment :: Global -> Word32
- LLVM.General.AST.Global: basicBlocks :: Global -> [BasicBlock]
- LLVM.General.AST.Global: callingConvention :: Global -> CallingConvention
- LLVM.General.AST.Global: functionAttributes :: Global -> [FunctionAttribute]
- LLVM.General.AST.Global: garbageCollectorName :: Global -> Maybe String
- LLVM.General.AST.Global: hasUnnamedAddr :: Global -> Bool
- LLVM.General.AST.Global: initializer :: Global -> Maybe Constant
- LLVM.General.AST.Global: instance Typeable BasicBlock
- LLVM.General.AST.Global: instance Typeable Global
- LLVM.General.AST.Global: instance Typeable Parameter
- LLVM.General.AST.Global: isConstant :: Global -> Bool
- LLVM.General.AST.Global: isThreadLocal :: Global -> Bool
- LLVM.General.AST.Global: linkage :: Global -> Linkage
- LLVM.General.AST.Global: name :: Global -> Name
- LLVM.General.AST.Global: parameters :: Global -> ([Parameter], Bool)
- LLVM.General.AST.Global: returnAttributes :: Global -> [ParameterAttribute]
- LLVM.General.AST.Global: returnType :: Global -> Type
- LLVM.General.AST.Global: section :: Global -> Maybe String
- LLVM.General.AST.Global: type' :: Global -> Type
- LLVM.General.AST.Global: visibility :: Global -> Visibility
- LLVM.General.AST.InlineAssembly: ATTDialect :: Dialect
- LLVM.General.AST.InlineAssembly: InlineAssembly :: Type -> String -> String -> Bool -> Bool -> Dialect -> InlineAssembly
- LLVM.General.AST.InlineAssembly: IntelDialect :: Dialect
- LLVM.General.AST.InlineAssembly: alignStack :: InlineAssembly -> Bool
- LLVM.General.AST.InlineAssembly: assembly :: InlineAssembly -> String
- LLVM.General.AST.InlineAssembly: constraints :: InlineAssembly -> String
- LLVM.General.AST.InlineAssembly: dialect :: InlineAssembly -> Dialect
- LLVM.General.AST.InlineAssembly: hasSideEffects :: InlineAssembly -> Bool
- LLVM.General.AST.InlineAssembly: instance Typeable Dialect
- LLVM.General.AST.InlineAssembly: instance Typeable InlineAssembly
- LLVM.General.AST.InlineAssembly: type' :: InlineAssembly -> Type
- LLVM.General.AST.Instruction: (:=) :: Name -> a -> Named a
- LLVM.General.AST.Instruction: AShr :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Acquire :: MemoryOrdering
- LLVM.General.AST.Instruction: AcquireRelease :: MemoryOrdering
- LLVM.General.AST.Instruction: Add :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: AddrSpaceCast :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Alloca :: Type -> Maybe Operand -> Word32 -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: And :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: AtomicRMW :: Bool -> RMWOperation -> Operand -> Operand -> Atomicity -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Atomicity :: Bool -> MemoryOrdering -> Atomicity
- LLVM.General.AST.Instruction: BitCast :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Br :: Name -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: Call :: Bool -> CallingConvention -> [ParameterAttribute] -> CallableOperand -> [(Operand, [ParameterAttribute])] -> [FunctionAttribute] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Catch :: Constant -> LandingPadClause
- LLVM.General.AST.Instruction: CmpXchg :: Bool -> Operand -> Operand -> Operand -> Atomicity -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: CondBr :: Operand -> Name -> Name -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: Do :: a -> Named a
- LLVM.General.AST.Instruction: ExtractElement :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: ExtractValue :: Operand -> [Word32] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FAdd :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FCmp :: FloatingPointPredicate -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FDiv :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FMul :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FPExt :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FPToSI :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FPToUI :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FPTrunc :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FRem :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FSub :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: FastMathFlags :: Bool -> Bool -> Bool -> Bool -> FastMathFlags
- LLVM.General.AST.Instruction: Fence :: Atomicity -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Filter :: Constant -> LandingPadClause
- LLVM.General.AST.Instruction: GetElementPtr :: Bool -> Operand -> [Operand] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: ICmp :: IntegerPredicate -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: IndirectBr :: Operand -> [Name] -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: InsertElement :: Operand -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: InsertValue :: Operand -> Operand -> [Word32] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: IntToPtr :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Invoke :: CallingConvention -> [ParameterAttribute] -> CallableOperand -> [(Operand, [ParameterAttribute])] -> [FunctionAttribute] -> Name -> Name -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: LShr :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: LandingPad :: Type -> Operand -> Bool -> [LandingPadClause] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Load :: Bool -> Operand -> Maybe Atomicity -> Word32 -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Monotonic :: MemoryOrdering
- LLVM.General.AST.Instruction: Mul :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: NoFastMathFlags :: FastMathFlags
- LLVM.General.AST.Instruction: Or :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Phi :: Type -> [(Operand, Name)] -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: PtrToInt :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Release :: MemoryOrdering
- LLVM.General.AST.Instruction: Resume :: Operand -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: Ret :: Maybe Operand -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: SDiv :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: SExt :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: SIToFP :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: SRem :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Select :: Operand -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: SequentiallyConsistent :: MemoryOrdering
- LLVM.General.AST.Instruction: Shl :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: ShuffleVector :: Operand -> Operand -> Constant -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Store :: Bool -> Operand -> Operand -> Maybe Atomicity -> Word32 -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Sub :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Switch :: Operand -> Name -> [(Constant, Name)] -> InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: Trunc :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: UDiv :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: UIToFP :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: URem :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Unordered :: MemoryOrdering
- LLVM.General.AST.Instruction: Unreachable :: InstructionMetadata -> Terminator
- LLVM.General.AST.Instruction: UnsafeAlgebra :: FastMathFlags
- LLVM.General.AST.Instruction: VAArg :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: Xor :: Operand -> Operand -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: ZExt :: Operand -> Type -> InstructionMetadata -> Instruction
- LLVM.General.AST.Instruction: address :: Instruction -> Operand
- LLVM.General.AST.Instruction: aggregate :: Instruction -> Operand
- LLVM.General.AST.Instruction: alignment :: Instruction -> Word32
- LLVM.General.AST.Instruction: allocatedType :: Instruction -> Type
- LLVM.General.AST.Instruction: allowReciprocal :: FastMathFlags -> Bool
- LLVM.General.AST.Instruction: argList :: Instruction -> Operand
- LLVM.General.AST.Instruction: arguments :: Instruction -> [(Operand, [ParameterAttribute])]
- LLVM.General.AST.Instruction: arguments' :: Terminator -> [(Operand, [ParameterAttribute])]
- LLVM.General.AST.Instruction: atomicity :: Instruction -> Atomicity
- LLVM.General.AST.Instruction: callingConvention :: Instruction -> CallingConvention
- LLVM.General.AST.Instruction: callingConvention' :: Terminator -> CallingConvention
- LLVM.General.AST.Instruction: clauses :: Instruction -> [LandingPadClause]
- LLVM.General.AST.Instruction: cleanup :: Instruction -> Bool
- LLVM.General.AST.Instruction: condition :: Terminator -> Operand
- LLVM.General.AST.Instruction: condition' :: Instruction -> Operand
- LLVM.General.AST.Instruction: crossThread :: Atomicity -> Bool
- LLVM.General.AST.Instruction: data Atomicity
- LLVM.General.AST.Instruction: defaultDest :: Terminator -> Name
- LLVM.General.AST.Instruction: dest :: Terminator -> Name
- LLVM.General.AST.Instruction: dests :: Terminator -> [(Constant, Name)]
- LLVM.General.AST.Instruction: element :: Instruction -> Operand
- LLVM.General.AST.Instruction: exact :: Instruction -> Bool
- LLVM.General.AST.Instruction: exceptionDest :: Terminator -> Name
- LLVM.General.AST.Instruction: expected :: Instruction -> Operand
- LLVM.General.AST.Instruction: falseDest :: Terminator -> Name
- LLVM.General.AST.Instruction: falseValue :: Instruction -> Operand
- LLVM.General.AST.Instruction: fastMathFlags :: Instruction -> FastMathFlags
- LLVM.General.AST.Instruction: fpPredicate :: Instruction -> FloatingPointPredicate
- LLVM.General.AST.Instruction: function :: Instruction -> CallableOperand
- LLVM.General.AST.Instruction: function' :: Terminator -> CallableOperand
- LLVM.General.AST.Instruction: functionAttributes :: Instruction -> [FunctionAttribute]
- LLVM.General.AST.Instruction: functionAttributes' :: Terminator -> [FunctionAttribute]
- LLVM.General.AST.Instruction: iPredicate :: Instruction -> IntegerPredicate
- LLVM.General.AST.Instruction: inBounds :: Instruction -> Bool
- LLVM.General.AST.Instruction: incomingValues :: Instruction -> [(Operand, Name)]
- LLVM.General.AST.Instruction: index :: Instruction -> Operand
- LLVM.General.AST.Instruction: indices :: Instruction -> [Operand]
- LLVM.General.AST.Instruction: indices' :: Instruction -> [Word32]
- LLVM.General.AST.Instruction: instance Data Atomicity
- LLVM.General.AST.Instruction: instance Eq Atomicity
- LLVM.General.AST.Instruction: instance Ord Atomicity
- LLVM.General.AST.Instruction: instance Read Atomicity
- LLVM.General.AST.Instruction: instance Show Atomicity
- LLVM.General.AST.Instruction: instance Typeable Atomicity
- LLVM.General.AST.Instruction: instance Typeable FastMathFlags
- LLVM.General.AST.Instruction: instance Typeable Instruction
- LLVM.General.AST.Instruction: instance Typeable LandingPadClause
- LLVM.General.AST.Instruction: instance Typeable MemoryOrdering
- LLVM.General.AST.Instruction: instance Typeable Named
- LLVM.General.AST.Instruction: instance Typeable Terminator
- LLVM.General.AST.Instruction: isTailCall :: Instruction -> Bool
- LLVM.General.AST.Instruction: mask :: Instruction -> Constant
- LLVM.General.AST.Instruction: maybeAtomicity :: Instruction -> Maybe Atomicity
- LLVM.General.AST.Instruction: memoryOrdering :: Atomicity -> MemoryOrdering
- LLVM.General.AST.Instruction: metadata :: Instruction -> InstructionMetadata
- LLVM.General.AST.Instruction: metadata' :: Terminator -> InstructionMetadata
- LLVM.General.AST.Instruction: noInfs :: FastMathFlags -> Bool
- LLVM.General.AST.Instruction: noNaNs :: FastMathFlags -> Bool
- LLVM.General.AST.Instruction: noSignedZeros :: FastMathFlags -> Bool
- LLVM.General.AST.Instruction: nsw :: Instruction -> Bool
- LLVM.General.AST.Instruction: numElements :: Instruction -> Maybe Operand
- LLVM.General.AST.Instruction: nuw :: Instruction -> Bool
- LLVM.General.AST.Instruction: operand0 :: Instruction -> Operand
- LLVM.General.AST.Instruction: operand0' :: Terminator -> Operand
- LLVM.General.AST.Instruction: operand1 :: Instruction -> Operand
- LLVM.General.AST.Instruction: personalityFunction :: Instruction -> Operand
- LLVM.General.AST.Instruction: possibleDests :: Terminator -> [Name]
- LLVM.General.AST.Instruction: replacement :: Instruction -> Operand
- LLVM.General.AST.Instruction: returnAttributes :: Instruction -> [ParameterAttribute]
- LLVM.General.AST.Instruction: returnAttributes' :: Terminator -> [ParameterAttribute]
- LLVM.General.AST.Instruction: returnDest :: Terminator -> Name
- LLVM.General.AST.Instruction: returnOperand :: Terminator -> Maybe Operand
- LLVM.General.AST.Instruction: rmwOperation :: Instruction -> RMWOperation
- LLVM.General.AST.Instruction: trueDest :: Terminator -> Name
- LLVM.General.AST.Instruction: trueValue :: Instruction -> Operand
- LLVM.General.AST.Instruction: type' :: Instruction -> Type
- LLVM.General.AST.Instruction: value :: Instruction -> Operand
- LLVM.General.AST.Instruction: vector :: Instruction -> Operand
- LLVM.General.AST.Instruction: volatile :: Instruction -> Bool
- LLVM.General.AST.IntegerPredicate: EQ :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: NE :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: SGE :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: SGT :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: SLE :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: SLT :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: UGE :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: UGT :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: ULE :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: ULT :: IntegerPredicate
- LLVM.General.AST.IntegerPredicate: instance Typeable IntegerPredicate
- LLVM.General.AST.Linkage: Appending :: Linkage
- LLVM.General.AST.Linkage: AvailableExternally :: Linkage
- LLVM.General.AST.Linkage: Common :: Linkage
- LLVM.General.AST.Linkage: DLLExport :: Linkage
- LLVM.General.AST.Linkage: DLLImport :: Linkage
- LLVM.General.AST.Linkage: ExternWeak :: Linkage
- LLVM.General.AST.Linkage: External :: Linkage
- LLVM.General.AST.Linkage: Internal :: Linkage
- LLVM.General.AST.Linkage: LinkOnce :: Linkage
- LLVM.General.AST.Linkage: LinkOnceODR :: Linkage
- LLVM.General.AST.Linkage: LinkerPrivate :: Linkage
- LLVM.General.AST.Linkage: LinkerPrivateWeak :: Linkage
- LLVM.General.AST.Linkage: Private :: Linkage
- LLVM.General.AST.Linkage: Weak :: Linkage
- LLVM.General.AST.Linkage: WeakODR :: Linkage
- LLVM.General.AST.Linkage: instance Typeable Linkage
- LLVM.General.AST.Name: Name :: String -> Name
- LLVM.General.AST.Name: UnName :: Word -> Name
- LLVM.General.AST.Name: instance Typeable Name
- LLVM.General.AST.Operand: ConstantOperand :: Constant -> Operand
- LLVM.General.AST.Operand: LocalReference :: Type -> Name -> Operand
- LLVM.General.AST.Operand: MetadataNode :: [Maybe Operand] -> MetadataNode
- LLVM.General.AST.Operand: MetadataNodeID :: Word -> MetadataNodeID
- LLVM.General.AST.Operand: MetadataNodeOperand :: MetadataNode -> Operand
- LLVM.General.AST.Operand: MetadataNodeReference :: MetadataNodeID -> MetadataNode
- LLVM.General.AST.Operand: MetadataStringOperand :: String -> Operand
- LLVM.General.AST.Operand: instance Typeable MetadataNode
- LLVM.General.AST.Operand: instance Typeable MetadataNodeID
- LLVM.General.AST.Operand: instance Typeable Operand
- LLVM.General.AST.RMWOperation: Add :: RMWOperation
- LLVM.General.AST.RMWOperation: And :: RMWOperation
- LLVM.General.AST.RMWOperation: Max :: RMWOperation
- LLVM.General.AST.RMWOperation: Min :: RMWOperation
- LLVM.General.AST.RMWOperation: Nand :: RMWOperation
- LLVM.General.AST.RMWOperation: Or :: RMWOperation
- LLVM.General.AST.RMWOperation: Sub :: RMWOperation
- LLVM.General.AST.RMWOperation: UMax :: RMWOperation
- LLVM.General.AST.RMWOperation: UMin :: RMWOperation
- LLVM.General.AST.RMWOperation: Xchg :: RMWOperation
- LLVM.General.AST.RMWOperation: Xor :: RMWOperation
- LLVM.General.AST.RMWOperation: instance Typeable RMWOperation
- LLVM.General.AST.Type: ArrayType :: Word64 -> Type -> Type
- LLVM.General.AST.Type: DoubleExtended :: FloatingPointFormat
- LLVM.General.AST.Type: FloatingPointType :: Word32 -> FloatingPointFormat -> Type
- LLVM.General.AST.Type: FunctionType :: Type -> [Type] -> Bool -> Type
- LLVM.General.AST.Type: IEEE :: FloatingPointFormat
- LLVM.General.AST.Type: IntegerType :: Word32 -> Type
- LLVM.General.AST.Type: MetadataType :: Type
- LLVM.General.AST.Type: NamedTypeReference :: Name -> Type
- LLVM.General.AST.Type: PairOfFloats :: FloatingPointFormat
- LLVM.General.AST.Type: PointerType :: Type -> AddrSpace -> Type
- LLVM.General.AST.Type: StructureType :: Bool -> [Type] -> Type
- LLVM.General.AST.Type: VectorType :: Word32 -> Type -> Type
- LLVM.General.AST.Type: VoidType :: Type
- LLVM.General.AST.Type: argumentTypes :: Type -> [Type]
- LLVM.General.AST.Type: elementType :: Type -> Type
- LLVM.General.AST.Type: elementTypes :: Type -> [Type]
- LLVM.General.AST.Type: floatingPointFormat :: Type -> FloatingPointFormat
- LLVM.General.AST.Type: instance Typeable FloatingPointFormat
- LLVM.General.AST.Type: instance Typeable Type
- LLVM.General.AST.Type: isPacked :: Type -> Bool
- LLVM.General.AST.Type: isVarArg :: Type -> Bool
- LLVM.General.AST.Type: nArrayElements :: Type -> Word64
- LLVM.General.AST.Type: nVectorElements :: Type -> Word32
- LLVM.General.AST.Type: pointerAddrSpace :: Type -> AddrSpace
- LLVM.General.AST.Type: pointerReferent :: Type -> Type
- LLVM.General.AST.Type: resultType :: Type -> Type
- LLVM.General.AST.Type: typeBits :: Type -> Word32
- LLVM.General.AST.Visibility: Default :: Visibility
- LLVM.General.AST.Visibility: Hidden :: Visibility
- LLVM.General.AST.Visibility: Protected :: Visibility
- LLVM.General.AST.Visibility: instance Typeable Visibility
- LLVM.General.PrettyPrint: PrefixScheme :: (Map String (Maybe String)) -> PrefixScheme
- LLVM.General.PrettyPrint: instance PrettyShow Atomicity
- LLVM.General.TH: instance Typish (Q Pred)
+ LLVM.General.AST: [BasicBlock] :: Name -> [Named Instruction] -> (Named Terminator) -> BasicBlock
+ LLVM.General.AST: [COMDAT] :: String -> SelectionKind -> Definition
+ LLVM.General.AST: [FunctionAttributes] :: GroupID -> [FunctionAttribute] -> Definition
+ LLVM.General.AST: [Function] :: Linkage -> Visibility -> Maybe StorageClass -> CallingConvention -> [ParameterAttribute] -> Type -> Name -> ([Parameter], Bool) -> [Either GroupID FunctionAttribute] -> Maybe String -> Maybe String -> Word32 -> Maybe String -> Maybe Constant -> [BasicBlock] -> Global
+ LLVM.General.AST: [GlobalAlias] :: Name -> Linkage -> Visibility -> Maybe StorageClass -> Maybe Model -> Bool -> Type -> Constant -> Global
+ LLVM.General.AST: [GlobalDefinition] :: Global -> Definition
+ LLVM.General.AST: [GlobalVariable] :: Name -> Linkage -> Visibility -> Maybe StorageClass -> Maybe Model -> AddrSpace -> Bool -> Bool -> Type -> Maybe Constant -> Maybe String -> Maybe String -> Word32 -> Global
+ LLVM.General.AST: [MetadataNodeDefinition] :: MetadataNodeID -> [Maybe Operand] -> Definition
+ LLVM.General.AST: [ModuleInlineAssembly] :: String -> Definition
+ LLVM.General.AST: [Module] :: String -> Maybe DataLayout -> Maybe String -> [Definition] -> Module
+ LLVM.General.AST: [NamedMetadataDefinition] :: String -> [MetadataNodeID] -> Definition
+ LLVM.General.AST: [Parameter] :: Type -> Name -> [ParameterAttribute] -> Parameter
+ LLVM.General.AST: [TypeDefinition] :: Name -> (Maybe Type) -> Definition
+ LLVM.General.AST: [moduleDataLayout] :: Module -> Maybe DataLayout
+ LLVM.General.AST: [moduleDefinitions] :: Module -> [Definition]
+ LLVM.General.AST: [moduleName] :: Module -> String
+ LLVM.General.AST: [moduleTargetTriple] :: Module -> Maybe String
+ LLVM.General.AST.AddrSpace: [AddrSpace] :: Word32 -> AddrSpace
+ LLVM.General.AST.Attribute: [Alignment] :: Word64 -> ParameterAttribute
+ LLVM.General.AST.Attribute: [AlwaysInline] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [Builtin] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [ByVal] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [Cold] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [Dereferenceable] :: Word64 -> ParameterAttribute
+ LLVM.General.AST.Attribute: [GroupID] :: Word -> GroupID
+ LLVM.General.AST.Attribute: [InAlloca] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [InReg] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [InlineHint] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [JumpTable] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [MinimizeSize] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [Naked] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [Nest] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [NoAlias] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [NoBuiltin] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoCapture] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [NoDuplicate] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoImplicitFloat] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoInline] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoRedZone] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoReturn] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NoUnwind] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NonLazyBind] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [NonNull] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [OptimizeForSize] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [OptimizeNone] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [ReadNone] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [ReadOnly] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [Returned] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [ReturnsTwice] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [SRet] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [SanitizeAddress] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [SanitizeMemory] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [SanitizeThread] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [SignExt] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [StackAlignment] :: Word64 -> FunctionAttribute
+ LLVM.General.AST.Attribute: [StackProtectReq] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [StackProtectStrong] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [StackProtect] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [StringAttribute] :: String -> String -> FunctionAttribute
+ LLVM.General.AST.Attribute: [UWTable] :: FunctionAttribute
+ LLVM.General.AST.Attribute: [ZeroExt] :: ParameterAttribute
+ LLVM.General.AST.Attribute: [stringAttributeKind] :: FunctionAttribute -> String
+ LLVM.General.AST.Attribute: [stringAttributeValue] :: FunctionAttribute -> String
+ LLVM.General.AST.Attribute: newtype GroupID
+ LLVM.General.AST.COMDAT: [Any] :: SelectionKind
+ LLVM.General.AST.COMDAT: [ExactMatch] :: SelectionKind
+ LLVM.General.AST.COMDAT: [Largest] :: SelectionKind
+ LLVM.General.AST.COMDAT: [NoDuplicates] :: SelectionKind
+ LLVM.General.AST.COMDAT: [SameSize] :: SelectionKind
+ LLVM.General.AST.COMDAT: data SelectionKind
+ LLVM.General.AST.COMDAT: instance Data SelectionKind
+ LLVM.General.AST.COMDAT: instance Eq SelectionKind
+ LLVM.General.AST.COMDAT: instance Read SelectionKind
+ LLVM.General.AST.COMDAT: instance Show SelectionKind
+ LLVM.General.AST.CallingConvention: [ARM_AAPCS] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [ARM_AAPCS_VFP] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [ARM_APCS] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [AnyReg] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [C] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [Cold] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [Fast] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [GHC] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [HiPE] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [Intel_OCL_BI] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [MSP430_INTR] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [Numbered] :: Word32 -> CallingConvention
+ LLVM.General.AST.CallingConvention: [PTX_Device] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [PTX_Kernel] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [PreserveAll] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [PreserveMost] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [SPIR_FUNC] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [SPIR_KERNEL] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [WebKit_JS] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [X86_64_SysV] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [X86_64_Win64] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [X86_FastCall] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [X86_StdCall] :: CallingConvention
+ LLVM.General.AST.CallingConvention: [X86_ThisCall] :: CallingConvention
+ LLVM.General.AST.Constant: [AShr] :: Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Add] :: Bool -> Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [And] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Array] :: Type -> [Constant] -> Constant
+ LLVM.General.AST.Constant: [BitCast] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [BlockAddress] :: Name -> Name -> Constant
+ LLVM.General.AST.Constant: [ExtractElement] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [ExtractValue] :: Constant -> [Word32] -> Constant
+ LLVM.General.AST.Constant: [FAdd] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [FCmp] :: FloatingPointPredicate -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [FDiv] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [FMul] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [FPExt] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [FPToSI] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [FPToUI] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [FPTrunc] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [FRem] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [FSub] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Float] :: SomeFloat -> Constant
+ LLVM.General.AST.Constant: [GetElementPtr] :: Bool -> Constant -> [Constant] -> Constant
+ LLVM.General.AST.Constant: [GlobalReference] :: Type -> Name -> Constant
+ LLVM.General.AST.Constant: [ICmp] :: IntegerPredicate -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [InsertElement] :: Constant -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [InsertValue] :: Constant -> Constant -> [Word32] -> Constant
+ LLVM.General.AST.Constant: [IntToPtr] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [Int] :: Word32 -> Integer -> Constant
+ LLVM.General.AST.Constant: [LShr] :: Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Mul] :: Bool -> Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Null] :: Type -> Constant
+ LLVM.General.AST.Constant: [Or] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [PtrToInt] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [SDiv] :: Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [SExt] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [SIToFP] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [SRem] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Select] :: Constant -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Shl] :: Bool -> Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [ShuffleVector] :: Constant -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Struct] :: Maybe Name -> Bool -> [Constant] -> Constant
+ LLVM.General.AST.Constant: [Sub] :: Bool -> Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Trunc] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [UDiv] :: Bool -> Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [UIToFP] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [URem] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [Undef] :: Type -> Constant
+ LLVM.General.AST.Constant: [Vector] :: [Constant] -> Constant
+ LLVM.General.AST.Constant: [Xor] :: Constant -> Constant -> Constant
+ LLVM.General.AST.Constant: [ZExt] :: Constant -> Type -> Constant
+ LLVM.General.AST.Constant: [address] :: Constant -> Constant
+ LLVM.General.AST.Constant: [aggregate] :: Constant -> Constant
+ LLVM.General.AST.Constant: [blockAddressBlock] :: Constant -> Name
+ LLVM.General.AST.Constant: [blockAddressFunction] :: Constant -> Name
+ LLVM.General.AST.Constant: [condition'] :: Constant -> Constant
+ LLVM.General.AST.Constant: [constantType] :: Constant -> Type
+ LLVM.General.AST.Constant: [element] :: Constant -> Constant
+ LLVM.General.AST.Constant: [exact] :: Constant -> Bool
+ LLVM.General.AST.Constant: [falseValue] :: Constant -> Constant
+ LLVM.General.AST.Constant: [floatValue] :: Constant -> SomeFloat
+ LLVM.General.AST.Constant: [fpPredicate] :: Constant -> FloatingPointPredicate
+ LLVM.General.AST.Constant: [iPredicate] :: Constant -> IntegerPredicate
+ LLVM.General.AST.Constant: [inBounds] :: Constant -> Bool
+ LLVM.General.AST.Constant: [index] :: Constant -> Constant
+ LLVM.General.AST.Constant: [indices'] :: Constant -> [Word32]
+ LLVM.General.AST.Constant: [indices] :: Constant -> [Constant]
+ LLVM.General.AST.Constant: [integerBits] :: Constant -> Word32
+ LLVM.General.AST.Constant: [integerValue] :: Constant -> Integer
+ LLVM.General.AST.Constant: [isPacked] :: Constant -> Bool
+ LLVM.General.AST.Constant: [mask] :: Constant -> Constant
+ LLVM.General.AST.Constant: [memberType] :: Constant -> Type
+ LLVM.General.AST.Constant: [memberValues] :: Constant -> [Constant]
+ LLVM.General.AST.Constant: [nsw] :: Constant -> Bool
+ LLVM.General.AST.Constant: [nuw] :: Constant -> Bool
+ LLVM.General.AST.Constant: [operand0] :: Constant -> Constant
+ LLVM.General.AST.Constant: [operand1] :: Constant -> Constant
+ LLVM.General.AST.Constant: [structName] :: Constant -> Maybe Name
+ LLVM.General.AST.Constant: [trueValue] :: Constant -> Constant
+ LLVM.General.AST.Constant: [type'] :: Constant -> Type
+ LLVM.General.AST.Constant: [vector] :: Constant -> Constant
+ LLVM.General.AST.DLL: [Export] :: StorageClass
+ LLVM.General.AST.DLL: [Import] :: StorageClass
+ LLVM.General.AST.DLL: data StorageClass
+ LLVM.General.AST.DLL: instance Data StorageClass
+ LLVM.General.AST.DLL: instance Eq StorageClass
+ LLVM.General.AST.DLL: instance Read StorageClass
+ LLVM.General.AST.DLL: instance Show StorageClass
+ LLVM.General.AST.DataLayout: [AlignmentInfo] :: Word32 -> Maybe Word32 -> AlignmentInfo
+ LLVM.General.AST.DataLayout: [BigEndian] :: Endianness
+ LLVM.General.AST.DataLayout: [DataLayout] :: Endianness -> Maybe Mangling -> Maybe Word32 -> Map AddrSpace (Word32, AlignmentInfo) -> Map (AlignType, Word32) AlignmentInfo -> AlignmentInfo -> Maybe (Set Word32) -> DataLayout
+ LLVM.General.AST.DataLayout: [ELFMangling] :: Mangling
+ LLVM.General.AST.DataLayout: [FloatAlign] :: AlignType
+ LLVM.General.AST.DataLayout: [IntegerAlign] :: AlignType
+ LLVM.General.AST.DataLayout: [LittleEndian] :: Endianness
+ LLVM.General.AST.DataLayout: [MIPSMangling] :: Mangling
+ LLVM.General.AST.DataLayout: [MachOMangling] :: Mangling
+ LLVM.General.AST.DataLayout: [VectorAlign] :: AlignType
+ LLVM.General.AST.DataLayout: [WindowsCOFFMangling] :: Mangling
+ LLVM.General.AST.DataLayout: [abiAlignment] :: AlignmentInfo -> Word32
+ LLVM.General.AST.DataLayout: [aggregateLayout] :: DataLayout -> AlignmentInfo
+ LLVM.General.AST.DataLayout: [endianness] :: DataLayout -> Endianness
+ LLVM.General.AST.DataLayout: [mangling] :: DataLayout -> Maybe Mangling
+ LLVM.General.AST.DataLayout: [nativeSizes] :: DataLayout -> Maybe (Set Word32)
+ LLVM.General.AST.DataLayout: [pointerLayouts] :: DataLayout -> Map AddrSpace (Word32, AlignmentInfo)
+ LLVM.General.AST.DataLayout: [preferredAlignment] :: AlignmentInfo -> Maybe Word32
+ LLVM.General.AST.DataLayout: [stackAlignment] :: DataLayout -> Maybe Word32
+ LLVM.General.AST.DataLayout: [typeLayouts] :: DataLayout -> Map (AlignType, Word32) AlignmentInfo
+ LLVM.General.AST.DataLayout: data Mangling
+ LLVM.General.AST.DataLayout: instance Data Mangling
+ LLVM.General.AST.DataLayout: instance Eq Mangling
+ LLVM.General.AST.DataLayout: instance Ord Mangling
+ LLVM.General.AST.DataLayout: instance Read Mangling
+ LLVM.General.AST.DataLayout: instance Show Mangling
+ LLVM.General.AST.Float: [Double] :: Double -> SomeFloat
+ LLVM.General.AST.Float: [Half] :: Word16 -> SomeFloat
+ LLVM.General.AST.Float: [PPC_FP128] :: Word64 -> Word64 -> SomeFloat
+ LLVM.General.AST.Float: [Quadruple] :: Word64 -> Word64 -> SomeFloat
+ LLVM.General.AST.Float: [Single] :: Float -> SomeFloat
+ LLVM.General.AST.Float: [X86_FP80] :: Word16 -> Word64 -> SomeFloat
+ LLVM.General.AST.FloatingPointPredicate: [False] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [OEQ] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [OGE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [OGT] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [OLE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [OLT] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [ONE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [ORD] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [True] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [UEQ] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [UGE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [UGT] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [ULE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [ULT] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [UNE] :: FloatingPointPredicate
+ LLVM.General.AST.FloatingPointPredicate: [UNO] :: FloatingPointPredicate
+ LLVM.General.AST.FunctionAttribute: [AlwaysInline] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [Builtin] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [Cold] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [GroupID] :: Word -> GroupID
+ LLVM.General.AST.FunctionAttribute: [InlineHint] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [JumpTable] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [MinimizeSize] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [Naked] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoBuiltin] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoDuplicate] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoImplicitFloat] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoInline] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoRedZone] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoReturn] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NoUnwind] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [NonLazyBind] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [OptimizeForSize] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [OptimizeNone] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [ReadNone] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [ReadOnly] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [ReturnsTwice] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [SanitizeAddress] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [SanitizeMemory] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [SanitizeThread] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [StackAlignment] :: Word64 -> FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [StackProtectReq] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [StackProtectStrong] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [StackProtect] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [StringAttribute] :: String -> String -> FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [UWTable] :: FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: [stringAttributeKind] :: FunctionAttribute -> String
+ LLVM.General.AST.FunctionAttribute: [stringAttributeValue] :: FunctionAttribute -> String
+ LLVM.General.AST.FunctionAttribute: data FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Data FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Data GroupID
+ LLVM.General.AST.FunctionAttribute: instance Eq FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Eq GroupID
+ LLVM.General.AST.FunctionAttribute: instance Ord FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Ord GroupID
+ LLVM.General.AST.FunctionAttribute: instance Read FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Read GroupID
+ LLVM.General.AST.FunctionAttribute: instance Show FunctionAttribute
+ LLVM.General.AST.FunctionAttribute: instance Show GroupID
+ LLVM.General.AST.FunctionAttribute: newtype GroupID
+ LLVM.General.AST.Global: [BasicBlock] :: Name -> [Named Instruction] -> (Named Terminator) -> BasicBlock
+ LLVM.General.AST.Global: [Function] :: Linkage -> Visibility -> Maybe StorageClass -> CallingConvention -> [ParameterAttribute] -> Type -> Name -> ([Parameter], Bool) -> [Either GroupID FunctionAttribute] -> Maybe String -> Maybe String -> Word32 -> Maybe String -> Maybe Constant -> [BasicBlock] -> Global
+ LLVM.General.AST.Global: [GlobalAlias] :: Name -> Linkage -> Visibility -> Maybe StorageClass -> Maybe Model -> Bool -> Type -> Constant -> Global
+ LLVM.General.AST.Global: [GlobalVariable] :: Name -> Linkage -> Visibility -> Maybe StorageClass -> Maybe Model -> AddrSpace -> Bool -> Bool -> Type -> Maybe Constant -> Maybe String -> Maybe String -> Word32 -> Global
+ LLVM.General.AST.Global: [Parameter] :: Type -> Name -> [ParameterAttribute] -> Parameter
+ LLVM.General.AST.Global: [addrSpace] :: Global -> AddrSpace
+ LLVM.General.AST.Global: [aliasee] :: Global -> Constant
+ LLVM.General.AST.Global: [alignment] :: Global -> Word32
+ LLVM.General.AST.Global: [basicBlocks] :: Global -> [BasicBlock]
+ LLVM.General.AST.Global: [callingConvention] :: Global -> CallingConvention
+ LLVM.General.AST.Global: [comdat] :: Global -> Maybe String
+ LLVM.General.AST.Global: [dllStorageClass] :: Global -> Maybe StorageClass
+ LLVM.General.AST.Global: [functionAttributes] :: Global -> [Either GroupID FunctionAttribute]
+ LLVM.General.AST.Global: [garbageCollectorName] :: Global -> Maybe String
+ LLVM.General.AST.Global: [hasUnnamedAddr] :: Global -> Bool
+ LLVM.General.AST.Global: [initializer] :: Global -> Maybe Constant
+ LLVM.General.AST.Global: [isConstant] :: Global -> Bool
+ LLVM.General.AST.Global: [linkage] :: Global -> Linkage
+ LLVM.General.AST.Global: [name] :: Global -> Name
+ LLVM.General.AST.Global: [parameters] :: Global -> ([Parameter], Bool)
+ LLVM.General.AST.Global: [prefix] :: Global -> Maybe Constant
+ LLVM.General.AST.Global: [returnAttributes] :: Global -> [ParameterAttribute]
+ LLVM.General.AST.Global: [returnType] :: Global -> Type
+ LLVM.General.AST.Global: [section] :: Global -> Maybe String
+ LLVM.General.AST.Global: [threadLocalMode] :: Global -> Maybe Model
+ LLVM.General.AST.Global: [type'] :: Global -> Type
+ LLVM.General.AST.Global: [visibility] :: Global -> Visibility
+ LLVM.General.AST.InlineAssembly: [ATTDialect] :: Dialect
+ LLVM.General.AST.InlineAssembly: [InlineAssembly] :: Type -> String -> String -> Bool -> Bool -> Dialect -> InlineAssembly
+ LLVM.General.AST.InlineAssembly: [IntelDialect] :: Dialect
+ LLVM.General.AST.InlineAssembly: [alignStack] :: InlineAssembly -> Bool
+ LLVM.General.AST.InlineAssembly: [assembly] :: InlineAssembly -> String
+ LLVM.General.AST.InlineAssembly: [constraints] :: InlineAssembly -> String
+ LLVM.General.AST.InlineAssembly: [dialect] :: InlineAssembly -> Dialect
+ LLVM.General.AST.InlineAssembly: [hasSideEffects] :: InlineAssembly -> Bool
+ LLVM.General.AST.InlineAssembly: [type'] :: InlineAssembly -> Type
+ LLVM.General.AST.Instruction: [:=] :: Name -> a -> Named a
+ LLVM.General.AST.Instruction: [AShr] :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [AcquireRelease] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Acquire] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Add] :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [AddrSpaceCast] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Alloca] :: Type -> Maybe Operand -> Word32 -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [And] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [AtomicRMW] :: Bool -> RMWOperation -> Operand -> Operand -> Atomicity -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [BitCast] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Br] :: Name -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [Call] :: Maybe TailCallKind -> CallingConvention -> [ParameterAttribute] -> CallableOperand -> [(Operand, [ParameterAttribute])] -> [Either GroupID FunctionAttribute] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Catch] :: Constant -> LandingPadClause
+ LLVM.General.AST.Instruction: [CmpXchg] :: Bool -> Operand -> Operand -> Operand -> Atomicity -> MemoryOrdering -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [CondBr] :: Operand -> Name -> Name -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [CrossThread] :: SynchronizationScope
+ LLVM.General.AST.Instruction: [Do] :: a -> Named a
+ LLVM.General.AST.Instruction: [ExtractElement] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [ExtractValue] :: Operand -> [Word32] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FAdd] :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FCmp] :: FloatingPointPredicate -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FDiv] :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FMul] :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FPExt] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FPToSI] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FPToUI] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FPTrunc] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FRem] :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FSub] :: FastMathFlags -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [FastMathFlags] :: Bool -> Bool -> Bool -> Bool -> FastMathFlags
+ LLVM.General.AST.Instruction: [Fence] :: Atomicity -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Filter] :: Constant -> LandingPadClause
+ LLVM.General.AST.Instruction: [GetElementPtr] :: Bool -> Operand -> [Operand] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [ICmp] :: IntegerPredicate -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [IndirectBr] :: Operand -> [Name] -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [InsertElement] :: Operand -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [InsertValue] :: Operand -> Operand -> [Word32] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [IntToPtr] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Invoke] :: CallingConvention -> [ParameterAttribute] -> CallableOperand -> [(Operand, [ParameterAttribute])] -> [Either GroupID FunctionAttribute] -> Name -> Name -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [LShr] :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [LandingPad] :: Type -> Operand -> Bool -> [LandingPadClause] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Load] :: Bool -> Operand -> Maybe Atomicity -> Word32 -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Monotonic] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Mul] :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [MustTail] :: TailCallKind
+ LLVM.General.AST.Instruction: [NoFastMathFlags] :: FastMathFlags
+ LLVM.General.AST.Instruction: [Or] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Phi] :: Type -> [(Operand, Name)] -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [PtrToInt] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Release] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Resume] :: Operand -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [Ret] :: Maybe Operand -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [SDiv] :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [SExt] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [SIToFP] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [SRem] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Select] :: Operand -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [SequentiallyConsistent] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Shl] :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [ShuffleVector] :: Operand -> Operand -> Constant -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [SingleThread] :: SynchronizationScope
+ LLVM.General.AST.Instruction: [Store] :: Bool -> Operand -> Operand -> Maybe Atomicity -> Word32 -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Sub] :: Bool -> Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Switch] :: Operand -> Name -> [(Constant, Name)] -> InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [Tail] :: TailCallKind
+ LLVM.General.AST.Instruction: [Trunc] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [UDiv] :: Bool -> Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [UIToFP] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [URem] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Unordered] :: MemoryOrdering
+ LLVM.General.AST.Instruction: [Unreachable] :: InstructionMetadata -> Terminator
+ LLVM.General.AST.Instruction: [UnsafeAlgebra] :: FastMathFlags
+ LLVM.General.AST.Instruction: [VAArg] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [Xor] :: Operand -> Operand -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [ZExt] :: Operand -> Type -> InstructionMetadata -> Instruction
+ LLVM.General.AST.Instruction: [address] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [aggregate] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [alignment] :: Instruction -> Word32
+ LLVM.General.AST.Instruction: [allocatedType] :: Instruction -> Type
+ LLVM.General.AST.Instruction: [allowReciprocal] :: FastMathFlags -> Bool
+ LLVM.General.AST.Instruction: [argList] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [arguments'] :: Terminator -> [(Operand, [ParameterAttribute])]
+ LLVM.General.AST.Instruction: [arguments] :: Instruction -> [(Operand, [ParameterAttribute])]
+ LLVM.General.AST.Instruction: [atomicity] :: Instruction -> Atomicity
+ LLVM.General.AST.Instruction: [callingConvention'] :: Terminator -> CallingConvention
+ LLVM.General.AST.Instruction: [callingConvention] :: Instruction -> CallingConvention
+ LLVM.General.AST.Instruction: [clauses] :: Instruction -> [LandingPadClause]
+ LLVM.General.AST.Instruction: [cleanup] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: [condition'] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [condition] :: Terminator -> Operand
+ LLVM.General.AST.Instruction: [defaultDest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [dest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [dests] :: Terminator -> [(Constant, Name)]
+ LLVM.General.AST.Instruction: [element] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [exact] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: [exceptionDest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [expected] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [failureMemoryOrdering] :: Instruction -> MemoryOrdering
+ LLVM.General.AST.Instruction: [falseDest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [falseValue] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [fastMathFlags] :: Instruction -> FastMathFlags
+ LLVM.General.AST.Instruction: [fpPredicate] :: Instruction -> FloatingPointPredicate
+ LLVM.General.AST.Instruction: [function'] :: Terminator -> CallableOperand
+ LLVM.General.AST.Instruction: [functionAttributes'] :: Terminator -> [Either GroupID FunctionAttribute]
+ LLVM.General.AST.Instruction: [functionAttributes] :: Instruction -> [Either GroupID FunctionAttribute]
+ LLVM.General.AST.Instruction: [function] :: Instruction -> CallableOperand
+ LLVM.General.AST.Instruction: [iPredicate] :: Instruction -> IntegerPredicate
+ LLVM.General.AST.Instruction: [inBounds] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: [incomingValues] :: Instruction -> [(Operand, Name)]
+ LLVM.General.AST.Instruction: [index] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [indices'] :: Instruction -> [Word32]
+ LLVM.General.AST.Instruction: [indices] :: Instruction -> [Operand]
+ LLVM.General.AST.Instruction: [mask] :: Instruction -> Constant
+ LLVM.General.AST.Instruction: [maybeAtomicity] :: Instruction -> Maybe Atomicity
+ LLVM.General.AST.Instruction: [metadata'] :: Terminator -> InstructionMetadata
+ LLVM.General.AST.Instruction: [metadata] :: Instruction -> InstructionMetadata
+ LLVM.General.AST.Instruction: [noInfs] :: FastMathFlags -> Bool
+ LLVM.General.AST.Instruction: [noNaNs] :: FastMathFlags -> Bool
+ LLVM.General.AST.Instruction: [noSignedZeros] :: FastMathFlags -> Bool
+ LLVM.General.AST.Instruction: [nsw] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: [numElements] :: Instruction -> Maybe Operand
+ LLVM.General.AST.Instruction: [nuw] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: [operand0'] :: Terminator -> Operand
+ LLVM.General.AST.Instruction: [operand0] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [operand1] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [personalityFunction] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [possibleDests] :: Terminator -> [Name]
+ LLVM.General.AST.Instruction: [replacement] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [returnAttributes'] :: Terminator -> [ParameterAttribute]
+ LLVM.General.AST.Instruction: [returnAttributes] :: Instruction -> [ParameterAttribute]
+ LLVM.General.AST.Instruction: [returnDest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [returnOperand] :: Terminator -> Maybe Operand
+ LLVM.General.AST.Instruction: [rmwOperation] :: Instruction -> RMWOperation
+ LLVM.General.AST.Instruction: [tailCallKind] :: Instruction -> Maybe TailCallKind
+ LLVM.General.AST.Instruction: [trueDest] :: Terminator -> Name
+ LLVM.General.AST.Instruction: [trueValue] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [type'] :: Instruction -> Type
+ LLVM.General.AST.Instruction: [value] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [vector] :: Instruction -> Operand
+ LLVM.General.AST.Instruction: [volatile] :: Instruction -> Bool
+ LLVM.General.AST.Instruction: data SynchronizationScope
+ LLVM.General.AST.Instruction: data TailCallKind
+ LLVM.General.AST.Instruction: instance Data SynchronizationScope
+ LLVM.General.AST.Instruction: instance Data TailCallKind
+ LLVM.General.AST.Instruction: instance Eq SynchronizationScope
+ LLVM.General.AST.Instruction: instance Eq TailCallKind
+ LLVM.General.AST.Instruction: instance Ord SynchronizationScope
+ LLVM.General.AST.Instruction: instance Ord TailCallKind
+ LLVM.General.AST.Instruction: instance Read SynchronizationScope
+ LLVM.General.AST.Instruction: instance Read TailCallKind
+ LLVM.General.AST.Instruction: instance Show SynchronizationScope
+ LLVM.General.AST.Instruction: instance Show TailCallKind
+ LLVM.General.AST.Instruction: type Atomicity = (SynchronizationScope, MemoryOrdering)
+ LLVM.General.AST.IntegerPredicate: [EQ] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [NE] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [SGE] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [SGT] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [SLE] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [SLT] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [UGE] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [UGT] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [ULE] :: IntegerPredicate
+ LLVM.General.AST.IntegerPredicate: [ULT] :: IntegerPredicate
+ LLVM.General.AST.Linkage: [Appending] :: Linkage
+ LLVM.General.AST.Linkage: [AvailableExternally] :: Linkage
+ LLVM.General.AST.Linkage: [Common] :: Linkage
+ LLVM.General.AST.Linkage: [ExternWeak] :: Linkage
+ LLVM.General.AST.Linkage: [External] :: Linkage
+ LLVM.General.AST.Linkage: [Internal] :: Linkage
+ LLVM.General.AST.Linkage: [LinkOnceODR] :: Linkage
+ LLVM.General.AST.Linkage: [LinkOnce] :: Linkage
+ LLVM.General.AST.Linkage: [Private] :: Linkage
+ LLVM.General.AST.Linkage: [WeakODR] :: Linkage
+ LLVM.General.AST.Linkage: [Weak] :: Linkage
+ LLVM.General.AST.Name: [Name] :: String -> Name
+ LLVM.General.AST.Name: [UnName] :: Word -> Name
+ LLVM.General.AST.Operand: [ConstantOperand] :: Constant -> Operand
+ LLVM.General.AST.Operand: [LocalReference] :: Type -> Name -> Operand
+ LLVM.General.AST.Operand: [MetadataNodeID] :: Word -> MetadataNodeID
+ LLVM.General.AST.Operand: [MetadataNodeOperand] :: MetadataNode -> Operand
+ LLVM.General.AST.Operand: [MetadataNodeReference] :: MetadataNodeID -> MetadataNode
+ LLVM.General.AST.Operand: [MetadataNode] :: [Maybe Operand] -> MetadataNode
+ LLVM.General.AST.Operand: [MetadataStringOperand] :: String -> Operand
+ LLVM.General.AST.ParameterAttribute: [Alignment] :: Word64 -> ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [ByVal] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [Dereferenceable] :: Word64 -> ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [InAlloca] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [InReg] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [Nest] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [NoAlias] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [NoCapture] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [NonNull] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [ReadNone] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [ReadOnly] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [Returned] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [SRet] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [SignExt] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: [ZeroExt] :: ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: data ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: instance Data ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: instance Eq ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: instance Ord ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: instance Read ParameterAttribute
+ LLVM.General.AST.ParameterAttribute: instance Show ParameterAttribute
+ LLVM.General.AST.RMWOperation: [Add] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [And] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Max] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Min] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Nand] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Or] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Sub] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [UMax] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [UMin] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Xchg] :: RMWOperation
+ LLVM.General.AST.RMWOperation: [Xor] :: RMWOperation
+ LLVM.General.AST.ThreadLocalStorage: [GeneralDynamic] :: Model
+ LLVM.General.AST.ThreadLocalStorage: [InitialExec] :: Model
+ LLVM.General.AST.ThreadLocalStorage: [LocalDynamic] :: Model
+ LLVM.General.AST.ThreadLocalStorage: [LocalExec] :: Model
+ LLVM.General.AST.ThreadLocalStorage: data Model
+ LLVM.General.AST.ThreadLocalStorage: instance Data Model
+ LLVM.General.AST.ThreadLocalStorage: instance Eq Model
+ LLVM.General.AST.ThreadLocalStorage: instance Ord Model
+ LLVM.General.AST.ThreadLocalStorage: instance Read Model
+ LLVM.General.AST.ThreadLocalStorage: instance Show Model
+ LLVM.General.AST.Type: [ArrayType] :: Word64 -> Type -> Type
+ LLVM.General.AST.Type: [DoubleExtended] :: FloatingPointFormat
+ LLVM.General.AST.Type: [FloatingPointType] :: Word32 -> FloatingPointFormat -> Type
+ LLVM.General.AST.Type: [FunctionType] :: Type -> [Type] -> Bool -> Type
+ LLVM.General.AST.Type: [IEEE] :: FloatingPointFormat
+ LLVM.General.AST.Type: [IntegerType] :: Word32 -> Type
+ LLVM.General.AST.Type: [MetadataType] :: Type
+ LLVM.General.AST.Type: [NamedTypeReference] :: Name -> Type
+ LLVM.General.AST.Type: [PairOfFloats] :: FloatingPointFormat
+ LLVM.General.AST.Type: [PointerType] :: Type -> AddrSpace -> Type
+ LLVM.General.AST.Type: [StructureType] :: Bool -> [Type] -> Type
+ LLVM.General.AST.Type: [VectorType] :: Word32 -> Type -> Type
+ LLVM.General.AST.Type: [VoidType] :: Type
+ LLVM.General.AST.Type: [argumentTypes] :: Type -> [Type]
+ LLVM.General.AST.Type: [elementType] :: Type -> Type
+ LLVM.General.AST.Type: [elementTypes] :: Type -> [Type]
+ LLVM.General.AST.Type: [floatingPointFormat] :: Type -> FloatingPointFormat
+ LLVM.General.AST.Type: [isPacked] :: Type -> Bool
+ LLVM.General.AST.Type: [isVarArg] :: Type -> Bool
+ LLVM.General.AST.Type: [nArrayElements] :: Type -> Word64
+ LLVM.General.AST.Type: [nVectorElements] :: Type -> Word32
+ LLVM.General.AST.Type: [pointerAddrSpace] :: Type -> AddrSpace
+ LLVM.General.AST.Type: [pointerReferent] :: Type -> Type
+ LLVM.General.AST.Type: [resultType] :: Type -> Type
+ LLVM.General.AST.Type: [typeBits] :: Type -> Word32
+ LLVM.General.AST.Visibility: [Default] :: Visibility
+ LLVM.General.AST.Visibility: [Hidden] :: Visibility
+ LLVM.General.AST.Visibility: [Protected] :: Visibility
+ LLVM.General.PrettyPrint: [PrefixScheme] :: (Map String (Maybe String)) -> PrefixScheme
+ LLVM.General.PrettyPrint: instance PrettyShow GroupID
+ LLVM.General.PrettyPrint: instance PrettyShow Mangling
+ LLVM.General.PrettyPrint: instance PrettyShow Model
+ LLVM.General.PrettyPrint: instance PrettyShow SelectionKind
+ LLVM.General.PrettyPrint: instance PrettyShow StorageClass
+ LLVM.General.PrettyPrint: instance PrettyShow SynchronizationScope
+ LLVM.General.PrettyPrint: instance PrettyShow TailCallKind
- LLVM.General.AST.DataLayout: defaultDataLayout :: DataLayout
+ LLVM.General.AST.DataLayout: defaultDataLayout :: Endianness -> DataLayout
- LLVM.General.DataLayout: parseDataLayout :: String -> Maybe DataLayout
+ LLVM.General.DataLayout: parseDataLayout :: Endianness -> String -> Except String (Maybe DataLayout)

Files

− changelog
@@ -1,5 +0,0 @@--*-change-log-*---3.4.5.3 Benjamin S. Scarlet <fgthb0@greynode.net> 2015-04-11-	* Clean up warnings with ghc-7.10-	* Start changelog
llvm-general-pure.cabal view
@@ -1,5 +1,5 @@ name: llvm-general-pure-version: 3.4.5.4+version: 3.5.0.0 license: BSD3 license-file: LICENSE author: Benjamin S.Scarlet <fgthb0@greynode.net>@@ -14,26 +14,17 @@   llvm-general-pure is a set of pure Haskell types and functions for interacting with LLVM <http://llvm.org/>.   It includes an ADT to represent LLVM IR (<http://llvm.org/docs/LangRef.html>). The llvm-general package   builds on this one with FFI bindings to LLVM, but llvm-general-pure does not require LLVM to be available.-extra-source-files:-  changelog-+    source-repository head   type: git   location: git://github.com/bscarlet/llvm-general.git -source-repository this-  type: git-  location: git://github.com/bscarlet/llvm-general.git-  branch: llvm-3.4-  tag: pure-v3.4.5.4- library   ghc-options: -fwarn-unused-imports   build-depends: -    base >= 4.5.0.0 && < 5,-    transformers >= 0.3.0.0,-    transformers-compat,-    mtl >= 2.1.3,+    base >= 4.6 && < 5,+    transformers >= 0.4.0.0,+    mtl >= 2.2.1,     template-haskell >= 2.5.0.0,     containers >= 0.4.2.1,     setenv >= 0.1.0,@@ -53,6 +44,8 @@     LLVM.General.AST.AddrSpace     LLVM.General.AST.InlineAssembly     LLVM.General.AST.Attribute+    LLVM.General.AST.ParameterAttribute+    LLVM.General.AST.FunctionAttribute     LLVM.General.AST.CallingConvention     LLVM.General.AST.Constant     LLVM.General.AST.DataLayout@@ -65,8 +58,11 @@     LLVM.General.AST.Name     LLVM.General.AST.Operand     LLVM.General.AST.RMWOperation+    LLVM.General.AST.ThreadLocalStorage     LLVM.General.AST.Type     LLVM.General.AST.Visibility+    LLVM.General.AST.DLL+    LLVM.General.AST.COMDAT     LLVM.General.DataLayout     LLVM.General.PrettyPrint     LLVM.General.Prelude@@ -78,15 +74,15 @@ test-suite test   type: exitcode-stdio-1.0   build-depends:  -    base >= 3 && < 5,+    base >= 4.6 && < 5,     test-framework >= 0.5,     test-framework-hunit >= 0.2.7,     HUnit >= 1.2.4.2,     test-framework-quickcheck2 >= 0.3.0.1,     QuickCheck >= 2.5.1.1,-    llvm-general-pure == 3.4.5.4,+    llvm-general-pure == 3.5.0.0,     containers >= 0.4.2.1,-    mtl >= 2.1.3+    mtl >= 2.2.1   hs-source-dirs: test   extensions:     TupleSections
src/LLVM/General/AST.hs view
@@ -24,6 +24,8 @@ import LLVM.General.AST.Operand import LLVM.General.AST.Instruction import LLVM.General.AST.DataLayout+import qualified LLVM.General.AST.Attribute as A+import qualified LLVM.General.AST.COMDAT as COMDAT  -- | Any thing which can be at the top level of a 'Module' data Definition @@ -32,6 +34,8 @@   | MetadataNodeDefinition MetadataNodeID [Maybe Operand]   | NamedMetadataDefinition String [MetadataNodeID]   | ModuleInlineAssembly String+  | FunctionAttributes A.GroupID [A.FunctionAttribute]+  | COMDAT String COMDAT.SelectionKind     deriving (Eq, Read, Show, Typeable, Data)  -- | <http://llvm.org/docs/LangRef.html#modulestructure>
src/LLVM/General/AST/Attribute.hs view
@@ -1,38 +1,17 @@ -- | Module to allow importing 'Attribute' distinctly qualified.-module LLVM.General.AST.Attribute where--import LLVM.General.Prelude---- | <http://llvm.org/docs/LangRef.html#parameter-attributes>-data ParameterAttribute-    = ZeroExt-    | SignExt-    | InReg-    | SRet-    | Alignment Word32-    | NoAlias-    | ByVal-    | NoCapture-    | Nest-  deriving (Eq, Read, Show, Typeable, Data)+-- Before LLVM 3.5, the attributes which could be used on functions+-- and those which could be used on parameters were disjoint.  In+-- LLVM 3.5, two attributes (readonly and readnone) can be used+-- in both contexts. Because their interpretation is different in+-- the two contexts and only those two attributes can be used in+-- both contexts, I've opted to keep the Haskell types for parameter+-- and function attributes distinct, but move the two types into+-- separate modules so they can have contructors with the same names.+module LLVM.General.AST.Attribute (+    ParameterAttribute(..),+    FunctionAttribute(..),+    GroupID(..)+  ) where --- | <http://llvm.org/docs/LangRef.html#function-attributes>-data FunctionAttribute-    = NoReturn-    | NoUnwind-    | ReadNone-    | ReadOnly-    | NoInline-    | AlwaysInline-    | OptimizeForSize-    | StackProtect-    | StackProtectReq-    | NoRedZone-    | NoImplicitFloat-    | Naked-    | InlineHint-    | StackAlignment Word32-    | ReturnsTwice-    | UWTable-    | NonLazyBind-  deriving (Eq, Read, Show, Typeable, Data)+import LLVM.General.AST.ParameterAttribute hiding (ReadNone, ReadOnly)+import LLVM.General.AST.FunctionAttribute
+ src/LLVM/General/AST/COMDAT.hs view
@@ -0,0 +1,13 @@+-- | Module to allow importing 'COMDAT.SelectionKind' distinctly qualified.+module LLVM.General.AST.COMDAT where++import LLVM.General.Prelude++-- | <http://llvm.org/docs/LangRef.html#comdats>+data SelectionKind+  = Any+  | ExactMatch+  | Largest+  | NoDuplicates+  | SameSize+  deriving (Eq, Read, Show, Typeable, Data)
src/LLVM/General/AST/CallingConvention.hs view
@@ -4,6 +4,30 @@ import LLVM.General.Prelude  -- |  <http://llvm.org/docs/LangRef.html#callingconv>-data CallingConvention = C | Fast | Cold | GHC | Numbered Word32+data CallingConvention+  = C+  | Fast+  | Cold+  | GHC+  | HiPE+  | WebKit_JS+  | AnyReg+  | PreserveMost+  | PreserveAll+  | X86_StdCall+  | X86_FastCall+  | ARM_APCS+  | ARM_AAPCS+  | ARM_AAPCS_VFP+  | MSP430_INTR+  | X86_ThisCall+  | PTX_Kernel+  | PTX_Device+  | SPIR_FUNC+  | SPIR_KERNEL+  | Intel_OCL_BI+  | X86_64_SysV+  | X86_64_Win64+  | Numbered Word32   deriving (Eq, Read, Show, Typeable, Data) 
+ src/LLVM/General/AST/DLL.hs view
@@ -0,0 +1,10 @@+-- | Module to allow importing 'DLL.StorageClass' distinctly qualified.+module LLVM.General.AST.DLL where++import LLVM.General.Prelude++-- | <http://llvm.org/docs/LangRef.html#dll-storage-classes>+data StorageClass+    = Import+    | Export+  deriving (Eq, Read, Show, Typeable, Data)
src/LLVM/General/AST/DataLayout.hs view
@@ -25,27 +25,51 @@   = IntegerAlign   | VectorAlign   | FloatAlign-  | AggregateAlign-  | StackAlign   deriving (Eq, Ord, Read, Show, Typeable, Data) +-- | A style of name mangling+data Mangling+  = ELFMangling+  | MIPSMangling+  | MachOMangling+  | WindowsCOFFMangling+  deriving (Eq, Ord, Read, Show, Typeable, Data)+ -- | a description of the various data layout properties which may be used during -- optimization data DataLayout = DataLayout {-    endianness :: Maybe Endianness,+    endianness :: Endianness,+    mangling :: Maybe Mangling,     stackAlignment :: Maybe Word32,     pointerLayouts :: Map AddrSpace (Word32, AlignmentInfo),     typeLayouts :: Map (AlignType, Word32) AlignmentInfo,+    aggregateLayout :: AlignmentInfo,     nativeSizes :: Maybe (Set Word32)   }   deriving (Eq, Ord, Read, Show, Typeable, Data) --- | a 'DataLayout' which specifies nothing-defaultDataLayout = DataLayout {-  endianness = Nothing,+-- | a default 'DataLayout'+defaultDataLayout endianness = DataLayout {+  endianness = endianness,+  mangling = Nothing,   stackAlignment = Nothing,-  pointerLayouts = Map.empty,-  typeLayouts = Map.empty,+  pointerLayouts = Map.fromList [+    (AddrSpace 0, (64, AlignmentInfo 64 (Just 64)))+   ],+  typeLayouts = Map.fromList [+    ((IntegerAlign, 1), AlignmentInfo 8 (Just 8)),+    ((IntegerAlign, 8), AlignmentInfo 8 (Just 8)),+    ((IntegerAlign, 16), AlignmentInfo 16 (Just 16)),+    ((IntegerAlign, 32), AlignmentInfo 32 (Just 32)),+    ((IntegerAlign, 64), AlignmentInfo 32 (Just 64)),+    ((FloatAlign, 16), AlignmentInfo 16 (Just 16)),+    ((FloatAlign, 32), AlignmentInfo 32 (Just 32)),+    ((FloatAlign, 64), AlignmentInfo 64 (Just 64)),+    ((FloatAlign, 128), AlignmentInfo 128 (Just  128)),+    ((VectorAlign, 64), AlignmentInfo 64 (Just 64)),+    ((VectorAlign, 128), AlignmentInfo 128 (Just 128))+   ],+  aggregateLayout = AlignmentInfo 0 (Just 64),   nativeSizes = Nothing  } 
+ src/LLVM/General/AST/FunctionAttribute.hs view
@@ -0,0 +1,44 @@+-- | Module to allow importing 'FunctionAttribute' distinctly qualified.+module LLVM.General.AST.FunctionAttribute where++import LLVM.General.Prelude++-- | <http://llvm.org/docs/LangRef.html#function-attributes>+data FunctionAttribute+    = NoReturn+    | NoUnwind+    | ReadNone+    | ReadOnly+    | NoInline+    | AlwaysInline+    | MinimizeSize+    | OptimizeForSize+    | OptimizeNone+    | StackProtect+    | StackProtectReq+    | StackProtectStrong+    | NoRedZone+    | NoImplicitFloat+    | Naked+    | InlineHint+    | StackAlignment Word64+    | ReturnsTwice+    | UWTable+    | NonLazyBind+    | Builtin+    | NoBuiltin+    | Cold+    | JumpTable+    | NoDuplicate+    | SanitizeAddress+    | SanitizeThread+    | SanitizeMemory+    | StringAttribute {+        stringAttributeKind :: String,+        stringAttributeValue :: String -- ^ Use "" for no value -- the two are conflated+      } +  deriving (Eq, Ord, Read, Show, Typeable, Data)++-- | <http://llvm.org/docs/LangRef.html#attribute-groups>+newtype GroupID = GroupID Word+  deriving (Eq, Ord, Read, Show, Typeable, Data)
src/LLVM/General/AST/Global.hs view
@@ -10,7 +10,9 @@ import LLVM.General.AST.Instruction (Named, Instruction, Terminator) import qualified LLVM.General.AST.Linkage as L import qualified LLVM.General.AST.Visibility as V+import qualified LLVM.General.AST.DLL as DLL import qualified LLVM.General.AST.CallingConvention as CC+import qualified LLVM.General.AST.ThreadLocalStorage as TLS import qualified LLVM.General.AST.Attribute as A  -- | <http://llvm.org/doxygen/classllvm_1_1GlobalValue.html>@@ -20,13 +22,15 @@         name :: Name,         linkage :: L.Linkage,         visibility :: V.Visibility,-        isThreadLocal :: Bool,+        dllStorageClass :: Maybe DLL.StorageClass,+        threadLocalMode :: Maybe TLS.Model,         addrSpace :: AddrSpace,         hasUnnamedAddr :: Bool,         isConstant :: Bool,         type' :: Type,         initializer :: Maybe Constant,         section :: Maybe String,+        comdat :: Maybe String,         alignment :: Word32       }     -- | <http://llvm.org/docs/LangRef.html#aliases>@@ -34,6 +38,9 @@         name :: Name,         linkage :: L.Linkage,         visibility :: V.Visibility,+        dllStorageClass :: Maybe DLL.StorageClass,+        threadLocalMode :: Maybe TLS.Model,+        hasUnnamedAddr :: Bool,         type' :: Type,         aliasee :: Constant       }@@ -41,15 +48,18 @@     | Function {         linkage :: L.Linkage,         visibility :: V.Visibility,+        dllStorageClass :: Maybe DLL.StorageClass,         callingConvention :: CC.CallingConvention,         returnAttributes :: [A.ParameterAttribute],         returnType :: Type,         name :: Name,         parameters :: ([Parameter],Bool), -- ^ snd indicates varargs-        functionAttributes :: [A.FunctionAttribute],+        functionAttributes :: [Either A.GroupID A.FunctionAttribute],         section :: Maybe String,+        comdat :: Maybe String,         alignment :: Word32,         garbageCollectorName :: Maybe String,+        prefix :: Maybe Constant,         basicBlocks :: [BasicBlock]       }   deriving (Eq, Read, Show, Typeable, Data)@@ -71,13 +81,15 @@   name = error "global variable name not defined",   linkage = L.External,   visibility = V.Default,-  isThreadLocal = False,+  dllStorageClass = Nothing,+  threadLocalMode = Nothing,   addrSpace = AddrSpace 0,   hasUnnamedAddr = False,   isConstant = False,   type' = error "global variable type not defined",   initializer = Nothing,   section = Nothing,+  comdat = Nothing,   alignment = 0   } @@ -88,6 +100,9 @@     name = error "global alias name not defined",     linkage = L.External,     visibility = V.Default,+    dllStorageClass = Nothing,+    threadLocalMode = Nothing,+    hasUnnamedAddr = False,     type' = error "global alias type not defined",     aliasee = error "global alias aliasee not defined"   }@@ -98,6 +113,7 @@   Function {     linkage = L.External,     visibility = V.Default,+    dllStorageClass = Nothing,     callingConvention = CC.C,     returnAttributes = [],     returnType = error "function return type not defined",@@ -105,7 +121,9 @@     parameters = ([], False),     functionAttributes = [],     section = Nothing,+    comdat = Nothing,     alignment = 0,     garbageCollectorName = Nothing,+    prefix = Nothing,     basicBlocks = []   }
src/LLVM/General/AST/Instruction.hs view
@@ -12,7 +12,8 @@ import LLVM.General.AST.FloatingPointPredicate (FloatingPointPredicate) import LLVM.General.AST.RMWOperation (RMWOperation) import LLVM.General.AST.CallingConvention (CallingConvention)-import LLVM.General.AST.Attribute (ParameterAttribute, FunctionAttribute)+import qualified LLVM.General.AST.ParameterAttribute as PA (ParameterAttribute)+import qualified LLVM.General.AST.FunctionAttribute as FA (FunctionAttribute, GroupID)  -- | <http://llvm.org/docs/LangRef.html#metadata-nodes-and-metadata-strings> -- Metadata can be attached to an instruction@@ -47,10 +48,10 @@     }   | Invoke {       callingConvention' :: CallingConvention,-      returnAttributes' :: [ParameterAttribute],+      returnAttributes' :: [PA.ParameterAttribute],       function' :: CallableOperand,-      arguments' :: [(Operand, [ParameterAttribute])],-      functionAttributes' :: [FunctionAttribute],+      arguments' :: [(Operand, [PA.ParameterAttribute])],+      functionAttributes' :: [Either FA.GroupID FA.FunctionAttribute],       returnDest :: Name,       exceptionDest :: Name,       metadata' :: InstructionMetadata@@ -87,12 +88,14 @@   | SequentiallyConsistent   deriving (Eq, Ord, Read, Show, Data, Typeable) +-- | <http://llvm.org/docs/LangRef.html#singlethread>+data SynchronizationScope+  = SingleThread+  | CrossThread+  deriving (Eq, Ord, Read, Show, Data, Typeable)+ -- | An 'Atomicity' describes constraints on the visibility of effects of an atomic instruction-data Atomicity = Atomicity { -  crossThread :: Bool, -- ^ <http://llvm.org/docs/LangRef.html#singlethread>-  memoryOrdering :: MemoryOrdering- }- deriving (Eq, Ord, Read, Show, Typeable, Data)+type Atomicity = (SynchronizationScope, MemoryOrdering)  -- | For the redoubtably complex 'LandingPad' instruction data LandingPadClause@@ -100,6 +103,11 @@     | Filter Constant     deriving (Eq, Ord, Read, Show, Typeable, Data) +-- | For the call instruction+-- <http://llvm.org/docs/LangRef.html#call-instruction>+data TailCallKind = Tail | MustTail+    deriving (Eq, Ord, Read, Show, Typeable, Data)+ -- | non-terminator instructions: -- <http://llvm.org/docs/LangRef.html#binaryops> -- <http://llvm.org/docs/LangRef.html#bitwiseops>@@ -250,6 +258,7 @@       expected :: Operand,       replacement :: Operand,       atomicity :: Atomicity,+      failureMemoryOrdering :: MemoryOrdering,       metadata :: InstructionMetadata      }   | AtomicRMW { @@ -343,12 +352,12 @@       metadata :: InstructionMetadata   }    | Call {-      isTailCall :: Bool,+      tailCallKind :: Maybe TailCallKind,       callingConvention :: CallingConvention,-      returnAttributes :: [ParameterAttribute],+      returnAttributes :: [PA.ParameterAttribute],       function :: CallableOperand,-      arguments :: [(Operand, [ParameterAttribute])],-      functionAttributes :: [FunctionAttribute],+      arguments :: [(Operand, [PA.ParameterAttribute])],+      functionAttributes :: [Either FA.GroupID FA.FunctionAttribute],       metadata :: InstructionMetadata   }   | Select { 
src/LLVM/General/AST/Linkage.hs view
@@ -6,8 +6,6 @@ -- | <http://llvm.org/docs/LangRef.html#linkage> data Linkage     = Private-    | LinkerPrivate-    | LinkerPrivateWeak     | Internal     | AvailableExternally     | LinkOnce@@ -18,6 +16,4 @@     | LinkOnceODR     | WeakODR     | External-    | DLLImport-    | DLLExport   deriving (Eq, Read, Show, Typeable, Data)
+ src/LLVM/General/AST/ParameterAttribute.hs view
@@ -0,0 +1,23 @@+-- | Module to allow importing 'ParameterAttribute' distinctly qualified.+module LLVM.General.AST.ParameterAttribute where++import LLVM.General.Prelude++-- | <http://llvm.org/docs/LangRef.html#parameter-attributes>+data ParameterAttribute+    = ZeroExt+    | SignExt+    | InReg+    | SRet+    | Alignment Word64+    | NoAlias+    | ByVal+    | NoCapture+    | Nest+    | ReadNone+    | ReadOnly+    | InAlloca+    | NonNull+    | Dereferenceable Word64+    | Returned+  deriving (Eq, Ord, Read, Show, Typeable, Data)
+ src/LLVM/General/AST/ThreadLocalStorage.hs view
@@ -0,0 +1,12 @@+-- | Module to allow importing 'ThreadLocalStorage.Model' distinctly qualified.+module LLVM.General.AST.ThreadLocalStorage where++import LLVM.General.Prelude++-- | <http://llvm.org/docs/LangRef.html#thread-local-storage-models>+data Model+    = GeneralDynamic+    | LocalDynamic+    | InitialExec+    | LocalExec+  deriving (Eq, Ord, Read, Show, Typeable, Data)
src/LLVM/General/DataLayout.hs view
@@ -5,6 +5,8 @@  import LLVM.General.Prelude +import Control.Monad.Trans.Except+ import qualified Data.List as List import qualified Data.Map as Map import qualified Data.Set as Set@@ -16,51 +18,87 @@  dataLayoutToString :: DataLayout -> String dataLayoutToString dl = -  let sTriple :: (Word32, AlignmentInfo) -> String-      sTriple (s, ai) = show s ++ ":" ++ show (abiAlignment ai) ++ (maybe "" (\p -> ":" ++ show p) (preferredAlignment ai))+  let sAlignmentInfo :: AlignmentInfo -> String+      sAlignmentInfo (AlignmentInfo abi pref) = +        show abi ++ case pref of+                      Just pref | pref /= abi -> ":" ++ show pref+                      _ -> ""+      sTriple :: (Word32, AlignmentInfo) -> String+      sTriple (s, ai) = show s ++ ":" ++ sAlignmentInfo ai       atChar at = case at of-                    IntegerAlign -> "i"-                    VectorAlign -> "v"-                    FloatAlign -> "f"-                    AggregateAlign -> "a"-                    StackAlign -> "s"+        IntegerAlign -> "i"+        VectorAlign -> "v"+        FloatAlign -> "f"+      manglingChar m = case m of+        ELFMangling -> "e"+        MIPSMangling -> "m"+        MachOMangling -> "o"+        WindowsCOFFMangling -> "w"+      oneOpt f accessor = maybe [] ((:[]) . f) (accessor dl)+      defDl = defaultDataLayout BigEndian+      nonDef :: Eq a => (DataLayout -> [a]) -> [a]+      nonDef f = (f dl) List.\\ (f defDl)   in   List.intercalate "-" (-    (case endianness dl of Just BigEndian -> ["E"]; Just LittleEndian -> ["e"]; _ -> [])+    [case endianness dl of BigEndian -> "E"; LittleEndian -> "e"]     ++-    (maybe [] (\s -> ["S" ++ show s]) (stackAlignment dl))+    (oneOpt (("m:" ++) . manglingChar) mangling)     ++-    [ "p" ++ (if a == 0 then "" else show a) ++ ":" ++ sTriple t | (AddrSpace a, t) <- Map.toList . pointerLayouts $ dl]+    [+      "p" ++ (if a == 0 then "" else show a) ++ ":" ++ sTriple t +      | (AddrSpace a, t) <- nonDef (Map.toList . pointerLayouts)+    ] ++ [+      atChar at ++ sTriple (s, ai)+      | ((at, s), ai) <- nonDef (Map.toList . typeLayouts)+    ] ++ [+      "a:" ++ sAlignmentInfo ai | ai <- nonDef (return . aggregateLayout)+    ] +++    (oneOpt (("n"++) . (List.intercalate ":") . (map show) . Set.toList) nativeSizes)     ++-    [ atChar at ++ sTriple (s, ai) | ((at, s), ai) <- Map.toList . typeLayouts $ dl ]-    ++ -    (maybe [] (\ns -> ["n" ++ (List.intercalate ":" (map show . Set.toList $ ns))]) (nativeSizes dl))+    (oneOpt (("S"++) . show) stackAlignment)   ) -parseDataLayout :: String -> Maybe DataLayout-parseDataLayout "" = Nothing-parseDataLayout s = +-- | Parse a 'DataLayout', given a default Endianness should one not be specified in the+-- string to be parsed. LLVM itself uses BigEndian as the default: thus pass BigEndian to+-- be conformant or LittleEndian to be righteously defiant.+parseDataLayout :: Endianness -> String -> Except String (Maybe DataLayout)+parseDataLayout _ "" = return Nothing+parseDataLayout defaultEndianness s =    let     num :: Parser Word32-    num = read <$> many digit-    triple :: Parser (Word32, AlignmentInfo)-    triple = do-      s <- num-      char ':'+    num = read <$> many1 digit+    alignmentInfo :: Parser AlignmentInfo+    alignmentInfo = do       abi <- num       pref <- optionMaybe $ do                 char ':'                 num-      return (s, (AlignmentInfo abi pref))+      return $ AlignmentInfo abi pref+    triple :: Parser (Word32, AlignmentInfo)+    triple = do+      s <- num+      char ':'+      ai <- alignmentInfo+      return (s, ai)     parseSpec :: Parser (DataLayout -> DataLayout)     parseSpec = choice [       do         char 'e'-        return $ \dl -> dl { endianness = Just LittleEndian },+        return $ \dl -> dl { endianness = LittleEndian },       do         char 'E' -        return $ \dl -> dl { endianness = Just BigEndian },+        return $ \dl -> dl { endianness = BigEndian },       do+        char 'm'+        char ':'+        m <- choice [+              char 'e' >> return ELFMangling,+              char 'm' >> return MIPSMangling,+              char 'o' >> return MachOMangling,+              char 'w' >> return WindowsCOFFMangling+             ]+        return $ \dl -> dl { mangling = Just m },+      do         char 'S'         n <- num         return $ \dl -> dl { stackAlignment = Just n },@@ -71,15 +109,24 @@         t <- triple         return $ \dl -> dl { pointerLayouts = Map.insert a t (pointerLayouts dl) },       do+        char 's' -- Ignore this obsolete approach to stack alignment.  After the 3.4 release,+                 -- this is never generated, still parsed but ignored.  Comments suggest+                 -- it will no longer be parsed after 4.0.+        triple+        return id,+      do         at <- choice [                char 'i' >> return IntegerAlign,                char 'v' >> return VectorAlign,-               char 'f' >> return FloatAlign,-               char 'a' >> return AggregateAlign,-               char 's' >> return StackAlign+               char 'f' >> return FloatAlign               ]-        (sz,ai) <- triple-        return $ \dl -> dl { typeLayouts = Map.insert (at,sz) ai (typeLayouts dl) },+        (sz, ai) <- triple+        return $ \dl -> dl { typeLayouts = Map.insert (at, sz) ai (typeLayouts dl) },+      do+        char 'a'+        char ':'+        ai <- alignmentInfo+        return $ \dl -> dl { aggregateLayout = ai },       do          char 'n'         ns <- num `sepBy` (char ':')@@ -87,7 +134,7 @@      ]   in      case parse (parseSpec `sepBy` (char '-')) "" s of-      Left _ -> error $ "ill formed data layout: " ++ show s-      Right fs -> Just $ foldr ($) defaultDataLayout fs+      Left _ -> throwE $ "ill formed data layout: " ++ show s+      Right fs -> return . Just $ foldr ($) (defaultDataLayout defaultEndianness) fs  
src/LLVM/General/Internal/PrettyPrint.hs view
@@ -94,6 +94,7 @@   name <+> braces (punctuate comma [ n <+> "=" <+> v | (n,v) <- fields ])  ctor :: QTree -> [QTree] -> QTree+ctor name [] = name ctor name fields = do   p <- asks precedence   parensIfNeeded appPrec (foldl (<+>) name fields)
src/LLVM/General/PrettyPrint.hs view
@@ -31,10 +31,14 @@ import qualified LLVM.General.AST.Float as A import qualified LLVM.General.AST.FloatingPointPredicate as A import qualified LLVM.General.AST.IntegerPredicate as A-import qualified LLVM.General.AST.Attribute as A+import qualified LLVM.General.AST.FunctionAttribute as A+import qualified LLVM.General.AST.ParameterAttribute as A   import qualified LLVM.General.AST.CallingConvention as A import qualified LLVM.General.AST.Visibility as A+import qualified LLVM.General.AST.DLL as A.DLL+import qualified LLVM.General.AST.COMDAT as A.COMDAT import qualified LLVM.General.AST.Linkage as A+import qualified LLVM.General.AST.ThreadLocalStorage as A.TLS import qualified LLVM.General.AST.InlineAssembly as A import qualified LLVM.General.AST.RMWOperation as A @@ -50,6 +54,7 @@   ''A.Global,   ''A.AlignmentInfo,   ''A.AlignType,+  ''A.Mangling,   ''A.C.Constant,   ''A.AddrSpace,   ''A.Endianness,@@ -62,18 +67,23 @@   ''A.Parameter,   ''A.CallingConvention,   ''A.Visibility,+  ''A.DLL.StorageClass,+  ''A.COMDAT.SelectionKind,   ''A.Linkage,   ''A.SomeFloat,   ''A.Named,   ''A.Terminator,+  ''A.TailCallKind,   ''A.Instruction,   ''A.LandingPadClause,   ''A.InlineAssembly,   ''A.RMWOperation,-  ''A.Atomicity,   ''A.Dialect,   ''A.FastMathFlags,+  ''A.SynchronizationScope,   ''A.MemoryOrdering,+  ''A.GroupID,+  ''A.TLS.Model,   ''Either,   ''Maybe  ]@@ -131,6 +141,8 @@   ("LLVM.General.AST.Global", Just "G"),   ("LLVM.General.AST.CallingConvention", Just "CC"),   ("LLVM.General.AST.Visibility", Just "V"),+  ("LLVM.General.AST.DLL", Just "DLL"),+  ("LLVM.General.AST.COMDAT", Just "COMDAT"),   ("LLVM.General.AST.Linkage", Just "L")  ] 
test/LLVM/General/Test/DataLayout.hs view
@@ -4,6 +4,8 @@ import Test.Framework.Providers.HUnit import Test.HUnit +import Control.Monad.Except+ import Data.Maybe import qualified Data.Set as Set import qualified Data.Map as Map@@ -13,16 +15,19 @@ import LLVM.General.AST.AddrSpace import LLVM.General.DataLayout +ddl = defaultDataLayout LittleEndian+ tests = testGroup "DataLayout" [   testCase name $ do-    (dataLayoutToString astDl, parseDataLayout strDl) @?= (strDl, Just astDl)+    let Right parsed = runExcept $ parseDataLayout LittleEndian strDl+    (dataLayoutToString astDl, parsed) @?= (strDl, Just astDl)   | (name, astDl, strDl) <- [-    ("little-endian", defaultDataLayout { endianness = Just LittleEndian }, "e"),-    ("big-endian", defaultDataLayout { endianness = Just BigEndian }, "E"),-    ("native", defaultDataLayout { nativeSizes = Just (Set.fromList [8,32]) }, "n8:32"),+    ("little-endian", ddl, "e"),+    ("big-endian", defaultDataLayout BigEndian, "E"),+    ("native", ddl { nativeSizes = Just (Set.fromList [8,32]) }, "e-n8:32"),     (      "no pref",-     defaultDataLayout {+     ddl {        pointerLayouts =           Map.singleton          (AddrSpace 0) @@ -34,47 +39,43 @@           }          )      },-     "p:8:64"+     "e-p:8:64"     ), (-     "no pref",-     defaultDataLayout {+     "pref",+     ddl {        pointerLayouts = -         Map.singleton-         (AddrSpace 1) -         (-          8,-          AlignmentInfo {-            abiAlignment = 32,-            preferredAlignment = Just 64-          }-         )+         Map.insert (AddrSpace 1) (8, AlignmentInfo 32 (Just 64)) (pointerLayouts ddl)      },-     "p1:8:32:64"+     "e-p1:8:32:64"     ), (+     "def",+     ddl { pointerLayouts = Map.singleton (AddrSpace 0) (64, AlignmentInfo 64 (Just 64)) },+     "e"+    ), (      "big",-     DataLayout {-       endianness = Just LittleEndian,+     ddl {+       endianness = LittleEndian,+       mangling = Just ELFMangling,        stackAlignment = Just 128,        pointerLayouts = Map.fromList [-         (AddrSpace 0, (64, AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 64}))+         (AddrSpace 0, (8, AlignmentInfo {abiAlignment = 8, preferredAlignment = Just 16}))         ],        typeLayouts = Map.fromList [-         ((IntegerAlign, 1), AlignmentInfo {abiAlignment = 8, preferredAlignment = Just 8}),-         ((IntegerAlign, 8), AlignmentInfo {abiAlignment = 8, preferredAlignment = Just 8}),-         ((IntegerAlign, 16), AlignmentInfo {abiAlignment = 16, preferredAlignment = Just 16}),-         ((IntegerAlign, 32), AlignmentInfo {abiAlignment = 32, preferredAlignment = Just 32}),-         ((IntegerAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 64}),-         ((VectorAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 64}),-         ((VectorAlign, 128), AlignmentInfo {abiAlignment = 128, preferredAlignment = Just 128}),-         ((FloatAlign, 32), AlignmentInfo {abiAlignment = 32, preferredAlignment = Just 32}),-         ((FloatAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 64}),-         ((FloatAlign, 80), AlignmentInfo {abiAlignment = 128, preferredAlignment = Just 128}),-         ((AggregateAlign, 0), AlignmentInfo {abiAlignment = 0, preferredAlignment = Just 64}),-         ((StackAlign, 0), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 64})-        ],+         ((IntegerAlign, 1), AlignmentInfo {abiAlignment = 8, preferredAlignment = Just 256}),+         ((IntegerAlign, 8), AlignmentInfo {abiAlignment = 8, preferredAlignment = Just 256}),+         ((IntegerAlign, 16), AlignmentInfo {abiAlignment = 16, preferredAlignment = Just 256}),+         ((IntegerAlign, 32), AlignmentInfo {abiAlignment = 32, preferredAlignment = Just 256}),+         ((IntegerAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 256}),+         ((VectorAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 256}),+         ((VectorAlign, 128), AlignmentInfo {abiAlignment = 128, preferredAlignment = Just 256}),+         ((FloatAlign, 32), AlignmentInfo {abiAlignment = 32, preferredAlignment = Just 256}),+         ((FloatAlign, 64), AlignmentInfo {abiAlignment = 64, preferredAlignment = Just 256}),+         ((FloatAlign, 80), AlignmentInfo {abiAlignment = 128, preferredAlignment = Just 256})+        ] `Map.union` typeLayouts ddl, +       aggregateLayout = AlignmentInfo {abiAlignment = 0, preferredAlignment = Just 256},        nativeSizes = Just (Set.fromList [8,16,32,64])      },-     "e-S128-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-v64:64:64-v128:128:128-f32:32:32-f64:64:64-f80:128:128-a0:0:64-s0:64:64-n8:16:32:64"+     "e-m:e-p:8:8:16-i1:8:256-i8:8:256-i16:16:256-i32:32:256-i64:64:256-v64:64:256-v128:128:256-f32:32:256-f64:64:256-f80:128:256-a:0:256-n8:16:32:64-S128"     )    ]  ]
test/LLVM/General/Test/PrettyPrint.hs view
@@ -8,35 +8,39 @@  import LLVM.General.AST import LLVM.General.AST.Type+import LLVM.General.AST.Global import qualified LLVM.General.AST.Linkage as L import qualified LLVM.General.AST.Visibility as V+import qualified LLVM.General.AST.DLL as DLL import qualified LLVM.General.AST.CallingConvention as CC import qualified LLVM.General.AST.Constant as C  tests = testGroup "PrettyPrint" [   testCase "basic" $ do     let ast = Module "<string>" Nothing Nothing [-         GlobalDefinition $ Function L.External V.Default CC.C [] i32 (Name "foo") ([-             Parameter i32 (Name "x") []-            ],False)-            [] Nothing 0 Nothing-          [-           BasicBlock (UnName 0) [-            UnName 1 := Mul {-              nsw = True,-              nuw = False,-              operand0 = ConstantOperand (C.Int 32 1),-              operand1 = ConstantOperand (C.Int 32 1),-              metadata = []-            }-            ] (-              Do $ Br (Name "here") []-            ),-           BasicBlock (Name "here") [-            ] (-              Do $ Ret (Just (LocalReference i32 (UnName 1))) []-            )-          ]+          GlobalDefinition $ functionDefaults {+            dllStorageClass = Just DLL.Export,+            returnType = i32,+            name = Name "foo",+            parameters = ([Parameter i32 (Name "x") []], False),+            basicBlocks = [+              BasicBlock (UnName 0) [+                UnName 1 := Mul {+                  nsw = True,+                  nuw = False,+                  operand0 = ConstantOperand (C.Int 32 1),+                  operand1 = ConstantOperand (C.Int 32 1),+                  metadata = []+                }+               ] (+                 Do $ Br (Name "here") []+               ),+              BasicBlock (Name "here") [+               ] (+                 Do $ Ret (Just (LocalReference i32 (UnName 1))) []+               )+             ]+           }          ]         s = "A.Module {\n\             \  A.moduleName = \"<string>\",\n\@@ -46,6 +50,7 @@             \    A.GlobalDefinition A.G.Function {\n\             \      A.G.linkage = A.L.External,\n\             \      A.G.visibility = A.V.Default,\n\+            \      A.G.dllStorageClass = Just A.DLL.Export,\n\             \      A.G.callingConvention = A.CC.C,\n\             \      A.G.returnAttributes = [],\n\             \      A.G.returnType = A.IntegerType {A.typeBits = 32},\n\@@ -53,8 +58,10 @@             \      A.G.parameters = ([A.G.Parameter A.IntegerType { A.typeBits = 32 } (A.Name \"x\") []], False),\n\             \      A.G.functionAttributes = [],\n\             \      A.G.section = Nothing,\n\+            \      A.G.comdat = Nothing,\n\             \      A.G.alignment = 0,\n\             \      A.G.garbageCollectorName = Nothing,\n\+            \      A.G.prefix = Nothing,\n\             \      A.G.basicBlocks = [\n\             \        A.G.BasicBlock (A.UnName 0) [\n\             \          A.UnName 1 A.:= A.Mul {\n\@@ -85,8 +92,10 @@       \import qualified LLVM.General.AST as A\n\       \import qualified LLVM.General.AST.AddrSpace as A\n\       \import qualified LLVM.General.AST.Attribute as A.A\n\+      \import qualified LLVM.General.AST.COMDAT as A.COMDAT\n\       \import qualified LLVM.General.AST.CallingConvention as A.CC\n\       \import qualified LLVM.General.AST.Constant as A.C\n\+      \import qualified LLVM.General.AST.DLL as A.DLL\n\       \import qualified LLVM.General.AST.DataLayout as A\n\       \import qualified LLVM.General.AST.Float as A\n\       \import qualified LLVM.General.AST.FloatingPointPredicate as A.FPred\n\