aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorTrevor Saunders <tsaunders@mozilla.com>2014-06-24 13:21:53 +0000
committerTrevor Saunders <tbsaunde@gcc.gnu.org>2014-06-24 13:21:53 +0000
commit84baa4b968f2dbf4e85e49dba9215ad0f0f3ddc8 (patch)
tree8527b8e2f9f9bb9c3a525567a8e393965e2ad66c /gcc/tree-into-ssa.c
parentc203e8a73b2f12a1da52a16a0c4a50e62b42445b (diff)
downloadgcc-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.c13
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;
}