From b31ee14d26c6f8b02d7c50372d0010113f9a3f01 Mon Sep 17 00:00:00 2001
From: Max Bolingbroke <batterseapower@hotmail.com>
Date: Thu, 28 Jul 2011 23:57:55 +0100
Subject: [PATCH] Eliminate localiseLabel

---
 compiler/cmm/CLabel.hs            | 6 ------
 compiler/codeGen/ClosureInfo.lhs  | 9 ++++-----
 compiler/codeGen/StgCmmClosure.hs | 9 ++++-----
 3 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/compiler/cmm/CLabel.hs b/compiler/cmm/CLabel.hs
index 5cafdf468d54..b386db260191 100644
--- a/compiler/cmm/CLabel.hs
+++ b/compiler/cmm/CLabel.hs
@@ -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?
diff --git a/compiler/codeGen/ClosureInfo.lhs b/compiler/codeGen/ClosureInfo.lhs
index 5db8b125f704..60f1bda7f54b 100644
--- a/compiler/codeGen/ClosureInfo.lhs
+++ b/compiler/codeGen/ClosureInfo.lhs
@@ -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 })
diff --git a/compiler/codeGen/StgCmmClosure.hs b/compiler/codeGen/StgCmmClosure.hs
index cbcdaab058fb..2492bafc6c4c 100644
--- a/compiler/codeGen/StgCmmClosure.hs
+++ b/compiler/codeGen/StgCmmClosure.hs
@@ -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
-- 
GitLab