Eliminate localiseLabel
authorMax Bolingbroke <batterseapower@hotmail.com>
Thu, 28 Jul 2011 22:57:55 +0000 (23:57 +0100)
committerMax Bolingbroke <batterseapower@hotmail.com>
Thu, 28 Jul 2011 22:57:55 +0000 (23:57 +0100)
compiler/cmm/CLabel.hs
compiler/codeGen/ClosureInfo.lhs
compiler/codeGen/StgCmmClosure.hs

index 5cafdf4..b386db2 100644 (file)
@@ -101,7 +101,6 @@ module CLabel (
 
         hasCAF,
        entryLblToInfoLbl, cvtToClosureLbl, cvtToSRTLbl,
-       localiseLabel,
        needsCDecl, isAsmTemp, maybeAsmTemp, externallyVisibleCLabel,
         isMathFun,
        isCFunctionLabel, isGcPtrLabel, labelDynamic,
@@ -530,11 +529,6 @@ cvtToSRTLbl l@(IdLabel n c Closure)                = mkSRTLabel n c
 cvtToSRTLbl l 
        = pprPanic "cvtToSRTLbl" (pprCLabel l)
 
-localiseLabel :: CLabel -> CLabel
-localiseLabel (IdLabel n c (Entry _))     = IdLabel n c (Entry True)
-localiseLabel (IdLabel n c (InfoTable _)) = IdLabel n c (InfoTable True)
-localiseLabel l = l
-
 
 -- -----------------------------------------------------------------------------
 -- Does a CLabel refer to a CAF?
index 5db8b12..60f1bda 100644 (file)
@@ -80,8 +80,6 @@ import FastString
 import Outputable
 import Constants
 import DynFlags
-
-import Control.Arrow ((***))
 \end{code}
 
 
@@ -936,7 +934,7 @@ labelsFromCI :: ClosureInfo -> (CLabel, CLabel) -- (Info, Entry)
 labelsFromCI cl@(ClosureInfo { closureName = name,
                               closureLFInfo = lf_info,
                               closureInfLcl = is_lcl })
-  = (if is_lcl then (localiseLabel *** localiseLabel) else id) $ case lf_info of
+  = case lf_info of
        LFBlackHole -> (mkCAFBlackHoleInfoTableLabel, mkCAFBlackHoleEntryLabel)
 
        LFThunk _ _ upd_flag (SelectorThunk offset) _ -> 
@@ -945,11 +943,12 @@ labelsFromCI cl@(ClosureInfo { closureName = name,
        LFThunk _ _ upd_flag (ApThunk arity) _ -> 
                bothL (mkApInfoTableLabel, mkApEntryLabel) upd_flag arity
 
-       LFThunk{}      -> bothL (mkInfoTableLabel, mkEntryLabel) name $ clHasCafRefs cl
+       LFThunk{}      -> bothL std_mk_lbls name $ clHasCafRefs cl
 
-       LFReEntrant _ _ _ _ -> bothL (mkInfoTableLabel, mkEntryLabel) name $ clHasCafRefs cl
+       LFReEntrant _ _ _ _ -> bothL std_mk_lbls name $ clHasCafRefs cl
 
        _ -> panic "labelsFromCI"
+  where std_mk_lbls = if is_lcl then (mkLocalInfoTableLabel, mkLocalEntryLabel) else (mkInfoTableLabel, mkEntryLabel)
 
 labelsFromCI cl@(ConInfo { closureCon = con, 
                                   closureSMRep = rep })
index cbcdaab..2492baf 100644 (file)
@@ -90,8 +90,6 @@ import Outputable
 import Constants
 import DynFlags
 
-import Control.Arrow ((***))
-
 -----------------------------------------------------------------------------
 --             Representations
 -----------------------------------------------------------------------------
@@ -1003,7 +1001,7 @@ labelsFromCI :: ClosureInfo -> (CLabel, CLabel) -- (Info, Entry)
 labelsFromCI cl@(ClosureInfo { closureName = name,
                               closureLFInfo = lf_info,
                               closureInfLcl = is_lcl })
-  = (if is_lcl then (localiseLabel *** localiseLabel) else id) $ case lf_info of
+  = case lf_info of
        LFBlackHole -> (mkCAFBlackHoleInfoTableLabel, mkCAFBlackHoleEntryLabel)
 
        LFThunk _ _ upd_flag (SelectorThunk offset) _ -> 
@@ -1012,11 +1010,12 @@ labelsFromCI cl@(ClosureInfo { closureName = name,
        LFThunk _ _ upd_flag (ApThunk arity) _ -> 
                bothL (mkApInfoTableLabel, mkApEntryLabel) upd_flag arity
 
-       LFThunk{}      -> bothL (mkInfoTableLabel, mkEntryLabel) name $ clHasCafRefs cl
+       LFThunk{}      -> bothL std_mk_lbls name $ clHasCafRefs cl
 
-       LFReEntrant _ _ _ _ -> bothL (mkInfoTableLabel, mkEntryLabel) name $ clHasCafRefs cl
+       LFReEntrant _ _ _ _ -> bothL std_mk_lbls name $ clHasCafRefs cl
 
        _other -> panic "labelsFromCI"
+  where std_mk_lbls = if is_lcl then (mkLocalInfoTableLabel, mkLocalEntryLabel) else (mkInfoTableLabel, mkEntryLabel)
 
 labelsFromCI cl@(ConInfo { closureCon = con, closureSMRep = rep })
   | isStaticRep rep = bothL (mkStaticInfoTableLabel, mkStaticConEntryLabel)  name $ clHasCafRefs cl