]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cselib.c
This patch is the main part of a consolodation of the hash_table patches to the...
authorLawrence Crowl <crowl@google.com>
Fri, 26 Apr 2013 00:28:35 +0000 (00:28 +0000)
committerLawrence Crowl <crowl@gcc.gnu.org>
Fri, 26 Apr 2013 00:28:35 +0000 (00:28 +0000)
commit4a8fb1a1de7c34fc788ccca21f3a15980bbce093
tree5115f0a81b7cea52ab7997ce3322160f2baf2374
parent11dae3ad79feec9dda4610f1f9adbc742a2b3661
This patch is the main part of a consolodation of the hash_table patches to the...

This patch is the main part of a consolodation 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-parloops.c'reduction
* tree-parloops.c'name_to_copy

Fold reduction_info_hash and reduction_info_eq into new struct
reduction_hasher.  Fold name_to_copy_elt_eq and name_to_copy_elt_hash
into new struct name_to_copy_hasher.

* trans-mem.c'tm_log

Fold tm_log_hash, tm_log_eq, tm_log_free into new struct log_entry_hasher.

* trans-mem.c'tm_memopt_value_numbers

Fold tm_memop_hash, tm_memop_eq into new struct tm_memop_hasher.

* tree-ssa-strlen.c'decl_to_stridxlist_htab

Fold decl_to_stridxlist_hash into new struct stridxlist_hasher.

* tree-ssa-loop-ivopts.c'ivopts_data::inv_expr_tab

Fold htab_inv_expr_hash and htab_inv_expr_eq into new struct
iv_inv_expr_hasher.

* tree-ssa-uncprop.c'equiv

Equiv renamed to val_ssa_equiv because of name ambiguity with local variables.

Fold equiv_hash, equiv_eq and equiv_free into new struct val_ssa_equiv_hasher.

Renamed variables equiv_hash_elt to an_equiv_elt because of name ambiguity
with struct type.  Changed equiv_hash_elt_p to an_equiv_elt_p to match.

* tree-ssa-phiopt.c'seen_ssa_names

Fold name_to_bb_hash and name_to_bb_eq into new struct ssa_names_hasher.

* tree-ssa-structalias.c'pointer_equiv_class_table
* tree-ssa-structalias.c'location_equiv_class_table

Fold equiv_class_label_hash and equiv_class_label_eq into new
struct equiv_class_hasher.

* tree-ssa-structalias.c'shared_bitmap_table

Fold shared_bitmap_hash and shared_bitmap_eq into new struct
shared_bitmap_hasher.

* tree-ssa-live.c'var_map_base_init::tree_to_index

New struct tree_int_map_hasher.

* tree-sra.c'candidates

Fold uid_decl_map_hash and uid_decl_map_eq into new struct
uid_decl_hasher.  This change moves the definitions from tree-ssa.c
into tree-sra.c and removes the declarations from tree-flow.h

tree-browser.c

Remove stale declaration of removed TB_parent_eq.
Fix template parameter for base class to match value_type.

gimple.h

Use gimplify_hasher::hash rather than gimple_tree_hash in the
  assertion check.
Change return values to match return type. (I.e. no conversions.)

* graphite-clast-to-gimple.c'ivs_params::newivs_index
* graphite-clast-to-gimple.c'ivs_params::params_index
* graphite-clast-to-gimple.c'print_generated_program::params_index
* graphite-clast-to-gimple.c'gloog::newivs_index
* graphite-clast-to-gimple.c'gloog::params_index
* graphite.c graphite_transform_loops::bb_pbb_mapping
* sese.c copy_bb_and_scalar_dependences::rename_map

Move hash table declarations to a new graphite-htab.h, because they
are used in few places.

Remove unused:

htab_t scop::original_pddrs
SCOP_ORIGINAL_PDDRS

Remove unused:

insert_loop_close_phis
insert_guard_phis
debug_ivtype_map
ivtype_map_elt_info
new_ivtype_map_elt

* gimplify.c'gimplify_ctx::temp_htab

Move struct gimple_temp_hash_elt and struct gimplify_ctx to a new
gimplify-ctx.h, because they are used few places.

* cselib.c'cselib_hash_table
* gcse.c'pre_ldst_table
* gimple-ssa-strength-reduction.c'base_cand_map
* haifa-sched.c'delay_htab
* haifa-sched.c'delay_htab_i2
* ira-color.c'allocno_hard_regs_htab
* ira-costs.c'cost_classes_htab
* loop-invariant.c'merge_identical_invariants::eq
* loop-iv.c'bivs
* loop-unroll.c'opt_info::insns_to_split
* loop-unroll.c'opt_info::insns_with_var_to_expand
* passes.c'name_to_pass_map
* plugin.c'event_tab
* postreload-gcse.c'expr_table
* store-motion.c'store_motion_mems_table
* tree-cfg.c'discriminator_per_locus
* tree-scalar-evolution.c'resolve_mixers::cache
* tree-ssa-dom.c'avail_exprs

