Commit Graph

139151 Commits

Author SHA1 Message Date
Richard Sandiford
fb5c464a86 hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
gcc/
	* hash-map-traits.h (simple_hashmap_traits::key_type): New typedef.
	(unbounded_int_hashmap_traits::key_type): Likewise.
	* hash-map.h (hash_map): Get the key type from the traits.
	* hash-traits.h (default_hash_traits): By default, inherit from the
	template parameter.
	* alias.c (alias_set_traits): Delete.
	(alias_set_entry_d::children): Use alias_set_hash as the first
	template parameter.
	(record_alias_subset): Update accordingly.
	* except.c (tree_hash_traits): Delete.
	(type_to_runtime_map): Use tree_hash as the first template parameter.
	(init_eh): Update accordingly.
	* genmatch.c (capture_id_map_hasher): Delete.
	(cid_map_t): Use nofree_string_hash as first template parameter.
	* ipa-icf.h (symbol_compare_hashmap_traits): Delete.
	* ipa-icf.c (sem_item_optimizer::subdivide_classes_by_sensitive_refs):
	Use symbol_compare_hash as the first template parameter in
	subdivide_hash_map.
	* mem-stats.h (mem_usage_pair::mem_alloc_hashmap_traits): Delete.
	(mem_usage_pair::mem_map_t): Use mem_location_hash as the first
	template parameter.
	* passes.c (pass_registry_hasher): Delete.
	(name_to_pass_map): Use nofree_string_hash as the first template
	parameter.
	(register_pass_name): Update accordingly.
	* sanopt.c (sanopt_tree_map_traits): Delete.
	(sanopt_tree_triplet_map_traits): Delete.
	(sanopt_ctx::asan_check_map): Use tree_operand_hash as the first
	template parameter.
	(sanopt_ctx::vptr_check_map): Use sanopt_tree_triplet_hash as
	the first template parameter.
	* sese.c (rename_map_hasher): Delete.
	(rename_map_type): Use tree_ssa_name_hash as the first template
	parameter.
	* symbol-summary.h (function_summary::summary_hashmap_traits): Delete.
	(function_summary::m_map): Use map_hash as the first template
	parameter.
	(function_summary::release): Update accordingly.
	* tree-if-conv.c (phi_args_hash_traits): Delete.
	(predicate_scalar_phi): Use tree_operand_hash as the first template
	parameter to phi_arg_map.
	* tree-inline.h (dependence_hasher): Delete.
	(copy_body_data::dependence_map): Use dependence_hash as the first
	template parameter.
	* tree-inline.c (remap_dependence_clique): Update accordingly.
	* tree-ssa-strlen.c (stridxlist_hash_traits): Delete.
	(decl_to_stridxlist_htab): Use tree_decl_hash as the first template
	parameter.
	(addr_stridxptr): Update accordingly.
	* value-prof.c (profile_id_traits): Delete.
	(cgraph_node_map): Use profile_id_hash as the first template
	parameter.
	(init_node_map): Update accordingly.
	* config/alpha/alpha.c (string_traits): Delete.
	(machine_function::links): Use nofree_string_hash as the first
	template parameter.
	(alpha_use_linkage, alpha_write_linkage): Update accordingly.
	* config/m32c/m32c.c (pragma_traits): Delete.
	(pragma_htab): Use nofree_string_hash as the first template parameter.
	(m32c_note_pragma_address): Update accordingly.
	* config/mep/mep.c (pragma_traits): Delete.
	(pragma_htab): Use nofree_string_hash as the first template parameter.
	(mep_note_pragma_flag): Update accordingly.
	* config/mips/mips.c (mips16_flip_traits): Delete.
	(mflip_mips16_htab): Use nofree_string_hash as the first template
	parameter.
	(mflip_mips16_use_mips16_p): Update accordingly.
	(local_alias_traits): Delete.
	(mips16_local_aliases): Use nofree_string_hash as the first template
	parameter.
	(mips16_local_alias): Update accordingly.

From-SVN: r224977
2015-06-25 17:17:20 +00:00
Richard Sandiford
203f2c4386 hash-map-traits.h (default_hashmap_traits): Delete.
gcc/
	* hash-map-traits.h (default_hashmap_traits): Delete.

From-SVN: r224976
2015-06-25 17:17:10 +00:00
Richard Sandiford
0ef08bc588 hash-map-traits.h (unbounded_hashmap_traits): New class.
gcc/
	* hash-map-traits.h (unbounded_hashmap_traits): New class.
	(unbounded_int_hashmap_traits): Likewise.
	* cfgexpand.c (part_traits): Use unbounded_int_hashmap_traits.

