projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
pad step_workspace to 64 bytes, to speed up access to gct->steps[]
[ghc-hetmet.git]
/
includes
/
Storage.h
diff --git
a/includes/Storage.h
b/includes/Storage.h
index
32d4e9b
..
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
@@
-91,6
+92,9
@@
typedef struct step_ {
bdescr * todos_last;
unsigned int n_todos; // count of above
bdescr * todos_last;
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
@@
-109,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:
@@
-121,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
@@
-531,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