X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FLdvProfile.c;h=1e2ffc8c027be5bea43596bc4f7fc4abd0ad70af;hp=2f9f6ca40adb935463fab60aaae3676671c503c7;hb=89eac8928317774fdc3f283d78d3ff3cb315db5e;hpb=9cef40bd4dd2536c7a370a1a9b78461c152805cc diff --git a/rts/LdvProfile.c b/rts/LdvProfile.c index 2f9f6ca..1e2ffc8 100644 --- a/rts/LdvProfile.c +++ b/rts/LdvProfile.c @@ -14,7 +14,6 @@ #include "RtsFlags.h" #include "Profiling.h" #include "Stats.h" -#include "Storage.h" #include "RtsUtils.h" #include "Schedule.h" @@ -97,7 +96,8 @@ processHeapClosureForDead( StgClosure *c ) '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: @@ -178,9 +178,7 @@ processHeapClosureForDead( StgClosure *c ) 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: @@ -249,22 +247,7 @@ processSmallObjectPoolForDead( void ) 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); @@ -272,7 +255,6 @@ processSmallObjectPoolForDead( void ) p++; } ASSERT(p == bd->free); - bd = bd->link; } }