summaryrefslogtreecommitdiff
path: root/compiler/GHC/Cmm/Ppr.hs
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2020-09-14 19:46:45 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2020-09-17 20:04:08 -0400
commite45c85446de7589e17acf5654c2b33f766043eb1 (patch)
treedb36adba8d53eb3b9cc8e6cbfd37d43f7c8445b7 /compiler/GHC/Cmm/Ppr.hs
parentca48076ae866665913b9c81cbc0c76f0afef7a00 (diff)
downloadhaskell-e45c85446de7589e17acf5654c2b33f766043eb1.tar.gz
Generalize OutputableP
Add a type parameter for the environment required by OutputableP. It avoids tying Platform with OutputableP.
Diffstat (limited to 'compiler/GHC/Cmm/Ppr.hs')
-rw-r--r--compiler/GHC/Cmm/Ppr.hs27
1 files changed, 16 insertions, 11 deletions
diff --git a/compiler/GHC/Cmm/Ppr.hs b/compiler/GHC/Cmm/Ppr.hs
index b791b78d70..479dee7430 100644
--- a/compiler/GHC/Cmm/Ppr.hs
+++ b/compiler/GHC/Cmm/Ppr.hs
@@ -1,5 +1,10 @@
-{-# LANGUAGE GADTs, TypeFamilies, FlexibleContexts, FlexibleInstances #-}
+{-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE FlexibleContexts #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE LambdaCase #-}
+
{-# OPTIONS_GHC -fno-warn-orphans #-}
----------------------------------------------------------------------------
@@ -63,11 +68,11 @@ import GHC.Cmm.Dataflow.Graph
instance Outputable CmmStackInfo where
ppr = pprStackInfo
-instance OutputableP CmmTopInfo where
+instance OutputableP Platform CmmTopInfo where
pdoc = pprTopInfo
-instance OutputableP (CmmNode e x) where
+instance OutputableP Platform (CmmNode e x) where
pdoc = pprNode
instance Outputable Convention where
@@ -76,25 +81,25 @@ instance Outputable Convention where
instance Outputable ForeignConvention where
ppr = pprForeignConvention
-instance OutputableP ForeignTarget where
+instance OutputableP Platform ForeignTarget where
pdoc = pprForeignTarget
instance Outputable CmmReturnInfo where
ppr = pprReturnInfo
-instance OutputableP (Block CmmNode C C) where
+instance OutputableP Platform (Block CmmNode C C) where
pdoc = pprBlock
-instance OutputableP (Block CmmNode C O) where
+instance OutputableP Platform (Block CmmNode C O) where
pdoc = pprBlock
-instance OutputableP (Block CmmNode O C) where
+instance OutputableP Platform (Block CmmNode O C) where
pdoc = pprBlock
-instance OutputableP (Block CmmNode O O) where
+instance OutputableP Platform (Block CmmNode O O) where
pdoc = pprBlock
-instance OutputableP (Graph CmmNode e x) where
+instance OutputableP Platform (Graph CmmNode e x) where
pdoc = pprGraph
-instance OutputableP CmmGraph where
+instance OutputableP Platform CmmGraph where
pdoc = pprCmmGraph
----------------------------------------------------------
@@ -130,7 +135,7 @@ pprGraph platform = \case
text "{"
$$ nest 2 (pprMaybeO entry $$ (vcat $ map (pdoc platform) $ bodyToBlockList body) $$ pprMaybeO exit)
$$ text "}"
- where pprMaybeO :: OutputableP (Block CmmNode e x)
+ where pprMaybeO :: OutputableP Platform (Block CmmNode e x)
=> MaybeO ex (Block CmmNode e x) -> SDoc
pprMaybeO NothingO = empty
pprMaybeO (JustO block) = pdoc platform block