projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bottom extraction: float out bottoming expressions to top level
[ghc-hetmet.git]
/
rts
/
RetainerProfile.c
diff --git
a/rts/RetainerProfile.c
b/rts/RetainerProfile.c
index
b17f24f
..
4fca19c
100644
(file)
--- a/
rts/RetainerProfile.c
+++ b/
rts/RetainerProfile.c
@@
-16,19
+16,21
@@
#define INLINE inline
#endif
#define INLINE inline
#endif
+#include "PosixSource.h"
#include "Rts.h"
#include "Rts.h"
+
#include "RtsUtils.h"
#include "RetainerProfile.h"
#include "RetainerSet.h"
#include "Schedule.h"
#include "Printer.h"
#include "RtsUtils.h"
#include "RetainerProfile.h"
#include "RetainerSet.h"
#include "Schedule.h"
#include "Printer.h"
-#include "RtsFlags.h"
#include "Weak.h"
#include "Weak.h"
-#include "Sanity.h"
+#include "sm/Sanity.h"
#include "Profiling.h"
#include "Stats.h"
#include "ProfHeap.h"
#include "Apply.h"
#include "Profiling.h"
#include "Stats.h"
#include "ProfHeap.h"
#include "Apply.h"
+#include "sm/Storage.h" // for END_OF_STATIC_LIST
/*
Note: what to change in order to plug-in a new retainer profiling scheme?
/*
Note: what to change in order to plug-in a new retainer profiling scheme?
@@
-453,8
+455,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;
@@
-621,12
+621,6
@@
push( StgClosure *c, retainer c_child_r, StgClosure **first_child )
case RET_BIG:
// invalid objects
case IND:
case RET_BIG:
// invalid objects
case IND:
- case BLOCKED_FETCH:
- case FETCH_ME:
- 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
+953,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:
@@
-987,12
+979,6
@@
pop( StgClosure **c, StgClosure **cp, retainer *r )
case RET_BIG:
// invalid objects
case IND:
case RET_BIG:
// invalid objects
case IND:
- case BLOCKED_FETCH:
- case FETCH_ME:
- 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
+1100,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:
@@
-1152,12
+1136,6
@@
isRetainer( StgClosure *c )
case RET_BIG:
// other cases
case IND:
case RET_BIG:
// other cases
case IND:
- case BLOCKED_FETCH:
- case FETCH_ME:
- 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);
@@
-1300,9
+1278,9
@@
retainSRT (StgClosure **srt, nat srt_bitmap, StgClosure *c, retainer c_child_r)
while (bitmap != 0) {
if ((bitmap & 1) != 0) {
while (bitmap != 0) {
if ((bitmap & 1) != 0) {
-#ifdef ENABLE_WIN32_DLL_SUPPORT
+#if defined(__PIC__) && defined(mingw32_TARGET_OS)
if ( (unsigned long)(*srt) & 0x1 ) {
if ( (unsigned long)(*srt) & 0x1 ) {
- retainClosure(*stgCast(StgClosure**,(stgCast(unsigned long, *srt) & ~0x1)),
+ retainClosure(* (StgClosure**) ((unsigned long) (*srt) & ~0x1),
c, c_child_r);
} else {
retainClosure(*srt,c,c_child_r);
c, c_child_r);
} else {
retainClosure(*srt,c,c_child_r);
@@
-1635,7
+1613,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;
@@
-1846,7
+1824,7
@@
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, NULL);
+ retainRoot(NULL, (StgClosure **)&weak);
// Consider roots from the stable ptr table.
markStablePtrTable(retainRoot, NULL);
// Consider roots from the stable ptr table.
markStablePtrTable(retainRoot, NULL);