X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fiface%2FBinIface.hs;h=d79ec95f6afd698dab13b9bf2b217698a11bba87;hp=bea0de13f12b54e9bc21dd9eb4e331f687f1c7dd;hb=c1681a73fa4ca4cf8758264ae387ac09a9e900d8;hpb=6777144f7522d8db5935737e12fa451ca3211e6d diff --git a/compiler/iface/BinIface.hs b/compiler/iface/BinIface.hs index bea0de1..d79ec95 100644 --- a/compiler/iface/BinIface.hs +++ b/compiler/iface/BinIface.hs @@ -34,6 +34,7 @@ import Config import FastMutInt import Outputable +import Data.List import Data.Word import Data.Array import Data.IORef @@ -294,7 +295,8 @@ instance Binary ModIface where mi_fam_insts = fam_insts, mi_rules = rules, mi_rule_vers = rule_vers, - mi_vect_info = vect_info }) = do + mi_vect_info = vect_info, + mi_hpc = hpc_info }) = do put_ bh mod put_ bh is_boot put_ bh mod_vers @@ -312,6 +314,7 @@ instance Binary ModIface where lazyPut bh rules put_ bh rule_vers put_ bh vect_info + put_ bh hpc_info get bh = do mod_name <- get bh @@ -331,6 +334,7 @@ instance Binary ModIface where rules <- {-# SCC "bin_rules" #-} lazyGet bh rule_vers <- get bh vect_info <- get bh + hpc_info <- get bh return (ModIface { mi_module = mod_name, mi_boot = is_boot, @@ -350,6 +354,7 @@ instance Binary ModIface where mi_rules = rules, mi_rule_vers = rule_vers, mi_vect_info = vect_info, + mi_hpc = hpc_info, -- And build the cached values mi_dep_fn = mkIfaceDepCache deprecs, mi_fix_fn = mkIfaceFixCache fixities, @@ -888,6 +893,10 @@ instance Binary IfaceExpr where putByte bh 11 put_ bh ie put_ bh ico + put_ bh (IfaceTick m ix) = do + putByte bh 12 + put_ bh m + put_ bh ix get bh = do h <- getByte bh case h of @@ -927,6 +936,9 @@ instance Binary IfaceExpr where 11 -> do ie <- get bh ico <- get bh return (IfaceCast ie ico) + 12 -> do m <- get bh + ix <- get bh + return (IfaceTick m ix) instance Binary IfaceConAlt where put_ bh IfaceDefault = do @@ -1062,12 +1074,13 @@ instance Binary IfaceDecl where put_ bh a6 put_ bh a7 put_ bh a8 - put_ bh (IfaceSyn aq ar as at) = do + put_ bh (IfaceSyn a1 a2 a3 a4 a5) = do putByte bh 3 - put_ bh (occNameFS aq) - put_ bh ar - put_ bh as - put_ bh at + put_ bh (occNameFS a1) + put_ bh a2 + put_ bh a3 + put_ bh a4 + put_ bh a5 put_ bh (IfaceClass a1 a2 a3 a4 a5 a6 a7) = do putByte bh 4 put_ bh a1 @@ -1098,12 +1111,13 @@ instance Binary IfaceDecl where occ <- return $! mkOccNameFS tcName a1 return (IfaceData occ a2 a3 a4 a5 a6 a7 a8) 3 -> do - aq <- get bh - ar <- get bh - as <- get bh - at <- get bh - occ <- return $! mkOccNameFS tcName aq - return (IfaceSyn occ ar as at) + a1 <- get bh + a2 <- get bh + a3 <- get bh + a4 <- get bh + a5 <- get bh + occ <- return $! mkOccNameFS tcName a1 + return (IfaceSyn occ a2 a3 a4 a5) _ -> do a1 <- get bh a2 <- get bh @@ -1220,10 +1234,14 @@ instance Binary IfaceRule where return (IfaceRule a1 a2 a3 a4 a5 a6 a7) instance Binary IfaceVectInfo where - put_ bh (IfaceVectInfo a1) = do + put_ bh (IfaceVectInfo a1 a2 a3) = do put_ bh a1 + put_ bh a2 + put_ bh a3 get bh = do a1 <- get bh - return (IfaceVectInfo a1) + a2 <- get bh + a3 <- get bh + return (IfaceVectInfo a1 a2 a3)