#include "RtsFlags.h"
#include "Profiling.h"
#include "Stats.h"
-#include "Storage.h"
#include "RtsUtils.h"
#include "Schedule.h"
'inherently used' cases: do nothing.
*/
case TSO:
- case MVAR:
+ case MVAR_CLEAN:
+ case MVAR_DIRTY:
case MUT_ARR_PTRS_CLEAN:
case MUT_ARR_PTRS_DIRTY:
case MUT_ARR_PTRS_FROZEN:
case MUT_VAR_DIRTY:
case BCO:
case STABLE_NAME:
- case TVAR_WAIT_QUEUE:
+ case TVAR_WATCH_QUEUE:
case TVAR:
case TREC_HEADER:
case TREC_CHUNK:
+ case INVARIANT_CHECK_QUEUE:
+ case ATOMIC_INVARIANT:
return size;
/*
case CONSTR_STATIC:
case FUN_STATIC:
case THUNK_STATIC:
- case CONSTR_INTLIKE:
- case CONSTR_CHARLIKE:
case CONSTR_NOCAF_STATIC:
// stack objects
case UPDATE_FRAME:
case RET_DYN:
case RET_BCO:
case RET_SMALL:
- case RET_VEC_SMALL:
case RET_BIG:
- case RET_VEC_BIG:
// others
case BLOCKED_FETCH:
case FETCH_ME:
bdescr *bd;
StgPtr p;
- bd = small_alloc_list;
-
- // first block
- if (bd == NULL)
- return;
-
- p = bd->start;
- while (p < alloc_Hp) {
- p += processHeapClosureForDead((StgClosure *)p);
- while (p < alloc_Hp && !*p) // skip slop
- p++;
- }
- ASSERT(p == alloc_Hp);
-
- bd = bd->link;
- while (bd != NULL) {
+ for (bd = g0s0->blocks; bd != NULL; bd = bd->link) {
p = bd->start;
while (p < bd->free) {
p += processHeapClosureForDead((StgClosure *)p);
p++;
}
ASSERT(p == bd->free);
- bd = bd->link;
}
}