This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch: identifier GC, take 2
- From: Ian Lance Taylor <iant at google dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: Gcc Patch List <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 21 May 2008 07:47:58 -0700
- Subject: Re: Patch: identifier GC, take 2
- References: <m31w5lw2j6.fsf@fleche.redhat.com> <m34p925ksx.fsf@google.com> <m38wy4u7xs.fsf@fleche.redhat.com>
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