projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add getOrSetSignalHandlerStore, much like getOrSetTypeableStore
[ghc-hetmet.git]
/
rts
/
RetainerProfile.c
diff --git
a/rts/RetainerProfile.c
b/rts/RetainerProfile.c
index
e963567
..
2bd213a
100644
(file)
--- a/
rts/RetainerProfile.c
+++ b/
rts/RetainerProfile.c
@@
-453,8
+453,6
@@
push( StgClosure *c, retainer c_child_r, StgClosure **first_child )
case CONSTR_0_2:
case CAF_BLACKHOLE:
case BLACKHOLE:
case CONSTR_0_2:
case CAF_BLACKHOLE:
case BLACKHOLE:
- case SE_BLACKHOLE:
- case SE_CAF_BLACKHOLE:
case ARR_WORDS:
*first_child = NULL;
return;
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 FETCH_ME_BQ:
case RBH:
case REMOTE_REF:
- case EVACUATED:
case INVALID_OBJECT:
default:
barf("Invalid object *c in push()");
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 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:
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 FETCH_ME_BQ:
case RBH:
case REMOTE_REF:
- case EVACUATED:
case INVALID_OBJECT:
default:
barf("Invalid object *c in pop()");
case INVALID_OBJECT:
default:
barf("Invalid object *c in pop()");
@@
-1114,8
+1108,6
@@
isRetainer( StgClosure *c )
// blackholes
case CAF_BLACKHOLE:
case BLACKHOLE:
// blackholes
case CAF_BLACKHOLE:
case BLACKHOLE:
- case SE_BLACKHOLE:
- case SE_CAF_BLACKHOLE:
// indirection
case IND_PERM:
case IND_OLDGEN_PERM:
// 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 FETCH_ME_BQ:
case RBH:
case REMOTE_REF:
- case EVACUATED:
case INVALID_OBJECT:
default:
barf("Invalid object in isRetainer(): %d", get_itbl(c)->type);
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
#ifdef DEBUG_RETAINER
debugBelch("ThreadRelocated encountered in retainClosure()\n");
#endif
- c = (StgClosure *)((StgTSO *)c)->link;
+ c = (StgClosure *)((StgTSO *)c)->_link;
goto inner_loop;
}
break;
goto inner_loop;
}
break;
@@
-1800,7
+1791,7
@@
inner_loop:
* Compute the retainer set for every object reachable from *tl.
* -------------------------------------------------------------------------- */
static void
* Compute the retainer set for every object reachable from *tl.
* -------------------------------------------------------------------------- */
static void
-retainRoot( StgClosure **tl )
+retainRoot(void *user STG_UNUSED, StgClosure **tl)
{
StgClosure *c;
{
StgClosure *c;
@@
-1837,7
+1828,7
@@
computeRetainerSet( void )
RetainerSet tmpRetainerSet;
#endif
RetainerSet tmpRetainerSet;
#endif
- GetRoots(retainRoot); // for scheduler roots
+ markCapabilities(retainRoot, NULL); // for scheduler roots
// This function is called after a major GC, when key, value, and finalizer
// all are guaranteed to be valid, or reachable.
// This function is called after a major GC, when key, value, and finalizer
// all are guaranteed to be valid, or reachable.
@@
-1846,10
+1837,10
@@
computeRetainerSet( void )
// for retainer profilng.
for (weak = weak_ptr_list; weak != NULL; weak = weak->link)
// retainRoot((StgClosure *)weak);
// for retainer profilng.
for (weak = weak_ptr_list; weak != NULL; weak = weak->link)
// retainRoot((StgClosure *)weak);
- retainRoot((StgClosure **)&weak);
+ retainRoot(NULL, (StgClosure **)&weak);
// Consider roots from the stable ptr table.
// Consider roots from the stable ptr table.
- markStablePtrTable(retainRoot);
+ markStablePtrTable(retainRoot, NULL);
// The following code resets the rs field of each unvisited mutable
// object (computing sumOfNewCostExtra and updating costArray[] when
// The following code resets the rs field of each unvisited mutable
// object (computing sumOfNewCostExtra and updating costArray[] when
@@
-1913,7
+1904,7
@@
computeRetainerSet( void )
* they are not taken into consideration in computing retainer sets.
* -------------------------------------------------------------------------- */
void
* they are not taken into consideration in computing retainer sets.
* -------------------------------------------------------------------------- */
void
-resetStaticObjectForRetainerProfiling( void )
+resetStaticObjectForRetainerProfiling( StgClosure *static_objects )
{
#ifdef DEBUG_RETAINER
nat count;
{
#ifdef DEBUG_RETAINER
nat count;
@@
-1923,7
+1914,7
@@
resetStaticObjectForRetainerProfiling( void )
#ifdef DEBUG_RETAINER
count = 0;
#endif
#ifdef DEBUG_RETAINER
count = 0;
#endif
- p = scavenged_static_objects;
+ p = static_objects;
while (p != END_OF_STATIC_LIST) {
#ifdef DEBUG_RETAINER
count++;
while (p != END_OF_STATIC_LIST) {
#ifdef DEBUG_RETAINER
count++;