From-SVN: r224975
2015-06-25 17:16:59 +00:00
Richard Sandiford
9654754bd9 ipa-icf.h (symbol_compare_hash): New class.
gcc/
	* ipa-icf.h (symbol_compare_hash): New class.
	(symbol_compare_hashmap_traits): Use it.
	* mem-stats.h (mem_alloc_description::mem_location_hash): New class.
	(mem_alloc_description::mem_alloc_hashmap_traits): Use it.
	(mem_alloc_description::reverse_mem_map_t): Remove redundant
	default_hashmap_traits.
	* sanopt.c (sanopt_tree_triplet_hash): New class.
	(sanopt_tree_triplet_map_traits): Use it.

From-SVN: r224974
2015-06-25 17:16:51 +00:00
Richard Sandiford
e0702244b8 gengtype-parse.c (require_template_declaration): Allow '+' in template parameters.
gcc/
	* gengtype-parse.c (require_template_declaration): Allow '+' in
	template parameters.  Consolidate cases.
	* hash-traits.h (int_hash): New class.
	* alias.c (alias_set_hash): New structure.
	(alias_set_traits): Use it.
	* symbol-summary.h (function_summary::map_hash): New class.
	(function_summary::summary_hashmap_traits): Use it.
	* tree-inline.h (dependence_hash): New class.
	(dependence_hasher): Use it.
	* tree-ssa-reassoc.c (oecount_hasher): Use int_hash.
	* value-prof.c (profile_id_hash): New class.
	(profile_id_traits): Use it.

From-SVN: r224973
2015-06-25 17:16:44 +00:00
Richard Sandiford
1c9524603b mips.c (mips16_flip_traits): Use it.
gcc/
	* config/mips/mips.c (mips16_flip_traits): Use it.
	(local_alias_traits, mips16_local_aliases): Convert from a map of
	rtxes to a map of symbol names.
	(mips16_local_alias): Update accordingly.

From-SVN: r224972
2015-06-25 17:16:31 +00:00
Richard Sandiford
20d2c372c2 hash-traits.h (string_hash, [...]): New classes.
gcc/
	* hash-traits.h (string_hash, nofree_string_hash): New classes.
	* genmatch.c (capture_id_map_hasher): Use nofree_string_hash.
	* passes.c (pass_registry_hasher): Likewise.
	* config/alpha/alpha.c (string_traits): Likewise.
	* config/i386/winnt.c (i386_find_on_wrapper_list): Likewise.
	* config/m32c/m32c.c (pragma_traits): Likewise.
	* config/mep/mep.c (pragma_traits): Likewise.

gcc/java/
	* jcf-io.c (memoized_class_lookups): Use nofree_string_hash.
	(find_class): Likewise.

From-SVN: r224971
2015-06-25 17:16:23 +00:00
Richard Sandiford
84a98514b3 tree-hash-traits.h (tree_hash): New class.
gcc/
	* tree-hash-traits.h (tree_hash): New class.
	* except.c: Include tree-hash-traits.h.
	(tree_hash_traits): Use tree_hash.

From-SVN: r224970
2015-06-25 17:16:15 +00:00
Richard Sandiford
5d6678ae80 tree-hash-traits.h (tree_ssa_name_hasher): New class.
gcc/
	* tree-hash-traits.h (tree_ssa_name_hasher): New class.
	* sese.c: Include tree-hash-traits.h.
	(rename_map_hasher): Use tree_ssa_name_hasher.

From-SVN: r224969
2015-06-25 17:16:02 +00:00
Richard Sandiford
910ee068df tree-hash-traits.h (tree_decl_hash): New class.
gcc/
	* tree-hash-traits.h (tree_decl_hash): New class.
	* tree-ssa-strlen.c: Include tree-hash-traits.h.
	(stridxlist_hash_traits): Use tree_decl_hash.

From-SVN: r224968
2015-06-25 17:15:54 +00:00
Richard Sandiford
d6a818c59e tree-hash-traits.h: New file.
gcc/
	* tree-hash-traits.h: New file.
	(tree_operand_hash): New class.
	* sanopt.c: Include tree-hash-traits.h.
	(sanopt_tree_map_traits): Use tree_operand_hash.
	* tree-if-conv.c: Include tree-hash-traits.h.
	(phi_args_hash_traits): Use tree_operand_hash.
	* tree-ssa-uncprop.c: Include tree-hash-traits.h.
	(val_ssa_equiv_hash_traits): Use tree_operand_hash.

From-SVN: r224967
2015-06-25 17:15:44 +00:00
Richard Sandiford
4ef7b52a93 hash-map-traits.h: Include hash-traits.h.
gcc/
	* hash-map-traits.h: Include hash-traits.h.
	(simple_hashmap_traits): New class.
	* mem-stats.h (hash_map): Change the default traits to
	simple_hashmap_traits<default_hash_traits<Key> >.

