hash-table.h (has_is_deleted, [...]): Delete.
authorRichard Sandiford <richard.sandiford@arm.com>
Thu, 25 Jun 2015 17:07:01 +0000 (17:07 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 25 Jun 2015 17:07:01 +0000 (17:07 +0000)
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

gcc/ChangeLog
gcc/hash-table.h

index 27bbec5..3a7e1b0 100644 (file)
@@ -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
index 5f3dbed..6188453 100644 (file)
@@ -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;