%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-% $Id: CLabel.lhs,v 1.39 2000/10/12 15:17:07 sewardj Exp $
+% $Id: CLabel.lhs,v 1.46 2001/04/20 14:54:37 sewardj Exp $
%
\section[CLabel]{@CLabel@: Information to make C Labels}
mkCharlikeClosureLabel,
mkIntlikeClosureLabel,
mkMAP_FROZEN_infoLabel,
+ mkEMPTY_MVAR_infoLabel,
mkTopTickyCtrLabel,
mkBlackHoleInfoTableLabel,
import CmdLineOpts ( opt_Static, opt_DoTickyProfiling )
import CStrings ( pp_cSEP )
-import DataCon ( ConTag, DataCon )
-import Module ( ModuleName, moduleName, moduleNameFS,
- Module, isLocalModule )
+import DataCon ( ConTag )
+import Module ( moduleName, moduleNameFS,
+ Module, isHomeModule )
import Name ( Name, getName, isDllName, isExternallyVisibleName )
import TyCon ( TyCon )
import Unique ( pprUnique, Unique )
-import PrimOp ( PrimOp, pprPrimOp )
+import PrimOp ( PrimOp )
import CostCentre ( CostCentre, CostCentreStack )
-import Util
import Outputable
\end{code}
mkSplitMarkerLabel = RtsLabel (Rts_Code "__stg_split_marker")
mkUpdInfoLabel = RtsLabel RtsUpdInfo
mkSeqInfoLabel = RtsLabel RtsSeqInfo
-mkIndInfoLabel = RtsLabel (Rts_Info "IND_info")
-mkIndStaticInfoLabel = RtsLabel (Rts_Info "IND_STATIC_info")
+mkIndInfoLabel = RtsLabel (Rts_Info "stg_IND_info")
+mkIndStaticInfoLabel = RtsLabel (Rts_Info "stg_IND_STATIC_info")
mkRtsGCEntryLabel str = RtsLabel (RtsGCEntryLabel str)
mkMainRegTableLabel = RtsLabel RtsMainRegTable
-mkCharlikeClosureLabel = RtsLabel (Rts_Closure "CHARLIKE_closure")
-mkIntlikeClosureLabel = RtsLabel (Rts_Closure "INTLIKE_closure")
-mkMAP_FROZEN_infoLabel = RtsLabel (Rts_Info "MUT_ARR_PTRS_FROZEN_info")
+mkCharlikeClosureLabel = RtsLabel (Rts_Closure "stg_CHARLIKE_closure")
+mkIntlikeClosureLabel = RtsLabel (Rts_Closure "stg_INTLIKE_closure")
+mkMAP_FROZEN_infoLabel = RtsLabel (Rts_Info "stg_MUT_ARR_PTRS_FROZEN_info")
+mkEMPTY_MVAR_infoLabel = RtsLabel (Rts_Info "stg_EMPTY_MVAR_info")
mkTopTickyCtrLabel = RtsLabel RtsTopTickyCtr
-mkBlackHoleInfoTableLabel = RtsLabel (RtsBlackHoleInfoTbl SLIT("BLACKHOLE_info"))
-mkCAFBlackHoleInfoTableLabel = RtsLabel (RtsBlackHoleInfoTbl SLIT("CAF_BLACKHOLE_info"))
+mkBlackHoleInfoTableLabel = RtsLabel (RtsBlackHoleInfoTbl SLIT("stg_BLACKHOLE_info"))
+mkCAFBlackHoleInfoTableLabel = RtsLabel (RtsBlackHoleInfoTbl SLIT("stg_CAF_BLACKHOLE_info"))
mkSECAFBlackHoleInfoTableLabel = if opt_DoTickyProfiling then
- RtsLabel (RtsBlackHoleInfoTbl SLIT("SE_CAF_BLACKHOLE_info"))
+ RtsLabel (RtsBlackHoleInfoTbl SLIT("stg_SE_CAF_BLACKHOLE_info"))
else -- RTS won't have info table unless -ticky is on
panic "mkSECAFBlackHoleInfoTableLabel requires -ticky"
mkRtsPrimOpLabel primop = RtsLabel (RtsPrimOp primop)
DataConLabel n k -> isDllName n
TyConLabel tc -> isDllName (getName tc)
ForeignLabel _ d -> d
- ModuleInitLabel m -> (not opt_Static) && (not (isLocalModule m))
+ ModuleInitLabel m -> (not opt_Static) && (not (isHomeModule m))
_ -> False
\end{code}
-- used to be stg_error_entry but Windows can't have DLL entry points as static
-- initialisers, and besides, this ShouldNeverHappen, right?
-pprCLbl (RtsLabel RtsUpdInfo) = ptext SLIT("upd_frame_info")
-pprCLbl (RtsLabel RtsSeqInfo) = ptext SLIT("seq_frame_info")
+pprCLbl (RtsLabel RtsUpdInfo) = ptext SLIT("stg_upd_frame_info")
+pprCLbl (RtsLabel RtsSeqInfo) = ptext SLIT("stg_seq_frame_info")
pprCLbl (RtsLabel RtsMainRegTable) = ptext SLIT("MainRegTable")
pprCLbl (RtsLabel (RtsGCEntryLabel str)) = text str
pprCLbl (RtsLabel (Rts_Closure str)) = text str
pprCLbl (RtsLabel (RtsBlackHoleInfoTbl info)) = ptext info
pprCLbl (RtsLabel (RtsSelectorInfoTbl upd_reqd offset))
- = hcat [ptext SLIT("__sel_"), text (show offset),
+ = hcat [ptext SLIT("stg_sel_"), text (show offset),
ptext (if upd_reqd
then SLIT("_upd_info")
else SLIT("_noupd_info"))
]
pprCLbl (RtsLabel (RtsSelectorEntry upd_reqd offset))
- = hcat [ptext SLIT("__sel_"), text (show offset),
+ = hcat [ptext SLIT("stg_sel_"), text (show offset),
ptext (if upd_reqd
then SLIT("_upd_entry")
else SLIT("_noupd_entry"))
]
pprCLbl (RtsLabel (RtsApInfoTbl upd_reqd arity))
- = hcat [ptext SLIT("__ap_"), text (show arity),
+ = hcat [ptext SLIT("stg_ap_"), text (show arity),
ptext (if upd_reqd
then SLIT("_upd_info")
else SLIT("_noupd_info"))
]
pprCLbl (RtsLabel (RtsApEntry upd_reqd arity))
- = hcat [ptext SLIT("__ap_"), text (show arity),
+ = hcat [ptext SLIT("stg_ap_"), text (show arity),
ptext (if upd_reqd
then SLIT("_upd_entry")
else SLIT("_noupd_entry"))
]
pprCLbl (RtsLabel (RtsPrimOp primop))
- = pprPrimOp primop <> ptext SLIT("_fast")
+ = ppr primop <> ptext SLIT("_fast")
pprCLbl (RtsLabel RtsModuleRegd)
= ptext SLIT("module_registered")