From-SVN: r224966
2015-06-25 17:15:35 +00:00
Richard Sandiford
8998354f8d hash-table.h: Update comments.
gcc/
	* hash-table.h: Update comments.

From-SVN: r224965
2015-06-25 17:07:34 +00:00
Richard Sandiford
b32ca1dfaf hash-traits.h (default_hash_traits): New structure.
gcc/
	* hash-traits.h (default_hash_traits): New structure.
	* hash-set.h (default_hashset_traits): Delete.
	(hash_set): Use default_hash_traits<Key> instead of
	default_hashset_traits.  Delete hash_entry type and use Key directly.
	* ipa-devirt.c (pair_traits): Delete.
	(default_hash_traits <type_pair>): Override.
	(odr_subtypes_equivalent_p): Remove pair_types template parameter.
	(odr_types_equivalent_p, add_type_duplicate): Likewise.

From-SVN: r224964
2015-06-25 17:07:26 +00:00
Richard Sandiford
fc17926acd hash-traits.h (typed_noop_remove): Don't require a pointer type.
gcc/
	* hash-traits.h (typed_noop_remove): Don't require a pointer type.

From-SVN: r224963
2015-06-25 17:07:16 +00:00
Richard Sandiford
4c1177e161 hash-table.h (has_is_deleted, [...]): Delete.
gcc/
	* hash-table.h (has_is_deleted, is_deleted_helper): Delete.
	(has_is_empty, is_empty_helper): Delete.
	(has_mark_deleted, mark_deleted_helper): Delete.
	(has_mark_empty, mark_empty_helper): Delete.
	(hash_table::is_deleted): Call the Descriptor unconditionally.
	(hash_table::is_empty): Likewise.
	(hash_table::mark_deleted): Likewise.
	(hash_table::mark_empty): Likewise.

From-SVN: r224962
2015-06-25 17:07:01 +00:00
Richard Sandiford
7edd9b154d cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.
gcc/
	* cgraph.h (asmname_hasher): Inherit from ggc_ptr_hash.  Remove
	redundant typedefs and members.
	* coverage.c (counts_entry): Inherit from pointer_hash.  Remove
	redundant typedefs.
	* dwarf2out.c (cu_hash_table_entry_hasher): Likewise.
	* ipa-devirt.c (odr_name_hasher): Likewise.
	(polymorphic_call_target_hasher): Likewise.
	* ira-costs.c (cost_classes_hasher): Likewise.
	* statistics.c (stats_counter_hasher): Likewise.
	* trans-mem.c (log_entry_hasher): Likewise.
	* tree-ssa-dom.c (expr_elt_hasher): Likewise.
	* tree-ssa-sccvn.c (vn_phi_hasher, vn_reference_hasher): Likewise.
	* tree-ssa-tail-merge.c (same_succ_def): Likewise.
	* var-tracking.c (variable_hasher): Likewise.
	* valtrack.h (dead_debug_hash_descr): Inherit from free_ptr_hash.
	Remove redundant typedefs and members.

From-SVN: r224961
2015-06-25 17:06:52 +00:00
Richard Sandiford
6c907cff66 hash-traits.h (ggc_cache_hasher): Rename to...
gcc/
	* hash-traits.h (ggc_cache_hasher): Rename to...
	(ggc_cache_remove): ...this and remove typedefs.
	(ggc_cache_ptr_hash): New class.
	* hash-table.h: Update commentary.
	* emit-rtl.c (const_int_hasher): Inherit from ggc_cache_ptr_hash
	rather than ggc_cache_hasher.
	(const_wide_int_hasher, reg_attr_hasher): Likewise.
	(const_double_hasher, const_fixed_hasher): Likewise.
	* function.c (insn_cache_hasher): Likewise.
	* trans-mem.c (tm_wrapper_hasher): Likewise.
	* tree.h (tree_decl_map_cache_hasher): Likewise.
	* tree.c (type_cache_hasher, int_cst_hasher): Likewise.
	(cl_option_hasher, tree_vec_map_cache_hasher): Likewise.
	* ubsan.c (tree_type_map_cache_hasher): Likewise.
	* varasm.c (tm_clone_hasher): Likewise.
	* config/i386/i386.c (dllimport_hasher): Likewise.
	* config/nvptx/nvptx.c (declared_libfunc_hasher): Likewise.
	(tree_hasher): Likewise.

gcc/ada/
	* gcc-interface/decl.c (value_annotation_hasher): Inherit from
	ggc_cache_ptr_hash rather than ggc_cache_hasher.
	* gcc-interface/utils.c (pad_type_hasher): Likewise.

