X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=rts%2FRetainerProfile.c;h=e63fb54978fc2ef727fc4ee3a4fea90bbc5d57fc;hp=c5c3de53145779684aefcc7f6de0ccc590019fdd;hb=9cef40bd4dd2536c7a370a1a9b78461c152805cc;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1 diff --git a/rts/RetainerProfile.c b/rts/RetainerProfile.c index c5c3de5..e63fb54 100644 --- a/rts/RetainerProfile.c +++ b/rts/RetainerProfile.c @@ -591,8 +591,8 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child ) return; // no child break; - case TVAR_WAIT_QUEUE: - *first_child = (StgClosure *)((StgTVarWaitQueue *)c)->waiting_tso; + case TVAR_WATCH_QUEUE: + *first_child = (StgClosure *)((StgTVarWatchQueue *)c)->closure; se.info.next.step = 2; // 2 = second break; case TVAR: @@ -612,8 +612,6 @@ push( StgClosure *c, retainer c_child_r, StgClosure **first_child ) case AP_STACK: case TSO: case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // stack objects case UPDATE_FRAME: @@ -832,13 +830,13 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) *r = se->c_child_r; return; - case TVAR_WAIT_QUEUE: + case TVAR_WATCH_QUEUE: if (se->info.next.step == 2) { - *c = (StgClosure *)((StgTVarWaitQueue *)se->c)->next_queue_entry; + *c = (StgClosure *)((StgTVarWatchQueue *)se->c)->next_queue_entry; se->info.next.step++; // move to the next step // no popOff } else { - *c = (StgClosure *)((StgTVarWaitQueue *)se->c)->prev_queue_entry; + *c = (StgClosure *)((StgTVarWatchQueue *)se->c)->prev_queue_entry; popOff(); } *cp = se->c; @@ -846,7 +844,7 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) return; case TVAR: - *c = (StgClosure *)((StgTVar *)se->c)->first_wait_queue_entry; + *c = (StgClosure *)((StgTVar *)se->c)->first_watch_queue_entry; *cp = se->c; *r = se->c_child_r; popOff(); @@ -974,8 +972,6 @@ pop( StgClosure **c, StgClosure **cp, retainer *r ) case AP_STACK: case TSO: case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // stack objects case RET_DYN: @@ -1129,7 +1125,7 @@ isRetainer( StgClosure *c ) case BCO: case ARR_WORDS: // STM - case TVAR_WAIT_QUEUE: + case TVAR_WATCH_QUEUE: case TREC_HEADER: case TREC_CHUNK: return rtsFalse; @@ -1139,10 +1135,8 @@ isRetainer( StgClosure *c ) // // IND_STATIC cannot be *c, *cp, *r in the retainer profiling loop. case IND_STATIC: - // CONSTR_INTLIKE, CONSTR_CHARLIKE, and CONSTR_NOCAF_STATIC + // CONSTR_NOCAF_STATIC // cannot be *c, *cp, *r in the retainer profiling loop. - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: // Stack objects are invalid because they are never treated as // legal objects during retainer profiling. @@ -1609,8 +1603,6 @@ inner_loop: #ifdef DEBUG_RETAINER switch (typeOfc) { case IND_STATIC: - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: case CONSTR_STATIC: case THUNK_STATIC: @@ -1648,8 +1640,6 @@ inner_loop: // We just skip IND_STATIC, so its retainer set is never computed. c = ((StgIndStatic *)c)->indirectee; goto inner_loop; - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: // static objects with no pointers out, so goto loop. case CONSTR_NOCAF_STATIC: // It is not just enough not to compute the retainer set for *c; it is @@ -1880,8 +1870,6 @@ computeRetainerSet( void ) case IND_STATIC: // no cost involved break; - case CONSTR_INTLIKE: - case CONSTR_CHARLIKE: case CONSTR_NOCAF_STATIC: case CONSTR_STATIC: case THUNK_STATIC: @@ -2012,8 +2000,6 @@ retainerProfile(void) pcostArrayLinear(FUN_STATIC); pcostArrayLinear(CONSTR_STATIC); pcostArrayLinear(CONSTR_NOCAF_STATIC); - pcostArrayLinear(CONSTR_INTLIKE); - pcostArrayLinear(CONSTR_CHARLIKE); */ #endif