summaryrefslogtreecommitdiff
path: root/gcc/ggc-page.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-26 20:49:22 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-10-26 20:49:22 +0000
commitd3bdb6d05779709bcb0cc1d7dfda88eb3e92678f (patch)
tree7a838606794e06dbdb769851ecc6e78116eb3676 /gcc/ggc-page.c
parentdea399b9ca84ed668aa3da7477dacd04e0192fa5 (diff)
downloadgcc-d3bdb6d05779709bcb0cc1d7dfda88eb3e92678f.tar.gz
2008-10-26 Basile Starynkevitch <basile@starynkevitch.net>
* gcc/basilys.h: added BASILYSPAR_MARKGGC. * gcc/ggc.h: (ggc_mark_roots_extra_marking, ggc_collect_extra_marking) new declarations. * gcc/ggc-common.c: (ggc_mark_roots_extra_marking) Added new function. (ggc_mark_roots) Removed. (ggc_collect) Moved function here to wrap ggc_collect_extra_marking. * gcc/ggc-page.c: (ggc_collect_extra_marking) replacing (ggc_collect) which has moved in ggc-common.c file. * gcc/ggc-zone.c: (ggc_collect_extra_marking) replacing (ggc_collect) which has moved in ggc-common.c file. (ggc_collect_1) takes extra marker routine & data arguments. * gcc/melt/warmelt-first.bysl: class_ctype has new field ctype_marker filled for ctype_value ctype_tree ctype_gimple ctype_gimpleseq ctype_basicblock ctype_edge. * gcc/melt/warmelt-outobj.bysl: added outpucod_marker and calling it. * gcc/warmelt-first-0.c: regenerated. * gcc/warmelt-macro-0.c: regenerated. * gcc/warmelt-normal-0.c: regenerated. * gcc/warmelt-normatch-0.c: regenerated. * gcc/warmelt-genobj-0.c: regenerated. * gcc/warmelt-outobj-0.c: regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@141374 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ggc-page.c')
-rw-r--r--gcc/ggc-page.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index 0afe0d815dd..4c931080930 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -1904,10 +1904,11 @@ validate_free_objects (void)
#define validate_free_objects()
#endif
-/* Top level mark-and-sweep routine. */
+
+/* Top level mark-and-sweep routine with extra marker */
void
-ggc_collect (void)
+ggc_collect_extra_marking (gt_pointer_walker walkrout, void* walkdata)
{
/* Avoid frequent unnecessary work by skipping collection if the
total allocations haven't expanded much since the last
@@ -1938,7 +1939,7 @@ ggc_collect (void)
G.context_depth_collections = ((unsigned long)1 << (G.context_depth + 1)) - 1;
clear_marks ();
- ggc_mark_roots ();
+ ggc_mark_roots_extra_marking (walkrout, walkdata);
#ifdef GATHER_STATISTICS
ggc_prune_overhead_list ();
#endif