Remove unused:
dse.c bitmap clear_alias_sets
dse.c bitmap disqualified_clear_alias_sets
dse.c alloc_pool clear_alias_mode_pool
dse.c dse_step2_spill
dse.c dse_step5_spill
graphds.h htab_t graph::indices

* attribs.c'scoped_attributes::attribute_hash
* bitmap.c'bitmap_desc_hash
* dwarf2cfi.c'trace_index
* dwarf2out.c'break_out_includes::cu_hash_table
* dwarf2out.c'copy_decls_for_unworthy_types::decl_table
* dwarf2out.c'optimize_external_refs::map
* dwarf2out.c'output_comp_unit::extern_map
* dwarf2out.c'output_comdat_type_unit::extern_map
* dwarf2out.c'output_macinfo::macinfo_htab
* dwarf2out.c'optimize_location_lists::htab
* dwarf2out.c'dwarf2out_finish::comdat_type_table
* except.c'ehspec_hash_type
* except.c'assign_filter_values::ttypes
* except.c'assign_filter_values::ehspec
* except.c'sjlj_assign_call_site_values::ar_hash
* except.c'convert_to_eh_region_ranges::ar_hash
* trans-mem.c'tm_new_mem_hash
* tree-browser.c'TB_up_ht
* tree-eh.c'finally_tree

Move the declaration of hash_table <alloc_pool_hasher> alloc_pool_hash
in alloc-pool.c to after the method definitions for its parameter
class.

* ggc-common.c'loc_hash
* ggc-common.c'ptr_hash

Add a new hash_table method elements_with_deleted to meet the needs of
gcc-common.c.

Correct many methods with parameter types compare_type to the correct
value_type.  (Correct code was unlikely to notice the change, but
incorrect code will.)

* tree-complex.c'complex_variable_components
* tree-parloops.c'eliminate_local_variables_stmt::decl_address
* tree-parloops.c'separate_decls_in_region::decl_copies

Move hash table declarations to a new tree-hasher.h, to resolve
compilation dependences and because they are used in few places.

* lto-streamer.h'output_block::string_hash_table
* lto-streamer-in.c'file_name_hash_table
* lto-streamer.c'tree_htab

The struct string_slot moves from data-streamer.h to lto-streamer.h to
resolve compilation dependences.

Tested on x86_64.

Index: gcc/ChangeLog

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

* Makefile.in: Update as needed below.

* alloc-pool.c (static hash_table <alloc_pool_hasher> alloc_pool_hash):
Move declaration to after the type's method definitons.

* attribs.c (htab_t scoped_attributes::attribute_hash):
Change type to hash_table.  Update dependent calls and types.

* bitmap.c (htab_t bitmap_desc_hash):
Change type to hash_table.  Update dependent calls and types.

* cselib.c (htab_t cselib_hash_table):
Change type to hash_table.  Update dependent calls and types.

* data-streamer.h (struct string_slot): Move to lto-streamer.h.
(hash_string_slot_node): Move implementation into lto-streamer.h
struct string_slot_hasher.
(eq_string_slot_node): Likewise.

* data-streamer-out.c: Update output_block::string_hash_table
dependent calls and types.

* dwarf2cfi.c (htab_t trace_index):
Change type to hash_table.  Update dependent calls and types.

* dwarf2out.c (htab_t break_out_includes::cu_hash_table):
Change type to hash_table.  Update dependent calls and types.
(htab_t copy_decls_for_unworthy_types::decl_table): Likewise.
(htab_t optimize_external_refs::map): Likewise.
(htab_t output_comp_unit::extern_map): Likewise.
(htab_t output_comdat_type_unit::extern_map): Likewise.
(htab_t output_macinfo::macinfo_htab): Likewise.
(htab_t optimize_location_lists::htab): Likewise.
(htab_t dwarf2out_finish::comdat_type_table): Likewise.

* except.c (htab_t ehspec_hash_type):
Change type to hash_table.  Update dependent calls and types.
(assign_filter_values::ttypes): Likewise.
(assign_filter_values::ehspec): Likewise.
(sjlj_assign_call_site_values::ar_hash): Likewise.
(convert_to_eh_region_ranges::ar_hash): Likewise.

* gcse.c (htab_t pre_ldst_table):
Change type to hash_table.  Update dependent calls and types.

