aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2015-06-25 17:07:01 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2015-06-25 17:07:01 +0000
commit4c1177e161e329b741e7b5ae55950fe65dfc8df5 (patch)
treebb67e870ff653ec7597c71fa8cc275fcacbb2c25 /gcc
parent7edd9b154d9f03c1006722aff36caa0955198c31 (diff)
downloadgcc-4c1177e161e329b741e7b5ae55950fe65dfc8df5.zip
gcc-4c1177e161e329b741e7b5ae55950fe65dfc8df5.tar.gz
gcc-4c1177e161e329b741e7b5ae55950fe65dfc8df5.tar.bz2
hash-table.h (has_is_deleted, [...]): Delete.
gcc/ * hash-table.h (has_is_deleted, is_deleted_helper): Delete. (has_is_empty, is_empty_helper): Delete. (has_mark_deleted, mark_deleted_helper): Delete. (has_mark_empty, mark_empty_helper): Delete. (hash_table::is_deleted): Call the Descriptor unconditionally. (hash_table::is_empty): Likewise. (hash_table::mark_deleted): Likewise. (hash_table::mark_empty): Likewise. From-SVN: r224962
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog11
-rw-r--r--gcc/hash-table.h141
2 files changed, 24 insertions, 128 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 27bbec5..3a7e1b0 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,16 @@
2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+ * hash-table.h (has_is_deleted, is_deleted_helper): Delete.
+ (has_is_empty, is_empty_helper): Delete.
+ (has_mark_deleted, mark_deleted_helper): Delete.
+ (has_mark_empty, mark_empty_helper): Delete.
+ (hash_table::is_deleted): Call the Descriptor unconditionally.
+ (hash_table::is_empty): Likewise.
+ (hash_table::mark_deleted): Likewise.
+ (hash_table::mark_empty): Likewise.
+
+2015-06-25 Richard Sandiford <richard.sandiford@arm.com>
+
* cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash. Remove
redundant typedefs and members.
* coverage.c (counts_entry): Inherit from pointer_hash. Remove
diff --git a/gcc/hash-table.h b/gcc/hash-table.h
index 5f3dbed..6188453 100644
--- a/gcc/hash-table.h
+++ b/gcc/hash-table.h
@@ -323,122 +323,6 @@ hash_table_mod2 (hashval_t hash, unsigned int index)
return 1 + mul_mod (hash, p->prime - 2, p->inv_m2, p->shift);
}
- template<typename Traits>
- struct has_is_deleted
-{
- template<typename U, bool (*)(U &)> struct helper {};
- template<typename U> static char test (helper<U, U::is_deleted> *);
- template<typename U> static int test (...);
- static const bool value = sizeof (test<Traits> (0)) == sizeof (char);
-};
-
-template<typename Type, typename Traits, bool = has_is_deleted<Traits>::value>
-struct is_deleted_helper
-{
- static inline bool
- call (Type &v)
- {
- return Traits::is_deleted (v);
- }
-};
-
-template<typename Type, typename Traits>
-struct is_deleted_helper<Type *, Traits, false>
-{
- static inline bool
- call (Type *v)
- {
- return v == HTAB_DELETED_ENTRY;
- }
-};
-
- template<typename Traits>
- struct has_is_empty
-{
- template<typename U, bool (*)(U &)> struct helper {};
- template<typename U> static char test (helper<U, U::is_empty> *);
- template<typename U> static int test (...);
- static const bool value = sizeof (test<Traits> (0)) == sizeof (char);
-};
-
-template<typename Type, typename Traits, bool = has_is_deleted<Traits>::value>
-struct is_empty_helper
-{
- static inline bool
- call (Type &v)
- {
- return Traits::is_empty (v);
- }
-};
-
-template<typename Type, typename Traits>
-struct is_empty_helper<Type *, Traits, false>
-{
- static inline bool
- call (Type *v)
- {
- return v == HTAB_EMPTY_ENTRY;
- }
-};
-
- template<typename Traits>
- struct has_mark_deleted
-{
- template<typename U, void (*)(U &)> struct helper {};
- template<typename U> static char test (helper<U, U::mark_deleted> *);
- template<typename U> static int test (...);
- static const bool value = sizeof (test<Traits> (0)) == sizeof (char);
-};
-
-template<typename Type, typename Traits, bool = has_is_deleted<Traits>::value>
-struct mark_deleted_helper
-{
- static inline void
- call (Type &v)
- {
- Traits::mark_deleted (v);
- }
-};
-
-template<typename Type, typename Traits>
-struct mark_deleted_helper<Type *, Traits, false>
-{
- static inline void
- call (Type *&v)
- {
- v = static_cast<Type *> (HTAB_DELETED_ENTRY);
- }
-};
-
- template<typename Traits>
- struct has_mark_empty
-{
- template<typename U, void (*)(U &)> struct helper {};
- template<typename U> static char test (helper<U, U::mark_empty> *);
- template<typename U> static int test (...);
- static const bool value = sizeof (test<Traits> (0)) == sizeof (char);
-};
-
-template<typename Type, typename Traits, bool = has_is_deleted<Traits>::value>
-struct mark_empty_helper
-{
- static inline void
- call (Type &v)
- {
- Traits::mark_empty (v);
- }
-};
-
-template<typename Type, typename Traits>
-struct mark_empty_helper<Type *, Traits, false>
-{
- static inline void
- call (Type *&v)
- {
- v = static_cast<Type *> (HTAB_EMPTY_ENTRY);
- }
-};
-
class mem_usage;
/* User-facing hash table type.
@@ -610,23 +494,24 @@ private:
value_type *find_empty_slot_for_expand (hashval_t);
void expand ();
static bool is_deleted (value_type &v)
- {
- return is_deleted_helper<value_type, Descriptor>::call (v);
- }
+ {
+ return Descriptor::is_deleted (v);
+ }
+
static bool is_empty (value_type &v)
- {
- return is_empty_helper<value_type, Descriptor>::call (v);
- }
+ {
+ return Descriptor::is_empty (v);
+ }
static void mark_deleted (value_type &v)
- {
- return mark_deleted_helper<value_type, Descriptor>::call (v);
- }
+ {
+ Descriptor::mark_deleted (v);
+ }
static void mark_empty (value_type &v)
- {
- return mark_empty_helper<value_type, Descriptor>::call (v);
- }
+ {
+ Descriptor::mark_empty (v);
+ }
/* Table itself. */
typename Descriptor::value_type *m_entries;