projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
update copyrights in rts/sm
[ghc-hetmet.git]
/
includes
/
Storage.h
diff --git
a/includes/Storage.h
b/includes/Storage.h
index
28225d7
..
90e364c
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
@@
-108,6
+113,7
@@
typedef struct generation_ {
// stats information
unsigned int collections;
// stats information
unsigned int collections;
+ unsigned int par_collections;
unsigned int failed_promotions;
// temporary use during GC:
unsigned int failed_promotions;
// temporary use during GC:
@@
-120,7
+126,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
@@
-530,16
+536,17
@@
extern void resizeNurseries ( nat blocks );
extern void resizeNurseriesFixed ( nat blocks );
extern lnat countNurseryBlocks ( void );
extern void resizeNurseriesFixed ( nat blocks );
extern lnat countNurseryBlocks ( void );
+
/* -----------------------------------------------------------------------------
Functions from GC.c
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Functions from GC.c
-------------------------------------------------------------------------- */
-typedef void (*evac_fn)(StgClosure **);
+typedef void (*evac_fn)(void *user, StgClosure **root);
extern void threadPaused ( Capability *cap, StgTSO * );
extern StgClosure * isAlive ( StgClosure *p );
extern void threadPaused ( Capability *cap, StgTSO * );
extern StgClosure * isAlive ( StgClosure *p );
-extern void markCAFs ( evac_fn evac );
-extern void GetRoots ( evac_fn evac );
+extern void markCAFs ( evac_fn evac, void *user );
+extern void GetRoots ( evac_fn evac, void *user );
/* -----------------------------------------------------------------------------
Stats 'n' DEBUG stuff
/* -----------------------------------------------------------------------------
Stats 'n' DEBUG stuff
@@
-576,7
+583,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);