projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Count allocations more accurately
[ghc-hetmet.git]
/
rts
/
sm
/
Storage.h
diff --git
a/rts/sm/Storage.h
b/rts/sm/Storage.h
index
573d6bc
..
fdb6a46
100644
(file)
--- a/
rts/sm/Storage.h
+++ b/
rts/sm/Storage.h
@@
-9,7
+9,9
@@
#ifndef SM_STORAGE_H
#define SM_STORAGE_H
#ifndef SM_STORAGE_H
#define SM_STORAGE_H
-#pragma GCC visibility push(hidden)
+#include "Capability.h"
+
+#include "BeginPrivate.h"
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
/* -----------------------------------------------------------------------------
Initialisation / De-initialisation
@@
-17,18
+19,17
@@
void initStorage(void);
void exitStorage(void);
void initStorage(void);
void exitStorage(void);
-void freeStorage(void);
+void freeStorage(rtsBool free_heap);
/* -----------------------------------------------------------------------------
Storage manager state
-------------------------------------------------------------------------- */
/* -----------------------------------------------------------------------------
Storage manager state
-------------------------------------------------------------------------- */
-extern bdescr * pinned_object_block;
-
INLINE_HEADER rtsBool
INLINE_HEADER rtsBool
-doYouWantToGC( void )
+doYouWantToGC( Capability *cap )
{
{
- return (alloc_blocks >= alloc_blocks_lim);
+ return (cap->r.rCurrentNursery->link == NULL ||
+ g0->n_new_large_words >= large_alloc_lim);
}
/* for splitting blocks groups in two */
}
/* for splitting blocks groups in two */
@@
-120,7
+121,10
@@
void dirty_MVAR(StgRegTable *reg, StgClosure *p);
Nursery manipulation
-------------------------------------------------------------------------- */
Nursery manipulation
-------------------------------------------------------------------------- */
+extern nursery *nurseries;
+
void resetNurseries ( void );
void resetNurseries ( void );
+lnat clearNurseries ( void );
void resizeNurseries ( nat blocks );
void resizeNurseriesFixed ( nat blocks );
lnat countNurseryBlocks ( void );
void resizeNurseries ( nat blocks );
void resizeNurseriesFixed ( nat blocks );
lnat countNurseryBlocks ( void );
@@
-129,33
+133,25
@@
lnat countNurseryBlocks ( void );
Stats 'n' DEBUG stuff
-------------------------------------------------------------------------- */
Stats 'n' DEBUG stuff
-------------------------------------------------------------------------- */
-extern ullong total_allocated;
-
-lnat calcAllocated (void);
+lnat calcAllocated (rtsBool count_nurseries);
lnat calcLiveBlocks (void);
lnat calcLiveWords (void);
lnat countOccupied (bdescr *bd);
lnat calcNeeded (void);
lnat calcLiveBlocks (void);
lnat calcLiveWords (void);
lnat countOccupied (bdescr *bd);
lnat calcNeeded (void);
-HsInt64 getAllocations (void);
-
-#if defined(DEBUG)
-void memInventory (rtsBool show);
-void checkSanity (void);
-nat countBlocks (bdescr *);
-void checkNurserySanity (step *stp);
-#endif
/* ----------------------------------------------------------------------------
Storage manager internal APIs and globals
------------------------------------------------------------------------- */
/* ----------------------------------------------------------------------------
Storage manager internal APIs and globals
------------------------------------------------------------------------- */
+extern bdescr *exec_block;
+
#define END_OF_STATIC_LIST ((StgClosure*)1)
#define END_OF_STATIC_LIST ((StgClosure*)1)
-void move_TSO (StgTSO *src, StgTSO *dest);
+void move_STACK (StgStack *src, StgStack *dest);
extern StgClosure * caf_list;
extern StgClosure * revertible_caf_list;
extern StgClosure * caf_list;
extern StgClosure * revertible_caf_list;
-#pragma GCC visibility pop
+#include "EndPrivate.h"
#endif /* SM_STORAGE_H */
#endif /* SM_STORAGE_H */