summaryrefslogtreecommitdiff
path: root/rts/sm/NonMovingSweep.h
blob: 24e9eccd5e77b6482995b09841aabea6e5b25b03 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* -----------------------------------------------------------------------------
 *
 * (c) The GHC Team, 1998-2018
 *
 * Non-moving garbage collector and allocator: Sweep phase
 *
 * ---------------------------------------------------------------------------*/

#pragma once

#include "NonMoving.h"
#include "Hash.h"

GNUC_ATTR_HOT void nonmovingSweep(void);

// Remove unmarked entries in oldest generation mut_lists
void nonmovingSweepMutLists(void);

// Remove unmarked entries in oldest generation scavenged_large_objects list
void nonmovingSweepLargeObjects(void);

// Remove unmarked entries in oldest generation compact_objects list
void nonmovingSweepCompactObjects(void);

// Remove dead entries in the stable name table
void nonmovingSweepStableNameTable(void);

#if defined(DEBUG)
// The non-moving equivalent of the moving collector's gcCAFs.
void nonmovingGcCafs(void);
#endif