From-SVN: r224960
2015-06-25 17:06:44 +00:00
Richard Sandiford
ca752f3929 hash-traits.h (ggc_hasher): Rename to...
gcc/
	* hash-traits.h (ggc_hasher): Rename to...
	(ggc_remover): ...this and remove typedefs.
	(ggc_cache_hasher): Update accordingly.  Add typedefs.
	(ggc_ptr_hash): New class.
	* hash-table.h: Update comment.
	* cfgloop.h (loop_exit_hasher): Inherit from ggc_ptr_hash rather than
	ggc_hasher.
	* cgraph.h (section_name_hasher, cgraph_edge_hasher): Likewise.
	(tree_descriptor_hasher): Likewise.
	* cgraph.c (function_version_hasher): Likewise.
	* dwarf2out.c (indirect_string_hasher, dwarf_file_hasher): Likewise.
	(decl_die_hasher, block_die_hasher, decl_loc_hasher): Likewise.
	(dw_loc_list_hasher, addr_hasher): Likewise.
	* function.h (used_type_hasher): Likewise.
	* function.c (temp_address_hasher): Likewise.
	* gimple-ssa.h (tm_restart_hasher, ssa_name_hasher): Likewise.
	* libfuncs.h (libfunc_hasher): Likewise.
	* lto-streamer.h (decl_state_hasher): Likewise.
	* optabs.c (libfunc_decl_hasher): Likewise.
	* tree-scalar-evolution.c (scev_info_hasher): Likewise.
	* varasm.c (section_hasher, object_block_hasher): Likewise.
	(const_rtx_desc_hasher): Likewise.
	* config/darwin.c (indirection_hasher, cfstring_hasher): Likewise.
	* config/rs6000/rs6000.c (toc_hasher, builtin_hasher): Likewise.

gcc/c-family/
	* c-common.c (c_type_hasher): Inherit from ggc_ptr_hash rather than
	ggc_hasher.

gcc/cp/
	* constexpr.c (constexpr_fundef_hasher): Inherit from ggc_ptr_hash
	rather than ggc_hasher.
	(constexpr_call_hasher): Likewise.
	* cp-tree.h (cxx_int_tree_map_hasher, named_label_hasher): Likewise.
	* decl.c (typename_hasher): Likewise.
	* mangle.c (conv_type_hasher): Likewise.
	* pt.c (spec_hasher): Likewise.
	* tree.c (cplus_array_hasher, list_hasher): Likewise.
	* typeck2.c (abstract_type_hasher): Likewise.

gcc/fortran/
	* trans-decl.c (module_hasher): Likewise.
	* trans.h (module_decl_hasher): Likewise.

gcc/java/
	* java-tree.h (treetreehasher): Inherit from ggc_ptr_hash
	rather than ggc_hasher.
	(ict_hasher, type_assertion_hasher): Likewise.

gcc/objc/
	* objc-act.c (objc_string_hasher): Inherit from ggc_ptr_hash
	rather than ggc_hasher.

From-SVN: r224959
2015-06-25 17:06:36 +00:00
Richard Sandiford
95fbe13e99 hash-traits.h (free_ptr_hash): New class.
gcc/
	* hash-traits.h (free_ptr_hash): New class.
	* dwarf2out.c (decl_table_entry_hasher): Inherit from free_ptr_hash
	rather than typed_free_remove.  Remove redudant typedefs.
	(external_ref_hasher): Likewise.
	* except.c (action_record_hasher, ttypes_filter_hasher): Likewise.
	(ehspec_hasher): Likewise.
	* ggc-common.c (saving_hasher): Likewise.
	* gimplify.c (gimplify_hasher): Likewise.
	* haifa-sched.c (delay_i2_hasher): Likewise.
	* loop-invariant.c (invariant_expr_hasher): Likewise.
	* loop-iv.c (biv_entry_hasher): Likewise.
	* loop-unroll.c (iv_split_hasher, var_expand_hasher): Likewise.
	* trans-mem.c (tm_mem_map_hasher, tm_memop_hasher): Likewise.
	* tree-cfg.c (locus_discrim_hasher): Likewise.
	* tree-eh.c (finally_tree_hasher): Likewise.
	* tree-into-ssa.c (var_info_hasher): Likewise.
	* tree-parloops.c (reduction_hasher, name_to_copy_hasher): Likewise.
	* tree-ssa-loop-ivopts.c (iv_inv_expr_hasher): Likewise.
	* tree-ssa-phiopt.c (ssa_names_hasher): Likewise.
	* tree-ssa-pre.c (expr_pred_trans_d): Likewise.
	* tree-ssa-sccvn.c (vn_constant_hasher): Likewise.
	* tree-ssa-structalias.c (equiv_class_hasher): Likewise.
	(shared_bitmap_hasher): Likewise.
	* tree-ssa-threadupdate.c (redirection_data): Likewise.
	* tree-vectorizer.h (peel_info_hasher): Likewise.
	* tree-vectorizer.c (simduid_to_vf, simd_array_to_simduid): Likewise.
	* config/mips/mips.c (mips_lo_sum_offset_hasher): Likewise.

