summaryrefslogtreecommitdiff
path: root/gcc/hash-table.h
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2015-04-13 08:37:56 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2015-04-13 06:37:56 +0000
commit61ebff31f4524ebc18dcf53d2fffab0fa1ba5ef3 (patch)
treeb5c31e91c73b5e8383fa0ce4679cf70f4173c529 /gcc/hash-table.h
parent31b2793874585acdcc7dafb85f3e6dc04eedef90 (diff)
hash-table.h (hash_table constructor): Add mem stats.
* hash-table.h (hash_table constructor): Add mem stats. (alloc_entries): Likewise. From-SVN: r222039
Diffstat (limited to 'gcc/hash-table.h')
-rw-r--r--gcc/hash-table.h19
1 files changed, 11 insertions, 8 deletions
diff --git a/gcc/hash-table.h b/gcc/hash-table.h
index f201c89633c..447eaff1b1c 100644
--- a/gcc/hash-table.h
+++ b/gcc/hash-table.h
@@ -615,7 +615,7 @@ class hash_table<Descriptor, Allocator, false>
typedef typename Descriptor::compare_type compare_type;
public:
- hash_table (size_t);
+ hash_table (size_t CXX_MEM_STAT_INFO);
~hash_table ();
/* Current size (in entries) of the hash table. */
@@ -751,7 +751,8 @@ private:
};
template<typename Descriptor, template<typename Type> class Allocator>
-hash_table<Descriptor, Allocator, false>::hash_table (size_t size) :
+hash_table<Descriptor, Allocator, false>::hash_table (size_t size
+ MEM_STAT_DECL) :
m_n_elements (0), m_n_deleted (0), m_searches (0), m_collisions (0)
{
unsigned int size_prime_index;
@@ -1116,7 +1117,7 @@ class hash_table<Descriptor, Allocator, true>
typedef typename Descriptor::compare_type compare_type;
public:
- explicit hash_table (size_t, bool ggc = false);
+ explicit hash_table (size_t, bool ggc = false CXX_MEM_STAT_INFO);
~hash_table ();
/* Create a hash_table in gc memory. */
@@ -1245,7 +1246,7 @@ private:
template<typename T> friend void gt_pch_nx (hash_table<T> *,
gt_pointer_operator, void *);
- value_type *alloc_entries (size_t n) const;
+ value_type *alloc_entries (size_t n CXX_MEM_STAT_INFO) const;
value_type *find_empty_slot_for_expand (hashval_t);
void expand ();
static bool is_deleted (value_type &v)
@@ -1295,7 +1296,8 @@ private:
};
template<typename Descriptor, template<typename Type> class Allocator>
-hash_table<Descriptor, Allocator, true>::hash_table (size_t size, bool ggc) :
+hash_table<Descriptor, Allocator, true>::hash_table (size_t size, bool ggc
+ MEM_STAT_DECL) :
m_n_elements (0), m_n_deleted (0), m_searches (0), m_collisions (0),
m_ggc (ggc)
{
@@ -1304,7 +1306,7 @@ hash_table<Descriptor, Allocator, true>::hash_table (size_t size, bool ggc) :
size_prime_index = hash_table_higher_prime_index (size);
size = prime_tab[size_prime_index].prime;
- m_entries = alloc_entries (size);
+ m_entries = alloc_entries (size PASS_MEM_STAT);
m_size = size;
m_size_prime_index = size_prime_index;
}
@@ -1326,14 +1328,15 @@ hash_table<Descriptor, Allocator, true>::~hash_table ()
template<typename Descriptor, template<typename Type> class Allocator>
inline typename hash_table<Descriptor, Allocator, true>::value_type *
-hash_table<Descriptor, Allocator, true>::alloc_entries (size_t n) const
+hash_table<Descriptor, Allocator, true>::alloc_entries
+ (size_t n MEM_STAT_DECL) const
{
value_type *nentries;
if (!m_ggc)
nentries = Allocator <value_type> ::data_alloc (n);
else
- nentries = ::ggc_cleared_vec_alloc<value_type> (n);
+ nentries = ::ggc_cleared_vec_alloc<value_type> (n PASS_MEM_STAT);
gcc_assert (nentries != NULL);
for (size_t i = 0; i < n; i++)