1. 09 Jul, 2019 2 commits
    • PR c++/61339 - add mismatch between struct and class [-Wmismatched-tags] to non-bugs · 99b1c316
      gcc/c/ChangeLog:
      
      	PR c++/61339
      	* c-decl.c (xref_tag): Change class-key of PODs to struct and others
      	to class.
      	(field_decl_cmp): Same.
      	* c-parser.c (c_parser_struct_or_union_specifier): Same.
      	* c-tree.h: Same.
      	* gimple-parser.c (c_parser_gimple_compound_statement): Same.
      
      gcc/c-family/ChangeLog:
      
      	PR c++/61339
      	* c-opts.c (handle_deferred_opts): : Change class-key of PODs to struct
      	and others to class.
      	* c-pretty-print.h: Same.
      
      gcc/cp/ChangeLog:
      
      	PR c++/61339
      	* cp-tree.h: Change class-key of PODs to struct and others to class.
      	* search.c: Same.
      	* semantics.c (finalize_nrv_r): Same.
      
      gcc/lto/ChangeLog:
      
      	PR c++/61339
      	* lto-common.c (lto_splay_tree_new): : Change class-key of PODs
      	to struct and others to class.
      	(mentions_vars_p): Same.
      	(register_resolution): Same.
      	(lto_register_var_decl_in_symtab): Same.
      	(lto_register_function_decl_in_symtab): Same.
      	(cmp_tree): Same.
      	(lto_read_decls): Same.
      
      gcc/ChangeLog:
      
      	PR c++/61339
      	* auto-profile.c: Change class-key of PODs to struct and others
      	to class.
      	* basic-block.h: Same.
      	* bitmap.c (bitmap_alloc): Same.
      	* bitmap.h: Same.
      	* builtins.c (expand_builtin_prefetch): Same.
      	(expand_builtin_interclass_mathfn): Same.
      	(expand_builtin_strlen): Same.
      	(expand_builtin_mempcpy_args): Same.
      	(expand_cmpstr): Same.
      	(expand_builtin___clear_cache): Same.
      	(expand_ifn_atomic_bit_test_and): Same.
      	(expand_builtin_thread_pointer): Same.
      	(expand_builtin_set_thread_pointer): Same.
      	* caller-save.c (setup_save_areas): Same.
      	(replace_reg_with_saved_mem): Same.
      	(insert_restore): Same.
      	(insert_save): Same.
      	(add_used_regs): Same.
      	* cfg.c (get_bb_copy): Same.
      	(set_loop_copy): Same.
      	* cfg.h: Same.
      	* cfganal.h: Same.
      	* cfgexpand.c (alloc_stack_frame_space): Same.
      	(add_stack_var): Same.
      	(add_stack_var_conflict): Same.
      	(add_scope_conflicts_1): Same.
      	(update_alias_info_with_stack_vars): Same.
      	(expand_used_vars): Same.
      	* cfghooks.c (redirect_edge_and_branch_force): Same.
      	(delete_basic_block): Same.
      	(split_edge): Same.
      	(make_forwarder_block): Same.
      	(force_nonfallthru): Same.
      	(duplicate_block): Same.
      	(lv_flush_pending_stmts): Same.
      	* cfghooks.h: Same.
      	* cfgloop.c (flow_loops_cfg_dump): Same.
      	(flow_loop_nested_p): Same.
      	(superloop_at_depth): Same.
      	(get_loop_latch_edges): Same.
      	(flow_loop_dump): Same.
      	(flow_loops_dump): Same.
      	(flow_loops_free): Same.
      	(flow_loop_nodes_find): Same.
      	(establish_preds): Same.
      	(flow_loop_tree_node_add): Same.
      	(flow_loop_tree_node_remove): Same.
      	(flow_loops_find): Same.
      	(find_subloop_latch_edge_by_profile): Same.
      	(find_subloop_latch_edge_by_ivs): Same.
      	(mfb_redirect_edges_in_set): Same.
      	(form_subloop): Same.
      	(merge_latch_edges): Same.
      	(disambiguate_multiple_latches): Same.
      	(disambiguate_loops_with_multiple_latches): Same.
      	(flow_bb_inside_loop_p): Same.
      	(glb_enum_p): Same.
      	(get_loop_body_with_size): Same.
      	(get_loop_body): Same.
      	(fill_sons_in_loop): Same.
      	(get_loop_body_in_dom_order): Same.
      	(get_loop_body_in_custom_order): Same.
      	(release_recorded_exits): Same.
      	(get_loop_exit_edges): Same.
      	(num_loop_branches): Same.
      	(remove_bb_from_loops): Same.
      	(find_common_loop): Same.
      	(delete_loop): Same.
      	(cancel_loop): Same.
      	(verify_loop_structure): Same.
      	(loop_preheader_edge): Same.
      	(loop_exit_edge_p): Same.
      	(single_exit): Same.
      	(loop_exits_to_bb_p): Same.
      	(loop_exits_from_bb_p): Same.
      	(get_loop_location): Same.
      	(record_niter_bound): Same.
      	(get_estimated_loop_iterations_int): Same.
      	(max_stmt_executions_int): Same.
      	(likely_max_stmt_executions_int): Same.
      	(get_estimated_loop_iterations): Same.
      	(get_max_loop_iterations): Same.
      	(get_max_loop_iterations_int): Same.
      	(get_likely_max_loop_iterations): Same.
      	* cfgloop.h (simple_loop_desc): Same.
      	(get_loop): Same.
      	(loop_depth): Same.
      	(loop_outer): Same.
      	(loop_iterator::next): Same.
      	(loop_outermost): Same.
      	* cfgloopanal.c (mark_irreducible_loops): Same.
      	(num_loop_insns): Same.
      	(average_num_loop_insns): Same.
      	(expected_loop_iterations_unbounded): Same.
      	(expected_loop_iterations): Same.
      	(mark_loop_exit_edges): Same.
      	(single_likely_exit): Same.
      	* cfgloopmanip.c (fix_bb_placement): Same.
      	(fix_bb_placements): Same.
      	(remove_path): Same.
      	(place_new_loop): Same.
      	(add_loop): Same.
      	(scale_loop_frequencies): Same.
      	(scale_loop_profile): Same.
      	(create_empty_if_region_on_edge): Same.
      	(create_empty_loop_on_edge): Same.
      	(loopify): Same.
      	(unloop): Same.
      	(fix_loop_placements): Same.
      	(copy_loop_info): Same.
      	(duplicate_loop): Same.
      	(duplicate_subloops): Same.
      	(loop_redirect_edge): Same.
      	(can_duplicate_loop_p): Same.
      	(duplicate_loop_to_header_edge): Same.
      	(mfb_keep_just): Same.
      	(has_preds_from_loop): Same.
      	(create_preheader): Same.
      	(create_preheaders): Same.
      	(lv_adjust_loop_entry_edge): Same.
      	(loop_version): Same.
      	* cfgloopmanip.h: Same.
      	* cgraph.h: Same.
      	* cgraphbuild.c: Same.
      	* combine.c (make_extraction): Same.
      	* config/i386/i386-features.c: Same.
      	* config/i386/i386-features.h: Same.
      	* config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
      	(ix86_emit_outlined_ms2sysv_restore): Same.
      	(ix86_noce_conversion_profitable_p): Same.
      	(ix86_init_cost): Same.
      	(ix86_simd_clone_usable): Same.
      	* configure.ac: Same.
      	* coretypes.h: Same.
      	* data-streamer-in.c (string_for_index): Same.
      	(streamer_read_indexed_string): Same.
      	(streamer_read_string): Same.
      	(bp_unpack_indexed_string): Same.
      	(bp_unpack_string): Same.
      	(streamer_read_uhwi): Same.
      	(streamer_read_hwi): Same.
      	(streamer_read_gcov_count): Same.
      	(streamer_read_wide_int): Same.
      	* data-streamer.h (streamer_write_bitpack): Same.
      	(bp_unpack_value): Same.
      	(streamer_write_char_stream): Same.
      	(streamer_write_hwi_in_range): Same.
      	(streamer_write_record_start): Same.
      	* ddg.c (create_ddg_dep_from_intra_loop_link): Same.
      	(add_cross_iteration_register_deps): Same.
      	(build_intra_loop_deps): Same.
      	* df-core.c (df_analyze): Same.
      	(loop_post_order_compute): Same.
      	(loop_inverted_post_order_compute): Same.
      	* df-problems.c (df_rd_alloc): Same.
      	(df_rd_simulate_one_insn): Same.
      	(df_rd_local_compute): Same.
      	(df_rd_init_solution): Same.
      	(df_rd_confluence_n): Same.
      	(df_rd_transfer_function): Same.
      	(df_rd_free): Same.
      	(df_rd_dump_defs_set): Same.
      	(df_rd_top_dump): Same.
      	(df_lr_alloc): Same.
      	(df_lr_reset): Same.
      	(df_lr_local_compute): Same.
      	(df_lr_init): Same.
      	(df_lr_confluence_n): Same.
      	(df_lr_free): Same.
      	(df_lr_top_dump): Same.
      	(df_lr_verify_transfer_functions): Same.
      	(df_live_alloc): Same.
      	(df_live_reset): Same.
      	(df_live_init): Same.
      	(df_live_confluence_n): Same.
      	(df_live_finalize): Same.
      	(df_live_free): Same.
      	(df_live_top_dump): Same.
      	(df_live_verify_transfer_functions): Same.
      	(df_mir_alloc): Same.
      	(df_mir_reset): Same.
      	(df_mir_init): Same.
      	(df_mir_confluence_n): Same.
      	(df_mir_free): Same.
      	(df_mir_top_dump): Same.
      	(df_word_lr_alloc): Same.
      	(df_word_lr_reset): Same.
      	(df_word_lr_init): Same.
      	(df_word_lr_confluence_n): Same.
      	(df_word_lr_free): Same.
      	(df_word_lr_top_dump): Same.
      	(df_md_alloc): Same.
      	(df_md_simulate_one_insn): Same.
      	(df_md_reset): Same.
      	(df_md_init): Same.
      	(df_md_free): Same.
      	(df_md_top_dump): Same.
      	* df-scan.c (df_insn_delete): Same.
      	(df_insn_rescan): Same.
      	(df_notes_rescan): Same.
      	(df_sort_and_compress_mws): Same.
      	(df_install_mws): Same.
      	(df_refs_add_to_chains): Same.
      	(df_ref_create_structure): Same.
      	(df_ref_record): Same.
      	(df_def_record_1): Same.
      	(df_find_hard_reg_defs): Same.
      	(df_uses_record): Same.
      	(df_get_conditional_uses): Same.
      	(df_get_call_refs): Same.
      	(df_recompute_luids): Same.
      	(df_get_entry_block_def_set): Same.
      	(df_entry_block_defs_collect): Same.
      	(df_get_exit_block_use_set): Same.
      	(df_exit_block_uses_collect): Same.
      	(df_mws_verify): Same.
      	(df_bb_verify): Same.
      	* df.h (df_scan_get_bb_info): Same.
      	* doc/tm.texi: Same.
      	* dse.c (record_store): Same.
      	* dumpfile.h: Same.
      	* emit-rtl.c (const_fixed_hasher::equal): Same.
      	(set_mem_attributes_minus_bitpos): Same.
      	(change_address): Same.
      	(adjust_address_1): Same.
      	(offset_address): Same.
      	* emit-rtl.h: Same.
      	* except.c (dw2_build_landing_pads): Same.
      	(sjlj_emit_dispatch_table): Same.
      	* explow.c (allocate_dynamic_stack_space): Same.
      	(emit_stack_probe): Same.
      	(probe_stack_range): Same.
      	* expmed.c (store_bit_field_using_insv): Same.
      	(store_bit_field_1): Same.
      	(store_integral_bit_field): Same.
      	(extract_bit_field_using_extv): Same.
      	(extract_bit_field_1): Same.
      	(emit_cstore): Same.
      	* expr.c (emit_block_move_via_cpymem): Same.
      	(expand_cmpstrn_or_cmpmem): Same.
      	(set_storage_via_setmem): Same.
      	(emit_single_push_insn_1): Same.
      	(expand_assignment): Same.
      	(store_constructor): Same.
      	(expand_expr_real_2): Same.
      	(expand_expr_real_1): Same.
      	(try_casesi): Same.
      	* flags.h: Same.
      	* function.c (try_fit_stack_local): Same.
      	(assign_stack_local_1): Same.
      	(assign_stack_local): Same.
      	(cut_slot_from_list): Same.
      	(insert_slot_to_list): Same.
      	(max_slot_level): Same.
      	(move_slot_to_level): Same.
      	(temp_address_hasher::equal): Same.
      	(remove_unused_temp_slot_addresses): Same.
      	(assign_temp): Same.
      	(combine_temp_slots): Same.
      	(update_temp_slot_address): Same.
      	(preserve_temp_slots): Same.
      	* function.h: Same.
      	* fwprop.c: Same.
      	* gcc-rich-location.h: Same.
      	* gcov.c: Same.
      	* genattrtab.c (check_attr_test): Same.
      	(check_attr_value): Same.
      	(convert_set_attr_alternative): Same.
      	(convert_set_attr): Same.
      	(check_defs): Same.
      	(copy_boolean): Same.
      	(get_attr_value): Same.
      	(expand_delays): Same.
      	(make_length_attrs): Same.
      	(min_fn): Same.
      	(make_alternative_compare): Same.
      	(simplify_test_exp): Same.
      	(tests_attr_p): Same.
      	(get_attr_order): Same.
      	(clear_struct_flag): Same.
      	(gen_attr): Same.
      	(compares_alternatives_p): Same.
      	(gen_insn): Same.
      	(gen_delay): Same.
      	(find_attrs_to_cache): Same.
      	(write_test_expr): Same.
      	(walk_attr_value): Same.
      	(write_attr_get): Same.
      	(eliminate_known_true): Same.
      	(write_insn_cases): Same.
      	(write_attr_case): Same.
      	(write_attr_valueq): Same.
      	(write_attr_value): Same.
      	(write_dummy_eligible_delay): Same.
      	(next_comma_elt): Same.
      	(find_attr): Same.
      	(make_internal_attr): Same.
      	(copy_rtx_unchanging): Same.
      	(gen_insn_reserv): Same.
      	(check_tune_attr): Same.
      	(make_automaton_attrs): Same.
      	(handle_arg): Same.
      	* genextract.c (gen_insn): Same.
      	(VEC_char_to_string): Same.
      	* genmatch.c (print_operand): Same.
      	(lower): Same.
      	(parser::parse_operation): Same.
      	(parser::parse_capture): Same.
      	(parser::parse_c_expr): Same.
      	(parser::parse_simplify): Same.
      	(main): Same.
      	* genoutput.c (output_operand_data): Same.
      	(output_get_insn_name): Same.
      	(compare_operands): Same.
      	(place_operands): Same.
      	(process_template): Same.
      	(validate_insn_alternatives): Same.
      	(validate_insn_operands): Same.
      	(gen_expand): Same.
      	(note_constraint): Same.
      	* genpreds.c (write_one_predicate_function): Same.
      	(add_constraint): Same.
      	(process_define_register_constraint): Same.
      	(write_lookup_constraint_1): Same.
      	(write_lookup_constraint_array): Same.
      	(write_insn_constraint_len): Same.
      	(write_reg_class_for_constraint_1): Same.
      	(write_constraint_satisfied_p_array): Same.
      	* genrecog.c (optimize_subroutine_group): Same.
      	* gensupport.c (process_define_predicate): Same.
      	(queue_pattern): Same.
      	(remove_from_queue): Same.
      	(process_rtx): Same.
      	(is_predicable): Same.
      	(change_subst_attribute): Same.
      	(subst_pattern_match): Same.
      	(alter_constraints): Same.
      	(alter_attrs_for_insn): Same.
      	(shift_output_template): Same.
      	(alter_output_for_subst_insn): Same.
      	(process_one_cond_exec): Same.
      	(subst_dup): Same.
      	(process_define_cond_exec): Same.
      	(mnemonic_htab_callback): Same.
      	(gen_mnemonic_attr): Same.
      	(read_md_rtx): Same.
      	* ggc-page.c: Same.
      	* gimple-loop-interchange.cc (dump_reduction): Same.
      	(dump_induction): Same.
      	(loop_cand::~loop_cand): Same.
      	(free_data_refs_with_aux): Same.
      	(tree_loop_interchange::interchange_loops): Same.
      	(tree_loop_interchange::map_inductions_to_loop): Same.
      	(tree_loop_interchange::move_code_to_inner_loop): Same.
      	(compute_access_stride): Same.
      	(compute_access_strides): Same.
      	(proper_loop_form_for_interchange): Same.
      	(tree_loop_interchange_compute_ddrs): Same.
      	(prune_datarefs_not_in_loop): Same.
      	(prepare_data_references): Same.
      	(pass_linterchange::execute): Same.
      	* gimple-loop-jam.c (bb_prevents_fusion_p): Same.
      	(unroll_jam_possible_p): Same.
      	(fuse_loops): Same.
      	(adjust_unroll_factor): Same.
      	(tree_loop_unroll_and_jam): Same.
      	* gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
      	(loop_versioning::expensive_stmt_p): Same.
      	(loop_versioning::version_for_unity): Same.
      	(loop_versioning::dump_inner_likelihood): Same.
      	(loop_versioning::find_per_loop_multiplication): Same.
      	(loop_versioning::analyze_term_using_scevs): Same.
      	(loop_versioning::record_address_fragment): Same.
      	(loop_versioning::analyze_expr): Same.
      	(loop_versioning::analyze_blocks): Same.
      	(loop_versioning::prune_conditions): Same.
      	(loop_versioning::merge_loop_info): Same.
      	(loop_versioning::add_loop_to_queue): Same.
      	(loop_versioning::decide_whether_loop_is_versionable): Same.
      	(loop_versioning::make_versioning_decisions): Same.
      	(loop_versioning::implement_versioning_decisions): Same.
      	* gimple-ssa-evrp-analyze.c
      	(evrp_range_analyzer::record_ranges_from_phis): Same.
      	* gimple-ssa-store-merging.c (split_store::split_store): Same.
      	(count_multiple_uses): Same.
      	(split_group): Same.
      	(imm_store_chain_info::output_merged_store): Same.
      	(pass_store_merging::process_store): Same.
      	* gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
      	* gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
      	(is_max): Same.
      	(alloca_call_type): Same.
      	(pass_walloca::execute): Same.
      	* gimple-streamer-in.c (input_phi): Same.
      	(input_gimple_stmt): Same.
      	* gimple-streamer.h: Same.
      	* godump.c (go_force_record_alignment): Same.
      	(go_format_type): Same.
      	(go_output_type): Same.
      	(go_output_fndecl): Same.
      	(go_output_typedef): Same.
      	(keyword_hash_init): Same.
      	(find_dummy_types): Same.
      	* graph.c (draw_cfg_nodes_no_loops): Same.
      	(draw_cfg_nodes_for_loop): Same.
      	* hard-reg-set.h (hard_reg_set_iter_next): Same.
      	* hsa-brig.c: Same.
      	* hsa-common.h (hsa_internal_fn_hasher::equal): Same.
      	* hsa-dump.c (dump_hsa_cfun): Same.
      	* hsa-gen.c (gen_function_def_parameters): Same.
      	* hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
      	* input.c (dump_line_table_statistics): Same.
      	(test_lexer): Same.
      	* input.h: Same.
      	* internal-fn.c (get_multi_vector_move): Same.
      	(expand_load_lanes_optab_fn): Same.
      	(expand_GOMP_SIMT_ENTER_ALLOC): Same.
      	(expand_GOMP_SIMT_EXIT): Same.
      	(expand_GOMP_SIMT_LAST_LANE): Same.
      	(expand_GOMP_SIMT_ORDERED_PRED): Same.
      	(expand_GOMP_SIMT_VOTE_ANY): Same.
      	(expand_GOMP_SIMT_XCHG_BFLY): Same.
      	(expand_GOMP_SIMT_XCHG_IDX): Same.
      	(expand_addsub_overflow): Same.
      	(expand_neg_overflow): Same.
      	(expand_mul_overflow): Same.
      	(expand_call_mem_ref): Same.
      	(expand_mask_load_optab_fn): Same.
      	(expand_scatter_store_optab_fn): Same.
      	(expand_gather_load_optab_fn): Same.
      	* ipa-cp.c (ipa_get_parm_lattices): Same.
      	(print_all_lattices): Same.
      	(ignore_edge_p): Same.
      	(build_toporder_info): Same.
      	(free_toporder_info): Same.
      	(push_node_to_stack): Same.
      	(ipcp_lattice<valtype>::set_contains_variable): Same.
      	(set_agg_lats_to_bottom): Same.
      	(ipcp_bits_lattice::meet_with): Same.
      	(set_single_call_flag): Same.
      	(initialize_node_lattices): Same.
      	(ipa_get_jf_ancestor_result): Same.
      	(ipcp_verify_propagated_values): Same.
      	(propagate_scalar_across_jump_function): Same.
      	(propagate_context_across_jump_function): Same.
      	(propagate_bits_across_jump_function): Same.
      	(ipa_vr_operation_and_type_effects): Same.
      	(propagate_vr_across_jump_function): Same.
      	(set_check_aggs_by_ref): Same.
      	(set_chain_of_aglats_contains_variable): Same.
      	(merge_aggregate_lattices): Same.
      	(agg_pass_through_permissible_p): Same.
      	(propagate_aggs_across_jump_function): Same.
      	(call_passes_through_thunk_p): Same.
      	(propagate_constants_across_call): Same.
      	(devirtualization_time_bonus): Same.
      	(good_cloning_opportunity_p): Same.
      	(context_independent_aggregate_values): Same.
      	(gather_context_independent_values): Same.
      	(perform_estimation_of_a_value): Same.
      	(estimate_local_effects): Same.
      	(value_topo_info<valtype>::add_val): Same.
      	(add_all_node_vals_to_toposort): Same.
      	(value_topo_info<valtype>::propagate_effects): Same.
      	(ipcp_propagate_stage): Same.
      	(ipcp_discover_new_direct_edges): Same.
      	(same_node_or_its_all_contexts_clone_p): Same.
      	(cgraph_edge_brings_value_p): Same.
      	(gather_edges_for_value): Same.
      	(create_specialized_node): Same.
      	(find_more_scalar_values_for_callers_subset): Same.
      	(find_more_contexts_for_caller_subset): Same.
      	(copy_plats_to_inter): Same.
      	(intersect_aggregates_with_edge): Same.
      	(find_aggregate_values_for_callers_subset): Same.
      	(cgraph_edge_brings_all_agg_vals_for_node): Same.
      	(decide_about_value): Same.
      	(decide_whether_version_node): Same.
      	(spread_undeadness): Same.
      	(identify_dead_nodes): Same.
      	(ipcp_store_vr_results): Same.
      	* ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
      	* ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
      	(redirect_to_unreachable): Same.
      	(edge_set_predicate): Same.
      	(evaluate_conditions_for_known_args): Same.
      	(evaluate_properties_for_edge): Same.
      	(ipa_fn_summary_t::duplicate): Same.
      	(ipa_call_summary_t::duplicate): Same.
      	(dump_ipa_call_summary): Same.
      	(ipa_dump_fn_summary): Same.
      	(eliminated_by_inlining_prob): Same.
      	(set_cond_stmt_execution_predicate): Same.
      	(set_switch_stmt_execution_predicate): Same.
      	(compute_bb_predicates): Same.
      	(will_be_nonconstant_expr_predicate): Same.
      	(phi_result_unknown_predicate): Same.
      	(analyze_function_body): Same.
      	(compute_fn_summary): Same.
      	(estimate_edge_devirt_benefit): Same.
      	(estimate_edge_size_and_time): Same.
      	(estimate_calls_size_and_time): Same.
      	(estimate_node_size_and_time): Same.
      	(remap_edge_change_prob): Same.
      	(remap_edge_summaries): Same.
      	(ipa_merge_fn_summary_after_inlining): Same.
      	(ipa_fn_summary_generate): Same.
      	(inline_read_section): Same.
      	(ipa_fn_summary_read): Same.
      	(ipa_fn_summary_write): Same.
      	* ipa-fnsummary.h: Same.
      	* ipa-hsa.c (ipa_hsa_read_section): Same.
      	* ipa-icf-gimple.c (func_checker::compare_loops): Same.
      	* ipa-icf.c (sem_function::param_used_p): Same.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Same.
      	* ipa-inline.c (edge_badness): Same.
      	(inline_small_functions): Same.
      	* ipa-polymorphic-call.c
      	(ipa_polymorphic_call_context::stream_out): Same.
      	* ipa-predicate.c (predicate::remap_after_duplication): Same.
      	(predicate::remap_after_inlining): Same.
      	(predicate::stream_out): Same.
      	* ipa-predicate.h: Same.
      	* ipa-profile.c (ipa_profile_read_summary): Same.
      	* ipa-prop.c (ipa_get_param_decl_index_1): Same.
      	(count_formal_params): Same.
      	(ipa_dump_param): Same.
      	(ipa_alloc_node_params): Same.
      	(ipa_print_node_jump_functions_for_edge): Same.
      	(ipa_print_node_jump_functions): Same.
      	(ipa_load_from_parm_agg): Same.
      	(get_ancestor_addr_info): Same.
      	(ipa_compute_jump_functions_for_edge): Same.
      	(ipa_analyze_virtual_call_uses): Same.
      	(ipa_analyze_stmt_uses): Same.
      	(ipa_analyze_params_uses_in_bb): Same.
      	(update_jump_functions_after_inlining): Same.
      	(try_decrement_rdesc_refcount): Same.
      	(ipa_impossible_devirt_target): Same.
      	(update_indirect_edges_after_inlining): Same.
      	(combine_controlled_uses_counters): Same.
      	(ipa_edge_args_sum_t::duplicate): Same.
      	(ipa_write_jump_function): Same.
      	(ipa_write_indirect_edge_info): Same.
      	(ipa_write_node_info): Same.
      	(ipa_read_edge_info): Same.
      	(ipa_prop_read_section): Same.
      	(read_replacements_section): Same.
      	* ipa-prop.h (ipa_get_param_count): Same.
      	(ipa_get_param): Same.
      	(ipa_get_type): Same.
      	(ipa_get_param_move_cost): Same.
      	(ipa_set_param_used): Same.
      	(ipa_get_controlled_uses): Same.
      	(ipa_set_controlled_uses): Same.
      	(ipa_get_cs_argument_count): Same.
      	* ipa-pure-const.c (analyze_function): Same.
      	(pure_const_read_summary): Same.
      	* ipa-ref.h: Same.
      	* ipa-reference.c (ipa_reference_read_optimization_summary): Same.
      	* ipa-split.c (test_nonssa_use): Same.
      	(dump_split_point): Same.
      	(dominated_by_forbidden): Same.
      	(split_part_set_ssa_name_p): Same.
      	(find_split_points): Same.
      	* ira-build.c (finish_loop_tree_nodes): Same.
      	(low_pressure_loop_node_p): Same.
      	* ira-color.c (ira_reuse_stack_slot): Same.
      	* ira-int.h: Same.
      	* ira.c (setup_reg_equiv): Same.
      	(print_insn_chain): Same.
      	(ira): Same.
      	* loop-doloop.c (doloop_condition_get): Same.
      	(add_test): Same.
      	(record_reg_sets): Same.
      	(doloop_optimize): Same.
      	* loop-init.c (loop_optimizer_init): Same.
      	(fix_loop_structure): Same.
      	* loop-invariant.c (merge_identical_invariants): Same.
      	(compute_always_reached): Same.
      	(find_exits): Same.
      	(may_assign_reg_p): Same.
      	(find_invariants_bb): Same.
      	(find_invariants_body): Same.
      	(replace_uses): Same.
      	(can_move_invariant_reg): Same.
      	(free_inv_motion_data): Same.
      	(move_single_loop_invariants): Same.
      	(change_pressure): Same.
      	(mark_ref_regs): Same.
      	(calculate_loop_reg_pressure): Same.
      	* loop-iv.c (biv_entry_hasher::equal): Same.
      	(iv_extend_to_rtx_code): Same.
      	(check_iv_ref_table_size): Same.
      	(clear_iv_info): Same.
      	(latch_dominating_def): Same.
      	(iv_get_reaching_def): Same.
      	(iv_constant): Same.
      	(iv_subreg): Same.
      	(iv_extend): Same.
      	(iv_neg): Same.
      	(iv_add): Same.
      	(iv_mult): Same.
      	(get_biv_step): Same.
      	(record_iv): Same.
      	(analyzed_for_bivness_p): Same.
      	(record_biv): Same.
      	(iv_analyze_biv): Same.
      	(iv_analyze_expr): Same.
      	(iv_analyze_def): Same.
      	(iv_analyze_op): Same.
      	(iv_analyze): Same.
      	(iv_analyze_result): Same.
      	(biv_p): Same.
      	(eliminate_implied_conditions): Same.
      	(simplify_using_initial_values): Same.
      	(shorten_into_mode): Same.
      	(canonicalize_iv_subregs): Same.
      	(determine_max_iter): Same.
      	(check_simple_exit): Same.
      	(find_simple_exit): Same.
      	(get_simple_loop_desc): Same.
      	* loop-unroll.c (report_unroll): Same.
      	(decide_unrolling): Same.
      	(unroll_loops): Same.
      	(loop_exit_at_end_p): Same.
      	(decide_unroll_constant_iterations): Same.
      	(unroll_loop_constant_iterations): Same.
      	(compare_and_jump_seq): Same.
      	(unroll_loop_runtime_iterations): Same.
      	(decide_unroll_stupid): Same.
      	(unroll_loop_stupid): Same.
      	(referenced_in_one_insn_in_loop_p): Same.
      	(reset_debug_uses_in_loop): Same.
      	(analyze_iv_to_split_insn): Same.
      	* lra-eliminations.c (lra_debug_elim_table): Same.
      	(setup_can_eliminate): Same.
      	(form_sum): Same.
      	(lra_get_elimination_hard_regno): Same.
      	(lra_eliminate_regs_1): Same.
      	(eliminate_regs_in_insn): Same.
      	(update_reg_eliminate): Same.
      	(init_elimination): Same.
      	(lra_eliminate): Same.
      	* lra-int.h: Same.
      	* lra-lives.c (initiate_live_solver): Same.
      	* lra-remat.c (create_remat_bb_data): Same.
      	* lra-spills.c (lra_spill): Same.
      	* lra.c (lra_set_insn_recog_data): Same.
      	(lra_set_used_insn_alternative_by_uid): Same.
      	(init_reg_info): Same.
      	(expand_reg_info): Same.
      	* lto-cgraph.c (output_symtab): Same.
      	(read_identifier): Same.
      	(get_alias_symbol): Same.
      	(input_node): Same.
      	(input_varpool_node): Same.
      	(input_ref): Same.
      	(input_edge): Same.
      	(input_cgraph_1): Same.
      	(input_refs): Same.
      	(input_symtab): Same.
      	(input_offload_tables): Same.
      	(output_cgraph_opt_summary): Same.
      	(input_edge_opt_summary): Same.
      	(input_cgraph_opt_section): Same.
      	* lto-section-in.c (lto_free_raw_section_data): Same.
      	(lto_create_simple_input_block): Same.
      	(lto_free_function_in_decl_state_for_node): Same.
      	* lto-streamer-in.c (lto_tag_check_set): Same.
      	(lto_location_cache::revert_location_cache): Same.
      	(lto_location_cache::input_location): Same.
      	(lto_input_location): Same.
      	(stream_input_location_now): Same.
      	(lto_input_tree_ref): Same.
      	(lto_input_eh_catch_list): Same.
      	(input_eh_region): Same.
      	(lto_init_eh): Same.
      	(make_new_block): Same.
      	(input_cfg): Same.
      	(fixup_call_stmt_edges): Same.
      	(input_struct_function_base): Same.
      	(input_function): Same.
      	(lto_read_body_or_constructor): Same.
      	(lto_read_tree_1): Same.
      	(lto_read_tree): Same.
      	(lto_input_scc): Same.
      	(lto_input_tree_1): Same.
      	(lto_input_toplevel_asms): Same.
      	(lto_input_mode_table): Same.
      	(lto_reader_init): Same.
      	(lto_data_in_create): Same.
      	* lto-streamer-out.c (output_cfg): Same.
      	* lto-streamer.h: Same.
      	* modulo-sched.c (duplicate_insns_of_cycles): Same.
      	(generate_prolog_epilog): Same.
      	(mark_loop_unsched): Same.
      	(dump_insn_location): Same.
      	(loop_canon_p): Same.
      	(sms_schedule): Same.
      	* omp-expand.c (expand_omp_for_ordered_loops): Same.
      	(expand_omp_for_generic): Same.
      	(expand_omp_for_static_nochunk): Same.
      	(expand_omp_for_static_chunk): Same.
      	(expand_omp_simd): Same.
      	(expand_omp_taskloop_for_inner): Same.
      	(expand_oacc_for): Same.
      	(expand_omp_atomic_pipeline): Same.
      	(mark_loops_in_oacc_kernels_region): Same.
      	* omp-offload.c (oacc_xform_loop): Same.
      	* omp-simd-clone.c (simd_clone_adjust): Same.
      	* optabs-query.c (get_traditional_extraction_insn): Same.
      	* optabs.c (expand_vector_broadcast): Same.
      	(expand_binop_directly): Same.
      	(expand_twoval_unop): Same.
      	(expand_twoval_binop): Same.
      	(expand_unop_direct): Same.
      	(emit_indirect_jump): Same.
      	(emit_conditional_move): Same.
      	(emit_conditional_neg_or_complement): Same.
      	(emit_conditional_add): Same.
      	(vector_compare_rtx): Same.
      	(expand_vec_perm_1): Same.
      	(expand_vec_perm_const): Same.
      	(expand_vec_cond_expr): Same.
      	(expand_vec_series_expr): Same.
      	(maybe_emit_atomic_exchange): Same.
      	(maybe_emit_sync_lock_test_and_set): Same.
      	(expand_atomic_compare_and_swap): Same.
      	(expand_atomic_load): Same.
      	(expand_atomic_store): Same.
      	(maybe_emit_op): Same.
      	(valid_multiword_target_p): Same.
      	(create_integer_operand): Same.
      	(maybe_legitimize_operand_same_code): Same.
      	(maybe_legitimize_operand): Same.
      	(create_convert_operand_from_type): Same.
      	(can_reuse_operands_p): Same.
      	(maybe_legitimize_operands): Same.
      	(maybe_gen_insn): Same.
      	(maybe_expand_insn): Same.
      	(maybe_expand_jump_insn): Same.
      	(expand_insn): Same.
      	* optabs.h (create_expand_operand): Same.
      	(create_fixed_operand): Same.
      	(create_output_operand): Same.
      	(create_input_operand): Same.
      	(create_convert_operand_to): Same.
      	(create_convert_operand_from): Same.
      	* optinfo.h: Same.
      	* poly-int.h: Same.
      	* predict.c (optimize_insn_for_speed_p): Same.
      	(optimize_loop_for_size_p): Same.
      	(optimize_loop_for_speed_p): Same.
      	(optimize_loop_nest_for_speed_p): Same.
      	(get_base_value): Same.
      	(predicted_by_loop_heuristics_p): Same.
      	(predict_extra_loop_exits): Same.
      	(predict_loops): Same.
      	(predict_paths_for_bb): Same.
      	(predict_paths_leading_to): Same.
      	(propagate_freq): Same.
      	(pass_profile::execute): Same.
      	* predict.h: Same.
      	* profile-count.c (profile_count::differs_from_p): Same.
      	(profile_probability::differs_lot_from_p): Same.
      	* profile-count.h: Same.
      	* profile.c (branch_prob): Same.
      	* regrename.c (free_chain_data): Same.
      	(mark_conflict): Same.
      	(create_new_chain): Same.
      	(merge_overlapping_regs): Same.
      	(init_rename_info): Same.
      	(merge_chains): Same.
      	(regrename_analyze): Same.
      	(regrename_do_replace): Same.
      	(scan_rtx_reg): Same.
      	(record_out_operands): Same.
      	(build_def_use): Same.
      	* regrename.h: Same.
      	* reload.h: Same.
      	* reload1.c (init_reload): Same.
      	(maybe_fix_stack_asms): Same.
      	(copy_reloads): Same.
      	(count_pseudo): Same.
      	(count_spilled_pseudo): Same.
      	(find_reg): Same.
      	(find_reload_regs): Same.
      	(select_reload_regs): Same.
      	(spill_hard_reg): Same.
      	(fixup_eh_region_note): Same.
      	(set_reload_reg): Same.
      	(allocate_reload_reg): Same.
      	(compute_reload_subreg_offset): Same.
      	(reload_adjust_reg_for_icode): Same.
      	(emit_input_reload_insns): Same.
      	(emit_output_reload_insns): Same.
      	(do_input_reload): Same.
      	(inherit_piecemeal_p): Same.
      	* rtl.h: Same.
      	* sanopt.c (maybe_get_dominating_check): Same.
      	(maybe_optimize_ubsan_ptr_ifn): Same.
      	(can_remove_asan_check): Same.
      	(maybe_optimize_asan_check_ifn): Same.
      	(sanopt_optimize_walker): Same.
      	* sched-deps.c (add_dependence_list): Same.
      	(chain_to_prev_insn): Same.
      	(add_insn_mem_dependence): Same.
      	(create_insn_reg_set): Same.
      	(maybe_extend_reg_info_p): Same.
      	(sched_analyze_reg): Same.
      	(sched_analyze_1): Same.
      	(get_implicit_reg_pending_clobbers): Same.
      	(chain_to_prev_insn_p): Same.
      	(deps_analyze_insn): Same.
      	(deps_start_bb): Same.
      	(sched_free_deps): Same.
      	(init_deps): Same.
      	(init_deps_reg_last): Same.
      	(free_deps): Same.
      	* sched-ebb.c: Same.
      	* sched-int.h: Same.
      	* sched-rgn.c (add_branch_dependences): Same.
      	(concat_insn_mem_list): Same.
      	(deps_join): Same.
      	(sched_rgn_compute_dependencies): Same.
      	* sel-sched-ir.c (reset_target_context): Same.
      	(copy_deps_context): Same.
      	(init_id_from_df): Same.
      	(has_dependence_p): Same.
      	(change_loops_latches): Same.
      	(bb_top_order_comparator): Same.
      	(make_region_from_loop_preheader): Same.
      	(sel_init_pipelining): Same.
      	(get_loop_nest_for_rgn): Same.
      	(make_regions_from_the_rest): Same.
      	(sel_is_loop_preheader_p): Same.
      	* sel-sched-ir.h (inner_loop_header_p): Same.
      	(get_all_loop_exits): Same.
      	* selftest.h: Same.
      	* sese.c (sese_build_liveouts): Same.
      	(sese_insert_phis_for_liveouts): Same.
      	* sese.h (defined_in_sese_p): Same.
      	* sreal.c (sreal::stream_out): Same.
      	* sreal.h: Same.
      	* streamer-hooks.h: Same.
      	* target-globals.c (save_target_globals): Same.
      	* target-globals.h: Same.
      	* target.def: Same.
      	* target.h: Same.
      	* targhooks.c (default_has_ifunc_p): Same.
      	(default_empty_mask_is_expensive): Same.
      	(default_init_cost): Same.
      	* targhooks.h: Same.
      	* toplev.c: Same.
      	* tree-affine.c (aff_combination_mult): Same.
      	(aff_combination_expand): Same.
      	(aff_combination_constant_multiple_p): Same.
      	* tree-affine.h: Same.
      	* tree-cfg.c (build_gimple_cfg): Same.
      	(replace_loop_annotate_in_block): Same.
      	(replace_uses_by): Same.
      	(remove_bb): Same.
      	(dump_cfg_stats): Same.
      	(gimple_duplicate_sese_region): Same.
      	(gimple_duplicate_sese_tail): Same.
      	(move_block_to_fn): Same.
      	(replace_block_vars_by_duplicates): Same.
      	(move_sese_region_to_fn): Same.
      	(print_loops_bb): Same.
      	(print_loop): Same.
      	(print_loops): Same.
      	(debug): Same.
      	(debug_loops): Same.
      	* tree-cfg.h: Same.
      	* tree-chrec.c (chrec_fold_plus_poly_poly): Same.
      	(chrec_fold_multiply_poly_poly): Same.
      	(chrec_evaluate): Same.
      	(chrec_component_in_loop_num): Same.
      	(reset_evolution_in_loop): Same.
      	(is_multivariate_chrec): Same.
      	(chrec_contains_symbols): Same.
      	(nb_vars_in_chrec): Same.
      	(chrec_convert_1): Same.
      	(chrec_convert_aggressive): Same.
      	* tree-chrec.h: Same.
      	* tree-core.h: Same.
      	* tree-data-ref.c (dump_data_dependence_relation): Same.
      	(canonicalize_base_object_address): Same.
      	(data_ref_compare_tree): Same.
      	(prune_runtime_alias_test_list): Same.
      	(get_segment_min_max): Same.
      	(create_intersect_range_checks): Same.
      	(conflict_fn_no_dependence): Same.
      	(object_address_invariant_in_loop_p): Same.
      	(analyze_ziv_subscript): Same.
      	(analyze_siv_subscript_cst_affine): Same.
      	(analyze_miv_subscript): Same.
      	(analyze_overlapping_iterations): Same.
      	(build_classic_dist_vector_1): Same.
      	(add_other_self_distances): Same.
      	(same_access_functions): Same.
      	(build_classic_dir_vector): Same.
      	(subscript_dependence_tester_1): Same.
      	(subscript_dependence_tester): Same.
      	(access_functions_are_affine_or_constant_p): Same.
      	(get_references_in_stmt): Same.
      	(loop_nest_has_data_refs): Same.
      	(graphite_find_data_references_in_stmt): Same.
      	(find_data_references_in_bb): Same.
      	(get_base_for_alignment): Same.
      	(find_loop_nest_1): Same.
      	(find_loop_nest): Same.
      	* tree-data-ref.h (dr_alignment): Same.
      	(ddr_dependence_level): Same.
      	* tree-if-conv.c (fold_build_cond_expr): Same.
      	(add_to_predicate_list): Same.
      	(add_to_dst_predicate_list): Same.
      	(phi_convertible_by_degenerating_args): Same.
      	(idx_within_array_bound): Same.
      	(all_preds_critical_p): Same.
      	(pred_blocks_visited_p): Same.
      	(predicate_bbs): Same.
      	(build_region): Same.
      	(if_convertible_loop_p_1): Same.
      	(is_cond_scalar_reduction): Same.
      	(predicate_scalar_phi): Same.
      	(remove_conditions_and_labels): Same.
      	(combine_blocks): Same.
      	(version_loop_for_if_conversion): Same.
      	(versionable_outer_loop_p): Same.
      	(ifcvt_local_dce): Same.
      	(tree_if_conversion): Same.
      	(pass_if_conversion::gate): Same.
      	* tree-if-conv.h: Same.
      	* tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
      	* tree-loop-distribution.c (bb_top_order_cmp): Same.
      	(free_rdg): Same.
      	(stmt_has_scalar_dependences_outside_loop): Same.
      	(copy_loop_before): Same.
      	(create_bb_after_loop): Same.
      	(const_with_all_bytes_same): Same.
      	(generate_memset_builtin): Same.
      	(generate_memcpy_builtin): Same.
      	(destroy_loop): Same.
      	(build_rdg_partition_for_vertex): Same.
      	(compute_access_range): Same.
      	(data_ref_segment_size): Same.
      	(latch_dominated_by_data_ref): Same.
      	(compute_alias_check_pairs): Same.
      	(fuse_memset_builtins): Same.
      	(finalize_partitions): Same.
      	(find_seed_stmts_for_distribution): Same.
      	(prepare_perfect_loop_nest): Same.
      	* tree-parloops.c (lambda_transform_legal_p): Same.
      	(loop_parallel_p): Same.
      	(reduc_stmt_res): Same.
      	(add_field_for_name): Same.
      	(create_call_for_reduction_1): Same.
      	(replace_uses_in_bb_by): Same.
      	(transform_to_exit_first_loop_alt): Same.
      	(try_transform_to_exit_first_loop_alt): Same.
      	(transform_to_exit_first_loop): Same.
      	(num_phis): Same.
      	(gen_parallel_loop): Same.
      	(gather_scalar_reductions): Same.
      	(get_omp_data_i_param): Same.
      	(try_create_reduction_list): Same.
      	(oacc_entry_exit_single_gang): Same.
      	(parallelize_loops): Same.
      	* tree-pass.h: Same.
      	* tree-predcom.c (determine_offset): Same.
      	(last_always_executed_block): Same.
      	(split_data_refs_to_components): Same.
      	(suitable_component_p): Same.
      	(valid_initializer_p): Same.
      	(find_looparound_phi): Same.
      	(insert_looparound_copy): Same.
      	(add_looparound_copies): Same.
      	(determine_roots_comp): Same.
      	(predcom_tmp_var): Same.
      	(initialize_root_vars): Same.
      	(initialize_root_vars_store_elim_1): Same.
      	(initialize_root_vars_store_elim_2): Same.
      	(finalize_eliminated_stores): Same.
      	(initialize_root_vars_lm): Same.
      	(remove_stmt): Same.
      	(determine_unroll_factor): Same.
      	(execute_pred_commoning_cbck): Same.
      	(base_names_in_chain_on): Same.
      	(combine_chains): Same.
      	(pcom_stmt_dominates_stmt_p): Same.
      	(try_combine_chains): Same.
      	(prepare_initializers_chain_store_elim): Same.
      	(prepare_initializers_chain): Same.
      	(prepare_initializers): Same.
      	(prepare_finalizers_chain): Same.
      	(prepare_finalizers): Same.
      	(insert_init_seqs): Same.
      	* tree-scalar-evolution.c (loop_phi_node_p): Same.
      	(compute_overall_effect_of_inner_loop): Same.
      	(add_to_evolution_1): Same.
      	(add_to_evolution): Same.
      	(follow_ssa_edge_binary): Same.
      	(follow_ssa_edge_expr): Same.
      	(backedge_phi_arg_p): Same.
      	(follow_ssa_edge_in_condition_phi_branch): Same.
      	(follow_ssa_edge_in_condition_phi): Same.
      	(follow_ssa_edge_inner_loop_phi): Same.
      	(follow_ssa_edge): Same.
      	(analyze_evolution_in_loop): Same.
      	(analyze_initial_condition): Same.
      	(interpret_loop_phi): Same.
      	(interpret_condition_phi): Same.
      	(interpret_rhs_expr): Same.
      	(interpret_expr): Same.
      	(interpret_gimple_assign): Same.
      	(analyze_scalar_evolution_1): Same.
      	(analyze_scalar_evolution): Same.
      	(analyze_scalar_evolution_for_address_of): Same.
      	(get_instantiated_value_entry): Same.
      	(loop_closed_phi_def): Same.
      	(instantiate_scev_name): Same.
      	(instantiate_scev_poly): Same.
      	(instantiate_scev_binary): Same.
      	(instantiate_scev_convert): Same.
      	(instantiate_scev_not): Same.
      	(instantiate_scev_r): Same.
      	(instantiate_scev): Same.
      	(resolve_mixers): Same.
      	(initialize_scalar_evolutions_analyzer): Same.
      	(scev_reset_htab): Same.
      	(scev_reset): Same.
      	(derive_simple_iv_with_niters): Same.
      	(simple_iv_with_niters): Same.
      	(expression_expensive_p): Same.
      	(final_value_replacement_loop): Same.
      	* tree-scalar-evolution.h (block_before_loop): Same.
      	* tree-ssa-address.h: Same.
      	* tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
      	* tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
      	(record_edge_info): Same.
      	* tree-ssa-live.c (var_map_base_fini): Same.
      	(remove_unused_locals): Same.
      	* tree-ssa-live.h: Same.
      	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
      	(pass_ch_vect::execute): Same.
      	(pass_ch::process_loop_p): Same.
      	* tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
      	(movement_possibility): Same.
      	(outermost_invariant_loop): Same.
      	(stmt_cost): Same.
      	(determine_max_movement): Same.
      	(invariantness_dom_walker::before_dom_children): Same.
      	(move_computations): Same.
      	(may_move_till): Same.
      	(force_move_till_op): Same.
      	(force_move_till): Same.
      	(memref_free): Same.
      	(record_mem_ref_loc): Same.
      	(set_ref_stored_in_loop): Same.
      	(mark_ref_stored): Same.
      	(sort_bbs_in_loop_postorder_cmp): Same.
      	(sort_locs_in_loop_postorder_cmp): Same.
      	(analyze_memory_references): Same.
      	(mem_refs_may_alias_p): Same.
      	(find_ref_loc_in_loop_cmp): Same.
      	(rewrite_mem_ref_loc::operator): Same.
      	(first_mem_ref_loc_1::operator): Same.
      	(sm_set_flag_if_changed::operator): Same.
      	(execute_sm_if_changed_flag_set): Same.
      	(execute_sm): Same.
      	(hoist_memory_references): Same.
      	(ref_always_accessed::operator): Same.
      	(refs_independent_p): Same.
      	(record_dep_loop): Same.
      	(ref_indep_loop_p_1): Same.
      	(ref_indep_loop_p): Same.
      	(can_sm_ref_p): Same.
      	(find_refs_for_sm): Same.
      	(loop_suitable_for_sm): Same.
      	(store_motion_loop): Same.
      	(store_motion): Same.
      	(fill_always_executed_in): Same.
      	* tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
      	(estimated_unrolled_size): Same.
      	(loop_edge_to_cancel): Same.
      	(remove_exits_and_undefined_stmts): Same.
      	(remove_redundant_iv_tests): Same.
      	(unloop_loops): Same.
      	(estimated_peeled_sequence_size): Same.
      	(try_peel_loop): Same.
      	(canonicalize_loop_induction_variables): Same.
      	(canonicalize_induction_variables): Same.
      	* tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
      	(name_info): Same.
      	(stmt_after_inc_pos): Same.
      	(contains_abnormal_ssa_name_p): Same.
      	(niter_for_exit): Same.
      	(find_bivs): Same.
      	(mark_bivs): Same.
      	(find_givs_in_bb): Same.
      	(find_induction_variables): Same.
      	(find_interesting_uses_cond): Same.
      	(outermost_invariant_loop_for_expr): Same.
      	(idx_find_step): Same.
      	(add_candidate_1): Same.
      	(add_iv_candidate_derived_from_uses): Same.
      	(alloc_use_cost_map): Same.
      	(prepare_decl_rtl): Same.
      	(generic_predict_doloop_p): Same.
      	(computation_cost): Same.
      	(determine_common_wider_type): Same.
      	(get_computation_aff_1): Same.
      	(get_use_type): Same.
      	(determine_group_iv_cost_address): Same.
      	(iv_period): Same.
      	(difference_cannot_overflow_p): Same.
      	(may_eliminate_iv): Same.
      	(determine_set_costs): Same.
      	(cheaper_cost_pair): Same.
      	(compare_cost_pair): Same.
      	(iv_ca_cand_for_group): Same.
      	(iv_ca_recount_cost): Same.
      	(iv_ca_set_remove_invs): Same.
      	(iv_ca_set_no_cp): Same.
      	(iv_ca_set_add_invs): Same.
      	(iv_ca_set_cp): Same.
      	(iv_ca_add_group): Same.
      	(iv_ca_cost): Same.
      	(iv_ca_compare_deps): Same.
      	(iv_ca_delta_reverse): Same.
      	(iv_ca_delta_commit): Same.
      	(iv_ca_cand_used_p): Same.
      	(iv_ca_delta_free): Same.
      	(iv_ca_new): Same.
      	(iv_ca_free): Same.
      	(iv_ca_dump): Same.
      	(iv_ca_extend): Same.
      	(iv_ca_narrow): Same.
      	(iv_ca_prune): Same.
      	(cheaper_cost_with_cand): Same.
      	(iv_ca_replace): Same.
      	(try_add_cand_for): Same.
      	(get_initial_solution): Same.
      	(try_improve_iv_set): Same.
      	(find_optimal_iv_set_1): Same.
      	(create_new_iv): Same.
      	(rewrite_use_compare): Same.
      	(remove_unused_ivs): Same.
      	(determine_scaling_factor): Same.
      	* tree-ssa-loop-ivopts.h: Same.
      	* tree-ssa-loop-manip.c (create_iv): Same.
      	(compute_live_loop_exits): Same.
      	(add_exit_phi): Same.
      	(add_exit_phis): Same.
      	(find_uses_to_rename_use): Same.
      	(find_uses_to_rename_def): Same.
      	(find_uses_to_rename_in_loop): Same.
      	(rewrite_into_loop_closed_ssa): Same.
      	(check_loop_closed_ssa_bb): Same.
      	(split_loop_exit_edge): Same.
      	(ip_end_pos): Same.
      	(ip_normal_pos): Same.
      	(copy_phi_node_args): Same.
      	(gimple_duplicate_loop_to_header_edge): Same.
      	(can_unroll_loop_p): Same.
      	(determine_exit_conditions): Same.
      	(scale_dominated_blocks_in_loop): Same.
      	(niter_for_unrolled_loop): Same.
      	(tree_transform_and_unroll_loop): Same.
      	(rewrite_all_phi_nodes_with_iv): Same.
      	* tree-ssa-loop-manip.h: Same.
      	* tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
      	(number_of_iterations_ne): Same.
      	(assert_no_overflow_lt): Same.
      	(assert_loop_rolls_lt): Same.
      	(number_of_iterations_lt): Same.
      	(adjust_cond_for_loop_until_wrap): Same.
      	(tree_simplify_using_condition): Same.
      	(simplify_using_initial_conditions): Same.
      	(simplify_using_outer_evolutions): Same.
      	(loop_only_exit_p): Same.
      	(ssa_defined_by_minus_one_stmt_p): Same.
      	(number_of_iterations_popcount): Same.
      	(number_of_iterations_exit): Same.
      	(find_loop_niter): Same.
      	(finite_loop_p): Same.
      	(chain_of_csts_start): Same.
      	(get_val_for): Same.
      	(loop_niter_by_eval): Same.
      	(derive_constant_upper_bound_ops): Same.
      	(do_warn_aggressive_loop_optimizations): Same.
      	(record_estimate): Same.
      	(get_cst_init_from_scev): Same.
      	(record_nonwrapping_iv): Same.
      	(idx_infer_loop_bounds): Same.
      	(infer_loop_bounds_from_ref): Same.
      	(infer_loop_bounds_from_array): Same.
      	(infer_loop_bounds_from_pointer_arith): Same.
      	(infer_loop_bounds_from_signedness): Same.
      	(bound_index): Same.
      	(discover_iteration_bound_by_body_walk): Same.
      	(maybe_lower_iteration_bound): Same.
      	(estimate_numbers_of_iterations): Same.
      	(estimated_loop_iterations): Same.
      	(estimated_loop_iterations_int): Same.
      	(max_loop_iterations): Same.
      	(max_loop_iterations_int): Same.
      	(likely_max_loop_iterations): Same.
      	(likely_max_loop_iterations_int): Same.
      	(estimated_stmt_executions_int): Same.
      	(max_stmt_executions): Same.
      	(likely_max_stmt_executions): Same.
      	(estimated_stmt_executions): Same.
      	(stmt_dominates_stmt_p): Same.
      	(nowrap_type_p): Same.
      	(loop_exits_before_overflow): Same.
      	(scev_var_range_cant_overflow): Same.
      	(scev_probably_wraps_p): Same.
      	(free_numbers_of_iterations_estimates): Same.
      	* tree-ssa-loop-niter.h: Same.
      	* tree-ssa-loop-prefetch.c (release_mem_refs): Same.
      	(idx_analyze_ref): Same.
      	(analyze_ref): Same.
      	(gather_memory_references_ref): Same.
      	(mark_nontemporal_store): Same.
      	(emit_mfence_after_loop): Same.
      	(may_use_storent_in_loop_p): Same.
      	(mark_nontemporal_stores): Same.
      	(should_unroll_loop_p): Same.
      	(volume_of_dist_vector): Same.
      	(add_subscript_strides): Same.
      	(self_reuse_distance): Same.
      	(insn_to_prefetch_ratio_too_small_p): Same.
      	* tree-ssa-loop-split.c (split_at_bb_p): Same.
      	(patch_loop_exit): Same.
      	(find_or_create_guard_phi): Same.
      	(easy_exit_values): Same.
      	(connect_loop_phis): Same.
      	(connect_loops): Same.
      	(compute_new_first_bound): Same.
      	(split_loop): Same.
      	(tree_ssa_split_loops): Same.
      	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
      	(is_maybe_undefined): Same.
      	(tree_may_unswitch_on): Same.
      	(simplify_using_entry_checks): Same.
      	(tree_unswitch_single_loop): Same.
      	(tree_unswitch_loop): Same.
      	(tree_unswitch_outer_loop): Same.
      	(empty_bb_without_guard_p): Same.
      	(used_outside_loop_p): Same.
      	(get_vop_from_header): Same.
      	(hoist_guard): Same.
      	* tree-ssa-loop.c (gate_oacc_kernels): Same.
      	(get_lsm_tmp_name): Same.
      	* tree-ssa-loop.h: Same.
      	* tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
      	(build_and_add_sum): Same.
      	(no_side_effect_bb): Same.
      	(get_ops): Same.
      	(linearize_expr): Same.
      	(should_break_up_subtract): Same.
      	(linearize_expr_tree): Same.
      	* tree-ssa-scopedtables.c: Same.
      	* tree-ssa-scopedtables.h: Same.
      	* tree-ssa-structalias.c (condense_visit): Same.
      	(label_visit): Same.
      	(dump_pred_graph): Same.
      	(perform_var_substitution): Same.
      	(move_complex_constraints): Same.
      	(remove_preds_and_fake_succs): Same.
      	* tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
      	(determine_bb_domination_status): Same.
      	(duplicate_thread_path): Same.
      	(thread_through_all_blocks): Same.
      	* tree-ssa-threadupdate.h: Same.
      	* tree-streamer-in.c (streamer_read_string_cst): Same.
      	(input_identifier): Same.
      	(unpack_ts_type_common_value_fields): Same.
      	(unpack_ts_block_value_fields): Same.
      	(unpack_ts_translation_unit_decl_value_fields): Same.
      	(unpack_ts_omp_clause_value_fields): Same.
      	(streamer_read_tree_bitfields): Same.
      	(streamer_alloc_tree): Same.
      	(lto_input_ts_common_tree_pointers): Same.
      	(lto_input_ts_vector_tree_pointers): Same.
      	(lto_input_ts_poly_tree_pointers): Same.
      	(lto_input_ts_complex_tree_pointers): Same.
      	(lto_input_ts_decl_minimal_tree_pointers): Same.
      	(lto_input_ts_decl_common_tree_pointers): Same.
      	(lto_input_ts_decl_non_common_tree_pointers): Same.
      	(lto_input_ts_decl_with_vis_tree_pointers): Same.
      	(lto_input_ts_field_decl_tree_pointers): Same.
      	(lto_input_ts_function_decl_tree_pointers): Same.
      	(lto_input_ts_type_common_tree_pointers): Same.
      	(lto_input_ts_type_non_common_tree_pointers): Same.
      	(lto_input_ts_list_tree_pointers): Same.
      	(lto_input_ts_vec_tree_pointers): Same.
      	(lto_input_ts_exp_tree_pointers): Same.
      	(lto_input_ts_block_tree_pointers): Same.
      	(lto_input_ts_binfo_tree_pointers): Same.
      	(lto_input_ts_constructor_tree_pointers): Same.
      	(lto_input_ts_omp_clause_tree_pointers): Same.
      	(streamer_read_tree_body): Same.
      	* tree-streamer.h: Same.
      	* tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
      	* tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
      	(vect_analyze_possibly_independent_ddr): Same.
      	(vect_analyze_data_ref_dependence): Same.
      	(vect_compute_data_ref_alignment): Same.
      	(vect_enhance_data_refs_alignment): Same.
      	(vect_analyze_data_ref_access): Same.
      	(vect_check_gather_scatter): Same.
      	(vect_find_stmt_data_reference): Same.
      	(vect_create_addr_base_for_vector_ref): Same.
      	(vect_setup_realignment): Same.
      	(vect_supportable_dr_alignment): Same.
      	* tree-vect-loop-manip.c (rename_variables_in_bb): Same.
      	(adjust_phi_and_debug_stmts): Same.
      	(vect_set_loop_mask): Same.
      	(add_preheader_seq): Same.
      	(vect_maybe_permute_loop_masks): Same.
      	(vect_set_loop_masks_directly): Same.
      	(vect_set_loop_condition_masked): Same.
      	(vect_set_loop_condition_unmasked): Same.
      	(slpeel_duplicate_current_defs_from_edges): Same.
      	(slpeel_add_loop_guard): Same.
      	(slpeel_can_duplicate_loop_p): Same.
      	(create_lcssa_for_virtual_phi): Same.
      	(iv_phi_p): Same.
      	(vect_update_ivs_after_vectorizer): Same.
      	(vect_gen_vector_loop_niters_mult_vf): Same.
      	(slpeel_update_phi_nodes_for_loops): Same.
      	(slpeel_update_phi_nodes_for_guard1): Same.
      	(find_guard_arg): Same.
      	(slpeel_update_phi_nodes_for_guard2): Same.
      	(slpeel_update_phi_nodes_for_lcssa): Same.
      	(vect_do_peeling): Same.
      	(vect_create_cond_for_alias_checks): Same.
      	(vect_loop_versioning): Same.
      	* tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
      	(vect_inner_phi_in_double_reduction_p): Same.
      	(vect_analyze_scalar_cycles_1): Same.
      	(vect_fixup_scalar_cycles_with_patterns): Same.
      	(vect_get_loop_niters): Same.
      	(bb_in_loop_p): Same.
      	(vect_get_max_nscalars_per_iter): Same.
      	(vect_verify_full_masking): Same.
      	(vect_compute_single_scalar_iteration_cost): Same.
      	(vect_analyze_loop_form_1): Same.
      	(vect_analyze_loop_form): Same.
      	(vect_active_double_reduction_p): Same.
      	(vect_analyze_loop_operations): Same.
      	(neutral_op_for_slp_reduction): Same.
      	(vect_is_simple_reduction): Same.
      	(vect_model_reduction_cost): Same.
      	(get_initial_def_for_reduction): Same.
      	(get_initial_defs_for_reduction): Same.
      	(vect_create_epilog_for_reduction): Same.
      	(vectorize_fold_left_reduction): Same.
      	(vectorizable_reduction): Same.
      	(vectorizable_induction): Same.
      	(vectorizable_live_operation): Same.
      	(loop_niters_no_overflow): Same.
      	(vect_get_loop_mask): Same.
      	(vect_transform_loop_stmt): Same.
      	(vect_transform_loop): Same.
      	* tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
      	(vect_determine_precisions): Same.
      	(vect_pattern_recog_1): Same.
      	* tree-vect-slp.c (vect_analyze_slp_instance): Same.
      	* tree-vect-stmts.c (stmt_vectype): Same.
      	(process_use): Same.
      	(vect_init_vector_1): Same.
      	(vect_truncate_gather_scatter_offset): Same.
      	(get_group_load_store_type): Same.
      	(vect_build_gather_load_calls): Same.
      	(vect_get_strided_load_store_ops): Same.
      	(vectorizable_simd_clone_call): Same.
      	(vectorizable_store): Same.
      	(permute_vec_elements): Same.
      	(vectorizable_load): Same.
      	(vect_transform_stmt): Same.
      	(supportable_widening_operation): Same.
      	* tree-vectorizer.c (vec_info::replace_stmt): Same.
      	(vec_info::free_stmt_vec_info): Same.
      	(vect_free_loop_info_assumptions): Same.
      	(vect_loop_vectorized_call): Same.
      	(set_uid_loop_bbs): Same.
      	(vectorize_loops): Same.
      	* tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
      	* tree.c (add_tree_to_fld_list): Same.
      	(fld_type_variant_equal_p): Same.
      	(fld_decl_context): Same.
      	(fld_incomplete_type_of): Same.
      	(free_lang_data_in_binfo): Same.
      	(need_assembler_name_p): Same.
      	(find_decls_types_r): Same.
      	(get_eh_types_for_runtime): Same.
      	(find_decls_types_in_eh_region): Same.
      	(find_decls_types_in_node): Same.
      	(assign_assembler_name_if_needed): Same.
      	* value-prof.c (stream_out_histogram_value): Same.
      	* value-prof.h: Same.
      	* var-tracking.c (use_narrower_mode): Same.
      	(prepare_call_arguments): Same.
      	(vt_expand_loc_callback): Same.
      	(resolve_expansions_pending_recursion): Same.
      	(vt_expand_loc): Same.
      	* varasm.c (const_hash_1): Same.
      	(compare_constant): Same.
      	(tree_output_constant_def): Same.
      	(simplify_subtraction): Same.
      	(get_pool_constant): Same.
      	(output_constant_pool_2): Same.
      	(output_constant_pool_1): Same.
      	(mark_constants_in_pattern): Same.
      	(mark_constant_pool): Same.
      	(get_section_anchor): Same.
      	* vr-values.c (compare_range_with_value): Same.
      	(vr_values::extract_range_from_phi_node): Same.
      	* vr-values.h: Same.
      	* web.c (unionfind_union): Same.
      	* wide-int.h: Same.
      
      From-SVN: r273311
      Martin Sebor committed
    • PR c++/61339 - add mismatch between struct and class [-Wmismatched-tags] to non-bugs · 6c1dae73
      gcc/c/ChangeLog:
      
      	PR c++/61339
      	* c-decl.c: Change class-key from class to struct and vice versa
      	to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
      	* gimple-parser.c: Same.
      
      gcc/c-family/ChangeLog:
      
      	PR c++/61339
      	* c-format.c (check_argument_type): Change class-key from class to
      	struct and vice versa to match convention and avoid -Wclass-is-pod
      	and -Wstruct-no-pod.
      	* c-pretty-print.h: Same.
      
      gcc/cp/ChangeLog:
      
      	PR c++/61339
      	* constexpr.c (cxx_eval_call_expression): Change class-key from class
      	to struct and vice versa to match convention and avoid -Wclass-is-pod
      	and -Wstruct-no-pod.
      	* constraint.cc (get_concept_definition): Same.
      	* cp-tree.h: Same.
      	* cxx-pretty-print.h: Same.
      	* error.c: Same.
      	* logic.cc (term_list::replace): Same.
      	* name-lookup.c (find_local_binding): Same.
      	* pt.c (tsubst_binary_right_fold): Same.
      	* search.c (field_accessor_p): Same.
      	* semantics.c (expand_or_defer_fn): Same.
      
      gcc/lto/ChangeLog:
      
      	PR c++/61339
      	* lto-dump.c: Change class-key from classi to struct and vice versa
      	to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
      
      gcc/ChangeLog:
      
      	PR c++/61339
      	* align.h: Change class-key from class to struct and vice versa
      	to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
      	* alloc-pool.h: Same.
      	* asan.c (shadow_mem_size): Same.
      	* auto-profile.c: Same.
      	* basic-block.h: Same.
      	* bitmap.h: Same.
      	* cfgexpand.c (set_rtl): Same.
      	(expand_one_stack_var_at): Same.
      	* cfghooks.h: Same.
      	* cfgloop.h: Same.
      	* cgraph.h: Same.
      	* config/i386/i386.h: Same.
      	* df-problems.c (df_print_bb_index): Same.
      	* df-scan.c: Same.
      	* df.h (df_single_use): Same.
      	* diagnostic-show-locus.c (layout::print_annotation_line): Same.
      	(layout::annotation_line_showed_range_p): Same.
      	(get_printed_columns): Same.
      	(correction::ensure_terminated): Same.
      	(line_corrections::~line_corrections): Same.
      	* dojump.h: Same.
      	* dse.c: Same.
      	* dump-context.h: Same.
      	* dumpfile.h: Same.
      	* dwarf2out.c: Same.
      	* edit-context.c: Same.
      	* fibonacci_heap.c (test_union_of_equal_heaps): Same.
      	* flags.h: Same.
      	* function.c (assign_stack_local): Same.
      	* function.h: Same.
      	* gcc.c: Same.
      	* gcov.c (block_info::block_info): Same.
      	* genattrtab.c: Same.
      	* genextract.c: Same.
      	* genmatch.c (comparison_code_p): Same.
      	(id_base::id_base): Same.
      	(decision_tree::print): Same.
      	* genoutput.c: Same.
      	* genpreds.c (write_one_predicate_function): Same.
      	* genrecog.c (validate_pattern): Same.
      	(find_operand_positions): Same.
      	(optimize_subroutine_group): Same.
      	(merge_pattern_transition::merge_pattern_transition): Same.
      	(merge_pattern_info::merge_pattern_info): Same.
      	(merge_state_result::merge_state_result): Same.
      	(merge_into_state): Same.
      	* gensupport.c: Same.
      	* gensupport.h: Same.
      	* ggc-common.c (init_ggc_heuristics): Same.
      	* ggc-tests.c (test_union): Same.
      	* gimple-loop-interchange.cc (dump_induction): Same.
      	* gimple-loop-versioning.cc: Same.
      	* gimple-match.h (gimple_match_cond::any_else): Same.
      	* gimple-ssa-backprop.c: Same.
      	* gimple-ssa-sprintf.c: Same.
      	* gimple-ssa-store-merging.c (store_operand_info::store_operand_info): Same.
      	(store_immediate_info::store_immediate_info): Same.
      	(merged_store_group::apply_stores): Same.
      	(get_location_for_stmts): Same.
      	* gimple-ssa-strength-reduction.c: Same.
      	* gimple-ssa-warn-alloca.c: Same.
      	* gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
      	* godump.c (go_type_decl): Same.
      	* hash-map-tests.c (test_map_of_strings_to_int): Same.
      	* hash-map.h: Same.
      	* hash-set-tests.c (test_set_of_strings): Same.
      	* hsa-brig.c: Same.
      	* hsa-common.h: Same.
      	* hsa-gen.c (transformable_switch_to_sbr_p): Same.
      	* input.c (assert_loceq): Same.
      	* input.h: Same.
      	* ipa-cp.c: Same.
      	* ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
      	* ipa-fnsummary.h: Same.
      	* ipa-inline.h: Same.
      	* ipa-prop.h: Same.
      	* ipa-split.c (visit_bb): Same.
      	* ira-int.h (minmax_set_iter_next): Same.
      	* loop-invariant.c: Same.
      	* loop-iv.c: Same.
      	* lra-eliminations.c: Same.
      	* lra-int.h: Same.
      	* lra-lives.c (mark_regno_dead): Same.
      	* lra-remat.c: Same.
      	* lra-spills.c: Same.
      	* lto-streamer.h: Same.
      	* mem-stats.h: Same.
      	* omp-grid.c (omp_grid_lastprivate_predicate): Same.
      	* omp-low.c (omp_clause_aligned_alignment): Same.
      	* optabs-query.h (get_vcond_eq_icode): Same.
      	* optabs.h: Same.
      	* opts.c (wrap_help): Same.
      	* poly-int.h: Same.
      	* predict.c (predict_paths_leading_to_edge): Same.
      	* pretty-print.h: Same.
      	* profile-count.h: Same.
      	* read-md.h: Same.
      	* read-rtl-function.c: Same.
      	* ree.c: Same.
      	* reginfo.c: Same.
      	* regrename.c: Same.
      	* regrename.h: Same.
      	* reload.h: Same.
      	* rtl-iter.h: Same.
      	* rtl.h (costs_add_n_insns): Same.
      	* sanopt.c: Same.
      	* sched-int.h: Same.
      	* sel-sched-ir.h: Same.
      	* selftest.h: Same.
      	* sese.h (vec_find): Same.
      	* stmt.c: Same.
      	* target-globals.h: Same.
      	* tree-affine.c (aff_combination_find_elt): Same.
      	* tree-affine.h: Same.
      	* tree-data-ref.h: Same.
      	* tree-outof-ssa.c (ssa_is_replaceable_p): Same.
      	* tree-predcom.c: Same.
      	* tree-scalar-evolution.c (find_var_scev_info): Same.
      	* tree-ssa-alias.h: Same.
      	* tree-ssa-ccp.c: Same.
      	* tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
      	* tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
      	(rewrite_mem_refs): Same.
      	(execute_sm_if_changed): Same.
      	(hoist_memory_references): Same.
      	* tree-ssa-loop-ivopts.c (operator<=): Same.
      	* tree-ssa-loop.h: Same.
      	* tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
      	* tree-ssa-structalias.c: Same.
      	* tree-switch-conversion.h (cluster::cluster): Same.
      	(simple_cluster::simple_cluster): Same.
      	* tree-vect-patterns.c (type_conversion_p): Same.
      	* tree-vectorizer.c (dump_stmt_cost): Same.
      	* tree-vectorizer.h (loop_vec_info_for_loop): Same.
      	* tree.c (protected_set_expr_location): Same.
      	* tree.h (desired_pro_or_demotion_p): Same.
      	(fndecl_built_in_p): Same.
      	* unique-ptr-tests.cc: Same.
      	* var-tracking.c (delete_variable_part): Same.
      	* varasm.c (assemble_real): Same.
      	(tree_output_constant_def): Same.
      	* vec.c: Same.
      	* wide-int-bitmask.h: Same.
      	* wide-int.h (decompose): Same.
      
      From-SVN: r273308
      Martin Sebor committed
  2. 17 May, 2019 1 commit
    • trans.c (check_inlining_for_nested_subprog): Quote reserved names. · a9c697b8
      gcc/ada/ChangeLog:
      
              * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote
              reserved names.
      
      gcc/brig/ChangeLog:
      
              * brigfrontend/brig-control-handler.cc
              (brig_directive_control_handler::operator): Remove trailing newline
              from a diagnostic.
              * brigfrontend/brig-module-handler.cc
              (brig_directive_module_handler::operator): Remove a duplicated space
              from a diagnostic.
      
      gcc/c/ChangeLog:
      
              * c-decl.c (start_decl): Quote keywords, operators, and
              types in diagnostics.
              (finish_decl): Same.
              * c-parser.c (c_parser_asm_statement): Same.
              (c_parser_conditional_expression): Same.
              (c_parser_transaction_cancel): Same.
              * c-typeck.c (c_common_type): Same.
              (build_conditional_expr): Same.
              (digest_init): Same.
              (process_init_element): Same.
              (build_binary_op): Same.
      
      gcc/c-family/ChangeLog:
      
              * c-attribs.c (handle_no_sanitize_attribute): Quote identifiers,
              keywords, operators, and types in diagnostics.
              (handle_scalar_storage_order_attribute): Same.
              (handle_mode_attribute): Same.
              (handle_visibility_attribute): Same.
              (handle_assume_aligned_attribute): Same.
              (handle_no_split_stack_attribute): Same.
              * c-common.c (shorten_compare): Same.
              (c_common_truthvalue_conversion): Same.
              (cb_get_source_date_epoch): Same.
              * c-lex.c (cb_def_pragma): Quote keywords, operators, and types
              in diagnostics.
              (interpret_float): Same.
              * c-omp.c (c_finish_omp_for): Same.
              * c-opts.c (c_common_post_options): Same.
              * c-pch.c (c_common_pch_pragma): Same.
              * c-pragma.c (pop_alignment): Same.
              (handle_pragma_pack): Same.
              (apply_pragma_weak): Same.
              (handle_pragma_weak): Same.
              (handle_pragma_scalar_storage_order): Same.
              (handle_pragma_redefine_extname): Same.
              (add_to_renaming_pragma_list): Same.
              (maybe_apply_renaming_pragma): Same.
              (push_visibility): Same.
              (handle_pragma_visibility): Same.
              (handle_pragma_optimize): Same.
              (handle_pragma_message): Same.
              * c-warn.c (warn_for_omitted_condop): Same.
              (lvalue_error): Same.
      
      gcc/cp/ChangeLog:
      
              * call.c (print_z_candidate): Wrap diagnostic text in a gettext
              macro.  Adjust.
              (print_z_candidates): Same.
              (build_conditional_expr_1): Quote keywords, operators, and types
              in diagnostics.
              (build_op_delete_call): Same.
              (maybe_print_user_conv_context): Wrap diagnostic text in a gettext
              macro.
              (convert_like_real): Same.
              (convert_arg_to_ellipsis): Quote keywords, operators, and types
              in diagnostics.
              (build_over_call): Same.
              (joust): Break up an overlong line.  Wrap diagnostic text in a gettext
              macro.
              * constexpr.c (cxx_eval_check_shift_p): Spell out >= in English.
              (cxx_eval_constant_expression): Quote keywords, operators, and types
              in diagnostics.
              (potential_constant_expression_1): Same.
              * cp-gimplify.c (cp_genericize_r): Same.
              * cvt.c (maybe_warn_nodiscard): Quote keywords, operators, and types
              in diagnostics.
              (type_promotes_to): Same.
              * decl.c (check_previous_goto_1): Same.
              (check_goto): Same.
              (start_decl): Same.
              (cp_finish_decl): Avoid parenthesizing a sentence for consistency.
              (grok_op_properties): Quote keywords, operators, and types
              in diagnostics.
              * decl2.c (grokfield): Same.
              (coerce_delete_type): Same.
              * except.c (is_admissible_throw_operand_or_catch_parameter): Same.
              * friend.c (do_friend): Quote C++ tokens.
              * init.c (build_new_1): Quote keywords, operators, and types
              in diagnostics.
              (build_vec_delete_1): Same.
              (build_delete): Same.
              * lex.c (parse_strconst_pragma): Same.
              (handle_pragma_implementation): Same.
              (unqualified_fn_lookup_error): Same.
              * mangle.c (write_type): Same.
              * method.c (defaulted_late_check): Avoid two consecutive punctuators.
              * name-lookup.c (cp_binding_level_debug): Remove a trailing newline.
              (pop_everything): Same.
              * parser.c (cp_lexer_start_debugging): Quote a macro name.
              in a diagnostic
              (cp_lexer_stop_debugging): Same.
              (cp_parser_userdef_numeric_literal): Quote a C++ header name
              in a diagnostic.
              (cp_parser_nested_name_specifier_opt): Quote keywords, operators,
              and types in diagnostics.
              (cp_parser_question_colon_clause): Same.
              (cp_parser_asm_definition): Same.
              (cp_parser_init_declarator): Same.
              (cp_parser_template_declaration_after_parameters): Avoid capitalizing
              a sentence in a diagnostic.
              (cp_parser_omp_declare_reduction): Quote keywords, operators, and types
              in diagnostics.
              (cp_parser_transaction): Same.
              * pt.c (maybe_process_partial_specialization): Replace second call
              to permerror with inform for consistency with other uses.
              (expand_integer_pack): Quote keywords, operators, and types
              in diagnostics.
              * rtti.c (get_typeid): Quote keywords, operators, and types
              in diagnostics.
              (build_dynamic_cast_1): Same.
              * semantics.c (finish_asm_stmt): Same.
              (finish_label_decl): Same.
              (finish_bases): Same.
              (finish_offsetof): Same.
              (cp_check_omp_declare_reduction): Same.
              (finish_decltype_type): Same.
              * tree.c (handle_init_priority_attribute): Same.  Add detail
              to diagnostics.
              (maybe_warn_zero_as_null_pointer_constant): Same.
              * typeck.c (cp_build_binary_op): Quote keywords, operators, and types
              in diagnostics.
              (cp_build_unary_op): Same.
              (check_for_casting_away_constness): Same.
              (build_static_cast): Same.
              (build_const_cast_1): Same.
              (maybe_warn_about_returning_address_of_local): Same.
              (check_return_expr): Same.
              * typeck2.c (abstract_virtuals_error_sfinae): Same.
              (digest_init_r): Replace a tab with spaces in a diagnostic.
              (build_functional_cast): Quote keywords, operators, and types
              in diagnostics.
      
      gcc/d/ChangeLog:
      
              * d-builtins.cc (d_init_builtins): Quote keywords, operators,
              and types in diagnostics.
              * d-codegen.cc (get_array_length): Same.  Replace can't with cannot.
              * d-convert.cc (convert_expr): Same.
              * d-frontend.cc (getTypeInfoType): Quote an option name in
              a diagnostic.
              * d-lang.cc (d_handle_option): Same.
              (d_parse_file): Same.
              * decl.cc: Remove a trailing period from a diagnostic.
              * expr.cc: Use a directive for an apostrophe.
              * toir.cc: Quote keywords, operators, and types in diagnostics.
              * typeinfo.cc (build_typeinfo): Quote an option name in a diagnostic.
      
      gcc/fortran/ChangeLog:
      
      	* gfortranspec.c (append_arg): Spell out the word "argument."
      
      gcc/ChangeLog:
      
              * config/i386/i386-expand.c (get_element_number): Quote keywords
              and other internal names in diagnostics.  Adjust other diagnostic
              formatting issues noted by -Wformat-diag.
              * config/i386/i386-features.c
              (ix86_mangle_function_version_assembler_name): Same.
              * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
              * config/i386/i386.c (ix86_function_type_abi): Same.
              (ix86_function_ms_hook_prologue): Same.
              (classify_argument): Same.
              (ix86_expand_prologue): Same.
              (ix86_md_asm_adjust): Same.
              (ix86_memmodel_check): Same.
      
      gcc/ChangeLog:
      
              * builtins.c (expand_builtin_atomic_always_lock_free): Quote
              identifiers, keywords, operators, and types in diagnostics.  Correct
              quoting, spelling, and sentence capitalization issues.
              (expand_builtin_atomic_is_lock_free): Same.
              (fold_builtin_next_arg): Same.
              * cfgexpand.c (expand_one_var): Same.
              (tree_conflicts_with_clobbers_p): Same.
              (expand_asm_stmt): Same.
              (verify_loop_structure): Same.
              * cgraphunit.c (process_function_and_variable_attributes): Same.
              * collect-utils.c (collect_execute): Same.
              * collect2.c (maybe_run_lto_and_relink): Same.
              (is_lto_object_file): Same.
              (scan_prog_file): Same.
              * convert.c (convert_to_real_1): Same.
              * dwarf2out.c (dwarf2out_begin_prologue): Same.
              * except.c (verify_eh_tree): Same.
              * gcc.c (execute): Same.
              (eval_spec_function): Same.
              (run_attempt): Same.
              (driver::set_up_specs): Same.
              (compare_debug_auxbase_opt_spec_function): Same.
              * gcov-tool.c (unlink_gcda_file): Same.
              (do_merge): Same.
              (do_rewrite): Same.
              * gcse.c (gcse_or_cprop_is_too_expensive): Same.
              * gimplify.c (gimplify_asm_expr): Same.
              (gimplify_adjust_omp_clauses): Same.
              * hsa-gen.c (gen_hsa_addr_insns): Same.
              (gen_hsa_insns_for_load): Same.
              (gen_hsa_cmp_insn_from_gimple): Same.
              (gen_hsa_insns_for_operation_assignment): Same.
              (gen_get_level): Same.
              (gen_hsa_alloca): Same.
              (omp_simple_builtin::generate): Same.
              (gen_hsa_atomic_for_builtin): Same.
              (gen_hsa_insns_for_call): Same.
              * input.c (dump_location_info): Same.
              * ipa-devirt.c (compare_virtual_tables): Same.
              * ira.c (ira_setup_eliminable_regset): Same.
              * lra-assigns.c (lra_assign): Same.
              * lra-constraints.c (lra_constraints): Same.
              * lto-streamer-in.c (lto_input_mode_table): Same.
              * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
              (merge_and_complain): Same.
              (compile_offload_image): Same.
              (compile_images_for_offload_targets): Same.
              (debug_objcopy): Same.
              (run_gcc): Same.
              (main): Same.
              * opts.c (print_specific_help): Same.
              (parse_no_sanitize_attribute): Same.
              (print_help): Same.
              (handle_param): Same.
              * plugin.c (add_new_plugin): Same.
              (parse_plugin_arg_opt): Same.
              (try_init_one_plugin): Same.
              * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
              operators, and types in diagnostics.  Correct quoting and spelling
              issues.
              * read-rtl-function.c (parse_edge_flag_token): Same.
              (function_reader::parse_enum_value): Same.
              * reg-stack.c (check_asm_stack_operands): Same.
              * regcprop.c (validate_value_data): Same.
              * sched-rgn.c (make_pass_sched_fusion): Same.
              * stmt.c (check_unique_operand_names): Same.
              * targhooks.c (default_target_option_pragma_parse): Same.
              * tlink.c (recompile_files): Same.
              * toplev.c (process_options): Same.
              (do_compile): Same.
              * trans-mem.c (diagnose_tm_1): Same.
              (ipa_tm_scan_irr_block): Same.
              (ipa_tm_diagnose_transaction): Same.
              * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
              format a tree code name in a diagnostic.
              (verify_types_in_gimple_min_lval): Same.
              (verify_types_in_gimple_reference): Same.
              (verify_gimple_call): Same.
              (verify_gimple_assign_unary): Same.
              (verify_gimple_assign_binary): Same.
              (verify_gimple_assign_ternary): Same.
              (verify_gimple_assign_single): Same.
              (verify_gimple_switch): Same.
              (verify_gimple_label): Same.
              (verify_gimple_phi): Same.
              (verify_gimple_in_seq): Same.
              (verify_eh_throw_stmt_node): Same.
              (collect_subblocks): Same.
              (gimple_verify_flow_info): Same.
              (do_warn_unused_result): Same.
              * tree-inline.c (expand_call_inline): Same.
              * tree-into-ssa.c (update_ssa): Same.
              * tree.c (tree_int_cst_elt_check_failed): Same.
              (tree_vec_elt_check_failed): Same.
              (omp_clause_operand_check_failed): Same.
              (verify_type_variant): Same.
              (verify_type): Same.
              * value-prof.c (verify_histograms): Same.
              * varasm.c (assemble_start_function): Same.
      
      gcc/lto/ChangeLog:
      
              * lto-dump.c (lto_main): Same.
              * lto.c (stream_out): Same.
      
      gcc/objc/ChangeLog:
      
              * objc-act.c (objc_begin_catch_clause): Quote keywords and options
              in diagnostics.
              (objc_build_throw_stmt): Same.
              (objc_finish_message_expr): Same.
              (get_super_receiver): Same.
              * objc-next-runtime-abi-01.c (objc_next_runtime_abi_01_init): Spell
              out "less than" in English./
              * objc-next-runtime-abi-02.c (objc_next_runtime_abi_02_init): Spell
              out "greater" in English.
      
      gcc/testsuite/ChangeLog:
      
              * c-c++-common/Wbool-operation-1.c: Adjust text of expected diagnostics.
              * c-c++-common/Wvarargs-2.c: Same.
              * c-c++-common/Wvarargs.c: Same.
              * c-c++-common/pr51768.c: Same.
              * c-c++-common/tm/inline-asm.c: Same.
              * c-c++-common/tm/safe-1.c: Same.
              * g++.dg/asm-qual-1.C: Same.
              * g++.dg/asm-qual-3.C: Same.
              * g++.dg/conversion/dynamic1.C: Same.
              * g++.dg/cpp0x/constexpr-89599.C: Same.
              * g++.dg/cpp0x/constexpr-cast.C: Same.
              * g++.dg/cpp0x/constexpr-shift1.C: Same.
              * g++.dg/cpp0x/lambda/lambda-conv11.C: Same.
              * g++.dg/cpp0x/nullptr04.C: Same.
              * g++.dg/cpp0x/static_assert12.C: Same.
              * g++.dg/cpp0x/static_assert8.C: Same.
              * g++.dg/cpp1y/lambda-conv1.C: Same.
              * g++.dg/cpp1y/pr79393-3.C: Same.
              * g++.dg/cpp1y/static_assert1.C: Same.
              * g++.dg/cpp1z/constexpr-if4.C: Same.
              * g++.dg/cpp1z/constexpr-if5.C: Same.
              * g++.dg/cpp1z/constexpr-if9.C: Same.
              * g++.dg/eh/goto2.C: Same.
              * g++.dg/eh/goto3.C: Same.
              * g++.dg/expr/static_cast8.C: Same.
              * g++.dg/ext/flexary5.C: Same.
              * g++.dg/ext/utf-array-short-wchar.C: Same.
              * g++.dg/ext/utf-array.C: Same.
              * g++.dg/ext/utf8-2.C: Same.
              * g++.dg/gomp/loop-4.C: Same.
              * g++.dg/gomp/macro-4.C: Same.
              * g++.dg/gomp/udr-1.C: Same.
              * g++.dg/init/initializer-string-too-long.C: Same.
              * g++.dg/other/offsetof9.C: Same.
              * g++.dg/ubsan/pr63956.C: Same.
              * g++.dg/warn/Wbool-operation-1.C: Same.
              * g++.dg/warn/Wtype-limits-Wextra.C: Same.
              * g++.dg/warn/Wtype-limits.C: Same.
              * g++.dg/wrappers/pr88680.C: Same.
              * g++.old-deja/g++.mike/eh55.C: Same.
              * gcc.dg/Wsign-compare-1.c: Same.
              * gcc.dg/Wtype-limits-Wextra.c: Same.
              * gcc.dg/Wtype-limits.c: Same.
              * gcc.dg/Wunknownprag.c: Same.
              * gcc.dg/Wunsuffixed-float-constants-1.c: Same.
              * gcc.dg/asm-6.c: Same.
              * gcc.dg/asm-qual-1.c: Same.
              * gcc.dg/cast-1.c: Same.
              * gcc.dg/cast-2.c: Same.
              * gcc.dg/cast-3.c: Same.
              * gcc.dg/cpp/source_date_epoch-2.c: Same.
              * gcc.dg/debug/pr85252.c: Same.
              * gcc.dg/dfp/cast-bad.c: Same.
              * gcc.dg/format/gcc_diag-1.c: Same.
              * gcc.dg/format/gcc_diag-11.c: Same.New test.
              * gcc.dg/gcc_diag-11.c: Same.New test.
              * gcc.dg/gnu-cond-expr-2.c: Same.
              * gcc.dg/gnu-cond-expr-3.c: Same.
              * gcc.dg/gomp/macro-4.c: Same.
              * gcc.dg/init-bad-1.c: Same.
              * gcc.dg/init-bad-2.c: Same.
              * gcc.dg/init-bad-3.c: Same.
              * gcc.dg/pr27528.c: Same.
              * gcc.dg/pr48552-1.c: Same.
              * gcc.dg/pr48552-2.c: Same.
              * gcc.dg/pr59846.c: Same.
              * gcc.dg/pr61096-1.c: Same.
              * gcc.dg/pr8788-1.c: Same.
              * gcc.dg/pr90082.c: Same.
              * gcc.dg/simd-2.c: Same.
              * gcc.dg/spellcheck-params-2.c: Same.
              * gcc.dg/spellcheck-params.c: Same.
              * gcc.dg/strlenopt-49.c: Same.
              * gcc.dg/tm/pr52141.c: Same.
              * gcc.dg/torture/pr51106-1.c: Same.
              * gcc.dg/torture/pr51106-2.c: Same.
              * gcc.dg/utf-array-short-wchar.c: Same.
              * gcc.dg/utf-array.c: Same.
              * gcc.dg/utf8-2.c: Same.
              * gcc.dg/warn-sprintf-no-nul.c: Same.
              * gcc.target/i386/asm-flag-0.c: Same.
              * gcc.target/i386/inline_error.c: Same.
              * gcc.target/i386/pr30848.c: Same.
              * gcc.target/i386/pr39082-1.c: Same.
              * gcc.target/i386/pr39678.c: Same.
              * gcc.target/i386/pr57756.c: Same.
              * gcc.target/i386/pr68843-1.c: Same.
              * gcc.target/i386/pr79804.c: Same.
              * gcc.target/i386/pr82673.c: Same.
              * obj-c++.dg/class-protocol-1.mm: Same.
              * obj-c++.dg/exceptions-3.mm: Same.
              * obj-c++.dg/exceptions-4.mm: Same.
              * obj-c++.dg/exceptions-5.mm: Same.
              * obj-c++.dg/exceptions-6.mm: Same.
              * obj-c++.dg/method-12.mm: Same.
              * obj-c++.dg/method-13.mm: Same.
              * obj-c++.dg/method-6.mm: Same.
              * obj-c++.dg/method-7.mm: Same.
              * obj-c++.dg/method-9.mm: Same.
              * obj-c++.dg/method-lookup-1.mm: Same.
              * obj-c++.dg/proto-lossage-4.mm: Same.
              * obj-c++.dg/protocol-qualifier-2.mm: Same.
              * objc.dg/call-super-2.m: Same.
              * objc.dg/class-protocol-1.m: Same.
              * objc.dg/desig-init-1.m: Same.
              * objc.dg/exceptions-3.m: Same.
              * objc.dg/exceptions-4.m: Same.
              * objc.dg/exceptions-5.m: Same.
              * objc.dg/exceptions-6.m: Same.
              * objc.dg/method-19.m: Same.
              * objc.dg/method-2.m: Same.
              * objc.dg/method-5.m: Same.
              * objc.dg/method-6.m: Same.
              * objc.dg/method-7.m: Same.
              * objc.dg/method-lookup-1.m: Same.
              * objc.dg/proto-hier-1.m: Same.
              * objc.dg/proto-lossage-4.m: Same.
      
      From-SVN: r271338
      Martin Sebor committed
  3. 01 Jan, 2019 1 commit
  4. 27 Aug, 2018 2 commits
    • Come up with fndecl_built_in_p. · 3d78e008
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* builtins.h (is_builtin_fn): Remove and fndecl_built_in_p.
      	* builtins.c (is_builtin_fn): Likewise.
      	* attribs.c (diag_attr_exclusions): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(builtin_mathfn_code): Likewise.
      	(fold_builtin_expect): Likewise.
      	(fold_call_expr): Likewise.
      	(fold_builtin_call_array): Likewise.
      	(fold_call_stmt): Likewise.
      	(set_builtin_user_assembler_name): Likewise.
      	(is_simple_builtin): Likewise.
      	* calls.c (gimple_alloca_call_p): Likewise.
      	(maybe_warn_nonstring_arg): Likewise.
      	* cfgexpand.c (expand_call_stmt): Likewise.
      	* cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise.
      	(cgraph_edge::verify_corresponds_to_fndecl): Likewise.
      	(cgraph_node::verify_node): Likewise.
      	* cgraphclones.c (build_function_decl_skip_args): Likewise.
      	(cgraph_node::create_clone): Likewise.
      	* config/arm/arm.c (arm_insert_attributes): Likewise.
      	* config/i386/i386.c (ix86_gimple_fold_builtin): Likewise.
      	* dse.c (scan_insn): Likewise.
      	* expr.c (expand_expr_real_1): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	(fold_binary_loc): Likewise.
      	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise.
      	* gimple-low.c (lower_stmt): Likewise.
      	* gimple-pretty-print.c (dump_gimple_call): Likewise.
      	* gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Likewise.
      	* gimple.c (gimple_build_call_from_tree): Likewise.
      	(gimple_call_builtin_p): Likewise.
      	(gimple_call_combined_fn): Likewise.
      	* gimplify.c (gimplify_call_expr): Likewise.
      	(gimple_boolify): Likewise.
      	(gimplify_modify_expr): Likewise.
      	(gimplify_addr_expr): Likewise.
      	* hsa-gen.c (gen_hsa_insns_for_call): Likewise.
      	* ipa-cp.c (determine_versionability): Likewise.
      	* ipa-fnsummary.c (compute_fn_summary): Likewise.
      	* ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
      	* ipa-split.c (visit_bb): Likewise.
      	(split_function): Likewise.
      	* ipa-visibility.c (cgraph_externally_visible_p): Likewise.
      	* lto-cgraph.c (input_node): Likewise.
      	* lto-streamer-out.c (write_symbol): Likewise.
      	* omp-low.c (setjmp_or_longjmp_p): Likewise.
      	(lower_omp_1): Likewise.
      	* predict.c (strip_predict_hints): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise.
      	* trans-mem.c (is_tm_irrevocable): Likewise.
      	(is_tm_load): Likewise.
      	(is_tm_simple_load): Likewise.
      	(is_tm_store): Likewise.
      	(is_tm_simple_store): Likewise.
      	(is_tm_abort): Likewise.
      	(tm_region_init_1): Likewise.
      	* tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise.
      	* tree-cfg.c (verify_gimple_call): Likewise.
      	(move_stmt_r): Likewise.
      	(stmt_can_terminate_bb_p): Likewise.
      	* tree-eh.c (lower_eh_constructs_2): Likewise.
      	* tree-if-conv.c (if_convertible_stmt_p): Likewise.
      	* tree-inline.c (remap_gimple_stmt): Likewise.
      	(copy_bb): Likewise.
      	(estimate_num_insns): Likewise.
      	(fold_marked_statements): Likewise.
      	* tree-sra.c (scan_function): Likewise.
      	* tree-ssa-ccp.c (surely_varying_stmt_p): Likewise.
      	(optimize_stack_restore): Likewise.
      	(pass_fold_builtins::execute): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	* tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise.
      	* tree-ssa-forwprop.c (simplify_builtin_call): Likewise.
      	(pass_forwprop::execute): Likewise.
      	* tree-ssa-loop-im.c (stmt_cost): Likewise.
      	* tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
      	* tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise.
      	* tree-ssa-strlen.c (get_string_length): Likewise.
      	* tree-ssa-structalias.c (handle_lhs_call): Likewise.
      	(find_func_aliases_for_call): Likewise.
      	* tree-ssa-ter.c (find_replaceable_in_bb): Likewise.
      	* tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-tailcall.c (find_tail_calls): Likewise.
      	* tree.c (need_assembler_name_p): Likewise.
      	(free_lang_data_in_decl): Likewise.
      	(get_call_combined_fn): Likewise.
      	* ubsan.c (is_ubsan_builtin_p): Likewise.
      	* varasm.c (incorporeal_function_p): Likewise.
      	* tree.h (DECL_BUILT_IN): Remove and replace with
              fndecl_built_in_p.
      	(DECL_BUILT_IN_P): Transfort to fndecl_built_in_p.
      	(fndecl_built_in_p): New.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* gcc-interface/decl.c (update_profile): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	* gcc-interface/gigi.h (call_is_atomic_load): Likewise.
      	* gcc-interface/utils.c (gnat_pushdecl): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* c-common.c (check_function_restrict): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(check_builtin_function_arguments): Likewise.
      	(reject_gcc_builtin): Likewise.
      	* c-warn.c (sizeof_pointer_memaccess_warning): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* c-decl.c (locate_old_decl): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(diagnose_mismatched_decls): Likewise.
      	(merge_decls): Likewise.
      	(warn_if_shadowing): Likewise.
      	(pushdecl): Likewise.
      	(implicitly_declare): Likewise.
      	* c-parser.c (c_parser_postfix_expression_after_primary): Likewise.
      	* c-tree.h (C_DECL_ISNT_PROTOTYPE): Likewise.
      	* c-typeck.c (build_function_call_vec): Likewise.
      	(convert_arguments): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* call.c (build_call_a): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	(build_cxx_call): Likewise.
      	* constexpr.c (constexpr_fn_retval): Likewise.
      	(cxx_eval_builtin_function_call): Likewise.
      	(cxx_eval_call_expression): Likewise.
      	(potential_constant_expression_1): Likewise.
      	* cp-gimplify.c (cp_gimplify_expr): Likewise.
      	(cp_fold): Likewise.
      	* decl.c (decls_match): Likewise.
      	(validate_constexpr_redeclaration): Likewise.
      	(duplicate_decls): Likewise.
      	(make_rtl_for_nonlocal_decl): Likewise.
      	* name-lookup.c (consider_binding_level): Likewise.
      	(cp_emit_debug_info_for_using): Likewise.
      	* semantics.c (finish_call_expr): Likewise.
      	* tree.c (builtin_valid_in_constant_expr_p): Likewise.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* go-gcc.cc (Gcc_backend::call_expression): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* lto-lang.c (handle_const_attribute): Use new function
              fndecl_built_in_p and remove check for FUNCTION_DECL if
              possible.
      	* lto-symtab.c (lto_symtab_merge_p): Likewise.
      	(lto_symtab_merge_decls_1): Likewise.
      	(lto_symtab_merge_symbols): Likewise.
      	* lto.c (lto_maybe_register_decl): Likewise.
      	(read_cgraph_and_symbols): Likewise.
      
      From-SVN: r263880
      Martin Liska committed
    • Add new gswitch related functions into tree-cfg.c. · 61ff5d6f
      2018-08-27  Martin Liska  <mliska@suse.cz>
      
      	* cfgexpand.c (expand_asm_stmt): Use label_to_block and pass
              cfun argument explicitly.
      	* gimple-pretty-print.c (dump_gimple_switch): Likewise.
      	* hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new
              function gimple_switch_default_bb.
      	(convert_switch_statements):
      	(expand_builtins):
      	* ipa-fnsummary.c (set_switch_stmt_execution_predicate):
      	* stmt.c (label_to_block_fn): Use label_to_block and pass
              cfun argument explicitly and use gimple_switch_label_bb.
      	(expand_case): Likewise.
      	* tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass
              cfun argument explicitly. Likewise.
      	(make_edges_bb): Likewise.
      	(make_cond_expr_edges): Likewise.
      	(get_cases_for_edge): Likewise.
      	(make_gimple_switch_edges): Likewise.
      	(label_to_block_fn): Likewise.
      	(label_to_block): Likewise.
      	(make_goto_expr_edges): Likewise.
      	(make_gimple_asm_edges): Likewise.
      	(main_block_label): Likewise.
      	(group_case_labels_stmt): Likewise.
      	(find_taken_edge_computed_goto): Likewise.
      	(find_taken_edge_switch_expr): Likewise.
      	(gimple_verify_flow_info): Likewise.
      	(gimple_redirect_edge_and_branch): Likewise.
      	(gimple_switch_label_bb): New function.
      	(gimple_switch_default_bb): Likewise.
      	(gimple_switch_edge): Likewise.
      	(gimple_switch_default_edge): Likewise.
      	* tree-cfg.h (label_to_block_fn): Remove and replace ...
      	(label_to_block): ... with this.
      	(gimple_switch_label_bb): New.
      	(gimple_switch_default_bb): Likewise.
      	(gimple_switch_edge): Likewise.
      	(gimple_switch_default_edge): Likewise.
      	* tree-cfgcleanup.c (convert_single_case_switch): Use
              new gimple functions and pass new argument to label_to_block.
      	(cleanup_control_flow_bb):
      	* tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass
              cfun argument explicitly.
      	(make_eh_edges): Likewise.
      	(redirect_eh_dispatch_edge): Likewise.
      	(lower_resx): Likewise.
      	(lower_eh_dispatch): Likewise.
      	(maybe_remove_unreachable_handlers): Likewise.
      	(unsplit_eh): Likewise.
      	(cleanup_empty_eh): Likewise.
      	(verify_eh_edges): Likewise.
      	(verify_eh_dispatch_edge): Likewise.
      	* tree-ssa-dom.c (record_edge_info): Likewise.
      	* tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise.
      	* tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise.
      	(thread_through_normal_block): Likewise.
      	* tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise.
      	* tree-ssa-uninit.c (convert_control_dep_chain_into_preds):
      	* tree-switch-conversion.c (switch_conversion::collect): Use new
              gimple functions.
      	(switch_conversion::check_final_bb): Likewise.
      	(switch_conversion::gather_default_values): Pass new argument
              to label_to_block.
      	(switch_conversion::build_constructors): Likewise.
      	(switch_decision_tree::compute_cases_per_edge): Use new
              gimple_switch_edge function.
      	(switch_decision_tree::analyze_switch_statement): Pass new argument
              to label_to_block.
      	(switch_decision_tree::try_switch_expansion): Use
              gimple_switch_default_edge.
      	* tree-vrp.c (find_switch_asserts): Pass new argument
              to label_to_block.
      	* vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise.
      	(vr_values::simplify_switch_using_ranges): Likewise.
      
      From-SVN: r263876
      Martin Liska committed
  5. 20 Aug, 2018 1 commit
    • Add support for grouping of related diagnostics (PR other/84889) · 097f82ec
      We often emit logically-related groups of diagnostics.
      
      A relatively simple case is this:
      
        if (warning_at (body_loc, OPT_Wmultistatement_macros,
                        "macro expands to multiple statements"))
          inform (guard_loc, "some parts of macro expansion are not guarded by "
                  "this %qs clause", guard_tinfo_to_string (keyword));
      
      where the "note" diagnostic issued by the "inform" call
      is guarded by the -Wmultistatement_macros warning.
      
      More complicated examples can be seen in the C++ frontend,
      where e.g. print_z_candidates can lead to numerous "note"
      diagnostics being emitted.
      
      I'm looking at various ways to improve how we handle such related
      diagnostics, but, prior to this patch, there was no explicit
      relationship between these diagnostics: the diagnostics subsystem
      had no way of "knowing" that these were related.
      
      This patch introduces a simple way to group the diagnostics:
      an auto_diagnostic_group class: all diagnostics emitted within
      the lifetime of an auto_diagnostic_group instance are logically
      grouped.
      
      Hence in the above example, the two diagnostics can be grouped
      by simply adding an auto_diagnostic_group instance:
      
        auto_diagnostic_group d;
        if (warning_at (body_loc, OPT_Wmultistatement_macros,
                        "macro expands to multiple statements"))
          inform (guard_loc, "some parts of macro expansion are not guarded by "
                  "this %qs clause", guard_tinfo_to_string (keyword));
      
      Some more awkard cases are of the form:
      
        if (some_condition
            && warning_at (...)
            && more_conditions)
          inform (...);
      
      which thus need restructuring to:
      
        if (some_condition)
          {
            auto_diagnostic_group d;
            warning_at (...);
            if (more_conditions)
              inform (...);
          }
      
      so that the lifetime of the auto_diagnostic_group groups the
      warning_at and the inform call.
      
      Nesting is handled by simply tracking a nesting depth within the
      diagnostic_context.: all diagnostics are treated as grouped until the
      final auto_diagnostic_group is popped.
      
      diagnostic.c uses this internally, so that all diagnostics are part of
      a group - those that are "by themselves" are treated as being part of
      a group with one element.
      
      The diagnostic_context gains optional callbacks for displaying the
      start of a group (when the first diagnostic is emitted within it), and
      the end of a group (for when the group was non-empty); these callbacks
      are unused by default, but a test plugin demonstrates them (and verifies
      that the machinery is working).
      
      As noted above, I'm looking at various ways to use the grouping to
      improve how we output the diagnostics.
      
      FWIW, I experimented with a more involved implementation, of the form:
      
        diagnostic_group d;
        if (d.warning_at (body_loc, OPT_Wmultistatement_macros,
                          "macro expands to multiple statements"))
          d.inform (guard_loc, "some parts of macro expansion are not guarded by "
                    "this %qs clause", guard_tinfo_to_string (keyword));
      
      which had the advantage of allowing auto-detection of the places where
      groups were needed (by converting ::warning_at's return type to bool),
      but it was a much more invasive patch, especially when dealing with
      the places in the C++ frontend that can emit numerous notes after
      an error or warning (and thus having to pass the group around)
      Hence I went with this simpler approach.
      
      gcc/c-family/ChangeLog:
      	PR other/84889
      	* c-attribs.c (common_handle_aligned_attribute): Add
      	auto_diagnostic_group instance.
      	* c-indentation.c (warn_for_misleading_indentation): Likewise.
      	* c-opts.c (c_common_post_options): Likewise.
      	* c-warn.c (warn_logical_not_parentheses): Likewise.
      	(warn_duplicated_cond_add_or_warn): Likewise.
      	(warn_for_multistatement_macros): Likewise.
      
      gcc/c/ChangeLog:
      	PR other/84889
      	* c-decl.c (pushtag): Add auto_diagnostic_group instance.
      	(diagnose_mismatched_decls): Likewise, in various places.
      	(warn_if_shadowing): Likewise.
      	(implicit_decl_warning): Likewise.
      	(implicitly_declare): Likewise.
      	(undeclared_variable): Likewise.
      	(declare_label): Likewise.
      	(grokdeclarator): Likewise.
      	(start_function): Likewise.
      	* c-parser.c (c_parser_declaration_or_fndef): Likewise.
      	(c_parser_parameter_declaration): Likewise.
      	(c_parser_binary_expression): Likewise.
      	* c-typeck.c (c_expr_sizeof_expr): Likewise.
      	(parser_build_binary_op): Likewise.
      	(build_unary_op): Likewise.
      	(error_init): Likewise.
      	(pedwarn_init): Likewise.
      	(warning_init): Likewise.
      	(convert_for_assignment): Likewise.
      
      gcc/cp/ChangeLog:
      	PR other/84889
      	* call.c (build_user_type_conversion_1): Add auto_diagnostic_group
      	instance(s).
      	(print_error_for_call_failure): Likewise.
      	(build_op_call_1): Likewise.
      	(build_conditional_expr_1): Likewise.
      	(build_new_op_1): Likewise.
      	(build_op_delete_call): Likewise.
      	(convert_like_real): Likewise.
      	(build_over_call): Likewise.
      	(build_new_method_call_1): Likewise.
      	(joust): Likewise.
      	* class.c (check_tag): Likewise.
      	(finish_struct_anon_r): Likewise.
      	(one_inherited_ctor): Likewise.
      	(finalize_literal_type_property): Likewise.
      	(explain_non_literal_class): Likewise.
      	(find_flexarrays): Likewise.
      	(resolve_address_of_overloaded_function): Likewise.
      	* constexpr.c (ensure_literal_type_for_constexpr_object): Likewise.
      	(is_valid_constexpr_fn): Likewise.
      	(cx_check_missing_mem_inits): Likewise.
      	* cp-gimplify.c (cp_genericize_r): Likewise.
      	* cvt.c (maybe_warn_nodiscard): Likewise.
      	* decl.c (warn_extern_redeclared_static): Likewise.
      	(check_redeclaration_exception_specification): Likewise.
      	(check_no_redeclaration_friend_default_args): Likewise.
      	(duplicate_decls): Likewise.
      	(redeclaration_error_message): Likewise.
      	(warn_misplaced_attr_for_class_type): Likewise.
      	* decl2.c (finish_static_data_member_decl): Likewise.
      	(no_linkage_error): Likewise.
      	(cp_warn_deprecated_use): Likewise.
      	* error.c (qualified_name_lookup_error): Likewise.
      	* friend.c (make_friend_class): Likewise.
      	(do_friend): Likewise.
      	* init.c (perform_member_init): Likewise.
      	(build_new_1): Likewise.
      	(build_vec_delete_1): Likewise.
      	(build_delete): Likewise.
      	* lex.c (unqualified_name_lookup_error): Likewise.
      	* name-lookup.c (check_extern_c_conflict): Likewise.
      	(inform_shadowed): New function.
      	(check_local_shadow): Add auto_diagnostic_group instances,
      	replacing goto "inform_shadowed" label with call to subroutine.
      	(set_local_extern_decl_linkage): Add auto_diagnostic_group
      	instance(s).
      	* parser.c (cp_parser_diagnose_invalid_type_name): Likewise.
      	(cp_parser_namespace_name): Likewise.
      	* pt.c (check_specialization_namespace): Likewise.
      	(check_template_variable): Likewise.
      	(warn_spec_missing_attributes): Likewise.
      	(check_explicit_specialization): Likewise.
      	(process_partial_specialization): Likewise.
      	(lookup_template_class_1): Likewise.
      	(finish_template_variable): Likewise.
      	(do_auto_deduction): Likewise.
      	* search.c (check_final_overrider): Likewise.
      	(look_for_overrides_r): Likewise.
      	* tree.c (maybe_warn_parm_abi): Likewise.
      	* typeck.c (cxx_sizeof_expr): Likewise.
      	(cp_build_function_call_vec): Likewise.
      	(cp_build_binary_op): Likewise.
      	(convert_for_assignment): Likewise.
      	(maybe_warn_about_returning_address_of_local): Likewise.
      	* typeck2.c (abstract_virtuals_error_sfinae): Likewise.
      	(check_narrowing): Likewise.
      
      gcc/ChangeLog:
      	PR other/84889
      	* attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance.
      	(decl_attributes): Likewise.
      	* calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group
      	instance.
      	* cgraphunit.c (maybe_diag_incompatible_alias): Likewise.
      	* diagnostic-core.h (class auto_diagnostic_group): New class.
      	* diagnostic.c (diagnostic_initialize): Initialize the new fields.
      	(diagnostic_report_diagnostic): Handle the first diagnostics within
      	a group.
      	(emit_diagnostic): Add auto_diagnostic_group instance.
      	(inform): Likewise.
      	(inform_n): Likewise.
      	(warning): Likewise.
      	(warning_at): Likewise.
      	(warning_n): Likewise.
      	(pedwarn): Likewise.
      	(permerror): Likewise.
      	(error): Likewise.
      	(error_n): Likewise.
      	(error_at): Likewise.
      	(sorry): Likewise.
      	(fatal_error): Likewise.
      	(internal_error): Likewise.
      	(internal_error_no_backtrace): Likewise.
      	(auto_diagnostic_group::auto_diagnostic_group): New ctor.
      	(auto_diagnostic_group::~auto_diagnostic_group): New dtor.
      	* diagnostic.h (struct diagnostic_context): Add fields
      	"diagnostic_group_nesting_depth",
      	"diagnostic_group_emission_count", "begin_group_cb",
      	"end_group_cb".
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior):
      	Add auto_diagnostic_group instance(s).
      	(find_explicit_erroneous_behavior): Likewise.
      	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise.
      	* gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise.
      	* gimplify.c (warn_implicit_fallthrough_r): Likewise.
      	(gimplify_va_arg_expr): Likewise.
      	* hsa-gen.c (HSA_SORRY_ATV): Likewise.
      	(HSA_SORRY_AT): Likewise.
      	* ipa-devirt.c (compare_virtual_tables): Likewise.
      	(warn_odr): Likewise.
      	* multiple_target.c (expand_target_clones): Likewise.
      	* opts-common.c (cmdline_handle_error): Likewise.
      	* reginfo.c (globalize_reg): Likewise.
      	* substring-locations.c (format_warning_n_va): Likewise.
      	* tree-inline.c (expand_call_inline): Likewise.
      	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise.
      	* tree-ssa-loop-niter.c
      	(do_warn_aggressive_loop_optimizations): Likewise.
      	* tree-ssa-uninit.c (warn_uninit): Likewise.
      	* tree.c (warn_deprecated_use): Likewise.
      
      gcc/testsuite/ChangeLog:
      	PR other/84889
      	* gcc.dg/plugin/diagnostic-group-test-1.c: New test.
      	* gcc.dg/plugin/diagnostic_group_plugin.c: New test.
      	* gcc.dg/plugin/plugin.exp (plugin_test_list): Add the new tests.
      
      From-SVN: r263675
      David Malcolm committed
  6. 08 Jun, 2018 2 commits
    • Add {symbol,call}_summary::get method and use it in HSA. · 0148358a
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to
      	HSA_INVALID.
      	(hsa_function_summary::hsa_function_summary): Use the new enum
      	value.
      	(hsa_gpu_implementation_p): Use hsa_summaries::get.
      	* hsa-gen.c (hsa_get_host_function): Likewise.
      	(get_brig_function_name): Likewise.
      	* ipa-hsa.c (process_hsa_functions): Likewise.
      	(ipa_hsa_write_summary): Likewise.
      	* symbol-summary.h (symtab_duplication): Use ::get function/
      	(get): New function.
      
      From-SVN: r261310
      Martin Liska committed
    • Rename get methods in symbol-summary.h to get_create. · 99353fcf
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* config/i386/i386.c (ix86_can_inline_p): Use get_create instead
      	of get.
      	* hsa-common.c (hsa_summary_t::link_functions): Likewise.
      	(hsa_register_kernel): Likewise.
      	* hsa-common.h (hsa_gpu_implementation_p): Likewise.
      	* hsa-gen.c (hsa_get_host_function): Likewise.
      	(get_brig_function_name): Likewise.
      	(generate_hsa): Likewise.
      	(pass_gen_hsail::execute): Likewise.
      	* ipa-cp.c (ipcp_cloning_candidate_p): Likewise.
      	(devirtualization_time_bonus): Likewise.
      	(ipcp_propagate_stage): Likewise.
      	* ipa-fnsummary.c (redirect_to_unreachable): Likewise.
      	(edge_set_predicate): Likewise.
      	(evaluate_conditions_for_known_args): Likewise.
      	(evaluate_properties_for_edge): Likewise.
      	(ipa_fn_summary::reset): Likewise.
      	(ipa_fn_summary_t::duplicate): Likewise.
      	(dump_ipa_call_summary): Likewise.
      	(ipa_dump_fn_summary): Likewise.
      	(analyze_function_body): Likewise.
      	(compute_fn_summary): Likewise.
      	(estimate_edge_devirt_benefit): Likewise.
      	(estimate_edge_size_and_time): Likewise.
      	(estimate_calls_size_and_time): Likewise.
      	(estimate_node_size_and_time): Likewise.
      	(inline_update_callee_summaries): Likewise.
      	(remap_edge_change_prob): Likewise.
      	(remap_edge_summaries): Likewise.
      	(ipa_merge_fn_summary_after_inlining): Likewise.
      	(ipa_update_overall_fn_summary): Likewise.
      	(read_ipa_call_summary): Likewise.
      	(inline_read_section): Likewise.
      	(write_ipa_call_summary): Likewise.
      	(ipa_fn_summary_write): Likewise.
      	(ipa_free_fn_summary): Likewise.
      	* ipa-hsa.c (process_hsa_functions): Likewise.
      	(ipa_hsa_write_summary): Likewise.
      	(ipa_hsa_read_section): Likewise.
      	* ipa-icf.c (sem_function::merge): Likewise.
      	* ipa-inline-analysis.c (simple_edge_hints): Likewise.
      	(do_estimate_edge_time): Likewise.
      	(estimate_size_after_inlining): Likewise.
      	(estimate_growth): Likewise.
      	(growth_likely_positive): Likewise.
      	* ipa-inline-transform.c (clone_inlined_nodes): Likewise.
      	(inline_call): Likewise.
      	* ipa-inline.c (caller_growth_limits): Likewise.
      	(can_inline_edge_p): Likewise.
      	(can_inline_edge_by_limits_p): Likewise.
      	(compute_uninlined_call_time): Likewise.
      	(compute_inlined_call_time): Likewise.
      	(want_inline_small_function_p): Likewise.
      	(edge_badness): Likewise.
      	(update_caller_keys): Likewise.
      	(update_callee_keys): Likewise.
      	(recursive_inlining): Likewise.
      	(inline_small_functions): Likewise.
      	(inline_to_all_callers_1): Likewise.
      	(dump_overall_stats): Likewise.
      	(early_inline_small_functions): Likewise.
      	(early_inliner): Likewise.
      	* ipa-inline.h (estimate_edge_growth): Likewise.
      	* ipa-profile.c (ipa_propagate_frequency_1): Likewise.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Likewise.
      	* ipa-prop.h (IPA_NODE_REF): Likewise.
      	(IPA_EDGE_REF): Likewise.
      	* ipa-pure-const.c (malloc_candidate_p): Likewise.
      	(propagate_malloc): Likewise.
      	* ipa-split.c (execute_split_functions): Likewise.
      	* symbol-summary.h: Rename get to get_create.
      	(get): Likewise.
      	(get_create): Likewise.
      	* tree-sra.c (ipa_sra_preliminary_function_checks): Likewise.
      2018-06-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-partition.c (add_symbol_to_partition_1): Use get_create instead
      	of get.
      	(undo_partition): Likewise.
      	(lto_balanced_map): Likewise.
      
      From-SVN: r261309
      Martin Liska committed
  7. 18 May, 2018 1 commit
    • Replace FMA_EXPR with one internal fn per optab · c566cc9f
      There are four optabs for various forms of fused multiply-add:
      fma, fms, fnma and fnms.  Of these, only fma had a direct gimple
      representation.  For the other three we relied on special pattern-
      matching during expand, although tree-ssa-math-opts.c did have
      some code to try to second-guess what expand would do.
      
      This patch removes the old FMA_EXPR representation of fma and
      introduces four new internal functions, one for each optab.
      IFN_FMA is tied to BUILT_IN_FMA* while the other three are
      independent directly-mapped internal functions.  It's then
      possible to do the pattern-matching in match.pd and
      tree-ssa-math-opts.c (via folding) can select the exact
      FMA-based operation.
      
      The BRIG & HSA parts are a best guess, but seem relatively simple.
      
      2018-05-18  Richard Sandiford  <richard.sandiford@linaro.org>
      
      gcc/
      	* doc/sourcebuild.texi (scalar_all_fma): Document.
      	* tree.def (FMA_EXPR): Delete.
      	* internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions.
      	* internal-fn.c (ternary_direct): New macro.
      	(expand_ternary_optab_fn): Likewise.
      	(direct_ternary_optab_supported_p): Likewise.
      	* Makefile.in (build/genmatch.o): Depend on case-fn-macros.h.
      	* builtins.c (fold_builtin_fma): Delete.
      	(fold_builtin_3): Don't call it.
      	* cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling.
      	* expr.c (expand_expr_real_2): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	(fold_ternary_loc): Likewise.
      	* gimple-pretty-print.c (dump_ternary_rhs): Likewise.
      	* gimple.c (DEFTREECODE): Likewise.
      	* gimplify.c (gimplify_expr): Likewise.
      	* optabs-tree.c (optab_for_tree_code): Likewise.
      	* tree-cfg.c (verify_gimple_assign_ternary): Likewise.
      	* tree-eh.c (operation_could_trap_p): Likewise.
      	(stmt_could_throw_1_p): Likewise.
      	* tree-inline.c (estimate_operator_cost): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	(op_code_prio): Likewise.
      	* tree-ssa-loop-im.c (stmt_cost): Likewise.
      	* tree-ssa-operands.c (get_expr_operands): Likewise.
      	* tree.c (commutative_ternary_tree_code, add_expr): Likewise.
      	* fold-const-call.h (fold_fma): Delete.
      	* fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS,
      	CFN_FNMA and CFN_FNMS.
      	(fold_fma): Delete.
      	* genmatch.c (combined_fn): New enum.
      	(commutative_ternary_tree_code): Remove FMA_EXPR handling.
      	(commutative_op): New function.
      	(commutate): Use it.  Handle more than 2 operands.
      	(dt_operand::gen_gimple_expr): Use commutative_op.
      	(parser::parse_expr): Allow :c to be used with non-binary
      	operators if the commutative operand is known.
      	* gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle
      	CFN_FMS, CFN_FNMA and CFN_FNMS.
      	(backprop::process_assign_use): Remove FMA_EXPR handling.
      	* hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise.
      	(gen_hsa_fma): New function.
      	(gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS,
      	IFN_FNMA and IFN_FNMS.
      	* match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS.
      	* gimple-fold.h (follow_all_ssa_edges): Declare.
      	* gimple-fold.c (follow_all_ssa_edges): New function.
      	* tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the
      	gimple_build interface and use follow_all_ssa_edges to fold the result.
      	(convert_mult_to_fma): Use direct_internal_fn_suppoerted_p
      	instead of checking for optabs directly.
      	* config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls
      	rather than FMA_EXPRs.
      	* config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a
      	call to IFN_FMA instead of an FMA_EXPR.
      
      gcc/brig/
      	* brigfrontend/brig-function.cc
      	(brig_function::get_builtin_for_hsa_opcode): Use BUILT_IN_FMA
      	for BRIG_OPCODE_FMA.
      	(brig_function::get_tree_code_for_hsa_opcode): Treat BUILT_IN_FMA
      	as a call.
      
      gcc/c/
      	* gimple-parser.c (c_parser_gimple_postfix_expression): Remove
      	__FMA_EXPR handlng.
      
      gcc/cp/
      	* constexpr.c (cxx_eval_constant_expression): Remove FMA_EXPR handling.
      	(potential_constant_expression_1): Likewise.
      
      gcc/testsuite/
      	* lib/target-supports.exp (check_effective_target_scalar_all_fma):
      	New proc.
      	* gcc.dg/fma-1.c: New test.
      	* gcc.dg/fma-2.c: Likewise.
      	* gcc.dg/fma-3.c: Likewise.
      	* gcc.dg/fma-4.c: Likewise.
      	* gcc.dg/fma-5.c: Likewise.
      	* gcc.dg/fma-6.c: Likewise.
      	* gcc.dg/fma-7.c: Likewise.
      	* gcc.dg/gimplefe-26.c: Use .FMA instead of __FMA and require
      	scalar_all_fma.
      	* gfortran.dg/reassoc_7.f: Pass -ffp-contract=off.
      	* gfortran.dg/reassoc_8.f: Likewise.
      	* gfortran.dg/reassoc_9.f: Likewise.
      	* gfortran.dg/reassoc_10.f: Likewise.
      
      From-SVN: r260348
      Richard Sandiford committed
  8. 16 Mar, 2018 1 commit
    • re PR c/84909 (typo: conversion from %qT to to %qT) · ce811fc4
      	PR c/84909
      	* c-warn.c (conversion_warning): Replace "to to" with "to" in
      	diagnostics.
      
      	* hsa-gen.c (mem_type_for_type): Fix comment typo.
      	* tree-vect-loop-manip.c (vect_create_cond_for_niters_checks):
      	Likewise.
      	* gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset):
      	Likewise.
      
      From-SVN: r258609
      Jakub Jelinek committed
  9. 08 Feb, 2018 1 commit
  10. 03 Jan, 2018 1 commit
  11. 21 Dec, 2017 2 commits
    • poly_int: bit_field_size/offset · e7301f5f
      verify_expr ensured that the size and offset in gimple BIT_FIELD_REFs
      satisfied tree_fits_uhwi_p.  This patch extends that so that they can
      be poly_uint64s, and adds helper routines for accessing them when the
      verify_expr requirements apply.
      
      2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree.h (bit_field_size, bit_field_offset): New functions.
      	* hsa-gen.c (gen_hsa_addr): Use them.
      	* tree-ssa-forwprop.c (simplify_bitfield_ref): Likewise.
      	(simplify_vector_constructor): Likewise.
      	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Likewise.
      	* tree-cfg.c (verify_expr): Require the sizes and offsets of a
      	BIT_FIELD_REF to be poly_uint64s rather than uhwis.
      	* fold-const.c (fold_ternary_loc): Protect tree_to_uhwi with
      	tree_fits_uhwi_p.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255926
      Richard Sandiford committed
    • poly_int: get_inner_reference & co. · f37fac2b
      This patch makes get_inner_reference and ptr_difference_const return the
      bit size and bit position as poly_int64s rather than HOST_WIDE_INTS.
      The non-mechanical changes were handled by previous patches.
      
      2017-12-21  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* tree.h (get_inner_reference): Return the bitsize and bitpos
      	as poly_int64_pods rather than HOST_WIDE_INT.
      	* fold-const.h (ptr_difference_const): Return the pointer difference
      	as a poly_int64_pod rather than a HOST_WIDE_INT.
      	* expr.c (get_inner_reference): Return the bitsize and bitpos
      	as poly_int64_pods rather than HOST_WIDE_INT.
      	(expand_expr_addr_expr_1, expand_expr_real_1): Track polynomial
      	offsets and sizes.
      	* fold-const.c (make_bit_field_ref): Take the bitpos as a poly_int64
      	rather than a HOST_WIDE_INT.  Update call to get_inner_reference.
      	(optimize_bit_field_compare): Update call to get_inner_reference.
      	(decode_field_reference): Likewise.
      	(fold_unary_loc): Track polynomial offsets and sizes.
      	(split_address_to_core_and_offset): Return the bitpos as a
      	poly_int64_pod rather than a HOST_WIDE_INT.
      	(ptr_difference_const): Likewise for the pointer difference.
      	* asan.c (instrument_derefs): Track polynomial offsets and sizes.
      	* config/mips/mips.c (r10k_safe_mem_expr_p): Likewise.
      	* dbxout.c (dbxout_expand_expr): Likewise.
      	* dwarf2out.c (loc_list_for_address_of_addr_expr_of_indirect_ref)
      	(loc_list_from_tree_1, fortran_common): Likewise.
      	* gimple-laddress.c (pass_laddress::execute): Likewise.
      	* gimple-ssa-store-merging.c (find_bswap_or_nop_load): Likewise.
      	* gimplify.c (gimplify_scan_omp_clauses): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* tree-affine.c (tree_to_aff_combination): Likewise.
      	(get_inner_reference_aff): Likewise.
      	* tree-data-ref.c (split_constant_offset_1): Likewise.
      	(dr_analyze_innermost): Likewise.
      	* tree-scalar-evolution.c (interpret_rhs_expr): Likewise.
      	* tree-sra.c (ipa_sra_check_caller): Likewise.
      	* tree-vect-data-refs.c (vect_check_gather_scatter): Likewise.
      	* ubsan.c (maybe_instrument_pointer_overflow): Likewise.
      	(instrument_bool_enum_load, instrument_object_size): Likewise.
      	* gimple-ssa-strength-reduction.c (slsr_process_ref): Update call
      	to get_inner_reference.
      	* hsa-gen.c (gen_hsa_addr): Likewise.
      	* sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise.
      	* tsan.c (instrument_expr): Likewise.
      	* match.pd: Update call to ptr_difference_const.
      
      gcc/ada/
      	* gcc-interface/trans.c (Attribute_to_gnu): Track polynomial
      	offsets and sizes.
      	* gcc-interface/utils2.c (build_unary_op): Likewise.
      
      gcc/cp/
      	* constexpr.c (check_automatic_or_tls): Track polynomial
      	offsets and sizes.
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r255914
      Richard Sandiford committed
  12. 30 Nov, 2017 1 commit
    • spellcheck-tree.c (test_find_closest_identifier): Use ; instead of ;;. · 5de73c05
      	* spellcheck-tree.c (test_find_closest_identifier): Use ; instead
      	of ;;.
      	* gengtype-state.c (read_state_pair): Likewise.
      	* gimple-fold.c (gimple_fold_builtin_string_compare): Likewise.
      	* sel-sched-dump.c (dump_insn_rtx_1): Likewise.
      	* ipa-cp.c (intersect_aggregates_with_edge): Likewise.
      	* ifcvt.c (noce_try_store_flag_constants): Likewise.
      	* tree-ssa-ccp.c (ccp_finalize): Likewise.
      	* omp-grid.c (grid_process_kernel_body_copy): Likewise.
      	* builtins.c (fold_builtin_3): Likewise.
      	* graphite-scop-detection.c
      	(scop_detection::stmt_has_simple_data_refs_p): Likewise.
      	* hsa-gen.c (hsa_function_representation::hsa_function_representation):
      	Likewise.
      c/
      	* c-parser.c (c_parser_postfix_expression): Use ; instead of ;;.
      jit/
      	* jit-recording.c
      	(recording::memento_of_new_rvalue_from_const <long>::write_reproducer):
      	Use ; instead of ;;.
      lto/
      	* lto.c (create_subid_section_table): Use ; instead of ;;.
      objc/
      	* objc-next-runtime-abi-01.c (generate_dispatch_table): Use ; instead
      	of ;;.
      
      From-SVN: r255284
      Jakub Jelinek committed
  13. 03 Nov, 2017 1 commit
    • asan.c (create_cond_insert_point): Maintain profile. · e7a74006
      	* asan.c (create_cond_insert_point): Maintain profile.
      	* ipa-utils.c (ipa_merge_profiles): Be sure only IPA profiles are
      	merged.
      	* basic-block.h (struct basic_block_def): Remove frequency.
      	(EDGE_FREQUENCY): Use to_frequency
      	* bb-reorder.c (push_to_next_round_p): Use only IPA counts for global
      	heuristics.
      	(find_traces): Update to use to_frequency.
      	(find_traces_1_round): Likewise; use only IPA counts.
      	(bb_to_key): Likewise.
      	(connect_traces): Use IPA counts only.
      	(copy_bb_p): Update to use to_frequency.
      	(fix_up_crossing_landing_pad): Likewise.
      	(sanitize_hot_paths): Likewise.
      	* bt-load.c (basic_block_freq): Likewise.
      	* cfg.c (init_flow): Set count_max to uninitialized.
      	(check_bb_profile): Remove frequencies; check counts.
      	(dump_bb_info): Do not dump frequencies.
      	(update_bb_profile_for_threading): Update counts only.
      	(scale_bbs_frequencies_int): Likewise.
      	(MAX_SAFE_MULTIPLIER): Remove.
      	(scale_bbs_frequencies_gcov_type): Update counts only.
      	(scale_bbs_frequencies_profile_count): Update counts only.
      	(scale_bbs_frequencies): Update counts only.
      	* cfg.h (struct control_flow_graph): Add count-max.
      	(update_bb_profile_for_threading): Update prototype.
      	* cfgbuild.c (find_bb_boundaries): Do not update frequencies.
      	(find_many_sub_basic_blocks): Likewise.
      	* cfgcleanup.c (try_forward_edges): Likewise.
      	(try_crossjump_to_edge): Likewise.
      	* cfgexpand.c (expand_gimple_cond): Likewise.
      	(expand_gimple_tailcall): Likewise.
      	(construct_init_block): Likewise.
      	(construct_exit_block): Likewise.
      	* cfghooks.c (verify_flow_info): Check consistency of counts.
      	(dump_bb_for_graph): Do not dump frequencies.
      	(split_block_1): Do not update frequencies.
      	(split_edge): Do not update frequencies.
      	(make_forwarder_block): Do not update frequencies.
      	(duplicate_block): Do not update frequencies.
      	(account_profile_record): Do not update frequencies.
      	* cfgloop.c (find_subloop_latch_edge_by_profile): Use IPA counts
      	for global heuristics.
      	* cfgloopanal.c (average_num_loop_insns): Update to use to_frequency.
      	(expected_loop_iterations_unbounded): Use counts only.
      	* cfgloopmanip.c (scale_loop_profile): Simplify.
      	(create_empty_loop_on_edge): Simplify
      	(loopify): Simplify
      	(duplicate_loop_to_header_edge): Simplify
      	* cfgrtl.c (force_nonfallthru_and_redirect): Update profile.
      	(update_br_prob_note): Take care of removing note when profile
      	becomes undefined.
      	(relink_block_chain): Do not dump frequency.
      	(rtl_account_profile_record): Use to_frequency.
      	* cgraph.c (symbol_table::create_edge): Convert count to ipa count.
      	(cgraph_edge::redirect_call_stmt_to_calle): Conver tcount to ipa count.
      	(cgraph_update_edges_for_call_stmt_node): Likewise.
      	(cgraph_edge::verify_count_and_frequency): Update.
      	(cgraph_node::verify_node): Temporarily disable frequency verification.
      	* cgraphbuild.c (compute_call_stmt_bb_frequency): Use
      	to_cgraph_frequency.
      	(cgraph_edge::rebuild_edges): Convert to ipa counts.
      	* cgraphunit.c (init_lowered_empty_function): Do not initialize
      	frequencies.
      	(cgraph_node::expand_thunk): Update profile.
      	* except.c (dw2_build_landing_pads): Do not update frequency.
      	* final.c (compute_alignments): Use to_frequency.
      	(dump_basic_block_info): Do not dump frequency.
      	* gimple-pretty-print.c (dump_profile): Do not dump frequency.
      	(dump_gimple_bb_header): Do not dump frequency.
      	* gimple-ssa-isolate-paths.c (isolate_path): Do not update frequency;
      	do update count.
      	* gimple-streamer-in.c (input_bb): Do not stream frequency.
      	* gimple-streamer-out.c (output_bb): Do not stream frequency.
      	* haifa-sched.c (sched_pressure_start_bb): Use to_freuqency.
      	(init_before_recovery): Do not update frequency.
      	(sched_create_recovery_edges): Do not update frequency.
      	* hsa-gen.c (convert_switch_statements): Do not update frequency.
      	* ipa-cp.c (ipcp_propagate_stage): Update search for max_count.
      	(ipa_cp_c_finalize): Set max_count to uninitialized.
      	* ipa-fnsummary.c (get_minimal_bb): Use counts.
      	(param_change_prob): Use counts.
      	* ipa-profile.c (ipa_profile_generate_summary): Do not summarize
      	local profiles.
      	* ipa-split.c (consider_split): Use to_frequency.
      	(split_function): Use to_frequency.
      	* ira-build.c (loop_compare_func): Likewise.
      	(mark_loops_for_removal): Likewise.
      	(mark_all_loops_for_removal): Likewise.
      	* loop-doloop.c (doloop_modify): Do not update frequency.
      	* loop-unroll.c (unroll_loop_runtime_iterations): Do not update
      	frequency.
      	* lto-streamer-in.c (input_function): Update count_max.
      	* omp-expand.c (expand_omp_taskreg): Update count_max.
      	* omp-simd-clone.c (simd_clone_adjust): Update profile.
      	* predict.c (maybe_hot_frequency_p): Use to_frequency.
      	(maybe_hot_count_p): Use ipa counts only.
      	(maybe_hot_bb_p): Simplify.
      	(maybe_hot_edge_p): Simplify.
      	(probably_never_executed): Do not take frequency argument.
      	(probably_never_executed_bb_p): Do not pass frequency.
      	(probably_never_executed_edge_p): Likewise.
      	(combine_predictions_for_bb): Check that profile is nonzero.
      	(propagate_freq): Do not set frequency.
      	(drop_profile): Simplify.
      	(counts_to_freqs): Simplify.
      	(expensive_function_p): Use to_frequency.
      	(propagate_unlikely_bbs_forward): Simplify.
      	(determine_unlikely_bbs): Simplify.
      	(estimate_bb_frequencies): Add hack to silence graphite issues.
      	(compute_function_frequency): Use ipa counts.
      	(pass_profile::execute): Update.
      	(rebuild_frequencies): Use counts only.
      	(force_edge_cold): Use counts only.
      	* profile-count.c (profile_count::dump): Dump new count types.
      	(profile_count::differs_from_p): Check compatiblity.
      	(profile_count::to_frequency): New function.
      	(profile_count::to_cgraph_frequency): New function.
      	* profile-count.h (struct function): Declare.
      	(enum profile_quality): Add profile_guessed_local and
      	profile_guessed_global0.
      	(class profile_proability): Decrease number of bits to 29;
      	update from_reg_br_prob_note and to_reg_br_prob_note.
      	(class profile_count: Update comment; decrease number of bits
      	to 61. Check compatibility.
      	(profile_count::compatible_p): New private member function.
      	(profile_count::ipa_p): New member function.
      	(profile_count::operator<): Handle global zero correctly.
      	(profile_count::operator>): Handle global zero correctly.
      	(profile_count::operator<=): Handle global zero correctly.
      	(profile_count::operator>=): Handle global zero correctly.
      	(profile_count::nonzero_p): New member function.
      	(profile_count::force_nonzero): New member function.
      	(profile_count::max): New member function.
      	(profile_count::apply_scale): Handle IPA scalling.
      	(profile_count::guessed_local): New member function.
      	(profile_count::global0): New member function.
      	(profile_count::ipa): New member function.
      	(profile_count::to_frequency): Declare.
      	(profile_count::to_cgraph_frequency): Declare.
      	* profile.c (OVERLAP_BASE): Delete.
      	(compute_frequency_overlap): Delete.
      	(compute_branch_probabilities): Do not use compute_frequency_overlap.
      	* regs.h (REG_FREQ_FROM_BB): Use to_frequency.
      	* sched-ebb.c (rank): Use counts only.
      	* shrink-wrap.c (handle_simple_exit): Use counts only.
      	(try_shrink_wrapping): Use counts only.
      	(place_prologue_for_one_component): Use counts only.
      	* tracer.c (find_best_predecessor): Use to_frequency.
      	(find_trace): Use to_frequency.
      	(tail_duplicate): Use to_frequency.
      	* trans-mem.c (expand_transaction): Do not update frequency.
      	* tree-call-cdce.c: Do not update frequency. 
      	* tree-cfg.c (gimple_find_sub_bbs): Likewise.
      	(gimple_merge_blocks): Likewise.
      	(gimple_split_edge): Likewise.
      	(gimple_duplicate_sese_region): Likewise.
      	(gimple_duplicate_sese_tail): Likewise.
      	(move_sese_region_to_fn): Likewise.
      	(gimple_account_profile_record): Likewise.
      	(insert_cond_bb): Likewise.
      	* tree-complex.c (expand_complex_div_wide): Likewise.
      	* tree-eh.c (lower_resx): Update profile.
      	* tree-inline.c (copy_bb): Simplify count scaling; do not scale
      	frequencies.
      	(initialize_cfun): Do not initialize frequencies
      	(freqs_to_counts): Delete.
      	(copy_cfg_body): Ignore count parameter.
      	(copy_body): Update.
      	(expand_call_inline): Update count_max.
      	(optimize_inline_calls): Update count_max.
      	(tree_function_versioning): Update count_max.
      	* tree-ssa-coalesce.c (coalesce_cost_bb): Use to_frequency.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Do not update
      	frequency.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Use counts only.
      	* tree-ssa-loop-ivcanon.c (unloop_loops): Do not update freuqency.
      	(try_peel_loop): Likewise.
      	* tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Use
      	to_frequency.
      	* tree-ssa-loop-manip.c (niter_for_unrolled_loop): Pass -1.
      	(tree_transform_and_unroll_loop): Do not use frequencies
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations):
      	Use reliable prediction only.
      	* tree-ssa-loop-unswitch.c (hoist_guard): Do not use frequencies.
      	* tree-ssa-sink.c (select_best_block): Use to_frequency.
      	* tree-ssa-tail-merge.c (replace_block_by): Temporarily disable
      	probability scaling.
      	* tree-ssa-threadupdate.c (create_block_for_threading): Do
      	not update frequency
      	(any_remaining_duplicated_blocks): Likewise.
      	(update_profile): Likewise.
      	(estimated_freqs_path): Delete.
      	(freqs_to_counts_path): Delete.
      	(clear_counts_path): Delete.
      	(ssa_fix_duplicate_block_edges): Likewise.
      	(duplicate_thread_path): Likewise.
      	* tree-switch-conversion.c (gen_inbound_check): Use counts.
      	* tree-tailcall.c (decrease_profile): Do not update frequency.
      	(eliminate_tail_call): Likewise.
      	* tree-vect-loop-manip.c (vect_do_peeling): Likewise.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Likewise.
      	(optimize_mask_stores): Likewise.
      	* tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise.
      	* ubsan.c (ubsan_expand_null_ifn): Update profile.
      	(ubsan_expand_ptr_ifn): Update profile.
      	* value-prof.c (gimple_ic): Simplify.
      	* value-prof.h (gimple_ic): Update prototype.
      	* ipa-inline-transform.c (inline_transform): Fix scaling conditoins.
      	* ipa-inline.c (compute_uninlined_call_time): Be sure that
      	counts are nonzero.
      	(want_inline_self_recursive_call_p): Likewise.
      	(resolve_noninline_speculation): Only cummulate defined counts.
      	(inline_small_functions): Use nonzero_p.
      	(ipa_inline): Do not access freed node.
      
      Unknown ChangeLog:
      
      2017-11-02  Jan Hubicka  <hubicka@ucw.cz>
      
      	* testsuite/gcc.dg/no-strict-overflow-3.c (foo): Update magic
      	value to not clash with frequency.
      	* testsuite/gcc.dg/strict-overflow-3.c (foo): Likewise.
      	* testsuite/gcc.dg/tree-ssa/builtin-sprintf-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/dump-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-10.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-11.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-12.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-5.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-8.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-9.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-cd.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr56541.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr68583.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-1.c: Update template.
      	* testsuite/gcc.dg/tree-ssa/ifc-pr69489-2.c: Update template.
      	* testsuite/gcc.target/i386/pr61403.c: Update template.
      
      From-SVN: r254379
      Jan Hubicka committed
  14. 19 Oct, 2017 2 commits
    • asan.c (create_cond_insert_point): Do not update edge count. · ef30ab83
      	* asan.c (create_cond_insert_point): Do not update edge count.
      	* auto-profile.c (afdo_propagate_edge): Update for edge count removal.
      	(afdo_propagate_circuit): Likewise.
      	(afdo_calculate_branch_prob): Likewise.
      	(afdo_annotate_cfg): Likewise.
      	* basic-block.h (struct edge_def): Remove count.
      	(edge_def::count): New accessor.
      	* bb-reorder.c (rotate_loop): Update.
      	(find_traces_1_round): Update.
      	(connect_traces): Update.
      	(sanitize_hot_paths): Update.
      	* cfg.c (unchecked_make_edge): Update.
      	(make_single_succ_edge): Update.
      	(check_bb_profile): Update.
      	(dump_edge_info): Update.
      	(update_bb_profile_for_threading): Update.
      	(scale_bbs_frequencies_int): Update.
      	(scale_bbs_frequencies_gcov_type): Update.
      	(scale_bbs_frequencies_profile_count): Update.
      	(scale_bbs_frequencies): Update.
      	* cfganal.c (connect_infinite_loops_to_exit): Update.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	(find_many_sub_basic_blocks): Update.
      	* cfgcleanup.c (try_forward_edges): Update.
      	(try_crossjump_to_edge): Update
      	* cfgexpand.c (expand_gimple_cond): Update
      	(expand_gimple_tailcall): Update
      	(construct_exit_block): Update
      	* cfghooks.c (verify_flow_info): Update
      	(redirect_edge_succ_nodup): Update
      	(split_edge): Update
      	(make_forwarder_block): Update
      	(duplicate_block): Update
      	(account_profile_record): Update
      	* cfgloop.c (find_subloop_latch_edge_by_profile): Update.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Update.
      	* cfgloopmanip.c (scale_loop_profile): Update.
      	(loopify): Update.
      	(lv_adjust_loop_entry_edge): Update.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Update.
      	(force_nonfallthru_and_redirect): Update.
      	(purge_dead_edges): Update.
      	(rtl_flow_call_edges_add): Update.
      	* cgraphunit.c (init_lowered_empty_function): Update.
      	(cgraph_node::expand_thunk): Update.
      	* gimple-pretty-print.c (dump_probability): Update.
      	(dump_edge_probability): Update.
      	* gimple-ssa-isolate-paths.c (isolate_path): Update.
      	* haifa-sched.c (sched_create_recovery_edges): Update.
      	* hsa-gen.c (convert_switch_statements): Update.
      	* ifcvt.c (dead_or_predicable): Update.
      	* ipa-inline-transform.c (inline_transform): Update.
      	* ipa-split.c (split_function): Update.
      	* ipa-utils.c (ipa_merge_profiles): Update.
      	* loop-doloop.c (add_test): Update.
      	* loop-unroll.c (unroll_loop_runtime_iterations): Update.
      	* lto-streamer-in.c (input_cfg): Update.
      	(input_function): Update.
      	* lto-streamer-out.c (output_cfg): Update.
      	* modulo-sched.c (sms_schedule): Update.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Update.
      	* predict.c (maybe_hot_edge_p): Update.
      	(unlikely_executed_edge_p): Update.
      	(probably_never_executed_edge_p): Update.
      	(dump_prediction): Update.
      	(drop_profile): Update.
      	(propagate_unlikely_bbs_forward): Update.
      	(determine_unlikely_bbs): Update.
      	(force_edge_cold): Update.
      	* profile.c (compute_branch_probabilities): Update.
      	* reg-stack.c (better_edge): Update.
      	* shrink-wrap.c (handle_simple_exit): Update.
      	* tracer.c (better_p): Update.
      	* trans-mem.c (expand_transaction): Update.
      	(split_bb_make_tm_edge): Update.
      	* tree-call-cdce.c: Update.
      	* tree-cfg.c (gimple_find_sub_bbs): Update.
      	(gimple_split_edge): Update.
      	(gimple_duplicate_sese_region): Update.
      	(gimple_duplicate_sese_tail): Update.
      	(gimple_flow_call_edges_add): Update.
      	(insert_cond_bb): Update.
      	(execute_fixup_cfg): Update.
      	* tree-cfgcleanup.c (cleanup_control_expr_graph): Update.
      	* tree-complex.c (expand_complex_div_wide): Update.
      	* tree-eh.c (lower_resx): Update.
      	(unsplit_eh): Update.
      	(cleanup_empty_eh_move_lp): Update.
      	* tree-inline.c (copy_edges_for_bb): Update.
      	(freqs_to_counts): Update.
      	(copy_cfg_body): Update.
      	* tree-ssa-dce.c (remove_dead_stmt): Update.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
      	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
      	(unloop_loops): Update.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
      	* tree-ssa-loop-split.c (connect_loops): Update.
      	(split_loop): Update.
      	* tree-ssa-loop-unswitch.c (hoist_guard): Update.
      	* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
      	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
      	* tree-ssa-reassoc.c (branch_fixup): Update.
      	* tree-ssa-tail-merge.c (replace_block_by): Update.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
      	(compute_path_counts): Update.
      	(update_profile): Update.
      	(recompute_probabilities): Update.
      	(update_joiner_offpath_counts): Update.
      	(estimated_freqs_path): Update.
      	(freqs_to_counts_path): Update.
      	(clear_counts_path): Update.
      	(ssa_fix_duplicate_block_edges): Update.
      	(duplicate_thread_path): Update.
      	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
      	(case_bit_test_cmp): Update.
      	(collect_switch_conv_info): Update.
      	(gen_inbound_check): Update.
      	(do_jump_if_equal): Update.
      	(emit_cmp_and_jump_insns): Update.
      	* tree-tailcall.c (decrease_profile): Update.
      	(eliminate_tail_call): Update.
      	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
      	(vect_do_peeling): Update.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
      	* ubsan.c (ubsan_expand_null_ifn): Update.
      	(ubsan_expand_ptr_ifn): Update.
      	* value-prof.c (gimple_divmod_fixed_value): Update.
      	(gimple_mod_pow2): Update.
      	(gimple_mod_subtract): Update.
      	(gimple_ic): Update.
      	(gimple_stringop_fixed_value): Update.
      
      From-SVN: r253910
      Jan Hubicka committed
    • asan.c (handle_builtin_alloca): Deal with all alloca variants. · 9e878cf1
      	* asan.c (handle_builtin_alloca): Deal with all alloca variants.
      	(get_mem_refs_of_builtin_call): Likewise.
      	* builtins.c (expand_builtin_apply): Adjust call to
      	allocate_dynamic_stack_space.
      	(expand_builtin_alloca): For __builtin_alloca_with_align_and_max, pass
      	the third argument to allocate_dynamic_stack_space, otherwise -1.
      	(expand_builtin): Deal with all alloca variants.
      	(is_inexpensive_builtin): Likewise.
      	* builtins.def (BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX): New.
      	* calls.c (special_function_p): Deal with all alloca variants.
      	(initialize_argument_information): Adjust call to
      	allocate_dynamic_stack_space.
      	(expand_call): Likewise.
      	* cfgexpand.c (expand_call_stmt): Deal with all alloca variants.
      	* doc/extend.texi (Built-ins): Add __builtin_alloca_with_align_and_max
      	* explow.c (allocate_dynamic_stack_space): Add MAX_SIZE parameter and
      	use it for the stack usage computation.
      	* explow.h (allocate_dynamic_stack_space): Adjust prototype.
      	* function.c (gimplify_parameters): Turn BUILT_IN_ALLOCA_WITH_ALIGN
      	into BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
      	* gimple-ssa-warn-alloca.c (alloca_call_type): Simplify control flow.
      	Take into account 3rd argument of __builtin_alloca_with_align_and_max.
      	(in_loop_p): Remove first argument and useless check.
      	(pass_walloca::execute): Remove useless test and adjust call to above.
      	* gimple.c (gimple_build_call_from_tree): Deal with all alloc variants
      	* gimplify.c (gimplify_vla_decl): Turn BUILT_IN_ALLOCA_WITH_ALIGN into
      	BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX and pass maximum size.
      	(gimplify_call_expr): Deal with all alloca variants.
      	* hsa-gen.c (gen_hsa_alloca): Likewise.
      	(gen_hsa_insns_for_call): Likewise.
      	* ipa-pure-const.c (special_builtin_state): Likewise.
      	* tree-chkp.c (chkp_build_returned_bound): Likewise.
      	* tree-object-size.c (alloc_object_size): Likewise.
      	* tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Likewise.
      	(call_may_clobber_ref_p_1): Likewise.
      	* tree-ssa-ccp.c (evaluate_stmt): Likewise.
      	(ccp_fold_stmt): Likewise.
      	(optimize_stack_restore): Likewise.
      	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
      	(mark_all_reaching_defs_necessary_1): Likewise.
      	(propagate_necessity): Likewise.
      	(eliminate_unnecessary_stmts): Likewise.
      	* tree.c (build_common_builtin_nodes): Build
      	BUILT_IN_ALLOCA_WITH_ALIGN_AND_MAX.
      	* tree.h (ALLOCA_FUNCTION_CODE_P): New macro.
      	(CASE_BUILT_IN_ALLOCA): Likewise.
      	* varasm.c (incorporeal_function_p): Deal with all alloca variants.
      c-family/
      	* c-common.c (check_builtin_function_arguments): Also check arguments
      	of __builtin_alloca_with_align_and_max.
      
      From-SVN: r253901
      Eric Botcazou committed
  15. 09 Oct, 2017 1 commit
    • [PR 82416] Do not extend operands to at least 32 bits · 191411e4
      2017-10-09  Martin Jambor  <mjambor@suse.cz>
      
      	PR hsa/82416
      gcc/
      	* hsa-common.h (hsa_op_with_type): New method extend_int_to_32bit.
      	* hsa-gen.c (hsa_extend_inttype_to_32bit): New function.
      	(hsa_type_for_scalar_tree_type): Use it.  Always force min32int for
      	COMPLEX types.
      	(hsa_fixup_mov_insn_type): New function.
      	(hsa_op_with_type::get_in_type): Use it.
      	(hsa_build_append_simple_mov): Likewise.  Allow sub-32bit
      	immediates in an assert.
      	(hsa_op_with_type::extend_int_to_32bit): New method.
      	(gen_hsa_insns_for_bitfield): Fixup instruction and intermediary
      	types.  Convert to dest type if necessary.
      	(gen_hsa_insns_for_bitfield_load): Fixup load type if necessary.
      	(reg_for_gimple_ssa): Pass false as min32int to
      	hsa_type_for_scalar_tree_type.
      	(gen_hsa_addr): Fixup type when creating addresable temporary.
      	(gen_hsa_cmp_insn_from_gimple): Extend operands if necessary.
      	(gen_hsa_unary_operation): Extend operands and convert to dest type if
      	necessary.  Call hsa_fixup_mov_insn_type.
      	(gen_hsa_binary_operation): Changed operand types to hsa_op_with_type,
      	extend operands and convert to dest type if necessary.
      	(gen_hsa_insns_for_operation_assignment): Extend operands and convert
      	to dest type if necessary.
      	(set_output_in_type): Call hsa_fixup_mov_insn_type.  Just ude dest
      	if conversion nt necessary and size matches.
      	(gen_hsa_insns_for_load): Call hsa_fixup_mov_insn_type, convert
      	to dest type if necessary.
      	(gen_hsa_insns_for_store): Call hsa_fixup_mov_insn_type.
      	(gen_hsa_insns_for_switch_stmt): Likewise. Also extend operands if
      	necessary.
      	(gen_hsa_clrsb): Likewise.
      	(gen_hsa_ffs): Likewise.
      	(gen_hsa_divmod): Extend operands and convert to dest type if
      	necessary.
      	(gen_hsa_atomic_for_builtin): Change type of op to hsa_op_with_type.
      
      libgomp/
      	* testsuite/libgomp.hsa.c/pr82416.c: New test.
      
      From-SVN: r253538
      Martin Jambor committed
  16. 11 Sep, 2017 1 commit
    • Make HSA resilient to side-effects of split_edge · 635c99aa
      2017-09-11  Martin Jambor  <mjambor@suse.cz>
      
      	PR hsa/82119
      	* hsa-gen.c (gen_hsa_phi_from_gimple_phi): Process ADDR_EXPRs in
      	arguments in advance.
      	* hsa-regalloc.c (naive_process_phi): New parameter predecessors,
      	use it to find predecessor edges.
      	(naive_outof_ssa): Collect vector of predecessors.
      
      From-SVN: r251964
      Martin Jambor committed
  17. 08 Aug, 2017 1 commit
    • trans.c: Include header files. · 314e6352
      .
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* gcc-interface/trans.c: Include header files.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* objc-gnu-runtime-abi-01.c: Include header files.
      	* objc-next-runtime-abi-01.c: Likewise.
      	* objc-next-runtime-abi-02.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* asan.c: Include header files.
      	* attribs.c (build_decl_attribute_variant): New function moved
      	from tree.[ch].
      	(build_type_attribute_qual_variant): Likewise.
      	(cmp_attrib_identifiers): Likewise.
      	(simple_cst_list_equal): Likewise.
      	(omp_declare_simd_clauses_equal): Likewise.
      	(attribute_value_equal): Likewise.
      	(comp_type_attributes): Likewise.
      	(build_type_attribute_variant): Likewise.
      	(lookup_ident_attribute): Likewise.
      	(remove_attribute): Likewise.
      	(merge_attributes): Likewise.
      	(merge_type_attributes): Likewise.
      	(merge_decl_attributes): Likewise.
      	(merge_dllimport_decl_attributes): Likewise.
      	(handle_dll_attribute): Likewise.
      	(attribute_list_equal): Likewise.
      	(attribute_list_contained): Likewise.
      	* attribs.h (lookup_attribute): New function moved from tree.[ch].
      	(lookup_attribute_by_prefix): Likewise.
      	* bb-reorder.c: Include header files.
      	* builtins.c: Likewise.
      	* calls.c: Likewise.
      	* cfgexpand.c: Likewise.
      	* cgraph.c: Likewise.
      	* cgraphunit.c: Likewise.
      	* convert.c: Likewise.
      	* dwarf2out.c: Likewise.
      	* final.c: Likewise.
      	* fold-const.c: Likewise.
      	* function.c: Likewise.
      	* gimple-expr.c: Likewise.
      	* gimple-fold.c: Likewise.
      	* gimple-pretty-print.c: Likewise.
      	* gimple.c: Likewise.
      	* gimplify.c: Likewise.
      	* hsa-common.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ipa-chkp.c: Likewise.
      	* ipa-cp.c: Likewise.
      	* ipa-devirt.c: Likewise.
      	* ipa-fnsummary.c: Likewise.
      	* ipa-inline.c: Likewise.
      	* ipa-visibility.c: Likewise.
      	* ipa.c: Likewise.
      	* lto-cgraph.c: Likewise.
      	* omp-expand.c: Likewise.
      	* omp-general.c: Likewise.
      	* omp-low.c: Likewise.
      	* omp-offload.c: Likewise.
      	* omp-simd-clone.c: Likewise.
      	* opts-global.c: Likewise.
      	* passes.c: Likewise.
      	* predict.c: Likewise.
      	* sancov.c: Likewise.
      	* sanopt.c: Likewise.
      	* symtab.c: Likewise.
      	* toplev.c: Likewise.
      	* trans-mem.c: Likewise.
      	* tree-chkp.c: Likewise.
      	* tree-eh.c: Likewise.
      	* tree-into-ssa.c: Likewise.
      	* tree-object-size.c: Likewise.
      	* tree-parloops.c: Likewise.
      	* tree-profile.c: Likewise.
      	* tree-ssa-ccp.c: Likewise.
      	* tree-ssa-live.c: Likewise.
      	* tree-ssa-loop.c: Likewise.
      	* tree-ssa-sccvn.c: Likewise.
      	* tree-ssa-structalias.c: Likewise.
      	* tree-ssa.c: Likewise.
      	* tree-streamer-in.c: Likewise.
      	* tree-vectorizer.c: Likewise.
      	* tree-vrp.c: Likewise.
      	* tsan.c: Likewise.
      	* ubsan.c: Likewise.
      	* varasm.c: Likewise.
      	* varpool.c: Likewise.
      	* tree.c: Remove functions moved to attribs.[ch].
      	* tree.h: Likewise.
      	* config/aarch64/aarch64.c: Add attrs.h header file.
      	* config/alpha/alpha.c: Likewise.
      	* config/arc/arc.c: Likewise.
      	* config/arm/arm.c: Likewise.
      	* config/avr/avr.c: Likewise.
      	* config/bfin/bfin.c: Likewise.
      	* config/c6x/c6x.c: Likewise.
      	* config/cr16/cr16.c: Likewise.
      	* config/cris/cris.c: Likewise.
      	* config/darwin.c: Likewise.
      	* config/epiphany/epiphany.c: Likewise.
      	* config/fr30/fr30.c: Likewise.
      	* config/frv/frv.c: Likewise.
      	* config/ft32/ft32.c: Likewise.
      	* config/h8300/h8300.c: Likewise.
      	* config/i386/winnt.c: Likewise.
      	* config/ia64/ia64.c: Likewise.
      	* config/iq2000/iq2000.c: Likewise.
      	* config/lm32/lm32.c: Likewise.
      	* config/m32c/m32c.c: Likewise.
      	* config/m32r/m32r.c: Likewise.
      	* config/m68k/m68k.c: Likewise.
      	* config/mcore/mcore.c: Likewise.
      	* config/microblaze/microblaze.c: Likewise.
      	* config/mips/mips.c: Likewise.
      	* config/mmix/mmix.c: Likewise.
      	* config/mn10300/mn10300.c: Likewise.
      	* config/moxie/moxie.c: Likewise.
      	* config/msp430/msp430.c: Likewise.
      	* config/nds32/nds32-isr.c: Likewise.
      	* config/nds32/nds32.c: Likewise.
      	* config/nios2/nios2.c: Likewise.
      	* config/nvptx/nvptx.c: Likewise.
      	* config/pa/pa.c: Likewise.
      	* config/pdp11/pdp11.c: Likewise.
      	* config/powerpcspe/powerpcspe.c: Likewise.
      	* config/riscv/riscv.c: Likewise.
      	* config/rl78/rl78.c: Likewise.
      	* config/rx/rx.c: Likewise.
      	* config/s390/s390.c: Likewise.
      	* config/sh/sh.c: Likewise.
      	* config/sol2.c: Likewise.
      	* config/sparc/sparc.c: Likewise.
      	* config/spu/spu.c: Likewise.
      	* config/stormy16/stormy16.c: Likewise.
      	* config/tilegx/tilegx.c: Likewise.
      	* config/tilepro/tilepro.c: Likewise.
      	* config/v850/v850.c: Likewise.
      	* config/vax/vax.c: Likewise.
      	* config/visium/visium.c: Likewise.
      	* config/xtensa/xtensa.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* call.c: Include header files.
      	* cp-gimplify.c: Likewise.
      	* cp-ubsan.c: Likewise.
      	* cvt.c: Likewise.
      	* init.c: Likewise.
      	* search.c: Likewise.
      	* semantics.c: Likewise.
      	* typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* lto-lang.c: Include header files.
      	* lto-symtab.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-convert.c: Include header files.
      	* c-typeck.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* c-ada-spec.c: Include header files.
      	* c-ubsan.c: Likewise.
      	* c-warn.c: Likewise.
      2017-08-08  Martin Liska  <mliska@suse.cz>
      
      	* trans-types.c: Include header files.
      
      From-SVN: r250946
      Martin Liska committed
  18. 05 Jul, 2017 1 commit
    • Remove enum before machine_mode · b8506a8a
      r216834 did a mass removal of "enum" before "machine_mode".  This patch
      removes some new uses that have been added since then.
      
      2017-07-05  Richard Sandiford  <richard.sandiford@linaro.org>
      	    Alan Hayward  <alan.hayward@arm.com>
      	    David Sherwood  <david.sherwood@arm.com>
      
      gcc/
      	* combine.c (simplify_if_then_else): Remove "enum" before
      	"machine_mode".
      	* compare-elim.c (can_eliminate_compare): Likewise.
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_builtin_std_type):
      	Likewise.
      	(aarch64_lookup_simd_builtin_type): Likewise.
      	(aarch64_simd_builtin_type): Likewise.
      	(aarch64_init_simd_builtin_types): Likewise.
      	(aarch64_simd_expand_args): Likewise.
      	* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_rglist):
      	Likewise.
      	(aarch64_reverse_mask): Likewise.
      	(aarch64_simd_emit_reg_reg_move): Likewise.
      	(aarch64_gen_adjusted_ldpstp): Likewise.
      	(aarch64_ccmp_mode_to_code): Likewise.
      	(aarch64_operands_ok_for_ldpstp): Likewise.
      	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.
      	* config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class):
      	Likewise.
      	(aarch64_min_divisions_for_recip_mul): Likewise.
      	(aarch64_reassociation_width): Likewise.
      	(aarch64_get_condition_code_1): Likewise.
      	(aarch64_simd_emit_reg_reg_move): Likewise.
      	(aarch64_simd_attr_length_rglist): Likewise.
      	(aarch64_reverse_mask): Likewise.
      	(aarch64_operands_ok_for_ldpstp): Likewise.
      	(aarch64_operands_adjust_ok_for_ldpstp): Likewise.
      	(aarch64_gen_adjusted_ldpstp): Likewise.
      	* config/aarch64/cortex-a57-fma-steering.c (fma_node::rename):
      	Likewise.
      	* config/arc/arc.c (legitimate_offset_address_p): Likewise.
      	* config/arm/arm-builtins.c (arm_simd_builtin_std_type): Likewise.
      	(arm_lookup_simd_builtin_type): Likewise.
      	(arm_simd_builtin_type): Likewise.
      	(arm_init_simd_builtin_types): Likewise.
      	(arm_expand_builtin_args): Likewise.
      	* config/arm/arm-protos.h (arm_expand_builtin): Likewise.
      	* config/ft32/ft32.c (ft32_libcall_value): Likewise.
      	(ft32_setup_incoming_varargs): Likewise.
      	(ft32_function_arg): Likewise.
      	(ft32_function_arg_advance): Likewise.
      	(ft32_pass_by_reference): Likewise.
      	(ft32_arg_partial_bytes): Likewise.
      	(ft32_valid_pointer_mode): Likewise.
      	(ft32_addr_space_pointer_mode): Likewise.
      	(ft32_addr_space_legitimate_address_p): Likewise.
      	* config/i386/i386-protos.h (ix86_operands_ok_for_move_multiple):
      	Likewise.
      	* config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
      	(ix86_emit_outlined_ms2sysv_restore): Likewise.
      	(iamcu_alignment): Likewise.
      	(canonicalize_vector_int_perm): Likewise.
      	(ix86_noce_conversion_profitable_p): Likewise.
      	(ix86_mpx_bound_mode): Likewise.
      	(ix86_operands_ok_for_move_multiple): Likewise.
      	* config/microblaze/microblaze-protos.h
      	(microblaze_expand_conditional_branch_reg): Likewise.
      	* config/microblaze/microblaze.c
      	(microblaze_expand_conditional_branch_reg): Likewise.
      	* config/powerpcspe/powerpcspe.c (rs6000_init_hard_regno_mode_ok):
      	Likewise.
      	(rs6000_reassociation_width): Likewise.
      	(rs6000_invalid_binary_op): Likewise.
      	(fusion_p9_p): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/riscv/riscv-protos.h (riscv_regno_mode_ok_for_base_p):
      	Likewise.
      	(riscv_hard_regno_mode_ok_p): Likewise.
      	(riscv_address_insns): Likewise.
      	(riscv_split_symbol): Likewise.
      	(riscv_legitimize_move): Likewise.
      	(riscv_function_value): Likewise.
      	(riscv_hard_regno_nregs): Likewise.
      	(riscv_expand_builtin): Likewise.
      	* config/riscv/riscv.c (riscv_build_integer_1): Likewise.
      	(riscv_build_integer): Likewise.
      	(riscv_split_integer): Likewise.
      	(riscv_legitimate_constant_p): Likewise.
      	(riscv_cannot_force_const_mem): Likewise.
      	(riscv_regno_mode_ok_for_base_p): Likewise.
      	(riscv_valid_base_register_p): Likewise.
      	(riscv_valid_offset_p): Likewise.
      	(riscv_valid_lo_sum_p): Likewise.
      	(riscv_classify_address): Likewise.
      	(riscv_legitimate_address_p): Likewise.
      	(riscv_address_insns): Likewise.
      	(riscv_load_store_insns): Likewise.
      	(riscv_force_binary): Likewise.
      	(riscv_split_symbol): Likewise.
      	(riscv_force_address): Likewise.
      	(riscv_legitimize_address): Likewise.
      	(riscv_move_integer): Likewise.
      	(riscv_legitimize_const_move): Likewise.
      	(riscv_legitimize_move): Likewise.
      	(riscv_address_cost): Likewise.
      	(riscv_subword): Likewise.
      	(riscv_output_move): Likewise.
      	(riscv_canonicalize_int_order_test): Likewise.
      	(riscv_emit_int_order_test): Likewise.
      	(riscv_function_arg_boundary): Likewise.
      	(riscv_pass_mode_in_fpr_p): Likewise.
      	(riscv_pass_fpr_single): Likewise.
      	(riscv_pass_fpr_pair): Likewise.
      	(riscv_get_arg_info): Likewise.
      	(riscv_function_arg): Likewise.
      	(riscv_function_arg_advance): Likewise.
      	(riscv_arg_partial_bytes): Likewise.
      	(riscv_function_value): Likewise.
      	(riscv_pass_by_reference): Likewise.
      	(riscv_setup_incoming_varargs): Likewise.
      	(riscv_print_operand): Likewise.
      	(riscv_elf_select_rtx_section): Likewise.
      	(riscv_save_restore_reg): Likewise.
      	(riscv_for_each_saved_reg): Likewise.
      	(riscv_register_move_cost): Likewise.
      	(riscv_hard_regno_mode_ok_p): Likewise.
      	(riscv_hard_regno_nregs): Likewise.
      	(riscv_class_max_nregs): Likewise.
      	(riscv_memory_move_cost): Likewise.
      	* config/rl78/rl78-protos.h (rl78_split_movsi): Likewise.
      	* config/rl78/rl78.c (rl78_split_movsi): Likewise.
      	(rl78_addr_space_address_mode): Likewise.
      	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
      	Likewise.
      	* config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Likewise.
      	(rs6000_reassociation_width): Likewise.
      	(rs6000_invalid_binary_op): Likewise.
      	(fusion_p9_p): Likewise.
      	(emit_fusion_p9_load): Likewise.
      	(emit_fusion_p9_store): Likewise.
      	* config/visium/visium-protos.h (prepare_move_operands): Likewise.
      	(ok_for_simple_move_operands): Likewise.
      	(ok_for_simple_move_strict_operands): Likewise.
      	(ok_for_simple_arith_logic_operands): Likewise.
      	(visium_legitimize_reload_address): Likewise.
      	(visium_select_cc_mode): Likewise.
      	(output_cbranch): Likewise.
      	(visium_split_double_move): Likewise.
      	(visium_expand_copysign): Likewise.
      	(visium_expand_int_cstore): Likewise.
      	(visium_expand_fp_cstore): Likewise.
      	* config/visium/visium.c (visium_pass_by_reference): Likewise.
      	(visium_function_arg): Likewise.
      	(visium_function_arg_advance): Likewise.
      	(visium_libcall_value): Likewise.
      	(visium_setup_incoming_varargs): Likewise.
      	(visium_legitimate_constant_p): Likewise.
      	(visium_legitimate_address_p): Likewise.
      	(visium_legitimize_address): Likewise.
      	(visium_secondary_reload): Likewise.
      	(visium_register_move_cost): Likewise.
      	(visium_memory_move_cost): Likewise.
      	(prepare_move_operands): Likewise.
      	(ok_for_simple_move_operands): Likewise.
      	(ok_for_simple_move_strict_operands): Likewise.
      	(ok_for_simple_arith_logic_operands): Likewise.
      	(visium_function_value_1): Likewise.
      	(rtx_ok_for_offset_p): Likewise.
      	(visium_legitimize_reload_address): Likewise.
      	(visium_split_double_move): Likewise.
      	(visium_expand_copysign): Likewise.
      	(visium_expand_int_cstore): Likewise.
      	(visium_expand_fp_cstore): Likewise.
      	(visium_split_cstore): Likewise.
      	(visium_select_cc_mode): Likewise.
      	(visium_split_cbranch): Likewise.
      	(output_cbranch): Likewise.
      	(visium_print_operand_address): Likewise.
      	* expmed.c (flip_storage_order): Likewise.
      	* expmed.h (emit_cstore): Likewise.
      	(flip_storage_order): Likewise.
      	* genrecog.c (validate_pattern): Likewise.
      	* hsa-gen.c (gen_hsa_addr): Likewise.
      	* internal-fn.c (expand_arith_overflow): Likewise.
      	* ira-color.c (allocno_copy_cost_saving): Likewise.
      	* lra-assigns.c (find_hard_regno_for_1): Likewise.
      	* lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise.
      	(process_invariant_for_inheritance): Likewise.
      	* lra-eliminations.c (move_plus_up): Likewise.
      	* omp-low.c (lower_oacc_reductions): Likewise.
      	* simplify-rtx.c (simplify_subreg): Likewise.
      	* target.def (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
      	(TARGET_CHKP_BOUND_MODE): Likewise..
      	* targhooks.c (default_chkp_bound_mode): Likewise.
      	(default_setup_incoming_vararg_bounds): Likewise.
      	* targhooks.h (default_chkp_bound_mode): Likewise.
      	(default_setup_incoming_vararg_bounds): Likewise.
      	* tree-ssa-math-opts.c (divmod_candidate_p): Likewise.
      	* tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise.
      	(have_whole_vector_shift): Likewise.
      	* tree-vect-stmts.c (vectorizable_load): Likewise.
      	* doc/tm.texi: Regenerate.
      
      gcc/brig/
      	* brig-c.h (brig_type_for_mode): Remove "enum" before "machine_mode".
      	* brig-lang.c (brig_langhook_type_for_mode): Likewise.
      
      gcc/jit/
      	* dummy-frontend.c (jit_langhook_type_for_mode): Remove "enum" before
      	"machine_mode".
      
      Co-Authored-By: Alan Hayward <alan.hayward@arm.com>
      Co-Authored-By: David Sherwood <david.sherwood@arm.com>
      
      From-SVN: r250003
      Richard Sandiford committed
  19. 29 Jun, 2017 1 commit
    • asan.c (asan_emit_stack_protection): Update. · 357067f2
      	* asan.c (asan_emit_stack_protection): Update.
      	(create_cond_insert_point): Update.
      	* auto-profile.c (afdo_propagate_circuit): Update.
      	* basic-block.h (struct edge_def): Turn probability to
      	profile_probability.
      	(EDGE_FREQUENCY): Update.
      	* bb-reorder.c (find_traces_1_round): Update.
      	(better_edge_p): Update.
      	(sanitize_hot_paths): Update.
      	* cfg.c (unchecked_make_edge): Initialize probability to uninitialized.
      	(make_single_succ_edge): Update.
      	(check_bb_profile): Update.
      	(dump_edge_info): Update.
      	(update_bb_profile_for_threading): Update.
      	* cfganal.c (connect_infinite_loops_to_exit): Initialize new edge
      	probabilitycount to 0.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	* cfgcleanup.c (try_forward_edges): Update.
      	(outgoing_edges_match): Update.
      	(try_crossjump_to_edge): Update.
      	* cfgexpand.c (expand_gimple_cond): Update make_single_succ_edge.
      	(expand_gimple_tailcall): Update.
      	(construct_init_block): Use make_single_succ_edge.
      	(construct_exit_block): Use make_single_succ_edge.
      	* cfghooks.c (verify_flow_info): Update.
      	(redirect_edge_succ_nodup): Update.
      	(split_edge): Update.
      	(account_profile_record): Update.
      	* cfgloopanal.c (single_likely_exit): Update.
      	* cfgloopmanip.c (scale_loop_profile): Update.
      	(set_zero_probability): Remove.
      	(duplicate_loop_to_header_edge): Update.
      	* cfgloopmanip.h (loop_version): Update prototype.
      	* cfgrtl.c (try_redirect_by_replacing_jump): Update.
      	(force_nonfallthru_and_redirect): Update.
      	(update_br_prob_note): Update.
      	(rtl_verify_edges): Update.
      	(purge_dead_edges): Update.
      	(rtl_lv_add_condition_to_bb): Update.
      	* cgraph.c: (cgraph_edge::redirect_call_stmt_to_calle): Update.
      	* cgraphunit.c (init_lowered_empty_function): Update.
      	(cgraph_node::expand_thunk): Update.
      	* cilk-common.c: Include profile-count.h
      	* dojump.c (inv): Remove.
      	(jumpifnot): Update.
      	(jumpifnot_1): Update.
      	(do_jump_1): Update.
      	(do_jump): Update.
      	(do_jump_by_parts_greater_rtx): Update.
      	(do_compare_rtx_and_jump): Update.
      	* dojump.h (jumpifnot, jumpifnot_1, jumpif_1, jumpif, do_jump,
      	do_jump_1. do_compare_rtx_and_jump): Update prototype.
      	* dwarf2cfi.c: Include profile-count.h
      	* except.c (dw2_build_landing_pads): Use make_single_succ_edge.
      	(sjlj_emit_dispatch_table): Likewise.
      	* explow.c: Include profile-count.h
      	* expmed.c (emit_store_flag_force): Update.
      	(do_cmp_and_jump): Update.
      	* expr.c (compare_by_pieces_d::generate): Update.
      	(compare_by_pieces_d::finish_mode): Update.
      	(emit_block_move_via_loop): Update.
      	(store_expr_with_bounds): Update.
      	(store_constructor): Update.
      	(expand_expr_real_2): Update.
      	(expand_expr_real_1): Update.
      	* expr.h (try_casesi, try_tablejump): Update prototypes.
      	* gimple-pretty-print.c (dump_probability): Update.
      	(dump_profile): New.
      	(dump_gimple_label): Update.
      	(dump_gimple_bb_header): Update.
      	* graph.c (draw_cfg_node_succ_edges): Update.
      	* hsa-gen.c (convert_switch_statements): Update.
      	* ifcvt.c (cheap_bb_rtx_cost_p): Update.
      	(find_if_case_1): Update.
      	(find_if_case_2): Update.
      	* internal-fn.c (expand_arith_overflow_result_store): Update.
      	(expand_addsub_overflow): Update.
      	(expand_neg_overflow): Update.
      	(expand_mul_overflow): Update.
      	(expand_vector_ubsan_overflow): Update.
      	* ipa-cp.c (good_cloning_opportunity_p): Update.
      	* ipa-split.c (split_function): Use make_single_succ_edge.
      	* ipa-utils.c (ipa_merge_profiles): Update.
      	* loop-doloop.c (add_test): Update.
      	(doloop_modify): Update.
      	* loop-unroll.c (compare_and_jump_seq): Update.
      	(unroll_loop_runtime_iterations): Update.
      	* lra-constraints.c (lra_inheritance): Update.
      	* lto-streamer-in.c (input_cfg): Update.
      	* lto-streamer-out.c (output_cfg): Update.
      	* mcf.c (adjust_cfg_counts): Update.
      	* modulo-sched.c (sms_schedule): Update.
      	* omp-expand.c (expand_omp_for_init_counts): Update.
      	(extract_omp_for_update_vars): Update.
      	(expand_omp_ordered_sink): Update.
      	(expand_omp_for_ordered_loops): Update.
      	(expand_omp_for_generic): Update.
      	(expand_omp_for_static_nochunk): Update.
      	(expand_omp_for_static_chunk): Update.
      	(expand_cilk_for): Update.
      	(expand_omp_simd): Update.
      	(expand_omp_taskloop_for_outer): Update.
      	(expand_omp_taskloop_for_inner): Update.
      	* omp-simd-clone.c (simd_clone_adjust): Update.
      	* optabs.c (expand_doubleword_shift): Update.
      	(expand_abs): Update.
      	(emit_cmp_and_jump_insn_1): Update.
      	(expand_compare_and_swap_loop): Update.
      	* optabs.h (emit_cmp_and_jump_insns): Update prototype.
      	* predict.c (predictable_edge_p): Update.
      	(edge_probability_reliable_p): Update.
      	(set_even_probabilities): Update.
      	(combine_predictions_for_insn): Update.
      	(combine_predictions_for_bb): Update.
      	(propagate_freq): Update.
      	(estimate_bb_frequencies): Update.
      	(force_edge_cold): Update.
      	* profile-count.c (profile_count::dump): Add missing space into dump.
      	(profile_count::debug): Add newline.
      	(profile_count::differs_from_p): Explicitly convert to unsigned.
      	(profile_count::stream_in): Update.
      	(profile_probability::dump): New member function.
      	(profile_probability::debug): New member function.
      	(profile_probability::differs_from_p): New member function.
      	(profile_probability::differs_lot_from_p): New member function.
      	(profile_probability::stream_in): New member function.
      	(profile_probability::stream_out): New member function.
      	* profile-count.h (profile_count_quality): Rename to ...
      	(profile_quality): ... this one.
      	(profile_probability): New.
      	(profile_count): Update.
      	* profile.c (compute_branch_probabilities): Update.
      	* recog.c (peep2_attempt): Update.
      	* sched-ebb.c (schedule_ebbs): Update.
      	* sched-rgn.c (find_single_block_region): Update.
      	(compute_dom_prob_ps): Update.
      	(schedule_region): Update.
      	* sel-sched-ir.c (compute_succs_info): Update.
      	* stmt.c (struct case_node): Update.
      	(do_jump_if_equal): Update.
      	(get_outgoing_edge_probs): Update.
      	(conditional_probability): Update.
      	(emit_case_dispatch_table): Update.
      	(expand_case): Update.
      	(expand_sjlj_dispatch_table): Update.
      	(emit_case_nodes): Update.
      	* targhooks.c: Update.
      	* tracer.c (better_p): Update.
      	(find_best_successor): Update.
      	* trans-mem.c (expand_transaction): Update.
      	* tree-call-cdce.c: Update.
      	* tree-cfg.c (gimple_split_edge): Upate.
      	(move_sese_region_to_fn): Upate.
      	* tree-cfgcleanup.c (cleanup_control_expr_graph): Upate.
      	* tree-eh.c (lower_resx): Upate.
      	(cleanup_empty_eh_move_lp): Upate.
      	* tree-if-conv.c (version_loop_for_if_conversion): Update.
      	* tree-inline.c (copy_edges_for_bb): Update.
      	(copy_cfg_body): Update.
      	* tree-parloops.c (gen_parallel_loop): Update.
      	* tree-profile.c (gimple_gen_ic_func_profiler): Update.
      	(gimple_gen_time_profiler): Update.
      	* tree-ssa-dce.c (remove_dead_stmt): Update.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
      	* tree-ssa-loop-im.c (execute_sm_if_changed): Update.
      	* tree-ssa-loop-ivcanon.c (remove_exits_and_undefined_stmts): Update.
      	(unloop_loops): Update.
      	(try_peel_loop): Update.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
      	* tree-ssa-loop-split.c (connect_loops): Update.
      	(split_loop): Update.
      	* tree-ssa-loop-unswitch.c (tree_unswitch_loop): Update.
      	(hoist_guard): Update.
      	* tree-ssa-phionlycprop.c (propagate_rhs_into_lhs): Update.
      	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update.
      	(value_replacement): Update.
      	* tree-ssa-reassoc.c (branch_fixup): Update.
      	* tree-ssa-tail-merge.c (replace_block_by): Update.
      	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Update.
      	(create_edge_and_update_destination_phis): Update.
      	(compute_path_counts): Update.
      	(recompute_probabilities): Update.
      	(update_joiner_offpath_counts): Update.
      	(freqs_to_counts_path): Update.
      	(duplicate_thread_path): Update.
      	* tree-switch-conversion.c (hoist_edge_and_branch_if_true): Update.
      	(struct switch_conv_info): Update.
      	(gen_inbound_check): Update.
      	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
      	(vect_do_peeling): Update.
      	(vect_loop_versioning): Update.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
      	(optimize_mask_stores): Update.
      	* ubsan.c (ubsan_expand_null_ifn): Update.
      	* value-prof.c (gimple_divmod_fixed_value): Update.
      	(gimple_divmod_fixed_value_transform): Update.
      	(gimple_mod_pow2): Update.
      	(gimple_mod_pow2_value_transform): Update.
      	(gimple_mod_subtract): Update.
      	(gimple_mod_subtract_transform): Update.
      	(gimple_ic): Update.
      	(gimple_stringop_fixed_value): Update.
      	(gimple_stringops_transform): Update.
      	* value-prof.h: Update.
      
      From-SVN: r249800
      Jan Hubicka committed
  20. 11 Jun, 2017 1 commit
    • tree.h (id_equal): New. · a01f151f
      	* tree.h (id_equal): New.
      
      	* dwarf2out.c, hsa-gen.c, ipa-devirt.c, omp-expand.c,
      	omp-simd-clone.c, read-rtl-function.c, tree-chkp.c, tree.c: Use it
      	instead of strcmp of IDENTIFIER_POINTER.
      c-family/
      	* c-ada-spec.c, c-pragma.c: Use it.
      cp/
      	* cp-tree.h, decl2.c, mangle.c, parser.c, pt.c, semantics.c: Use it.
      
      From-SVN: r249103
      Jason Merrill committed
  21. 04 Jun, 2017 1 commit
    • i386.c (make_resolver_func): Update. · 3995f3a2
      2017-05-23  Jan Hubicka  <hubicka@ucw.cz>
      
      	* config/i386/i386.c (make_resolver_func): Update.
      	* Makefile.in: Add profile-count.h and profile-count.o
      	* auto-profile.c (afdo_indirect_call): Update to new API.
      	(afdo_set_bb_count): Update.
      	(afdo_propagate_edge): Update.
      	(afdo_propagate_circuit): Update.
      	(afdo_calculate_branch_prob): Update.
      	(afdo_annotate_cfg): Update.
      	* basic-block.h: Include profile-count.h
      	(struct edge_def): Turn count to profile_count.
      	(struct basic_block_def): Likewie.
      	(REG_BR_PROB_BASE): Move to profile-count.h
      	(RDIV): Move to profile-count.h
      	* bb-reorder.c (max_entry_count): Turn to profile_count.
      	(find_traces): Update.
      	(rotate_loop):Update.
      	(connect_traces):Update.
      	(sanitize_hot_paths):Update.
      	* bt-load.c (migrate_btr_defs): Update.
      	* cfg.c (RDIV): Remove.
      	(init_flow): Use alloc_block.
      	(alloc_block): Uninitialize count.
      	(unchecked_make_edge): Uninitialize count.
      	(check_bb_profile): Update.
      	(dump_edge_info): Update.
      	(dump_bb_info): Update.
      	(update_bb_profile_for_threading): Update.
      	(scale_bbs_frequencies_int): Update.
      	(scale_bbs_frequencies_gcov_type): Update.
      	(scale_bbs_frequencies_profile_count): New.
      	* cfg.h (update_bb_profile_for_threading): Update.
      	(scale_bbs_frequencies_profile_count): Declare.
      	* cfgbuild.c (compute_outgoing_frequencies): Update.
      	(find_many_sub_basic_blocks): Update.
      	* cfgcleanup.c (try_forward_edges): Update.
      	(try_crossjump_to_edge): Update.
      	* cfgexpand.c (expand_gimple_tailcall): Update.
      	(construct_exit_block): Update.
      	* cfghooks.c (verify_flow_info): Update.
      	(dump_bb_for_graph): Update.
      	(split_edge): Update.
      	(make_forwarder_block): Update.
      	(duplicate_block): Update.
      	(account_profile_record): Update.
      	* cfgloop.c (find_subloop_latch_edge_by_profile): Update.
      	(get_estimated_loop_iterations): Update.
      	* cfgloopanal.c (expected_loop_iterations_unbounded): Update.
      	(single_likely_exit): Update.
      	* cfgloopmanip.c (scale_loop_profile): Update.
      	(loopify): Update.
      	(set_zero_probability): Update.
      	(lv_adjust_loop_entry_edge): Update.
      	* cfgrtl.c (force_nonfallthru_and_redirect): Update.
      	(purge_dead_edges): Update.
      	(rtl_account_profile_record): Update.
      	* cgraph.c (cgraph_node::create): Uninitialize count.
      	(symbol_table::create_edge): Uninitialize count.
      	(cgraph_update_edges_for_call_stmt_node): Update.
      	(cgraph_edge::dump_edge_flags): Update.
      	(cgraph_node::dump): Update.
      	(cgraph_edge::maybe_hot_p): Update.
      	* cgraph.h: Include profile-count.h
      	(create_clone), create_edge, create_indirect_edge): Update.
      	(cgraph_node): Turn count to profile_count.
      	(cgraph_edge0: Likewise.
      	(make_speculative, clone): Update.
      	(create_edge): Update.
      	(init_lowered_empty_function): Update.
      	* cgraphclones.c (cgraph_edge::clone): Update.
      	(duplicate_thunk_for_node): Update.
      	(cgraph_node::create_clone): Update.
      	* cgraphunit.c (cgraph_node::analyze): Update.
      	(cgraph_node::expand_thunk): Update.
      	* final.c (dump_basic_block_info): Update.
      	* gimple-streamer-in.c (input_bb): Update.
      	* gimple-streamer-out.c (output_bb): Update.
      	* graphite.c (print_global_statistics): Update.
      	(print_graphite_scop_statistics): Update.
      	* hsa-brig.c: Include basic-block.h.
      	* hsa-dump.c: Include basic-block.h.
      	* hsa-gen.c (T sum_slice): Update.
      	(convert_switch_statements):Update.
      	* hsa-regalloc.c: Include basic-block.h.
      	* ipa-chkp.c (chkp_produce_thunks): Update.
      	* ipa-cp.c (struct caller_statistics): Update.
      	(init_caller_stats): Update.
      	(gather_caller_stats): Update.
      	(ipcp_cloning_candidate_p): Update.
      	(good_cloning_opportunity_p): Update.
      	(get_info_about_necessary_edges): Update.
      	(dump_profile_updates): Update.
      	(update_profiling_info): Update.
      	(update_specialized_profile): Update.
      	(perhaps_add_new_callers): Update.
      	(decide_about_value): Update.
      	(ipa_cp_c_finalize): Update.
      	* ipa-devirt.c (struct odr_type_warn_count): Update.
      	(struct decl_warn_count): Update.
      	(struct final_warning_record): Update.
      	(possible_polymorphic_call_targets): Update.
      	(ipa_devirt): Update.
      	* ipa-fnsummary.c (redirect_to_unreachable): Update.
      	* ipa-icf.c (sem_function::merge): Update.
      	* ipa-inline-analysis.c (do_estimate_edge_time): Update.
      	* ipa-inline.c (compute_uninlined_call_time): Update.
      	(compute_inlined_call_time): Update.
      	(want_inline_small_function_p): Update.
      	(want_inline_self_recursive_call_p): Update.
      	(edge_badness): Update.
      	(lookup_recursive_calls): Update.
      	(recursive_inlining): Update.
      	(inline_small_functions): Update.
      	(dump_overall_stats): Update.
      	(dump_inline_stats): Update.
      	* ipa-profile.c (ipa_profile_generate_summary): Update.
      	(ipa_propagate_frequency): Update.
      	(ipa_profile): Update.
      	* ipa-prop.c (ipa_make_edge_direct_to_target): Update.
      	* ipa-utils.c (ipa_merge_profiles): Update.
      	* loop-doloop.c (doloop_modify): Update.
      	* loop-unroll.c (report_unroll): Update.
      	(unroll_loop_runtime_iterations): Update.
      	* lto-cgraph.c (lto_output_edge): Update.
      	(lto_output_node): Update.
      	(input_node): Update.
      	(input_edge): Update.
      	(merge_profile_summaries): Update.
      	* lto-streamer-in.c (input_cfg): Update.
      	* lto-streamer-out.c (output_cfg): Update.
      	* mcf.c (create_fixup_graph): Update.
      	(adjust_cfg_counts): Update.
      	(sum_edge_counts): Update.
      	* modulo-sched.c (sms_schedule): Update.
      	* postreload-gcse.c (eliminate_partially_redundant_load): Update.
      	* predict.c (maybe_hot_count_p): Update.
      	(probably_never_executed): Update.
      	(dump_prediction): Update.
      	(combine_predictions_for_bb): Update.
      	(propagate_freq): Update.
      	(handle_missing_profiles): Update.
      	(counts_to_freqs): Update.
      	(rebuild_frequencies): Update.
      	(force_edge_cold): Update.
      	* predict.h: Include profile-count.h
      	(maybe_hot_count_p, counts_to_freqs): UPdate.
      	* print-rtl-function.c: Do not include cfg.h
      	* print-rtl.c: Include basic-block.h
      	* profile-count.c: New file.
      	* profile-count.h: New file.
      	* profile.c (is_edge_inconsistent): Update.
      	(correct_negative_edge_counts): Update.
      	(is_inconsistent): Update.
      	(set_bb_counts): Update.
      	(read_profile_edge_counts): Update.
      	(compute_frequency_overlap): Update.
      	(compute_branch_probabilities): Update; Initialize and deinitialize
      	gcov_count tables.
      	(branch_prob): Update.
      	* profile.h (bb_gcov_counts, edge_gcov_counts): New.
      	(edge_gcov_count): New.
      	(bb_gcov_count): New.
      	* shrink-wrap.c (try_shrink_wrapping): Update.
      	* tracer.c (better_p): Update.
      	* trans-mem.c (expand_transaction): Update.
      	(ipa_tm_insert_irr_call): Update.
      	(ipa_tm_insert_gettmclone_call): Update.
      	* tree-call-cdce.c: Update.
      	* tree-cfg.c (gimple_duplicate_sese_region): Update.
      	(gimple_duplicate_sese_tail): Update.
      	(gimple_account_profile_record): Update.
      	(execute_fixup_cfg): Update.
      	* tree-inline.c (copy_bb): Update.
      	(copy_edges_for_bb): Update.
      	(initialize_cfun): Update.
      	(freqs_to_counts): Update.
      	(copy_cfg_body): Update.
      	(expand_call_inline): Update.
      	* tree-ssa-ifcombine.c (update_profile_after_ifcombine): Update.
      	* tree-ssa-loop-ivcanon.c (unloop_loops): Update.
      	(try_unroll_loop_completely): Update.
      	(try_peel_loop): Update.
      	* tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Update.
      	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Update.
      	* tree-ssa-loop-split.c (connect_loops): Update.
      	* tree-ssa-loop-unswitch.c (hoist_guard): Update.
      	* tree-ssa-reassoc.c (branch_fixup): Update.
      	* tree-ssa-tail-merge.c (replace_block_by): Update.
      	* tree-ssa-threadupdate.c (create_block_for_threading): Update.
      	(compute_path_counts): Update.
      	(update_profile): Update.
      	(recompute_probabilities): Update.
      	(update_joiner_offpath_counts): Update.
      	(estimated_freqs_path): Update.
      	(freqs_to_counts_path): Update.
      	(clear_counts_path): Update.
      	(ssa_fix_duplicate_block_edges): Update.
      	(duplicate_thread_path): Update.
      	* tree-switch-conversion.c (case_bit_test_cmp): Update.
      	(struct switch_conv_info): Update.
      	* tree-tailcall.c (decrease_profile): Update.
      	* tree-vect-loop-manip.c (slpeel_add_loop_guard): Update.
      	* tree-vect-loop.c (scale_profile_for_vect_loop): Update.
      	* value-prof.c (check_counter): Update.
      	(gimple_divmod_fixed_value): Update.
      	(gimple_mod_pow2): Update.
      	(gimple_mod_subtract): Update.
      	(gimple_ic_transform): Update.
      	(gimple_stringop_fixed_value): Update.
      	* value-prof.h (gimple_ic): Update.
      
      	* gcc.dg/tree-ssa/attr-hotcold-2.c: Update template.
      
      From-SVN: r248863
      Jan Hubicka committed
  22. 14 May, 2017 1 commit
    • use auto_bitmap more · 0e3de1d4
      gcc/ChangeLog:
      
      2017-05-13  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>
      
      	* bt-load.c (combine_btr_defs): Use auto_bitmap to manage bitmap
      	lifetime.
      	(migrate_btr_def): Likewise.
      	* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
      	* df-core.c (loop_post_order_compute): Likewise.
      	(loop_inverted_post_order_compute): Likewise.
      	* hsa-common.h: Likewise.
      	* hsa-gen.c (hsa_bb::~hsa_bb): Likewise.
      	* init-regs.c (initialize_uninitialized_regs): Likewise.
      	* ipa-inline.c (resolve_noninline_speculation): Likewise.
      	(inline_small_functions): Likewise.
      	* ipa-reference.c (ipa_reference_write_optimization_summary): Likewise.
      	* ira.c (combine_and_move_insns): Likewise.
      	(build_insn_chain): Likewise.
      	* loop-invariant.c (find_invariants): Likewise.
      	* lower-subreg.c (propagate_pseudo_copies): Likewise.
      	* predict.c (tree_predict_by_opcode): Likewise.
      	(predict_paths_leading_to): Likewise.
      	(predict_paths_leading_to_edge): Likewise.
      	(estimate_loops_at_level): Likewise.
      	(estimate_loops): Likewise.
      	* shrink-wrap.c (try_shrink_wrapping): Likewise.
      	(spread_components): Likewise.
      	* tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
      	* tree-loop-distribution.c (rdg_build_partitions): Likewise.
      	* tree-predcom.c (tree_predictive_commoning_loop): Likewise.
      	* tree-ssa-coalesce.c (coalesce_ssa_name): Likewise.
      	* tree-ssa-phionlycprop.c (pass_phi_only_cprop::execute): Likewise.
      	* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
      	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Likewise.
      	* tree-ssa-threadupdate.c (compute_path_counts): Likewise.
      	(mark_threaded_blocks): Likewise.
      	(thread_through_all_blocks): Likewise.
      	* tree-ssa.c (verify_ssa): Likewise.
      	(execute_update_addresses_taken): Likewise.
      	* tree-ssanames.c (verify_ssaname_freelists): Likewise.
      
      From-SVN: r248021
      Trevor Saunders committed
  23. 04 May, 2017 1 commit
    • PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c · 0f2c4a8f
      gcc/c-family/ChangeLog:
      
      	PR translation/80280
      	* c-attribs.c (handle_alias_ifunc_attribute): Quote a %D directive.
      	(handle_weakref_attribute): Same.
      
      PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
      
      gcc/ChangeLog:
      
      	PR translation/80280
      	* config/i386/i386.c (ix86_function_versions): Quote a %D directive.
      
      PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
      
      gcc/cp/ChangeLog:
      
      	PR translation/80280
      	* call.c (print_z_candidate): Add missing quoting to %D and other
      	like directives.
      	(build_op_call_1): Same.
      	* constraint.cc (diagnose_check_constraint): Same.
      	* mangle.c (mangle_decl): Same.
      	* name-lookup.c (cp_binding_level_debug): Same.
      	(set_decl_namespace): Same.
      	* parser.c (cp_parser_tx_qualifier_opt): Same.
      	* pt.c (print_candidates_1): Same.
      	(check_template_variable): Same.
      	(tsubst_default_argument): Same.
      	(most_specialized_partial_spec): Same.
      	* semantics.c (omp_reduction_lookup): Same.
      	* tree.c (check_abi_tag_redeclaration): Same.
      	* typeck.c (comptypes): Same.
      	* typeck2.c (abstract_virtuals_error_sfinae): Same.
      
      PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
      
      gcc/ChangeLog:
      
      	PR translation/80280
      	* builtins.c (expand_builtin_object_size): Add missing quoting to
      	%D and like directives.
      	* hsa-gen.c (hsa_type_for_scalar_tree_type): Same.
      	(hsa_type_for_tree_type): Same.
      	(verify_function_arguments): Same.
      	* symtab.c (symbol_table::change_decl_assembler_name): Same.
      	* varasm.c (get_section): Same.
      	(mark_weak): Same.
      
      PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
      
      gcc/objc/ChangeLog:
      
      	PR translation/80280
      	* objc-gnu-runtime-abi-01.c (objc_eh_runtime_type): Add missing
      	quoting to directives.
      	* objc-next-runtime-abi-01.c (objc_eh_runtime_type): Ditto.
      	* objc-next-runtime-abi-02.c (next_runtime_02_eh_type): Ditto.
      
      PR translation/80280 - Missing closing quote (%>) c/semantics.c and c/c-typeck.c
      
      gcc/testsuite/ChangeLog:
      
      	PR translation/80280
      	* g++.dg/abi/Wabi-2-3.C: Adjust.
      	* g++.dg/abi/Wabi-3-2.C: Ditto.
      	* g++.dg/lookup/using17.C: Ditto.
      	* gcc.dg/format/gcc_diag-1.c (foo): Ditto.
      
      From-SVN: r247607
      Martin Sebor committed
  24. 28 Feb, 2017 1 commit
    • Miscellaneous optimization group fixes · d03958cf
      	gcc/
      	* doc/optinfo.texi (Optimization groups): Fix option used for
      	OPTGROUP_ALL.
      	* doc/invoke.texi (-fopt-info): Document "omp".
      	* dumpfile.h: Sort OPTGROUP_OMP before OPTGROUP_VEC.
      	(OPTGROUP_ALL): Add OPTGROUP_OMP.
      	* hsa-gen.c (pass_data_gen_hsail): Use OPTGROUP_OMP.
      	* ipa-hsa.c (pass_data_ipa_hsa): Likewise.
      	* omp-simd-clone.c (pass_data_omp_simd_clone): Likewise.
      
      From-SVN: r245769
      Thomas Schwinge committed
  25. 20 Jan, 2017 1 commit
    • [hsa] Rename hsa.[ch] to hsa-common.[ch] · 13293add
      2017-01-20  Martin Jambor  <mjambor@suse.cz>
              
              * hsa.h: Renaed to hsa-common.h.  Adjusted a comment.
              * hsa.c: Renaed to hsa-common.c.  Change include of gt-hsa.h to
              gt-hsa-common.h.
              * Makefile.in (OBJS): Rename hsa.o to hsa-common.o.
              (GTFILES): Rename hsa.c to hsa-common.c.
              * hsa-brig.c: Change include of hsa.h to hsa-common.h.
              * hsa-dump.c: Likewise.
              * hsa-gen.c: Likewise.
              * hsa-regalloc.c: Likewise.
              * ipa-hsa.c: Likewise.
              * omp-expand.c: Likewise.
              * omp-low.c: Likewise.
              * toplev.c: Likewise.
      
      From-SVN: r244711
      Martin Jambor committed
  26. 05 Jan, 2017 1 commit
  27. 01 Jan, 2017 1 commit
  28. 23 Nov, 2016 1 commit
    • backport: hsa-builtins.def: New file. · 56b1c60e
      Merge from HSA branch to trunk
      
      2016-11-23  Martin Jambor  <mjambor@suse.cz>
      	    Martin Liska  <mliska@suse.cz>
      
      gcc/
      	* hsa-builtins.def: New file.
      	* Makefile.in (BUILTINS_DEF): Add hsa-builtins.def dependency.
      	* builtins.def: Include hsa-builtins.def.
      	(DEF_HSA_BUILTIN): New macro.
      	* dumpfile.h (OPTGROUP_OPENMP): Define.
      	* dumpfile.c (optgroup_options): Added OPTGROUP_OPENMP.
      	* gimple.h (gf_mask): Added elements GF_OMP_FOR_GRID_INTRA_GROUP and
      	GF_OMP_FOR_GRID_GROUP_ITER.
      	(gimple_omp_for_grid_phony): Added checking assert.
      	(gimple_omp_for_set_grid_phony): Likewise.
      	(gimple_omp_for_grid_intra_group): New function.
      	(gimple_omp_for_set_grid_intra_group): Likewise.
      	(gimple_omp_for_grid_group_iter): Likewise.
      	(gimple_omp_for_set_grid_group_iter): Likewise.
      	* omp-low.c (check_omp_nesting_restrictions): Allow GRID loop where
      	previosuly only distribute loop was permitted.
      	(lower_lastprivate_clauses): Allow non tcc_comparison predicates.
      	(grid_get_kernel_launch_attributes): Support multiple HSA grid
      	dimensions.
      	(grid_expand_omp_for_loop): Likewise and also support standalone
      	distribute constructs.  New parameter INTRA_GROUP, updated both users.
      	(grid_expand_target_grid_body): Support standalone distribute
      	constructs.
      	(pass_data_expand_omp): Changed optinfo_flags to OPTGROUP_OPENMP.
      	(pass_data_expand_omp_ssa): Likewise.
      	(pass_data_omp_device_lower): Likewsie.
      	(pass_data_lower_omp): Likewise.
      	(pass_data_diagnose_omp_blocks): Likewise.
      	(pass_data_oacc_device_lower): Likewise.
      	(pass_data_omp_target_link): Likewise.
      	(grid_lastprivate_predicate): New function.
      	(lower_omp_for_lastprivate): Call grid_lastprivate_predicate for
      	gridified loops.
      	(lower_omp_for): Support standalone distribute constructs.
      	(grid_prop): New type.
      	(grid_safe_assignment_p): Check for assignments to group_sizes, new
      	parameter GRID.
      	(grid_seq_only_contains_local_assignments): New parameter GRID, pass
      	it to callee.
      	(grid_find_single_omp_among_assignments_1): Likewise, improve missed
      	optimization info messages.
      	(grid_find_single_omp_among_assignments): Likewise.
      	(grid_find_ungridifiable_statement): Do not bail out for SIMDs.
      	(grid_parallel_clauses_gridifiable): New function.
      	(grid_inner_loop_gridifiable_p): Likewise.
      	(grid_dist_follows_simple_pattern): Likewise.
      	(grid_gfor_follows_tiling_pattern): Likewise.
      	(grid_call_permissible_in_distribute_p): Likewise.
      	(grid_handle_call_in_distribute): Likewise.
      	(grid_dist_follows_tiling_pattern): Likewise.
      	(grid_target_follows_gridifiable_pattern): Support standalone distribute
      	constructs.
      	(grid_var_segment): New enum.
      	(grid_mark_variable_segment): New function.
      	(grid_copy_leading_local_assignments): Call grid_mark_variable_segment
      	if a new argument says so.
      	(grid_process_grid_body): New function.
      	(grid_eliminate_combined_simd_part): Likewise.
      	(grid_mark_tiling_loops): Likewise.
      	(grid_mark_tiling_parallels_and_loops): Likewise.
      	(grid_process_kernel_body_copy): Support standalone distribute
      	constructs.
      	(grid_attempt_target_gridification): New grid variable holding overall
      	gridification state.  Support standalone distribute constructs and
      	collapse clauses.
      	* doc/optinfo.texi (Optimization groups): Document OPTGROUP_OPENMP.
      	* hsa.h (hsa_bb): Add method method append_phi.
      	(hsa_insn_br): Renamed to hsa_insn_cbr, renamed all
      	occurences in all files too.
      	(hsa_insn_br): New class, now the ancestor of hsa_incn_cbr.
      	(is_a_helper <hsa_insn_br *>::test): New function.
      	(is_a_helper <hsa_insn_cbr *>::test): Adjust to only cover conditional
      	branch instructions.
      	(hsa_insn_signal): Make a direct descendant of
      	hsa_insn_basic.  Add memorder constructor parameter and
      	m_memory_order and m_signalop member variables.
      	(hsa_insn_queue): Changed constructor parameters to common form.
      	Added m_segment and m_memory_order member variables.
      	(hsa_summary_t): Add private member function
      	process_gpu_implementation_attributes.
      	(hsa_function_summary): Rename m_binded_function to
      	m_bound_function.
      	(hsa_insn_basic_p): Remove typedef.
      	(hsa_op_with_type): Change hsa_insn_basic_p into plain pointers.
      	(hsa_op_reg_p): Remove typedef.
      	(hsa_function_representation): Change hsa_op_reg_p into plain
      	pointers.
      	(hsa_insn_phi): Removed new and delete operators.
      	(hsa_insn_br): Likewise.
      	(hsa_insn_cbr): Likewise.
      	(hsa_insn_sbr): Likewise.
      	(hsa_insn_cmp): Likewise.
      	(hsa_insn_mem): Likewise.
      	(hsa_insn_atomic): Likewise.
      	(hsa_insn_signal): Likewise.
      	(hsa_insn_seg): Likewise.
      	(hsa_insn_call): Likewise.
      	(hsa_insn_arg_block): Likewise.
      	(hsa_insn_comment): Likewise.
      	(hsa_insn_srctype): Likewise.
      	(hsa_insn_packed): Likewise.
      	(hsa_insn_cvt): Likewise.
      	(hsa_insn_alloca): Likewise.
      	* hsa.c (hsa_destroy_insn): Also handle instances of hsa_insn_br.
      	(process_gpu_implementation_attributes): New function.
      	(link_functions): Move some functionality into it.  Adjust after
      	renaming m_binded_functions to m_bound_functions.
      	(hsa_insn_basic::op_output_p): Add BRIG_OPCODE_DEBUGTRAP
      	to the list of instructions with no output registers.
      	(get_in_type): Return this if it is a register of
      	matching size.
      	(hsa_get_declaration_name): Moved to...
              * hsa-gen.c (hsa_get_declaration_name): ...here.  Allocate
      	temporary string on an obstack instead from ggc.
      	(query_hsa_grid): Renamed to query_hsa_grid_dim, reimplemented, cut
      	down to two overloads.
      	(hsa_allocp_operand_address): Removed.
      	(hsa_allocp_operand_immed): Likewise.
      	(hsa_allocp_operand_reg): Likewise.
      	(hsa_allocp_operand_code_list): Likewise.
      	(hsa_allocp_operand_operand_list): Likewise.
      	(hsa_allocp_inst_basic): Likewise.
      	(hsa_allocp_inst_phi): Likewise.
      	(hsa_allocp_inst_mem): Likewise.
      	(hsa_allocp_inst_atomic): Likewise.
      	(hsa_allocp_inst_signal): Likewise.
      	(hsa_allocp_inst_seg): Likewise.
      	(hsa_allocp_inst_cmp): Likewise.
      	(hsa_allocp_inst_br): Likewise.
      	(hsa_allocp_inst_sbr): Likewise.
      	(hsa_allocp_inst_call): Likewise.
      	(hsa_allocp_inst_arg_block): Likewise.
      	(hsa_allocp_inst_comment): Likewise.
      	(hsa_allocp_inst_queue): Likewise.
      	(hsa_allocp_inst_srctype): Likewise.
      	(hsa_allocp_inst_packed): Likewise.
      	(hsa_allocp_inst_cvt): Likewise.
      	(hsa_allocp_inst_alloca): Likewise.
      	(hsa_allocp_bb): Likewise.
      	(hsa_obstack): New.
      	(hsa_init_data_for_cfun): Initialize obstack.
      	(hsa_deinit_data_for_cfun): Release memory of the obstack.
      	(hsa_op_immed::operator new): Use obstack instead of object_allocator.
      	(hsa_op_reg::operator new): Likewise.
      	(hsa_op_address::operator new): Likewise.
      	(hsa_op_code_list::operator new): Likewise.
      	(hsa_op_operand_list::operator new): Likewise.
      	(hsa_insn_basic::operator new): Likewise.
      	(hsa_insn_phi::operator new): Likewise.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_sbr::operator new): Likewise.
      	(hsa_insn_cmp::operator new): Likewise.
      	(hsa_insn_mem::operator new): Likewise.
      	(hsa_insn_atomic::operator new): Likewise.
      	(hsa_insn_signal::operator new): Likewise.
      	(hsa_insn_seg::operator new): Likewise.
      	(hsa_insn_call::operator new): Likewise.
      	(hsa_insn_arg_block::operator new): Likewise.
      	(hsa_insn_comment::operator new): Likewise.
      	(hsa_insn_srctype::operator new): Likewise.
      	(hsa_insn_packed::operator new): Likewise.
      	(hsa_insn_cvt::operator new): Likewise.
      	(hsa_insn_alloca::operator new): Likewise.
      	(hsa_init_new_bb): Likewise.
      	(hsa_bb::append_phi): New function.
      	(gen_hsa_phi_from_gimple_phi): Use it.
      	(get_symbol_for_decl): Fix dinstinguishing between
      	global and local functions.  Put local variables into a segment
      	according to their attribute or static flag, if there is one.
      	(hsa_insn_br::hsa_insn_br): New.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_cbr::hsa_insn_cbr): Set width via ancestor constructor.
      	(query_hsa_grid_nodim): New function.
      	(multiply_grid_dim_characteristics): Likewise.
      	(gen_get_num_threads): Likewise.
      	(gen_get_num_teams): Reimplemented.
      	(gen_get_team_num): Likewise.
      	(gen_hsa_insns_for_known_library_call): Updated calls to the above
      	helper functions.
      	(get_memory_order_name): Removed.
      	(get_memory_order): Likewise.
      	(hsa_memorder_from_tree): New function.
      	(gen_hsa_ternary_atomic_for_builtin): Renamed to
      	gen_hsa_atomic_for_builtin, can also create signals.
      	(gen_hsa_insns_for_call): Handle many new builtins.  Adjust to use
      	hsa_memory_order_from_tree and gen_hsa_atomic_for_builtin.
      	(hsa_insn_atomic): Fix function comment.
      	(hsa_insn_signal::hsa_insn_signal): Fix comment.  Update call to
      	ancestor constructor and initialization of new member variables.
      	(hsa_insn_queue::hsa_insn_queue): Added initialization of new
      	member variables.
      	(hsa_get_host_function): Handle functions with no bound CPU
      	implementation.  Fix binded to bound.
      	(get_brig_function_name): Likewise.
      	(HSA_SORRY_ATV): Remove semicolon after macro.
      	(HSA_SORRY_AT): Likewise.
      	(omp_simple_builtin::generate): Add missing semicolons.
      	(hsa_insn_phi::operator new): Removed.
      	(hsa_insn_br::operator new): Likewise.
      	(hsa_insn_cbr::operator new): Likewise.
      	(hsa_insn_sbr::operator new): Likewise.
      	(hsa_insn_cmp::operator new): Likewise.
      	(hsa_insn_mem::operator new): Likewise.
      	(hsa_insn_atomic::operator new): Likewise.
      	(hsa_insn_signal::operator new): Likewise.
      	(hsa_insn_seg::operator new): Likewise.
      	(hsa_insn_call::operator new): Likewise.
      	(hsa_insn_arg_block::operator new): Likewise.
      	(hsa_insn_comment::operator new): Likewise.
      	(hsa_insn_srctype::operator new): Likewise.
      	(hsa_insn_packed::operator new): Likewise.
      	(hsa_insn_cvt::operator new): Likewise.
      	(hsa_insn_alloca::operator new): Likewise.
      	(get_symbol_for_decl): Accept CONST_DECLs, put them to
      	readonly segment.
      	(gen_hsa_addr): Also process CONST_DECLs.
      	(gen_hsa_addr_insns): Process CONST_DECLs by creating private
      	copies.
      	(gen_hsa_unary_operation): Make sure the function does
      	not use bittype source type for firstbit and lastbit operations.
      	(gen_hsa_popcount_to_dest): Make sure the function uses a bittype
      	source type.
      	* hsa-brig.c (emit_insn_operands): Cope with zero operands in an
      	instruction.
      	(emit_branch_insn): Renamed to emit_cond_branch_insn.
      	Emit the width stored in the class.
      	(emit_generic_branch_insn): New function.
      	(emit_insn): Call emit_generic_branch_insn.
      	(emit_signal_insn): Remove obsolete comment.  Update
      	member variable name, pick a type according to profile.
      	(emit_alloca_insn): Remove obsolete comment.
      	(emit_atomic_insn): Likewise.
      	(emit_queue_insn): Get segment and memory order from the IR object.
      	(hsa_brig_section): Make allocate_new_chunk, chunks
      	and cur_chunk provate, add a default NULL parameter to add method.
      	(hsa_brig_section::add): Added a new parameter, store pointer to
      	output data there if it is non-NULL.
      	(emit_function_directives): Use this new parameter instead of
      	calculating the pointer itself, fix function comment.
      	(hsa_brig_emit_function): Add forgotten endian conversion.
      	(hsa_output_kernels): Remove unnecessary building of
      	kernel_dependencies_vector_type.
      	(emit_immediate_operand): Declare.
      	(emit_directive_variable): Also emit initializers of CONST_DECLs.
      	(gen_hsa_insn_for_internal_fn_call): Also handle IFN_RSQRT.
      	(verify_function_arguments): Properly detect variadic
      	arguments.
      	* hsa-dump.c (hsa_width_specifier_name): New function.
      	(dump_hsa_insn_1): Dump generic branch instructions, update signal
      	member variable name.  Special dumping for queue objects.
      	* ipa-hsa.c (process_hsa_functions): Adjust after renaming
      	m_binded_functions to m_bound_functions.  Copy externally visible flag
      	to the node.
      	(ipa_hsa_write_summary): Likewise.
      	(ipa_hsa_read_section): Likewise.
      
      
      	gcc/fortran/
              * f95-lang.c (DEF_HSA_BUILTIN): New macro.
      
      gcc/testsuite/
      	* c-c++-common/gomp/gridify-1.c: Update scan string.
      	* gfortran.dg/gomp/gridify-1.f90: Likewise.
      	* c-c++-common/gomp/gridify-2.c: New test.
      	* c-c++-common/gomp/gridify-3.c: Likewise.
      
      libgomp/
      	* testsuite/libgomp.hsa.c/bits-insns.c: New test.
      	* testsuite/libgomp.hsa.c/tiling-1.c: Likewise.
      	* testsuite/libgomp.hsa.c/tiling-2.c: Likewise.
      
      
      Co-Authored-By: Martin Liska <mliska@suse.cz>
      
      From-SVN: r242761
      Martin Jambor committed
  29. 13 Oct, 2016 1 commit
    • Move MEMMODEL_* from coretypes.h to memmodel.h · 4d0cdd0c
      2016-10-13  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          gcc/
          * coretypes.h: Move MEMMODEL_* macros and enum memmodel definition
          into ...
          * memmodel.h: This file.
          * alias.c, asan.c, auto-inc-dec.c, bb-reorder.c, bt-load.c,
            caller-save.c, calls.c, ccmp.c, cfgbuild.c, cfgcleanup.c,
            cfgexpand.c, cfgloopanal.c, cfgrtl.c, cilk-common.c, combine.c,
            combine-stack-adj.c, common/config/aarch64/aarch64-common.c,
            common/config/arm/arm-common.c, common/config/bfin/bfin-common.c,
            common/config/c6x/c6x-common.c, common/config/i386/i386-common.c,
            common/config/ia64/ia64-common.c, common/config/nvptx/nvptx-common.c,
            compare-elim.c, config/aarch64/aarch64-builtins.c,
            config/aarch64/aarch64-c.c, config/aarch64/cortex-a57-fma-steering.c,
            config/arc/arc.c, config/arc/arc-c.c, config/arm/arm-builtins.c,
            config/arm/arm-c.c, config/avr/avr.c, config/avr/avr-c.c,
            config/avr/avr-log.c, config/bfin/bfin.c, config/c6x/c6x.c,
            config/cr16/cr16.c, config/cris/cris.c, config/darwin-c.c,
            config/darwin.c, config/epiphany/epiphany.c,
            config/epiphany/mode-switch-use.c,
            config/epiphany/resolve-sw-modes.c, config/fr30/fr30.c,
            config/frv/frv.c, config/ft32/ft32.c, config/h8300/h8300.c,
            config/i386/i386-c.c, config/i386/winnt.c, config/iq2000/iq2000.c,
            config/lm32/lm32.c, config/m32c/m32c.c, config/m32r/m32r.c,
            config/m68k/m68k.c, config/mcore/mcore.c,
            config/microblaze/microblaze.c, config/mmix/mmix.c,
            config/mn10300/mn10300.c, config/moxie/moxie.c,
            config/msp430/msp430.c, config/nds32/nds32-cost.c,
            config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
            config/nds32/nds32-memory-manipulation.c,
            config/nds32/nds32-predicates.c, config/nds32/nds32.c,
            config/nios2/nios2.c, config/nvptx/nvptx.c, config/pa/pa.c,
            config/pdp11/pdp11.c, config/rl78/rl78.c, config/rs6000/rs6000-c.c,
            config/rx/rx.c, config/s390/s390-c.c, config/s390/s390.c,
            config/sh/sh.c, config/sh/sh-c.c, config/sh/sh-mem.cc,
            config/sh/sh_treg_combine.cc, config/sol2.c, config/spu/spu.c,
            config/stormy16/stormy16.c, config/tilegx/tilegx.c,
            config/tilepro/tilepro.c, config/v850/v850.c, config/vax/vax.c,
            config/visium/visium.c, config/vms/vms-c.c, config/xtensa/xtensa.c,
            coverage.c, cppbuiltin.c, cprop.c, cse.c, cselib.c, dbxout.c, dce.c,
            df-core.c, df-problems.c, df-scan.c, dojump.c, dse.c, dwarf2asm.c,
            dwarf2cfi.c, dwarf2out.c, emit-rtl.c, except.c, explow.c, expmed.c,
            expr.c, final.c, fold-const.c, function.c, fwprop.c, gcse.c,
            ggc-page.c, haifa-sched.c, hsa-brig.c, hsa-gen.c, hw-doloop.c,
            ifcvt.c, init-regs.c, internal-fn.c, ira-build.c, ira-color.c,
            ira-conflicts.c, ira-costs.c, ira-emit.c, ira-lives.c, ira.c, jump.c,
            loop-doloop.c, loop-invariant.c, loop-iv.c, loop-unroll.c,
            lower-subreg.c, lra.c, lra-assigns.c, lra-coalesce.c,
            lra-constraints.c, lra-eliminations.c, lra-lives.c, lra-remat.c,
            lra-spills.c, mode-switching.c, modulo-sched.c, omp-low.c, passes.c,
            postreload-gcse.c, postreload.c, predict.c, print-rtl-function.c,
            recog.c, ree.c, reg-stack.c, regcprop.c, reginfo.c, regrename.c,
            reload.c, reload1.c, reorg.c, resource.c, rtl-chkp.c, rtl-tests.c,
            rtlanal.c, rtlhooks.c, sched-deps.c, sched-rgn.c, sdbout.c,
            sel-sched-ir.c, sel-sched.c, shrink-wrap.c, simplify-rtx.c,
            stack-ptr-mod.c, stmt.c, stor-layout.c, target-globals.c,
            targhooks.c, toplev.c, tree-nested.c, tree-outof-ssa.c,
            tree-profile.c, tree-ssa-coalesce.c, tree-ssa-ifcombine.c,
            tree-ssa-loop-ivopts.c, tree-ssa-loop.c, tree-ssa-reassoc.c,
            tree-ssa-sccvn.c, tree-vect-data-refs.c, ubsan.c, valtrack.c,
            var-tracking.c, varasm.c: Include memmodel.h.
          * genattrtab.c (write_header): Include memmodel.h in generated file.
          * genautomata.c (main): Likewise.
          * gengtype.c (open_base_files): Likewise.
          * genopinit.c (main): Likewise.
          * genconditions.c (write_header): Include memmodel.h earlier in
          generated file.
          * genemit.c (main): Likewise.
          * genoutput.c (output_prologue): Likewise.
          * genpeep.c (main): Likewise.
          * genpreds.c (write_insn_preds_c): Likewise.
          * genrecog.c (write_header): Likewise.
          * Makefile.in (PLUGIN_HEADERS): Include memmodel.h
      
          gcc/ada/
          * gcc-interface/utils2.c: Include memmodel.h.
      
          gcc/c-family/
          * c-cppbuiltin.c: Include memmodel.h.
          * c-opts.c: Likewise.
          * c-pragma.c: Likewise.
          * c-warn.c: Likewise.
      
          gcc/c/
          * c-typeck.c: Include memmodel.h.
      
          gcc/cp/
          * decl2.c: Include memmodel.h.
          * rtti.c: Likewise.
      
          gcc/fortran/
          * trans-intrinsic.c: Include memmodel.h.
      
          gcc/go/
          * go-backend.c: Include memmodel.h.
      
          libgcc/
          * libgcov-profiler.c: Replace MEMMODEL_* macros by their __ATOMIC_*
          equivalent.
          * config/tilepro/atomic.c: Likewise and stop casting model to
          enum memmodel.
      
      From-SVN: r241121
      Thomas Preud'homme committed
  30. 09 Oct, 2016 1 commit
    • tree-ssa.c (target_for_debug_bind, [...]): Use VAR_P and/or VAR_OR_FUNCTION_DECL_P macros. · 8813a647
      	* tree-ssa.c (target_for_debug_bind, verify_phi_args,
      	ssa_undefined_value_p, maybe_optimize_var): Use VAR_P and/or
      	VAR_OR_FUNCTION_DECL_P macros.
      	* tree-chkp.c (chkp_register_var_initializer, chkp_make_static_bounds,
      	chkp_get_bounds_for_decl_addr, chkp_parse_array_and_component_ref,
      	chkp_find_bounds_1): Likewise.
      	* ipa-polymorphic-call.c (decl_maybe_in_construction_p): Likewise.
      	* hsa-gen.c (get_symbol_for_decl): Likewise.
      	* cgraphunit.c (check_global_declaration, analyze_functions,
      	handle_alias_pairs, thunk_adjust, cgraph_node::expand_thunk):
      	Likewise.
      	* gimple-fold.c (can_refer_decl_in_current_unit_p,
      	canonicalize_constructor_val, gimple_get_virt_method_for_vtable):
      	Likewise.
      	* tree.c (set_decl_section_name, copy_node_stat,
      	need_assembler_name_p, free_lang_data_in_decl, find_decls_types_r,
      	merge_dllimport_decl_attributes, handle_dll_attribute,
      	decl_init_priority_insert, auto_var_in_fn_p, array_at_struct_end_p,
      	verify_type): Likewise.
      	* gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior,
      	find_explicit_erroneous_behavior): Likewise.
      	* sdbout.c (sdbout_toplevel_data, sdbout_late_global_decl): Likewise.
      	* ipa.c (process_references): Likewise.
      	* tree-chkp-opt.c (chkp_get_check_result): Likewise.
      	* varasm.c (get_block_for_decl, use_blocks_for_decl_p, make_decl_rtl,
      	notice_global_symbol, assemble_variable, mark_decl_referenced,
      	build_constant_desc, output_constant_def_contents, do_assemble_alias,
      	make_decl_one_only, default_section_type_flags,
      	categorize_decl_for_section, default_encode_section_info): Likewise.
      	* trans-mem.c (requires_barrier): Likewise.
      	* gimple-expr.c (mark_addressable): Likewise.
      	* cfgexpand.c (add_scope_conflicts_1, expand_one_var,
      	expand_used_vars_for_block, clear_tree_used, stack_protect_decl_p,
      	expand_debug_expr): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* ubsan.c (instrument_bool_enum_load): Likewise.
      	* tree-pretty-print.c (print_declaration): Likewise.
      	* simplify-rtx.c (delegitimize_mem_from_attrs): Likewise.
      	* tree-ssa-uninit.c (warn_uninitialized_vars): Likewise.
      	* asan.c (asan_protect_global, instrument_derefs): Likewise.
      	* tree-into-ssa.c (rewrite_stmt, maybe_register_def,
      	pass_build_ssa::execute): Likewise.
      	* var-tracking.c (var_debug_decl, track_expr_p): Likewise.
      	* tree-ssa-loop-ivopts.c (force_expr_to_var_cost, split_address_cost):
      	Likewise.
      	* ipa-split.c (test_nonssa_use, consider_split, mark_nonssa_use):
      	Likewise.
      	* tree-inline.c (insert_debug_decl_map, remap_ssa_name,
      	can_be_nonlocal, remap_decls, copy_debug_stmt,
      	initialize_inlined_parameters, add_local_variables,
      	reset_debug_binding, replace_locals_op): Likewise.
      	* dse.c (can_escape): Likewise.
      	* ipa-devirt.c (compare_virtual_tables, referenced_from_vtable_p):
      	Likewise.
      	* tree-diagnostic.c (default_tree_printer): Likewise.
      	* tree-streamer-in.c (unpack_ts_decl_common_value_fields,
      	unpack_ts_decl_with_vis_value_fields,
      	lto_input_ts_decl_common_tree_pointers): Likewise.
      	* builtins.c (builtin_save_expr, fold_builtin_expect,
      	readonly_data_expr): Likewise.
      	* tree-ssa-structalias.c (new_var_info, get_constraint_for_ssa_var,
      	create_variable_info_for, set_uids_in_ptset, visit_loadstore):
      	Likewise.
      	* gimple-streamer-out.c (output_gimple_stmt): Likewise.
      	* gimplify.c (force_constant_size, gimplify_bind_expr,
      	gimplify_decl_expr, gimplify_var_or_parm_decl,
      	gimplify_compound_lval, gimplify_init_constructor,
      	gimplify_modify_expr, gimplify_asm_expr, gimplify_oacc_declare,
      	gimplify_type_sizes): Likewise.
      	* cgraphbuild.c (record_reference, record_type_list, mark_address,
      	mark_load, mark_store, pass_build_cgraph_edges::execute): Likewise.
      	* tree-ssa-live.c (mark_all_vars_used_1, remove_unused_scope_block_p,
      	remove_unused_locals): Likewise.
      	* tree-ssa-alias.c (ptr_deref_may_alias_decl_p, ptrs_compare_unequal,
      	ref_maybe_used_by_call_p_1, call_may_clobber_ref_p_1): Likewise.
      	* function.c (instantiate_expr, instantiate_decls_1,
      	setjmp_vars_warning, add_local_decl): Likewise.
      	* alias.c (ao_ref_from_mem, get_alias_set, compare_base_symbol_refs):
      	Likewise.
      	* tree-stdarg.c (find_va_list_reference, va_list_counter_struct_op,
      	va_list_ptr_read, va_list_ptr_write, check_all_va_list_escapes,
      	optimize_va_list_gpr_fpr_size): Likewise.
      	* tree-nrv.c (pass_nrv::execute): Likewise.
      	* tsan.c (instrument_expr): Likewise.
      	* tree-ssa-dce.c (remove_dead_stmt): Likewise.
      	* vtable-verify.c (verify_bb_vtables): Likewise.
      	* tree-dfa.c (ssa_default_def, set_ssa_default_def,
      	get_ref_base_and_extent): Likewise.
      	* toplev.c (wrapup_global_declaration_1, wrapup_global_declaration_2):
      	Likewise.
      	* tree-sra.c (static bool constant_decl_p, find_var_candidates,
      	analyze_all_variable_accesses): Likewise.
      	* tree-nested.c (get_nonlocal_debug_decl,
      	convert_nonlocal_omp_clauses, note_nonlocal_vla_type,
      	note_nonlocal_block_vlas, convert_nonlocal_reference_stmt,
      	get_local_debug_decl, convert_local_omp_clauses,
      	convert_local_reference_stmt, nesting_copy_decl, remap_vla_decls):
      	Likewise.
      	* tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Likewise.
      	* stmt.c (decl_overlaps_hard_reg_set_p): Likewise.
      	* dbxout.c (dbxout_late_global_decl, dbxout_type_fields,
      	dbxout_symbol, dbxout_common_check): Likewise.
      	* expr.c (expand_assignment, expand_expr_real_2, expand_expr_real_1,
      	string_constant): Likewise.
      	* hsa.c (hsa_get_declaration_name): Likewise.
      	* passes.c (rest_of_decl_compilation): Likewise.
      	* tree-ssanames.c (make_ssa_name_fn): Likewise.
      	* tree-streamer-out.c (pack_ts_decl_common_value_fields,
      	pack_ts_decl_with_vis_value_fields,
      	write_ts_decl_common_tree_pointers): Likewise.
      	* stor-layout.c (place_field): Likewise.
      	* symtab.c (symtab_node::maybe_create_reference,
      	symtab_node::verify_base, symtab_node::make_decl_local,
      	symtab_node::copy_visibility_from,
      	symtab_node::can_increase_alignment_p): Likewise.
      	* dwarf2out.c (add_var_loc_to_decl, tls_mem_loc_descriptor,
      	decl_by_reference_p, reference_to_unused, rtl_for_decl_location,
      	fortran_common, add_location_or_const_value_attribute,
      	add_scalar_info, add_linkage_name, set_block_abstract_flags,
      	local_function_static, gen_variable_die, dwarf2out_late_global_decl,
      	optimize_one_addr_into_implicit_ptr,
      	optimize_location_into_implicit_ptr): Likewise.
      	* gimple-low.c (record_vars_into): Likewise.
      	* ipa-visibility.c (update_vtable_references): Likewise.
      	* tree-ssa-address.c (fixed_address_object_p, copy_ref_info):
      	Likewise.
      	* lto-streamer-out.c (tree_is_indexable, get_symbol_initial_value,
      	DFS::DFS_write_tree_body, write_symbol): Likewise.
      	* langhooks.c (lhd_warn_unused_global_decl,
      	lhd_set_decl_assembler_name): Likewise.
      	* attribs.c (decl_attributes): Likewise.
      	* except.c (output_ttype): Likewise.
      	* varpool.c (varpool_node::get_create, ctor_for_folding,
      	varpool_node::assemble_decl, varpool_node::create_alias): Likewise.
      	* fold-const.c (fold_unary_loc): Likewise.
      	* ipa-prop.c (ipa_compute_jump_functions_for_edge,
      	ipa_find_agg_cst_from_init): Likewise.
      	* omp-low.c (expand_omp_regimplify_p, expand_omp_taskreg,
      	expand_omp_target, lower_omp_regimplify_p,
      	grid_reg_assignment_to_local_var_p, grid_remap_prebody_decls,
      	find_link_var_op): Likewise.
      	* tree-chrec.c (chrec_contains_symbols): Likewise.
      	* tree-cfg.c (verify_address, verify_expr, verify_expr_location_1,
      	gimple_duplicate_bb, move_stmt_op, replace_block_vars_by_duplicates,
      	execute_fixup_cfg): Likewise.
      
      From-SVN: r240900
      Jakub Jelinek committed
  31. 23 Sep, 2016 1 commit
    • * hsa-gen.c (hsa_op_immed::hsa_op_immed Use CONSTRUCTOR_NELTS (...) · aaa1b10f
      	instead of vec_safe_length (CONSTRUCTOR_ELTS (...)).
      	(gen_hsa_ctor_assignment): Likewise.
      	* print-tree.c (print_node): Likewise.
      	* tree-dump.c (dequeue_and_dump): Likewise.
      	* tree-sra.c (sra_modify_constructor_assign): Likewise.
      	* expr.c (store_constructor): Likewise.
      	* fold-const.c (operand_equal_p): Likewise.
      	* tree-pretty-print.c (dump_generic_node): Likewise.
      	* hsa-brig.c (hsa_op_immed::emit_to_buffer): Likewise.
      	* ipa-icf-gimple.c (func_checker::compare_operand): Likewise.
      cp/
      	* typeck2.c (process_init_constructor_record): Use
      	CONSTRUCTOR_NELTS (...) instead of
      	vec_safe_length (CONSTRUCTOR_ELTS (...)).
      	* decl.c (reshape_init_r): Likewise.
      	(check_initializer): Likewise.
      ada/
      	* gcc-interface/decl.c (gnat_to_gnu_entity): Use
      	CONSTRUCTOR_NELTS (...) instead of
      	vec_safe_length (CONSTRUCTOR_ELTS (...)).
      
      From-SVN: r240390
      Jakub Jelinek committed
  32. 16 Sep, 2016 1 commit
    • Add inline functions for various bitwise operations. · 146ec50f
      	* hwint.h (least_bit_hwi, pow2_or_zerop, pow2p_hwi, ctz_or_zero):
      	New.
      	* hwint.c (exact_log2): Use pow2p_hwi.
      	(ctz_hwi, ffs_hwi): Use least_bit_hwi.
      	* alias.c (memrefs_conflict_p): Use pow2_or_zerop.
      	* builtins.c (get_object_alignment_2, get_object_alignment)
      	(get_pointer_alignment, fold_builtin_atomic_always_lock_free): Use
      	least_bit_hwi.
      	* calls.c (compute_argument_addresses, store_one_arg): Use
      	least_bit_hwi.
      	* cfgexpand.c (expand_one_stack_var_at): Use least_bit_hwi.
      	* combine.c (force_to_mode): Use least_bit_hwi.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos, adjust_address_1):
      	Use least_bit_hwi.
      	* expmed.c (synth_mult, expand_divmod): Use ctz_or_zero, ctz_hwi.
      	(init_expmed_one_conv): Use pow2p_hwi.
      	* fold-const.c (round_up_loc, round_down_loc): Use pow2_or_zerop.
      	(fold_binary_loc): Use pow2p_hwi.
      	* function.c (assign_parm_find_stack_rtl): Use least_bit_hwi.
      	* gimple-fold.c (gimple_fold_builtin_memory_op): Use pow2p_hwi.
      	* gimple-ssa-strength-reduction.c (replace_ref): Use least_bit_hwi.
      	* hsa-gen.c (gen_hsa_addr_with_align, hsa_bitmemref_alignment):
      	Use least_bit_hwi.
      	* ipa-cp.c (ipcp_alignment_lattice::meet_with_1): Use least_bit_hwi.
      	* ipa-prop.c (ipa_modify_call_arguments): Use least_bit_hwi.
      	* omp-low.c (oacc_loop_fixed_partitions)
      	(oacc_loop_auto_partitions): Use least_bit_hwi.
      	* rtlanal.c (nonzero_bits1): Use ctz_or_zero.
      	* stor-layout.c (place_field): Use least_bit_hwi.
      	* tree-pretty-print.c (dump_generic_node): Use pow2p_hwi.
      	* tree-sra.c (build_ref_for_offset): Use least_bit_hwi.
      	* tree-ssa-ccp.c (ccp_finalize): Use least_bit_hwi.
      	* tree-ssa-math-opts.c (bswap_replace): Use least_bit_hwi.
      	* tree-ssa-strlen.c (handle_builtin_memcmp): Use pow2p_hwi.
      	* tree-vect-data-refs.c (vect_analyze_group_access_1)
      	(vect_grouped_store_supported, vect_grouped_load_supported)
      	(vect_permute_load_chain, vect_shift_permute_load_chain)
      	(vect_transform_grouped_load): Use pow2p_hwi.
      	* tree-vect-generic.c (expand_vector_divmod): Use ctz_or_zero.
      	* tree-vect-patterns.c (vect_recog_divmod_pattern): Use ctz_or_zero.
      	* tree-vect-stmts.c (vectorizable_mask_load_store): Use
      	least_bit_hwi.
      	* tsan.c (instrument_expr): Use least_bit_hwi.
      	* var-tracking.c (negative_power_of_two_p): Use pow2_or_zerop.
      
      From-SVN: r240194
      Jason Merrill committed
  33. 20 Aug, 2016 1 commit
    • Makefile.in: Add tree-vrp.h to GTFILES. · f90aa46c
      gcc/ChangeLog:
      
      2016-08-20  Kugan Vivekanandarajah  <kuganv@linaro.org>
      
      	* Makefile.in: Add tree-vrp.h to GTFILES.
      	* gengtype.c (open_base_files): Add tree-vrp.h.
      	* asan.c: Add tree-vrp.h which now has the definition value_range_type.
      	* builtins.c: Likewise.
      	* fold-const.c: Likewise.
      	* gimple-builder.c: Likewise.
      	* gimple-laddress.c: Likewise.
      	* hsa-gen.c: Likewise.
      	* internal-fn.c: Likewise.
      	* ssa.h: Likewise.
      	* targhooks.c: Liewise,
      	* tree-ssa-address.c: Likewise.
      	* tree-ssanames.h (value_range_type: Move to tree-vrp.h.
      	* tree-vrp.c (struct value_range): Move to tree-vrp.h
      	* tree-vrp.h: New file.
      
      From-SVN: r239638
      Kugan Vivekanandarajah committed
  34. 12 Aug, 2016 1 commit
    • re PR c/7652 (-Wswitch-break : Warn if a switch case falls through) · 191816a3
      	PR c/7652
      gcc/
      	* alias.c (find_base_value): Adjust fall through comment.
      	* cfgexpand.c (expand_debug_expr): Likewise.
      	* combine.c (find_split_point): Likewise.
      	(expand_compound_operation): Likewise.  Add FALLTHRU.
      	(make_compound_operation): Adjust fall through comment.
      	(canon_reg_for_combine): Add FALLTHRU.
      	(force_to_mode): Adjust fall through comment.
      	(simplify_shift_const_1): Likewise.
      	(simplify_comparison): Likewise.
      	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Add
      	FALLTHRU.
      	* config/aarch64/predicates.md: Likewise.
      	* config/i386/i386.c (function_arg_advance_32): Likewise.
      	(ix86_gimplify_va_arg): Likewise.
      	(print_reg): Likewise.
      	(ix86_print_operand): Likewise.
      	(ix86_build_const_vector): Likewise.
      	(ix86_expand_branch): Likewise.
      	(ix86_sched_init_global): Adjust fall through comment.
      	(ix86_expand_args_builtin): Add FALLTHRU.
      	(ix86_expand_builtin): Likewise.
      	(ix86_expand_vector_init_one_var): Likewise.
      	* config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise.
      	(rs6000_adjust_cost): Likewise.
      	(insn_must_be_first_in_group): Likewise.
      	* config/rs6000/rs6000.md: Likewise.  Adjust fall through comment.
      	* dbxout.c (dbxout_symbol): Adjust fall through comment.
      	* df-scan.c (df_uses_record): Likewise.
      	* dojump.c (do_jump): Add FALLTHRU.
      	* dwarf2out.c (mem_loc_descriptor): Likewise.  Adjust fall through
      	comment.
      	(resolve_args_picking_1): Adjust fall through comment.
      	(loc_list_from_tree_1): Likewise.
      	* expmed.c (make_tree): Likewise.
      	* expr.c (expand_expr_real_2): Add FALLTHRU.
      	(expand_expr_real_1): Likewise.  Adjust fall through comment.
      	* fold-const.c (const_binop): Adjust fall through comment.
      	(fold_truth_not_expr): Likewise.
      	(fold_cond_expr_with_comparison): Add FALLTHRU.
      	(fold_binary_loc): Likewise.
      	(contains_label_1): Adjust fall through comment.
      	(multiple_of_p): Likewise.
      	* gcov-tool.c (process_args): Add FALLTHRU.
      	* genattrtab.c (check_attr_test): Likewise.
      	(write_test_expr): Likewise.
      	* genconfig.c (walk_insn_part): Likewise.
      	* genpreds.c (validate_exp): Adjust fall through comment.
      	(needs_variable): Likewise.
      	* gensupport.c (get_alternatives_number): Add FALLTHRU.
      	(subst_dup): Likewise.
      	* gimple-pretty-print.c (dump_gimple_assign): Likewise.
      	* gimplify.c (gimplify_addr_expr): Adjust fall through comment.
      	(gimplify_scan_omp_clauses): Add FALLTHRU.
      	(goa_stabilize_expr): Likewise.
      	* graphite-isl-ast-to-gimple.c (substitute_ssa_name): Adjust fall
      	through comment.
      	* hsa-gen.c (get_address_from_value): Likewise.
      	* ipa-icf.c (sem_function::hash_stmt): Likewise.
      	* ira.c (ira_setup_alts): Add FALLTHRU.
      	* lra-eliminations.c (lra_eliminate_regs_1): Adjust fall through
      	comment.
      	* lto-streamer-out.c (lto_output_tree_ref): Add FALLTHRU.
      	* opts.c (common_handle_option): Likewise.
      	* read-rtl.c (read_rtx_code): Likewise.
      	* real.c (round_for_format): Likewise.
      	* recog.c (asm_operand_ok): Likewise.
      	* reginfo.c (reg_scan_mark_refs): Adjust fall through comment.
      	* reload1.c (set_label_offsets): Likewise.
      	(eliminate_regs_1): Likewise.
      	(reload_reg_reaches_end_p): Likewise.
      	* rtlanal.c (commutative_operand_precedence): Add FALLTHRU.
      	(rtx_cost): Likewise.
      	* sched-rgn.c (is_exception_free): Likewise.
      	* simplify-rtx.c (simplify_rtx): Adjust fall through comment.
      	* stor-layout.c (int_mode_for_mode): Likewise.
      	* toplev.c (print_to_asm_out_file): Likewise.
      	(print_to_stderr): Likewise.
      	* tree-cfg.c (gimple_verify_flow_info): Likewise.
      	* tree-chrec.c (chrec_fold_plus_1): Add FALLTHRU.
      	(chrec_fold_multiply): Likewise.
      	(evolution_function_is_invariant_rec_p): Likewise.
      	(for_each_scev_op): Likewise.
      	* tree-data-ref.c (siv_subscript_p): Likewise.
      	(get_references_in_stmt): Likewise.
      	* tree.c (find_placeholder_in_expr): Adjust fall through comment.
      	(substitute_in_expr): Likewise.
      	(type_cache_hasher::equal): Likewise.
      	(walk_type_fields): Likewise.
      	* var-tracking.c (adjust_mems): Add FALLTHRU.
      	(set_dv_changed): Adjust fall through comment.
      	* varasm.c (default_function_section): Add FALLTHRU.
      gcc/c-family/
      	* c-common.c (scalar_to_vector): Adjust fall through comment.
      	* c-opts.c (c_common_handle_option): Likewise.
      	* c-pragma.c (handle_pragma_pack): Add FALLTHRU.
      	* c-pretty-print.c (c_pretty_printer::postfix_expression): Adjust
      	fall through comment.
      	* cilk.c (extract_free_variables): Add FALLTHRU.
      gcc/c/
      	* c-parser.c (c_parser_external_declaration): Add FALLTHRU.
      	(c_parser_postfix_expression): Likewise.
      	* c-typeck.c (build_unary_op): Adjust fall through comment.
      	(c_mark_addressable): Likewise.
      gcc/cp/
      	* call.c (add_builtin_candidate): Add FALLTHRU.
      	(build_integral_nontype_arg_conv): Adjust fall through comment.
      	(build_new_op_1): Add FALLTHRU.
      	(convert_like_real): Adjust fall through comment.
      	* class.c (fixed_type_or_null): Likewise.
      	* constexpr.c (cxx_eval_constant_expression): Likewise.
      	(potential_constant_expression_1): Likewise.  Add FALLTHRU.
      	* cp-gimplify.c (cp_gimplify_expr): Adjust fall through comment.
      	(cp_fold): Add FALLTHRU.
      	* cvt.c (build_expr_type_conversion): Adjust fall through comment.
      	* cxx-pretty-print.c (pp_cxx_unqualified_id): Add FALLTHRU.
      	(pp_cxx_qualified_id): Likewise.
      	(cxx_pretty_printer::constant): Adjust fall through comment.
      	(cxx_pretty_printer::primary_expression): Add FALLTHRU.
      	(pp_cxx_pm_expression): Adjust fall through comment.
      	(cxx_pretty_printer::expression): Add FALLTHRU.
      	(cxx_pretty_printer::declaration_specifiers): Reformat code.
      	(pp_cxx_type_specifier_seq): Adjust fall through comment.
      	(pp_cxx_ptr_operator): Likewise.  Add FALLTHRU.
      	* error.c (dump_type): Adjust fall through comment.
      	(dump_decl): Likewise.
      	* mangle.c (write_type): Likewise.
      	* method.c (synthesized_method_walk): Add FALLTHRU.
      	* name-lookup.c (arg_assoc_type): Likewise.
      	* parser.c (cp_lexer_print_token): Adjust fall through comment.
      	(cp_parser_primary_expression): Add FALLTHRU.
      	(cp_parser_operator): Likewise.
      	* pt.c (find_parameter_packs_r): Likewise.
      	(tsubst_aggr_type): Adjust fall through comment.
      	* semantics.c (finish_omp_clauses): Add FALLTHRU.
      	* tree.c (lvalue_kind): Likewise.
      gcc/fortran/
      	* decl.c (match_attr_spec): Add FALLTHRU.
      	* primary.c (match_arg_list_function): Likewise.
      	* resolve.c (resolve_operator): Adjust fall through comment.
      	(fixup_charlen): Add FALLTHRU.
      	(resolve_allocate_expr): Adjust fall through comment.
      	* trans-array.c (gfc_conv_ss_startstride): Add FALLTHRU.
      	* trans-intrinsic.c (gfc_conv_intrinsic_len): Adjust fall through
      	comment.
      gcc/java/
      	* expr.c (java_truthvalue_conversion): Adjust fall through comment.
      	* jcf-io.c (verify_constant_pool): Likewise.
      	* typeck.c (promote_type): Likewise.
      gcc/objc/
      	* objc-encoding.c (encode_type): Add FALLTHRU.
      libcpp/
      	* lex.c (search_line_fast): Add FALLTHRU.
      	(_cpp_lex_direct): Likewise.
      	(cpp_token_val_index): Adjust fall through comment.
      	* macro.c (parse_params): Add FALLTHRU.
      	* pch.c (count_defs): Adjust fall through comment.
      	(write_defs): Likewise.
      libiberty/
      	* cp-demangle.c (d_print_mod): Add FALLTHRU.
      
      From-SVN: r239410
      Marek Polacek committed
  35. 09 Aug, 2016 1 commit