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-browser.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-browser.c')
-rw-r--r-- | gcc/tree-browser.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/gcc/tree-browser.c b/gcc/tree-browser.c index 8c03550..2a4db1b 100644 --- a/gcc/tree-browser.c +++ b/gcc/tree-browser.c @@ -102,22 +102,13 @@ static tree TB_history_prev (void); void browse_tree (tree); /* Hashtable helpers. */ -struct tree_upper_hasher : typed_noop_remove <tree_node> +struct tree_upper_hasher : pointer_hash<tree_node> { - typedef tree_node value_type; - typedef tree_node compare_type; - static inline hashval_t hash (const value_type *); - static inline bool equal (const value_type *, const compare_type *); + static inline bool equal (const value_type &, const compare_type &); }; -inline hashval_t -tree_upper_hasher::hash (const value_type *v) -{ - return pointer_hash <value_type>::hash (v); -} - inline bool -tree_upper_hasher::equal (const value_type *parent, const compare_type *node) +tree_upper_hasher::equal (const value_type &parent, const compare_type &node) { if (parent == NULL || node == NULL) return 0; |