mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-15 15:21:24 +08:00
Fix --enable-gather-detailed-mem-stats.
* hash-table.c (hash_table_usage): Change from variable to function. * hash-table.h: Adjust. * Makefile.in: Add missing dependencies on hash-table.h. From-SVN: r264313
This commit is contained in:
parent
115b470829
commit
d604907d64
@ -1,3 +1,10 @@
|
||||
2018-09-14 Jason Merrill <jason@redhat.com>
|
||||
|
||||
Fix --enable-gather-detailed-mem-stats.
|
||||
* hash-table.c (hash_table_usage): Change from variable to function.
|
||||
* hash-table.h: Adjust.
|
||||
* Makefile.in: Add missing dependencies on hash-table.h.
|
||||
|
||||
2018-09-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
PR tree-optimization/87259
|
||||
|
@ -2665,7 +2665,7 @@ build/version.o: version.c version.h \
|
||||
build/errors.o : errors.c $(BCONFIG_H) $(SYSTEM_H) errors.h
|
||||
build/gensupport.o: gensupport.c $(BCONFIG_H) $(SYSTEM_H) \
|
||||
$(CORETYPES_H) $(GTM_H) $(RTL_BASE_H) $(OBSTACK_H) errors.h \
|
||||
$(HASHTAB_H) $(READ_MD_H) $(GENSUPPORT_H)
|
||||
$(HASHTAB_H) $(READ_MD_H) $(GENSUPPORT_H) $(HASH_TABLE_H)
|
||||
build/ggc-none.o : ggc-none.c $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \
|
||||
$(GGC_H)
|
||||
build/min-insn-modes.o : min-insn-modes.c $(BCONFIG_H) $(SYSTEM_H) \
|
||||
@ -2680,7 +2680,7 @@ build/read-rtl.o: read-rtl.c $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) \
|
||||
build/rtl.o: rtl.c $(BCONFIG_H) $(CORETYPES_H) $(GTM_H) $(SYSTEM_H) \
|
||||
$(RTL_H) $(GGC_H) errors.h
|
||||
build/vec.o : vec.c $(BCONFIG_H) $(SYSTEM_H) $(CORETYPES_H) $(VEC_H) \
|
||||
$(GGC_H) toplev.h $(DIAGNOSTIC_CORE_H)
|
||||
$(GGC_H) toplev.h $(DIAGNOSTIC_CORE_H) $(HASH_TABLE_H)
|
||||
build/hash-table.o : hash-table.c $(BCONFIG_H) $(SYSTEM_H) \
|
||||
$(CORETYPES_H) $(HASH_TABLE_H) $(GGC_H) toplev.h $(DIAGNOSTIC_CORE_H)
|
||||
build/sort.o : sort.cc $(BCONFIG_H) $(SYSTEM_H)
|
||||
|
@ -98,7 +98,16 @@ hash_table_higher_prime_index (unsigned long n)
|
||||
return low;
|
||||
}
|
||||
|
||||
mem_alloc_description<mem_usage> hash_table_usage;
|
||||
/* Return a reference to the lazily initialized hash-table usage description.
|
||||
This needs to be a function rather than a simple global variable so that it
|
||||
is reliably initialized before hash table variables in other files such as
|
||||
sem_item::m_type_hash_cache. */
|
||||
mem_alloc_description<mem_usage>&
|
||||
hash_table_usage ()
|
||||
{
|
||||
static mem_alloc_description<mem_usage> usage;
|
||||
return usage;
|
||||
}
|
||||
|
||||
/* Support function for statistics. */
|
||||
void dump_hash_table_loc_statistics (void)
|
||||
@ -109,7 +118,6 @@ void dump_hash_table_loc_statistics (void)
|
||||
for (unsigned i = HASH_TABLE_ORIGIN; i <= HASH_SET_ORIGIN; i++)
|
||||
{
|
||||
mem_alloc_origin origin = (mem_alloc_origin) i;
|
||||
hash_table_usage.dump (origin);
|
||||
hash_table_usage ().dump (origin);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -561,7 +561,7 @@ private:
|
||||
#include "mem-stats.h"
|
||||
#include "hash-map.h"
|
||||
|
||||
extern mem_alloc_description<mem_usage> hash_table_usage;
|
||||
extern mem_alloc_description<mem_usage>& hash_table_usage (void);
|
||||
|
||||
/* Support function for statistics. */
|
||||
extern void dump_hash_table_loc_statistics (void);
|
||||
@ -580,7 +580,7 @@ hash_table<Descriptor, Allocator>::hash_table (size_t size, bool ggc, bool
|
||||
size = prime_tab[size_prime_index].prime;
|
||||
|
||||
if (m_gather_mem_stats)
|
||||
hash_table_usage.register_descriptor (this, origin, ggc
|
||||
hash_table_usage ().register_descriptor (this, origin, ggc
|
||||
FINAL_PASS_MEM_STAT);
|
||||
|
||||
m_entries = alloc_entries (size PASS_MEM_STAT);
|
||||
@ -600,7 +600,7 @@ hash_table<Descriptor, Allocator>::hash_table (const hash_table &h, bool ggc,
|
||||
size_t size = h.m_size;
|
||||
|
||||
if (m_gather_mem_stats)
|
||||
hash_table_usage.register_descriptor (this, origin, ggc
|
||||
hash_table_usage ().register_descriptor (this, origin, ggc
|
||||
FINAL_PASS_MEM_STAT);
|
||||
|
||||
value_type *nentries = alloc_entries (size PASS_MEM_STAT);
|
||||
@ -630,7 +630,7 @@ hash_table<Descriptor, Allocator>::~hash_table ()
|
||||
ggc_free (m_entries);
|
||||
|
||||
if (m_gather_mem_stats)
|
||||
hash_table_usage.release_instance_overhead (this,
|
||||
hash_table_usage ().release_instance_overhead (this,
|
||||
sizeof (value_type) * m_size,
|
||||
true);
|
||||
}
|
||||
@ -644,7 +644,7 @@ hash_table<Descriptor, Allocator>::alloc_entries (size_t n MEM_STAT_DECL) const
|
||||
value_type *nentries;
|
||||
|
||||
if (m_gather_mem_stats)
|
||||
hash_table_usage.register_instance_overhead (sizeof (value_type) * n, this);
|
||||
hash_table_usage ().register_instance_overhead (sizeof (value_type) * n, this);
|
||||
|
||||
if (!m_ggc)
|
||||
nentries = Allocator <value_type> ::data_alloc (n);
|
||||
@ -736,7 +736,7 @@ hash_table<Descriptor, Allocator>::expand ()
|
||||
value_type *nentries = alloc_entries (nsize);
|
||||
|
||||
if (m_gather_mem_stats)
|
||||
hash_table_usage.release_instance_overhead (this, sizeof (value_type)
|
||||
hash_table_usage ().release_instance_overhead (this, sizeof (value_type)
|
||||
* osize);
|
||||
|
||||
m_entries = nentries;
|
||||
|
Loading…
x
Reference in New Issue
Block a user