X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fprofiling%2FSCCfinal.lhs;h=8e0289225493d8e76d775aee8669f94241e5aa45;hp=c95db9c358a72644a5e9e6560bf5693117bb0145;hb=61d2625ae2e6a4cdae2ffc92df828905e81c24cc;hpb=b93eb0c23bed01905e86c0a8c485edb388626761 diff --git a/compiler/profiling/SCCfinal.lhs b/compiler/profiling/SCCfinal.lhs index c95db9c..8e02892 100644 --- a/compiler/profiling/SCCfinal.lhs +++ b/compiler/profiling/SCCfinal.lhs @@ -29,12 +29,15 @@ module SCCfinal ( stgMassageForProfiling ) where import StgSyn -import Packages ( HomeModules ) +import PackageConfig ( PackageId ) import StaticFlags ( opt_AutoSccsOnIndividualCafs ) import CostCentre -- lots of things import Id ( Id ) import Module ( Module ) -import UniqSupply ( uniqFromSupply, splitUniqSupply, UniqSupply ) +import UniqSupply ( splitUniqSupply, UniqSupply ) +#ifdef PROF_DO_BOXING +import UniqSupply ( uniqFromSupply ) +#endif import Unique ( Unique ) import VarSet import ListSetOps ( removeDups ) @@ -45,13 +48,13 @@ infixr 9 `thenMM`, `thenMM_` \begin{code} stgMassageForProfiling - :: HomeModules + :: PackageId -> Module -- module name -> UniqSupply -- unique supply -> [StgBinding] -- input -> (CollectedCCs, [StgBinding]) -stgMassageForProfiling pdeps mod_name us stg_binds +stgMassageForProfiling this_pkg mod_name us stg_binds = let ((local_ccs, extern_ccs, cc_stacks), stg_binds2) @@ -102,7 +105,7 @@ stgMassageForProfiling pdeps mod_name us stg_binds do_top_rhs :: Id -> StgRhs -> MassageM StgRhs do_top_rhs binder (StgRhsClosure _ bi fv u srt [] (StgSCC cc (StgConApp con args))) - | not (isSccCountCostCentre cc) && not (isDllConApp pdeps con args) + | not (isSccCountCostCentre cc) && not (isDllConApp this_pkg con args) -- Trivial _scc_ around nothing but static data -- Eliminate _scc_ ... and turn into StgRhsCon @@ -358,8 +361,10 @@ mapAccumMM f b (m:ms) mapAccumMM f b2 ms `thenMM` \ (b3, rs) -> returnMM (b3, r:rs) +#ifdef PROF_DO_BOXING getUniqueMM :: MassageM Unique getUniqueMM mod scope_cc us ids ccs = (ccs, uniqFromSupply us) +#endif addTopLevelIshId :: Id -> MassageM a -> MassageM a addTopLevelIshId id scope mod scope_cc us ids ccs