libcc1/
	* plugin.cc (decl_addr_hasher): Inherit from free_ptr_hash
	rather than typed_free_remove.  Remove redudant typedefs.

From-SVN: r224958
2015-06-25 17:06:24 +00:00
Richard Sandiford
8d67ee553d hash-table.h: Update comments.
gcc/
	* hash-table.h: Update comments.
	* hash-traits.h (pointer_hash): Don't inherit from typed_noop_remove.
	(nofree_ptr_hash): New class.
	* asan.c (asan_mem_ref_hasher): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.
	* attribs.c (attribute_hasher): Likewise.
	* cfg.c (bb_copy_hasher): Likewise.
	* cselib.c (cselib_hasher): Likewise.
	* dse.c (invariant_group_base_hasher): Likewise.
	* dwarf2cfi.c (trace_info_hasher): Likewise.
	* dwarf2out.c (macinfo_entry_hasher): Likewise.
	(comdat_type_hasher, loc_list_hasher): Likewise.
	* gcse.c (pre_ldst_expr_hasher): Likewise.
	* genmatch.c (id_base): Likewise.
	* genrecog.c (test_pattern_hasher): Likewise.
	* gimple-ssa-strength-reduction.c (cand_chain_hasher): Likewise.
	* haifa-sched.c (delay_i1_hasher): Likewise.
	* hard-reg-set.h (simplifiable_subregs_hasher): Likewise.
	* ipa-icf.h (congruence_class_group_hash): Likewise.
	* ipa-profile.c (histogram_hash): Likewise.
	* ira-color.c (allocno_hard_regs_hasher): Likewise.
	* lto-streamer.h (string_slot_hasher): Likewise.
	* lto-streamer.c (tree_entry_hasher): Likewise.
	* plugin.c (event_hasher): Likewise.
	* postreload-gcse.c (expr_hasher): Likewise.
	* store-motion.c (st_expr_hasher): Likewise.
	* tree-sra.c (uid_decl_hasher): Likewise.
	* tree-ssa-coalesce.c (coalesce_pair_hasher): Likewise.
	(ssa_name_var_hash): Likewise.
	* tree-ssa-live.c (tree_int_map_hasher): Likewise.
	* tree-ssa-loop-im.c (mem_ref_hasher): Likewise.
	* tree-ssa-pre.c (pre_expr_d): Likewise.
	* tree-ssa-sccvn.c (vn_nary_op_hasher): Likewise.
	* vtable-verify.h (registration_hasher): Likewise.
	* vtable-verify.c (vtbl_map_hasher): Likewise.
	* config/arm/arm.c (libcall_hasher): Likewise.
	* config/i386/winnt.c (wrapped_symbol_hasher): Likewise.
	* config/ia64/ia64.c (bundle_state_hasher): Likewise.
	* config/sol2.c (comdat_entry_hasher): Likewise.
	* fold-const.c (fold): Use nofree_ptr_hash instead of pointer_hash.
	(print_fold_checksum, fold_checksum_tree): Likewise.
	(debug_fold_checksum, fold_build1_stat_loc): Likewise.
	(fold_build2_stat_loc, fold_build3_stat_loc): Likewise.
	(fold_build_call_array_loc): Likewise.
	* tree-ssa-ccp.c (gimple_htab): Likewise.
	* tree-browser.c (tree_upper_hasher): Inherit from nofree_ptr_hash
	rather than pointer_type.

gcc/c/
	* c-decl.c (detect_field_duplicates_hash): Use nofree_ptr_hash
	instead of pointer_hash.
	(detect_field_duplicates): Likewise.

gcc/cp/
	* class.c (fixed_type_or_null_ref_ht): Inherit from nofree_ptr_hash
	rather than pointer_hash.
	(fixed_type_or_null): Use nofree_ptr_hash instead of pointer_hash.
	* semantics.c (nrv_data): Likewise.
	* tree.c (verify_stmt_tree_r, verify_stmt_tree): Likewise.

gcc/java/
	* jcf-io.c (charstar_hash): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.

gcc/lto/
	* lto.c (tree_scc_hasher): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.

gcc/objc/
	* objc-act.c (decl_name_hash): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.

libcc1/
	* plugin.cc (string_hasher): Inherit from nofree_ptr_hash rather
	than typed_noop_remove.  Remove redudant typedefs.
	(plugin_context): Use nofree_ptr_hash rather than pointer_hash.
	(plugin_context::mark): Likewise.

From-SVN: r224957
2015-06-25 17:06:13 +00:00
Richard Sandiford
843adf8844 gcc/
* hash-traits.h (pointer_hash::mark_deleted, pointer_hash::mark_empty)
	(pointer_hash::is_deleted, pointer_hash::is_empty): New functions.

