[project @ 2006-01-10 13:35:04 by simonmar]
[ghc-hetmet.git] / ghc / compiler / profiling / CostCentre.lhs
index 3616ccb..3ee46a8 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 )
+import Name            ( getOccName, occNameFS )
+import Module          ( Module, moduleFS )
 import Outputable      
 import FastTypes
 import FastString
@@ -120,7 +118,7 @@ data CostCentre
                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,9 +198,9 @@ 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 =  mod,
+  = NormalCC { cc_name = cc_name, cc_mod =  mod,
               cc_is_dupd = OriginalCC, cc_is_caf = NotCafCC {-might be changed-}
     }
 
@@ -341,12 +339,12 @@ instance Outputable CostCentre where
 
 -- Printing in an interface file or in Core generally
 pprCostCentreCore (AllCafsCC {cc_mod = m})
-  = text "__sccC" <+> braces (ppr m)
+  = text "__sccC" <+> braces (ppr_mod m)
 pprCostCentreCore (NormalCC {cc_name = n, cc_mod = m,
                             cc_is_caf = caf, cc_is_dupd = dup})
   = text "__scc" <+> braces (hsep [
-       ftext n,
-       ppr m,  
+       ftext (zEncodeFS n),
+       ppr_mod m,
        pp_dup dup,
        pp_caf caf
     ])
@@ -357,12 +355,13 @@ pp_dup other   = empty
 pp_caf CafCC = text "__C"
 pp_caf other   = empty
 
+ppr_mod m = ftext (zEncodeFS (moduleFS m))
 
 -- Printing as a C label
 ppCostCentreLbl (NoCostCentre)           = text "NONE_cc"
 ppCostCentreLbl (AllCafsCC  {cc_mod = m}) = ppr m <> text "_CAFs_cc"
 ppCostCentreLbl (NormalCC {cc_name = n, cc_mod = m, cc_is_caf = is_caf}) 
-  = ppr m <> ftext n <> 
+  = ppr_mod m <> ftext (zEncodeFS n) <> 
        text (case is_caf of { CafCC -> "_CAF"; _ -> "" }) <> text "_cc"
 
 -- This is the name to go in the user-displayed string, 
@@ -370,5 +369,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}