diff options
author | Trevor Saunders <tsaunders@mozilla.com> | 2014-06-24 13:21:53 +0000 |
---|---|---|
committer | Trevor Saunders <tbsaunde@gcc.gnu.org> | 2014-06-24 13:21:53 +0000 |
commit | 84baa4b968f2dbf4e85e49dba9215ad0f0f3ddc8 (patch) | |
tree | 8527b8e2f9f9bb9c3a525567a8e393965e2ad66c /gcc/tree-into-ssa.c | |
parent | c203e8a73b2f12a1da52a16a0c4a50e62b42445b (diff) | |
download | gcc-84baa4b968f2dbf4e85e49dba9215ad0f0f3ddc8.zip gcc-84baa4b968f2dbf4e85e49dba9215ad0f0f3ddc8.tar.gz gcc-84baa4b968f2dbf4e85e49dba9215ad0f0f3ddc8.tar.bz2 |
allow storing values directly in hash tables
gcc/
* hash-table.h: Add a template arg to choose between storing values
and storing pointers to values, and then provide partial
specializations for both.
* tree-browser.c (tree_upper_hasher): Provide the type the hash table
should store, not the type values should point to.
* tree-into-ssa.c (var_info_hasher): Likewise.
* tree-ssa-dom.c (expr_elt_hasher): Likewise.
* tree-complex.c: Adjust.
* tree-hasher.h (int_tree_hasher): store int_tree_map in the hash
table instead of int_tree_map *.
* tree-parloops.c: Adjust.
* tree-ssa-reassoc.c (ocount_hasher): Don't lie to hash_map about what
type is being stored.
* tree-vectorizer.c: Adjust.
From-SVN: r211937
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r-- | gcc/tree-into-ssa.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c index 1cdcc2f..96255f9 100644 --- a/gcc/tree-into-ssa.c +++ b/gcc/tree-into-ssa.c @@ -203,20 +203,21 @@ typedef struct var_info_d *var_info_p; struct var_info_hasher : typed_free_remove <var_info_d> { - typedef var_info_d value_type; - typedef var_info_d compare_type; - static inline hashval_t hash (const value_type *); - static inline bool equal (const value_type *, const compare_type *); + typedef var_info_d *value_type; + typedef var_info_d *compare_type; + typedef int store_values_directly; + static inline hashval_t hash (const value_type &); + static inline bool equal (const value_type &, const compare_type &); }; inline hashval_t -var_info_hasher::hash (const value_type *p) +var_info_hasher::hash (const value_type &p) { return DECL_UID (p->var); } inline bool -var_info_hasher::equal (const value_type *p1, const compare_type *p2) +var_info_hasher::equal (const value_type &p1, const compare_type &p2) { return p1->var == p2->var; } |