]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/tree-ssa-sccvn.h
This patch extracts approved portions of the hash_table patches to the...
authorLawrence Crowl <crowl@google.com>
Tue, 23 Apr 2013 22:00:12 +0000 (22:00 +0000)
committerLawrence Crowl <crowl@gcc.gnu.org>
Tue, 23 Apr 2013 22:00:12 +0000 (22:00 +0000)
commitbf190e8df270025e2d0729858c031eb4ef7d49d2
treefd9e547e6ac26ffd9c7200538fb2582c9ab2c3dc
parent4a8043c4e02c8c2517424722ba3055a159b93e87
This patch extracts approved portions of the hash_table patches to the...

This patch extracts approved portions of the hash_table patches to
the cxx-conversion branch for files not under gcc/config.

Update various hash tables from htab_t to hash_table.
Modify types and calls to match.

* tree-ssa-coalesce.c'coalesce_list_d.list from htab_t to hash_table.

Fold coalesce_pair_map_hash and coalesce_pair_map_eq into new
struct coalesce_pair_hasher.

Removed struct coalesce_pair_iterator, as did not meet the hash_table
iterator interface and it provided no significant code reduction.
This leads to a change in the implementation of FOR_EACH_PARTITION_PAIR.

* statistics.c'statistics_hashes

Fold hash_statistics_eq into new struct stats_counter_hasher.

* hash-table.h'hash_table

Add documentation.
Add nested class iterator and methods to hash_table.
Add FOR_EACH_HASH_TABLE_ELEMENT implemented with those iterators.
Change uses of FOR_EACH_HTAB_ELEMENT to FOR_EACH_HASH_TABLE_ELEMENT.

* tree-ssa-sccvn.c'vn_tables_s.nary

Fold vn_nary_op_hash, vn_nary_op_eq into new struct vn_nary_op_hasher.
Add typedef vn_nary_op_table_type.
Add typedef vn_nary_op_iterator_type.

* tree-ssa-sccvn.c'vn_tables_s.phis

Fold vn_phi_hash, free_phi into new struct vn_phi_hasher.
Add typedef vn_phi_table_type.
Add typedef vn_phi_iterator_type.

* tree-ssa-sccvn.c'vn_tables_s.references

Fold vn_reference_hash, vn_reference_op_eq, free_reference
  into new struct vn_reference_hasher.
Add typedef vn_reference_table_type.
Add typedef vn_reference_iterator_type.

* tree-ssa-sccvn.c'constant_value_ids

Fold vn_constant_hash, vn_constant_eq into new struct vn_constant_hasher.

* tree-into-ssa.c'var_infos

Fold var_info_hash, var_info_eq into new struct var_info_hasher.

* tree-vectorizer.h'_loop_vec_info::peeling_htab

* tree-vectorizer.h

New struct peel_info_hasher.

* tree-vect-loop.c

Update dependent calls and types to match.

* tree-vect-data-refs.c

Fold vect_peeling_hash and vect_peeling_hash_eq into struct peel_info_hasher.

* tree-ssa-reassoc.c'undistribute_ops_list::ctable

Fold oecount_hash and oecount_eq into new struct oecount_hasher.

* tree-ssa-loop-im.c'memory_accesses.refs

Fold memref_hash and memref_eq into new struct mem_ref_hasher.

Tested on x86_64.

Index: gcc/ChangeLog

2013-04-23  Lawrence Crowl  <crowl@google.com>

* Makefile.in: Update as needed below.

* hash-table.h (class hash_table):
Correct many methods with parameter types compare_type to the correct
value_type.  (Correct code was unlikely to notice the change.)
(hash_table::elements_with_deleted) New.
(class hashtable::iterator): New.
(hashtable::begin()): New.
(hashtable::end()): New.
(FOR_EACH_HASH_TABLE_ELEMENT): New.

* statistics.c (statistics_hashes):
Change type to hash_table.  Update dependent calls and types.

* tree-into-ssa.c (var_infos):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-coalesce.c (struct coalesce_list_d.list):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-loop-im.c (struct mem_ref.refs):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-reassoc.c (undistribute_ops_list::ctable):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-sccvn.c (vn_tables_s::nary):
Change type to hash_table.  Update dependent calls and types.
(vn_tables_s::phis): Likewise.
(vn_tables_s::references): Likewise.

* tree-ssa-sccvn.h (vn_nary_op_eq): Update parameter and return types.
(vn_reference_eq): Update parameter and return types.

* tree-ssa-structalias.c (pointer_equiv_class_table):
Change type to hash_table.  Update dependent calls and types.
(location_equiv_class_table): Likewise.

* tree-vect-data-refs.c: Consequential changes for making
peeling a hash_table.

* tree-vect-loop.c (new_loop_vec_info): Dependent hash_table update.
(destroy_loop_vec_info): Dependent hash_table update.

* tree-vectorizer.h (peeling_htab):
Change type to hash_table.  Update dependent calls and types.

From-SVN: r198213
14 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/hash-table.h
gcc/statistics.c
gcc/tree-into-ssa.c
gcc/tree-ssa-coalesce.c
gcc/tree-ssa-loop-im.c
gcc/tree-ssa-reassoc.c
gcc/tree-ssa-sccvn.c
gcc/tree-ssa-sccvn.h
gcc/tree-ssa-structalias.c
gcc/tree-vect-data-refs.c
gcc/tree-vect-loop.c
gcc/tree-vectorizer.h