X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fprofiling%2FCostCentre.lhs;h=f4a6ba951d6c16735a25a91488eab05e231b9145;hb=9d7da331989abcd1844e9d03b8d1e4163796fa85;hp=46fd3c362b21a816ef34b136cce37b66e2e5305b;hpb=423d477bfecd490de1449c59325c8776f91d7aac;p=ghc-hetmet.git diff --git a/ghc/compiler/profiling/CostCentre.lhs b/ghc/compiler/profiling/CostCentre.lhs index 46fd3c3..f4a6ba9 100644 --- a/ghc/compiler/profiling/CostCentre.lhs +++ b/ghc/compiler/profiling/CostCentre.lhs @@ -32,10 +32,8 @@ module CostCentre ( #include "HsVersions.h" import Var ( Id ) -import Name ( UserFS, EncodedFS, encodeFS, decode, - getOccName, occNameFS - ) -import Module ( Module, ModuleName, moduleName ) +import Name ( getOccName, occNameFS ) +import Module ( Module ) import Outputable import FastTypes import FastString @@ -111,16 +109,16 @@ data CostCentre | NormalCC { cc_name :: CcName, -- Name of the cost centre itself - cc_mod :: ModuleName, -- Name of module defining this CC. + cc_mod :: Module, -- Name of module defining this CC. cc_is_dupd :: IsDupdCC, -- see below cc_is_caf :: IsCafCC -- see below } | AllCafsCC { - cc_mod :: ModuleName -- Name of module defining this CC. + cc_mod :: Module -- Name of module defining this CC. } -type CcName = EncodedFS +type CcName = FastString data IsDupdCC = OriginalCC -- This says how the CC is *used*. Saying that @@ -200,19 +198,19 @@ maybeSingletonCCS _ = Nothing Building cost centres \begin{code} -mkUserCC :: UserFS -> Module -> CostCentre +mkUserCC :: FastString -> Module -> CostCentre mkUserCC cc_name mod - = NormalCC { cc_name = encodeFS cc_name, cc_mod = moduleName mod, + = NormalCC { cc_name = cc_name, cc_mod = mod, cc_is_dupd = OriginalCC, cc_is_caf = NotCafCC {-might be changed-} } mkAutoCC :: Id -> Module -> IsCafCC -> CostCentre mkAutoCC id mod is_caf - = NormalCC { cc_name = occNameFS (getOccName id), cc_mod = moduleName mod, + = NormalCC { cc_name = occNameFS (getOccName id), cc_mod = mod, cc_is_dupd = OriginalCC, cc_is_caf = is_caf } -mkAllCafsCC m = AllCafsCC { cc_mod = moduleName m } +mkAllCafsCC m = AllCafsCC { cc_mod = m } @@ -253,7 +251,7 @@ sccAbleCostCentre cc | isCafCC cc = False | otherwise = True ccFromThisModule :: CostCentre -> Module -> Bool -ccFromThisModule cc m = cc_mod cc == moduleName m +ccFromThisModule cc m = cc_mod cc == m \end{code} \begin{code} @@ -370,5 +368,5 @@ ppCostCentreLbl (NormalCC {cc_name = n, cc_mod = m, cc_is_caf = is_caf}) costCentreUserName (NoCostCentre) = "NO_CC" costCentreUserName (AllCafsCC {}) = "CAF" costCentreUserName cc@(NormalCC {cc_name = name, cc_is_caf = is_caf}) - = case is_caf of { CafCC -> "CAF:"; _ -> "" } ++ decode (unpackFS name) + = case is_caf of { CafCC -> "CAF:"; _ -> "" } ++ unpackFS name \end{code}