* ggc-common.c (htab_t saving_htab):
Change type to hash_table.  Update dependent calls and types.
(htab_t loc_hash): Likewise.
(htab_t ptr_hash): Likewise.
(call_count): Rename ggc_call_count.
(call_alloc): Rename ggc_call_alloc.
(loc_descriptor): Rename make_loc_descriptor.
(add_statistics): Rename ggc_add_statistics.

* ggc-common.c (saving_htab):
Change type to hash_table.  Update dependent calls and types.

* gimple.h (struct gimplify_ctx): Move to gimplify-ctx.h.
(push_gimplify_context): Likewise.
(pop_gimplify_context): Likewise.
(struct gimple_temp_hash_elt): Added.
(struct gimplify_hasher): Likewise.
(struct gimplify_ctx.temp_htab):
Change type to hash_table.  Update dependent calls and types.

* gimple-fold.c: Include gimplify-ctx.h.

* gimple-ssa-strength-reduction.c (htab_t base_cand_map):
Change type to hash_table.  Update dependent calls and types.
(base_cand_dump_callback): Rename to ssa_base_cand_dump_callback to
avoid potential global name collision.

* gimplify.c: Include gimplify-ctx.h.
(struct gimple_temp_hash_elt): Move to gimplify-ctx.h.
(htab_t gimplify_ctx::temp_htab):
Update dependent calls and types for new type hash_table.
(gimple_tree_hash): Move into gimplify_hasher in gimplify-ctx.h.
(gimple_tree_eq): Move into gimplify_hasher in gimplify-ctx.h.

* gimplify-ctx.h: New.
(struct gimple_temp_hash_elt): Move from gimplify.c.
(class gimplify_hasher): New.
(struct gimplify_ctx): Move from gimple.h.
(htab_t gimplify_ctx::temp_htab):
Change type to hash_table.  Update dependent calls and types.

* graphite-clast-to-gimple.c: Include graphite-htab.h.
(htab_t ivs_params::newivs_index):
Change type to hash_table.  Update dependent calls and types.
(htab_t ivs_params::params_index): Likewise.
(htab_t print_generated_program::params_index): Likewise.
(htab_t gloog::newivs_index): Likewise.
(htab_t gloog::params_index): Likewise.

* graphite.c: Include graphite-htab.h.
4htab_t graphite_transform_loops::bb_pbb_mapping):
Change type to hash_table.  Update dependent calls and types.

* graphite-clast-to-gimple.h: (extern gloog) Move to graphite-htab.h.
(bb_pbb_map_hash): Fold into bb_pbb_htab_type in graphite-htab.h.
(eq_bb_pbb_map): Fold into bb_pbb_htab_type in graphite-htab.h.

* graphite-dependences.c: Include graphite-htab.h.
(loop_is_parallel_p): Change hash table type of parameter.

* graphite-htab.h: New.
(typedef hash_table <bb_pbb_hasher> bb_pbb_htab_type): New.
(extern find_pbb_via_hash): Move from graphite-poly.h.
(extern loop_is_parallel_p): Move from graphite-poly.h.
(extern get_loop_body_pbbs): Move from graphite-poly.h.

* graphite-poly.h (extern find_pbb_via_hash): Move to graphite-htab.h.
(extern loop_is_parallel_p): Move to graphite-htab.h.
(extern get_loop_body_pbbs): Move to graphite-htab.h.

* haifa-sched.c (htab_t delay_htab):
Change type to hash_table.  Update dependent calls and types.
(htab_t delay_htab_i2): Likewise.

* ira-color.c (htab_t allocno_hard_regs_htab):
Change type to hash_table.  Update dependent calls and types.

* ira-costs.c (htab_t cost_classes_htab):
Change type to hash_table.  Update dependent calls and types.

* loop-invariant.c (htab_t merge_identical_invariants::eq):
Change type to hash_table.  Update dependent calls and types.

* loop-iv.c (htab_t bivs):
Change type to hash_table.  Update dependent calls and types.

* loop-unroll.c (htab_t opt_info::insns_to_split):
Change type to hash_table.  Update dependent calls and types.
(htab_t opt_info::insns_with_var_to_expand): Likewise.

* lto-streamer.h (struct string_slot): Move from data-streamer.h
(struct string_slot_hasher): New.
(htab_t output_block::string_hash_table):
Change type to hash_table.  Update dependent calls and types.

* lto-streamer-in.c (freeing_string_slot_hasher): New.
(htab_t file_name_hash_table):
Change type to hash_table.  Update dependent calls and types.

* lto-streamer-out.c: Update output_block::string_hash_table dependent
calls and types.

* lto-streamer.c (htab_t tree_htab):
Change type to hash_table.  Update dependent calls and types.

