summaryrefslogtreecommitdiff
path: root/gcc/ggc-common.c
diff options
context:
space:
mode:
authortbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-20 15:10:11 +0000
committertbsaunde <tbsaunde@138bc75d-0d04-0410-961f-82ee72b054a4>2014-11-20 15:10:11 +0000
commitf863a58699d3bfadf18c502e1ee4488e7ebfdd15 (patch)
treefa770de679e7f22bf1d98fb9ad84e84a0d60cfa0 /gcc/ggc-common.c
parent2cafda86f9b27c172bc7c237581d9275b0e0ddfd (diff)
downloadgcc-f863a58699d3bfadf18c502e1ee4488e7ebfdd15.tar.gz
implement a replacement for if_marked
gcc/ChangeLog: 2014-11-20 Trevor Saunders <tsaunders@mozilla.com> * doc/gty.texi: Document the new cache gty attribute. * gengtype.c (finish_cache_funcs): New function. (write_roots): Call gt_clear_cache on global variables with the cache gty attribute. * ggc-common.c (ggc_mark_roots): Call gt_clear_caches. * ggc.h (gt_clear_caches): New declaration. * hash-table.h (struct ggc_cache_hasher): New hasher for caches in gc memory. (gt_cleare_cache): New function. * emit-rtl.c, rtl.h, tree.c: Use hash_table instead of htab. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@217866 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ggc-common.c')
-rw-r--r--gcc/ggc-common.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/ggc-common.c b/gcc/ggc-common.c
index 32440b4f66c..06f70c2f353 100644
--- a/gcc/ggc-common.c
+++ b/gcc/ggc-common.c
@@ -162,6 +162,8 @@ ggc_mark_roots (void)
for (ct = gt_ggc_cache_rtab; *ct; ct++)
ggc_scan_cache_tab (*ct);
+ gt_clear_caches ();
+
FOR_EACH_VEC_ELT (extra_cache_vec, i, ctp)
ggc_scan_cache_tab (ctp);