25template <
typename Type>
31template <
typename Type>
34 static inline void remove (
const Type *p);
39template <
typename Type>
46template <
typename Type>
50 free (
const_cast <Type *
> (p));
55template <
typename Type>
64template <
typename Type>
73template <
typename Type>
82template <
typename Type>
91template <
typename Type>
101template <
typename Type>
108template <
typename Type>
120template <
typename Type, Type Empty, Type Deleted = Empty>
133template <
typename Type, Type Empty, Type Deleted>
141template <
typename Type, Type Empty, Type Deleted>
148template <
typename Type, Type Empty, Type Deleted>
152 return Empty != Deleted && x == Deleted;
155template <
typename Type, Type Empty, Type Deleted>
166template <
typename Type>
182template <
typename Type>
188 return (hashval_t) ((intptr_t)
candidate >> 3);
191template <
typename Type>
199template <
typename Type>
203 e =
reinterpret_cast<Type *
> (1);
206template <
typename Type>
213template <
typename Type>
217 return e ==
reinterpret_cast<Type *
> (1);
220template <
typename Type>
232 static inline hashval_t
hash (
const char *);
233 static inline bool equal (
const char *,
const char *);
239 return htab_hash_string (
id);
245 return strcmp (id1, id2) == 0;
279 op (&p,
NULL, cookie);
343template <
typename T1,
typename T2>
346 typedef std::pair <
typename T1::value_type,
348 typedef std::pair <
typename T1::compare_type,
361template <
typename T1,
typename T2>
368template <
typename T1,
typename T2>
372 return T1::equal (x.first,
y.first) && T2::equal (x.second,
y.second);
375template <
typename T1,
typename T2>
379 T1::remove (x.first);
380 T2::remove (x.second);
383template <
typename T1,
typename T2>
387 T1::mark_deleted (x.first);
390template <
typename T1,
typename T2>
394 T1::mark_empty (x.first);
397template <
typename T1,
typename T2>
401 return T1::is_deleted (x.first);
404template <
typename T1,
typename T2>
408 return T1::is_empty (x.first);
415template <
typename Type>
425template <
typename Type>
431 for (
auto &value : x)
433 return hstate.
end ();
436template <
typename Type>
440 if (x.length () !=
y.length ())
442 for (
unsigned int i = 0;
i < x.length (); ++
i)
443 if (!Type::equal (x[
i],
y[
i]))
450template <
typename Type>
456template <
typename Type>
458vec_free_hash_base <Type>
461 for (
auto &value : x)
void gt_pch_nx(bbitmap< N > *)
Definition bbitmap.h:226
void gt_ggc_mx(bbitmap< N > *)
Definition bbitmap.h:220
void add_int(unsigned v)
Definition inchash.h:55
hashval_t end() const
Definition inchash.h:49
void merge_hash(hashval_t other)
Definition inchash.h:106
void(* gt_pointer_operator)(void *, void *, void *)
Definition coretypes.h:473
bool ggc_marked_p(const void *p)
Definition ggc-page.cc:1581
hashval_t iterative_hash_hashval_t(hashval_t, hashval_t)
Definition inchash.h:178
i
Definition poly-int.h:776
Definition hash-traits.h:466
Definition hash-traits.h:315
Definition hash-traits.h:309
Definition hash-traits.h:333
Definition hash-traits.h:328
Definition hash-traits.h:288
static int keep_cache_entry(T &e)
Definition hash-traits.h:293
static void ggc_maybe_mx(T &)
Definition hash-traits.h:290
Definition hash-traits.h:321
Definition hash-traits.h:252
static void ggc_maybe_mx(T &p)
Definition hash-traits.h:264
static void pch_nx(T &p, gt_pointer_operator op, void *cookie)
Definition hash-traits.h:277
static void ggc_mx(T &p)
Definition hash-traits.h:256
static void pch_nx(T &p)
Definition hash-traits.h:270
static void remove(T &)
Definition hash-traits.h:253
Definition hash-traits.h:93
static hashval_t hash(value_type)
Definition hash-traits.h:103
Type value_type
Definition hash-traits.h:94
static bool equal(value_type existing, value_type candidate)
Definition hash-traits.h:110
Type compare_type
Definition hash-traits.h:95
Definition hash-traits.h:122
static bool is_deleted(Type)
Definition hash-traits.h:150
static const bool empty_zero_p
Definition hash-traits.h:127
static bool is_empty(Type)
Definition hash-traits.h:157
Type compare_type
Definition hash-traits.h:124
Type value_type
Definition hash-traits.h:123
static void mark_empty(Type &)
Definition hash-traits.h:143
static void mark_deleted(Type &)
Definition hash-traits.h:135
Definition hash-traits.h:303
Definition hash-traits.h:338
Definition hash-traits.h:345
static void mark_empty(value_type &)
Definition hash-traits.h:392
static void mark_deleted(value_type &)
Definition hash-traits.h:385
static bool is_empty(const value_type &)
Definition hash-traits.h:406
static bool is_deleted(const value_type &)
Definition hash-traits.h:399
std::pair< typename T1::compare_type, typename T2::compare_type > compare_type
Definition hash-traits.h:349
static const bool empty_zero_p
Definition hash-traits.h:355
static bool equal(const value_type &, const compare_type &)
Definition hash-traits.h:370
static void remove(value_type &)
Definition hash-traits.h:377
std::pair< typename T1::value_type, typename T2::value_type > value_type
Definition hash-traits.h:347
static hashval_t hash(const value_type &)
Definition hash-traits.h:363
Definition hash-traits.h:168
static bool equal(const value_type &existing, const compare_type &candidate)
Definition hash-traits.h:193
Type * value_type
Definition hash-traits.h:169
static bool is_empty(Type *)
Definition hash-traits.h:222
static void mark_empty(Type *&)
Definition hash-traits.h:208
static bool is_deleted(Type *)
Definition hash-traits.h:215
static void mark_deleted(Type *&)
Definition hash-traits.h:201
static const bool empty_zero_p
Definition hash-traits.h:176
Type * compare_type
Definition hash-traits.h:170
static hashval_t hash(const value_type &)
Definition hash-traits.h:184
Definition hash-traits.h:231
static hashval_t hash(const char *)
Definition hash-traits.h:237
static bool equal(const char *, const char *)
Definition hash-traits.h:243
Definition hash-traits.h:33
static void remove(const Type *p)
Definition hash-traits.h:48
Definition hash-traits.h:57
static void remove(Type *p)
Definition hash-traits.h:66
Definition hash-traits.h:27
static void remove(Type *p)
Definition hash-traits.h:41
Definition hash-traits.h:75
static void remove(Type &)
Definition hash-traits.h:84
Definition hash-traits.h:452
static void remove(typename vec_hash_base< Type >::value_type &)
Definition hash-traits.h:459
Definition hash-traits.h:417
static bool equal(value_type, compare_type)
Definition hash-traits.h:438
vec< typename Type::value_type > value_type
Definition hash-traits.h:418
vec< typename Type::compare_type > compare_type
Definition hash-traits.h:419
static hashval_t hash(value_type)
Definition hash-traits.h:427
#define NULL
Definition system.h:50
#define gcc_assert(EXPR)
Definition system.h:814
static tree candidate(unsigned uid)
Definition tree-sra.cc:325
const T2 & y
Definition wide-int.h:3870