Do not link ghc stage1 using -threaded, only for stage2 or 3
[ghc-hetmet.git] / rts / RetainerProfile.c
index b17f24f..2bd213a 100644 (file)
@@ -453,8 +453,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child )
     case CONSTR_0_2:
     case CAF_BLACKHOLE:
     case BLACKHOLE:
-    case SE_BLACKHOLE:
-    case SE_CAF_BLACKHOLE:
     case ARR_WORDS:
        *first_child = NULL;
        return;
@@ -626,7 +624,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child )
     case FETCH_ME_BQ:
     case RBH:
     case REMOTE_REF:
-    case EVACUATED:
     case INVALID_OBJECT:
     default:
        barf("Invalid object *c in push()");
@@ -959,8 +956,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r )
        case CONSTR_0_2:
        case CAF_BLACKHOLE:
        case BLACKHOLE:
-       case SE_BLACKHOLE:
-       case SE_CAF_BLACKHOLE:
        case ARR_WORDS:
            // one child (fixed), no SRT
        case MUT_VAR_CLEAN:
@@ -992,7 +987,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r )
        case FETCH_ME_BQ:
        case RBH:
        case REMOTE_REF:
-       case EVACUATED:
        case INVALID_OBJECT:
        default:
            barf("Invalid object *c in pop()");
@@ -1114,8 +1108,6 @@ isRetainer( StgClosure *c )
        // blackholes
     case CAF_BLACKHOLE:
     case BLACKHOLE:
-    case SE_BLACKHOLE:
-    case SE_CAF_BLACKHOLE:
        // indirection
     case IND_PERM:
     case IND_OLDGEN_PERM:
@@ -1157,7 +1149,6 @@ isRetainer( StgClosure *c )
     case FETCH_ME_BQ:
     case RBH:
     case REMOTE_REF:
-    case EVACUATED:
     case INVALID_OBJECT:
     default:
        barf("Invalid object in isRetainer(): %d", get_itbl(c)->type);
@@ -1635,7 +1626,7 @@ inner_loop:
 #ifdef DEBUG_RETAINER
            debugBelch("ThreadRelocated encountered in retainClosure()\n");
 #endif
-           c = (StgClosure *)((StgTSO *)c)->link;
+           c = (StgClosure *)((StgTSO *)c)->_link;
            goto inner_loop;
        }
        break;
@@ -1846,7 +1837,7 @@ computeRetainerSet( void )
     // for retainer profilng.
     for (weak = weak_ptr_list; weak != NULL; weak = weak->link)
        // retainRoot((StgClosure *)weak);
-       retainRoot((StgClosure **)&weak, NULL);
+       retainRoot(NULL, (StgClosure **)&weak);
 
     // Consider roots from the stable ptr table.
     markStablePtrTable(retainRoot, NULL);