1 /* -----------------------------------------------------------------------------
2 * $Id: LdvProfile.h,v 1.2 2001/11/26 16:54:21 simonmar Exp $
4 * (c) The GHC Team, 2001
7 * Lag/Drag/Void profiling.
9 * ---------------------------------------------------------------------------*/
18 extern void LDV_recordDead_FILL_SLOP_DYNAMIC( StgClosure *p );
19 extern void LdvCensusForDead ( nat );
20 extern void LdvCensusKillAll ( void );
22 // Creates a 0-filled slop of size 'howManyBackwards' backwards from the
26 // 1) Hp is incremented and exceeds HpLim (in Updates.hc).
27 // 2) copypart() is called (in GC.c).
28 #define FILL_SLOP(from, howManyBackwards) \
31 for (i = 0;i < (howManyBackwards); i++) \
32 ((StgWord *)(from))[-i] = 0; \
35 // Informs the LDV profiler that closure c has just been evacuated.
36 // Evacuated objects are no longer needed, so we just store its original size in
38 #define SET_EVACUAEE_FOR_LDV(c, size) \
41 #endif /* PROFILING */
43 #endif /* LDVPROFILE_H */