From-SVN: r224956
2015-06-25 17:06:02 +00:00
Richard Sandiford
5ac6389bc1 hash-traits.h (ggc_hasher::remove): Take a reference parameter.
gcc/
	* hash-traits.h (ggc_hasher::remove): Take a reference parameter.
	(ggc_hasher::ggc_mx): Likewise.
	(ggc_cache_hasher): Inherit from ggc_hasher.  Remove definitions
	that duplicate ggc_hasher ones.

From-SVN: r224955
2015-06-25 17:05:55 +00:00
Richard Sandiford
08ec27543d decl.c (value_annotation_hasher::handle_cache_entry): Delete.
gcc/ada/
	* gcc-interface/decl.c (value_annotation_hasher::handle_cache_entry):
	Delete.
	(value_annotation_hasher::keep_cache_entry): New function.
	* gcc-interface/utils.c (pad_type_hasher::handle_cache_entry):
	Delete.
	(pad_type_hasher::keep_cache_entry): New function.

gcc/
	* hash-table.h (hash_table): Add gt_cleare_cache as a friend.
	(gt_cleare_cache): Check here for deleted and empty entries.
	Replace handle_cache_entry with a call to keep_cache_entry.
	* hash-traits.h (ggc_cache_hasher::handle_cache_entry): Delete.
	(ggc_cache_hasher::keep_cache_entry): New function.
	* trans-mem.c (tm_wrapper_hasher::handle_cache_entry): Delete.
	(tm_wrapper_hasher::keep_cache_entry): New function.
	* tree.h (tree_decl_map_cache_hasher::handle_cache_entry): Delete.
	(tree_vec_map_cache_hasher::keep_cache_entry): New function.
	* tree.c (type_cache_hasher::handle_cache_entry): Delete.
	(type_cache_hasher::keep_cache_entry): New function.
	(tree_vec_map_cache_hasher::handle_cache_entry): Delete.
	(tree_vec_map_cache_hasher::keep_cache_entry): New function.
	* ubsan.c (tree_type_map_cache_hasher::handle_cache_entry): Delete.
	(tree_type_map_cache_hasher::keep_cache_entry): New function.
	* varasm.c (tm_clone_hasher::handle_cache_entry): Delete.
	(tm_clone_hasher::keep_cache_entry): New function.
	* config/i386/i386.c (dllimport_hasher::handle_cache_entry): Delete.
	(dllimport_hasher::keep_cache_entry): New function.

From-SVN: r224954
2015-06-25 17:05:47 +00:00
Richard Sandiford
f11c37791e hash-table.h: Include hash-traits.h.
gcc/
	* hash-table.h: Include hash-traits.h.
	(typed_free_remove, typed_noop_remove, pointer_hash, ggc_hasher)
	(ggc_cache_hasher): Move to...
	* hash-traits.h: ...this new file.

From-SVN: r224953
2015-06-25 17:05:39 +00:00
Andrew MacLeod
fbf196a256 tree-core.h (struct tree_optimization_option): Make opts a pointer to struct cl_optimization.
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* tree-core.h (struct tree_optimization_option): Make opts a pointer to
	struct cl_optimization.
	* tree.h (TREE_OPTIMIZATION): Return the pointer, not the address of it.
	* tree.c (make_node_stat): Allocate cl_optimization struct.
	(copy_node_stat): Allocate and copy cl_optimization struct.

From-SVN: r224952
2015-06-25 17:03:33 +00:00
Andrew MacLeod
16a16ec7db function.h (struct incoming_args): Move struct.
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* function.h (struct incoming_args): Move struct.
	(pass_by_reference, reference_callee_copied): Remove prototypes.
	* emit-rtl.h (struct incoming_args): Relocate struct here.
	* calls.h (pass_by_reference, reference_callee_copied): Relocate
	prototypes here.
	* function.c (pass_by_reference, reference_callee_copied): Move.
	* calls.c (pass_by_reference, reference_callee_copied): Relocate here.
	* cfgloop.h: Don't include tm.h or hard-reg-set.h.
	* ipa-chkp.c: Include calls.h.

	* ada/gcc-interface/misc.c: Include calls.h not function.h.

	* c-family/cilk.c: Move calls.h after tm.h in the include chain.

From-SVN: r224951
2015-06-25 16:51:35 +00:00
Andrew Macleod
9cad7a76c3 Fix changelog mistake
From-SVN: r224950
2015-06-25 16:45:23 +00:00
Marek Polacek
0ae9bd2715 array-notation-common.c: Use VAR_P throughout.
* array-notation-common.c: Use VAR_P throughout.
	* c-ada-spec.c: Likewise.
	* c-common.c: Likewise.
	* c-format.c: Likewise.
	* c-gimplify.c: Likewise.
	* c-omp.c: Likewise.
	* c-pragma.c: Likewise.
	* c-pretty-print.c: Likewise.
	* cilk.c: Likewise.

	* c-array-notation.c: Use VAR_P throughout.
	* c-decl.c: Likewise.
	* c-objc-common.c: Likewise.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r224949
