diff options
author | Ben Gamari <ben@smart-cactus.org> | 2016-06-17 23:52:39 +0200 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2016-06-18 11:49:21 +0200 |
commit | 85e09b1b621840fd923971d48df62b99580be618 (patch) | |
tree | 69f4f8b5c867cbeeafd3ee1a5d2cf2a51e754560 /compiler | |
parent | 2396d9bb76c11775589fc91b362a61c4a92d27fa (diff) | |
download | haskell-85e09b1b621840fd923971d48df62b99580be618.tar.gz |
llvmGen: Consolidate MetaExpr pretty-printing
Previously this logic was duplicated needlessly.
Diffstat (limited to 'compiler')
-rw-r--r-- | compiler/llvmGen/Llvm/MetaData.hs | 5 | ||||
-rw-r--r-- | compiler/llvmGen/Llvm/PpLlvm.hs | 13 |
2 files changed, 5 insertions, 13 deletions
diff --git a/compiler/llvmGen/Llvm/MetaData.hs b/compiler/llvmGen/Llvm/MetaData.hs index a50553ccb0..3bdcd60699 100644 --- a/compiler/llvmGen/Llvm/MetaData.hs +++ b/compiler/llvmGen/Llvm/MetaData.hs @@ -72,10 +72,11 @@ data MetaExpr = MetaStr LMString deriving (Eq) instance Outputable MetaExpr where - ppr (MetaStr s ) = text "!\"" <> ftext s <> char '"' + ppr (MetaVar (LMLitVar (LMNullLit _))) = text "null" + ppr (MetaStr s ) = char '!' <> doubleQuotes (ftext s) ppr (MetaNode n ) = ppr n ppr (MetaVar v ) = ppr v - ppr (MetaStruct es) = text "!{ " <> ppCommaJoin es <> char '}' + ppr (MetaStruct es) = char '!' <> braces (ppCommaJoin es) -- | Associates some metadata with a specific label for attaching to an -- instruction. diff --git a/compiler/llvmGen/Llvm/PpLlvm.hs b/compiler/llvmGen/Llvm/PpLlvm.hs index d92e3c0739..47e26ab409 100644 --- a/compiler/llvmGen/Llvm/PpLlvm.hs +++ b/compiler/llvmGen/Llvm/PpLlvm.hs @@ -107,22 +107,13 @@ ppLlvmMetas metas = vcat $ map ppLlvmMeta metas -- | Print out an LLVM metadata definition. ppLlvmMeta :: MetaDecl -> SDoc ppLlvmMeta (MetaUnnamed n m) - = ppr n <> text " = " <> ppLlvmMetaExpr m + = ppr n <+> equals <+> ppr m ppLlvmMeta (MetaNamed n m) - = exclamation <> ftext n <> text " = !" <> braces nodes + = exclamation <> ftext n <+> equals <+> exclamation <> braces nodes where nodes = hcat $ intersperse comma $ map ppr m --- | Print out an LLVM metadata value. -ppLlvmMetaExpr :: MetaExpr -> SDoc -ppLlvmMetaExpr (MetaVar (LMLitVar (LMNullLit _))) = text "null" -ppLlvmMetaExpr (MetaStr s ) = text "!" <> doubleQuotes (ftext s) -ppLlvmMetaExpr (MetaNode n ) = ppr n -ppLlvmMetaExpr (MetaVar v ) = ppr v -ppLlvmMetaExpr (MetaStruct es) = - text "!{" <> hsep (punctuate comma (map ppLlvmMetaExpr es)) <> char '}' - -- | Print out a list of function definitions. ppLlvmFunctions :: LlvmFunctions -> SDoc |