Copyright | Trevor Elliott 2011-2016 |
---|---|
License | BSD3 |
Maintainer | awesomelyawesome@gmail.com |
Stability | experimental |
Portability | unknown |
Safe Haskell | Safe |
Language | Haskell2010 |
This is the pretty-printer for llvm assembly versions 3.6 and lower.
- 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
- 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
- ppSymbol :: Symbol -> Doc
- ppPrimType :: PrimType -> Doc
- ppFloatType :: FloatType -> Doc
- ppType :: Type -> Doc
- ppTypeDecl :: TypeDecl -> Doc
- ppGlobal :: LLVM => Global -> Doc
- ppGlobalAttrs :: GlobalAttrs -> Doc
- ppDeclare :: Declare -> 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
- 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
- ppInstr :: LLVM => Instr -> Doc
- ppLoad :: LLVM => Typed (Value' BlockLabel) -> 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 => Value -> Doc
- ppValMd :: LLVM => ValMd -> Doc
- ppDebugLoc :: LLVM => DebugLoc -> Doc
- ppTypedValMd :: LLVM => ValMd -> Doc
- ppMetadata :: Doc -> Doc
- ppMetadataNode :: LLVM => [Maybe ValMd] -> Doc
- ppStringLiteral :: String -> Doc
- ppAsm :: Bool -> Bool -> String -> String -> Doc
- ppConstExpr :: LLVM => ConstExpr -> Doc
- ppDebugInfo :: LLVM => DebugInfo -> Doc
- ppDIBasicType :: DIBasicType -> Doc
- ppDICompileUnit :: LLVM => DICompileUnit -> Doc
- ppFlags :: Maybe String -> Doc
- ppDICompositeType :: LLVM => DICompositeType -> Doc
- ppDIDerivedType :: LLVM => DIDerivedType -> Doc
- ppDIEnumerator :: String -> Int64 -> Doc
- ppDIExpression :: DIExpression -> Doc
- ppDIFile :: DIFile -> Doc
- ppDIGlobalVariable :: LLVM => DIGlobalVariable -> Doc
- ppDIGlobalVariableExpression :: LLVM => DIGlobalVariableExpression -> Doc
- ppDILexicalBlock :: LLVM => DILexicalBlock -> Doc
- ppDILexicalBlockFile :: LLVM => DILexicalBlockFile -> Doc
- ppDILocalVariable :: LLVM => DILocalVariable -> Doc
- ppDISubprogram :: LLVM => DISubprogram -> Doc
- ppDISubrange :: DISubrange -> 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.
ppPrimType :: PrimType -> Doc Source #
ppFloatType :: FloatType -> Doc Source #
ppTypeDecl :: TypeDecl -> Doc Source #
ppGlobalAttrs :: GlobalAttrs -> Doc Source #
ppLabelDef :: BlockLabel -> Doc Source #
ppLabel :: BlockLabel -> Doc Source #
ppBasicBlock :: LLVM => BasicBlock -> Doc Source #
ppTypedLabel :: BlockLabel -> Doc Source #
ppSwitchEntry :: Type -> (Integer, BlockLabel) -> Doc Source #
ppMetadata :: Doc -> Doc Source #
ppStringLiteral :: String -> Doc Source #
ppDIBasicType :: DIBasicType -> Doc Source #
ppDICompileUnit :: LLVM => DICompileUnit -> Doc Source #
ppDICompositeType :: LLVM => DICompositeType -> Doc Source #
ppDIDerivedType :: LLVM => DIDerivedType -> Doc Source #
ppDIExpression :: DIExpression -> Doc Source #
ppDIGlobalVariable :: LLVM => DIGlobalVariable -> Doc Source #
ppDILexicalBlock :: LLVM => DILexicalBlock -> Doc Source #
ppDILexicalBlockFile :: LLVM => DILexicalBlockFile -> Doc Source #
ppDILocalVariable :: LLVM => DILocalVariable -> Doc Source #
ppDISubprogram :: LLVM => DISubprogram -> Doc Source #
ppDISubrange :: DISubrange -> 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 #