2021-07-21  Thomas Schwinge  <thomas@codesourcery.com>
	    Joseph Myers  <joseph@codesourcery.com>
	    Cesar Philippidis  <cesar@codesourcery.com>

	* tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'.
	* tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1):
	Handle it.
	* tree-pretty-print.c (dump_omp_clause): Likewise.
	* omp-general.c (oacc_verify_routine_clauses): Likewise.
	* gimplify.c (gimplify_scan_omp_clauses)
	(gimplify_adjust_omp_clauses): Likewise.
	* tree-nested.c (convert_nonlocal_omp_clauses)
	(convert_local_omp_clauses): Likewise.
	* omp-low.c (scan_sharing_clauses): Likewise.
	* omp-offload.c (execute_oacc_device_lower): Update.

2021-07-21  Martin Sebor  <msebor@redhat.com>

	* tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (write_init_bif_table):
	Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (write_fntype): New
	callback function.
	(write_fntype_init): New stub function.
	(write_init_bif_table): Likewise.
	(write_init_ovld_table): New function.
	(write_init_file): Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c
	(write_autogenerated_header): New function.
	(write_decls): Likewise.
	(write_extern_fntype): New callback function.
	(write_header_file): Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (write_defines_file):
	Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New
	function.
	(complete_base_type): Likewise.
	(construct_fntype_id): Likewise.
	(parse_bif_entry): Call contruct_fntype_id.
	(parse_ovld_entry): Likewise.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct.
	(MAXOVLDSTANZAS): New macro.
	(ovld_stanzas): New variable.
	(curr_ovld_stanza): Likewise.
	(MAXOVLDS): New macro.
	(ovlddata): New struct.
	(ovlds): New variable.
	(curr_ovld): Likewise.
	(max_ovld_args): Likewise.
	(parse_ovld_entry): New function.
	(parse_ovld_stanza): Likewise.
	(parse_ovld): Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs):
	Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (parse_args): New function.
	(parse_prototype): Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum.
	(curr_bif_stanza): New variable.
	(stanza_entry): New struct.
	(stanza_map): New initialized variable.
	(enable_string): Likewise.
	(fnkinds): New enum.
	(typelist): New struct.
	(attrinfo): Likewise.
	(MAXRESTROPNDS): New macro.
	(prototype): New struct.
	(MAXBIFS): New macro.
	(bifdata): New struct.
	(bifs): New variable.
	(curr_bif): Likewise.
	(bif_order): Likewise.
	(bif_index): Likewise.
	(fatal): New function.
	(stanza_name_to_stanza): Likewise.
	(parse_bif_attrs): New stub function.
	(parse_prototype): Likewise.
	(parse_bif_entry): New function.
	(parse_bif_stanza): Likewise.
	(parse_bif): Implement.
	(set_bif_order): New function.
	(create_bif_order): Implement.

2021-07-21  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include.
	(num_bifs): New variable.
	(num_ovld_stanzas): Likewise.
	(num_ovlds): Likewise.
	(parse_codes): New enum.
	(bif_rbt): New variable.
	(ovld_rbt): Likewise.
	(fntype_rbt): Likewise.
	(bifo_rbt): Likewise.
	(parse_bif): New stub function.
	(create_bif_order): Likewise.
	(parse_ovld): Likewise.
	(write_header_file): Likewise.
	(write_init_file): Likewise.
	(write_defines_file): Likewise.
	(delete_output_files): New function.
	(main): Likewise.

2021-07-21  H.J. Lu  <hjl.tools@gmail.com>

	PR target/101549
	* config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2
	from CRC32 _builtin functions.

2021-07-21  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* coverage.c (build_gcov_info_var_registration): Mark the object placed
	in the linker set as referenced so that it does not get optimized away.

2021-07-21  Kito Cheng  <kito.cheng@sifive.com>

	Revert:
	2021-07-20  Kito Cheng  <kito.cheng@sifive.com>

	* config.gcc (riscv*-*-*): Detect which python is available.

2021-07-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101535
	* gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA
	contexts in which decl isn't privatized and for ORT_TARGET return
	false if decl is mapped.

2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>

	* gimple-loop-jam.c: Include tree-ssa-sccvn.h.
	(tree_loop_unroll_and_jam): Run value-numbering on a loop that
	has been successfully unrolled.

2021-07-21  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-ssa-loop-manip.c (determine_exit_conditions): Return a null
	exit condition if no tail loop is needed, and if the original exit
	condition should therefore be kept as-is.
	(tree_transform_and_unroll_loop): Handle that case here too.

2021-07-21  Kewen Lin  <linkw@linux.ibm.com>

	* tree-data-ref.c (free_dependence_relations): Adjust to pass vec
	by reference.
	(free_data_refs): Likewise.
	* tree-data-ref.h (free_dependence_relations): Likewise.
	(free_data_refs): Likewise.
	* tree-predcom.c (struct chain): Use auto_vec instead of vec for
	members.
	(struct component): Likewise.
	(pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes.
	(pcom_worker::~pcom_worker): Likewise.
	(pcom_worker::release_chain): Adjust as auto_vec changes.
	(pcom_worker::loop): Rename to ...
	(pcom_worker::m_loop): ... this.
	(pcom_worker::datarefs): Rename to ...
	(pcom_worker::m_datarefs): ... this.  Use auto_vec instead of vec.
	(pcom_worker::dependences): Rename to ...
	(pcom_worker::m_dependences): ... this.  Use auto_vec instead of vec.
	(pcom_worker::chains): Rename to ...
	(pcom_worker::m_chains): ... this.  Use auto_vec instead of vec.
	(pcom_worker::looparound_phis): Rename to ...
	(pcom_worker::m_looparound_phis): ... this.  Use auto_vec instead of
	vec.
	(pcom_worker::cache): Rename to ...
	(pcom_worker::m_cache): ... this.  Use auto_vec instead of vec.
	(pcom_worker::release_chain): Adjust for auto_vec changes.
	(pcom_worker::release_chains): Adjust for auto_vec and renaming
	changes.
	(release_component): Remove.
	(release_components): Adjust for release_component removal.
	(component_of): Adjust to use vec.
	(merge_comps): Likewise.
	(pcom_worker::aff_combination_dr_offset): Adjust for renaming changes.
	(pcom_worker::determine_offset): Likewise.
	(class comp_ptrs): Remove.
	(pcom_worker::split_data_refs_to_components): Adjust for renaming
	changes, for comp_ptrs removal with auto_vec.
	(pcom_worker::suitable_component_p): Adjust for renaming changes.
	(pcom_worker::filter_suitable_components): Adjust for release_component
	removal.
	(pcom_worker::valid_initializer_p): Adjust for renaming changes.
	(pcom_worker::find_looparound_phi): Likewise.
	(pcom_worker::add_looparound_copies): Likewise.
	(pcom_worker::determine_roots_comp): Likewise.
	(pcom_worker::single_nonlooparound_use): Likewise.
	(pcom_worker::execute_pred_commoning_chain): Likewise.
	(pcom_worker::execute_pred_commoning): Likewise.
	(pcom_worker::try_combine_chains): Likewise.
	(pcom_worker::prepare_initializers_chain): Likewise.
	(pcom_worker::prepare_initializers): Likewise.
	(pcom_worker::prepare_finalizers_chain): Likewise.
	(pcom_worker::prepare_finalizers): Likewise.
	(pcom_worker::tree_predictive_commoning_loop): Likewise.

2021-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/101397
	* builtins.c (gimple_call_return_array): Add argument.  Correct
	offsets for memchr, mempcpy, stpcpy, and stpncpy.
	(compute_objsize_r): Adjust offset computation for argument returning
	built-ins.

2021-07-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/101300
	* tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins.

2021-07-20  Jeff Law  <jlaw@localhost.localdomain>

	* function.c (assign_parm_setup_block): Use adjust_address instead
	of change_address to preserve MEM_EXPR and friends.

2021-07-20  Martin Sebor  <msebor@redhat.com>

	* cfgloop.h (single_likely_exit): Adjust by-value argument to
	by-const-reference.
	* cfgloopanal.c (single_likely_exit): Same.
	* cgraph.h (struct cgraph_node): Same.
	* cgraphclones.c (cgraph_node::create_virtual_clone): Same.
	* genautomata.c (merge_states): Same.
	* genextract.c (VEC_char_to_string): Same.
	* genmatch.c (dt_node::gen_kids_1): Same.
	(walk_captures): Adjust by-value argument to by-reference.
	* gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument
	to by-const-reference.
	* gimple.c (gimple_build_call_vec): Same.
	(gimple_build_call_internal_vec): Same.
	(gimple_build_switch): Same.
	(sort_case_labels): Same.
	(preprocess_case_label_vec_for_gimple): Adjust by-value argument to
	by-reference.
	* gimple.h (gimple_build_call_vec): Adjust by-value argument to
	by-const-reference.
	(gimple_build_call_internal_vec): Same.
	(gimple_build_switch): Same.
	(sort_case_labels): Same.
	(preprocess_case_label_vec_for_gimple): Adjust by-value argument to
	by-reference.
	* haifa-sched.c (calc_priorities): Adjust by-value argument to
	by-const-reference.
	(sched_init_luids): Same.
	(haifa_init_h_i_d): Same.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Same.
	(adjust_callers_for_value_intersection): Adjust by-value argument to
	by-reference.
	(find_more_scalar_values_for_callers_subset): Adjust by-value argument to
	by-const-reference.
	(find_more_contexts_for_caller_subset): Same.
	(find_aggregate_values_for_callers_subset): Same.
	(copy_useful_known_contexts): Same.
	* ipa-fnsummary.c (remap_edge_summaries): Same.
	(remap_freqcounting_predicate): Same.
	* ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to
	by-reference.
	* ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument
	to by-const-reference.
	* ipa-predicate.h (predicate::remap_after_inlining): Same.
	* ipa-prop.c (ipa_find_agg_cst_for_param): Same.
	* ipa-prop.h (ipa_find_agg_cst_for_param): Same.
	* ira-build.c (ira_loop_tree_body_rev_postorder): Same.
	* read-rtl.c (add_overload_instance): Same.
	* rtl.h (native_decode_rtx): Same.
	(native_decode_vector_rtx): Same.
	* sched-int.h (sched_init_luids): Same.
	(haifa_init_h_i_d): Same.
	* simplify-rtx.c (native_decode_vector_rtx): Same.
	(native_decode_rtx): Same.
	* tree-call-cdce.c (gen_shrink_wrap_conditions): Same.
	(shrink_wrap_one_built_in_call_with_conds): Same.
	(shrink_wrap_conditional_dead_built_in_calls): Same.
	* tree-data-ref.c (create_runtime_alias_checks): Same.
	(compute_all_dependences): Same.
	* tree-data-ref.h (compute_all_dependences): Same.
	(create_runtime_alias_checks): Same.
	(index_in_loop_nest): Same.
	* tree-if-conv.c (mask_exists): Same.
	* tree-loop-distribution.c (class loop_distribution): Same.
	(loop_distribution::create_rdg_vertices): Same.
	(dump_rdg_partitions): Same.
	(debug_rdg_partitions): Same.
	(partition_contains_all_rw): Same.
	(loop_distribution::distribute_loop): Same.
	* tree-parloops.c (oacc_entry_exit_ok_1): Same.
	(oacc_entry_exit_single_gang): Same.
	* tree-ssa-loop-im.c (hoist_memory_references): Same.
	(loop_suitable_for_sm): Same.
	* tree-ssa-loop-niter.c (bound_index): Same.
	* tree-ssa-reassoc.c (update_ops): Same.
	(swap_ops_for_binary_stmt): Same.
	(rewrite_expr_tree): Same.
	(rewrite_expr_tree_parallel): Same.
	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same.
	* tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same.
	* tree-ssa-structalias.c (process_all_all_constraints): Same.
	(make_constraints_to): Same.
	(handle_lhs_call): Same.
	(find_func_aliases_for_builtin_call): Same.
	(sort_fieldstack): Same.
	(check_for_overlaps): Same.
	* tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same.
	(vect_create_cond_for_unequal_addrs): Same.
	(vect_create_cond_for_lower_bounds): Same.
	(vect_create_cond_for_alias_checks): Same.
	* tree-vect-slp-patterns.c (vect_validate_multiplication): Same.
	* tree-vect-slp.c (vect_analyze_slp_instance): Same.
	(vect_make_slp_decision): Same.
	(vect_slp_bbs): Same.
	(duplicate_and_interleave): Same.
	(vect_transform_slp_perm_load): Same.
	(vect_schedule_slp): Same.
	* tree-vectorizer.h (vect_transform_slp_perm_load): Same.
	(vect_schedule_slp): Same.
	(duplicate_and_interleave): Same.
	* tree.c (build_vector_from_ctor): Same.
	(build_vector): Same.
	(check_vector_cst): Same.
	(check_vector_cst_duplicate): Same.
	(check_vector_cst_fill): Same.
	(check_vector_cst_stepped): Same.
	* tree.h (build_vector_from_ctor): Same.

2021-07-20  Jakub Jelinek  <jakub@redhat.com>

	PR target/101384
	* config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return
	type from bool to int.
	* config/rs6000/rs6000.c (vspltis_constant): Fix up handling the
	EASY_VECTOR_MSB case if either step or copies is not 1.
	(vspltis_shifted): Fix comment typo.
	(easy_altivec_constant): Change return type from bool to int, instead
	of returning true return byte size of the element mode that should be
	used to synthetize the constant.
	* config/rs6000/predicates.md (easy_vector_constant_msb): Require
	that vspltis_shifted is 0, handle the case where easy_altivec_constant
	assumes using different vector mode from CONST_VECTOR's mode.
	* config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use
	easy_altivec_constant to determine mode in which -1 >> -1 should be
	performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi.

2021-07-20  Richard Biener  <rguenther@suse.de>

	PR debug/101473
	* dwarf2out.h (dwarf_file_data): Add key member.
	* dwarf2out.c (dwarf_file_hasher::equal): Compare key.
	(dwarf_file_hasher::hash): Hash key.
	(lookup_filename): Remap the filename and store it in the
	filename member of dwarf_file_data when creating a new
	dwarf_file_data.
	(file_name_acquire): Do not remap the filename again.
	(maybe_emit_file): Likewise.

2021-07-20  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Use two variant
	generators for all TBL/TBX intrinsics and rename to
	consistent forms: qtbl[1234] or qtbx[1234].
	* config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>):
	Rename to...
	(aarch64_qtbl1<mode>): This.
	(aarch64_tbx1<mode>): Rename to...
	(aarch64_qtbx1<mode>): This.
	(aarch64_tbl2v16qi): Delete.
	(aarch64_tbl3<mode>): Rename to...
	(aarch64_qtbl2<mode>): This.
	(aarch64_tbx4<mode>): Rename to...
	(aarch64_qtbx2<mode>): This.
	* config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use
	renamed qtbl1 and qtbl2 RTL patterns.
	* config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1
	RTL pattern.
	(vqtbl1_s8): Likewise.
	(vqtbl1_u8): Likewise.
	(vqtbl1q_p8): Likewise.
	(vqtbl1q_s8): Likewise.
	(vqtbl1q_u8): Likewise.
	(vqtbx1_s8): Use renamed qtbx1 RTL pattern.
	(vqtbx1_u8): Likewise.
	(vqtbx1_p8): Likewise.
	(vqtbx1q_s8): Likewise.
	(vqtbx1q_u8): Likewise.
	(vqtbx1q_p8): Likewise.
	(vtbl1_s8): Use renamed qtbl1 RTL pattern.
	(vtbl1_u8): Likewise.
	(vtbl1_p8): Likewise.
	(vtbl2_s8): Likewise
	(vtbl2_u8): Likewise.
	(vtbl2_p8): Likewise.
	(vtbl3_s8): Use renamed qtbl2 RTL pattern.
	(vtbl3_u8): Likewise.
	(vtbl3_p8): Likewise.
	(vtbl4_s8): Likewise.
	(vtbl4_u8): Likewise.
	(vtbl4_p8): Likewise.
	(vtbx2_s8): Use renamed qtbx2 RTL pattern.
	(vtbx2_u8): Likewise.
	(vtbx2_p8): Likewise.
	(vqtbl2_s8): Use renamed qtbl2 RTL pattern.
	(vqtbl2_u8): Likewise.
	(vqtbl2_p8): Likewise.
	(vqtbl2q_s8): Likewise.
	(vqtbl2q_u8): Likewise.
	(vqtbl2q_p8): Likewise.
	(vqtbx2_s8): Use renamed qtbx2 RTL pattern.
	(vqtbx2_u8): Likewise.
	(vqtbx2_p8): Likewise.
	(vqtbx2q_s8): Likewise.
	(vqtbx2q_u8): Likewise.
	(vqtbx2q_p8): Likewise.
	(vtbx4_s8): Likewise.
	(vtbx4_u8): Likewise.
	(vtbx4_p8): Likewise.

2021-07-20  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100182
	* config/i386/sync.md (define_peephole2 atomic_storedi_fpu):
	Remove.
	(define_peephole2 atomic_loaddi_fpu): Ditto.

2021-07-20  Kito Cheng  <kito.cheng@sifive.com>

	* config.gcc (riscv*-*-*): Detect which python is available.

2021-07-20  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/vsx.md (mulhs_<mode>): Rename to...
	(smul<mode>3_highpart): ... this.
	(mulhu_<mode>): Rename to...
	(umul<mode>3_highpart): ... this.
	* config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI,
	MULHU_V2DI, MULHU_V4SI): Adjust.

2021-07-20  Kewen Lin  <linkw@linux.ibm.com>

	PR tree-optimization/100696
	* internal-fn.c (first_commutative_argument): Add info for IFN_MULH.
	* internal-fn.def (IFN_MULH): New internal function.
	* tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to
	recog normal multiply highpart as IFN_MULH.
	* config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined
	function CFN_MULH.

2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>

	* config/elfos.h (CTF_DEBUGGING_INFO): New definition.
	(BTF_DEBUGGING_INFO): Likewise.
	* doc/tm.texi.in: Document the new macros.
	* doc/tm.texi: Regenerated.
	* toplev.c: Guard initialization of debug hooks.

2021-07-19  Indu Bhagat  <indu.bhagat@oracle.com>

	* flags.h (ctf_debuginfo_p): New function declaration.
	* opts.c (ctf_debuginfo_p): New function definition.

2021-07-19  Andrew Stubbs  <ams@codesourcery.com>

	PR target/100208
	* config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New.
	(ASM_SPEC): Set -mattr for xnack and sram-ecc.
	* config/gcn/gcn-opts.h (enum sram_ecc_type): New.
	* config/gcn/gcn-valu.md: Add a warning comment.
	* config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack.
	(output_file_start): Add xnack and sram-ecc state to ".amdgcn_target".
	* config/gcn/gcn.md: Add a warning comment.
	* config/gcn/gcn.opt: Add -mxnack and -msram-ecc.
	* config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove
	SRAM-ECC flag.
	(EF_AMDGPU_XNACK): New.
	(EF_AMDGPU_SRAM_ECC): New.
	(elf_flags): New.
	(copy_early_debug_info): Use elf_flags.
	(main): Handle -mxnack and -msram-ecc options.
	* doc/invoke.texi: Document -mxnack and -msram-ecc.

2021-07-19  Andrew Pinski  <apinski@marvell.com>

	PR target/101205
	* config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ...
	(*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT.

2021-07-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101505
	* tree-vect-patterns.c (vect_determine_precisions): Walk
	PHIs also for loop vectorization.

2021-07-19  Richard Biener  <rguenther@suse.de>

	* gimple.h (gimple_expr_type): Remove.
	* doc/gimple.texi: Remove gimple_expr_type documentation.

2021-07-19  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type.
	(ao_ref_init_from_vn_reference): Likewise.
	(fully_constant_reference): Likewise.
	(vn_reference_lookup_call): Do not set vr->type to random
	values.
	* tree-ssa-pre.c (compute_avail): Do not try to PRE calls
	without a value.
	* tree-vect-generic.c (expand_vector_piecewise): Pass in
	whether we expanded parallel.
	(expand_vector_parallel): Adjust.
	(expand_vector_addition): Likewise.
	(expand_vector_comparison): Likewise.
	(expand_vector_operation): Likewise.
	(expand_vector_scalar_condition): Likewise.
	(expand_vector_conversion): Likewise.

2021-07-19  Richard Biener  <rguenther@suse.de>

	* tree-vrp.c (register_edge_assert_for_2): Use the
	type from the LHS.
	(vrp_folder::fold_predicate_in): Likewise.
	* vr-values.c (gimple_assign_nonzero_p): Likewise.
	(vr_values::extract_range_from_comparison): Likewise.
	(vr_values::extract_range_from_ubsan_builtin): Use the
	type of the first operand.
	(vr_values::extract_range_basic): Push down type
	computation, use the appropriate LHS.
	(vr_values::extract_range_from_assignment): Use the
	type of the LHS.

2021-07-18  H.J. Lu  <hjl.tools@gmail.com>

	PR target/101492
	* common/config/i386/i386-common.c (ix86_handle_option): For
	-mgeneral-regs-only, enable the GPR only instructions which are
	enabled implicitly by SSE ISAs unless they have been disabled
	explicitly.

2021-07-18  H.J. Lu  <hjl.tools@gmail.com>

	PR target/101495
	* config/i386/i386.c (ix86_check_avx_upper_stores): Moved before
	ix86_avx_u128_mode_needed.
	(ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee
	returns AVX register.

2021-07-17  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED.
	(handle_const_call): Liekise
	(handle_pure_call): Liekise

2021-07-17  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/96542
	* range-op.cc (range_operator::wi_fold_in_parts): New.
	(range_operator::fold_range): Call wi_fold_in_parts.
	(operator_lshift::wi_fold): Fix broken lshift by [0,0].
	* range-op.h (wi_fold_in_parts): Add prototype.

2021-07-16  David Malcolm  <dmalcolm@redhat.com>

	* doc/analyzer.texi: Add __analyzer_dump_state.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rbtree.c: New file.
	* config/rs6000/rbtree.h: New file.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (restriction): New enum.
	(typeinfo): Add restr field.
	(match_bracketed_pair): New function.
	(match_const_restriction): Implement.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (void_status): New enum.
	(basetype): Likewise.
	(typeinfo): Likewise.
	(handle_pointer): New function.
	(match_basetype): New stub function.
	(match_const_restriction): Likewise.
	(match_type): New function.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New
	function.
	(advance_line): Likewise.
	(safe_inc_pos): Likewise.
	(match_identifier): Likewise.
	(match_integer): Likewise.
	(match_to_right_bracket): Likewise.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c (bif_file): New variable.
	(ovld_file): Likewise.
	(header_file): Likewise.
	(init_file): Likewise.
	(defines_file): Likewise.
	(pgm_path): Likewise.
	(bif_path): Likewise.
	(ovld_path): Likewise.
	(header_path): Likewise.
	(init_path): Likewise.
	(defines_path): Likewise.
	(LINELEN): New macro.
	(linebuf): New variable.
	(line): Likewise.
	(pos): Likewise.
	(diag): Likewise.
	(bif_diag): New function.
	(ovld_diag): Likewise.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-builtin-new.def: New.
	* config/rs6000/rs6000-overload.def: New.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-gen-builtins.c: New.

2021-07-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* Makefile.in (EXTRA_GTYPE_DEPS): New variable.
	(s-gtype): Depend on EXTRA_GTYPE_DEPS.
	* gengtype-state.c (state_writer::write_state_file_list): Add a
	parameter to the fileslist expression for the number of build
	headers to scan.
	(read_state_files_list): Detect build headers and strip the
	initial "./" or ".\" from their names.
	* gengtype.c (build_headers): New global variable.
	(num_build_headers): Likewise.
	(open_base_files): Emit #include for each build header.
	(main): Detect and count build headers.
	* gengtype.h (build_headers): New extern variable.
	(num_build_headers): Likewise.

2021-07-16  Richard Biener   <rguenther@suse.de>

	* gimple-ssa-store-merging.c (verify_symbolic_number_p): Use
	the type of the LHS.
	(find_bswap_or_nop_1): Likewise.
	(find_bswap_or_nop): Likewise.
	* tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust
	prototype.
	* tree-vect-data-refs.c (vect_get_smallest_scalar_type):
	Remove unused parameters, pass in the scalar type.  Fix
	internal store function handling.
	* tree-vect-stmts.c (vect_analyze_stmt): Remove assert.
	(vect_get_vector_types_for_stmt): Move down check for
	existing vector stmt after we've determined a scalar type.
	Pass down the used scalar type to vect_get_smallest_scalar_type.
	* tree-vect-generic.c (expand_vector_condition): Use
	the type of the LHS.
	(expand_vector_scalar_condition): Likewise.
	(expand_vector_operations_1): Likewise.
	* tree-vect-patterns.c (vect_widened_op_tree): Likewise.
	(vect_recog_dot_prod_pattern): Likewise.
	(vect_recog_sad_pattern): Likewise.
	(vect_recog_widen_op_pattern): Likewise.
	(vect_recog_widen_sum_pattern): Likewise.
	(vect_recog_mixed_size_cond_pattern): Likewise.

2021-07-16  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-modref.c (struct escape_entry): Use eaf_fleags_t.
	(dump_eaf_flags): Dump EAF_NOT_RETURNED
	(eaf_flags_useful_p): Use eaf_fleags_t; handle const functions
	and EAF_NOT_RETURNED.
	(modref_summary::useful_p): Likewise.
	(modref_summary_lto::useful_p): Likewise.
	(struct) modref_summary_lto: Use eaf_fleags_t.
	(deref_flags): Handle EAF_NOT_RETURNED.
	(struct escape_point): Use min_flags.
	(modref_lattice::init): Add EAF_NOT_RETURNED.
	(merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions
	(analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return;
	handle call flags.
	(analyze_parms): Also analyze const functions; update conition on
	flags usefulness.
	(modref_write): Update streaming.
	(read_section): Update streaming.
	(remap_arg_flags): Use eaf_flags_t.
	(modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED.
	* ipa-modref.h: (eaf_flags_t): New typedef.
	(struct modref_summary): Use eaf_flags_t.
	* tree-core.h (EAF_NOT_RETURNED): New constant.

2021-07-16  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_stmt_to_constant_1): Use
	the type of the LHS.
	(gimple_assign_nonnegative_warnv_p): Likewise.
	(gimple_call_nonnegative_warnv_p): Likewise.  Return false
	if the call has no LHS.
	* gimple.c (gimple_could_trap_p_1): Use the type of the LHS.
	* tree-eh.c (stmt_could_throw_1_p): Likewise.
	* tree-inline.c (insert_init_stmt): Likewise.
	* tree-ssa-loop-niter.c (get_val_for): Likewise.
	* tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of
	the def.
	* tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a
	gassign *.  Use the type of the lhs.
	(vn_nary_op_lookup_stmt): Adjust.
	(vn_nary_op_insert_stmt): Likewise.

2021-07-16  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/predicates.md (bras_sym_operand): Accept all
	functions in 64-bit mode, use UNSPEC_PLT31.
	(larl_operand): Use UNSPEC_PLT31.
	* config/s390/s390.c (s390_loadrelative_operand_p): Likewise.
	(legitimize_pic_address): Likewise.
	(s390_emit_tls_call_insn): Mark __tls_get_offset as function,
	use UNSPEC_PLT31.
	(s390_delegitimize_address): Use UNSPEC_PLT31.
	(s390_output_addr_const_extra): Likewise.
	(print_operand): Add @PLT to TLS calls, handle %K.
	(s390_function_profiler): Mark __fentry__/_mcount as function,
	use %K, use UNSPEC_PLT31.
	(s390_output_mi_thunk): Use only UNSPEC_GOT, use %K.
	(s390_emit_call): Use UNSPEC_PLT31.
	(s390_emit_tpf_eh_return): Mark __tpf_eh_return as function.
	* config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT.
	(*movdi_64): Use %K.
	(reload_base_64): Likewise.
	(*sibcall_brc): Likewise.
	(*sibcall_brcl): Likewise.
	(*sibcall_value_brc): Likewise.
	(*sibcall_value_brcl): Likewise.
	(*bras): Likewise.
	(*brasl): Likewise.
	(*bras_r): Likewise.
	(*brasl_r): Likewise.
	(*bras_tls): Likewise.
	(*brasl_tls): Likewise.
	(main_base_64): Likewise.
	(reload_base_64): Likewise.
	(@split_stack_call<mode>): Likewise.

2021-07-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101467
	* tree-vect-stmts.c (vect_gen_while): Properly guard
	make_temp_ssa_name usage.

2021-07-16  Cooper Qu  <cooper.qu@linux.alibaba.com>

	* config.gcc: Don't use forked print-sysroot-suffix.sh and
	t-sysroot-suffix for C-SKY.
	* config/csky/print-sysroot-suffix.sh: Delete.
	* config/csky/t-csky-linux: Delete.
	* config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES
	instead of CSKY_MULTILIB_DIRNAMES.

2021-07-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_transform_cycle_phi): Correct sign
	conversion issues with the partial reduction of the reused
	vector accumulator.

2021-07-16  Richard Biener  <rguenther@suse.de>

	* config/i386/i386-options.c (ix86_option_override_internal): Set
	param_vect_partial_vector_usage to zero if not set.

2021-07-15  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101346
	* config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode.
	(VALID_INT_MODE_P): Add SDmode and DDmode.
	Add TDmode for TARGET_64BIT.
	(VALID_DFP_MODE_P): Remove.
	* config/i386/i386.c (ix86_hard_regno_mode_ok):
	Do not use VALID_DFP_MODE_P.

2021-07-15  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-fold.cc (adjust_pointer_diff_expr): Use
	gimple_range_type.
	(fold_using_range::fold_stmt): Ditto.
	(fold_using_range::range_of_range_op): Ditto.
	(fold_using_range::range_of_phi): Ditto.
	(fold_using_range::range_of_call): Ditto.
	(fold_using_range::range_of_builtin_ubsan_call): Ditto.
	(fold_using_range::range_of_builtin_call): Ditto.
	(fold_using_range::range_of_cond_expr): Ditto.
	* gimple-range-fold.h (gimple_range_type): New.

2021-07-15  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97027
	* tree-ssa-strlen.c (handle_assign): New function.
	(maybe_warn_overflow): Add argument.
	(nonzero_bytes_for_type): New function.
	(count_nonzero_bytes): Handle more tree types.  Call
	nonzero_bytes_for_tye.
	(count_nonzero_bytes): Handle types.
	(handle_store): Handle stores from function calls.
	(strlen_check_and_optimize_call): Move code to handle_assign.  Call
	it for assignments from function calls.

2021-07-15  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/95006
	PR analyzer/94713
	PR analyzer/94714
	* doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value.

2021-07-15  David Malcolm  <dmalcolm@redhat.com>

	* doc/invoke.texi (-fdump-analyzer-exploded-paths): New.

2021-07-15  Martin Sebor  <msebor@redhat.com>

	PR c/101289
	PR c/97548
	* fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME.
	(operand_compare::verify_hash_value): Same.
	* tree-core.h (OEP_DECL_NAME): New.

2021-07-15  Martin Jambor  <mjambor@suse.cz>

	* profile-count.h (profile_count::value): Change the return type to
	uint64_t.
	* gimple-pretty-print.c (dump_gimple_bb_header): Adjust print
	statement.
	* tree-cfg.c (dump_function_to_file): Likewise.

2021-07-15  Bill Schmidt  <wschmidt@linux.ibm.com>

	PR target/101129
	* config/rs6000/rs6000-p8swap.c (has_part_mult): New.
	(rs6000_analyze_swaps): Insns containing a subreg of a mult are
	not swappable.

2021-07-15  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_gen_while): Match up with
	vect_gen_while_not.
	* tree-vect-stmts.c (vect_gen_while): Adjust API to that
	of vect_gen_while_not.
	(vect_gen_while_not): Adjust.
	* tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise.

2021-07-15  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-range-cache.cc (non_null_ref::adjust_range): New.
	(ranger_cache::range_of_def): Call adjust_range.
	(ranger_cache::entry_range): Same.
	* gimple-range-cache.h (non_null_ref::adjust_range): New.
	* gimple-range.cc (gimple_ranger::range_of_expr): Call
	adjust_range.
	(gimple_ranger::range_on_entry): Same.

2021-07-15  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.

2021-07-15  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
	(sdot_prod, udot_prod): ...These.
	* config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
	(aarch64_<sur>dot<vsi2qi>): Rename to...
	(<sur>dot_prod<vsi2qi>): ...This.
	* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
	Update builtins.

2021-07-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101437
	* gimplify.c (gimplify_expr): Throw away volatile reads from empty
	types even if they have non-BLKmode TYPE_MODE.

2021-07-15  Richard Biener  <rguenther@suse.de>

	PR driver/101383
	* gcc.c (process_command): Process -gtoggle like process_options
	would after parsing options.

2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cfgexpand.c (expand_asm_loc): Adjust.
	(expand_asm_stmt): Likewise.
	* config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise.
	* config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
	* config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
	* config/avr/avr.c (avr_md_asm_adjust): Likewise.
	* config/cris/cris.c (cris_md_asm_adjust): Likewise.
	* config/i386/i386.c (ix86_md_asm_adjust): Likewise.
	* config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
	* config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
	* config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
	* config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
	* config/s390/s390.c (s390_md_asm_adjust): Likewise.
	* config/vax/vax.c (vax_md_asm_adjust): Likewise.
	* config/visium/visium.c (visium_md_asm_adjust): Likewise.
	* doc/tm.texi: Regenerate.
	* target.def: Add location argument to md_asm_adjust.

2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* tree-diagnostic.c (diagnostic_report_current_function): Use the
	diagnostic's location, not input_location.

2021-07-15  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to
	diagnostics.
	(expand_asm_stmt): Likewise.

2021-07-14  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower
	addressed memory rtx, if any.
	(rs6000_split_multireg_move): Fix code formatting.
	Handle MMA build built-ins with operands in adjacent memory locations.

2021-07-14  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later
	in the file.

2021-07-14  Jason Merrill  <jason@redhat.com>

	* sel-sched-ir.h (get_all_loop_exits): Use auto_vec.

2021-07-14  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi: -fdelete-dead-exceptions is on by default for
	C++.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-patterns.c (vect_recog_dot_prod_pattern):
	Remove erroneous line.

2021-07-14  Andrew MacLeod  <amacleod@redhat.com>

	* params.opt (param_evrp_mode): Change default.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to...
	(sdot_prod, udot_prod): ...These.
	* config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove.
	(aarch64_<sur>dot<vsi2qi>): Rename to...
	(<sur>dot_prod<vsi2qi>): ...This.
	* config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32):
	Update builtins.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/neon.md (usdot_prod<vsi2qi>): New.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to...
	(usdot_prod<vsi2qi>): ... This.
	* config/aarch64/aarch64-simd-builtins.def (usdot): Rename to...
	(usdot_prod): ...This.
	* config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise.
	* config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>):
	Rename to...
	(@<sur>dot_prod<vsi2qi>): ...This.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svusdot_impl::expand): Use it.

2021-07-14  Tamar Christina  <tamar.christina@arm.com>

	* optabs.def (usdot_prod_optab): New.
	* doc/md.texi: Document it and clarify other dot prod optabs.
	* optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign.
	* optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab.
	* optabs.c (expand_widen_pattern_expr): Likewise.
	* tree-cfg.c (verify_gimple_assign_ternary): Likewise.
	* tree-vect-loop.c (vectorizable_reduction): Query dot-product kind.
	* tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional
	optab subtype.
	(vect_widened_op_tree): Optionally ignore
	mismatch types.
	(vect_recog_dot_prod_pattern): Support usdot_prod_optab.

2021-07-14  H.J. Lu  <hjl.tools@gmail.com>

	PR target/101395
	* config/i386/driver-i386.c (host_detect_local_cpu): Check
	"arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen.
	Enable UINTR only for 64-bit codegen.
	* config/i386/i386-options.c
	(ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not
	in 64-bit mode.
	* config/i386/i386.h (ARCH_ARG): New.
	(CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and
	"[arch|tune] 64" for 64-bit codegen.

2021-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101445
	* tree-vect-stmts.c (vectorizable_load): Do the gap adjustment
	of the IV in the correct direction for negative stride
	accesses.

2021-07-14  Jakub Jelinek  <jakub@redhat.com>

	PR go/101407
	* godump.c (godump_str_hash): New type.
	(godump_container::pot_dummy_types): Use string_hash instead of
	ptr_hash in the hash_set.

2021-07-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.c (vect_find_reusable_accumulator): Handle
	vector types where the old vector type has a multiple of
	the new vector type elements.
	(vect_create_partial_epilog): New function, split out from...
	(vect_create_epilog_for_reduction): ... here.
	(vect_transform_cycle_phi): Reduce the re-used accumulator
	to the new vector type.

2021-07-14  Alexandre Oliva  <oliva@adacore.com>

	* tree-ssa-alias.c (attr_fnspec::verify): Fix index in
	non-'t'-sized arg check.

2021-07-14  Alexandre Oliva  <oliva@adacore.com>

	* tree-cfg.c (cleanup_dead_labels_eh): Update
	post_landing_pad label upon change of landing pad block's
	primary label.
	(cleanup_dead_labels): Check that a removed label is not that
	of a landing pad.

2021-07-13  Jonathan Wright  <jonathan.wright@arm.com>

	* combine.c (combine_simplify_rtx): Add vec_select -> subreg
	simplification.
	* config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64):
	Add Neon to general purpose register case for zero-extend
	pattern.
	* config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r
	case to prevent some cases opting to go through memory.
	* cse.c (fold_rtx): Add vec_select -> subreg simplification.
	* rtl.c (rtvec_series_p): Define predicate to determine
	whether a vector contains a linear series of integers.
	* rtl.h (rtvec_series_p): Define.
	* rtlanal.c (vec_series_lowpart_p): Define predicate to
	determine if a vector selection is equivalent to the low part
	of the vector.
	* rtlanal.h (vec_series_lowpart_p): Define.
	* simplify-rtx.c (simplify_context::simplify_binary_operation_1):
	Add vec_select -> subreg simplification.

2021-07-13  Paul A. Clarke  <pc@us.ibm.com>

	* config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128,
	_mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros,
	_mm_test_mix_ones_zeros): New.

2021-07-13  Roger Sayle  <roger@nextmovesoftware.com>
	    Richard Biener  <rguenther@suse.de>

	* gimple.c (gimple_could_trap_p_1):  Make S argument a
	"const gimple*".  Preserve constness in call to
	gimple_asm_volatile_p.
	(gimple_could_trap_p): Make S argument a "const gimple*".
	* gimple.h (gimple_could_trap_p_1, gimple_could_trap_p):
	Update function prototypes.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vectorizer.h (vect_reusable_accumulator): New structure.
	(_loop_vec_info::main_loop_edge): New field.
	(_loop_vec_info::skip_main_loop_edge): Likewise.
	(_loop_vec_info::skip_this_loop_edge): Likewise.
	(_loop_vec_info::reusable_accumulators): Likewise.
	(_stmt_vec_info::reduc_scalar_results): Likewise.
	(_stmt_vec_info::reused_accumulator): Likewise.
	(vect_get_main_loop_result): Declare.
	* tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize
	reduc_scalar_inputs.
	(vec_info::free_stmt_vec_info): Free reduc_scalar_inputs.
	* tree-vect-loop-manip.c (vect_get_main_loop_result): New function.
	(vect_do_peeling): Fill an epilogue loop's main_loop_edge,
	skip_main_loop_edge and skip_this_loop_edge fields.
	* tree-vect-loop.c (INCLUDE_ALGORITHM): Define.
	(vect_emit_reduction_init_stmts): New function.
	(get_initial_def_for_reduction): Use it.
	(get_initial_defs_for_reduction): Likewise.  Change the vinfo
	parameter to a loop_vec_info.
	(vect_create_epilog_for_reduction): Store the scalar results
	in the reduc_info.  If an epilogue loop is reusing an accumulator
	from the main loop, and if the epilogue loop can also be skipped,
	try to place the reduction code in the join block.  Record
	accumulators that could potentially be reused by epilogue loops.
	(vect_transform_cycle_phi): When vectorizing epilogue loops,
	try to reuse accumulators from the main loop.  Record the initial
	value in reduc_info for non-SLP reductions too.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (get_initial_def_for_reduction): Remove
	adjustment handling.  Take the neutral value as an argument,
	in place of the code argument.
	(vect_transform_cycle_phi): Update accordingly.  Handle the
	initial values of cond reductions separately from code reductions.
	Choose the adjustment here rather than in
	get_initial_def_for_reduction.  Sink the splat of vec_initial_def.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with...
	(neutral_op_for_reduction): ...this, providing a more general
	interface.
	(vect_create_epilog_for_reduction): Update accordingly.
	(vectorizable_reduction): Likewise.
	(vect_transform_cycle_phi): Likewise.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (get_initial_def_for_reduction): Take the
	reduc_info instead of the original stmt_vec_info.
	(vect_transform_cycle_phi): Update accordingly.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (get_initial_defs_for_reduction): Take the
	reduc_info as an additional parameter.
	(vect_transform_cycle_phi): Update accordingly.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vectorizer.h: Include tree-ssa-operands.h.
	(vect_phi_initial_value): New function.
	* tree-vect-loop.c (neutral_op_for_slp_reduction): Use it.
	(get_initial_defs_for_reduction, info_for_reduction): Likewise.
	(vect_create_epilog_for_reduction, vectorizable_reduction): Likewise.
	(vect_transform_cycle_phi, vectorizable_induction): Likewise.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Convert
	the phi results to vectype after creating them.  Remove later
	conversion code that thus becomes redundant.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Replace
	the new_phis vector with a reduc_inputs vector.  Combine handling
	of reduction chains and ncopies > 1.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate
	scalar_results to group_size elements after reducing down from
	N*group_size elements.  Construct an array_slice of the live-out
	stmts and assert that there is one stmt per scalar result.

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
	nested_in_vect_loop and use double_reduc everywhere.  Remove dead
	assignment to "loop".

2021-07-13  Richard Sandiford  <richard.sandiford@arm.com>

	* internal-fn.c (vectorized_internal_fn_supported_p): Handle
	vector types first.  For scalar types, consider both the preferred
	vector mode and the alternative vector modes.
	* optabs-query.c (can_vec_mask_load_store_p): Use the same
	structure as above, in particular using related_vector_mode
	for modes provided by autovectorize_vector_modes.

2021-07-13  Jakub Jelinek  <jakub@redhat.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101419
	* tree-pass.h (PROP_objsz): Define.
	(make_pass_early_object_sizes): Declare.
	* passes.def (pass_all_early_optimizations): Rename pass_object_sizes
	there to pass_early_object_sizes, drop parameter.
	(pass_all_optimizations): Move pass_object_sizes right after pass_ccp,
	drop parameter, move pass_post_ipa_warn right after that.
	* tree-object-size.c (pass_object_sizes::execute): Rename to...
	(object_sizes_execute): ... this.  Add insert_min_max_p argument.
	(pass_data_object_sizes): Move after object_sizes_execute.
	(pass_object_sizes): Likewise.  In execute method call
	object_sizes_execute, drop set_pass_param method and insert_min_max_p
	non-static data member and its initializer in the ctor.
	(pass_data_early_object_sizes, pass_early_object_sizes,
	make_pass_early_object_sizes): New.
	* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use
	(cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining.

2021-07-13  Kito Cheng  <kito.cheng@sifive.com>

	PR target/101275
	* config/riscv/constraints.md ("S"): Update description and remove
	@internal.
	* doc/md.texi (Machine Constraints): Document the 'S' constraints
	for RISC-V.

2021-07-13  Richard Biener  <rguenther@suse.de>

	Revert:
	2021-07-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_region): Show the number of
	SLP graph entries in the optimization message.

2021-07-13  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable
	value to to long.
	* config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change
	return type to long.
	* config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return
	type to long.

2021-07-12  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call):
	Query relation between the 2 operands and use it.

2021-07-12  Sergei Trofimovich  <siarheit@google.com>

	* doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo.

2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101424
	* config/i386/predicates.md (vec_setm_sse41_operand):
	Rename from vec_setm_operand.
	(vec_setm_avx2_operand): New predicate.
	* config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator.
	Use vec_setm_sse41_operand as operand 2 predicate.
	(vec_set<V_256_512:mode): New expander.
	* config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand
	as operand 2 predicate.

2021-07-12  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101335
	* range-op.cc (operator_cast::lhs_op1_relation): Delete.

2021-07-12  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (match_simplify_replacement): Move
	insert of the sequence before the movement of the
	statement. Check if to see if the statement is used
	outside of the original phi to see if we should move it.

2021-07-12  Richard Biener  <rguenther@suse.de>

	* dump-context.h (debug_dump_context::debug_dump_context):
	Add FILE * parameter defaulted to stderr.
	* dumpfile.c (debug_dump_context::debug_dump_context): Adjust.
	* tree-vect-slp.c (dot_slp_tree): New functions.

2021-07-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101373
	* tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping
	references when the BB may not return.
	(compute_avail): Pass in the function we're working on and
	replace cfun references with it.  Externally throwing
	const calls also possibly terminate the function.
	(pass_pre::execute): Pass down the function we're working on.
	* gcse.c (compute_hash_table_work): Externally throwing
	const/pure calls also need record_last_mem_set_info.
	* postreload-gcse.c (record_opr_changes): Looping or externally
	throwing const/pure calls also need record_last_mem_set_info.

2021-07-12  Uroš Bizjak  <ubizjak@gmail.com>

	* recog.c (memory_address_addr_space_p): Change the type to bool.
	Return true/false instead of 1/0.
	(offsettable_memref_p): Ditto.
	(offsettable_nonstrict_memref_p): Ditto.
	(offsettable_address_addr_space_p): Ditto.
	Change the type of addressp indirect function to bool.
	* recog.h (memory_address_addr_space_p): Change the type to bool.
	(strict_memory_address_addr_space_p): Ditto.
	(offsettable_memref_p): Ditto.
	(offsettable_nonstrict_memref_p): Ditto.
	(offsettable_address_addr_space_p): Ditto.
	* reload.c (maybe_memory_address_addr_space_p): Ditto.
	(strict_memory_address_addr_space_p): Change the type to bool.
	Return true/false instead of 1/0.
	(maybe_memory_address_addr_space_p): Change the type to bool.

2021-07-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_region): Show the number of
	SLP graph entries in the optimization message.

2021-07-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101394
	* tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting
	copies from abnormals for a full redundancy.

2021-07-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/101423
	* gimple.c (gimple_could_trap_p_1): Internal function calls
	do not trap.
	* tree-eh.c (tree_could_trap_p): Likewise.

2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with
	__a * __b.
	(vmulq_n_u32): Likewise.
	(vmul_n_f32): Gate __a * __b on __FAST_MATH__.
	(vmulq_n_f32): Likewise.
	(vmul_n_f16): Likewise.
	(vmulq_n_f16): Likewise.

2021-07-12  Martin Liska  <mliska@suse.cz>

	PR sanitizer/101425
	* gcc.c (check_offload_target_name): Call
	  candidates_list_and_hint only if we have a candidate.

2021-07-12  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/98435
	* config/arm/neon.md (vec_init): Move to ...
	* config/arm/vec-common.md (vec_init): ... here.
	Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE.

2021-07-12  Roger Sayle  <roger@nextmovesoftware.com>

	PR tree-optimization/101403
	* match.pd ((T)bswap(X)>>C): Correctly handle cases where
	signedness of the shift is not the same as the signedness of
	the type extension.

2021-07-09  Roger Sayle  <roger@nextmovesoftware.com>
	    Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*divmodsi4_const): Optimize SImode
	divmod of a constant numerator with new define_insn_and_split.

2021-07-09  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/100152
	* config/i386/i386-expand.c (ix86_expand_call): If a call is
	to a non-local-binding, or local but to a public symbol, then
	assume that it might be indirected via the lazy symbol binder.
	Mark R10 and R10 as clobbered in that case.

2021-07-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/101377
	* gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in
	the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined
	and HAVE_LD_BROKEN_PE_DWARF5 is defined.

2021-07-09  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the
	log2 range of operands[3] to [1,31].
	(*udivmodsi4_pow2_zext_2): Ditto.  Correct insn RTX pattern.

2021-07-09  Sergei Trofimovich  <siarheit@google.com>

	* doc/md.texi: Don't split @smallexample in multiple @groups.

2021-07-09  Sergei Trofimovich  <siarheit@google.com>

	* doc/md.texi: Add missing 'see' word.

2021-07-09  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (phiopt_early_allow): Change arguments
	to take sequence and gimple_match_op.  Accept the case where
	op is a SSA_NAME and one statement in the sequence.
	Also allow constants.
	(gimple_simplify_phiopt): Always pass a sequence to resimplify.
	Update call to phiopt_early_allow.  Discard the sequence if not
	used.

2021-07-09  Xi Ruoyao  <xry111@mengyan1223.wang>

	PR target/100760
	PR target/100761
	PR target/100762
	* config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P
	instead of ISA_HAS_MSA.
	(mips_expand_vec_unpack): Likewise.
	(mips_expand_vector_init): Likewise.

2021-07-09  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/vsx.md (mods_<mode>): Rename to...
	(mod<mode>3): ... this.
	(modu_<mode>): Rename to...
	(umod<mode>3): ... this.
	* config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI,
	MODU_V4SI): Adjust.

2021-07-08  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/shiftrotate.md (variable shifts): Expose condition
	code handling for the test before the loop.

2021-07-08  Martin Jambor  <mjambor@suse.cz>

	PR ipa/101066
	* ipa-sra.c (class isra_call_summary): New member
	m_before_any_store, initialize it in the constructor.
	(isra_call_summary::dump): Dump the new field.
	(ipa_sra_call_summaries::duplicate): Copy it.
	(process_scan_results): Set it.
	(isra_write_edge_summary): Stream it.
	(isra_read_edge_summary): Likewise.
	(param_splitting_across_edge): Only override
	safe_to_import_accesses if m_before_any_store is set.

2021-07-08  Martin Sebor  <msebor@redhat.com>

	PR bootstrap/101374
	* gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
	Use Object Size Type 0 instead of 1.

2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-loop.c (vectorizable_reduction): Remove always-true
	if condition.

2021-07-08  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Simplify an extend-operate-truncate sequence involving
	a POLY_INT_CST.

2021-07-08  Roger Sayle  <roger@nextmovesoftware.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/40210
	* match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as
	(x>>C3)&C2 when possible.  Simplify bswap(x)>>C1 as ((T)x)>>C2
	when possible.  Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255.

2021-07-08  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_sse_unpack):
	Handle V4QI mode.
	* config/i386/mmx.md (V_32): New mode iterator.
	(mov<V_32:mode>): Use V_32 mode iterator.
	(*mov<V_32:mode>_internal): Ditto.
	(*push<V_32:mode>2_rex64): Ditto.
	(*push<V_32:mode>2): Ditto.
	(movmisalign<V_32:mode>): Ditto.
	(mmx_<any_shiftrt:insn>v1si3): New insn pattern.
	(sse4_1_<any_extend:code>v2qiv2hi2): Ditto.
	(vec_unpacks_lo_v4qi): New expander.
	(vec_unpacks_hi_v4qi): Ditto.
	(vec_unpacku_lo_v4qi): Ditto.
	(vec_unpacku_hi_v4qi): Ditto.
	* config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode.
	(VALID_INT_MODE_P): Ditto.

2021-07-08  Michael Meissner  <meissner@linux.ibm.com>

	PR target/100809
	* config/rs6000/rs6000.md (udivti3): New insn.
	(divti3): New insn.
	(umodti3): New insn.
	(modti3): New insn.

2021-07-07  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/100137
	PR tree-optimization/99121
	PR tree-optimization/97027
	* builtins.c (access_ref::access_ref): Also set offmax.
	(access_ref::offset_in_range): Define new function.
	(access_ref::add_offset): Set offmax.
	(access_ref::inform_access): Handle access_none.
	(handle_mem_ref): Clear ostype.
	(compute_objsize_r): Handle ASSERT_EXPR.
	* builtins.h (struct access_ref): Add offmax member.
	* gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use
	compute_objsize() and simplify.

2021-07-07  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP
	and VSX_BUILTIN_STXVP.

2021-07-07  Martin Sebor  <msebor@redhat.com>

	PR target/101363
	* config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove
	a stray %K from error_at() missed in r12-2088.

2021-07-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99728
	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Record
	aggregate copies.
	(mem_refs_may_alias_p): Add assert we handled aggregate
	copies elsewhere.
	(sm_seq_valid_bb): Give up when running into aggregate copies.
	(ref_indep_loop_p): Handle aggregate copies as never
	being invariant themselves but allow other refs to be
	disambiguated against them.
	(can_sm_ref_p): Do not try to apply store-motion to aggregate
	copies.

2021-07-06  Indu Bhagat  <indu.bhagat@oracle.com>

	PR debug/101283
	* dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get
	number of bits.

2021-07-06  Martin Sebor  <msebor@redhat.com>

	* gimple-pretty-print.c (percent_G_format): Remove.
	* tree-diagnostic.c (default_tree_printer): Remove calls.
	* tree-pretty-print.c (percent_K_format): Remove.
	* tree-pretty-print.h (percent_K_format): Remove.

2021-07-06  Martin Sebor  <msebor@redhat.com>

	* config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin):
	Remove %K and use error_at.
	(aarch64_expand_fcmla_builtin): Same.
	(aarch64_expand_builtin_tme): Same.
	(aarch64_expand_builtin_memtag): Same.
	* config/arm/arm-builtins.c (arm_expand_acle_builtin): Same.
	(arm_expand_builtin): Same.
	* config/arm/arm.c (bounds_check): Same.

2021-07-06  Martin Sebor  <msebor@redhat.com>

	* builtins.c (warn_string_no_nul): Remove %G.
	(maybe_warn_for_bound): Same.
	(warn_for_access): Same.
	(check_access): Same.
	(check_strncat_sizes): Same.
	(expand_builtin_strncat): Same.
	(expand_builtin_strncmp): Same.
	(expand_builtin): Same.
	(expand_builtin_object_size): Same.
	(warn_dealloc_offset): Same.
	(maybe_emit_free_warning): Same.
	* calls.c (maybe_warn_alloc_args_overflow): Same.
	(maybe_warn_nonstring_arg): Same.
	(maybe_warn_rdwr_sizes): Same.
	* expr.c (expand_expr_real_1): Remove %K.
	* gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G.
	(gimple_fold_builtin_strncat): Same.
	* gimple-ssa-sprintf.c (format_directive): Same.
	(handle_printf_call): Same.
	* gimple-ssa-warn-alloca.c (pass_walloca::execute): Same.
	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
	(maybe_diag_access_bounds): Same.  Call gimple_location.
	(check_bounds_or_overlap): Same.
	* trans-mem.c (ipa_tm_scan_irr_block): Remove %K.  Simplify.
	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G.
	* tree-ssa-strlen.c (maybe_warn_overflow): Same.
	(maybe_diag_stxncpy_trunc): Same.
	(handle_builtin_stxncpy_strncat): Same.
	(maybe_warn_pointless_strcmp): Same.
	* tree-ssa-uninit.c (maybe_warn_operand): Same.

2021-07-06  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/97194
	* config/i386/predicates.md (vec_setm_operand): Enable
	register_operand for TARGET_SSE4_1.
	* config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand
	as operand 2 predicate.  Call ix86_expand_vector_set_var
	for non-constant index operand.
	(vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate.
	Call ix86_expand_vector_set_var for non-constant index operand.

2021-07-06  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/jumpcall.md (*branch): When possible, generate
	the comparison in CCZN mode.
	* config/h8300/predicates.md (simple_memory_operand): Reject all
	auto-increment addressing modes.

2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>

	PR bootstrap/100246
	* config/i386/i386.h (struct stringop_algs): Define a CTOR for
	this type.

2021-07-06  Richard Biener  <rguenther@suse.de>

	* doc/md.texi (vec_fmaddsub<mode>4): Document.
	(vec_fmsubadd<mode>4): Likewise.
	* optabs.def (vec_fmaddsub$a4): Add.
	(vec_fmsubadd$a4): Likewise.
	* internal-fn.def (IFN_VEC_FMADDSUB): Add.
	(IFN_VEC_FMSUBADD): Likewise.
	* tree-vect-slp-patterns.c (addsub_pattern::recognize):
	Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD.
	(addsub_pattern::build): Likewise.
	* tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB
	and CFN_VEC_FMSUBADD are not transparent for permutes.
	* config/i386/sse.md (vec_fmaddsub<mode>4): New expander.
	(vec_fmsubadd<mode>4): Likewise.

2021-07-06  Richard Biener  <rguenther@suse.de>

	* doc/invoke.texi (fmove-loop-stores): Document.
	* common.opt (fmove-loop-stores): New option.
	* opts.c (default_options_table): Enable -fmove-loop-stores
	at -O1 but not -Og.
	* tree-ssa-loop-im.c (pass_lim::execute): Pass
	flag_move_loop_stores instead of true to
	loop_invariant_motion_in_fun.

2021-07-06  Iain Sandoe  <iain@sandoe.co.uk>

	* doc/install.texi: Document --with-dsymutil.

2021-07-06  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/101256
	* dbgcnt.def (phiopt_edge_range): New counter.
	* tree-ssa-phiopt.c (replace_phi_edge_with_variable):
	Check to make sure the new name is defined in the same
	bb as the conditional before duplicating range info.
	Also add debug counter.

2021-07-06  Kewen Lin  <linkw@linux.ibm.com>

	PR rtl-optimization/100328
	* config/i386/i386-options.c (ix86_option_override_internal):
	Set param_ira_consider_dup_in_all_alts to 0.

2021-07-06  Kewen Lin  <linkw@linux.ibm.com>

	PR rtl-optimization/100328
	* doc/invoke.texi (ira-consider-dup-in-all-alts): Document new
	parameter.
	* ira.c (ira_get_dup_out_num): Adjust as parameter
	param_ira_consider_dup_in_all_alts.
	* params.opt (ira-consider-dup-in-all-alts): New.
	* ira-conflicts.c (process_regs_for_copy): Add one parameter
	single_input_op_has_cstr_p.
	(get_freq_for_shuffle_copy): New function.
	(add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p.
	* ira-int.h (ira_get_dup_out_num): Add one bool parameter.

2021-07-05  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/shiftrotate.md (shift-by-variable patterns): Update to
	generate condition code aware RTL directly.

2021-07-05  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/101039
	* match.pd (A CMP 0 ? A : -A): New patterns.
	* tree-ssa-phiopt.c (abs_replacement): Delete function.
	(tree_ssa_phiopt_worker): Don't call abs_replacement.
	Update comment about abs_replacement.

2021-07-05  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (gimple_simplify_phiopt):
	If "A ? B : C" fails to simplify, try "(!A) ? C : B".

2021-07-05  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (match_simplify_replacement):
	Add early_p argument. Call gimple_simplify_phiopt
	instead of gimple_simplify.
	(tree_ssa_phiopt_worker): Update call to
	match_simplify_replacement and allow unconditionally.
	(phiopt_early_allow): New function.
	(gimple_simplify_phiopt): New function.

2021-07-05  Andrew Pinski  <apinski@marvell.com>

	PR middle-end/101237
	* fold-const.c (negate_expr_p): Remove call to element_mode
	and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS,
	HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS.
	(fold_negate_expr_1): Likewise.
	(const_unop): Likewise.
	(fold_cond_expr_with_comparison): Likewise.
	(fold_binary_loc): Likewise.
	(fold_ternary_loc): Likewise.
	(tree_call_nonnegative_warnv_p): Likewise.
	* match.pd (-(A + B) -> (-B) - A): Likewise.

2021-07-05  Iain Sandoe  <iain@sandoe.co.uk>

	* configure.ac: Handle --with-dsymutil in the same way as we
	do for the assembler and linker.  (DEFAULT_DSYMUTIL): New.
	Extract the type and version for the dsymutil configured or
	found by the default searches.
	* config.in: Regenerated.
	* configure: Regenerated.
	* collect2.c (do_dsymutil): Handle locating dsymutil in the
	same way as for the assembler and  linker.
	* config/darwin.h (DSYMUTIL): Delete.
	* gcc.c: Report a configured dsymutil correctly.
	* exec-tool.in: Allow for dsymutil.

2021-07-05  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.c (ix86_split_mmx_punpck):
	Handle V4QI and V2HI modes.
	(expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1.
	Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes.
	(expand_vec_perm_pshufb): Rewrite to use switch statemets.
	Handle 4-byte dual operands with TARGET_XOP and single operands
	with TARGET_SSSE3.  Emit mmx_ppermv32 for TARGET_XOP and
	mmx_pshufbv4qi3 for TARGET_SSSE3.
	(expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1.
	(expand_vec_perm_interleave2): Allow 4-byte vector modes.
	(expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3.
	(expand_vec_perm_even_odd_1): Handle V4QI mode.
	(expand_vec_perm_broadcast_1): Handle V4QI mode.
	(ix86_vectorize_vec_perm_const): Handle V4QI mode.
	* config/i386/mmx.md (mmx_ppermv32): New insn pattern.
	(mmx_pshufbv4qi3): Ditto.
	(*mmx_pblendw32): Ditto.
	(*mmx_pblendw64): Rename from *mmx_pblendw.
	(mmx_punpckhbw_low): New insn_and_split pattern.
	(mmx_punpcklbw_low): Ditto.

2021-07-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop-manip.c (vect_loop_versioning): Do not
	set LOOP_C_INFINITE on the vectorized loop.

2021-07-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/101291
	* cfgloopmanip.c (loop_version): Set the loop copy of the
	versioned loop to the new loop.

2021-07-04  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/100269
	* config.gcc: Ensure that Darwin biarch definitions are
	added before i386.h.
	* config/i386/darwin.h (TARGET_64BIT): Remove.
	(PR80556_WORKAROUND): New.
	(REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND.
	(DARWIN_SUBARCH_SPEC): New.
	* config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT,
	TARGET_BI_ARCH, PR80556_WORKAROUND): New.
	(REAL_LIBGCC_SPEC): Remove.
	* config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT,
	TARGET_BI_ARCH, PR80556_WORKAROUND): New.
	(REAL_LIBGCC_SPEC): Remove.

2021-07-03  H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/101294
	* expr.c (store_constructor): Don't use vec_duplicate on vector.

2021-07-02  Martin Sebor  <msebor@redhat.com>

	PR middle-end/98871
	PR middle-end/98512
	* diagnostic.c (get_any_inlining_info): New.
	(update_effective_level_from_pragmas): Handle inlining context.
	(diagnostic_enabled): Same.
	(diagnostic_report_diagnostic): Same.
	* diagnostic.h (struct diagnostic_info): Add ctor.
	(struct diagnostic_context): Add new member.
	* tree-diagnostic.c (set_inlining_locations): New.
	(tree_diagnostics_defaults): Set new callback pointer.

2021-07-02  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST):
	New macros.
	(__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins.
	* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand
	lxvp and stxvp built-ins.
	(mma_init_builtins): Handle lxvp and stxvp built-ins.
	(builtin_function_type): Likewise.
	* doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document.

2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300-protos.h (compute_a_shift_cc): Accept
	additional argument for the code.
	* config/h8300/h8300.c (compute_a_shift_cc): Accept additional
	argument for the code.  Just return if the ZN bits are useful or
	not rather than the old style CC_* enums.
	* config/h8300/shiftrotate.md (shiftqi_noscratch): Move before
	more generic shiftqi patterns.
	(shifthi_noscratch, shiftsi_noscratch): Similarly.
	(shiftqi_noscratch_set_flags): New pattern.
	(shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise.

2021-07-02  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101223
	* range-op.cc (build_lt): Add -1 for signed values.
	(built_gt): Subtract -1 for signed values.

2021-07-02  David Faust  <david.faust@oracle.com>

	* btfout.c (get_btf_kind): Support BTF_KIND_FLOAT.
	(btf_asm_type): Likewise.

2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300-protos.h (output_a_shift): Make first argument
	an array of rtx rather than a pointer to rtx.  Add code argument.
	(compute_a_shift_length): Similarly.
	* config/h8300/h8300.c (h8300_shift_costs): Adjust now that the
	shift itself isn't an operand.  Create dummy operand[0] to carry
	a mode and pass a suitable rtx code to compute_a_shift_length.
	(get_shift_alg): Adjust operand number of clobber in output templates.
	(output_a_shift): Make first argument an array of rtx rather than
	a pointer to rtx.  Add code argument for the type of shift.
	Adjust now that the shift itself is no longer an operand.
	(compute_a_shift_length): Similarly.
	* config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an
	iterator rather than nshift_operator.
	(shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise.
	(shiftqi_clobber_flags): Adjust to API changes in output_a_shift
	and compute_a_shift_length.
	(shiftqi_noscratch_clobber_flags): Likewise.
	(shifthi_noscratch_clobber_flags): Likewise.
	(shiftsi_noscratch_clobber_flags): Likewise.

2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>

	PR debug/101283
	* config/darwin.h (DSYMUTIL_SPEC): Do not try to run
	dsymutil for BTF/CTF.

2021-07-02  Iain Sandoe  <iain@sandoe.co.uk>

	PR debug/101283
	* config/darwin.h (CTF_INFO_SECTION_NAME): Update the
	segment to include BTF.
	(BTF_INFO_SECTION_NAME): New.

2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/m32r/m32r-protos.h (call_operand): Adjust return type.
	(small_data_operand, memreg_operand, small_insn_p): Likewise.
	* config/m32r/m32r.c (call_operand): Adjust return type.
	(small_data_operand, memreg_operand): Likewise.

2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/frv/frv-protos.h  (integer_register_operand): Adjust return
	type.
	(frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise.
	(fpr_or_int6_operand, gpr_or_int_operand); Likewise.
	(gpr_or_int12_operand, gpr_or_int10_operand); Likewise.
	(move_source_operand, move_destination_operand): Likewise.
	(condexec_source_operand, condexec_dest_operand): Likewise.
	(lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise.
	(reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise.
	(fcr_operand, icr_operand, cr_operand, call_operand): Likewise.
	(fpr_operand, even_reg_operand, odd_reg_operand): Likewise.
	(even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise.
	(even_fpr_operand, odd_fpr_operand): Likewise.
	(dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise.
	(int12_operand, int6_operand, int5_operand, uint5_operand): Likewise.
	(uint4_operand, uint1_operand, int_2word_operand): Likewise
	(upper_int16_operand, uint16_operand, symbolic_operand): Likewise.
	(relational_operator, float_relational_operator): Likewise.
	(ccr_eqne_operator, minmax_operator): Likewise.
	(condexec_si_binary_operator, condexec_si_media_operator): Likewise.
	(condexec_si_divide_operator, condexec_si_unary_operator): Likewise.
	(condexec_sf_conv_operator, condexec_sf_add_operator): Likewise.
	(intop_compare_operator, acc_operand, even_acc_operand): Likewise.
	(quad_acc_operand, accg_operand): Likewise.

2021-07-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change
	return type to a bool.
	(nonimmediate_nonstack_operand): Likewise.
	(xstormy16_splittable_below100_operand): Likewise.
	* config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix
	return type.
	(xstormy16_splittable_below100_operand): Likewise.

2021-07-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101293
	* tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases
	with combined offsets.
	(gather_mem_refs_stmt): Hash MEM_REFs as if their offset were
	combined with the rest of the offset.

2021-07-02  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/i386.c (asm_preferred_eh_data_format): Always use the
	PIC encodings for PE-COFF targets.

2021-07-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/101286
	* config/i386/i386-expand.c (ix86_broadcast_from_integer_constant):
	Return nullptr for TImode inner mode.

2021-07-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101280
	PR tree-optimization/101173
	* gimple-loop-interchange.cc
	(tree_loop_interchange::valid_data_dependences): Properly
	guard all dependence checks with DDR_REVERSED_P or its
	inverse.

2021-07-02  Hongyu Wang  <hongyu.wang@intel.com>

	* config/i386/i386-expand.c (ix86_expand_builtin):
	Add branch to clear odata when ZF is set for asedecenc_expand
	and wideaesdecenc_expand.

2021-07-02  Eugene Rozenfeld  <erozen@microsoft.com>

	* config/i386/gcc-auto-profile: regenerate

2021-07-02  liuhongt  <hongtao.liu@intel.com>

	* config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to ..
	(trunc<mode><pmov_dst_4_lower>2): this.

2021-07-01  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostic_context::m_file_cache): New field.
	* input.c (class fcache): Rename to...
	(class file_cache_slot): ...this, making most members private and
	prefixing fields with "m_".
	(file_cache_slot::get_file_path): New accessor.
	(file_cache_slot::get_use_count): New accessor.
	(file_cache_slot::missing_trailing_newline_p): New accessor.
	(file_cache_slot::inc_use_count): New.
	(fcache_buffer_size): Move to...
	(file_cache_slot::buffer_size): ...here.
	(fcache_line_record_size): Move to...
	(file_cache_slot::line_record_size): ...here.
	(fcache_tab): Delete, in favor of global_dc->m_file_cache.
	(fcache_tab_size): Move to file_cache::num_file_slots.
	(diagnostic_file_cache_init): Update for move of fcache_tab
	to global_dc->m_file_cache.
	(diagnostic_file_cache_fini): Likewise.
	(lookup_file_in_cache_tab): Convert to...
	(file_cache::lookup_file): ...this.
	(diagnostics_file_cache_forcibly_evict_file): Update for move of
	fcache_tab to global_dc->m_file_cache, moving most of
	implementation to...
	(file_cache::forcibly_evict_file): ...this new function and...
	(file_cache_slot::evict): ...this new function.
	(evicted_cache_tab_entry): Convert to...
	(file_cache::evicted_cache_tab_entry): ...this.
	(add_file_to_cache_tab): Convert to...
	(file_cache::add_file): ...this, moving bulk of implementation
	to...
	(file_cache_slot::create): ..this new function.
	(file_cache::file_cache): New.
	(file_cache::~file_cache): New.
	(lookup_or_add_file_to_cache_tab): Convert to...
	(file_cache::lookup_or_add_file): ..this new function.
	(fcache::fcache): Rename to...
	(file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes
	to fields.
	(fcache::~fcache): Rename to...
	(file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes
	to fields.
	(needs_read): Convert to...
	(file_cache_slot::needs_read_p): ...this.
	(needs_grow): Convert to...
	(file_cache_slot::needs_grow_p): ...this.
	(maybe_grow): Convert to...
	(file_cache_slot::maybe_grow): ...this.
	(read_data): Convert to...
	(file_cache_slot::read_data): ...this.
	(maybe_read_data): Convert to...
	(file_cache_slot::maybe_read_data): ...this.
	(get_next_line): Convert to...
	(file_cache_slot::get_next_line): ...this.
	(goto_next_line): Convert to...
	(file_cache_slot::goto_next_line): ...this.
	(read_line_num): Convert to...
	(file_cache_slot::read_line_num): ...this.
	(location_get_source_line): Update for moving of globals to
	global_dc->m_file_cache.
	(location_missing_trailing_newline): Likewise.
	* input.h (class file_cache_slot): New forward decl.
	(class file_cache): New.

2021-07-01  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE
	128-bit floating point conditional move support.
	(have_compare_and_set_mask): Add IEEE 128-bit floating point
	types.
	* config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn.
	(mov<mode>cc_p10, IEEE128 iterator): New insn.
	(mov<mode>cc_invert_p10, IEEE128 iterator): New insn.
	(fpmask<mode>, IEEE128 iterator): New insn.
	(xxsel<mode>, IEEE128 iterator): New insn.

2021-07-01  Iain Sandoe  <iain@sandoe.co.uk>

	PR debug/101283
	* config/darwin.h (CTF_INFO_SECTION_NAME): New.

2021-07-01  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
	Make it global.
	* config/i386/i386-protos.h (ix86_expand_vector_init_duplicate):
	New prototype.
	* config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator.
	(vec_duplicate<mode>): New expander.

2021-07-01  H.J. Lu  <hjl.tools@gmail.com>

	PR target/100865
	* config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
	New prototype.
	(ix86_byte_broadcast): New function.
	(ix86_convert_const_wide_int_to_broadcast): Likewise.
	(ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode
	size is 16 bytes or bigger.
	(ix86_broadcast_from_integer_constant): New function.
	(ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR
	to broadcast if mode size is 16 bytes or bigger.
	* config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New
	prototype.
	* config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function.

2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (ix86_endbr_immediate_operand):
	Return true/false instead of 1/0.
	(movq_parallel): Ditto.

2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>

	* recog.c (general_operand): Return true/false instead of 1/0.
	(register_operand): Ditto.
	(immediate_operand): Ditto.
	(const_int_operand): Ditto.
	(const_scalar_int_operand): Ditto.
	(const_double_operand): Ditto.
	(push_operand): Ditto.
	(pop_operand): Ditto.
	(memory_operand): Ditto.
	(indirect_operand): Ditto.

2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>

	* genpreds.c (write_predicate_subfunction):
	Change the type of written subfunction to bool.
	(write_one_predicate_function):
	Change the type of written function to bool.
	(write_tm_preds_h): Ditto.
	* recog.h (*insn_operand_predicate_fn): Change the type to bool.
	* recog.c (general_operand): Change the type to bool.
	(address_operand): Ditto.
	(register_operand): Ditto.
	(pmode_register_operand): Ditto.
	(scratch_operand): Ditto.
	(immediate_operand): Ditto.
	(const_int_operand): Ditto.
	(const_scalar_int_operand): Ditto.
	(const_double_operand): Ditto.
	(nonimmediate_operand): Ditto.
	(nonmemory_operand): Ditto.
	(push_operand): Ditto.
	(pop_operand): Ditto.
	(memory_operand): Ditto.
	(indirect_operand): Ditto.
	(ordered_comparison_operator): Ditto.
	(comparison_operator): Ditto.
	* config/i386/i386-expand.c (ix86_expand_sse_cmp):
	Change the type of indirect predicate function to bool.
	* config/rs6000/rs6000.c (easy_vector_constant):
	Change the type to bool.
	* config/mips/mips-protos.h (m16_based_address_p):
	Change the type of operand 3 to bool.

2021-07-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101280
	PR tree-optimization/101173
	* gimple-loop-interchange.cc
	(tree_loop_interchange::valid_data_dependences): Revert
	previous change and instead correctly handle DDR_REVERSED_P
	dependence.

2021-07-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101278
	* tree-ssa-dse.c (dse_classify_store): First check for
	uses, then ignore stmt for chaining purposes.

2021-07-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100778
	* tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping
	vectorized ops ahead of their scalar BB.

2021-07-01  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101044
	* config/i386/i386.md (*nabs<dwi>2_doubleword):
	New insn_and_split pattern.
	(*nabs<dwi>2_1): Ditto.
	* config/i386/i386-features.c
	(general_scalar_chain::compute_convert_gain):
	Handle (NEG (ABS (...))) RTX.  Rewrite src code
	scanner as switch statement.
	(general_scalar_chain::convert_insn):
	Handle (NEG (ABS (...))) RTX.
	(general_scalar_to_vector_candidate_p):
	Detect  (NEG (ABS (...))) RTX.  Reorder case statements
	for (AND (NOT (...) ...)) fallthrough.

2021-07-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101178
	* tree-vect-slp.c (slpg_vertex::materialize): Remove.
	(slpg::perm_in): Add.
	(slpg::get_perm_in): Remove.
	(slpg::get_perm_materialized): Add.
	(vect_optimize_slp): Handle VEC_PERM nodes more optimally
	during permute propagation and materialization.

2021-07-01  Jakub Jelinek  <jakub@redhat.com>

	PR debug/101266
	* dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR.

2021-07-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/94366
	* omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to
	is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type,
	use boolean_type_node instead of integer_type_node as NE_EXPR type.
	(lower_reduction_clauses): Likewise.

2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* config/gcn/gcn.c: Include dwarf2.h.
	(gcn_addr_space_debug): New function.
	(TARGET_ADDR_SPACE_DEBUG): New hook.

2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* common/config/gcn/gcn-common.c
	(gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3.
	* config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer
	when emitting CFI.
	(gcn_expand_prologue): Prefer the frame pointer when emitting CFI.
	(gcn_frame_pointer_rqd): New function.
	(TARGET_FRAME_POINTER_REQUIRED): New hook.

2021-06-30  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	* config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for
	prologue register saves.
	(gcn_debug_unwind_info): Use UI_DWARF2.
	(gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC.
	(gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span.
	* config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define.
	(DWARF_LINK_REGISTER): New define.
	(FIRST_PSEUDO_REGISTER): Increment.
	(FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER.
	(CALL_USED_REGISTERS): Likewise.
	(REGISTER_NAMES): Likewise.

2021-06-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101267
	* tree-vect-stmts.c (vect_check_scalar_mask): Adjust
	API and use SLP compatible interface of vect_is_simple_use.
	Reject not vectorized SLP defs for callers that do not support
	that.
	(vect_check_store_rhs): Handle masked stores and pass down
	the appropriate operator index.
	(vectorizable_call): Adjust.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.  Handle SLP pecularity of
	masked loads.
	(vect_is_simple_use): Remove special-casing of masked stores.

2021-06-30  Tobias Burnus  <tobias@codesourcery.com>

	* common.opt (foffload): Remove help as Driver only.
	* gcc.c (display_help): Add -foffload.

2021-06-30  Tobias Burnus  <tobias@codesourcery.com>

	* gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC.
	(check_offload_target_name): Fix splitting OFFLOAD_TARGETS into
	a candidate list; better inform no offload target is configured
	and fix hint extraction when passed target is not '\0' at [len].
	* common.opt (foffload): Add tailing '.'.
	(foffload-options): Likewise; fix flag name in the help string.

2021-06-30  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32.
	(vcage_f32): Gate comparison on __FAST_MATH__.
	(vcageq_f32): Likewise.
	(vcale_f32): Likewise.
	(vcaleq_f32): Likewise.
	(vcagt_f32): Likewise.
	(vcagtq_f32): Likewise.
	(vcalt_f32): Likewise.
	(vcaltq_f32): Likewise.
	(vcage_f16): Likewise.
	(vcageq_f16): Likewise.
	(vcale_f16): Likewise.
	(vcaleq_f16): Likewise.
	(vcagt_f16): Likewise.
	(vcagtq_f16): Likewise.
	(vcalt_f16): Likewise.
	(vcaltq_f16): Likewise.

2021-06-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101264
	* tree-vect-slp.c (vect_optimize_slp): Propagate the
	computed perm_in to all "any" permute successors
	we cannot de-duplicate immediately.

2021-06-30  liuhongt  <hongtao.liu@intel.com>

	PR target/101248
	* config/i386/sse.md
	(avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>):
	Refined to ..
	(avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>):
	this.
	(avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined.
	* config/i386/subst.md (maskz_scalar): New define_subst.
	(maskz_scalar_name): New subst_attr.
	(maskz_scalar_op5): Ditto.
	(round_saeonly_maskz_scalar_op5): Ditto.
	(round_saeonly_maskz_scalar_operand5): Ditto.

2021-06-30  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags):
	Increase code CSECT alignment to at least 32 bytes.
	* config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte
	alignment designation.

2021-06-29  Sergei Trofimovich  <siarheit@google.com>

	* doc/generic.texi: Fix s/net yet/not yet/ typo.

2021-06-29  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101254
	* range-op.cc (operator_minus::op1_op2_relation_effect): Check for
	wrapping/non-wrapping when setting the result range.

2021-06-29  Andrew MacLeod  <amacleod@redhat.com>

	* value-query.cc (gimple_range_global): Allow phis.

2021-06-29  Andrew MacLeod  <amacleod@redhat.com>

	* vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt.
	(simplify_using_ranges::op_with_boolean_value_range_p): Add a
	statement for location context.
	(check_for_binary_op_overflow): Ditto.
	(simplify_using_ranges::get_vr_for_comparison): Ditto.
	(simplify_using_ranges::compare_name_with_value): Ditto.
	(simplify_using_ranges::compare_names): Ditto.
	(vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto.
	(simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto.
	(simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto.
	(simplify_using_ranges::simplify_internal_call_using_ranges): Ditto.
	(simplify_using_ranges::two_valued_val_range_p): Ditto.
	(simplify_using_ranges::simplify): Ditto.
	* vr-values.h: Adjust prototypes.

2021-06-29  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/95046
	* config/i386/mmx.md (vec_addsubv2sf3): New insn pattern.

2021-06-29  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.c (gcn_init_libfuncs): New function.
	(TARGET_INIT_LIBFUNCS): Define target hook using above function.
	* config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4
	otherwise.
	(LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions.
	(MAX_FIXED_MODE_SIZE): Change to 128.

2021-06-29  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant.
	(s_mnemonic): Add clrsb.
	(gcn_flbit<mode>_int): Add insn pattern for SImode/DImode.
	(clrsb<mode>2): Add expander for SImode/DImode.

2021-06-29  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm,
	muldi3): Add patterns.

2021-06-29  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander.
	(<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns.

2021-06-29  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC.

2021-06-29  Joseph Myers  <joseph@codesourcery.com>

	* btfout.c, ctfout.c: Include "memmodel.h".

2021-06-29  Tobias Burnus  <tobias@codesourcery.com>

	* gcc.c (check_offload_target_name): Cast len argument to
	%q.*s to 'int'; avoid -Wstringop-truncation warning.

2021-06-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_optimize_slp): Forward propagate
	to "any" permute nodes and relax "any" permute proapgation
	during iterative backward propagation.

2021-06-29  Tobias Burnus  <tobias@codesourcery.com>

	PR other/67300
	* common.opt (-foffload=): Update description.
	(-foffload-options=): New.
	* doc/invoke.texi (C Language Options): Document
	-foffload and -foffload-options.
	* gcc.c (check_offload_target_name): New, split off from
	handle_foffload_option.
	(check_foffload_target_names): New.
	(handle_foffload_option): Handle -foffload=default.
	(driver_handle_option): Update for -foffload-options.
	* lto-opts.c (lto_write_options): Use -foffload-options
	instead of -foffload.
	* lto-wrapper.c (merge_and_complain, append_offload_options):
	Likewise.
	* opts.c (common_handle_option): Likewise.

2021-06-29  Tobias Burnus  <tobias@codesourcery.com>

	* doc/invoke.texi (C Language Options): Sort options
	alphabetically in optlist and also the description itself.
	Remove leftover -fallow-single-precision from and add missing
	-fgnu-tm to the optlist.

2021-06-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (slpg_vertex::visited): Remove.
	(vect_slp_perms_eq): Handle -1 permutes.
	(vect_optimize_slp): Rewrite permute propagation.

2021-06-29  Jakub Jelinek  <jakub@redhat.com>

	PR c++/101210
	* match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't
	perform the optimization in GENERIC when sanitizing and x has a
	reference type.

2021-06-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101242
	* tree-vect-slp.c (vect_slp_build_vertices): Force-add
	PHIs with not represented initial values as leafs.

2021-06-29  Jan-Benedict Glaw  <jbglaw@getslash.de>

	* config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning.
	* config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove
	"register" keyword.
	(pdp11_initial_elimination_offset) Remove unused variable.
	(pdp11_cmp_length) Ditto.
	(pdp11_insn_cost): Ditto, and fix signedness warning.

2021-06-29  David Edelsohn  <dje.gcc@gmail.com>

	* btfout.c: Include tm_p.h.
	* ctfout.c: Same.

2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>

	* config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as
	frame related.
	(bpf_expand_epilogue): Likewise.
	* config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0.
	Do not define DBX_DEBUGGING_INFO.

2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>

	* doc/invoke.texi: Document the CTF and BTF debug info options.

2021-06-28  Indu Bhagat  <indu.bhagat@oracle.com>
	    David Faust  <david.faust@oracle.com>
	    Jose E. Marchesi  <jose.marchesi@oracle.com>
	    Weimin Pan  <weimin.pan@oracle.com>

	* Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to
	GTFILES.  Add new object files.
	* common.opt: Add CTF and BTF debug info options.
	* btfout.c: New file.
	* ctfc.c: Likewise.
	* ctfc.h: Likewise.
	* ctfout.c: Likewise.
	* dwarf2ctf.c: Likewise.
	* dwarf2ctf.h: Likewise.
	* dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and
	BTF_DEBUG.
	* dwarf2out.c (dwarf2out_source_line): Likewise.
	(dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to
	be generated.
	(debug_format_do_cu): New function.
	(dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for
	them if	requested.
	Include dwarf2ctf.c.
	* final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug
	formats.
	* flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG.
	(CTF_DEBUG): New bitmask.
	(BTF_DEBUG): Likewise.
	(enum ctf_debug_info_levels): New enum.
	* gengtype.c (open_base_files): Handle ctfc.h.
	(main): Handle uint32_t type.
	* flags.h (btf_debuginfo_p): New definition.
	(dwarf_based_debuginfo_p): Likewise.
	* opts.c (debug_type_names): Add entries for CTF and BTF.
	(btf_debuginfo_p): New function.
	(dwarf_based_debuginfo_p): Likewise.
	(common_handle_option): Handle -gctfN and -gbtf options.
	(set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate.
	* toplev.c (process_options): Inform the user and ignore -gctfLEVEL if
	frontend is not C.

2021-06-28  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* dwarf2out.c (AT_class): Function is no longer static.
	(AT_int): Likewise.
	(AT_unsigned): Likewise.
	(AT_loc): Likewise.
	(get_AT): Likewise.
	(get_AT_string): Likewise.
	(get_AT_flag): Likewise.
	(get_AT_unsigned): Likewise.
	(get_AT_ref): Likewise.
	(new_die_raw): Likewise.
	(lookup_decl_die): Likewise.
	(base_type_die): Likewise.
	(add_name_attribute): Likewise.
	(add_AT_int): Likewise.
	(add_AT_unsigned): Likewise.
	(add_AT_loc): Likewise.
	(dw_get_die_tag): New function.
	(dw_get_die_child): Likewise.
	(dw_get_die_sib): Likewise.
	(struct dwarf_file_data): Move from here to dwarf2out.h
	(struct dw_attr_struct): Likewise.
	* dwarf2out.h: Analogous changes.

2021-06-28  Martin Jambor  <mjambor@suse.cz>

	PR ipa/93385
	* ipa-param-manipulation.h (class ipa_param_body_adjustments): New
	members m_dead_stmts and m_dead_ssas.
	* ipa-param-manipulation.c
	(ipa_param_body_adjustments::mark_dead_statements): New function.
	(ipa_param_body_adjustments::common_initialization): Call it on
	all removed but not split parameters.
	(ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
	new mwmbers.
	(ipa_param_body_adjustments::modify_call_stmt): Remove arguments that
	are dead.
	* tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset
	dead debug statements.
	(copy_phis_for_bb): Do not copy dead PHI nodes.

2021-06-28  Martin Jambor  <mjambor@suse.cz>

	PR ipa/93385
	* symtab-clones.h (clone_info): Removed member param_adjustments.
	* ipa-param-manipulation.h: Adjust initial comment to reflect how we
	deal with pass-through splits now.
	(ipa_param_performed_split): Removed.
	(ipa_param_adjustments::modify_call): Adjusted parameters.
	(class ipa_param_body_adjustments): Adjusted parameters of
	register_replacement, modify_gimple_stmt and modify_call_stmt.
	(ipa_verify_edge_has_no_modifications): Declare.
	(ipa_edge_modifications_finalize): Declare.
	* cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove
	performed_splits processing, pas only edge to padjs->modify_call,
	check that call arguments were not modified if they should not have
	been.
	* cgraphclones.c (cgraph_node::create_clone): Do not copy performed
	splits.
	* ipa-param-manipulation.c (struct pass_through_split_map): New type.
	(ipa_edge_modification_info): Likewise.
	(ipa_edge_modification_sum): Likewise.
	(ipa_edge_modifications): New edge summary.
	(ipa_verify_edge_has_no_modifications): New function.
	(transitive_split_p): Removed.
	(transitive_split_map): Likewise.
	(init_transitive_splits): Likewise.
	(ipa_param_adjustments::modify_call): Adjusted to use the new edge
	summary instead of performed_splits.
	(ipa_param_body_adjustments::register_replacement): Drop dummy
	parameter, set base_index of the created ipa_param_body_replacement.
	(phi_arg_will_live_p): New function.
	(ipa_param_body_adjustments::common_initialization): Do not create
	IPA_SRA dummy decls.
	(simple_tree_swap_info): Removed.
	(remap_split_decl_to_dummy): Likewise.
	(record_argument_state_1): New function.
	(record_argument_state): Likewise.
	(ipa_param_body_adjustments::modify_call_stmt): New parameter
	orig_stmt.  Do not work with dummy decls, save necessary info about
	changes to ipa_edge_modifications.
	(ipa_param_body_adjustments::modify_gimple_stmt): New parameter
	orig_stmt, pass it to modify_call_stmt.
	(ipa_param_body_adjustments::modify_cfun_body): Adjust call to
	modify_gimple_stmt.
	(ipa_edge_modifications_finalize): New function.
	* tree-inline.c (remap_gimple_stmt): Pass original statement to
	modify_gimple_stmt.
	(copy_phis_for_bb): Do not copy dead PHI nodes.
	(expand_call_inline): Do not remap performed_splits.
	(update_clone_info): Likewise.
	* toplev.c: Include ipa-param-manipulation.h.
	(toplev::finalize): Call ipa_edge_modifications_finalize.

2021-06-28  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range
	info if we're the only things setting the target PHI.
	(value_replacement): Don't duplicate range here.
	(minmax_replacement): Likewise.

2021-06-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101229
	* gimple-walk.c (gimple_walk_op): Handle PHIs.

2021-06-28  Martin Liska  <mliska@suse.cz>

	* config/v850/v850.c (construct_dispose_instruction): Allocate
	a bigger buffer.
	(construct_prepare_instruction): Likewise.

2021-06-28  Martin Liska  <mliska@suse.cz>

	* config/v850/v850.c (v850_option_override): Build default
	target node.
	(v850_can_inline_p): New.  Allow MASK_PROLOG_FUNCTION to be
	ignored for inlining.
	(TARGET_CAN_INLINE_P): New.

2021-06-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101207
	* tree-vect-slp.c (vect_optimize_slp): Do BB reduction
	permute eliding for load permutations properly.

2021-06-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101173
	* gimple-loop-interchange.cc
	(tree_loop_interchange::valid_data_dependences): Disallow outer
	loop dependence distance of zero.

2021-06-28  liuhongt  <hongtao.liu@intel.com>

	PR target/100648
	* config/i386/sse.md (*avx_cmp<mode>3_lt): New
	define_insn_and_split.
	(*avx_cmp<mode>3_ltint): Ditto.
	(*avx2_pcmp<mode>3_3): Ditto.
	(*avx2_pcmp<mode>3_4): Ditto.
	(*avx2_pcmp<mode>3_5): Ditto.

2021-06-28  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256,
	IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256,
	IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS,
	IX86_BUILTIN_PBLENDVB128): Replace icode with
	CODE_FOR_nothing.
	* config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv
	builtins.
	* config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not):
	New pre_reload splitter.

2021-06-27  Andrew Pinski  <apinski@marvell.com>

	PR middle-end/101230
	* fold-const.c (fold_ternary_loc): Check
	the return value of invert_tree_comparison.

2021-06-27  David Edelsohn  <dje.gcc@gmail.com>

	* config.gcc: Add SPDX License Identifier.
	(powerpc-ibm-aix789): Default to aix73.h.
	(powerpc-ibm-aix7.2.*.*): New stanza.
	* config/rs6000/aix72.h: Add SPDX License Identifier.
	* config/rs6000/aix73.h: New file.

2021-06-26  Jason Merrill  <jason@redhat.com>

	* except.c: #include "dwarf2.h" instead of "dwarf2out.h".

2021-06-26  Andrew Pinski  <apinski@marvell.com>

	* genmatch.c (lower_cond): Copy for_subst_vec
	for the simplify also.
	(lower): Swap the order for lower_for and lower_cond.

2021-06-26  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (match_simplify_replacement): Reset
	flow senatitive info on the moved ssa set.

2021-06-26  Andrew Pinski  <apinski@marvell.com>

	* fold-const.c (fold_cond_expr_with_comparison):
	Exand arg0 into comp_code, arg00, and arg01.
	(fold_ternary_loc): Use invert_tree_comparison
	instead of fold_invert_truthvalue for the case
	where we have A CMP B ? C : A.

2021-06-25  Martin Sebor  <msebor@redhat.com>

	PR middle-end/101216
	* calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant.

2021-06-25  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT.

2021-06-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101202
	* tree-vect-slp.c (vect_optimize_slp): Explicitely handle
	failed nodes.

2021-06-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp-patterns.c (addsub_pattern::build): Copy
	STMT_VINFO_REDUC_DEF from the original representative.

2021-06-25  Martin Sebor  <msebor@redhat.com>

	* builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING,
	gimple_no_warning_p and gimple_set_no_warning with
	warning_suppressed_p, and suppress_warning.
	(c_strlen): Same.
	(maybe_warn_for_bound): Same.
	(warn_for_access): Same.
	(check_access): Same.
	(expand_builtin_strncmp): Same.
	(fold_builtin_varargs): Same.
	* calls.c (maybe_warn_nonstring_arg): Same.
	(maybe_warn_rdwr_sizes): Same.
	* cfgexpand.c (expand_call_stmt): Same.
	* cgraphunit.c (check_global_declaration): Same.
	* fold-const.c (fold_undefer_overflow_warnings): Same.
	(fold_truth_not_expr): Same.
	(fold_unary_loc): Same.
	(fold_checksum_tree): Same.
	* gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same.
	(array_bounds_checker::check_mem_ref): Same.
	(array_bounds_checker::check_addr_expr): Same.
	(array_bounds_checker::check_array_bounds): Same.
	* gimple-expr.c (copy_var_decl): Same.
	* gimple-fold.c (gimple_fold_builtin_strcpy): Same.
	(gimple_fold_builtin_strncat): Same.
	(gimple_fold_builtin_stxcpy_chk): Same.
	(gimple_fold_builtin_stpcpy): Same.
	(gimple_fold_builtin_sprintf): Same.
	(fold_stmt_1): Same.
	* gimple-ssa-isolate-paths.c (diag_returned_locals): Same.
	* gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
	* gimple-ssa-sprintf.c (handle_printf_call): Same.
	* gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same.
	* gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same.
	* gimple-ssa-warn-restrict.h: Adjust declarations.
	(maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING,
	gimple_no_warning_p and gimple_set_no_warning with
	warning_suppressed_p, and suppress_warning.
	(check_call): Same.
	(check_bounds_or_overlap): Same.
	* gimple.c (gimple_build_call_from_tree): Same.
	* gimplify.c (gimplify_return_expr): Same.
	(gimplify_cond_expr): Same.
	(gimplify_modify_expr_complex_part): Same.
	(gimplify_modify_expr): Same.
	(gimple_push_cleanup): Same.
	(gimplify_expr): Same.
	* omp-expand.c (expand_omp_for_generic): Same.
	(expand_omp_taskloop_for_outer): Same.
	* omp-low.c (lower_rec_input_clauses): Same.
	(lower_lastprivate_clauses): Same.
	(lower_send_clauses): Same.
	(lower_omp_target): Same.
	* tree-cfg.c (pass_warn_function_return::execute): Same.
	* tree-complex.c (create_one_component_var): Same.
	* tree-inline.c (remap_gimple_op_r): Same.
	(copy_tree_body_r): Same.
	(declare_return_variable): Same.
	(expand_call_inline): Same.
	* tree-nested.c (lookup_field_for_decl): Same.
	* tree-sra.c (create_access_replacement): Same.
	(generate_subtree_copies): Same.
	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same.
	* tree-ssa-forwprop.c (combine_cond_expr_cond): Same.
	* tree-ssa-loop-ch.c (ch_base::copy_headers): Same.
	* tree-ssa-loop-im.c (execute_sm): Same.
	* tree-ssa-phiopt.c (cond_store_replacement): Same.
	* tree-ssa-strlen.c (maybe_warn_overflow): Same.
	(handle_builtin_strcpy): Same.
	(maybe_diag_stxncpy_trunc): Same.
	(handle_builtin_stxncpy_strncat): Same.
	(handle_builtin_strcat): Same.
	* tree-ssa-uninit.c (get_no_uninit_warning): Same.
	(set_no_uninit_warning): Same.
	(uninit_undefined_value_p): Same.
	(warn_uninit): Same.
	(maybe_warn_operand): Same.
	* tree-vrp.c (compare_values_warnv): Same.
	* vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same.
	(test_for_singularity): Same.
	* gimple.h (warning_suppressed_p): New function.
	(suppress_warning): Same.
	(copy_no_warning): Same.
	(gimple_set_block): Call gimple_set_location.
	(gimple_set_location): Call copy_warning.

2021-06-25  Martin Sebor  <msebor@redhat.com>

	* tree.h (warning_suppressed_at, copy_warning,
	warning_suppressed_p, suppress_warning): New functions.

2021-06-25  Martin Sebor  <msebor@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostic-spec.o.
	* gengtype.c (open_base_files): Add diagnostic-spec.h.
	* diagnostic-spec.c: New file.
	* diagnostic-spec.h: New file.
	* tree.h (no_warning, all_warnings, suppress_warning_at): New
	declarations.
	* warning-control.cc: New file.

2021-06-25  liuhongt  <hongtao.liu@intel.com>

	PR target/101185
	* config/i386/i386.c (x86_order_regs_for_local_alloc):
	Revert r12-1669.

2021-06-24  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101189
	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass
	LHS range of condition to postfold routine.
	(fold_using_range::postfold_gcond_edges): Only process the TRUE or
	FALSE edge if the LHS range supports it being taken.
	* gimple-range-fold.h (postfold_gcond_edges): Add range parameter.

2021-06-24  Andrew MacLeod  <amacleod@redhat.com>

	* value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks.
	(relation_oracle::find_relation_block): Check correct bitmap.
	(relation_oracle::dump): Do not dump NULL blocks.

2021-06-24  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::propagate_cache): Call
	range_on_edge instead of manually calculating.

2021-06-24  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc: Fix comment.

2021-06-24  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89021
	* config/i386/i386-expand.c (ix86_expand_sse_unpack):
	Handle V8QI and V4HI modes.
	* config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2):
	New insn pattern.
	(sse4_1_<any_extend:code>v4qiv4hi2): Ditto.
	(mmxpackmode): New mode attribute.
	(vec_pack_trunc_<mmxpackmode:mode>): New expander.
	(mmxunpackmode): New mode attribute.
	(vec_unpacks_lo_<mmxunpackmode:mode>): New expander.
	(vec_unpacks_hi_<mmxunpackmode:mode>): Ditto.
	(vec_unpacku_lo_<mmxunpackmode:mode>): Ditto.
	(vec_unpacku_hi_<mmxunpackmode:mode>): Ditto.
	* config/i386/i386.md (extsuffix): Move from ...
	* config/i386/sse.md: ... here.

2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here..
	(dwarf2out_finish): ...instead of here.

2021-06-24  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac (--gdwarf-5 option): Use objdump instead of readelf.
	(working --gdwarf-4/--gdwarf-5 for all sources): Likewise.
	(--gdwarf-4 not refusing generated .debug_line): Adjust for Windows.
	* configure: Regenerate.

2021-06-24  Richard Biener  <rguenther@suse.de>

	* config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3,
	vec_addsubv8sf3, vec_addsubv4sf3): Merge into ...
	(vec_addsub<mode>3): ... using a new addsub_cst mode attribute.

2021-06-24  Richard Biener  <rguenther@suse.de>

	* config/i386/sse.md (avx_addsubv4df3): Rename to
	vec_addsubv4df3.
	(avx_addsubv8sf3): Rename to vec_addsubv8sf3.
	(sse3_addsubv2df3): Rename to vec_addsubv2df3.
	(sse3_addsubv4sf3): Rename to vec_addsubv4sf3.
	* config/i386/i386-builtin.def: Adjust.
	* internal-fn.def (VEC_ADDSUB): New internal optab fn.
	* optabs.def (vec_addsub_optab): New optab.
	* tree-vect-slp-patterns.c (class addsub_pattern): New.
	(slp_patterns): Add addsub_pattern.
	* tree-vect-slp.c (vect_optimize_slp): Disable propagation
	across CFN_VEC_ADDSUB.
	* tree-vectorizer.h (vect_pattern::vect_pattern): Make
	m_ops optional.
	* doc/md.texi (vec_addsub<mode>3): Document.

2021-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101170
	* df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs
	where regno + subreg_regno_offset wraps around use 0 as starting
	regno.

2021-06-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101172
	* stor-layout.c (finish_bitfield_representative): If nextf has
	error_mark_node type, set repr type to error_mark_node too.

2021-06-24  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.c (s390_function_profiler): Ignore labelno
	parameter.
	* config/s390/s390.h (NO_PROFILE_COUNTERS): Define.

2021-06-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_optimize_slp): Do not propagate
	across operations that have different semantics on different
	lanes.

2021-06-24  Jakub Jelinek  <jakub@redhat.com>

	* tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP.
	* gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses
	with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification
	of non-decl OMP_CLAUSE_DECL.  For OMP_CLAUSE_IN_REDUCTION on
	OMP_TARGET user outer_ctx instead of ctx for placeholders and
	initializer/combiner gimplification.
	* omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION
	on target constructs.
	(lower_rec_input_clauses): Likewise.
	(lower_omp_target): Likewise.
	* omp-expand.c (expand_omp_target): Temporarily ignore nowait clause
	on target if in_reduction is present.

2021-06-24  Kewen Lin  <linkw@linux.ibm.com>

	* tree-predcom.c (class pcom_worker): New class.
	(release_chain): Renamed to...
	(pcom_worker::release_chain): ...this.
	(release_chains): Renamed to...
	(pcom_worker::release_chains): ...this.
	(aff_combination_dr_offset): Renamed to...
	(pcom_worker::aff_combination_dr_offset): ...this.
	(determine_offset): Renamed to...
	(pcom_worker::determine_offset): ...this.
	(class comp_ptrs): New class.
	(split_data_refs_to_components): Renamed to...
	(pcom_worker::split_data_refs_to_components): ...this,
	and update with class comp_ptrs.
	(suitable_component_p): Renamed to...
	(pcom_worker::suitable_component_p): ...this.
	(filter_suitable_components): Renamed to...
	(pcom_worker::filter_suitable_components): ...this.
	(valid_initializer_p): Renamed to...
	(pcom_worker::valid_initializer_p): ...this.
	(find_looparound_phi): Renamed to...
	(pcom_worker::find_looparound_phi): ...this.
	(add_looparound_copies): Renamed to...
	(pcom_worker::add_looparound_copies): ...this.
	(determine_roots_comp): Renamed to...
	(pcom_worker::determine_roots_comp): ...this.
	(determine_roots): Renamed to...
	(pcom_worker::determine_roots): ...this.
	(single_nonlooparound_use): Renamed to...
	(pcom_worker::single_nonlooparound_use): ...this.
	(remove_stmt): Renamed to...
	(pcom_worker::remove_stmt): ...this.
	(execute_pred_commoning_chain): Renamed to...
	(pcom_worker::execute_pred_commoning_chain): ...this.
	(execute_pred_commoning): Renamed to...
	(pcom_worker::execute_pred_commoning): ...this.
	(struct epcc_data): New member worker.
	(execute_pred_commoning_cbck): Call execute_pred_commoning
	with pcom_worker pointer.
	(find_use_stmt): Renamed to...
	(pcom_worker::find_use_stmt): ...this.
	(find_associative_operation_root): Renamed to...
	(pcom_worker::find_associative_operation_root): ...this.
	(find_common_use_stmt): Renamed to...
	(pcom_worker::find_common_use_stmt): ...this.
	(combinable_refs_p): Renamed to...
	(pcom_worker::combinable_refs_p): ...this.
	(reassociate_to_the_same_stmt): Renamed to...
	(pcom_worker::reassociate_to_the_same_stmt): ...this.
	(stmt_combining_refs): Renamed to...
	(pcom_worker::stmt_combining_refs): ...this.
	(combine_chains): Renamed to...
	(pcom_worker::combine_chains): ...this.
	(try_combine_chains): Renamed to...
	(pcom_worker::try_combine_chains): ...this.
	(prepare_initializers_chain): Renamed to...
	(pcom_worker::prepare_initializers_chain): ...this.
	(prepare_initializers): Renamed to...
	(pcom_worker::prepare_initializers): ...this.
	(prepare_finalizers_chain): Renamed to...
	(pcom_worker::prepare_finalizers_chain): ...this.
	(prepare_finalizers): Renamed to...
	(pcom_worker::prepare_finalizers): ...this.
	(tree_predictive_commoning_loop): Renamed to...
	(pcom_worker::tree_predictive_commoning_loop): ...this, adjust
	some calls and remove some cleanup code.
	(tree_predictive_commoning): Adjusted to use pcom_worker instance.
	(static variable looparound_phis): Remove.
	(static variable name_expansions): Remove.

2021-06-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (slpg_vertex): New struct.
	(vect_slp_build_vertices): Adjust.
	(vect_optimize_slp): Likewise.  Maintain an outgoing permute
	and a materialized one.

2021-06-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101105
	* tree-vect-data-refs.c (vect_prune_runtime_alias_test_list):
	Only ignore steps when they are equal or scalar order is preserved.

2021-06-24  liuhongt  <hongtao.liu@intel.com>

	PR target/98434
	* config/i386/i386-expand.c (ix86_expand_vec_interleave):
	Adjust comments for ix86_expand_vecop_qihi2.
	(ix86_expand_vecmul_qihi): Renamed to ..
	(ix86_expand_vecop_qihi2): Adjust function prototype to
	support shift operation, add static to definition.
	(ix86_expand_vec_shift_qihi_constant): Add static to definition.
	(ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and
	ix86_expand_vec_shift_qihi_constant.
	* config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted.
	(ix86_expand_vec_shift_qihi_constant): Deleted.
	* config/i386/sse.md (VI12_256_512_AVX512VL): New mode
	iterator.
	(mulv8qi3): Call ix86_expand_vecop_qihi directly, add
	condition TARGET_64BIT.
	(mul<mode>3): Ditto.
	(<insn><mode>3): Ditto.
	(vlshr<mode>3): Extend to support avx512 vlshr.
	(v<insn><mode>3): New expander for
	vashr/vlshr/vashl.
	(v<insn>v8qi3): Ditto.
	(vashrv8hi3<mask_name>): Renamed to ..
	(vashr<mode>3): And extend to support V16QImode for avx512.
	(vashrv16qi3): Deleted.
	(vashrv2di3<mask_name>): Extend expander to support avx512
	instruction.

2021-06-23  Dimitar Dimitrov  <dimitar@dinux.eu>

	* doc/lto.texi (Design Overview): Update that slim objects are
	the default.

2021-06-23  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out
	of OTHER_POWER10_MASKS so it will not be enabled by default.

2021-06-23  Richard Biener  <rguenther@suse.de>
	    Martin Jambor  <mjambor@suse.cz>

	* tree-inline.c (setup_one_parameter): Set TREE_READONLY of the
	param replacement unconditionally.  Adjust comment.

2021-06-23  Andrew MacLeod  <amacleod@redhat.com>

	* Makefile.in (OBJS): Add gimple-range-fold.o
	* gimple-range-fold.cc: New.
	* gimple-range-fold.h: New.
	* gimple-range-gori.cc (gimple_range_calc_op1): Move to here.
	(gimple_range_calc_op2): Ditto.
	* gimple-range-gori.h: Move prototypes to here.
	* gimple-range.cc: Adjust include files.
	(fur_source:fur_source): Relocate to gimple-range-fold.cc.
	(fur_source::get_operand): Ditto.
	(fur_source::get_phi_operand): Ditto.
	(fur_source::query_relation): Ditto.
	(fur_source::register_relation): Ditto.
	(class fur_edge): Ditto.
	(fur_edge::fur_edge): Ditto.
	(fur_edge::get_operand): Ditto.
	(fur_edge::get_phi_operand): Ditto.
	(fur_stmt::fur_stmt): Ditto.
	(fur_stmt::get_operand): Ditto.
	(fur_stmt::get_phi_operand): Ditto.
	(fur_stmt::query_relation): Ditto.
	(class fur_depend): Relocate to gimple-range-fold.h.
	(fur_depend::fur_depend): Relocate to gimple-range-fold.cc.
	(fur_depend::register_relation): Ditto.
	(fur_depend::register_relation): Ditto.
	(class fur_list): Ditto.
	(fur_list::fur_list): Ditto.
	(fur_list::get_operand): Ditto.
	(fur_list::get_phi_operand): Ditto.
	(fold_range): Ditto.
	(adjust_pointer_diff_expr): Ditto.
	(gimple_range_adjustment): Ditto.
	(gimple_range_base_of_assignment): Ditto.
	(gimple_range_operand1): Ditto.
	(gimple_range_operand2): Ditto.
	(gimple_range_calc_op1): Relocate to gimple-range-gori.cc.
	(gimple_range_calc_op2): Ditto.
	(fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc.
	(fold_using_range::range_of_range_op): Ditto.
	(fold_using_range::range_of_address): Ditto.
	(fold_using_range::range_of_phi): Ditto.
	(fold_using_range::range_of_call): Ditto.
	(fold_using_range::range_of_builtin_ubsan_call): Ditto.
	(fold_using_range::range_of_builtin_call): Ditto.
	(fold_using_range::range_of_cond_expr): Ditto.
	(fold_using_range::range_of_ssa_name_with_loop_info): Ditto.
	(fold_using_range::relation_fold_and_or): Ditto.
	(fold_using_range::postfold_gcond_edges): Ditto.
	* gimple-range.h: Add gimple-range-fold.h to include files. Change
	GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H.
	(gimple_range_handler): Relocate to gimple-range-fold.h.
	(gimple_range_ssa_p): Ditto.
	(range_compatible_p): Ditto.
	(class fur_source): Ditto.
	(class fur_stmt): Ditto.
	(class fold_using_range): Ditto.
	(gimple_range_calc_op1): Relocate to gimple-range-gori.h
	(gimple_range_calc_op2): Ditto.

2021-06-23  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101148
	PR tree-optimization/101014
	* gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
	(ranger_cache::~ranger_cache): Adjust.
	(ranger_cache::block_range): Check if propagation disallowed.
	(ranger_cache::propagate_cache): Disallow propagation if new value
	can't be stored properly.
	* gimple-range-cache.h (ranger_cache::m_propfail): New member.

2021-06-23  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype.
	(sbr_vector::set_bb_range): Return true.
	(class sbr_sparse_bitmap): Adjust.
	(sbr_sparse_bitmap::set_bb_range): Return value.
	(block_range_cache::set_bb_range): Return value.
	(ranger_cache::propagate_cache): Use return value to print msg.
	* gimple-range-cache.h (class block_range_cache): Adjust.

2021-06-23  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.cc (dump_bb): Use range_on_edge from the cache.

2021-06-23  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn>
	so this pattern can be used for test/compare removal.  Pass
	current insn to compute_logical_op_length and output_logical_op.
	* config/h8300/h8300.c (compute_logical_op_cc): Remove.
	(h8300_and_costs): Add argument to compute_logical_op_length.
	(output_logical_op): Add new argument.  Use it to determine if the
	condition codes are used and adjust the output accordingly.
	(compute_logical_op_length): Add new argument and update length
	computations when condition codes are used.
	* config/h8300/h8300-protos.h (compute_logical_op_length): Update
	prototype.
	(output_logical_op): Likewise.

2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89021
	* config/i386/i386-expand.c (expand_vec_perm_pshufb):
	Handle 64bit modes for TARGET_XOP.  Use indirect gen_* functions.
	* config/i386/mmx.md (mmx_ppermv64): New insn pattern.
	* config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ...
	* config/i386/sse.md (unspec): ... here.

2021-06-23  Martin Liska  <mliska@suse.cz>

	PR target/98636
	* optc-save-gen.awk: Put back arm_fp16_format to
	checked_options.

2021-06-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101175
	* config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX.
	(bsr): Ditto.
	(*bsrhi): Remove.
	(clz<mode>2): Update RTX pattern for additions.

2021-06-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101167
	* omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs
	and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set.

2021-06-22  Sergei Trofimovich  <siarheit@google.com>

	* doc/rtl.texi: drop unbalanced parenthesis.

2021-06-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/101156
	* gimplify.c (gimplify_expr): Remove premature incorrect
	optimization.

2021-06-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/101159
	* tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some
	comment typos.

2021-06-22  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101160
	* function.c (assign_parms): For decl_result with TYPE_EMPTY_P type
	clear crtl->return_rtx instead of keeping it referencing a pseudo.

2021-06-22  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/101162
	* fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer
	types.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (range_relational_tests): New.
	(range_op_tests): Call range_relational_tests.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_cast::lhs_op1_relation): New.
	(operator_identity::lhs_op1_relation): Mew.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_minus::op1_op2_relation_effect): New.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_plus::lhs_op1_relation): New.
	(operator_plus::lhs_op2_relation): New.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ranger_cache): Create a
	relation_oracle if dominators exist.
	(ranger_cache::~ranger_cache): Dispose of oracle.
	(ranger_cache::dump_bb): Dump oracle.
	* gimple-range.cc (fur_source::fur_source): New.
	(fur_source::get_operand): Use mmeber query.
	(fur_source::get_phi_operand): Use member_query.
	(fur_source::query_relation): New.
	(fur_source::register_dependency): Delete.
	(fur_source::register_relation): New.
	(fur_edge::fur_edge): Adjust.
	(fur_edge::get_phi_operand): Fix comment.
	(fur_edge::query): Delete.
	(fur_stmt::fur_stmt): Adjust.
	(fur_stmt::query): Delete.
	(fur_depend::fur_depend): Adjust.
	(fur_depend::register_relation): New.
	(fur_depend::register_relation): New.
	(fur_list::fur_list): Adjust.
	(fur_list::get_operand): Use member query.
	(fold_using_range::range_of_range_op): Process and query relations.
	(fold_using_range::range_of_address): Adjust dependency call.
	(fold_using_range::range_of_phi): Ditto.
	(gimple_ranger::gimple_ranger): New.  Use ranger_ache oracle.
	(fold_using_range::relation_fold_and_or): New.
	(fold_using_range::postfold_gcond_edges): New.
	* gimple-range.h (class gimple_ranger): Adjust.
	(class fur_source): Adjust members.
	(class fur_stmt): Ditto.
	(class fold_using_range): Ditto.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (range_operator::wi_fold): Apply relation effect.
	(range_operator::fold_range): Adjust and apply relation effect.
	(*::fold_range): Add relation parameters.
	(*::op1_range): Ditto.
	(*::op2_range): Ditto.
	(range_operator::lhs_op1_relation): New.
	(range_operator::lhs_op2_relation): New.
	(range_operator::op1_op2_relation): New.
	(range_operator::op1_op2_relation_effect): New.
	(relop_early_resolve): New.
	(operator_equal::op1_op2_relation): New.
	(operator_equal::fold_range): Call relop_early_resolve.
	(operator_not_equal::op1_op2_relation): New.
	(operator_not_equal::fold_range): Call relop_early_resolve.
	(operator_lt::op1_op2_relation): New.
	(operator_lt::fold_range): Call relop_early_resolve.
	(operator_le::op1_op2_relation): New.
	(operator_le::fold_range): Call relop_early_resolve.
	(operator_gt::op1_op2_relation): New.
	(operator_gt::fold_range): Call relop_early_resolve.
	(operator_ge::op1_op2_relation): New.
	(operator_ge::fold_range): Call relop_early_resolve.
	* range-op.h (class range_operator): Adjust parameters and methods.

2021-06-22  Andrew MacLeod  <amacleod@redhat.com>

	* Makefile.in (OBJS): Add value-relation.o.
	* gimple-range.h: Adjust include files.
	* tree-data-ref.c: Adjust include file order.
	* value-query.cc (range_query::get_value_range): Default to no oracle.
	(range_query::query_relation): New.
	(range_query::query_relation): New.
	* value-query.h (class range_query): Adjust.
	* value-relation.cc: New.
	* value-relation.h: New.

2021-06-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101151
	* tree-ssa-sink.c (statement_sink_location): Expand irreducible
	region check.

2021-06-22  Jojo R  <rjiejie@linux.alibaba.com>

	* config/riscv/riscv.c (thead_c906_tune_info): New.
	(riscv_tune_info_table): Use new tune.

2021-06-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101158
	* tree-vect-slp.c (vect_build_slp_tree_1): Move same operand
	checking after checking for matching operation.

2021-06-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101159
	* tree-vect-patterns.c (vect_recog_popcount_pattern): Add
	missing NULL vectype check.

2021-06-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101154
	* tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access.

2021-06-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/11877
	* config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare.
	* config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable.
	* config/i386/i386.c (ix86_expand_prologue): Clear it.
	* config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx):
	Remove "" from match_operand.  Emit new insns using emit_move_insn and
	set ix86_last_zero_store_uid to INSN_UID of the last store.
	Add peephole2s for 1/2/4 stores of const0_rtx following previous
	successful peep2s.

2021-06-22  Martin Liska  <mliska@suse.cz>

	* auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format
	was changed.

2021-06-22  Martin Liska  <mliska@suse.cz>

	* gcov-io.h: Remove padding entries.

2021-06-22  liuhongt  <hongtao.liu@intel.com>

	PR tree-optimization/97770
	* tree-vect-patterns.c (vect_recog_popcount_pattern):
	New.
	(vect_recog_func vect_vect_recog_func_ptrs): Add new pattern.

2021-06-22  liuhongt  <hongtao.liu@intel.com>

	PR target/100267
	* config/i386/i386-builtin.def (BDESC): Adjust builtin name.
	* config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to ..
	(expand<mode>_mask): this ..
	(*expand<mode>_mask): New pre_reload splitter to transform
	v{,p}expand* to vmov* when mask is zero, all ones, or has all
	ones in it's lower part, otherwise still generate
	v{,p}expand*.

2021-06-22  liuhongt  <hongtao.liu@intel.com>

	PR target/100310
	* config/i386/i386-expand.c
	(ix86_expand_special_args_builtin): Keep constm1_operand only
	if it satisfies insn's operand predicate.

2021-06-21  Jason Merrill  <jason@redhat.com>

	PR target/88529
	* df-scan.c (df_ref_record): Check that regno < endregno.
	* function.c (assign_parms, expand_function_end): Do nothing with a
	TYPE_EMPTY_P result.

2021-06-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101120
	* tree-vect-data-refs.c (bump_vector_ptr): Fold the
	built increment.
	* tree-vect-slp.c (vect_transform_slp_perm_load): Add
	DR chain DCE capability.
	* tree-vectorizer.h (vect_transform_slp_perm_load): Adjust.
	* tree-vect-stmts.c (vectorizable_load): Remove unused
	loads in the DR chain for SLP.

2021-06-21  Jakub Jelinek  <jakub@redhat.com>

	PR inline-asm/100785
	* gimplify.c (gimplify_asm_expr): Don't diagnose errors if
	output or input operands were already error_mark_node.
	* cfgexpand.c (expand_asm_stmt): If errors are emitted,
	remove all inputs, outputs and clobbers from the asm and
	set template to "".

2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b.
	(vceq_s16): Likewise.
	(vceq_s32): Likewise.
	(vceq_u8): Likewise.
	(vceq_u16): Likewise.
	(vceq_u32): Likewise.
	(vceq_p8): Likewise.
	(vceqq_s8): Likewise.
	(vceqq_s16): Likewise.
	(vceqq_s32): Likewise.
	(vceqq_u8): Likewise.
	(vceqq_u16): Likewise.
	(vceqq_u32): Likewise.
	(vceqq_p8): Likewise.
	(vceq_f32): Gate __a == __b on __FAST_MATH__.
	(vceqq_f32): Likewise.
	(vceq_f16): Likewise.
	(vceqq_f16): Likewise.

2021-06-21  prathamesh.kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/97906
	* config/arm/iterators.md (NEON_VACMP): Remove.
	* config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE
	iterator.
	(neon_vca<cmp_op><mode>_insn): Likewise.
	(neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of
	NEON_VACMP.

2021-06-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101121
	* tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally
	when we just lack a stmt with the desired op when doing permutation.
	(vect_build_slp_tree): When caching a failed SLP build attempt
	assert that at least one lane is marked as not matching.

2021-06-21  liuhongt  <hongtao.liu@intel.com>

	PR target/101142
	* config/i386/i386.md: (*anddi_1): Disparage slightly the mask
	register alternative.
	(*and<mode>_1): Ditto.
	(*andqi_1): Ditto.
	(*andn<mode>_1): Ditto.
	(*<code><mode>_1): Ditto.
	(*<code>qi_1): Ditto.
	(*one_cmpl<mode>2_1): Ditto.
	(*one_cmplsi2_1_zext): Ditto.
	(*one_cmplqi2_1): Ditto.
	* config/i386/i386.c (x86_order_regs_for_local_alloc): Change
	the order of mask registers to be before general registers.

2021-06-21  Roger Sayle  <roger@nextmovesoftware.com>

	PR target/11877
	* config/i386/i386.md: New define_peephole2s to shrink writing
	1, 2 or 4 consecutive zeros to memory when optimizing for size.

2021-06-18  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF.
	* config/h8300/logical.md (<code><mode>3 logcial expander): Generate
	more efficient code when the source can be trivially simplified.

2021-06-18  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::range_of_def):  Calculate
	a range if global is not available.
	(ranger_cache::entry_range): Fallback to range_of_def.
	* gimple-range-cache.h (range_of_def): Adjust prototype.

2021-06-18  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/101014
	* gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor
	value list.
	(ranger_cache::~ranger_cache): Ditto.
	(ranger_cache::enable_new_values): Delete.
	(ranger_cache::push_poor_value): Delete.
	(ranger_cache::range_of_def): Remove poor value processing.
	(ranger_cache::entry_range): Ditto.
	(ranger_cache::fill_block_cache): Ditto.
	* gimple-range-cache.h (class ranger_cache): Remove poor value members.
	* gimple-range.cc (gimple_ranger::range_of_expr): Remove call.
	* gimple-range.h (class gimple_ranger): Adjust.

2021-06-18  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	PR target/100856
	* common/config/arm/arm-common.c (arm_canon_arch_option_1): New function
	derived from arm_canon_arch.
	(arm_canon_arch_option): Call it.
	(arm_canon_arch_multilib_option): New function.
	* config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup.
	* config/arm/arm.h (arm_canon_arch_multilib_option): New prototype.
	(CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro.
	(MULTILIB_ARCH_CANONICAL_SPECS): New macro.
	(DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS.
	* config/arm/arm.opt (mlibarch): New option.
	* config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use
	of march on RHS with mlibarch.

2021-06-18  Marcel Vollweiler  <marcel@codesourcery.com>

	* config.in: Regenerate.
	* config/gcn/gcn.c (print_operand_address): Fix for global_load assembler
	functions.
	* configure: Regenerate.
	* configure.ac: Fix for global_load assembler functions.

2021-06-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101112
	* tree-vect-slp.c (vect_slp_linearize_chain): Fix condition
	to lookup a pattern stmt def.

2021-06-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101062
	* stor-layout.c (finish_bitfield_layout): Don't add bitfield
	representatives in QUAL_UNION_TYPE.

2021-06-18  Andrew Pinski  <apinski@marvell.com>

	* tree-ssa-phiopt.c (replace_phi_edge_with_variable):
	Add counting of how many times it is done.
	(factor_out_conditional_conversion): Likewise.
	(match_simplify_replacement): Likewise.
	(value_replacement): Likewise.
	(spaceship_replacement): Likewise.
	(cond_store_replacement): Likewise.
	(cond_if_else_store_replacement_1): Likewise.
	(hoist_adjacent_loads): Likewise.

2021-06-18  Andrew Pinski  <apinski@marvell.com>

	* tree-cfg.c (verify_gimple_assign_unary): Reject point and offset
	types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR.
	(verify_gimple_assign_binary): Reject point and offset types on
	MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR,
	FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR,
	FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR.

2021-06-18  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA
	3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions.
	* config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator):
	New insns.

2021-06-17  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_logical_addsubf): Add
	earlyclobber to alts 0/1.
	(gen_addadd): Add earlyclobber to alts 0/1.
	* config/rs6000/fusion.md: Regenerate file.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cfgloopanal.c (get_loop_hot_path): Make path an auto_vec.

2021-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc: Comment cleanups.
	* gimple-range-gori.cc: Comment cleanups.
	* gimple-range.cc: Comment/spacing cleanups
	* value-range.h: Comment cleanups.

2021-06-17  H.J. Lu  <hjl.tools@gmail.com>

	PR target/100704
	* calls.c (expand_call): Replace PUSH_ARGS with
	targetm.calls.push_argument (0).
	(emit_library_call_value_1): Likewise.
	* defaults.h (PUSH_ARGS): Removed.
	(PUSH_ARGS_REVERSED): Replace PUSH_ARGS with
	targetm.calls.push_argument (0).
	* expr.c (block_move_libcall_safe_for_call_parm): Likewise.
	(emit_push_insn): Pass the number bytes to push to
	targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0.
	* hooks.c (hook_bool_uint_true): New.
	* hooks.h (hook_bool_uint_true): Likewise.
	* rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with
	targetm.calls.push_argument (0).
	* target.def (push_argument): Add a targetm.calls hook.
	* targhooks.c (default_push_argument): New.
	* targhooks.h (default_push_argument): Likewise.
	* config/bpf/bpf.h (PUSH_ARGS): Removed.
	* config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New.
	* config/cr16/cr16.h (PUSH_ARGS): Removed.
	* config/i386/i386.c (ix86_push_argument): New.
	(TARGET_PUSH_ARGUMENT): Likewise.
	* config/i386/i386.h (PUSH_ARGS): Removed.
	* config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New.
	* config/m32c/m32c.h (PUSH_ARGS): Removed.
	* config/nios2/nios2.h (PUSH_ARGS): Likewise.
	* config/pru/pru.h (PUSH_ARGS): Likewise.
	* doc/tm.texi.in: Remove PUSH_ARGS documentation.  Add
	TARGET_PUSH_ARGUMENT hook.
	* doc/tm.texi: Regenerated.

2021-06-17  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/97194
	* config/i386/i386-expand.c (expand_vector_set_var):
	Handle V2FS mode remapping.  Pass TARGET_MMX_WITH_SSE to
	ix86_expand_vector_init_duplicate.
	(ix86_expand_vector_init_duplicate): Emit insv_1 for
	QImode for !TARGET_PARTIAL_REG_STALL.
	* config/i386/predicates.md (vec_setm_mmx_operand): New predicate.
	* config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand
	as operand 2 predicate.  Call ix86_expand_vector_set_var
	for non-constant index operand.
	(vec_setv2si): Ditto.
	(vec_setv4hi): Ditto.
	(vec_setv8qi): ditto.

2021-06-17  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/100790
	* gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz
	code.

2021-06-17  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Use consistently -O1 instead of -O.

2021-06-17  Martin Liska  <mliska@suse.cz>

	* gcov-io.h: Update documentation entry about string format.

2021-06-17  Marius Hillenbrand  <mhillen@linux.ibm.com>

	PR target/100871
	* config/s390/vecintrin.h (vec_doublee): Fix to use
	  __builtin_s390_vflls.
	(vec_floate): Fix to use __builtin_s390_vflrd.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>.
	* dominance.h (get_dominated_to_depth): Likewise.
	(get_all_dominated_blocks): Likewise.
	* cfgcleanup.c (delete_unreachable_blocks): Adjust.
	* gcse.c (hoist_code): Likewise.
	* tree-cfg.c (remove_edge_and_dominated_blocks): Likewise.
	* tree-parloops.c (oacc_entry_exit_ok): Likewise.
	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
	* tree-ssa-phiprop.c (pass_phiprop::execute): Likewise.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* dominance.c (get_dominated_by_region): Return auto_vec<basic_block>.
	* dominance.h (get_dominated_by_region): Likewise.
	* tree-cfg.c (gimple_duplicate_sese_region): Adjust.
	(gimple_duplicate_sese_tail): Likewise.
	(move_sese_region_to_fn): Likewise.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* dominance.c (get_dominated_by): Return auto_vec<basic_block>.
	* dominance.h (get_dominated_by): Likewise.
	* auto-profile.c (afdo_find_equiv_class): Adjust.
	* cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise.
	* loop-unroll.c (unroll_loop_runtime_iterations): Likewise.
	* tree-cfg.c (test_linear_chain): Likewise.
	(test_diamond): Likewise.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>.
	* cfgloopanal.c (get_loop_hot_path): Likewise.
	* tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* cgraph.c (cgraph_node::collect_callers): Return
	auto_vec<cgraph_edge *>.
	* cgraph.h (cgraph_node::collect_callers): Likewise.
	* ipa-cp.c (create_specialized_node): Adjust.
	(decide_about_value): Likewise.
	(decide_whether_version_node): Likewise.
	* ipa-sra.c (process_isra_node_results): Likewise.

2021-06-17  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* vec.h (vl_ptr>::using_auto_storage): Handle null m_vec.
	(auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy
	constructor.
	(auto_vec<T, 0>::operator=): Define move assignment and delete copy
	assignment.

2021-06-17  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-range.cc (debug_seed_ranger): New.
	(dump_ranger): New.
	(debug_ranger): New.

2021-06-17  Richard Biener   <rguenther@suse.de>

	PR tree-optimization/54400
	* tree-vectorizer.h (enum slp_instance_kind): Add
	slp_inst_kind_bb_reduc.
	(reduction_fn_for_scalar_code): Declare.
	* tree-vect-data-refs.c (vect_slp_analyze_instance_dependence):
	Check SLP_INSTANCE_KIND instead of looking at the
	representative.
	(vect_slp_analyze_instance_alignment): Likewise.
	* tree-vect-loop.c (reduction_fn_for_scalar_code): Export.
	* tree-vect-slp.c (vect_slp_linearize_chain): Split out
	chain linearization from vect_build_slp_tree_2 and generalize
	for the use of BB reduction vectorization.
	(vect_build_slp_tree_2): Adjust accordingly.
	(vect_optimize_slp): Elide permutes at the root of BB reduction
	instances.
	(vectorizable_bb_reduc_epilogue): New function.
	(vect_slp_prune_covered_roots): Likewise.
	(vect_slp_analyze_operations): Use them.
	(vect_slp_check_for_constructors): Recognize associatable
	chains for BB reduction vectorization.
	(vectorize_slp_instance_root_stmt): Generate code for the
	BB reduction epilogue.

2021-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with
	may_recompute_p.
	(gori_compute::may_recompute_p): New.
	(gori_compute::outgoing_edge_range_p): Perform recomputations.
	* gimple-range-gori.h (class gori_compute): Add prototype.

2021-06-17  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::range_on_edge): Always return
	true when a range can be calculated.
	* gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p.

2021-06-16  Martin Sebor  <msebor@redhat.com>

	* doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete):
	Correct documented defaults.

2021-06-16  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize
	m_new_value_p directly.

2021-06-16  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89021
	* config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv):
	Handle 64bit modes for TARGET_SSE4_1.
	(expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3.
	(expand_vec_perm_even_odd_pack): Handle V4HI mode.
	(expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via
	expand_vec_perm_pshufb2 for TARGET_SSSE3 and via
	expand_vec_perm_even_odd_pack for TARGET_SSE4_1.
	* config/i386/mmx.md (mmx_packusdw): New insn pattern.

2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>):
	Change to an expander that emits the correct instruction
	depending on endianness.
	(aarch64_<sur><addsub>hn<mode>_insn_le): Define.
	(aarch64_<sur><addsub>hn<mode>_insn_be): Define.

2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Split generator
	for aarch64_<su>qmovn builtins into scalar and vector
	variants.
	* config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le):
	Define.
	(aarch64_<su>qmovn<mode>_insn_be): Define.
	(aarch64_<su>qmovn<mode>): Split into scalar and vector
	variants. Change vector variant to an expander that emits the
	correct instruction depending on endianness.

2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Split generator
	for aarch64_sqmovun builtins into scalar and vector variants.
	* config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>):
	Split into scalar and vector variants. Change vector variant
	to an expander that emits the correct instruction depending
	on endianness.
	(aarch64_sqmovun<mode>_insn_le): Define.
	(aarch64_sqmovun<mode>_insn_be): Define.

2021-06-16  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le):
	Define - modeling zero-high-half semantics.
	(aarch64_xtn<mode>): Change to an expander that emits the
	appropriate instruction depending on endianness.
	(aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half
	semantics.
	(aarch64_xtn2<mode>_le): Rename to...
	(aarch64_xtn2<mode>_insn_le): This.
	(aarch64_xtn2<mode>_be): Rename to...
	(aarch64_xtn2<mode>_insn_be): This.
	(vec_pack_trunc_<mode>): Emit truncation instruction instead
	of aarch64_xtn.
	* config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode
	attribute iterator.

2021-06-16  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/100453
	* tree-sra.c (create_access): Disqualify any const candidates
	which are written to.
	(sra_modify_expr): Do not store sub-replacements back to a const base.
	(handle_unscalarized_data_in_subtree): Likewise.
	(sra_modify_assign): Likewise.  Earlier, use TREE_READONLy test
	instead of constant_decl_p.

2021-06-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/101062
	* stor-layout.c (finish_bitfield_representative): For fields in unions
	assume nextf is always NULL.
	(finish_bitfield_layout): Compute bit field representatives also in
	unions, but handle it as if each bitfield was the only field in the
	aggregate.

2021-06-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101088
	* tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for
	supported refs on edges.  Do not assert same ref but
	different kind stores are unsuported but mark them so.
	(hoist_memory_references): Only look for supported refs
	on exits.

2021-06-16  Roger Sayle  <roger@nextmovesoftware.com>

	PR rtl-optimization/46235
	* config/i386/i386.md: New define_split for bt followed by cmov.
	(*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc.
	(*bt<mode>_setncqi): New define_insn_and_split for bt then setnc.
	(*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed
	by setnc with zero extension.

2021-06-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101083
	* tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get
	vectype as argument.
	(vect_build_slp_tree_2): Adjust.

2021-06-15  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100876
	* builtins.c: (gimple_call_return_array): Account for size_t
	mangling as either unsigned int or unsigned long

2021-06-15  Jeff Law  <jeffreyalaw@gmail.com>

	* compare-elim.c (try_eliminate_compare): Run DCE to clean things
	up before eliminating comparisons.

2021-06-15  Aldy Hernandez  <aldyh@redhat.com>

	* range-op.cc (operator_bitwise_or::wi_fold): Make sure
	nonzero|X is nonzero.
	(range_op_bitwise_and_tests): Add tests for above.

2021-06-15  Carl Love  <cel@us.ibm.com>

	PR target/101022
	* config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the
	enum definition.
	(VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2
	definitions.

2021-06-15  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/92568
	* gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET.
	(struct gimplify_omp_ctx): Extend defaultmap array by one.
	(new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET].
	(omp_notice_variable): Update type classification for Fortran.
	(gimplify_scan_omp_clauses): Update calls for new argument; handle
	GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY.
	* langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument.
	* langhooks.c (lhd_omp_scalar_p): Likewise.
	(LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New.
	(LANG_HOOKS_DECLS): Add them.
	* langhooks.h (struct lang_hooks_for_decls): Add new hooks, update
	omp_scalar_p pointer type to include the new bool argument.

2021-06-15  David Malcolm  <dmalcolm@redhat.com>

	* doc/analyzer.texi
	(Special Functions for Debugging the Analyzer): Add
	__analyzer_dump_capacity.

2021-06-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/101046
	* expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR,
	case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode.

2021-06-15  Richard Biener  <rguenther@suse.de>

	* cfgloopanal.c (mark_irreducible_loops): Use a dominance
	check to identify loop latches.
	* cfgloop.c (verify_loop_structure): Likewise.
	* loop-init.c (apply_loop_flags): Allow marked irreducible
	regions even with multiple latches.
	* predict.c (rebuild_frequencies): Simplify.

2021-06-15  Richard Biener  <rguenther@suse.de>

	* tree-ssa-threadupdate.c
	(jump_thread_path_registry::mark_threaded_blocks): Assert we
	have marked irreducible regions.

2021-06-14  Martin Sebor  <msebor@redhat.com>

	PR c++/100876
	* builtins.c (gimple_call_return_array): Check for attribute fn spec.
	Handle calls to placement new.
	(ndecl_dealloc_argno): Avoid placement delete.

2021-06-14  Peter Bergner  <bergner@linux.ibm.com>

	PR target/100777
	* config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use
	create_tmp_reg_or_ssa_name().

2021-06-14  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust.
	(ranger_cache::enable_new_values): Set to specified value and
	return the old value.
	(ranger_cache::disable_new_values): Delete.
	(ranger_cache::fill_block_cache): Disable non 1st order derived
	poor values.
	* gimple-range-cache.h (ranger_cache): Adjust prototypes.
	* gimple-range.cc (gimple_ranger::range_of_expr): Adjust.

2021-06-14  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101058
	* config/i386/i386-expand.c (ix86_vectorize_vec_perm_const):
	Return true early when testing with V2HImode.
	* config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1.

2021-06-14  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern.
	(mve_vec_unpack<US>_hi_<mode>): New pattern.
	(@mve_vec_pack_trunc_lo_<mode>): New pattern.
	(mve_vmovntq_<supf><mode>): Prefix with '@'.
	* config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to
	vec-common.md.
	(vec_unpack<US>_lo_<mode>): Likewise.
	(vec_pack_trunc_<mode>): Rename to
	neon_quad_vec_pack_trunc_<mode>.
	* config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New
	pattern.
	(vec_unpack<US>_lo_<mode>): New.
	(vec_pack_trunc_<mode>): New.

2021-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100934
	* tree-ssa-dom.c (pass_dominator::execute): Properly
	mark irreducible regions.

2021-06-14  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Put r{...} on the same line as @item.

2021-06-14  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Add missing newline.

2021-06-14  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Remove '+' charasters.

2021-06-14  Claudiu Zissulescu  <claziss@synopsys.com>

	* config.gcc (arc): Add support for with_cpu option.
	* config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu.

2021-06-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101031
	* tree-ssa-strlen.c (maybe_invalidate): Increment max_size
	instead of size when accounting for a possibly string
	terminating nul.

2021-06-14  Martin Liska  <mliska@suse.cz>

	* gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[].

2021-06-14  Aldy Hernandez  <aldyh@redhat.com>

	* value-query.cc (gimple_range_global): Call get_range_global
	if called after inlining.

2021-06-13  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101021
	* config/i386/i386-expand.c (expand_vec_perm_pshufb):
	Emit constant permutation insn directly from here.

2021-06-13  Trevor Saunders  <tbsaunde@tbsaunde.org>

	* attribs.c (find_attribute_namespace): Iterate over vec<> with
	range based for.
	* auto-profile.c (afdo_find_equiv_class): Likewise.
	* gcc.c (do_specs_vec): Likewise.
	(do_spec_1): Likewise.
	(driver::set_up_specs): Likewise.
	* gimple-loop-jam.c (any_access_function_variant_p): Likewise.
	* gimple-ssa-store-merging.c (compatible_load_p): Likewise.
	(imm_store_chain_info::try_coalesce_bswap): Likewise.
	(imm_store_chain_info::coalesce_immediate_stores): Likewise.
	(get_location_for_stmts): Likewise.
	* graphite-poly.c (print_iteration_domains): Likewise.
	(free_poly_bb): Likewise.
	(remove_gbbs_in_scop): Likewise.
	(free_scop): Likewise.
	(dump_gbb_cases): Likewise.
	(dump_gbb_conditions): Likewise.
	(print_pdrs): Likewise.
	(print_scop): Likewise.
	* ifcvt.c (cond_move_process_if_block): Likewise.
	* lower-subreg.c (decompose_multiword_subregs): Likewise.
	* regcprop.c (pass_cprop_hardreg::execute): Likewise.
	* sanopt.c (sanitize_rewrite_addressable_params): Likewise.
	* sel-sched-dump.c (dump_insn_vector): Likewise.
	* store-motion.c (store_ops_ok): Likewise.
	(store_killed_in_insn): Likewise.
	* timevar.c (timer::named_items::print): Likewise.
	* tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise.
	(cleanup_tree_cfg_noloop): Likewise.
	* tree-data-ref.c (dump_data_references): Likewise.
	(print_dir_vectors): Likewise.
	(print_dist_vectors): Likewise.
	(dump_data_dependence_relations): Likewise.
	(dump_dist_dir_vectors): Likewise.
	(dump_ddrs): Likewise.
	(create_runtime_alias_checks): Likewise.
	(free_subscripts): Likewise.
	(save_dist_v): Likewise.
	(save_dir_v): Likewise.
	(invariant_access_functions): Likewise.
	(same_access_functions): Likewise.
	(access_functions_are_affine_or_constant_p): Likewise.
	(find_data_references_in_stmt): Likewise.
	(graphite_find_data_references_in_stmt): Likewise.
	(free_dependence_relations): Likewise.
	(free_data_refs): Likewise.
	* tree-inline.c (copy_debug_stmts): Likewise.
	* tree-into-ssa.c (dump_currdefs): Likewise.
	(rewrite_update_phi_arguments): Likewise.
	* tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise.
	* tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr):
	Likewise.
	(vect_slp_analyze_node_dependences): Likewise.
	(vect_slp_analyze_instance_dependence): Likewise.
	(vect_record_base_alignments): Likewise.
	(vect_get_peeling_costs_all_drs): Likewise.
	(vect_peeling_supportable): Likewise.
	* tree-vectorizer.c (vec_info::~vec_info): Likewise.
	(vec_info::free_stmt_vec_infos): Likewise.

2021-06-13  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/logical.md (<code>qi3_1<cczn>): New pattern.
	(andqi3_1<cczn>): Removed.
	(<ors>qi3_1): Do not split for IOR/XOR a single bit.
	(H8/SX bit logicals): Split out from other patterns.
	* config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from
	mulqihi3_const_clobber_flags.
	(mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly

2021-06-13  H.J. Lu  <hjl.tools@gmail.com>

	PR target/101023
	* config/i386/i386.c (ix86_expand_prologue): Set red_zone_used
	to true if red zone is used.
	(ix86_output_indirect_jmp): Replace ix86_red_zone_size with
	ix86_red_zone_used.
	* config/i386/i386.h (machine_function): Add red_zone_used.
	(ix86_red_zone_size): Removed.
	(ix86_red_zone_used): New.
	* config/i386/i386.md (peephole2 patterns): Replace
	ix86_red_zone_size with ix86_red_zone_used.

2021-06-12  Jason Merrill  <jason@redhat.com>

	* doc/extend.texi (unused variable attribute): Applies to
	structure fields as well.

2021-06-12  Eugene Rozenfeld  <erozen@microsoft.com>

	* auto-profile.c (read_profile): fix a typo in an error string

2021-06-11  Thomas Schwinge  <thomas@codesourcery.com>

	* tree-pretty-print.h (dump_omp_clauses): Add 'bool = true'
	default argument.
	* tree-pretty-print.c (dump_omp_clauses): Update.
	(dump_generic_node) <OMP_CLAUSE>: Use it.

2021-06-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	PR target/101016
	* config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0,
	int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for
	the polymorphic variants matching code.
	(__arm_vld1q_z): Likewise.
	(__arm_vld2q): Likewise.
	(__arm_vld4q): Likewise.
	(__arm_vldrbq_gather_offset): Likewise.
	(__arm_vldrbq_gather_offset_z): Likewise.

2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>

	PR tree-optimization/96392
	* fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype.

2021-06-11  Roger Sayle  <roger@nextmovesoftware.com>

	PR tree-optimization/96392
	* fold-const.c (fold_real_zero_addition_p): Take both arguments
	of the addition or subtraction, not just the zero.  Use this
	other argument in tests for signaling NaNs and signed zeros.
	(tree_expr_maybe_real_minus_zero_p): New predicate.
	* fold-const.h (fold_real_zero_addition_p): Update prototype.
	(tree_expr_maybe_real_minus_zero_p): New function prototype.
	* match.pd: Update calls to fold_real_zero_addition_p.
	Replace HONOR_NANS with tree_expr_maybe_nan_p.
	Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p.
	Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p.
	* tree-ssa-reassoc.c (eliminate_using_constants): Update
	call to fold_real_zero_addition_p.

2021-06-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101025
	* tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process
	all refs that require dependence checking.

2021-06-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101028
	* tree-vect-slp.c (vect_build_slp_tree_2): When SLP
	reassoc discovery fails fatally, mark appropriate lanes
	in matches[] so.

2021-06-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101026
	* tree-vect-slp.c (vect_build_slp_tree_2): Make sure we
	have a representative for the associated chain nodes.

2021-06-11  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/101008
	* simplify-rtx.c (relational_result): New function.
	(simplify_logical_relational_operation,
	simplify_relational_operation): Use it.

2021-06-11  Jakub Jelinek  <jakub@redhat.com>

	PR target/101007
	* config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2.

2021-06-11  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/101021
	* config/i386/i386-expand.c (expand_vec_perm_pshufb): Return
	false if the permutation can be implemented with constant
	permutation instruction in wider mode.
	(canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb.
	Handle V8QImode and V4HImode.

2021-06-11  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/100788
	* common.opt: Add new option.
	* coverage.c (coverage_begin_function): Emit warning instead on
	the internal compiler error.
	* doc/invoke.texi: Document the option.
	* toplev.c (process_options): Enable it by default.

2021-06-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/101009
	* tree-data-ref.c (build_classic_dist_vector_1): Make sure
	to set *init_b to true when we encounter a constant equal
	index pair.
	(compute_affine_dependence): Also dump the actual DR_REF.

2021-06-10  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/100984
	* gimple-ssa-evrp.c  (ssa_equiv_stack): Use auto_vec for
	replacements table.
	(ssa_equiv_stack::~ssa_equiv_stack): Remove.

2021-06-11  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/rs6000.md
	(floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New
	define_insn_and_split.

2021-06-11  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort
	to sort operands of the associative chain.

2021-06-11  Richard Biener  <rguenther@suse.de>

	* system.h (gcc_stablesort_r): Declare.
	* sort.cc (gcc_sort_r): Support stable sort.
	(gcc_stablesort_r): Define.
	* vec.h (vec<>::stablesort): Add.

2021-06-10  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/89021
	* config/i386/i386-expand.c (ix86_split_mmx_punpck):
	Handle V2SF mode.  Emit SHUFPS to fixup unpack-high for V2SF mode.
	(expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1.
	(expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3.
	(expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1.
	(expand_vec_perm_interleave2): Handle 64bit modes.
	(expand_vec_perm_even_odd_pack): Handle V8QI mode.
	(expand_vec_perm_even_odd_1): Ditto.
	(ix86_vectorize_vec_perm_const): Ditto.
	* config/i386/i386.md (UNSPEC_PSHUFB): Move from ...
	* config/i386/sse.md: ... here.
	* config/i386/mmx.md (*vec_interleave_lowv2sf):
	New insn_and_split pattern.
	(*vec_interleave_highv2sf): Ditto.
	(mmx_pshufbv8qi3): New insn pattern.
	(*mmx_pblendw): Ditto.

2021-06-10  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000-builtin.def (build_pair): New built-in.
	(build_acc): Likewise.
	* config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble
	source operands in little-endian mode.
	(rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR.
	(mma_init_builtins): Likewise.
	* config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness
	ordering for the MMA assemble and build source operands.
	* doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair):
	Document.
	(__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove
	documentation.

2021-06-10  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300.c (select_cc_mode): Handle MEM.  Use
	REG_P.
	* config/h8300/extensions.md: Replace _clobber_flags patterns
	with <cczn>.

2021-06-10  Robin Dapp  <rdapp@linux.ibm.com>

	* config/s390/vector.md (vcond_mask_<mode><mode>): Change to
	(vcond_mask_<mode><tointvec>): this.

2021-06-10  Andrew Stubbs  <ams@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	* omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into...
	(BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these.
	* gimple.h (enum gf_mask): Split
	'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into
	'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and
	'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'.
	(is_gimple_omp_oacc): Update.
	* gimple-pretty-print.c (dump_gimple_omp_target): Likewise.
	* gimplify.c (gimplify_omp_target_update): Likewise.
	* omp-expand.c (expand_omp_target, build_omp_regions_1)
	(omp_make_gimple_edges): Likewise.
	* omp-low.c (check_omp_nesting_restrictions, lower_omp_target):
	Likewise.

2021-06-10  Aldy Hernandez  <aldyh@redhat.com>

	* value-query.cc (value_query::value_on_edge): Rename name to
	expr.
	(range_query::range_on_edge): Same.
	(range_query::value_of_expr): Same.
	(range_query::value_on_edge): Same.
	* value-query.h (class value_query): Same.
	(class range_query): Same.

2021-06-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101003
	* tree-vect-slp.c (vect_build_slp_tree_2): Appropriately
	use the pattern stmt defs when linearizing a chain.

2021-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR debug/100852
	* ifcvt.c (noce_get_alt_condition, noce_try_abs): Use
	prev_nonnote_nondebug_insn instead of prev_nonnote_insn.

2021-06-10  Clement Chigot  <clement.chigot@atos.net>

	* config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive.
	* config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.

2021-06-09  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/100925
	* match.pd (a ? CST1 : CST2): Limit transformations
	that would produce a negative to integeral types only.
	Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also.

2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>

	Revert:
	2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>

	* doc/tm.texi: Correctly update.

2021-06-09  Jeff Law  <jeffreyalaw@gmail.com>

	* doc/tm.texi: Correctly update.

2021-06-09  H.J. Lu  <hjl.tools@gmail.com>

	PR other/100735
	* doc/tm.texi.in (Trampolines): Add a missing blank line.

2021-06-09  Paul Eggert  <eggert@cs.ucla.edu>

	PR other/100735
	* doc/invoke.texi (Code Gen Options); Document that -fno-trampolines
	and -ftrampolines work only with Ada.
	* doc/tm.texi.in (Trampolines): Likewise.
	* doc/tm.texi: Regenerated.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq):
	Add define for new builtins.
	* config/rs6000/altivec.md(altivec_vreveti2): Add define_expand.
	* config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL):  Add
	overloaded builtin definitions.
	(VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D,
	VSIGNEXTSD2Q):	Add builtin expansions.
	(SIGNEXT): Add P10 overload definition.
	* config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL,
	P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions.
	* config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn.
	(vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>,
	vsignextend_si_v2di)[VIlong]: Add define_expand.
	Make define_insn vsx_sign_extend_si_v2di visible.
	* doc/extend.texi:  Add documentation for the vec_signexti,
	vec_signextll builtins and vec_signextq.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf,
	__floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw,
	__floattikf_sw, __floatuntikf_sw respectively.
	* config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
	fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add
	define_insn for mode IEEE 128.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/altivec.md (altivec_vslq, altivec_vsrq):
	Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI.
	* config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md.
	(vashlv1ti3): Change to vashl<mode>3, mode VEC_TI.
	(vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI.
	* config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update
	uses of VSX_TI to VEC_TI.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new
	builtins.
	* config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD,
	UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs.
	(altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud,
	altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq,
	altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm,
	altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq,
	altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New
	define_insn.
	(vec_widen_umult_even_v2di, vec_widen_smult_even_v2di,
	vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi,
	altivec_vrlqnm): New define_expands.
	* config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P,
	VCMPGTUT_P): Add macro expansions.
	(BU_P10V_AV_P): Add builtin predicate definition.
	(VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI,
	CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P,
	VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ,
	VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI,
	MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions.
	(VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions.
	* config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT,
	P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI,
	P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST,
	P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI,
	P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI,
	P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD,
	P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD,
	P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS,
	P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI,
	P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ,
	P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ,
	P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P,
	P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P,
	P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET,
	P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P,
	P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI,
	P10V_BUILTIN_MODU_V1TI):
	New overloaded definitions.
	(rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT,
	P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI,
	P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT,
	P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI,
	P10V_BUILTIN_CMPLE_U1TI]: New case statements.
	(rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]:
	New assignments.
	(altivec_init_builtins): New E_V1TImode case statement.
	(builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD,
	P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI,
	P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI,
	P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements.
	* config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode,
	E_V1TImode]: New case statements.
	* config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum
	value RS6000_BTI_bool_V1TI.
	* config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti,
	vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti,
	vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p,
	vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3,
	vlshrv1ti3, vashrv1ti3): New define_expands.
	* config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ,
	UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ,
	UNSPEC_VSX_MODUQ): New unspecs.
	(mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti,
	vsx_diveu_v1ti,	vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New
	define_insns.
	(vcmpnet): New define_expand.
	* doc/extend.texi: Add documentation for the new builtins vec_rl,
	vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo,
	vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt,
	vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt,
	vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt,
	vec_any_ge, vec_any_le.

2021-06-09  Carl Love  <cel@us.ibm.com>

	* config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix
	bug in argument generation.

2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S.
	(VCLZQ): Remove.
	* config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix,
	remove <supf> iterator.
	(mve_vclzq_u<mode>): New.
	* config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>.
	(neon_vclz<mode): Move to ...
	* config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove.
	* config/arm/vec-common.md: ... here. Add support for MVE.

2021-06-09  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'.
	(@mve_vrhaddq_<supf><mode): Likewise.
	* config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise.
	* config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor)
	(avg<mode>3_ceil", uavg<mode>3_ceil): New patterns.

2021-06-09  imba-tjd  <109224573@qq.com>

	* doc/invoke.texi: Fix typo.

2021-06-09  Roger Sayle  <roger@nextmovesoftware.com>

	PR middle-end/53267
	* fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]:
	Support evaluation of fmod/fmodf/fmodl at compile-time.

2021-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100981
	* tree-vect-loop.c (vect_create_epilog_for_reduction): Use
	gimple_get_lhs to also handle calls.
	* tree-vect-slp-patterns.c (complex_pattern::build): Transfer
	reduction info.

2021-06-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97832
	* tree-vectorizer.h (_slp_tree::failed): New.
	* tree-vect-slp.c (_slp_tree::_slp_tree): Initialize
	failed member.
	(_slp_tree::~_slp_tree): Free failed.
	(vect_build_slp_tree): Retain failed nodes and record
	matches in them, copying that back out when running
	into a cached fail.  Dump start and end of discovery.
	(dt_sort_cmp): New.
	(vect_build_slp_tree_2): Handle associatable chains
	together doing more aggressive operand swapping.

2021-06-09  H.J. Lu  <hjl.tools@gmail.com>

	PR target/100896
	* config.gcc (gcc_cv_initfini_array): Set to yes for Linux and
	GNU targets.
	* doc/install.texi: Require glibc 2.1 and binutils 2.12 for
	Linux and GNU targets.

2021-06-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.c (vect_is_simple_use): Always get dt
	from the stmt.

2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (loop_end): Change it to
	define_insn_and_split.

2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (maddhisi4): Use VMAC2H instruction.
	(machi): New pattern.
	(umaddhisi4): Use VMAC2HU instruction.
	(umachi): New pattern.

2021-06-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc-protos.h (arc_split_move_p): New prototype.
	* config/arc/arc.c (arc_split_move_p): New function.
	(arc_split_move): Clean up.
	* config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p.
	(movdf_insn): Likewise.
	* config/arc/simdext.md (mov<VWH>_insn): Likewise.

2021-06-09  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100936
	* config/i386/i386.c (print_operand_address_as): Rename "no_rip"
	argument to "raw".  Do not emit segment overrides when "raw" is true.

2021-06-09  Martin Liska  <mliska@suse.cz>

	* doc/gcov.texi: Create a proper JSON files.
	* doc/invoke.texi: Remove dots in order to make it a valid
	JSON object.

2021-06-09  Xionghu Luo  <luoxhu@linux.ibm.com>

	* config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New.
	(insn_is_load_p): Use pattern_is_rotate64.
	(insn_is_swap_p): Likewise.
	(quad_aligned_load_p): Likewise.
	(const_load_sequence_p): Likewise.
	(replace_swapped_aligned_load): Likewise.
	(recombine_lvx_pattern): Likewise.
	(recombine_stvx_pattern): Likewise.

2021-06-09  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a
	fur_stmt source record.
	* gimple-range.cc (fur_source::get_operand): Generic range query.
	(fur_source::get_phi_operand): New.
	(fur_source::register_dependency): New.
	(fur_source::query): New.
	(class fur_edge): New.  Edge source for operands.
	(fur_edge::fur_edge): New.
	(fur_edge::get_operand): New.
	(fur_edge::get_phi_operand): New.
	(fur_edge::query): New.
	(fur_stmt::fur_stmt): New.
	(fur_stmt::get_operand): New.
	(fur_stmt::get_phi_operand): New.
	(fur_stmt::query): New.
	(class fur_depend): New.  Statement source and process dependencies.
	(fur_depend::fur_depend): New.
	(fur_depend::register_dependency): New.
	(class fur_list): New.  List source for operands.
	(fur_list::fur_list): New.
	(fur_list::get_operand): New.
	(fur_list::get_phi_operand): New.
	(fold_range): New.  Instantiate appropriate fur_source class and fold.
	(fold_using_range::range_of_range_op): Use new API.
	(fold_using_range::range_of_address): Ditto.
	(fold_using_range::range_of_phi): Ditto.
	(imple_ranger::fold_range_internal): Use fur_depend class.
	(fold_using_range::range_of_ssa_name_with_loop_info): Use new API.
	* gimple-range.h (class fur_source): Now a base class.
	(class fur_stmt): New.
	(fold_range): New prototypes.
	(fur_source::fur_source): Delete.

2021-06-08  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/25290
	* tree-ssa-phiopt.c (xor_replacement): Delete.
	(tree_ssa_phiopt_worker): Delete use of xor_replacement.
	(match_simplify_replacement): Allow one cheap preparation
	statement that can be moved to before the if.

2021-06-08  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/power10.md (power10-fused-load, power10-fused-store,
	power10-fused_alu, power10-fused-vec, power10-fused-branch): New.

2021-06-08  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split.
	Create length attribute on define_insn_and_split.  Only split for cases which we
	know will use AND.
	(andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags.  Only handle AND here and
	fix length computation.
	(b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator.

2021-06-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100923
	* tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to
	the operand vector to be valueized.
	(valueize_refs): Likewise.
	(valueize_shared_reference_ops_from_ref): Adjust.
	(valueize_shared_reference_ops_from_call): Likewise.
	(vn_reference_lookup_3): Likewise.
	(vn_reference_lookup_pieces): Likewise.  Re-valueize
	with honoring availability when we are about to create
	the ao_ref and valueized before.
	(vn_reference_lookup): Likewise.
	(vn_reference_insert_pieces): Adjust.

2021-06-08  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_slp_instance::root_stmt): Change to...
	(_slp_instance::root_stmts): ... a vector.
	(SLP_INSTANCE_ROOT_STMT): Rename to ...
	(SLP_INSTANCE_ROOT_STMTS): ... this.
	(slp_root::root): Change to...
	(slp_root::roots): ... a vector.
	(slp_root::slp_root): Adjust.
	* tree-vect-slp.c (_slp_instance::location): Adjust.
	(vect_free_slp_instance): Release the root stmt vector.
	(vect_build_slp_instance): Adjust.
	(vect_analyze_slp): Likewise.
	(_bb_vec_info::~_bb_vec_info): Likewise.
	(vect_slp_analyze_operations): Likewise.
	(vect_bb_vectorization_profitable_p): Likewise.  Adjust
	costs for the root stmt.
	(vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs
	as root stmts.
	(vect_slp_analyze_bb_1): Simplify by marking all root stmts
	as pure_slp.
	(vectorize_slp_instance_root_stmt): Adjust.
	(vect_schedule_slp): Likewise.

2021-06-08  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ssa-evrp.c (class ssa_equiv_stack): New.
	(ssa_equiv_stack::ssa_equiv_stack): New.
	(ssa_equiv_stack::~ssa_equiv_stack): New.
	(ssa_equiv_stack::enter): New.
	(ssa_equiv_stack::leave): New.
	(ssa_equiv_stack::push_replacement): New.
	(ssa_equiv_stack::get_replacement): New.
	(is_pointer_ssa): New.
	(class pointer_equiv_analyzer): New.
	(pointer_equiv_analyzer::pointer_equiv_analyzer): New.
	(pointer_equiv_analyzer::~pointer_equiv_analyzer): New.
	(pointer_equiv_analyzer::set_global_equiv): New.
	(pointer_equiv_analyzer::set_cond_equiv): New.
	(pointer_equiv_analyzer::get_equiv): New.
	(pointer_equiv_analyzer::enter): New.
	(pointer_equiv_analyzer::leave): New.
	(pointer_equiv_analyzer::get_equiv_expr): New.
	(pta_valueize): New.
	(pointer_equiv_analyzer::visit_stmt): New.
	(pointer_equiv_analyzer::visit_edge): New.
	(hybrid_folder::value_of_expr): Call PTA.
	(hybrid_folder::value_on_edge): Same.
	(hybrid_folder::pre_fold_bb): New.
	(hybrid_folder::post_fold_bb): New.
	(hybrid_folder::pre_fold_stmt): New.
	(rvrp_folder::pre_fold_bb): New.
	(rvrp_folder::post_fold_bb): New.
	(rvrp_folder::pre_fold_stmt): New.
	(rvrp_folder::value_of_expr): Call PTA.
	(rvrp_folder::value_on_edge): Same.

2021-06-08  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100957
	* tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't
	check TREE_CODE if OMP_CLAUSE_DECL is NULL.

2021-06-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/100951
	* tree-vect-generic.c (expand_vector_piecewise): Build a
	VECTOR_CST if all elements are constant.
	(expand_vector_condition): Likewise.
	(lower_vec_perm): Likewise.
	(expand_vector_conversion): Likewise.

2021-06-08  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Document new param evrp-sparse-threshold.

2021-06-08  Martin Liska  <mliska@suse.cz>

	* genautomata.c (create_automata): Fix typo.

2021-06-08  Kewen Lin  <linkw@linux.ibm.com>

	PR tree-optimization/100794
	* tree-predcom.c (tree_predictive_commoning_loop): Add parameter
	allow_unroll_p and only allow unrolling when it's true.
	(tree_predictive_commoning): Add parameter allow_unroll_p and
	adjust for it.
	(run_tree_predictive_commoning): Likewise.
	(pass_predcom::gate): Check flag_tree_loop_vectorize and
	global_options_set.x_flag_predictive_commoning.
	(pass_predcom::execute): Adjust for allow_unroll_p.

2021-06-08  Kewen Lin  <linkw@linux.ibm.com>

	* tree-predcom.c (execute_pred_commoning): Remove update_ssa call.
	(tree_predictive_commoning_loop): Factor some cleanup stuffs into
	lambda function cleanup, remove scev_reset call, and adjust return
	value.
	(tree_predictive_commoning): Adjust for different changed values,
	only set flag TODO_update_ssa_only_virtuals if changed.
	(pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals
	from todo_flags_finish.

2021-06-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (class sbr_sparse_bitmap): New.
	(sbr_sparse_bitmap::sbr_sparse_bitmap): New.
	(sbr_sparse_bitmap::bitmap_set_quad): New.
	(sbr_sparse_bitmap::bitmap_get_quad): New.
	(sbr_sparse_bitmap::set_bb_range): New.
	(sbr_sparse_bitmap::get_bb_range): New.
	(sbr_sparse_bitmap::bb_range_p): New.
	(block_range_cache::block_range_cache): initialize bitmap obstack.
	(block_range_cache::~block_range_cache): Destruct obstack.
	(block_range_cache::set_bb_range): Decide when to utilze the
	sparse on entry cache.
	* gimple-range-cache.h (block_range_cache): Add bitmap obstack.
	* params.opt (-param=evrp-sparse-threshold): New.

2021-06-07  Andrew MacLeod  <amacleod@redhat.com>

	* bitmap.c (bitmap_set_aligned_chunk): New.
	(bitmap_get_aligned_chunk): New.
	(test_aligned_chunk): New.
	(bitmap_c_tests): Call test_aligned_chunk.
	* bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New.

2021-06-07  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
	Handle V4QI mode.
	(ix86_expand_vector_init_one_nonzero): Ditto.
	(ix86_expand_vector_init_one_var): Ditto.
	(ix86_expand_vector_init_general): Ditto.
	* config/i386/mmx.md (vec_initv4qiqi): New expander.

2021-06-07  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/movepush.md: Change most _clobber_flags
	patterns to instead use <cczn> subst.
	(movsi_cczn): New pattern with usable CC cases split out.
	(movsi_h8sx_cczn): Likewise.

2021-06-07  Martin Liska  <mliska@suse.cz>

	* common/common-target.def: Split long lines and replace them
	with '\n\'.
	* target.def: Likewise.
	* doc/tm.texi: Re-generated.

2021-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/100887
	* fold-const.c (fold_read_from_vector): Return NULL if trying to
	read from a CONSTRUCTOR with vector type elements.

2021-06-07  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/100898
	* tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy
	should copy any arguments.  Don't call gimple_call_num_args
	on id->call_stmt or call_stmt more than once.

2021-06-07  liuhongt  <hongtao.liu@intel.com>

	PR target/100885
	* config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine
	constraints.
	(<insn>v4siv4di2): Delete constraints for define_expand.

2021-06-07  liuhongt  <hongtao.liu@intel.com>

	PR target/82735
	* config/i386/i386-expand.c (ix86_expand_builtin): Remove
	assignment of cfun->machine->has_explicit_vzeroupper.
	* config/i386/i386-features.c
	(ix86_add_reg_usage_to_vzerouppers): Delete.
	(ix86_add_reg_usage_to_vzeroupper): Ditto.
	(rest_of_handle_insert_vzeroupper): Remove
	ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end
	of the function.
	(gate): Remove cfun->machine->has_explicit_vzeroupper.
	* config/i386/i386-protos.h (ix86_expand_avx_vzeroupper):
	Declared.
	* config/i386/i386.c (ix86_insn_callee_abi): New function.
	(ix86_initialize_callee_abi): Ditto.
	(ix86_expand_avx_vzeroupper): Ditto.
	(ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper
	ABI.
	(TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi.
	(ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper
	directly.
	* config/i386/i386.h (struct GTY(()) machine_function): Delete
	has_explicit_vzeroupper.
	* config/i386/i386.md (enum unspec): New member
	UNSPEC_CALLEE_ABI.
	(ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New
	define_constants for insn callee abi index.
	* config/i386/predicates.md (vzeroupper_pattern): Adjust.
	* config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted.
	(avx_vzeroupper): Call ix86_expand_avx_vzeroupper.
	(*avx_vzeroupper): Rename to ..
	(avx_vzeroupper_callee_abi): .. this, and adjust pattern as
	call_insn which has a special vzeroupper ABI.
	(*avx_vzeroupper_1): Deleted.

2021-06-07  liuhongt  <hongtao.liu@intel.com>

	PR target/82735
	* df-scan.c (df_get_call_refs): When call_insn is a fake call,
	it won't use stack pointer reg.
	* final.c (leaf_function_p): When call_insn is a fake call, it
	won't affect caller as a leaf function.
	* reg-stack.c (callee_clobbers_any_stack_reg): New.
	(subst_stack_regs): When call_insn doesn't clobber any stack
	reg, don't clear the arguments.
	* rtl.c (shallow_copy_rtx): Don't clear flag used when orig is
	a insn.
	* shrink-wrap.c (requires_stack_frame_p): No need for stack
	frame for a fake call.
	* rtl.h (FAKE_CALL_P): New macro.

2021-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename
	to...
	(sparc_order_regs_for_local_alloc): ...this.
	(sparc_leaf_reg_remap): Declare.
	* config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust.
	(LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap.
	* config/sparc/sparc.c (leaf_reg_remap): Delete.
	(order_regs_for_local_alloc): Rename to...
	(sparc_order_regs_for_local_alloc): ...this.
	(sparc_leaf_reg_remap): New function.
	(sparc_conditional_register_usage): Do not modify leaf_reg_remap.

2021-06-06  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common):
	Use assemble_name to output BSS section name.

2021-06-06  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/constraints.md (Bs):
	Remove boolean operators from match_test RTX.
	(Bw): Ditto.
	(L): Ditto.
	(M): Use "mode" variable instead of GET_MODE (op) in match_test RTX.
	(Wz): Ditto.

2021-06-06  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Add missing @headitem.
	* doc/invoke.texi: Likewise.
	* doc/objc.texi: Likewise.

2021-06-06  Martin Liska  <mliska@suse.cz>

	* genhooks.c (emit_findices): Remove unused function.
	(emit_documentation): Do not call emit_findices
	and do not search for @Fcode directives.

2021-06-06  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Remove extra character.

2021-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* config/sh/sh.md (doloop_end_split): Fix empty split condition.

2021-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* config/sparc/sparc.md (*snedi<W:mode>_zero_vis3,
	*neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero,
	*plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero,
	*minus_minus_snedi<W:mode>_zero): Fix empty split condition.

2021-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* config/or1k/or1k.md (*movdi): Fix empty split condition.

2021-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty
	split condition.

2021-06-05  Kewen Lin  <linkw@linux.ibm.com>

	* config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec,
	*zero_extendsidi2): Fix empty split condition.

2021-06-05  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/addsub.md: Fix split condition in define_insn_and_split
	patterns.
	* config/h8300/bitfield.md: Likewise.
	* config/h8300/combiner.md: Likewise.
	* config/h8300/divmod.md: Likewise.
	* config/h8300/extensions.md: Likewise.
	* config/h8300/jumpcall.md: Likewise.
	* config/h8300/movepush.md: Likewise.
	* config/h8300/multiply.md: Likewise.
	* config/h8300/other.md: Likewise.
	* config/h8300/shiftrotate.md: Likewise.
	* config/h8300/logical.md: Likewise.  Fix split pattern to use
	code iterator that somehow slipped through.

2021-06-04  Tobias Burnus  <tobias@codesourcery.com>

	PR middle-end/100905
	* tree-nested.c (convert_nonlocal_omp_clauses,
	convert_local_omp_clauses): Handle OMP_CLAUSE_BIND.

2021-06-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100732
	* gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls
	with either source or destination argument of invalid type.
	* tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking
	calls with arguments of invalid type.

2021-06-04  Martin Sebor  <msebor@redhat.com>

	* attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected
	order.
	(attr_access::vla_bounds): Also handle VLA bounds.

2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (GOT_memory_operand):
	Implement using match_code RTXes.
	(GOT32_symbol_operand): Ditto.

2021-06-04  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_vector_init_duplicate):
	Handle V2HI mode.
	(ix86_expand_vector_init_general): Ditto.
	Use SImode instead of word_mode for logic operations
	when GET_MODE_SIZE (mode) < UNITS_PER_WORD.
	(expand_vec_perm_even_odd_1): Assert that V2HI mode should be
	implemented by expand_vec_perm_1.
	(expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes
	should be implemented using standard shuffle patterns.
	(ix86_vectorize_vec_perm_const): Handle V2HImode.  Add V4HI and
	V2HI modes to modes, implementable with shuffle for one operand.
	* config/i386/mmx.md (*punpckwd): New insn_and_split pattern.
	(*pshufw_1): New insn pattern.
	(*vec_dupv2hi): Ditto.
	(vec_initv2hihi): New expander.

2021-06-04  Kewen Lin  <linkw@linux.ibm.com>

	* config/arm/vfp.md (no_literal_pool_df_immediate,
	no_literal_pool_sf_immediate): Fix empty split condition.

2021-06-04  Kewen Lin  <linkw@linux.ibm.com>

	* config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext,
	*tls_dynamic_gnu2_combine_32): Fix empty split condition.
	* config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt,
	*<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt,
	*<sse4_1_avx2>_pblendvb_lt): Likewise.

2021-06-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/100887
	* config/i386/i386-expand.c (ix86_expand_vector_init): Handle
	concatenation from half-sized modes with TImode elements.

2021-06-04  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_override_options): Disable millicode
	thunks when RF16 is on.

2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>

	* config/rs6000/rs6000.h (PROMOTE_MODE): Remove.

2021-06-04  Haochen Gui  <guihaoc@gcc.gnu.org>

	* config/rs6000/rs6000-call.c (rs6000_promote_function_mode):
	Replace PROMOTE_MODE marco with its content.

2021-06-03  Kewen Lin  <linkw@linux.ibm.com>

	* config/cris/cris.md (*addi_reload): Fix empty split condition.

2021-06-03  Jim Wilson  <jimw@sifive.com>

	* config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
	turn it on for all riscv targets.

2021-06-03  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_vector_set):
	Handle V2HI and V4QI modes.
	(ix86_expand_vector_extract): Ditto.
	* config/i386/mmx.md (*pinsrw): New insn pattern.
	(*pinsrb): Ditto.
	(*pextrw): Ditto.
	(*pextrw_zext): Ditto.
	(*pextrb): Ditto.
	(*pextrb_zext): Ditto.
	(vec_setv2hi): New expander.
	(vec_extractv2hihi): Ditto.
	(vec_setv4qi): Ditto.
	(vec_extractv4qiqi): Ditto.
	(vec_setv8qi): Enable only for TARGET_SSE4_1.
	(vec_extractv8qiqi): Ditto.

2021-06-03  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input
	order to subf instruction.
	* config/rs6000/fusion.md: Regenerate.

2021-06-03  Aldy Hernandez  <aldyh@redhat.com>

	* calls.c (get_size_range): Use range_of_expr instead of
	determine_value_range.
	* tree-affine.c (expr_to_aff_combination): Same.
	* tree-data-ref.c (split_constant_offset): Same.
	* tree-vrp.c (determine_value_range_1): Remove.
	(determine_value_range): Remove.
	* tree-vrp.h (determine_value_range): Remove.

2021-06-03  Aldy Hernandez  <aldyh@redhat.com>

	* function-tests.c (test_ranges): Call gimple_range_tests.
	* gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt
	to get_tree_range.
	* gimple-range.cc (fur_source::get_operand): Do not call
	get_tree_range or gimple_range_global.
	get_tree_range.
	(get_tree_range): Move to value-query.cc.
	Call get_arith_expr_range.
	(gimple_ranger::range_of_expr): Add argument to get_tree_range.
	Include gimple-range-tests.cc.
	* gimple-range.h (fold_range): Add argument.
	(get_tree_range): Remove.
	* selftest.h (gimple_range_tests): New.
	* value-query.cc (global_range_query::range_of_expr): Add
	stmt argument.
	(range_query::get_tree_range): Move from gimple-range.cc.
	* value-query.h (class range_query): Add get_tree_range and
	get_arith_expr_range.  Make fur_source a friend.
	* vr-values.c (vr_values::range_of_expr): Pass stmt to
	get_tree_range.
	* gimple-range-tests.cc: New file.

2021-06-03  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-range.cc (gimple_ranger::export_global_ranges): Call
	  update_global_range.
	* value-query.cc (update_global_range): New.
	* value-query.h (update_global_range): New.

2021-06-03  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-show-locus.c (diagnostic_show_locus): Don't reject
	printing the same location twice if there are fix-it hints,
	multiple locations, or a label.

2021-06-03  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* tree-vect-loop.c (vect_transform_loop): Use main loop's various'
	thresholds to narrow the upper bound on epilogue iterations.

2021-06-03  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec.
	(mve_vabsq_s<mode>): Likewise.
	* config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2.
	* config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete.
	* config/arm/vec-common.md (neg<mode>2): Rename to
	<absneg_str><mode>2.

2021-06-03  Claudiu Zissulescu  <claziss@synopsys.com>

	* common/config/arc/arc-common.c (arc_option_optimization_table):
	Remove malign-call.
	* config/arc/arc.c (arc_unalign_branch_p): Remove unused function.
	* config/arc/arc.h (TARGET_MIXED_CODE): Remove macro.
	(INDEX_REG_CLASS): Only refer to GENERAL_REGS.
	* config/arc/arc.md (abssi2_mixed): Remove pattern.
	* config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete.
	(malign-call): Likewise.
	(mmixed-code): Likewise.
	* doc/invoke.texi (ARC): Update doc.

2021-06-03  Martin Liska  <mliska@suse.cz>

	* common.opt: Use proper Enum values.
	* opts.c (COVERAGE_SANITIZER_OPT): Remove.
	(parse_sanitizer_options): Handle only sanitizer_opts.
	(common_handle_option): Just assign value.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR ipa/99122
	* tree-inline.c (inline_forbidden_p): Remove test on return type.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate
	DW_OP_GNU_variable_value referencing an existing DIE at file scope.
	(type_byte_size): Inline into...
	(add_byte_size_attribute): ...this and call add_scalar_info.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo.
	(typed_binop_from_tree): New function.
	(loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type,
	turn a divide by a power of 2 into a shift.
	<CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the
	size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a
	typed divide by calling typed_binop_from_tree.

2021-06-03  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (scompare_loc_descriptor): Fix head comment.
	(is_handled_procedure_type): Likewise.
	(struct loc_descr_context): Add strict_signedness field.
	(resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type,
	DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret.
	(resolve_args_picking): Minor tweak.
	(function_to_dwarf_procedure): Initialize strict_signedness field.
	(type_byte_size): Likewise.
	(field_byte_offset): Likewise.
	(gen_descr_array_type_die): Likewise.
	(gen_variant_part): Likewise.
	(loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness
	to true when a context is present before evaluating the arguments.
	<COND_EXPR>: Do not generate a useless comparison with zero.
	When dereferencing an address, if strict_signedness is true and the
	type is small and signed, use DW_OP_deref_type to do the dereference
	and then DW_OP_convert to convert back to the generic type.

2021-06-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100859
	* tree-inline.c (copy_tree_body_r): Handle iterators on
	OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND.

2021-06-03  Kewen Lin  <linkw@linux.ibm.com>

	* config/arc/arc.md (*bbit_di): Remove.

2021-06-02  Christoph Muellner  <cmuellner@gcc.gnu.org>

	PR rtl-optimization/100264
	* ree.c (get_sub_rtx): Ignore SET expressions without register
	destinations and remove assertion, as it is not valid anymore
	with this new behaviour.
	(merge_def_and_ext): Eliminate destination check for register
	as such SET expressions can't occur anymore.
	(combine_reaching_defs): Likewise.

2021-06-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/100841
	* config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid
	-Wtype-limits warnings.
	(DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition
	in operands to avoid -Wsign-compare warnings.

2021-06-02  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use
	gen_frame_store.

2021-06-02  Vineet Gupta  <vgupta@synopsys.com>

	* config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux.

2021-06-02  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single
	constraint.
	* config/s390/subst.md(cconly_subst): Use a single constraint
	in (match_scratch).

2021-06-02  Martin Liska  <mliska@suse.cz>

	* ipa-icf.h: Use auto_vec for memory_access_types.

2021-06-02  Jeff Law  <jeffreyalaw@gmail.com>

	* config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused
	argument from prototype.
	(output_logical_op): Add rtx_code argument.
	(compute_logical_op_length): Likewise.
	* config/h8300/h8300.c (h8300_and_costs): Pass additional argument
	to compute_a_shift_length.
	(output_logical_op); New argument with the rtx code rather than
	extracting it from an operand.  Handle QImode too.
	(compute_logical_op_length): Similary.
	(compute_a_shift_length): Drop unused argument.
	* config/h8300/h8300.md (logicals): New code iterator.
	* config/h8300/logical.md (<code><mode>3 expander): Combine
	the "and" expander with the "ior"/"xor" expander.
	(bclr<mode>msx): Combine the QI/HI mode patterns.
	(<logical><mode>3 insns): Use code iterator rather than match_operator.
	Handle QImode as well.   Update call to output_logical_op and
	compute_logical_op_length to pass in rtx_code
	Fix split condition on all define_insn_and_split patterns.
	(one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering
	the flags and setting ZN via existing define_subst.
	* config/h8300/shiftrotate.md: Drop unused argument from
	calls to compute_a_shift_length.
	Signed-off-by: Jeff Law <jeffreyalaw@gmail.com>

2021-06-01  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/25290
	* tree-ssa-phiopt.c (match_simplify_replacement):
	New function.
	(tree_ssa_phiopt_worker): Use match_simplify_replacement.
	(two_value_replacement): Change the comment about
	conditional_replacement.
	(conditional_replacement): Delete.

2021-06-01  Andrew Pinski  <apinski@marvell.com>

	PR tree-optimization/95481
	* tree-tailcall.c (find_tail_calls): Handle empty typed
	return decls.

2021-06-01  Andrew Pinski  <apinski@marvell.com>

	* gimplify.c (zero_sized_field_decl): Delete
	(zero_sized_type): Delete
	(gimplify_init_ctor_eval): Use is_empty_type instead
	of zero_sized_field_decl.
	(gimplify_modify_expr): Use is_empty_type instead of
	zero_sized_type.

2021-06-01  Jason Merrill  <jason@redhat.com>

	PR c++/91859
	* tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment.

2021-06-01  Jason Merrill  <jason@redhat.com>

	PR c++/94492
	* diagnostic.h (warning_enabled_at): Declare.
	* diagnostic.c (diagnostic_enabled): Factor out from...
	(diagnostic_report_diagnostic): ...here.
	(warning_enabled_at): New.

2021-06-01  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ssa-evrp.c: Enable exporting of global ranges.

2021-06-01  Martin Liska  <mliska@suse.cz>

	PR other/100826
	* doc/invoke.texi: Mention that -fgcse-after-reload
	is enabled with -O3.

2021-06-01  liuhongt  <hongtao.liu@intel.com>

	PR tree-optimization/98365
	* tree-if-conv.c (strip_nop_cond_scalar_reduction): New function.
	(is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction.
	(convert_scalar_cond_reduction): Ditto.
	(predicate_scalar_phi): Ditto.

2021-06-01  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/100781
	* gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new
	value calculation by default.
	(ranger_cache::enable_new_values): New.
	(ranger_cache::disable_new_values): New.
	(ranger_cache::push_poor_value): Check if new values are allowed.
	* gimple-range-cache.h (class ranger_cache): New member/methods.
	* gimple-range.cc (gimple_ranger::range_of_expr): Check for debug
	statement, and disable/renable new value calculation.

2021-06-01  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete.
	(ranger_cache::range_of_def): New.
	(ranger_cache::entry_range): New.
	(ranger_cache::exit_range): New.
	(ranger_cache::range_of_expr): Adjust.
	(ranger_cache::range_on_edge): Adjust.
	(ranger_cache::propagate_cache): Call exit_range directly.
	* gimple-range-cache.h (class ranger_cache): Adjust.

2021-06-01  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for
	gori_compute being a member rather than base class.
	dervied call to member call.
	(ranger_cache::dump): No longer dump gori_map.
	(ranger_cache::dump_bb): New.
	(ranger_cache::get_non_stale_global_range): Adjust for gori_compute
	being a member rather than base class.
	(ranger_cache::set_global_range): Ditto.
	(ranger_cache::ssa_range_in_bb): Ditto.
	(ranger_cache::range_of_expr): New.
	(ranger_cache::range_on_edge): New.
	(ranger_cache::block_range): Adjust for gori_computes.  Debug changes.
	(ranger_cache::propagate_cache):  Adjust debugging output.
	(ranger_cache::fill_block_cache): Adjust for gori_computes.  Debug
	output changes.
	* gimple-range-cache.h (class ranger_cache): Make gori_compute a
	member, and inherit from range_query instead.
	(ranger_cache::dump_bb): New. split from dump.
	* gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete.
	(gori_compute::expr_range_at_stmt): Delete.
	(gori_compute::compute_name_range_op): Delete.
	(gori_compute::compute_operand_range_switch): Add fur_source.
	(gori_compute::compute_operand_range): Add fur_source param, inline
	old compute_name_range_op and optimize_logical_operands.
	(struct tf_range): Delete.
	(gori_compute::logical_combine): Adjust
	(gori_compute::optimize_logical_operands): Delete.
	(gori_compute::compute_logical_operands_in_chain): Delete.
	(gori_compute::compute_logical_operands): Adjust.
	(gori_compute::compute_operand1_range): Adjust to fur_source.
	(gori_compute::compute_operand2_range): Ditto.
	(gori_compute::compute_operand1_and_operand2_range): Ditto.
	(gori_compute::outgoing_edge_range_p): Add range_query parameter,
	and adjust to fur_source.
	* gimple-range-gori.h (class gori_compute): Simplify and adjust to
	range_query and fur_source.
	* gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge
	from the ranger_cache..
	(gimple_ranger::fold_range_internal): Adjust to base class change of
	ranger_cache.
	(gimple_ranger::dump_bb): Adjust dump.
	* gimple-range.h (gimple_ranger):export gori computes object.

2021-06-01  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/100774
	* gimple-range-cache.cc (ranger_cache::get_non_stale_global_range):
	Constant values are also not stale.
	(ranger_cache::set_global_range): Range invariant values should also
	have the correct timestamp.

2021-05-31  Martin Liska  <mliska@suse.cz>

	* tree-streamer-in.c (unpack_ts_function_decl_value_fields):
	Unpack FUNCTION_DECL_DECL_TYPE.
	* tree-streamer-out.c (pack_ts_function_decl_value_fields):
	Stream FUNCTION_DECL_DECL_TYPE instead of
	DECL_IS_OPERATOR_NEW_P.
	* tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE
	macro.
	(DECL_IS_OPERATOR_NEW_P): Likewise.
	(DECL_IS_OPERATOR_DELETE_P): Likewise.
	(DECL_LAMBDA_FUNCTION_P): Likewise.

2021-05-31  Richard Biener  <rguenther@suse.de>

	PR c++/88601
	* internal-fn.c (expand_SHUFFLEVECTOR): Define.
	* internal-fn.def (SHUFFLEVECTOR): New.
	* internal-fn.h (expand_SHUFFLEVECTOR): Declare.
	* doc/extend.texi: Document __builtin_shufflevector.

2021-05-31  Peter Bergner  <bergner@linux.ibm.com>

	PR target/99842
	* config/rs6000/predicates.md(mma_assemble_input_operand): Allow
	indexed form addresses.

2021-05-29  Jeff Law  <jlaw@tachyum.com>

	* config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused
	parameter.  Call callers fixed.
	(push): Likewise.
	(output_plussi): Add FALLTHRU markers.
	(h8300_shift_needs_scratch_p): Add gcc_unreachable marker.

2021-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* gimplify.c (gimplify_scan_omp_clauses): For taskloop simd
	combined with parallel, make sure to add shared clause to
	parallel for explicit linear clause.

2021-05-29  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/100787
	* gimple-ssa-evrp.c: Disable exporting of global ranges.

2021-05-28  Jason Merrill  <jason@redhat.com>

	* tree-iterator.h (struct tree_stmt_iterator): Add operator++,
	operator--, operator*, operator==, and operator!=.
	(class tsi_range): New.

2021-05-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100778
	* tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly
	trapping ops in different BBs.

2021-05-28  Richard Biener  <rguenther@suse.de>

	PR ipa/100791
	* tree-inline.c (copy_bb): When processing __builtin_va_arg_pack
	copy fntype from original call.

2021-05-28  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/100751
	* doc/gcov.texi: Revert partially a hunk that was wrong.

2021-05-28  Cooper Qu  <cooper.qu@linux.alibaba.com>

	* config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi):
	Defined.
	(HAVE_sync_compare_and_swaphi): Likewise.
	(HAVE_sync_compare_and_swapsi): Likewise.

2021-05-28  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define.

2021-05-28  Tobias Burnus  <tobias@codesourcery.com>

	* gimplify.c (gimplify_omp_affinity): New.
	(gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY.
	* tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause.
	(walk_tree_1): Handle OMP_CLAUSE_AFFINITY.

2021-05-28  Joern Rennecke  <joern.rennecke@riscy-ip.com>
	    Richard Biener   <rguenther@suse.de>

	* match.pd <popcount & / + pattern matching>:
	When generating popcount directly fails, try doing it in two halves.

2021-05-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* Makefile.in (generated_files): Add gimple-match.c and
	generic-match.c

2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>

	* gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP.

2021-05-28  Joern Rennecke  <joern.rennecke@embecosm.com>

	* gensupport.c (alter_constraints): Add MATCH_SCRATCH case.

2021-05-28  Kewen Lin  <linkw@linux.ibm.com>

	PR tree-optimization/99398
	* tree-ssa-forwprop.c (simplify_permutation): Optimize some cases
	where the fed operands are CTOR/CST and propagated through
	VIEW_CONVERT_EXPR.  Call vec_perm_indices::new_shrunk_vector.
	* vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New
	function.
	* vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New
	declare.

2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (addv2sf3): Do not call
	ix86_fixup_binary_operands_no_copy.
	(subv2sf3): Ditto.
	(mulv2sf3): Ditto.
	(<smaxmin:code>v2sf3): Ditto.
	(<plusminus:insn><MMXMODEI:mode>3): Ditto.
	(<plusminus:insn><VI_32:mode>3): Remove expander.
	(<plusminus:insn><VI_32:mode>3): Rename from
	"*<plusminus:insn><VI_32:mode>3".
	(mulv4hi): Do not call ix86_fixup_binary_operands_no_copy.
	(mulv2hi3): Remove expander.
	(mulv2hi3): Rename from *mulv2hi3.
	(<s>mulv2hi3_highpart): Remove expander.
	(<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart.
	(<smaxmin:code><MMXMODE14:mode>3): Rename from
	"*mmx_<smaxmin:code><MMXMODE14:mode>3".
	(<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander.
	(SMAXMIN_MMXMODEI): Remove mode iterator.
	(<smaxmin:code>v4hi3): New expander.
	(<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3.
	(<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3.
	(<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
	(SMAXMIN_VI_32): Remove mode iterator.
	(<umaxmin:code><MMXMODE24:mode>3): Rename from
	"*mmx_<umaxmin:code><MMXMODE24:mode>3".
	(<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander.
	(UMAXMIN_MMXMODEI): Remove mode iterator.
	(<umaxmin:code>v8qi3): New expander.
	(<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3.
	(<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3.
	(<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander.
	(UMAXMIN_VI_32): Remove mode iterator.
	(<any_shift:insn>v2hi3): Remove expander.
	(<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3.
	(<any_logic:code><MMXMODEI:mode>3): Do not call
	ix86_fixup_binary_operands_no_copy.
	(<any_logic:code><VI_32:mode>3): Remove expander.
	(<any_logic:code><VI_32:mode>3): Rename from
	"*<any_logic:code><VI_32:mode>3".
	(uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy.
	* config/i386/sse.md (div<VF2:mode>3): Do not call
	ix86_fixup_binary_operands_no_copy.
	(div<VF1:mode>3): Ditto.
	(<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto.
	(smulhrsv4hi3): Ditto.
	(smulhrsv2hi3): Ditto.

2021-05-27  Martin Sebor  <msebor@redhat.com>

	* ggc.h (gt_ggc_mx): Add overloads for all integers.
	(gt_pch_nx):  Same.
	* hash-map.h (class hash_map): Add pch_nx_helper overloads for all
	integers.
	(hash_map::operator==): New function.

2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
	For TARGET_XOP bypass SSE comparisons for all supported vector modes.
	* config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern.
	(*xop_maskcmp<VI_32:mode>3): Ditto.
	(*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto.
	(*xop_maskcmp_uns<VI_32:mode>3): Ditto.

2021-05-27  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100767
	* config/arm/arm.c (arm_configure_build_target): Remove parameter
	opts_set, directly check opts parameters for being non-null.
	(arm_option_restore): Update call to arm_configure_build_target.
	(arm_option_override): Likewise.
	(arm_can_inline_p): Likewise.
	(arm_valid_target_attribute_tree): Likewise.
	* config/arm/arm-c.c (arm_pragma_target_parse): Likewise.
	* config/arm/arm-protos.h (arm_configure_build_target): Adjust
	prototype.

2021-05-27  Aldy Hernandez  <aldyh@redhat.com>

	* vr-values.c (simplify_conversion_using_ranges): Use
	get_range_query instead of get_global_range_query.

2021-05-27  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-range.cc (get_range_global): Move to value-query.cc.
	(gimple_range_global): Same.
	(get_global_range_query): Same.
	(global_range_query::range_of_expr): Same.
	* gimple-range.h (class global_range_query): Move to
	value-query.h.
	(gimple_range_global): Same.
	* tree-ssanames.c (get_range_info): Move to value-query.cc.
	(get_ptr_nonnull): Same.
	* tree-ssanames.h (get_range_info): Remove.
	(get_ptr_nonnull): Remove.
	* value-query.cc (get_ssa_name_range_info): Move from
	tree-ssanames.c.
	(get_ssa_name_ptr_info_nonnull): Same.
	(get_range_global): Move from gimple-range.cc.
	(gimple_range_global): Same.
	(get_global_range_query): Same.
	(global_range_query::range_of_expr): Same.
	* value-query.h (class global_range_query): Move from
	gimple-range.h.
	(gimple_range_global): Same.

2021-05-27  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern.
	(uavgv2hi3_ceil): Ditto.

2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	PR c/100653
	* doc/extend.texi (scalar_storage_order): Rephrase slightly.

2021-05-26  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssanames.c (get_range_info): Merge both copies of
	get_range_info into one that works with irange.
	* tree-ssanames.h (get_range_info): Remove version that works on
	wide_ints.

2021-05-26  Aldy Hernandez  <aldyh@redhat.com>

	* builtins.c (check_nul_terminated_array): Convert to get_range_query.
	(expand_builtin_strnlen): Same.
	(determine_block_size): Same.
	* fold-const.c (expr_not_equal_to): Same.
	* gimple-fold.c (size_must_be_zero_p): Same.
	* gimple-match-head.c: Include gimple-range.h.
	* gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query.
	* gimple-ssa-warn-restrict.c
	(builtin_memref::extend_offset_range): Same.
	* graphite-sese-to-poly.c (add_param_constraints): Same.
	* internal-fn.c (get_min_precision): Same.
	* ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same.
	* ipa-prop.c (ipa_compute_jump_functions_for_edge): Same.
	* match.pd: Same.
	* tree-data-ref.c (split_constant_offset): Same.
	(dr_step_indicator): Same.
	* tree-dfa.c (get_ref_base_and_extent): Same.
	* tree-scalar-evolution.c (iv_can_overflow_p): Same.
	* tree-ssa-loop-niter.c (refine_value_range_using_guard): Same.
	(determine_value_range): Same.
	(record_nonwrapping_iv): Same.
	(infer_loop_bounds_from_signedness): Same.
	(scev_var_range_cant_overflow): Same.
	* tree-ssa-phiopt.c (two_value_replacement): Same.
	* tree-ssa-pre.c (insert_into_preds_of_block): Same.
	* tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same.
	* tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same.
	(get_range): Same.
	(dump_strlen_info): Same.
	(set_strlen_range): Same.
	(maybe_diag_stxncpy_trunc): Same.
	(get_len_or_size): Same.
	(handle_integral_assign): Same.
	* tree-ssa-structalias.c (find_what_p_points_to): Same.
	* tree-ssa-uninit.c (find_var_cmp_const): Same.
	* tree-switch-conversion.c (bit_test_cluster::emit): Same.
	* tree-vect-patterns.c (vect_get_range_info): Same.
	(vect_recog_divmod_pattern): Same.
	* tree-vrp.c (intersect_range_with_nonzero_bits): Same.
	(register_edge_assert_for_2): Same.
	(determine_value_range_1): Same.
	* tree.c (get_range_pos_neg): Same.
	* vr-values.c (vr_values::get_lattice_entry): Same.
	(vr_values::update_value_range): Same.
	(simplify_conversion_using_ranges): Same.

2021-05-26  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ssa-warn-alloca.c (alloca_call_type): Use
	  get_range_query instead of query argument.
	(pass_walloca::execute): Enable and disable global ranger.

2021-05-26  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call
	enable_ranger.
	(rvrp_folder::~rvrp_folder): Call disable_ranger.
	(hybrid_folder::hybrid_folder): Call enable_ranger.
	(hybrid_folder::~hybrid_folder): Call disable_ranger.

2021-05-26  Aldy Hernandez  <aldyh@redhat.com>

	* function.c (allocate_struct_function): Set cfun->x_range_query.
	* function.h (struct function): Declare x_range_query.
	(get_range_query): New.
	(get_global_range_query): New.
	* gimple-range-cache.cc (ssa_global_cache::ssa_global_cache):
	Remove call to safe_grow_cleared.
	* gimple-range.cc (get_range_global): New.
	(gimple_range_global): Move from gimple-range.h.
	(get_global_range_query): New.
	(global_range_query::range_of_expr): New.
	(enable_ranger): New.
	(disable_ranger): New.
	* gimple-range.h (gimple_range_global): Move to gimple-range.cc.
	(class global_range_query): New.
	(enable_ranger): New.
	(disable_ranger): New.
	* gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename
	dump_all_value_ranges to dump.
	* tree-vrp.c (vrp_prop::finalize): Same.
	* value-query.cc (range_query::dump): New.
	* value-query.h (range_query::dump): New.
	* vr-values.c (vr_values::dump_all_value_ranges): Rename to...
	(vr_values::dump): ...this.
	* vr-values.h (class vr_values): Rename dump_all_value_ranges to
	dump and make virtual.

2021-05-26  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.c (ix86_autovectorize_vector_modes):
	Add V4QImode and V16QImode for TARGET_SSE2.
	* doc/sourcebuild.texi (Vector-specific attributes):
	Add vect64 and vect32 description.

2021-05-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* gimple-range-gori.cc (range_def_chain::register_dependency):
	Resize m_def_chain when needed.

2021-05-26  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'.
	* config/arm/neon.md (reduc_plus_scal_<mode>): Move to ..
	* config/arm/vec-common.md: .. here. Add support for MVE.

2021-05-26  Jakub Jelinek  <jakub@redhat.com>

	* config/epiphany/epiphany.c (epiphany_print_operand_address): Remove
	register keywords.
	* config/microblaze/microblaze.c (microblaze_legitimize_address,
	call_internal1,
	microblaze_option_override, print_operand): Likewise.
	* config/microblaze/microblaze.md (call_internal_plt,
	call_value_intern_plt, call_value_intern): Likewise.
	* config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise.
	* config/iq2000/iq2000.md (call_internal1, call_value_internal1,
	call_value_multiple_internal1): Likewise.
	* config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise.

2021-05-26  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

	* config/arc/arc.c (arc_address_cost, arc_print_operand_address,
	arc_ccfsm_advance, symbolic_reference_mentioned_p,
	arc_raw_symbolic_reference_mentioned_p): Remove register
	keyword.

2021-05-26  Jakub Jelinek  <jakub@redhat.com>

	PR libgomp/100573
	* omp-low.c: Include omp-offload.h.
	(create_omp_child_function): If current_function_decl has
	"omp declare target" attribute and is_gimple_omp_offloaded,
	remove that attribute from the copy of attribute list and
	add "omp target entrypoint" attribute instead.
	(lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.*
	variables for offloading if in omp_maybe_offloaded_ctx.
	* omp-offload.c (pass_omp_target_link::execute): Nullify second
	argument to GOMP_target_data_ext in offloaded code.

2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.c (csky_can_change_mode_class): Delete.
	For csky, HF/SF mode use the low bits of VREGS.

2021-05-26  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a
	DECL which is a reference for OMP.

2021-05-26  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/100751
	* doc/gcov.texi: Document that __gcov_dump can be called just
	once and that __gcov_reset resets run-time counters.

2021-05-26  Martin Liska  <mliska@suse.cz>

	* doc/install.texi: Port relevant part from install-old.texi
	and re-generate list of CPUs and systems.

2021-05-26  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Remove it.
	* doc/include/fdl.texi: Update next/previous chapters.
	* doc/install.texi: Likewise.
	* doc/install-old.texi: Removed.

2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.c (ck810_legitimate_index_p): Support
	"base + index" with DF mode.
	* config/csky/constraints.md ("Y"): New constraint for memory operands
	without index register.
	* config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m"
	when mov between memory and general registers, and lower their priority.
	* config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise.

2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete.

2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.md (untyped_call): Emit clobber for return
	registers to mark them used.

2021-05-26  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.md (cskyv2_sextend_ldbs): New.

2021-05-26  Andrew Pinski  <apinski@marvell.com>

	* match.pd (x < 0 ? ~y : y): New patterns.

2021-05-26  Andrew Pinski  <apinski@marvell.com>

	* match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0,
	A?POW2:0 and A?0:POW2.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (class logical_stmt_cache): Delete
	(logical_stmt_cache::logical_stmt_cache ): Delete.
	(logical_stmt_cache::~logical_stmt_cache): Delete.
	(logical_stmt_cache::cache_entry::dump): Delete.
	(logical_stmt_cache::get_range): Delete.
	(logical_stmt_cache::cached_name ): Delete.
	(logical_stmt_cache::same_cached_name): Delete.
	(logical_stmt_cache::cacheable_p): Delete.
	(logical_stmt_cache::slot_diagnostics ): Delete.
	(logical_stmt_cache::dump): Delete.
	(gori_compute_cache::gori_compute_cache): Delete.
	(gori_compute_cache::~gori_compute_cache): Delete.
	(gori_compute_cache::compute_operand_range): Delete.
	(gori_compute_cache::cache_stmt): Delete.
	* gimple-range-gori.h (gori_compute::compute_operand_range): Remove
	virtual.
	(class gori_compute_cache): Delete.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori
	intead of m_cache.
	(fold_using_range::range_of_address): Adjust.
	(fold_using_range::range_of_phi): Adjust.
	* gimple-range.h (class fur_source): Adjust.
	(fur_source::fur_source): Adjust.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename
	from expr_range_in_bb and adjust.
	(gori_compute::compute_name_range_op): Adjust.
	(gori_compute::optimize_logical_operands): Adjust.
	(gori_compute::compute_logical_operands_in_chain): Adjust.
	(gori_compute::compute_operand1_range): Adjust.
	(gori_compute::compute_operand2_range): Adjust.
	(ori_compute_cache::cache_stmt): Adjust.
	* gimple-range-gori.h (gori_compute): Rename prototype.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be
	checked only after range_of_stmt, not range_on_entry.
	(gimple_ranger::range_on_entry): Check for non-null in any
	predecessor block, if it is not already non-null.
	(gimple_ranger::range_on_exit): DOnt check for non-null after
	range on entry call.
	(gimple_ranger::dump_bb): New.  Split from dump.
	(gimple_ranger::dump): Adjust.
	* gimple-range.h (class gimple_ranger): Adjust.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (struct range_timestamp): Delete.
	(class temporal_cache): Adjust.
	(temporal_cache::get_timestamp): Delete.
	(temporal_cache::set_dependency): Delete.
	(temporal_cache::temporal_value): Adjust.
	(temporal_cache::current_p): Take dependencies as params.
	(temporal_cache::set_timestamp): Adjust.
	(temporal_cache::set_always_current): Adjust.
	(ranger_cache::get_non_stale_global_range): Adjust.
	(ranger_cache::register_dependency): Delete.
	* gimple-range-cache.h (class range_cache): Adjust.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (range_def_chain::range_def_chain): init
	bitmap obstack.
	(range_def_chain::~range_def_chain): Dispose of obstack rather than
	each individual bitmap.
	(range_def_chain::set_import): New.
	(range_def_chain::get_imports): New.
	(range_def_chain::chain_import_p): New.
	(range_def_chain::register_dependency): Rename from build_def_chain
	and set imports.
	(range_def_chain::def_chain_in_bitmap_p): New.
	(range_def_chain::add_def_chain_to_bitmap): New.
	(range_def_chain::has_def_chain): Just check first depenedence.
	(range_def_chain::get_def_chain): Process imports, use generic
	register_dependency routine.
	(range_def_chain::dump): New.
	(gori_map::gori_map): Allocate import list.
	(gori_map::~gori_map): Release imports.
	(gori_map::exports): Check for past allocated block size.
	(gori_map::imports): New.
	(gori_map::def_chain_in_export_p): Delete.
	(gori_map::is_import_p): New.
	(gori_map::maybe_add_gori): Handle imports.
	(gori_map::dump): Adjust output, add imports.
	(gori_compute::has_edge_range_p): Remove def_chain_in_export call.
	(gori_export_iterator::gori_export_iterator): New.
	(gori_export_iterator::next): New.
	(gori_export_iterator::get_name): New.
	* gimple-range-gori.h (range_def_chain): Add imports and direct
	dependecies via struct rdc.
	(range_def_chain::depend1): New.
	(range_def_chain::depend2): New.
	(class gori_map): Adjust.
	(FOR_EACH_GORI_IMPORT_NAME): New.
	(FOR_EACH_GORI_EXPORT_NAME): New.
	(class gori_export_iterator): New.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::ranger_cache):  Move initial
	export cache filling to here.
	* gimple-range-gori.cc (gori_compute::gori_compute) : From Here.

2021-05-25  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h.
	(gori_map): Move to gimple-range-gori.h.
	(gori_compute::gori_compute): Adjust.
	(gori_compute::~gori_compute): Delete.
	(gori_compute::compute_operand_range_switch): Adjust.
	(gori_compute::compute_operand_range): Adjust.
	(gori_compute::compute_logical_operands): Adjust.
	(gori_compute::has_edge_range_p ): Adjust.
	(gori_compute::set_range_invariant): Delete.
	(gori_compute::dump): Adjust.
	(gori_compute::outgoing_edge_range_p): Adjust.
	* gimple-range-gori.h (class range_def_chain): Relocate here.
	(class gori_map): Relocate here.
	(class gori_compute): Inherit from gori_map, and adjust.

2021-05-25  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (range_tests_legacy): Use
	build_nonstandard_integer_type instead of int and short.

2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL
	when really creating an initialization statement for it.

2021-05-25  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.c (setup_one_parameter): Fix thinko in new condition.

2021-05-25  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax.

2021-05-25  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/92860
	PR target/99592
	* optc-save-gen.awk: Remove exceptions.

2021-05-25  Martin Liska  <mliska@suse.cz>

	* asan.h (sanitize_coverage_p): New function.
	* doc/extend.texi: Document it.
	* fold-const.c (fold_range_test): Use sanitize_flags_p
	instead of flag_sanitize_coverage.
	(fold_truth_andor): Likewise.
	* sancov.c: Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle
	-fsanitize-coverage when inlining.

2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>

	* config/csky/csky-modes.def : Fix copyright.

2021-05-25  Cooper Qu  <cooper.qu@linux.alibaba.com>

	* config/csky/csky-modes.def : Amend copyright.
	* config/csky/csky_insn_fpuv2.md : Likewise.
	* config/csky/csky_insn_fpuv3.md : Likewise.

2021-05-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/100727
	* calls.c (initialize_argument_information): Explicitely test
	for WITH_SIZE_EXPR.
	* gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR.

2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.h (FRAME_POINTER_REGNUM): Use
	HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of
	the signle definition. The signle definition may not work well
	at simplify_subreg_regno().
	(HARD_FRAME_POINTER_REGNUM): New.
	(ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM.
	* config/csky/csky.c (get_csky_live_regs, csky_can_eliminate,
	csky_initial_elimination_offset, csky_expand_prologue,
	csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM.

2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/csky.c (csky_option_override):
	Init csky_arch_isa_features[] in advance, so TARGET_DSP
	and TARGET_DIV can be set well.

2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/constraints.md ("l", "h"): Delete.
	* config/csky/csky.h (reg_class, REG_CLASS_NAMES,
	REG_CLASS_CONTENTS):  Delete LO_REGS and HI_REGS.
	* config/csky/csky.c (regno_reg_classm,
	csky_secondary_reload, csky_register_move_cost):
	Use HILO_REGS instead of LO_REGS and HI_REGS.

2021-05-25  Geng Qi  <gengqi@linux.alibaba.com>

	* config/csky/constraints.md ("W"): New constriant for mem operand
	with base reg, index register.
	("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to
	"csky_valid_mem_constraint_operand" to deal with both "Q" and "W"
	constraint.
	("Dv"): New constraint for const double value that can be used at
	fmovi instruction.
	* config/csky/csky-modes.def (HFmode): New mode.
	* config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename
	to "csky_valid_mem_constraint_operand" and support new constraint
	"W".
	(csky_get_movedouble_length): New.
	(fpuv3_output_move): New.
	(fpuv3_const_double): New.
	* config/csky/csky.c (csky_option_override): New arch CK860 with fpv3.
	(decompose_csky_address): Refine.
	(csky_print_operand): New "CONST_DOUBLE" operand.
	(csky_output_move): Support fpv3 instructions.
	(csky_get_movedouble_length): New.
	(fpuv3_output_move): New.
	(fpuv3_const_double): New.
	(csky_emit_compare): Cover float comparsion.
	(csky_emit_compare_float): Refine.
	(csky_vaild_fpuv2_mem_operand): Rename to
	"csky_valid_mem_constraint_operand" and support new constraint "W".
	(ck860_rtx_costs): New.
	(csky_rtx_costs): Add the cost calculation of CK860.
	(regno_reg_class): New vregs for fpuv3.
	(csky_dbx_regno): Likewise.
	(csky_cpu_cpp_builtins): New builtin macro for fpuv3.
	(csky_conditional_register_usage): Suporrot fpuv3.
	(csky_dwarf_register_span): Suporrot fpuv3.
	(csky_init_builtins, csky_mangle_type): Support "__fp16" type.
	(ck810_legitimate_index_p): Support fp16.
	* config/csky/csky.h (TARGET_TLS): ADD CK860.
	(CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3.
	(TARGET_SINGLE_FPU): Support fpuv3.
	(TARGET_SUPPORT_FPV3): New.
	(FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers.
	(FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES,
	 REG_CLASS_CONTENTS): Support fpuv3.
	* config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine.
	(csky_movsf_fpv2): Likewise.
	(ck801_movsf): Likewise.
	(csky_movsf): Likewise.
	(movdf): Likewise.
	(csky_movdf_fpv2): Likewise.
	(ck801_movdf): Likewise.
	(csky_movdf): Likewise.
	(movsicc): Refine. Use "comparison_operatior" instead of
	"ordered_comparison_operatior".
	(addsicc): Likewise.
	(CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant.
	(call_value_internal_vh): New.
	* config/csky/csky_cores.def (CK860): New arch and cpu.
	(fpv3_hf): New.
	(fpv3_hsf): New.
	(fpv3_sdf): New.
	(fpv3): New.
	* config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns
	into emit-patterns and match-patterns, remain the emit-patterns here,
	and move the match-patterns to csky_insn_fpuv2.md or
	csky_insn_fpuv3.md.
	* config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions.
	* config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3
	isntructions.
	* config/csky/csky_isa.def (fcr): New.
	(fpv3_hi): New.
	(fpv3_hf): New.
	(fpv3_sf): New.
	(fpv3_df): New.
	(CK860): New definition for ck860.
	* config/csky/csky_tables.opt (ck860): New processors ck860,
	ck860f. And new arch ck860.
	(fpv3_hf): New.
	(fpv3_hsf): New.
	(fpv3_hdf): New.
	(fpv3): New.
	* config/csky/predicates.md (csky_float_comparsion_operator): Delete
	"geu", "gtu", "leu", "ltu", which will never appear at float comparison.
	* config/csky/t-csky-elf: Support 860.
	* config/csky/t-csky-linux: Likewise.
	* doc/md.texi: Add "Q" and "W" constraints for C-SKY.

2021-05-24  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to
	add generation of logical-add and add-logical fusion pairs.
	* config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask
	and powerpc mask.
	* config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on
	logical-add and add-logical fusion by default.
	* config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and
	-mpower10-fusion-add-logical options.
	* config/rs6000/fusion.md: Regenerate file.

2021-05-24  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (irange::legacy_equal_p): Check type when
	comparing VR_VARYING types.
	(range_tests_legacy): Test comparing VARYING ranges of different
	sizes.

2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (neoversen1_tunings):
	Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND.

2021-05-24  Wilco Dijkstra  <wdijkstr@arm.com>

	* config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for
	extern weak symbols.  Limit symbol offsets for non-GOT symbols with
	PIC/PIE.

2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/neon.md (vec_load_lanesxi<mode>)
	(vec_store_lanexoi<mode>): Move ...
	* config/arm/vec-common.md: here.

2021-05-24  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/neon.md (vec_load_lanesoi<mode>)
	(vec_store_lanesoi<mode>): Move ...
	* config/arm/vec-common.md: here.

2021-05-24  liuhongt  <hongtao.liu@intel.com>

	PR target/100660
	* config/i386/i386.c (ix86_gimple_fold_builtin): Replacing
	stmt with GIMPLE_NOP when lhs doesn't exist.

2021-05-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100722
	* config/i386/mmx.md (*push<VI_32:mode>2_rex64):
	New instruction pattern.
	(*push<VI_32:mode>2): Ditto.
	(push splitter for SSE registers): New splitter.

2021-05-23  Andrew Pinski  <apinski@marvell.com>

	* match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types.

2021-05-22  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types.
	* config/rs6000/fusion.md: Regenerate file.

2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_addadd): New function.
	* config/rs6000/fusion.md: Regenerate file.
	* config/rs6000/rs6000-cpus.def: Add
	OPTION_MASK_P10_FUSION_2ADD to masks.
	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Handle default value of OPTION_MASK_P10_FUSION_2ADD.
	* config/rs6000/rs6000.opt: Add -mpower10-fusion-2add.

2021-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define.
	* gimplify.c (enum gimplify_omp_var_data): Fix up
	GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT.
	(omp_lastprivate_for_combined_outer_constructs): If combined target
	has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to
	GOVD_MAP | GOVD_SEEN.
	(gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for
	firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT.
	(gimplify_adjust_omp_clauses): For firstprivate clauses with
	OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and
	OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and
	let it be replaced by implicit map clause.

2021-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* gimplify.c (omp_lastprivate_for_combined_outer_constructs): New
	function.
	(gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it.
	(gimplify_omp_for): Likewise.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-low.c (oacc_privatization_candidate_p): Reject 'static',
	'external' in blocks.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* flag-types.h (enum openacc_privatization): New.
	* params.opt (-param=openacc-privatization): New.
	* doc/invoke.texi (openacc-privatization): Document it.
	* omp-general.h (get_openacc_privatization_dump_flags): New
	function.
	* omp-low.c (oacc_privatization_candidate_p): Add diagnostics.
	* omp-offload.c (execute_oacc_device_lower)
	<IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics.
	* target.def (goacc.adjust_private_decl): Add 'location_t'
	parameter.
	* doc/tm.texi: Regenerate.
	* config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust.
	* config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise.
	* config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl):
	Likewise.  Preserve it for...
	(nvptx_goacc_expand_var_decl): ... use here.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__'
	DejaGnu selector.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-low.c (oacc_privatization_candidate_p): New function.
	(oacc_privatization_scan_clause_chain)
	(oacc_privatization_scan_decl_chain): Use it.  Also
	'gcc_checking_assert' that we're not seeing duplicates.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-offload.c (execute_oacc_device_lower): Skip processing if no
	work to be done.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-offload.c (execute_oacc_device_lower): Explain.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-offload.c (execute_oacc_device_lower)
	<IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1'
	case, too.
	* internal-fn.c (expand_UNIQUE): Don't expect
	'IFN_UNIQUE_OACC_PRIVATE'.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses.

2021-05-21  Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl)
	(nvptx_goacc_expand_var_decl): Tighten.

2021-05-21  Julian Brown  <julian@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>
	    Thomas Schwinge  <thomas@codesourcery.com>

	PR middle-end/90115
	* doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL)
	(TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks.
	* doc/tm.texi: Regenerate.
	* expr.c (expand_expr_real_1): Expand decls using the
	expand_var_decl OpenACC hook if defined.
	* internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE.
	* internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE.
	* omp-low.c (omp_context): Add oacc_privatization_candidates
	field.
	(lower_oacc_reductions): Add PRIVATE_MARKER parameter.  Insert
	before fork.
	(lower_oacc_head_tail): Add PRIVATE_MARKER parameter.  Modify
	private marker's gimple call arguments, and pass it to
	lower_oacc_reductions.
	(oacc_privatization_scan_clause_chain)
	(oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
	New functions.
	(lower_omp_for, lower_omp_target, lower_omp_1): Use these.
	* omp-offload.c (convert.h): Include.
	(oacc_loop_xform_head_tail): Treat private-variable markers like
	fork/join when transforming head/tail sequences.
	(struct var_decl_rewrite_info): Add struct.
	(oacc_rewrite_var_decl, is_sync_builtin_call): New functions.
	(execute_oacc_device_lower): Support rewriting gang-private
	variables using target hook, and fix up addr_expr and var_decl
	nodes afterwards.
	* target.def (adjust_private_decl, expand_var_decl): New hooks.
	* config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl):
	Rename to...
	(gcn_goacc_adjust_private_decl): ...this.
	* config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl):
	Rename to...
	(gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter.
	* config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename
	definition using gcn_goacc_adjust_gangprivate_decl...
	(TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using
	gcn_goacc_adjust_private_decl.
	* config/nvptx/nvptx.c (tree-pretty-print.h): Include.
	(gang_private_shared_size): New global variable.
	(gang_private_shared_align): Likewise.
	(gang_private_shared_sym): Likewise.
	(gang_private_shared_hmap): Likewise.
	(nvptx_option_override): Initialize these.
	(nvptx_file_end): Output gang_private_shared_sym.
	(nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl):
	New functions.
	(nvptx_set_current_function): Clear gang_private_shared_hmap.
	(TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook.
	(TARGET_GOACC_EXPAND_VAR_DECL): Likewise.

2021-05-21  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed.

2021-05-21  Richard Biener  <rguenther@suse.de>
	    H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/90773
	* expr.c (expand_constructor): Elide expand_constructor if
	move by pieces is preferred.

2021-05-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_call_properties):
	Take a flag and mode value as arguments.
	(aarch64_modifies_global_state_p): Likewise.
	(aarch64_reads_global_state_p): Likewise.
	(aarch64_could_trap_p): Likewise.
	(aarch64_get_attributes): Likewise.
	(aarch64_init_simd_builtins): Adjust callsite of above.
	(aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get
	function attributes to apply to builtins.
	(aarch64_init_crc32_builtins): Likewise.
	(aarch64_init_builtin_rsqrt): Likewise.

2021-05-21  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/rs6000.md (define_attr "type"): Add types for fusion.
	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types.
	(gen_2logical): Use new fusion types.
	* config/rs6000/fusion.md: Regenerate.

2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386-expand.c (ix86_expand_sse_movcc):
	Handle V4QI and V2HI modes.
	(ix86_expand_sse_movcc): Ditto.
	* config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3):
	New instruction pattern.
	(*eq<VI_32:mode>3): Ditto.
	(*gt<VI_32:mode>3): Ditto.
	(*xop_pcmov_<VI_32:mode>): Ditto.
	(mmx_pblendvb32): Ditto.
	(mmx_pblendvb64): Rename from mmx_pblendvb.
	(vec_cmp<VI_32:mode><VI_32:mode>): New expander.
	(vec_cmpu<VI_32:mode><VI_32:mode>): Ditto.
	(vcond<VI_32:mode><VI_32:mode>): Ditto.
	(vcondu<VI_32:mode><VI_32:mode>): Ditto.
	(vcond_mask_<VI_32:mode><VI_32:mode>): Ditto.

2021-05-21  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94589
	* tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and
	rhs2, treat x <= 4 equivalently to x < 5 etc.  In cmp1 and cmp2 (if
	not the same as cmp3) treat <= the same as < and >= the same as >.
	Don't require that cond2_phi_edge is true edge, instead take
	false/true edges into account based on cmp1/cmp2 comparison kinds.

2021-05-21  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator.
	(<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander
	from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3
	using SMAXMIN_MMXMODEI mode iterator.
	(*<smaxmin:code>v4qi3): New insn pattern.
	(*<smaxmin:code>v2hi3): Ditto.
	(SMAXMIN_VI_32): New mode iterator.
	(<smaxmin:code><SMAXMIN_VI_32>mode3): New expander.
	(UMAXMIN_MMXMODEI): New mode iterator.
	(<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander
	from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3
	using UMAXMIN_MMXMODEI mode iterator.
	(*<umaxmin:code>v4qi3): New insn pattern.
	(*<umaxmin:code>v2hi3): Ditto.
	(UMAXMIN_VI_32): New mode iterator.
	(<umaxmin:code><UMAXMIN_VI_32>mode3): New expander.
	(abs<VI_32:mode>2): New insn pattern.
	(ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ...
	* config/i386/sse.md: ... here.

2021-05-20  Clement Chigot  <clement.chigot@atos.net>
	    David Edelsohn  <dje.gcc@gmail.com>

	* collect2.c (scan_prog_file): Issue non-fatal warning for
	non-COFF files.

2021-05-20  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (-Wno-c++11-extensions)
	(-Wno-c++14-extensions, -Wno-c++17-extensions)
	(-Wno-c++20-extensions, -Wno-c++23-extensions): Document
	new options.

2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>

	* config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p.
	* config/darwin.c (darwin_override_options): Likewise.
	* config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
	* config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
	(DWARF2_FRAME_REG_OUT): Likewise.
	* config/mips/mips.c (mips_output_filename): Likewise.
	* config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name):
	Likewise.
	(rs6000_dbx_register_number): Likewise.
	* dbxout.c: Include flags.h.
	* dwarf2cfi.c (cfi_label_required_p): Likewise.
	(dwarf2out_do_frame): Likewise.
	* except.c: Include flags.h.
	* final.c (dwarf2_debug_info_emitted_p): Likewise.
	(final_scan_insn_1): Likewise.
	* flags.h (dwarf_debuginfo_p): New function declaration.
	* opts.c (dwarf_debuginfo_p): New function definition.
	* targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p.
	* toplev.c (process_options): Likewise.

2021-05-20  Indu Bhagat  <indu.bhagat@oracle.com>

	* common.opt: Change type to support bitmasks.
	* flag-types.h (enum debug_info_type): Rename enumerator constants.
	(NO_DEBUG): New bitmask.
	(DBX_DEBUG): Likewise.
	(DWARF2_DEBUG): Likewise.
	(XCOFF_DEBUG): Likewise.
	(VMS_DEBUG): Likewise.
	(VMS_AND_DWARF2_DEBUG): Likewise.
	* flags.h (debug_set_to_format): New function declaration.
	(debug_set_count): Likewise.
	(debug_set_names): Likewise.
	* opts.c (debug_type_masks): Array of bitmasks for debug formats.
	(debug_set_to_format): New function definition.
	(debug_set_count): Likewise.
	(debug_set_names): Likewise.
	(set_debug_level): Update access to debug_type_names.
	* toplev.c: Likewise.

2021-05-20  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100684
	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda.

2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100701
	* config/i386/i386.md (isa): Remove x64_bmi.
	(enabled): Remove x64_bmi.
	* config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
	Remove general register alternative.
	(*andnot<VI_32:mode>3): Ditto.
	(*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.
	(*<any_logic:code><VI_32:mode>3): Ditto.

2021-05-20  Kewen Lin  <linkw@linux.ibm.com>

	* config/arm/arm.c: Include head files tree-vectorizer.h and
	cfgloop.h.

2021-05-20  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes.
	(*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint.
	(<s>mulv4hi3_highpart): New expander.
	(*<s>mulv2hi3_highpart): New insn pattern.
	(<s>mulv2hi3_higpart): New expander.
	(*<any_shift:insn>v2hi3): New insn pattern.
	(<any_shift:insn>v2hi3): New expander.
	* config/i386/sse.md (smulhrsv2hi3): New expander.
	(*smulhrsv2hi3): New insn pattern.

2021-05-20  Kewen Lin  <linkw@linux.ibm.com>

	* doc/invoke.texi (vect-inner-loop-cost-factor): Document new
	parameter.
	* params.opt (vect-inner-loop-cost-factor): New.
	* targhooks.c (default_add_stmt_cost): Replace hardcoded factor
	50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file
	tree-vectorizer.h and its required ones.
	* config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace
	hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR.
	* config/arm/arm.c (arm_add_stmt_cost): Likewise.
	* config/i386/i386.c (ix86_add_stmt_cost): Likewise.
	* config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise.
	* tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
	Likewise.
	(_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor.
	* tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor.
	(LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro.

2021-05-20  Christophe Lyon  <christophe.lyon@linaro.org>
	    Torbjörn Svensson  <torbjorn.svensson@st.com>

	PR c/42579
	* doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__.

2021-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For
	explicit linear clause when combined with target, make it map(tofrom:)
	instead of no clause or firstprivate.

2021-05-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94589
	* match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence
	of integral conversions.

2021-05-19  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.cc (fur_source::get_operand): New.
	(gimple_range_fold): Delete.
	(fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt.
	(fold_using_range::range_of_range_op): Move from gimple_ranger.
	(fold_using_range::range_of_address): Ditto.
	(fold_using_range::range_of_phi): Ditto.
	(fold_using_range::range_of_call): Ditto.
	(fold_using_range::range_of_builtin_ubsan_call): Move from
	range_of_builtin_ubsan_call.
	(fold_using_range::range_of_builtin_call): Move from
	range_of_builtin_call.
	(gimple_ranger::range_of_builtin_call): Delete.
	(fold_using_range::range_of_cond_expr): Move from gimple_ranger.
	(gimple_ranger::fold_range_internal): New.
	(gimple_ranger::range_of_stmt): Use new fold_using_range API.
	(fold_using_range::range_of_ssa_name_with_loop_info): Move from
	gimple_ranger.  Improve ranges of SSA_NAMES when possible.
	* gimple-range.h (gimple_ranger): Remove various range_of routines.
	(class fur_source): New.
	(class fold_using_range): New.
	(fur_source::fur_source): New.
	(fold_range): New.
	* vr-values.c (vr_values::extract_range_basic): Use fold_using_range
	instead of range_of_builtin_call.

2021-05-19  Jonathan Wakely  <jwakely@redhat.com>

	* doc/cpp.texi (Common Predefined Macros): Update documentation
	for the __GXX_EXPERIMENTAL_CXX0X__ macro.

2021-05-19  Alex Coplan  <alex.coplan@arm.com>

	PR target/100333
	* config/arm/arm.md (nonsecure_call_internal): Always ensure
	callee's address is in a register.

2021-05-19  Geng Qi  <gengqi@linux.alibaba.com>

	* common/config/riscv/riscv-common.c
	(riscv_subset_list::parsing_subset_version): Properly parse the letter
	'p' in '-march'.
	(riscv_subset_list::parse_std_ext,
	 riscv_subset_list::parse_multiletter_ext): To handle errors generated
	in riscv_subset_list::parsing_subset_version.

2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q"
	type attribute in patterns generating XTN(2).

2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>):
	Remove as duplicate of...
	(aarch64_xtn<mode>): This.
	(aarch64_xtn2<mode>_le): Move position in file.
	(aarch64_xtn2<mode>_be): Move position in file.
	(aarch64_xtn2<mode>): Move position in file.
	(vec_pack_trunc_<mode>): Define as an expander.

2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Split builtin
	generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into
	separate scalar and vector generators.
	* config/aarch64/aarch64-simd.md
	(aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and
	split into...
	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and...
	(aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This.
	* config/aarch64/iterators.md: Define SD_HSDI iterator.

2021-05-19  Jonathn Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead
	of UNSPEC_SQXTUN2.
	* config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2.

2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>):
	Implement as an expand emitting a big/little endian
	instruction pattern.
	(aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define.
	(aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define.

2021-05-19  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>):
	Implement as an expand emitting a big/little endian
	instruction pattern.
	(aarch64_<sur><addsub>hn2<mode>_insn_le): Define.
	(aarch64_<sur><addsub>hn2<mode>_insn_be): Define.
	* config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and
	UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator.

2021-05-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/100672
	* fold-const.c (fold_negate_expr_1): Use element_precision.
	(negate_expr_p): Likewise.

2021-05-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator.
	(pred_load): New int attribute.
	* config/aarch64/aarch64-sve.md
	(aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use
	SVE_PRED_LOAD enum iterator and corresponding pred_load attribute.
	* config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to
	code_for_aarch64_load.

2021-05-19  Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (discover_nonconstant_array_refs_r): Make
	sure TARGET_MEM_REF bases are expanded as memory.
	* tree-ssa-operands.c (operands_scanner::get_tmr_operands):
	Do not mark TARGET_MEM_REF bases addressable.
	* tree-ssa.c (non_rewritable_mem_ref_base): Handle
	TARGET_MEM_REF bases as never rewritable.
	* gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
	walk TARGET_MEM_REF bases as address-takens.
	* tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.

2021-05-19  Richard Biener  <rguenther@suse.de>

	* builtins.c (get_object_alignment_1): Strip outer
	WITH_SIZE_EXPR.
	* tree-dfa.c (get_ref_base_and_extent): Handle outer
	WITH_SIZE_EXPR for size processing and process the
	containing ref.
	* tree-ssa-alias.c (ao_ref_base_alias_set): Strip
	outer WITH_SIZE_EXPR.
	(ao_ref_base_alias_ptr_type): Likewise.
	(refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref
	and handle that accordingly, stripping it for the
	core alias workers.
	* tree.c (get_base_address): Handle WITH_SIZE_EXPR by
	looking through it instead of returning NULL.

2021-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/100576
	* builtins.c (check_read_access): Convert bound to size_type_node if
	non-NULL.

2021-05-19  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_types_in_gimple_min_lval): Inline...
	(verify_types_in_gimple_reference): ... here.  Sanitize.
	(verify_gimple_call): Verify references in LHS and arguments.
	(verify_gimple_assign_single): Reject WITH_SIZE_EXPR.

2021-05-19  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (VALID_INT_MODE_P):
	Add V8QI, V4HI and V2SI modes for TARGET_64BIT.
	* config/i386/i386.md (isa): Add x64_bmi.
	(enabled): Handle x64_bmi.
	* config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3):
	Add alternative using 64bit general registers.
	(*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto.

2021-05-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99928
	* tree.h (OMP_MASTER_COMBINED): Define.
	* gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate
	handling for outer combined/composite constructs to a loop.
	Handle lastprivate on combined target.
	(gimplify_expr): Formatting fix.

2021-05-19  Xionghu Luo  <luoxhu@linux.ibm.com>

	* passes.def: Add sink_code pass before store_merging.
	* tree-ssa-sink.c (pass_sink_code:clone): New.

2021-05-18  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to
	rs6000_special_adjust_field_align_p.
	* config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise.
	* config/rs6000/rs6000-call.c (rs6000_function_arg_boundary):
	Remove ABI warning.
	(rs6000_function_arg): Likewise.
	* config/rs6000/rs6000-protos.h
	(rs6000_special_adjust_field_align_p): Remove prototype.
	* config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p):
	Remove.
	* config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to
	rs6000_special_adjust_field_align_p.

2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100637
	* config/i386/i386.h (VALID_SSE2_REG_MODE):
	Add V4QI and V2HI modes.
	(VALID_INT_MODE_P): Ditto.
	* config/i386/mmx.md (VI_32): New mode iterator.
	(mmxvecsize): Handle V4QI and V2HI.
	(Yv_Yw): Ditto.
	(mov<VI_32:mode>): New expander.
	(*mov<mode>_internal): New insn pattern.
	(movmisalign<VI_32:mode>): New expander.
	(neg<VI_32:mode>): New expander.
	(<plusminus:insn><VI_32:mode>3): New expander.
	(*<plusminus:insn><VI_32:mode>3): New insn pattern.
	(mulv2hi3): New expander.
	(*mulv2hi3): New insn pattern.
	(one_cmpl<VI_32:mode>2): New expander.
	(*andnot<VI_32:mode>3): New insn pattern.
	(<any_logic:code><VI_32:mode>3): New expander.
	(*<any_logic:code><VI_32:mode>3): New insn pattern.

2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (<any_extend:insn>v4qiv4di2):
	Fix a mode mismatch with operand 1.

2021-05-18  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100626
	* config/i386/i386-expand.c (split_double_mode): Return
	temporary register when simplify_gen_subreg fails with
	the high half od the paradoxical subreg.

2021-05-18  Richard Biener  <rguenther@suse.de>

	* cfgexpand.c (expand_one_var): Pass in forced_stack_var
	and honor it when expanding.
	(expand_used_vars_for_block): Pass through forced_stack_var.
	(expand_used_vars): Likewise.
	(discover_nonconstant_array_refs_r): Set bits in
	forced_stack_vars instead of marking vars TREE_ADDRESSABLE.
	(avoid_type_punning_on_regs): Likewise.
	(discover_nonconstant_array_refs): Likewise.
	(pass_expand::execute): Create and pass down forced_stack_var
	bitmap.  For parameters and returns temporarily set
	TREE_ADDRESSABLE when expand_function_start.

2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>

	* doc/sourcebuild.texi: Document 'dg-note'.

2021-05-18  Tobias Burnus  <tobias@codesourcery.com>

	PR other/100598
	* configure: Regenerate.
	* configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@).

2021-05-18  Thomas Schwinge  <thomas@codesourcery.com>

	* gimple.h (is_gimple_omp_oacc): Tighten.
	* omp-low.c (check_omp_nesting_restrictions): Adjust.

2021-05-18  Richard Biener  <rguenther@suse.de>

	* tree-ssa-operands.c (mark_address_taken): Simplify.

2021-05-18  Martin Liska  <mliska@suse.cz>

	* config/gcn/mkoffload.c (STR): Redefine.
	* config/i386/intelmic-mkoffload.c (STR): Likewise.
	* config/nvptx/mkoffload.c (STR): Likewise.

2021-05-18  Martin Liska  <mliska@suse.cz>

	* common/config/aarch64/aarch64-common.c (aarch64_parse_extension):
	Use startswith function instead of strncmp.
	* common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
	* common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise.
	* config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise.
	* config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise.
	* config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise.
	* config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
	* config/arm/arm.c (arm_file_start): Likewise.
	(arm_valid_target_attribute_rec): Likewise.
	(thumb1_md_asm_adjust): Likewise.
	* config/arm/driver-arm.c (host_detect_local_cpu): Likewise.
	* config/avr/avr.c (STR_PREFIX_P): Likewise.
	(avr_set_current_function): Likewise.
	(avr_handle_addr_attribute): Likewise.
	(avr_asm_output_aligned_decl_common): Likewise.
	(avr_asm_named_section): Likewise.
	(avr_section_type_flags): Likewise.
	(avr_asm_select_section): Likewise.
	* config/c6x/c6x.c (c6x_in_small_data_p): Likewise.
	(c6x_section_type_flags): Likewise.
	* config/darwin-c.c (darwin_cfstring_ref_p): Likewise.
	(darwin_objc_declare_unresolved_class_reference): Likewise.
	(darwin_objc_declare_class_definition): Likewise.
	* config/darwin.c (indirect_data): Likewise.
	(darwin_encode_section_info): Likewise.
	(darwin_objc2_section): Likewise.
	(darwin_objc1_section): Likewise.
	(machopic_select_section): Likewise.
	(darwin_globalize_label): Likewise.
	(darwin_label_is_anonymous_local_objc_name): Likewise.
	(darwin_asm_named_section): Likewise.
	(darwin_asm_output_dwarf_offset): Likewise.
	* config/frv/frv.c (frv_string_begins_with): Likewise.
	(frv_in_small_data_p): Likewise.
	* config/gcn/mkoffload.c (STR): Likewise.
	(main): Likewise.
	* config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise.
	* config/i386/i386-options.c (ix86_option_override_internal): Likewise.
	* config/i386/i386.c (x86_64_elf_section_type_flags): Likewise.
	(ix86_md_asm_adjust): Likewise.
	* config/i386/intelmic-mkoffload.c (STR): Likewise.
	* config/i386/winnt.c (i386_pe_asm_named_section): Likewise.
	(i386_pe_file_end): Likewise.
	* config/ia64/ia64.c (ia64_in_small_data_p): Likewise.
	(ia64_section_type_flags): Likewise.
	* config/mips/driver-native.c (host_detect_local_cpu): Likewise.
	* config/mips/mips.c (mips_handle_interrupt_attr): Likewise.
	(mips16_stub_function_p): Likewise.
	(mips_function_rodata_section): Likewise.
	* config/msp430/msp430.c (msp430_mcu_name): Likewise.
	(msp430_function_section): Likewise.
	(msp430_section_type_flags): Likewise.
	(msp430_expand_helper): Likewise.
	* config/nios2/nios2.c (nios2_small_section_name_p): Likewise.
	(nios2_valid_target_attribute_rec): Likewise.
	* config/nvptx/mkoffload.c (process): Likewise.
	(STR): Likewise.
	* config/pa/som.h: Likewise.
	* config/pdp11/pdp11.c (pdp11_output_ident): Likewise.
	* config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise.
	* config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise.
	(rs6000_inner_target_options): Likewise.
	* config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise.
	* config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise.
	* config/vax/vax.c (vax_output_int_move): Likewise.
	* config/vms/vms-ld.c (startswith): Likewise.
	(process_args): Likewise.
	(main): Likewise.
	* config/vms/vms.c: Likewise.

2021-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100590
	* regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if
	they are NONJUMP_INSN_P.

2021-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/100580
	* function.c (push_dummy_function): Set DECL_ARTIFICIAL and
	DECL_ASSEMBLER_NAME on the fn_decl.

2021-05-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94589
	* tree-ssa-phiopt.c (spaceship_replacement): Pattern match
	phi result used in (res & ~1) == 0 comparison as res >= 0 as
	res == 2 would be UB with -ffinite-math-only.

2021-05-18  Martin Liska  <mliska@suse.cz>

	* Makefile.in: genversion.o should depend on DATESTAMP.

2021-05-18  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md (negv2si2): Remove round bracket.

2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define
	_Bool as macro expanding to _Bool.

2021-05-18  Andreas Krebbel  <krebbel@linux.ibm.com>

	PR c++/100281
	* tree.c (build_reference_type_for_mode)
	(build_pointer_type_for_mode): Pick pointer mode if MODE argument
	is VOIDmode.
	(build_reference_type, build_pointer_type): Invoke
	build_*_type_for_mode with VOIDmode.

2021-05-17  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/100512
	* gimple-range-cache.cc (ranger_cache::set_global_range): Mark const
	and non-zero pointer ranges as invariant.
	* gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer
	processing from here.

2021-05-17  Tom de Vries  <tdevries@suse.de>

	PR target/100497
	* config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare
	* config/nvptx/nvptx.c (nvptx_output_barrier)
	(nvptx_output_atomic_insn): New function.
	(nvptx_print_operand): Add support for 'B'.
	* config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic
	insns.

2021-05-17  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/100349
	* vr-values.c (bounds_of_var_in_loop): Bail if scev returns
	  NULL.

2021-05-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New.
	(host_detect_local_cpu): Use it.

2021-05-17  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Add 2 missing dots.

2021-05-17  Marius Hillenbrand  <mhillen@linux.ibm.com>

	PR bootstrap/100552
	* configure.ac: Replace pattern substitution with call to sed.
	* configure: Regenerate.

2021-05-17  Richard Biener  <rguenther@suse.de>

	PR middle-end/100582
	* tree.c (array_at_struct_end_p): Get to the base of the
	reference before looking for the underlying decl.

2021-05-17  Joern Rennecke  <joern.rennecke@embecosm.com>

	* genoutput.c (validate_insn_alternatives) Make "wrong number of
	alternatives" message more specific, and remove assumption on where
	the problem is.

2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/iterators.md (V16): New iterator.
	(VH_cvtto): New iterator.
	(v_cmp_result): Added V4HF and V8HF support.
	* config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH.
	(vcond<mode><mode>): Likewise.
	(vcond_mask_<mode><v_cmp_result>): Likewise.
	(vcond<VH_cvtto><mode>): New expander.

2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm-protos.h (arm_expand_vector_compare): Update
	prototype.
	* config/arm/arm.c (arm_expand_vector_compare): Add support for
	MVE.
	(arm_expand_vcond): Likewise.
	* config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S,
	VCMPEQQ_N_S, VCMPNEQ_N_S.
	(VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove.
	* config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix.
	(@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise.
	(@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise.
	(@mve_vpselq_<supf><mode>): Likewise.
	(@mve_vpselq_f<mode>"): Likewise.
	* config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE
	and move to vec-common.md.
	(vec_cmpu<mode><mode>): Likewise.
	(vcond<mode><mode>): Likewise.
	(vcond<V_cvtto><mode>): Likewise.
	(vcondu<mode><v_cmp_result>): Likewise.
	(vcond_mask_<mode><v_cmp_result>): Likewise.
	* config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S)
	(VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U)
	(VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S)
	(VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U)
	(VCMPHIQ_N_U, VCMPHIQ_U): Remove.
	* config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved
	from neon.md.
	(vec_cmpu<mode><mode>): Likewise.
	(vcond<mode><mode>): Likewise.
	(vcond<V_cvtto><mode>): Likewise.
	(vcondu<mode><v_cmp_result>): Likewise.
	(vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math
	condition.

2021-05-17  liuhongt  <hongtao.liu@intel.com>

	PR target/100549
	* config/i386/i386.c (ix86_gimple_fold_builtin): Use
	gsi_insert_seq_before instead.

2021-05-17  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (arm_qbit_ok): Rename into...
	(arm_sat_ok): ...this.

2021-05-17  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (merge_flto_options): Factor out a new function.
	(merge_and_complain): Use it.
	(run_gcc): Merge also linker command line -flto=foo argument
	with IL files.

2021-05-16  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.h (CPP_SPEC): Remove error message about
	-mlittle-endian/-mbig-endian conflict.

2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__ROP_PROTECT__ if -mrop-protect is selected.

2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000-internal.h (rs6000_stack): Add
	rop_hash_save_offset and rop_hash_size.
	* config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute
	rop_hash_size and rop_hash_save_offset.
	(debug_stack_info): Dump rop_hash_save_offset and rop_hash_size.
	(rs6000_emit_prologue): Emit hashst[p] in prologue.
	(rs6000_emit_epilogue): Emit hashchk[p] in epilogue.
	* config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and
	UNSPEC_HASHCHK.
	(hashst): New define_insn.
	(hashchk): Likewise.

2021-05-15  Bill Schmidt  <wschmidt@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Disable shrink wrap when inserting ROP-protect instructions.
	* config/rs6000/rs6000.opt (mrop-protect): New option.
	(mprivileged): Likewise.
	* doc/invoke.texi: Document mrop-protect and mprivileged.

2021-05-15  Hans-Peter Nilsson  <hp@axis.com>

	* reorg.c (fill_slots_from_thread): Reinstate code typoed out in
	"Remove CC0".

2021-05-15  Martin Jambor  <mjambor@suse.cz>

	Revert:
	2021-05-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/100453
	* tree-sra.c (sra_modify_assign): All const base accesses do not
	need refreshing, not just those from decl_pool.
	(sra_modify_assign): Do not refresh into a const base decl.

2021-05-15  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100342
	* regcprop.c (copy_value): When copying a source reg in a wider
	mode than it has recorded for the value, adjust recorded destination
	mode too or punt if !REG_CAN_CHANGE_MODE_P.

2021-05-14  Jason Merrill  <jason@redhat.com>

	* intl.h: Add comments.

2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into...
	(aarch64_sqdmlsl2_lane<mode>_internal): ... This...
	(aarch64_sqdmlal2_lane<mode>_internal): ... And this.
	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ...
	(aarch64_sqdmlsl2_laneq<mode>_internal): ... This...
	(aarch64_sqdmlal2_laneq<mode>_internal): ... And this.
	(aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into...
	(aarch64_sqdmlsl2_n<mode>_internal): ... This...
	(aarch64_sqdmlal2_n<mode>_internal): ... And this.

2021-05-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's
	boolean logic equivalent.
	(vtst_s16): Likewise.
	(vtst_s32): Likewise.
	(vtst_u8): Likewise.
	(vtst_u16): Likewise.
	(vtst_u32): Likewise.
	(vtst_p8): Likewise.
	(vtst_p16): Likewise.
	(vtstq_s8): Likewise.
	(vtstq_s16): Likewise.
	(vtstq_s32): Likewise.
	(vtstq_u8): Likewise.
	(vtstq_u16): Likewise.
	(vtstq_u32): Likewise.
	(vtstq_p8): Likewise.
	(vtstq_p16): Likewise.
	* config/arm/arm_neon_builtins.def: Remove entry for vtst.
	* config/arm/neon.md (neon_vtst<mode>): Remove pattern.

2021-05-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into...
	(aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This.
	(aarch64_sqdmlsl2<mode>): Delete.
	(aarch64_sqdmlal2_lane<mode>): Merge this...
	(aarch64_sqdmlsl2_lane<mode>): ... And this...
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this.
	(aarch64_sqdmlal2_laneq<mode>): Merge this...
	(aarch64_sqdmlsl2_laneq<mode>): ... And this...
	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this.
	(aarch64_sqdmlal2_n<mode>): Merge this...
	(aarch64_sqdmlsl2_n<mode>): ... And this...
	(aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this.

2021-05-13  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100574
	* builtins.c (access_ref::get_ref): Improve detection of PHIs with
	all null arguments.

2021-05-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/93100
	PR middle-end/98583
	* tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that
	don't modify referenced objects.

2021-05-13  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/100453
	* tree-sra.c (sra_modify_assign): All const base accesses do not
	need refreshing, not just those from decl_pool.
	(sra_modify_assign): Do not refresh into a const base decl.

2021-05-13  Martin Liska  <mliska@suse.cz>

	* tree-ssa-dom.c: Remove m_simplifier.

2021-05-13  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100563
	* config/arm/arm.c (arm_canonicalize_comparison): Correctly
	canonicalize DImode inequality comparisons against the
	maximum integral value.

2021-05-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98856
	* config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument.
	Expect V2DI and V4DI arithmetic right shifts to be emulated.
	(ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost
	caller.
	* config/i386/i386-expand.c (expand_vec_perm_2perm_interleave,
	expand_vec_perm_2perm_pblendv): New functions.
	(ix86_expand_vec_perm_const_1): Use them.
	* config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ...
	(<mask_codefor>ashr<mode>3<mask_name>): ... this.
	(ashr<mode>3): New define_expand with VI248_AVX512BW iterator.
	(ashrv4di3): New define_expand.
	(ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP
	and !TARGET_AVX512VL expansion.

2021-05-13  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100581
	* config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode
	sizes < 16 to a register when constructing vpcmov pattern.
	* config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode.

2021-05-13  Martin Liska  <mliska@suse.cz>

	* gcov-io.c (gcov_write_block): Remove.
	(gcov_write_words): Likewise.
	(gcov_read_words): Re-implement using gcov_read_bytes.
	(gcov_allocate): Remove.
	(GCOV_BLOCK_SIZE): Likewise.
	(struct gcov_var): Remove most of the fields.
	(gcov_position): Implement with ftell.
	(gcov_rewrite): Remove setting of start and offset fields.
	(from_file): Re-format.
	(gcov_open): Remove setbuf call. It should not be needed.
	(gcov_close): Remove internal buffer handling.
	(gcov_magic): Use __builtin_bswap32.
	(gcov_write_counter): Use directly gcov_write_unsigned.
	(gcov_write_string): Use direct fwrite and do not round
	to 4 bytes.
	(gcov_seek): Use directly fseek.
	(gcov_write_tag): Use gcov_write_unsigned directly.
	(gcov_write_length): Likewise.
	(gcov_write_tag_length): Likewise.
	(gcov_read_bytes): Use directly fread.
	(gcov_read_unsigned): Use gcov_read_words.
	(gcov_read_counter): Likewise.
	(gcov_read_string): Use gcov_read_bytes.
	* gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect
	that size is not in bytes, but words (4B).
	(GCOV_TAG_FUNCTION_LENGTH): Likewise.
	(GCOV_TAG_ARCS_LENGTH): Likewise.
	(GCOV_TAG_ARCS_NUM): Likewise.
	(GCOV_TAG_COUNTER_LENGTH): Likewise.
	(GCOV_TAG_COUNTER_NUM): Likewise.
	(GCOV_TAG_SUMMARY_LENGTH): Likewise.

2021-05-13  liuhongt  <hongtao.liu@intel.com>

	PR target/94680
	* config/i386/sse.md (ssedoublevecmode): Add attribute for
	V64QI/V32HI/V16SI/V4DI.
	(ssehalfvecmode): Add attribute for V2DI/V2DF.
	(*vec_concatv4si_0): Extend to VI124_128.
	(*vec_concat<mode>_0): New pre-reload splitter.
	* config/i386/predicates.md (movq_parallel): New predicate.

2021-05-13  Alexandre Oliva  <oliva@adacore.com>

	* targhooks.c (default_zero_call_used_regs): Retry using
	successfully-zeroed registers as sources.

2021-05-12  Tobias Burnus  <tobias@codesourcery.com>

	* omp-low.c (finish_taskreg_scan): Use the proper detach decl.

2021-05-12  Aldy Hernandez  <aldyh@redhat.com>

	PR c/100521
	* gimple-range.cc (range_of_builtin_call): Skip out on
	  processing __builtin_clz when varying.

2021-05-12  Tom de Vries  <tdevries@suse.de>

	PR target/96005
	* config/nvptx/nvptx-opts.h (enum ptx_version): New enum.
	* config/nvptx/nvptx.c (nvptx_file_start): Print .version according
	to ptx_version_option.
	* config/nvptx/nvptx.h (TARGET_PTX_6_3): Define.
	* config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
	(define_insn "nvptx_vote_ballot"): Use sync variant for
	TARGET_PTX_6_3.
	* config/nvptx/nvptx.opt (ptx_version): Add enum.
	(mptx): Add option.
	* doc/invoke.texi (Nvidia PTX Options): Add mptx item.

2021-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100566
	* tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle
	allow_back for all edge queries.

2021-05-12  liuhongt  <hongtao.liu@intel.com>

	PR target/99908
	* config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add
	splitters for pblendvb of NOT mask register.

2021-05-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100519
	* tree-ssa-reassoc.c (can_associate_p): Split into...
	(can_associate_op_p): ... this
	(can_associate_type_p): ... and this.
	(is_reassociable_op): Call can_associate_op_p.
	(break_up_subtract_bb): Call the appropriate predicates.
	(reassociate_bb): Likewise.

2021-05-12  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (merge_and_complain): Merge -flto=arg options.
	(run_gcc): Use -flto argument detection for merged
	fdecoded_options.

2021-05-12  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (print_lto_docs_link): New function.
	(run_gcc): Print warning about missing job server detection
	after we know NR of partitions. Do the same for -flto{,=1}.
	* opts.c (get_option_html_page): Support -flto option.

2021-05-12  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (get_options_from_collect_gcc_options): Change
	return type.
	(append_option): Remove.
	(find_option): Rework to use the vector type.
	(remove_option): Remove.
	(merge_and_complain): Use vectors for cl_decoded_option data
	type arguments.
	(append_compiler_options): Likewise.
	(append_diag_options): Likewise.
	(append_linker_options): Likewise.
	(append_offload_options): Likewise.
	(compile_offload_image): Likewise.
	(compile_images_for_offload_targets): Likewise.
	(find_and_merge_options): Likewise.
	(run_gcc): Likewise.

2021-05-12  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR debug/100515
	* dwarf2out.c (dwarf2out_finish): Set
	have_multiple_function_sections with multi-range text_section.

2021-05-12  Martin Liska  <mliska@suse.cz>

	PR bootstrap/100560
	* Makefile.in: Remove version.h from linker command line.

2021-05-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/100547
	* rtl.h (rtvec_alloc): Make argument size_t.
	* rtl.c (rtvec_alloc): Verify the count is less than INT_MAX.

2021-05-12  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/100508
	* cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector
	type, don't reuse DECL_RTL if it has different mode, instead force
	creation of a new DEBUG_EXPR.

2021-05-12  Jakub Jelinek  <jakub@redhat.com>
	    Marc Glisse  <marc.glisse@inria.fr>

	PR tree-optimization/94589
	* match.pd ((X & Y) == X -> (X & ~Y) == 0,
	(X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications.

2021-05-12  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98218
	* config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode.
	* config/i386/mmx.md (MMXMODE124): New mode iterator.
	(V2FI): Ditto.
	(mmxintvecmode): New mode attribute.
	(mmxintvecmodelower): Ditto.
	(*mmx_maskcmpv2sf3_comm): New insn pattern.
	(*mmx_maskcmpv2sf3): Ditto.
	(vec_cmpv2sfv2si): New expander.
	(vcond<V2FI:mode>v2si): Ditto.
	(mmx_vlendvps): New insn pattern.
	(vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode.
	(vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
	(vcond_mask_<mode><mmxintvecmodelower>): Ditto.

2021-05-11  Martin Sebor  <msebor@redhat.com>

	PR middle-end/21433
	* expr.c (expand_expr_real_1): Replace unreachable code with an assert.

2021-05-11  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (gimple_fold_call): Do not call
	maybe_fold_reference on call arguments or the static chain.
	(fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM
	inputs.

2021-05-11  Martin Liska  <mliska@suse.cz>

	* builtins.def (DEF_HSAIL_BUILTIN): Remove.
	(DEF_HSAIL_ATOMIC_BUILTIN): Likewise.
	(DEF_HSAIL_SAT_BUILTIN): Likewise.
	(DEF_HSAIL_INTR_BUILTIN): Likewise.
	(DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise.
	* doc/frontends.texi: Remove BRIG.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/standards.texi: Likewise.
	* brig-builtins.def: Removed.
	* brig/ChangeLog: Removed.
	* brig/Make-lang.in: Removed.
	* brig/brig-builtins.h: Removed.
	* brig/brig-c.h: Removed.
	* brig/brig-lang.c: Removed.
	* brig/brigfrontend/brig-arg-block-handler.cc: Removed.
	* brig/brigfrontend/brig-atomic-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-basic-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-branch-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-cmp-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-code-entry-handler.cc: Removed.
	* brig/brigfrontend/brig-code-entry-handler.h: Removed.
	* brig/brigfrontend/brig-comment-handler.cc: Removed.
	* brig/brigfrontend/brig-control-handler.cc: Removed.
	* brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-cvt-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-fbarrier-handler.cc: Removed.
	* brig/brigfrontend/brig-function-handler.cc: Removed.
	* brig/brigfrontend/brig-function.cc: Removed.
	* brig/brigfrontend/brig-function.h: Removed.
	* brig/brigfrontend/brig-inst-mod-handler.cc: Removed.
	* brig/brigfrontend/brig-label-handler.cc: Removed.
	* brig/brigfrontend/brig-lane-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-machine.c: Removed.
	* brig/brigfrontend/brig-machine.h: Removed.
	* brig/brigfrontend/brig-mem-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-module-handler.cc: Removed.
	* brig/brigfrontend/brig-queue-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-seg-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-signal-inst-handler.cc: Removed.
	* brig/brigfrontend/brig-to-generic.cc: Removed.
	* brig/brigfrontend/brig-to-generic.h: Removed.
	* brig/brigfrontend/brig-util.cc: Removed.
	* brig/brigfrontend/brig-util.h: Removed.
	* brig/brigfrontend/brig-variable-handler.cc: Removed.
	* brig/brigfrontend/hsa-brig-format.h: Removed.
	* brig/brigfrontend/phsa.h: Removed.
	* brig/brigspec.c: Removed.
	* brig/config-lang.in: Removed.
	* brig/gccbrig.texi: Removed.
	* brig/lang-specs.h: Removed.
	* brig/lang.opt: Removed.

2021-05-11  Richard Biener  <rguenther@suse.de>

	PR ipa/100513
	* ipa-param-manipulation.c
	(ipa_param_body_adjustments::modify_call_stmt): Avoid
	altering SSA_NAME_DEF_STMT by adjusting the calls LHS
	via gimple_call_lhs_ptr.

2021-05-11  Alex Coplan  <alex.coplan@arm.com>

	PR target/99725
	* config/arm/arm.c (cmse_nonsecure_call_inline_register_clear):
	Avoid emitting CFA adjusts on the sp if we have the fp.

2021-05-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete.
	(VMULD): New iterator.
	(VCOND): Handle V4HF and V8HF.
	(VCONQ): Fix entry for V2SF.
	* config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD
	instead of VMUL.  Use a 64-bit vector mode for the indexed operand.
	(*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with...
	(mul_laneq<mode>3): ...this define_insn.  Use VMUL instead of VDQSF.
	Use a 128-bit vector mode for the indexed operand.  Use stype for
	the scheduling type.

2021-05-11  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (maybe_fold_reference): Only return
	is_gimple_min_invariant values.

2021-05-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/100509
	* gimple-fold.c (fold_gimple_assign): Only call
	get_symbol_constant_value on register type symbols.

2021-05-11  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>
	    Joe Ramsay   <joe.ramsay@arm.com>

	PR target/100419
	* config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments.
	(__arm_vcmpneq): Remove duplicate definition.
	(__arm_vstrwq_scatter_offset_p): Likewise.
	(__arm_vmaxq_x): Likewise.
	(__arm_vmlsdavaq): Likewise.
	(__arm_vmlsdavaxq): Likewise.
	(__arm_vmlsdavq_p): Likewise.
	(__arm_vmlsdavxq_p): Likewise.
	(__arm_vrmlaldavhaq): Likewise.
	(__arm_vstrbq_p): Likewise.
	(__arm_vstrbq_scatter_offset): Likewise.
	(__arm_vstrbq_scatter_offset_p): Likewise.
	(__arm_vstrdq_scatter_offset): Likewise.
	(__arm_vstrdq_scatter_offset_p): Likewise.
	(__arm_vstrdq_scatter_shifted_offset): Likewise.
	(__arm_vstrdq_scatter_shifted_offset_p): Likewise.

2021-05-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/100471
	* omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data
	is 0, bypass the reduction loop including
	GOMP_taskgroup_reduction_unregister call.

2021-05-11  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/rs6000.c (struct rs6000_cost_data): New member
	costing_for_scalar.
	(rs6000_density_test): Early return if costing_for_scalar is true.
	(rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data.

2021-05-11  Kewen Lin  <linkw@linux.ibm.com>

	* doc/tm.texi: Regenerated.
	* target.def (init_cost): Add new parameter costing_for_scalar.
	* targhooks.c (default_init_cost): Adjust for new parameter.
	* targhooks.h (default_init_cost): Likewise.
	* tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise.
	(vect_compute_single_scalar_iteration_cost): Likewise.
	(vect_analyze_loop_2): Likewise.
	* tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise.
	(vect_bb_vectorization_profitable_p): Likewise.
	* tree-vectorizer.h (init_cost): Likewise.
	* config/aarch64/aarch64.c (aarch64_init_cost): Likewise.
	* config/i386/i386.c (ix86_init_cost): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_cost): Likewise.

2021-05-11  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to
	vect_nonmem and moved into...
	(struct rs6000_cost_data): ...here.
	(rs6000_init_cost): Use vect_nonmem of cost_data instead.
	(rs6000_add_stmt_cost): Likewise.
	(rs6000_finish_cost): Likewise.

2021-05-10  Eric Botcazou  <ebotcazou@adacore.com>

	* range-op.cc (get_bool_state): Adjust head comment.
	(operator_not_equal::op1_range): Fix comment.
	(operator_bitwise_xor::op1_range): Remove call to gcc_unreachable.

2021-05-10  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100425
	PR middle-end/100510
	* gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename...
	(pass_walloca::xlimit_certain_p): ...to this.
	(pass_walloca::gate): Execute for any kind of handled warning.
	(pass_walloca::execute): Avoid issuing "maybe" and "unbounded"
	warnings when xlimit_certain_p is set.

2021-05-10  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class):
	Return ALTIVEC_REGS if that is best_class.
	(rs6000_compute_pressure_classes): Add ALTIVEC_REGS.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm.h (CPP_SPEC): Remove error message about
	-mfloat-abi.

2021-05-10  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.h (IPA_NODE_REF): Removed.
	(IPA_NODE_REF_GET_CREATE): Likewise.
	(IPA_EDGE_REF): Likewise.
	(IPA_EDGE_REF_GET_CREATE): Likewise.
	(IS_VALID_JUMP_FUNC_INDEX): Likewise.
	* ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct
	use of ipa_node_params_sum.
	(ipcp_versionable_function_p): Likewise.
	(push_node_to_stack): Likewise.
	(pop_node_from_stack): Likewise.
	(set_single_call_flag): Replaced two IPA_NODE_REF with one single
	direct use of ipa_node_params_sum.
	(initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum.
	(ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of
	ipa_edge_args_sum.
	(ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct
	use of ipa_node_params_sum.
	(self_recursively_generated_p): Likewise.
	(propagate_scalar_across_jump_function): Likewise.
	(propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum, moved the lookup after the early
	exit.  Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum.
	(propagate_bits_across_jump_function): Replaced IPA_NODE_REF with
	direct uses of ipa_node_params_sum.
	(propagate_vr_across_jump_function): Likewise.
	(propagate_aggregate_lattice): Likewise.
	(propagate_aggs_across_jump_function): Likewise.
	(propagate_constants_across_call): Likewise, also replaced
	IPA_EDGE_REF with a direct use of ipa_edge_args_sum.
	(good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use
	of ipa_node_params_sum.
	(estimate_local_effects): Likewise.
	(add_all_node_vals_to_toposort): Likewise.
	(propagate_constants_topo): Likewise.
	(ipcp_propagate_stage): Likewise.
	(ipcp_discover_new_direct_edges): Likewise.
	(calls_same_node_or_its_all_contexts_clone_p): Likewise.
	(cgraph_edge_brings_value_p): Likewise (in both overloaded functions).
	(get_info_about_necessary_edges): Likewise.
	(want_remove_some_param_p): Likewise.
	(create_specialized_node): Likewise.
	(self_recursive_pass_through_p): Likewise.
	(self_recursive_agg_pass_through_p): Likewise.
	(find_more_scalar_values_for_callers_subset): Likewise and also
	replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one
	case replacing two of those with a single query.
	(find_more_contexts_for_caller_subset): Likewise for the
	ipa_polymorphic_call_context overload.
	(intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct
	use of ipa_edge_args_sum.  Replaced IPA_NODE_REF with direct uses of
	ipa_node_params_sum.
	(find_aggregate_values_for_callers_subset): Likewise, also reusing
	results of ipa_edge_args_sum->get.
	(cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with
	direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum.
	(cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node
	summary query after the early exit and reused the result later.
	(decide_about_value): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum.
	(decide_whether_version_node): Likewise.  Removed re-querying for
	summaries after cloning.
	(spread_undeadness): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum.
	(has_undead_caller_from_outside_scc_p): Likewise, reusing results of
	some queries.
	(identify_dead_nodes): Likewise.
	(ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of
	ipa_node_params_sum.
	(ipcp_store_vr_results): Likewise.
	* ipa-fnsummary.c (evaluate_properties_for_edge): Likewise.
	(ipa_fn_summary_t::duplicate): Likewise.
	(analyze_function_body): Likewise.
	(estimate_calls_size_and_time): Likewise.
	(ipa_cached_call_context::duplicate_from): Likewise.
	(ipa_call_context::equal_to): Likewise.
	(remap_edge_params): Likewise.
	(ipa_merge_fn_summary_after_inlining): Likewise.
	(inline_read_section): Likewise.
	* ipa-icf.c (sem_function::param_used_p): Likewise.
	* ipa-modref.c (compute_parm_map): Likewise.
	(compute_parm_map): Replaced IPA_EDGE_REF with a direct use of
	ipa_edge_args_sum.
	(get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
	ipa_edge_args_sum.
	* ipa-profile.c (check_argument_count): Likewise.
	* ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE
	with a direct use of ipa_node_params_sum.
	(ipa_initialize_node_params): Likewise.
	(ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum and reused the query result.
	(ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a
	direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum.
	(ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum and reused the result of the query.
	(ipa_analyze_node): Likewise.
	(ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use
	of ipa_node_params_sum.
	(update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with
	direct uses of ipa_edge_args_sum.
	(update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with
	direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum.  Removed superficial re-querying the
	top edge summary.
	(propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of
	ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of
	ipa_edge_args_sum.
	(ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a
	direct use of ipa_edge_args_sum.
	(ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct
	use of ipa_node_params_sum.
	(ipa_print_node_params): Likewise.
	(ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with
	direct uses of ipa_edge_args_sum.
	(ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of
	ipa_edge_args_sum.
	(ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of
	ipa_node_params_sum.
	(ipa_prop_write_jump_functions): Likewise.  Move variable node to the
	scopes where it is used.

2021-05-10  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.c (ix86_expand_sse_movcc)
	<case E_V2SImode>: Force op_true to register.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/iterators.md (MVE_FP_COMPARISONS): New.
	* config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>)
	(mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f*
	patterns.
	(mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>)
	(mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>)
	(mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>)
	(mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>)
	(mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>)
	(mve_vcmpneq_n_f<mode>): Remove.
	* config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F)
	(VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F)
	(VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/iterators.md (MVE_COMPARISONS): New.
	(mve_cmp_op): New.
	(mve_cmp_type): New.
	* config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all
	mve_vcmp patterns.
	(mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>)
	(mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>)
	(mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>)
	(mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>)
	(mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
	(mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>)
	(mve_vcmpneq_n_<mode>): Remove.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix.
	* config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix.
	* config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern
	names.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_mve_builtins.def (vcmpneq_u): Remove.
	(vcmpneq_n_u): Likewise.
	(vcmpeqq_u,): Likewise.
	(vcmpeqq_n_u): Likewise.
	* config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U,
	VCMPEQQ_N_U and VCMPNEQ_N_U.
	* config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration.
	(mve_vcmpeqq_n): Likewise.
	(mve_vcmpeqq): Likewise.
	(mve_vcmpneq_n): Likewise.

2021-05-10  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call
	the 's' version of the builtin.

2021-05-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100492
	* tree-loop-distribution.c (find_seed_stmts_for_distribution):
	Find nothing when the loop contains an irreducible region.

2021-05-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/100464
	PR c++/100468
	* gimple-fold.c (canonicalize_constructor_val): Do not set
	TREE_ADDRESSABLE.

2021-05-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100434
	* tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
	call LHS.
	(dse_optimize_stmt): Handle call LHS by dropping the
	LHS or the whole call if it doesn't have other
	side-effects.
	(pass_dse::execute): Adjust.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Add missing genversion rule.

2021-05-10  Alex Coplan  <alex.coplan@arm.com>

	PR target/99960
	* config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use
	vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* builtins.c (is_builtin_name): Use startswith
	function instead of strncmp.
	* collect2.c (main): Likewise.
	(has_lto_section): Likewise.
	(scan_libraries): Likewise.
	* coverage.c (coverage_checksum_string): Likewise.
	(coverage_init): Likewise.
	* dwarf2out.c (is_cxx): Likewise.
	(gen_compile_unit_die): Likewise.
	* gcc-ar.c (main): Likewise.
	* gcc.c (init_spec): Likewise.
	(read_specs): Likewise.
	(execute): Likewise.
	(check_live_switch): Likewise.
	* genattrtab.c (write_attr_case): Likewise.
	(IS_ATTR_GROUP): Likewise.
	* gencfn-macros.c (main): Likewise.
	* gengtype.c (type_for_name): Likewise.
	(gen_rtx_next): Likewise.
	(get_file_langdir): Likewise.
	(write_local): Likewise.
	* genmatch.c (get_operator): Likewise.
	(get_operand_type): Likewise.
	(expr::gen_transform): Likewise.
	* genoutput.c (validate_optab_operands): Likewise.
	* incpath.c (add_sysroot_to_chain): Likewise.
	* langhooks.c (lang_GNU_C): Likewise.
	(lang_GNU_CXX): Likewise.
	(lang_GNU_Fortran): Likewise.
	(lang_GNU_OBJC): Likewise.
	* lto-wrapper.c (run_gcc): Likewise.
	* omp-general.c (omp_max_simt_vf): Likewise.
	* omp-low.c (omp_runtime_api_call): Likewise.
	* opts-common.c (parse_options_from_collect_gcc_options): Likewise.
	* read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise.
	* real.c (real_from_string): Likewise.
	* selftest.c (assert_str_startswith): Likewise.
	* timevar.c (timer::validate_phases): Likewise.
	* tree.c (get_file_function_name): Likewise.
	* ubsan.c (ubsan_use_new_style_p): Likewise.
	* varasm.c (default_function_rodata_section): Likewise.
	(incorporeal_function_p): Likewise.
	(default_section_type_flags): Likewise.
	* system.h (startswith): Define startswith.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* bitmap.h (class auto_bitmap): Remove
	__cplusplus >= 201103.
	* config/aarch64/aarch64.c: Likewise.
	* gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info):
	Likewise.
	* sbitmap.h: Likewise.

2021-05-10  Martin Liska  <mliska@suse.cz>

	* Makefile.in: Rename gcov-iov to genversion and depend
	on version.h (instead of gcov-iov.h).
	* gcov-io.h: Include version.h instread of gcov-iov.h.
	* gengtype-state.c (read_state_version): Likewise.
	* gcov-iov.c: Moved to...
	* genversion.c: ...here.
	* lto-streamer.h (LTO_major_version): Define it with
	GCC_major_version.
	* version.c: Removed.
	* version.h: Removed.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define.
	* config/arc/simdext.md (VCT): Add predicates for iterator
	elements.
	(EMUVEC): Define.
	(voptab): Likewise.
	(vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate.
	(<voptab>v2si3): New patterns.
	(neg): Likewise.
	(reduc_plus_scal_v4hi): Likewise.
	(reduc_plus_scal_v2si): Likewise.
	(vec_duplicatev2si): Likewise.
	(vec_duplicatev4hi): Likewise.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md: Format and cleanup file.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/simdext.md (movmisalignv2hi): Allow misaligned access
	only when munaligned-access option is on.
	(movmisalign<mode>): Likewise.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* common/config/arc/arc-common.c (arc_handle_option): Remove dot
	from string.
	* config/arc/arc.c (arc_reorg): Remove underscore from string.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
	(CTZ_DEFINED_VALUE_AT_ZERO): Likewise.
	* config/arc/arc.md (clrsbsi2): Cleanup pattern.
	(norm_f): Likewise.
	(ffs): Likewise.
	(ffs_f): Likewise.
	(clzsi2): Use fls instruction when available.
	(arc_clzsi2): Likewise.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27.

2021-05-10  Claudiu Zissulescu  <claziss@synopsys.com>

	* doc/extend.texi (__builtin_arc_sr): Swap arguments.

2021-05-10  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR middle-end/100467
	* toplev.c (compile_file): Call insn_locations_init before
	targetm.asm_out.code_end.

2021-05-07  Andrew Stubbs  <ams@codesourcery.com>

	Revert:
	2021-05-07  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.

2021-05-07  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Stubbs  <amd@codesourcery.com>

	PR target/100418
	* builtins.c (try_store_by_multiple_pieces): Use force_operand for
	emit_move_insn operands.

2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* cfgexpand.c (expand_gimple_basic_block): Do not inherit a current
	location for the outgoing edges of an empty block.
	* dwarf2out.c (add_subscript_info): Retrieve the bounds and index
	type by means of the get_array_descr_info langhook, if it is set and
	returns true.  Remove obsolete code dealing with unnamed subtypes.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ssa_block_ranges): Virtualize.
	(sbr_vector): Renamed from ssa_block_cache.
	(sbr_vector::sbr_vector): Allocate from obstack abd initialize.
	(ssa_block_ranges::~ssa_block_ranges): Remove.
	(sbr_vector::set_bb_range): Use varying and undefined cached values.
	(ssa_block_ranges::set_bb_varying): Remove.
	(sbr_vector::get_bb_range): Adjust assert.
	(sbr_vector::bb_range_p): Adjust assert.
	(~block_range_cache): No freeing loop required.
	(block_range_cache::get_block_ranges): Remove.
	(block_range_cache::set_bb_range): Inline get_block_ranges.
	(block_range_cache::set_bb_varying): Remove.
	* gimple-range-cache.h (set_bb_varying): Remove prototype.
	* value-range.h (irange_allocator::get_memory): New.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search
	dominator tree is available and requested.
	(ranger_cache::ssa_range_in_bb): Don't search dom tree here.
	(ranger_cache::fill_block_cache): Don't search dom tree here either.
	* gimple-range-cache.h (non_null_deref_p): Add dom_search param.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.cc (gimple_ranger::range_on_exit): Handle block with
	only PHI nodes better.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-edge.h (gimple_outgoing_range): Rename from
	outgoing_range.
	(gcond_edge_range): Export prototype.
	* gimple-range-edge.cc (gcond_edge_range): New.
	(gimple_outgoing_range::edge_range_p): Use gcond_edge_range.
	* gimple-range-gori.h (gori_compute): Use gimple_outgoing_range.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute
	default range into a temp and allocate only what is needed.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED.

2021-05-07  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range.h (gimple_range_global): Pick up parameter initial
	values, and use-before defined locals are UNDEFINED.

2021-05-07  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/extend.texi (scalar_storage_order): Mention effect on pointer
	and vector fields.
	* tree.h (reverse_storage_order_for_component_p): Return false if
	the type is a pointer.

2021-05-07  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode.

2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98218
	* config/i386/i386-expand.c (ix86_expand_sse_movcc):
	Handle V8QI, V4HI and V2SI modes.
	* config/i386/mmx.md (mmx_pblendvb): New insn pattern.
	* config/i386/sse.md (unspec): Move UNSPEC_BLENDV ...
	* config/i386/i386.md (unspec): ... here.

2021-05-07  Tobias Burnus  <tobias@codesourcery.com>
	    Tom de Vries  <tdevries@suse.de>

	* omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if
	a truth_value_p reduction variable is nonintegral.

2021-05-07  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100445
	* config/i386/i386-expand.c (ix86_use_mask_cmp_p):
	Return false for mode sizes < 16.

2021-05-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/100445
	* config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn.

2021-05-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even
	when there is no function summary.
	(ipa_sra_summarize_function): produce edge summaries even when
	bailing out early.

2021-05-06  Tom Tromey  <tom@tromey.com>

	* godump.c (string_hash_eq): Remove.
	(go_finish): Use htab_eq_string.

2021-05-06  Tom Tromey  <tom@tromey.com>

	* gengtype-state.c (read_state): Use htab_eq_string.
	(string_eq): Remove.

2021-05-06  Tom Tromey  <tom@tromey.com>

	* gensupport.c (htab_eq_string): Remove.

2021-05-06  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR ipa/97937
	* debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer.
	* dwarf2out.h (dw_fde_node::ignored_debug): New data item.
	* dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy
	set_ignored_loc callbacks.
	* debug.c (do_nothing_debug_hooks): Likewise.
	* vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
	* dwarf2out.c (text_section_used, cold_text_section_used): Remove.
	(in_text_section_p, last_text_label, last_cold_label,
	switch_text_ranges, switch_cold_ranges): New data items.
	(dwarf2out_note_section_used): Remove.
	(dwarf2out_begin_prologue): Set fde->ignored_debug and
	in_text_section_p.
	(mark_ignored_debug_section): New helper function.
	(dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call
	mark_ignored_debug_section.
	(dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc.
	(dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc.
	(size_of_aranges): Adjust formula for multi-part text ranges size.
	(output_aranges): Output multi-part text ranges.
	(dwarf2out_set_ignored_loc): New callback function.
	(dwarf2out_finish): Output multi-part text ranges.
	(dwarf2out_c_finalize): Clear new data items.
	* final.c (final_start_function_1): Call set_ignored_loc callback.
	(final_scan_insn_1): Likewise.
	* ggc-page.c (gt_ggc_mx): New helper function.
	* stringpool.c (gt_pch_nx): Likewise.

2021-05-06  Richard Biener  <rguenther@suse.de>

	* timevar.def (TV_TREE_INSERT_PHI_NODES): Remove.
	(TV_TREE_SSA_REWRITE_BLOCKS): Likewise.
	(TV_TREE_INTO_SSA): New.
	* tree-into-ssa.c (insert_phi_nodes): Do not account separately.
	(rewrite_blocks): Likewise.
	(pass_data_build_ssa): Account to TV_TREE_INTO_SSA.

2021-05-06  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-phiopt.c (value_replacement, minmax_replacement,
	abs_replacement, xor_replacement,
	cond_removal_in_popcount_clz_ctz_pattern,
	replace_phi_edge_with_variable): Change type of phi argument from
	gimple * to gphi *.

2021-05-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-split.c (split_loop): Delay updating SSA form.
	Output an opt-info message.
	(do_split_loop_on_cond): Likewise.
	(tree_ssa_split_loops): Update SSA form here.

2021-05-06  Richard Biener  <rguenther@suse.de>

	* tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE
	return variable removal.

2021-05-06  Marius Hillenbrand  <mhillen@linux.ibm.com>

	* config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros.
	(s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
	(s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate
	operand.
	* config/s390/s390.c (s390_const_operand_ok): Remove unused
	values.

2021-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94589
	* tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call
	spaceship_replacement.
	(cond_only_block_p, spaceship_replacement): New functions.

2021-05-06  Richard Biener  <rguenther@suse.de>

	PR ipa/100373
	* tree-emutls.c (gen_emutls_addr): Pass in whether we're
	dealing with a debug use and only query existing addresses
	if so.
	(lower_emutls_1): Avoid splitting out addresses for debug
	stmts, reset the debug stmt when we fail to find existing
	lowered addresses.
	(lower_emutls_phi_arg): Set wi.stmt.

2021-05-06  Christoph Muellner  <cmuellner@gcc.gnu.org>

	PR target/100266
	* config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper.
	* config/riscv/riscv.md (cbranch<mode>4): Generate helpers.
	(stack_protect_test): Use cbranch helper.

2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/100402
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	always return the establisher frame for __builtin_frame_address (0).

2021-05-05  Ivan Sorokin  <vanyacpp@gmail.com>

	PR target/91400
	* config/i386/i386-builtins.c (ix86_cpu_model_type_node): New.
	(ix86_cpu_model_var): Likewise.
	(ix86_cpu_features2_type_node): Likewise.
	(ix86_cpu_features2_var): Likewise.
	(fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with
	their types.

2021-05-05  Martin Sebor  <msebor@redhat.com>

	* passes.def (pass_warn_printf): Run after SSA.

2021-05-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* config/arm/neon.md (neon_vtst_combine<mode>): New pattern.
	* config/arm/predicates.md (minus_one_operand): New predicate.

2021-05-05  Jeff Law  <jlaw@tachyum.com>

	* config/avr/avr.md: Remove references to CC_STATUS_INIT.

2021-05-05  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	PR rtl-optimization/100263
	* postreload.c (move2add_valid_value_p): Ensure register can
	change mode.

2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/100411
	* cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue
	and beginning of function markers.

2021-05-05  Jeff Law  <jlaw@tachyum.com>

	* config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove.
	* config/cr16/cr16.c (notice_update_cc): Remove.
	* config/cr16/cr16-protos.h (notice_update_cc): Remove.

2021-05-05  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98218
	* config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
	Handle V8QI, V4HI and V2SI modes.
	* config/i386/i386.c (ix86_build_const_vector): Handle V2SImode.
	(ix86_build_signbit_mask): Ditto.
	* config/i386/mmx.md (MMXMODE14): New mode iterator.
	(<smaxmin:code><MMXMODE14:mode>3): New expander.
	(*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern.
	(<umaxmin:code><MMXMODE24:mode>3): New expander.
	(*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern.
	(vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander.
	(vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
	(vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
	(vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto.
	(vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto.

2021-05-05  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do
	not expand the VALUE_EXPR of variables put in the non-local frame.
	* gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not
	to be ignored for debug info, ensure its variable offsets are not.

2021-05-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/79333
	* tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt):
	Fold stmt following SSA edges.

2021-05-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/100394
	* calls.c (expand_call): Preserve possibly throwing calls.
	* cfgexpand.c (expand_call_stmt): When a call can throw signal
	RTL expansion there are side-effects.
	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify,
	mark all possibly throwing stmts necessary unless we can elide
	dead EH.
	* tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless
	-fdelete-dead-exceptions.
	* tree.h (DECL_PURE_P): Add note about exceptions.

2021-05-05  Alexandre Oliva  <oliva@adacore.com>

	* config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it
	unconditional.

2021-05-04  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
	get_fnname_from_decl for name of thunk.
	* config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name
	and ASM_OUTPUT_LABEL.
	(rs6000_xcoff_declare_function_name): Use assemble_name and
	ASM_OUTPUT_LABEL.
	(rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL.
	(rs6000_xcoff_encode_section_info): Don't add mapping class
	for aliases.  Always add [DS] mapping class to primary
	FUNCTION_DECL.
	(rs6000_asm_weaken_decl): Don't explicitly add [DS].

2021-05-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100307
	* builtins.c (compute_objsize_r): Clear base0 for pointers.

2021-05-04  Jeff Law  <jlaw@tachyum.com>

	* config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove.

2021-05-04  Segher Boessenkool  <segher@kernel.crashing.org>

	* caller-save.c: Remove CC0.
	* cfgcleanup.c: Remove CC0.
	* cfgrtl.c: Remove CC0.
	* combine.c: Remove CC0.
	* compare-elim.c: Remove CC0.
	* conditions.h: Remove CC0.
	* config/h8300/h8300.h: Remove CC0.
	* config/h8300/h8300-protos.h: Remove CC0.
	* config/h8300/peepholes.md: Remove CC0.
	* config/i386/x86-tune-sched.c: Remove CC0.
	* config/m68k/m68k.c: Remove CC0.
	* config/rl78/rl78.c: Remove CC0.
	* config/sparc/sparc.c: Remove CC0.
	* config/xtensa/xtensa.c: Remove CC0.
	(gen_conditional_move):  Use pc_rtx instead of cc0_rtx in a piece of
	RTL where that is used as a placeholder only.
	* cprop.c: Remove CC0.
	* cse.c: Remove CC0.
	* cselib.c: Remove CC0.
	* df-problems.c: Remove CC0.
	* df-scan.c: Remove CC0.
	* doc/md.texi: Remove CC0.  Adjust an example.
	* doc/rtl.texi: Remove CC0.  Adjust an example.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Remove CC0.
	* emit-rtl.c: Remove CC0.
	* final.c: Remove CC0.
	* fwprop.c: Remove CC0.
	* gcse-common.c: Remove CC0.
	* gcse.c: Remove CC0.
	* genattrtab.c: Remove CC0.
	* genconfig.c: Remove CC0.
	* genemit.c: Remove CC0.
	* genextract.c: Remove CC0.
	* gengenrtl.c: Remove CC0.
	* genrecog.c: Remove CC0.
	* haifa-sched.c: Remove CC0.
	* ifcvt.c: Remove CC0.
	* ira-costs.c: Remove CC0.
	* ira.c: Remove CC0.
	* jump.c: Remove CC0.
	* loop-invariant.c: Remove CC0.
	* lra-constraints.c: Remove CC0.
	* lra-eliminations.c: Remove CC0.
	* optabs.c: Remove CC0.
	* postreload-gcse.c: Remove CC0.
	* postreload.c: Remove CC0.
	* print-rtl.c: Remove CC0.
	* read-rtl-function.c: Remove CC0.
	* reg-notes.def: Remove CC0.
	* reg-stack.c: Remove CC0.
	* reginfo.c: Remove CC0.
	* regrename.c: Remove CC0.
	* reload.c: Remove CC0.
	* reload1.c: Remove CC0.
	* reorg.c: Remove CC0.
	* resource.c: Remove CC0.
	* rtl.c: Remove CC0.
	* rtl.def: Remove CC0.
	* rtl.h: Remove CC0.
	* rtlanal.c: Remove CC0.
	* sched-deps.c: Remove CC0.
	* sched-rgn.c: Remove CC0.
	* shrink-wrap.c: Remove CC0.
	* simplify-rtx.c: Remove CC0.
	* system.h: Remove CC0.  Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT,
	CC_STATUS_MDEP, and CC_STATUS.
	* target.def: Remove CC0.
	* valtrack.c: Remove CC0.
	* var-tracking.c: Remove CC0.

2021-05-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100414
	* tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance
	info here.
	(tree_ssa_phiopt_worker): But unconditionally here.

2021-05-04  Tobias Burnus  <tobias@codesourcery.com>

	* omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle
	&& and || with floating-point and complex arguments.

2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.c (insert_debug_decl_map): Delete.
	(copy_debug_stmt): Minor tweak.
	(setup_one_parameter): Do not use a variable if the value is either
	a read-only DECL or a non-addressable local variable in the caller.
	In this case, insert the debug-only variable in the map manually.
	(expand_call_inline): Do not generate a CLOBBER for these values.
	* tree-inline.h (debug_map): Minor tweak.

2021-05-04  Eric Botcazou  <ebotcazou@adacore.com>

	* builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy.
	* symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up.

2021-05-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100329
	* tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate
	asm goto defs.
	(insert_stmt_after): Assert we're not running into asm goto.

2021-05-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100398
	* tree-ssa-dse.c (pass_dse::execute): Preserve control
	altering stmts.

2021-05-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype.

2021-05-04  Alexandre Oliva  <oliva@adacore.com>

	* builtins.c (try_store_by_multiple_pieces): New.
	(expand_builtin_memset_args): Use it.  If target_char_cast
	fails, proceed as for non-constant val.  Pass len's ctz to...
	* expr.c (clear_storage_hints): ... this.  Try store by
	multiple pieces after setmem.
	(clear_storage): Adjust.
	* expr.h (clear_storage_hints): Likewise.
	(try_store_by_multiple_pieces): Declare.
	* passes.def: Replace the last copy_prop with ccp.

2021-05-03  Tom de Vries  <tdevries@suse.de>

	PR target/100321
	* omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined
	reduction.

2021-05-03  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dse.c (dse_classify_store): Track two PHI defs.

2021-05-03  Richard Biener  <rguenther@suse.de>

	* tree-ssa-dse.c: Do not include domwalk.h but cfganal.h.
	(dse_dom_walker): Remove.
	(dse_dom_walker::dse_optimize_stmt): Rename...
	(dse_optimize_stmt): ... to this, pass in live_bytes sbitmap.
	(dse_dom_walker::before_dom_children): Inline ...
	(pass_dse::execute): ... here.  Perform a reverse program
	order walk.

2021-05-03  H.J. Lu  <hjl.tools@gmail.com>

	PR bootstrap/99703
	* configure: Regenerated.

2021-05-03  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/100217
	* config/s390/s390.c (s390_hard_fp_reg_p): New function.
	(s390_md_asm_adjust): Handle hard registers.

2021-05-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/100382
	* tree-ssa-dse.c: Include tree-eh.h.
	(dse_dom_walker::before_dom_children): Don't remove stmts if
	stmt_unremovable_because_of_non_call_eh_p is true.

2021-05-02  David Edelsohn  <dje.gcc@gmail.com>

	* varasm.c (compute_reloc_for_var): Split out from...
	(get_variable_section): Use it.
	* output.h (compute_reloc_for_var): Declare.
	* config/rs6000/rs6000-protos.h
	(rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to
	unsigned int.
	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix):
	Don't append storage mapping class to symbol.
	(rs6000_xcoff_asm_named_section): Add BS and UL mapping classes.
	Don't convert TLS BSS to common.
	(rs6000_xcoff_unique_section): Don't fall back to select_secton.
	(rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is
	bss_initializer.
	(rs6000_xcoff_asm_globalize_decl_name): Don't strip storage
	mapping class.
	(rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int.
	If align is 0 from TLS class, use the same rules as varasm.c
	If not common, switch to BSS section manually.
	If common, emit appropriate comm or lcomm directive.
	(rs6000_xcoff_encode_section_info): Add logic to append all
	storage mapping classes.
	(rs6000_asm_weaken_decl): Adjust for qualname symbols.
	* config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	rs6000_xcoff_asm_output_aligned_decl_common.
	(ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use
	rs6000_xcoff_asm_output_aligned_decl_common.
	(ASM_OUTPUT_TLS_COMMON): Use
	rs6000_xcoff_asm_output_aligned_decl_common.

2021-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/100375
	* config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0
	as first argument of pseudo_node_t constructors.

2021-05-02  Jakub Jelinek  <jakub@redhat.com>

	PR target/100336
	* config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def.

2021-05-01  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove.
	(gt_pch_nx (int_range<1> *&)): New.
	(gt_ggc_mx (int_range<1> *&)): New.
	* value-range.h (class irange): Add GTY support for
	the base class.

2021-05-01  Geng Qi  <gengqi@linux.alibaba.com>

	* doc/options.texi (Negative): Change either or to both and.

2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	float_ml[as][q]_laneq builtin generator macros.
	* config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define.
	(aarch64_float_mla_laneq<mode>): Define.
	(aarch64_float_mls_laneq<mode>): Define.
	* config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin
	instead of GCC vector extensions.
	(vmlaq_laneq_f32): Likewise.
	(vmls_laneq_f32): Likewise.
	(vmlsq_laneq_f32): Likewise.

2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	float_ml[as]_lane builtin generator macros.
	* config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>):
	Rename to...
	(mul_lane<mode>3): This, and re-order arguments.
	(aarch64_float_mla_lane<mode>): Define.
	(aarch64_float_mls_lane<mode>): Define.
	* config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin
	instead of GCC vector extensions.
	(vmlaq_lane_f32): Likewise.
	(vmls_lane_f32): Likewise.
	(vmlsq_lane_f32): Likewise.

2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add float_ml[as]
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>):
	Define.
	(aarch64_float_mls<mode>): Define.
	* config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin
	instead of relying on GCC vector extensions.
	(vmla_f64): Likewise.
	(vmlaq_f32): Likewise.
	(vmlaq_f64): Likewise.
	(vmls_f32): Likewise.
	(vmls_f64): Likewise.
	(vmlsq_f32): Likewise.
	(vmlsq_f64): Likewise.
	* config/aarch64/iterators.md: Define VDQF_DF mode iterator.

2021-04-30  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	float_ml[as]_n_builtin generator macros.
	* config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>):
	Rename to...
	(mul_n<mode>3): This, and re-order arguments.
	(aarch64_float_mla_n<mode>): Define.
	(aarch64_float_mls_n<mode>): Define.
	* config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin
	instead of inline asm.
	(vmlaq_n_f32): Likewise.
	(vmls_n_f32): Likewise.
	(vmlsq_n_f32): Likewise.

2021-04-30  Jonathan Wright  <joanthan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add pmull[2]
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define.
	(aarch64_pmull_hiv16qi_insn): Define.
	(aarch64_pmull_hiv16qi): Define.
	* config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin
	instead of inline asm.
	(vmull_p8): Likewise.

2021-04-30  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>

	* config/avr/avr.md: Adjust peepholes to match and
	generate parallels with clobber of REG_CC.
	(mov<mode>_insn): Rename to mov<mode>_insn_split.
	(*mov<mode>_insn): Rename to mov<mode>_insn.

2021-04-30  David Edelsohn  <dje.gcc@gmail.com>

	* varasm.c (use_blocks_for_decl_p): Don't use section anchors
	for VAR_DECLs if -fdata-sections enabled.

2021-04-30  Michael Meissner  <meissner@linux.ibm.com>

	PR bootstrap/100327
	* config/rs6000/rs6000.c
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
	(rs6000_libgcc_floating_mode_supported_p): New target hook.

2021-04-30  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-threadbackward.c (class thread_jumps): Split out code
	from here...
	(class back_threader_registry): ...to here...
	(class back_threader_profitability): ...and here...
	(thread_jumps::thread_through_all_blocks): Remove argument.
	(back_threader_registry::back_threader_registry): New.
	(back_threader_registry::~back_threader_registry): New.
	(back_threader_registry::thread_through_all_blocks): New.
	(thread_jumps::profitable_jump_thread_path): Move from here...
	(back_threader_profitability::profitable_path_p): ...to here.
	(thread_jumps::find_taken_edge): New.
	(thread_jumps::convert_and_register_current_path): Move...
	(back_threader_registry::register_path): ...to here.
	(thread_jumps::register_jump_thread_path_if_profitable): Move...
	(thread_jumps::maybe_register_path): ...to here.
	(thread_jumps::handle_phi): Call find_taken_edge and
	maybe_register_path.
	(thread_jumps::handle_assignment): Same.
	(thread_jumps::fsm_find_control_statement_thread_paths): Remove
	tree argument to handle_phi and handle_assignment.
	(thread_jumps::find_jump_threads_backwards): Set m_name.  Remove
	set of m_speed_p and m_max_threaded_paths.
	(pass_thread_jumps::execute): Remove second argument from
	find_jump_threads_backwards.
	(pass_early_thread_jumps::execute): Same.

2021-04-30  Aldy Hernandez  <aldyh@redhat.com>

	* tree-ssa-dom.c (class dom_jump_threader_simplifier): New.
	(class dom_opt_dom_walker): Initialize some class variables.
	(pass_dominator::execute): Pass evrp_range_analyzer and
	dom_jump_threader_simplifier to dom_opt_dom_walker.
	Adjust for some functions moving into classes.
	(simplify_stmt_for_jump_threading): Adjust and move to...
	(jump_threader_simplifier::simplify): ...here.
	(dom_opt_dom_walker::before_dom_children): Adjust for
	m_evrp_range_analyzer.
	(dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack.
	(test_for_singularity): Place in dom_opt_dom_walker class.
	(dom_opt_dom_walker::optimize_stmt): The argument
	evrp_range_analyzer is now a class field.
	* tree-ssa-threadbackward.c (class thread_jumps): Add m_registry.
	(thread_jumps::thread_through_all_blocks): New.
	(thread_jumps::convert_and_register_current_path): Use m_registry.
	(pass_thread_jumps::execute): Adjust for thread_through_all_blocks
	being in the threader class.
	(pass_early_thread_jumps::execute): Same.
	* tree-ssa-threadedge.c (threadedge_initialize_values): Move...
	(jump_threader::jump_threader): ...here.
	(threadedge_finalize_values): Move...
	(jump_threader::~jump_threader): ...here.
	(jump_threader::remove_jump_threads_including): New.
	(jump_threader::thread_through_all_blocks): New.
	(record_temporary_equivalences_from_phis): Move...
	(jump_threader::record_temporary_equivalences_from_phis): ...here.
	(record_temporary_equivalences_from_stmts_at_dest): Move...
	(jump_threader::record_temporary_equivalences_from_stmts_at_dest):
	Here...
	(simplify_control_stmt_condition_1): Move to jump_threader class.
	(simplify_control_stmt_condition): Move...
	(jump_threader::simplify_control_stmt_condition): ...here.
	(thread_around_empty_blocks): Move...
	(jump_threader::thread_around_empty_blocks): ...here.
	(thread_through_normal_block): Move...
	(jump_threader::thread_through_normal_block): ...here.
	(thread_across_edge): Move...
	(jump_threader::thread_across_edge): ...here.
	(thread_outgoing_edges): Move...
	(jump_threader::thread_outgoing_edges): ...here.
	* tree-ssa-threadedge.h: Move externally facing functings...
	(class jump_threader): ...here...
	(class jump_threader_simplifier): ...and here.
	* tree-ssa-threadupdate.c (struct redirection_data): Remove comment.
	(jump_thread_path_allocator::jump_thread_path_allocator): New.
	(jump_thread_path_allocator::~jump_thread_path_allocator): New.
	(jump_thread_path_allocator::allocate_thread_edge): New.
	(jump_thread_path_allocator::allocate_thread_path): New.
	(jump_thread_path_registry::jump_thread_path_registry): New.
	(jump_thread_path_registry::~jump_thread_path_registry): New.
	(jump_thread_path_registry::allocate_thread_edge): New.
	(jump_thread_path_registry::allocate_thread_path): New.
	(dump_jump_thread_path): Make extern.
	(debug (const vec<jump_thread_edge *> &path)): New.
	(struct removed_edges): Move to tree-ssa-threadupdate.h.
	(struct thread_stats_d): Remove.
	(remove_ctrl_stmt_and_useless_edges): Make static.
	(lookup_redirection_data): Move...
	(jump_thread_path_registry::lookup_redirection_data): ...here.
	(ssa_redirect_edges): Make static.
	(thread_block_1): Move...
	(jump_thread_path_registry::thread_block_1): ...here.
	(thread_block): Move...
	(jump_thread_path_registry::thread_block): ...here.
	(thread_through_loop_header):  Move...
	(jump_thread_path_registry::thread_through_loop_header): ...here.
	(mark_threaded_blocks): Move...
	(jump_thread_path_registry::mark_threaded_blocks): ...here.
	(debug_path): Move...
	(jump_thread_path_registry::debug_path): ...here.
	(debug_all_paths): Move...
	(jump_thread_path_registry::dump): ..here.
	(rewire_first_differing_edge): Move...
	(jump_thread_path_registry::rewire_first_differing_edge): ...here.
	(adjust_paths_after_duplication): Move...
	(jump_thread_path_registry::adjust_paths_after_duplication): ...here.
	(duplicate_thread_path): Move...
	(jump_thread_path_registry::duplicate_thread_path): ..here.
	(remove_jump_threads_including): Move...
	(jump_thread_path_registry::remove_jump_threads_including): ...here.
	(thread_through_all_blocks): Move to...
	(jump_thread_path_registry::thread_through_all_blocks): ...here.
	(delete_jump_thread_path): Remove.
	(register_jump_thread): Move...
	(jump_thread_path_registry::register_jump_thread): ...here.
	* tree-ssa-threadupdate.h: Move externally facing functions...
	(class jump_thread_path_allocator): ...here...
	(class jump_thread_path_registry): ...and here.
	(thread_through_all_blocks): Remove.
	(struct removed_edges): New.
	(register_jump_thread): Remove.
	(remove_jump_threads_including): Remove.
	(delete_jump_thread_path): Remove.
	(remove_ctrl_stmt_and_useless_edges): Remove.
	(free_dom_edge_info): New prototype.
	* tree-vrp.c: Remove x_vr_values hack.
	(class vrp_jump_threader_simplifier): New.
	(vrp_jump_threader_simplifier::simplify): New.
	(vrp_jump_threader::vrp_jump_threader): Adjust method signature.
	Remove m_dummy_cond.
	Instantiate m_simplifier and m_threader.
	(vrp_jump_threader::thread_through_all_blocks): New.
	(vrp_jump_threader::simplify_stmt): Remove.
	(vrp_jump_threader::after_dom_children): Do not set m_dummy_cond.
	Remove x_vr_values hack.
	(execute_vrp): Adjust for thread_through_all_blocks being in a
	class.

2021-04-30  Christophe Lyon  <christophe.lyon@linaro.org>

	* genflags.c (gen_insn): Print failed expansion string.

2021-04-30  H.J. Lu  <hjl.tools@gmail.com>

	* expr.c (alignment_for_piecewise_move): Call mode_for_size
	without limit to MAX_FIXED_MODE_SIZE.

2021-04-30  H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/90773
	* builtins.c (builtin_memset_gen_str): Don't use return from
	simplify_gen_subreg.

2021-04-30  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98060
	* config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern.
	(*addsi3_carry_zext_0r): Ditto.
	(*sub<mode>3_carry_0): Ditto.
	(*subsi3_carry_zext_0r): Ditto.
	* config/i386/predicates.md (ix86_carry_flag_unset_operator):
	New predicate.
	* config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>:
	Also consider ix86_carry_flag_unset_operator to calculate
	the cost of adc/sbb insn.

2021-04-30  Roman Zhuykov  <zhroma@ispras.ru>

	PR rtl-optimization/100225
	PR rtl-optimization/84878
	* modulo-sched.c (sms_schedule): Use note_stores to skip loops
	where we have an instruction which touches (writes) any hard
	register from df->regular_block_artificial_uses set.
	Allow not-single-set instruction only right before basic block
	tail.

2021-04-30  Geng Qi  <gengqi@linux.alibaba.com>

	* config/riscv/riscv.opt (march=,mabi=): Negative itself.

2021-04-30  LevyHsu  <admin@levyhsu.com>

	* config/riscv/riscv.c (riscv_min_arithmetic_precision): New.
	* config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New.
	* config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New.
	(subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New.

2021-04-29  Alexandre Oliva  <oliva@adacore.com>

	* config.gcc: Merged x86 and x86_64 cpu_type-setting cases.

2021-04-29  Alexandre Oliva  <oliva@adacore.com>

	* config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to...
	(ASM_OUTPUT_MAX_SKIP_ALIGN): ... this.  Enclose in do/while(0).
	* config/i386/i386.c: Adjust.
	* config/i386/i386.md: Adjust.
	* config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop.
	* config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise.
	(ASM_OUTPUT_MAX_SKIP_PAD): Likewise.

2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.c (ix86_expand_int_compare):
	Swap operands of GTU and LEU comparison to emit carry flag comparison.
	* config/i386/i386.md (*add<mode>3_carry_0): Change insn
	predicate to allow more combine opportunities with memory operands.
	(*sub<mode>3_carry_0): Ditto.

2021-04-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/100303
	* rtl-ssa/accesses.cc (function_info::make_use_available): Take a
	boolean that indicates whether the use will only be used in
	debug instructions.  Treat it in the same way that existing
	cross-EBB debug references would be handled if so.
	(function_info::make_uses_available): Likewise.
	* rtl-ssa/functions.h (function_info::make_uses_available): Update
	prototype accordingly.
	(function_info::make_uses_available): Likewise.
	* fwprop.c (try_fwprop_subst): Update call accordingly.

2021-04-29  Jeff Law  <jlaw@tachyum.com>

	* config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside
	of RTX_CODE guard.

2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>
	    Richard Biener  <rguenther@suse.de>

	PR target/100312
	* config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD)
	(IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256)
	(IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD)
	(IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256)
	(IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS
	to PURE_ARGS category.
	* config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
	Handle PURE_ARGS category.
	* config/i386/i386-expand.c (ix86_expand_builtin): Ditto.

2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>

	* configure.ac: Check for the presence of sys/locking.h header and
	for whether _LK_LOCK is supported by _locking.
	* configure: Regenerate.
	* config.in: Likewise.
	* gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK.
	* gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING.
	* system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H.

2021-04-29  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/predicates.md (fcmov_comparison_operator):
	Do not check for trivial FP comparison operator.
	<case GEU, case LTU>: Allow CCGZmode.
	<case GTU, case LEU>: Do not allow CCCmode.
	(ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode.
	(ix86_carry_flag_operator): Match only LTU and UNLT code.
	Do not check for trivial FP comparison operator.  Allow CCGZmode.

2021-04-29  Tom de Vries  <tdevries@suse.de>

	* omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of
	fd->loop.step by either step or orig_step.

2021-04-29  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (gen_load_pcrel_sym): Delete.
	(load_got_register): Do the PIC dance here.
	(sparc_legitimize_tls_address): Simplify.
	(sparc_emit_probe_stack_range): Likewise.
	(sparc32_initialize_trampoline): Likewise.
	(sparc64_initialize_trampoline): Likewise.
	* config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker.
	(probe_stack_range<P:mode>): Likewise.
	(flush<P:mode>): Likewise.
	(tgd_hi22<P:mode>): Likewise.
	(tgd_lo10<P:mode>): Likewise.
	(tgd_add<P:mode>): Likewise.
	(tgd_call<P:mode>): Likewise.
	(tldm_hi22<P:mode>): Likewise.
	(tldm_lo10<P:mode>): Likewise.
	(tldm_add<P:mode>): Likewise.
	(tldm_call<P:mode>): Likewise.
	(tldo_hix22<P:mode>): Likewise.
	(tldo_lox10<P:mode>): Likewise.
	(tldo_add<P:mode>): Likewise.
	(tie_hi22<P:mode>): Likewise.
	(tie_lo10<P:mode>): Likewise.
	(tie_add<P:mode>): Likewise.
	(tle_hix22<P:mode>): Likewise.
	(tle_lox10<P:mode>): Likewise.
	(stack_protect_setsi): Rename to...
	(stack_protect_set32): ...this.
	(stack_protect_setdi): Rename to...
	(stack_protect_set64): ...this.
	(stack_protect_set): Adjust calls to above.
	(stack_protect_testsi): Rename to...
	(stack_protect_test32): ...this.
	(stack_protect_testdi): Rename to...
	(stack_protect_test64): ...this.
	(stack_protect_test): Adjust calls to above.

2021-04-29  H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/90773
	* builtins.c (builtin_memcpy_read_str): Add a dummy argument.
	(builtin_strncpy_read_str): Likewise.
	(builtin_memset_read_str): Add an argument for the previous RTL
	information and generate the new RTL from the previous RTL info.
	(builtin_memset_gen_str): Likewise.
	* builtins.h (builtin_strncpy_read_str): Update the prototype.
	(builtin_memset_read_str): Likewise.
	* expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p()
	returns true, round up size and alignment to the widest integer
	mode for maximum size.
	(pieces_addr::adjust): Add a pointer to by_pieces_prev argument
	and pass it to m_constfn.
	(op_by_pieces_d): Add m_push and m_overlap_op_by_pieces.
	(op_by_pieces_d::op_by_pieces_d): Add a bool argument to
	initialize m_push.  Initialize m_overlap_op_by_pieces with
	targetm.overlap_op_by_pieces_p ().
	(op_by_pieces_d::run): Pass the previous RTL information to
	pieces_addr::adjust and generate overlapping operations if
	m_overlap_op_by_pieces is true.
	(PUSHG_P): New.
	(move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d
	change.
	(store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d
	change.
	(can_store_by_pieces): Use by_pieces_constfn on constfun.
	(store_by_pieces): Use by_pieces_constfn on constfun.  Updated
	for op_by_pieces_d change.
	(clear_by_pieces_1): Add a dummy argument.
	(clear_by_pieces): Updated for op_by_pieces_d change.
	(compare_by_pieces_d::compare_by_pieces_d): Likewise.
	(string_cst_read_str): Add a dummy argument.
	* expr.h (by_pieces_constfn): Add a dummy argument.
	(by_pieces_prev): New.
	* target.def (overlap_op_by_pieces_p): New target hook.
	* config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New.
	* doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P.
	* doc/tm.texi: Regenerated.

2021-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100253
	* tree-vect-stmts.c (vectorizable_load): Do not assume
	element alignment when DR_MISALIGNMENT is -1.
	(vectorizable_store): Likewise.

2021-04-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/100302
	* config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use
	absu_hwi instead of abs_hwi.

2021-04-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/38474
	* tree-ssa-structalias.c (add_graph_edge): Avoid direct
	forwarding when indirect forwarding through ESCAPED
	alread happens.

2021-04-29  Tom de Vries  <tdevries@suse.de>

	PR target/100232
	* internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC)
	(expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED)
	(expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY)
	(expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to.

2021-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99912
	* tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New.
	(dse_dom_walker::todo): Likewise.
	(dse_dom_walker::dse_optimize_stmt): Move VDEF check to the
	caller.
	(dse_dom_walker::before_dom_children): Remove trivially
	dead SSA defs and schedule CFG cleanup if we removed all
	PHIs in a block.
	(pass_dse::execute): Get TODO as computed by the DOM walker
	and return it.  Wipe dominator info earlier.

2021-04-29  Richard Biener  <rguenther@suse.de>

	PR ipa/100308
	* ipa-prop.c (ipcp_modif_dom_walker::before_dom_children):
	Track blocks to cleanup EH in new m_need_eh_cleanup.
	(ipcp_modif_dom_walker::cleanup_eh): New.
	(ipcp_transform_function): Release dominator info before
	doing EH cleanup.

2021-04-29  Martin Sebor  <msebor@redhat.com>

	PR middle-end/100250
	* attribs.c (attr_access::array_as_string): Avoid dereferencing
	a pointer when it's null.

2021-04-29  Martin Sebor  <msebor@redhat.com>

	* Makefile.in (OBJS): Add ipa-free-lang-data.o.
	* ipa-free-lang-data.cc: New file.
	* tree.c: Move pass free_lang_data to file above.
	 (build_array_type_1): Declare extern.
	* tree.h (build_array_type_1): Declare.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Modify comment to
	make consistent with updated RTL pattern.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>):
	Implement using ss_truncate and us_truncate rather than
	unspecs.
	* config/aarch64/iterators.md: Remove redundant unspecs and
	iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/arm_acle.h (__attribute__): Make intrinsic
	attributes consistent with those defined in arm_neon.h.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/arm_fp16.h (__attribute__): Make intrinsic
	attributes consistent with those defined in arm_neon.h.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	float_trunc_rodd builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df):
	Define.
	(aarch64_float_trunc_rodd_lo_v2sf): Define.
	(aarch64_float_trunc_rodd_hi_v4sf_le): Define.
	(aarch64_float_trunc_rodd_hi_v4sf_be): Define.
	(aarch64_float_trunc_rodd_hi_v4sf): Define.
	* config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin
	instead of inline asm.
	(vcvtx_high_f32_f64): Likewise.
	(vcvtxd_f32_f64): Likewise.
	* config/aarch64/iterators.md: Add FCVTXN unspec.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin
	generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>):
	Define.
	* config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin
	instead of inline asm.
	(vqtbx1_u8): Likewise.
	(vqtbx1_p8): Likewise.
	(vqtbx1q_s8): Likewise.
	(vqtbx1q_u8): Likewise.
	(vqtbx1q_p8): Likewise.
	(vtbx2_s8): Likewise.
	(vtbx2_u8): Likewise.
	(vtbx2_p8): Likewise.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin
	generator macros.
	* config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin
	instead of inline asm.
	(vqtbl1_s8): Likewise.
	(vqtbl1_u8): Likewise.
	(vqtbl1q_p8): Likewise.
	(vqtbl1q_s8): Likewise.
	(vqtbl1q_u8): Likewise.
	(vtbl1_s8): Likewise.
	(vtbl1_u8): Likewise.
	(vtbl1_p8): Likewise.
	(vtbl2_s8): Likewise.
	(vtbl2_u8): Likewise.
	(vtbl2_p8): Likewise.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add polynomial
	ssri_n buitin generator macro.
	* config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin
	instead of inline asm.
	(vsri_n_p16): Likewise.
	(vsri_n_p64): Likewise.
	(vsriq_n_p8): Likewise.
	(vsriq_n_p16): Likewise.
	(vsriq_n_p64): Likewise.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Use VALLP mode
	iterator for polynomial ssli_n builtin generator macro.
	* config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin
	instead of inline asm.
	(vsli_n_p16): Likewise.
	(vsliq_n_p8): Likewise.
	(vsliq_n_p16): Likewise.
	* config/aarch64/iterators.md: Define VALLP mode iterator.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Use VDQV_L
	iterator to generate [su]adalp RTL builtins.
	* config/aarch64/aarch64-simd.md: Use VDQV_L iterator in
	[su]adalp RTL pattern.
	* config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin
	instead of inline asm.
	(vpadal_u32): Likewise.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]addlp
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>):
	Define.
	* config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin
	instead of inline asm.
	(vpaddl_s16): Likewise.
	(vpaddl_s32): Likewise.
	(vpaddl_u8): Likewise.
	(vpaddl_u16): Likewise.
	(vpaddl_u32): Likewise.
	(vpaddlq_s8): Likewise.
	(vpaddlq_s16): Likewise.
	(vpaddlq_s32): Likewise.
	(vpaddlq_u8): Likewise.
	(vpaddlq_u16): Likewise.
	(vpaddlq_u32): Liwewise.
	* config/aarch64/iterators.md: Define [SU]ADDLP unspecs with
	appropriate attributes.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator
	for aarch64_addp<mode> builtin macro generator.
	* config/aarch64/aarch64-simd.md: Use VDQ_I iterator in
	aarch64_addp<mode> RTL pattern.
	* config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin
	instead of inline asm.
	(vpaddq_s16): Likewise.
	(vpaddq_s32): Likewise.
	(vpaddq_s64): Likewise.
	(vpaddq_u8): Likewise.
	(vpaddq_u16): Likewise.
	(vpaddq_u32): Likewise.
	(vpaddq_u64): Likewise.

2021-04-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>):
	Define.
	* config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin
	instead of inline asm.
	(vqdmulh_n_s32): Likewise.
	(vqdmulhq_n_s16): Likewise.
	(vqdmulhq_n_s32): Likewise.
	(vqrdmulh_n_s16): Likewise.
	(vqrdmulh_n_s32): Likewise.
	(vqrdmulhq_n_s16): Likewise.
	(vqrdmulhq_n_s32): Likewise.

2021-04-28  Tobias Burnus  <tobias@codesourcery.com>

	* doc/install.texi (--enable-offload-defaulted): Document.

2021-04-28  Senthil Kumar Selvaraj  <saaadhu@gcc.gnu.org>

	* config/avr/avr-dimode.md: Turn existing patterns into
	define_insn_and_split style patterns where the splitter
	adds a clobber of the condition code register.  Drop "cc"
	attribute.  Add new patterns to match output of
	the splitters.
	* config/avr/avr-fixed.md: Likewise.
	* config/avr/avr.c (cc_reg_rtx): New.
	(avr_parallel_insn_from_insns): Adjust insn count
	for removal of set of cc0.
	(avr_is_casesi_sequence): Likewise.
	(avr_casei_sequence_check_operands): Likewise.
	(avr_optimize_casesi): Likewise. Also insert
	new insns after jump_insn.
	(avr_pass_casesi::avr_rest_of_handle_casesi): Adjust
	for removal of set of cc0.
	(avr_init_expanders): Initialize cc_reg_rtx.
	(avr_regno_reg_class): Handle REG_CC.
	(cond_string): Remove usage of CC_OVERFLOW_UNUSABLE.
	(avr_notice_update_cc): Remove function.
	(ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE.
	(compare_condition): Adjust for PARALLEL with
	REG_CC clobber.
	(out_shift_with_cnt): Likewise.
	(ashlhi3_out): Likewise.
	(ashrhi3_out): Likewise.
	(lshrhi3_out): Likewise.
	(avr_class_max_nregs): Return single reg for REG_CC.
	(avr_compare_pattern): Check for REG_CC instead
	of cc0_rtx.
	(avr_reorg_remove_redundant_compare): Likewise.
	(avr_reorg):Adjust for PARALLEL with REG_CC clobber.
	(avr_hard_regno_nregs): Return single reg for REG_CC.
	(avr_hard_regno_mode_ok): Allow only CCmode for REG_CC.
	(avr_md_asm_adjust): Clobber REG_CC.
	(TARGET_HARD_REGNO_NREGS): Define.
	(TARGET_CLASS_MAX_NREGS): Define.
	(TARGET_MD_ASM_ADJUST): Define.
	* config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust
	for REG_CC.
	(enum reg_class): Add CC_REG class.
	(NOTICE_UPDATE_CC): Remove.
	(CC_OVERFLOW_UNUSABLE): Remove.
	(CC_NO_CARRY): Remove.
	* config/avr/avr.md: Turn existing patterns into
	define_insn_and_split style patterns where the splitter
	adds a clobber of the condition code register.  Drop "cc"
	attribute.  Add new patterns to match output of
	the splitters.
	(sez): Remove unused pattern.

2021-04-28  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100311
	* config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be
	used in HImode.

2021-04-28  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/100305
	* config/aarch64/constraints.md (Utq): Require the address to
	be valid for both the element mode and for V2DImode.

2021-04-28  Jakub Jelinek  <jakub@redhat.com>
	    Tobias Burnus  <tobias@codesourcery.com>

	* configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
	* gcc.c (process_command): New variable.
	(driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
	set it if -foffload is defaulted.
	* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
	(compile_offload_image): If OFFLOAD_DEFAULTED and
	OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
	if corresponding mkoffload can't be found.
	(compile_images_for_offload_targets): Likewise.  Free and clear
	offload_names if no valid offload is found.
	* config.in: Regenerate.
	* configure: Regenerate.

2021-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100292
	* tree-vect-generic.c (expand_vector_condition): Do not fold
	the comparisons.

2021-04-27  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New.
	* config/rs6000/aix64.opt (m64): New.
	(m32): New.

2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/vax/vax.c (print_operand_address, vax_address_cost_1)
	(index_term_p): Handle ASHIFT too.

2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3.
	(sync_lock_test_and_set<mode>): Adjust accordingly.
	(sync_lock_release<mode>): Likewise.

2021-04-27  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/vax/vax-protos.h (adjacent_operands_p): Remove
	prototype.
	* config/vax/vax.c (adjacent_operands_p): Remove.

2021-04-27  Maciej W. Rozycki  <macro@linux-mips.org>

	* ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall
	through to the non-conditional execution case if getting the
	condition for conditional execution has failed.

2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/100284
	* gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test.
	* tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather
	than asserting on it.

2021-04-27  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect
	with TARGET_AIX_OS.

2021-04-27  David Edelsohn  <dje.gcc@gmail.com>

	PR target/94177
	* calls.c (precompute_register_parameters): Additionally test
	targetm.precompute_tls_p to pre-compute argument.
	* config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define.
	* config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New.
	* target.def (precompute_tls_p): New.
	* doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation.
	* doc/tm.texi: Regenerated.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/100200
	* config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL
	back to HOST_WIDE_INT.

2021-04-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	PR target/100106
	* simplify-rtx.c (simplify_context::simplify_subreg): Check the
	memory alignment for the outer mode.

2021-04-27  H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/90773
	* expr.c (op_by_pieces_d::get_usable_mode): New member function.
	(op_by_pieces_d::run): Cange a while loop to a do-while loop.

2021-04-27  Alex Coplan  <alex.coplan@arm.com>

	PR target/99977
	* config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen
	with negative immediates: ensure we expand cbranchsi4_scratch
	correctly and ensure we satisfy its constraints.
	* config/arm/sync.md
	(@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't
	attempt to tie two output operands together with constraints;
	collapse two alternatives.
	(@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise.
	* config/arm/thumb1.md (cbranchsi4_neg_late): New.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/100200
	* config/aarch64/predicates.md (aarch64_sub_immediate,
	aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL.
	* config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise.
	* config/aarch64/aarch64.c (aarch64_print_operand,
	aarch64_split_atomic_op, aarch64_expand_subvti): Likewise.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/100239
	* tree-vect-generic.c (lower_vec_perm): Don't accept constant
	permutations with all indices from the first zero element as vec_shl.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100254
	* cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on
	last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns.

2021-04-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99912
	* passes.def: Add comment about new TODO_remove_unused_locals.
	* tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals
	at start.

2021-04-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99912
	* passes.def (pass_all_optimizations): Add pass_dse before
	the first pass_dce, move the first pass_dse before the
	pass_dce following pass_pre.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95527
	* generic-match-head.c: Include tm.h.
	* gimple-match-head.c: Include tm.h.
	* match.pd (CLZ == INTEGER_CST): Don't use
	#ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO
	if clz == CFN_CLZ.  Add missing val declaration.
	(CTZ cmp CST): New simplifications.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96696
	* expr.c (expand_expr_divmod): New function.
	(expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and
	divisions.  Formatting fixes.
	<case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is
	cheaper.

2021-04-27  Martin Jambor  <mjambor@suse.cz>

	PR ipa/99951
	* ipa-param-manipulation.c (ipa_param_adjustments::modify_call):
	If removing a call statement LHS SSA name, release it.

2021-04-27  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100236
	* config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM
	is valid before including it in the mask.

2021-04-27  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/100270
	* config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle
	SVE attributes.

2021-04-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100051
	* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add
	disambiguator based on access size vs. decl size.

2021-04-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100278
	* tree-ssa-pre.c (compute_avail): Give up when we cannot
	adjust TBAA beacuse of mismatching bases.

2021-04-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/99405
	* config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1):
	For any_rotate define_insn_split and following splitters, use
	SWI iterator instead of SWI48.

2021-04-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99776
	* match.pd (bit_field_ref (ctor)): Relax element extract
	type compatibility checks.

2021-04-27  Cui,Lili  <lili.cui@intel.com>

	* common/config/i386/i386-common.c (processor_names):
	Sync processor_names with processor_type.
	* config/i386/i386-options.c (processor_cost_table):
	Sync processor_cost_table with processor_type.

2021-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (irange::irange_set_1bit_anti_range): Add assert.
	(irange::set): Call irange_set_1bit_anti_range for handling all
	1-bit ranges.  Fall through on ~[MIN,MAX].

2021-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (irange::legacy_num_pairs): Remove.
	(irange::invert): Change gcc_assert to gcc_checking_assert.
	* value-range.h (irange::num_pairs): Adjust for a cached
	num_pairs().  Also, rename all gcc_assert's to
	gcc_checking_assert's.

2021-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (irange::operator=): Set m_kind.
	(irange::copy_to_legacy): Handle varying and undefined sources
	as a legacy copy since they can be easily copied.
	(irange::irange_set): Set m_kind.
	(irange::irange_set_anti_range): Same.
	(irange::set): Rename normalize_min_max to normalize_kind.
	(irange::verify_range): Adjust for multi-ranges having the
	m_kind field set.
	(irange::irange_union): Set m_kind.
	(irange::irange_intersect): Same.
	(irange::invert): Same.
	* value-range.h (irange::kind): Always return m_kind.
	(irange::varying_p): Rename to...
	(irange::varying_comptaible_p): ...this.
	(irange::undefined_p): Only look at m_kind.
	(irange::irange): Always set VR_UNDEFINED if applicable.
	(irange::set_undefined): Always set VR_UNDEFINED.
	(irange::set_varying): Always set m_kind to VR_VARYING.
	(irange::normalize_min_max): Rename to...
	(irange::normalize_kind): ...this.

2021-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info):
	Adjust for constant_p including varying_p.
	* tree-vrp.c (vrp_prop::finalize): Same.
	(determine_value_range): Same.
	* vr-values.c (vr_values::range_of_expr): Same.
	* value-range.cc (irange::symbolic_p): Do not check varying_p.
	(irange::constant_p): Same.

2021-04-26  Aldy Hernandez  <aldyh@redhat.com>

	* value-range.cc (irange::legacy_lower_bound): Replace
	  !undefined_p check with num_ranges > 0.
	(irange::legacy_upper_bound): Same.
	* value-range.h (irange::type): Same.
	(irange::lower_bound): Same.
	(irange::upper_bound): Same.

2021-04-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99956
	* gimple-loop-interchange.cc (compute_access_stride):
	Try instantiating the access in a shallower loop nest
	if instantiating failed.
	(compute_access_strides): Pass adjustable loop_nest
	to compute_access_stride.

2021-04-26  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (arm_cmse_hw): Document.

2021-04-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF.

2021-04-26  Thomas Schwinge  <thomas@codesourcery.com>
	    Nathan Sidwell  <nathan@codesourcery.com>
	    Tom de Vries  <vries@codesourcery.com>
	    Julian Brown  <julian@codesourcery.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>

	* omp-offload.c (oacc_validate_dims): Implement
	'-Wopenacc-parallelism'.
	* doc/invoke.texi (-Wopenacc-parallelism): Document.

2021-04-26  Richard Biener  <rguenther@suse.de>

	* tree-cfg.h (gimplify_build1): Remove.
	(gimplify_build2): Likewise.
	(gimplify_build3): Likewise.
	* tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c.
	(gimplify_build2): Likewise.
	(gimplify_build3): Likewise.
	* tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c.
	Modernize.
	(gimplify_build2): Likewise.
	(gimplify_build3): Likewise.
	(tree_vec_extract): Use resimplify with following SSA edges.
	(expand_vector_parallel): Avoid passing NULL size/bitpos
	to tree_vec_extract.
	* expr.c (store_constructor): Deal with zero-element CTORs.
	* match.pd (bit_field_ref <vector CTOR>): Make sure to
	produce vector constants when possible.

2021-04-26  Richard Biener  <rguenther@suse.de>

	* tree-complex.c: Include gimple-fold.h.
	(expand_complex_addition): Use gimple_build.
	(expand_complex_multiplication_components): Likewise.
	(expand_complex_multiplication): Likewise.
	(expand_complex_div_straight): Likewise.
	(expand_complex_div_wide): Likewise.
	(expand_complex_division): Likewise.
	(expand_complex_conjugate): Likewise.
	(expand_complex_comparison): Likewise.

2021-04-26  Richard Biener  <rguenther@suse.de>

	* tree-ssa-phiopt.c (two_value_replacement): Remove use
	of legacy gimplify_buildN API.

2021-04-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99473
	* tree-ssa-phiopt.c (cond_store_replacement): Handle all
	stores.

2021-04-26  Richard Biener  <rguenther@suse.de>

	* config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin):
	Use replace_call_with_value.

2021-04-26  Richard Biener  <rguenther@suse.de>

	* tree-ssa-propagate.h (valid_gimple_rhs_p): Remove.
	(update_gimple_call): Likewise.
	(update_call_from_tree): Likewise.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): Remove.
	(valid_gimple_call_p): Likewise.
	(move_ssa_defining_stmt_for_defs): Likewise.
	(finish_update_gimple_call): Likewise.
	(update_gimple_call): Likewise.
	(update_call_from_tree): Likewise.
	(propagate_tree_value_into_stmt): Use replace_call_with_value.
	* gimple-fold.h (update_gimple_call): Declare.
	* gimple-fold.c (valid_gimple_rhs_p): Move here from
	tree-ssa-propagate.c.
	(update_gimple_call): Likewise.
	(valid_gimple_call_p): Likewise.
	(finish_update_gimple_call): Likewise, and simplify.
	(gimplify_and_update_call_from_tree): Implement
	update_call_from_tree functionality, avoid excessive
	push/pop_gimplify_context.
	(gimple_fold_builtin): Use only gimplify_and_update_call_from_tree.
	(gimple_fold_call): Likewise.
	* gimple-ssa-sprintf.c (try_substitute_return_value): Likewise.
	* tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise.
	(pass_fold_builtins::execute): Likewise.
	(optimize_stack_restore): Use replace_call_with_value.
	* tree-cfg.c (fold_loop_internal_call): Likewise.
	* tree-ssa-dce.c (maybe_optimize_arith_overflow): Use
	only gimplify_and_update_call_from_tree.
	* tree-ssa-strlen.c (handle_builtin_strlen): Likewise.
	(handle_builtin_strchr): Likewise.
	* tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h.

2021-04-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/100255
	* vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block,
	vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove
	register keywords.

2021-04-25  liuhongt  <hongtao.liu@intel.com>

	PR target/98911
	* config/i386/i386-builtin.def (BDESC): Change the icode of
	the following builtins to CODE_FOR_nothing.
	* config/i386/i386.c (ix86_gimple_fold_builtin): Fold
	IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128,
	IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ,
	IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256,
	IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256,
	IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128,
	IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ,
	IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256,
	IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256.
	* config/i386/sse.md (avx2_eq<mode>3): Deleted.
	(sse2_eq<mode>3): Ditto.
	(sse4_1_eqv2di3): Ditto.
	(sse2_gt<mode>3): Rename to ..
	(*sse2_gt<mode>3): .. this.

2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>

	Revert:
	2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/100152
	* config/darwin.c (darwin_binds_local_p): Assume that any
	public symbol might be interposed for PIC code. Update function
	header comment to reflect current Darwin capability.

2021-04-24  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/100152
	* config/darwin.c (darwin_binds_local_p): Assume that any
	public symbol might be interposed for PIC code. Update function
	header comment to reflect current Darwin capability.

2021-04-24  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/sourcebuild.texi: Document no-opts and any-opts target
	selectors.

2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>

	* config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm.

2021-04-23  YiFei Zhu  <zhuyifei1999@gmail.com>

	* config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64.

2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100041
	* config/i386/i386-options.c (ix86_option_override_internal):
	Error out when -m96bit-long-double is used with 64bit targets.
	* config/i386/i386.md (*pushxf_rounded): Remove pattern.

2021-04-23  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c: Remove FIXME about usage of
	hardware_concurrency. The function is not on par with
	what we have now.

2021-04-23  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100182
	* config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2):
	Copy operand 3 to operand 4.  Use sse_reg_operand
	as operand 3 predicate.
	(FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto.
	(LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto.
	(LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2):
	Copy operand 1 to operand 0.
	(FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto.
	(LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto.
	(LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto.

2021-04-23  Alex Coplan  <alex.coplan@arm.com>

	PR rtl-optimization/100230
	* early-remat.c (early_remat::sort_candidates): Use delete[]
	instead of delete for array allocated with new[].

2021-04-23  Richard Biener  <rguenther@suse.de>

	* genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing.
	(capture_info::capture_info): Likewise.
	(capture_info::walk_match): Likewise.
	(expr::gen_transform): Likewise.
	(dt_simplify::gen_1): Likewise.
	* gimple-match-head.c (maybe_resimplify_conditional_op):
	Remove VEC_COND_EXPR special-casing.
	(gimple_simplify): Likewise.
	* gimple.c (gimple_could_trap_p_1): Adjust.
	* tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR
	to participate in PRE.

2021-04-23  Richard Biener  <rguenther@suse.de>

	* cfganal.c (connect_infinite_loops_to_exit): First call
	add_noreturn_fake_exit_edges.
	* ipa-sra.c (process_scan_results): Do not call the now redundant
	add_noreturn_fake_exit_edges.
	* predict.c (tree_estimate_probability): Likewise.
	(rebuild_frequencies): Likewise.
	* store-motion.c (one_store_motion_pass): Likewise.

2021-04-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100222
	* predict.c (pass_profile::execute): Remove redundant call to
	mark_irreducible_loops.
	(report_predictor_hitrates): Likewise.

2021-04-23  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid
	valid_gimple_rhs_p by instead gimplifying to one.

2021-04-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99971
	* tree-vect-data-refs.c (vect_slp_analyze_node_dependences):
	Always use TBAA for loads.

2021-04-23  liuhongt  <hongtao.liu@intel.com>

	PR target/100093
	* config/i386/i386-options.c (ix86_option_override_internal):
	Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags
	when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled
	by target attribute.

2021-04-23  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to
	DWARF2_DEBUG.
	* config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same.

2021-04-22  David Edelsohn  <dje.gcc@gmail.com>

	* config.gcc (powerpc-ibm-aix6.*): Remove.
	* config/rs6000/aix61.h: Delete.

2021-04-22  Martin Liska  <mliska@suse.cz>

	PR testsuite/100159
	PR testsuite/100192
	* builtins.c (expand_builtin): Fix typos and missing comments.
	* dwarf2out.c (gen_subprogram_die): Likewise.
	(gen_struct_or_union_type_die): Likewise.

2021-04-22  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/100119
	* config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse):
	Remove the sign with FE_DOWNWARD, where x - x = -0.0.

2021-04-21  Iain Sandoe  <iain@sandoe.co.uk>

	* config/i386/darwin.h (TARGET_64BIT): Remove definition
	based on TARGET_ISA_64BIT.
	(TARGET_64BIT_P): Remove definition based on
	TARGET_ISA_64BIT_P().

2021-04-21  Martin Liska  <mliska@suse.cz>

	Revert:
	2021-04-21  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (cpuset_popcount): Remove.
	(init_num_threads): Remove and use hardware_concurrency.

2021-04-21  Martin Liska  <mliska@suse.cz>

	PR jit/98615
	* main.c (main): Call toplev::finalize in CHECKING_P mode.
	* ipa-modref.c (ipa_modref_c_finalize): summaries are NULL
	when incremental LTO linking happens.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the
	makeserver cannot be detected, then use -flto=N fallback.

2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>

	* acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling,
	default to yes for aarch64-linux-gnu.
	* configure: Regenerate.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* lto-wrapper.c (cpuset_popcount): Remove.
	(init_num_threads): Remove and use hardware_concurrency.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.c: Remove superfluous || TARGET_MACHO
	which remains to be '(... || 0)' and clang complains about it.
	* dwarf2out.c (AT_vms_delta): Declare conditionally.
	(add_AT_vms_delta): Likewise.
	* tree.c (fld_simplified_type): Use rather more common pattern
	for disabling of something (#if 0).
	(get_tree_code_name): Likewise.
	(verify_type_variant): Likewise.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* config/i386/i386-expand.c (decide_alignment): Use newly named
	macro TARGET_CPU_P.
	* config/i386/i386.c (ix86_decompose_address): Likewise.
	(ix86_address_cost): Likewise.
	(ix86_lea_outperforms): Likewise.
	(ix86_avoid_lea_for_addr): Likewise.
	(ix86_add_stmt_cost): Likewise.
	* config/i386/i386.h (TARGET_*): Remove.
	(TARGET_CPU_P): New macro.
	* config/i386/i386.md: Use newly named macro TARGET_CPU_P.
	* config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise.
	(swap_top_of_ready_list): Likewise.
	(ix86_atom_sched_reorder): Likewise.
	* config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise.
	* config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P):
	Define.
	(SET_TARGET_NO_SAHF): Likewise.
	(TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise.
	(SET_TARGET_PREFETCH_SSE): Likewise.
	(TARGET_EXPLICIT_NO_TUNE_P): Likewise.
	(SET_TARGET_NO_TUNE): Likewise.
	(TARGET_EXPLICIT_NO_80387_P): Likewise.
	(SET_TARGET_NO_80387): Likewise.
	(DEF_PTA): New.
	* config/i386/i386.h (TARGET_*): Remove.
	* opth-gen.awk: Generate new used macros.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* config/i386/i386.h (PTA_*): Remove.
	(enum pta_flag): New.
	(DEF_PTA): Generate PTA_* values from i386-isa.def.
	* config/i386/i386-isa.def: New file.

2021-04-21  Alex Coplan  <alex.coplan@arm.com>

	PR target/99988
	* config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New.
	(rest_of_insert_bti): Avoid inserting duplicate bti j insns for
	jump table targets.

2021-04-21  H.J. Lu  <hjl.tools@gmail.com>

	* config.gcc: Install mwaitintrin.h for i[34567]86-*-* and
	x86_64-*-* targets.
	* common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET):
	New.
	(OPTION_MASK_ISA2_MWAIT_UNSET): Likewise.
	(ix86_handle_option): Handle -mmwait.
	* config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
	Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on
	__builtin_ia32_monitor and __builtin_ia32_mwait.
	* config/i386/i386-options.c (isa2_opts): Add -mmwait.
	(ix86_valid_target_attribute_inner_p): Likewise.
	(ix86_option_override_internal): Enable mwait/monitor
	instructions for -msse3.
	* config/i386/i386.h (TARGET_MWAIT): New.
	(TARGET_MWAIT_P): Likewise.
	* config/i386/i386.opt: Add -mmwait.
	* config/i386/mwaitintrin.h: New file.
	* config/i386/pmmintrin.h: Include <mwaitintrin.h>.
	* config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with
	TARGET_MWAIT.
	(@sse3_monitor_<mode>): Likewise.
	* config/i386/x86gprintrin.h: Include <mwaitintrin.h>.
	* doc/extend.texi: Document mwait target attribute.
	* doc/invoke.texi: Document -mmwait.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* config/i386/i386-options.c (DEF_ENUM): Remove it.
	* config/i386/i386-opts.h (DEF_ENUM): Likewise.
	* config/i386/stringop.def (DEF_ENUM): Likewise.

2021-04-21  Martin Liska  <mliska@suse.cz>

	* tree-cfg.c (gimple_verify_flow_info): Use qD instead
	of print_generic_expr.

2021-04-21  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/100148
	* cprop.c (constprop_register): Use next_nondebug_insn instead of
	NEXT_INSN.

2021-04-21  Martin Liska  <mliska@suse.cz>

	PR ipa/98815
	* cgraphunit.c (cgraph_node::analyze): Remove duplicate
	free_dominance_info calls.

2021-04-21  Richard Biener  <rguenther@suse.de>

	* gimple-fold.c (maybe_fold_reference): Remove is_lhs
	parameter (and assume it to be false).
	(fold_gimple_assign): Adjust, remove all callers of
	maybe_fold_reference calling it with is_lhs true.
	(gimple_fold_call): Likewise.
	(fold_stmt_1): Likewise.

2021-04-21  Richard Biener  <rguenther@suse.de>

	* fold-const.c (pedantic_non_lvalue_loc): Remove.
	(fold_binary_loc): Adjust.
	(fold_ternary_loc): Likewise.

2021-04-21  Richard Sandiford  <richard.sandiford@arm.com>

	PR middle-end/100130
	* varasm.c (get_block_for_decl): Make sure that any use of the
	retain attribute matches the section's retain flag.
	(switch_to_section): Check for retain mismatches even when
	changing sections, but do not warn if the given decl is the
	section's named.decl.
	(output_object_block): Pass the first decl in the block (if any)
	to switch_to_section.

2021-04-20  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-c.c (ix86_target_macros_internal): Define
	__CRC32__ for -mcrc32.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Enable crc32 instruction for -msse4.2.
	* config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2
	check.
	(sse4_2_crc32di): Likewise.
	* config/i386/ia32intrin.h: Use crc32 target option for CRC32
	intrinsics.

2021-04-20  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/100108
	* config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider
	OPTION_MASK_ISEL.

2021-04-20  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Fix typo.
	* params.opt: Likewise.

2021-04-20  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Document new param.

2021-04-19  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/100081
	* gimple-range-cache.h (ranger_cache): Inherit from gori_compute
	rather than gori_compute_cache.
	* gimple-range-gori.cc (is_gimple_logical_p): Move to top of file.
	(range_def_chain::m_logical_depth): New member.
	(range_def_chain::range_def_chain): Initialize m_logical_depth.
	(range_def_chain::get_def_chain): Don't build defchains through more
	than LOGICAL_LIMIT logical expressions.
	* params.opt (param_ranger_logical_depth): New.

2021-04-19  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100067
	* config/arm/arm.c (arm_configure_build_target): Do not strip
	extended FPU/SIMD feature bits from the target ISA when -mfpu
	is specified (partial revert of r11-8168).

2021-04-19  Thomas Schwinge  <thomas@codesourcery.com>

	* params.opt (-param=openacc-kernels=): Add.
	* omp-oacc-kernels-decompose.cc
	(pass_omp_oacc_kernels_decompose::gate): Use it.
	* doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move...
	(--param): ... here, 'openacc-kernels'.

2021-04-19  Martin Liska  <mliska@suse.cz>

	PR c/100143
	* gengtype.c (finish_root_table): Align function arguments
	in between declaration and definition.

2021-04-19  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with
	frames larger than the SEH maximum frame size.

2021-04-18  Segher Boessenkool  <segher@kernel.crashing.org>

	PR rtl-optimization/99927
	* combine.c (distribute_notes) [REG_UNUSED]: If the register already
	is dead, just drop it.

2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99914
	* config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_TEMPLATES_ALWAYS_COMDAT.

2021-04-17  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/darwin-d.c (darwin_d_handle_target_object_format): New
	function.
	(darwin_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New
	function.
	(dragonfly_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/freebsd-d.c (freebsd_d_handle_target_object_format): New
	function.
	(freebsd_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/glibc-d.c (glibc_d_handle_target_object_format): New
	function.
	(glibc_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/i386/i386-d.c (ix86_d_handle_target_object_format): New
	function.
	(ix86_d_register_target_info): Add ix86_d_handle_target_object_format
	as handler for objectFormat key.
	* config/i386/winnt-d.c (winnt_d_handle_target_object_format): New
	function.
	(winnt_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/netbsd-d.c (netbsd_d_handle_target_object_format): New
	function.
	(netbsd_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/openbsd-d.c (openbsd_d_handle_target_object_format): New
	function.
	(openbsd_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.
	* config/pa/pa-d.c (pa_d_handle_target_object_format): New function.
	(pa_d_register_target_info): Add pa_d_handle_target_object_format as
	handler for objectFormat key.
	* config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New
	function.
	(rs6000_d_register_target_info): Add
	rs6000_d_handle_target_object_format as handler for objectFormat key.
	* config/sol2-d.c (solaris_d_handle_target_object_format): New
	function.
	(solaris_d_register_target_info): New function.
	(TARGET_D_REGISTER_OS_TARGET_INFO): Define.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/91710
	* config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change
	abi_break argument from bool * to unsigned *, store there the pre-GCC 9
	alignment.
	(aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers.
	(aarch64_function_arg_regno_p): Likewise.  Only emit -Wpsabi note if
	the old and new alignment after applying MIN/MAX to it is different.

2021-04-16  Tamar Christina  <tamar.christina@arm.com>

	PR target/100048
	* config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New.
	* config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new
	TRN optab.
	* config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New.

2021-04-16  Bill Schmidt  <wschmidt@linux.ibm.com>

	* doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise
	this section and its subsections.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/100075
	* config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New
	define_insn patterns.

2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/98689
	* reg-notes.def (UNTYPED_CALL): New note.
	* combine.c (distribute_notes): Handle it.
	* emit-rtl.c (try_split): Likewise.
	* rtlanal.c (rtx_properties::try_to_add_insn): Likewise.  Assume
	that calls with the note implicitly set all return value registers.
	* builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL
	to untyped_calls.

2021-04-16  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/99596
	* rtlanal.c (rtx_properties::try_to_add_insn): Don't add global
	register accesses for const calls.  Assume that pure functions
	can only read from global registers.  Ignore cases in which
	the stack pointer has been marked global.

2021-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/99767
	* tree-vect-loop.c (vect_transform_loop): Don't remove just
	dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace
	them by their last argument.

2021-04-15  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Other params don't use it, remove it.

2021-04-15  Richard Biener  <rguenther@suse.de>

	* gimple-builder.h: Add deprecation note.

2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR c++/98852
	* attribs.h (restrict_type_identity_attributes_to): Declare.
	* attribs.c (restrict_type_identity_attributes_to): New function.

2021-04-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR c/98852
	* attribs.h (affects_type_identity_attributes): Declare.
	* attribs.c (remove_attributes_matching): New function.
	(affects_type_identity_attributes): Likewise.

2021-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR target/100056
	* config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3):
	Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with
	ZERO_EXTEND, SIGN_EXTEND or AND.

2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/99929
	* rtl.h (same_vector_encodings_p): New function.
	* cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding.
	* cselib.c (rtx_equal_for_cselib_1): Likewise.
	* jump.c (rtx_renumbered_equal_p): Likewise.
	* lra-constraints.c (operands_match_p): Likewise.
	* reload.c (operands_match_p): Likewise.
	* rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise.

2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>

	* print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print
	more information about variable-length CONST_VECTORs.

2021-04-14  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/100066
	* lra-constraints.c (split_reg): Check paradoxical_subreg_p for
	ordered modes when choosing splitting mode for hard reg.

2021-04-14  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/99246
	* config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel):
	New function.
	(aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2.

2021-04-14  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros
	for mask operand types.
	(s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64)
	(s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate
	operand.
	(s390_vec_msum_u128, s390_vmslg): Use the M12 type for the
	immediate operand.
	* config/s390/s390.c (s390_const_operand_ok): Check the new
	operand types and generate a list of valid values.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_REGISTER_OS_TARGET_INFO.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New
	function.
	(aarch64_d_register_target_info): New function.
	* config/aarch64/aarch64-protos.h (aarch64_d_register_target_info):
	Declare.
	* config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO):
	Define.
	* config/arm/arm-d.c (arm_d_handle_target_float_abi): New function.
	(arm_d_register_target_info): New function.
	* config/arm/arm-protos.h (arm_d_register_target_info): Declare.
	* config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function.
	(ix86_d_register_target_info): New function.
	* config/i386/i386-protos.h (ix86_d_register_target_info): Declare.
	* config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/mips/mips-d.c (mips_d_handle_target_float_abi): New function.
	(mips_d_register_target_info): New function.
	* config/mips/mips-protos.h (mips_d_register_target_info): Declare.
	* config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/pa/pa-d.c (pa_d_handle_target_float_abi): New function.
	(pa_d_register_target_info): New function.
	* config/pa/pa-protos.h (pa_d_register_target_info): Declare.
	* config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New
	function.
	(riscv_d_register_target_info): New function.
	* config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare.
	* config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New
	function.
	(rs6000_d_register_target_info): New function.
	* config/rs6000/rs6000-protos.h (rs6000_d_register_target_info):
	Declare.
	* config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/s390/s390-d.c (s390_d_handle_target_float_abi): New function.
	(s390_d_register_target_info): New function.
	* config/s390/s390-protos.h (s390_d_register_target_info): Declare.
	* config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New
	function.
	(sparc_d_register_target_info): New function.
	* config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare.
	* config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_REGISTER_CPU_TARGET_INFO.

2021-04-14  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function.
	* config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare.
	* config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (D language and ABI): Add @hook for
	TARGET_D_HAS_STDCALL_CONVENTION.

2021-04-14  Richard Biener  <rguenther@suse.de>

	* tree-cfg.c (verify_gimple_assign_ternary): Verify that
	VEC_COND_EXPRs have a gimple_val condition.
	* tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR
	can no longer have a GENERIC condition.

2021-04-14  Richard Earnshaw  <rearnsha@arm.com>

	PR target/100067
	* config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits
	from the isa_delta when -mfpu has been used.
	(arm_options_perform_arch_sanity_checks): It's the architecture that
	lacks an FPU not the processor.

2021-04-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/100053
	* tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do
	not use optimistic dominance queries for backedges to validate
	predicated values.
	(dominated_by_p_w_unex): Add parameter to ignore executable
	state on backedges.
	(rpo_elim::eliminate_avail): Adjust.

2021-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/100028
	* config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr,
	*aarch64_bfxilsi_extrdi): New define_insn patterns.

2021-04-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/99648
	* simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P
	outermode, return NULL if the result doesn't encode back to the
	original byte sequence.
	(simplify_gen_subreg): Don't create SUBREGs from constants to
	MODE_COMPOSITE_P outermode.

2021-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/99905
	* combine.c (expand_compound_operation): If pos + len > modewidth,
	perform the right shift by pos in inner_mode and then convert to mode,
	instead of trying to simplify a shift of rtx with inner_mode by pos
	as if it was a shift in mode.

2021-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99830
	* combine.c (simplify_and_const_int_1): Don't optimize varop
	away if it has side-effects.

2021-04-12  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Escape @smallexample content.

2021-04-12  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* config/s390/s390.md ("*movdi_31", "*movdi_64"): Add
	  alternative in order to load a DFP zero.

2021-04-12  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Be more precise in documentation
	of symver attribute.

2021-04-12  Martin Liska  <mliska@suse.cz>

	PR sanitizer/99877
	* gimplify.c (gimplify_expr): Right now, we unpoison all
	variables before a goto <dest>. We should not do it if we are
	in a omp context.

2021-04-12  Cui,Lili  <lili.cui@intel.com>

	* common/config/i386/cpuinfo.h (get_intel_cpu): Handle
	rocketlake.
	* common/config/i386/i386-common.c (processor_names): Add
	rocketlake.
	(processor_alias_table): Add rocketlake.
	* common/config/i386/i386-cpuinfo.h (processor_subtypes): Add
	INTEL_COREI7_ROCKETLAKE.
	* config.gcc: Add -march=rocketlake.
	* config/i386/i386-c.c (ix86_target_macros_internal): Handle
	rocketlake.
	* config/i386/i386-options.c (m_ROCKETLAKE)  : Define.
	(processor_cost_table): Add rocketlake cost.
	* config/i386/i386.h (ix86_size_cost) : Define
	TARGET_ROCKETLAKE.
	(processor_type) : Add PROCESSOR_ROCKETLAKE.
	(PTA_ROCKETLAKE): Ditto.
	* doc/extend.texi: Add rocketlake.
	* doc/invoke.texi: Add rocketlake.

2021-04-12  Cui,Lili  <lili.cui@intel.com>

	* config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list.
	* config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE.
	* common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model.
	* doc/invoke.texi: Change alderlake ISA list.

2021-04-11  Hafiz Abid Qadeer  <abidh@codesourcery.com>

	PR middle-end/98088
	* omp-expand.c (expand_oacc_collapse_init): Update condition in
	a gcc_assert.

2021-04-10  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99744
	* config/i386/serializeintrin.h (_serialize): Defined as macro.

2021-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR lto/99849
	* expr.c (expand_expr_addr_expr_1): Test is_global_var rather than
	just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs.

2021-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99989
	* gimple-ssa-warn-alloca.c
	(alloca_type_and_limit::alloca_type_and_limit): Initialize limit to
	0 with integer precision unconditionally.

2021-04-10  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/98601
	* rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size
	not just for BLKmode, but also for VOIDmode.  For STRICT_ALIGNMENT
	unaligned_mems handle VOIDmode like BLKmode.

2021-04-10  Jan Hubicka  <hubicka@ucw.cz>

	PR lto/99857
	* tree.c (free_lang_data_in_decl): Do not release body of
	declare_variant_alt.

2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (aarch64_option_restore): If the
	architecture was specified explicitly and the tuning wasn't,
	tune for the architecture rather than the configured default CPU.

2021-04-09  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30
	as the temporary register.

2021-04-09  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Move non-target attributes on the top level.

2021-04-09  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Document minimum and maximum value of the
	argument for both supported compression algorithms.

2021-04-08  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select
	TLS BSS before TLS data.
	* config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm.

2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/sourcebuild.texi (stdint_types_mbig_endian): Document.

2021-04-08  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Extend vec_cond folds to handle shifts.

2021-04-08  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/vax/vax.md: Fix comment for `*bit<mode>' pattern's
	peephole.

2021-04-08  Alex Coplan  <alex.coplan@arm.com>

	PR target/99647
	* config/arm/iterators.md (MVE_vecs): New.
	(V_elem): Also handle V2DF.
	* config/arm/mve.md (*mve_mov<mode>): Rename to ...
	(*mve_vdup<mode>): ... this. Remove second alternative since
	vec_duplicate of const_int is not canonical RTL, and we don't
	want to match symbol_refs.
	(*mve_vec_duplicate<mode>): Delete (pattern is redundant).

2021-04-08  Xionghu Luo  <luoxhu@linux.ibm.com>

	* fold-const.c (fold_single_bit_test): Fix typo.
	* print-rtl.c (print_rtx_insn_vec): Call print_rtl_single
	instead.

2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/97513
	* tree-vect-slp.c (vect_add_slp_permutation): New function,
	split out from...
	(vectorizable_slp_permutation): ...here.  Detect cases in which
	all VEC_PERM_EXPRs are guaranteed to have the same stepped
	permute vector and only generate one permute vector for that case.
	Extend that case to handle variable-length vectors.

2021-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/99873
	* tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function.
	(vect_build_slp_instance): Don't split store groups that could
	use IFN_STORE_LANES.

2021-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/99872
	* varasm.c (output_constant_pool_contents): Don't strip name encoding
	from XSTR (desc->sym, 0) or from label before passing those to
	ASM_OUTPUT_DEF.

2021-04-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99954
	* tree-loop-distribution.c: Include tree-affine.h.
	(generate_memcpy_builtin): Try using tree-affine to prove
	non-overlap.
	(loop_distribution::classify_builtin_ldst): Always classify
	as PKIND_MEMMOVE.

2021-04-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99947
	* tree-vect-loop.c (vectorizable_induction): Pre-allocate
	steps vector to avoid pushing elements from the reallocated
	vector.

2021-04-07  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.h (print_vn_reference_ops): Declare.
	* tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand
	printing...
	* tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new
	function.
	(debug_vn_reference_ops): New.

2021-04-07  Bin Cheng  <bin.cheng@linux.alibaba.com>

	PR tree-optimization/98736
	* tree-loop-distribution.c
	* (loop_distribution::bb_top_order_init):
	Compute RPO with programing order preserved by calling function
	rev_post_order_and_mark_dfs_back_seme.

2021-04-06  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99781
	* lra-constraints.c (split_reg): Don't check paradoxical_subreg_p.
	* lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New
	functions.
	(process_bb_lives): Don't update biggest mode of hard reg for
	implicit in multi-register group.  Use the new functions for
	updating dead_set and unused_set by register notes.

2021-04-06  Xianmiao Qu  <xianmiao_qu@c-sky.com>

	* config/csky/csky_pipeline_ck802.md : Use insn reservation name
	instead of *.

2021-04-06  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/x86-tune-costs.h (skylake_memcpy): Updated.
	(skylake_memset): Likewise.
	(skylake_cost): Change CLEAR_RATIO to 17.
	* config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
	Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER,
	m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512.

2021-04-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99880
	* tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only
	set vectorized defs of relevant PHIs.

2021-04-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99924
	* tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark
	nodes w/o scalar stmts as visited.

2021-04-06  Alex Coplan  <alex.coplan@arm.com>

	PR target/99748
	* config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base
	PCS for [su]fix_optab.

2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_legitimize_pic_address): Check
	that the current pic register is one of the hard reg set
	before setting liveness.

2021-04-03  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.c (machopic_legitimize_pic_address): Fix
	whitespace, remove unused code.

2021-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99882
	* gimple-ssa-store-merging.c (bswap_view_convert): Handle val with
	pointer type.

2021-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/99863
	* dse.c (replace_read): Drop regs_live argument.  Instead of
	regs_live, use store_insn->fixed_regs_live if non-NULL,
	otherwise punt if insns sequence clobbers or sets any hard
	registers.

2021-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/98125
	* targhooks.h (default_print_patchable_function_entry_1): Declare.
	* targhooks.c (default_print_patchable_function_entry_1): New function,
	copied from default_print_patchable_function_entry with an added flags
	argument.
	(default_print_patchable_function_entry): Rewritten into a small
	wrapper around default_print_patchable_function_entry_1.
	* config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY):
	Redefine.
	(rs6000_print_patchable_function_entry): New function.

2021-04-02  Eric Botcazou  <ebotcazou@adacore.com>

	* doc/invoke.texi (fdelete-dead-exceptions): Minor tweak.

2021-04-01  Jason Merrill  <jason@redhat.com>

	PR c++/98481
	* common.opt: Document v15 and v16.

2021-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99863
	* gimplify.c (gimplify_init_constructor): Recompute vector
	constructor flags.

2021-04-01  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (symver attribute): Fix up syntax errors
	in the examples.

2021-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96573
	* gimple-ssa-store-merging.c (init_symbolic_number): Handle
	also pointer types.

2021-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99856
	* tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote
	precision to vector element precision.

2021-04-01  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/97009
	* tree-sra.c (access_or_its_child_written): New function.
	(propagate_subaccesses_from_rhs): Use it instead of a simple grp_write
	test.

2021-03-31  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/98265
	* cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL.

2021-03-31  Pat Haugen  <pthaugen@linux.ibm.com>

	PR target/99133
	* config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst,
	xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst,
	xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed.
	* config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>,
	mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>,
	mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>):
	Likewise.
	* config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test.
	* config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New.
	(define_attr "prefixed"): Update initializer.

2021-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99490
	* dwarf2out.c (debug_ranges_dwo_section): New variable.
	(DW_RANGES_IDX_SKELETON): Define.
	(struct dw_ranges): Add begin_entry and end_entry members.
	(DEBUG_DWO_RNGLISTS_SECTION): Define.
	(add_ranges_num): Adjust r initializer for addition of *_entry
	members.
	(add_ranges_by_labels): For -gsplit-dwarf and force_direct,
	set idx to DW_RANGES_IDX_SKELETON.
	(use_distinct_base_address_for_range): New function.
	(index_rnglists): Don't set r->idx if it is equal to
	DW_RANGES_IDX_SKELETON.  Initialize r->begin_entry and
	r->end_entry for -gsplit-dwarf if those will be needed by
	output_rnglists.
	(output_rnglists): Add DWO argument.  If true, switch to
	debug_ranges_dwo_section rather than debug_ranges_section.
	Adjust l1/l2 label indexes.  Only output the offset table when
	dwo is true and don't include in there the skeleton range
	entry if present.  For -gsplit-dwarf, skip ranges that belong
	to the other rnglists section.  Change return type from void
	to bool and return true if there are any range entries for
	the other section.  For dwarf_split_debug_info use
	DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx
	entries instead of DW_RLE_start_end, DW_RLE_start_length and
	DW_RLE_base_address.  Use use_distinct_base_address_for_range.
	(init_sections_and_labels): Initialize debug_ranges_dwo_section
	if -gsplit-dwarf and DWARF >= 5.  Adjust ranges_section_label
	and range_base_label indexes.
	(dwarf2out_finish): Call index_rnglists earlier before finalizing
	.debug_addr.  Never emit DW_AT_rnglists_base attribute.  For
	-gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice
	with different dwo arguments.
	(dwarf2out_c_finalize): Clear debug_ranges_dwo_section.

2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98268
	* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call
	recompute_tree_invariant_for_addr_expr after successfully
	folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR.

2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/99726
	* tree-data-ref.c (create_intersect_range_checks_index): Bail
	out if there is more than one access function SCEV for the loop
	being versioned.

2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/97141
	PR rtl-optimization/98726
	* emit-rtl.c (valid_for_const_vector_p): Return true for
	CONST_POLY_INT_P.
	* rtx-vector-builder.h (rtx_vector_builder::step): Return a
	poly_wide_int instead of a wide_int.
	(rtx_vector_builder::apply_set): Take a poly_wide_int instead
	of a wide_int.
	* rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise.
	* config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return
	false for CONST_VECTORs that cannot be forced to memory.
	* config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR
	is too complex to force to memory, build it up from individual
	elements instead.

2021-03-31  Jan Hubicka  <jh@suse.cz>

	PR lto/99447
	* cgraph.c (cgraph_node::release_body): Fix overactive check.

2021-03-31  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/99786
	* config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect
	for V4HI and V2SI.

2021-03-31  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-expand.c (expand_set_or_cpymem_via_rep):
	For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode
	to SImode.
	(decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use
	"rep movsb/stosb" only for known sizes.
	* config/i386/i386-options.c (processor_cost_table): Use Ice
	Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire
	Rapids and Alder Lake.
	* config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New.
	* config/i386/x86-tune-costs.h (icelake_memcpy): New.
	(icelake_memset): Likewise.
	(icelake_cost): Likewise.
	* config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB):
	New.

2021-03-31  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/98119
	* config/aarch64/aarch64.c
	(aarch64_vectorize_preferred_vector_alignment): Query the size
	of the provided SVE vector; do not assume that all SVE vectors
	have the same size.

2021-03-31  Jan Hubicka  <jh@suse.cz>

	PR lto/99447
	* cgraph.c (cgraph_node::release_body): Remove all callers and
	references.
	* cgraphclones.c (cgraph_node::materialize_clone): Do not do it here.
	* cgraphunit.c (cgraph_node::expand): And here.

2021-03-31  Martin Liska  <mliska@suse.cz>

	* ipa-modref.c (analyze_ssa_name_flags): Fix coding style
	and one negated condition.

2021-03-31  Jakub Jelinek  <jakub@redhat.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR target/99813
	* config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav
	constraints on operands[2] and similarly 0 and rk constraints
	on operands[1] corresponding to that.

2021-03-31  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/98860
	* configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF
	linker doesn't support DWARF sections new in DWARF5.
	* config/i386/i386-options.c (ix86_option_override_internal): Default
	to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF
	targets.
	* config.in: Regenerated.
	* configure: Regenerated.

2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/99820
	* config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for
	available issue_info before using it.

2021-03-30  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/99822
	* config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero
	in operand 1.

2021-03-30  Xionghu Luo  <luoxhu@linux.ibm.com>

	PR target/99718
	* config/rs6000/altivec.md (altivec_lvsl_reg): Change to ...
	(altivec_lvsl_reg_<mode>): ... this.
	(altivec_lvsr_reg): Change to ...
	(altivec_lvsr_reg_<mode>): ... this.
	* config/rs6000/predicates.md (vec_set_index_operand): New.
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Enable 32bit variable vec_insert for all TARGET_VSX.
	* config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
	Enable 32bit variable vec_insert for p9 and above.
	(rs6000_expand_vector_set_var_p8): Rename to ...
	(rs6000_expand_vector_set_var_p7): ... this.
	(rs6000_expand_vector_set): Use TARGET_VSX and adjust assert
	position.
	* config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand.
	* config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and
	gen_altivec_lvsr_reg_di.

2021-03-30  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99744
	* config/i386/ia32intrin.h (__rdtsc): Defined as macro.
	(__rdtscp): Likewise.

2021-03-30  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/99825
	* tree-vect-slp-patterns.c (vect_check_evenodd_blend):
	Reject non-mult 2 lanes.

2021-03-30  Richard Earnshaw  <rearnsha@arm.com>

	PR target/99773
	* config/arm/arm.c (arm_file_start): Fix emission of
	Tag_ABI_VFP_args attribute.

2021-03-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99824
	* stor-layout.c (set_min_and_max_values_for_integral_type):
	Assert the precision is within the bounds of
	WIDE_INT_MAX_PRECISION.
	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use
	the outermost component ref only to lower the access size
	and initialize that from the access type.

2021-03-30  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/98136
	* config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction
	CONST_INTs to aarch64_expand_mov_immediate when called after RA.

2021-03-30  Mihailo Stojanovic  <mihailo.stojanovic@typhoon-hil.com>

	* config/aarch64/aarch64.md
	(<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch"
	attribute to disambiguate between SIMD and FP variants of the
	instruction.

2021-03-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-modref.c (merge_call_lhs_flags): Correct handling of deref.
	(analyze_ssa_name_flags): Fix typo in comment.

2021-03-29  Alex Coplan  <alex.coplan@arm.com>

	PR target/99216
	* config/aarch64/aarch64-sve-builtins.cc
	(function_builder::add_function): Add placeholder_p argument, use
	placeholder decls if this is set.
	(function_builder::add_unique_function): Instead of conditionally adding
	direct overloads, unconditionally add either a direct overload or a
	placeholder.
	(function_builder::add_overloaded_function): Set placeholder_p if we're
	using C++ overloads. Use the obstack for string storage instead
	of relying on the tree nodes.
	(function_builder::add_overloaded_functions): Don't return early for
	m_direct_overloads: we need to add placeholders.
	* config/aarch64/aarch64-sve-builtins.h
	(function_builder::add_function): Add placeholder_p argument.

2021-03-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99807
	* tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move
	assert below VEC_PERM handling.

2021-03-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/99037
	* config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use
	aarch64_simd_or_scalar_imm_zero to match zeroes.  Remove pattern
	matching const_int 0.
	(move_lo_quad_internal_be_<mode>): Likewise.
	(move_lo_quad_<mode>): Update for the above.
	* config/aarch64/iterators.md (VQ_2E): Delete.

2021-03-29  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99777
	* fold-const.c (extract_muldiv_1): For conversions, punt on casts from
	types other than scalar integral types.

2021-03-28  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add
	XCOFF TLS reloc decorations.

2021-03-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/analyzer.texi (Analyzer Internals): Update link to
	"A Memory Model for Static Analysis of C Programs".

2021-03-26  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function.
	* config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align):
	Declare.
	* config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New.
	(rs6000_special_round_type_align): Recursively check innermost first
	field.

2021-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99334
	* dwarf2out.h (struct dw_fde_node): Add rule18 member.
	* dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp)
	assignment with drap_reg active, queue reg save for hfp with offset 0
	and flush queued reg saves.  When handling a push with rule18,
	defer queueing reg save for hfp and just assert the offset is 0.
	(scan_trace): Assert that fde->rule18 is false.

2021-03-26  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/99766
	* ira-costs.c (record_reg_classes): Put case with
	CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
	* ira.c (ira_setup_alts): Ditto.
	* lra-constraints.c (process_alt_operands): Ditto.
	* recog.c (asm_operand_ok): Ditto.
	* reload.c (find_reloads): Ditto.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h
	(cpu_addrcost_table::post_modify_ld3_st3): New member variable.
	(cpu_addrcost_table::post_modify_ld4_st4): Likewise.
	* config/aarch64/aarch64.c (generic_addrcost_table): Update
	accordingly, using the same costs as for post_modify.
	(exynosm1_addrcost_table, xgene1_addrcost_table): Likewise.
	(thunderx2t99_addrcost_table, thunderx3t110_addrcost_table):
	(tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise.
	(a64fx_addrcost_table): Likewise.
	(neoversev1_addrcost_table): New.
	(neoversev1_tunings): Use neoversev1_addrcost_table.
	(aarch64_address_cost): Use the new post_modify costs for CImode
	and XImode.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.opt
	(-param=aarch64-loop-vect-issue-rate-niters=): New parameter.
	* doc/invoke.texi: Document it.
	* config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info)
	(aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info)
	(aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info)
	(aarch64_vec_issue_info): New structures.
	(cpu_vector_cost): Write comments above the variables rather
	than to the side.
	(cpu_vector_cost::issue_info): New member variable.
	* config/aarch64/aarch64.c: Include gimple-pretty-print.h
	and tree-ssa-loop-niter.h.
	(generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost)
	(thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost)
	(exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost)
	(thunderx3t110_vector_cost): Initialize issue_info to null.
	(neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info)
	(neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures.
	(neoversev1_vector_cost): Use them.
	(aarch64_vec_op_count, aarch64_sve_op_count): New structures.
	(aarch64_vector_costs::saw_sve_only_op): New member variable.
	(aarch64_vector_costs::num_vector_iterations): Likewise.
	(aarch64_vector_costs::scalar_ops): Likewise.
	(aarch64_vector_costs::advsimd_ops): Likewise.
	(aarch64_vector_costs::sve_ops): Likewise.
	(aarch64_vector_costs::seen_loads): Likewise.
	(aarch64_simd_vec_costs_for_flags): New function.
	(aarch64_analyze_loop_vinfo): Initialize num_vector_iterations.
	Count the number of predicate operations required by SVE WHILE
	instructions.
	(aarch64_comparison_type, aarch64_multiply_add_p): New functions.
	(aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise.
	(aarch64_count_ops): Likewise.
	(aarch64_add_stmt_cost): Record whether see an SVE operation
	that cannot currently be implementing using Advanced SIMD.
	Record issue information about the scalar, Advanced SIMD
	and (where relevant) SVE versions of a loop.
	(aarch64_vec_op_count::dump): New function.
	(aarch64_sve_op_count::dump): Likewise.
	(aarch64_estimate_min_cycles_per_iter): Likewise.
	(aarch64_adjust_body_cost): If issue information is available,
	try to compare the issue rates of the various loop implementations
	and increase or decrease the vector body cost accordingly.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype):
	Assume a zero cost for induction phis.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New
	function.
	(aarch64_adjust_stmt_cost): Add the costs of embedded scalar and
	vector comparisons.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype):
	New function.
	(aarch64_add_stmt_cost): Call it.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput):
	New tuning parameter.
	* config/aarch64/aarch64.c (neoversev1_tunings): Use it.
	(aarch64_estimated_sve_vq): New function.
	(aarch64_vector_costs::analyzed_vinfo): New member variable.
	(aarch64_vector_costs::is_loop): Likewise.
	(aarch64_vector_costs::unrolled_advsimd_niters): Likewise.
	(aarch64_vector_costs::unrolled_advsimd_stmts): Likewise.
	(aarch64_record_potential_advsimd_unrolling): New function.
	(aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise.
	(aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or
	aarch64_analyze_bb_vinfo on the first use of a costs structure.
	Detect whether we're vectorizing a loop for SVE that might be
	completely unrolled if it used Advanced SIMD instead.
	(aarch64_adjust_body_cost_for_latency): New function.
	(aarch64_finish_cost): Call it.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (aarch64_vector_costs): New structure.
	(aarch64_init_cost): New function.
	(aarch64_add_stmt_cost): Use aarch64_vector_costs instead of
	the default unsigned[3].
	(aarch64_finish_cost, aarch64_destroy_cost_data): New functions.
	(TARGET_VECTORIZE_INIT_COST): Override.
	(TARGET_VECTORIZE_FINISH_COST): Likewise.
	(TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost)
	(neoversev1_sve_vector_cost): New cost structures.
	(neoversev1_vector_cost): Likewise.
	(neoversev1_tunings): Use them.  Enable use_new_vector_costs.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h
	(sve_vec_cost::scatter_store_elt_cost): New member variable.
	* config/aarch64/aarch64.c (generic_sve_vector_cost): Update
	accordingly, taking the cost from the cost of a scalar_store.
	(a64fx_sve_vector_cost): Likewise.
	(aarch64_detect_vector_stmt_subtype): Detect scatter stores.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h
	(simd_vec_cost::store_elt_extra_cost): New member variable.
	* config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
	accordingly, using the vec_to_scalar cost for the new field.
	(generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
	(a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
	(thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
	(cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
	(xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
	(thunderx3t110_advsimd_vector_cost): Likewise.
	(aarch64_detect_vector_stmt_subtype): Detect single-element stores.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost)
	(simd_vec_cost::ld3_st3_permute_cost): New member variables.
	(simd_vec_cost::ld4_st4_permute_cost): Likewise.
	* config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
	accordingly, using zero for the new costs.
	(generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
	(a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
	(thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
	(cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
	(xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
	(thunderx3t110_advsimd_vector_cost): Likewise.
	(aarch64_ld234_st234_vectors): New function.
	(aarch64_adjust_stmt_cost): Likewise.
	(aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using
	the new vector costs.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a
	derived class of simd_vec_cost.  Add information about CLAST[AB]
	and FADDA instructions.
	* config/aarch64/aarch64.c (generic_sve_vector_cost): Update
	accordingly, using the vec_to_scalar costs for the new fields.
	(a64fx_sve_vector_cost): Likewise.
	(aarch64_reduc_type): New function.
	(aarch64_sve_in_loop_reduction_latency): Likewise.
	(aarch64_detect_vector_stmt_subtype): Take a vinfo parameter.
	Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions
	that occur in the loop body.
	(aarch64_add_stmt_cost): Update call accordingly.

2021-03-26  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs):
	New tuning flag.
	* config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments
	above the fields rather than to the right.
	(simd_vec_cost::reduc_i8_cost): New member variable.
	(simd_vec_cost::reduc_i16_cost): Likewise.
	(simd_vec_cost::reduc_i32_cost): Likewise.
	(simd_vec_cost::reduc_i64_cost): Likewise.
	(simd_vec_cost::reduc_f16_cost): Likewise.
	(simd_vec_cost::reduc_f32_cost): Likewise.
	(simd_vec_cost::reduc_f64_cost): Likewise.
	* config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update
	accordingly, using the vec_to_scalar_cost for the new fields.
	(generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise.
	(a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise.
	(thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise.
	(cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost)
	(xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost)
	(thunderx3t110_advsimd_vector_cost): Likewise.
	(aarch64_use_new_vector_costs_p): New function.
	(aarch64_simd_vec_costs): New function, split out from...
	(aarch64_builtin_vectorization_cost): ...here.
	(aarch64_is_reduction): New function.
	(aarch64_detect_vector_stmt_subtype): Likewise.
	(aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if
	using the new vector costs.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR ipa/99466
	* tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak
	TLS declarations as public.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define.
	* config/arm/arm-d.c (IN_TARGET_CODE): Likewise.
	* config/i386/i386-d.c (IN_TARGET_CODE): Likewise.
	* config/mips/mips-d.c (IN_TARGET_CODE): Likewise.
	* config/pa/pa-d.c (IN_TARGET_CODE): Likewise.
	* config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise.
	* config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise.
	* config/s390/s390-d.c (IN_TARGET_CODE): Likewise.
	* config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/91595
	* config.gcc (*-*-cygwin*): Add winnt-d.o
	(*-*-mingw*): Likewise.
	* config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro.
	* config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise.
	* config/i386/t-cygming: Add winnt-d.o.
	* config/i386/winnt-d.c: New file.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config/freebsd-d.c: Include memmodel.h.

2021-03-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/99691
	* config.gcc (*-*-openbsd*): Add openbsd-d.o.
	* config/t-openbsd: Add openbsd-d.o.
	* config/openbsd-d.c: New file.

2021-03-25  Stam Markianos-Wright  <stam.markianos-wright@arm.com>

	PR tree-optimization/96974
	* tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert
	with graceful exit.

2021-03-25  H.J. Lu  <hjl.tools@gmail.com>

	Revert:
	2021-03-25  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98209
	PR target/99744
	* config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
	always_inline in system headers.

2021-03-25  Kewen Lin  <linkw@linux.ibm.com>

	* tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost.

2021-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99565
	* tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD.
	* fold-const.c (operand_compare::operand_equal_p): Don't compare
	field offsets if OEP_ADDRESS_OF_SAME_FIELD.

2021-03-25  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98209
	PR target/99744
	* config/i386/i386.c (ix86_can_inline_p): Don't check ISA for
	always_inline in system headers.

2021-03-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99746
	* tree-vect-slp-patterns.c (complex_pattern::build): Do not mark
	the scalar stmt as patterned.  Instead set up required things
	manually.

2021-03-25  Xionghu Luo  <luoxhu@linux.ibm.com>

	* config/rs6000/rs6000.c (power8_costs): Change l2 cache
	from 256 to 512.

2021-03-24  Martin Liska  <mliska@suse.cz>

	PR target/99753
	* common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one
	error.
	* config/i386/i386-options.c (ix86_option_override_internal):
	Add run-time assert.

2021-03-24  Martin Jambor  <mjambor@suse.cz>

	PR ipa/99122
	* ipa-cp.c (initialize_node_lattices): Mark as bottom all
	parameters with unknown type.
	(ipacp_value_safe_for_type): New function.
	(propagate_vals_across_arith_jfunc): Verify that the constant type
	can be used for a type of the formal parameter.
	(propagate_vals_across_ancestor): Likewise.
	(propagate_scalar_across_jump_function): Likewise.  Pass the type
	also to propagate_vals_across_ancestor.

2021-03-24  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/99727
	* config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux
	constraint.
	(movmisalign<mode>_mve_load): Likewise.

2021-03-24  Jakub Jelinek  <jakub@redhat.com>

	PR target/99724
	* config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2,
	movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT.

2021-03-24  Alexandre Oliva  <oliva@adacore.com>

	* doc/sourcebuild.texi (sysconf): New effective target.

2021-03-24  Alexandre Oliva  <oliva@adacore.com>

	* config/i386/predicates.md (reg_or_const_vec_operand): New.
	* config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for
	the now *-prefixed insn_and_split, turn the splitter const vec
	into an input for the insn, making it an ignored immediate for
	non-split cases, and loaded into the scratch register
	otherwise.

2021-03-23  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99581
	* config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty):
	Use define_relaxed_memory_constraint for them.

2021-03-23  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/99733
	* config/host-darwin.c (darwin_gt_pch_use_address): Add a
	colon to the diagnostic message.

2021-03-23  Ilya Leoshkevich  <iii@linux.ibm.com>

	* fwprop.c (fwprop_propagation::fwprop_propagation): Look at
	set_info's uses.
	(try_fwprop_subst_note): Use set_info instead of insn_info.
	(try_fwprop_subst_pattern): Likewise.
	(try_fwprop_subst_notes): Likewise.
	(try_fwprop_subst): Likewise.
	(forward_propagate_subreg): Likewise.
	(forward_propagate_and_simplify): Likewise.
	(forward_propagate_into): Likewise.
	* rtl-ssa/accesses.h (set_info::single_nondebug_use) New
	method.
	(set_info::single_nondebug_insn_use): Likewise.
	(set_info::single_phi_use): Likewise.
	* rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New
	method.
	(set_info::single_nondebug_insn_use): Likewise.
	(set_info::single_phi_use): Likewise.

2021-03-23  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document.

2021-03-23  Jakub Jelinek  <jakub@redhat.com>

	PR target/99540
	* config/aarch64/aarch64.c (aarch64_add_offset): Tell
	expand_mult to perform an unsigned rather than a signed
	multiplication.

2021-03-23  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99704
	* config/i386/cpuid.h (__cpuid): Add __volatile__.
	(__cpuid_count): Likewise.

2021-03-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99721
	* tree-vect-slp.c (vect_slp_analyze_node_operations):
	Make sure we can schedule the node.

2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>

	* config/riscv/riscv.c (riscv_subword): Take endianness into
	account when calculating the byte offset.

2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>

	* config/riscv/predicates.md (subreg_lowpart_operator): New predicate
	* config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2)
	(*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask)
	(*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1)
	(*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use
	new predicate "subreg_lowpart_operator"

2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>

	* config/riscv/riscv.c (riscv_swap_instruction): New function
	to byteswap an SImode rtx containing an instruction.
	(riscv_trampoline_init): Byteswap the generated instructions
	when needed.

2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>

	* common/config/riscv/riscv-common.c
	(TARGET_DEFAULT_TARGET_FLAGS): Set default endianness.
	* config.gcc (riscv32be-*, riscv64be-*): Set
	TARGET_BIG_ENDIAN_DEFAULT to 1.
	* config/riscv/elf.h (LINK_SPEC): Change -melf* value
	depending on default endianness.
	* config/riscv/freebsd.h (LINK_SPEC): Likewise.
	* config/riscv/linux.h (LINK_SPEC): Likewise.
	* config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set
	default endianness.
	* config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro.

2021-03-23  Marcus Comstedt  <marcus@mc.pp.se>

	* config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag.
	* config/riscv/freebsd.h (LINK_SPEC): Likewise.
	* config/riscv/linux.h (LINK_SPEC): Likewise.
	* config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and
	-mlittle-endian.
	(BYTES_BIG_ENDIAN): Handle big endian.
	(WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN.
	* config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New
	options.
	* doc/invoke.texi (-mbig-endian, -mlittle-endian): Document.

2021-03-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* regcprop.c (find_oldest_value_reg): Ask target whether
	  different mode is fine for replacement register.

2021-03-23  Aldy Hernandez  <aldyh@redhat.com>

	PR tree-optimization/99296
	* value-range.cc (irange::irange_set_1bit_anti_range): New.
	(irange::irange_set_anti_range): Call irange_set_1bit_anti_range
	* value-range.h (irange::irange_set_1bit_anti_range): New.

2021-03-22  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99581
	* config/aarch64/constraints.md (UtQ): Use
	define_relaxed_memory_constraint for it.
	* doc/md.texi (define_relaxed_memory_constraint): Describe it.
	* genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
	* genpreds.c (constraint_data): Add bitfield is_relaxed_memory.
	(have_relaxed_memory_constraints): New static var.
	(relaxed_memory_start, relaxed_memory_end): Ditto.
	(add_constraint): Add arg is_relaxed_memory.  Check name for
	relaxed memory.  Set up is_relaxed_memory in constraint_data and
	have_relaxed_memory_constraints.  Adjust calls.
	(choose_enum_order): Process relaxed memory.
	(write_tm_preds_h): Ditto.
	(main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
	* gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT.
	* ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY.
	* ira-lives.c (single_reg_class): Use
	insn_extra_relaxed_memory_constraint.
	* ira.c (ira_setup_alts): CT_RELAXED_MEMORY.
	* lra-constraints.c (valid_address_p): Use
	insn_extra_relaxed_memory_constraint instead of other memory
	constraints.
	(process_alt_operands): Process CT_RELAXED_MEMORY.
	(curr_insn_transform): Use insn_extra_relaxed_memory_constraint.
	* recog.c (asm_operand_ok, preprocess_constraints): Process
	CT_RELAXED_MEMORY.
	* reload.c (find_reloads): Ditto.
	* rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New.
	* stmt.c (parse_input_constraint): Use
	insn_extra_relaxed_memory_constraint.

2021-03-22  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/97926
	* ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if
	there are no NaNs.

2021-03-22  Alex Coplan  <alex.coplan@arm.com>

	PR target/97252
	* config/arm/arm-protos.h (neon_make_constant): Add generate
	argument to guard emitting insns, default to true.
	* config/arm/arm.c (arm_legitimate_constant_p_1): Reject
	CONST_VECTORs which neon_make_constant can't handle.
	(neon_vdup_constant): Add generate argument, avoid emitting
	insns if it's not set.
	(neon_make_constant): Plumb new generate argument through.
	* config/arm/constraints.md (Ui): New. Use it...
	* config/arm/mve.md (*mve_mov<mode>): ... here.
	* config/arm/vec-common.md (movv8hf): Use neon_make_constant to
	synthesize constants.

2021-03-22  Richard Biener  <rguenther@suse.de>

	* debug.h: Add deprecation warning.

2021-03-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99694
	* tree-ssa-sccvn.c (visit_phi): Ignore edges with the
	PHI result.

2021-03-22  Kito Cheng  <kito.cheng@sifive.com>

	PR target/99702
	* config/riscv/riscv.c (riscv_expand_block_move): Get RTL value
	after type checking.

2021-03-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99562
	PR debug/66728
	* dwarf2out.c (get_full_len): Use get_precision rather than
	min_precision.
	(add_const_value_attribute): Make sure add_AT_wide argument has
	precision prec rather than some very wide one.

2021-03-22  Kewen Lin  <linkw@linux.ibm.com>

	* config/rs6000/rs6000.md (*rotldi3_insert_sf,
	*mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax,
	floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx,
	floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal,
	*floatunssidf2_internal, fix_trunc<mode>si2_stfiwx,
	fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx,
	*round32<mode>2_fprs, *roundu32<mode>2_fprs,
	*fix_trunc<mode>si2_internal): Fix empty split condition.
	* config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>,
	vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf,
	*vsx_reduc_<VEC_reduc_name>_v2df_scalar,
	*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise.

2021-03-22  Xionghu Luo  <luoxhu@linux.ibm.com>

	PR target/98914
	* config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9):
	Convert idx to DImode.
	(rs6000_expand_vector_set_var_p8): Likewise.

2021-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99388
	* dwarf2out.c (insert_float): Change return type from void to
	unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size.
	(mem_loc_descriptor, loc_descriptor, add_const_value_attribute):
	Adjust callers.

2021-03-20  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99679
	* config/i386/i386.c (construct_container): Check cfun != NULL
	before accessing silent_p.

2021-03-20  Ahamed Husni  <ahamedhusni73@gmail.com>

	* asan.c: Fix typos in comments.

2021-03-20  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/99680
	* lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers.
	(process_address_1): Check empty constraint before using
	CONSTRAINT_LEN.

2021-03-19  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/rs6000.c (power10_cost): New.
	(rs6000_option_override_internal): Set Power10 costs.
	(rs6000_issue_rate): Set Power10 issue rate.
	* config/rs6000/power10.md: Rewrite for Power10.

2021-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99663
	* lra-constraints.c (process_address_1): Don't use unknown
	constraint for address constraint.

2021-03-19  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/99661
	* config.gcc (powerpc-*-darwin8): Delete the reference to
	the now removed darwin8.h.

2021-03-19  Olivier Hainque  <hainque@adacore.com>

	PR target/99660
	* config/vxworksae.h (VX_CPU_PREFIX): Define.

2021-03-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.c (import_milli): Use memcpy instead of strncpy.

2021-03-19  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/99656
	* tree-vect-slp-patterns.c (linear_loads_p,
	complex_add_pattern::matches, is_eq_or_top,
	vect_validate_multiplication, complex_mul_pattern::matches,
	complex_fms_pattern::matches): Remove complex_perm_kinds_t.
	* tree-vectorizer.h: (complex_load_perm_t): Removed.
	(slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of
	complex_load_perm_t.

2021-03-19  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99652
	* config/i386/i386-options.c (ix86_init_machine_status): Set
	silent_p to true.
	* config/i386/i386.c (init_cumulative_args): Set silent_p to
	false.
	(construct_container): Return early for return and argument
	errors if silent_p is true.
	* config/i386/i386.h (machine_function): Add silent_p.

2021-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/99593
	* config/arm/constraints.md (Ds): New constraint.
	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds
	constraint instead of w,Dm.

2021-03-19  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes
	in error message.

2021-03-19  Eric Botcazou  <ebotcazou@adacore.com>

	PR middle-end/99641
	* fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an
	array type, do the computation of the current position in sizetype.

2021-03-18  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99422
	* lra-constraints.c (process_address_1): Use lookup_constraint
	only for a single constraint.

2021-03-18  Martin Sebor  <msebor@redhat.com>

	PR middle-end/99502
	* gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename...
	(inbounds_memaccess_p): ...to this.  Check the ending offset of
	the accessed member.

2021-03-18  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and
	  %> quote markers to error messages.
	(gcn_goacc_validate_dims): Likewise.
	(gcn_conditional_register_usage): Remove exclaimation mark from error
	message.
	(gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized.

2021-03-18  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of
	integer divides1.

2021-03-18  Sinan Lin  <sinan@isrc.iscas.ac.cn>
	    Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.c (riscv_block_move_straight): Change type
	to unsigned HOST_WIDE_INT for parameter and local variable with
	HOST_WIDE_INT type.
	(riscv_adjust_block_mem): Ditto.
	(riscv_block_move_loop): Ditto.
	(riscv_expand_block_move): Ditto.

2021-03-18  Nick Clifton  <nickc@redhat.com>

	* config/v850/v850.c (construct_restore_jr): Increase static
	 buffer size.
	(construct_save_jarl): Likewise.
	* config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define.

2021-03-18  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define.
	(aarch64_override_options_internal): Use it.
	(generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to
	tune_flags.

2021-03-17  Sandra Loosemore  <sandra@codesourcery.com>

	* config/nios2/nios2.c (nios2_custom_check_insns): Clean up
	error message format issues.
	(nios2_option_override): Likewise.
	(nios2_expand_fpu_builtin): Likewise.
	(nios2_init_custom_builtins): Adjust to avoid bogus strncpy
	truncation warning.
	(nios2_expand_custom_builtin): More error message format fixes.
	(nios2_expand_rdwrctl_builtin): Likewise.
	(nios2_expand_rdprs_builtin): Likewise.
	(nios2_expand_eni_builtin): Likewise.
	(nios2_expand_builtin): Likewise.
	(nios2_register_custom_code): Likewise.
	(nios2_valid_target_attribute_rec): Likewise.
	(nios2_add_insn_asm): Fix uninitialized variable warning.

2021-03-17  Jan Hubicka  <jh@suse.cz>

	* config/i386/x86-tune-costs.h (struct processor_costs): Update costs
	of gather to match reality.
	* config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3.

2021-03-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ
	to compare against CC_REG rather than NE.

2021-03-17  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99504
	* config/i386/i386.c (ix86_force_load_from_GOT_p): Support
	inline assembly statements.
	(ix86_print_operand): Update 'P' handling for -fno-plt.

2021-03-17  Tamar Christina  <tamar.christina@arm.com>

	PR target/99542
	* config/aarch64/aarch64.c
	(aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var.

2021-03-16  Segher Boessenkool  <segher@kernel.crashing.org>

	PR target/98092
	* config/rs6000/predicates.md (branch_comparison_operator): Allow
	ordered and unordered for CCFPmode, if flag_finite_math_only.

2021-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/99600
	* config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT
	rather than ASHIFT.
	* config/i386/i386.md (mult by 1248 into ashift): New splitter.

2021-03-16  Martin Liska  <mliska@suse.cz>

	PR target/99592
	* optc-save-gen.awk: Add flag_ipa_ra to exceptions for
	cl_optimization_compare function.

2021-03-16  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.c (f_constraint_p): Treat "fv" constraints
	as "v".

2021-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/99563
	* config/i386/i386.h (struct machine_function): Add
	has_explicit_vzeroupper bitfield.
	* config/i386/i386-expand.c (ix86_expand_builtin): Set
	cfun->machine->has_explicit_vzeroupper when expanding
	IX86_BUILTIN_VZEROUPPER.
	* config/i386/i386-features.c (rest_of_handle_insert_vzeroupper):
	Do the mode switching only when TARGET_VZEROUPPER, expensive
	optimizations turned on and not optimizing for size.
	(pass_insert_vzeroupper::gate): Enable even when
	cfun->machine->has_explicit_vzeroupper is set.

2021-03-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/99542
	* config/aarch64/aarch64.c
	(aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function
	definition, walk TYPE_ARG_TYPES list if non-NULL for argument types
	instead of DECL_ARGUMENTS.  Ignore types for uniform arguments.

2021-03-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98834
	* tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing
	subsetting by truncating the access size.

2021-03-15  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386-options.c (processor_cost_table): Add znver3_cost.
	* config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy
	of znver2_cost.

2021-03-15  Martin Liska  <mliska@suse.cz>

	* spellcheck.c: Add missing comma in initialization.

2021-03-14  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with
	alternative 2 and alternative 1 with alternative 3 using
	YW register constraint.
	(*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives
	using YW register constraint.
	(*vec_extractv16qi_zext): Ditto.
	(*vec_extractv4si): Merge alternatives 4 and 5
	using Yw register constraint.
	(*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3.

2021-03-13  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/99489
	* builtins.c (gimple_call_alloc_size): Fail gracefully when argument
	is not a call statement.

2021-03-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99544
	* match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify
	if for vector types multiplication can't be done in type's mode.

2021-03-12  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/99422
	* config/sparc/constraints.md (w): Rename to...
	(W): ... this and ditch previous implementation.
	* config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m.
	(*movdf_insn_sp64): Likewise.
	(*mov<VM64:mode>_insn_sp64): Likewise.
	* config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace
	w with W.
	(atomic_compare_and_swap_leon3_1): Likewise.
	(*atomic_compare_and_swapdi_v8plus): Likewise.
	* config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on
	architecture and add missing address validity check during LRA.

2021-03-12  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/98858
	* gimplify.c (omp_add_variable): Handle NULL_TREE as size
	occuring for assumed-size arrays in use_device_{ptr,addr}.

2021-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR target/99321
	* config/i386/constraints.md (YW): New internal constraint.
	* config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases.
	(*<sse2_avx2>_<insn><mode>3<mask_name>,
	*<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2,
	*<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in
	constraints.
	(<sse2_avx2>_psadbw): Use YW instead of v in constraints.
	(*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3,
	avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives
	into one, use Yw instead of former x,v.
	(ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of
	the last alternative.
	(<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>,
	<sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>,
	*<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>,
	<ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives
	into one, use <v_Yw> instead of former x,v.
	(avx2_interleave_highv32qi<mask_name>,
	vec_interleave_highv16qi<mask_name>): Use Yw instead of v in
	constraints.  Add && <mask_avx512bw_condition> to condition.
	(avx2_interleave_lowv32qi<mask_name>,
	vec_interleave_lowv16qi<mask_name>,
	avx2_interleave_highv16hi<mask_name>,
	vec_interleave_highv8hi<mask_name>,
	avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>,
	avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>,
	avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>,
	avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>,
	*sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use
	Yw instead of v in constraints.
	* config/i386/mmx.md (Yv_Yw): New define_mode_attr.
	(*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw>
	instead of Yv in constraints.
	(*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart,
	*mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3,
	*mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw,
	mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
	*mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in
	constraints.
	(*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb,
	*mmx_pextrb_zext): Use YW instead of Yv in constraints.
	(*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints.
	(mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into
	two, one with just x, another isa avx512vl with v.

2021-03-12  Martin Liska  <mliska@suse.cz>

	* doc/invoke.texi: Add missing param documentation.

2021-03-11  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/96374
	* Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and
	analyzer/trimmed-graph.o.
	* doc/analyzer.texi (Analyzer Paths): Rewrite description of
	feasibility checking to reflect new implementation.
	* doc/invoke.texi (-fdump-analyzer-feasibility): Document new
	option.
	* shortest-paths.h (shortest_paths::get_shortest_distance): New.

2021-03-11  David Malcolm  <dmalcolm@redhat.com>

	* digraph.cc (selftest::test_shortest_paths): Update
	shortest_paths init for new param.  Add test of
	SPS_TO_GIVEN_TARGET.
	* shortest-paths.h (enum shortest_path_sense): New.
	(shortest_paths::shortest_paths): Add "sense" param.
	Update for renamings.  Generalize to use "sense" param.
	(shortest_paths::get_shortest_path): Rename param.
	(shortest_paths::m_sense): New field.
	(shortest_paths::m_prev): Rename...
	(shortest_paths::m_best_edge): ...to this.
	(shortest_paths::get_shortest_path): Update for renamings.
	Conditionalize flipping of path on sense of traversal.

2021-03-11  David Malcolm  <dmalcolm@redhat.com>

	* digraph.cc (selftest::test_shortest_paths): Add test coverage
	for paths from B and C.
	* shortest-paths.h (shortest_paths::shortest_paths): Handle
	unreachable nodes, rather than asserting.

2021-03-11  David Edelsohn  <dje.gcc@gmail.com>

	PR target/99094
	* config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create
	xcoff_tbss_section_name.
	* config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm.
	* xcoffout.c (xcoff_tbss_section_name): Delete.
	* xcoffout.h (xcoff_tbss_section_name): Delete.

2021-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99523
	* tree-cfg.c (dump_function_to_file): Dump SSA names
	w/o identifier to the decls section as well, not only those
	without a VAR_DECL.

2021-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/99517
	* ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal
	function calls with lhs fail if the lhs don't have compatible types.

2021-03-11  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define.
	Change FRAME_POINTER_REGNUM to correspond to a new faked
	register faked_fp, part of GENNONACR_REGS like faked_ap.
	(CRIS_FAKED_REGS_CONTENTS): New helper macro.
	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS):
	(REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P)
	(ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly.
	* config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked
	register.
	(CRIS_REAL_FP_REGNUM): New constant.
	* config/cris/cris.c (cris_reg_saved_in_regsave_area): Check
	for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
	(cris_initial_elimination_offset): Handle elimination changes
	to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM
	and add one from FRAME_POINTER_REGNUM to
	HARD_FRAME_POINTER_REGNUM.
	(cris_expand_prologue, cris_expand_epilogue): Emit code for
	hard_frame_pointer_rtx instead of frame_pointer_rtx.

2021-03-10  David Edelsohn  <dje.gcc@gmail.com>

	PR target/99492
	* config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode.
	* config/rs6000/rs6000.c (rs6000_special_round_type_align): Same.

2021-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99422
	* lra-constraints.c (process_address_1): Don't check unknown
	constraint, use X for empty constraint.

2021-03-10  Alex Coplan  <alex.coplan@arm.com>

	* config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate):
	Fix typo in comment describing "is_ha" argument.

2021-03-10  John David Anglin  <danglin@gcc.gnu.org>

	* doc/sourcebuild.texi: Document LRA target selector.

2021-03-10  David Malcolm  <dmalcolm@redhat.com>

	* doc/ux.texi: Add subsection contrasting interactive versus
	batch usage of GCC.

2021-03-10  Joel Hutton  <joel.hutton@arm.com>

	PR target/99102
	* tree-vect-stmts.c (vectorizable_store): Fix scatter store mask
	check condition.
	(vectorizable_load): Fix gather load mask check condition.

2021-03-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99510
	* tree.c (check_aligned_type): Check that the candidate
	has TYPE_USER_ALIGN set instead of matching with the
	original type.

2021-03-10  Eric Botcazou  <ebotcazou@adacore.com>

	* config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for
	float and vector integer modes only if the mode is not larger.

2021-03-10  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (DWARF_FRAME_REGISTERS): Define.

2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>

	* ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital
	constraints > 9.
	* ira-lives.c (single_reg_class): Ditto.

2021-03-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config.gcc (aarch64-*-rtems*): Include general rtems.h after
	the architecture-specific rtems.h.
	(aarch64-*-rtems*): Likewise.
	(arm*-*-rtems*): Likewise.
	(epiphany-*-rtems*): Likewise.
	(riscv*-*-rtems*): Likewise.

2021-03-09  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99305
	* tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p
	before integer_all_onesp instead of vice versa.

2021-03-09  Richard Earnshaw  <rearnsha@arm.com>

	* common/config/arm/arm-common.c (arm_config_default): Change type
	of 'i' to unsigned.

2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99454
	* lra-constraints.c (process_address_1): Process constraint 'g'
	separately and digital constraints containing more one digit.

2021-03-09  Nick Clifton  <nickc@redhat.com>

	* config/rx/rx.h (DBX_DEBUGGING_INFO): Define.
	(DWARF"_DEBUGGING_INFO): Define.

2021-03-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR c++/90448
	* calls.c (initialize_argument_information): When the argument
	is passed by reference, do not make a copy in a thunk only if
	the argument is already in memory.  Remove redundant test for
	the case of callee copy.

2021-03-09  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99454
	* lra-constraints.c (process_address_1): Process 0..9 constraints
	in process_address_1.

2021-03-09  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (struct s390_processor processor_table):
	Binutils name string must not be empty.

2021-03-09  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.c (arc_attr_type): Remove function.

2021-03-09  Martin Liska  <mliska@suse.cz>

	PR target/99464
	* config/i386/i386-options.c (ix86_option_override_internal):
	Set isa_flags for OPTS argument and not for the global
	global_options.

2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/predicates.md (ds_form_mem_operand): Check
	in correct code.

2021-03-09  Aaron Sawdey  <acsawdey@linux.ibm.com>

	PR target/99070
	* config/rs6000/predicates.md (ds_form_mem_operand) New
	predicate.
	* config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use
	ds_form_mem_operand in ld/lwa patterns.
	* config/rs6000/fusion.md: Regenerate file.

2021-03-08  Martin Sebor  <msebor@redhat.com>

	PR middle-end/98266
	* gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function.
	(array_bounds_checker::check_array_bounds): Call it.

2021-03-08  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97631
	* tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem.
	(handle_builtin_stxncpy_strncat): Rename locals.  Determine
	destination size from allocation calls.  Issue a more appropriate
	kind of warning.
	(handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow.
	(handle_builtin_memset): Same.

2021-03-08  Peter Bergner  <bergner@linux.ibm.com>

	PR target/98959
	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert
	to ensure we do not have an Altivec style address.
	* config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed
	an Altivec style address.
	(*vsx_le_perm_store_<mode>): Likewise.
	(splitters after *vsx_le_perm_store_<mode>): Likewise.
	(vsx_load_<mode>): Disable special expander if passed an Altivec
	style address.
	(vsx_store_<mode>): Likewise.

2021-03-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR target/99437
	* config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define.
	(aarch64_simd_shift_imm_vec_hi): Likewise.
	(aarch64_simd_shift_imm_vec_si): Likewise.
	(aarch64_simd_shift_imm_vec_di): Likewise.
	* config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use
	predicate from above.
	(aarch64_shrn<mode>_insn_be): Likewise.
	(aarch64_rshrn<mode>_insn_le): Likewise.
	(aarch64_rshrn<mode>_insn_be): Likewise.
	(aarch64_shrn2<mode>_insn_le): Likewise.
	(aarch64_shrn2<mode>_insn_be): Likewise.
	(aarch64_rshrn2<mode>_insn_le): Likewise.
	(aarch64_rshrn2<mode>_insn_be): Likewise.

2021-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99422
	* lra-constraints.c (skip_contraint_modifiers): New function.
	(process_address_1): Use it before lookup_constraint call.

2021-03-08  Martin Liska  <mliska@suse.cz>

	PR target/99463
	* config/i386/i386-options.c (ix86_option_override_internal):
	Enable UINTR and HRESET for -march that supports it.

2021-03-08  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.c (f_constraint_p): New function.
	(s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST.
	(TARGET_MD_ASM_ADJUST): Likewise.

2021-03-08  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/97927
	* tree-nested.c (convert_local_reference_stmt): Avoid calling
	lookup_field_for_decl for Fortran module (= namespace context).

2021-03-08  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390.c (s390_expand_vec_compare): Implement <0
	comparison with arithmetic right shift.
	(s390_expand_vcond): No need for a force_reg anymore.
	s390_vec_compare will do it.
	* config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also
	immediate operands.

2021-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/99321
	* config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE
	but TARGET_AVX512BW or TARGET_AVX512VL is not set.  Adjust description
	and comment.
	* config/i386/sse.md (v_Yw): New define_mode_attr.
	(*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3,
	*sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v
	in constraints.
	* config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of
	xYw in constraints.

2021-03-06  Julian Brown  <julian@codesourcery.com>

	* tree-pretty-print.c (dump_generic_node): Emit non-generic
	address space info for aggregates.

2021-03-06  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define.

2021-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99322
	* tree-cfg.c (bb_to_omp_idx): New variable.
	(execute_build_cfg): Release the bb_to_omp_idx vector after
	cleanup_tree_cfg returns.
	(handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust
	for bb_to_omp_idx being a vec<int> instead of pointer to array
	of ints.
	(make_edges): Remove bb_to_omp_idx local variable, don't pass
	it to handle_abnormal_edges, adjust for bb_to_omp_idx being a
	vec<int> instead of pointer to array of ints and don't free/release
	it at the end.
	(remove_bb): When removing a bb and placing forced label somewhere
	else, ensure it is put into the same OpenMP region during cfg
	pass if possible or to entry successor as fallback.  Unregister
	bb from bb_to_omp_idx.

2021-03-05  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/99378
	* lra-constraints.c (process_address_1): Skip decomposing address
	for asm insn operand with unknown constraint.

2021-03-05  Martin Jambor  <mjambor@suse.cz>

	PR ipa/98078
	* cgraph.c (cgraph_edge::set_call_stmt): Do not update all
	corresponding speculative edges if we are about to resolve
	sepculation.  Make edge direct (and so resolve speculations) before
	removing it from call_site_hash.
	(cgraph_edge::make_direct): Relax the initial assert to allow calling
	the function on speculative direct edges.

2021-03-05  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/99376
	* rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number
	of low-order zero bits is too large, set the result to 0 directly.

2021-03-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/93235
	* expmed.c (store_bit_field_using_insv): Return false of xop0 is a
	SUBREG and a SUBREG to op_mode can't be created.

2021-03-04  Alex Coplan  <alex.coplan@arm.com>

	PR target/99381
	* config/aarch64/aarch64-sve-builtins.cc
	(function_resolver::require_vector_type): Handle error_mark_node.

2021-03-04  Ilya Leoshkevich  <iii@linux.ibm.com>

	* cfgexpand.c (expand_asm_loc): Pass new parameter.
	(expand_asm_stmt): Likewise.
	* config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new
	parameter.
	* config/arm/aarch-common.c (arm_md_asm_adjust): Likewise.
	* config/arm/arm.c (thumb1_md_asm_adjust): Likewise.
	* config/cris/cris.c (cris_md_asm_adjust): Likewise.
	* config/i386/i386.c (ix86_md_asm_adjust): Likewise.
	* config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise.
	* config/nds32/nds32.c (nds32_md_asm_adjust): Likewise.
	* config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise.
	* config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise.
	* config/vax/vax.c (vax_md_asm_adjust): Likewise.
	* config/visium/visium.c (visium_md_asm_adjust): Likewise.
	* doc/tm.texi (md_asm_adjust): Likewise.
	* target.def (md_asm_adjust): Likewise.

2021-03-04  Richard Biener  <rguenther@suse.de>

	PR middle-end/97855
	* tree-pretty-print.c: Poison pp_printf.
	(dump_decl_name): Avoid use of pp_printf.
	(dump_block_node): Likewise.
	(dump_generic_node): Likewise.

2021-03-04  Martin Sebor  <msebor@redhat.com>

	PR middle-end/96963
	PR middle-end/94655
	* builtins.c (handle_array_ref): New helper.
	(handle_mem_ref): New helper.
	(compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling
	into new helper functions.  Correct a workaround for vectorized
	assignments.

2021-03-03  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1,
	floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>,
	dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>,
	*dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size
	attribute for Power10.
	* config/rs6000/mma.md (*movoo): Likewise.
	* config/rs6000/rs6000.md (define_attr "size"): Add 256.
	(define_mode_attr bits): Add DD/TD modes.
	* config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti,
	store_conditionalpti): Update size attribute for Power10.

2021-03-03  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR bootstrap/92002
	* config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for
	-Wuninitialized, -Wmaybe-uninitialized.
	(wide-int.o-warn): Likewise.

2021-03-03  Richard Earnshaw  <rearnsha@arm.com>

	* common/config/arm/arm-common.c: Include configargs.h.
	(arm_config_default): New function.
	(arm_target_mode): Renamed from arm_target_thumb_only.  Handle
	processors that do not support Thumb.  Take into account the
	--with-mode configuration setting for selecting the default.
	* config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'.
	(TARGET_MODE_SPEC_FUNCTIONS): Update for function name change.

2021-03-03  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/97461
	* gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.

2021-03-03  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/99234
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	point back the hard frame pointer to its default location when the
	frame is larger than SEH_MAX_FRAME_SIZE.

2021-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/99321
	* config/i386/predicates.md (logic_operator): New define_predicate.
	* config/i386/i386.md (mov + mem using comm arith peephole2):
	Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled
	and the inner mode is [QH]Imode.

2021-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99090
	* dwarf2out.c (dw_loc_list_struct): Add end_entry member.
	(new_loc_list): Clear end_entry.
	(output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf
	if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx.  Fix comment
	typo.
	(index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128,
	initialize also end_entry.

2021-03-03  Jakub Jelinek  <jakub@redhat.com>

	PR target/99085
	* cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold
	partitions, if in non-layout mode after reorder_blocks also move
	affected blocks to ensure a single partition transition.

2021-03-03  Jason Merrill  <jason@redhat.com>

	PR c++/96078
	* cgraphunit.c (process_function_and_variable_attributes): Don't
	warn about flatten on an alias if the target also has it.
	* cgraph.h (symtab_node::get_alias_target_tree): New.

2021-03-02  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend
	period to symbol name.
	(tls_get_addr_internal<mode>): Same.

2021-03-02  David Malcolm  <dmalcolm@redhat.com>

	PR c/99323
	* diagnostic-show-locus.c
	(selftest::test_one_liner_many_fixits_2): Fix accidental usage of
	column 0.

2021-03-02  Martin Sebor  <msebor@redhat.com>

	PR middle-end/99276
	* builtins.c (warn_for_access): Remove stray warning text.

2021-03-02  Martin Sebor  <msebor@redhat.com>

	PR middle-end/99295
	* doc/extend.texi (attribute malloc): Reword and clarify nonaliasing
	property.

2021-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR debug/99319
	* dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with
	-gdwarf-5 -gstrict-dwarf.  For -gsplit-dwarf -gdwarf-5 use
	DW_MACRO_*_strx instead of DW_MACRO_*_strp.  Handle
	DW_MACRO_define_strx and DW_MACRO_undef_strx.
	(save_macinfo_strings): Use DW_MACRO_*_str* even with
	-gdwarf-5 -gstrict-dwarf.  Handle DW_MACRO_define_strx and
	DW_MACRO_undef_strx.

2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New
	builtin signature.
	(BT_FN_V8HI_V8HI_UINT): Likewise.
	(BT_FN_V8HI_V4SF_V4SF_UINT): Likewise.
	* config/s390/s390-builtins.def (B_NNPA): New macro definition.
	(s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf):
	New builtin definitions.
	* config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump
	vector extension version.
	* config/s390/s390.c (s390_expand_builtin): Check if builtins are
	available with current -march level.
	* config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI)
	(UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI)
	(UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants.
	* config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro.
	(vec_extend_to_fp32_lo): Likewise.
	(vec_round_from_fp32): Likewise.
	(vec_convert_to_fp16): Likewise.
	(vec_convert_from_fp16): Likewise.
	* config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern.
	(vclfnls_v8hi): Likewise.
	(vcrnfs_v8hi): Likewise.
	(vcfn_v8hi): Likewise.
	(vcnf_v8hi): Likewise.

2021-03-02  Andreas Krebbel  <krebbel@linux.ibm.com>

	* common/config/s390/s390-common.c (processor_flags_table): New entry.
	* config.gcc: Enable arch14 for --with-arch and --with-tune.
	* config/s390/driver-native.c (s390_host_detect_local_cpu): Pick
	arch14 for unknown CPU models.
	* config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14.
	* config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14.
	(s390_get_sched_attrmask): Likewise.
	(s390_get_unit_mask): Likewise.
	* config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14.
	(TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA)
	(TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA)
	(TARGET_NNPA_P): New macro definitions.
	* config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa.
	* config/s390/s390.opt: Add PROCESSOR_ARCH14.

2021-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/95757
	* tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around
	condition.  Call register_edge_assert_for_1 for == 0, != 0, == 1 and
	!= 1 comparisons if name is lhs of a comparison.

2021-03-01  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/44107
	PR target/48097
	* config/darwin-protos.h (darwin_should_restore_cfa_state): New.
	* config/darwin.c (darwin_should_restore_cfa_state): New.
	* config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE.
	* dwarf2cfi.c (connect_traces): If the target requests, restore
	the CFA expression after a DW_CFA_restore.
	* target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook.

2021-03-01  Martin Liska  <mliska@suse.cz>

	PR target/99313
	* optc-save-gen.awk: Add 4 more exceptions.

2021-03-01  Nathan Sidwell  <nathan@acm.org>

	PR c++/99294
	* tree.h (TYPE_ALIGN_RAW): New accessor.
	(TYPE_ALIGN): Use it.

2021-03-01  Jan Hubicka  <jh@suse.cz>

	PR ipa/98338
	* ipa-fnsummary.c (compute_fn_summary): Fix sanity check.

2021-03-01  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/99234
	* config/i386/i386.c (ix86_compute_frame_layout): For a SEH target,
	point the hard frame pointer to the SSE register save area instead
	of the general register save area.  Perform only minimal adjustment
	for small frames if it is initially not correctly aligned.
	(ix86_expand_prologue): Remove early saves for a SEH target.
	* config/i386/winnt.c (struct seh_frame_state): Document constraint.

2021-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR c/99304
	* ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment
	typo - referneced -> referenced.
	* tree.c (component_ref_size): Fix comment typo -
	refernce -> reference.
	* tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo -
	traling -> trailing.
	(aliasing_component_refs_p): Fix comment typos -
	refernce -> reference and refernece -> reference and
	traling -> trailing.
	(nonoverlapping_refs_since_match_p): Fix comment typo -
	referneces -> references.
	* doc/invoke.texi (--param modref-max-bases): Fix a typo -
	referneces -> references.

2021-02-27  Iain Sandoe  <iain@sandoe.co.uk>

	* config/host-darwin.c (darwin_gt_pch_use_address): Modify
	diagnostic message to avoid use of a contraction and format
	warning.

2021-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR other/99288
	* gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of
	HOST_WIDE_INT_PRINT_UNSIGNED in warning format string.
	* ipa-devirt.c (ipa_odr_read_section): Use %wd instead of
	HOST_WIDE_INT_PRINT_DEC in inform format string.  Fix comment
	typos.

2021-02-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/99281
	* expr.c (store_field): For calls with return-slot optimization
	and addressable return type expand the store directly.

2021-02-26  Richard Biener  <rguenther@suse.de>

	PR c/99275
	* builtins.c (warn_string_no_nul): Fix diagnostic formatting.

2021-02-26  Peter Bergner  <bergner@linux.ibm.com>

	PR target/99279
	* config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert
	with an "if" test.

2021-02-26  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config.gcc: Add rs6000-pcrel-opt.o.
	* config/rs6000/rs6000-pcrel-opt.c: New file.
	* config/rs6000/pcrel-opt.md: New file.
	* config/rs6000/predicates.md: Add d_form_memory predicate.
	* config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT.
	* config/rs6000/rs6000-passes.def: Add pass_pcrel_opt.
	* config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(),
	pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(),
	and make_pass_pcrel_opt().
	* config/rs6000/rs6000.c (reg_to_non_prefixed): Make global.
	(rs6000_option_override_internal): Add pcrel-opt.
	(rs6000_delegitimize_address): Support pcrel-opt.
	(rs6000_opt_masks): Add pcrel-opt.
	(pcrel_opt_valid_mem_p): New function.
	(reg_to_non_prefixed): Make global.
	(rs6000_asm_output_opcode): Reset prepend_p_to_next_insn.
	(output_pcrel_opt_reloc): New function.
	* config/rs6000/rs6000.md (loads_extern_addr): New attr.
	(pcrel_extern_addr): Set loads_extern_addr.
	Add include for pcrel-opt.md.
	* config/rs6000/rs6000.opt: Add -mpcrel-opt.
	* config/rs6000/t-rs6000: Add rules for pcrel-opt.c and
	pcrel-opt.md.

2021-02-26  YunQiang Su  <yunqiang.su@cipunited.com>

	PR target/98996
	* config/mips/mips.c (mips_expand_ext_as_unaligned_load):
	If TARGET_64BIT and dest is SUBREG, we check the width, if it
	equal to SImode, we use SImode operation, just like what we are
	doing for REG one.

2021-02-26  Marek Polacek  <polacek@redhat.com>

	* builtins.c (warn_for_access): Fix typos.

2021-02-25  Iain Sandoe  <iain@sandoe.co.uk>

	* config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#'
	mark in front of the immediate quantity.
	(<optab>_rolsi3_uxtw): Likewise.

2021-02-25  Richard Earnshaw  <rearnsha@arm.com>

	PR target/99271
	* config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern.
	(nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
	(nonsecure_call_reg_thumb2): Restrict to using r4 for the callee
	address and disable when the FPCXT is not available.
	(nonsecure_call_value_reg_thumb2): Likewise.

2021-02-25  Nathan Sidwell  <nathan@acm.org>

	PR c++/99166
	* doc/invoke.texi (flang-info-module-cmi): Renamed option.

2021-02-25  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes.

2021-02-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99253
	* tree-vect-loop.c (check_reduction_path): First compute
	code, then verify out-of-loop uses.

2021-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/95798
	* match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert.

2021-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/80635
	* tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle
	VIEW_CONVERT_EXPR if modes are the same, innerop is integral and
	has mode precision.

2021-02-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (optimize_load_redistribution_1): Delay
	load_map population.
	(vect_match_slp_patterns_2): Revert part of last change.
	(vect_analyze_slp): Do not interleave optimize_load_redistribution
	with pattern detection but do it afterwards.  Dump the
	whole SLP graph after pattern recognition and load
	redistribution optimization finished.

2021-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR fortran/99226
	* omp-low.c (struct omp_context): Add teams_nested_p and
	nonteams_nested_p members.
	(scan_omp_target): Diagnose teams nested inside of target with other
	directives strictly nested inside of the same target.
	(check_omp_nesting_restrictions): Set ctx->teams_nested_p or
	ctx->nonteams_nested_p as needed.

2021-02-24  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR inline-asm/99123
	* lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address.

2021-02-24  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_expand_prologue): Set
	current_function_static_stack_size, if flag_stack_usage_info.

2021-02-24  Pat Haugen  <pthaugen@linux.ibm.com>

	* config/rs6000/rs6000.c (next_insn_prefixed_p): Rename.
	(rs6000_final_prescan_insn): Adjust.
	(rs6000_asm_output_opcode): Likewise.

2021-02-24  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97172
	* attribs.c (attr_access::free_lang_data): Clear attribute arg spec
	from function arguments.

2021-02-24  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/99220
	* tree-vect-slp.c (optimize_load_redistribution_1): Remove
	node from cache when it's about to be deleted.

2021-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99225
	* fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0
	to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of
	build_int_cst (..., 1).  Formatting fixes.

2021-02-24  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/99149
	* tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the
	buffer.
	(vect_slp_reset_pattern): Remove.
	(complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern.
	(complex_mul_pattern::build, complex_fma_pattern::build,
	complex_fms_pattern::build): Fix ref counts.
	* tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy
	when node is being deleted.
	(vect_match_slp_patterns_2): Correct result of cache hit on patterns.
	(vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed
	stores.
	* tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value.

2021-02-24  Matthias Klose  <doko@ubuntu.com>

	Revert:
	2020-12-07  Matthias Klose  <doko@ubuntu.com>

	* genextract.c (print_header): Undefine ENABLE_RTL_CHECKING
	and ENABLE_RTL_FLAG_CHECKING.

2021-02-24  Richard Biener  <rguenther@suse.de>

	PR c/99224
	* builtins.c (fold_builtin_next_arg): Avoid NULL arg.

2021-02-23  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/mma.md (mma_assemble_pair): Rename from this...
	(vsx_assemble_pair): ...to this.
	(*mma_assemble_pair): Rename from this...
	(*vsx_assemble_pair): ...to this.
	(mma_disassemble_pair): Rename from this...
	(vsx_disassemble_pair): ...to this.
	(*mma_disassemble_pair): Rename from this...
	(*vsx_disassemble_pair): ...to this.
	* config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3,
	BU_COMPAT): New macros.
	(mma_assemble_pair): Rename from this...
	(vsx_assemble_pair): ...to this.
	(mma_disassemble_pair): Rename from this...
	(vsx_disassemble_pair): ...to this.
	(mma_assemble_pair): New compatibility built-in.
	(mma_disassemble_pair): Likewise.
	* config/rs6000/rs6000-call.c (struct builtin_compatibility): New.
	(RS6000_BUILTIN_COMPAT): Define.
	(bdesc_compat): New.
	(mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
	(rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR
	and VSX_BUILTIN_ASSEMBLE_PAIR.
	(rs6000_init_builtins): Register compatibility built-ins.
	(mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR,
	VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and
	VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL.
	* doc/extend.texi (__builtin_mma_assemble_pair): Rename from this...
	(__builtin_vsx_assemble_pair): ...to this.
	(__builtin_mma_disassemble_pair): Rename from this...
	(__builtin_vsx_disassemble_pair): ...to this.

2021-02-23  Martin Liska  <mliska@suse.cz>

	PR sanitizer/99168
	* ipa-icf.c (sem_variable::merge): Do not merge 2 variables
	with different alignment. That leads to an invalid red zone
	size allocated in runtime.

2021-02-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99204
	* fold-const.c (fold_read_from_constant_string): Check that
	tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST.

2021-02-23  Segher Boessenkool  <segher@kernel.crashing.org>
	    Kewen Lin  <linkw@gcc.gnu.org>

	* config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to...
	(rotl<mode>3_insert_3): ...this.
	(plus_ior_xor): New code_iterator.
	(define_split for GPR rl*imi): New splitter.
	* config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3
	for integer merging.

2021-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants):
	Define.
	* config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates
	into a register when the above is enabled.
	* config/aarch64/aarch64.c (neoversev1_tunings):
	AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.
	(aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS.

2021-02-22  Hans-Peter Nilsson  <hp@axis.com>

	* config/cris/cris.c (cris_print_operand) <'T'>: Change
	valid operand from is now an addi mult-value to shift-value.
	* config/cris/cris.md (*addi): Change expression of scaled
	operand from mult to ashift.
	* config/cris/cris.md (*addi_reload): New insn_and_split.

2021-02-22  John David Anglin  <danglin@gcc.gnu.org>

	PR target/85074
	* config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as
	hook_bool_const_tree_hwi_hwi_const_tree_true.
	(pa_asm_output_mi_thunk): Add support for nonzero vcall_offset.

2021-02-22  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR rtl-optimization/98791
	* ira-conflicts.c (process_regs_for_copy): Don't create allocno copies
	for unordered modes.

2021-02-22  Martin Liska  <mliska@suse.cz>

	* tree-inline.c (inline_forbidden_p): Set
	inline_forbidden_reason.

2021-02-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump
	costed subgraph.

2021-02-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99165
	* gimple-ssa-store-merging.c (pass_store_merging::process_store):
	Accumulate changed to ret.

2021-02-21  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2020-12-09  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.h (REG_ALLOC_ORDER): Remove

2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>

	PR target/99134
	* config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New
	pattern.
	(trunctf<DFP_ALL:mode>2): Likewise.
	(trunctdtf2_vr): Likewise.
	(trunctdtf2): Likewise.
	(extend<DFP_ALL:mode>tf2_vr): Likewise.
	(extend<DFP_ALL:mode>tf2): Likewise.
	(extendtftd2_vr): Likewise.
	(extendtftd2): Likewise.

2021-02-20  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf,
	add memory alternative.
	(tf_to_fprx2): New pattern.

2021-02-19  Martin Sebor  <msebor@redhat.com>

	PR c/97172
	* attribs.c (init_attr_rdwr_indices): Guard vblist use.
	(attr_access::free_lang_data): Remove a spurious test.

2021-02-19  Nathan Sidwell  <nathan@acm.org>

	* doc/invoke.texi (flang-info-module-read): Document.

2021-02-19  Martin Liska  <mliska@suse.cz>

	PR translation/99167
	* params.opt: Fix typo.

2021-02-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/99122
	* tree-inline.c (inline_forbidden_p): Do not inline functions
	with VLA arguments or return value.

2021-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/98998
	* config/arm/arm.md (*stack_protect_combined_set_insn,
	*stack_protect_combined_test_insn): If force_const_mem result
	is not valid general operand, force its address into the destination
	register first.

2021-02-19  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/99034
	* tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing
	pad or non-local label, put FORCED_LABELs from bb b after that label
	rather than before it.

2021-02-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR target/98657
	* config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use
	expand_vector_broadcast' to emit the vec_duplicate operand.

2021-02-18  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/96264
	* lra-remat.c (reg_overlap_for_remat_p): Check also output insn
	hard regs.

2021-02-18  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99113
	* varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with
	looking up the retain attribute.
	(resolve_unique_section): Likewise.
	(get_variable_section): Likewise.
	(switch_to_section): Likewise.  Warn when a symbol without the
	retain attribute and a symbol with the retain attribute are
	placed in the section with the same name, instead of the used
	attribute.
	* doc/extend.texi: Document the "retain" attribute.

2021-02-18  Nathan Sidwell  <nathan@acm.org>

	PR c++/99023
	* doc/invoke.texi (flang-info-include-translate): Document header
	lookup behaviour.

2021-02-18  Richard Biener  <rguenther@suse.de>

	PR middle-end/99122
	* ipa-fnsummary.c (analyze_function_body): Set
	CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls.
	* tree-inline.c (insert_init_debug_bind): Pass NULL for
	error_mark_node values.
	(force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR
	values.
	(setup_one_parameter): Delay force_value_to_type until when
	it's needed.

2021-02-18  Hans-Peter Nilsson  <hp@axis.com>

	PR tree-optimization/99142
	* match.pd (clz cmp 0): Gate replacement on single_use of clz result.

2021-02-18  Jakub Jelinek  <jakub@redhat.com>

	* wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (),
	wide_int_bitmask::wide_int_bitmask (uint64_t),
	wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t),
	wide_int_bitmask::operator ~ () const,
	wide_int_bitmask::operator | (wide_int_bitmask) const,
	wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr
	instead of inline.
	* config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM,
	PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4,
	PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF,
	PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2,
	PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM,
	PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED,
	PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER,
	PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1,
	PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW,
	PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX,
	PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS,
	PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES,
	PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID,
	PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE,
	PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD,
	PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8,
	PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI,
	PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4,
	PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE,
	PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512,
	PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT,
	PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE,
	PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS,
	PTA_TREMONT, PTA_KNM): Use constexpr instead of const.

2021-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99109
	* gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ...
	(build_printable_array_type): ... this.  Add nelts argument.  For
	overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead.  If
	nelts, call build_array_type_nelts.
	(array_bounds_checker::check_mem_ref): Use build_printable_array_type
	instead of build_zero_elt_array_type and build_array_type_nelts.

2021-02-18  Jakub Jelinek  <jakub@redhat.com>

	PR target/99104
	* config/i386/i386.c (distance_non_agu_define): Don't call
	extract_insn_cached here.
	(ix86_lea_outperforms): Save and restore recog_data around call
	to distance_non_agu_define and distance_agu_use.
	(ix86_ok_to_clobber_flags): Remove.
	(ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags.
	(ix86_avoid_lea_for_addr): Likewise.  Adjust function comment.
	* config/i386/i386.md (*lea<mode>): Change from define_insn_and_split
	into define_insn.  Move the splitting to define_peephole2 and
	check there using peep2_regno_dead_p if FLAGS_REG is dead.

2021-02-17  Julian Brown  <julian@codesourcery.com>

	* gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH
	for non-decls.

2021-02-17  Xi Ruoyao  <xry111@mengyan1223.wang>

	PR target/98491
	* config/mips/mips.c (mips_symbol_insns): Do not use
	MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE.

2021-02-16  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR inline-asm/98096
	* stmt.c (resolve_operand_name_1): Take inout operands into account
	for access to labels by names.
	* doc/extend.texi: Describe counting operands for accessing labels.

2021-02-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/38474
	* tree-ssa-structalias.c (variable_info::address_taken): New.
	(new_var_info): Initialize address_taken.
	(process_constraint): Set address_taken.
	(solve_constraints): Use the new address_taken flag rather
	than is_reg_var for sorting variables.
	(dump_constraint): Dump the variable number if the name
	is just NULL.

2021-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/99100
	* tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1
	multiply by 4096 and for inbranch by 8192.
	* config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F,
	return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'.

2021-02-15  Maya Rashish  <coypu@sdf.org>

	* config/aarch64/aarch64.c (aarch64_init_builtins):
	Call SUBTARGET_INIT_BUILTINS.

2021-02-15  Peter Bergner  <bergner@linux.ibm.com>

	PR rtl-optimization/98872
	* init-regs.c (initialize_uninitialized_regs): Skip initialization
	if CONST0_RTX is NULL.

2021-02-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/98863
	* rtl-ssa/functions.h (function_info::bb_live_out_info): Delete.
	(function_info::build_info): Turn into a declaration, moving the
	definition to internals.h.
	(function_info::bb_walker): Declare.
	(function_info::create_reg_use): Likewise.
	(function_info::calculate_potential_phi_regs): Take a build_info
	parameter.
	(function_info::place_phis, function_info::create_ebbs): Declare.
	(function_info::calculate_ebb_live_in_for_debug): Likewise.
	(function_info::populate_backedge_phis): Delete.
	(function_info::start_block, function_info::end_block): Declare.
	(function_info::populate_phi_inputs): Delete.
	(function_info::m_potential_phi_regs): Move information to build_info.
	* rtl-ssa/internals.h: New file.
	(function_info::bb_phi_info): New class.
	(function_info::build_info): Moved from functions.h.
	Add a constructor and destructor.
	(function_info::build_info::ebb_use): Delete.
	(function_info::build_info::ebb_def): Likewise.
	(function_info::build_info::bb_live_out): Likewise.
	(function_info::build_info::tmp_ebb_live_in_for_debug): New variable.
	(function_info::build_info::potential_phi_regs): Likewise.
	(function_info::build_info::potential_phi_regs_for_debug): Likewise.
	(function_info::build_info::ebb_def_regs): Likewise.
	(function_info::build_info::bb_phis): Likewise.
	(function_info::build_info::bb_mem_live_out): Likewise.
	(function_info::build_info::bb_to_rpo): Likewise.
	(function_info::build_info::def_stack): Likewise.
	(function_info::build_info::old_def_stack_limit): Likewise.
	* rtl-ssa/internals.inl (function_info::build_info::record_reg_def):
	Remove the regno argument.  Push the previous definition onto the
	definition stack where necessary.
	* rtl-ssa/accesses.cc: Include internals.h.
	* rtl-ssa/changes.cc: Likewise.
	* rtl-ssa/blocks.cc: Likewise.
	(function_info::build_info::build_info): Define.
	(function_info::build_info::~build_info): Likewise.
	(function_info::bb_walker): New class.
	(function_info::bb_walker::bb_walker): Define.
	(function_info::add_live_out_use): Convert a logarithmic-complexity
	test into a linear one.  Allow the same definition to be passed
	multiple times.
	(function_info::calculate_potential_phi_regs): Moved from
	functions.cc.  Take a build_info parameter and store the
	information there instead.
	(function_info::place_phis): New function.
	(function_info::add_entry_block_defs): Update call to record_reg_def.
	(function_info::calculate_ebb_live_in_for_debug): New function.
	(function_info::add_phi_nodes): Use bb_phis to decide which
	registers need phi nodes and initialize ebb_def_regs accordingly.
	Do not add degenerate phis here.
	(function_info::add_artificial_accesses): Use create_reg_use.
	Assert that all definitions are listed in the DF LR sets.
	Update call to record_reg_def.
	(function_info::record_block_live_out): Record live-out register
	values in the phis of successor blocks.  Use the live-out set
	when processing the last block in an EBB, instead of always
	using the live-in sets of successor blocks.  AND the live sets
	with the set of registers that have been defined in the EBB,
	rather than with all potential phi registers.  Cope correctly
	with branches back to the start of the current EBB.
	(function_info::start_block): New function.
	(function_info::end_block): Likewise.
	(function_info::populate_phi_inputs): Likewise.
	(function_info::create_ebbs): Likewise.
	(function_info::process_all_blocks): Rewrite into a multi-phase
	process.
	* rtl-ssa/functions.cc: Include internals.h.
	(function_info::calculate_potential_phi_regs): Move to blocks.cc.
	(function_info::init_function_data): Remove caller.
	* rtl-ssa/insns.cc: Include internals.h
	(function_info::create_reg_use): New function.  Lazily any
	degenerate phis needed by the linear RPO view.
	(function_info::record_use): Use create_reg_use.  When processing
	debug uses, use potential_phi_regs and test it before checking
	whether the register is live on entry to the current EBB.  Lazily
	calculate ebb_live_in_for_debug.
	(function_info::record_call_clobbers): Update call to record_reg_def.
	(function_info::record_def): Likewise.

2021-02-15  Martin Liska  <mliska@suse.cz>

	* toplev.c (init_asm_output): Free output of
	gen_command_line_string function.
	(process_options): Likewise.

2021-02-15  Martin Liska  <mliska@suse.cz>

	* params.opt: Add 2 missing Param keywords.

2021-02-15  Eric Botcazou  <ebotcazou@adacore.com>

	* df-core.c (df_worklist_dataflow_doublequeue): Use proper cast.

2021-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/99079
	* match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove
	useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check.  Instead
	require both type and TREE_TYPE (@1) to be integral types and either
	type having smaller or equal precision, or TREE_TYPE (@1) being
	unsigned type, or type being signed type.  If TREE_TYPE (@1)
	doesn't have wrapping overflow, perform the subtraction of one in
	unsigned type.

2021-02-14  Jan Hubicka  <hubicka@ucw.cz>
	    Richard Biener  <rguether@suse.de>

	PR ipa/97346
	* ipa-reference.c (ipa_init): Only conditinally initialize
	reference_vars_to_consider.
	(propagate): Conditionally deninitialize reference_vars_to_consider.
	(ipa_reference_write_optimization_summary): Sanity check that
	reference_vars_to_consider is not allocated.

2021-02-13  Levy Hsu  <admin@levyhsu.com>

	PR target/97417
	* config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add
	extend parameter to get_si_mem_base_reg declaration.
	(get_si_mem_base_reg): Add extend parameter.  Set it.
	(analyze): Pass extend arg to get_si_mem_base_reg.
	(transform): Likewise.  Use it when rewriting mems.
	* config/riscv/riscv.c (riscv_legitimize_move): Check for subword
	loads and emit sign/zero extending load followed by subreg move.

2021-02-13  Jim Wilson  <jimw@sifive.com>

	PR target/97417
	* config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early
	exit when !reload_completed.  Only perform check for compressed reg
	if reload_completed.
	(riscv_rtx_costs): In MEM case, when optimizing	for size and
	shorten memrefs, if not compressible, then increase cost.

2021-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/98439
	* recog.c (pass_split_before_regstack::gate): Enable even when
	pass_split_before_sched2 is enabled if -fselective-scheduling2 is
	on.

2021-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/96166
	* config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for
	swap of V2SImode elements in memory into DImode memory rotate by 32.

2021-02-12  Martin Sebor  <msebor@redhat.com>

	* tree-pretty-print.c (print_generic_expr_to_str): Update comment.

2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl-ssa/accesses.cc (function_info::make_use_available): Use
	m_temp_obstack rather than m_obstack to allocate the temporary use.

2021-02-12  Richard Sandiford  <richard.sandiford@arm.com>

	* df-problems.c (df_lr_bb_local_compute): Treat partial definitions
	as read-modify operations.

2021-02-12  Richard Biener  <rguenther@suse.de>

	PR middle-end/38474
	* ipa-fnsummary.c (unmodified_parm_1): Only walk when
	fbi->aa_walk_budget is bigger than zero.  Update
	fbi->aa_walk_budget.
	(param_change_prob): Likewise.
	* ipa-prop.c (detect_type_change_from_memory_writes):
	Properly account walk_aliased_vdefs.
	(parm_preserved_before_stmt_p): Canonicalize updates.
	(parm_ref_data_preserved_p): Likewise.
	(parm_ref_data_pass_through_p): Likewise.
	(determine_known_aggregate_parts): Account own alias queries.

2021-02-12  Martin Liska  <mliska@suse.cz>

	* opts-common.c (decode_cmdline_option): Release werror_arg.
	* opts.c (gen_producer_string): Release output of
	gen_command_line_string.

2021-02-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/38474
	* params.opt (-param=max-store-chains-to-track=): New param.
	(-param=max-stores-to-track=): Likewise.
	* doc/invoke.texi (max-store-chains-to-track): Document.
	(max-stores-to-track): Likewise.
	* gimple-ssa-store-merging.c (pass_store_merging::m_n_chains):
	New.
	(pass_store_merging::m_n_stores): Likewise.
	(pass_store_merging::terminate_and_process_chain): Update
	m_n_stores and m_n_chains.
	(pass_store_merging::process_store): Likewise.   Terminate
	oldest chains if the number of stores or chains get too large.
	(imm_store_chain_info::terminate_and_process_chain): Dump
	chain length.

2021-02-11  Eric Botcazou  <ebotcazou@adacore.com>

	* config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to
	the cold section, emit a nop before the directive if the previous
	active instruction can throw.

2021-02-11  Peter Bergner  <bergner@linux.ibm.com>

	PR target/99041
	* config/rs6000/predicates.md (mma_assemble_input_operand): Restrict
	memory addresses that are legal for quad word accesses.

2021-02-11  Andrea Corallo  <andrea.corallo@arm.com>

	PR target/98931
	* config/arm/thumb2.md (*doloop_end_internal): Generate
	alternative sequence to handle long range branches.

2021-02-11  Joel Hutton  <joel.hutton@arm.com>

	PR tree-optimization/98772
	* optabs-tree.c (supportable_half_widening_operation): New function
	to check for supportable V8QI->V8HI widening patterns.
	* optabs-tree.h (supportable_half_widening_operation): New function.
	* tree-vect-stmts.c (vect_create_half_widening_stmts): New function
	to create promotion stmts for V8QI->V8HI widening patterns.
	(vectorizable_conversion): Add case for V8QI->V8HI.

2021-02-11  Richard Biener  <rguenther@suse.de>

	* sparseset.h (SPARSESET_ELT_BITS): Remove.
	(SPARSESET_ELT_TYPE): Use unsigned int.
	* fwprop.c: Do not include sparseset.h.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR c++/99035
	* varasm.c (declare_weak): For -fsyntax-only, allow even
	TREE_ASM_WRITTEN function decls.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/99025
	* config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2,
	<insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2,
	<insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2,
	<insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before
	calling simplify_gen_subreg on it.

2021-02-10  Martin Liska  <mliska@suse.cz>

	* config/nvptx/nvptx.c (nvptx_option_override): Use
	flag_patchable_function_entry instead of the removed
	function_entry_patch_area_size.

2021-02-10  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/99002
	PR tree-optimization/99026
	* gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory
	leak when adjacent cases are merged.
	* tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use
	release_clusters.
	(make_pass_lower_switch): Remove trailing whitespace.
	* tree-switch-conversion.h (release_clusters): New.

2021-02-10  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/99054
	* cfgrtl.c (rtl-optimization/99054): Return an auto_vec.
	(fixup_partitions): Adjust.
	(rtl_verify_edges): Likewise.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99007
	* gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions,
	temporarily disable gimplify_ctxp->into_ssa around gimplify_expr
	calls.

2021-02-10  Richard Biener  <rguenther@suse.de>

	PR ipa/99029
	* ipa-pure-const.c (propagate_malloc): Use an auto_vec<>
	for callees.

2021-02-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99024
	* tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only
	clear loop->aux if it is associated with the destroyed loop_vinfo.

2021-02-10  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/99002
	* gimple-if-to-switch.cc (find_conditions): Fix memory leak
	in the function.

2021-02-10  Martin Liska  <mliska@suse.cz>

	PR ipa/99003
	* ipa-icf.c (sem_item::add_reference): Fix memory leak when
	a reference exists.

2021-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98755
	* dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs
	at class scope for DWARF5+.

2021-02-09  Eric Botcazou  <ebotcazou@adacore.com>

	PR rtl-optimization/96015
	* reorg.c (skip_consecutive_labels): Minor comment tweaks.
	(relax_delay_slots): When deleting a jump to the next active
	instruction over a barrier, first delete the barrier if the
	jump is the only way to reach the target label.

2021-02-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul.
	* config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for
	vector multiplies and vect.alu for SSRA.
	* config/arm/aarch-common-protos.h (struct vector_cost_table): Define
	vect.mul cost field.
	* config/arm/aarch-cost-tables.h: Add entries for vect.mul.
	* config/arm/arm.c: Likewise.

2021-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98863
	* tree-ssa-sccvn.h (vn_avail::next_undo): Add.
	* tree-ssa-sccvn.c (last_pushed_avail): New global.
	(rpo_elim::eliminate_push_avail): Chain pushed avails.
	(unwind_state::avail_top): Add.
	(do_unwind): Rewrite unwinding of avail entries.
	(do_rpo_vn): Initialize last_pushed_avail and
	avail_top of the undo state.

2021-02-09  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/99004
	* calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from
	const char * to char * and free those pointers after use.

2021-02-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/99017
	* tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow
	zero vector cost entries.

2021-02-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR middle-end/98974
	* tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num
	parameter in vectorizable_condition.

2021-02-08  Richard Biener  <rguenther@suse.de>

	PR lto/96591
	* tree.c (walk_tree_1): Walk VECTOR_CST elements.

2021-02-08  Martin Liska  <mliska@suse.cz>

	PR lto/98971
	* cfgexpand.c (pass_expand::execute): Parse per-function option
	flag_patchable_function_entry and use it.
	* common.opt: Remove function_entry_patch_area_size and
	function_entry_patch_area_start global variables.
	* opts.c (parse_and_check_patch_area): New function.
	(common_handle_option): Use it.
	* opts.h (parse_and_check_patch_area): New function.
	* toplev.c (process_options): Parse and use
	function_entry_patch_area_size.

2021-02-08  Martin Sebor  <msebor@redhat.com>

	* doc/extend.texi (attribute malloc): Correct typos.

2021-02-05  Nathan Sidwell  <nathan@acm.org>

	PR driver/98943
	* gcc.c (driver::maybe_run_linker): Check for input file
	accessibility if not linking.

2021-02-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98855
	* tree-vectorizer.h (add_stmt_cost): New overload.
	* tree-vect-slp.c (li_cost_vec_cmp): New.
	(vect_bb_slp_scalar_cost): Cost individual loop regions
	separately.  Account for the scalar instance root stmt.

2021-02-05  Tom de Vries  <tdevries@suse.de>

	PR debug/98656
	* tree-switch-conversion.c (jump_table_cluster::emit): Add loc
	argument.
	(bit_test_cluster::emit): Reuse location_t for newly created
	gswitch statement.
	(switch_decision_tree::try_switch_expansion): Preserve
	location_t.
	* tree-switch-conversion.h: Change function signatures.

2021-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR target/98957
	* config/i386/i386-options.c (m_NONE, m_ALL): Define.
	* config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS,
	X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U.
	(X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U.

2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin.
	* config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define.
	* config/aarch64/arm_neon.h (__GET_HIGH): Delete.
	(vget_high_f16): Reimplement using new builtin.
	(vget_high_f32): Likewise.
	(vget_high_f64): Likewise.
	(vget_high_p8): Likewise.
	(vget_high_p16): Likewise.
	(vget_high_p64): Likewise.
	(vget_high_s8): Likewise.
	(vget_high_s16): Likewise.
	(vget_high_s32): Likewise.
	(vget_high_s64): Likewise.
	(vget_high_u8): Likewise.
	(vget_high_u16): Likewise.
	(vget_high_u32): Likewise.
	(vget_high_u64): Likewise.

2021-02-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin.
	* config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define.
	* config/aarch64/arm_neon.h (__GET_LOW): Delete.
	(vget_low_f16): Reimplement using new builtin.
	(vget_low_f32): Likewise.
	(vget_low_f64): Likewise.
	(vget_low_p8): Likewise.
	(vget_low_p16): Likewise.
	(vget_low_p64): Likewise.
	(vget_low_s8): Likewise.
	(vget_low_s16): Likewise.
	(vget_low_s32): Likewise.
	(vget_low_s64): Likewise.
	(vget_low_u8): Likewise.
	(vget_low_u16): Likewise.
	(vget_low_u32): Likewise.
	(vget_low_u64): Likewise.

2021-02-05  Kito Cheng  <kito.cheng@sifive.com>

	* gcc.c (print_multilib_info): Check all required argument is provided
	by default arg.

2021-02-05  liuhongt  <hongtao.liu@intel.com>

	PR target/98537
	* config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't
	generate integer mask comparison for 128/256-bits vector when
	op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also
	delete redundant !maskcmp condition.
	(ix86_expand_int_vec_cmp): Ditto but no redundant deletion
	here.
	(ix86_expand_sse_movcc): Delete definition of maskcmp, add the
	condition directly to if (maskcmp), add extra check for
	cmpmode, it should be MODE_INT.
	(ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's
	parameters op_true/op_false.
	(ix86_use_mask_cmp_p): New.

2021-02-05  liuhongt  <hongtao.liu@intel.com>

	PR target/98172
	* config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL):
	Remove m_GENERIC from ~list.
	(X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto.

2021-02-04  David Malcolm  <dmalcolm@redhat.com>

	PR c/97932
	* diagnostic-show-locus.c (compatible_locations_p): Require
	locations in the same macro map to be either both from the
	macro definition, or both from the macro arguments.

2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	[su]mull_hi_lane[q] builtin generator macros.
	* config/aarch64/aarch64-simd.md
	(aarch64_<su>mull_hi_lane<mode>_insn): Define.
	(aarch64_<su>mull_hi_lane<mode>): Define.
	(aarch64_<su>mull_hi_laneq<mode>_insn): Define.
	(aarch64_<su>mull_hi_laneq<mode>): Define.
	* config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL
	builtin instead of inline asm.
	(vmull_high_lane_s32): Likewise.
	(vmull_high_lane_u16): Likewise.
	(vmull_high_lane_u32): Likewise.
	(vmull_high_laneq_s16): Likewise.
	(vmull_high_laneq_s32): Likewise.
	(vmull_high_laneq_u16): Likewise.
	(vmull_high_laneq_u32): Liekwise.

2021-02-04  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md
	(aarch64_<su>mull_hi_n<mode>_insn): Define.
	(aarch64_<su>mull_hi_n<mode>): Define.
	* config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin
	instead of inline asm.
	(vmull_high_n_s32): Likewise.
	(vmull_high_n_u16): Likewise.
	(vmull_high_n_u32): Likewise.

2021-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98855
	* tree-vect-loop.c (vectorizable_phi): Do not cost
	single-argument PHIs.
	* tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise.
	* tree-vect-stmts.c (vectorizable_bswap): Also perform
	costing for SLP operation.

2021-02-04  Martin Liska  <mliska@suse.cz>

	* doc/extend.texi: Mention -mprefer-vector-width in target
	attributes.

2021-02-03  Martin Sebor  <msebor@redhat.com>

	PR tree-optimization/98937
	* tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define.
	Flush pointer_query cache.

2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_2logical): Add missing
	fixes based on patch review.
	* config/rs6000/fusion.md: Regenerate file.

2021-02-03  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/t-rs6000: Comment out auto generation of
	fusion.md for now.

2021-02-03  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908.
	* config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908.
	(output_file_start): Add gfx908.
	* config/gcn/gcn.opt (gpu_type): Add gfx908.
	* config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908.
	(MULTILIB_DIRNAMES): Add gfx908.
	* config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define.
	(main): Recognize gfx908.
	* config/gcn/t-omp-device: Add gfx908.

2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	[su]mlsl_hi_lane[q] builtin macro generators.
	* config/aarch64/aarch64-simd.md
	(aarch64_<su>mlsl_hi_lane<mode>_insn): Define.
	(aarch64_<su>mlsl_hi_lane<mode>): Define.
	(aarch64_<su>mlsl_hi_laneq<mode>_insn): Define.
	(aarch64_<su>mlsl_hi_laneq<mode>): Define.
	* config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL
	builtin instead of inline asm.
	(vmlsl_high_lane_s32): Likewise.
	(vmlsl_high_lane_u16): Likewise.
	(vmlsl_high_lane_u32): Likewise.
	(vmlsl_high_laneq_s16): Likewise.
	(vmlsl_high_laneq_s32): Likewise.
	(vmlsl_high_laneq_u16): Likewise.
	(vmlsl_high_laneq_u32): Likewise.
	(vmlal_high_laneq_u32): Likewise.

2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add
	[su]mlal_hi_lane[q] builtin generator macros.
	* config/aarch64/aarch64-simd.md
	(aarch64_<su>mlal_hi_lane<mode>_insn): Define.
	(aarch64_<su>mlal_hi_lane<mode>): Define.
	(aarch64_<su>mlal_hi_laneq<mode>_insn): Define.
	(aarch64_<su>mlal_hi_laneq<mode>): Define.
	* config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL
	builtin instead of inline asm.
	(vmlal_high_lane_s32): Likewise.
	(vmlal_high_lane_u16): Likewise.
	(vmlal_high_lane_u32): Likewise.
	(vmlal_high_laneq_s16): Likewise.
	(vmlal_high_laneq_s32): Likewise.
	(vmlal_high_laneq_u16): Likewise.
	(vmlal_high_laneq_u32): Likewise.

2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn):
	Define.
	(aarch64_<su>mlsl_hi_n<mode>): Define.
	* config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin
	instead of inline asm.
	(vmlsl_high_n_s32): Likewise.
	(vmlsl_high_n_u16): Likewise.
	(vmlsl_high_n_u32): Likewise.

2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn):
	Define.
	(aarch64_<su>mlal_hi_n<mode>): Define.
	* config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin
	instead of inline asm.
	(vmlal_high_n_s32): Likewise.
	(vmlal_high_n_u16): Likewise.
	(vmlal_high_n_u32): Likewise.

2021-02-03  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add RTL builtin
	generator macros.
	* config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>):
	Rename to...
	(aarch64_<su>mlal_hi<mode>_insn): This.
	(aarch64_<su>mlal_hi<mode>): Define.
	* config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin
	instead of inline asm.
	(vmlal_high_s16): Likewise.
	(vmlal_high_s32): Likewise.
	(vmlal_high_u8): Likewise.
	(vmlal_high_u16): Likewise.
	(vmlal_high_u32): Likewise.

2021-02-03  Ilya Leoshkevich  <iii@linux.ibm.com>

	* lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data()
	after calling alter_subreg() on a (mem).

2021-02-03  Martin Liska  <mliska@suse.cz>

	PR lto/98912
	* lto-streamer-out.c (produce_lto_section): Fill up missing
	padding.
	* lto-streamer.h (struct lto_section): Add _padding field.

2021-02-03  Richard Biener  <rguenther@suse.de>

	* lto-streamer.c (lto_get_section_name): Free temporary
	buffer.
	* tree-loop-distribution.c
	(loop_distribution::merge_dep_scc_partitions): Free edge data.

2021-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97487
	* ifcvt.c (noce_can_force_operand): New function.
	(noce_emit_move_insn): Use it.
	(noce_try_sign_mask): Likewise.  Formatting fix.

2021-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/97971
	* lra-constraints.c (process_alt_operands): For inline asm, don't call
	fatal_insn, but instead return false.

2021-02-03  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98287
	* config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander
	for V1DImode.

2021-02-03  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/98928
	* tree-vect-loop.c (vect_analyze_loop_2): Change
	STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN.
	* tree-vect-slp-patterns.c (complex_pattern::build): Likewise.
	* tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New.
	(class _stmt_vec_info): Add slp_vect_pattern_only_p.

2021-02-02  Richard Biener  <rguenther@suse.de>

	* gimple-loop-interchange.cc (prepare_data_references):
	Release vectors.
	* gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise.
	* tree-ssa-loop-im.c (hoist_memory_references): Likewise.
	* tree-vect-stmts.c (vectorizable_condition): Do not
	allocate vectors.
	(vectorizable_comparison): Likewise.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin.
	* config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern.
	* config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin.
	(vrsqrteq_u32): Likewise.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin.
	* config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define.
	(aarch64_sqxtun2<mode>_be): Likewise.
	(aarch64_sqxtun2<mode>): Likewise.
	* config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin.
	(vqmovun_high_s32): Likewise.
	(vqmovun_high_s64): Likewise.
	* config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use
	AUTO_FP flags.
	(bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90,
	fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
	fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi,
	ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low,
	fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low,
	fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high,
	fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high,
	fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define.
	* config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r,
	ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2,
	uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags.

2021-02-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount,
	vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_,
	vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_,
	ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq,
	udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr,
	ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n,
	ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n,
	ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use
	NONE builtin flags.

2021-02-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98848
	* tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if
	STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def.

2021-02-02  Kito Cheng  <kito.cheng@sifive.com>

	PR target/98743
	* expr.c: Check mode before calling store_expr.

2021-02-02  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U.
	(VORNQ): Remove.
	* config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn
	instruction using expression ior.
	(mve_vornq_u<mode>): New expander.
	(mve_vornq_f<mode>): Use ior code instead of unspec.
	* config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove.

2021-02-02  Alexandre Oliva  <oliva@adacore.com>

	* tree-nested.c (convert_nonlocal_reference_op): Move
	current_function_decl restore after re-gimplification.
	(convert_local_reference_op): Likewise.

2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2):
	Define builtins.
	* config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le):
	Define.
	(aarch64_rshrn<mode>_insn_be): Likewise.
	(aarch64_rshrn<mode>): Likewise.
	(aarch64_rshrn2<mode>_insn_le): Likewise.
	(aarch64_rshrn2<mode>_insn_be): Likewise.
	(aarch64_rshrn2<mode>): Likewise.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN.
	* config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement
	using builtin.
	(vrshrn_high_n_s32): Likewise.
	(vrshrn_high_n_s64): Likewise.
	(vrshrn_high_n_u16): Likewise.
	(vrshrn_high_n_u32): Likewise.
	(vrshrn_high_n_u64): Likewise.
	(vrshrn_n_s16): Likewise.
	(vrshrn_n_s32): Likewise.
	(vrshrn_n_s64): Likewise.
	(vrshrn_n_u16): Likewise.
	(vrshrn_n_u32): Likewise.
	(vrshrn_n_u64): Likewise.

2021-02-01  Sergei Trofimovich  <siarheit@google.com>

	PR tree-optimization/98499
	* ipa-modref.c (analyze_ssa_name_flags): treat RVO
	conservatively and assume all possible side-effects.

2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi,
	vec_unpacku_hi_): Define builtins.
	* config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using
	builtin.
	(vmovl_high_s16): Likewise.
	(vmovl_high_s32): Likewise.
	(vmovl_high_u8): Likewise.
	(vmovl_high_u16): Likewise.
	(vmovl_high_u32): Likewise.

2021-02-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl):
	Define builtins.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New
	pattern.
	* config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL,
	UNSPEC_UABDL.
	* config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using
	builtin.
	(vabdl_s16): Likewise.
	(vabdl_s32): Likewise.
	(vabdl_u8): Likewise.
	(vabdl_u16): Likewise.
	(vabdl_u32): Likewise.
	* config/aarch64/iterators.md (ABDL): New int iterator.
	(sur): Handle UNSPEC_SABDL, UNSPEC_UABDL.

2021-02-01  Martin Sebor  <msebor@redhat.com>

	* tree.h (BLOCK_VARS): Add comment.
	(BLOCK_SUBBLOCKS): Same.
	(BLOCK_SUPERCONTEXT): Same.
	(BLOCK_ABSTRACT_ORIGIN): Same.
	(inlined_function_outer_scope_p): Same.

2021-02-01  Martin Sebor  <msebor@redhat.com>

	PR middle-end/97172
	* attribs.c (attr_access::free_lang_data): Define new function.
	* attribs.h (attr_access::free_lang_data): Declare new function.

2021-02-01  Richard Biener  <rguenther@suse.de>

	* vec.h (auto_vec::auto_vec): Add memory stat parameters
	and pass them on.
	* bitmap.h (auto_bitmap::auto_bitmap): Likewise.

2021-02-01  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>,
	aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands.

2021-02-01  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/98863
	* config/i386/i386-features.c (convert_scalars_to_vector):
	Set DF_RD_PRUNE_DEAD_DEFS.

2021-01-31  Eric Botcazou  <ebotcazou@adacore.com>

	* system.h (SIZE_MAX): Define if not already defined.

2021-01-30  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl (gen_2logical): New function to
	generate patterns for logical-logical fusion.
	* config/rs6000/fusion.md: Regenerated patterns.
	* config/rs6000/rs6000-cpus.def: Add
	OPTION_MASK_P10_FUSION_2LOGICAL.
	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Enable logical-logical fusion for p10.
	* config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical.

2021-01-30  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.opt: Add periods to new AIX options.

2021-01-30  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/rs6000.opt (mabi=vec-extabi): New.
	(mabi=vec-default): New.
	* config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define
	__EXTABI__ for AIX Vector extended ABI.
	* config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector
	extabi info.
	(conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31
	are non-volatile.
	* doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default.

2021-01-30  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386-features.c (remove_partial_avx_dependency): Clear
	DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans.

2021-01-29  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/97701
	* lra-constraints.c (in_class_p): Don't narrow class only for REG
	or MEM.

2021-01-29  Will Schmidt  <will_schmidt@vnet.ibm.com>

	* config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add
	clauses for CODE_FOR_vsx_xvcvuxddp_scale and
	CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code.

2021-01-29  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/98866
	* gimple-range-gori.h (gori_compute:set_range_invariant): New.
	* gimple-range-gori.cc (gori_map::set_range_invariant): New.
	(gori_map::m_maybe_invariant): Rename from all_outgoing.
	(gori_map::gori_map): Rename all_outgoing to m_maybe_invariant.
	(gori_map::is_export_p): Ditto.
	(gori_map::calculate_gori): Ditto.
	(gori_compute::set_range_invariant): New.
	* gimple-range.cc (gimple_ranger::range_of_stmt): Set range
	invariant for pointers evaluating to [1, +INF].

2021-01-29  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/98863
	* config/i386/i386-features.c (remove_partial_avx_dependency):
	Do not perform DF analysis.
	(pass_data_remove_partial_avx_dependency): Remove
	TODO_df_finish.

2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>):
	Define.
	* config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin
	instead of inline asm.
	(vmull_n_s32): Likewise.
	(vmull_n_u16): Likewise.
	(vmull_n_u32): Likewise.

2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2):
	Define builtins.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3):
	Rename to...
	(aarch64_<sur>abdl2<mode>): ... This.
	(<sur>sadv16qi): Adjust use of above.
	* config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using
	builtin.
	(vabdl_high_s16): Likewise.
	(vabdl_high_s32): Likewise.
	(vabdl_high_u8): Likewise.
	(vabdl_high_u16): Likewise.
	(vabdl_high_u32): Likewise.

2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sabal2): Define
	builtin.
	(uabal2): Likewise.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New
	pattern.
	* config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and
	UNSPEC_UABAL2.
	* config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using
	builtin.
	(vabal_high_s16): Likewise.
	(vabal_high_s32): Likewise.
	(vabal_high_u8): Likewise.
	(vabal_high_u16): Likewise.
	(vabal_high_u32): Likewise.
	* config/aarch64/iterators.md (ABAL2): New mode iterator.
	(sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2.

2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sabal): Define
	builtin.
	(uabal): Likewise.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4):
	Rename to...
	(aarch64_<sur>abal<mode>): ... This
	(<sur>sadv16qi): Adust use of the above.
	* config/aarch64/arm_neon.h (vabal_s8): Reimplement using
	builtin.
	(vabal_s16): Likewise.
	(vabal_s32): Likewise.
	(vabal_u8): Likewise.
	(vabal_u16): Likewise.
	(vabal_u32): Likewise.

2021-01-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv):
	Define builtins.
	* config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>):
	Define.
	* config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using
	builtin.
	(vaddlv_s16): Likewise.
	(vaddlv_u8): Likewise.
	(vaddlv_u16): Likewise.
	(vaddlvq_s8): Likewise.
	(vaddlvq_s16): Likewise.
	(vaddlvq_s32): Likewise.
	(vaddlvq_u8): Likewise.
	(vaddlvq_u16): Likewise.
	(vaddlvq_u32): Likewise.
	(vaddlv_s32): Likewise.
	(vaddlv_u32): Likewise.
	* config/aarch64/iterators.md (VDQV_L): New mode iterator.
	(unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV.
	(Vwstype): New mode attribute.
	(Vwsuf): Likewise.
	(VWIDE_S): Likewise.
	(USADDLV): New int iterator.
	(su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV.

2021-01-29  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q]
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>):
	Define.
	* config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin
	instead of inline asm.
	(vmlsl_lane_s32): Likewise.
	(vmlsl_lane_u16): Likewise.
	(vmlsl_lane_u32): Likewise.
	(vmlsl_laneq_s16): Likewise.
	(vmlsl_laneq_s32): Likewise.
	(vmlsl_laneq_u16): Likewise.
	(vmlsl_laneq_u32): Likewise.

2021-01-29  Richard Biener  <rguenther@suse.de>

	* doc/invoke.texi (--param max-gcse-memory): Document unit
	of size.
	* gcse.c (gcse_or_cprop_is_too_expensive): Adjust.
	* params.opt (--param max-gcse-memory): Adjust default and
	document unit of size.

2021-01-29  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/98863
	* gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned
	HOST_WIDE_INT for the memory estimate.

2021-01-29  Bin Cheng  <bin.cheng@linux.alibaba.com>
	    Richard Biener  <rguenther@suse.de>

	PR tree-optimization/97627
	* tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions):
	Do not analyze fake edges.

2021-01-29  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/98144
	* df.h (df_mir_bb_info): Add con_visited member.
	* df-problems.c (df_mir_alloc): Initialize con_visited,
	do not fully populate IN and OUT.
	(df_mir_reset): Likewise.
	(df_mir_confluence_0): Set con_visited.
	(df_mir_confluence_n): Properly handle implicitely
	fully populated IN and OUT as designated by con_visited
	and update con_visited accordingly.

2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR target/98849
	* config/arm/vec-common.md (mve_vshlq_<supf><mode>,
	vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add
	&& !TARGET_REALLY_IWMMXT to conditions.

2021-01-29  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98331
	* cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing
	a BARRIER.

2021-01-28  Marek Polacek  <polacek@redhat.com>

	PR c++/94775
	* stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in
	the main variant, maybe reset it in its variants too.
	* tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match.
	(check_aligned_type): Check if TYPE_USER_ALIGN match.

2021-01-28  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/98730
	* config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector
	of constant zero for comparisons.

2021-01-28  Michael Meissner  <meissner@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add
	support for mapping built-in function names for long double
	built-in functions if long double is IEEE 128-bit.

2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>):
	Define.
	* config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin
	instead of inline asm.
	(vmlsl_n_s32): Likewise.
	(vmlsl_n_u16): Likewise.
	(vmlsl_n_u32): Likewise.

2021-01-28  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>):
	Define.
	* config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin
	instead of inline asm.
	(vmlal_n_s32): Likewise.
	(vmlal_n_u16): Likewise.
	(vmlal_n_u32): Likewise.

2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (shrn2): Define
	builtin.
	* config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le):
	Define.
	(aarch64_shrn2<mode>_insn_be): Likewise.
	(aarch64_shrn2<mode>): Likewise.
	* config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement
	using builtins.
	(vshrn_high_n_s32): Likewise.
	(vshrn_high_n_s64): Likewise.
	(vshrn_high_n_u16): Likewise.
	(vshrn_high_n_u32): Likewise.
	(vshrn_high_n_u64): Likewise.

2021-01-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (shrn): Define
	builtin.
	* config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le):
	Define.
	(aarch64_shrn<mode>_insn_be): Likewise.
	(aarch64_shrn<mode>): Likewise.
	* config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using
	builtins.
	(vshrn_n_s32): Likewise.
	(vshrn_n_s64): Likewise.
	(vshrn_n_u16): Likewise.
	(vshrn_n_u32): Likewise.
	(vshrn_n_u64): Likewise.
	* config/aarch64/iterators.md (vn_mode): New mode attribute.

2021-01-28  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/80960
	* dse.c (check_mem_read_rtx): Call get_addr on the
	offsetted address.

2021-01-28  Xionghu Luo  <luoxhu@linux.ibm.com>
	    David Edelsohn  <dje.gcc@gmail.com>

	PR target/98799
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT
	when -m32.
	* config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
	Delete.
	* config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the
	wrapper call rs6000_expand_vector_set_var for cleanup.  Call
	rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8
	directly.
	(rs6000_expand_vector_set_var): Delete.
	(rs6000_expand_vector_set_var_p9): Make static.
	(rs6000_expand_vector_set_var_p8): Make static.

2021-01-28  Xing GUO  <higuoxing@gmail.com>

	* common/config/riscv/riscv-common.c
	(riscv_subset_list::parsing_subset_version): Fix -march option parsing
	when `p` extension exists.

2021-01-27  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/97684
	* ira.c (ira): Call ira_set_pseudo_classes before
	update_equiv_regs when it is necessary.

2021-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR target/98853
	* config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use
	%w0, %w1 and %2 instead of %0, %1 and %2.

2021-01-27  Aaron Sawdey  <acsawdey@linux.ibm.com>

	* config/rs6000/genfusion.pl: New script to generate
	define_insn_and_split patterns so combine can arrange fused
	instructions next to each other.
	* config/rs6000/fusion.md: New file, generated fused instruction
	patterns for combine.
	* config/rs6000/predicates.md (const_m1_to_1_operand): New predicate.
	(non_update_memory_operand): New predicate.
	* config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and
	OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and
	POWERPC_MASKS.
	* config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add
	prototype.
	* config/rs6000/rs6000.c (rs6000_option_override_internal):
	Automatically set OPTION_MASK_P10_FUSION and
	OPTION_MASK_P10_FUSION_LD_CMPI if target is power10.
	(rs600_opt_masks): Allow -mpower10-fusion
	in function attributes.
	(address_is_non_pfx_d_or_x): New function.
	* config/rs6000/rs6000.h: Add MASK_P10_FUSION.
	* config/rs6000/rs6000.md: Include fusion.md.
	* config/rs6000/rs6000.opt: Add -mpower10-fusion
	and -mpower10-fusion-ld-cmpi.
	* config/rs6000/t-rs6000: Add dependencies involving fusion.md.

2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add [su]mlal
	builtin generator macros.
	* config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>):
	Rename to...
	(aarch64_<su>mlal<mode>): This.
	* config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin
	instead of inline asm.
	(vmlal_s16): Likewise.
	(vmlal_s32): Likewise.
	(vmlal_u8): Likewise.
	(vmlal_u16): Likewise.
	(vmlal_u32): Likewise.

2021-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98854
	* tree-vect-slp.c (vect_build_slp_tree_2): Also build
	PHIs from scalars when the number of CTORs matches the
	number of children.

2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin
	generator macro.
	* config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>):
	Rename to...
	(aarch64_mls_n<mode>): This.
	* config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin
	instead of asm.
	(vmls_n_s32): Likewise.
	(vmls_n_u16): Likewise.
	(vmls_n_u32): Likewise.
	(vmlsq_n_s16): Likewise.
	(vmlsq_n_s32): Likewise.
	(vmlsq_n_u16): Likewise.
	(vmlsq_n_u32): Likewise.

2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add mls builtin
	generator macro.
	* config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather
	than asm.
	(vmls_s16): Likewise.
	(vmls_s32): Likewise.
	(vmls_u8): Likewise.
	(vmls_u16): Likewise.
	(vmls_u32): Likewise.
	(vmlsq_s8): Likewise.
	(vmlsq_s16): Likewise.
	(vmlsq_s32): Likewise.
	(vmlsq_u8): Likewise.
	(vmlsq_u16): Likewise.
	(vmlsq_u32): Likewise.

2021-01-27  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin
	generator macro.
	* config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>):
	Rename to...
	(aarch64_mla_n<mode>): This.
	* config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin
	instead of asm.
	(vmla_n_s32): Likewise.
	(vmla_n_u16): Likewise.
	(vmla_n_u32): Likewise.
	(vmlaq_n_s16): Likewise.
	(vmlaq_n_s32): Likewise.
	(vmlaq_n_u16): Likewise.
	(vmlaq_n_u32): Likewise.

2021-01-27  liuhongt  <hongtao.liu@intel.com>

	PR target/98833
	* config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition.
	(*sse2_eq<mode>3): Ditto.

2021-01-27  Jakub Jelinek  <jakub@redhat.com>

	* tree-pass.h (PROP_trees): Rename to ...
	(PROP_gimple): ... this.
	* cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple.
	* passes.c (execute_function_dump, execute_function_todo,
	execute_one_ipa_transform_pass, execute_one_pass): Likewise.
	* varpool.c (ctor_for_folding): Likewise.

2021-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/97260
	* varpool.c: Include tree-pass.h.
	(ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY
	non-TREE_SIDE_EFFECTS automatic variables.

2021-01-26  Paul Fee  <paul.f.fee@gmail.com>

	* doc/cpp.texi (__cplusplus): Document value for -std=c++23
	or -std=gnu++23.
	* doc/invoke.texi: Document -std=c++23 and -std=gnu++23.
	* dwarf2out.c (highest_c_language): Recognise C++20 and C++23.
	(gen_compile_unit_die): Recognise C++23.

2021-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/98839
	* dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int
	in comparison.

2021-01-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/98681
	* config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p):
	Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt)
	and INTVAL (mask).  Add && INTVAL (mask) > 0 condition.

2021-01-26  Richard Biener  <rguenther@suse.de>

	* gimple-pretty-print.c (dump_binary_rhs): Handle
	VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR.

2021-01-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/98726
	* tree.h (vector_cst_int_elt): Remove.
	* tree.c (vector_cst_int_elt): Use poly_wide_int for computations,
	make static.

2021-01-26  Andrew Stubbs  <ams@codesourcery.com>

	* config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions
	for V64DFmode min/max reductions.

2021-01-26  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2asm.c (dw2_assemble_integer): Handle size twice as large
	as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as
	two halves, one with x and the other with const0_rtx, ordered
	depending on endianity.

2021-01-26  Alexandre Oliva  <oliva@adacore.com>

	* gimplify.c (gimplify_decl_expr): Skip asan marking calls for
	temporaries not seen in binding block, and not about to be
	added as gimple variables.

2021-01-25  Martin Sebor  <msebor@redhat.com>

	PR c++/98646
	* tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text.

2021-01-25  Martin Liska  <mliska@suse.cz>

	* value-prof.c (get_nth_most_common_value): Use %s instead
	of %qs string.

2021-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98811
	* configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if
	readelf -wi is able to read the emitted .debug_info back.
	* configure: Regenerated.

2021-01-25  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/98739
	* common.opt: Add missing sign symbol.
	* value-prof.c (get_nth_most_common_value): Restore handling
	of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and
	PROFILE_REPRODUCIBILITY_MULTITHREADED.

2021-01-25  Richard Biener  <rguenther@suse.de>

	PR middle-end/98807
	* tree.c (vector_element_bits): Always use precision of
	the element type for boolean vectors.

2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds.
	(ENDFILE_SPEC): Evaluate qnolinkcmds.

2021-01-25  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/rtems.h (STARTFILE_SPEC): Remove nostdlib and
	nostartfiles handling since this is already done by
	LINK_COMMAND_SPEC.  Evaluate qnolinkcmds.
	(ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this
	is already done by LINK_COMMAND_SPEC.
	(LIB_SPECS): Remove nostdlib and nodefaultlibs handling since
	this is already done by LINK_COMMAND_SPEC.  Remove qnolinkcmds
	evaluation.

2021-01-25  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/98771
	* fold-const-call.c (host_size_t_cst_p): Renamed to ...
	(size_t_cst_p): ... this.  Check and store unsigned HOST_WIDE_INT
	value rather than host size_t.
	(fold_const_call): Change type of s2 from size_t to
	unsigned HOST_WIDE_INT.  Use size_t_cst_p instead of
	host_size_t_cst_p.  For strncmp calls, pass MIN (s2, SIZE_MAX)
	instead of s2 as last argument.

2021-01-25  Tamar Christina  <tamar.christina@arm.com>

	* config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1,
	VCMLA_OP, VCMUL_OP): New.
	* config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0.
	* config/arm/neon.md (cmul<conj_op><mode>3): New.
	* config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ,
	UNSPEC_VCMUL_CONJ): New.
	* config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>,
	cml<fcmac1><conj_op><mode>4): New.

2021-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/97301
	* config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute.

2021-01-22  Jonathan Wright  <jonathan.wright@arm.com>

	* config/aarch64/aarch64-simd-builtins.def: Add mla builtin
	generator macro.
	* config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather
	than asm.
	(vmla_s16): Likewise.
	(vmla_s32): Likewise.
	(vmla_u8): Likewise.
	(vmla_u16): Likewise.
	(vmla_u32): Likewise.
	(vmlaq_s8): Likewise.
	(vmlaq_s16): Likewise.
	(vmlaq_s32): Likewise.
	(vmlaq_u8): Likewise.
	(vmlaq_u16): Likewise.
	(vmlaq_u32): Likewise.

2021-01-22  David Malcolm  <dmalcolm@redhat.com>

	* doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex
	directive.

2021-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98796
	* dwarf2out.c (output_file_names): For -gdwarf-5, if there are no
	filenames to emit, still emit the required 0 index directory and
	filename entries that match DW_AT_comp_dir and DW_AT_name of the
	compilation unit.

2021-01-22  Marek Polacek  <polacek@redhat.com>

	PR c++/98545
	* doc/invoke.texi: Update C++ ABI Version 15 description.

2021-01-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	PR tree-optimization/98766
	* tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when
	comparing against type size with param_avoid_fma_max_bits.

2021-01-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/98793
	* tree.c (vector_element_bits): Key single-bit bool vector on
	integer mode rather than not vector mode.

2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>

	PR target/98093
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later
	platforms.
	* config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update
	to call different path for P8 and P9.
	(rs6000_expand_vector_set_var_p9): New function.
	(rs6000_expand_vector_set_var_p8): New function.

2021-01-22  Xionghu Luo  <luoxhu@linux.ibm.com>

	PR target/79251
	PR target/98065
	* config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
	Ajdust variable index vec_insert from address dereference to
	ARRAY_REF(VIEW_CONVERT_EXPR) tree expression.
	* config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var):
	New declaration.
	* config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function.

2021-01-22  Martin Liska  <mliska@suse.cz>

	PR gcov-profile/98739
	* profile.c (compute_value_histograms): Drop time profile for
	-fprofile-reproducible=multithreaded.

2021-01-22  Nathan Sidwell  <nathan@acm.org>

	* gcc.c (process_command): Don't check OPT_SPECIAL_input_file
	existence here.

2021-01-22  Richard Biener  <rguenther@suse.de>

	PR middle-end/98773
	* tree-data-ref.c (initalize_matrix_A): Revert previous
	change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT.

2021-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/90248
	* match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X),
	X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove
	simplifications.
	(X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X),
	X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications.

2021-01-22  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98255
	* tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign
	extend index - low_bound from sizetype's precision rather than index
	precision.
	(get_addr_base_and_unit_offset_1): Likewise.
	* tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise.
	* gimple-fold.c (fold_const_aggregate_ref_1): Likewise.

2021-01-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98786
	* tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid
	adding new uses of abnormals.  Verify we deal with a conditional
	conversion.

2021-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/98636
	* optc-save-gen.awk: Add arm_fp16_format to checked_options.

2021-01-22  liuhongt  <hongtao.liu@intel.com>

	PR target/96891
	PR target/98348
	* config/i386/sse.md (VI_128_256): New mode iterator.
	(*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3,
	 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1,
	 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New
	define_insn_and_split to lower avx512 vector comparison to avx
	version when dest is vector.
	(*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3):
	define_insn_and_split for negating the comparison result.
	* config/i386/predicates.md (float_vector_all_ones_operand):
	New predicate.
	* config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
	general NOT operator without UNSPEC_MASKOP.

2021-01-21  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/98777
	* lra-int.h (lra_pmode_pseudo): New extern.
	* lra.c (lra_pmode_pseudo): New global.
	(lra): Set it up.
	* lra-eliminations.c (eliminate_regs_in_insn): Use it.

2021-01-21  Ilya Leoshkevich  <iii@linux.ibm.com>

	* fwprop.c (fwprop_propagation::classify_result): Allow
	(subreg (mem)) simplifications.

2021-01-21  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>):
	Split into...
	(aarch64_sqdmlal<mode>): ... This...
	(aarch64_sqdmlsl<mode>): ... And this.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into...
	(aarch64_sqdmlal_lane<mode>): ... This...
	(aarch64_sqdmlsl_lane<mode>): ... And this.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into...
	(aarch64_sqdmlsl_laneq<mode>): ... This...
	(aarch64_sqdmlal_laneq<mode>):  ... And this.
	(aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into...
	(aarch64_sqdmlsl_n<mode>): ... This...
	(aarch64_sqdmlal_n<mode>): ... And this.
	(aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into...
	(aarch64_sqdmlal2<mode>_internal): ... This...
	(aarch64_sqdmlsl2<mode>_internal): ... And this.

2021-01-21  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type.

2021-01-21  Andrea Corallo  <andrea.corallo@arm.com>

	PR target/96372
	* doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document.

2021-01-21  liuhongt  <hongtao.liu@intel.com>

	PR rtl-optimization/98694
	* regcprop.c (copy_value): If SRC had been assigned a mode
	narrower than the copy, we can't link DEST into the chain even
	they have same hard_regno_nregs(i.e. HImode/SImode in i386
	backend).

2021-01-20  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>):
	Convert to define_insn_and_split.  Split into simple move when moving
	bottom element.

2021-01-20  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert.
	Adjust comment.  Simplify code.

2021-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR debug/98765
	* dwarf2out.c (reset_indirect_string): Also reset indirect strings
	with DW_FORM_line_strp form.
	(prune_unused_types_update_strings): Don't add into debug_str_hash
	indirect strings with DW_FORM_line_strp form.
	(adjust_name_comp_dir): New function.
	(dwarf2out_finish): Call it on CU DIEs after resetting
	debug_line_str_hash.

2021-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/98722
	* lra-eliminations.c (eliminate_regs_in_insn): Check that target
	has no 3-op add insn to transform insns containing two pluses.

2021-01-20  Richard Biener  <rguenther@suse.de>

	* hwint.h (add_hwi): New function.
	(mul_hwi): Likewise.
	* tree-data-ref.c (initialize_matrix_A): Properly translate
	tree constants and avoid HOST_WIDE_INT_MIN.
	(lambda_matrix_row_add): Avoid undefined integer overflow
	and return true on such overflow.
	(lambda_matrix_right_hermite): Handle overflow from
	lambda_matrix_row_add gracefully.  Simplify previous fix.
	(analyze_subscript_affine_affine): Likewise.

2021-01-20  Eugene Rozenfeld  <erozen@microsoft.com>

	PR tree-optimization/96674
	* match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1
	x >= y && y != XXX_MIN --> x > y - 1

2021-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98535
	* tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared.
	If the high and low permutes are the same, remove the high permutes
	from the working set and only continue with the low ones.

2021-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98721
	* builtins.c (access_ref::inform_access): Don't assume
	SSA_NAME_IDENTIFIER must be non-NULL.  Print messages about
	object whenever allocfn is NULL, rather than only when DECL_P
	is true.  Use %qE instead of %qD for that.  Formatting fixes.

2021-01-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98758
	* tree-data-ref.c (int_divides_p): Use lambda_int arguments.
	(lambda_matrix_right_hermite): Avoid undefinedness with
	signed integer abs and multiplication.
	(analyze_subscript_affine_affine): Use lambda_int.

2021-01-20  David Malcolm  <dmalcolm@redhat.com>

	PR debug/98751
	* dwarf2out.c (output_line_info): Rename static variable
	"generation", moving it out of the function to...
	(output_line_info_generation): New.
	(init_sections_and_labels): Likewise, renaming the variable to...
	(init_sections_and_labels_generation): New.
	(dwarf2out_c_finalize): Reset the new variables.

2021-01-19  Martin Sebor  <msebor@redhat.com>

	PR middle-end/98664
	* tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for
	all functions, even if they're not declared artificial or inline.
	* tree.c (tree_inlined_location): Use macro expansion location
	only if scope traversal fails to expose one.

2021-01-19  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/92294
	* alias.c (compare_base_symbol_refs): Take an extra parameter
	and add the distance between two symbols to it.  Enshrine in
	comments that -1 means "either 0 or 1, but we can't tell
	which at compile time".
	(memrefs_conflict_p): Update call accordingly.
	(rtx_equal_for_memref_p): Likewise.  Take the distance between symbols
	into account.

2021-01-19  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl,
	sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn,
	uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane,
	sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n,
	sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq,
	sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane,
	sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq,
	sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq,
	sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n,
	uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah,
	sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq,
	sqmovun): Use NONE flags.

2021-01-19  Richard Biener  <rguenther@suse.de>

	PR ipa/98330
	* ipa-modref.c (analyze_stmt): Only record a summary for a
	direct call.

2021-01-19  Richard Biener  <rguenther@suse.de>

	PR middle-end/98638
	* tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT.

2021-01-19  Daniel Hellstrom  <daniel@gaisler.com>

	* config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add
	built-in define __FIX_LEON3FT_TN0018.

2021-01-19  Richard Biener  <rguenther@suse.de>

	PR ipa/97673
	* tree-inline.c (tree_function_versioning): Set input_location
	to UNKNOWN_LOCATION throughout the function.

2021-01-19  Tobias Burnus  <tobias@codesourcery.com>

	PR fortran/98476
	* omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr.

2021-01-19  Martin Jambor  <mjambor@suse.cz>

	PR ipa/98690
	* ipa-sra.c (ssa_name_only_returned_p): New parameter fun.  Check
	whether non-call exceptions allow removal of a statement.
	(isra_analyze_call): Pass the appropriate function to
	ssa_name_only_returned_p.

2021-01-19  Geng Qi  <gengqi@linux.alibaba.com>

	* config/riscv/arch-canonicalize (longext_sort): New function for
	 sorting 'multi-letter'.
	* config/riscv/multilib-generator: Adjusting the loop of 'alt' in
	'alts'.	The 'arch' may not be the first of 'alts'.
	(_expand_combination): Add underline for the 'ext' without '*'.
	This is because, a single-letter extension can always be treated well
	with a '_' prefix, but it cannot be separated out if it is appended
	to a multi-letter.

2021-01-18  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/97847
	* ira.c (ira): Skip abnormal critical edge splitting.

2021-01-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98727
	* tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of
	second .MUL_OVERFLOW operand for signed multiplication with overflow
	checking if the second operand of multiplication is not constant.

2021-01-18  David Edelsohn  <dje.gcc@gmail.com>

	* doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX
	defaults to version 4.

2021-01-18  David Malcolm  <dmalcolm@redhat.com>

	* attribs.h (fndecl_dealloc_argno): New decl.
	* builtins.c (call_dealloc_argno): Split out second half of
	function into...
	(fndecl_dealloc_argno): New.
	* doc/extend.texi (Common Function Attributes): Document the
	interaction between the analyzer and the malloc attribute.
	* doc/invoke.texi (Static Analyzer Options): Likewise.

2021-01-17  David Edelsohn  <dje.gcc@gmail.com>

	* config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override
	dwarf_version to 4.
	* config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same.

2021-01-17  Martin Jambor  <mjambor@suse.cz>

	PR ipa/98222
	* cgraph.c (clone_of_p): Check also former_clone_of as we climb
	the clone tree.

2021-01-17  Mark Wielaard  <mark@klomp.org>

	* common.opt (gdwarf-): Init(5).
	* doc/invoke.texi (-gdwarf): Document default to 5.

2021-01-16  Kwok Cheung Yeung  <kcy@codesourcery.com>

	* builtin-types.def
	(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename
	to...
	(BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR):
	...this.  Add extra argument.
	* gimplify.c (omp_default_clause): Ensure that event handle is
	firstprivate in a task region.
	(gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH.
	(gimplify_adjust_omp_clauses): Likewise.
	* omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to
	BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR.
	* omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags
	if detach clause specified.  Add detach argument when generating
	call to	GOMP_task.
	* omp-low.c (scan_sharing_clauses): Setup data environment for detach
	clause.
	(finish_taskreg_scan): Move field for variable containing the event
	handle to the front of the struct.
	* tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH.  Fix
	ordering.
	* tree-nested.c (convert_nonlocal_omp_clauses): Handle
	OMP_CLAUSE_DETACH clause.
	(convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause.
	* tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH.
	* tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH.
	Fix ordering.
	(omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH.  Fix
	ordering.
	(walk_tree_1): Handle OMP_CLAUSE_DETACH.

2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/nios2/t-rtems: Reset all MULTILIB_* variables.  Shorten
	multilib directory names.  Use MULTILIB_REQUIRED instead of
	MULTILIB_EXCEPTIONS.  Add -mhw-mul -mhw-mulx -mhw-div
	-mcustom-fpu-cfg=fph2 multilib.

2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value.
	(nios2_init_fpu_configs): Provide register values for new
	-mcustom-fpu-cfg=fph2 option variant.
	* doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option
	variant.

2021-01-16  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/nios2/nios2.c (nios2_custom_check_insns): Remove
	custom instruction warnings.

2021-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96669
	* match.pd ((CST << x) & 1 -> x == 0): New simplification.

2021-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96271
	* passes.def: Pass false argument to first two pass_cd_dce
	instances and true to last instance.  Add comment that
	last instance rewrites no longer addressed locals.
	* tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and
	initialize it.
	(pass_cd_dce::set_pass_param): New method.
	(pass_cd_dce::execute): Return TODO_update_address_taken from
	last cd_dce instance.

2021-01-15  Carl Love  <cel@us.ibm.com>

	* config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod):
	New defines.
	* config/rs6000/altivec.md (VIlong): Move define to file vsx.md.
	* config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI,
	DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI,
	DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI,
	MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI):
	Add builtin define.
	(MULH, DIVE, MOD):  Add new BU_P10_OVERLOAD_2 definitions.
	* config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV,
	VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH):
	New overloaded definitions.
	(builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI,
	P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI,
	P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI,
	P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI,
	P10V_BUILTIN_MULHU_V4SI]: Add case
	statement for builtins.
	* config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI.
	* config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md.
	(UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions.
	(vsx_mul_v2di): Add if TARGET_POWER10 statement.
	(vsx_udiv_v2di): Add if TARGET_POWER10 statement.
	(dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3,
	mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3):
	Add define_insn, mode is VIlong.
	* doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod):
	Add builtin descriptions.

2021-01-15  Eric Botcazou  <ebotcazou@adacore.com>

	* final.c (final_start_function_1): Reset force_source_line.

2021-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96669
	* match.pd (((1 << A) & 1) != 0 -> A == 0,
	((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by
	possibly different power of two constants and to right shift too.

2021-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96681
	* match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification.
	((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise.
	((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise.
	((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise.

2021-01-15  Alexandre Oliva  <oliva@adacore.com>

	* opts.c (gen_command_line_string): Exclude -dumpbase-ext.

2021-01-15  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4,
	cmul<conj_op><mode>3): New.
	* config/aarch64/iterators.md (UNSPEC_FCMUL,
	UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ,
	UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180,
	FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1,
	sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New.
	(rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180.
	(rot_op): Renamed to conj_op.
	* config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4,
	cmul<conj_op><mode>3): New.
	* config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4,
	cmul<conj_op><mode>3): New.

2021-01-15  David Malcolm  <dmalcolm@redhat.com>

	PR bootstrap/98696
	* diagnostic.c
	(selftest::test_print_parseable_fixits_bytes_vs_display_columns):
	Escape the tempfile name when constructing the expected output.

2021-01-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>):
	Rename to...
	(aarch64_<su>mlsl_hi<mode>): ... This.
	(aarch64_<su>mlsl_hi<mode>): Define.
	(*aarch64_<su>mlsl<mode): Rename to...
	(aarch64_<su>mlsl<mode): ... This.
	* config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl,
	smlsl_hi, umlsl_hi): Define builtins.
	* config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16,
	vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32,
	vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8,
	vmlsl_u16, vmlsl_u32): Reimplement with builtins.

2021-01-15  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-c.c (ix86_target_macros):
	Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition.

2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/88836
	* config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs.
	* Makefile.in (RTL_SSA_H): New variable.
	* config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule.
	* config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare.
	* config/aarch64/aarch64-passes.def: Add pass_cc_fusion after
	pass_combine.
	* config/aarch64/aarch64-cc-fusion.cc: New file.

2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	* recog.h (insn_change_watermark::~insn_change_watermark): Avoid
	calling cancel_changes for changes that no longer exist.

2021-01-15  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl-ssa/functions.h (function_info::ref_defs): Rename to...
	(function_info::reg_defs): ...this.
	* rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to...
	(function_info::reg_defs): ...this.

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/71233
	* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	Revert:
	2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/71233
	* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.

2021-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/96376
	* tree-vect-stmts.c (get_load_store_type): Disregard alignment
	for VMAT_INVARIANT.

2021-01-15  Martin Liska  <mliska@suse.cz>

	* doc/install.texi: Document that some tests need pytest module.
	* doc/sourcebuild.texi: Likewise.

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/71233
	* config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New.

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry.
	(mve_vshrq_n_u<mode>_imm): Likewise.
	* config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ...
	* config/arm/vec-common.md: ... here.

2021-01-15  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/mve.md (mve_vshlq_<supf><mode>): Move to
	vec-commond.md.
	* config/arm/neon.md (vashl<mode>3): Delete.
	* config/arm/vec-common.md (mve_vshlq_<supf><mode>): New.
	(vasl<mode>3): New expander.

2021-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98685
	* tree-vect-slp.c (vect_schedule_slp_node): Refactor handling
	of vector extern defs.

2021-01-14  David Malcolm  <dmalcolm@redhat.com>

	PR jit/98586
	* diagnostic.c (diagnostic_kind_text): Break out this array
	from...
	(diagnostic_build_prefix): ...here.
	(fancy_abort): Detect when diagnostic_initialize has not yet been
	called and fall back to a minimal implementation of printing the
	ICE, rather than segfaulting in internal_error.

2021-01-14  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.c (diagnostic_initialize): Eliminate
	parseable_fixits_p in favor of initializing extra_output_kind from
	GCC_EXTRA_DIAGNOSTIC_OUTPUT.
	(convert_column_unit): New function, split out from...
	(diagnostic_converted_column): ...this.
	(print_parseable_fixits): Add "column_unit" and "tabstop" params.
	Use them to call convert_column_unit on the column values.
	(diagnostic_report_diagnostic): Eliminate conditional on
	parseable_fixits_p in favor of a switch statement on
	extra_output_kind, passing the appropriate values to the new
	params of print_parseable_fixits.
	(selftest::test_print_parseable_fixits_none): Update for new
	params of print_parseable_fixits.
	(selftest::test_print_parseable_fixits_insert): Likewise.
	(selftest::test_print_parseable_fixits_remove): Likewise.
	(selftest::test_print_parseable_fixits_replace): Likewise.
	(selftest::test_print_parseable_fixits_bytes_vs_display_columns):
	New.
	(selftest::diagnostic_c_tests): Call it.
	* diagnostic.h (enum diagnostics_extra_output_kind): New.
	(diagnostic_context::parseable_fixits_p): Delete field in favor
	of...
	(diagnostic_context::extra_output_kind): ...this new field.
	* doc/invoke.texi (Environment Variables): Add
	GCC_EXTRA_DIAGNOSTIC_OUTPUT.
	* opts.c (common_handle_option): Update handling of
	OPT_fdiagnostics_parseable_fixits for change to diagnostic_context
	fields.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp-patterns.c (class complex_operations_pattern,
	complex_operations_pattern::matches,
	complex_operations_pattern::recognize,
	complex_operations_pattern::build): New.
	(slp_patterns): Use it.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New.
	* optabs.def (cmls_optab, cmls_conj_optab): New.
	* doc/md.texi: Document them.
	* tree-vect-slp-patterns.c (class complex_fms_pattern,
	complex_fms_pattern::matches, complex_fms_pattern::recognize,
	complex_fms_pattern::build): New.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New.
	* optabs.def (cmla_optab, cmla_conj_optab): New.
	* doc/md.texi: Document them.
	* tree-vect-slp-patterns.c (vect_match_call_p,
	class complex_fma_pattern, vect_slp_reset_pattern,
	complex_fma_pattern::matches, complex_fma_pattern::recognize,
	complex_fma_pattern::build): New.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New.
	* optabs.def (cmul_optab, cmul_conj_optab): New.
	* doc/md.texi: Document them.
	* tree-vect-slp-patterns.c (vect_match_call_complex_mla,
	vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication,
	vect_build_combine_node, class complex_mul_pattern,
	complex_mul_pattern::matches, complex_mul_pattern::recognize,
	complex_mul_pattern::build): New.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp.c (optimize_load_redistribution_1): New.
	(optimize_load_redistribution, vect_is_slp_load_node): New.
	(vect_match_slp_patterns): Use it.

2021-01-14  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp-patterns.c (complex_add_pattern::build):
	Elide nodes.

2021-01-14  Thomas Schwinge  <thomas@codesourcery.com>

	* config/gcn/mkoffload.c (main): Create an offload image only in
	64-bit configurations.

2021-01-14  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98667
	* config/i386/i386-options.c (ix86_option_override_internal):
	Issue an error for -fcf-protection with CF_BRANCH when compiling
	for 32-bit non-TARGET_CMOV targets.

2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98671
	* config/i386/i386-options.c (ix86_valid_target_attribute_inner_p):
	Remove declaration and initialization of shadow variable "ret".
	(ix86_option_override_internal): Remove delcaration of
	shadow variable "i".  Redeclare shadowed variable to unsigned.
	* common/config/i386/i386-common.c (pta_size): Redeclare to unsigned.
	* config/i386/i386-builtins.c (get_builtin_code_for_version):
	Update for redeclaration.
	* config/i386/i386.h (pta_size): Ditto.

2021-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98674
	* tree-data-ref.c (base_supports_access_fn_components_p): New.
	(initialize_data_dependence_relation): For two bases without
	possible access fns resort to type size equality when determining
	shape compatibility.

2021-01-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	PR target/66791
	* config/arm/arm_neon.h: Replace calls to __builtin_vcge* by
	<=, >= operators in vcle and vcge intrinsics respectively.
	* config/arm/arm_neon_builtins.def: Remove entry for
	vcge and vcgeu.

2021-01-14  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98671
	* config/i386/i386-options.c (ix86_function_specific_save):
	Remove redundant assignment to opts->x_ix86_branch_cost.
	* config/i386/i386.c (ix86_prefetch_sse):
	Rename from x86_prefetch_sse.  Update all uses.
	* config/i386/i386.h: Update for rename.
	* config/i386/i386-options.h: Ditto.

2021-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR target/98670
	* config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3,
	*sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3):
	Use Bm instead of m for non-avx.  Add isa attribute.

2021-01-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96688
	* match.pd (~(X >> Y) -> ~X >> Y): New simplification if
	~X can be simplified.

2021-01-14  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-stmts.c (vect_model_load_cost): Account for unused
	IFN_LOAD_LANES results.

2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>):
	Define.
	(aarch64_xtn<mode>): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn):
	Define
	builtins.
	* config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
	builtin.
	(vmovl_s16): Likewise.
	(vmovl_s32): Likewise.
	(vmovl_u8): Likewise.
	(vmovl_u16): Likewise.
	(vmovl_u32): Likewise.
	(vmovn_s16): Likewise.
	(vmovn_s32): Likewise.
	(vmovn_s64): Likewise.
	(vmovn_u16): Likewise.
	(vmovn_u32): Likewise.
	(vmovn_u64): Likewise.

2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le):
	Define.
	(aarch64_<su>qxtn2<mode>_be): Likewise.
	(aarch64_<su>qxtn2<mode>): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2):
	Define builtins.
	* config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator.
	(su): Handle ss_truncate and us_truncate.
	* config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using
	builtin.
	(vqmovn_high_s32): Likewise.
	(vqmovn_high_s64): Likewise.
	(vqmovn_high_u16): Likewise.
	(vqmovn_high_u32): Likewise.
	(vqmovn_high_u64): Likewise.

2021-01-14  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le):
	Define.
	(aarch64_xtn2<mode>_be): Likewise.
	(aarch64_xtn2<mode>): Likewise.
	* config/aarch64/aarch64-simd-builtins.def (xtn2): Define
	builtins.
	* config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using
	builtins.
	(vmovn_high_s32): Likewise.
	(vmovn_high_s64): Likewise.
	(vmovn_high_u16): Likewise.
	(vmovn_high_u32): Likewise.
	(vmovn_high_u64): Likewise.

2021-01-13  Stafford Horne  <shorne@gmail.com>

	* config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro.

2021-01-13  Stafford Horne  <shorne@gmail.com>

	* config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro.

2021-01-13  Stafford Horne  <shorne@gmail.com>

	* config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin
	  define for __or1k_hard_float__.

2021-01-13  Stafford Horne  <shorne@gmail.com>

	* config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1.
	(PROFILE_HOOK): Define to call _mcount.
	(FUNCTION_PROFILER): Change from abort to no-op.

2021-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96691
	* match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C),
	(~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if
	(~D ^ C) or (D ^ C) can be simplified.

2021-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92645
	* match.pd (BIT_FIELD_REF to conversion): Delay canonicalization
	until after vector lowering.

2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I
	to SVE_I.
	(@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2)
	(*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise.

2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I
	to SVE_I.
	(@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2)
	(*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise.

2021-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92645
	* tree-vect-slp.c (vect_build_slp_tree_1): Relax supported
	BIT_FIELD_REF argument.
	(vect_build_slp_tree_2): Record the desired vector type
	on the external vector def.
	(vectorizable_slp_permutation): Handle required punning
	of existing vector defs.

2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl-ssa/accesses.h (def_lookup): Fix order of comparison results.

2021-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	* config/sh/sh.md (movsf_ie): Remove operands[2] test.

2021-01-13  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* config.gcc [$target == *-*-gnu*]: Enable
	'default_gnu_indirect_function'.

2021-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/95905
	* optabs.c (expand_vec_perm_const): Don't force v0 and v1 into
	registers before calling targetm.vectorize.vec_perm_const, only after
	that.
	* config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle
	two argument permutation when one operand is zero vector and only
	after that force operands into registers.
	* config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New
	define_insn_and_split pattern.
	(*avx512bw_zero_extendv32qiv32hi2_1): Likewise.
	(*avx512f_zero_extendv16hiv16si2_1): Likewise.
	(*avx2_zero_extendv8hiv8si2_1): Likewise.
	(*avx512f_zero_extendv8siv8di2_1): Likewise.
	(*avx2_zero_extendv4siv4di2_1): Likewise.
	* config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands
	into registers.
	* config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise.
	* config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise.
	* config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise.
	* config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise.
	* config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise.
	* config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise.  Use std::swap.

2021-01-13  Martin Liska  <mliska@suse.cz>

	PR tree-optimization/98455
	* gimple-if-to-switch.cc (condition_info::record_phi_mapping):
	Record also virtual PHIs.
	(pass_if_to_switch::execute): Return TODO_cleanup_cfg only
	conditionally.

2021-01-13  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (C++ Modules): Fix typos.

2021-01-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98640
	* tree-ssa-sccvn.c (visit_nary_op): Do not try to
	handle plus or minus from a truncated operand to be
	sign-extended.

2021-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/96938
	* config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New
	define_insn_and_split patterns.
	(splitter after *btr<mode>_2): New splitter.

2021-01-13  Martin Liska  <mliska@suse.cz>

	PR ipa/98652
	* cgraphunit.c (analyze_functions): Remove dead code.

2021-01-13  Qian Jianhua  <qianjh@cn.fujitsu.com>

	* config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New.
	* config/aarch64/aarch64.c (a64fx_addrcost_table): New.
	(a64fx_regmove_cost, a64fx_vector_cost): New.
	(a64fx_tunings): Use the new added cost tables.

2021-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/95905
	* config/i386/predicates.md (pmovzx_parallel): New predicate.
	* config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New
	define_insn_and_split pattern.
	(*sse4_1_zero_extendv4hiv4si2_3): Likewise.
	(*sse4_1_zero_extendv2siv2di2_3): Likewise.

2021-01-13  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code
	to fix v0 register.

2021-01-13  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live
	on entry to a BB.

2021-01-13  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec
	for reciprocal-approximation instructions.
	(div<mode>3): Use fused multiply-accumulate operations for reciprocal
	refinement and division result.
	* config/gcn/gcn.md (UNSPEC_RCP): New unspec constant.

2021-01-13  Julian Brown  <julian@codesourcery.com>

	* config/gcn/gcn-valu.md (subdf): Rename to...
	(subdf3): This.

2021-01-12  Martin Liska  <mliska@suse.cz>

	* gcov.c (source_info::debug): Fix printf format for 32-bit hosts.

2021-01-12  Andrea Corallo  <andrea.corallo@arm.com>

	* function-abi.h: Fix typo.

2021-01-12  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/97875
	PR target/97875
	* config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro.
	(ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise.
	(ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise.
	(ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise.
	(ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise.
	(ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise.
	(ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise.
	(ARM_HAVE_NEON_V2DI_LDST): Likewise.
	(ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise.
	(ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise.
	(ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise.
	(ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise.
	(ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise.
	(ARM_HAVE_V2DI_LDST): Likewise.
	* config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern.
	(*movmisalign<mode>_mve_load): New pattern.
	* config/arm/neon.md (movmisalign<mode>): Move to ...
	* config/arm/vec-common.md: ... here.

2021-01-12  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/97969
	* lra-eliminations.c (eliminate_regs_in_insn): Add transformation
	of pattern 'plus (plus (hard reg, const), pseudo)'.

2021-01-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98550
	* tree-vect-slp.c (vect_record_max_nunits): Check whether
	the group size is a multiple of the vector element count.
	(vect_build_slp_tree_1): When we need to fail because
	the vector type choosen causes unrolling do so lazily
	without affecting matches only at the end to guide group splitting.

2021-01-12  Martin Liska  <mliska@suse.cz>

	PR c++/97284
	* optc-save-gen.awk: Compare also n_target_save vars with
	strcmp.

2021-01-12  Martin Liska  <mliska@suse.cz>

	* gcov.c (source_info::debug): New.
	(print_usage): Add --debug (-D) option.
	(process_args): Likewise.
	(generate_results): Call src->debug after
	accumulate_line_counts.
	(read_graph_file): Properly assign id for EXIT_BLOCK.
	* profile.c (branch_prob): Dump function body before it is
	instrumented.

2021-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98629
	* tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt
	unless returning non-zero.

2021-01-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95731
	* tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize
	x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z.
	(optimize_range_tests): Call optimize_range_tests_cmp_bitwise
	only after optimize_range_tests_var_bound.

2021-01-12  Jakub Jelinek  <jakub@redhat.com>

	* configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@.
	* configure: Regenerated.

2021-01-12  liuhongt  <hongtao.liu@intel.com>

	PR target/98612
	* config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS):
	Deleted.
	* config/i386/i386-expand.c (ix86_expand_sse_comi): Delete
	dead code.

2021-01-12  Alexandre Oliva  <oliva@adacore.com>

	* ssa-iterators.h (end_imm_use_stmt_traverse): Forward
	declare.
	(auto_end_imm_use_stmt_traverse): New struct.
	(FOR_EACH_IMM_USE_STMT): Use it.
	(BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove,
	along with uses...
	* gimple-ssa-strength-reduction.c: ... here, ...
	* graphite-scop-detection.c: ... here, ...
	* ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ...
	* tree-predcom.c, tree-ssa-ccp.c: ... here, ...
	* tree-ssa-dce.c, tree-ssa-dse.c: ... here, ...
	* tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ...
	* tree-ssa-phiprop.c, tree-ssa.c: ... here, ...
	* tree-vect-slp.c: ... and here, ...
	* doc/tree-ssa.texi: ... and the example here.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from
	SVE_FULL_I to SVE_I.  Generate an UNSPEC_PRED_X.
	(*sdiv_pow2<mode>3): New pattern.
	(@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I.
	Wrap the ASRD in an UNSPEC_PRED_X.
	(*cond_<sve_int_op><mode>_2): Likewise.  Replace the UNSPEC_PRED_X
	predicate with a constant PTRUE, if it isn't already.
	(*cond_<sve_int_op><mode>_z): Replace with...
	(*cond_<sve_int_op><mode>_any): ...this new pattern.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from
	SVE_FULL_I to SVE_I.
	(*cond_bic<mode>_any): Likewise.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart)
	(@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I
	to SVE_I.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from
	SVE_FULL_I to SVE_I.
	(*aarch64_cond_<su>abd<mode>_2): Likewise.
	(*aarch64_cond_<su>abd<mode>_any): Likewise.
	(@aarch64_pred_<su>abd<mode>): Likewise.  Use UNSPEC_PRED_X
	for the max and min but not for the minus.
	(*aarch64_cond_<su>abd<mode>_3): New pattern.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/iterators.md (SVE_24I): New iterator.
	* config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from
	SVE_FULL_SDI to SVE_24I.  Use containers rather than elements.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>)
	(*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I
	to SVE_I.
	(*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise.
	(*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise.
	(*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise.
	(*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3)
	(@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>)
	(*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I
	to SVE_I.

2021-01-11  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3)
	(v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>)
	(*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I.

2021-01-11  Martin Liska  <mliska@suse.cz>

	PR jit/98615
	* symtab-clones.h (clone_info::release): Release
	symtab::m_clones with ggc_delete as it's a GGC memory.

2021-01-11  Matthias Klose  <doko@ubuntu.com>

	* Makefile.in (LINK_PROGRESS): Show the link target.

2021-01-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/91403
	* tree-vect-data-refs.c (vect_analyze_group_access_1): Cap
	single-element interleaving group size at 4096 elements.

2021-01-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98526
	* tree-vect-loop.c (vect_model_reduction_cost): Remove costing
	of the actual reduction op for the regular case.
	(vectorizable_reduction): Cost the stmts
	vect_transform_reduction produces here.

2021-01-11  Andreas Krebbel  <krebbel@linux.ibm.com>

	* tree-ssa-forwprop.c (simplify_vector_constructor): For
	big-endian, use UNPACK[_FLOAT]_HI.

2021-01-11  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp-patterns.c (class complex_pattern,
	class complex_add_pattern): Add parameters to matches.
	(complex_add_pattern::build): Free memory.
	(complex_add_pattern::matches): Move validation end of match.
	(complex_add_pattern::recognize): Likewise.

2021-01-11  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp-patterns.c (linear_loads_p): Fix externals.

2021-01-11  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity.

2021-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95867
	* tree-ssa-math-opts.h: New header.
	* tree-ssa-math-opts.c: Include tree-ssa-math-opts.h.
	(powi_as_mults): No longer static.  Use build_one_cst instead of
	build_real.  Formatting fix.
	* tree-ssa-reassoc.c: Include tree-ssa-math-opts.h.
	(attempt_builtin_powi): Handle multiplication reassociation without
	powi_fndecl using powi_as_mults.
	(reassociate_bb): For integral types don't require
	-funsafe-math-optimizations to call attempt_builtin_powi.

2021-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95852
	* tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change
	mul_stmts parameter type to vec<gimple *> &.  Before cond_stmt
	allow in the bb any of the stmts in that vector, div_stmt and
	up to 3 cast stmts.
	(arith_cast_equal_p): New function.
	(arith_overflow_check_p): Add cast_stmt argument, handle signed
	multiply overflow checks.
	(match_arith_overflow): Adjust caller.  Handle signed multiply
	overflow checks.

2021-01-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95852
	* tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function.
	(uaddsub_overflow_check_p): Renamed to ...
	(arith_overflow_check_p): ... this.  Handle also multiplication
	with overflow check.
	(match_uaddsub_overflow): Renamed to ...
	(match_arith_overflow): ... this.  Add cfg_changed argument.  Handle
	also multiplication with overflow check.  Adjust function comment.
	(math_opts_dom_walker::after_dom_children): Adjust callers.  Call
	match_arith_overflow also for MULT_EXPR.

2021-01-11  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/arm_neon.h (vmovl_s8): Reimplement using
	__builtin_convertvector.
	(vmovl_s16): Likewise.
	(vmovl_s32): Likewise.
	(vmovl_u8): Likewise.
	(vmovl_u16): Likewise.
	(vmovl_u32): Likewise.
	(vmovn_s16): Likewise.
	(vmovn_s32): Likewise.
	(vmovn_s64): Likewise.
	(vmovn_u16): Likewise.
	(vmovn_u32): Likewise.
	(vmovn_u64): Likewise.

2021-01-11  Martin Liska  <mliska@suse.cz>

	* gimple-if-to-switch.cc (struct condition_info): Use auto_var.
	(if_chain::is_beneficial): Delete clusters
	(find_conditions): Make second argument of conditions_in_bbs a
	pointer so that we control over it's lifetime.
	(pass_if_to_switch::execute): Delete them.

2021-01-11  Kewen Lin  <linkw@linux.ibm.com>

	* ira.c (move_unallocated_pseudos): Check other_reg and skip if
	it isn't set.

2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/vax/vax.md (cc): Remove mode attribute.
	(subst_<cc>, subst_f<cc>): Rename to...
	(subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively.
	(*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal.
	(*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise.
	(*branch_<mode>, *branch_<mode>_reversed): Likewise.

2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/vax/vax.md (subst_f<cc>): Add mode to operands and
	`const_double_zero'.

2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>

	* config/pdp11/pdp11.md (PDPfp): New mode iterator.
	(fcc_cc, fcc_ccnz): Use it.  Add mode to `const_double_zero' and
	operands.

2021-01-09  Maciej W. Rozycki  <macro@linux-mips.org>

	* genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero'
	rtx.
	* read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode
	with `const_double_zero'.
	* doc/rtl.texi (Constant Expression Types): Document it.

2021-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/98556
	* tree-cfg.c (verify_gimple_assign_binary): Allow lhs of
	POINTER_DIFF_EXPR to be any integral type.

2021-01-09  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/98603
	* function.c (instantiate_virtual_regs_in_insn): For asm goto
	with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL
	if any, set ASM_OPERANDS mode to VOIDmode and change
	ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX.

2021-01-09  Alexandre Oliva  <oliva@gnu.org>

	PR debug/97714
	* final.c (notice_source_line): Narrow down the condition to
	skip a line-0 marker.

2021-01-08  Sergei Trofimovich  <siarheit@google.com>

	* ipa-modref.c (merge_call_side_effects): Fix
	linebreak split by reordering two print calls.

2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/vector.md (*tf_to_fprx2_0): Rename from
	"*mov_tf_to_fprx2_0" for consistency, fix constraint.
	(*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for
	consistency, fix constraint.

2021-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390-c.c (s390_def_or_undef_macro): Accept
	callables instead of mask values.
	(struct target_flag_set_p): New predicate.
	(s390_cpu_cpp_builtins_internal): Define or undefine
	__LONG_DOUBLE_VX__ macro.

2021-01-08  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98482
	* config/i386/i386.c (x86_function_profiler): Use R10 and R11
	to call mcount in large model with PIC for NO_PROFILE_COUNTERS
	targets.

2021-01-08  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table.

2021-01-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix.
	(vect_build_slp_tree): On cache hit release the matched
	scalar stmts vector.
	* tree-vect-stmts.c (vectorizable_store): Properly free
	vec_oprnds before possibly gathering them again.

2021-01-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98544
	* tree-vect-slp.c (vect_optimize_slp): Always materialize
	permutes at a permute node.

2021-01-08  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98482
	* config/i386/i386.c (x86_function_profiler): Use R10 to call
	mcount in large model.  Sorry for large model with PIC.

2021-01-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/98585
	* config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg,
	ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm,
	ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of
	TargetSave and initialize for variables with enum types.
	(mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=,
	mstack-protector-guard-symbol=): Add Save.
	* config/i386/i386-options.c (ix86_function_specific_save,
	ix86_function_specific_restore): Don't save or restore x_ix86_cmodel,
	x_ix86_incoming_stack_boundary_arg, x_ix86_pmode,
	x_ix86_preferred_stack_boundary_arg, x_ix86_regparm,
	x_ix86_veclibabi_type.

2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from
	SVE_FULL_I to SVE_I.
	(*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.

2021-01-08  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from
	SVE_FULL_I to SVE_I.
	(*cond_uxt<mode>_any): Likewise.

2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/iterators.md (Vwhalf): New iterator.
	* config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3):
	Rename to...
	(aarch64_<sur>adalp<mode>): ... This.  Make more
	builtin-friendly.
	(<sur>sadv16qi): Adjust callsite of the above.
	* config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New
	builtins.
	* config/aarch64/arm_neon.h (vpadal_s8): Reimplement using
	builtins.
	(vpadal_s16): Likewise.
	(vpadal_u8): Likewise.
	(vpadal_u16): Likewise.
	(vpadalq_s8): Likewise.
	(vpadalq_s16): Likewise.
	(vpadalq_s32): Likewise.
	(vpadalq_u8): Likewise.
	(vpadalq_u16): Likewise.
	(vpadalq_u32): Likewise.

2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3):
	Rename to...
	(aarch64_<su>abd<mode>): ... This.
	(<sur>sadv16qi): Adjust callsite of the above.
	* config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define
	builtins.
	* config/aarch64/arm_neon.h (vabd_s8): Reimplement using
	builtin.
	(vabd_s16): Likewise.
	(vabd_s32): Likewise.
	(vabd_u8): Likewise.
	(vabd_u16): Likewise.
	(vabd_u32): Likewise.
	(vabdq_s8): Likewise.
	(vabdq_s16): Likewise.
	(vabdq_s32): Likewise.
	(vabdq_u8): Likewise.
	(vabdq_u16): Likewise.
	(vabdq_u32): Likewise.

2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define
	builtins.
	* config/aarch64/arm_neon.h (vaba_s8): Implement using builtin.
	(vaba_s16): Likewise.
	(vaba_s32): Likewise.
	(vaba_u8): Likewise.
	(vaba_u16): Likewise.
	(vaba_u32): Likewise.
	(vabaq_s8): Likewise.
	(vabaq_s16): Likewise.
	(vabaq_s32): Likewise.
	(vabaq_u8): Likewise.
	(vabaq_u16): Likewise.
	(vabaq_u32): Likewise.

2021-01-08  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

	* config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to...
	(aarch64_<su>aba<mode>): ... This.  Handle uaba as well.
	Change RTL pattern to match.

2021-01-08  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.c (riscv_current_subset_list): New.
	* config/riscv/riscv-c.c (riscv-subset.h): New.
	(INCLUDE_STRING): Define.
	(riscv_cpu_cpp_builtins): Add new style architecture extension
	test macros.
	* config/riscv/riscv-subset.h (riscv_subset_list::begin): New.
	(riscv_subset_list::end): New.
	(riscv_current_subset_list): New.

2021-01-08  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION):
	Move to riscv-subset.h.
	(struct riscv_subset_t): Ditto.
	(class riscv_subset_list): Ditto.
	* config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move
	from riscv-common.c.
	(struct riscv_subset_t): Ditto.
	(class riscv_subset_list): Ditto.
	* config/riscv/t-riscv ($(common_out_file)): Add file
	dependency.

2021-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR target/98567
	* config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno):
	New define_insn patterns.

2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>)
	(*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I.
	(*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise.

2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98560
	* internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond.
	* internal-fn.c (vec_cond_mask_direct): Get the data mode from
	argument 1.
	(vec_cond_direct): Likewise argument 2.
	(vec_condu_direct, vec_condeq_direct): Delete.
	(expand_vect_cond_optab_fn): Rename to...
	(expand_vec_cond_optab_fn): ...this, replacing old macro.
	(expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete.
	(expand_vect_cond_mask_optab_fn): Rename to...
	(expand_vec_cond_mask_optab_fn): ...this, replacing old macro.
	(direct_vec_cond_mask_optab_supported_p): Treat the optab as a
	convert optab.
	(direct_vec_cond_optab_supported_p): Likewise.
	(direct_vec_condu_optab_supported_p): Delete.
	(direct_vec_condeq_optab_supported_p): Delete.
	* gimple-isel.cc: Include internal-fn.h.
	(gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported
	before using it.

2021-01-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98560
	* gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use
	IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK.

2021-01-07  Uroš Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn,
	rotate_insn and optab code attributes.
	Update all uses to merged code attribute.
	* config/i386/sse.md: Update all uses to merged code attribute.
	* config/i386/mmx.md: Update all uses to merged code attribute.

2021-01-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98568
	* gimple-ssa-store-merging.c (bswap_view_convert): New function.
	(bswap_replace): Use it.

2021-01-06  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/97978
	* lra-int.h (lra_hard_reg_split_p): New external.
	* lra.c (lra_hard_reg_split_p): New global.
	(lra): Set up lra_hard_reg_split_p after splitting a hard reg.
	* lra-assigns.c (lra_assign): Don't check allocation correctness
	after hard reg splitting.

2021-01-06  Martin Sebor  <msebor@redhat.com>

	PR c++/98305
	* builtins.c (new_delete_mismatch_p): New overload.
	(new_delete_mismatch_p (tree, tree)): Call it.

2021-01-06  Alexandre Oliva  <oliva@adacore.com>

	* Makefile.in (T_GLIMITS_H): New.
	(stmp-int-hdrs): Depend on it, use it.
	* config/t-vxworks (T_GLIMITS_H): Override it.
	(vxw-glimits.h): New.

2021-01-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98513
	* value-range.cc (intersect_ranges): Compare the upper bounds
	for the expected relation.

2021-01-06  Gerald Pfeifer  <gerald@pfeifer.com>

	Revert:
	2020-12-28  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/standards.texi (HSAIL): Remove section.

2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* configure: Re-generate.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (-std=c++20): Adjust for the publication of
	ISO 14882:2020 standard.
	* doc/standards.texi: Likewise.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/94802
	* expr.h (maybe_optimize_sub_cmp_0): Declare.
	* expr.c: Include tree-pretty-print.h and flags.h.
	(maybe_optimize_sub_cmp_0): New function.
	(do_store_flag): Use it.
	* cfgexpand.c (expand_gimple_cond): Likewise.

2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>

	* mux-utils.h (pointer_mux::m_ptr): Tweak description of contents.
	* rtlanal.c (simple_regno_set): Tweak description to clarify the
	RMW condition.

2021-01-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98516
	* tree-vect-slp.c (vect_optimize_slp): Permute the incoming
	lanes when materializing on a VEC_PERM node.
	(vectorizable_slp_permutation): Dump the permute properly.

2021-01-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.c (vect_slp_region): Move debug counter
	to cover individual subgraphs.

2021-01-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98428
	* tree-vect-slp.c (vect_build_slp_tree_1): Properly reject
	vector lane extracts for loop vectorization.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98514
	* tree-ssa-reassoc.c (bb_rank): Change type from long * to
	int64_t *.
	(operand_rank): Change type from hash_map<tree, long> to
	hash_map<tree, int64_t>.
	(phi_rank): Change return type from long to int64_t.
	(loop_carried_phi): Change block_rank variable type from long to
	int64_t.
	(propagate_rank): Change return type, rank parameter type and
	op_rank variable type from long to int64_t.
	(find_operand_rank): Change return type from long to int64_t
	and change slot variable type from long * to int64_t *.
	(insert_operand_rank): Change rank parameter type from long to
	int64_t.
	(get_rank): Change return type and rank variable type from long to
	int64_t.  Use PRId64 instead of ld to print the rank.
	(init_reassoc): Change rank variable type from long to int64_t
	and adjust correspondingly bb_rank and operand_rank initialization.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96928
	* tree-ssa-phiopt.c (xor_replacement): New function.
	(tree_ssa_phiopt_worker): Call it.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96930
	* match.pd ((A / (1 << B)) -> (A >> B)): If A is extended
	from narrower value which has the same type as 1 << B, perform
	the right shift on the narrower value followed by extension.

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96239
	* gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New
	function.
	(get_status_for_store_merging): Don't return BB_INVALID for blocks
	with potential bswap optimizable CONSTRUCTORs.
	(pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap
	if possible.

2021-01-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98381
	* tree.c (vector_element_bits): Properly compute bool vector
	element size.
	* tree-vect-loop.c (vectorizable_live_operation): Properly
	compute the last lane bit offset.

2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98522
	* config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split.
	Clear the top 64 bytes of the input XMM register.
	(sse_cvttps2pi): Ditto.

2021-01-05  Uroš Bizjak  <ubizjak@gmail.com>

	PR target/98521
	* config/i386/xopintrin.h (_mm256_cmov_si256): New.

2021-01-05  H.J. Lu  <hjl.tools@gmail.com>

	PR target/98495
	* config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned
	short first.

2021-01-05  Claudiu Zissulescu  <claziss@synopsys.com>

	* config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST.
	(umaddsidi4_split): Likewise.

2021-01-05  liuhongt  <hongtao.liu@intel.com>

	PR target/98461
	* config/i386/sse.md (*sse2_pmovskb_zexthisi): New
	define_insn_and_split for zero_extend of subreg HI of pmovskb
	result.
	(*sse2_pmovskb_zexthisi): Add new combine splitters for
	zero_extend of not of subreg HI of pmovskb result.

2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/97269
	* explow.c (convert_memory_address_addr_space_1): Handle UNSPECs
	nested in CONSTs.
	* config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use
	convert_memory_address to convert symbolic immediates to ptr_mode
	before forcing them to memory.

2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/97144
	* recog.c (constrain_operands): Initialize matching_operand
	for each alternative, rather than only doing it once.

2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/98403
	* rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain
	why we don't remove call clobbers.
	(function_info::apply_changes_to_insn): Don't attempt to add
	call clobbers here.

2021-01-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/98371
	* tree-vect-loop.c (vect_reanalyze_as_main_loop): New function.
	(vect_analyze_loop): If an epilogue loop appears to be cheaper
	than the main loop, re-analyze it as a main loop before adopting
	it as a main loop.

2021-01-05  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR c++/98316
	* configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL.
	* aclocal.m4, configure: Regenerate.
	* Makefile.in (NETLIBS): Define.
	(BACKEND): Remove $(CODYLIB).

2021-01-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/98334
	* simplify-rtx.c (simplify_context::simplify_binary_operation_1):
	Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y.

2021-01-05  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* tree-inline.c (expand_call_inline): Restore input_location.
	Return result from recursive call.

2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/95401
	* config/aarch64/aarch64-sve-builtins.cc
	(gimple_folder::load_store_cookie): Use bits rather than bytes
	for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE.
	* gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise.
	* tree-vect-stmts.c (vectorizable_store): Likewise.
	(vectorizable_load): Likewise.

2021-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98308
	* tree-vect-stmts.c (vectorizable_load): Set invariant mask
	SLP vectype.

2021-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/95771
	* tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types
	with precision smaller than int's precision and types with precision
	twice as large as long long.  Formatting fixes.

2021-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98464
	* tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ...
	(vn_valueize_wrapper): ... this.  Temporarily adjust vn_context_bb.
	(process_bb): Adjust.

2021-01-04  Matthew Malcomson  <matthew.malcomson@arm.com>

	PR other/98437
	* doc/invoke.texi (-fsanitize=address): Fix wording describing
	clash with -fsanitize=hwaddress.

2021-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98282
	* tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on
	invariants as VN_NARY.

2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/89057
	* config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept
	aarch64_simd_reg_or_zero for operand 2.  Use the combinez patterns
	to handle zero operands.

2021-01-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function.
	(offset_6bit_unsigned_scaled_p): Fix typo in comment.
	(aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range
	[-32, 31].

2021-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98393
	* tree-vect-slp.c (vect_build_slp_tree): Properly zero matches
	when hitting the limit.

2021-01-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98291
	* tree-vect-loop.c (vectorizable_reduction): Bypass
	associativity check for SLP reductions with VF 1.

2021-01-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/96782
	* match.pd (x == ~x -> false, x != ~x -> true): New simplifications.

2021-01-04  Bernd Edlinger  <bernd.edlinger@hotmail.de>

	* collect-utils.c (collect_execute): Check dumppfx.
	* collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix
	to collect_execute.
	(do_link): Add new parameter atsuffix.
	(main): Handle -dumpdir option.  Skip one argument for
	-o, -isystem and -B options.
	* gcc.c (make_at_file): New helper function.
	(close_at_file): Use it.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust.
	Amend handling for LD64_VERSION fallback defaults.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config.gcc: Compute default version information
	from the configured target.  Likewise defaults for
	ld64.
	* config/darwin10.h: Removed.
	* config/darwin12.h: Removed.
	* config/darwin9.h: Removed.
	* config/rs6000/darwin8.h: Removed.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here..
	* config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from
	here...
	* config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec
	for the Darwin10 unwinder stub from here ...
	* config/darwin.h (LINK_COMMAND_SPEC_A): ... to here.

2021-01-02  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (DSYMUTIL_SPEC): Default to DWARF
	(ASM_DEBUG_SPEC):Only define if the assembler supports
	stabs.
	(PREFERRED_DEBUGGING_TYPE): Default to DWARF.
	(DARWIN_PREFER_DWARF): Define.
	* config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove.
	(DARWIN_PREFER_DWARF): Likewise
	(DSYMUTIL_SPEC): Likewise.
	(COLLECT_RUN_DSYMUTIL): Likewise.
	(ASM_DEBUG_SPEC): Likewise.
	(ASM_DEBUG_OPTION_SPEC): Likewise.

2021-01-02  Jan Hubicka  <jh@suse.cz>

	* cfg.c (free_block): ggc_free bb.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* gcc.c (process_command): Update copyright notice dates.
	* gcov-dump.c (print_version): Ditto.
	* gcov.c (print_version): Ditto.
	* gcov-tool.c (print_version): Ditto.
	* gengtype.c (create_file): Ditto.
	* doc/cpp.texi: Bump @copying's copyright year.
	* doc/cppinternals.texi: Ditto.
	* doc/gcc.texi: Ditto.
	* doc/gccint.texi: Ditto.
	* doc/gcov.texi: Ditto.
	* doc/install.texi: Ditto.
	* doc/invoke.texi: Ditto.

2021-01-01  Jakub Jelinek  <jakub@redhat.com>

	* ChangeLog-2020: Rotate ChangeLog.  New file.


Copyright (C) 2021 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
