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-complex.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-complex.c')
-rw-r--r-- | gcc/tree-complex.c | 16 |
1 files changed, 7 insertions, 9 deletions
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c index 7b0115d..3ed403a 100644 --- a/gcc/tree-complex.c +++ b/gcc/tree-complex.c @@ -83,10 +83,9 @@ static vec<tree> complex_ssa_name_components; static tree cvc_lookup (unsigned int uid) { - struct int_tree_map *h, in; + struct int_tree_map in; in.uid = uid; - h = complex_variable_components->find_with_hash (&in, uid); - return h ? h->to : NULL; + return complex_variable_components->find_with_hash (in, uid).to; } /* Insert the pair UID, TO into the complex_variable_components hashtable. */ @@ -94,14 +93,13 @@ cvc_lookup (unsigned int uid) static void cvc_insert (unsigned int uid, tree to) { - struct int_tree_map *h; - int_tree_map **loc; + int_tree_map h; + int_tree_map *loc; - h = XNEW (struct int_tree_map); - h->uid = uid; - h->to = to; + h.uid = uid; loc = complex_variable_components->find_slot_with_hash (h, uid, INSERT); - *loc = h; + loc->uid = uid; + loc->to = to; } /* Return true if T is not a zero constant. In the case of real values, |