Copyright | Trevor Elliott 2011-2016 |
---|---|
License | BSD3 |
Maintainer | awesomelyawesome@gmail.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | None |
Language | Haskell2010 |
This is the pretty-printer for llvm assembly versions 3.6 and lower.
Synopsis
- type LLVM = ?config :: Config
- data Config = Config {}
- withConfig :: Config -> (LLVM => a) -> a
- ppLLVM :: (LLVM => a) -> a
- ppLLVM35 :: (LLVM => a) -> a
- ppLLVM36 :: (LLVM => a) -> a
- ppLLVM37 :: (LLVM => a) -> a
- ppLLVM38 :: (LLVM => a) -> a
- checkConfig :: LLVM => (Config -> Bool) -> Bool
- ppModule :: LLVM => Module -> Doc
- ppSourceName :: Maybe String -> Doc
- ppNamedMd :: NamedMd -> Doc
- ppUnnamedMd :: LLVM => UnnamedMd -> Doc
- ppGlobalAlias :: LLVM => GlobalAlias -> Doc
- ppDataLayout :: DataLayout -> Doc
- ppLayoutSpec :: LayoutSpec -> Doc
- ppLayoutBody :: Int -> Int -> Maybe Int -> Doc
- ppMangling :: Mangling -> Doc
- ppInlineAsm :: InlineAsm -> Doc
- ppIdent :: Ident -> Doc
- validIdentifier :: String -> Bool
- ppSymbol :: Symbol -> Doc
- ppPrimType :: PrimType -> Doc
- ppFloatType :: FloatType -> Doc
- ppType :: Type -> Doc
- ppTypeDecl :: TypeDecl -> Doc
- ppGlobal :: LLVM => Global -> Doc
- ppGlobalAttrs :: GlobalAttrs -> Doc
- ppStructGlobalAttrs :: GlobalAttrs -> Doc
- ppDeclare :: Declare -> Doc
- ppComdatName :: String -> Doc
- ppComdat :: (String, SelectionKind) -> Doc
- ppSelectionKind :: SelectionKind -> Doc
- ppDefine :: LLVM => Define -> Doc
- ppFunAttr :: FunAttr -> Doc
- ppLabelDef :: BlockLabel -> Doc
- ppLabel :: BlockLabel -> Doc
- ppBasicBlock :: LLVM => BasicBlock -> Doc
- ppStmt :: LLVM => Stmt -> Doc
- ppAttachedMetadata :: LLVM => [(String, ValMd)] -> Doc
- ppLinkage :: Linkage -> Doc
- ppVisibility :: Visibility -> Doc
- ppGC :: GC -> Doc
- ppTyped :: (a -> Doc) -> Typed a -> Doc
- ppSignBits :: Bool -> Bool -> Doc
- ppExact :: Bool -> Doc
- ppArithOp :: ArithOp -> Doc
- ppBitOp :: BitOp -> Doc
- ppConvOp :: ConvOp -> Doc
- ppAtomicOrdering :: AtomicOrdering -> Doc
- ppAtomicOp :: AtomicRWOp -> Doc
- ppScope :: Maybe String -> Doc
- ppInstr :: LLVM => Instr -> Doc
- ppLoad :: LLVM => Typed (Value' BlockLabel) -> Maybe AtomicOrdering -> Maybe Align -> Doc
- ppStore :: LLVM => Typed (Value' BlockLabel) -> Typed (Value' BlockLabel) -> Maybe AtomicOrdering -> Maybe Align -> Doc
- ppClauses :: LLVM => Bool -> [Clause] -> Doc
- ppClause :: LLVM => Clause -> Doc
- ppTypedLabel :: BlockLabel -> Doc
- ppSwitchEntry :: Type -> (Integer, BlockLabel) -> Doc
- ppVectorIndex :: LLVM => Value -> Doc
- ppAlign :: Maybe Align -> Doc
- ppAlloca :: LLVM => Type -> Maybe (Typed Value) -> Maybe Int -> Doc
- ppCall :: LLVM => Bool -> Type -> Value -> [Typed Value] -> Doc
- ppCallSym :: LLVM => Type -> Value -> Doc
- ppGEP :: LLVM => Bool -> Typed Value -> [Typed Value] -> Doc
- ppInvoke :: LLVM => Type -> Value -> [Typed Value] -> BlockLabel -> BlockLabel -> Doc
- ppPhiArg :: LLVM => (Value, BlockLabel) -> Doc
- ppICmpOp :: ICmpOp -> Doc
- ppFCmpOp :: FCmpOp -> Doc
- ppValue' :: LLVM => (i -> Doc) -> Value' i -> Doc
- ppValue :: LLVM => Value -> Doc
- ppValMd' :: LLVM => (i -> Doc) -> ValMd' i -> Doc
- ppValMd :: LLVM => ValMd -> Doc
- ppDebugLoc' :: LLVM => (i -> Doc) -> DebugLoc' i -> Doc
- ppDebugLoc :: LLVM => DebugLoc -> Doc
- ppTypedValMd :: LLVM => ValMd -> Doc
- ppMetadata :: Doc -> Doc
- ppMetadataNode' :: LLVM => (i -> Doc) -> [Maybe (ValMd' i)] -> Doc
- ppMetadataNode :: LLVM => [Maybe ValMd] -> Doc
- ppStringLiteral :: String -> Doc
- ppAsm :: Bool -> Bool -> String -> String -> Doc
- ppConstExpr' :: LLVM => (i -> Doc) -> ConstExpr' i -> Doc
- ppConstExpr :: LLVM => ConstExpr -> Doc
- ppDebugInfo' :: LLVM => (i -> Doc) -> DebugInfo' i -> Doc
- ppDebugInfo :: LLVM => DebugInfo -> Doc
- ppDIImportedEntity' :: LLVM => (i -> Doc) -> DIImportedEntity' i -> Doc
- ppDIImportedEntity :: LLVM => DIImportedEntity -> Doc
- ppDILabel' :: LLVM => (i -> Doc) -> DILabel' i -> Doc
- ppDILabel :: LLVM => DILabel -> Doc
- ppDINameSpace' :: LLVM => (i -> Doc) -> DINameSpace' i -> Doc
- ppDINameSpace :: LLVM => DINameSpace -> Doc
- ppDITemplateTypeParameter' :: LLVM => (i -> Doc) -> DITemplateTypeParameter' i -> Doc
- ppDITemplateTypeParameter :: LLVM => DITemplateTypeParameter -> Doc
- ppDITemplateValueParameter' :: LLVM => (i -> Doc) -> DITemplateValueParameter' i -> Doc
- ppDITemplateValueParameter :: LLVM => DITemplateValueParameter -> Doc
- ppDIBasicType :: DIBasicType -> Doc
- ppDICompileUnit' :: LLVM => (i -> Doc) -> DICompileUnit' i -> Doc
- ppDICompileUnit :: LLVM => DICompileUnit -> Doc
- ppFlags :: Maybe String -> Doc
- ppDICompositeType' :: LLVM => (i -> Doc) -> DICompositeType' i -> Doc
- ppDICompositeType :: LLVM => DICompositeType -> Doc
- ppDIDerivedType' :: LLVM => (i -> Doc) -> DIDerivedType' i -> Doc
- ppDIDerivedType :: LLVM => DIDerivedType -> Doc
- ppDIEnumerator :: String -> Int64 -> Doc
- ppDIExpression :: DIExpression -> Doc
- ppDIFile :: DIFile -> Doc
- ppDIGlobalVariable' :: LLVM => (i -> Doc) -> DIGlobalVariable' i -> Doc
- ppDIGlobalVariable :: LLVM => DIGlobalVariable -> Doc
- ppDIGlobalVariableExpression' :: LLVM => (i -> Doc) -> DIGlobalVariableExpression' i -> Doc
- ppDIGlobalVariableExpression :: LLVM => DIGlobalVariableExpression -> Doc
- ppDILexicalBlock' :: LLVM => (i -> Doc) -> DILexicalBlock' i -> Doc
- ppDILexicalBlock :: LLVM => DILexicalBlock -> Doc
- ppDILexicalBlockFile' :: LLVM => (i -> Doc) -> DILexicalBlockFile' i -> Doc
- ppDILexicalBlockFile :: LLVM => DILexicalBlockFile -> Doc
- ppDILocalVariable' :: LLVM => (i -> Doc) -> DILocalVariable' i -> Doc
- ppDILocalVariable :: LLVM => DILocalVariable -> Doc
- ppDISubprogram' :: LLVM => (i -> Doc) -> DISubprogram' i -> Doc
- ppDISubprogram :: LLVM => DISubprogram -> Doc
- ppDISubrange :: DISubrange -> Doc
- ppDISubroutineType' :: LLVM => (i -> Doc) -> DISubroutineType' i -> Doc
- ppDISubroutineType :: LLVM => DISubroutineType -> Doc
- ppBool :: Bool -> Doc
- ppArgList :: Bool -> [Doc] -> Doc
- integral :: Integral i => i -> Doc
- hex :: (Integral i, Show i) => i -> Doc
- opt :: Bool -> Doc -> Doc
- commas :: [Doc] -> Doc
- mcommas :: [Maybe Doc] -> Doc
- angles :: Doc -> Doc
- structBraces :: Doc -> Doc
- ppMaybe :: (a -> Doc) -> Maybe a -> Doc
Documentation
The differences between various versions of the llvm textual AST.
Config | |
|
withConfig :: Config -> (LLVM => a) -> a Source #
ppGlobalAlias :: LLVM => GlobalAlias -> Doc Source #
ppDataLayout :: DataLayout -> Doc Source #
Pretty print a data layout specification.
ppLayoutSpec :: LayoutSpec -> Doc Source #
Pretty print a single layout specification.
ppLayoutBody :: Int -> Int -> Maybe Int -> Doc Source #
Pretty-print the common case for data layout specifications.
ppMangling :: Mangling -> Doc Source #
ppInlineAsm :: InlineAsm -> Doc Source #
Pretty-print the inline assembly block.
validIdentifier :: String -> Bool Source #
According to the LLVM Language Reference Manual, the regular expression for LLVM identifiers is "[-a-zA-Z$._][-a-zA-Z$._0-9]". Identifiers may also be strings of one or more decimal digits.
ppPrimType :: PrimType -> Doc Source #
ppFloatType :: FloatType -> Doc Source #
ppTypeDecl :: TypeDecl -> Doc Source #
ppGlobalAttrs :: GlobalAttrs -> Doc Source #
ppStructGlobalAttrs :: GlobalAttrs -> Doc Source #
ppComdatName :: String -> Doc Source #
ppSelectionKind :: SelectionKind -> Doc Source #
ppLabelDef :: BlockLabel -> Doc Source #
ppLabel :: BlockLabel -> Doc Source #
ppBasicBlock :: LLVM => BasicBlock -> Doc Source #
ppVisibility :: Visibility -> Doc Source #
ppAtomicOrdering :: AtomicOrdering -> Doc Source #
ppAtomicOp :: AtomicRWOp -> Doc Source #
ppStore :: LLVM => Typed (Value' BlockLabel) -> Typed (Value' BlockLabel) -> Maybe AtomicOrdering -> Maybe Align -> Doc Source #
ppTypedLabel :: BlockLabel -> Doc Source #
ppSwitchEntry :: Type -> (Integer, BlockLabel) -> Doc Source #
ppMetadata :: Doc -> Doc Source #
ppStringLiteral :: String -> Doc Source #
ppConstExpr' :: LLVM => (i -> Doc) -> ConstExpr' i -> Doc Source #
ppDebugInfo' :: LLVM => (i -> Doc) -> DebugInfo' i -> Doc Source #
ppDIImportedEntity' :: LLVM => (i -> Doc) -> DIImportedEntity' i -> Doc Source #
ppDIImportedEntity :: LLVM => DIImportedEntity -> Doc Source #
ppDINameSpace' :: LLVM => (i -> Doc) -> DINameSpace' i -> Doc Source #
ppDINameSpace :: LLVM => DINameSpace -> Doc Source #
ppDITemplateTypeParameter' :: LLVM => (i -> Doc) -> DITemplateTypeParameter' i -> Doc Source #
ppDITemplateValueParameter' :: LLVM => (i -> Doc) -> DITemplateValueParameter' i -> Doc Source #
ppDIBasicType :: DIBasicType -> Doc Source #
ppDICompileUnit' :: LLVM => (i -> Doc) -> DICompileUnit' i -> Doc Source #
ppDICompileUnit :: LLVM => DICompileUnit -> Doc Source #
ppDICompositeType' :: LLVM => (i -> Doc) -> DICompositeType' i -> Doc Source #
ppDICompositeType :: LLVM => DICompositeType -> Doc Source #
ppDIDerivedType' :: LLVM => (i -> Doc) -> DIDerivedType' i -> Doc Source #
ppDIDerivedType :: LLVM => DIDerivedType -> Doc Source #
ppDIExpression :: DIExpression -> Doc Source #
ppDIGlobalVariable' :: LLVM => (i -> Doc) -> DIGlobalVariable' i -> Doc Source #
ppDIGlobalVariable :: LLVM => DIGlobalVariable -> Doc Source #
ppDIGlobalVariableExpression' :: LLVM => (i -> Doc) -> DIGlobalVariableExpression' i -> Doc Source #
ppDILexicalBlock' :: LLVM => (i -> Doc) -> DILexicalBlock' i -> Doc Source #
ppDILexicalBlock :: LLVM => DILexicalBlock -> Doc Source #
ppDILexicalBlockFile' :: LLVM => (i -> Doc) -> DILexicalBlockFile' i -> Doc Source #
ppDILexicalBlockFile :: LLVM => DILexicalBlockFile -> Doc Source #
ppDILocalVariable' :: LLVM => (i -> Doc) -> DILocalVariable' i -> Doc Source #
ppDILocalVariable :: LLVM => DILocalVariable -> Doc Source #
ppDISubprogram' :: LLVM => (i -> Doc) -> DISubprogram' i -> Doc Source #
See writeDISubprogram
in the LLVM source, in the file AsmWriter.cpp
ppDISubprogram :: LLVM => DISubprogram -> Doc Source #
ppDISubrange :: DISubrange -> Doc Source #
ppDISubroutineType' :: LLVM => (i -> Doc) -> DISubroutineType' i -> Doc Source #
ppDISubroutineType :: LLVM => DISubroutineType -> Doc Source #
mcommas :: [Maybe Doc] -> Doc Source #
Helpful for all of the optional fields that appear in the metadata values
structBraces :: Doc -> Doc Source #