This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Patch: identifier GC, take 2


Tom Tromey <tromey@redhat.com> writes:

> libcpp/ChangeLog:
> 2008-05-20  Tom Tromey  <tromey@redhat.com>
>
> 	* include/symtab.h (HT_ALLOCED): Remove.
> 	(ht_purge): Declare.
> 	* symtab.c (DELETED): New define.
> 	(ht_lookup): Update comment.
> 	(ht_lookup_with_hash): Handle deleted entries.  Remove HT_ALLOCED
> 	code.  Use subobject allocator for strings, if it exists.
> 	(ht_expand): Handle deleted entries.
> 	(ht_forall): Likewise.
> 	(ht_purge): New function.
> 	(ht_dump_statistics): Print deletion statistics.
>
> gcc/ChangeLog:
> 2008-05-20  Tom Tromey  <tromey@redhat.com>
>
> 	* ggc-zone.c (lookup_page_table_if_allocated): New function.
> 	(zone_find_object_offset): Likewise.
> 	(gt_ggc_m_S): Likewise.
> 	(highest_bit): Likewise.
> 	* ggc-page.c (gt_ggc_m_S): New function.
> 	* stringpool.c (string_stack): Remove.
> 	(init_stringpool): Update.
> 	(ggc_alloc_string): Use ggc_alloc.
> 	(maybe_delete_ident): New function.
> 	(ggc_purge_stringpool): Likewise.
> 	(gt_ggc_m_S): Remove.
> 	* ggc-common.c (ggc_protect_identifiers): New global.
> 	(ggc_mark_roots): Call ggc_purge_stringpool.  Use
> 	ggc_protect_identifiers.
> 	* ggc.h (ggc_protect_identifiers): Declare.
> 	(gt_ggc_m_S): Update.
> 	(ggc_purge_stringpool): Declare.
> 	* toplev.c (compile_file): Set and reset ggc_protect_identifiers.
> 	* gengtype.c (write_types_process_field) <TYPE_STRING>: Remove
> 	special case.
> 	(write_root): Cast gt_ggc_m_S to gt_pointer_walker.
>
> gcc/cp/ChangeLog:
> 2008-05-20  Tom Tromey  <tromey@redhat.com>
>
> 	* mangle.c (save_partially_mangled_name): Remove.
> 	(restore_partially_mangled_name): Likewise.
> 	(write_encoding): Update.
> 	(write_unqualified_name): Likewise.
> 	(start_mangling): Always use name_obstack.  Remove 'ident_p'
> 	argument.
> 	(get_identifier_nocopy): Remove.
> 	(finish_mangling_internal): Rename from finish_mangling.
> 	(finish_mangling): New function.
> 	(finish_mangling_get_identifier): Likewise.
> 	(partially_mangled_name, partially_mangled_name_len): Remove.
> 	(mangle_decl_string): Change return type.  Update.
> 	(mangle_decl, mangle_type_string, mangle_special_for_type,
> 	mangle_ctor_vtbl_for_type, mangle_thunk, mangle_guard_variable,
> 	mangle_ref_init_variable): Update.


This is OK.

Thanks.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]