Ensure runhaskell is rebuild in stage2
[ghc-hetmet.git] / rts / LdvProfile.c
index 5d96811..1e2ffc8 100644 (file)
@@ -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:
@@ -108,10 +108,12 @@ processHeapClosureForDead( StgClosure *c )
     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;
 
        /*
@@ -176,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:
@@ -247,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);
@@ -270,7 +255,6 @@ processSmallObjectPoolForDead( void )
                p++;
        }
        ASSERT(p == bd->free);
-       bd = bd->link;
     }
 }