2015-06-25 16:38:31 +00:00
Andrew MacLeod
eee335102e alias.h (alias_set_type): Move typedef.
2015-06-25  Andrew Macleod  <amacleod@redhat.com>

	* alias.h (alias_set_type): Move typedef.
	* coretypes.h (alias_set_type): Relocate typedef here.
	* rtl.h: Don't include alias.h.
	* jit/jit-common.h: Likewise

From-SVN: r224948
2015-06-25 16:27:12 +00:00
Marek Polacek
62f9079a93 cilk.c (extract_free_variables): Use is_global_var.
* cilk.c (extract_free_variables): Use is_global_var.

	* c-decl.c: Use is_global_var throughout.
	* c-parser.c: Likewise.
	* c-typeck.c: Likewise.

From-SVN: r224947
2015-06-25 16:26:05 +00:00
Andrew MacLeod
88f554b4b9 cgraph.h (cgraph_rtl_info): Move to rtl.h
2015-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* cgraph.h (cgraph_rtl_info): Move to rtl.h
	(cgraph_node): Maintain pointer to struct cgraph_rtl_info instead of
	and instance.
	* rtl.h (struct cgraph_rtl_info): Define when HARD_REG_SET available.
	* cgraph.c (cgraph_node::rtl_info): Allocate cgraph_rtl_info if one
	doesn't exist.
	* calls.c: Include hard-reg-set.h before rtl.h.
	* ira.c: Likewise.

From-SVN: r224946
2015-06-25 16:23:52 +00:00
Zhouyi Zhou
06fbce663e ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
2015-06-25  Zhouyi Zhou  <yizhouzhou@ict.ac.cn>
	    Vladimir Makarov  <vmakarov@redhat.com>

	* ira-color.c (assign_hard_reg): Remove unecessary bitmap check.
	Add assert.


Co-Authored-By: Vladimir Makarov <vmakarov@redhat.com>

From-SVN: r224944
2015-06-25 15:03:33 +00:00
Richard Biener
1ffbaa3fec fold-const.c (fold_binary_loc): Move simplification of (X <<>> C1) & C2 ...
2015-06-25  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move simplification of
	(X <<>> C1) & C2 ...
	* match.pd: ... here.

	* gcc.dg/tree-ssa/pr52631.c: Disable forwprop.

From-SVN: r224943
2015-06-25 14:02:35 +00:00
Eric Botcazou
0cf094c0fc * lto-streamer-out.c (DFS::hash_scc): Fix typos & formatting glitches.
From-SVN: r224942
2015-06-25 13:58:43 +00:00
Richard Sandiford
f43d102e0e match.pd: Add patterns for vec_conds between 1 and 0.
gcc/
	* match.pd: Add patterns for vec_conds between 1 and 0.

gcc/testsuite/
	* gcc.target/aarch64/vect-add-sub-cond.c: New test.

From-SVN: r224941
2015-06-25 13:25:09 +00:00
Richard Biener
225ce44b67 tree-vect-stmts.c (vectorizable_conversion): Do not set STMT_VINFO_VEC_STMT for SLP.
2015-06-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vectorizable_conversion): Do not set
	STMT_VINFO_VEC_STMT for SLP.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vect_transform_stmt): Catch SLP vectorization clobbering
	STMT_VINFO_VEC_STMT.

From-SVN: r224939
2015-06-25 12:36:12 +00:00
Richard Biener
502f026363 tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug dumping.
2015-06-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Improve debug
	dumping.
	(vect_create_mask_and_perm): Do not set STMT_VINFO_VEC_STMT and
	cleanup resulting dead code and parameters.
	(vect_transform_slp_perm_load): Adjust.

	* gfortran.dg/vect/vect-9.f90: New testcase.

From-SVN: r224938
2015-06-25 12:34:46 +00:00
Nick Clifton
ed1332ee11 bfin.c (bfin_expand_prologue): Set current_function_static_stack_size if flag_stack_usage_info is set.
* config/bfin/bfin.c (bfin_expand_prologue): Set
     current_function_static_stack_size if flag_stack_usage_info is
     set.
     * config/ft32/ft32.c (ft32_expand_prologue): Likewise.
     * config/h8300/h8300.c (h8300_expand_prologue): Likewise.
     * config/iq2000/iq2000.c (iq2000_expand_prologue): Likewise.
     * config/m32c/m32c.c (m32c_emit_prologue): Likewise.

