summaryrefslogtreecommitdiff
path: root/rts/sm/Scav.c
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2019-05-23 13:32:42 +0300
committerBen Gamari <ben@smart-cactus.org>2019-10-22 18:56:32 -0400
commit3a862703765b578979e34332a4fadda5139544dc (patch)
tree6537b1769abc0af5b00536872e45c00c1fa36bcc /rts/sm/Scav.c
parent22eee2bcc67aab406843b12680955a6cb95470ef (diff)
downloadhaskell-3a862703765b578979e34332a4fadda5139544dc.tar.gz
rts: COMPACT_NFDATA support for the nonmoving collector
This largely follows the model used for large objects, with appropriate adjustments made to account for references in the sharing deduplication hashtable.
Diffstat (limited to 'rts/sm/Scav.c')
-rw-r--r--rts/sm/Scav.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/rts/sm/Scav.c b/rts/sm/Scav.c
index cac9ca1e2d..501d958aae 100644
--- a/rts/sm/Scav.c
+++ b/rts/sm/Scav.c
@@ -84,6 +84,7 @@ static void scavenge_large_bitmap (StgPtr p,
# define scavenge_mut_arr_ptrs(info) scavenge_mut_arr_ptrs1(info)
# define scavenge_PAP(pap) scavenge_PAP1(pap)
# define scavenge_AP(ap) scavenge_AP1(ap)
+# define scavenge_compact(str) scavenge_compact1(str)
#endif
static void do_evacuate(StgClosure **p, void *user STG_UNUSED)
@@ -173,7 +174,10 @@ evacuate_hash_entry(MapHashData *dat, StgWord key, const void *value)
SET_GCT(old_gct);
}
-static void
+/* Here we scavenge the sharing-preservation hash-table, which may contain keys
+ * living in from-space.
+ */
+void
scavenge_compact(StgCompactNFData *str)
{
bool saved_eager;