#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 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;
}
}