mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-03-01 13:26:47 +08:00
* dwarf2read.c (macro_start_file): Update.
* objfiles.c (get_objfile_bfd_data): Initialize macro_cache. (free_objfile_per_bfd_storage): Destroy macro_cache. (allocate_objfile, free_objfile): Update. * objfiles.h (struct objfile_per_bfd_storage) <macro_cache>: New field. (struct objfile) <macro_cache>: Remove. * symfile.c (reread_symbols): Update. * symmisc.c (print_symbol_bcache_statistics): Update. (print_objfile_statistics): Update.
This commit is contained in:
parent
706e37059f
commit
6532ff3697
@ -1,3 +1,16 @@
|
||||
2012-08-22 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* dwarf2read.c (macro_start_file): Update.
|
||||
* objfiles.c (get_objfile_bfd_data): Initialize macro_cache.
|
||||
(free_objfile_per_bfd_storage): Destroy macro_cache.
|
||||
(allocate_objfile, free_objfile): Update.
|
||||
* objfiles.h (struct objfile_per_bfd_storage) <macro_cache>:
|
||||
New field.
|
||||
(struct objfile) <macro_cache>: Remove.
|
||||
* symfile.c (reread_symbols): Update.
|
||||
* symmisc.c (print_symbol_bcache_statistics): Update.
|
||||
(print_objfile_statistics): Update.
|
||||
|
||||
2012-08-22 Tom Tromey <tromey@redhat.com>
|
||||
|
||||
* elfread.c (elf_symtab_read): Update.
|
||||
|
@ -17082,8 +17082,8 @@ macro_start_file (int file, int line,
|
||||
/* We don't create a macro table for this compilation unit
|
||||
at all until we actually get a filename. */
|
||||
if (! pending_macros)
|
||||
pending_macros = new_macro_table (&objfile->objfile_obstack,
|
||||
objfile->macro_cache);
|
||||
pending_macros = new_macro_table (&objfile->per_bfd->storage_obstack,
|
||||
objfile->per_bfd->macro_cache);
|
||||
|
||||
if (! current_file)
|
||||
{
|
||||
|
@ -141,6 +141,7 @@ get_objfile_bfd_data (struct objfile *objfile, struct bfd *abfd)
|
||||
|
||||
obstack_init (&storage->storage_obstack);
|
||||
storage->filename_cache = bcache_xmalloc (NULL, NULL);
|
||||
storage->macro_cache = bcache_xmalloc (NULL, NULL);
|
||||
}
|
||||
|
||||
return storage;
|
||||
@ -152,6 +153,7 @@ static void
|
||||
free_objfile_per_bfd_storage (struct objfile_per_bfd_storage *storage)
|
||||
{
|
||||
bcache_xfree (storage->filename_cache);
|
||||
bcache_xfree (storage->macro_cache);
|
||||
obstack_free (&storage->storage_obstack, 0);
|
||||
}
|
||||
|
||||
@ -251,7 +253,6 @@ allocate_objfile (bfd *abfd, int flags)
|
||||
|
||||
objfile = (struct objfile *) xzalloc (sizeof (struct objfile));
|
||||
objfile->psymbol_cache = psymbol_bcache_init ();
|
||||
objfile->macro_cache = bcache_xmalloc (NULL, NULL);
|
||||
/* We could use obstack_specify_allocation here instead, but
|
||||
gdb_obstack.h specifies the alloc/dealloc functions. */
|
||||
obstack_init (&objfile->objfile_obstack);
|
||||
@ -676,7 +677,6 @@ free_objfile (struct objfile *objfile)
|
||||
xfree (objfile->static_psymbols.list);
|
||||
/* Free the obstacks for non-reusable objfiles. */
|
||||
psymbol_bcache_free (objfile->psymbol_cache);
|
||||
bcache_xfree (objfile->macro_cache);
|
||||
if (objfile->demangled_names_hash)
|
||||
htab_delete (objfile->demangled_names_hash);
|
||||
obstack_free (&objfile->objfile_obstack, 0);
|
||||
|
@ -174,6 +174,9 @@ struct objfile_per_bfd_storage
|
||||
/* Byte cache for file names. */
|
||||
|
||||
struct bcache *filename_cache;
|
||||
|
||||
/* Byte cache for macros. */
|
||||
struct bcache *macro_cache;
|
||||
};
|
||||
|
||||
/* Master structure for keeping track of each file from which
|
||||
@ -269,7 +272,6 @@ struct objfile
|
||||
will not change. */
|
||||
|
||||
struct psymbol_bcache *psymbol_cache; /* Byte cache for partial syms. */
|
||||
struct bcache *macro_cache; /* Byte cache for macros. */
|
||||
|
||||
/* Hash table for mapping symbol names to demangled names. Each
|
||||
entry in the hash table is actually two consecutive strings,
|
||||
|
@ -2548,8 +2548,6 @@ reread_symbols (void)
|
||||
/* Free the obstacks for non-reusable objfiles. */
|
||||
psymbol_bcache_free (objfile->psymbol_cache);
|
||||
objfile->psymbol_cache = psymbol_bcache_init ();
|
||||
bcache_xfree (objfile->macro_cache);
|
||||
objfile->macro_cache = bcache_xmalloc (NULL, NULL);
|
||||
if (objfile->demangled_names_hash != NULL)
|
||||
{
|
||||
htab_delete (objfile->demangled_names_hash);
|
||||
|
@ -92,7 +92,8 @@ print_symbol_bcache_statistics (void)
|
||||
printf_filtered (_("Byte cache statistics for '%s':\n"), objfile->name);
|
||||
print_bcache_statistics (psymbol_bcache_get_bcache (objfile->psymbol_cache),
|
||||
"partial symbol cache");
|
||||
print_bcache_statistics (objfile->macro_cache, "preprocessor macro cache");
|
||||
print_bcache_statistics (objfile->per_bfd->macro_cache,
|
||||
"preprocessor macro cache");
|
||||
print_bcache_statistics (objfile->per_bfd->filename_cache,
|
||||
"file name cache");
|
||||
}
|
||||
@ -154,7 +155,7 @@ print_objfile_statistics (void)
|
||||
bcache_memory_used (psymbol_bcache_get_bcache
|
||||
(objfile->psymbol_cache)));
|
||||
printf_filtered (_(" Total memory used for macro cache: %d\n"),
|
||||
bcache_memory_used (objfile->macro_cache));
|
||||
bcache_memory_used (objfile->per_bfd->macro_cache));
|
||||
printf_filtered (_(" Total memory used for file name cache: %d\n"),
|
||||
bcache_memory_used (objfile->per_bfd->filename_cache));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user