test * gcc.dg/stack-usage-1.c: Add SIZE values for V850, MN10300,
     H8300 and M32R targets.

From-SVN: r224937
2015-06-25 12:33:14 +00:00
Tom de Vries
b092fe39d0 Remove 'unsigned' in header comment canonicalize_loop_ivs
2015-06-25  Tom de Vries  <tom@codesourcery.com>

	* tree-ssa-loop-manip.c (canonicalize_loop_ivs): Don't claim in header
	comment that the generated IV is unsigned.

From-SVN: r224936
2015-06-25 11:17:03 +00:00
Ramana Radhakrishnan
238a4dba30 re PR target/29693 (ICE while compiling gcc-3.4.3 with gcc-4.1.1)
Fix PR target/29693



2015-06-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

	PR target/29693
	* config/arm/arm.c (arm_dbx_register_number): Return
	DWARF_FRAME_REGISTERS by default.

From-SVN: r224932
2015-06-25 08:18:19 +00:00
Tom de Vries
4081bdd252 Verify reused dominators info in calculate_dominance_info
2015-06-25  Tom de Vries  <tom@codesourcery.com>

	* dominance.c (calculate_dominance_info): Fix verify_dominators call
	argument.  Call verify_dominator when reusing dominator info.

From-SVN: r224931
2015-06-25 06:43:14 +00:00
GCC Administrator
6094199c1d Daily bump.
From-SVN: r224930
2015-06-25 00:16:11 +00:00
Manuel López-Ibáñez
5862c189c2 The problem is that diagnostic_action_after_output tries to delete the active pretty-printer which tries to delete its output_buffer...
The problem is that diagnostic_action_after_output tries to delete the active
pretty-printer which tries to delete its output_buffer, which is normally
dynamically allocated via placement-new, but the output_buffer used by the
error_buffer of Fortran is statically allocated. Being statically allocated
simplifies a lot pushing/poping several instances of error_buffer.

The solution is to reset the active output_buffer back to the default one
before calling diagnostic_action_after_output. This is a bit ugly, because this
function does use the output_buffer, however, at the point that Fortran calls
it, both are in an equivalent state, thus there is no visible difference.

gcc/testsuite/ChangeLog:

2015-06-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66528
	* gfortran.dg/maxerrors.f90: New test.

gcc/fortran/ChangeLog:

2015-06-24  Manuel López-Ibáñez  <manu@gcc.gnu.org>

	PR fortran/66528
	* error.c (gfc_warning_check): Restore the default output_buffer
	before calling diagnostic_action_after_output.
	(gfc_error_check): Likewise.
	(gfc_diagnostics_init): Add comment.

From-SVN: r224926
2015-06-24 22:16:42 +00:00
Kaz Kojima
b6d10e0b06 re PR target/66563 (ICE (segmentation fault) on sh4-linux-gnu)
PR target/66563
* [SH] Add a new operand to GOTaddr2picreg so to avoid CSE.  Modify caller
  of gen_GOTaddr2picreg.

From-SVN: r224925
2015-06-24 22:11:04 +00:00
DJ Delorie
efa165cd89 * gcc.dg/torture/pr66345.c: Fix assumption about size_t type.
From-SVN: r224924
2015-06-24 17:18:02 -04:00
François Dumont
e25d2617ac basic_string.h (basic_string<>::front()): Add !empty debug check.
2015-06-24  François Dumont  <fdumont@gcc.gnu.org>

	* include/bits/basic_string.h (basic_string<>::front()): Add !empty
	debug check.
	(basic_string<>::back()): Likewise.
	(basic_string<>::pop_back()): Likewise.

From-SVN: r224919
2015-06-24 20:12:05 +00:00
Jason Merrill
e6d6151387 re PR c++/66647 (ICE: in instantiate_class_template_1, at cp/pt.c:9254)
PR c++/66647
	* pt.c (dependent_type_p_r): Check for dependent alias template
	specialization sooner.

From-SVN: r224917
2015-06-24 15:59:28 -04:00
Alan Lawrence
31ca7cbaa8 [AArch64] Fix another ICE with -mgeneral-regs-only
gcc/:

	* config/aarch64/aarch64.md (<optab><fcvt_target><GPF:mode>2):
	Condition on TARGET_FLOAT.

gcc/testsuite/:

	* gcc.target/aarch64/mgeneral-regs_3.c: New.

From-SVN: r224910
2015-06-24 16:26:38 +00:00
Alan Lawrence
a591e1d14a [AArch64 Doc] Clarify feature modifiers {no,}{fp,simd,crypto}
gcc:

	* doc/invoke.texi: Clarify AArch64 feature modifiers (no)fp, (no)simd
	and (no)crypto.

From-SVN: r224909
2015-06-24 16:15:53 +00:00