From: Simon Marlow Date: Wed, 5 Aug 2009 09:35:39 +0000 (+0000) Subject: profiling build fixes X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=948c01bdb7f42504487a624b229137694871efd0 profiling build fixes --- diff --git a/includes/rts/prof/CCS.h b/includes/rts/prof/CCS.h index 3512930..d56caf0 100644 --- a/includes/rts/prof/CCS.h +++ b/includes/rts/prof/CCS.h @@ -176,7 +176,6 @@ extern CostCentreStack * RTS_VAR(CCS_LIST); /* registered CCS list */ #define REGISTER_CC(cc) \ do { \ - extern CostCentre cc[]; \ if ((cc)->link == (CostCentre *)0) { \ (cc)->link = CC_LIST; \ CC_LIST = (cc); \ @@ -185,7 +184,6 @@ extern CostCentreStack * RTS_VAR(CCS_LIST); /* registered CCS list */ #define REGISTER_CCS(ccs) \ do { \ - extern CostCentreStack ccs[]; \ if ((ccs)->prevStack == (CostCentreStack *)0) { \ (ccs)->prevStack = CCS_LIST; \ CCS_LIST = (ccs); \ diff --git a/includes/rts/prof/LDV.h b/includes/rts/prof/LDV.h index c51b106..f547246 100644 --- a/includes/rts/prof/LDV.h +++ b/includes/rts/prof/LDV.h @@ -23,17 +23,22 @@ * because retainer profiling also expects LDVW(c) to be initialised * to zero. */ -#ifndef CMINUSMINUS -#define LDV_RECORD_CREATE(c) \ - LDVW((c)) = ((StgWord)RTS_DEREF(era) << LDV_SHIFT) | LDV_STATE_CREATE -#endif #ifdef CMINUSMINUS + #define LDV_RECORD_DEAD_FILL_SLOP_DYNAMIC(c) \ foreign "C" LDV_recordDead_FILL_SLOP_DYNAMIC(c "ptr") + #else + +#define LDV_RECORD_CREATE(c) \ + LDVW((c)) = ((StgWord)RTS_DEREF(era) << LDV_SHIFT) | LDV_STATE_CREATE + +void LDV_recordDead_FILL_SLOP_DYNAMIC( StgClosure *p ); + #define LDV_RECORD_DEAD_FILL_SLOP_DYNAMIC(c) \ LDV_recordDead_FILL_SLOP_DYNAMIC(c) + #endif #else /* !PROFILING */ diff --git a/rts/LdvProfile.c b/rts/LdvProfile.c index 3a160de..b5c0e63 100644 --- a/rts/LdvProfile.c +++ b/rts/LdvProfile.c @@ -13,6 +13,7 @@ #include "Rts.h" #include "Profiling.h" +#include "LdvProfile.h" #include "Stats.h" #include "RtsUtils.h" #include "Schedule.h" diff --git a/rts/LdvProfile.h b/rts/LdvProfile.h index c61b010..2721547 100644 --- a/rts/LdvProfile.h +++ b/rts/LdvProfile.h @@ -14,7 +14,6 @@ #include "ProfHeap.h" -extern void LDV_recordDead_FILL_SLOP_DYNAMIC( StgClosure *p ); extern void LdvCensusForDead ( nat ); extern void LdvCensusKillAll ( void ); diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index 4441749..adec3fc 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -30,6 +30,7 @@ #include "Stats.h" #include "ProfHeap.h" #include "Apply.h" +#include "sm/Storage.h" // for END_OF_STATIC_LIST /* Note: what to change in order to plug-in a new retainer profiling scheme? diff --git a/rts/RetainerProfile.h b/rts/RetainerProfile.h index 5f4503c..da9a847 100644 --- a/rts/RetainerProfile.h +++ b/rts/RetainerProfile.h @@ -16,7 +16,6 @@ extern void initRetainerProfiling ( void ); extern void endRetainerProfiling ( void ); -extern void printRetainer ( FILE *, retainer ); extern void retainerProfile ( void ); extern void resetStaticObjectForRetainerProfiling( StgClosure *static_objects ); diff --git a/rts/sm/Evac.c b/rts/sm/Evac.c index 9e6d0f1..ae843bd 100644 --- a/rts/sm/Evac.c +++ b/rts/sm/Evac.c @@ -22,6 +22,7 @@ #include "Compact.h" #include "Prelude.h" #include "Trace.h" +#include "LdvProfile.h" #if defined(PROF_SPIN) && defined(THREADED_RTS) && defined(PARALLEL_GC) StgWord64 whitehole_spin = 0; diff --git a/rts/sm/GC.c b/rts/sm/GC.c index 02fd6d9..d2217b8 100644 --- a/rts/sm/GC.c +++ b/rts/sm/GC.c @@ -33,6 +33,7 @@ #endif #include "Trace.h" #include "RetainerProfile.h" +#include "LdvProfile.h" #include "RaiseAsync.h" #include "Papi.h" #include "Stable.h" diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c index 9ebd4c5..52de561 100644 --- a/rts/sm/Scav.c +++ b/rts/sm/Scav.c @@ -25,6 +25,7 @@ #include "Trace.h" #include "Sanity.h" #include "Capability.h" +#include "LdvProfile.h" static void scavenge_stack (StgPtr p, StgPtr stack_end);