projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Split GC.c, and move storage manager into sm/ directory
[ghc-hetmet.git]
/
rts
/
sm
/
Compact.c
diff --git
a/rts/GCCompact.c
b/rts/sm/Compact.c
similarity index 99%
rename from
rts/GCCompact.c
rename to
rts/sm/Compact.c
index
da3c7a7
..
f50c994
100644
(file)
--- a/
rts/GCCompact.c
+++ b/
rts/sm/Compact.c
@@
-12,9
+12,11
@@
#include "RtsFlags.h"
#include "OSThreads.h"
#include "Storage.h"
#include "RtsFlags.h"
#include "OSThreads.h"
#include "Storage.h"
+#include "Stable.h"
#include "BlockAlloc.h"
#include "MBlock.h"
#include "BlockAlloc.h"
#include "MBlock.h"
-#include "GCCompact.h"
+#include "GC.h"
+#include "Compact.h"
#include "Schedule.h"
#include "Apply.h"
#include "Trace.h"
#include "Schedule.h"
#include "Apply.h"
#include "Trace.h"
@@
-476,7
+478,8
@@
update_fwd_large( bdescr *bd )
}
}
}
}
-STATIC_INLINE StgPtr
+// ToDo: too big to inline
+static /* STATIC_INLINE */ StgPtr
thread_obj (StgInfoTable *info, StgPtr p)
{
switch (info->type) {
thread_obj (StgInfoTable *info, StgPtr p)
{
switch (info->type) {
@@
-891,13
+894,13
@@
update_bkwd_compact( step *stp )
}
void
}
void
-compact( void (*get_roots)(evac_fn) )
+compact(void)
{
nat g, s, blocks;
step *stp;
// 1. thread the roots
{
nat g, s, blocks;
step *stp;
// 1. thread the roots
- get_roots((evac_fn)thread);
+ GetRoots((evac_fn)thread);
// the weak pointer lists...
if (weak_ptr_list != NULL) {
// the weak pointer lists...
if (weak_ptr_list != NULL) {