* omp-low.c: Include gimplify-ctx.h.

* passes.c (htab_t name_to_pass_map):
Change type to hash_table.  Update dependent calls and types.
(pass_traverse): Rename to passes_pass_traverse.

* plugin.c (htab_t event_tab):
Change type to hash_table.  Update dependent calls and types.

* postreload-gcse.c (htab_t expr_table):
Change type to hash_table.  Update dependent calls and types.
(dump_hash_table_entry): Rename dump_expr_hash_table_entry.

* sese.c (debug_rename_map_1): Make extern.
(htab_t copy_bb_and_scalar_dependences::rename_map):
Change type to hash_table.  Update dependent calls and types.

* sese.h (extern debug_rename_map): Move to .c file.

* store-motion.c (htab_t store_motion_mems_table):
Change type to hash_table.  Update dependent calls and types.

* trans-mem.c (htab_t tm_new_mem_hash):
Change type to hash_table.  Update dependent calls and types.

* tree-browser.c (htab_t TB_up_ht):
Change type to hash_table.  Update dependent calls and types.

* tree-cfg.c (htab_t discriminator_per_locus):
Change type to hash_table.  Update dependent calls and types.

* tree-complex.c: Include tree-hasher.h
(htab_t complex_variable_components):
Change type to hash_table.  Update dependent calls and types.

* tree-eh.c (htab_t finally_tree):
Change type to hash_table.  Update dependent calls and types.

* tree-flow.h (extern int_tree_map_hash): Moved into tree-hasher
struct int_tree_hasher.
(extern int_tree_map_eq): Likewise.
(uid_decl_map_hash): Removed.
(extern decl_tree_map_eq): Likewise.

* tree-hasher.h: New.
(struct int_tree_hasher): New.
(typedef int_tree_htab_type): New.

* tree-inline.c: Include gimplify-ctx.h.

* tree-mudflap.c: Include gimplify-ctx.h.

* tree-parloops.c: Include tree-hasher.h.
(htab_t eliminate_local_variables_stmt::decl_address):
Change type to hash_table.  Update dependent calls and types.
(htab_t separate_decls_in_region::decl_copies): Likewise.

* tree-scalar-evolution.c (htab_t resolve_mixers::cache):
Change type to hash_table.  Update dependent calls and types.

* tree-sra.c (candidates):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa.c (int_tree_map_eq): Moved into struct int_tree_hasher
in tree-flow.h.
(int_tree_map_hash): Likewise.

* tree-ssa-dom.c (htab_t avail_exprs):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-live.c (var_map_base_init::tree_to_index):
Change type to hash_table.  Update dependent calls and types.

* tree-ssa-loop-ivopts.c (struct ivopts_data.inv_expr_tab):
Change type to hash_table.  Update dependent calls and types.

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

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

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

From-SVN: r198329
55 files changed:
gcc/ChangeLog
gcc/Makefile.in
gcc/alloc-pool.c
gcc/attribs.c
gcc/bitmap.c
gcc/cselib.c
gcc/data-streamer-out.c
gcc/data-streamer.h
gcc/dwarf2cfi.c
gcc/dwarf2out.c
gcc/except.c
gcc/gcse.c
gcc/ggc-common.c
gcc/gimple-ssa-strength-reduction.c
gcc/gimple.h
gcc/gimplify.c
gcc/graphite-clast-to-gimple.c
gcc/graphite-clast-to-gimple.h
gcc/graphite-dependences.c
gcc/graphite-htab.h [new file with mode: 0644]
gcc/graphite-poly.h
gcc/graphite.c
gcc/haifa-sched.c
gcc/ira-color.c
gcc/ira-costs.c
gcc/loop-invariant.c
gcc/loop-iv.c
gcc/loop-unroll.c
gcc/lto-streamer-in.c
gcc/lto-streamer-out.c
gcc/lto-streamer.c
gcc/lto-streamer.h
gcc/passes.c
gcc/plugin.c
gcc/postreload-gcse.c
gcc/sese.c
gcc/sese.h
gcc/store-motion.c
gcc/trans-mem.c
gcc/tree-browser.c
gcc/tree-cfg.c
gcc/tree-complex.c
gcc/tree-eh.c
gcc/tree-flow.h
gcc/tree-hasher.h [new file with mode: 0644]
gcc/tree-parloops.c
gcc/tree-scalar-evolution.c
gcc/tree-sra.c
gcc/tree-ssa-dom.c
gcc/tree-ssa-live.c
gcc/tree-ssa-loop-ivopts.c
gcc/tree-ssa-phiopt.c
gcc/tree-ssa-strlen.c
gcc/tree-ssa-uncprop.c
gcc/tree-ssa.c