From 8bcf938222f7a241424d9c04574f49d9616b29da Mon Sep 17 00:00:00 2001 From: jason Date: Tue, 14 Nov 2017 16:02:57 +0000 Subject: Support GTY((cache)) on hash_map. gcc/ * hash-traits.h (ggc_remove): Add ggc_maybe_mx member function. (ggc_cache_remove): Override it instead of ggc_mx. * hash-table.h (gt_ggc_mx): Call it instead of ggc_mx. (gt_cleare_cache): Call ggc_mx instead of gt_ggc_mx. * hash-map-traits.h (simple_hashmap_traits): Add maybe_mx member. (simple_cache_map_traits): Override maybe_mx. * hash-map.h (hash_entry): Add ggc_maybe_mx and keep_cache_entry. (hash_map): Friend gt_cleare_cache. (gt_cleare_cache): New. * tree.h (tree_cache_traits): New hash_map traits class. (tree_cache_map): New typedef. gcc/cp/ * decl.c (decomp_type_table): Use tree_cache_map. * init.c (nsdmi_inst): Likewise. * pt.c (defarg_ints): Likewise. * cp-objcp-common.c (cp_get_debug_type): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@254731 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/tree.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'gcc/tree.h') diff --git a/gcc/tree.h b/gcc/tree.h index 277aa919780..39acffe5266 100644 --- a/gcc/tree.h +++ b/gcc/tree.h @@ -4858,6 +4858,13 @@ struct tree_decl_map_cache_hasher : ggc_cache_ptr_hash #define tree_vec_map_hash tree_decl_map_hash #define tree_vec_map_marked_p tree_map_base_marked_p +/* A hash_map of two trees for use with GTY((cache)). Garbage collection for + such a map will not mark keys, and will mark values if the key is already + marked. */ +struct tree_cache_traits + : simple_cache_map_traits, tree> { }; +typedef hash_map tree_cache_map; + /* Initialize the abstract argument list iterator object ITER with the arguments from CALL_EXPR node EXP. */ static inline void -- cgit v1.2.1