[commit: ghc] wip/T10613: DmdAnal: Remember why “Many” things are many, even through ifaces (bdbafb7)

git at git.haskell.org git at git.haskell.org
Mon Jul 4 12:06:34 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : wip/T10613
Link       : http://ghc.haskell.org/trac/ghc/changeset/bdbafb7ebc01dcdf8ed6e7c2a139c4cd37a52a71/ghc

>---------------------------------------------------------------

commit bdbafb7ebc01dcdf8ed6e7c2a139c4cd37a52a71
Author: Joachim Breitner <mail at joachim-breitner.de>
Date:   Mon Jul 4 10:16:07 2016 +0200

    DmdAnal: Remember why “Many” things are many, even through ifaces


>---------------------------------------------------------------

bdbafb7ebc01dcdf8ed6e7c2a139c4cd37a52a71
 compiler/basicTypes/Demand.hs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/compiler/basicTypes/Demand.hs b/compiler/basicTypes/Demand.hs
index 58a3209..c8d42b0 100644
--- a/compiler/basicTypes/Demand.hs
+++ b/compiler/basicTypes/Demand.hs
@@ -69,6 +69,7 @@ import UniqFM
 import Util
 import BasicTypes
 import Binary
+import FastString
 import Maybes           ( orElse )
 
 import Type            ( Type, isUnliftedType )
@@ -2066,12 +2067,15 @@ instance Binary ArgStr where
 
 instance Binary Count where
     put_ bh One  = do putByte bh 0
-    put_ bh (Many _) = do putByte bh 1
+    put_ bh (Many mr) = do
+        putByte bh 1
+        put_ bh (map mkFastString mr)
 
     get  bh = do h <- getByte bh
                  case h of
                    0 -> return One
-                   _ -> return (Many ["iface"])
+                   _ -> do mr <- get bh
+                           return (Many (map unpackFS mr))
 
 instance Binary ArgUse where
     put_ bh Abs          = do



More information about the ghc-commits mailing list