diff options
author | Ömer Sinan Ağacan <omeragacan@gmail.com> | 2019-05-23 13:32:42 +0300 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2019-10-22 18:56:32 -0400 |
commit | 3a862703765b578979e34332a4fadda5139544dc (patch) | |
tree | 6537b1769abc0af5b00536872e45c00c1fa36bcc /rts/sm/Scav.c | |
parent | 22eee2bcc67aab406843b12680955a6cb95470ef (diff) | |
download | haskell-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.c | 6 |
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; |