[project @ 2006-01-06 16:30:17 by simonmar]
[ghc-hetmet.git] / ghc / compiler / profiling / CostCentre.lhs
index 46fd3c3..f4a6ba9 100644 (file)
@@ -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}