#define REGISTER_CC(cc) \
do { \
- extern CostCentre cc[]; \
if ((cc)->link == (CostCentre *)0) { \
(cc)->link = CC_LIST; \
CC_LIST = (cc); \
#define REGISTER_CCS(ccs) \
do { \
- extern CostCentreStack ccs[]; \
if ((ccs)->prevStack == (CostCentreStack *)0) { \
(ccs)->prevStack = CCS_LIST; \
CCS_LIST = (ccs); \
* 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 */
#include "Rts.h"
#include "Profiling.h"
+#include "LdvProfile.h"
#include "Stats.h"
#include "RtsUtils.h"
#include "Schedule.h"
#include "ProfHeap.h"
-extern void LDV_recordDead_FILL_SLOP_DYNAMIC( StgClosure *p );
extern void LdvCensusForDead ( nat );
extern void LdvCensusKillAll ( void );
#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?
extern void initRetainerProfiling ( void );
extern void endRetainerProfiling ( void );
-extern void printRetainer ( FILE *, retainer );
extern void retainerProfile ( void );
extern void resetStaticObjectForRetainerProfiling( StgClosure *static_objects );
#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;
#endif
#include "Trace.h"
#include "RetainerProfile.h"
+#include "LdvProfile.h"
#include "RaiseAsync.h"
#include "Papi.h"
#include "Stable.h"
#include "Trace.h"
#include "Sanity.h"
#include "Capability.h"
+#include "LdvProfile.h"
static void scavenge_stack (StgPtr p, StgPtr stack_end);