projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Keep track of an accurate count of live words in each step
[ghc-hetmet.git]
/
includes
/
Storage.h
diff --git
a/includes/Storage.h
b/includes/Storage.h
index
28225d7
..
d7a8421
100644
(file)
--- a/
includes/Storage.h
+++ b/
includes/Storage.h
@@
-62,6
+62,7
@@
typedef struct step_ {
bdescr * blocks; // blocks in this step
unsigned int n_blocks; // number of blocks
bdescr * blocks; // blocks in this step
unsigned int n_blocks; // number of blocks
+ unsigned int n_words; // number of words
struct step_ * to; // destination step for live objects
struct step_ * to; // destination step for live objects
@@
-88,8
+89,12
@@
typedef struct step_ {
unsigned int n_old_blocks; // number of blocks in from-space
bdescr * todos; // blocks waiting to be scavenged
unsigned int n_old_blocks; // number of blocks in from-space
bdescr * todos; // blocks waiting to be scavenged
+ bdescr * todos_last;
unsigned int n_todos; // count of above
unsigned int n_todos; // count of above
+ bdescr * part_blocks; // partially-full scanned blocks
+ unsigned int n_part_blocks; // count of above
+
bdescr * scavenged_large_objects; // live large objs after GC (d-link)
unsigned int n_scavenged_large_blocks; // size (not count) of above
bdescr * scavenged_large_objects; // live large objs after GC (d-link)
unsigned int n_scavenged_large_blocks; // size (not count) of above
@@
-120,7
+125,7
@@
extern generation * RTS_VAR(g0);
extern step * RTS_VAR(g0s0);
extern generation * RTS_VAR(oldest_gen);
extern step * RTS_VAR(all_steps);
extern step * RTS_VAR(g0s0);
extern generation * RTS_VAR(oldest_gen);
extern step * RTS_VAR(all_steps);
-extern nat total_steps;
+extern nat RTS_VAR(total_steps);
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
@@
-576,7
+581,6
@@
extern void newDynCAF(StgClosure *);
extern void move_TSO(StgTSO *src, StgTSO *dest);
extern StgTSO *relocate_stack(StgTSO *dest, ptrdiff_t diff);
extern void move_TSO(StgTSO *src, StgTSO *dest);
extern StgTSO *relocate_stack(StgTSO *dest, ptrdiff_t diff);
-extern StgClosure * RTS_VAR(scavenged_static_objects);
extern StgWeak * RTS_VAR(old_weak_ptr_list);
extern StgWeak * RTS_VAR(weak_ptr_list);
extern StgClosure * RTS_VAR(caf_list);
extern StgWeak * RTS_VAR(old_weak_ptr_list);
extern StgWeak * RTS_VAR(weak_ptr_list);
extern StgClosure * RTS_VAR(caf_list);