diff options
Diffstat (limited to 'compiler/iface/BinIface.hs')
-rw-r--r-- | compiler/iface/BinIface.hs | 64 |
1 files changed, 25 insertions, 39 deletions
diff --git a/compiler/iface/BinIface.hs b/compiler/iface/BinIface.hs index eaf5c070ba..d7d6311a7e 100644 --- a/compiler/iface/BinIface.hs +++ b/compiler/iface/BinIface.hs @@ -462,7 +462,6 @@ data BinDictionary = BinDictionary { -- CostCentre {-! for IsCafCC derive: Binary !-} -{-! for IsDupdCC derive: Binary !-} {-! for CostCentre derive: Binary !-} @@ -911,26 +910,14 @@ instance Binary IsCafCC where 0 -> do return CafCC _ -> do return NotCafCC -instance Binary IsDupdCC where - put_ bh OriginalCC = do - putByte bh 0 - put_ bh DupdCC = do - putByte bh 1 - get bh = do - h <- getByte bh - case h of - 0 -> do return OriginalCC - _ -> do return DupdCC - instance Binary CostCentre where put_ bh NoCostCentre = do putByte bh 0 - put_ bh (NormalCC aa ab ac ad) = do + put_ bh (NormalCC aa ab ac) = do putByte bh 1 put_ bh aa put_ bh ab put_ bh ac - put_ bh ad put_ bh (AllCafsCC ae) = do putByte bh 2 put_ bh ae @@ -941,8 +928,7 @@ instance Binary CostCentre where 1 -> do aa <- get bh ab <- get bh ac <- get bh - ad <- get bh - return (NormalCC aa ab ac ad) + return (NormalCC aa ab ac) _ -> do ae <- get bh return (AllCafsCC ae) @@ -1085,7 +1071,7 @@ instance Binary IfaceExpr where putByte bh 7 put_ bh al put_ bh am - put_ bh (IfaceNote an ao) = do + put_ bh (IfaceTick an ao) = do putByte bh 8 put_ bh an put_ bh ao @@ -1103,10 +1089,6 @@ instance Binary IfaceExpr where putByte bh 12 put_ bh ie put_ bh ico - put_ bh (IfaceTick m ix) = do - putByte bh 13 - put_ bh m - put_ bh ix get bh = do h <- getByte bh case h of @@ -1134,7 +1116,7 @@ instance Binary IfaceExpr where return (IfaceLet al am) 8 -> do an <- get bh ao <- get bh - return (IfaceNote an ao) + return (IfaceTick an ao) 9 -> do ap <- get bh return (IfaceLit ap) 10 -> do as <- get bh @@ -1145,9 +1127,6 @@ instance Binary IfaceExpr where 12 -> do ie <- get bh ico <- get bh return (IfaceCast ie ico) - 13 -> do m <- get bh - ix <- get bh - return (IfaceTick m ix) _ -> panic ("get IfaceExpr " ++ show h) instance Binary IfaceConAlt where @@ -1288,21 +1267,28 @@ instance Binary IfaceUnfolding where _ -> do e <- get bh return (IfCompulsory e) -instance Binary IfaceNote where - put_ bh (IfaceSCC aa) = do - putByte bh 0 - put_ bh aa - put_ bh (IfaceCoreNote s) = do - putByte bh 4 - put_ bh s +instance Binary IfaceTickish where + put_ bh (IfaceHpcTick m ix) = do + putByte bh 0 + put_ bh m + put_ bh ix + put_ bh (IfaceSCC cc tick push) = do + putByte bh 1 + put_ bh cc + put_ bh tick + put_ bh push + get bh = do - h <- getByte bh - case h of - 0 -> do aa <- get bh - return (IfaceSCC aa) - 4 -> do ac <- get bh - return (IfaceCoreNote ac) - _ -> panic ("get IfaceNote " ++ show h) + h <- getByte bh + case h of + 0 -> do m <- get bh + ix <- get bh + return (IfaceHpcTick m ix) + 1 -> do cc <- get bh + tick <- get bh + push <- get bh + return (IfaceSCC cc tick push) + _ -> panic ("get IfaceTickish " ++ show h) ------------------------------------------------------------------------- -- IfaceDecl and friends |