2025-11-08  Avinash Jayakar  <avinashd@linux.ibm.com>

	PR tree-optimization/122126
	* gimple-isel.cc (gimple_expand_vec_set_extract_expr): Add bound check.

2025-11-08  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/122097
	* config/loongarch/loongarch.cc
	(loongarch_const_vector_same_bytes_p): Add processing for
	floating-point vector data.

2025-11-08  Avinash Jayakar  <avinashd@linux.ibm.com>

	PR tree-optimization/122065
	* tree-vect-generic.cc (target_supports_mult_synth_alg): Add helper to
	check mult synth.
	(expand_vector_mult): Optimize mult when const is uniform but not
	power of 2.

2025-11-08  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122599
	* tree-scalar-evolution.cc (final_value_replacement_loop): Move
	the removal of the phi until after the gimplification of the final
	value expression.

2025-11-07  David Malcolm  <dmalcolm@redhat.com>

	* gdbhooks.py (class AnaSupernodePrinter): New.
	(class AnaExplodedNodePrinter): New.
	(build_pretty_printer): Register the above.

2025-11-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree.cc (build_call_nary): Remove decl.
	Add template definition that uses std::initializer_list<tree>
	and call build_call.
	(build_call): New declaration.
	* tree.h (build_call_nary): Remove.
	(build_call): New function.

2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/autovec.md: Use const_1_operand for scale and
	extend predicates.
	* config/riscv/riscv-v.cc (expand_gather_scatter): Remove scale
	and extension handling.

2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-stmts.cc (vect_use_strided_gather_scatters_p):
	Do not convert offset type.

2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-data-refs.cc (struct gather_scatter_config):
	Add scale.
	(vect_gather_scatter_get_configs): Try various scales.
	(vect_gather_scatter_fn_p): Add scale handling.
	(vect_check_gather_scatter): Add scale parameter.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Ditto.
	(vect_truncate_gather_scatter_offset): Ditto.
	(vect_use_grouped_gather): Ditto.
	(get_load_store_type): Ditto.
	(vectorizable_store): Scale offset if necessary.
	(vectorizable_load): Ditto.
	* tree-vectorizer.h (struct vect_load_store_data): Add
	supported_scale.
	(vect_gather_scatter_fn_p): Add argument.

2025-11-07  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-data-refs.cc (struct gather_scatter_config): New
	struct to hold gather/scatter configurations.
	(vect_gather_scatter_which_ifn): New function to determine which
	IFN to use.
	(vect_gather_scatter_get_configs): New function to enumerate all
	target-supported configs.
	(vect_gather_scatter_fn_p): Rework to use
	vect_gather_scatter_get_configs and try sign-swapped offset.
	(vect_check_gather_scatter): Use new supported offset vectype
	argument.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Ditto.
	(vect_truncate_gather_scatter_offset): Ditto.
	(vect_use_grouped_gather): Ditto.
	(get_load_store_type): Ditto.
	(vectorizable_store): Convert to sign-swapped offset type if
	needed.
	(vectorizable_load): Ditto.
	* tree-vectorizer.h (struct vect_load_store_data): Add
	supported_offset_vectype.
	(vect_gather_scatter_fn_p): Add argument.

2025-11-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122588
	* tree-ssa-forwprop.cc (optimize_unreachable): Don't touch
	if the condition was already true or false.

2025-11-07  David Faust  <david.faust@oracle.com>

	PR target/122140
	* config/bpf/bpf.cc (bpf_expand_cpymem): Fix off-by-one offset
	in backwards loop.  Improve src and dest addrs used for the
	branch condition.
	(emit_move_loop): Improve emitted set insns and remove the
	explict temporary register.

2025-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122577
	* tree-vect-stmts.cc (vectorizable_conversion): Allow conversions
	from non-mode-precision types.

2025-11-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Leverage usmul_widen_mult by bit_ior based
	unsigned SAT_MUL pattern.

2025-11-07  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*vwsll_sign_extend_<mode>): Add
	pattern to combine vsext.vf2 and vslli.vi to vwsll.vi.

2025-11-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122589
	PR middle-end/122594
	* gimple-iterator.cc (gsi_replace_with_seq): Instead of
	removing the last stmt from the sequence with gsi_remove,
	split it using gsi_split_seq_before.
	(gsi_split_seq_before): Fix bogus documentation.

2025-11-07  Alfie Richards  <alfie.richards@arm.com>

	PR target/118328
	* config/aarch64/aarch64.cc (handle_aarch64_vector_pcs_attribute):
	Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_pcs_exclusions): New definition.
	(aarch64_gnu_attributes): Add entry for preserve_none and add
	aarch64_pcs_exclusions to aarch64_vector_pcs entry.
	(aarch64_preserve_none_abi): New function.
	(aarch64_fntype_abi): Add handling for preserve_none.
	(aarch64_reg_save_mode): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_hard_regno_call_part_clobbered): Add handling for
	ARM_PCS_PRESERVE_NONE.
	(num_pcs_arg_regs): New helper function.
	(get_pcs_arg_reg): New helper function.
	(aarch64_function_ok_for_sibcall): Add handling for ARM_PCS_PRESERVE_NONE.
	(aarch64_layout_arg): Add preserve_none argument lauout..
	(function_arg_preserve_none_regno_p): New helper function.
	(aarch64_function_arg): Update to handle preserve_none.
	(function_arg_preserve_none_regno_p): Update logic for preserve_none.
	(aarch64_expand_builtin_va_start): Add preserve_none layout.
	(aarch64_setup_incoming_varargs): Add preserve_none layout.
	(aarch64_is_variant_pcs): Update for case of ARM_PCS_PRESERVE_NONE.
	(aarch64_comp_type_attributes): Add preserve_none.
	* config/aarch64/aarch64.h (NUM_PRESERVE_NONE_ARG_REGS): New macro.
	(PRESERVE_NONE_REGISTERS): New macro.
	(enum arm_pcs): Add ARM_PCS_PRESERVE_NONE.
	* doc/extend.texi (preserve_none): Add docs for new attribute.

2025-11-07  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*widen_mul_plus_vx_<mode>): Add
	new pattern to combine the vwmaccu.vx.
	* config/riscv/vector.md (*pred_widen_mul_plus_u_vx<mode>_undef):
	Add undef define_insn for vmwaccu.vx emiting.
	(@pred_widen_mul_plus_u_vx<mode>): Ditto.

2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_sign_extend_if_subreg_prom_p): Determine if the
	current operand	is SUBREG and if the source of SUBREG is
	the sign-extended value.
	(loongarch_expand_conditional_move): Optimize.

2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_canonicalize_int_order_test): Support GT GTU LT
	and LTU.
	(loongarch_extend_comparands): Expand the scope of op1 from
	0 to all immediate values.
	* config/loongarch/loongarch.md
	(*sge<u>_<X:mode><GPR:mode>): New template.

2025-11-07  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_legitimize_move): Optimize.

2025-11-06  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/invoke.texi (AArch64 Options): Clean up description of
	-mbranch-protection= argument.
	(ARM Options): Likewise.

2025-11-06  Alejandro Colomar  <alx@kernel.org>

	* doc/extend.texi: Move _Countof under 'Syntax Extensions'.

2025-11-06  Georg-Johann Lay  <avr@gjlay.de>

	PR target/122516
	* config/avr/elf.h (SUPPORTS_SHF_GNU_RETAIN): Define if
	HAVE_GAS_SHF_GNU_RETAIN.

2025-11-06  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Ignore
	assignments of (const_int 0) to a register.  They will get propagated
	away.

2025-11-06  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_output_addr_vec): Output
	a valid opcode prior to the first gs() label provided:
	- The code is compiled for an arch that has AVR-SD mcus, and
	- the function has a "section" attribute, and
	- the function has a gs() label addresses switch/case table.

2025-11-06  Your Name  <jlaw@ventanamicro.com>

	PR rtl-optimization/121136
	* config/riscv/riscv.md: Add define_insn to test the
	upper bits of a register against zero using sltiu when
	the bits are extracted via zero_extract or logial right shift.
	Add 3->2 define_splits for gtu/leu cases testing upper bits
	against zero.

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

	* tree-core.h (tree_ssa_name::active_iterated_stmt): Mark
	GTY((skip(""))).

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

	* ssa-iterators.h (imm_use_iterator::name): Add.
	(delink_imm_use): When in a FOR_EACH_IMM_USE_STMT iteration
	enforce we only remove uses from the current stmt.
	(end_imm_use_stmt_traverse): Reset current stmt.
	(first_imm_use_stmt): Assert no FOR_EACH_IMM_USE_STMT on
	var is in progress.  Set the current stmt.
	(next_imm_use_stmt): Set the current stmt.
	(auto_end_imm_use_fast_traverse): New, lower iteration
	depth upon destruction.
	(first_readonly_imm_use): Bump the iteration depth.
	* tree-core.h (tree_ssa_name::active_iterated_stmt,
	tree_ssa_name::fast_iteration_depth): New members when
	ENABLE_GIMPLE_CHECKING.
	* tree-ssanames.cc (make_ssa_name_fn): Initialize
	immediate use verifier bookkeeping members.

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

	PR tree-optimization/122502
	* ssa-iterators.h (imm_use_iterator::iter_node): Remove.
	(imm_use_iterator::next_stmt_use): New.
	(next_readonly_imm_use): Adjust checking code.
	(end_imm_use_stmt_traverse): Simplify.
	(link_use_stmts_after): Likewise.  Return the last use
	with the same stmt.
	(first_imm_use_stmt): Simplify.  Set next_stmt_use.
	(next_imm_use_stmt): Likewise.
	(end_imm_use_on_stmt_p): Adjust.

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

	* doc/tree-ssa.texi: Update immediate use iterator
	documentation.
	* ssa-iterators.h: Likewise.

2025-11-06  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/113632
	* range-op-mixed.h (operator_bitwise_xor): Relocate and adjust.
	(operator_bitwise_xor::m_and, m_or, m_not): New.
	* range-op.cc (operator_bitwise_xor::fold_range): New.

2025-11-06  Xi Ruoyao  <xry111@xry111.site>

	* config.gcc: Support --with-cmodel={medium,normal} and make
	medium the default for LoongArch, define TARGET_DEFAULT_CMODEL
	as the selected value.
	* config/loongarch/loongarch-opts.cc: Use TARGET_DEFAULT_CMODEL
	instead of hard coding CMODEL_NORMAL.
	* doc/install.texi: Document that --with-cmodel= is supported
	for LoongArch.
	* doc/invoke.texi: Update the document about default code model
	on LoongArch.

2025-11-05  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/121574
	* doc/invoke.texi: Document '-Wexpose-global-module-tu-local'.

2025-11-05  Artemiy Volkov  <artemiy.volkov@arm.com>

	* tree-ssa-forwprop.cc (simplify_vector_constructor): Support
	vector constructor elements.
	* tree-vect-generic.cc (ssa_uniform_vector_p): Make non-static and
	move ...
	* tree.cc (ssa_uniform_vector_p): ... here.
	* tree.h (ssa_uniform_vector_p): Declare it.

2025-11-05  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.cc (forward_propagate_addr_expr):
	Use gather_imm_use_stmts instead of FOR_EACH_IMM_USE_STMT.

2025-11-05  Richard Biener  <rguenther@suse.de>

	* gimple.h (gimple::pad): Rename to ...
	(gimple::ilf): ... this.
	* ssa-iterators.h (gather_imm_use_stmts): Declare.
	* tree-ssa-operands.cc (gather_imm_use_stmts): New function.

2025-11-05  Richard Biener  <rguenther@suse.de>

	* gimple-ssa-isolate-paths.cc (check_loadstore): Set
	the volatile flag on the stmt manually.
	(find_implicit_erroneous_behavior): Move code transform
	outside of FOR_EACH_IMM_USE_STMT iteration.

2025-11-05  Richard Biener  <rguenther@suse.de>

	* tree-ssa-loop-niter.cc (dump_affine_iv): Use file, not
	dump_file when printing.
	(debug): New overload for affine_iv.

2025-11-05  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.md (cntmap): Change to uppercase.
	(popcount<GPR:mode>2): Modify to a post reload split.

2025-11-04  Uros Bizjak  <ubizjak@gmail.com>

	PR target/122390
	* config/i386/i386.md (*add<mode>3_carry_2): New insn pattern.
	(*add<mode>3_carry_0_cc): Ditto.
	(*add<mode>3_carry_0r_cc): Ditto.
	(*sub<mode>3_carry_2): Ditto.
	(*sub<mode>3_carry_0_cc): Ditto.
	(*sub<mode>3_carry_0r_cc): Ditt.

2025-11-04  Kees Cook  <kees@kernel.org>

	* config/arc/builtins.def: Add ATTRS parameter to DEF_BUILTIN
	macro calls.  Mark mathematical builtins (FFS, FLS, NORM, NORMW,
	SWAP) with attr_const, leave others as NULL_TREE.
	* config/arc/arc.cc: Add support for builtin function attributes.
	Create attr_const using tree_cons.  Update DEF_BUILTIN macro to
	pass ATTRS parameter to add_builtin_function.

2025-11-04  Pan Li  <pan2.li@intel.com>

	* match.pd: Add usmul_widen_mult helper and referenced by
	min based unsigned SAT_MUL pattern.

2025-11-04  Siddhesh Poyarekar  <siddhesh@gotplt.org>

	PR lto/122515
	* lto-wrapper.cc (debug_objcopy): Set type of INOFF to int64_t.
	(run_gcc): Set type of FILE_OFFSET to int64_t.

2025-11-04  Kishan Parmar  <kishan@linux.ibm.com>

	PR rtl-optimization/93738
	* simplify-rtx.cc (simplify_binary_operation_1): Canonicalize
	SUBREG(LSHIFTRT) into LSHIFTRT(SUBREG) when valid.

2025-11-04  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/122544
	* diagnostics/paths.cc (event::meaning::maybe_get_verb_str):
	Handle the new verbs.
	* diagnostics/paths.h (event::meaning::verb): Add new values
	for special control flow operations.
	(event::meaning::meaning): Add ctor taking just a verb.

2025-11-03  Uros Bizjak  <ubizjak@gmail.com>

	PR target/122534
	* config/i386/i386.md (@test<mode>_ccno_1):
	Use <general_szext_operand> as operand 1 predicate.
	(testqi_ccz_1): Use general_operand as operand 1 predicate.
	(*testdi_1): Use x86_64_szext_general_operand as operand 1 predicate.
	(*testqi_1_maybe_si): Use general_operand as operand 1 predicate.
	Add (n,*a) alternative to allow UV pairing for pentium processor.
	(*test<mode>_1): Use <general_operand> as operand 1 predicate.

2025-11-03  Sam James  <sam@gentoo.org>

	* configure: Regenerate.

2025-11-03  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/122536
	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Fix
	guard against variable bit extracts in recent change.

2025-11-03  Thomas Schwinge  <tschwinge@baylibre.com>

	PR ipa/122512
	* symtab.cc: Fix 'static_assert'.

2025-11-03  Loeka Rogge  <loeka@synopsys.com>

	* config/arc/simdext.md(movv2hi_insn): Change order for movv2hi
	for big-endian.

2025-11-03  Tobias Burnus  <tburnus@baylibre.com>

	PR libgomp/122281
	PR middle-end/105001
	* gimple.cc (gimple_copy): Add missing unshare_expr for
	GIMPLE_OMP_ATOMIC_LOAD and GIMPLE_OMP_ATOMIC_STORE.

2025-11-03  Alfie Richards  <alfie.richards@arm.com>

	PR c/122202
	* doc/extend.texi (target function attribute): Update to describe FMV
	behaviour.
	(target_version function attribute): New section.
	(target_clones attribute): Update to descrbe new behaviour with
	target_version.
	(Function Multiversioning): Update to discuss both target_version and
	target based FMV.

2025-11-03  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.cc (riscv_flatten_aggregate_field): Skip
	empty unions and zero-length arrays when flattening aggregate
	fields for ABI classification.
	(riscv_pass_aggregate_in_fpr_pair_p): Refactor to use separate
	field parsing and emit ABI change warning for affected types.
	(riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.

2025-11-03  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64-option-extensions.def (dit): New fmv feature.
	(dpb): New fmv feature.
	(dpb2): New fmv feature.
	(memtag): Change to also define an FMV feature.
	(ssbs): Change to also define an FMV feature.
	(bti): New fmv feature.
	* config/aarch64/aarch64.cc (FEAT_SSBS): Add macro.
	(FEAT_MEMTAG): Ditto.

2025-11-03  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (int_iterator ANY_ROUND):
	Specify "flag_unsafe_math_optimizations" in the condition of the
	UNSPEC_ROUND element.
	(int_attr c_round): Remove.
	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
	Remove " && <c_round>" from the conditions.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.cc (loongarch_modes_tieable_p):
	Make MODE_FLOAT and MODE_INT tieable.
	* config/loongarch/loongarch.md: Adjust constraints.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.md
	(and_load_zero_extend<mode>): New combiner.
	* config/loongarch/predicates.md
	(mask_operand):	New predicate.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
	Add new splitter for optimization.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch-protos.h
	(loongarch_use_bstrins_bstrpick_for_and): New proto.
	* config/loongarch/loongarch.cc
	(loongarch_use_bstrins_bstrpick_for_and): Decide whether
	to optimize.
	(loongarch_rtx_costs): Adjust the cost of AND operation.
	* config/loongarch/loongarch.md
	(bstrins_bstrpick_for_and_imm<mode>): New insn_and_split.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_can_change_mode_class): Support for conversion
	between scalar INT and scalar FP.

2025-11-03  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.cc (loongarch_rtx_costs):
	Correct the cost of mulh.{w[u]|d[u]}.

2025-11-03  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/122475
	* tree-vect-loop.cc (vectorizable_reduction): Check for neutral_op.

2025-11-03  H.J. Lu  <hjl.tools@gmail.com>

	PR target/90262
	* config/i386/i386-expand.cc (ix86_expand_unroll_movmem): New.
	(ix86_expand_n_move_movmem): Likewise.
	(ix86_expand_load_movmem): Likewise.
	(ix86_expand_store_movmem): Likewise.
	(ix86_expand_n_overlapping_move_movmem): Likewise.
	(ix86_expand_less_move_movmem): Likewise.
	(ix86_expand_movmem): Likewise.
	* config/i386/i386-protos.h (ix86_expand_movmem): Likewise.
	* config/i386/i386.md (movmem<mode>): Likewise.

2025-11-03  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR target/52345
	* simplify-rtx.cc (simplify_relational_operation_1): Optimize boolean
	IOR equality tests.

2025-11-03  chenxiaolong  <chenxiaolong@loongson.cn>

	* config/loongarch/lasx.md (vec_cast<mode>): New template
	implemention.
	(vec_insert_lo_<mode>): Dito.
	(vec_insert_hi_<mode>): Dito.
	* config/loongarch/lasxintrin.h (defined): Test for adding
	the builtin function.
	(__lasx_cast_128_s): Dito.
	(__lasx_cast_128_d): Dito.
	(__lasx_cast_128): Dito.
	(__lasx_concat_128_s): Dito.
	(__lasx_concat_128_d): Dito.
	(__lasx_concat_128): Dito.
	(__lasx_extract_128_lo_s): Dito.
	(__lasx_extract_128_hi_s): Dito.
	(__lasx_extract_128_lo_d): Dito.
	(__lasx_extract_128_hi_d): Dito.
	(__lasx_extract_128_lo): Dito.
	(__lasx_extract_128_hi): Dito.
	(__lasx_insert_128_lo_s): Dito.
	(__lasx_insert_128_hi_s): Dito.
	(__lasx_insert_128_lo_d): Dito.
	(__lasx_insert_128_hi_d): Dito.
	(__lasx_insert_128_lo): Dito.
	(__lasx_insert_128_hi): Dito.
	* config/loongarch/loongarch-builtins.cc
	(CODE_FOR_lasx_extract_128_lo_s): Add builtins and register
	icode.
	(CODE_FOR_lasx_extract_128_hi_s): Dito.
	(CODE_FOR_lasx_extract_128_lo_d): Dito.
	(CODE_FOR_lasx_extract_128_hi_d): Dito.
	(CODE_FOR_lasx_extract_128_lo): Dito.
	(CODE_FOR_lasx_extract_128_hi): Dito.
	(CODE_FOR_lasx_insert_128_lo_s): Dito.
	(CODE_FOR_lasx_insert_128_hi_s): Dito.
	(CODE_FOR_lasx_insert_128_lo_d): Dito.
	(CODE_FOR_lasx_insert_128_hi_d): Dito.
	(CODE_FOR_lasx_insert_128_lo): Dito.
	(CODE_FOR_lasx_insert_128_hi): Dito.
	(CODE_FOR_lasx_concat_128_s): Dito.
	(CODE_FOR_lasx_concat_128_d): Dito.
	(CODE_FOR_lasx_concat_128): Dito.
	(CODE_FOR_lasx_cast_128_s): Dito.
	(CODE_FOR_lasx_cast_128_d): Dito.
	(CODE_FOR_lasx_cast_128): Dito.
	(loongarch_expand_builtin_direct): For the newly added
	insertion or extraction, construct the parallel parameter
	corresponding to the operand.
	* config/loongarch/loongarch-c.cc
	(loongarch_update_cpp_builtins): Define
	__loongarch_asx_sx_conv.
	* config/loongarch/loongarch-ftypes.def: Declare the type
	of the builtin function.
	* doc/extend.texi: Add document description.

2025-11-03  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch.cc (loongarch_move_integer):
	No new virtual register is allocated during immediate load.

2025-11-03  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/122477
	* config/loongarch/loongarch.cc
	(loongarch_split_reduction): Added handling of scalar mode.

2025-11-02  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/bitmanip.md (rotrsi3): Use the sign extended form
	for 32 bit rotates on TARGET_64BIT, even for constant counts.
	* config/riscv/thead.md (th_srrisi3_extended): New pattern.
	(th_srri<mode>3): Adjust formatting.

2025-11-02  Uros Bizjak  <ubizjak@gmail.com>

	PR target/122518
	* config/i386/i386.cc (ix86_canonicalize_comparison): Convert
	(compare (minus (a b)) a) to (compare (a b)) to
	match *sub<mode>_3 pattern.

2025-11-02  Georg-Johann Lay  <avr@gjlay.de>

	PR target/122527
	* config/avr/avr.cc (avr_load_libgcc_p): Return false if
	the address-space is not ADDR_SPACE_FLASH.
	(avr_out_lpm_no_lpmx [addr=REG]): Handle sizes of 3 and 4 bytes.

2025-11-02  Georg-Johann Lay  <avr@gjlay.de>

	PR tree-optimization/118012
	PR tree-optimization/122505
	* config/avr/avr.md (mulpsi3): Also allow the insn condition
	in the case where avropt_pr118012 && !AVR_TINY.
	(*mulpsi3): Handle split for the !AVR_HAVE_MUL case.
	(*mulpsi3-nomul.libgcc_split, *mulpsi3-nomul.libgcc): New insns.

2025-11-02  Richard Biener  <rguenther@suse.de>

	* doc/tree-ssa.texi: Remove outdated info on FOR_EACH_IMM_USE_STMT
	iteration, clarify SSA operand parts.
	* ssa-iterators.h: Update toplevel comment.

2025-11-02  Sam James  <sam@gentoo.org>

	* .simplify-rtx.cc.swo: Removed.

2025-11-01  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR target/67731
	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
	Handle IOR of single bit bitfields from the same object.

2025-11-01  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv-protos.h (has_vtype_op): Add prototype.
	(mask_agnostic_p, get_avl, vsetvl_insn_p): Likewise.
	* config/riscv/riscv-vsetvl.cc (has_vtype_op): No longer static.
	(vsetvl_insn_p, get_avl_mask_agnostic_p): Likewise.
	* config/riscv/riscv.cc (struct last_vcofnig): New structure.
	(clear_vconfig): New function.
	(compatible_with_last_vconfig, riscv_sched_init): Likewise.
	(riscv_sched_reorder): Likewise.
	(TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Define.
	* config/riscv/vector.md ("*mov<mode>"): Set has_vtype_op, has_vl_op
	attributes.
	* .simplify-rtx.cc.swo: New file.

2025-11-01  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/122321
	* lra-constraints.cc (update_equiv): Make sure REGNO is in
	ira_reg_equiv before trying to update ira_reg_equiv.

2025-11-01  Martin Uecker  <uecker@tugraz.at>

	* doc/extend.texi: Document new extension.

2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (negsf2):
	Add another insn pattern that is valid when TARGET_DENSITY is
	enabled and both the source and destination are address registers.

2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md
	(c_enum "unspec", int_iterator ANY_ROUND): Add UNSPEC_ROUND.
	(int_attr m_round): Add a pair of UNSPEC_ROUND and "round".
	(int_attr c_round): New integer iterator attribute, that expands
	to "flag_unsafe_math_optimizations" in the case of UNSPEC_ROUND,
	and to "1" otherwise.
	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
	Append " && <c_round>" to the conditions.

2025-11-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (*fix<s_fix>_truncsfsi2_scaled,
	*float<s_float>sisf2_scaled, *l<m_round>sfsi2_scaled):
	Remove 'F'-constraint.

2025-11-01  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR ipa/122512
	* cgraph.h (enum toplevel_type): Add TOPLEVEL_MAX. Add comment
	about keeping toplevel_type_names in sync.
	* symtab.cc (symtab_type_names): Rename to ...
	(toplevel_type_names): Add new types and add an assert about
	the size.
	(symtab_node::get_symtab_type_string): Use toplevel_type_names
	instead of symtab_type_names.
	(symtab_node::dump_base): Likewise.

2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122437
	* fold-const.h (div_if_zero_remainder): Remove.

2025-10-31  Tamar Christina  <tamar.christina@arm.com>

	PR target/121853
	* config/aarch64/aarch64-simd.md (extendbfsf2): New.

2025-10-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122502
	* tree-scalar-evolution.cc (final_value_replacement_loop):
	Avoid folding from within FOR_EACH_IMM_USE_STMT due to active
	ranger.

2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122437
	* fold-const.cc (div_if_zero_remainder): Remove.

2025-10-31  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122497
	* tree-scalar-evolution.cc (final_value_replacement_loop): Call replace_uses_by
	only after the replacement statement was created.

2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/lasx.md: Support.
	* config/loongarch/loongarch.cc
	(loongarch_expand_vec_widen_hilo): Remove unused code.
	* config/loongarch/lsx.md: Support.

2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/lasx.md (ILASX_HB): Move to ...
	* config/loongarch/lsx.md (ILSX_HB): Move to ...
	* config/loongarch/simd.md (ILSX_HB): ... here.
	(ILASX_HB): ... here.
	(IVEC_HB): New iterator.
	(WVEC_QUARTER): New attr.
	(wvec_quarter): Likewise.
	(simdfmt_qw): Likewise.
	(<su>dot_prod<wvec_quarter><mode>): New template.

2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/lasx.md (hi_lo): Move to ...
	* config/loongarch/simd.md (hi_lo): ... here.
	* config/loongarch/loongarch.cc
	(loongarch_expand_vec_widen_hilo): Add 128-bit data processing.
	* config/loongarch/lsx.md
	(vec_widen_<su><optab>_<hi_lo>_<mode>):	New define_expand.
	(vec_widen_<su>mult_<hi_lo>_<mode>): Likewise.

2025-10-31  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/lasx.md (vec_widen_<su>add_hi_<mode>):
	Move.
	(vec_widen_<su>add_lo_<mode>): Move.
	(vec_widen_<su>sub_hi_<mode>): Move.
	(vec_widen_<su>sub_lo_<mode>): Move.
	(vec_widen_<su>mult_hi_<mode>): Move.
	(vec_widen_<su>mult_lo_<mode>): Move.
	(hi_lo): New define_int_attr.
	(vec_widen_<su><optab>_<hi_lo>_<mode>): New define_expand.
	(vec_widen_<su>mult_<hi_lo>_<mode>): Likewise.
	* config/loongarch/loongarch-protos.h
	(loongarch_expand_vec_widen_hilo): Modify the function
	parameter list.
	* config/loongarch/loongarch.cc
	(loongarch_expand_vec_widen_hilo): Optimized.

2025-10-30  David Faust  <david.faust@oracle.com>

	PR debug/122248
	* dwarf2out.cc (gen_btf_tag_dies): Always replace an existing
	AT_GNU_annotation on the target die.

2025-10-30  David Faust  <david.faust@oracle.com>

	* btfout.cc (btf_add_used_type_1): Do not consider creating
	fixups at typedefs.

2025-10-30  Michal Jires  <mjires@suse.cz>

	* lto-cgraph.cc (output_symtab): Remove asm_nodes_out.
	* lto-streamer-out.cc (lto_output_toplevel_asms): Use
	partitioning.
	(create_order_remap): Remove asm_nodes_out.
	(lto_output): In LGEN add asm_nodes into partition.
	* lto-streamer.h (lto_output_toplevel_asms): Add encoder.

2025-10-30  Michal Jires  <mjires@suse.cz>

	* lto-cgraph.cc (compute_ltrans_boundary): Add asm_node.

2025-10-30  Michal Jires  <mjires@suse.cz>

	* ipa-icf.cc (sem_item_optimizer::write_summary): Use
	toplevel_node.
	(sem_item_optimizer::read_section): Likewise.
	* ipa-modref.cc (modref_write): Likewise.
	* ipa-prop.cc (ipa_write_return_summaries): Likewise.
	(ipcp_write_transformation_summaries): Likewise.
	* ipa-reference.cc (ipa_reference_write_optimization_summary):
	Likewise.
	* lto-cgraph.cc (lto_symtab_encoder_new): Likewise.
	(lto_symtab_encoder_encode): Likewise.
	(lto_symtab_encoder_delete_node): Likewise.
	(lto_symtab_encoder_in_partition_p): Likewise.
	(lto_set_symtab_encoder_in_partition): Likewise.
	(output_refs): Likewise.
	(compute_ltrans_boundary): Likewise.
	(output_symtab): Likewise.
	(output_cgraph_opt_summary): Likewise.
	* lto-streamer-out.cc (lto_output): Likewise.
	(produce_symtab): Likewise.
	(produce_symtab_extension): Likewise.
	* lto-streamer.h (struct lto_encoder_entry): Likewise.
	(struct lto_symtab_encoder_d): Likewise.
	(lto_symtab_encoder_encode): Likewise.
	(lto_symtab_encoder_delete_node): Likewise.
	(lto_symtab_encoder_in_partition_p): Likewise.
	(lto_symtab_encoder_lookup): Likewise.
	(lsei_next): Likewise.
	(lsei_varpool_node): Likewise.

2025-10-30  Michal Jires  <mjires@suse.cz>

	* cgraph.h (enum symtab_type): Replace with toplevel_type.
	(enum toplevel_type): New.
	(struct toplevel_node): New.
	(struct asm_node): Inherits from toplevel_node.
	(test): New.
	(symbol_table::finalize_toplevel_asm): Use constructor.
	* coretypes.h (struct toplevel_node): New.
	(struct asm_node): New.
	* lto-streamer-in.cc (lto_input_toplevel_asms): Add
	lto_file_data.

2025-10-30  Michal Jires  <mjires@suse.cz>

	* cgraph.cc (cgraph_node::release_body): Keep lto_file_data.
	(cgraph_node::remove): likewise.
	* lto-section-in.cc (lto_free_function_in_decl_state_for_node):
	likewise.
	* varpool.cc (varpool_node::remove): likewise.

2025-10-30  Qing Zhao  <qing.zhao@oracle.com>

	* doc/extend.texi: Clarification when the counted_by attribute is applied
	on a void pointer.

2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR target/116075
	* fold-const-call.cc (fold_const_vec_shl_insert): New function.
	(fold_const_call): Call fold_const_vec_shl_insert for CFN_VEC_SHL_INSERT.
	* match.pd (`VEC_SHL_INSERT (dup (A), A)`): New pattern.

2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122247
	* tree-ssa-forwprop.cc (do_simple_agr_dse): Allow phi node for the usage
	if the usage of the phi result is just the "same" as the original clobber.

2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122247
	* tree-ssa-forwprop.cc (do_simple_agr_dse): Allow
	use to be a clobber of the same kind to the same lhs.

2025-10-30  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-ssa-loop-niter.cc (shifted_range_nonzero_p): New
	function.
	(number_of_iterations_cltz): Call new function.
	* tree-ssa-loop.cc (pass_scev_cprop::execute): Enable ranger.

2025-10-30  Robin Dapp  <rdapp.gcc@gmail.com>

	PR target/122445
	* config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl):
	Scale AVL of subreg uses.

2025-10-30  Artemiy Volkov  <artemiy.volkov@arm.com>

	PR tree-optimization/122478
	* match.pd: Fix the view_convert (BIT_FIELD_REF) pattern.

2025-10-30  Richard Biener  <rguenther@suse.de>

	* config/i386/i386-options.cc (ix86_option_override_internal):
	Fix check during opts->x_ix86_move_max initialization.

2025-10-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR rtl-optimization/121198
	* lra-constraints.cc (process_alt_operands): Compute least upper
	bound of all register classes over all required registers in
	order to determine register class for a hard register constraint.

2025-10-30  Richard Biener  <rguenther@suse.de>
	    Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vect-slp.cc (vect_get_operand_map): Handle commutative
	operands when swapping is requested.
	(vect_build_slp_tree_1): Allow STMT_VINFO_REDUC_IDX differences
	when operand swapping makes them match and request swapping.
	(vect_build_slp_instance): Indicate we have successfully
	discovered a SLP reduction group.

2025-10-30  Uros Bizjak  <ubizjak@gmail.com>

	PR target/116815
	* config/i386/i386.md (ovf_add_cmp): New code attribute.
	(udf_sub_cmp): Ditto.
	(ovf_comm): New int iterator.
	(*plus_within_<code><mode>3_<ovf_comm>): New insn and split pattern.
	(*minus_within_<code><mode>3): Ditto.

2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* gimple-fold.cc (gimple_fold_builtin_assume_aligned): Remove.
	(gimple_fold_builtin): Don't fold __builtin_assume_aligned

2025-10-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	Revert:
	2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR middle-end/107389
	PR tree-optimization/122086
	* tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function.
	(pass_forwprop::execute):  Use forwprop_may_propagate_copy
	instead of may_propagate_copy.

2025-10-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120687
	* tree-vect-slp.cc (vect_optimize_slp_pass::is_compatible_layout):
	New overload for checking a whole partition.
	(vect_optimize_slp_pass::legitimize): New function trying
	a single layout for all partitions for now.
	(vect_optimize_slp_pass::run): Try legitimizing to a single
	layout before propagating.
	(vect_slp_analyze_operations): For dumping deal with
	SLP_TREE_SCALAR_STMTS being empty or element zero being NULL.

2025-10-30  liuhongt  <hongtao.liu@intel.com>

	PR target/122457
	* config/i386/sse.md (VI2_AVX10_2): New mode iterator.
	(usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX10_2
	instead of VI2_AVX512F.
	(udot_prod<sseunpackmodelower><mode>): Ditto.

2025-10-30  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md (fnma<mode>4): Remove.
	* config/loongarch/lsx.md (fnma<mode>4): Remove.
	* config/loongarch/simd.md (fnma<mode>4): Simplify and correct.

2025-10-30  Jinyang He  <hejinyang@loongson.cn>
	    Peng Fan  <fanpeng@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_expand_conditional_move): Only allow valid binary
	op when optimize conditional move.

2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	Revert:
	2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116662
	* config/riscv/riscv.cc (riscv_option_override): Override
	default value for destructive interference size.

2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	Revert:
	2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116662
	* config/riscv/riscv.cc (riscv_option_override): Apply correct version
	of the patch.

2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116662
	* config/riscv/riscv.cc (riscv_option_override): Apply correct version
	of the patch.

2025-10-29  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116662
	* config/riscv/riscv.cc (riscv_option_override): Override
	default value for destructive interference size.

2025-10-29  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/91191
	* gimple-range-op.cc (gimple_range_op_handler): Descend one
	operand lower for a VIEW_CONVERT_EXPR.
	* range-op-mixed.h (class operator_view): New.
	* range-op.cc (range_op_table): Add VIEW_CONVERT_EXPR case.
	(operator_view::fold_range): New.
	(operator_view::op1_range): New.
	(operator_view::update_bitmask): New.

2025-10-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp): Mark stmts in BB roots
	as released after vect_build_slp_instance.
	(vect_build_slp_instance): Release scalar_stmts when exiting
	early.

2025-10-29  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/122097
	* config/loongarch/loongarch.cc
	(loongarch_const_vector_bitimm_set_p): Add support for vector float.
	(loongarch_const_vector_bitimm_clr_p): Likewise.
	(loongarch_print_operand): Likewise.
	* config/loongarch/simd.md (and<mode>3): Likewise.

2025-10-29  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/lasx.md (xor<mode>3): Delete.
	(ior<mode>3): Delete.
	(and<mode>3): Delete.
	* config/loongarch/lsx.md (xor<mode>3): Delete.
	(ior<mode>3): Delete.
	(and<mode>3): Delete.
	* config/loongarch/simd.md (xor<mode>3): Define.
	(ior<mode>3): Likewise.
	(and<mode>3): Likewise.

2025-10-29  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/genopts/loongarch.opt.in (-mbreak-code=):
	New.
	* config/loongarch/loongarch.opt: Regenerate.
	* config/loongarch/loongarch.md (trap): Separate to a
	define_insn and a define_expand which takes la_break_code.
	* doc/invoke.texi (-mbreak-code=): Document.
	* config/loongarch/loongarch.opt.urls: Regenerate.

2025-10-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
	Avoid explicit LOOP_VINFO_IV_EXIT reference.

2025-10-28  Artemiy Volkov  <artemiy.volkov@arm.com>

	* match.pd: Add pattern to simplify view_convert (BIT_FIELD_REF).

2025-10-28  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix error message
	parameter order and add check_only condition.  Improve diagnostic
	message formatting with proper quoting.
	(riscv_handle_rvv_vls_cc_attribute): Anonymize unused node parameter.

2025-10-28  Avinash Jayakar  <avinashd@linux.ibm.com>

	PR tree-optimization/122065
	* tree-vect-generic.cc (add_rshift): Update name and add code parameter.
	(add_shift): Update name.
	(expand_vector_mult): New lowering for MULT_EXPR.
	(expand_vector_divmod): Use updated function name.
	(expand_vector_operation): Use updated function name.

2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* expr.cc (expr_has_boolean_range): New function.
	(expand_expr_real_2): Use expr_has_boolean_range instead of
	gimple_zero_one_valued_p.
	* tree-ssanames.cc (ssa_name_has_boolean_range): Update to take
	a gimple STMT.
	* tree-ssanames.h (ssa_name_has_boolean_range): Update for the new
	argument and default to nullptr.

2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/105749
	PR tree-optimization/80635
	* match.pd (`VCE<bool>(zero_one_valued_p) ==\!= 0`): New pattern.

2025-10-27  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/122408
	* tree-vect-slp-patterns.cc (vect_validate_multiplication): Cleanup and
	document interface.
	(complex_mul_pattern::matches, complex_fms_pattern::matches): Update to
	new interface.

2025-10-27  Andrew Stubbs  <ams@baylibre.com>

	PR tree-optimization/104116
	* config/gcn/gcn-valu.md (abs<mode>2): New define_expand for
	integer vector modes.

2025-10-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/122325
	* common.opt (flag_default_complex_method): Remove.
	* opts.cc (init_options_struct): Default to fortran rules
	for complex evaluations.
	(finish_options): Remove (re-)instantiating of the frontend
	default of the complex evaluation method.

2025-10-27  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-protos.h (riscv_init_cumulative_args): Add
	bool parameter.
	* config/riscv/riscv.h (enum riscv_cc): Add RISCV_CC_VLS_V_32,
	RISCV_CC_VLS_V_64, RISCV_CC_VLS_V_128, RISCV_CC_VLS_V_256,
	RISCV_CC_VLS_V_512, RISCV_CC_VLS_V_1024, RISCV_CC_VLS_V_2048,
	RISCV_CC_VLS_V_4096, RISCV_CC_VLS_V_8192, RISCV_CC_VLS_V_16384.
	(CUMULATIVE_ARGS): Add abi_vlen field.
	* config/riscv/riscv.cc (riscv_handle_rvv_vls_cc_attribute): New
	function.
	(riscv_gnu_attributes): Add vls_cc attribute entry.
	(riscv_attributes): Add riscv_vls_cc attribute entry.
	(riscv_flatten_aggregate_field): Add vls_p and abi_vlen parameters
	to handle VLS vector types.
	(riscv_flatten_aggregate_argument): Update call to
	riscv_flatten_aggregate_field.
	(riscv_get_vector_arg): Add vls_p parameter for VLS handling.
	(riscv_vls_cc_p): New function.
	(riscv_get_cc_abi_vlen): New function.
	(riscv_valid_abi_vlen_vls_cc_p): New function.
	(riscv_get_riscv_cc_by_abi_vlen): New function.
	(riscv_get_vls_container_type): New function.
	(riscv_pass_vls_in_vr): New function.
	(riscv_pass_aggregate_in_vr): New function.
	(riscv_get_arg_info): Add VLS calling convention handling.
	(riscv_function_arg_advance): Update for VLS calling convention.
	(riscv_return_in_memory): Add fntype parameter and initialize
	cumulative args properly.
	(riscv_v_abi): Add abi parameter.
	(riscv_get_vls_cc_attr): New function.
	(riscv_vls_cc_function_abi): New function.
	(riscv_fntype_abi): Add VLS calling convention detection.
	(riscv_asm_output_variant_cc): Update for VLS calling convention.

2025-10-27  Jeff Law  <jlaw@ventanamicro.com>

	PR target/64345
	PR tree-optimization/80770
	* config/riscv/bitmanip.md (<optab>_not_const<mode>): Turn into a
	peephole2 to avoid matching prior to combine.
	* ifcvt.cc (noce_try_sign_bit_splat): When costs are equal steer
	towards an AND based sequence.

2025-10-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122419
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Only
	skip noop conversions.

2025-10-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122435
	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
	Also match noop conversions when detecting redundant stores.

2025-10-27  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.cc (loongarch_rtx_costs):
	Ignore the cost impact of SIGN_EXTEND/ZERO_EXTEND.

2025-10-27  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.md (both_non_zero): New combiner.
	(both_non_zero_subreg): Ditto.

2025-10-27  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.md
	(sign_extend_ashift<GPR:mode><SHORT:mode>): New combiner.

2025-10-27  Kito Cheng  <kito.cheng@sifive.com>

	* function-abi.h (NUM_ABI_IDS): Increase from 8 to 12.

2025-10-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (one_cmplsi2):
	Rearrange back as an expand pattern.

2025-10-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR middle-end/107389
	PR tree-optimization/122086
	* tree-ssa-forwprop.cc (forwprop_may_propagate_copy): New function.
	(pass_forwprop::execute):  Use forwprop_may_propagate_copy
	instead of may_propagate_copy.

2025-10-26  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR target/122270
	* config/riscv/riscv-vector-builtins-bases.cc (vset::fold): Use the
	unshare_expr for the statement that will be added seperately rather
	the one which will be used for the replacement.

2025-10-26  James K. Lowden  <jklowden@cobolworx.com>

	* doc/install.texi: Add libxml2 dependency for COBOL
	library. Clarify 128-bit numeric dependency.

2025-10-26  Gerald Pfeifer  <gerald@pfeifer.com>

	* poly-int.h: Change struct poly_int to class poly_int.

2025-10-26  LIU Hao  <lh_mouse@126.com>

	PR target/119079
	* config/i386/i386.md: Use `movsxd` to perform SI-to-DI extension in Intel
	syntax.

2025-10-26  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/riscv.cc (riscv_legitimize_move): Append extend.

2025-10-26  Osama Abdelkader  <osama.abdelkader@gmail.com>

	* wide-int.h: Fix typo "accomodate" to "accommodate" in comment.
	* value-range-storage.h: Likewise.
	* tree-vectorizer.h (dr_set_safe_speculative_read_required):
	Fix duplicate "the the" to "the" in comment.

2025-10-25  Sam James  <sam@gentoo.org>

	* doc/extend.texi (nocf_check): Fix syntax errors in example.

2025-10-25  Jiahao Xu  <xujiahao@loongson.cn>

	* config/loongarch/lasx.md (vec_extract<mode><lasxhalf>): New define_expand.
	(vec_extract_lo_<mode>): New define_insn_and_split.
	(vec_extract_hi_<mode>): New define_insn.
	* config/loongarch/loongarch-protos.h (loongarch_check_vect_par_cnst_half)
	New function prototype.
	* config/loongarch/loongarch.cc (loongarch_split_reduction):
	Implement TARGET_VECTORIZE_SPLIT_REDUCTION.
	(loongarch_check_vect_par_cnst_half): New function.
	* config/loongarch/predicates.md
	(vect_par_cnst_low_half): New predicate.
	(vect_par_cnst_high_half): New predicate.

2025-10-24  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/114025
	* gimple-range-fold.cc (fold_using_range::condexpr_adjust): Handle
	the same ssa_name in the condition and the COND_EXPR better.

2025-10-24  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_bitwise_and::wi_fold): Split signed
	operations crossing zero into 2 operations.

2025-10-24  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/118254
	PR tree-optimization/114331
	* range-op.cc (operator_cast::fold_range): When VARYING is
	reached, update the bitmask if we reach VARYING.
	(operator_cast::op1_range): For truncating casts, create a
	bitmask bit in LHS.

2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (call_internal, call_value_internal,
	sibcall_internal, sibcall_value_internal): Remove 'n'-constraint.

2025-10-24  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (*addsubx, *subsi3_from_const,
	*xtensa_clamps, *andsi3_const_pow2_minus_one,
	*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
	*splice_bits, extvsi_internal, extzvsi_internal,
	*extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx, insvsi, *lsiu, *ssiu,
	*lsip, *ssip, *shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1,
	*shlrd_const, *shlrd_per_byte_omit_AND, *masktrue_const_bitcmpl,
	*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
	*masktrue_const_shifted_mask, call_internal, call_value_internal,
	sibcall_internal, sibcall_value_internal, entry,
	*eqne_zero_masked_bits, *eqne_in_range): Remove 'i'-constraint.

2025-10-24  Josef Melcr  <jmelcr02@gmail.com>

	PR middle-end/122392
	* attr-callback.cc (callback_build_attr): Remove erroneous
	annotation.

2025-10-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): SLP-ify reduction
	operation processing a bit more.

2025-10-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122406
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Create
	the SLP nodes for the conversions around the reduction
	operation if required.

2025-10-24  Paul-Antoine Arras  <parras@baylibre.com>

	PR fortran/121452
	* omp-low.cc (check_omp_nesting_restrictions): Accept an
	OMP_STRUCTURED_BLOCK in a collapsed simd region and in an ordered loop.

2025-10-24  Pengfei Li  <Pengfei.Li2@arm.com>

	* match.pd: Fold VEC_PERM_EXPR chains implementing vector
	concat-and-extract.

2025-10-24  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (SET_CMODEL): Undefine before
	(re)defining.

2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Better handling
	of `((signed)x) < 0`.

2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/101024
	* tree-ssa-phiopt.cc (match_simplify_replacement): Special
	case fp `a CMP b ? a : b` when not creating a min/max.
	(strip_bit_not): Remove.
	(invert_minmax_code): Remove.
	(minmax_replacement): Remove.
	(pass_phiopt::execute): Update pass comment.
	Don't call minmax_replacement.

2025-10-23  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/101024
	* fold-const.cc (minmax_from_comparison): New version that takes widest_int
	instead of tree.
	(minmax_from_comparison):  Call minmax_from_comparison for integer cst case.
	* fold-const.h (minmax_from_comparison): New declaration.
	* match.pd (`((signed)a </>= 0) ? min/max (a, c) : b`): New pattern.

2025-10-23  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add
	__HAVE_FUNCTION_MULTI_VERSIONING macro.

2025-10-23  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.cc (dispatch_function_versions): Remove
	unnecessary sorting and data structure.

2025-10-23  Alfie Richards  <alfie.richards@arm.com>

	PR target/122190
	* config/aarch64/aarch64.cc (compare_feature_masks): Fix version rules.

2025-10-23  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body):
	Dump function versions and the ordering.

2025-10-23  zhaozhou  <zhaozhou@loongson.cn>

	* match.pd: Add new pattern for round.

2025-10-23  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_loop_vec_info::slp_unrolling_factor): Remove.
	(LOOP_VINFO_SLP_UNROLLING_FACTOR): Likewise.
	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Adjust.
	(vect_analyze_loop_2): Likewise.
	* tree-vect-slp.cc (vect_make_slp_decision): Set
	LOOP_VINFO_VECT_FACTOR directly.

2025-10-23  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_2): Move vect_optimize_slp
	after applying suggested_unroll_factor.

2025-10-23  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_2): Deal with NULL
	element in SLP_TREE_SCALAR_STMTS.

2025-10-23  liuhongt  <hongtao.liu@intel.com>

	PR target/101639
	* config/i386/sse.md
	(VI_AVX): New mode iterator.
	(VI_AVX_CMP): Ditto.
	(ssebytemode): Add V16HI, V32QI, V16QI.
	(reduc_sbool_and_scal_<mode>): New expander.
	(reduc_sbool_ior_scal_<mode>): Ditto.
	(reduc_sbool_xor_scal_<mode>): Ditto.
	(*eq<mode>3_2_negate): New pre_reload splitter.
	(*ptest<mode>_ccz): Ditto.

2025-10-23  liuhongt  <hongtao.liu@intel.com>

	PR target/101639
	* config/i386/sse.md
	(reduc_sbool_and_scal_<mode>): New expander.
	(reduc_sbool_ior_scal_<mode>): Ditto.
	(reduc_sbool_xor_scal_<mode>): Ditto.

2025-10-22  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
	HOST_WIDE_INT_0U and HOST_WIDE_INT_M1U to initialize unsigned
	HOST_WIDE_INT.

2025-10-22  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): Use SVE if
	available.
	* config/aarch64/aarch64-sve.md (*cmp<cmp_op><mode>_ptest): Rename ...
	(@aarch64_pred_cmp<cmp_op><mode>_ptest): ... To this.
	(reduc_sbool_xor_scal_<mode>): Rename ...
	(@reduc_sbool_xor_scal_<mode>): ... To this.

2025-10-22  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (reduc_sbool_and_scal_<mode>,
	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.
	* config/aarch64/iterators.md (VALLI): New.

2025-10-22  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-sve.md (reduc_sbool_and_scal_<mode>,
	reduc_sbool_ior_scal_<mode>, reduc_sbool_xor_scal_<mode>): New.

2025-10-22  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-loop.cc (vectorizable_reduction): Don't always require
	IFN_VEC_SHL_INSERT when using reduc sbool optabs.

2025-10-22  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	* config/aarch64/aarch64.opt.urls: Regenerate.

2025-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122364
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Re-try
	linearization on a conversion source.

2025-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122370
	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	Also update compute_vectype when demoting masks to an
	integer vector.

2025-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122371
	* tree-vect-loop.cc (vectorize_fold_left_reduction): Get
	to the scalar def to replace via the scalar PHI backedge def.
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Do not
	re-associate to for a reduction chain if a fold-left
	reduction is required.

2025-10-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122365
	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	Convert all inputs.  Use the proper vector element sizes
	for the elementwise reduction.

2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_intel_cpu): Handle Nova Lake.
	* common/config/i386/i386-common.cc (processor_name):
	Add Nova Lake.
	(processor_alias_table): Ditto.
	* common/config/i386/i386-cpuinfo.h (enum processor_types):
	Add INTEL_COREI7_NOVALAKE.
	* config.gcc: Add -march=novalake.
	* config/i386/driver-i386.cc (host_detect_local_cpu): Handle
	novalake.
	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
	* config/i386/i386-options.cc (processor_cost_table): Ditto.
	(m_NOVALAKE): New.
	(m_CORE_HYBRID): Add novalake.
	* config/i386/i386.h (enum processor_type): Ditto.
	* doc/extend.texi: Ditto.
	* doc/invoke.texi: Ditto.

2025-10-22  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/driver-i386.cc (host_detect_local_cpu): Correct
	the logic for unknown model number cpu guess value.

2025-10-22  liuhongt  <hongtao.liu@intel.com>

	PR target/122320
	* config/i386/sse.md (*<avx512>_cmp<mode>3_dup_op): New define_insn_and_split.

2025-10-22  Antoni Boucher  <bouanto@zoho.com>

	* config/i386/i386-jit.cc: Mark new float types as supported.

2025-10-21  Antoni Boucher  <bouanto@zoho.com>

	* config.gcc (jit_target_objs): Don't set this variable since
	the object files don't exist.

2025-10-21  Roger Sayle  <roger@nextmovesoftware.com>

	* config/i386/i386-features.cc (timode_concatdi_p): New
	function to recognize the various variants of *concatditi3_[1-7].
	(scalar_chain::add_insn): Like VEC_SELECT, ZERO_EXTEND and
	timode_concatdi_p instructions don't require their input
	operands to be converted (to TImode).
	(timode_scalar_chain::compute_convert_gain): Split/clone XOR and
	IOR cases from AND case, to handle timode_concatdi_p costs.
	<case PLUS>: Handle timode_concatdi_p conversion costs.
	<case ZERO_EXTEND>: Provide costs of DImode to TImode extension.
	(timode_convert_concatdi): Helper function to transform
	a *concatditi3 instruction into a vec_concatv2di instruction.
	(timode_scalar_chain::convert_insn): Split/clone XOR and IOR
	cases from ANS case, to handle timode_concatdi_p using the new
	timode_convert_concatdi helper function.
	<case ZERO_EXTEND>: Convert zero_extendditi2 to *vec_concatv2di_0.
	<case PLUS>: Handle timode_concatdi_p using the new
	timode_convert_concatdi helper function.
	(timode_scalar_to_vector_candidate_p): Support timode_concatdi_p
	instructions in IOR, XOR and PLUS cases.
	<case ZERO_EXTEND>: Consider zero extension of a register from
	DImode to TImode to be a candidate.

2025-10-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120687
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): When
	there's no natural reduction chain see if vect_slp_linearize_chain
	can recover one and built the SLP instance manually in that
	case.
	(vect_schedule_slp): Deal with NULL lanes when looking for
	stores to remove.
	* tree-vect-loop.cc (vect_transform_cycle_phi): Dump when we
	are successfully transforming a reduction chain.

2025-10-21  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_create_partial_epilog): Pun back
	to the requested type if necessary.

2025-10-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/95699
	PR tree-optimization/101024
	PR tree-optimization/110068
	* match.pd (`(type1)x CMP CST1 ? (type2)x : CST2`): Treat
	`(signed)x </>= 0` as `x >=/< SIGNED_TYPE_MIN`

2025-10-21  Olivier Hainque  <hainque@adacore.com>

	* config/rs6000/vxworks.h (ASM_PREFERRED_EH_DATA_FORMAT):
	Redefine.

2025-10-21  Olivier Hainque  <hainque@adacore.com>

	* config/vxworks.h (VXWORKS_ADDITIONAL_CPP_SPEC):
	Remove guard on -fself-tests and replace %:getenv(VSB_DIR) by
	sysroot references.

2025-10-20  Josef Melcr  <jmelcr02@gmail.com>

	* ipa-fnsummary.cc (redirect_to_unreachable): Purge callback
	edges when redirecting the carrying edge.
	(analyze_function_body): Fix typo.

2025-10-20  Svante Signell  <svante.signell@gmail.com>

	PR go/104290
	* config/gnu.h (OPTION_GLIBC_P, OPTION_GLIBC): Define.

2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/constraints.md (R, U):
	Change define_memory_constraint to define_special_memory_constraint.
	* config/xtensa/xtensa.md
	(movsi_internal, movhi_internal, movqi_internal):
	Rearrange their alternatives in the order of constant assignment, register-
	register move, load, store and special.  And also consolidate overlapping
	alternatives.
	(movsf_internal): Rearrange the alternatives as above, and remove the '^'
	alternative character which is no longer needed.

2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc
	(constantsynth_method_const16): New.
	(constantsynth_methods): Append constantsynth_method_const16().
	(constantsynth_info): Add cost calculation for full-word constant
	assignment when TARGET_CONST16 is enabled.
	(constantsynth_pass1): Change it so that it works regardless of
	TARGET_CONST16.
	* config/xtensa/xtensa.md (*xtensa_const16): New.

2025-10-20  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (do_largeconst):
	Change split_DI_SF_DF_const() to be called unconditionally.

2025-10-20  Olivier Hainque  <hainque@adacore.com>

	* config.gcc (powerpc*-wrs-vxworks7r*): Add linux-protos.h
	to tm_p_file.

2025-10-20  Olivier Hainque  <hainque@adacore.com>

	* config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Only
	builtin_define TOOL and TOOL_FAMILY for !TARGET_VXWORKS7.
	Augment comment on VXWORKS_PERSONALITY.
	* config/vxworks/vxworks-predef.h: Infer TOOL and TOOL_FAMILY
	from the VSB autoconf.h	when we have one, determined by the presence
	of a _VSB_CONFIG_FILE definition.

2025-10-20  Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	* config/aarch64/aarch64-elf.h (ASM_SPEC): Update the macro.
	* config/aarch64/aarch64.cc (aarch64_valid_sysreg_name_p):
	Add feature check condition.
	(aarch64_retrieve_sysreg): Likewise.
	* config/aarch64/aarch64.opt (menable-sysreg-checking):
	Define new flag.
	* doc/invoke.texi (menable-sysreg-checking): Document new flag.

2025-10-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121631
	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	When the reduction operation invokes UB on signed overflow
	make sure to perform operations with it on an unsigned type.

2025-10-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/101639
	PR tree-optimization/103495
	* tree-vectorizer.h (vect_reduc_info_s): Add reduc_type_for_mask.
	(VECT_REDUC_INFO_VECTYPE_FOR_MASK): New.
	* tree-vect-patterns.cc (vect_determine_mask_precision):
	Return whether the mask precision changed.
	(vect_determine_precisions): Iterate mask precision computation
	for loop vectorization.
	* tree-vect-loop.cc (get_initial_defs_for_reduction): Properly
	convert non-mask initial values to a mask initial def for
	the reduction.
	(sbool_reduction_fn_for_fn): New function.
	(vect_create_epilog_for_reduction): For a mask input convert
	it to the vector type analysis decided to use.  Use a regular
	conversion for the final convert to the scalar code type.
	(vectorizable_reduction): Support mask reductions.  Verify
	we can compute a data vector from the mask result or a direct
	maks reduction is provided by the target.

2025-10-20  Richard Biener  <rguenther@suse.de>

	* doc/md.texi (reduc_sbool_{and,ior,xor}_scal_<mode>): Document.
	* optabs.def (reduc_sbool_and_scal_optab,
	reduc_sbool_ior_scal_optab, reduc_sbool_xor_scal_optab): New.
	* internal-fn.def (REDUC_SBOOL_AND, REDUC_SBOOL_IOR,
	REDUC_SBOO_XOR): Likewise.
	* internal-fn.cc (reduc_sbool_direct): New initializer.
	(expand_reduc_sbool_optab_fn): New expander.
	(direct_reduc_sbool_optab_supported_p): New.

2025-10-20  H.J. Lu  <hjl.tools@gmail.com>

	PR target/99930
	PR target/122323
	* config/i386/i386-expand.cc (ix86_expand_copysign): Swap
	operands[1] with operands[2].  Optimize copysign (x, const_double)
	instead of copysign (const_double, x).
	* config/i386/i386.md (copysign<mode>3): Swap constraints for
	operands[1] and operands[2].

2025-10-19  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): Also
	handle PLUS.
	* config/avr/avr.md (pixaop): New code iterator for PLUS,
	IOR, XOR, AND.
	(nzb=1 insns): Use pixaop instead of bitop code iterator.
	Handle PLUS in outputs.

2025-10-18  Mark Wielaard  <mark@klomp.org>

	* common.opt.urls: Regenerate.

2025-10-18  Iain Sandoe  <iain@sandoe.co.uk>

	PR c++/119060
	* builtins.cc (expand_builtin): Handle BUILT_IN_OBSERVABLE_CHKPT.
	* builtins.def (BUILT_IN_OBSERVABLE_CHKPT): New.
	* tree.cc (build_common_builtin_nodes): Build observable
	checkpoint builtin.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/aarch64/aarch64-sve2.md
	(widen_ssum<mode><Vnarrow>3): Update.
	(widen_usum<mode><Vnarrow>3): Update.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/aarch64/aarch64-sve2.md: (widen_ssum<mode><Vnarrow>3): New.
	(widen_usum<mode><Vnarrow>3): New.
	* config/aarch64/iterators.md (Vnarrow): New, to match VNARROW.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/aarch64/aarch64-sve.md (widen_<sur>sum<mode><vsi2qi>3): New.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/rs6000/altivec.md (widen_usum<mode>3): Rename ...
	(widen_usumv4si<mode>3): ... to this.
	(widen_ssumv16qi3): Rename ...
	(widen_ssumv4siv16qi3): ... to this.
	(widen_ssumv8hi3): Rename ...
	(widen_ssumv4siv8hi3): ... to this.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/ia64/vect.md (widen_usumv8qi3): Renamed ...
	(widen_usumv4hiv8qi3): ... into this.
	(widen_usumv4hi3): Renamed ...
	(widen_usumv2siv4hi3): ... into this.
	(widen_ssumv8qi3): Renamed ...
	(widen_ssumv4hiv8qi3): ... into this.
	(widen_ssumv4hi3): Renamed ...
	(widen_ssumv2siv4hi3): ... into this.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/arm/iterators.md (v_double_width): New, matching
	V_double_width.
	* config/arm/neon.md (widen_ssum<mode>3): Renamed ...
	(widen_ssum<v_double_width><mode>3, widen_ssum<V_widen_l><mode>3): ...
	into these.
	(widen_usum<mode>3): Renamed ...
	(widen_usum<v_double_width><mode>3, widen_usum<V_widen_l><mode>3): ...
	into these.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/aarch64/aarch64-simd.md (widen_ssum<mode><vsi2qi>3): New.
	(widen_usum<mode><vsi2qi>3): New.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* config/aarch64/aarch64-simd.md (widen_ssum<mode>3): Change into..
	(widen_ssum<Vdblw><mode>3, widen_ssum<Vwide><mode>3): ... these.
	(widen_usum<mode>3): Change into ...
	(widen_usum<Vdblw><mode>3, widen_usum<Vwide><mode>3): ... these.
	* config/aarch64/iterators.md (Vdblw): New.
	(Vwide): Extend to match VWIDE.

2025-10-18  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/122069
	* doc/md.texi (widen_ssum@var{n}@var{m}3, widen_usum@var{n}@var{m}3):
	Update docs.
	* optabs.cc (expand_widen_pattern_expr): Add WIDEN_SUM_EXPR as widening.
	* optabs.def (ssum_widen_optab, usum_widen_optab): Convert from direct
	to a conversion optab.
	* tree-vect-patterns.cc (vect_recog_widen_sum_pattern): Change
	vect_supportable_direct_optab_p into vect_supportable_conv_optab_p.

2025-10-18  Linsen Zhou  <i@lin.moe>

	PR tree-optimization/122012
	* tree-object-size.cc (check_for_plus_in_loops): Skip check
	for the variable offset

2025-10-17  David Faust  <david.faust@oracle.com>

	PR target/122139
	* config/bpf/bpf.cc (bpf_expand_setmem): Duplicate byte value
	across to new mode when using larger modes for store.

2025-10-17  Tamar Christina  <tamar.christina@arm.com>
	    Jennifer Schmitz  <jschmitz@nvidia.com>

	PR target/121604
	* config/aarch64/aarch64-sve-builtins-shapes.cc (apply_predication):
	Store gp_index.
	(struct pmov_to_vector_lane_def): Mark instruction as has no GP.
	* config/aarch64/aarch64-sve-builtins.h (function_instance::gp_value,
	function_instance::inactive_values, function_instance::gp_index,
	function_shape::has_gp_argument_p): New.
	* config/aarch64/aarch64-sve-builtins.cc (gimple_folder::fold_pfalse):
	Simplify code and use GP helpers.

2025-10-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122308
	* gimple-loop-jam.cc (tree_loop_unroll_and_jam): Do LIM
	after applying unroll-and-jam.

2025-10-17  Josef Melcr  <jmelcr02@gmail.com>

	* Makefile.in: Add attr-callback.o to OBJS.
	* builtin-attrs.def (ATTR_CALLBACK): Callback attr identifier.
	(DEF_CALLBACK_ATTRIBUTE): Macro for callback attr creation.
	(GOMP): Attr for libgomp functions.
	(ATTR_CALLBACK_GOMP_LIST): ATTR_NOTHROW_LIST with GOMP callback
	attr added.
	* cgraph.cc (cgraph_add_edge_to_call_site_hash): Always hash the
	callback-carrying edge.
	(cgraph_node::get_edge): Always return the callback-carrying
	edge.
	(cgraph_edge::set_call_stmt): Add cascade for callback edges.
	(symbol_table::create_edge): Allow callback edges to share call
	stmts, initialize new flags.
	(cgraph_edge::make_callback): New method, derives a new callback
	edge.
	(cgraph_edge::get_callback_carrying_edge): New method.
	(cgraph_edge::first_callback_edge): Likewise.
	(cgraph_edge::next_callback_edge): Likewise.
	(cgraph_edge::purge_callback_edges): Likewise.
	(cgraph_edge::redirect_callee): When redirecting a callback
	edge, redirect its ref as well.
	(cgraph_edge::redirect_call_stmt_to_callee): Add callback edge
	redirection logic, set update_derived_edges to true hwne
	redirecting the carrying edge.
	(cgraph_node::remove_callers): Add cascade for callback edges.
	(cgraph_edge::dump_edge_flags): Print callback flags.
	(cgraph_node::verify_node): Add sanity checks for callback
	edges.
	* cgraph.h: Add new 1 bit flags and 16 bit callback_id to
	cgraph_edge class.
	* cgraphclones.cc (cgraph_edge::clone): Copy over callback data.
	* cif-code.def (CALLBACK_EDGE): Add CIF_CALLBACK_EDGE code.
	* ipa-cp.cc (purge_useless_callback_edges): New function,
	deletes callback edges when necessary.
	(ipcp_decision_stage): Call purge_useless_callback_edges.
	* ipa-fnsummary.cc (ipa_call_summary_t::duplicate): Add
	an exception for callback edges.
	(analyze_function_body): Copy over summary from carrying to
	callback edge.
	* ipa-inline-analysis.cc (do_estimate_growth_1): Skip callback
	edges when estimating growth.
	* ipa-inline-transform.cc (inline_transform): Add redirection
	cascade for callback edges.
	* ipa-param-manipulation.cc
	(drop_decl_attribute_if_params_changed_p): New function.
	(ipa_param_adjustments::build_new_function_type): Add
	args_modified out param.
	(ipa_param_adjustments::adjust_decl): Drop callback attrs when
	modifying args.
	* ipa-param-manipulation.h: Adjust decl of
	build_new_function_type.
	* ipa-prop.cc (ipa_duplicate_jump_function): Add decl.
	(init_callback_edge_summary): New function.
	(ipa_compute_jump_functions_for_edge): Add callback edge
	creation logic.
	* lto-cgraph.cc (lto_output_edge): Stream out callback data.
	(input_edge): Input callback data.
	* omp-builtins.def (BUILT_IN_GOMP_PARALLEL_LOOP_STATIC): Use new
	attr list.
	(BUILT_IN_GOMP_PARALLEL_LOOP_GUIDED): Likewise.
	(BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_DYNAMIC): Likewise.
	(BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME): Likewise.
	(BUILT_IN_GOMP_PARALLEL): Likewise.
	(BUILT_IN_GOMP_PARALLEL_SECTIONS): Likewise.
	(BUILT_IN_GOMP_TEAMS_REG): Likewise.
	* tree-core.h (ECF_CB_1_2): New constant for callback(1,2).
	* tree-inline.cc (copy_bb): Copy callback edges when copying the
	carrying edge.
	(redirect_all_calls): Redirect callback edges.
	* tree.cc (set_call_expr_flags): Create callback attr according
	to the ECF_CB flag.
	* attr-callback.cc: New file.
	* attr-callback.h: New file.

2025-10-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122301
	* tree-vect-patterns.cc (vect_recog_over_widening_pattern):
	Fix reduction guard.
	(vect_mark_pattern_stmts): Fix reduction def check.

2025-10-17  Avinash Jayakar  <avinashd@linux.ibm.com>

	PR tree-optimization/104116
	* tree-vect-patterns.cc (add_code_for_floorceilround_divmod): patt recog
	for {FLOOR,ROUND,CEIL}_{DIV,MOD}_EXPR.
	(vect_recog_divmod_pattern): Call add_code_for_floorceilround_divmod
	after computing div/mod for each control path.

2025-10-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122296
	* match.pd (`(a != b) | ((a|b) != 0)`): Reuse both
	the ior and zero instead of recreating them.
	(`(a == b) & ((a|b) == 0)`): Likewise

2025-10-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122296
	* match.pd (`(a == b) | ((a|b) != 0)`): Fix true value.

2025-10-17  Hu, Lin1  <lin1.hu@intel.com>

	PR target/122119
	* config/i386/amxmovrsintrin.h
	(_tile_loaddrs_internal): Use __PTRDIFF_TYPE__ instead of long.
	(_tile_loaddrst1_internal): Ditto.

2025-10-16  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add
	custom-sarif-properties/digraphs.o and
	custom-sarif-properties/state-graphs.o.  Remove
	diagnostics/state-graphs.o.
	* configure: Regenerate.
	* configure.ac: Add custom-sarif-properties to subdir iteration.
	* custom-sarif-properties/digraphs.cc: New file.
	* custom-sarif-properties/digraphs.h: New file.
	* custom-sarif-properties/state-graphs.cc: New file.
	* custom-sarif-properties/state-graphs.h: New file.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
	Delete decl.
	* diagnostics/digraphs.cc: Include
	"custom-sarif-properties/digraphs.h".  Move include of
	"selftest.h" to within CHECKING_P section.
	(using digraph_object): New.
	(namespace properties): New.
	(diagnostics::digraphs::object::get_attr): Delete.
	(diagnostics::digraphs::object::set_attr): Delete.
	(diagnostics::digraphs::object::set_json_attr): Delete.
	(digraph_object::get_property): New definitions, for various
	property types.
	(digraph_object::set_property): Likewise.
	(digraph_object::maybe_get_property): New.
	(digraph_object::get_property_as_tristate): New.
	(digraph_object::ensure_property_bag): New.
	(digraph::get_graph_kind): New.
	(digraph::set_graph_kind): New.
	Add include of "custom-sarif-properties/state-graphs.h".
	(selftest::test_simple_graph): Rewrite to use json::property
	instances rather than string attribute names.
	(selftest::test_property_objects): New test.
	(selftest::digraphs_cc_tests): Call it.
	* diagnostics/digraphs.h: Include "tristate.h".
	(object::get_attr): Delete.
	(object::set_attr): Delete.
	(object::get_property): New decls.
	(object::set_property): New decls.
	(object::maybe_get_property): New.
	(object::get_property_as_tristate): New.
	(object::set_json_attr): Delete.
	(object::ensure_property_bag): New.
	(graph::get_graph_kind): New.
	(graph::set_graph_kind): New.
	* diagnostics/html-sink.cc
	(html_generation_options::html_generation_options): Update for
	field renamings.
	(html_generation_options::dump): Likewise.
	(html_builder::maybe_make_state_diagram): Likewise.
	(html_builder::add_graph): Show SARIF and .dot src inline, if
	requested.
	* diagnostics/html-sink.h
	(html_generation_options::m_show_state_diagrams_sarif): Rename
	to...
	(html_generation_options::m_show_graph_sarif): ...this.
	(html_generation_options::m_show_state_diagrams_dot_src): Rename
	to...
	(html_generation_options::m_show_graph_dot_src0): ...this.
	* diagnostics/output-spec.cc
	(html_scheme_handler::maybe_handle_kv): Rename keys.
	(html_scheme_handler::get_keys): Likewise.
	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
	use json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* diagnostics/state-graphs.cc: Deleted file.
	* diagnostics/state-graphs.h: Delete almost all, except decl of
	diagnostics::state_graphs::make_dot_graph.
	* doc/invoke.texi: Update for changes to "experimental-html" sink
	keys.
	* json.cc (json::object::set_string): New.
	(json::object::set_integer): New.
	(json::object::set_bool): New.
	(json::object::set_array_of_string): New.
	* json.h: Include "label-text.h".
	(struct json::property): New template.
	(json::string_property): New.
	(json::integer_property): New.
	(json::bool_property): New.
	(json::json_property): New.
	(using json::array_of_string_property): New.
	(struct json::enum_traits): New.
	(enum_json::property): New.
	(json::value::dyn_cast_array): New vfunc.
	(json::value::dyn_cast_integer_number): New vfunc.
	(json::value::set_string): New.
	(json::value::set_integer): New.
	(json::value::set_bool): New.
	(json::value::set_array_of_string): New.
	(json::value::maybe_get_enum): New.
	(json::value::set_enum): New.
	(json::array::dyn_cast_array): New.
	(json::integer_number::dyn_cast_integer_number): New.
	(object::maybe_get_enum): New.
	(object::set_enum): New.

2025-10-16  Ayappan Perumal  <ayappap2@in.ibm.com>

	* config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS):
	Error out when stack-protector option is used in AIX
	as it is not supported on AIX
	Approved By: Segher Boessenkool <segher@kernel.crashing.org>

2025-10-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122292
	* tree-vect-loop.cc (vect_transform_reduction): Compute the
	input vector type the same way the analysis phase does.

2025-10-15  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/121468
	PR tree-optimization/121206
	PR tree-optimization/122200
	* value-range.cc (irange_bitmask::range_from_mask): New.
	(irange::snap): Add explicit overflow flag.
	(irange::snap_subranges): Use overflow flag.
	(irange::set_range_from_bitmask): Use range_from_mask.
	(test_irange_snap_bounds): Adjust for improved ranges.
	* value-range.h (irange::range_from_mask): Add prototype.
	(irange::snap): Adjust prototype.

2025-10-15  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-devices.def (gfx942, gfx950): Set generic name
	to GFX9_4_GENERIC.
	* config/gcn/t-omp-device: Include generic names for OpenMP's
	ISA trait.

2025-10-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* print-tree.cc (print_node): Print out clique/base
	for MEM_REF and TARGET_MEM_REF.

2025-10-15  Richard Earnshaw  <rearnsha@arm.com>

	PR target/118460
	* config/arm/arm.cc (arm_canonicalize_comparison): For floating-
	point comparisons, swap the operand order if that will be more
	likely to produce a comparison that can be used with VSEL.
	(arm_validize_comparison): Make sure that HFmode comparisons
	are compatible with VSEL.

2025-10-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122037
	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
	__builtin_stack_save when the lhs is unused.

2025-10-15  Alice Carlotti  <alice.carlotti@arm.com>

	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
	* config/aarch64/aarch64.cc (F_ARCHEXT): Delete flag.
	* config/aarch64/aarch64.h
	(AARCH64_FL_AMU): Delete unused macro.
	(AARCH64_FL_SCXTNUM): Ditto.
	(AARCH64_FL_ID_PFR2): Ditto.
	(AARCH64_FL_AIE): Ditto.
	(AARCH64_FL_DEBUGv8p9): Ditto.
	(AARCH64_FL_FGT2): Ditto.
	(AARCH64_FL_PFAR): Ditto.
	(AARCH64_FL_PMUv3_ICNTR): Ditto.
	(AARCH64_FL_PMUv3_SS): Ditto.
	(AARCH64_FL_PMUv3p9): Ditto.
	(AARCH64_FL_S1PIE): Ditto.
	(AARCH64_FL_S1POE): Ditto.
	(AARCH64_FL_S2PIE): Ditto.
	(AARCH64_FL_S2POE): Ditto.
	(AARCH64_FL_SCTLR2): Ditto.
	(AARCH64_FL_SEBEP): Ditto.
	(AARCH64_FL_SPE_FDS): Ditto.
	(AARCH64_FL_TCR2): Ditto.

2025-10-15  Sebastian Pop  <spop@nvidia.com>

	* doc/invoke.texi (ftree-parallelize-loops): Update.
	* common.opt (ftree-parallelize-loops): Add alias that maps to
	special value INT_MAX for runtime thread detection.
	* tree-parloops.cc (create_parallel_loop): Use INT_MAX for runtime
	detection.  Call gimple_build_omp_parallel without building a
	OMP_CLAUSE_NUM_THREADS clause.
	(gen_parallel_loop): For auto-detection, use a conservative
	estimate of 2 threads.
	(parallelize_loops): Same.

2025-10-15  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/122189
	* config/arm/iterators.md (VxCIQ_carry, VxCIQ_M_carry, VxCQ_carry)
	(VxCQ_M_carry): New iterators.
	* config/arm/mve.md (get_fpscr_nzcvqc, set_fpscr_nzcvqc): Use
	unspec instead of unspec_volatile.
	(vadciq, vadciq_m, vadcq, vadcq_m): Use vfpcc in operation.  Use a
	different unspec code for carry calcultation.
	* config/arm/unspecs.md (VADCQ_U_carry, VADCQ_M_U_carry)
	(VADCQ_S_carry, VADCQ_M_S_carry, VSBCIQ_U_carry ,VSBCIQ_S_carry
	,VSBCIQ_M_U_carry ,VSBCIQ_M_S_carry ,VSBCQ_U_carry ,VSBCQ_S_carry
	,VSBCQ_M_U_carry ,VSBCQ_M_S_carry ,VADCIQ_U_carry
	,VADCIQ_M_U_carry ,VADCIQ_S_carry ,VADCIQ_M_S_carry): New unspec
	codes.

2025-10-15  Roger Sayle  <roger@nextmovesoftware.com>

	PR rtl-optimization/122266
	* combine.cc (struct reg_stat_type): Change types of sign_bit_copies
	and last_set_sign_bit_copies to unsigned short, to avoid overflows
	on TImode (and wider) values.

2025-10-15  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (scale_bb_profile): Use
	profile_count::max_prefer_initialized.
	(afdo_adjust_guessed_profile): Likewise.
	* bb-reorder.cc (edge_order): Do not use max.
	* cfghooks.cc (merge_blocks): Likewise.
	* ipa-fnsummary.cc (param_change_prob): Likewise.
	* ipa-inline-transform.cc (inline_transform): Likewise.
	* predict.cc (update_max_bb_count): Likewise.
	(estimate_bb_frequencies): Likewise.
	(rebuild_frequencies): Likewise.
	* tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Likewise.
	* profile-count.h (profile_count::max): Rename to
	(profile_count::max_prefer_initialized): this; update handling
	of qualities.

2025-10-15  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_intel_cpu): Handle Wildcat Lake.
	* common/config/i386/i386-common.cc (processor_name):
	Add Wildcat Lake.
	* doc/invoke.texi: Ditto.

2025-10-15  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.h
	(PTA_PANTHERLAKE): Remove PREFETCHI.
	(PTA_DIAMONDRAPIDS): Remove USER_MSR.
	* doc/invoke.texi: Correct documentation.

2025-10-15  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md: Take concrete op instead
	of any_widen_binop for vwaddu/vwsubu wx combine.

2025-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (REDUC_GROUP_FIRST_ELEMENT,
	REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Remove.
	* tree-vect-slp.cc (REDUC_GROUP_FIRST_ELEMENT): Re-instantiate
	here.

2025-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp_reduction): Move
	reduction chain discovery ...
	(vect_analyze_slp_reduc_chain): ... here.

2025-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Move
	bitsize compute down to where it is used and consistently
	use vectype1 for element extraction.

2025-10-14  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/121949
	* tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern): Remove
	restriction on internal_def.

2025-10-14  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-stmts.cc (get_load_store_type): Add load-permutation
	checks and setting of slp_perm.
	(vectorizable_store): Remove perm_ok argument.
	(vectorizable_load): Ditto and replace slp_perm by ls.slp_perm.
	* tree-vectorizer.h (struct vect_load_store_data): Add slp_perm.

2025-10-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_reduc_info_s::is_reduc_chain): New.
	(_loop_vec_info::reduction_chains): Remove.
	(LOOP_VINFO_REDUCTION_CHAINS): Likewise.
	* tree-vect-patterns.cc (vect_reassociating_reduction_p):
	Do not special-case reduction group stmts.
	* tree-vect-loop.cc (vect_is_simple_reduction): Remove
	reduction chain handling.
	(vect_analyze_scalar_cycles_1): Remove slp parameter and adjust.
	(vect_analyze_scalar_cycles): Likewise.
	(vect_fixup_reduc_chain): Remove.
	(vect_fixup_scalar_cycles_with_patterns): Likewise.
	(vect_analyze_loop_2): Adjust.
	(vect_create_epilog_for_reduction): Check the reduction info
	for whether this is a reduction chain.
	(vect_transform_cycle_phi): Likewise.
	(vectorizable_reduction): Likewise.  Simplify code for all-SLP.
	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Simplify.
	(vect_analyze_slp_reduction): New function, perform reduction
	chain discovery here.
	(vect_analyze_slp): Remove reduction chain handling.
	Use vect_analyze_slp_reduction for possible reduction chain
	processing.

2025-10-14  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_available_features): Remove AMX-TRANSPOSE.
	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AMX_TRANSPOSE_SET): Removed.
	(OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): Ditto.
	(ix86_handle_option): Remove amx-transpose handle.
	* common/config/i386/i386-cpuinfo.h
	(enum processor_features): Remove FEATURE_AMX_TRANSPOSE.
	Set FEATURE_AMX_MOVRS value.
	* common/config/i386/i386-isas.h: Remove AMX-TRANSPOSE.
	* config.gcc: Do not include amxtransposeintrin.h.
	* config/i386/amxmovrsintrin.h: Remove AMX-TRANSPOSE intrins.
	* config/i386/amxtransposeintrin.h: Ditto.
	* config/i386/cpuid.h (bit_AMX_TRANSPOSE): Removed.
	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Remove AMX-TRANSPOSE.
	* config/i386/i386-c.cc (ix86_target_macros_internal): Remove
	AMX_TRANSPOSE.
	* config/i386/i386-isa.def (AMX_TRANSPOSE): Removed.
	* config/i386/i386-options.cc
	(ix86_valid_target_attribute_inner_p): Remove AMX-TRANSPOSE.
	* config/i386/i386.opt: Ditto.
	* config/i386/i386.opt.urls: Ditto.
	* config/i386/immintrin.h: Remove amxtransposeintrin.h.
	* doc/extend.texi: Remove amx-transpose.
	* doc/invoke.texi: Ditto.
	* doc/sourcebuild.texi: Ditto.

2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-phiopt.cc (pass_phiopt::execute): Disable
	cselim-limited and factor out operations for -Og.

2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122178
	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle
	clobber statements.

2025-10-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122182
	* tree-ssa-dom.cc (cprop_operand): Don't check may_propagate_copy_into_asm.
	* tree-ssa-propagate.cc (substitute_and_fold_engine::replace_uses_in): Don't
	check may_propagate_copy_into_asm.
	(may_propagate_copy_into_asm): Remove.
	* tree-ssa-propagate.h (may_propagate_copy_into_asm): Remove.

2025-10-14  Zhongyao Chen  <chenzhongyao.hit@gmail.com>

	* common/config/riscv/riscv-common.cc (riscv_subset_list::get_profile_name):
	New function.
	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
	profile macro if a profile is detected.
	* config/riscv/riscv-subset.h (riscv_subset_list::get_profile_name): Declare.

2025-10-13  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR target/120811
	* config/riscv/riscv.cc (synthesize_add): Exchange constant terms when
	generating addi pairs.
	(synthesize_addsi): Similarly.
	* config/riscv/riscv.md (addptr<mode>3): New define_expand.
	(*add<mode>3_const_sum_of_two_s12): Remove pattern.

2025-10-13  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120674
	* config/riscv/riscv.cc (riscv_dwarf_poly_indeterminite_value): Do not
	set FACTOR to zero, for that case use one instead.

2025-10-13  Pan Li  <pan2.li@intel.com>

	* match.pd: Add simplifed pattern for widen_mul based unsigned
	SAT_MUL.

2025-10-13  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline.cc (max_count): Remove.
	(has_nonzero_ipa_profile): New.
	(inline_small_functions): Update.
	(dump_inline_stats): Update.

2025-10-13  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/118019
	* internal-fn.cc (get_supported_else_vals): Exit at invalid
	index.
	(internal_strided_fn_supported_p): New funtion.
	* internal-fn.h (internal_strided_fn_supported_p): Declare.
	* tree-vect-stmts.cc (vector_vector_composition_type):
	Add vector_only argument.
	(vect_use_grouped_gather): New function.
	(vect_get_store_rhs): Adjust docs of
	vector_vector_composition_type.
	(get_load_store_type): Try grouped gather.
	(vectorizable_store): Use punned vectype.
	(vectorizable_load): Ditto.
	* tree-vectorizer.h (struct vect_load_store_data): Add punned
	vectype.

2025-10-13  Avinash Jayakar  <avinashd@linux.ibm.com>

	PR tree-optimization/122213
	* match.pd: Canonicalize unsigned pow2 div only for trunk, floor and
	exact div.

2025-10-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.cc (integer_type_for_mask): Add optional
	output dt argument.
	(vect_recog_bool_pattern): Make sure to not apply the bitwise
	binary pattern to an external operand.

2025-10-11  Bohan Lei  <garthlei@linux.alibaba.com>

	PR target/119587
	* config/riscv/thead.md (*th_memidx_operand): New splitter.

2025-10-11  Georg-Johann Lay  <avr@gjlay.de>

	* coretypes.h (enum artificial_rodata): New enum type.
	* doc/tm.texi: Rebuild.
	* doc/tm.texi.in (TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA):
	New hook.
	* target.def (addr_sapce.for_artificial_rodata): New DEFHOOK.
	* targhooks.cc (default_addr_space_convert): New function.
	* targhooks.h (default_addr_space_convert): New prototype.
	* tree-switch-conversion.cc (build_one_array) <value_type>:
	Set type_quals address-space according to
	targetm.addr_space.for_artificial_rodata().
	* config/avr/avr.cc (avr_rodata_in_flash_p): Move up.
	(TARGET_ADDR_SPACE_FOR_ARTIFICIAL_RODATA): Define to...
	(avr_addr_space_for_artificial_rodata): ...this new function.
	* common/config/avr/avr-common.cc (avr_option_optimization_table):
	Adjust -ftree-switch-conversion comment.

2025-10-11  Austin Law  <austinklaw@gmail.com>

	* config/riscv/sync.md (lrsc_atomic_fetch_<atomic_optab><mode>):
	Adjust operand predicate/constraint to allow simm12 operands
	where valid.  Adjust output template accordingly.
	(subword_atomic_fech_strong_<atomic_optab>): Likewise.
	(subword_atomic_fetch_strong_nand): Likewise.
	(subword_atomic_exchange_strong): Likewise.
	(subword_atomic_cas_strong): Likewise.

2025-10-10  David Faust  <david.faust@oracle.com>

	PR target/122141
	* config/bpf/bpf.cc (bpf_expand_cbranch): Use swap_condition
	rather than reverse_condition when reversing jump condition to
	work around missing instructions in very old BPF ISAs.

2025-10-10  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (do_simple_agr_dse): New function.
	(pass_forwprop::execute): Call do_simple_agr_dse for clobbers.

2025-10-10  Umesh Kalvakuntla  <Umesh.Kalvakuntla@amd.com>

	* common/config/i386/cpuinfo.h (get_amd_cpu): Fix znver5 family
	model numbers.
	(get_available_features): Set FEATURE_PREFETCHI for bit_AMD_PREFETCHI.
	* config/i386/cpuid.h (bit_AMD_PREFETCHI): New Macro.

2025-10-10  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*widen_wsubu_wx_<mode>): Add new
	pattern to match vwsubu.wx.

2025-10-10  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/vector.md (fmax<mode>3): Restrict to no trapping
	math.
	(fmin<mode>3): Ditto.

2025-10-10  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.md (mode_iterator CCANY): Add CCFP and CCEQ.

2025-10-10  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/122223
	* config/arm/mve.md (@mve_vbicq_f<mode>): Fix operands order.

2025-10-10  Andrew Stubbs  <ams@baylibre.com>

	* tree-vect-stmts.cc: Fix VEC_STMT parameter comments throughout.

2025-10-10  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Improve Apple
	M3 and add Apple M4 cores.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi: Add apple-m4 core to the ones listed
	for arch and tune selections.

2025-10-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122111
	* tree-ssa-math-opts.cc (build_and_insert_cast): Remove
	conversion simplification, instead use gimple_convert.

2025-10-10  Robin Dapp  <rdapp@ventanamicro.com>

	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
	Remove use of type.

2025-10-10  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122225
	* tree-cfg.cc (verify_gimple_return): Look at DECL_RESULT
	for DECL_BY_REFERENCE.

2025-10-10  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>

	Revert:
	2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>

	* config/mips/mips.cc(mips_option_override):Add conditions
	for use of the -mmips16e2 and -mips16 option.

2025-10-09  David Faust  <david.faust@oracle.com>

	* doc/extend.texi (Common Function Attributes)
	(Common Variable Attributes): Document btf_decl_tag attribute.
	(Common Type Attributes): Document btf_type_tag attribute.

2025-10-09  David Faust  <david.faust@oracle.com>

	* btfout.cc (get_btf_kind): Handle DECL_TAG and TYPE_TAG kinds.
	(btf_calc_num_vbytes): Likewise.
	(btf_asm_type): Likewise.
	(output_asm_btf_vlen_bytes): Likewise.
	(output_btf_tags): New.
	(btf_output): Call it here.
	(btf_add_used_type): Replace with simple wrapper around...
	(btf_add_used_type_1): ...the implementation.  Handle
	BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG.
	(btf_add_vars): Update btf_add_used_type call.
	(btf_assign_tag_ids): New.
	(btf_mark_type_used): Update btf_add_used_type call.
	(btf_collect_pruned_types): Likewise.  Handle type and decl tags.
	(btf_finish): Call btf_assign_tag_ids.

2025-10-09  David Faust  <david.faust@oracle.com>

	* ctfc.cc (ctf_dtu_d_union_selector): Handle CTF_K_DECL_TAG and
	CTF_K_TYPE_TAG.
	(ctf_add_type_tag, ctf_add_decl_tag): New.
	(ctf_add_variable): Return the new ctf_dvdef_ref rather than zero.
	(new_ctf_container): Initialize new members.
	(ctfc_delete_container): Deallocate new members.
	* ctfc.h (ctf_dvdef, ctf_dvdef_t, ctf_dvdef_ref): Move forward
	declarations earlier in file.
	(ctf_decl_tag_t): New typedef.
	(ctf_dtdef): Add ctf_decl_tag_t member to dtd_u union.
	(ctf_dtu_d_union_enum): Add new CTF_DTU_D_TAG enumerator.
	(ctf_container): Add ctfc_tags vector and ctfc_type_tags_map hash_map
	members.
	(ctf_add_type_tag, ctf_add_decl_tag): New function protos.
	(ctf_add_variable): Change prototype return type to ctf_dvdef_ref.
	* dwarf2ctf.cc (gen_ctf_type_tags, gen_ctf_decl_tags)
	(gen_ctf_decl_tags_for_var): New static functions.
	(gen_ctf_pointer_type): Handle type tags.
	(gen_ctf_sou_type): Handle decl tags.
	(gen_ctf_function_type): Likewise.
	(gen_ctf_variable): Likewise.
	(gen_ctf_function): Likewise.
	(gen_ctf_type): Handle TAG_GNU_annotation DIEs.

2025-10-09  David Faust  <david.faust@oracle.com>

	* dwarf2out.cc (struct annotation_node, struct annotation_node_hasher)
	(btf_tag_htab): New ancillary structures and hash table.
	(annotation_node_hasher::hash, annotation_node_hasher::equal): New.
	(hash_btf_tag, gen_btf_tag_dies, maybe_gen_btf_type_tag_dies)
	(maybe_gen_btf_decl_tag_dies): New functions.
	(modified_type_die): Add new argument to pass type attributes.
	Handle btf_type_tag, and update recursive calls.
	(base_type_for_mode): Add new arg for modified_type_die call.
	(add_type_attribute): Likewise.
	(gen_array_type_die): Call maybe_gen_btf_type_tag_dies for the type.
	(gen_formal_parameter_die): Call maybe_gen_btf_decl_tag_dies for the
	parameter.
	(override_type_for_decl_p): Add new arg for modified_type_die call.
	(force_type_die): Likewise.
	(gen_tagged_type_die): Call maybe_gen_btf_type_tag_dies for the type.
	(gen_decl_die): Call maybe_gen_btf_decl_tag_dies for the decl.
	(dwarf2out_finish): Empty btf_tag_htab.
	(dwarf2out_cc_finalize): Delete btf_tag_htab hash table.

2025-10-09  Jakub Jelinek  <jakub@redhat.com>

	* ginclude/stdarg.h (va_start): Use __builtin_c23_va_start
	also for C++26.
	(__STDC_VERSION_STDARG_H__): Also define for C++26.

2025-10-09  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-global-context.cc: Define INCLUDE_VECTOR.
	* diagnostics/buffering.cc: Likewise.
	* diagnostics/context.cc (context::finish): Call
	finalize_extensions on each sink.
	(sink::dump): Dump any extensions.
	(sink::finalize_extensions): New.
	* diagnostics/macro-unwinding.cc: Define INCLUDE_VECTOR.
	* diagnostics/selftest-context.cc: Likewise.
	* diagnostics/sink.h (class sink::extension): New.
	(sink::add_extension): New.
	(sink::finalize_extensions): New decl.
	(sink::m_extensions): New member.
	* gcc.cc: Define INCLUDE_VECTOR.
	* langhooks.cc: Likewise.
	* opts.cc: Likewise.
	* tree-diagnostic-client-data-hooks.cc: Likewise.
	* tree-diagnostic.cc: Likewise.

2025-10-09  Filip Kastl  <fkastl@suse.cz>

	* Makefile.in: Add gimple-ssa-pta-constraints.cc.
	* tree-ssa-structalias.cc (determine_global_memory_access):
	External linkage, move to namespace pointer_analysis.
	(fndecl_maybe_in_other_partition): External linkage, move to
	namespace pointer_analysis.
	(new_var_info): External linkage, move to namespace
	pointer_analysis.
	(create_variable_info_for): Move to
	gimple-ssa-pta-constraints.cc.
	(lookup_vi_for_tree): External linkage, move to namespace
	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
	(type_can_have_subvars): Move to gimple-ssa-pta-constraints.cc.
	(make_param_constraints): Move to gimple-ssa-pta-constraints.cc.
	(get_call_vi): Move to gimple-ssa-pta-constraints.cc.
	(lookup_call_use_vi): External linkage, move to namespace
	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
	(lookup_call_clobber_vi): External linkage, move to namespace
	pointer_analysis, move to gimple-ssa-pta-constraints.cc.
	(get_call_use_vi): Move to gimple-ssa-pta-constraints.cc.
	(get_call_clobber_vi): Move to gimple-ssa-pta-constraints.cc.
	(get_constraint_for_1): Move to gimple-ssa-pta-constraints.cc.
	(get_constraint_for): Move to gimple-ssa-pta-constraints.cc.
	(get_constraint_for_rhs): Move to gimple-ssa-pta-constraints.cc.
	(do_deref): Move to gimple-ssa-pta-constraints.cc.
	(constraint_pool): Move to gimple-ssa-pta-constraints.cc.
	(new_constraint): Move to gimple-ssa-pta-constraints.cc.
	(insert_vi_for_tree): Move to gimple-ssa-pta-constraints.cc.
	(alias_get_name): Move to gimple-ssa-pta-constraints.cc.
	(get_vi_for_tree): Move to gimple-ssa-pta-constraints.cc.
	(new_scalar_tmp_constraint_exp): Move to
	gimple-ssa-pta-constraints.cc.
	(get_constraint_for_ssa_var): Move to
	gimple-ssa-pta-constraints.cc.
	(process_constraint): Move to gimple-ssa-pta-constraints.cc.
	(bitpos_of_field): Move to gimple-ssa-pta-constraints.cc.
	(get_constraint_for_ptr_offset): Move to
	gimple-ssa-pta-constraints.cc.
	(get_constraint_for_component_ref): Move to
	gimple-ssa-pta-constraints.cc.
	(get_constraint_for_address_of): Move to
	gimple-ssa-pta-constraints.cc.
	(process_all_all_constraints): Move to
	gimple-ssa-pta-constraints.cc.
	(do_structure_copy): Move to gimple-ssa-pta-constraints.cc.
	(make_constraints_to): Move to gimple-ssa-pta-constraints.cc.
	(make_constraint_to): Move to gimple-ssa-pta-constraints.cc.
	(make_constraint_from): Move to gimple-ssa-pta-constraints.cc.
	(make_copy_constraint): Move to gimple-ssa-pta-constraints.cc.
	(make_escape_constraint): Move to gimple-ssa-pta-constraints.cc.
	(make_indirect_escape_constraint): Move to
	gimple-ssa-pta-constraints.cc.
	(make_transitive_closure_constraints): Move to
	gimple-ssa-pta-constraints.cc.
	(make_any_offset_constraints): Move to
	gimple-ssa-pta-constraints.cc.
	(struct obstack fake_var_decl_obstack): Move to
	gimple-ssa-pta-constraints.cc.
	(build_fake_var_decl): Move to gimple-ssa-pta-constraints.cc.
	(make_heapvar): Move to gimple-ssa-pta-constraints.cc.
	(make_constraint_from_restrict): Move to
	gimple-ssa-pta-constraints.cc.
	(make_constraint_from_global_restrict): Move to
	gimple-ssa-pta-constraints.cc.
	(get_function_part_constraint): Move to
	gimple-ssa-pta-constraints.cc.
	(handle_call_arg): Move to gimple-ssa-pta-constraints.cc.
	(handle_rhs_call): Move to gimple-ssa-pta-constraints.cc.
	(handle_lhs_call): Move to gimple-ssa-pta-constraints.cc.
	(get_fi_for_callee): Move to gimple-ssa-pta-constraints.cc.
	(find_func_aliases_for_call_arg): Move to
	gimple-ssa-pta-constraints.cc.
	(find_func_aliases_for_builtin_call): Move to
	gimple-ssa-pta-constraints.cc.
	(find_func_aliases_for_call): Move to
	gimple-ssa-pta-constraints.cc.
	(find_func_aliases): Move to gimple-ssa-pta-constraints.cc.
	(process_ipa_clobber): Move to gimple-ssa-pta-constraints.cc.
	(find_func_clobbers): Move to gimple-ssa-pta-constraints.cc.
	(struct fieldoff): Move to gimple-ssa-pta-constraints.cc.
	(fieldoff_compare): Move to gimple-ssa-pta-constraints.cc.
	(sort_fieldstack): Move to gimple-ssa-pta-constraints.cc.
	(var_can_have_subvars): Move to gimple-ssa-pta-constraints.cc.
	(type_must_have_pointers): Move to
	gimple-ssa-pta-constraints.cc.
	(field_must_have_pointers): Move to
	gimple-ssa-pta-constraints.cc.
	(push_fields_onto_fieldstack): Move to
	gimple-ssa-pta-constraints.cc.
	(count_num_arguments): Move to gimple-ssa-pta-constraints.cc.
	(create_function_info_for): Move to
	gimple-ssa-pta-constraints.cc.
	(check_for_overlaps): Move to gimple-ssa-pta-constraints.cc.
	(create_variable_info_for_1): Move to
	gimple-ssa-pta-constraints.cc.
	(intra_create_variable_infos): Move to
	gimple-ssa-pta-constraints.cc.
	(init_base_vars): Move to gimple-ssa-pta-constraints.cc.
	(init_constraint_builder): Move to
	gimple-ssa-pta-constraints.cc.
	(delete_constraint_builder): Move to
	gimple-ssa-pta-constraints.cc.
	(intra_build_constraints): Move to
	gimple-ssa-pta-constraints.cc.
	(delete_points_to_sets): Move to gimple-ssa-pta-constraints.cc.
	(associate_varinfo_to_alias): Move to
	gimple-ssa-pta-constraints.cc
	(refered_from_nonlocal_fn): Move to
	gimple-ssa-pta-constraints.cc
	(refered_from_nonlocal_var): Move to
	gimple-ssa-pta-constraints.cc
	(ipa_create_function_infos): Move to
	gimple-ssa-pta-constraints.cc
	(ipa_create_global_variable_infos): Move to
	gimple-ssa-pta-constraints.cc
	(ipa_build_constraints): Move to gimple-ssa-pta-constraints.cc
	* tree-ssa-structalias.h (struct constraint_stats):
	(determine_global_memory_access): External linkage, move to
	namespace pointer_analysis.
	(fndecl_maybe_in_other_partition): External linkage, move to
	namespace pointer_analysis.
	(new_var_info): External linkage, move to namespace
	pointer_analysis.
	* gimple-ssa-pta-constraints.cc: New file.
	* gimple-ssa-pta-constraints.h: New file.

2025-10-09  Filip Kastl  <fkastl@suse.cz>

	* tree-ssa-structalias.cc (init_constraint_builder): New
	function.
	(delete_constraint_builder): New function.
	(compute_points_to_sets): Put constraint building into
	intra_build_constraints and call it.
	(intra_build_constraints): New function.
	(delete_points_to_sets): Put cleanup of constraint builder
	global vars into delete_constraint_builder and call it.
	(ipa_pta_execute): Put constraint building into
	ipa_build_constraints and call it.
	(ipa_create_function_infos): New function.
	(ipa_create_global_variable_infos): New function.
	(ipa_build_constraints): New function.

2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa-protos.h (xtensa_constantsynth): Remove.
	* config/xtensa/xtensa.cc
	(#include): Remove "context.h" and "pass_manager.h".
	(machine_function): Remove "litpool_usage" member.
	(xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
	xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth): Remove.
	(constantsynth_method_lshr_m1, split_hwi_to_MOVI_ADDMI,
	constantsynth_method_16bits, constantsynth_method_32bits,
	constantsynth_method_square): New worker function related to
	constant synthesis methods.
	(constantsynth_method_info, constantsynth_methods):
	New structure representing the list of all constant synthesis
	methods.
	(constantsynth_info): New structure that stores internal
	information for "constantsynth".
	(constantsynth_pass1, verify_synth_seq, constantsynth_pass2):
	New functions that are the core of "constantsynth".
	(do_largeconst): Add a call to constantsynth_pass1() to the insn
	enumeration loop, and add a call to constantsynth_pass2() to the
	end of this function.
	* config/xtensa/xtensa.md (SHI): Remove.
	(The two auxiliary define_splits for mov[sh]i_internal): Remove.
	(The two auxiliary define_splits for movsf_internal): Remove.

2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa-protos.h
	(xtensa_split_DI_reg_imm): Remove.
	* config/xtensa/xtensa.cc (xtensa_split_DI_reg_imm): Remove.
	(split_DI_SF_DF_const): New worker function.
	(do_largeconst): Add a call to split_DI_SF_DF_const() to the insn
	enumeration loop.
	* config/xtensa/xtensa.md (movdi): Remove split code when the
	source is constant.
	(movdi_internal): Add a new constraint pair (a, Y) to the second
	of the existing constraint alternatives.
	(The auxiliary define_split for movdi_internal): Remove.

2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xt_full_rtx_costs):
	New struct, derived from full_rtx_costs.
	(FPreg_neg_scaled_simm12b_1, FPreg_neg_scaled_simm12b):
	New worker functions.
	(do_largeconst): Add a call to FPreg_neg_scaled_simm12b() to the
	insn enumeration loop.

2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/constraints.md (Y):
	Change to reference xtensa_postreload_completed_p() instead of
	xtensa_split1_finished_p().
	* config/xtensa/predicates.md (move_operand): Ditto.
	* config/xtensa/t-xtensa (PASSES_EXTRA):
	Add xtensa-passes.def as target-specific pass description.
	* config/xtensa/xtensa-passes.def:
	New definition file that inserts pass_xtensa_largeconst after
	pass_postreload_cse.
	* config/xtensa/xtensa-protos.h (xtensa_split1_finished_p): Remove.
	(xtensa_postreload_completed_p, make_pass_xtensa_largeconst):
	New function prototypes.
	* config/xtensa/xtensa.cc (machine_function):
	Add a new member "postreload_completed".
	(xtensa_emit_move_sequence):
	Change to reference xtensa_postreload_completed_p() instead of
	can_create_pseudo_p().
	(xtensa_split1_finished_p): Remove.
	(xtensa_postreload_completed_p): New function.
	(xtensa_legitimate_constant_p): Change to also consider
	xtensa_postreload_completed_p().
	(litpool_set_src_1, litpool_set_src, do_largeconst,
	rest_of_handle_largeconst):
	New sub-functions for pass_xtensa_largeconst.
	(pass_data_xtensa_largeconst, pass_xtensa_largeconst):
	New target-specific pass definition.
	(make_pass_xtensa_largeconst):
	New function called by the pass manager.
	* config/xtensa/xtensa.md
	(The auxiliary define_split for movdi_internal):
	Change to reference xtensa_postreload_completed_p() instead of
	xtensa_split1_finished_p().
	(The first of three auxiliary define_splits for mov[sh]i_internal):
	Remove.

2025-10-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc
	(TARGET_MD_ASM_ADJUST): New macro definition.
	(xtensa_md_asm_adjust): New function prototype and definition, that
	prepends all 'g'-constraints in the "constraints" vector with 'n',
	if neither TARGET_CONST16 nor TARGET_AUTO_LITPOOLS is enabled.

2025-10-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122212
	* tree-ssa-forwprop.cc (simplify_count_zeroes): Apply
	bias for CLZ after dealing with the zero special value.

2025-10-09  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-protos.h (vls_mode_valid_p): New argument
	allow_up_to_lmul_8.
	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Set
	allow_up_to_lmul_8 to false.
	(vls_mode_valid_p): Add new argument allow_up_to_lmul_8, and use
	it to determine whether to allow LMUL 8.

2025-10-09  Prathamesh Kulkarni  <prathameshk@nvidia.com>
	    Matthew Malcolmson  <mmalcolmson@nvidia.com>

	PR driver/81358
	* common.opt: New option -flink-libatomic.
	* gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
	* config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Use LINK_LIBATOMIC_SPEC.
	* config/arm/uclinux-elf.h: Likewise.
	* config/arm/unknown-elf.h: Likewise.
	* config/avr/avrlibc.h: Likewise.
	* config/bfin/linux.h: Likewise.
	* config/darwin.h: Likewise.
	* config/gnu-user.h: Likewise.
	* config/lm32/uclinux-elf.h: Likewise.
	* config/rs6000/linux64.h: Likewise.
	* config/rs6000/rtems.h: Likewise.
	* config/sparc/sparc.h: Likewise.
	* doc/invoke.texi: Document -flink-libatomic.
	* configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
	* configure: Regenerate.
	* config.in: Regenerate.
	* common.opt.urls: Regenerate.

2025-10-09  Robin Dapp  <rdapp@ventanamicro.com>

	* config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment):
	Remove type.
	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
	Ditto.
	* config/epiphany/epiphany.cc (epiphany_support_vector_misalignment):
	Ditto.
	* config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment):
	Ditto.
	* config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment):
	Ditto.
	* config/riscv/riscv.cc (riscv_support_vector_misalignment):
	Ditto.
	* config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment):
	Ditto.
	* config/s390/s390.cc (s390_support_vector_misalignment):
	Ditto.
	* doc/tm.texi: Adjust vector misalignment docs.
	* target.def: Ditto.
	* targhooks.cc (default_builtin_support_vector_misalignment):
	Remove type.
	* targhooks.h (default_builtin_support_vector_misalignment):
	Ditto.
	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p):
	Set misalignment for gather/scatter and remove type.
	(vect_supportable_dr_alignment): Ditto.

2025-10-09  Sam James  <sam@gentoo.org>

	PR c++/117219
	* doc/invoke.texi (-fstrict-aliasing): Explain that type-punning
	through a union in C++ is supported as a GNU extension.

2025-10-09  Sam James  <sam@gentoo.org>

	* doc/invoke.texi: Add missing full stop.

2025-10-09  Sam James  <sam@gentoo.org>

	PR tree-optimization/18501
	* doc/invoke.texi (-Wmaybe-uninitialized): Mention interaction with
	CCP.

2025-10-08  Antoni Boucher  <bouanto@zoho.com>

	* configure: Regenerate.

2025-10-08  Trevor Gross  <tmgross@umich.edu>

	PR target/115054
	* config/i386/i386.cc (function_arg_ms_64,
	function_value_ms_64): Pass and return _Float16 in vector
	registers on Windows.

2025-10-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/110223
	PR tree-optimization/122128
	* tree-vect-patterns.cc (vect_recog_bool_pattern): Add
	compensation for mixed mask/data bitwise operations.

2025-10-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.cc (integer_type_for_mask): Only
	reject vect_external_defs.

2025-10-08  Richard Biener  <rguenther@suse.de>

	* doc/tm.texi.in (JIT Language and ABI): Add menu item.
	* doc/tm.texi: Re-generate.

2025-10-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/110223
	* tree-vect-patterns.cc (vect_recog_bool_pattern): Fix
	mistakes in the store-from-mask bool pattern.  Add
	required mask conversions.

2025-10-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/105490
	* tree-vect-patterns.cc (build_mask_conversion): Move earlier.
	(vect_convert_mask_for_vectype): Likewise.
	(vect_recog_bool_pattern): Remove redundant truth type
	construction.  Add missing possibly required mask conversion.

2025-10-08  Antoni Boucher  <bouanto@zoho.com>

	PR jit/112466
	* Makefile.in (tm_jit_file_list, tm_jit_include_list, TM_JIT_H,
	JIT_TARGET_DEF, JIT_TARGET_H, JIT_TARGET_OBJS): New variables.
	(tm_jit.h, cs-tm_jit.h, jit/jit-target-hooks-def.h,
	s-jit-target-hooks-def-h, default-jit.o): New rules.
	(s-tm-texi): Also check timestamp on jit-target.def.
	(generated_files): Add TM_JIT_H and jit/jit-target-hooks-def.h.
	(build/genhooks.o): Also depend on JIT_TARGET_DEF.
	* config.gcc (tm_jit_file, jit_target_objs, target_has_targetjitm):
	New variables.
	* config/i386/t-i386 (i386-jit.o): New rule.
	* configure: Regenerate.
	* configure.ac (tm_jit_file_list, tm_jit_include_list,
	jit_target_objs): Add substitutes.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in (targetjitm): Document.
	(target_has_targetjitm): Document.
	* genhooks.cc: Include jit/jit-target.def.
	* config/default-jit.cc: New file.
	* config/i386/i386-jit.cc: New file.
	* config/i386/i386-jit.h: New file.

2025-10-07  Alfie Richards  <alfie.richards@arm.com>

	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Add documentation for TARGET_HAS_FMV_TARGET_ATTRIBUTE.

2025-10-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/122187
	* config/avr/avr.cc (avr_out_extr, avr_out_extr_not):
	Make a local copy of the passed rtx[] operands.

2025-10-07  Jonathan Wakely  <jwakely@redhat.com>

	* config/i386/i386-features.cc
	(general_scalar_chain::vector_const_cost): Fix spelling in
	comment.
	* ipa-prop.h (enum jump_func_type): Likewise.
	* tree-vectorizer.cc (try_vectorize_loop_1): Likewise.

2025-10-07  Robin Dapp  <rdapp.gcc@gmail.com>

	PR target/121845
	* config/riscv/riscv-v.cc (shuffle_series_patterns):
	Modulo indices for VLA and punt when wrapping for VLS.

2025-10-07  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>

	PR target/122124
	* config/riscv/riscv-v.cc (shuffle_slide_patterns): Check if
	the second pivot is in OP1 and improve comments.

2025-10-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121921
	* match.pd (`-(a ptrdiff b)`): Extend for a nop_convert
	between the neg and ptrdiff.

2025-10-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122083
	* tree-ssa-phiopt.cc (single_trailing_store_in_bb): Rename to ...
	(trailing_store_in_bb): This and take new argument to check for
	only store.
	(cond_if_else_store_replacement_limited): Update to use
	trailing_store_in_bb.
	(cond_if_else_store_replacement): Loop until
	cond_if_else_store_replacement_limited returns false.
	(pass_phiopt::execute): Instead of calling cond_if_else_store_replacement_limited
	once, also loop on it.

2025-10-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122155
	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Don't
	create a phi if the 2 rhs are the same.

2025-10-06  Jan Hubicka  <hubicka@ucw.cz>

	PR middle-end/122122
	* tree-cfgcleanup.cc (tree_forwarder_block_p): Cleanup.
	* tree-ssa-dce.cc (propagate_counts): New function.
	(eliminate_unnecessary_stmts): Use it.

2025-10-06  Jan Hubicka  <hubicka@ucw.cz>

	* params.opt (-param=auto-profile-bbs=): Add missing full stop after
	description.

2025-10-06  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/121206
	* value-range.cc (irange::intersect_bitmask): Always call
	set_range_from_bitmask if the bitmask changes.

2025-10-06  Sam James  <sam@gentoo.org>

	PR rtl-optimization/111619
	* doc/install.texi (Building a native compiler): Discuss STAGE1_CFLAGS.

2025-10-06  Jennifer Schmitz  <jschmitz@nvidia.com>

	PR target/121599
	* config/aarch64/aarch64-sve-builtins.cc
	(function_expander::use_cond_insn): Use add_fixed_operand if
	fallback_arg == CONST0_RTX (mode).

2025-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122131
	* tree-vect-data-refs.cc (vect_supportable_dr_alignment): Do
	not use re-align loads for gathers.

2025-10-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122158
	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle
	bit-precision result.

2025-10-06  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/122133
	* stmt.cc (resolve_asm_operand_names): Handle % and 2 letters followed
	by open square.

2025-10-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122142
	* generic-match-head.cc: Include gimple-iterator.h
	and gimple-fold.h.
	* gimple-fold.cc (gimple_fold_builtin_constant_p): Use
	fold_before_rtl_expansion_p.
	(gimple_fold_builtin_assume_aligned): Likewise.
	(gimple_fold_builtin_stdarg): Likewise.
	(gimple_fold_call): Likewise.
	* gimple-fold.h: Include "tree-pass.h".
	(fold_before_rtl_expansion_p): New function.
	* match.pd: Use fold_before_rtl_expansion_p
	instead of `cfun->curr_properties & PROP_last_full_fold`.
	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Likewise.
	(optimize_stack_restore): Likewise.

2025-10-05  H.J. Lu  <hjl.tools@gmail.com>

	PR target/122150
	* config/i386/i386-expand.cc (setmem_epilogue_gen_val): Duplicate
	OP if its size is smaller than MODE size.

2025-10-05  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa.h (FUNCTION_BOUNDARY): Set to 32.

2025-10-05  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*widen_waddu_wx_<mode>): Add new
	pattern to match vwaddu.wx.

2025-10-05  Pan Li  <pan2.li@intel.com>

	* match.pd: Refactor the form 1 of SAT_MUL by keyword for.

2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122143
	* tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting
	TODO_update_address_taken only when the statement was a call before fold_stmt.

2025-10-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122153
	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Handle
	stores of empty constructors too.

2025-10-04  Matteo Nicoli  <matteo.nicoli001@gmail.com>

	PR tree-optimization/117760
	* match.pd: Add simplifications that exploit implied values after
	logical tests.

2025-10-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/122104
	* tree-ssa-math-opts.cc (maybe_optimize_guarding_check): Call
	reset_flow_sensitive_info_in_bb on bb when optimizing out the
	guarding condition.

2025-10-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>

	PR target/122114
	* config/riscv/riscv.cc
	(riscv_allocate_and_probe_stack_space): Change initial_cfa_offset
	type.

2025-10-04  Jeff Law  <jlaw@ventanamicro.com>

	PR target/122147
	* config/riscv/predicates.md (move_operand): Only allow a REG as the
	operand of a SUBREG.

2025-10-04  Zhongyao Chen  <chenzhongyao.hit@gmail.com>

	PR target/118945
	* config/riscv/riscv.cc (riscv_prefer_agnostic_p): New function.
	(riscv_tune_param): Add prefer_agnostic member.
	(various tune info structures): Initialize prefer_agnostic.
	* config/riscv/riscv-protos.h (riscv_prefer_agnostic_p): Add
	prototype.
	* config/riscv/riscv-v.cc (get_prefer_tail_policy,
	get_prefer_mask_policy): Use riscv_prefer_agnostic_p.
	* config/riscv/riscv-vsetvl.cc (vsetvl_info::get_demand_flags):
	demand policy for agnostic when prefer_agnostic is true.

2025-10-04  Jakub Jelinek  <jakub@redhat.com>

	PR c++/114457
	* flag-types.h (enum auto_init_type): Add AUTO_INIT_CXX26.
	* tree.h (VACUOUS_INIT_LABEL_P): Define.
	* gimplify.cc (is_var_need_auto_init): Renamed to ...
	(var_needs_auto_init_p): ... this.  Don't return true for
	vars with "indeterminate" attribute.  Formatting fixes.
	(gimplify_decl_expr): Use var_needs_auto_init_p instead of
	is_var_need_auto_init.
	(emit_warn_switch_unreachable): Remove the flag_auto_var_init
	special cases.
	(warn_switch_unreachable_and_auto_init_r): Handle them here
	by doing just returning NULL.
	(last_stmt_in_scope): Don't skip just debug stmts to find
	the last stmt in seq, skip for
	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also IFN_DEFERRED_INIT
	calls.
	(collect_fallthrough_labels): For
	flag_auto_var_init > AUTO_INIT_UNINITIALIZED ignore
	IFN_DEFERRED_INIT calls and GIMPLE_GOTOs to
	VACUOUS_INIT_LABEL_P.
	(should_warn_for_implicit_fallthrough): For
	flag_auto_var_init > AUTO_INIT_UNINITIALIZED also skip over
	IFN_DEFERRED_INIT calls.
	(expand_FALLTHROUGH_r): Likewise, and handle GIMPLE_GOTOs
	to VACUOUS_INIT_LABEL_P.
	(gimplify_init_constructor): Use var_needs_auto_init_p instead
	of is_var_need_auto_init and for flag_auto_var_init
	AUTO_INIT_CXX26 don't call gimple_add_padding_init_for_auto_var.
	(gimplify_target_expr): If var_needs_auto_init_p and init has
	void type, call gimple_add_init_for_auto_var and for
	AUTO_INIT_PATTERN also gimple_add_padding_init_for_auto_var.
	* tree-ssa-uninit.cc (maybe_warn_operand): Handle loads from *this
	at the start of the function with "clobber *this" attribute on the
	PARM_DECL.
	* ipa-split.cc (split_function): Remove "clobber *this" attribute
	from the first PARM_DECL (if any).
	* doc/invoke.texi (ftrivial-auto-var-init=): Adjust documentation.

2025-10-04  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/117658
	* doc/invoke.texi: Document '-Wno-external-tu-local'.

2025-10-03  David Malcolm  <dmalcolm@redhat.com>

	Revert:
	2025-10-03  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add
	custom-sarif-properties/digraphs.o and
	custom-sarif-properties/state-graphs.o.  Remove
	diagnostics/state-graphs.o.
	* configure: Regenerate.
	* configure.ac: Add custom-sarif-properties to subdir iteration.
	* custom-sarif-properties/digraphs.cc: New file.
	* custom-sarif-properties/digraphs.h: New file.
	* custom-sarif-properties/state-graphs.cc: New file.
	* custom-sarif-properties/state-graphs.h: New file.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
	Delete decl.
	* diagnostics/digraphs.cc: Include
	"custom-sarif-properties/digraphs.h".  Move include of
	"selftest.h" to within CHECKING_P section.
	(using digraph_object): New.
	(namespace properties): New.
	(diagnostics::digraphs::object::get_attr): Delete.
	(diagnostics::digraphs::object::set_attr): Delete.
	(diagnostics::digraphs::object::set_json_attr): Delete.
	(digraph_object::get_property): New definitions, for various
	property types.
	(digraph_object::set_property): Likewise.
	(digraph_object::maybe_get_property): New.
	(digraph_object::get_property_as_tristate): New.
	(digraph_object::ensure_property_bag): New.
	(digraph::get_graph_kind): New.
	(digraph::set_graph_kind): New.
	Add include of "custom-sarif-properties/state-graphs.h".
	(selftest::test_simple_graph): Rewrite to use json::property
	instances rather than string attribute names.
	(selftest::test_property_objects): New test.
	(selftest::digraphs_cc_tests): Call it.
	* diagnostics/digraphs.h: Include "tristate.h".
	(object::get_attr): Delete.
	(object::set_attr): Delete.
	(object::get_property): New decls.
	(object::set_property): New decls.
	(object::maybe_get_property): New.
	(object::get_property_as_tristate): New.
	(object::set_json_attr): Delete.
	(object::ensure_property_bag): New.
	(graph::get_graph_kind): New.
	(graph::set_graph_kind): New.
	* diagnostics/html-sink.cc
	(html_generation_options::html_generation_options): Update for
	field renamings.
	(html_generation_options::dump): Likewise.
	(html_builder::maybe_make_state_diagram): Likewise.
	(html_builder::add_graph): Show SARIF and .dot src inline, if
	requested.
	* diagnostics/html-sink.h
	(html_generation_options::m_show_state_diagrams_sarif): Rename
	to...
	(html_generation_options::m_show_graph_sarif): ...this.
	(html_generation_options::m_show_state_diagrams_dot_src): Rename
	to...
	(html_generation_options::m_show_graph_dot_src0): ...this.
	* diagnostics/output-spec.cc
	(html_scheme_handler::maybe_handle_kv): Rename keys.
	(html_scheme_handler::get_keys): Likewise.
	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
	use json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* diagnostics/state-graphs.cc: Deleted file.
	* diagnostics/state-graphs.h: Delete almost all, except decl of
	diagnostics::state_graphs::make_dot_graph.
	* doc/invoke.texi: Update for changes to "experimental-html" sink
	keys.
	* json.cc (json::object::set_string): New.
	(json::object::set_integer): New.
	(json::object::set_bool): New.
	(json::object::set_array_of_string): New.
	* json.h: Include "label-text.h".
	(struct json::property): New template.
	(json::string_property): New.
	(json::integer_property): New.
	(json::bool_property): New.
	(json::json_property): New.
	(using json::array_of_string_property): New.
	(struct json::enum_traits): New.
	(enum_json::property): New.
	(json::value::dyn_cast_array): New vfunc.
	(json::value::dyn_cast_integer_number): New vfunc.
	(json::value::set_string): New.
	(json::value::set_integer): New.
	(json::value::set_bool): New.
	(json::value::set_array_of_string): New.
	(json::value::maybe_get_enum): New.
	(json::value::set_enum): New.
	(json::array::dyn_cast_array): New.
	(json::integer_number::dyn_cast_integer_number): New.
	(object::maybe_get_enum): New.
	(object::set_enum): New.

2025-10-03  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/121937
	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Make
	sure we've got a scalar_int_mode before calling neg_poly_int_rtx.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* passes.def: Remove both pass_fold_builtin.
	Swap out pass_copy_prop for pass_forwprop with
	full_walk = false and last=true.
	* tree-pass.h (make_pass_fold_builtins): Remove.
	* tree-ssa-ccp.cc (class pass_fold_builtins): Delete.
	(pass_fold_builtins::execute): Delete.
	(make_pass_fold_builtins): Remove.
	* doc/passes.texi (Folding built-in functions): Remove.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* gimple-isel.cc (gimple_nop_atomic_bit_test_and_p): New decl.
	(gimple_nop_convert): Likewise.
	(convert_atomic_bit_not): Moved from tree-ssa-ccp.cc.
	(optimize_atomic_bit_test_and): Likewise.
	(optimize_atomic_op_fetch_cmp_0): Likewise.
	(gimple_isel_builtin_call): New function.
	(CASE_ATOMIC): Moved from tree-ssa-ccp.cc.
	(CASE_ATOMIC_CMP0): Likewise.
	(CASE_ATOMIC_BIT_TEST_AND): Likewise.
	(pass_gimple_isel::execute): For calls just call gimple_isel_builtin_call.
	* tree-ssa-ccp.cc (convert_atomic_bit_not): Move to gimple-isel.cc.
	(gimple_nop_atomic_bit_test_and_p): Likewise.
	(gimple_nop_convert): Likewise.
	(optimize_atomic_bit_test_and): Likewise.
	(optimize_atomic_op_fetch_cmp_0): Likewise.
	(pass_fold_builtins::execute): Just call fold_stmt for internal
	or normal bultin calls.
	(CASE_ATOMIC): Move to gimple-isel.cc.
	(CASE_ATOMIC_CMP0): Likewise.
	(CASE_ATOMIC_BIT_TEST_AND): Likewise.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-ccp.cc (CASE_ATOMIC): New defined.
	(CASE_ATOMIC_CMP0): New define.
	(CASE_ATOMIC_BIT_TEST_AND): New defined.
	(pass_fold_builtins::execute): Use CASE_ATOMIC, CASE_ATOMIC_CMP0,
	and CASE_ATOMIC_BIT_TEST_AND.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* gimple-fold.cc (gimple_fold_builtin_stdarg): New function,
	moved from tree-ssa-ccp.cc (optimize_stdarg_builtin).
	(gimple_fold_builtin): Call gimple_fold_builtin_stdarg for
	va_start, va_copy and va_end.
	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Remove.
	(pass_fold_builtins::execute): Remove handling of
	va_start, va_copy and va_end.
	* tree-ssa-forwprop.cc (pass_forwprop::execute): Update
	todos if fold_stmt return true if last forwprop to include
	TODO_update_address_taken.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* tree-ssa-ccp.cc (optimize_unreachable): Move to tree-ssa-forwprop.cc
	(pass_fold_builtins::execute): Remove handling of __builtin_unreachable.
	* tree-ssa-forwprop.cc (optimize_unreachable): New function from
	tree-ssa-ccp.cc. Change argument to bb. Remove check on first statement
	being the __builtin_unreachable since it is handled already.
	(pass_forwprop::execute): Handle first statement as being __builtin_unreachable
	by calling optimize_unreachable.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* tree-ssa-ccp.cc (optimize_stack_restore): Move to tree-ssa-forwprop.cc.
	(pass_fold_builtins::execute): Don't call optimize_stack_restore.
	* tree-ssa-forwprop.cc (optimize_stack_restore): New function from
	tree-ssa-ccp.cc. Return bool instead of value, use replace_call_with_value
	istead of returning integer_zero_node.
	(simplify_builtin_call): Call optimize_stack_restore.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/122033
	* tree-ssa-ccp.cc (optimize_stack_restore): Rewrite the call check.
	Update comment in the front to new rules on calls.
	* tree.h (fndecl_builtin_alloc_p): New function.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* gimple-fold.cc (gimple_fold_call): Remove ASSUME internal function
	calls when PROP_last_full_fold is set.
	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Handling folding
	of all internal functions.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-ccp.cc (optimize_stdarg_builtin): Mannually create the
	gimple statements instead of depending on the gimplifier.
	(pass_fold_builtins::execute): Handle updated call to optimize_stdarg_builtin.

2025-10-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-ccp.cc (optimize_memcmp_eq): Remove.
	(pass_fold_builtins::execute): Remove handling of memcmp.
	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Add folding
	of memcmp to memcmp_eq for PROP_last_full_fold.

2025-10-02  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add
	custom-sarif-properties/digraphs.o and
	custom-sarif-properties/state-graphs.o.  Remove
	diagnostics/state-graphs.o.
	* configure: Regenerate.
	* configure.ac: Add custom-sarif-properties to subdir iteration.
	* custom-sarif-properties/digraphs.cc: New file.
	* custom-sarif-properties/digraphs.h: New file.
	* custom-sarif-properties/state-graphs.cc: New file.
	* custom-sarif-properties/state-graphs.h: New file.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Drop call of state_graphs_cc_tests.
	* diagnostics/diagnostics-selftests.h (state_graphs_cc_tests):
	Delete decl.
	* diagnostics/digraphs.cc: Include
	"custom-sarif-properties/digraphs.h".  Move include of
	"selftest.h" to within CHECKING_P section.
	(using digraph_object): New.
	(namespace properties): New.
	(diagnostics::digraphs::object::get_attr): Delete.
	(diagnostics::digraphs::object::set_attr): Delete.
	(diagnostics::digraphs::object::set_json_attr): Delete.
	(digraph_object::get_property): New definitions, for various
	property types.
	(digraph_object::set_property): Likewise.
	(digraph_object::maybe_get_property): New.
	(digraph_object::get_property_as_tristate): New.
	(digraph_object::ensure_property_bag): New.
	(digraph::get_graph_kind): New.
	(digraph::set_graph_kind): New.
	Add include of "custom-sarif-properties/state-graphs.h".
	(selftest::test_simple_graph): Rewrite to use json::property
	instances rather than string attribute names.
	(selftest::test_property_objects): New test.
	(selftest::digraphs_cc_tests): Call it.
	* diagnostics/digraphs.h: Include "tristate.h".
	(object::get_attr): Delete.
	(object::set_attr): Delete.
	(object::get_property): New decls.
	(object::set_property): New decls.
	(object::maybe_get_property): New.
	(object::get_property_as_tristate): New.
	(object::set_json_attr): Delete.
	(object::ensure_property_bag): New.
	(graph::get_graph_kind): New.
	(graph::set_graph_kind): New.
	* diagnostics/html-sink.cc
	(html_generation_options::html_generation_options): Update for
	field renamings.
	(html_generation_options::dump): Likewise.
	(html_builder::maybe_make_state_diagram): Likewise.
	(html_builder::add_graph): Show SARIF and .dot src inline, if
	requested.
	* diagnostics/html-sink.h
	(html_generation_options::m_show_state_diagrams_sarif): Rename
	to...
	(html_generation_options::m_show_graph_sarif): ...this.
	(html_generation_options::m_show_state_diagrams_dot_src): Rename
	to...
	(html_generation_options::m_show_graph_dot_src0): ...this.
	* diagnostics/output-spec.cc
	(html_scheme_handler::maybe_handle_kv): Rename keys.
	(html_scheme_handler::get_keys): Likewise.
	* diagnostics/state-graphs-to-dot.cc: : Reimplement throughout to
	use json::property instances found within custom_sarif_properties
	throughout, rather than types in diagnostics::state_graphs.
	* diagnostics/state-graphs.cc: Deleted file.
	* diagnostics/state-graphs.h: Delete almost all, except decl of
	diagnostics::state_graphs::make_dot_graph.
	* doc/invoke.texi: Update for changes to "experimental-html" sink
	keys.
	* json.cc (json::object::set_string): New.
	(json::object::set_integer): New.
	(json::object::set_bool): New.
	(json::object::set_array_of_string): New.
	* json.h: Include "label-text.h".
	(struct json::property): New template.
	(json::string_property): New.
	(json::integer_property): New.
	(json::bool_property): New.
	(json::json_property): New.
	(using json::array_of_string_property): New.
	(struct json::enum_traits): New.
	(enum_json::property): New.
	(json::value::dyn_cast_array): New vfunc.
	(json::value::dyn_cast_integer_number): New vfunc.
	(json::value::set_string): New.
	(json::value::set_integer): New.
	(json::value::set_bool): New.
	(json::value::set_array_of_string): New.
	(json::value::maybe_get_enum): New.
	(json::value::set_enum): New.
	(json::array::dyn_cast_array): New.
	(json::integer_number::dyn_cast_integer_number): New.
	(object::maybe_get_enum): New.
	(object::set_enum): New.

2025-10-02  Aurelien Jarno  <aurelien@aurel32.net>

	PR target/121652
	* config/riscv/riscv.md (round_pattern): special case NaN input
	instead of saving/restoring fflags.

2025-10-02  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc: (scheme_handler::parse_bool_value):
	Convert to...
	(key_handler::parse_bool_value): ...this.
	(scheme_handler::parse_enum_value): Convert to...
	(key_handler::parse_enum_value): ...this.
	(struct text_scheme_handler::decoded_args): Eliminate, moving
	fields into class text_scheme_handler.
	(text_scheme_handler::text_scheme_handler): Initialize the new
	fields.
	Add a "dc" param and use it to initialize m_show_color.
	(struct sarif_scheme_handler::decoded_args): Eliminate, moving
	fields into class sarif_scheme_handler.
	(sarif_scheme_handler::sarif_scheme_handler): Initialize the new
	fields.
	(struct html_scheme_handler::decoded_args): Eliminate, moving
	fields into class html_scheme_handler.
	(html_scheme_handler::html_scheme_handler): Initialize the new
	fields.
	(context::report_unknown_key): Get keys from scheme rather than
	passing them in.  Support client keys.
	(context::parse_and_make_sink): Pass dc to output_factory ctor.
	(output_factory::output_factory): Pass dc to text_scheme_handler.
	(output_factory::get_scheme_handler): Make return non-const.
	(output_factory::make_sink): Move key-handling here, rather than
	in individual sinks.
	(context::handle_kv): New.
	(text_scheme_handler::make_sink): Eliminate key decoding.
	(text_scheme_handler::decode_kv): Convert to...
	(text_scheme_handler::maybe_handle_kv): ...this...
	(text_scheme_handler::get_keys): ...and this.
	(sarif_scheme_handler::make_sink): Eliminate key decoding.
	(sarif_scheme_handler::decode_kv): Convert to...
	(sarif_scheme_handler::maybe_handle_kv): ...this...
	(sarif_scheme_handler::get_keys): ...and this.
	(html_scheme_handler::make_sink): Eliminate key decoding.
	(html_scheme_handler::decode_kv): Convert to...
	(html_scheme_handler::maybe_handle_kv): ...this...
	(html_scheme_handler::get_keys): ...and this.
	(struct selftest::parser_test): Add "client_keys" arg, and update
	for new param ordering.
	(selftest::parser_test::parse_and_make_sink): New.
	(selftest::test_output_arg_parsing): Move auto-fixes to caller.
	(class selftest::test_key_handler): New.
	(selftest::test_client_arg_parsing): New test.
	(selftest::output_spec_cc_tests): Call it.
	* diagnostics/output-spec.h (class key_handler): New.
	(class scheme_handler): Move here from output-spec.cc.
	(context::report_unknown_key): Simplify params.
	(context::handle_kv): Update params.
	(context::context): Add "client_keys" param.
	(context::m_client_keys): New field.
	(struct dc_spec_context): Update order of params.  Add
	"client_keys" param.
	* libgdiagnostics.cc (spec_context::spec_context): Pass nullptr
	for client keys.
	* opts-diagnostic.cc (opt_spec_context::opt_spec_context):
	Likewise.  Update for new param ordering.

2025-10-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Do not allow
	mask reductions.

2025-10-02  Jan Hubicka  <jh@suse.cz>
	    H.J. Lu  <hjl.tools@gmail.com>

	* cfghooks.cc (merge_blocks): Fix typo in the previous change.

2025-10-02  Jeff Law  <jlaw@ventanamicro.com>

	PR target/122051
	* config/riscv/predicates.md (pmode_reg_or_uimm5_operand): Implement
	directly rather than using vector_length_operand.

2025-10-02  H.J. Lu  <hjl.tools@gmail.com>

	* aclocal.m4: Regenerated.
	* configure: Likewise.

2025-10-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122079
	* tree-ssa-pre.cc (compute_antic_aux): Re-instantiate
	ANTIC_IN value pruning by the old solution.

2025-10-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122079
	* tree-ssa-pre.cc (prune_clobbered_mems): Do not prune
	values when the maximum expression set is involved.

2025-10-01  Jeff Law  <jlaw@ventanamicro.com>

	PR target/122106
	* config/riscv/bitmanip.md (crc expanders): Add predicate for
	polynomial argument.  Drop unnecessary constraints.

2025-10-01  Andreas Schwab  <schwab@linux-m68k.org>

	PR target/122066
	* config/m68k/m68k.md (adddi3, subdi3): Strip POST_INC and PRE_DEC
	when generating high part of the destination operand.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_calculate_branch_prob): Improve dump file.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (determine_scale): Break out from ...
	(afdo_adjust_guessed_profile): ... here.
	(scale_bb_profile): New function.
	(afdo_annotate_cfg): Use it.
	* params.opt (auto-profile-bbs): New parmaeter.
	* doc/invoke.texi (auto-profile-bbs): Document.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_unscaled_edge_count): New function based on
	part of ...
	(afdo_set_bb_count): ... this function; use it here.
	(afdo_calculate_branch_prob): Try to determine edge counts using
	phi args and goto locuses.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* Makefile.in (ALL_FDAS): New variable.
	(ALL_HOST_BACKEND_OBJ): Use all.fda instead of cc1plus.fda
	(all.fda): New target

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* cfghooks.cc (merge_blocks): Choose more reliable or higher BB
	count.

2025-10-01  Jan Hubicka  <hubicka@ucw.cz>

	* predict.cc (unlikely_executed_stmt_p): Remove redundant check.
	(rebuild_frequencies): Also recompute unlikely bbs when profile is
	present or consistent.

2025-10-01  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/120560
	* vr-values.cc (range_from_loop_direction): Use wi::ge_p rather
	than wi::gt_p.

2025-10-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122110
	* tree-vect-loop.cc (vectorizable_reduction): Relax restriction
	to mode-precision operations.

2025-09-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc (text_scheme_handler::make_sink): Use
	the value of the "color" to determine if the sink's printer is
	colorized.

2025-09-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc: Add comments.  Introduce a
	"struct decoded_args" within each scheme_handler subclass,
	and split out per-scheme key-value parsing from each make_sink
	implementation into new per-scheme decode_kv member functions.

2025-09-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc: Move class scheme_handler out from
	inside class output_factory.

2025-09-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc: Rename "parsed_arg" to
	"scheme_and_kvs" throughout.  Rename "unparsed_arg" to
	"unparsed_spec" throughout, and make a member of
	output_spec::context rather than passing it around.
	* diagnostics/output-spec.h: Likewise.
	* libgdiagnostics.cc: Likewise.
	* opts-diagnostic.cc: Likewise.

2025-09-30  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.cc (aarch64_functions_b_resolvable_from_a): New
	function.
	(TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A): New define.
	* doc/tm.texi: Regenerate.
	* doc/tm.texi.in: Add documentation for
	TARGET_OPTION_FUNCTIONS_B_RESOLVABLE_FROM_A.
	* multiple_target.cc (redirect_to_specific_clone): Add new optimisation
	logic.
	(ipa_target_clone): Remove check for TARGET_HAS_FMV_TARGET_ATTRIBUTE.
	* target.def: Document new hook..
	* attribs.cc: (functions_b_resolvable_from_a) New function.
	* attribs.h: (functions_b_resolvable_from_a) New function.

2025-09-30  Jakub Jelinek  <jakub@redhat.com>

	* auto-profile.h (maybe_hot_afdo_count_p): Fix comment typos,
	possiby -> possibly and ture -> true.
	* gimplify.cc (build_asan_poison_call_expr): Change "of a for"
	to "memory of the" in a comment.
	* ipa-devirt.cc (add_type_duplicate): Fix comment typo,
	mangles -> mangled.
	* auto-profile.cc: Fix comment typo, -fauto-profile-inlinig
	-> -fauto-profile-inlining.
	(maybe_hot_afdo_count_p): Fix comment typos, possiby -> possibly
	and ture -> true.
	(function_instance::removed_icall_target): Fix comment typo,
	Reutrn -> Return.
	(function_instance::in_worklist_): Fix comment typo, Ture -> True.
	(function_instance::offline): Fix comment typo, tolevel -> toplevel.
	(function_instance::match): Fix comment typo, craeate_gcov ->
	create_gcov.
	(autofdo_source_profile::offline_external_functions): Fix comment
	typos, tolevel -> toplevel and porfile -> profile.
	(autofdo_source_profile::get_function_instance_by_inline_stack): Fix
	comment typo, chekcing -> checking.
	(struct scale): Fix comment typo, scalle -> scale.
	* gimple.h (currently_expanding_gimple_stmt): Fix comment typo,
	comminucating -> communicating.
	* tree.h (canonical_type_used_p): Fix comment typo, ture -> true.
	* tree-ssa-alias.cc (types_equal_for_same_type_for_tbaa_p): Likewise.
	* ipa-profile.cc (contains_hot_call_p): Likewise.
	* cfgexpand.cc (add_scope_conflicts_2): Fix comment typos,
	Querry -> Query, referendd -> referenced and Querrying -> Querying.
	* ipa-param-manipulation.cc (currently_expanding_gimple_stmt): Fix
	comment typo, comminucating -> communicating.
	* ipa-prop.cc (ipa_cst_ref_desc::refcount): Fix comment typo,
	if -> is.
	* tree-if-conv.cc (version_loop_for_if_conversion): Fix comment typos,
	porfile -> profile and confistency -> consistency.
	* fold-const.cc: Change size_int_wide in comment to size_int as
	size_int_wide doesn't exit for 21 years.

2025-09-30  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (function_instance::match): Sanity check
	that gimple PHI has no location.
	* tree-cfg.cc (assign_discriminators): Also remap locations
	of gimple PHI arguments.

2025-09-30  Jan Hubicka  <hubicka@ucw.cz>

	* basic-block.h (GCOV_COMPUTE_SCALE): Remove.
	* ipa-profile.cc (ipa_profile_generate_summary): Use
	profile-count scaling.
	* sched-rgn.cc (compute_trg_info): Likewise.

2025-09-30  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (stmt_loc_used_by_debug_info): New function.
	(autofdo_source_profile::get_count_info): Use it.
	(afdo_set_bb_count): Likewise.
	(afdo_vpt_for_early_inline): Likewise.

2025-09-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gimple-lower-bitint.cc (bitint_precision_kind): Fix inconsistency in
	results between first and consecutive calls to this function.

2025-09-28  liuhongt  <hongtao.liu@intel.com>

	PR target/121970
	* config/i386/i386-options.cc (ix86_target_string): Remove
	store_max.
	(ix86_debug_options): Ditto.
	(ix86_function_specific_print): Ditto.
	(ix86_valid_target_attribute_tree): Ditto.
	(ix86_option_override_internal): Ditto.
	* config/i386/i386-expand.cc (ix86_expand_builtin): Ditto.
	* config/i386/i386-options.h (ix86_target_string): Ditto.
	* config/i386/i386.h (MOVE_MAX): Ditto.
	(STORE_MAX_PIECES): Set by move_max.
	* config/i386/i386.opt: Deprecate mmove-max=.
	* config/i386/x86-tune.def (X86_TUNE_AVX256_STORE_BY_PIECES):
	Removed.
	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.

2025-09-28  Peter Damianov  <peter0x44@disroot.org>

	* pretty-print.cc (decode_utf8_char): Move forward declaration.
	(mingw_utf8_str_to_utf16_str): New function to convert UTF-8 to UTF-16.
	(is_console_handle): New function to detect Windows console handles.
	(write_all): Add UTF-8 to UTF-16 conversion for console output,
	falling back to WriteFile for ASCII strings and regular files.

2025-09-27  ChengLulu  <chenglulu@loongson.cn>

	PR target/99217
	* config/mips/mips.cc (mips_start_function_definition):
	Implements the functionality of '-fpatchable-function-entry='.
	(mips_print_patchable_function_entry): Define empty function.
	(TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): Define macro.

2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>

	* config/mips/mips.cc(mips_option_override):Add conditions
	for use of the -mmips16e2 and -mips16 option.

2025-09-27  Jie Mei  <jie.mei@oss.cipunited.com>

	* config/mips/mips.md (fms<mode>4): Generates MSUBF.fmt
	instructions.
	(*fms<mode>4_msubf): Same as above.
	(fnma<mode>4): Same as above.
	(*fnma<mode>4_msubf): Same as above.

2025-09-26  Alejandro Colomar  <alx@kernel.org>

	* doc/extend.texi: Clarify documentation about lists of
	parameter forward declarations, and mention that more than one
	of them are unnecessary.
	* doc/invoke.texi: Document the new
	-Wmultiple-parameter-fwd-decl-lists.

2025-09-26  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_propagate_edge): Fix handling of precize 0
	counts.

2025-09-26  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn.cc
	(gcn_vectorize_support_vector_misalignment): Allow any alignment, as
	long as it's not packed.

2025-09-26  Jan Hubicka  <hubicka@ucw.cz>

	* profile-count.h (profile_probability::operator/): Do not cap
	twice.
	(profile_probability::operator/=): Likewise.
	(profile_probability::apply_scale): Do not watch for overflow.
	(profile_count::probability_in): Watch overflow.

2025-09-26  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/121875
	* config/loongarch/loongarch.cc
	(loongarch_can_inline_p): New function.
	(TARGET_CAN_INLINE_P): Define.

2025-09-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Warning Options): Use "bitwise" over
	"bit-wise".
	* doc/extend.texi (Vector Extensions): Use "elementwise"
	over "element-wise".
	* doc/md.texi (Standard Names): Ditto.

2025-09-25  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (Vector Extensions): Fix grammar.

2025-09-25  Xi Ruoyao  <xry111@xry111.site>

	* doc/invoke.texi (-ffp-int-builtin-inexact): Reword to match
	the default value with the default C standard.

2025-09-24  Dusan Stojkovic  <Dusan.Stojkovic@rt-rk.com>

	PR target/121778
	* config/riscv/riscv.md: Add define_split pattern.

2025-09-24  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* gimple-fold.cc (gimple_fold_builtin_assume_aligned): New function.
	(gimple_fold_builtin): Call gimple_fold_builtin_assume_aligned
	for BUILT_IN_ASSUME_ALIGNED.
	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Remove handling
	of BUILT_IN_ASSUME_ALIGNED.

2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64.md: Include neoversev2.md.
	* config/aarch64/tuning_models/neoversev2.h: Enable dispatch
	scheduling and add dispatch constraints.
	* config/aarch64/neoversev2.md: New file and new instruction attribute
	neoversev2_dispatch.

2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config.gcc: Add aarch64-sched-dispatch.o to extra_objs.
	* config/aarch64/aarch64-protos.h (struct tune_params): New
	field for dispatch scheduling.
	(struct dispatch_constraint_info): New struct for dispatch scheduling.
	* config/aarch64/aarch64-tuning-flags.def
	(AARCH64_EXTRA_TUNING_OPTION): New flag to enable dispatch scheduling.
	* config/aarch64/aarch64.cc (TARGET_SCHED_DISPATCH): Implement
	target hook.
	(TARGET_SCHED_DISPATCH_DO): Likewise.
	(aarch64_override_options_internal): Add check for definition of
	dispatch constraints if dispatch-scheduling tune flag is set.
	* config/aarch64/t-aarch64: Add aarch64-sched-dispatch.o.
	* config/aarch64/tuning_models/a64fx.h: Initialize fields for
	dispatch scheduling in tune_params.
	* config/aarch64/tuning_models/ampere1.h: Likewise.
	* config/aarch64/tuning_models/ampere1a.h: Likewise.
	* config/aarch64/tuning_models/ampere1b.h: Likewise.
	* config/aarch64/tuning_models/cortexa35.h: Likewise.
	* config/aarch64/tuning_models/cortexa53.h: Likewise.
	* config/aarch64/tuning_models/cortexa57.h: Likewise.
	* config/aarch64/tuning_models/cortexa72.h: Likewise.
	* config/aarch64/tuning_models/cortexa73.h: Likewise.
	* config/aarch64/tuning_models/cortexx925.h: Likewise.
	* config/aarch64/tuning_models/emag.h: Likewise.
	* config/aarch64/tuning_models/exynosm1.h: Likewise.
	* config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
	* config/aarch64/tuning_models/generic.h: Likewise.
	* config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
	* config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
	* config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
	* config/aarch64/tuning_models/neoversen1.h: Likewise.
	* config/aarch64/tuning_models/neoversen2.h: Likewise.
	* config/aarch64/tuning_models/neoversen3.h: Likewise.
	* config/aarch64/tuning_models/neoversev1.h: Likewise.
	* config/aarch64/tuning_models/neoversev2.h: Likewise.
	* config/aarch64/tuning_models/neoversev3.h: Likewise.
	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.
	* config/aarch64/tuning_models/olympus.h: Likewise.
	* config/aarch64/tuning_models/qdf24xx.h: Likewise.
	* config/aarch64/tuning_models/saphira.h: Likewise.
	* config/aarch64/tuning_models/thunderx.h: Likewise.
	* config/aarch64/tuning_models/thunderx2t99.h: Likewise.
	* config/aarch64/tuning_models/thunderx3t110.h: Likewise.
	* config/aarch64/tuning_models/thunderxt88.h: Likewise.
	* config/aarch64/tuning_models/tsv110.h: Likewise.
	* config/aarch64/tuning_models/xgene1.h: Likewise.
	* config/aarch64/aarch64-sched-dispatch.cc: New file for
	dispatch scheduling for aarch64.
	* config/aarch64/aarch64-sched-dispatch.h: New header file.

2025-09-24  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64-sve.md: Annotate instructions with
	attribute sve_type.
	* config/aarch64/aarch64-sve2.md: Likewise.
	* config/aarch64/aarch64.md (sve_type): New attribute sve_type.
	* config/aarch64/iterators.md (sve_type_unspec): New int attribute.
	(sve_type_int): New code attribute.
	(sve_type_fp): New int attribute.

2025-09-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/116816
	* tree-vect-stmts.cc (get_load_store_type): Allow multi-lane
	single-element interleaving to fall back to VMAT_ELEMENTWISE.
	Fall back to VMAT_ELEMENTWISE when we cannot handle a load
	permutation.
	(vectorizable_load): Do not check a load permutation
	for VMAT_ELEMENTWISE.  Handle grouped loads with
	VMAT_ELEMENTWISE and directly apply a load permutation.

2025-09-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_load_store_type): Explicitly fail
	when we end up with VMAT_ELEMENTWISE for BB vectorization.

2025-09-24  Xi Ruoyao  <xry111@xry111.site>

	PR tree-optimization/122040
	* doc/invoke.texi (-fisolate-erroneous-paths-dereference):
	Mention it also turns division by zero into a trap in addition
	to null dereference.

2025-09-24  Xi Ruoyao  <xry111@xry111.site>

	PR middle-end/66462
	* config/loongarch/loongarch.md (FCLASS_MASK): Add 3.
	(fclass_optab): Assign isnan for 3.
	(<FCLASS_MASK:fclass_optab><ANYF:mode>2): If FCLASS_MASK is 3,
	only enable when -fsignaling-nans.

2025-09-24  Pan Li  <pan2.li@intel.com>

	* match.pd: Add pattern of mult and reuse the widen-mul
	by for keyword.

2025-09-23  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/121986
	* diagnostics/sarif-sink.cc: Include "intl.h".
	(sarif_builder::make_message_describing_fix_it_hint): New.
	(sarif_builder::make_fix_object): Attempt to auto-generate a
	description for fix-it hints.

2025-09-23  Richard Earnshaw  <rearnsha@arm.com>

	PR target/121810
	* config/arm/mve.md (mve_mov<mode>): Move the Ui constraint
	and pool_range attributes to the final alternative.  Fix
	the forward range value and correctly name the negative
	range.

2025-09-23  Pan Li  <pan2.li@intel.com>

	PR middle-end/122031
	* tree-ssa-math-opts.cc (build_and_insert_cast): Fix the typo
	of self assignment.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.cc (aarch64_process_target_version_attr):
	Remove warning.
	* config/aarch64/aarch64.opt: Mark -Wno-experimental-fmv-target
	deprecated.
	* doc/invoke.texi: Ditto.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* attribs.cc (is_function_default_version): Update to handle
	target_clones.
	* cgraph.h (FOR_EACH_FUNCTION_REMOVABLE): New macro.
	* multiple_target.cc (expand_target_clones): Update logic to delete
	empty target_clones and modify diagnostic.
	(ipa_target_clone): Update to use FOR_EACH_FUNCTION_REMOVABLE.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* attribs.h (common_function_versions): Removed.
	* attribs.cc (common_function_versions): Removed.
	* config/aarch64/aarch64.cc (aarch64_common_function_versions): Removed.
	(aarch64_same_function_versions): New function to check if two version
	strings imply the same version.
	(TARGET_OPTION_FUNCTION_VERSIONS): Removed.
	(TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro.
	* config/i386/i386.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed.
	* config/rs6000/rs6000.cc (TARGET_OPTION_FUNCTION_VERSIONS): Removed.
	* config/riscv/riscv.cc (riscv_same_function_versions):  New function
	to check if two version strings imply the same version.
	(riscv_common_function_versions): Removed.
	(TARGET_OPTION_FUNCTION_VERSIONS): Removed.
	(TARGET_OPTION_SAME_FUNCTION_VERSIONS): New macro.
	* doc/tm.texi: Regenerated.
	* target.def: Remove common_version hook and add same_function_version
	hook.
	* doc/tm.texi.in: Ditto.
	* tree.cc (distinct_version_decls): New function.
	(mergeable_version_decls): Ditto.
	* tree.h (distinct_version_decls): New function.
	(mergeable_version_decls): Ditto.
	* hooks.h (hook_stringslice_stringslice_unreachable): New function.
	* hooks.cc (hook_stringslice_stringslice_unreachable): New function.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	PR target/118313
	* cgraph.cc (delete_function_version): Made public static member of
	cgraph_node.
	* cgraph.h (delete_function_version): Ditto.
	* cgraphunit.cc (analyze_functions): Add logic for target version
	dependencies.
	* ipa.cc (symbol_table::remove_unreachable_nodes): Ditto.
	* multiple_target.cc (create_dispatcher_calls): Change to support
	target version semantics.
	(ipa_target_clone): Change to dispatch all function sets in
	target_version semantics, and to have early and late pass.
	(expand_target_clones): Add logic for cases of target_clones with no
	defaults.
	(is_simple_target_clones_case): New function.
	(class pass_target_clone): New parameter for early or late pass.
	* config/aarch64/aarch64.cc: (aarch64_get_function_versions_dispatcher):
	Refactor with the assumption that the DECL node will be default.
	* config/riscv/riscv.cc: (riscv_get_function_versions_dispatcher):
	Refactor with the assumption that the DECL node will be default.
	* passes.def: Split target_clones pass into early and late version.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	PR target/118339
	* target.def: Add check_target_clone_version hook.
	* tree.cc (get_clone_attr_versions): Add filter argument.
	(get_clone_versions): Add filter argument.
	* tree.h (get_clone_attr_versions): Add filter.
	(get_clone_versions): Add filter argument.
	* config/aarch64/aarch64.cc (aarch64_check_target_clone_version):
	New function
	(TARGET_CHECK_TARGET_CLONE_VERSION): New define.
	* config/riscv/riscv.cc (riscv_check_target_clone_version):
	New function.
	(TARGET_CHECK_TARGET_CLONE_VERSION): New define.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in: Add documentation for new hook.
	* hooks.h (hook_stringslice_locationtptr_true): New function.
	* hooks.cc (hook_stringslice_locationtptr_true): New function.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* config/riscv/riscv-protos.h (riscv_process_target_version_str): New function..
	* config/riscv/riscv-target-attr.cc (riscv_process_target_attr): Refactor to take
	string_slice.
	(riscv_process_target_version_str): New function.
	* config/riscv/riscv.cc (parse_features_for_version): Refactor to take
	string_slice.
	(riscv_compare_version_priority): Ditto.
	(dispatch_function_versions): Change to pass location.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* attribs.cc (make_dispatcher_decl): Move duplicated cgraph logic into
	this function and change to use targetm.mangle_decl_assembler_name for
	mangling.
	* cgraph.cc (cgraph_node::insert_new_function_version): Record
	assembler_name.
	* cgraph.h (struct cgraph_function_version_info): Add assembler_name.
	(struct cgraph_node): Add dispatcher_resolver_function and
	is_target_clone.
	* config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Change to
	support string_slice.
	(aarch64_process_target_version_attr): Ditto.
	(get_feature_mask_for_version): Ditto.
	(aarch64_mangle_decl_assembler_name): Add logic for mangling dispatched
	symbol and resolver.
	(get_suffixed_assembler_name): Removed.
	(make_resolver_func): Refactor to use
	aarch64_mangle_decl_assembler_name for mangling.
	(aarch64_generate_version_dispatcher_body): Remove remangling.
	(aarch64_get_function_versions_dispatcher): Refactor to remove
	duplicated cgraph logic.
	* config/i386/i386-features.cc
	(ix86_mangle_function_version_assembler_name): Refactor to use
	clone_identifier and to mangle default.
	(ix86_mangle_decl_assembler_name): Add logic for mangling dispatched
	symbol and resolver.
	(ix86_get_function_versions_dispatcher): Remove duplicated cgraph
	logic.
	(make_resolver_func): Refactor to use ix86_mangle_decl_assembler_name
	for mangling.
	* config/riscv/riscv.cc (riscv_mangle_decl_assembler_name): Add logic
	for FMV mangling.
	(get_suffixed_assembler_name): Removed.
	(make_resolver_func): Refactor to use riscv_mangle_decl_assembler_name
	for mangling.
	(riscv_generate_version_dispatcher_body): Remove unnecessary remangling.
	(riscv_get_function_versions_dispatcher): Remove duplicated cgraph
	logic.
	* config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): New
	function.
	(rs6000_get_function_versions_dispatcher): Remove duplicated cgraph
	logic.
	(make_resolver_func): Refactor to use rs6000_mangle_decl_assembler_name
	for mangling.
	(rs6000_mangle_function_version_assembler_name): New function.
	* multiple_target.cc (create_dispatcher_calls): Remove mangling code.
	(get_attr_str): Removed.
	(separate_attrs): Ditto.
	(is_valid_asm_symbol): Removed.
	(create_new_asm_name): Ditto.
	(expand_target_clones): Refactor to use
	targetm.mangle_decl_assembler_name for mangling and be more general.
	* tree.cc (get_target_clone_attr_len): Removed.
	* tree.h (get_target_clone_attr_len): Removed.

2025-09-23  Alfie Richards  <alfie.richards@arm.com>

	* cgraph.h (clone_identifier): New function.
	* cgraphclones.cc (clone_identifier): New function.
	(clone_function_name): Refactored to use clone_identifier.
	(is_valid_asm_symbol): New helper function.

2025-09-23  liuhongt  <hongtao.liu@intel.com>

	PR target/121994
	* config/i386/x86-tune-costs.h (znver2_cost): Set
	vect_unroll_limit to 1.
	(znver1_cost): Ditto.
	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
	Adjust count number for	{AVX256,AVX512}_SPLIT_REGS.

2025-09-22  Peter Bergner  <bergner@tenstorrent.com>

	PR target/121982
	* config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_byte): New
	define_insn_reservation.

2025-09-22  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121762
	* builtins.cc (fold_builtin_constant_p): Make non-static.
	* builtins.h (fold_builtin_constant_p): New declaration.
	* gimple-fold.cc (gimple_fold_builtin_constant_p): New function.
	(gimple_fold_builtin): Call gimple_fold_builtin_constant_p
	for BUILT_IN_CONSTANT_P.
	* tree-ssa-ccp.cc (pass_fold_builtins::execute): Set PROP_last_full_fold
	on curr_properties. Remove handling of BUILT_IN_CONSTANT_P.

2025-09-22  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/libgdiagnostics/index.rst: Drop broken reference to
	`modindex`.

2025-09-22  Pan Li  <pan2.li@intel.com>

	PR middle-end/122021
	* tree-ssa-math-opts.cc (build_and_insert_cast): Add sign-extend
	check before prop.

2025-09-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122016
	* tree-ssa-sccvn.cc (vn_nary_simplify): Do not use the
	simplified expression when it references abnormals.

2025-09-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/122023
	* tree-vect-patterns.cc (vect_recog_rotate_pattern): Disable
	for rotates.

2025-09-22  Dimitar Dimitrov  <dimitar@dinux.eu>

	PR target/116205
	* config/pru/pru-passes.cc (class pass_pru_tiabi_check): Make
	this an IPA pass.
	(chkp_type_has_function_pointer): Remove.
	(check_type_tiabi_compatibility): New function.
	(chk_function_decl): Rename.
	(check_function_decl): Simplify.
	(check_op_callback): Rework to use
	check_type_tiabi_compatibility.
	(pass_pru_tiabi_check::execute): Rework to scan all symbols and
	gimple contents of all defined functions.
	* config/pru/pru-passes.def (INSERT_PASS_AFTER): Move after
	pass_ipa_auto_profile_offline.
	* config/pru/pru-protos.h (make_pru_tiabi_check): New
	declaration to mark as IPA pass.
	(make_pru_minrt_check): Specify it is making a gimple pass.
	* doc/invoke.texi: Document that bit-fields are now rejected for
	TI ABI.

2025-09-21  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-ccp.cc (optimize_unreachable): Don't check for forced labels.

2025-09-21  Jan Hubicka  <jh@suse.cz>

	* cgraphclones.cc (cgraph_node::create_version_clone): Recompute
	calls_comdat_local

2025-09-21  Jan Hubicka  <jh@suse.cz>

	* cgraph.cc (cgraph_edge::maybe_hot_p): For AFDO profiles force
	count to be non-zero.

2025-09-21  Jan Hubicka  <jh@suse.cz>

	* auto-profile.cc (autofdo_source_profile::read): Scale profile up to
	profile_count::n_bits - 10.

2025-09-21  Jan Hubicka  <jh@suse.cz>

	* ipa-inline-transform.cc (clone_inlined_nodes): Add KEEP_OFFLINE_COPY
	parameter.
	(inline_call): Sanity check profile and if it is clearly broken do
	not subtract profile from original function.
	* ipa-inline.cc (recursive_inlining): Update.
	* ipa-inline.h (clone_inlined_nodes): Update.

2025-09-20  Jan Hubicka  <jh@suse.cz>

	* doc/invoke.texi (--param max-devirt-targets) Document.
	* ipa-devirt.cc (ipa_devirt): Implement muti-target
	devirtualization.
	* params.opt (max-devirt-targets): New parameter.

2025-09-19  Alexandre Oliva  <oliva@adacore.com>

	* ira.cc (setup_reg_equiv): Retain function invariant
	equivalences.

2025-09-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Take gimple*
	instead of iterator.
	(optimize_agr_copyprop): Likewise.
	(simplify_builtin_call): Update call to optimize_aggr_zeroprop.
	(pass_forwprop::execute): Update calls to optimize_aggr_zeroprop
	and optimize_agr_copyprop.

2025-09-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop_1): Change return type
	to void.
	(optimize_aggr_zeroprop): Likewise.
	(optimize_agr_copyprop_1): Likewise.
	(optimize_agr_copyprop_arg): Likewise.
	(optimize_agr_copyprop): Likewise.
	(simplify_builtin_call): Handle update of the return type
	of optimize_aggr_zeroprop.
	(pass_forwprop::execute): Likewise and optimize_agr_copyprop.

2025-09-19  Michael Eager  <eager@eagercon.com>

	PR target/118280
	* config/microblaze/iterators.md: New.
	* config/microblaze/microblaze-protos.h: Add
	microblaze_subword_address.
	* config/microblaze/microblaze.cc: Ditto.
	* config/microblaze/microblaze.md: constants: Add UNSPECV_CAS_BOOL,
	UNSPECV_CAS_MEM, UNSPECV_CAS_VAL, UNSPECV_ATOMIC_FETCH_OP
	type: add atomic
	* config/microblaze/sync.md: Add atomic_fetch_<atomic_optab>si
	atomic_test_and_set

2025-09-19  Jan Hubicka  <jh@suse.cz>

	* ipa-fnsummary.cc (estimate_edge_devirt_benefit): Handle speculative
	edges correctly.
	(estimate_edge_size_and_time): Even when not collecting hints,
	devirtualization affects function size.
	(estimate_calls_size_and_time): Do not use tables when devirtualization
	is possible.

2025-09-19  Jan Hubicka  <jh@suse.cz>

	* cgraph.cc (cgraph_edge::make_direct): Do not ICE when there are
	multiple speculations to comptaible targets
	(cgraph_edge::combined_sreal_frequency): New member function.
	* cgraph.h (cgraph_edge::combined_sreal_frequency): Declare.
	* ipa-cp.cc (devirtualization_time_bonus): Return sreal; consider
	profile.
	(estimate_local_effects): Likewise.

2025-09-19  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/121856
	* doc/gm2.texi (Compiler options): New item -fwideset.

2025-09-19  Jeff Law  <jlaw@ventanamicro.com>

	PR target/121983
	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Make sure
	object is a REG before asking for its REGNO.  Fix a trivial
	whitespace nit.

2025-09-19  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>

	* config/riscv/riscv-v.cc
	(shuffle_slide_patterns): Cover more permutations.

2025-09-19  Jim Lin  <jim@andestech.com>

	* config/riscv/riscv.cc (riscv_compute_frame_info): Remove the
	dedicated calculation for RVE.

2025-09-19  Jeff Law  <jlaw@ventanamicro.com>

	* config.gcc (riscv*); Add riscv-bclr-lowest-set-bit.o to extra_objs.
	* config/riscv/riscv-bclr-lowest-set-bit.cc: New file.
	* config/riscv/riscv-passes.def: Add new pass after combine.
	* config/riscv/riscv-protos.h (make_pass_bclr_lowest_set_bit): Add
	prototype.
	* config/riscv/t-riscv: Add rules to build riscv-bclr-lowest-set-bit.o.

2025-09-19  Richard Biener  <rguenther@suse.de>

	* tree-ssa-pre.cc (compute_antic_aux): Remove dead code.

2025-09-19  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info::store_count): Remove.
	(DR_GROUP_STORE_COUNT): Likewise.
	* tree-vect-stmts.cc (vect_transform_stmt): Remove non-SLP
	path.

2025-09-19  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_get_num_copies): Remove unused
	overload.  Remove defaulted vectype argument and always
	use the vector type of the SLP node.
	* tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
	Adjust.
	(vectorizable_lane_reducing): Likewise.
	(vect_transform_reduction): Likewise.
	(vectorizable_nonlinear_induction): Likewise.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Likewise.

2025-09-19  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_slp_tree::vec_stmts_size): Remove.
	(SLP_TREE_NUMBER_OF_VEC_STMTS): Likewise.
	* tree-vect-loop.cc (vectorizable_reduction): Adjust.
	(vect_transform_cycle_phi): Likewise.
	(vect_transform_lc_phi): Likewise.
	(vectorizable_recurr): Likewise.
	(vectorizable_induction): Likewise.
	(vectorizable_live_operation): Likewise.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Do not set
	SLP_TREE_NUMBER_OF_VEC_STMTS.
	(vect_slp_analyze_node_operations_1): Likewise.
	(vect_slp_analyze_node_operations): Likewise.
	(vect_prologue_cost_for_slp): Adjust.
	(vect_create_constant_vectors): Likewise.
	(vect_get_slp_vect_def): Likewise.
	(vect_transform_slp_perm_load_1): Likewise.
	(vectorizable_slp_permutation_1): Likewise.
	(vect_schedule_slp_node): Likewise.
	(vectorize_slp_instance_root_stmt): Likewise.
	* tree-vect-stmts.cc (vect_model_simple_cost): Likewise.
	(vectorizable_bswap): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vectorizable_condition): Likewise.
	(vectorizable_early_exit): Likewise.

2025-09-18  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/client-data-hooks.h (client_data_hooks::dump): New.
	* diagnostics/context.cc (context::dump): Dump
	m_client_data_hooks.
	(client_data_hooks::dump): New.
	* diagnostics/logical-locations.h
	(logical_locations::manager::dump): New.
	* diagnostics/selftest-logical-locations.cc: Include
	"diagnostics/dumping.h".
	(test_manager::dump): New.
	* diagnostics/selftest-logical-locations.h (test_manager::dump):
	New decl.
	* libgdiagnostics.cc: Include "diagnostics/dumping.h".
	(impl_logical_location_manager::dump): New.
	* tree-logical-location.cc: Include "diagnostics/dumping.h".
	(tree_logical_location_manager::dump): New.
	* tree-logical-location.h (tree_logical_location_manager::dump):
	New decl.

2025-09-18  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/paths-output.cc: Update for conversion of
	location_aspect to enum class.
	* diagnostics/source-printing.cc: Likewise.
	* input.cc: Likewise.
	* input.h: Likewise.

2025-09-18  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/buffering.cc: Drop include of "diagnostic.h".
	* diagnostics/buffering.h: Likewise.
	* diagnostics/context.h (diagnostics::metadata): Add forward decl.
	* diagnostics/html-sink.cc: Drop include of "diagnostic.h".
	* diagnostics/lazy-paths.cc: Likewise.
	* diagnostics/macro-unwinding.cc: Likewise.
	* diagnostics/macro-unwinding.h (diagnostics:diagnostic_info): Add
	forward decl.
	* diagnostics/option-classifier.h: Include
	"diagnostics/option-id.h" and "diagnostics/kinds.h".
	(diagnostics:diagnostic_info): Add forward decl.
	* diagnostics/output-spec.cc: Drop include of "diagnostic.h".
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/paths.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/selftest-context.cc: Likewise.
	* diagnostics/selftest-paths.cc: Likewise.
	* diagnostics/source-printing-options.h: Include
	"rich-location.h".
	* diagnostics/text-sink.cc: Drop include of "diagnostic.h".

2025-09-18  Qing Zhao  <qing.zhao@oracle.com>

	PR tree-optimization/121894
	* tree-sra.cc (scan_function): Set grp_assignment_write to 1 when
	specially handle call to .DEFERRED_INIT.

2025-09-18  Zhongyao Chen  <chenzhongyao.hit@gmail.com>

	PR target/121910
	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
	Return RVV_M8 when estimated lmul is too large.

2025-09-18  Jakub Jelinek  <jakub@redhat.com>

	PR c++/121977
	* omp-low.cc (lower_omp_regimplify_operands_p): If maybe_lookup_decl
	returns NULL, use maybe_lookup_decl_in_outer_ctx as fallback.

2025-09-18  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64-sme.md (@aarch64_sme_write_zt<SVE_FULL:mode>): New insn.
	(aarch64_sme_lut_zt): Likewise.
	* config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): New type format "%T".
	(struct luti_lane_zt_base): New function shape.
	(SHAPE): Likewise.
	(struct write_zt_def): Likewise.
	(struct write_lane_zt_def): Likewise.
	* config/aarch64/aarch64-sve-builtins-shapes.h: New function shape.
	* config/aarch64/aarch64-sve-builtins-sme.cc (class svluti_zt_impl): New function expander.
	(class svwrite_zt_impl): Likewise.
	(class svwrite_lane_zt_impl): Likewise.
	(FUNCTION): Likewise
	* config/aarch64/aarch64-sve-builtins-sme.def (svwrite_zt): New function shape.
	(svwrite_lane_zt): Likewise.
	(svluti4_zt): Likewise.
	* config/aarch64/aarch64-sve-builtins-sme.h: New function base.
	* config/aarch64/aarch64-sve-builtins.h: Mention the arrays of function_group_info by name.

2025-09-18  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Conditonally define
	`__ARM_FEATURE_SME_LUTv2" macro.
	* config/aarch64/aarch64-option-extensions.def (AARCH64_OPT_EXTENSION("sme-lutv2")): New
	optional architecture extension.
	* config/aarch64/aarch64.h (TARGET_SME_LUTv2): New macro.
	* doc/invoke.texi: Document `+sme-lutv2` flag.

2025-09-18  Pan Li  <pan2.li@intel.com>

	* match.pd: Add pattern for SAT_MUL form 5.
	* tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
	Try match pattern for IOR.

2025-09-18  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (update_counts_for_self_gen_clones): Do not update
	call frequency for local profiles.

2025-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87615
	* tree-ssa-sccvn.cc (vn_nary_op_insert_into): When inserting
	a new predicate or location into an existing predicate list
	make sure to not exceed 8 locations.  Avoid copying things
	when we later eventually throw them away.
	(vn_nary_op_insert_pieces_predicated): Avoid expensive check
	when not checking.
	(dominated_by_p_w_unex): Apply the limit on a single successors
	predecessor count consistently.

2025-09-18  Tobias Burnus  <tburnus@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/121922
	* omp-general.cc (omp_dynamic_cond): Use 'unshare_expr' for
	the user condition.

2025-09-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121720
	* tree-ssa-pre.cc (bitmap_set_subtract_expressions): Add
	flag to tell whether we should copy instead of prune the
	value set.
	(compute_antic_aux): Remove intersection of ANTIC_IN with
	the old solution.  When subtracting TMP_GEN from
	ANTIC_OUT do not prune the value set when MAX was involved
	in the ANTIC_OUT computation.

2025-09-18  hongtao.liu  <hongtao.liu@intel.com>

	* config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES):
	Remove SPR/GNR/DMR.
	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.

2025-09-17  David Malcolm  <dmalcolm@redhat.com>

	* sarif-replay.cc (set_defaults): Initialize
	m_debug_physical_locations.

2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121962
	* tree-ssa-forwprop.cc (same_for_assignment): New function.
	(optimize_agr_copyprop_1): Use same_for_assignment to check for
	nop copies.
	(optimize_agr_copyprop): Likewise.

2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (new_src_based_on_copy): An early out
	if both are decls.

2025-09-17  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Split out
	the case where `operand_equal_p (dest, src2)` is false into ...
	(new_src_based_on_copy): This. New function.
	(optimize_agr_copyprop_arg): Use new_src_based_on_copy
	instead of operand_equal_p to find the new src.

2025-09-17  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR tree-optimization/58727
	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
	In (A & C1) | C2, if (C1|C2) results in a constant with a single bit
	clear, then adjust C1 appropriately.

2025-09-17  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-inline.cc (maybe_copy_this_notrap): New function.  Also copy
	the TREE_THIS_NOTRAP flag for parameters when the argument is a full
	object and the parameter's type is self-referential.
	(remap_gimple_op_r): Call maybe_copy_this_notrap.
	(copy_tree_body_r): Likewise.

2025-09-17  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*widen_first_<any_extend:su>_vx_<mode>):
	Add helper bridge pattern for vwaddu.vx combine.
	(*widen_<any_widen_binop:optab>_<any_extend:su>_vx_<mode>): Add
	new pattern to match vwaddu.vx combine.
	* config/riscv/iterators.md: Add code attr to get extend CODE.
	* config/riscv/vector-iterators.md: Add Dmode iterator for
	widen.

2025-09-16  Jakub Jelinek  <jakub@redhat.com>

	* doc/invoke.texi (Wimplicit-fallthrough=): Document that also C23
	provides a standard way to suppress the warning with [[fallthrough]];.

2025-09-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (#include):
	Add "addresses.h".
	* config/xtensa/xtensa.h (REGNO_OK_FOR_BASE_P):
	Simplify to just a call to GP_REG_P().
	(BASE_REG_P): Replace REGNO_OK_FOR_BASE_P() with the equivalent
	call to regno_ok_for_base_p().

2025-09-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR middle-end/66462
	* config/aarch64/aarch64.md (isnan<mode>2): Add new expander.

2025-09-16  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_load_store_type): Get in a flag
	whether a SLP_TREE_LOAD_PERMUTATION on the node can be
	code generated and use it.  Fix the condition on using
	strided gather/scatter to avoid dropping a meaningful
	permutation.
	(vectorizable_store): Adjust.
	(vectorizable_load): Analyze the permutation early and
	pass the result down to get_load_store_type.  Fix the
	condition on when we are allowed to elide a load permutation.

2025-09-16  Jennifer Schmitz  <jschmitz@nvidia.com>

	PR target/121602
	* config/aarch64/aarch64-sve-builtins.cc
	(gimple_folder::fold_active_lanes_to): Add force_vector
	statement.

2025-09-16  Jiawei  <jiawei@iscas.ac.cn>

	* config.gcc: Accept RISC-V profiles in `--with-arch`.
	* config/riscv/arch-canonicalize: Add profile detection and
	skip canonicalization for profiles.

2025-09-16  Jiawei  <jiawei@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc (struct riscv_profiles): Add comments.
	(RISCV_PROFILE): Removed.
	* config/riscv/riscv-profiles.def: New file.

2025-09-16  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* config/riscv/riscv-ext.def: Imply zicsr.

2025-09-16  liuhongt  <hongtao.liu@intel.com>

	* config/i386/predicates.md (avx_vbroadcast128_operand): New
	predicate.
	* config/i386/sse.md (*avx_vbroadcastf128_<mode>_perm): New
	pre_reload splitter.

2025-09-15  Alexandre Oliva  <oliva@adacore.com>

	* config/rs6000/vxworks.h (TARGET_CMODEL, SET_CMODEL): Define.

2025-09-15  Alexandre Oliva  <oliva@adacore.com>

	* configure.ac: Adjust base register in linker test for large
	TOC support.
	* configure: Rebuild.

2025-09-15  Pan Li  <pan2.li@intel.com>

	* match.pd: Remove unnecessary cast of unsigned
	SAT_MUL for widen-mul.

2025-09-15  Pan Li  <pan2.li@intel.com>

	* tree-ssa-math-opts.cc (build_and_insert_cast): Refine
	the cast insert by check the rhs of val.

2025-09-15  David Faust  <david.faust@oracle.com>

	PR debug/121411
	PR debug/121903
	* ctfc.h (ctf_add_sou): Change size arg from size_t to uHWI.
	* ctfc.cc (ctf_add_sou): Likewise.

2025-09-15  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121751
	PR tree-optimization/121418
	PR tree-optimization/121417
	* tree-ssa-forwprop.cc (split_core_and_offset_size): New function.
	(optimize_agr_copyprop_1): Allow for the same
	address but different type accesses via a VCE.

2025-09-15  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/121772
	* match.pd: Add type check to reduc(ctor) pattern.

2025-09-15  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-mcus.def: Add avr32eb14, avr32eb20,
	avr32eb28, avr32eb32.
	* doc/avr-mmcu.texi: Rebuild.

2025-09-15  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121934
	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): If a
	single instruction can store or move the whole block of memory,
	use vector instruction and don't align destination.

2025-09-15  Xi Ruoyao  <xry111@xry111.site>

	PR target/121906
	* config/loongarch/loongarch.md (*bstrins_<mode>_for_ior_mask):
	Always create a new pseudo for the input register of the bstrins
	instruction.

2025-09-15  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121904
	* tree.cc (get_range_pos_neg): Return 3 if arg doesn't have
	scalar integral type.
	* expr.cc (expand_expr_real_2) <CASE_CONVERT>: Only choose between
	sign and zero extension based on costs for scalar integral inner
	types.

2025-09-15  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR middle-end/121391
	* gimplify.cc (gimplify_asm_expr): In case an asm operand is an
	error node, bail out early.

2025-09-14  Richard Biener  <rguenther@suse.de>

	PR lto/121935
	* ipa-free-lang-data.cc (find_decls_types_r): Visit DECL_ARGUMENTS
	chain manually.

2025-09-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_type::permute_info_type): Add.
	(vectorizable_slp_permutation): Declare.
	* tree-vect-slp.cc (vectorizable_slp_permutation): Export.
	(vect_slp_analyze_node_operations_1): Set permute_info_type
	on permute nodes successfully analyzed.
	(vect_schedule_slp_node): Dispatch to vect_transform_stmt
	for all nodes.
	* tree-vect-stmts.cc (vect_transform_stmt): Remove redundant
	dump, handle permute_info_type.

2025-09-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_load_store_type): Use VMAT_STRIDED_SLP
	for negative stride accesses when VMAT_CONTIGUOUS_REVERSE
	isn't applicable.

2025-09-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_load_store_data::n_perms): New.
	* tree-vect-stmts.cc (vectorizable_load): Analyze
	SLP_TREE_LOAD_PERMUTATION only once and remember n_perms.
	Verify the transform-time n_perms against the value stored
	during analysis.

2025-09-13  Gerald Pfeifer  <gerald@pfeifer.com>

	* target.def (dtors_from_cxa_atexit): Properly mark up
	__cxa_atexit as code.
	* doc/tm.texi: Regenerate.

2025-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR rtl-optimization/121205
	* lra-constraints.cc (curr_insn_transform): Stop processing on
	error.

2025-09-13  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Optimize Options): Editorial changes around
	-fprofile-partial-training.

2025-09-12  Jeff Law  <jlaw@ventanamicro.com>

	* lra-constraints.cc (get_equiv): Bounds check before accessing
	data in ira_reg_equiv.

2025-09-12  Edwin Lu  <ewlu@rivosinc.com>

	* match.pd: New NARROW_CLIP variant for SAT_TRUNC.
	* tree-vect-patterns.cc (gimple_unsigned_integer_narrow_clip):
	Add new decl for NARROW_CLIP.
	(vect_recog_sat_trunc_pattern): Add NARROW_CLIP check.

2025-09-12  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/120063
	* diagnostics/context.cc (context::execution_failed_p): Also treat
	any kind::fatal errors as leading to failed execution.
	* diagnostics/sarif-sink.cc (maybe_get_sarif_level): Handle
	kind::fatal as SARIF level "error".

2025-09-12  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/121876
	* diagnostics/buffering.cc (context::set_diagnostic_buffer): Add
	early reject of the no-op case.

2025-09-12  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/121865
	* ipa-free-lang-data.cc (find_decls_types_r): Don't walk into
	DECL_CHAIN for any DECL.

2025-09-12  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-pure-const.cc (check_stmt): Minor formatting tweaks.
	(pass_data_nothrow): Fix pasto in description.

2025-09-12  Tamar Christina  <tamar.christina@arm.com>

	* internal-fn.def (VEC_TRUNC_ADD_HIGH): New.
	* doc/generic.texi: Document it.
	* optabs.def (vec_trunc_add_high): New.
	* doc/md.texi: Document it.
	* tree-vect-stmts.cc (vectorizable_early_exit): Use addhn if supported.

2025-09-12  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-simd.md (vec_addh_narrow<mode>): New.

2025-09-12  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-loop.cc (vect_analyze_loop_1): If the unroll pragma was set
	mark it as handled.
	* doc/extend.texi (pragma GCC unroll): Update documentation.

2025-09-11  Trevor Gross  <tmgross@umich.edu>

	* doc/libgcc.texi (Comparison functions): Document functions as
	returning CMPtype.

2025-09-11  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR middle-end/66462
	* config/aarch64/aarch64.md (isfinite<mode>2): Add new expander.

2025-09-11  Matteo Nicoli  <matteo.nicoli001@gmail.com>

	PR tree-optimization/121595
	* match.pd (fabs(a + 0.0) -> fabs (a)): Optimization pattern limited to
	the -fno-trapping-math case.

2025-09-11  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_compare_and_swapti_scq):
	Require LSX.  Change the operands for the output, the memory,
	and the expected value to LSX vector modes.  Add a FCCmode
	output to indicate if CAS has written the desired value into
	memory.  Use LSX to atomically load both words of the 16B value
	in memory.
	(atomic_compare_and_swapti): Pun the modes to satisify
	the new atomic_compare_and_swapti_scq implementation.  Read the
	bool return value from the FCC instead of performing a
	comparision.

2025-09-11  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.cc (loongarch_print_operand): Call
	reg_or_0_operand for checking the sanity of %t.

2025-09-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121703
	* tree-vect-stmts.cc (vectorizable_store): Value-initialize ls.
	(vectorizable_load): Likewise.

2025-09-11  Tsukasa OI  <research_trasio@irq.a4lg.com>

	* config/riscv/riscv.cc (riscv_function_ok_for_sibcall):
	Suppress cross calling convention sibcall optimization from
	the vector calling convention variant.

2025-09-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121829
	* cfgloopmanip.cc (create_preheader): Ensure we can insert
	at the end of a preheader.

2025-09-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121870
	* tree-ssa-propagate.cc
	(substitute_and_fold_engine::substitute_and_fold): Skip
	removed stmts from noreturn fixup.

2025-09-11  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/bitmanip.md (*<bitmanip_minmax_cmp_insn>_cmp_<mode>3):
	New min/max ifcvt pattern.
	* config/riscv/iterators.md (minu): New iterator.
	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
	Remove riscv-specific adjustment.

2025-09-11  Robin Dapp  <rdapp@ventanamicro.com>

	* ifcvt.cc (noce_convert_multiple_sets_1): Add use_cond_earliest
	param.
	(noce_convert_multiple_sets): Set use_cond_earliest.
	(noce_process_if_block): Just use original cost.
	(noce_find_if_block): Use insn_cost (jump_insn).

2025-09-11  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-selftests.cc (riscv_run_selftests): Call
	run_vectorize_related_mode_selftests.
	(test_vectorize_related_mode): New function to test
	vectorize_related_mode behavior.
	(run_vectorize_related_mode_selftests): New function to run all
	vectorize_related_mode tests.
	(run_vectorize_related_mode_vla_selftests): New function to test
	VLA modes.
	(run_vectorize_related_mode_vls_rv64gcv_selftests): New function to
	test VLS modes on rv64gcv.
	(run_vectorize_related_mode_vls_rv32gc_zve32x_zvl256b_selftests):
	New function to test VLS modes on rv32gc_zve32x_zvl256b.
	(run_vectorize_related_mode_vls_selftests): New function to run all
	VLS mode tests.
	* config/riscv/riscv-v.cc (can_find_related_mode_p): Fix VLS type
	handling by converting TARGET_MIN_VLEN from bits to bytes.

2025-09-10  Georg-Johann Lay  <avr@gjlay.de>

	PR target/81540
	PR target/49857
	* common/config/avr/avr-common.cc: Disable -ftree-switch-conversion.

2025-09-10  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
	Change "Xtrnase" in the comment to "Xtensa".

2025-09-10  Peter Bergner  <bergner@tenstorrent.com>

	PR target/121878
	* config/riscv/tt-ascalon-d8.md (tt_ascalon_d8_vec_idiv_half): Test the
	Selected Element Width (SEW) rather than the mode.
	(tt_ascalon_d8_vec_idiv_single): Likewise.
	(tt_ascalon_d8_vec_idiv_double): Likewise.
	(tt_ascalon_d8_vec_float_divsqrt_half): Likewise.
	(tt_ascalon_d8_vec_float_divsqrt_single): Likewise.
	(tt_ascalon_d8_vec_float_divsqrt_double): Likewise.

2025-09-10  Juergen Christ  <jchrist@linux.ibm.com>

	* tree-vect-loop.cc (vectorizable_live_operation_1): Fix
	load/store bias handling.

2025-09-10  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfwsub_wf_<mode>): New pattern to
	combine float_extend + vec_duplicate + vfsub.vv into vfwsub.wf.

2025-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121828
	* gimple-lower-bitint.cc (gimple_lower_bitint): For REALPART_EXPR
	consumed by store in the same bb and with REALPART_EXPR from
	optimizable_arith_overflow, don't add REALPART_EXPR lhs to
	the m_names bitmap only if the cast from IMAGPART_EXPR doesn't
	appear in between the REALPART_EXPR and the store.

2025-09-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121831
	* expr.cc (raw_data_cst_read_str): New function.
	(store_constructor) <case ARRAY_TYPE>: Handle RAW_DATA_CST.

2025-09-10  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.h (CLZ_DEFINED_VALUE_AT_ZERO): Adjust and
	return 2.
	(CTZ_DEFINED_VALUE_AT_ZERO): Return 2.
	* config/s390/s390.md (clzsi2): Implement.
	(ctzsi2): Implement.

2025-09-10  Maximilian Immanuel Brandtner  <maxbr@linux.ibm.com>

	* config/s390/vector.md (*vec_extract<mode>_plus_zero_extend):
	Fix define insn.

2025-09-09  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-devices.def: Correct the Max ISA VGPRs counts for
	GFX10 and GFX11 devices.
	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Remove the wave64
	VGPR count fudge.

2025-09-09  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn.cc (gcn_expand_builtin_1): Enable the "mode" parameter
	and ensure that "target" is a register for most of the builtins.

2025-09-09  David Faust  <david.faust@oracle.com>

	PR debug/121411
	* dwarf2ctf.cc (ctf_get_AT_data_member_location) Use AT_unsigned
	when fetching AT_bit_offset and AT_data_member_location.  Simplify.
	(ctf_die_bitsize): Return unsigned HOST_WIDE_INT instead of
	uint32_t.
	(gen_ctf_base_type, gen_ctf_sou_type, gen_ctf_enumeration_type):
	Adapt accordingly.

2025-09-09  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfwsub_vf_<mode>): New pattern to
	combine float_extend + vec_duplicate + vfwsub.vv into vfwsub.vf.

2025-09-09  Jakub Jelinek  <jakub@redhat.com>

	PR c++/121678
	* tree.cc (staticp): Handle REALPART_EXPR and IMAGPART_EXPR.

2025-09-09  Jonathan Wakely  <jwakely@redhat.com>

	* doc/invoke.texi (Warning Options): Note that an option
	enabled by -Wextra is for C and ObjC only.

2025-09-09  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfwadd_wf_<mode>): New pattern to
	combine float_extend + vec_duplicate + vfadd.vv into vfwadd.wf.
	* config/riscv/vector.md
	(@pred_single_widen_<plus_minus:optab><mode>_scalar): Swap and reorder
	operands to match the RTL emitted by expand.

2025-09-09  Kyrylo Tkachov  <ktkachov@nvidia.com>

	Revert:
	2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (*bcaxqdi4): New
	define_insn_and_split.

2025-09-09  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2025-09-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121829
	* tree-vect-loop-manip.cc (vect_remove_forwarder): New
	function.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Use it.

2025-09-09  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121861
	* config/i386/i386.cc (ix86_optab_supported_p): Drop
	!flag_trapping_math check for floor_optab, ceil_optab and
	btrunc_optab.

2025-09-09  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386-expand.cc (expand_vec_perm_vpermil): Extend
	to handle V8SImode.
	* config/i386/i386.cc (avx_vpermilp_parallel): Extend to
	handle vector integer modes with same vector size and same
	component size.
	* config/i386/sse.md
	(<sse2_avx_avx512f>_vpermilp<mode><mask_name>): Ditto.
	(V48_AVX): New mode iterator.
	(ssefltmodesuffix): Extend for V16SI/V8DI/V16SF/V8DF.

2025-09-09  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
	Check permutation index for vec_perm, don't count it if we
	know it's not a cross-lane permutation.

2025-09-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/107997
	PR tree-optimization/121844
	* tree-ssa-loop-ivopts.cc (allow_ip_end_pos_p): Do not allow
	IP_END for latches ending with a control stmt.
	(create_new_iv): Do not split the latch edge, instead assert
	that's not necessary.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfwadd_vf_<mode>): New pattern to
	combine float_extend + vec_duplicate + vfwadd.vv into vfwadd.vf.

2025-09-08  Anton Blanchard  <antonb@tenstorrent.com>

	* config/riscv/riscv.cc (tt_ascalon_d8_tune_info): Increase branch_cost
	from 3 to 4.

2025-09-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121830
	* tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Only
	set STMT_VINFO_REDUC_DEF on reductions.
	* tree-vect-slp.cc (vect_build_slp_tree_2): Identify reduction
	PHIs by a set STMT_VINFO_REDUC_DEF instead of their def type.

2025-09-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121829
	* tree-vect-loop-manip.cc (vect_remove_forwarder): New
	function.
	(slpeel_tree_duplicate_loop_to_edge_cfg): Use it.

2025-09-08  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/114892
	* doc/invoke.texi (Developer Options): Document -folding option
	for -fdump-tree-*.

2025-09-08  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* ipa-cp.cc (gather_count_of_non_rec_edges): Check count
	initialization before adding to total.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfrsub_vf_<mode>): New pattern to
	combine vec_duplicate + vfsub.vv into vfrsub.vf.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfsub_vf_<mode>): New pattern to
	combine vec_duplicate + vfsub.vv into vfsub.vf.
	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfadd_vf_<mode>): New pattern to
	combine vec_duplicate + vfadd.vv into vfadd.vf.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfwmul_vf_<mode>): New pattern to
	combine float_extend + vec_duplicate + vfmul.vv into vfmul.vf.
	* config/riscv/vector.md (*@pred_dual_widen_<optab><mode>_scalar):
	Swap operands to match the RTL emitted by expand, i.e. first
	float_extend then vec_duplicate.

2025-09-08  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfmin_vf_ieee_<mode>): Rename into...
	(*v<ieee_fmaxmin_op>_vf_<mode>): New pattern to combine vec_duplicate +
	vf{max,min}.vv (unspec) into vf{max,min}.vf.

2025-09-08  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (SH Function Attributes): Remove reference to
	GNU Binutils 2.7 requirement.
	(H8/300 Variable Attributes): Ditto.

2025-09-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/87900
	* tree-ssa-strlen.cc  (strlen_pass::handle_assign): Add RHS argument.
	For empty constructor RHS, see if can combine with a previous malloc into
	a calloc.
	(strlen_pass::check_and_optimize_call): Update call to handle_assign;
	passing NULL_TREE for RHS.
	(strlen_pass::check_and_optimize_stmt): Update call to handle_assign.

2025-09-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/83022
	* tree-ssa-strlen.cc (last_stmt_ptr_check): New function.
	(allow_memset_malloc_to_calloc): New function.
	(strlen_pass::handle_builtin_memset): Check to see if it is a good
	idea to do the malloc+memset->calloc optimization.
	(printf_strlen_execute): Free post dom info.

2025-09-08  Sam James  <sam@gentoo.org>

	* common.opt.urls: Regenerate.

2025-09-07  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121841
	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow
	two different decls as bases as non-overlapping bases.

2025-09-07  Jeff Law  <jlaw@ventanamicro.com>

	* dep-fusion.cc: Mark clone, gate and execute methods as final.

2025-09-07  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/andes-vector-builtins-bases.cc (nds_vd4dot): New class.
	(class nds_vd4dotsu): New class.
	* config/riscv/andes-vector-builtins-bases.h: New def.
	* config/riscv/andes-vector-builtins-functions.def (nds_vd4dots): Ditto.
	(nds_vd4dotsu): Ditto.
	(nds_vd4dotu): Ditto.
	* config/riscv/andes-vector.md
	(@pred_nds_vd4dot<su><mode>): New pattern.
	(@pred_nds_vd4dotsu<mode>): New pattern.
	* config/riscv/genrvv-type-indexer.cc (main): Modify sew of QUAD_FIX,
	QUAD_FIX_SIGNED and QUAD_FIX_UNSIGNED.
	* config/riscv/riscv-vector-builtins.cc
	(qexti_vvvv_ops): New operand information.
	(qexti_su_vvvv_ops): New operand information.
	(qextu_vvvv_ops): New operand information.
	* config/riscv/riscv-vector-builtins.h (XANDESVDOT_EXT): New def.
	(required_ext_to_isa_name): Add case XANDESVDOT_EXT.
	(required_extensions_specified): Ditto.
	(struct function_group_info): Ditto.
	* config/riscv/vector-iterators.md (NDS_QUAD_FIX): New iterator.

2025-09-07  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv-opts.h (riscv_microarchitecture_type): Fix ordering.

2025-09-07  Kuan-Lin Chen  <rufus@andestech.com>

	* common/config/riscv/riscv-common.cc:
	Turn on VECTOR_ELEN_FP_16 for XAndesvpackfph.
	* config/riscv/andes-vector-builtins-bases.cc (nds_vfpmad): New class.
	* config/riscv/andes-vector-builtins-bases.h: New def.
	* config/riscv/andes-vector-builtins-functions.def (nds_vfpmadt): Ditto.
	(nds_vfpmadb): Ditto.
	(nds_vfpmadt_frm): Ditto.
	(nds_vfpmadb_frm): Ditto.
	* config/riscv/andes-vector.md (@pred_nds_vfpmad<nds_tb><mode>):
	New pattern.
	* config/riscv/riscv-vector-builtins-types.def
	(DEF_RVV_F16_OPS): New def.
	* config/riscv/riscv-vector-builtins.cc (f16_ops): Ditto
	* config/riscv/riscv-vector-builtins.def (float32_type_node): Ditto.
	* config/riscv/riscv-vector-builtins.h (XANDESVPACKFPH_EXT): Ditto.
	(required_ext_to_isa_name): Add case XANDESVPACKFPH_EXT.
	(required_extensions_specified): Ditto.
	* config/riscv/vector-iterators.md (VHF): New iterator.

2025-09-07  Georg-Johann Lay  <avr@gjlay.de>

	PR target/121794
	* config/avr/avr.md (cmpqi3): Use cpi R,0 if possible.

2025-09-07  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Rename from.
	(*mul_minus_vx_<mode>): Rename to and add nmsub support.
	* config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Rename from.
	(@pred_mul_minus_vx_<mode>): Rename to and add nmsub support.
	(*pred_nmsac_<mode>_scalar_undef): Rename from.
	(*pred_mul_minus_vx<mode>_undef): Rename to and add nmsub support.

2025-09-06  Sam James  <sam@gentoo.org>

	* doc/generic.texi (TYPE_CANONICAL): Don't mention long-removed
	--param verify-canonical-types.

2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR rtl-optimization/121835
	* dep-fusion.cc (pass_dep_fusion::execute): Return early if
	macro_fusion_pair_p is null.

2025-09-06  Artemiy Volkov  <artemiyv@acm.org>

	* Makefile.in (OBJS): Add dep-fusion.o.
	* common.opt (fdep-fusion): Add option.
	* dep-fusion.cc: New pass.
	* doc/invoke.texi: Document it.
	* opts.cc (default_options_table): Enable it at -O2+ and -Os.
	* passes.def: Insert two instances of dep_fusion.
	* tree-pass.h (make_pass_dep_fusion): Declare new function.

2025-09-06  Sam James  <sam@gentoo.org>

	* doc/invoke.texi (x86 Options): Fix '-momit-leaf-frame-pointer' typo.

2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (simplify_builtin_call): Factor out
	the memcpy followed by a memset optimization to ...
	(simplify_builtin_memcpy_memset): Here. New function.

2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (simplify_builtin_call): Factor out the memchr
	optimization to ...
	(simplify_builtin_memchr): Here. New function.

2025-09-06  Simon Martin  <simon@nasilyan.com>

	* ipa-inline-transform.cc: Define INCLUDE_ALGORITHM.

2025-09-06  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Prerequisites): Properly capitalize
	GNU Binutils.
	(Configuration): Ditto.
	(Building): Ditto.
	(Specific): Ditto.

2025-09-06  Sam James  <sam@gentoo.org>

	* doc/invoke.texi: Say 'whole-program' consistently where
	appropriate.

2025-09-06  Sam James  <sam@gentoo.org>

	* doc/invoke.texi: Capitalize 'GNU Binutils' consistently.

2025-09-06  Sam James  <sam@gentoo.org>

	PR ipa/116410
	* doc/invoke.texi (Link Options): Update -flinker-output= text
	to reflect GNU Binutils changes. Fix grammar.

2025-09-06  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/andes-vector-builtins-bases.cc
	(nds_nibbleload): New class.
	* config/riscv/andes-vector-builtins-bases.h (nds_vln8): New def.
	(nds_vlnu8): Ditto.
	* config/riscv/andes-vector-builtins-functions.def (nds_vln8): Ditto.
	(nds_vlnu8): Ditto.
	* config/riscv/andes-vector.md (@pred_intload_mov<su><mode>): New pattern.
	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_Q_OPS): New def.
	(DEF_RVV_QU_OPS): Ditto.
	* config/riscv/riscv-vector-builtins.cc
	(q_v_void_const_ptr_ops): New operand information.
	(qu_v_void_const_ptr_ops): Ditto.
	* config/riscv/riscv-vector-builtins.def (void_const_ptr): New def.
	* config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
	(required_ext_to_isa_name): Add case XANDESVSINTLOAD_EXT.
	(required_extensions_specified): Ditto.
	* config/riscv/vector-iterators.md (NDS_QVI): New iterator.

2025-09-06  Kuan-Lin Chen  <rufus@andestech.com>

	* common/config/riscv/riscv-common.cc:
	Turn on VECTOR_ELEN_BF_16 for XAndesvbfhcvt.
	* config.gcc: Add extra_objs andes-vector-builtins-bases.o
	and extra_headers andes_vector.h.
	* config/riscv/riscv-vector-builtins-shapes.cc
	(BASE_NAME_MAX_LEN): Increase size to 20.
	* config/riscv/riscv-vector-builtins.cc
	(f32_to_bf16_nf_w_ops): New operand information.
	(f32_to_bf16_nf_w_ops): New operand information.
	(DEF_RVV_FUNCTION): New def.
	* config/riscv/riscv-vector-builtins.def (bf16): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
	(required_ext_to_isa_name): Add case XANDESVBFHCVT_EXT.
	(required_extensions_specified): Ditto.
	* config/riscv/t-riscv: Add andes-vector-builtins-functions.def,
	andes-vector-builtins-bases.h and andes-vector-builtins-bases.o.
	* config/riscv/vector-iterators.md (NDS_VWEXTBF): New iterator.
	(NDS_V_DOUBLE_TRUNC_BF): New attr.
	* config/riscv/andes-vector-builtins-bases.cc: New file.
	* config/riscv/andes-vector-builtins-bases.h: New file.
	* config/riscv/andes-vector-builtins-functions.def: New file.
	* config/riscv/andes_vector.h: New file.
	* config/riscv/andes-vector.md: New file.
	* config/riscv/vector.md: Include andes_vector.md.

2025-09-06  Anton Blanchard  <antonb@tenstorrent.com>

	* config/riscv/riscv-cores.def (RISCV_TUNE): Update.
	* config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
	Add tt_ascalon_d8.
	* config/riscv/riscv.md: Update tune attribute and include
	tt-ascalon-d8.md.
	* config/riscv/tt-ascalon-d8.md: New file.

2025-09-06  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/108466
	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Give better
	locations to the new phi args and the new statement.

2025-09-05  Andre Vehreschild  <vehre@gcc.gnu.org>

	PR middle-end/121806
	* gcc.cc (for_each_path): Initialize return value.

2025-09-05  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/121510
	* config/riscv/riscv.cc (riscv_legitimize_move): Check if we can
	vec_extract.

2025-09-05  Richard Sandiford  <rdsandiford@googlemail.com>

	PR rtl-optimization/121757
	* rtl-ssa/accesses.h (clobber_group::lookup_clobber): New member
	function.
	* rtl-ssa/accesses.cc (clobber_group::lookup_clobber): Likewise.
	(clobber_group::prev_clobber, clobber_group::next_clobber)
	(function_info::add_clobber): Use it.

2025-09-05  Georg-Johann Lay  <avr@gjlay.de>

	PR target/121794
	* config/avr/avr.cc (avr_out_compare): Only use zero_reg
	when there is no other sequence of the same length.
	(avr_out_plus_ext): Same.
	(avr_out_plus_1): Same.

2025-09-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vectorizable_bb_reduc_epilogue): Do not
	cost zero remaining scalar stmts.
	(vectorizable_slp_permutation): Do not cost zero actual
	permutations.
	* tree-vect-stmts.cc (vectorizable_load): Likewise.

2025-09-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121802
	* tree-vectorizer.h (vect_setup_realignment): Add vectype
	argument.
	* tree-vect-data-refs.cc (vect_setup_realignment): Replace
	local vectype with argument.
	* tree-vect-stmts.cc (vectorizable_load): Adjust.

2025-09-05  Jakub Jelinek  <jakub@redhat.com>

	* J: Remove.

2025-09-05  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/iterators.md (sve_di_suf): New mode attribute.
	* config/aarch64/aarch64-sve.md (<optab><mode>3 SVE_INT_BINARY_MULTI):
	Rename to...
	(<optab><mode>3<sve_di_suf>): ... This.  Use SVE_I_SIMD_DI mode
	iterator.
	* config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Use the above
	for TARGET_SVE.

2025-09-04  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Rename to
	handle both the macc and madd.
	(*mul_plus_vx_<mode>): Add madd pattern.
	* config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Rename to
	handle both the macc and madd.
	(*pred_macc_<mode>_scalar_undef): Remove.
	(*pred_nmsac_<mode>_scalar_undef): Remove.
	(*pred_mul_plus_vx<mode>_undef): Add new pattern to handle
	both the vmacc and vmadd.
	(@pred_mul_plus_vx<mode>): Ditto.

2025-09-04  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_annotate_cfg): Apply zero_bbs after early
	exit for missing profile; fix formating

2025-09-04  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-inline-transform.cc (inline_call): If function with
	AFDO profile is inlined into function with
	GUESSED_GLOBAL0_AFDO or GUESSED_GLOBAL0_ADJUSTED, scale
	caller to AFDO profile.
	* profile-count.h (profile_count::apply_scale): If num is AFDO
	and den is not GUESSED, make result AFDO rather then GUESSED.

2025-09-04  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* builtins.cc (interclass_mathfn_icode): Add support for isnan
	optab.
	(expand_builtin): Add BUILT_IN_ISNAN to expand isnan optab.
	(fold_builtin_interclass_mathfn): Expand BUILT_IN_ISNAN only after
	checking for a valid optab.
	(fold_builtin_classify): Move generic BUILT_IN_ISNAN expansion
	to fold_builtin_interclass_mathfn.
	(fold_builtin_1): For BUILT_IN_ISNAN first try fold_builtin_classify,
	then fold_builtin_interclass_mathfn.
	* optabs.def: Add isnan optab.
	* doc/md.texi: Document isnan.

2025-09-04  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	Remove unnecessary code around double reductions.

2025-09-04  Richard Earnshaw  <rearnsha@arm.com>

	PR target/121775
	* config/arm/neon.md (vec_set<mode>_internal, all variants):
	validate the immediate operand that indicates the lane to
	modify.

2025-09-04  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Eliminate
	nested_cycle in favor of double_reduc and set that where
	it makes most sense.  Remove never taken paths and always
	true conditions.

2025-09-04  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/121742
	PR target/121780
	PR target/121781
	* config/riscv/riscv-v.cc (expand_vec_perm): Swap target and
	tmp_target.

2025-09-04  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-loop-manip.cc (vect_gen_prolog_loop_niters):
	Change prolog bound to poly_int64.
	(vect_gen_scalar_loop_niters): Ditto.
	(vect_do_peeling): Use poly estimate for frequency scaling.

2025-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121768
	* tree-vect-loop.cc (vect_inner_phi_in_double_reduction_p): Remove.
	(vect_analyze_scalar_cycles_1): Analyze inner loops of
	double reductions immediately and only mark fully recognized
	double reductions.  Skip already analyzed inner loops.
	(vect_is_simple_reduction): Change double_reduc from a flag
	to an output of the inner loop PHI and to whether we are
	processing an inner loop of a double reduction.

2025-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121685
	* tree-eh.cc (ref_outside_object_p): Split out from ...
	(tree_could_trap_p): ... here.  Assume the this pointer
	of a method refers to an object of at least size of its
	base type.

2025-09-04  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/107051
	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): Allow for
	memory sharing the same base if they known not to overlap over
	the size.

2025-09-04  Kito Cheng  <kito.cheng@sifive.com>

	PR target/110812
	* config/riscv/riscv-c.cc (pragma_intrinsic_flags): Remove struct.
	(riscv_pragma_intrinsic_flags_pollute): Remove function.
	(riscv_pragma_intrinsic_flags_restore): Remove function.
	(riscv_pragma_intrinsic): Simplify to only call handle_pragma_vector.
	* config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags):
	Move struct definition here from riscv-c.cc.
	(riscv_pragma_intrinsic_flags_pollute): Move and adapt from
	riscv-c.cc, add zvfbfmin, zvfhmin and vector_elen_bf_16 support.
	(riscv_pragma_intrinsic_flags_restore): Move from riscv-c.cc.
	(rvv_switcher::rvv_switcher): Add pollute_flags parameter to
	control flag manipulation.
	(rvv_switcher::~rvv_switcher): Restore flags conditionally.
	(register_builtin_types): Use rvv_switcher without polluting flags.
	(get_required_extensions): Remove function.
	(check_required_extensions): Simplify to only check type validity.
	(function_instance::function_returns_void_p): Move implementation
	from header.
	(function_builder::add_function): Register placeholder for LTO.
	(init_builtins): Simplify and handle LTO case.
	(reinit_builtins): Remove function.
	(handle_pragma_vector): Remove extension checking.
	* config/riscv/riscv-vector-builtins.h
	(function_instance::function_returns_void_p): Add declaration.
	(function_call_info::function_returns_void_p): Remove inline
	implementation.

2025-09-04  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_ext_is_subset): Fix
	inverted logic in extension subset check.

2025-09-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/117599
	* gimple-lower-bitint.cc (bitint_large_huge::limb_access): Move
	build_qualified_type calls into the if/else if/else bodies, for
	the last one set ltype to m_limb_type first, drop limb_type_a
	and use ltype instead.

2025-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/61247
	* tree-scalar-evolution.cc (simplify_peeled_chrec):
	Handle the case of a converted peeled chrec.

2025-09-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121740
	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Allow skipping
	may-defs from CTORs.  Do not skip may-defs with storage-order
	issues or (partial) must-defs.

2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/andes.def: Add nds_fcvt_s_bf16 and nds_fcvt_bf16_s.
	* config/riscv/riscv.md (truncsfbf2): Add TARGET_XANDESBFHCVT support.
	(extendbfsf2): Ditto.
	* config/riscv/riscv-builtins.cc: New AVAIL andesbfhcvt.
	Add new define RISCV_ATYPE_BF and RISCV_ATYPE_SF.
	* config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE.

2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/constraints.md (Ou07): New constraint.
	(ads_Bext): New constraint.
	* config/riscv/iterators.md (ANYLE32): New iterator.
	(sizen): New iterator.
	(sh_limit): New iterator.
	(sh_bit): New iterator.
	(cs): New iterator.
	* config/riscv/predicates.md (ads_branch_bbcs_operand): New predicate.
	(ads_branch_bimm_operand): New predicate.
	(ads_imm_extract_operand): New predicate.
	(ads_extract_size_imm_si): New predicate.
	(ads_extract_size_imm_di): New predicate.
	(const_int5_operand): New predicate.
	* config/riscv/riscv-builtins.cc:
	Add new AVAIL andesperf32 and andesperf64.
	Add new define RISCV_ATYPE_DI.
	* config/riscv/riscv-ftypes.def: New DEF_RISCV_FTYPE.
	* config/riscv/riscv.cc
	(riscv_extend_cost): Cost for pattern 'bfo'.
	(riscv_rtx_costs): Cost for XAndesperf extension.
	* config/riscv/riscv.md: Add support for XAndesperf to patterns
	zero_extendsidi2_internal, zero_extendhi2, extendsidi2_internal,
	extend<SHORT:mode><SUPERQI:mode>2, <any_extract:optab><GPR:mode>3
	and branch_on_bit.
	* config/riscv/vector-iterators.md
	(sz): Add sign_extract and zero_extract.
	* config/riscv/andes.def: New file for vender Andes.
	* config/riscv/andes.md: New file for vender Andes.

2025-09-03  Kuan-Lin Chen  <rufus@andestech.com>

	* config/riscv/riscv-ext.def: Include riscv-ext-andes.def.
	* config/riscv/riscv-ext.opt (riscv_xandes_subext): New variable.
	(XANDESPERF) : New mask.
	(XANDESBFHCVT): Ditto.
	(XANDESVBFHCVT): Ditto.
	(XANDESVSINTLOAD): Ditto.
	(XANDESVPACKFPH): Ditto.
	(XANDESVDOT): Ditto.
	* config/riscv/t-riscv: Add riscv-ext-andes.def.
	* doc/riscv-ext.texi: Regenerated.
	* config/riscv/riscv-ext-andes.def: New file.

2025-09-03  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfmax_vf_<mode>): Rename into...
	(*vf<optab>_vf_<mode>): New pattern to combine vec_duplicate +
	vf{min,max}.vv into vf{max,min}.vf.
	* J: New file.

2025-09-03  Austin Law  <austinklaw@gmail.com>

	PR target/121213
	* config/riscv/sync.md (amo_atomic_exchange_extended<mode>):
	Separate insn with sign extension for 64 bit targets.

2025-09-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-profile.cc (ipa_profile): Dump profile_info.

2025-09-03  Jan Hubicka  <hubicka@ucw.cz>

	* opts.cc (enable_fdo_optimizations): Do not auto-enabele loop
	optimizations with AutoFDO.

2025-09-03  Jan Hubicka  <hubicka@ucw.cz>

	* params.opt (-param=lto-partitions=): INcrease default value from 128 to 512.

2025-09-03  Kyrylo Tkachov  <ktkachov@nvidia.com>

	PR target/121749
	* config/aarch64/aarch64-simd.md (aarch64_<shrn_op>shrn_n<mode>):
	Use aarch64_simd_shift_imm_offset_<vn_mode> instead of
	aarch64_simd_shift_imm_offset_<ve_mode> predicate.
	(aarch64_<shrn_op>shrn_n<mode> VQN define_expand): Likewise.
	(*aarch64_<shrn_op>rshrn_n<mode>_insn): Likewise.
	(aarch64_<shrn_op>rshrn_n<mode>): Likewise.
	(aarch64_<shrn_op>rshrn_n<mode> VQN define_expand): Likewise.
	(aarch64_sqshrun_n<mode>_insn): Likewise.
	(aarch64_sqshrun_n<mode>): Likewise.
	(aarch64_sqshrun_n<mode> VQN define_expand): Likewise.
	(aarch64_sqrshrun_n<mode>_insn): Likewise.
	(aarch64_sqrshrun_n<mode>): Likewise.
	(aarch64_sqrshrun_n<mode>): Likewise.
	* config/aarch64/iterators.md (vn_mode): Handle DI, SI, HI modes.

2025-09-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121756
	* tree-ssa-sink.cc (select_best_block): Avoid irreducible
	regions in otherwise same loop depth.
	(statement_sink_location): When sinking a VDEF, never place
	that into an irreducible region.

2025-09-03  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.cc (vect_recog_cond_expr_convert_pattern):
	Do not set any vector types.

2025-09-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121767
	* tree-vect-patterns.cc (vect_recog_mod_var_pattern): Disable
	for reductions.

2025-09-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121758
	* tree-vect-patterns.cc (vect_mark_pattern_stmts): Try
	harder to find a reduction continuation.

2025-09-03  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121355
	* fold-const.cc (split_address_to_core_and_offset): Handle an MEM_REF after the call
	to get_inner_reference.

2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-ccp.cc (optimize_memcmp_eq): New function.
	(pass_fold_builtins::execute): Call optimize_memcmp_eq
	for memcmp.
	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Remove.
	(strlen_pass::check_and_optimize_call): Don't call handle_builtin_memcmp.

2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-strlen.cc (strlen_pass::handle_builtin_memcmp): Create
	unaligned types if the alignment of the pointers is less
	than the alignment of the new type.

2025-09-02  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): Create
	unaligned types if the alignment of the pointers is less
	than the alignment of the new type.

2025-09-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121753
	* tree-vect-patterns.cc (vect_synth_mult_by_constant): Properly
	bail when synth_shift_p and an alg_shift use.  Handle other
	problematic cases.

2025-09-02  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv-v.cc (is_vlmax_len_p): Properly handle VLS
	modes.
	(imm_avl_p): Fix VLS length check.
	(expand_strided_load): Use is_vlmax_len_p.
	(expand_strided_store): Ditto.
	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute):
	Use GET_MODE_NUNITS / NF as avl.

2025-09-02  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/121742
	* config/riscv/riscv-v.cc (expand_vec_perm): Use temporary if
	op1 and target overlap.

2025-09-02  Andrew Stubbs  <ams@baylibre.com>

	* doc/options.texi: Document NoOffload.

2025-09-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_transform_stmt): Clear
	STMT_VINFO_VECTYPE for all stmts.
	(vect_analyze_stmt): Likewise.  But restore at the end again.

2025-09-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121754
	* tree-vectorizer.h (vect_reduc_type): Simplify to not ICE
	on nested cycles.

2025-09-02  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.cc (bump_vector_ptr): Remove the
	STMT_VINFO_VECTYPE use, bump is always specified.

2025-09-02  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_check_gather_scatter): Add
	vectype parameter.
	* tree-vect-data-refs.cc (vect_check_gather_scatter): Get
	vectype as parameter.
	(vect_analyze_data_refs): Adjust.
	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Likewise.
	* tree-vect-slp.cc (vect_get_and_check_slp_defs): Get vectype
	as parameter, pass down.
	(vect_build_slp_tree_2): Adjust.
	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Likewise.
	(vect_use_strided_gather_scatters_p): Likewise.

2025-09-02  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Common Variable Attributes): Put counted_by
	in alphabetical order.

2025-09-02  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121663
	* tree-cfg.cc (assign_discriminator): Change map argument type
	from hash_map with int_hash <int64_t, -1, -2> to one with
	int_hash <unsigned, -1U, -2U>.  Cast LOCATION_LINE to unsigned.
	Return early for (unsigned) LOCATION_LINE above -3U.
	(assign_discriminators): Change map type from hash_map with
	int_hash <int64_t, -1, -2> to one with int_hash <unsigned, -1U, -2U>.

2025-09-02  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/gen-riscv-ext-opt.cc (version_t): Remove unused
	struct.
	(print_ext_doc_entry): Remove unused function.

2025-09-01  Jonathan Grant  <jg@jguk.org>

	* doc/install.texi (Configuration): Fix spelling of "support"
	and "floating-point arithmetic".

2025-09-01  Mark Harmstone  <mark@harmstone.com>

	* dwarf2codeview.cc (get_type_num_array_type): Don't try to
	encode non-C-style arrays.

2025-09-01  Jakub Jelinek  <jakub@redhat.com>

	* builtins.def: Implement C2Y N3577 - Rename s/uimaxabs/umaxabs/.
	(BUILT_IN_UIMAXABS): Rename to ...
	(BUILT_IN_UMAXABS): ... this.  Change second argument to "umaxabs".
	* builtins.cc (fold_builtin_1): Use BUILT_IN_UMAXABS rather than
	BUILT_IN_UIMAXABS.

2025-09-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/invoke.texi (Optimize Options): Update the perfwiki web
	address.

2025-09-01  Iain Sandoe  <iain@sandoe.co.uk>

	* diagnostics/logging.h (log_param_location_t): Cast
	location_t value to fmt_size_t.

2025-09-01  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Do not claim cfi instruction support even
	if the assembler has it.

2025-09-01  Yoshinori Sato  <yoshinori.sato@nifty.com>

	PR target/89828
	* config/rx/rx.cc (add_pop_cfi_notes): Release the frame pointer if it is
	used.
	(rx_expand_prologue): Redesigned stack pointer and frame pointer update
	process.

2025-09-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121744
	* tree-vect-patterns.cc (vect_recog_vector_vector_shift_pattern):
	Allow constant left operand.

2025-09-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	Use SLP_TREE_REDUC_IDX for following the SLP graph and
	for identifying whether we use the 'else' in a COND.
	(vectorizable_lane_reducing): Simplify check of whether
	we are in a reduction.
	(vectorizable_reduction): Add sanity checking around
	SLP_TREE_REDUC_IDX and use it where it looks appropriate.
	(vect_transform_reduction): Use SLP_TREE_REDUC_IDX.
	* tree-vect-stmts.cc (vectorizable_call): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_condition): Likewise.

2025-09-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_live_operation): Check
	vect_is_reduction on the SLP node rather than
	STMT_VINFO_REDUC_DEF on the stmt.
	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_DEF
	on live stmts.

2025-09-01  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_reduc_info): New.
	(create_info_for_reduction): Likewise.
	(VECT_REDUC_INFO_TYPE): Likewise.
	(VECT_REDUC_INFO_CODE): Likewise.
	(VECT_REDUC_INFO_FN): Likewise.
	(VECT_REDUC_INFO_SCALAR_RESULTS): Likewise.
	(VECT_REDUC_INFO_INITIAL_VALUES): Likewise.
	(VECT_REDUC_INFO_REUSED_ACCUMULATOR): Likewise.
	(VECT_REDUC_INFO_INDUC_COND_INITIAL_VAL): Likewise.
	(VECT_REDUC_INFO_EPILOGUE_ADJUSTMENT): Likewise.
	(VECT_REDUC_INFO_FORCE_SINGLE_CYCLE): Likewise.
	(VECT_REDUC_INFO_RESULT_POS): Likewise.
	(VECT_REDUC_INFO_VECTYPE): Likewise.
	(STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Remove.
	(STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise.
	(STMT_VINFO_FORCE_SINGLE_CYCLE): Likewise.
	(STMT_VINFO_REDUC_FN): Likewise.
	(STMT_VINFO_REDUC_VECTYPE): Likewise.
	(vect_reusable_accumulator::reduc_info): Adjust.
	(vect_reduc_type): Adjust.
	(_slp_tree::cycle_info): New member.
	(SLP_TREE_REDUC_IDX): Likewise.
	(vect_reduc_info_s): Move/copy data from ...
	(_stmt_vec_info): ... here.
	(_loop_vec_info::redcu_infos): New member.
	(info_for_reduction): Adjust to take SLP node.
	(vect_reduc_type): Adjust.
	(vect_is_reduction): Add overload for SLP node.
	* tree-vectorizer.cc (vec_info::new_stmt_vec_info):
	Do not initialize removed members.
	(vec_info::free_stmt_vec_info): Do not release them.
	* tree-vect-stmts.cc (vectorizable_condition): Adjust.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
	cycle info.
	(vect_build_slp_tree_2): Compute SLP reduc_idx and store
	it.  Create, populate and propagate reduction info.
	(vect_print_slp_tree): Print cycle info.
	(vect_analyze_slp_reduc_chain): Set cycle info on the
	manual added conversion node.
	(vect_optimize_slp_pass::start_choosing_layouts): Adjust.
	* tree-vect-loop.cc (_loop_vec_info::~_loop_vec_info):
	Release reduction infos.
	(info_for_reduction): Get the reduction info from
	the vector in the loop_vinfo.
	(vect_create_epilog_for_reduction): Adjust.
	(vectorizable_reduction): Likewise.
	(vect_transform_reduction): Likewise.
	(vect_transform_cycle_phi): Likewise, deal with nested
	cycles not part of a double reduction have no reduction info.
	* config/aarch64/aarch64.cc (aarch64_force_single_cycle):
	Use VECT_REDUC_INFO_FORCE_SINGLE_CYCLE, get SLP node and use
	that.
	(aarch64_vector_costs::count_ops): Adjust.

2025-09-01  Tobias Burnus  <tburnus@baylibre.com>

	PR target/121392
	* doc/install.texi (amdgcn): Mention Newlib commit
	that fixes another SIMD issue.

2025-09-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_is_simple_iv_evolution): Get
	stmt_info and store into STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED
	and STMT_VINFO_LOOP_PHI_EVOLUTION_PART here.  Drop unused
	output parameters.
	(vect_is_nonlinear_iv_evolution): Likewise.
	(vect_analyze_scalar_cycles_1): Remove redundant setting
	of STMT_VINFO_LOOP_PHI_EVOLUTION_BASE_UNCHANGED and
	STMT_VINFO_LOOP_PHI_EVOLUTION_PART.

2025-09-01  Cui, Lili  <lili.cui@intel.com>

	PR rtl-optimization/117838
	* ira-color.cc (improve_allocation): Remove soft conflict related code.

2025-09-01  liuhongt  <hongtao.liu@intel.com>

	PR target/121699
	* config/i386/predicates.md (const_vec_dup_operand): New
	predicate.
	* config/i386/sse.md (cond_<insn><mode>): Fix predicate of
	operands[3], and fix wrong operands passed to
	ix86_vgf2p8affine_shift_matrix and
	gen_vgf2p8affineqb_<mode>_mask.

2025-08-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/predicates.md (alt_ubranch_operator):
	New predicate.
	* config/xtensa/xtensa.md (*eqne_in_range):
	New insn_and_split pattern.

2025-08-31  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/riscv-protos.h (synthesize_add_extended): Prototype.
	* config/riscv/riscv.cc (synthesize_add_extended): New function.
	* config/riscv/riscv.md (addsi3): For RV64, try synthesize_add_extended.

2025-08-31  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Binaries): Drop MinGW.

2025-08-30  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121698
	* tree-ssa-phiopt.cc (spaceship_replacement): Adjust
	to handle spaceship unordered value -128 rather than 2 and
	stmts from the new std::partial_order::_M_reverse() instead
	of (_M_value & ~1) == _M_value etc.
	* doc/md.texi (spaceship@var{m}4): Use -128 instead of 2.
	* tree-ssa-math-opts.cc (optimize_spaceship): Adjust comments
	that libstdc++ unordered value is -128 rather than 2 and use
	that as the default unordered value.
	* config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use
	GEN_INT (-128) instead of const2_rtx and adjust comment accordingly.
	* config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship): Likewise.
	* config/s390/s390.cc (s390_expand_fp_spaceship): Likewise.

2025-08-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (Vector Extensions): Improve markup for list
	of operators.

2025-08-30  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/standards.texi (Standards): Update "Object-Oriented
	Programming and the Objective-C Language" reference.

2025-08-30  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121725
	* config/i386/i386-features.cc
	(pass_x86_cse::candidate_gnu2_tls_p): Use the UNSPEC_DTPOFF
	operand to check source operand in TLS64_COMBINE pattern.

2025-08-30  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/116651
	PR tree-optimization/93265
	PR tree-optimization/103647
	PR tree-optimization/52171
	* tree-ssa-forwprop.cc (simplify_builtin_memcmp): New function.
	(simplify_builtin_call): Call simplify_builtin_memcmp for memcmp
	memcmp_eq builtins.

2025-08-29  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/121709
	* doc/gm2.texi (Module Search Path): Reflect the new
	search order.

2025-08-29  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostics/logging.o.
	* diagnostic-global-context.cc: Include "diagnostics/logging.h".
	(log_function_params, auto_inc_log_depth): New "using" decls.
	(verbatim): Add logging.
	(emit_diagnostic): Likewise.
	(emit_diagnostic_valist): Likewise.
	(emit_diagnostic_valist_meta): Likewise.
	(inform): Likewise.
	(inform_n): Likewise.
	(warning): Likewise.
	(warning_at): Likewise.
	(warning_meta): Likewise.
	(warning_n): Likewise.
	(pedwarn): Likewise.
	(permerror): Likewise.
	(permerror_opt): Likewise.
	* diagnostics/context.cc: Include "diagnostics/logging.h".
	(context::initialize): Initialize m_logger.  Add logging.
	(context::finish): Add logging.  Clean up m_logger.
	(context::dump): Add indent param.
	(context::set_sink): Add logging.
	(context::add_sink): Add logging.
	(diagnostic_kind_debug_text): New.
	(get_debug_string_for_kind): New.
	(context::report_diagnostic): Add logging.
	(context::diagnostic_impl): Likewise.
	(context::diagnostic_n_impl): Likewise.
	(context::end_group): Likewise.
	* diagnostics/context.h: Include "diagnostics/logging.h".
	(context::dump): Add indent param.
	(context::get_logger): New accessor.
	(context::classify_diagnostics): Add logging.
	(context::push_diagnostics): Likewise.
	(context::pop_diagnostics): Likewise.
	(context::m_logger): New field.
	* diagnostics/html-sink.cc: Include "diagnostics/logging.h".
	(html_builder::flush_to_file): Add logging.
	(html_sink::on_report_diagnostic): Likewise.
	* diagnostics/kinds.h (get_debug_string_for_kind): New decl.
	* diagnostics/logging.cc: New file.
	* diagnostics/logging.h: New file.
	* diagnostics/output-file.h: Include "label-text.h".
	* diagnostics/sarif-sink.cc: Include "diagnostics/logging.h".
	(sarif_builder::flush_to_object): Add logging.
	(sarif_builder::flush_to_file): Likewise.
	(sarif_sink::on_report_diagnostic): Likewise.
	* diagnostics/sink.h (sink::get_logger): New.
	* diagnostics/text-sink.cc: Include "diagnostics/logging.h".
	(text_sink::on_report_diagnostic): Add logging.
	* doc/invoke.texi (Environment Variables): Document
	GCC_DIAGNOSTICS_LOG.
	* opts-diagnostic.cc: Include "diagnostics/logging.h".
	(handle_OPT_fdiagnostics_add_output_): Add loggging.
	(handle_OPT_fdiagnostics_set_output_): Likewise.

2025-08-29  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa-protos.h (xtensa_bswapsi2_output):
	New function prototype.
	* config/xtensa/xtensa.cc
	(xtensa_bswapsi2_output_1, xtensa_bswapsi2_output):
	New functions.
	* config/xtensa/xtensa.md (bswapsi2_internal):
	Rewrite in compact syntax and use xtensa_bswapsi2_output() as asm
	output.

2025-08-29  Jeff Law  <jlaw@ventanamicro.com>

	PR target/121548
	* config/riscv/riscv-avlprop.cc (get_insn_vtype_mode): Assert
	MODE_IDX is smaller than the number of operands.
	(simplify_replace_vlmax_avl): Similarly.
	(pass_avlprop::get_vlmax_ta_preferred_avl): Similarly.
	* config/riscv/vector.md: Override merge_op_idx computation
	for simple moves, just like is done for avl_type_idx and mode_idx.

2025-08-29  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md
	(*vfmin_vf_ieee_<mode>): Add new patterns to combine vec_duplicate +
	vfmin.vv (unspec) into vfmin.vf.
	(*vfmul_vf_<mode>, *vfrdiv_vf_<mode>, *vfmin_vf_<mode>): Fix attribute
	types.
	* config/riscv/vector.md (@pred_<ieee_fmaxmin_op><mode>_scalar): Allow
	VLS modes.

2025-08-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121096
	* config/i386/i386-expand.cc (expand_cpymem_epilogue): Set and
	clear by_pieces_in_use when using by_pieces op.
	(expand_setmem_epilogue): Likewise.
	* config/i386/i386.cc (ix86_use_by_pieces_infrastructure_p): New.
	(TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
	* config/i386/i386.h (machine_function): Add by_pieces_in_use.

2025-08-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121108
	* config/i386/i386-expand.cc (setmem_epilogue_gen_val): Don't
	assert op_mode == word_mode and handle any integer modes.

2025-08-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121694
	* config/i386/i386-features.cc (redundant_pattern): Add
	tlsdesc_val.
	(pass_x86_cse): Likewise.
	(pass_x86_cse::tls_set_insn_from_symbol): New member function.
	(pass_x86_cse::candidate_gnu2_tls_p): Set tlsdesc_val.  For
	TLS64_COMBINE, match both UNSPEC_TLSDESC and UNSPEC_DTPOFF
	symbols.  For TLS64_CALL, match the UNSPEC_TLSDESC sumbol.
	(pass_x86_cse::x86_cse): Initialize the tlsdesc_val field in
	load.  Pass the tlsdesc_val field to ix86_place_single_tls_call
	for X86_CSE_TLSDESC.

2025-08-29  Tobias Burnus  <tburnus@baylibre.com>

	* doc/invoke.texi (AMD GCN Options: -march): Remove '(experimental)'
	from gfx-{9,10-3,11}-generic.

2025-08-29  Tobias Burnus  <tburnus@baylibre.com>

	* doc/install.texi (amdgcn): Clarify which binaries must be the
	LLVM version and which must be installed. Update version data for
	ROCm for generic architectures.

2025-08-29  liuhongt  <hongtao.liu@intel.com>

	* doc/invoke.texi: Document -param=ix86-vect-unroll-limit.

2025-08-29  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*vnmsac_vx_<mode>): Add new
	pattern to combine to vx.
	* config/riscv/vector.md (@pred_vnmsac_vx_<mode>): Add new
	pattern to generate rtl.
	(*pred_nmsac_<mode>_scalar_undef): Ditto.

2025-08-28  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/115201
	* passes.def: Move cleanup_eh before first tail_recursion.

2025-08-28  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfmin_vf_<mode>): Add new pattern to
	combine vec_duplicate + vfmin.vv into vfmin.vf.
	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.

2025-08-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_form): Dump
	niter assumption used for versioning.

2025-08-28  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR middle-end/66462
	* config/aarch64/aarch64.md (isinf<mode>2): Add new expander.
	* config/aarch64/iterators.md (mantissa_bits): Add new mode_attr.

2025-08-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorize_fold_left_reduction): Do not get
	reduc_var as argument, instead compute it here.
	(vect_transform_reduction): Adjust.

2025-08-28  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/121629
	* doc/gm2.texi (Module Search Path): New section.
	(Compiler options): New option -fm2-pathname-root=.
	New option -fm2-pathname-rootI.

2025-08-28  Tobias Burnus  <tburnus@baylibre.com>

	PR debug/119367
	* acinclude.m4 (gcc_GAS_FLAGS): For gcn, use "--filetype=obj
	-triple=amdgcn--amdhsa", if supported.
	* configure: Regenerate.
	* doc/install.texi (amdgcn-*-*): Also add llvm-objdump to the list of
	to-be-copied files.

2025-08-28  Richard Biener  <rguenther@suse.de>
	    Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-patterns.cc (vect_synth_mult_by_constant): Avoid
	in cases that introduce multiple uses of reduction operands.

2025-08-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-patterns.cc (vect_recog_divmod_pattern): Avoid
	for stmts participating in a reduction.

2025-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/119367
	* configure.ac (gcc_cv_as_leb128): Add fallback using readelf.
	Grammar fix in comment.
	* configure: Regenerate.

2025-08-28  Jakub Jelinek  <jakub@redhat.com>

	PR debug/119367
	* dwarf2out.cc (output_one_line_info_table) <case LI_adv_address>: If
	HAVE_AS_LEB128, use DW_LNS_advance_pc with dw2_asm_output_delta_uleb128
	instead of DW_LNS_fixed_advance_pc with dw2_asm_output_delta.

2025-08-27  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121695
	* tree-if-conv.cc (factor_out_operators): Fix typo
	in assignment of the phi.

2025-08-27  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_transform_cycle_phi): Remove
	unused reduc_stmt_info.

2025-08-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121686
	* tree-vect-slp.cc (vect_analyze_slp): Consider all only-live
	non-reduction defs for discovery.

2025-08-27  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121668
	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
	TLS call after debug marker.

2025-08-27  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv-cores.def (xt-c908v): Drop xtheadvdot.
	(xt-c910v2): Remove extraenous whitespace.
	(xt-c920v2): Drop xtheadvdot and remove extraeonous whitespace.

2025-08-26  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
	Addd new memeber m_num_reduc, m_prefer_unroll.
	(ix86_vector_costs::add_stmt_cost): Set m_prefer_unroll and
	m_num_reduc
	(ix86_vector_costs::finish_cost): Determine
	m_suggested_unroll_vector with consideration of
	reduc_lat_mult_thr, m_num_reduction and
	ix86_vect_unroll_limit.
	* config/i386/i386.h (enum ix86_reduc_unroll_factor): New
	enum.
	(processor_costs): Add reduc_lat_mult_thr and
	vect_unroll_limit.
	* config/i386/x86-tune-costs.h: Initialize
	reduc_lat_mult_thr and vect_unroll_limit.
	* config/i386/i386.opt: Add -param=ix86-vect-unroll-limit.

2025-08-26  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfrdiv_vf_<mode>): Add new pattern to
	combine vec_duplicate + vfdiv.vv into vfrdiv.vf.
	* config/riscv/vector.md (@pred_<optab><mode>_reverse_scalar): Allow VLS
	modes.

2025-08-26  Tamar Christina  <tamar.christina@arm.com>

	PR target/121290
	* config/aarch64/aarch64.cc
	(class aarch64_vector_costs ): Add m_loop_fully_scalar_dup.
	(aarch64_vector_costs::add_stmt_cost): Detect invariant inner loops.
	(adjust_body_cost): Adjust final costing if m_loop_fully_scalar_dup.

2025-08-26  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/autovec-opt.md (*vfmul_vf_<mode>): Add new pattern to
	combine vec_duplicate + vfmul.vv into vfmul.vf.
	* config/riscv/vector.md (@pred_<optab><mode>_scalar): Allow VLS modes.

2025-08-26  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_arg_partial_bytes): Remove name
	from unused parameter.

2025-08-26  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_reduc_type): Get SLP node as argument.
	* config/aarch64/aarch64.cc (aarch64_sve_in_loop_reduction_latency):
	Take SLO node as argument and adjust.
	(aarch64_in_loop_reduction_latency): Likewise.
	(aarch64_detect_vector_stmt_subtype): Adjust.
	(aarch64_vector_costs::count_ops): Likewise.  Treat reductions
	during scalar costing as single-cycle.

2025-08-26  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121659
	* tree-vect-slp.cc (vect_build_slp_tree_1): Do not allow
	matching up comparison operators by swapping if that would
	disturb STMT_VINFO_REDUC_IDX.  Make sure to only
	actually mark operands for swapping when there was a
	mismatch and we're not processing the first stmt.

2025-08-26  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_store): Access lanes_ifn
	only when VMAT_LOAD_STORE_LANES.
	(vectorizable_load): Likewise.

2025-08-26  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (stmt_vec_info_::reduc_vectype_in): Remove.
	(STMT_VINFO_REDUC_VECTYPE_IN): Likewise.
	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get
	at the input vectype via the SLP node child.
	(vectorizable_lane_reducing): Likewise.
	(vect_transform_reduction): Likewise.
	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN.

2025-08-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/121658
	* config/i386/sse.md (<insn><mode>3 any_shift): Use const0_rtx
	instead of GEN_INT (0).
	(cond_<insn><mode> any_shift): Likewise.  Formatting fix.
	(<insn><mode>3 any_rotate): Use register_operand predicate instead of
	general_operand for match_operand 1.  Use const0_rtx instead of
	GEN_INT (0).
	(<insn>v16qi3 any_rotate): Use force_reg on operands[1].  Formatting
	fix.
	* config/i386/i386.cc (ix86_shift_rotate_cost): Comment formatting
	fixes.

2025-08-26  Pan Li  <pan2.li@intel.com>

	* config/riscv/vector.md (@pred_mul_plus_vx_<mode>): Add new pattern to
	generate vmacc rtl.
	(*pred_macc_<mode>_scalar_undef): Ditto.
	* config/riscv/autovec-opt.md (*vmacc_vx_<mode>): Add new
	pattern to match the vmacc vx combine.

2025-08-25  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121453
	* omp-expand.cc (expand_omp_for_init_counts): Clear fd->loop.n2
	before first zero count check if zero_iter1_bb is non-NULL upon
	entry and fd->loop.n2 has not been written yet.

2025-08-25  David Faust  <david.faust@oracle.com>

	PR debug/121411
	* dwarf2ctf.cc (gen_ctf_subrange_type): Use unsigned HWI for
	array_num_elements.  Fallback to CTF_K_UNKNOWN if the array
	type has too many elements for CTF to represent.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (simplify_permutation): Boolify.
	(pass_forwprop::execute): No longer handle 2 as the return
	from simplify_permutation.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (forward_propagate_into_comparison): Boolify.
	(pass_forwprop::execute): Don't handle return of 2 from
	forward_propagate_into_comparison.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (remove_prop_source_from_use): Remove
	return type.
	(forward_propagate_into_comparison): Update dealing with
	no return type of remove_prop_source_from_use.
	(forward_propagate_into_gimple_cond): Likewise.
	(simplify_permutation): Likewise.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-forwprop.cc (simplify_gimple_switch): Add simple_dce_worklist
	argument. Mark the old index when doing the replacement.
	(pass_forwprop::execute): Update call to simplify_gimple_switch.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121279
	* gimple-fold.cc (gimple_needing_rewrite_undefined): Return
	true for non mode precision boolean loads.
	(rewrite_to_defined_unconditional): Handle non mode precision loads.

2025-08-25  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* tree-ssa-loop-im.cc (execute_sm): Call
	get_or_create_ssa_default_def for the new uninitialized
	decl.

2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (addsi3, <u>mulhisi3, andsi3,
	zero_extend<mode>si2, extendhisi2_internal, movsi_internal,
	movhi_internal, movqi_internal, movsf_internal, ashlsi3_internal,
	ashrsi3, lshrsi3, rotlsi3, rotrsi3):
	Rewrite in compact syntax.

2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md
	(The auxiliary define_split for *masktrue_const_bitcmpl):
	Use a more concise function call, i.e.,
	(1 << GET_MODE_BITSIZE (mode)) - 1 is equivalent to
	GET_MODE_MASK (mode).

2025-08-25  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (mode_bits):
	New mode attribute.
	(zero_extend<mode>si2): Use the appropriate mode iterator and
	attribute to unify "zero_extend[hq]isi2" to this description.

2025-08-25  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121638
	* tree-vect-stmts.cc (process_use): Do not make induction
	PHI backedge values relevant.

2025-08-25  Indu Bhagat  <indu.bhagat@oracle.com>
	    Claudiu Zissulescu  <claudiu.zissulescu-ianculescu@oracle.com>

	* asan.h (HWASAN_TAG_SIZE): Use targetm.memtag.tag_bitsize.
	* config/i386/i386.cc (ix86_memtag_tag_size): Rename to
	ix86_memtag_tag_bitsize.
	(TARGET_MEMTAG_TAG_SIZE): Renamed to TARGET_MEMTAG_TAG_BITSIZE.
	* doc/tm.texi (TARGET_MEMTAG_TAG_SIZE): Likewise.
	* doc/tm.texi.in (TARGET_MEMTAG_TAG_SIZE): Likewise.
	* target.def (tag_size): Rename to tag_bitsize.
	* targhooks.cc (default_memtag_tag_size): Rename to
	default_memtag_tag_bitsize.
	* targhooks.h (default_memtag_tag_size): Likewise.

2025-08-25  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-protos.h (riscv_init_cumulative_args): Change
	fntype parameter from tree to const_tree.
	* config/riscv/riscv.cc (riscv_init_cumulative_args): Likewise.
	(riscv_function_value): Replace with new implementation that
	conforms to TARGET_FUNCTION_VALUE hook signature.
	(riscv_libcall_value): New function implementing TARGET_LIBCALL_VALUE.
	(TARGET_FUNCTION_VALUE): Define.
	(TARGET_LIBCALL_VALUE): Define.
	* config/riscv/riscv.h (FUNCTION_VALUE): Remove.
	(LIBCALL_VALUE): Remove.

2025-08-25  Andi Kleen  <ak@gcc.gnu.org>

	* config/i386/i386-expand.cc (ix86_vgf2p8affine_shift_matrix):
	New function to lookup shift/rotate matrixes for gf2p8affine.
	* config/i386/i386-protos.h (ix86_vgf2p8affine_shift_matrix):
	Declare new function.
	* config/i386/i386.cc (ix86_shift_rotate_cost): Add cost model
	for shift/rotate implemented using gf2p8affine.
	* config/i386/sse.md (VI1_AVX512_3264): New mode iterator.
	(<insn><mode>3): Add GFNI case for shift patterns.
	(cond_<insn><mode>3): New pattern.
	(<insn><mode>3<mask_name>): Dito.
	(<insn>v16qi): New rotate pattern to handle XOP V16QI case
	and GFNI.
	(rotl<mode>3, rotr<mode>3): Exclude V16QI case.

2025-08-25  Xi Ruoyao  <xry111@xry111.site>

	PR target/121634
	* config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>): Use
	WVEC_HALF instead of WVEC for the mode of the sign_extend for
	the rhs of multiplication.

2025-08-25  Jeff Law  <jlaw@ventanamicro.com>

	* ifcvt.cc (noce_try_sign_bit_splat): Fix right shift computation.

2025-08-23  Sam James  <sam@gentoo.org>

	PR target/120933
	* config.gcc (supported_defaults): Add tls for i386, x86_64.
	* config/i386/i386.h (OPTION_DEFAULT_SPECS): Add tls.
	* doc/install.texi: Document --with-tls= for i386, x86_64.

2025-08-23  John Ericson  <git@JohnEricson.me>

	* gcc.cc (for_each_path): templated, to make passing lambdas
	possible/easy/safe, and to have a polymorphic return type.
	(struct add_to_obstack_info): Deleted, lambda captures replace
	it.
	(add_to_obstack): Moved to lambda in build_search_list.
	(build_search_list): Has above lambda now.
	(struct file_at_path_info):  Deleted, lambda captures replace
	it.
	(file_at_path): Moved to lambda in find_a_file.
	(find_a_file): Has above lambda now.
	(struct spec_path_info): Reamed to just struct spec_path.
	(struct spec_path): New name.
	(spec_path): Rnamed to spec_path::operator()
	(spec_path::operator()): New name
	(do_spec_1): Updated for_each_path call sites.

2025-08-22  Kishan Parmar  <kishan@linux.ibm.com>

	PR target/118890
	* config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Add bounds
	checks for shift counts to prevent undefined behavior.
	(rs6000_emit_set_long_const): Likewise.

2025-08-22  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/120553
	* ifcvt.cc (noce_try_sign_bit_splat): New function.
	(noce_process_if_block): Use it.

2025-08-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_live_operation): Pass
	the representative of the PHIs node to
	vect_create_epilog_for_reduction.

2025-08-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_lane_reducing): Get
	reduction info properly.  Adjust checks according to
	comments.
	(vectorizable_reduction): Do not set STMT_VINFO_REDUC_VECTYPE_IN
	on the reduc info.
	(vect_transform_reduction): Query STMT_VINFO_REDUC_VECTYPE_IN
	on the actual reduction stmt, not the info.

2025-08-22  Pan Li  <pan2.li@intel.com>

	* match.pd: Add form 3 for unsigned SAT_MUL.

2025-08-22  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121635
	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
	TLS call after NOTE_INSN_FUNCTION_BEG.

2025-08-22  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (get_initial_defs_for_reduction): Adjust
	comment.
	(vect_create_epilog_for_reduction): Get at the reduction
	kind via the instance, re-use the slp_reduc flag instead
	of checking REDUC_GROUP_FIRST_ELEMENT again.
	Remove unreachable code.
	(vectorizable_reduction): Compute a reduc_chain flag from
	the SLP instance kind, avoid REDUC_GROUP_FIRST_ELEMENT
	checks.
	(vect_transform_cycle_phi): Likewise.
	(vectorizable_live_operation): Check the SLP instance
	kind instead of REDUC_GROUP_FIRST_ELEMENT.

2025-08-22  Richard Biener  <rguenther@suse.de>

	* tree-parloops.cc (parloops_is_simple_reduction): Pass
	in double reduction inner loop LC phis and query that.
	(parloops_force_simple_reduction): Similar, but set it.
	Check for valid reduction types here.
	(valid_reduction_p): Remove.
	(gather_scalar_reductions): Adjust, fixup double
	reduction inner loop processing.

2025-08-22  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/riscv/t-rtems: Add -mstrict-align multilibs for
	targets without support for misaligned access in hardware.

2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.cc (pru_init_libfuncs): Set softmpy libgcc
	functions for optab multiplication entries if TARGET_OPT_MUL
	option is not set.

2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config.gcc: Include pru/t-multilib.
	* config/pru/pru.h (MULTILIB_DEFAULTS): Define.
	* config/pru/t-multilib: New file.

2025-08-21  Dimitar Dimitrov  <dimitar@dinux.eu>

	* common/config/pru/pru-common.cc (TARGET_DEFAULT_TARGET_FLAGS):
	Keep multiplication, FILL and ZERO instructions enabled by
	default.
	* config/pru/pru.md (prumov<mode>): Gate code generation on
	TARGET_OPT_FILLZERO.
	(mov<mode>): Ditto.
	(zero_extendqidi2): Ditto.
	(zero_extendhidi2): Ditto.
	(zero_extendsidi2): Ditto.
	(@pru_ior_fillbytes<mode>): Ditto.
	(@pru_and_zerobytes<mode>): Ditto.
	(@<code>di3): Ditto.
	(mulsi3): Gate code generation on TARGET_OPT_MUL.
	* config/pru/pru.opt: Add mmul and mfillzero options.
	* config/pru/pru.opt.urls: Regenerate.
	* config/rl78/rl78.opt.urls: Regenerate.
	* doc/invoke.texi: Document new options.

2025-08-21  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/121619
	* rtl-ssa/functions.h (function_info::commit_make_use_available):
	Declare.
	* rtl-ssa/blocks.cc (function_info::commit_make_use_available):
	New function.
	* rtl-ssa/changes.cc (function_info::apply_changes_to_insn): Use it.

2025-08-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/111494
	* gimple-fold.h (arith_code_with_undefined_signed_overflow): Declare.
	* gimple-fold.cc (arith_code_with_undefined_signed_overflow): Export.
	* tree-vect-stmts.cc (vectorizable_operation): Use unsigned
	arithmetic for operations participating in a reduction.

2025-08-21  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121607
	* config/i386/i386-features.cc (ix86_emit_tls_call): Emit the
	TLS call after NOTE_INSN_BASIC_BLOCK in a basic block with only
	a label.

2025-08-21  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (*btrue_INT_MIN):
	Change the branch insn condition to test for a negative number
	rather than testing for the MSB.

2025-08-21  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vectorizable_phi): Take bb_vec_info.
	(vectorizable_early_exit): Take loop_vec_info.
	* tree-vect-loop.cc (vectorizable_phi): Adjust.
	* tree-vect-slp.cc (vect_slp_analyze_operations): Likewise.
	(vectorize_slp_instance_root_stmt): Likewise.
	* tree-vect-stmts.cc (vectorizable_early_exit): Likewise.
	(vect_transform_stmt): Likewise.
	(vect_analyze_stmt): Merge the sequences of vectorizable_*
	where common.

2025-08-20  Qing Zhao  <qing.zhao@oracle.com>

	* common.opt.urls: Regenerate.

2025-08-20  Qing Zhao  <qing.zhao@oracle.com>

	PR tree-optimization/109071
	PR tree-optimization/85788
	PR tree-optimization/88771
	PR tree-optimization/106762
	PR tree-optimization/108770
	PR tree-optimization/115274
	PR tree-optimization/117179
	* Makefile.in (OBJS): Add diagnostic-context-rich-location.o.
	* common.opt (fdiagnostics-show-context): New option.
	(fdiagnostics-show-context=): New option.
	* diagnostic-context-rich-location.cc: New file.
	* diagnostic-context-rich-location.h: New file.
	* doc/invoke.texi (fdiagnostics-details): Add
	documentation for the new options.
	* gimple-array-bounds.cc (check_out_of_bounds_and_warn): Add
	one new parameter. Use rich location with details for warning_at.
	(array_bounds_checker::check_array_ref): Use rich location with
	ditails for warning_at.
	(array_bounds_checker::check_mem_ref): Add one new parameter.
	Use rich location with details for warning_at.
	(array_bounds_checker::check_addr_expr): Use rich location with
	move_history_diagnostic_path for warning_at.
	(array_bounds_checker::check_array_bounds): Call check_mem_ref with
	one more parameter.
	* gimple-array-bounds.h: Update prototype for check_mem_ref.
	* gimple-ssa-warn-access.cc (warn_string_no_nul): Use rich location
	with details for warning_at.
	(maybe_warn_nonstring_arg): Likewise.
	(maybe_warn_for_bound): Likewise.
	(warn_for_access): Likewise.
	(check_access): Likewise.
	(pass_waccess::check_strncat): Likewise.
	(pass_waccess::maybe_check_access_sizes): Likewise.
	* gimple-ssa-warn-restrict.cc (pass_wrestrict::execute): Calculate
	dominance info for diagnostics show context.
	(maybe_diag_overlap): Use rich location with details for warning_at.
	(maybe_diag_access_bounds): Use rich location with details for
	warning_at.

2025-08-20  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121568
	* ipa-prop.h (build_ref_for_offset): Remove.
	* tree-sra.cc (build_ref_for_offset): Make static.

2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>

	* config.gcc (aarch64*-*-*): Remove aarch64-cc-fusion.o from
	extra_objs.
	* config/aarch64/aarch64-passes.def (pass_cc_fusion): Delete.
	* config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Delete.
	* config/aarch64/t-aarch64 (aarch64-cc-fusion.o): Delete.
	* config/aarch64/aarch64-cc-fusion.cc: Delete.
	* late-combine.cc (late_combine::optimizable_set): Take a set_info *
	rather than an insn_info * and move destination tests from...
	(late_combine::combine_into_uses): ...here. Take a set_info * rather
	an insn_info *.  Take the rtx set.
	(late_combine::parallelize_insns, late_combine::combine_cc_setter)
	(late_combine::combine_insn): New member functions.
	(late_combine::m_parallel): New member variable.
	* rtlanal.cc (pattern_cost): Handle sets of CC registers in the
	same way as comparisons.

2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl-ssa/blocks.cc (function_info::create_degenerate_phi): Fix
	inverted test of bitmap_set_bit.  Call add_live_out_use even
	if the register was previously live-out from the predecessor block.
	Instead...
	(function_info::add_live_out_use): ...check here whether a live-out
	use already exists.

2025-08-20  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl-ssa/accesses.h (use_lookup): New class.
	* rtl-ssa/functions.h (function_info::find_def): Expand comment.
	(function_info::find_use): Declare.
	* rtl-ssa/member-fns.inl (use_lookup::prev_use, use_lookup::next_use)
	(use_lookup::matching_use, use_lookup::matching_or_prev_use)
	(use_lookup::matching_or_next_use): New member functions.
	* rtl-ssa/accesses.cc (function_info::find_use): Likewise.

2025-08-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/114480
	* cfganal.cc (compute_idf): Split processing of the initial
	workset from the main iteration.  Use a vector for the
	workset of the main iteration.

2025-08-20  Georg-Johann Lay  <avr@gjlay.de>

	PR target/121608
	* config/avr/specs.h (LINK_RELAX_SPEC): Wrap in %{!r...}.

2025-08-20  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp_reduc_chain): New,
	copied from vect_analyze_slp_instance and only handle
	slp_inst_kind_reduc_chain.  Inline vect_build_slp_instance.
	(vect_analyze_slp_instance): Only handle slp_inst_kind_store.
	Inline vect_build_slp_instance.
	(vect_build_slp_instance): Remove now unused stmt_info parameter,
	remove special code for store groups and reduction chains.
	(vect_analyze_slp): Call vect_analyze_slp_reduc_chain
	for reduction chain SLP build and adjust.

2025-08-20  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.cc (vect_check_gather_scatter):
	Remove restriction on epilogue of epilogue vectorization.

2025-08-20  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove
	fixing up pattern stmt operands and gather/scatter DR_REFs.
	(find_in_mapping): Remove.

2025-08-20  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_load_store_data): New.
	(_slp_tree::memory_access_type): Remove.
	(SLP_TREE_MEMORY_ACCESS_TYPE): Turn into inline function.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Do not
	initialize SLP_TREE_MEMORY_ACCESS_TYPE.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Remove gather_scatter_info pointer argument, instead get
	info from the SLP node.
	(vect_build_one_gather_load_call): Get SLP node and builtin
	decl as argument and remove uses of gather_scatter_info.
	(vect_build_one_scatter_store_call): Likewise.
	(vect_get_gather_scatter_ops): Remove uses of gather_scatter_info.
	(vect_get_strided_load_store_ops): Get SLP node and remove
	uses of gather_scatter_info.
	(get_load_store_type): Take pointer to vect_load_store_data
	instead of individual pointers.
	(vectorizable_store): Adjust.  Re-use get_load_store_type
	result from analysis time.
	(vectorizable_load): Likewise.

2025-08-20  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121572
	* config/i386/i386-features.cc (replace_tls_call): Add a bitmap
	argument and put the updated TLS instruction in the bitmap.
	(ix86_get_dominator_for_reg): New.
	(ix86_check_flags_reg): Likewise.
	(ix86_emit_tls_call): Likewise.
	(ix86_place_single_tls_call): Add 2 bitmap arguments for updated
	GNU and GNU2 TLS instructions.  Call ix86_emit_tls_call to emit
	TLS instruction.  Correct debug dump for before instruction.

2025-08-19  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR middle-end/120024
	* calls.cc (expand_call): Remove start_sequence/end_sequence
	for ECF_MALLOC.
	Check valreg before deferencing it when it comes to malloc like
	functions. Use the return value of emit_move_insn instead of
	calling get_last_insn.

2025-08-19  Richard Biener  <rguenther@suse.de>

	* tree-parloops.cc (parloops_is_slp_reduction): Remove.
	(parloops_is_simple_reduction): Do not call it.

2025-08-19  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Pass the
	appropriate SLP node for costing of single-def-use-cycle
	operations.
	(vectorizable_live_operation): Pass the SLP node to the
	costing hook.
	* tree-vect-stmts.cc (vectorizable_bswap): Likewise.
	(vectorizable_store): Likewise.

2025-08-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121592
	* tree-vect-slp.cc (vect_analyze_slp): When SLP reduction chain
	discovery fails, fail overall when the tail of the chain
	isn't also the entry for the non-SLP reduction.

2025-08-19  Richard Biener  <rguenther@suse.de>

	* config.gcc (riscv*-*-*): Look for python3, then fall back
	to python.  Never use python2.

2025-08-19  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121527
	* tree-sra.cc (build_access_from_expr_1): Do not strip an
	outer VIEW_CONVERT_EXPR as it's relevant for the size of
	the access.
	(get_access_for_expr): Likewise.

2025-08-19  Tamar Christina  <tamar.christina@arm.com>

	PR target/121536
	* config/aarch64/aarch64.cc (aarch64_bool_compound_p): Use
	SLP_TREE_VECTYPE instead of STMT_VINFO_VECTYPE.
	(aarch64_adjust_stmt_cost, aarch64_vector_costs::count_ops): Pass SLP
	node to aarch64_bool_compound_p.

2025-08-19  Tamar Christina  <tamar.christina@arm.com>

	PR target/121536
	* tree-vect-loop.cc (vectorizable_phi, vectorizable_recurr,
	vectorizable_nonlinear_induction, vectorizable_induction): Pass slp_node
	instead of stmt_info to record_stmt_cost.

2025-08-19  Tamar Christina  <tamar.christina@arm.com>

	PR target/121536
	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): Set
	vectype from type of lhs of gimple stmt.

2025-08-18  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR middle-end/121581
	* doc/extend.texi (__builtin_object_size): Fix example.

2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>

	* flag-types.h (sanitize_code_type): Define.
	* asan.h (sanitize_flags_p): Use 'sanitize_code_type' instead of
	'unsigned int'.
	* common.opt: Likewise.
	* dwarf2asm.cc (dw2_output_indirect_constant_1): Likewise.
	* opts.cc (find_sanitizer_argument): Likewise.
	(report_conflicting_sanitizer_options): Likewise.
	(parse_sanitizer_options): Likewise.
	(parse_no_sanitize_attribute): Likewise.
	* opts.h (parse_sanitizer_options): Likewise.
	(parse_no_sanitize_attribute): Likewise.
	* tree-cfg.cc (print_no_sanitize_attr_value): Likewise.
	* tree.cc (tree_fits_sanitize_code_type_p): Define.
	(tree_to_sanitize_code_type): Likewise.
	* tree.h (tree_fits_sanitize_code_type_p): Declare.
	(tree_to_sanitize_code_type): Likewise.

2025-08-18  Indu Bhagat  <indu.bhagat@oracle.com>

	* config/aarch64/aarch64.md (MEMTAG_TAG_MASK): New define
	constant.
	(MEMTAG_ADDR_MASK): Likewise.
	(irg, subp, ldg): Use new constants.

2025-08-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/97497
	* function-abi.h (predefined_function_abi::only_partial_reg_clobbers)
	(function_abi::only_partial_reg_clobbers): New member functions.
	* gcse-common.cc: Include regs.h and function-abi.h.
	(compute_transp): Check for partially call-clobbered registers
	and treat them as not being transparent in blocks with calls.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (UNSPEC_TI_FETCH_ADD): New unspec.
	(UNSPEC_TI_FETCH_SUB): Likewise.
	(UNSPEC_TI_FETCH_AND): Likewise.
	(UNSPEC_TI_FETCH_XOR): Likewise.
	(UNSPEC_TI_FETCH_OR): Likewise.
	(UNSPEC_TI_FETCH_NAND_MASK_INVERTED): Likewise.
	(ALL_SC): New define_mode_iterator.
	(_scq): New define_mode_attr.
	(atomic_fetch_nand<mode>): Accept ALL_SC instead of only GPR.
	(UNSPEC_TI_FETCH_DIRECT): New define_int_iterator.
	(UNSPEC_TI_FETCH): New define_int_iterator.
	(amop_ti_fetch): New define_int_attr.
	(size_ti_fetch): New define_int_attr.
	(atomic_fetch_<amop_ti_fetch>ti_scq): New define_insn.
	(atomic_fetch_<amop_ti_fetch>ti): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_exchangeti_scq): New
	define_insn.
	(atomic_exchangeti): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_compare_and_swapti_scq): New
	define_insn.
	(atomic_compare_and_swapti): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
	Accept "%t" for printing the number of the 64-bit machine
	register holding the upper half of a TImode.
	* config/loongarch/sync.md (atomic_storeti_scq): New
	define_insn.
	(atomic_storeti): expand to atomic_storeti_scq if !ISA_HAS_LSX.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/genopts/isa-evolution.in (scq): New evolution
	feature.
	* config/loongarch/loongarch-evolution.cc: Regenerate.
	* config/loongarch/loongarch-evolution.h: Regenerate.
	* config/loongarch/loongarch-str.h: Regenerate.
	* config/loongarch/loongarch.opt: Regenerate.
	* config/loongarch/loongarch.opt.urls: Regenerate.
	* config/loongarch/loongarch-def.cc: Make -mscq the default for
	-march=la664 and -march=la64v1.1.
	* doc/invoke.texi (LoongArch Options): Document -m[no-]scq.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_storeti_lsx): New
	define_insn.
	(atomic_storeti): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_loadti_lsx): New define_insn.
	(atomic_loadti): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md
	(atomic_fetch_nand_mask_inverted<GPR:mode>): New define_insn.
	(atomic_fetch_nand<GPR:mode>): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_fetch_sub<SHORT:mode>):
	Disable if ISA_HAS_LAM_BH.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AND):
	Remove.
	(UNSPEC_COMPARE_AND_SWAP_XOR): Remove.
	(UNSPEC_COMPARE_AND_SWAP_OR): Remove.
	(atomic_test_and_set): Rename to ...
	(atomic_fetch_<any_bitwise:amop><SHORT:mode>): ... this, and
	adapt the expansion to use it for any bitwise operations and any
	val, instead of just ior 1.
	(atomic_test_and_set): New define_expand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_test_and_set): Remove
	unneeded andi instruction from the expansion.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
	Make "%T" output a comment marker if the operand is a memory
	order for which the barrier won't be generated; remove "%t".
	* config/loongarch/sync.md (atomic_cas_value_strong<mode>): Add
	%T before "b 3f".
	(atomic_cas_value_cmp_and_7_<mode>): Likewise.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (UNSPEC_COMPARE_AND_SWAP_AMCAS): New
	UNSPEC code.
	(atomic_cas_value_strong<mode>): NFC, update the comment to note
	we only need to consider failure memory order.
	(atomic_cas_value_strong<mode>_amcas): Use
	UNSPEC_COMPARE_AND_SWAP_AMCAS instead of
	UNSPEC_COMPARE_AND_SWAP.
	(atomic_compare_and_swap<mode:GPR>): Pass failure memorder to
	gen_atomic_cas_value_strong<mode>.
	(atomic_compare_and_swap<mode:SHORT>): Pass failure memorder to
	gen_atomic_cas_value_cmp_and_7_si.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_test_and_set): Use bstrins
	for masking the address if possible.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_load<mode>): Remove "+" for
	the memory operand.
	(atomic_store<mode>): Use "=" instead of "+" for the memory
	operand.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md: Use <size> instead of <amo>.
	(amo): Remove.

2025-08-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/sync.md (atomic_optab): Remove.
	(atomic_<atomic_optab><mode>): Change atomic_optab to amop.
	(atomic_fetch_<atomic_optab><mode>): Likewise.

2025-08-17  Austin Law  <austinklaw@gmail.com>

	PR target/121213
	* config/riscv/sync.md (amo_atomic_exchange<mode>): Allow
	(const_int 0) as input operand. Do not tie input to output.
	No longer earlyclobber the output.

2025-08-17  Artemiy Volkov  <artemiyv@acm.org>

	* regrename.cc (scan_rtx_reg): Handle fused insn pairs.

2025-08-17  Jan Dubiec  <jdx@o2.pl>

	PR target/109324
	* config/h8300/addsub.md: Explicitly specify mode for plus operation.
	* config/h8300/jumpcall.md: Explicitly specify modes for eq and
	match_operand operations.
	* config/h8300/testcompare.md: Explicitly specify modes for eq, ltu
	and compare operations.

2025-08-17  Artemiy Volkov  <artemiyv@acm.org>

	* ira-conflicts.cc (add_insn_allocno_copies): Handle fused insn pairs.
	* rtl.h (single_output_fused_pair_p): Declare new function.
	* rtlanal.cc (single_output_fused_pair_p): Define it.

2025-08-17  Dimitar Dimitrov  <dimitar@dinux.eu>

	PR target/121538
	* config/riscv/arch-canonicalize (parse_dep_exts):
	Match condition block up to closing brace.
	(test_parse_long_condition_block): New test.

2025-08-17  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121541
	* config/i386/i386-options.cc
	(ix86_valid_target_attribute_inner_p): Add target("80387")
	attribute.  Set the mask bit in opts_set->x_target_flags if the
	mask bit in opts->x_target_flags is updated.
	* doc/extend.texi: Document target("80387") function attribute.

2025-08-17  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md: Add supported insn
	of vx combine.

2025-08-17  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md: Add missed DONE
	for vx combine pattern.

2025-08-15  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (Type Traits): Document
	__builtin_structured_binding_size.

2025-08-15  Jakub Jelinek  <jakub@redhat.com>

	PR c++/121552
	* doc/invoke.texi (-Wno-non-c-typedef-for-linkage): Document.

2025-08-15  Robert Dubner  <rdubner@symas.com>

	* real.cc (real_to_decimal_for_mode): Set str[0] to known value.

2025-08-15  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/121534
	* config/riscv/riscv.md (round_pattern): save/restore fflags.

2025-08-15  Qing Zhao  <qing.zhao@oracle.com>

	* doc/extend.texi: Extend counted_by attribute to pointer fields in
	structures. Add one more requirement to pointers with counted_by
	attribute.

2025-08-15  Umesh Kalappa  <ukalappa.mips@gmail.com>

	* config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT):
	Added mips prefetch extension.
	* config/riscv/riscv-ext.opt: Generated file.
	* config/riscv/riscv.md (prefetch):
	Added mips prefetch address operand constraint.
	* config/riscv/constraints.md: Added mips specific constraint.
	* config/riscv/predicates.md (prefetch_operand):
	Updated for mips nine bits offset.
	* config/riscv/riscv.cc (riscv_prefetch_offset_address_p):
	Legitimate address with offset for prefetch check.
	* config/riscv/riscv-protos.h: Likewise.
	* config/riscv/riscv.h:
	Macros to support for mips cached type.
	* doc/riscv-ext.texi: Updated for mips prefetch.

2025-08-15  Richard Sandiford  <richard.sandiford@arm.com>

	* config/riscv/riscv-protos.h
	(riscv_process_target_version_attr): Change location_t argument
	to location_t *.
	* config/riscv/riscv-subset.h
	(riscv_subset_list::riscv_subset_list): Change location_t argument
	to location_t *.
	(riscv_subset_list::parse): Likwise.
	(riscv_subset_list::set_loc): Likewise.
	(riscv_minimal_hwprobe_feature_bits): Likewise.
	(riscv_subset_list::m_loc): Change type to location_t.
	* common/config/riscv/riscv-common.cc
	(riscv_subset_list::riscv_subset_list): Change location_t argument
	to location_t *.
	(riscv_subset_list::add): Suppress diagnostics when m_loc is null.
	(riscv_subset_list::parsing_subset_version): Likewise.
	(riscv_subset_list::parse_profiles): Likewise.
	(riscv_subset_list::parse_base_ext): Likewise.
	(riscv_subset_list::parse_single_std_ext): Likewise.
	(riscv_subset_list::check_conflict_ext): Likewise.
	(riscv_subset_list::parse_single_multiletter_ext): Likewise.
	(riscv_subset_list::parse): Change location_t argument to location_t *.
	(riscv_subset_list::set_loc): Likewise.
	(riscv_minimal_hwprobe_feature_bits): Likewise.
	(riscv_parse_arch_string): Update call accordingly.
	* config/riscv/riscv-target-attr.cc
	(riscv_target_attr_parser::m_loc): Change type to location_t *.
	(riscv_target_attr_parser::riscv_target_attr_parser): Change
	location_t argument to location_t *.
	(riscv_process_one_target_attr): Likewise.
	(riscv_process_target_attr): Likewise.
	(riscv_process_target_version_attr): Likewise.
	(riscv_target_attr_parser::parse_arch): Suppress diagnostics when
	m_loc is null.
	(riscv_target_attr_parser::handle_arch): Likewise.
	(riscv_target_attr_parser::handle_cpu): Likewise.
	(riscv_target_attr_parser::handle_tune): Likewise.
	(riscv_target_attr_parser::handle_priority): Likewise.
	(riscv_option_valid_attribute_p): Update call accordingly.
	(riscv_option_valid_version_attribute_p): Likewise.
	* config/riscv/riscv.cc (parse_features_for_version): Add a
	location_t * argument.
	(dispatch_function_versions): Update call accordingly.
	(riscv_compare_version_priority): Likewise, suppressing diagnostics.

2025-08-15  Kito Cheng  <kito.cheng@sifive.com>

	* tree-nrv.cc (pass_return_slot::execute): Use
	gimple_call_fntype instead of gimple_call_fndecl.

2025-08-15  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/121542
	* config/loongarch/loongarch.cc
	(loongarch_vector_costs::add_stmt_cost): When using vectype,
	first determine whether it is NULL.

2025-08-14  Jeff Law  <jlaw@ventanamicro.com>

	PR target/119275
	* config/riscv/riscv.cc (riscv_legitimize_move): Avoid calling
	gen_lowpart for cases where it'll fail.  Just use standard expander
	paths for those cases.

2025-08-14  Mikael Pettersson  <mikpelinux@gmail.com>

	PR target/121336
	* config/cris/cris.h: Do not abbreviate --emulation.

2025-08-14  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121501
	* config/rs6000/rs6000.md (cmprb, setb_signed, setb_unsigned)
	(cmprb2, cmpeqb): Add missing modes to nested if_then_elses.

2025-08-14  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121474
	* passes.def: Update forwprop1/2 to have full_walk to be true.
	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Add new argument
	full_walk. Take into account the full_walk and clobbers at the end
	of the limit can be done always.
	(simplify_builtin_call): Add new argument, full_walk.
	Update call to optimize_aggr_zeroprop.
	(pass_forwprop): Add m_full_walk field.
	(pass_forwprop::set_pass_param): Update for m_full_walk.
	(pass_forwprop::execute): Update call to simplify_builtin_call
	and optimize_aggr_zeroprop.

2025-08-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_agr_copyprop_1): New function split out of ...
	(optimize_agr_copyprop): Here. Also try calling optimize_agr_copyprop_arg.
	(optimize_agr_copyprop_arg): New function.

2025-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.md: Merge movdi<mode>_zero_extend_A and
	movsi<mode>_zero_extend_A into zero_extendsidi2 and
	zero_extendhi<mode>2_z10 and
	zero_extend<HQI:mode><GPR:mode>2_extimm.
	* config/s390/vector.md (*movdi<mode>_zero_extend_A): Remove.
	(*movsi<mode>_zero_extend_A): Remove.
	(*movdi<mode>_zero_extend_B): Move to vec_extract patterns and
	rename to *vec_extract<mode>_zero_extend.
	(*movsi<mode>_zero_extend_B): Ditto.

2025-08-14  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121540
	* config/i386/i386-options.cc (ix86_set_current_function):
	Properly check if MMX and 80387 are enabled.

2025-08-13  Jeff Law  <jlaw@ventanamicro.com>

	PR target/121531
	* config/riscv/sifive-p400.md (sifive_p400_unknown): New reservation.
	* config/riscv/sifive-p600.md (sifive_p600_unkonwn): Likewise.

2025-08-13  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/output-spec.cc (sarif_scheme_handler::make_sink):
	Populate sarif_generation_options instance directly, rather than
	through local variables.
	(sarif_scheme_handler::make_sarif_gen_opts): Drop.
	(html_scheme_handler::make_sink): Populate html_generation_options
	instance directly, rather than through local variables.

2025-08-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	* config.gcc: Mark epiphany*-*-* and rl78*-*-* as
	obsolete targets.

2025-08-13  H.J. Lu  <hjl.tools@gmail.com>

	PR target/81501
	* config/i386/i386-features.cc (x86_cse_kind): Add X86_CSE_TLS_GD,
	X86_CSE_TLS_LD_BASE and X86_CSE_TLSDESC.
	(redundant_load): Renamed to ...
	(redundant_pattern): This.
	(ix86_place_single_vector_set): Replace redundant_load with
	redundant_pattern.
	(replace_tls_call): New.
	(ix86_place_single_tls_call): Likewise.
	(pass_remove_redundant_vector_load): Renamed to ...
	(pass_x86_cse): This.  Add val, def_insn, mode, scalar_mode, kind,
	x86_cse, candidate_gnu_tls_p, candidate_gnu2_tls_p and
	candidate_vector_p.
	(pass_x86_cse::candidate_gnu_tls_p): New.
	(pass_x86_cse::candidate_gnu2_tls_p): Likewise.
	(pass_x86_cse::candidate_vector_p): Likewise.
	(remove_redundant_vector_load): Renamed to ...
	(pass_x86_cse::x86_cse): This.  Extend to remove redundant TLS
	calls.
	(make_pass_remove_redundant_vector_load): Renamed to ...
	(make_pass_x86_cse): This.
	* config/i386/i386-passes.def: Replace
	pass_remove_redundant_vector_load with pass_x86_cse.
	* config/i386/i386-protos.h (ix86_tls_get_addr): New.
	(make_pass_remove_redundant_vector_load): Renamed to ...
	(make_pass_x86_cse): This.
	* config/i386/i386.cc (ix86_tls_get_addr): Remove static.
	* config/i386/i386.h (machine_function): Add
	tls_descriptor_call_multiple_p.
	* config/i386/i386.md (tls64): New attribute.
	(@tls_global_dynamic_64_<mode>): Set tls_descriptor_call_multiple_p.
	(@tls_local_dynamic_base_64_<mode>): Likewise.
	(@tls_dynamic_gnu2_64_<mode>): Likewise.
	(*tls_global_dynamic_64_<mode>): Set tls64 attribute to gd.
	(*tls_local_dynamic_base_64_<mode>): Set tls64 attribute to ld_base.
	(*tls_dynamic_gnu2_lea_64_<mode>): Set tls64 attribute to lea.
	(*tls_dynamic_gnu2_call_64_<mode>): Set tls64 attribute to call.
	(*tls_dynamic_gnu2_combine_64_<mode>): Set tls64 attribute to
	combine.

2025-08-13  Iain Sandoe  <iain@sandoe.co.uk>

	* config.in: Regenerate.
	* config/darwin.h (DARWIN_LD_NO_DEDUPLICATE): New.
	(LINK_SPEC): Handle -no_deduplicate.
	* configure: Regenerate.
	* configure.ac: Detect linker support for -no_deduplicate.

2025-08-13  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin-sections.def (asan_string_section,
	asan_globals_section, asan_liveness_section): New.
	* config/darwin.cc (objc_method_decl): Use asan sections
	when asan is enabled.
	(darwin_encode_section_info): Alter string constant
	linker visibility depending on asan.
	(machopic_select_section): Use the asan sections when
	asan is enabled.

2025-08-13  Jeff Law  <jlaw@ventanamicro.com>

	PR target/121160
	* config/riscv/riscv.cc (canonicalize_comparands); Tighten check for
	forcing value into a GPR.

2025-08-13  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121474
	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Move the check
	for limit before the alias check.

2025-08-13  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (SLP_TREE_PERMUTE_P): New.
	* tree-vect-slp-patterns.cc (linear_loads_p): Adjust.
	(vect_detect_pair_op): Likewise.
	(addsub_pattern::recognize): Likewise.
	* tree-vect-slp.cc (vect_print_slp_tree): Likewise.
	(vect_gather_slp_loads): Likewise.
	(vect_is_slp_load_node): Likewise.
	(optimize_load_redistribution_1): Likewise.
	(vect_optimize_slp_pass::is_cfg_latch_edge): Likewise.
	(vect_optimize_slp_pass::internal_node_cost): Likewise.
	(vect_optimize_slp_pass::start_choosing_layouts): Likewise.
	(vect_optimize_slp_pass::backward_cost): Likewise.
	(vect_optimize_slp_pass::forward_pass): Likewise.
	(vect_optimize_slp_pass::get_result_with_layout): Likewise.
	(vect_optimize_slp_pass::materialize): Likewise.
	(vect_optimize_slp_pass::dump): Likewise.
	(vect_optimize_slp_pass::decide_masked_load_lanes): Likewise.
	(vect_update_slp_vf_for_node): Likewise.
	(vect_slp_analyze_node_operations_1): Likewise.
	(vect_schedule_slp_node): Likewise.
	(vect_schedule_scc): Likewise.
	* tree-vect-stmts.cc (vect_analyze_stmt): Likewise.
	(vect_transform_stmt): Likewise.
	(vect_is_simple_use): Likewise.

2025-08-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_analyze_stmt): Use
	SLP_TREE_DEF_TYPE instead of STMT_VINFO_DEF_TYPE.

2025-08-13  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_memory_access_type): Replace
	VMAT_GATHER_SCATTER with three separate access types,
	VMAT_GATHER_SCATTER_LEGACY, VMAT_GATHER_SCATTER_IFN and
	VMAT_GATHER_SCATTER_EMULATED.
	(mat_gather_scatter_p): New predicate.
	(GATHER_SCATTER_LEGACY_P): Remove.
	(GATHER_SCATTER_IFN_P): Likewise.
	(GATHER_SCATTER_EMULATED_P): Likewise.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Adjust.
	(get_load_store_type): Likewise.
	(vect_get_loop_variant_data_ptr_increment): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
	Likewise.
	* config/riscv/riscv-vector-costs.cc
	(costs::need_additional_vector_vars_p): Likewise.
	* config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype):
	Likewise.
	(aarch64_vector_costs::count_ops): Likewise.
	(aarch64_vector_costs::add_stmt_cost): Likewise.

2025-08-13  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_supportable_dr_alignment): Pass
	a bool instead of a pointer to gather_scatter_info.
	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
	Likewise.
	* tree-vect-stmts.cc (get_load_store_type): Adjust.

2025-08-13  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/120476
	* config/loongarch/loongarch.cc
	(loongarch_compute_pressure_classes): New function.
	(TARGET_COMPUTE_PRESSURE_CLASSES): Define.

2025-08-13  Yang Yujie  <yangyujie@loongson.cn>

	PR target/117599
	* config/loongarch/loongarch.h: Define a PROMOTE_MODE case for
	small _BitInts.
	* config/loongarch/loongarch.cc (loongarch_promote_function_mode):
	Same.
	(loongarch_bitint_type_info): New function.
	(TARGET_C_BITINT_TYPE_INFO): Declare.

2025-08-13  Jeff Law  <jlaw@ventanamicro.com>

	PR target/121113
	* config/riscv/sifive-p400.md: Handle HFmode for fdiv/fsqrt.
	* config/riscv/sifive-p600.md: Likewise.
	* config/riscv/xiangshan.md: Likewise.

2025-08-13  H.J. Lu  <hjl.tools@gmail.com>
	    Liu, Hongtao  <hongtao.liu@intel.com>

	PR target/121497
	* config/i386/i386-features.cc (ix86_broadcast_inner): Convert
	integer constant to mode of move

2025-08-12  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*merge_vx_<mode>): Add new
	pattern to combine the vmerge.vxm.

2025-08-12  Robin Dapp  <rdapp.gcc@gmail.com>

	PR target/121334
	* config/riscv/riscv-v.cc (expand_slide1up): New function.
	(expand_vector_init_trailing_same_elem): Use new function.
	(expand_const_vector_onestep): New function.
	(expand_const_vector): Uew expand_slide1up.
	(expand_vector_init_merge_repeating_sequence): Ditto.
	(shuffle_off_by_one_patterns): Ditto.

2025-08-12  mengqinggang  <mengqinggang@loongson.cn>

	* config/loongarch/loongarch-def.h (ABI_BASE_LP64D): New macro.
	(ABI_BASE_LP64F): New macro.
	(ABI_BASE_LP64S): New macro.
	(N_ABI_BASE_TYPES): New macro.

2025-08-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_2): Change
	slp_done_for_suggested_uf to a boolean
	single_lane_slp_done_for_suggested_uf.  Change slp
	to force_single_lane boolean.
	(vect_analyze_loop_1): Adjust similarly.

2025-08-12  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/121253
	* fwprop.cc (forward_propagate_into): Don't propagate asm defs.

2025-08-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121509
	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized):
	Fail early when we detect a relevant but not handled PHI.

2025-08-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121514
	* tree-ssa-sccvn.cc (visit_nary_op): Only call
	vn_nary_op_insert_stmt for SSA name result.

2025-08-12  Andrew Pinski  <andrew.pinski@oss.qualcomm.com>

	PR tree-optimization/121494
	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Mark the bb of the use
	stmt if needed for eh cleanup.

2025-08-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_analyze_stmt): Only set
	STMT_VINFO_VECTYPE for dataref SLP representatives.
	Clear it for others and do not restore the original value.
	(vect_transform_stmt): Likewise.

2025-08-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (get_initial_defs_for_reduction):
	Get vector type as argument.
	(vect_find_reusable_accumulator): Likewise.
	(vect_transform_cycle_phi): Adjust.

2025-08-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Replace
	STMT_VINFO_VECTYPE use with SLP_TREE_VECTYPE.

2025-08-12  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121493
	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Opportunistically
	strip components with known offset.

2025-08-12  Richard Biener  <rguenther@suse.de>

	* tree-ssa-sccvn.cc (vn_reference_lookup_3): When we fail to
	match up the two base MEM_REFs, fail.

2025-08-12  Shreya Munnangi  <smunnangi1@ventanamicro.com>
	    Jeff Law   <jlaw@ventanamicro.com>
	    Philipp Tomsich  <philipp.tomsich@vrull.eu>

	* config/riscv/riscv-protos.h (synthesize_add): Add prototype.
	* config/riscv/riscv.cc (synthesize_add): New function.
	* config/riscv/riscv.md (addsi3): Allow any constant as operands[2]
	in the expander.  Force the constant into a register as needed for
	TARGET_64BIT.  Use synthesize_add for !TARGET_64BIT.
	(*adddi3): Renamed from adddi3.
	(adddi3): New expander.  Use synthesize_add.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.md (mov<ALLI>cc): Accept MODE_CC
	conditions directly; reject QI/HImode conditions.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	PR target/121388
	* config/aarch64/aarch64.cc (aarch64_cb_rhs): Restrict the
	range of LT/GE and GT/LE to their intersections.
	* config/aarch64/aarch64.md (*aarch64_cb<INT_CMP><GPI>): Unexport.
	Use cmpbr_imm_predicate instead of aarch64_cb_rhs.
	* config/aarch64/constraints.md (Uc1): Accept 0..62.
	(Uc2): Remove.
	* config/aarch64/iterators.md (cmpbr_imm_predicate): New.
	(cmpbr_imm_constraint): Update to match aarch64_cb_rhs.
	* config/aarch64/predicates.md (aarch64_cb_reg_i63_operand): New.
	(aarch64_cb_reg_i62_operand): New.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs):
	Use aarch64_cb_rhs to match CB insns.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	PR target/121385
	* config/aarch64/aarch64.md (*aarch64_tbz<LTGE><ALLI>1): Remove
	cc clobber and expansion via TST+Bcond.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.h (TARGET_CMPBR): False when
	aarch64_track_speculation is true.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.cc (aarch64_gen_compare_split_imm24): New.
	* config/aarch64/aarch64-protos.h: Update.
	* config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>): Use it.
	Add match_scratch and cc clobbers.  Use match_operator instead of
	iterator expansion.
	(*compare_cstore<GPI>_insn): Likewise.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/predicates.md (aarch64_split_imm24): Rename from
	aarch64_imm24; exclude aarch64_move_imm and aarch64_uimm12_shift.
	* config/aarch64/aarch64.md (*aarch64_bcond_wide_imm<GPI>):
	Update for aarch64_split_imm24.
	(*compare_cstore<GPI>_insn): Likewise.
	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Likewise.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.md (tbranch_<EQL><SHORT>3): Remove.
	(save_stack_nonlocal): Use aarch64_gen_compare_zero_and_branch.
	(restore_stack_nonlocal): Likewise.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.cc
	(aarch64_gen_compare_zero_and_branch): Export.
	* config/aarch64/aarch64-protos.h
	(aarch64_gen_compare_zero_and_branch): Declare it.
	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Use it.
	* config/aarch64/aarch64.md (*aarch64_cbz<EQL><GPI>): Unexport.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.cc (aarch64_if_the_else_costs): Reorg to
	include the cost of inner within TBZ sign-bit test, only match
	CBZ/CBNZ with valid modes, and both for the aarch64_imm24 test.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.cc (aarch64_if_then_else_costs): Remove
	else after return and re-indent.

2025-08-11  Richard Henderson  <richard.henderson@linaro.org>

	* config/aarch64/aarch64.md (BRANCH_LEN_N_1KiB): Rename
	from BRANCH_LEN_N_1Kib.

2025-08-11  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Recognize stores
	of integer_zerop as memset of 0.

2025-08-11  Jeff Law  <jlaw@ventanamicro.com>

	* doc/sourcebuild.texi: Add riscv_b_ok and riscv_v_ok target selectors.

2025-08-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121488
	* tree-ssa-sccvn.cc (visit_nary_op): If the BIT_FIELD_REF
	result is of wrong type, try a VIEW_CONVERT_EXPR around it.

2025-08-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121362
	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Swap index
	guards on component stripping loops.

2025-08-11  Pan Li  <pan2.li@intel.com>

	* tree-ssa-math-opts.cc (match_saturation_mul): Add new func
	to emit IFN_SAT_MUL if matched.
	(math_opts_dom_walker::after_dom_children): Try to match
	the phi node for SAT_MUL.

2025-08-11  Pan Li  <pan2.li@intel.com>

	* match.pd: Add form 2 for unsigned SAT_MUL.

2025-08-11  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Remove.
	(riscv_rtx_costs): Refactor to serach vec_duplicate on the
	sub rtx.

2025-08-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR target/121464
	* config/arm/arm.md (arm_<mrrc>, arm_<mcrr>): Fix operand check.

2025-08-11  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/121306
	* simplify-rtx.cc (simplify_context::simplify_subreg): Distribute
	non-narrowing integer-to-integer subregs through logic ops,
	in a similar way to the existing word_mode handling.

2025-08-11  Jakub Jelinek  <jakub@redhat.com>

	* tree-cfg.cc (find_case_label_for_value): Fix comment typo,
	singe-valued -> single-valued.
	* config/arc/arc.md: Fix comment typos, unsinged -> unsigned.

2025-08-10  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.h (FRAME_GROWS_DOWNWARD) Allow the frame to
	grow downwards for mips16 when -mgrow-frame-downwards is set.
	* config/mips/mips.opt: Add -mgrow-frame-downwards option.

2025-08-10  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/121438
	PR middle-end/121444
	* output.h (MAX_ALIGN_MERGABLE): Rename to ...
	(MAX_MERGEABLE_BITSIZE): This.
	* tree-switch-conversion.cc (switch_conversion::build_one_array): Don't
	increase the alignment.
	* varasm.cc (mergeable_string_section): Use MAX_MERGEABLE_BITSIZE
	instead of MAX_ALIGN_MERGABLE. Also replace `/ 8` with `/ BITS_PER_UNIT`.
	(mergeable_constant_section): Select the mergeable section based on
	the bitsize rather than the alignment. Make sure the align is less
	than the entity size.

2025-08-10  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/121394
	* varasm.cc (assemble_variable_contents): Pad out
	mergeable sections if needed.
	(output_constant_pool_1): Change the padding to be explicit
	zeroing for mergeable sections.

2025-08-10  H.J. Lu  <hjl.tools@gmail.com>

	* configure: Regenerated.

2025-08-09  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.cc (darwin_encode_section_info): Do not
	make anchored symbols linker-visible.
	(darwin_use_anchors_for_symbol_p): Disallow anchoring on
	symbols that must be linker-visible (or external), even
	if the definitions are in this TU.

2025-08-09  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): New
	entry for LANCHOR.

2025-08-09  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.cc (context::dump): Bulletproof against
	m_reference_printer being null.
	* diagnostics/dumping.cc (emit_field<const char *>): Replace
	with...
	(emit_string_field): ...this.
	(emit_field<char *>): Eliminate.
	(emit_field<bool>): Replace with...
	(emit_bool_field): ...this.
	(emit_field<size_t>): Replace with...
	(emit_size_t_field): ...this, and use HOST_SIZE_T_PRINT_DEC rather
	than %zi in fprintf call.
	(emit_field<int>): Replace with...
	(emit_int_field): ...this.
	(emit_field<unsigned>): Replace with...
	(emit_unsigned_field): ...this.
	* diagnostics/dumping.h (emit_field): Replace this template decl
	with...
	(emit_string_field): ...this,
	(emit_bool_field): ...this,
	(emit_size_t_field): ...this,
	(emit_int_field): ...this,
	(emit_unsigned_field): ... and this.
	(DIAGNOSTICS_DUMPING_EMIT_FIELD): Rename to...
	(DIAGNOSTICS_DUMPING_EMIT_BOOL_FIELD): ...this and update for
	above change.
	* diagnostics/file-cache.cc (file_cache_slot::dump): Replace
	emit_field calls with calls that explicitly state the type.  Fix
	type of dump of m_missing_trailing_newline to use bool.
	(file_cache_slot::dump): Use HOST_SIZE_T_PRINT_DEC rather than
	%zi in fprintf call.
	* diagnostics/html-sink.cc (html_generation_options::dump): Update
	for macro renaming.
	* diagnostics/sarif-sink.cc
	(sarif_serialization_format_json::dump): Likewise.
	(sarif_generation_options::dump): Likewise, and for function
	renaming.
	* diagnostics/text-sink.cc (text_sink::dump): Update for macro
	renaming.
	* libgdiagnostics.cc (diagnostic_manager_debug_dump_file): Use
	HOST_SIZE_T_PRINT_DEC rather than %zi in fprintf call.
	* pretty-print.cc: Include "diagnostics/dumping.h".
	(pp_formatted_chunks::dump): Use it.
	(get_url_format_as_string): New.
	(pretty_printer::dump): Use diagnostics::dumping.  Bulletproof
	against m_buffer being null.

2025-08-09  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/constraints.md (T):
	Change define_memory_constraint to define_special_memory_constraint.

2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120599
	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Don't try to copy
	from statements that throw.

2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118946
	PR tree-optimization/121422
	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Remove.
	(optimize_aggr_zeroprop_1): New function.
	(optimize_aggr_zeroprop): New function.
	(simplify_builtin_call): Don't call optimize_memcpy_to_memset
	for memcpy but call optimize_aggr_zeroprop for memset.
	(pass_forwprop::execute): Don't call optimize_memcpy_to_memset
	for aggregate copies but rather call optimize_aggr_zeroprop
	for aggregate stores.

2025-08-08  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_agr_copyprop): Change into a
	forward looking (looking at vdef's uses) instead of a back
	looking (vuse's def).

2025-08-08  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/116253
	* common.opt (fdiagnostics-show-nesting): New option.
	(fdiagnostics-show-nesting-locations): New option.
	(fdiagnostics-show-nesting-levels): New option.
	* common.opt.urls: Regenerate.
	* diagnostics/context.cc (context::set_show_nesting): New.
	(context::set_show_nesting_locations): New.
	(context::set_show_nesting_levels): New.
	* diagnostics/context.h (context::set_show_nesting): New decl.
	(context::set_show_nesting_locations): New decl.
	(context::set_show_nesting_levels): New decl.
	* diagnostics/html-sink.cc: Tweak comment.
	* diagnostics/output-spec.cc (text_scheme_handler::make_sink):
	Rename "experimental-nesting" to "show-nesting" and enable by
	default.  Rename "experimental-nesting-show-locations" to
	"show-nesting-locations".  Rename
	"experimental-nesting-show-levels" to "show-nesting-levels".
	* diagnostics/sink.h (sink::dyn_cast_text_sink): New.
	* diagnostics/text-sink.h (text_sink::dyn_cast_text_sink): New.
	* doc/invoke.texi: Add -fdiagnostics-show-nesting,
	-fdiagnostics-show-nesting-locations, and
	-fdiagnostics-show-nesting-levels.  Update for changes to
	output-spec.cc above.
	* lto-wrapper.cc (merge_and_complain): Ignore
	OPT_fdiagnostics_show_nesting,
	OPT_fdiagnostics_show_nesting_locations, and
	OPT_fdiagnostics_show_nesting_levels.
	(append_compiler_options): Likewise.
	(append_diag_options): Likewise.
	* opts-common.cc (decode_cmdline_options_to_array): Add
	"-fno-diagnostics-show-nesting" to -fdiagnostics-plain-output.
	* opts.cc (common_handle_option): Handle the new options.
	(gen_command_line_string): Ignore the new options.
	* toplev.cc (general_init): Call set_show_nesting,
	set_show_nesting_locations, and set_show_nesting_levels on
	global_dc.

2025-08-08  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostics/dumping.o.
	* diagnostics/buffering.cc: Include "diagnostics/dumping.h".
	(buffer::dump): Reimplement using diagnostics::dumping.
	* diagnostics/context.cc: Include "diagnostics/dumping.h".
	(context::dump): Reimplement using diagnostics::dumping.
	Use sink::dump_kind when listing the sinks.
	(sink::dump): Reimplement using diagnostics::dumping.
	(counters::dump): Likewise.
	* diagnostics/dumping.cc: New file.
	* diagnostics/dumping.h: New file.
	* diagnostics/file-cache.cc: Include "diagnostics/dumping.h".
	(file_cache::dump): Reimplement using diagnostics::dumping.
	(file_cache_slot::dump): Likewise.
	* diagnostics/html-sink.cc: Include "diagnostics/dumping.h".
	(html_generation_options::dump): New.
	(html_sink_buffer::dump): Reimplement using diagnostics::dumping.
	(html_builder::dump): New.
	(html_sink::dump): Reimplement using diagnostics::dumping.
	Add dump of the html_builder.
	(html_file_sink::dump): Replace with...
	(html_file_sink::dump_kind): ...this.
	(html_buffered_sink::dump_kind): New.
	* diagnostics/html-sink.h (html_generation_options::dump): New
	decl.
	* diagnostics/sarif-sink.cc: Include "diagnostics/dumping.h".
	(sarif_serialization_format_json::dump): New.
	(sarif_builder::dump): New.
	(sarif_sink_buffer::dump): Reimplement using diagnostics::dumping.
	(sarif_sink::dump): Likewise.  Add dump of the sarif_builder.
	(sarif_stream_sink::dump_kind): New.
	(sarif_file_sink::dump): Replace with...
	(sarif_file_sink::dump_kind): ...this.
	(get_dump_string_for_sarif_version): New.
	(sarif_generation_options::dump): New.
	(class buffered_sink): Rename to...
	(class sarif_buffered_sink): ...this.
	(sarif_buffered_sink::dump_kind): New.
	* diagnostics/sarif-sink.h (sarif_serialization_format::dump):
	New.
	(sarif_serialization_format_json::dump): New decl.
	(sarif_generation_options::dump): New decl.
	* diagnostics/sink.h (sink::dump_kind): New.
	* diagnostics/text-sink.cc: Include "diagnostics/dumping.h".
	(text_sink_buffer::dump): Reimplement using diagnostics::dumping.
	(text_sink::dump): Likewise.  Emit fields m_show_nesting,
	m_show_locations_in_nesting, and m_show_nesting_levels.
	* diagnostics/text-sink.h (text_sink::dump_kind): New.

2025-08-08  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostics::get_cwe_url): Move decl to
	diagnostics/metadata.h.
	(diagnostics::maybe_line_and_column): Move into
	diagnostics::text_sink.
	* diagnostics/context.cc: Update for maybe_line_and_column
	becoming a static member of text_sink.
	* diagnostics/metadata.h (diagnostics::get_cwe_url): Move decl
	here from diagnostic.h.
	* diagnostics/text-sink.cc (maybe_line_and_column): Convert to...
	(text_sink::maybe_line_and_column): ...this.
	* diagnostics/text-sink.h (text_sink::maybe_line_and_column): Move
	here from diagnostic.h.

2025-08-08  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.cc (context::get_any_inlining_info): Convert
	"context" arg of m_set_locations_cb from ptr to const &.
	(context::report_diagnostic): Convert "context" arg of
	m_adjust_diagnostic_info from ptr to const &.
	* diagnostics/context.h (context::set_locations_callback_t):
	Likewise.
	(context::set_adjust_diagnostic_info_callback): Likewise.
	(context::m_adjust_diagnostic_info): Likewise.
	* tree-diagnostic.cc (set_inlining_locations): Likewise.

2025-08-08  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/column-options.h: New file, adding struct
	diagnostics::column_options, taken from fields in
	diagnostics::context and diagnostics::column_policy.
	* diagnostics/context.cc (context::initialize): Update for moving
	fields of diagnostics::context into diagnostics::column_options.
	(column_policy::column_policy): Likewise.
	(column_policy::converted_column): Move implementation to...
	(column_options::convert_column): ...this new function.
	(context::report_diagnostic): Update for moving fields of
	diagnostics::context into diagnostics::column_options.
	(assert_location_text): Likewise.
	* diagnostics/context.h: Include "diagnostics/column-options.h".
	(class column_policy): Replace fields m_column_unit,
	m_column_origin, and m_tabstop with m_column_options.
	(context::get_column_options): New accessors.
	(context::m_column_unit): Move to struct column_options and
	replace with m_column_options.
	(context::m_column_origin): Likewise.
	(context::m_tabstop): Likewise.
	* diagnostics/sarif-sink.cc (sarif_builder::sarif_builder): Update
	for moving fields of diagnostics::context into
	diagnostics::column_options.
	* diagnostics/source-printing.cc: Likewise.
	* opts.cc (common_handle_option): Likewise.

2025-08-08  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/120977
	* config/arm/arm.md (call): Move unspec parameter to parallel.
	(nonsecure_call_internal): Likewise.
	(call_value): Likewise.
	(nonsecure_call_value_internal): Likewise.
	* config/arm/thumb1.md (nonsecure_call_reg_thumb1_v5): Likewise.
	(nonsecure_call_value_reg_thumb1_v5): Likewise.
	* config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt):
	Likewise.
	(nonsecure_call_reg_thumb2): Likewise.
	(nonsecure_call_value_reg_thumb2_fpcxt): Likewise.
	(nonsecure_call_value_reg_thumb2): Likewise.
	* config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
	Likewise.

2025-08-08  Pengfei Li  <Pengfei.Li2@arm.com>

	PR target/121449
	* config/aarch64/aarch64-sve.md
	(mask_gather_load<mode><v_int_container>): Use vg<Vesize>
	constraints for alternatives with immediate offset.
	(mask_scatter_store<mode><v_int_container>): Likewise.

2025-08-08  Richard Biener  <rguenther@suse.de>

	* doc/tm.texi.in: Add Vectorization and OpenMP and OpenACC
	sub-sections to the list of target macros and functions.
	* doc/tm.texi: Re-generate.

2025-08-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_determine_vectype_for_stmt_1): Remove.
	(vect_determine_vectype_for_stmt): Likewise.
	(vect_set_stmts_vectype): Likewise.
	(vect_analyze_loop_2): Do not call vect_set_stmts_vectype.
	* tree-vect-stmts.cc (vect_mark_stmts_to_be_vectorized): Detect
	irregular stmts early here.

2025-08-08  Alex Coplan  <alex.coplan@arm.com>

	PR target/120986
	* config/aarch64/aarch64-sve-builtins.cc
	(function_expander::expand): Relax fpm_t assert to allow
	modeless const_ints.

2025-08-08  Alex Coplan  <alex.coplan@arm.com>

	PR target/120986
	* config/aarch64/aarch64-sve2.md (@aarch64_sve_dot<mode>):
	Switch mode iterator from SVE_FULL_HSF to new iterator;
	remove insn predicate as this is now taken care of by conditions
	in the mode iterator.
	(@aarch64_sve_dot_lane<mode>): Likewise.
	* config/aarch64/iterators.md (SVE_FULL_HSF_FP8_FDOT): New.

2025-08-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121454
	* tree-ssa-sccvn.cc (visit_nary_op): Avoid unexpected
	BIT_FIELD_REFs.

2025-08-08  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121389
	* tree-tailcall.cc (find_tail_calls): For finally_tmp.N
	handle not just GIMPLE_CONDs with EQ_EXPR/NE_EXPR and only
	values 0 and 1, but arbitrary non-negative values, arbitrary
	comparisons in conditions and also GIMPLE_SWITCH next to
	GIMPLE_CONDs.

2025-08-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Get
	the SLP node rather than the stmt_info.
	(vectorizable_lane_reducing): Adjust, pass SLP node to costing.
	(vect_transform_reduction): Adjust.

2025-08-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_model_promotion_demotion_cost): Pass
	in SLP node and drop unused dr argument.  Use SLP node for
	costing, drop costing of constant/external operands.
	(vectorizable_conversion): Adjust.

2025-08-08  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_store): Apply SLP_TREE_VECTYPE
	to slp_node rather than stmt_info.

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

	PR target/121414
	* config/aarch64/aarch64.cc (aarch64_is_variant_pcs): New function,
	split out from...
	(aarch64_asm_output_variant_pcs): ...here.  Handle various types
	of SME function type.

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

	PR rtl-optimization/120718
	* simplify-rtx.cc (simplify_context::simplify_gen_subreg):
	Remove MODE_COMPOSITE_P condition.

2025-08-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121405
	* tree-ssa-sccvn.cc (visit_nary_op): Handle BIT_FIELD_REF
	with reference def by looking up a combination of both.

2025-08-07  Pengfei Li  <Pengfei.Li2@arm.com>

	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
	Allow DR target alignment to be a poly_int.
	(vect_enhance_data_refs_alignment): Support peeling and
	versioning for VLA modes.
	* tree-vect-loop-manip.cc (get_misalign_in_elems): Remove
	power-of-two rounding in peeling.
	(vect_create_cond_for_align_checks): Update alignment check
	logic for poly_int mask.
	(vect_create_cond_for_vla_spec_read): New runtime checks.
	(vect_loop_versioning): Support new runtime checks.
	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Add a new
	loop_vinfo field.
	(vectorizable_induction): Fix wrong IV offset issue.
	* tree-vect-stmts.cc (get_load_store_type): Refactor
	vectorizable checks for speculative loads.
	* tree-vectorizer.h (LOOP_VINFO_MAX_SPEC_READ_AMOUNT): New
	macro for new runtime checks.
	(LOOP_REQUIRES_VERSIONING_FOR_SPEC_READ): Likewise
	(LOOP_REQUIRES_VERSIONING): Update macro for new runtime checks.

2025-08-07  Jakub Jelinek  <jakub@redhat.com>

	PR preprocessor/120778
	* doc/invoke.texi (Wkeyword-macro): Document.

2025-08-07  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.cc (print_operand): Allow arbitrary wide_int
	constants for _BitInt.
	(s390_bitint_type_info): Implement target hook
	TARGET_C_BITINT_TYPE_INFO.

2025-08-06  Uros Bizjak  <ubizjak@gmail.com>

	PR target/96226
	* config/i386/predicates.md (and_operator): New operator.
	* config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask):
	Use and_operator to match AND RTX and use its mode
	in the split pattern.

2025-08-06  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Prerequisites): Replace bzip2 by xz.

2025-08-06  Yangyu Chen  <cyy@cyyself.name>

	* config/i386/i386.h (PTA_BDVER1):
	Add missing PTA_POPCNT and PTA_LZCNT with PTA_ABM.
	(PTA_ZNVER1): Ditto.
	(PTA_BTVER1): Ditto.
	(PTA_LUJIAZUI): Ditto.
	(PTA_YONGFENG): Do not include extra PTA_LZCNT.

2025-08-06  Sam James  <sam@gentoo.org>

	PR libstdc++/29286
	* Makefile.in (ALIASING_FLAGS): Drop.
	* configure: Regenerate.
	* configure.ac: Drop -fno-strict-aliasing workaround for < GCC 4.3.

2025-08-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
	Prune dead code.

2025-08-06  Patrick Palka  <ppalka@redhat.com>

	PR c++/121231
	PR c++/119688
	PR c++/94511
	* common.opt: Document additional ABI version 21 change.
	* doc/invoke.texi: Likewise.

2025-08-06  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_slp_tree::gs_scale): New.
	(_slp_tree::gs_base): Likewise.
	(SLP_TREE_GS_SCALE): Likewise.
	(SLP_TREE_GS_BASE): Likewise.
	(vect_describe_gather_scatter_call): Declare.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
	new members.
	(vect_build_slp_tree_2): Record gather/scatter base and scale.
	(vect_get_and_check_slp_defs): For gather/scatter IFNs
	describe the call to first_gs_info.
	* tree-vect-data-refs.cc (vect_gather_scatter_fn_p): Add
	mode of operation with fixed offset vector type.
	(vect_describe_gather_scatter_call): Export.
	* tree-vect-stmts.cc (get_load_store_type): Do not call
	vect_check_gather_scatter to fill gs_info, instead populate
	from the SLP tree.  Check which of, IFN, decl or fallback
	is supported and record that decision.

2025-08-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_store): Build proper
	alias + align pointer value for gather/scatter and SLP
	and use it.
	(vectorizable_load): Likewise.

2025-08-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Remove redundant gather/scatter target support check, instead
	check the recorded ifns.  Also allow legacy gather/scatter
	with loop masking.

2025-08-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121413
	* gimple-lower-bitint.cc (gimple_lower_bitint): Fix up last
	commit, cast limb_prec to unsigned before comparison.

2025-08-06  Yang Yujie  <yangyujie@loongson.cn>

	* match.pd: Preserve conversion to _BitInt before a VCE
	if the _BitInt is extended.

2025-08-06  Yang Yujie  <yangyujie@loongson.cn>

	* gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
	Zero-extend the partial limb of any unsigned _BitInt LHS assigned
	with a widening sign-extension.

2025-08-06  Yang Yujie  <yangyujie@loongson.cn>

	* gimple-lower-bitint.cc (bitint_large_huge::limb_access):
	Add a parameter abi_load_p.  If set, load a limb directly
	in its actual precision without casting from m_limb_type.
	(struct bitint_large_huge): Same.
	(bitint_large_huge::handle_load): Use.

2025-08-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121413
	* gimple-lower-bitint.cc (abi_limb_prec): New variable
	(bitint_precision_kind): Initialize it.
	(gimple_lower_bitint): Clear it at the start.  For
	min_prec > limb_prec descreased precision vars for
	INTEGER_CST PHI arguments ensure min_prec is either
	prec or multiple of abi_limb_prec.

2025-08-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121127
	* gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr): For
	uninitialized SSA_NAME, set *prec_stored to 0 rather than *prec.
	Handle that case in narrowing casts.  If prec_stored is non-NULL,
	set *prec_stored to prec_stored_val.

2025-08-06  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/121386
	* Makefile.in (gengtype-lex.cc): Append #define FLEX_SCANNER,
	#include "system.h" and #undef FLEX_SCANNER to the prepended lines.
	* gengtype-lex.l: Remove inclusion of config.h or bconfig.h, system.h
	and definition of malloc/realloc from %{} section.

2025-08-06  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/arch-canonicalize: Read extension data from
	riscv-ext*.def and adding unittest.

2025-08-06  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_expand_arch):
	Ignore `unset`.
	* config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Handle
	`-march=unset`.
	(ARCH_UNSET_CLEANUP_SPECS): New.
	(DRIVER_SELF_SPECS): Handle -march=unset.
	* doc/invoke.texi (RISC-V Options): Update documentation for
	`-march=unset`.

2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>

	* gimplify.cc (remove_unused_omp_iterator_vars): Display unused
	variable warning for 'to' and 'from' clauses.
	(gimplify_scan_omp_clauses): Add argument for iterator loop sequence.
	Gimplify the clause decl and size into the iterator loop if iterators
	are used.
	(gimplify_omp_workshare): Add argument for iterator loops sequence
	in call to gimplify_scan_omp_clauses.
	(gimplify_omp_target_update): Call remove_unused_omp_iterator_vars and
	build_omp_iterators_loops.  Add loop sequence as argument when calling
	gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses and building
	the Gimple statement.
	* tree-pretty-print.cc (dump_omp_clause): Call dump_omp_iterators
	for to/from clauses with iterators.
	* tree.cc (omp_clause_num_ops): Add extra operand for OMP_CLAUSE_FROM
	and OMP_CLAUSE_TO.
	* tree.h (OMP_CLAUSE_HAS_ITERATORS): Add check for OMP_CLAUSE_TO and
	OMP_CLAUSE_FROM.
	(OMP_CLAUSE_ITERATORS): Likewise.

2025-08-06  Kwok Cheung Yeung  <kcyeung@baylibre.com>
	    Andrew Stubbs  <ams@baylibre.com>

	* gimple-pretty-print.cc (dump_gimple_omp_target): Print expanded
	iterator loops.
	* gimple.cc (gimple_build_omp_target): Add argument for iterator
	loops sequence.  Initialize iterator loops field.
	* gimple.def (GIMPLE_OMP_TARGET): Set GSS symbol to GSS_OMP_TARGET.
	* gimple.h (gomp_target): Set GSS symbol to GSS_OMP_TARGET.  Add extra
	field for iterator loops.
	(gimple_build_omp_target): Add argument for iterator loops sequence.
	(gimple_omp_target_iterator_loops): New.
	(gimple_omp_target_iterator_loops_ptr): New.
	(gimple_omp_target_set_iterator_loops): New.
	* gimplify.cc (find_var_decl): New.
	(copy_omp_iterator): New.
	(remap_omp_iterator_var_1): New.
	(remap_omp_iterator_var): New.
	(remove_unused_omp_iterator_vars): New.
	(struct iterator_loop_info_t): New type.
	(iterator_loop_info_map_t): New type.
	(build_omp_iterators_loops): New.
	(enter_omp_iterator_loop_context_1): New.
	(enter_omp_iterator_loop_context): New.
	(enter_omp_iterator_loop_context): New.
	(exit_omp_iterator_loop_context): New.
	(gimplify_adjust_omp_clauses): Add argument for iterator loop
	sequence.  Gimplify the clause decl and size into the iterator
	loop if iterators are used.
	(gimplify_omp_workshare): Call remove_unused_omp_iterator_vars and
	build_omp_iterators_loops for OpenMP target expressions.  Add
	loop sequence as argument when calling gimplify_adjust_omp_clauses
	and building the Gimple statement.
	* gimplify.h (enter_omp_iterator_loop_context): New prototype.
	(exit_omp_iterator_loop_context): New prototype.
	* gsstruct.def (GSS_OMP_TARGET): New.
	* omp-low.cc (lower_omp_map_iterator_expr): New.
	(lower_omp_map_iterator_size): New.
	(finish_omp_map_iterators): New.
	(lower_omp_target): Add sorry if iterators used with deep mapping.
	Call lower_omp_map_iterator_expr before assigning to sender ref.
	Call lower_omp_map_iterator_size before setting the size.  Insert
	iterator loop sequence before the statements for the target clause.
	* tree-nested.cc (convert_nonlocal_reference_stmt): Walk the iterator
	loop sequence of OpenMP target statements.
	(convert_local_reference_stmt): Likewise.
	(convert_tramp_reference_stmt): Likewise.
	* tree-pretty-print.cc (dump_omp_iterators): Dump extra iterator
	information if present.
	(dump_omp_clause): Call dump_omp_iterators for iterators in map
	clauses.
	* tree.cc (omp_clause_num_ops): Add operand for OMP_CLAUSE_MAP.
	(walk_tree_1): Do not walk last operand of OMP_CLAUSE_MAP.
	* tree.h (OMP_CLAUSE_HAS_ITERATORS): New.
	(OMP_CLAUSE_ITERATORS): New.

2025-08-05  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121410
	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
	STORE_MAX_PIECES to get the widest vector mode in vector loop
	for memset.

2025-08-05  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_rtx_costs_1) [SIGN_EXTEND]: Adjust cost.
	* config/avr/avr.md (*sext.ashift<QIPSI:mode><HISI:mode>2): New
	insn and a cc split.

2025-08-05  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121306
	* config/i386/predicates.md (extract_operator): Replace with...
	(extract_high_operator): ...this new predicate.
	* config/i386/i386.md (*cmpqi_ext<mode>_1, *cmpqi_ext<mode>_2)
	(*cmpqi_ext<mode>_3, *cmpqi_ext<mode>_4, *movstrictqi_ext<mode>_1)
	(*extzv<mode>, *insvqi_2, *extendqi<SWI24:mode>_ext_1)
	(*addqi_ext<mode>_1_slp, *addqi_ext<mode>_1_slp, *addqi_ext<mode>_0)
	(*addqi_ext2<mode>_0, *addqi_ext<mode>_1, *<insn>qi_ext<mode>_2)
	(*subqi_ext<mode>_1_slp, *subqi_ext<mode>_2_slp, *subqi_ext<mode>_0)
	(*subqi_ext2<mode>_0, *subqi_ext<mode>_1, *testqi_ext<mode>_1)
	(*testqi_ext<mode>_2, *<code>qi_ext<mode>_1_slp)
	(*<code>qi_ext<mode>_2_slp. *<code>qi_ext<mode>_0)
	(*<code>qi_ext2<mode>_0, *<code>qi_ext<mode>_1)
	(*<code>qi_ext<mode>_1_cc, *<code>qi_ext<mode>_1_cc)
	(*<code>qi_ext<mode>_2, *<code>qi_ext<mode>_3, *negqi_ext<mode>_1)
	(*one_cmplqi_ext<mode>_1, *ashlqi_ext<mode>_1, *<insn>qi_ext<mode>_1)
	(define_peephole2): Replace uses of extract_operator with
	extract_high_operator, matching only the first operand.
	Use zero_extract rather than match_op_dup when splitting.

2025-08-05  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_relevant::hybrid): Remove.
	* tree-vect-loop.cc (vect_analyze_loop_2): Do not call
	vect_detect_hybrid_slp.
	* tree-vect-slp.cc (maybe_push_to_hybrid_worklist): Remove.
	(vect_detect_hybrid_slp): Likewise.

2025-08-05  Georg-Johann Lay  <avr@gjlay.de>

	PR target/121359
	* config/avr/avr.h: Remove -mlra and remains of reload.
	* config/avr/avr.cc: Same.
	* config/avr/avr.md: Same.
	* config/avr/avr-log.cc: Same.
	* config/avr/avr-protos.h: Same.
	* config/avr/avr.opt: Same.
	* config/avr/avr.opt.urls: Same.

2025-08-05  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121306
	* config/i386/i386.md (*one_cmplqi_ext<mode>_1): Updated to
	support the new pattern.

2025-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121395
	* tree-vectorizer.h (_loop_vec_info::alternate_defs): New member.
	(LOOP_VINFO_ALTERNATE_DEFS): New.
	* tree-vect-stmts.cc (vect_stmt_relevant_p): Populate it.
	(vectorizable_simd_clone_call): Do not register a SLP def
	when there is none.
	* tree-vect-slp.cc (vect_build_slp_tree_1): Allow a NULL
	vectype when there's no LHS.  Allow all calls w/o LHS.
	(vect_analyze_slp): Process LOOP_VINFO_ALTERNATE_DEFS as
	SLP graph entries.
	(vect_make_slp_decision): Handle a NULL SLP_TREE_VECTYPE.
	(vect_slp_analyze_node_operations_1): Likewise.
	(vect_schedule_slp_node): Likewise.

2025-08-05  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (enum slp_vect_type): Rename loop_vect
	to not_vect, clarify docs.
	(HYBRID_SLP_STMT): Remove.
	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Adjust.
	* tree-vect-loop.cc (vect_analyze_loop_2): Likewise.

2025-08-05  Richard Biener  <rguenther@suse.de>

	* tree-vect-data-refs.cc (vect_get_data_access_cost): Use
	ncopies == 1.
	* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Remove
	hybrid/loop SLP skip.
	* tree-vect-stmts.cc (vectorizable_store): Remove pure SLP assert.

2025-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121382
	* tree-ssa-loop-ivopts.cc (create_new_iv): Rewrite the IV
	step to defined form.

2025-08-05  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121370
	* tree-scalar-evolution.cc (scev_dfs::add_to_evolution_1):
	Avoid UB integer overflow in accumulating CHREC_RIGHT.

2025-08-05  Yang Yujie  <yangyujie@loongson.cn>

	* expr.cc (expand_expr_real_1): Do not call
	reduce_to_bit_field_precision if the target assumes the _BitInt
	results to be already extended.
	(EXTEND_BITINT): Same.
	* expr.h (bitint_extended): Declare the cache variable.
	* function.cc (prepare_function_start): Initialize it.

2025-08-05  Yang Yujie  <yangyujie@loongson.cn>

	* explow.cc (promote_function_mode): Add a case for
	small/medium _BitInts.
	(promote_mode): Same.

2025-08-05  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Configuration): Mark up atexit as code.

2025-08-05  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv.cc (riscv_expand_xmode_usmul): Take
	umulhu for high bits mul result.

2025-08-04  Hans-Peter Nilsson  <hp@bitrange.com>

	* defaults.h (MAX_FIXED_MODE_SIZE): Default to 2 * BITS_PER_WORD
	for larger-than-32-bitters.
	* doc/tm.texi.in (MAX_FIXED_MODE_SIZE): Adjust accordingly.  Tweak
	wording.
	* doc/tm.texi: Regenerate.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* dump-context.h: Convert "enum optinfo_item_kind" into
	"enum class kind" within class optinfo_item.
	* dumpfile.cc: Likewise.  Use "auto" in a few places.
	Convert "enum optinfo_kind" to "enum class kind" within
	class optinfo.
	* opt-problem.cc: Likewise.
	* optinfo-emit-json.cc: Likewise.
	* optinfo.cc: Likewise.
	* optinfo.h: Likewise.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/116253
	* diagnostics/context.cc (context::set_nesting_level): New.
	* diagnostics/context.h (context::set_nesting_level): New decl.
	* doc/libgdiagnostics/topics/compatibility.rst
	(LIBGDIAGNOSTICS_ABI_5): New.
	* doc/libgdiagnostics/topics/physical-locations.rst
	(diagnostic_manager_set_debug_physical_locations): New.
	* libgdiagnostics++.h (manager::set_debug_physical_locations):
	New.
	* libgdiagnostics-private.h
	(private_diagnostic_set_nesting_level): New decl.
	* libgdiagnostics.cc (diagnostic_manager::diagnostic_manager):
	Initialize m_debug_physical_locations.
	(diagnostic_manager::new_location_from_file_and_line): Add debug
	printing.
	(diagnostic_manager::new_location_from_file_line_column):
	Likewise.
	(diagnostic_manager::new_location_from_range): Likewise.
	(diagnostic_manager::set_debug_physical_locations): New.
	(diagnostic_manager::ensure_linemap_for_file_and_line): Avoid
	redundant calls to linemap_add.
	(diagnostic_manager::new_location): Add debug printing.
	(diagnostic_manager::m_debug_physical_locations): New field.
	(diagnostic::diagnostic): Initialize m_nesting_level.
	(diagnostic::get_nesting_level): New accessor.
	(diagnostic::set_nesting_level): New.
	(diagnostic::m_nesting_level): New field.
	(diagnostic_manager::emit_va): Set and reset the nesting level
	of the context from that of the diagnostic.
	(diagnostic_manager_set_debug_physical_locations): New.
	(private_diagnostic_set_nesting_level): New.
	* libgdiagnostics.h
	(diagnostic_manager_set_debug_physical_locations): New decl.
	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_5): New.
	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Support
	the "nestingLevel" property.
	* libsarifreplay.h (replay_options::m_debug_physical_locations):
	New field.
	* sarif-replay.cc: Add -fdebug-physical-locations.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	PR diagnostics/116792
	* diagnostics/html-sink.cc
	(html_builder::make_element_for_diagnostic): Don't add the
	metadata element if it's empty.
	(html_builder::make_element_for_metadata): Return null rather than
	an empty element.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.h: Move struct counters to its own header
	and include it.
	* diagnostics/counters.h: New file, from the above.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.h: Split struct source_printing_options out
	into "diagnostics/source-printing-options.h" and include it.
	* diagnostics/source-printing-options.h: New file, from the above.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.cc: Update for renaming of option_manager to
	option_id_manager and of context::m_option_mgr to
	context::m_option_id_mgr.
	* diagnostics/context.h: Likewise, moving class declaration to a
	new diagnostics/option-id-manager.h.
	* diagnostics/lazy-paths.cc: Likewise.
	* diagnostics/option-id-manager.h: New file, from material in
	diagnostics/context.h.
	* lto-wrapper.cc: Update for renaming of option_manager to
	option_id_manager.
	* opts-common.cc: Likewise.
	* opts-diagnostic.h: Likewise.
	* opts.cc: Likewise.
	* toplev.cc: Likewise.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/buffering.h: Update comment to refer to output sinks
	rather than output formats.

2025-08-04  David Malcolm  <dmalcolm@redhat.com>

	* gimple-warn-recursion.cc (pass_warn_recursion::execute): Add
	missing auto_diagnostic_group.

2025-08-04  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	PR rtl-optimization/121303
	* avoid-store-forwarding.cc (is_store_forwarding): Add check
	for `off_val` in `is_store_forwarding`.

2025-08-04  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp): When analyzing a loop
	and slp instance discovery fails, immediately fail the whole
	process.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve-builtins.cc
	(function_expander::expand): Assert that the return value
	has an appropriate mode.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_convert_sve_data_to_pred): Remove the mode argument.
	* config/aarch64/aarch64.cc
	(aarch64_sve_emit_int_cmp): Allow PRED_MODE to be VNx16BI or
	the natural predicate mode for the data mode.
	(aarch64_convert_sve_data_to_pred): Remove the mode argument
	and instead always create a VNx16BI result.
	(aarch64_expand_sve_const_pred): Update call accordingly.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svdupq_impl::expand): Likewise, ensuring that the result
	has mode VNx16BI.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h
	(aarch64_emit_sve_pred_vec_duplicate): Declare.
	* config/aarch64/aarch64.cc
	(aarch64_emit_sve_pred_vec_duplicate): New function.
	* config/aarch64/aarch64-sve.md (vec_duplicate<PRED_ALL:mode>): Use it.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svdup_impl::expand): Handle boolean values specially.  Check for
	constants and fall back on aarch64_emit_sve_pred_vec_duplicate
	for the variable case, ensuring that the result has mode VNx16BI.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/iterators.md (PNEXT_ONLY): New int iterator.
	* config/aarch64/aarch64-sve.md
	(@aarch64_sve_<sve_pred_op><mode>): Restrict SVE_PITER pattern
	to VNx16BI_ONLY.
	(@aarch64_sve_<sve_pred_op><mode>): New PNEXT_ONLY pattern for
	PRED_HSD.
	(*aarch64_sve_<sve_pred_op><mode>): Likewise.
	(*aarch64_sve_<sve_pred_op><mode>_cc): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>):
	Split SVE2_MATCH pattern into a VNx16QI_ONLY define_ins and a
	VNx8HI_ONLY define_expand.  Use a VNx16BI destination for the latter.
	(*aarch64_pred_<sve_int_op><mode>): New SVE2_MATCH pattern for
	VNx8HI_ONLY.
	(*aarch64_pred_<sve_int_op><mode>_cc): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_fac<cmp_op><mode>):
	Replace with...
	(@aarch64_pred_fac<cmp_op><mode>_acle): ...this new expander.
	(*aarch64_pred_fac<cmp_op><mode>_strict_acle): New pattern.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svac_impl::expand): Update accordingly.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_fcm<cmp_op><mode>_acle)
	(*aarch64_pred_fcm<cmp_op><mode>_acle, @aarch64_pred_fcmuo<mode>_acle)
	(*aarch64_pred_fcmuo<mode>_acle): New patterns.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svcmp_impl::expand, svcmpuo_impl::expand): Use them.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide):
	Split into VNx16QI_ONLY and SVE_FULL_HSI patterns.  Use VNx16BI
	results for both.
	(*aarch64_pred_cmp<cmp_op><mode>_wide): New pattern.
	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md
	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Turn into a
	define_insn_and_rewrite and rewrite the governing predicate
	of the comparison so that it is identical to the PTEST's.
	(*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_wide)
	(*aarch64_pred_cmp<cmp_op><mode>_wide_cc): Use <VPRED> instead of
	VNx16BI for the governing predicate.
	(*aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>_acle)
	(*aarch64_pred_cmp<cmp_op><mode>_acle, *cmp<cmp_op><mode>_acle_cc)
	(*cmp<cmp_op><mode>_acle_and): New patterns that yield VNx16BI
	results for all element types.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svcmp_impl::expand): Use them.
	(svcmp_wide_impl::expand): Likewise when implementing an svcmp_wide
	against an in-range constant.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_sve_punpk<perm_hilo>_acle)
	(*aarch64_sve_punpk<perm_hilo>_acle): New patterns.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svunpk_impl::expand): Use them for boolean svunpk*.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121294
	* config/aarch64/aarch64.md (UNSPEC_REV_PRED): New unspec.
	* config/aarch64/aarch64-sve.md (@aarch64_sve_rev<mode>_acle)
	(*aarch64_sve_rev<mode>_acle): New patterns.
	* config/aarch64/aarch64-sve-builtins-base.cc
	(svrev_impl::expand): Use the new patterns for boolean svrev.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121294
	* config/aarch64/iterators.md (UNSPEC_TRN1_CONV): Delete.
	(UNSPEC_PERMUTE_PRED): New unspec.
	* config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>):
	Replace with...
	(@aarch64_sve_<perm_insn><mode>_acle)
	(*aarch64_sve_<perm_insn><mode>_acle): ...these new patterns.
	* config/aarch64/aarch64.cc (aarch64_expand_sve_const_pred_trn):
	Update accordingly.
	* config/aarch64/aarch64-sve-builtins-functions.h
	(binary_permute::expand): Use the new _acle patterns for
	predicate operations.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR testsuite/121118
	* config/aarch64/iterators.md (VNx16BI_ONLY): New mode iterator.
	* config/aarch64/predicates.md (aarch64_ptrue_all_operand): New
	predicate.
	* config/aarch64/aarch64-sve.md
	(@aarch64_sve_while_<while_optab_cmp><GPI:mode><VNx16BI_ONLY:mode>_acle)
	(@aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle)
	(*aarch64_sve_while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle)
	(*while_<while_optab_cmp><GPI:mode><PRED_HSD:mode>_acle_cc): New
	patterns.
	* config/aarch64/aarch64-sve-builtins-functions.h
	(while_comparison::expand): Use the new _acle patterns that
	always return a VNx16BI.
	* config/aarch64/aarch64-sve-builtins-sve2.cc
	(svwhilerw_svwhilewr_impl::expand): Likewise.
	* config/aarch64/aarch64.cc
	(aarch64_sve_move_pred_via_while): Likewise.

2025-08-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121293
	* config/aarch64/aarch64-sve-builtins-base.cc (svdupq_lane::expand):
	Use aarch64_sve_reinterpret instead of subregs.  Explicitly
	reinterpret the result back to the required mode, rather than
	leaving the caller to take a subreg.

2025-08-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121362
	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize
	aggregate copy handling.

2025-08-04  Filip Kastl  <fkastl@suse.cz>

	* doc/invoke.texi: Add remark about -options being documented
	under -fdump-tree.  Remove remark about -graph working only for
	RTL.

2025-08-04  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120941
	* config/i386/i386-features.cc (x86_cse_kind): Moved before
	ix86_place_single_vector_set.
	(redundant_load): Likewise.
	(ix86_place_single_vector_set): Replace the last argument to the
	pointer to redundant_load.  For X86_CSE_VEC_DUP, don't place the
	vector set outside of the loop to avoid extra spills.
	(remove_redundant_vector_load): Pass load to
	ix86_place_single_vector_set.

2025-08-03  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (define_insn_and_split) [reload_completed]:
	For splits that just append a (clobber (reg:CC REG_CC)) to
	the pattern, use avr_add_ccclobber (curr_insn) instead of
	repeating the original pattern.
	* config/avr/avr-dimode.md: Same.
	* config/avr/avr-fixed.md: Same.

2025-08-03  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_add_ccclobber): New function.
	* config/avr/avr-protos.h (avr_add_ccclobber): New proto.
	(DONE_ADD_CCC): New define.

2025-08-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90242
	* tree-ssa-sccvn.cc (vn_reference_compute_hash): Use
	poly_offset_int for offset accumulation.  For hashing
	truncate to 64 bits and also hash 64 bits.
	(vn_reference_eq): Likewise.

2025-08-02  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Specific) <windows>: Drop note on 16-bit
	Windows support. Streamline note on 32-bit support.

2025-08-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121350
	* tree-vect-stmts.cc (vectorizable_store): Pass down SLP
	node when costing scalar stores in vect_body.

2025-08-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121349
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Get full SLP mask, reduce to uniform scalar_mask for further
	processing if possible.
	(vect_check_scalar_mask): Remove scalar mask output, remove
	code conditional on slp_mask.
	(vectorizable_call): Adjust.
	(check_scan_store): Get and check SLP mask.
	(vectorizable_store): Eliminate scalar mask variable.
	(vectorizable_load): Likewise.

2025-08-01  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/install.texi (Prerequisites): mdocml.bsd.lv is now
	mandoc.bsd.lv.

2025-08-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_group_load_store_type): Remove,
	inline into ...
	(get_load_store_type): ... this.  Remove ncopies parameter.
	(vectorizable_load): Adjust.
	(vectorizable_store): Likewise.

2025-08-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_group_load_store_type): Remove
	checks performed at SLP build time.
	(vect_check_store_rhs): Remove scalar RHS output.
	(vectorizable_store): Remove uses of scalar RHS.

2025-08-01  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (VMAT_UNINITIALIZED): New
	vect_memory_access_type.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Use it.

2025-08-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121338
	* tree-ssa-loop-ivopts.cc (avg_loop_niter): Return an
	unsigned.
	(adjust_setup_cost): When niters is so large the division
	result is one or zero avoid it.
	(create_new_ivs): Adjust.

2025-08-01  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_simd_clone_data): New.
	(_slp_tree::simd_clone_info): Remove.
	(SLP_TREE_SIMD_CLONE_INFO): Likewise.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust.
	(_slp_tree::~_slp_tree): Likewise.
	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
	tyupe specific data to store SLP_TREE_SIMD_CLONE_INFO.

2025-08-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (_slp_tree::_slp_tree): Adjust.
	(_slp_tree::~_slp_tree): Likewise.
	* tree-vectorizer.h (vect_data): New base class.
	(_slp_tree::u): Remove.
	(_slp_tree::data): Add pointer to vect_data.
	(_slp_tree::get_data): New helper template.

2025-08-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121322
	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Return NULL if
	count is 0.

2025-07-31  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.opt.urls (-mfuse-move2): Add url.

2025-07-31  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_output_addr_vec) <labl>: Asm out its .type.

2025-07-31  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/121340
	* config/avr/avr.opt (-mfuse-move2): New option.
	* config/avr/avr-passes.def (avr_pass_2moves): Insert after combine.
	* config/avr/avr-passes.cc (make_avr_pass_2moves): New function.
	(pass_data avr_pass_data_2moves): New static variable.
	(avr_pass_2moves): New rtl_opt_pass.
	* config/avr/avr-protos.h (make_avr_pass_2moves): New proto.
	* common/config/avr/avr-common.cc
	(default_options avr_option_optimization_table) <-mfuse-move2>:
	Set for -O1 and higher.
	* doc/invoke.texi (AVR Options) <-mfuse-move2>: Document.

2025-07-31  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/120805
	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Skip setting
	bounds on epilogues.

2025-07-31  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* common/config/aarch64/cpuinfo.h: Remove unused features, add FEAT_CSSC
	and FEAT_MOPS.
	* config/aarch64/aarch64-option-extensions.def: Remove FMV support
	for RPRES, use PULL rather than AES, add FMV support for CSSC and MOPS.

2025-07-31  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/tuning_models/generic_armv9_a.h
	(generic_armv9_a_addrcost_table): Use zero cost for himode.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_group_load_store_type): Properly
	compare the scalar type of the gather/scatter offset to
	the offset vector component type.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (fold_stmt_inplace): Add valueization hook
	argument, defaulted to no_follow_ssa_edges.
	* gimple-fold.cc (fold_stmt_inplace): Adjust.

2025-07-31  Artemiy Granat  <a.granat@ispras.ru>

	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
	Fix typo.

2025-07-31  Artemiy Granat  <a.granat@ispras.ru>

	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
	Handle simultaneous use of regparm and thiscall attributes in
	case when regparm is set before thiscall.

2025-07-31  Artemiy Granat  <a.granat@ispras.ru>

	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
	Fix comments which state that combination of stdcall and fastcall
	attributes is valid but redundant.

2025-07-31  Artemiy Granat  <a.granat@ispras.ru>

	* config/i386/i386-options.cc (ix86_handle_cconv_attribute):
	Move 64-bit mode check before regparm handling.

2025-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121320
	* tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Convert
	op->off to poly_offset_int before multiplying by
	BITS_PER_UNIT.

2025-07-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121323
	* tree-ssa-alias.cc (ao_ref_init_from_ptr_and_range): Check
	the pointer offset fits in a HWI when represented in bits.

2025-07-31  Yury Khrustalev  <yury.khrustalev@arm.com>

	* config/aarch64/aarch64.cc (build_ifunc_arg_type):
	Add new fields _hwcap3 and _hwcap4.

2025-07-31  Kishan Parmar  <kishan@linux.ibm.com>

	PR target/118890
	* config/rs6000/rs6000.cc (can_be_rotated_to_negative_lis): Avoid left
	shift of negative value and guard shift count.
	(can_be_built_by_li_and_rldic): Likewise.
	(rs6000_emit_set_long_const): Likewise.
	* config/rs6000/rs6000.md (splitter for plus into two 16-bit parts): Fix
	UB from overflow in addition.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype):
	Check for node before dereferencing.
	(aarch64_vector_costs::add_stmt_cost): Likewise.

2025-07-31  Spencer Abson  <spencer.abson@arm.com>

	PR target/121028
	* config/aarch64/aarch64-sme.md (aarch64_smstart_sm): Use the .inst
	directive if !TARGET_SME.
	(aarch64_smstop_sm): Likewise.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info::memory_access_type): Remove.
	(STMT_VINFO_MEMORY_ACCESS_TYPE): Likewise.
	(vect_mem_access_type): Likewise.
	* tree-vect-stmts.cc (vectorizable_store): Do not set
	STMT_VINFO_MEMORY_ACCESS_TYPE.  Fix SLP_TREE_MEMORY_ACCESS_TYPE
	usage.
	* tree-vect-loop.cc (update_epilogue_loop_vinfo): Remove
	checking of memory access type.
	* config/riscv/riscv-vector-costs.cc (costs::compute_local_live_ranges):
	Use SLP_TREE_MEMORY_ACCESS_TYPE.
	(costs::need_additional_vector_vars_p): Likewise.
	(segment_loadstore_group_size): Get SLP node as argument,
	use SLP_TREE_MEMORY_ACCESS_TYPE.
	(costs::adjust_stmt_cost): Pass down SLP node.
	* config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use
	SLP_TREE_MEMORY_ACCESS_TYPE instead of vect_mem_access_type.
	(aarch64_detect_vector_stmt_subtype): Likewise.
	(aarch64_vector_costs::count_ops): Likewise.
	(aarch64_vector_costs::add_stmt_cost): Likewise.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_transform_loop): Do not verify DRs
	have not been modified for epilogue loops.
	(update_epilogue_loop_vinfo): Do not copy modified DRs to
	the originals.

2025-07-31  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121264
	* machmode.h (get_best_mode): Change type of first 2 arguments
	from int to HOST_WIDE_INT.
	* stor-layout.cc (get_best_mode): Likewise.

2025-07-31  Jakub Jelinek  <jakub@redhat.com>

	* gimple-ssa-store-merging.cc (find_bswap_or_nop): Fix comment typos,
	hanlde -> handle.
	* config/i386/i386.cc (ix86_gimple_fold_builtin, ix86_rtx_costs):
	Likewise.
	* config/i386/i386-features.cc (remove_partial_avx_dependency):
	Likewise.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (check_scan_store): Remove redundant
	slp_node check.  Disallow epilogue vectorization.

2025-07-31  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vector_costs::costing_for_scalar): New
	accessor.
	(add_stmt_cost): For scalar costing force vectype to NULL.
	Verify we do not pass in a SLP node.

2025-07-31  Kito Cheng  <kito.cheng@sifive.com>

	PR target/121312
	* config/riscv/arch-canonicalize: Add H extension to the
	canonical order.

2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/121308
	* simplify-rtx.cc (simplify_context::simplify_subreg): Handle
	subreg of `not` with word_mode to make it symmetric with the
	other bitwise operators.

2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/121236
	PR tree-optimization/121295
	* tree-if-conv.cc (factor_out_operators): Change the phi node
	to the new result and args.

2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>

	Revert:
	2025-07-28  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/121236
	* tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument,
	pass bb and res of the phi.
	(factor_out_operators): Add iterator for the phi. Remove the phi
	if this is the first time. Return if we had removed the phi.
	(predicate_scalar_phi): Add the phi iterator argument.
	Update call to is_cond_scalar_reduction.
	Update call to factor_out_operators and set the return value to true
	when factor_out_operators returns true.
	(predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi
	already removed it.

2025-07-30  Jan Hubicka  <jh@suse.cz>

	* auto-profile.cc (string_table::read): Check gcov_is_error.
	(read_profile): Likewise.
	* gcov-io.cc (gcov_is_error): Export for gcc linkage.
	* gcov-io.h (gcov_is_error): Declare.

2025-07-30  Richard Biener  <rguenther@suse.de>

	* config/i386/i386.cc (ix86_default_vector_cost): Split
	out from ...
	(ix86_builtin_vectorization_cost): ... this and use
	mode instead of vectype as argument.
	(ix86_vector_costs::add_stmt_cost): Call
	ix86_default_vector_cost instead of ix86_builtin_vectorization_cost.

2025-07-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/117015
	* config/s390/s390-protos.h (s390_expand_int_spaceship): New
	function.
	(s390_expand_fp_spaceship): New function.
	* config/s390/s390.cc (s390_expand_int_spaceship): New function.
	(s390_expand_fp_spaceship): New function.
	* config/s390/s390.md (spaceship<mode>4): New expander.

2025-07-30  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* cprop.cc (bypass_block): Extract single set.
	(bypass_conditional_jumps): Ditto.

2025-07-30  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120427
	* config/i386/i386.md (peephole2): Transform "movq $-1,reg" to
	"pushq $-1; popq reg" for -Oz if reg is a legacy integer register.

2025-07-30  Jan Hubicka  <jh@suse.cz>

	* auto-profile.cc (function_instance::match): Disable warning
	about bogus locations since dwarf does not represent enough
	info to output them correctly in all cases.
	(add_scale): Use nonzero_p instead of orig.force_nonzero () == orig.
	(afdo_adjust_guessed_profile): Add missing newline in dump
	file.

2025-07-30  Jan Hubicka  <jh@suse.cz>

	* symtab.cc (symbol_table::change_decl_assembler_name): Recompute DECL_RTL
	in case it is already computed.

2025-07-30  Jan Hubicka  <jh@suse.cz>

	* predict.cc (unlikely_executed_edge_p): Ignore EDGE_EH if profile
	is reliable.
	(unlikely_executed_stmt_p): special case builtin_trap/unreachable and
	ignore other heuristics for reliable profiles.
	(tree_estimate_probability): Disable unlikely bb detection when
	doing dry run

2025-07-30  Andrew Stubbs  <ams@baylibre.com>
	     Julian Brown   <julian@codesourcery.com>

	* doc/tm.texi.in (TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Add
	documentation hook.
	* doc/tm.texi: Regenerate.
	* target.def (prefer_gather_scatter): Add target hook under vectorizer.
	* hooks.cc (hook_bool_mode_int_unsigned_false): New function.
	* hooks.h (hook_bool_mode_int_unsigned_false): New prototype.
	* tree-vect-stmts.cc (vect_use_strided_gather_scatters_p): Add
	parameters group_size and single_element_p, and rework to use
	targetm.vectorize.prefer_gather_scatter.
	(get_group_load_store_type): Move some of the condition into
	vect_use_strided_gather_scatters_p.
	* config/gcn/gcn.cc (gcn_prefer_gather_scatter): New function.
	(TARGET_VECTORIZE_PREFER_GATHER_SCATTER): Define hook.

2025-07-30  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn.cc (gcn_option_override): Add note to set default for
	param_vect_partial_vector_usage to "1".
	* optc-save-gen.awk: Don't pass through options marked "NoOffload".
	* params.opt (-param=vect-epilogues-nomask): Add NoOffload.
	(-param=vect-partial-vector-usage): Likewise.
	(-param=vect-inner-loop-cost-factor): Likewise.

2025-07-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121130
	* tree-vect-stmts.cc (vectorizable_call): Bail out for
	.MASK_CALL.

2025-07-30  Pengfei Li  <Pengfei.Li2@arm.com>

	PR tree-optimization/121020
	* tree-vect-loop-manip.cc (vect_do_peeling): Update the
	condition of omitting the skip-vector check.
	* tree-vectorizer.h (LOOP_VINFO_USE_VERSIONING_WITHOUT_PEELING):
	Add a helper macro.

2025-07-30  Pengfei Li  <Pengfei.Li2@arm.com>

	PR tree-optimization/121190
	* tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
	Increase alignment requirement for speculative loads.

2025-07-30  Alfie Richards  <alfie.richards@arm.com>

	PR target/121300
	* config/aarch64/aarch64-sve-builtins-sme.def (svamin/svamax): Fix
	arch gating.

2025-07-30  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_group_load_store_type):
	Process STMT_VINFO_GATHER_SCATTER before reading
	memory_access_type.

2025-07-30  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (@cond_<optab><mode>): Extend
	to support partial FP modes.
	(*cond_<optab><mode>_2_strict): Extend from SVE_FULL_F to SVE_F,
	use aarch64_predicate_operand.
	(*cond_<optab><mode>_4_strict): Extend from SVE_FULL_F_B16B16 to
	SVE_F_B16B16, use aarch64_predicate_operand.
	(*cond_<optab><mode>_any_strict):  Likewise.

2025-07-30  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
	Extend from SVE_FULL_F to SVE_F.
	(*cond_<optab><mode>_4_relaxed): Extend from SVE_FULL_F_B16B16
	to SVE_F_B16B16.
	(*cond_<optab><mode>_any_relaxed): Likewise.

2025-07-30  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (<optab><mode>4): Extend from
	SVE_FULL_F_B16B16 to SVE_F_B16B16.  Use aarch64_sve_fp_pred instead
	of aarch64_ptrue_reg.
	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F_B16B16 to
	SVE_F_B16B16.  Use aarch64_predicate_operand.

2025-07-30  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386-modes.def: Remove VECTOR_MODES(FLOAT, 256)
	and VECTOR_MODE (INT, SI, 64).
	* config/i386/i386.cc (ix86_hard_regno_nregs): Remove related
	code for V64SF/V64SImode.

2025-07-30  liuhongt  <hongtao.liu@intel.com>

	PR target/121274
	* config/i386/sse.md (*vec_concatv2di_0): Add a splitter
	before it.

2025-07-30  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/121302
	* simplify-rtx.cc (simplify_context::simplify_subreg): Use
	byte instead of 0 when calling simplify_subreg.

2025-07-29  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_sve_emit_masked_fp_pred):
	Declare.
	* config/aarch64/aarch64-sve.md (and<mode>3):  Change this to...
	(@and<mode>3): ...this, so that we can use gen_and3.
	(@cond_<optab><mode>): Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16,
	use aarch64_predicate_operand.
	(*cond_<optab><mode>_2_strict): Likewise.
	(*cond_<optab><mode>_3_strict): Likewise.
	(*cond_<optab><mode>_any_strict): Likwise.
	(*cond_<optab><mode>_2_const_strict): Extend from SVE_FULL_F to SVE_F,
	use aarch64_predicate_operand.
	(*cond_<optab><mode>_any_const_strict): Likewise.
	(*cond_sub<mode>_3_const_strict): Likwise.
	(*cond_sub<mode>_const_strict): Likewise.
	(*vcond_mask_<mode><vpred>): Use aarch64_predicate_operand, and update
	the comment here.
	* config/aarch64/aarch64.cc (aarch64_sve_emit_masked_fp_pred): New
	function.  Helper to mask the predicate in conditional expanders.

2025-07-29  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* Makefile.in: Add riscv-mcpu.texi and riscv-mtune.texi to the list
	of files to be processed by the Texinfo generator.
	* config/riscv/t-riscv: Add rule for generating riscv-mcpu.texi
	and riscv-mtune.texi.
	* doc/invoke.texi: Replace hand‑written extension table with
	`@include riscv-mcpu.texi` and `@include riscv-mtune.texi` to
	pull in auto‑generated entries.
	* config/riscv/gen-riscv-mcpu-texi.cc: New file.
	* config/riscv/gen-riscv-mtune-texi.cc: New file.
	* doc/riscv-mcpu.texi: New file.
	* doc/riscv-mtune.texi: New file.

2025-07-29  Richard Sandiford  <richard.sandiford@arm.com>

	* simplify-rtx.cc (simplify_context::simplify_subreg): Distribute
	lowpart subregs through AND/IOR/XOR, if doing so eliminates one
	of the terms.
	(test_scalar_int_ext_ops): Add some tests of the above for integers.
	* config/aarch64/aarch64.cc (aarch64_test_sve_folding): Likewise
	add tests for predicate modes.

2025-07-29  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve-builtins.cc
	(function_expander::get_reg_target): Check whether the target
	is a valid register_operand.

2025-07-29  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	PR rtl-optimization/120660
	* avoid-store-forwarding.cc (process_store_forwarding):
	Fix instruction generation when haveing multiple stores with
	base offset.

2025-07-29  Christoph Müllner  <christoph.muellner@vrull.eu>

	* common/config/riscv/riscv-common.cc (riscv_ext_is_subset):
	Remove use of structured binding to fix compiler warning.

2025-07-29  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	PR rtl-optimization/119795
	* avoid-store-forwarding.cc
	(store_forwarding_analyzer::avoid_store_forwarding): Skip
	transformations for stores that operate on the same address
	range as deleted ones.

2025-07-29  Pan Li  <pan2.li@intel.com>

	* match.pd: Add mul based unsigned SAT_MUL.

2025-07-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120687
	* tree-ssa-reassoc.cc (reassociate_bb): Do not disturb
	the sorted operand order in the early pass.
	* tree-vect-slp.cc (vect_analyze_slp): Dump when a detected
	reduction chain fails SLP discovery.

2025-07-29  Alfie Richards  <alfie.richards@arm.com>

	PR middle-end/121261
	* vec.h: Add null ptr check.

2025-07-29  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/121159
	* calls.cc (can_implement_as_sibling_call_p): Don't reject declared
	noreturn functions in musttail calls.

2025-07-29  Andrew Pinski  <quic_apinski@quicinc.com>

	* output.h (MAX_ALIGN_MERGABLE): New define.
	* tree-switch-conversion.cc (switch_conversion::build_one_array):
	Use MAX_ALIGN_MERGABLE instead of 256.
	* varasm.cc (mergeable_string_section): Likewise
	(mergeable_constant_section): Likewise

2025-07-29  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120523
	* output.h (mergeable_constant_section): New declaration taking
	unsigned HOST_WIDE_INT for the size.
	* tree-switch-conversion.cc (switch_conversion::build_one_array):
	Increase the alignment of CSWTCH for sizes less than 32bytes.
	* varasm.cc (mergeable_constant_section): Split out twice.
	One that takes the size in unsigned HOST_WIDE_INT and the
	other size in a tree.
	(default_elf_select_section): Pass DECL_SIZE instead of
	DECL_MODE to mergeable_constant_section.

2025-07-29  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_load): Un-factor VMAT
	specific code to their handling blocks.

2025-07-29  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (gather_scatter_info::offset_dt): Remove.
	* tree-vect-data-refs.cc (vect_describe_gather_scatter_call):
	Do not set it.
	(vect_check_gather_scatter): Likewise.
	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
	Likewise.
	(get_group_load_store_type): Use the vector type of the offset
	SLP child.  Do not re-check vect_is_simple_use validated by
	SLP build.

2025-07-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/121277
	* config/avr/avr.cc (avr_addr_space_convert): When converting
	from generic AS to __flashx, don't set bit 23.
	(avr_convert_to_type): Don't -Waddr-space-convert when NULL
	is converted to __flashx or to __flash.

2025-07-28  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/121236
	* tree-if-conv.cc (is_cond_scalar_reduction): Instead of phi argument,
	pass bb and res of the phi.
	(factor_out_operators): Add iterator for the phi. Remove the phi
	if this is the first time. Return if we had removed the phi.
	(predicate_scalar_phi): Add the phi iterator argument.
	Update call to is_cond_scalar_reduction.
	Update call to factor_out_operators and set the return value to true
	when factor_out_operators returns true.
	(predicate_all_scalar_phis): Don't remove the phi if predicate_scalar_phi
	already removed it.

2025-07-28  H.J. Lu  <hjl.tools@gmail.com>

	PR target/121208
	* config/i386/i386.cc (ix86_tls_get_addr): Issue an error for
	-mtls-dialect=gnu with no_caller_saved_registers attribute and
	suggest -mtls-dialect=gnu2.

2025-07-28  Mikael Pettersson  <mikpelinux@gmail.com>

	PR other/121260
	* diagnostics/changes.cc: Correct nesting of namespaces
	and #if CHECKING_P blocks.
	* diagnostics/context.cc: Likewise.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostics/output-spec.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.

2025-07-28  Tobias Burnus  <tburnus@baylibre.com>

	* config/nvptx/nvptx.opt (march-map=): Add sm_100{,f,a},
	sm_101{,f,a}, sm_103{,a,f}, sm_120{,a,f} and sm_121{,f,a}.

2025-07-28  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn.md (atomic_load, atomic_store, atomic_exchange):
	Fix CDNA3 L2 cache write-back before atomic instructions.

2025-07-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Make *gs_info const.
	(vect_build_one_gather_load_call): Likewise.
	(vect_build_one_scatter_store_call): Likewise.
	(vect_get_gather_scatter_ops): Likewise.
	(vect_get_strided_load_store_ops): Likewise.

2025-07-28  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn.md  (define_attr "vcmp"): Add with values
	vcmp/vcmpx/no.
	(*movbi, cstoredi4.., cstore<mode>4): Set it.
	* config/gcn/gcn-valu.md (vec_cmp<mode>...): Likewise.
	* config/gcn/gcn.cc (gcn_cmpx_insn_p): Remove.
	(gcn_md_reorg): Add two new conditions for MI300.

2025-07-28  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-opts.h (enum hsaco_attr_type): Add comment
	about 'sc0'.
	* config/gcn/gcn.cc (gcn_md_reorg): Use gen_nops instead of gen_nop.
	(print_operand_address): Document 'R' and 'V' in the
	pre-function comment as well.
	* config/gcn/gcn.md (nops): Add.

2025-07-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121256
	* tree-vect-loop.cc (vectorizable_recurr): Build a correct
	initialization vector for SLP_TREE_LANES > 1.

2025-07-28  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_slp_tree::type): Add.
	(_slp_tree::u): Likewise.
	(_stmt_vec_info::type): Remove.
	(STMT_VINFO_TYPE): Likewise.
	(SLP_TREE_TYPE): New.
	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not
	initialize type.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize type.
	(vect_slp_analyze_node_operations): Adjust.
	(vect_schedule_slp_node): Likewise.
	* tree-vect-patterns.cc (vect_init_pattern_stmt): Do not
	copy STMT_VINFO_TYPE.
	* tree-vect-loop.cc: Set SLP_TREE_TYPE instead of
	STMT_VINFO_TYPE everywhere.
	(vect_create_loop_vinfo): Do not set STMT_VINFO_TYPE on
	loop conditions.
	* tree-vect-stmts.cc: Set SLP_TREE_TYPE instead of
	STMT_VINFO_TYPE everywhere.
	(vect_analyze_stmt): Adjust.
	(vect_transform_stmt): Likewise.
	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops):
	Access SLP_TREE_TYPE instead of STMT_VINFO_TYPE.
	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
	Remove non-SLP element-wise load/store matching.
	* config/rs6000/rs6000.cc
	(rs6000_cost_data::update_target_cost_per_stmt): Pass in
	the SLP node.  Use that to get at the memory access
	kind and type.
	(rs6000_cost_data::add_stmt_cost): Pass down SLP node.
	* config/riscv/riscv-vector-costs.cc (variable_vectorized_p):
	Use SLP_TREE_TYPE.
	(costs::need_additional_vector_vars_p): Likewise.
	(costs::update_local_live_ranges): Likewise.

2025-07-28  Jennifer Schmitz  <jschmitz@nvidia.com>
	    Dhruv Chawla  <dhruvc@nvidia.com>

	* config/aarch64/aarch64-cores.def (olympus): Use olympus tuning
	model.
	* config/aarch64/aarch64.cc: Include olympus.h.
	* config/aarch64/tuning_models/olympus.h: New file.

2025-07-28  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch.h
	(CASE_VECTOR_SHORTEN_MODE): Delete.

2025-07-28  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
	Re-rewrite to more accurately capture insns that could be L32R machine
	instructions wherever possible, and add comments that help understand
	the intent of the process.

2025-07-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vxrm_vec_vec_dup):
	Add new case UNSPEC_VAADD.
	(expand_vx_binary_vxrm_vec_dup_vec): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new case UNSPEC_VAADD to
	iterator.

2025-07-27  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR middle-end/120855
	* cgraphunit.cc (symbol_table::compile): Assert a transparent
	alias is not an internal identifier.
	* symtab.cc (symbol_table::change_decl_assembler_name):
	Likewise.
	* varasm.cc (assemble_name_resolve): Check for
	IDENTIFIER_TRANSPARENT_ALIAS instead of just TREE_CHAIN.

2025-07-26  Thomas Schwinge  <tschwinge@baylibre.com>

	* diagnostics/context.cc (context::diagnostic_impl)
	(context::diagnostic_n_impl): In presence of formal parameter
	'kind', explicitly state 'diagnostics::' scope for 'kind' enum.

2025-07-26  Thomas Schwinge  <tschwinge@baylibre.com>

	* diagnostics/option-classifier.cc
	(update_effective_level_from_pragmas): In presence of local
	variable 'kind', explicitly state 'diagnostics::' scope for 'kind'
	enum.

2025-07-26  Christoph Müllner  <christoph.muellner@vrull.eu>

	* config/riscv/riscv-ext.def: Add allocated group IDs and
	group bit positions.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/context.cc: Eliminate digraphs::lazy_digraph in
	favor of lazily_created template.
	* diagnostics/context.h: Likewise.
	* diagnostics/digraphs.cc: Likewise, also digraphs::lazy_digraphs.
	* diagnostics/digraphs.h: Likewise.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostics/metadata.h: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/sink.h: Likewise.
	* diagnostics/text-sink.h: Likewise.
	* lazily-created.h: New file.
	* libgdiagnostics.cc: Eliminate digraphs::lazy_digraph in
	favor of lazily_created template.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h: Use TextOrHtml rather than Sink for template
	params.
	* diagnostics/context.h: Likewise.
	* diagnostics/selftest-context.cc: Use "html_or_text" rather than
	"sink".
	* diagnostics/source-printing.cc: Use TextOrHtml rather than Sink
	for template params.  Use "text_out" and "html_out" rather than
	"sink".

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostic_set_caret_max_width): Drop forward
	decl.
	(diagnostic_same_line): Make
	diagnostics::context::m_source_printing private.
	* diagnostics/context.cc (diagnostic_set_caret_max_width): Convert
	to...
	(diagnostics::context::set_caret_max_width): ...this.
	* diagnostics/context.h
	(diagnostics::context::get_source_printing_options): New
	accessors.
	(diagnostics::context::m_source_printing): Make private.
	* diagnostics/html-sink.cc: Make
	diagnostics::context::m_source_printing private.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/selftest-context.cc: Likewise.
	* diagnostics/selftest-context.h
	(diagnostics::selftest::test_context::colorize_source): New.
	(diagnostics::selftest::test_context::show_labels): New.
	(diagnostics::selftest::test_context::show_line_numbers): New.
	(diagnostics::selftest::test_context::show_ruler): New.
	(diagnostics::selftest::test_context::show_event_links): New.
	(diagnostics::selftest::test_context::set_caret_char): New.
	* diagnostics/source-printing.cc: Make
	diagnostics::context::m_source_printing private.
	* diagnostics/text-sink.h: Likewise.
	* libgdiagnostics.cc: Likewise.
	* opts.cc: Likewise.
	* toplev.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h: Eliminate "diagnostic_info" typedef.
	* diagnostics/context.cc: Update usage of "diagnostic_info" to
	explicitly refer to "diagnostics::diagnostic_info".
	* langhooks.cc: Likewise.
	* libgdiagnostics.cc: Likewise.
	* rtl-error.cc: Likewise.
	* substring-locations.cc: Likewise.
	* toplev.cc: Likewise.
	* tree-diagnostic.cc: Likewise.
	* tree-diagnostic.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (enum diagnostics_column_unit): Move to
	diagnostics/context-options.h.
	(enum diagnostics_escape_format): Likewise.
	(enum diagnostics_output_format): Likewise.
	(enum diagnostic_path_format): Likewise.
	(enum diagnostics_extra_output_kind): Likewise.
	(enum diagnostic_text_art_charset): Likewise.
	* diagnostics/context-options.h: New file, based on the above
	material.
	* diagnostics/context.h: Include it.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostics/file-cache.o.
	* diagnostics/changes.cc: Update for file_cache and char_span
	moving from input.h to diagnostics/file-cache.h and into the
	"diagnostics::" namespace.
	* diagnostics/context.cc: Likewise.
	* diagnostics/diagnostics-selftests.cc: Likewise.
	* diagnostics/diagnostics-selftests.h: Likewise.
	* diagnostics/file-cache.cc: New file, based on the file_cache
	and file_cache_slot material in input.cc.
	* diagnostics/file-cache.h: Likewise for input.h.
	* diagnostics/selftest-source-printing.h: Update for file_cache
	and char_span moving from input.h to diagnostics/file-cache.h and
	into the "diagnostics::" namespace.
	* diagnostics/source-printing.cc: Likewise.
	* final.cc: Likewise.
	* gcc-rich-location.cc: Likewise.
	* input.cc (default_charset_callback): Move to
	diagnostics/file-cache.cc.
	(file_cache::initialize_input_context): Likewise.
	(class file_cache_slot): Likewise.
	(file_cache::tune): Likewise.
	(file_cache::lookup_file): Likewise.
	(file_cache::forcibly_evict_file): Likewise.
	(file_cache::missing_trailing_newline_p): Likewise.
	(file_cache::add_buffered_content): Likewise.
	(file_cache::evicted_cache_tab_entry): Likewise.
	(file_cache::add_file): Likewise.
	(file_cache::file_cache): Likewise.
	(file_cache::dump): Likewise.
	(file_cache::dump): Likewise.
	(file_cache::lookup_or_add_file): Likewise.
	(find_end_of_line): Likewise.
	(file_cache::get_source_line): Likewise.
	(check_line): Likewise.
	(test_replacement): Likewise.
	(test_reading_source_line): Likewise.
	(test_reading_source_buffer): Likewise.
	* input.h (class char_span): Move to diagnostics/file-cache.h and
	into the "diagnostics::" namespace.
	(class file_cache_slot): Likewise.
	(class file_cache): Likewise.
	* libgdiagnostics.cc: Update for file_cache and char_span moving
	from input.h to diagnostics/file-cache.h and into the
	"diagnostics::" namespace.
	* selftest.cc: Likewise.
	* selftest.h: Likewise.
	* substring-locations.h: Likewise.
	* toplev.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostics/selftest-paths.cc: Don't include "demangle.h"
	and "backtrace.h".
	* diagnostics/source-printing.cc: Likewise.
	* diagnostics/state-graphs.cc: Don't include "graphviz.h",
	"xml.h", "xml-printer.h", or "intl.h".

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h: Move include of "unique-argv.h"
	and various forward decls into...
	* diagnostics/context.h: ...here.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (num_digits): Move to...
	(diagnostics::num_digits): ...here.
	(get_cwe_url): Move to...
	(diagnostics::get_cwe_url): ...here.
	(maybe_line_and_column): Move to...
	(diagnostics::maybe_line_and_column): ...here.
	* diagnostic.cc: Move to...
	* diagnostics/context.cc: ...here.
	* diagnostics/diagnostics-selftests.cc
	(run_diagnostics_selftests): Add comment about context_cc_tests.
	* diagnostics/diagnostics-selftests.h: Add context_cc_tests decl.
	* diagnostics/sarif-sink.cc: Update for file rename.
	* diagnostics/source-printing.cc: Update for num_digits moving to
	diagnostics::num_digits.
	* errors.cc: Update for file rename.
	* input.cc: Update for num_digits moving to
	diagnostics::num_digits.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace diagnostic.o with
	diagnostics/context.o.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in: Replace diagnostic.def with diagnostics/kinds.def.
	* config/aarch64/aarch64.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* config/i386/i386-options.cc: Likewise.
	* config/s390/s390.cc: Likewise.
	* diagnostic-core.h: Replace typedef diagnostic_t with
	enum class diagnostics::kind in diagnostics/kinds.h and include
	it.
	* diagnostic-global-context.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostics/buffering.cc: Likewise.
	* diagnostics/buffering.h: Likewise.
	* diagnostics/context.h: Likewise.
	* diagnostics/diagnostic-info.h: Likewise.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostic.def: Move to...
	* diagnostics/kinds.def: ...here and update for diagnostic_t
	becoming enum class diagnostics::kind.
	* diagnostics/kinds.h: New file, based on material in
	diagnostic-core.h.
	* diagnostics/lazy-paths.cc: Update for diagnostic_t becoming
	enum class diagnostics::kind.
	* diagnostics/option-classifier.cc: Likewise.
	* diagnostics/option-classifier.h: Likewise.
	* diagnostics/output-spec.h: Likewise.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/selftest-context.cc: Likewise.
	* diagnostics/selftest-context.h: Likewise.
	* diagnostics/sink.h: Likewise.
	* diagnostics/source-printing.cc: Likewise.
	* diagnostics/text-sink.cc: Likewise.
	* diagnostics/text-sink.h: Likewise.
	* gcc.cc: Likewise.
	* libgdiagnostics.cc: Likewise.
	* lto-wrapper.cc: Likewise.
	* opts-common.cc: Likewise.
	* opts-diagnostic.h: Likewise.
	* opts.cc: Likewise.
	* rtl-error.cc: Likewise.
	* substring-locations.cc: Likewise.
	* toplev.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-core.h: Include "diagnostics/option-id.h".
	(struct diagnostic_option_id): Move there, renaming to
	diagnostics::option_id.
	* diagnostic-global-context.cc: Update for renaming of
	diagnostic_option_id to diagnostics::option_id.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostics/context.h: Likewise.
	* diagnostics/diagnostic-info.h: Likewise.
	* diagnostics/lazy-paths.cc: Likewise.
	* diagnostics/option-classifier.cc: Likewise.
	* diagnostics/option-classifier.h: Likewise.
	* diagnostics/option-id.h: New file, taken from material in
	diagnostic-core.h.
	* diagnostics/selftest-context.cc: Update for renaming of
	diagnostic_option_id to diagnostics::option_id.
	* diagnostics/selftest-context.h: Likewise.
	* ipa-pure-const.cc: Likewise.
	* lto-wrapper.cc: Likewise.
	* opts-common.cc: Likewise.
	* opts-diagnostic.h: Likewise.
	* opts.cc: Likewise.
	* substring-locations.cc: Likewise.
	* substring-locations.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace diagnostic-spec.o with
	gcc-diagnostic-spec.o.
	(GTFILES): Replace diagnostic-spec.h with gcc-diagnostic-spec.h.
	* diagnostic-spec.cc: Move to...
	* gcc-diagnostic-spec.cc: ...here.
	* diagnostic-spec.h: Move to...
	* gcc-diagnostic-spec.h: ...here.
	* gengtype.cc (open_base_files): Replace diagnostic-spec.h with
	gcc-diagnostic-spec.h.
	* warning-control.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace diagnostics/changes.o with
	diagnostics/edit-context.o.
	* diagnostic.cc: Update for move of diagnostics/edit-context.h to
	diagnostics/changes.h.
	(diagnostics::context::initialize): Update for renaming of
	m_edit_context_ptr to m_fixits_change_set.
	(diagnostics::context::finish): Likewise.
	(diagnostics::context::create_edit_context): Rename to...
	(diagnostics::context::initialize_fixits_change_set): ...this and
	update for other renamings.
	(diagnostics::context::report_diagnostic): Update for renaming of
	m_edit_context_ptr to m_fixits_change_set.
	* diagnostic.h (diagnostics::edit_context): Drop forward decl
	* diagnostics/edit-context.cc: Move to...
	* diagnostics/changes.cc: ...here.  Update for move of
	diagnostics/edit-context.h to diagnostics/changes.h.
	Rename diagnostics::edit_context to
	diagnostics::changes::change_set.  Rename diagnostics::edited_file
	to diagnostics::changes::changed_file.  Rename
	diagnostics::edited_line to diagnostics::changes::changed_line.
	* diagnostics/edit-context.h: Move to...
	* diagnostics/changes.h: ...here, renaming as above.
	* diagnostics/context.h (diagnostics::changes::change_set): New
	forward decl.
	(diagnostics::context::create_edit_context): Rename to...
	(diagnostics::context::initialize_fixits_change_set): ...this.
	(diagnostics::context::get_edit_context): Rename to...
	(diagnostics::context::get_fixits_change_set): ...this.
	(diagnostics::context::m_edit_context_ptr): Rename to...
	(diagnostics::context::m_fixits_change_set): ..this and update
	type.
	* diagnostics/diagnostics-selftests.cc: Update for renaming.
	* diagnostics/diagnostics-selftests.h: Likewise.
	* diagnostics/html-sink.cc: Update for above changes.
	* libgdiagnostics.cc: Likewise.
	* toplev.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Move diagnostics/lazy-paths.o to...
	(OBJS-libcommon): ...here.  Add
	diagnostics/diagnostics-selftests.o.
	* diagnostic.cc: Update for move of
	selftest::test_diagnostic_context to
	diagnostics::selftest::test_context.
	* diagnostics/color.cc: Move selftests from selftest:: to
	diagnostics::selftest::.
	* diagnostics/diagnostics-selftests.cc: New file.
	* diagnostics/diagnostics-selftests.h: New file.
	* diagnostics/digraphs.cc: Move selftests from selftest:: to
	diagnostics::selftest::.
	* diagnostics/edit-context.cc: Likewise.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostics/lazy-paths.cc: Likewise.  Eliminate use of "tree"
	by porting selftests from simple-diagnostic-path.h to
	diagnostics/selftest-paths.h.
	* diagnostics/output-spec.cc: Move selftests from selftest:: to
	diagnostics::selftest::.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/selftest-context.cc: Move
	selftest::test_diagnostic_context to
	diagnostics::selftest::test_context.
	* diagnostics/selftest-context.h: Likewise.
	* diagnostics/selftest-logical-locations.cc: Move selftests from
	selftest:: to diagnostics::logical_locations::selftest::.
	* diagnostics/selftest-logical-locations.h: Move
	selftest::logical_location_manager to
	diagnostics::logical_locations::selftest::logical_location_manager.
	* diagnostics/selftest-paths.cc: Move
	selftest::test_diagnostic_path to
	diagnostics::paths::selftest::test_path.  Move
	selftest::test_diagnostic_event to
	diagnostics::paths::selftest::test_event.
	* diagnostics/selftest-paths.h: Likewise, and move
	selftest::test_diagnostic_thread to
	diagnostics::paths::selftest::test_thread.
	* diagnostics/selftest-source-printing.h: Move
	selftest::diagnostic_show_locus_fixture to
	diagnostics::selftest::source_printing_fixture.
	* diagnostics/source-printing.cc: Move selftests from selftest::
	to diagnostics::selftest:: and update for renames.
	* diagnostics/state-graphs.cc: Likewise.
	* selftest-run-tests.cc: Include
	"diagnostics/diagnostics-selftests.h".
	(selftest::run_tests): Replace invocation of the various diagnostics
	selftests with a call to
	diagnostics::selftest::run_diagnostics_selftests.
	* selftest.h: Move decls of the various per-file diagnostics
	invocation functions to diagnostics/diagnostics-selftests.h,
	renaming due to diagostics prefix being implied by namespace.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* common.opt: Update for move of diagnostic-url.h to
	diagnostics/url.h.
	* diagnostic.cc: Likewise.
	* diagnostics/color.cc: Likewise.
	* diagnostics/text-sink.cc: Likewise.
	* diagnostic-url.h: Move to...
	* diagnostics/url.h: ...here.
	* libgdiagnostics.cc: Update for move of diagnostic-url.h to
	diagnostics/url.h.
	* pretty-print.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace diagnostic-color.o with
	diagnostics/color.o.
	(PLUGIN_HEADERS): Remove diagnostic-color.h in favor of glob.
	* common.opt: Update for move of diagnostic-color.h to
	diagnostics/color.h.
	* diagnostic.cc: Likewise.
	* diagnostic-color.cc: Move to...
	* diagnostics/color.cc: ...here.
	* diagnostic-color.h: Move to...
	* diagnostics/color.h: ...here.
	* diagnostics/edit-context.cc: Update for move of
	diagnostic-color.h to diagnostics/color.h.
	* diagnostics/output-spec.cc: Likewise.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/source-printing.cc: Likewise.
	* diagnostics/text-sink.cc: Likewise.
	* libgdiagnostics.cc: Likewise.
	* opts.cc: Likewise.
	* pretty-print-markup.h: Likewise.
	* pretty-print.cc: Likewise.
	* selftest-run-tests.cc: Likewise.
	* selftest.h: Likewise.
	* text-art/style.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace selftest-diagnostic.o with
	diagnostics/selftest-context.o.
	* diagnostic.cc: Update for move of selftest-diagnostic.h to
	diagnostics/selftest-context.h.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostics/lazy-paths.cc: Likewise.
	* diagnostics/output-spec.cc: Likewise.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* selftest-diagnostic.cc: Move to...
	* diagnostics/selftest-context.cc: ...here and update for move of
	header file.
	* selftest-diagnostic.h: Move to...
	* diagnostics/selftest-context.h: ...here.
	* diagnostics/source-printing.cc: Update for move of
	selftest-diagnostic.h to diagnostics/selftest-context.h.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostics/buffering.o.
	* diagnostic.cc (diagnostics::context::set_diagnostic_buffer): Move to
	diagnostics/buffering.cc.
	(diagnostics::context::clear_diagnostic_buffer): Likewise.
	(diagnostics::context::flush_diagnostic_buffer): Likewise.
	(diagnostics::buffer::buffer): Likewise.
	(diagnostics::buffer::~buffer): Likewise.
	(diagnostics::buffer::dump): Likewise.
	(diagnostics::buffer::empty_p): Likewise.
	(diagnostics::buffer::move_to): Likewise.
	(diagnostics::buffer::ensure_per_sink_buffers): Likewise.
	* diagnostics/buffering.cc: New file, from material in diagnostic.cc.
	* diagnostics/buffering.h: Fix comment.
	* diagnostics/text-sink.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add
	diagnostics/option-classifier.o.
	* diagnostic.cc (diagnostics::option_classifier::init): Move to
	diagnostics/option-classifier.cc.
	(diagnostics::option_classifier::fini): Likewise.
	(diagnostics::option_classifier::pch_save): Likewise.
	(diagnostics::option_classifier::pch_restore): Likewise.
	(diagnostics::option_classifier::push): Likewise.
	(diagnostics::option_classifier::pop): Likewise.
	(diagnostics::option_classifier::classify_diagnostic): Likewise.
	(diagnostics::option_classifier::update_effective_level_from_pragmas):
	Likewise.
	* diagnostics/context.h: Include
	"diagnostics/option-classifier.h".
	(class option_classifier): Move to
	diagnostics/option-classifier.h.
	* diagnostics/option-classifier.cc: New file, based on material
	from diagnostic.cc.
	* diagnostics/option-classifier.h: New file, based on material
	from diagnostics/context.h.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* coretypes.h: Update for diagnostic_context becoming
	diagnostics::context.
	* diagnostic-global-context.cc: Likewise.
	* diagnostic.cc: Likewise.  Also for diagnostic_option_classifier
	becoming diagnostics::option_classifier.
	* diagnostic.h (diagnostic_text_starter_fn): Rename to...
	(diagnostics::text_starter_fn): ...this, and move to
	diagnostics/context.h.
	(get_printer): Rename to...
	(diagnostics::get_printer): ...this, and move to
	diagnostics/context.h.
	(class diagnostic_option_manager): Rename to...
	(class diagnostics::option_manager): ...this, and move to
	diagnostics/context.h.
	(class diagnostic_option_classifier): Rename to...
	(class diagnostics::option_classifier): ...this, and move to
	diagnostics/context.h.
	(struct diagnostic_source_printing_options): Rename to...
	(struct diagnostics::source_printing_options): ...this, and move
	to diagnostics/context.h.
	(class diagnostic_column_policy): Rename to...
	(class diagnostics::column_policy): ...this, and move to
	diagnostics/context.h.
	(class diagnostic_location_print_policy): Rename to...
	(class diagnostics::location_print_policy): ...this, and move to
	diagnostics/context.h.
	(class html_label_writer): Rename to...
	(class diagnostics::html_label_writer): ...this, and move to
	diagnostics/context.h.
	(class diagnostic_source_print_policy): Rename to...
	(class diagnostics::source_print_policy): ...this, and move to
	diagnostics/context.h.
	(struct diagnostic_counters): Rename to...
	(struct diagnostics::counters): ...this, and move to
	diagnostics/context.h.
	(class diagnostic_context): Rename to...
	(class diagnostics::context): ...this, and move to
	diagnostics/context.h.
	(diagnostic_text_starter): Rename to...
	(diagnostics::text_starter): ...this, and move to
	diagnostics/context.h.
	(diagnostic_start_span): Rename to...
	(diagnostics::start_span): ...this, and move to
	diagnostics/context.h.
	(diagnostic_text_finalizer): Rename to...
	(diagnostics::text_finalizer): ...this, and move to
	diagnostics/context.h.
	Include "diagnostics/context.h".
	* diagnostics/buffering.h: Update for diagnostic_context becoming
	diagnostics::context; similarly for diagnostic_counters.
	* diagnostics/client-data-hooks.h: Likewise.
	* diagnostics/context.h: New file, taken from material in
	diagnostic.h.
	* diagnostics/html-sink.cc: : Update for diagnostic_context
	becoming diagnostics::context.
	* diagnostics/html-sink.h: Likewise.
	* diagnostics/lazy-paths.cc: Likewise for
	diagnostic_option_manager.
	* diagnostics/output-file.h: Likewise for diagnostic_context.
	* diagnostics/output-spec.cc: Likewise.
	* diagnostics/output-spec.h: Likewise.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/sarif-sink.h: Likewise.
	* diagnostics/sink.h: Likewise.
	* diagnostics/source-printing.cc: Likewise.
	* diagnostics/text-sink.cc: Likewise.
	* diagnostics/text-sink.h: Likewise.
	* gcc-rich-location.h: Likewise.
	* gcc.cc: Likewise.
	* gdbinit.in: Likewise.
	* langhooks-def.h: Likewise.
	* langhooks.cc: Likewise.
	* langhooks.h: Likewise.
	* libgdiagnostics.cc: Likewise.
	* optc-gen.awk: Likewise.
	* opth-gen.awk: Likewise.
	* opts-common.cc: Likewise.
	* opts-diagnostic.cc: Likewise.
	* opts-diagnostic.h: Likewise.
	* opts-global.cc: Likewise.
	* opts.cc: Likewise.
	* opts.h: Likewise.
	* selftest-diagnostic.cc: Likewise.
	* selftest-diagnostic.h: Likewise.
	* toplev.cc: Likewise.
	* tree-diagnostic-client-data-hooks.cc: Likewise.
	* tree-diagnostic.cc: Likewise.
	* tree-diagnostic.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (struct diagnostic_info): Move to
	diagnostics/diagnostic-info.h as diagnostics::diagnostic_info.
	Add typedef bringing it back into root namespace, for now.
	* diagnostics/diagnostic-info.h: New file, based on the above.
	* langhooks-def.h: Update for diagnostic_info moving into
	namespace diagnostics.
	* langhooks.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.cc: Update to add "m_" prefix to fields of
	diagnostic_info throughout.
	* diagnostic.h: Likewise.
	* diagnostics/html-sink.cc: Likewise.
	* diagnostics/sarif-sink.cc: Likewise.
	* diagnostics/text-sink.cc: Likewise.
	* libgdiagnostics.cc: Likewise.
	* substring-locations.cc: Likewise.
	* tree-diagnostic.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Replace diagnostic-macro-unwinding.o with
	diagnostics/macro-unwinding.o.
	* diagnostic-macro-unwinding.cc: Move to...
	* diagnostics/macro-unwinding.cc: ...here, moving content into
	namespace diagnostics.
	* diagnostic-macro-unwinding.h: Move to...
	* diagnostics/macro-unwinding.h: ...here, moving content into
	namespace diagnostics.
	* diagnostics/paths-output.cc: Update for move of
	"diagnostic-macro-unwinding.h" to "diagnostics/macro-unwinding.h".

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Replace diagnostic-show-locus.o with
	diagnostics/source-printing.o.
	* diagnostic.h (class diagnostic_source_effect_info): Replace
	with...
	(class diagnotics::source_effect_info): ...this.
	* diagnostics/paths-output.cc: Likewise.  Update for move of
	"diagnostic-label-effects.h" to
	"diagnostics/source-printing-effects.h".
	* diagnostics/sarif-sink.cc: Update for move of
	"selftest-diagnostic-show-locus.h" to
	"diagnostics/selftest-source-printing.h".
	* selftest-diagnostic-show-locus.h: Move to...
	* diagnostics/selftest-source-printing.h: ...here.
	* diagnostic-label-effects.h: Move to...
	* diagnostics/source-printing-effects.h: ...here, updating
	for above changes.
	* diagnostic-show-locus.cc: Move to...
	* diagnostics/source-printing.cc: ...here.
	* gcc-rich-location.h: Likewise.
	* selftest-run-tests.cc: Likewise.
	* selftest.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Replace diagnostic-format-html.o with
	diagnostics/html-sink.o, diagnostic-format-sarif.o with
	diagnostics/sarif-sink.o, and diagnostic-format-text.o with
	diagnostics/text-sink.o.
	* coretypes.h (class diagnostic_text_output_format): Replace
	with...
	(class diagnostics::text_sink): ...this.
	* diagnostic-global-context.cc: Update for move of diagnostics
	output formats into namespace "diagnostics", as "sinks".
	* diagnostic-macro-unwinding.cc: Likewise.
	* diagnostic-macro-unwinding.h: Likewise.
	* diagnostic-show-locus.cc: Likewise.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostic-buffer.h: Rename to...
	* diagnostics/buffering.h: ...this, updating for above changes.
	* diagnostics/client-data-hooks.h: Likewise.
	* diagnostics/digraphs.cc: Likewise.
	* diagnostic-format-html.cc: Rename to...
	* diagnostics/html-sink.cc: ...this, updating for above changes.
	* diagnostic-format-html.h: Rename to...
	* diagnostics/html-sink.h: ...this, updating for above changes.
	* diagnostics/lazy-paths.cc: Likewise.
	* diagnostics/metadata.h: Likewise.
	* diagnostics/output-spec.cc: Likewise.
	* diagnostics/output-spec.h: Likewise.
	* diagnostics/paths-output.cc: Likewise.
	* diagnostics/paths.h: Likewise.
	* diagnostic-format-sarif.cc: Rename to...
	* diagnostics/sarif-sink.cc: ...this, updating for above changes.
	* diagnostic-format-sarif.h: Rename to...
	* diagnostics/sarif-sink.h: ...this, updating for above changes.
	* diagnostic-format.h: Rename to...
	* diagnostics/sink.h: ...this, updating for above changes.
	* diagnostics/state-graphs-to-dot.cc: Likewise.
	* diagnostic-format-text.cc: Rename to...
	* diagnostics/text-sink.cc: ...this, updating for above changes.
	* diagnostic-format-text.h: Rename to...
	* diagnostics/text-sink.h: ...this, updating for above changes.
	* gcc.cc: Likewise.
	* langhooks-def.h: Likewise.
	* langhooks.cc: Likewise.
	* langhooks.h: Likewise.
	* libgdiagnostics.cc: Likewise.
	* opts-diagnostic.cc: Likewise.
	* opts.cc: Likewise.
	* selftest-diagnostic.cc: Likewise.
	* selftest-run-tests.cc: Likewise.
	* selftest.h: Likewise.
	* tree-diagnostic-client-data-hooks.cc: Likewise.
	* tree-diagnostic.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS): Replace lazy-diagnostic-path.o with
	diagnostics/lazy-paths.o.
	(OBJS-libcommon): Replace diagnostic-path.o with
	diagnostics/paths.o, diagnostic-path-output.o with
	diagnostics/paths-output.o, and selftest-diagnostic-path.o with
	diagnostics/selftest-paths.o.
	(EXTRA_BACKEND_OBJS): Replace lazy-diagnostic-path.o with
	diagnostics/lazy-paths.o.
	* diagnostic-format-html.cc: Update #include for
	"diagnostic-path.h" moving to "diagnostics/paths.h",
	diagnostic_thread_id_t to diagnostics::paths::thread_id_t,
	diagnostic_event_id_t to diagnostics::paths::event_id_t,
	diagnostic_path to diagnostics::paths::path, and
	diagnostic_thread to diagnostics::paths::thread, and
	diagnostic_event to diagnostics::paths::event.
	* diagnostic-format-html.h: Likewise.
	* diagnostic-format-sarif.cc: Likewise.  Update PROPERTY_PREFIX
	for threadFlowLocations from "gcc/diagnostic_event/" to
	"gcc/diagnostics/paths/event/".
	* diagnostic-format-text.cc: Likewise.
	* diagnostic-format-text.h: Likewise.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostic-event-id.h: Move to...
	* diagnostics/event-id.h: ...here, updating header guard.
	(diagnostics:paths:event_id_t): New typedef.
	(diagnostic_thread_id_t): Replace with...
	(diagnostics:paths:thread_id_t): New typedef.
	* lazy-diagnostic-path.cc: Move to...
	* diagnostics/lazy-paths.cc: ...here.  Update for above changes,
	lazy_diagnostic_path becomes diagnostics::paths::lazy_path.
	(lazy_diagnostic_path_cc_tests): Rename to...
	(diagnostics_lazy_paths_cc_tests): ...this.
	* lazy-diagnostic-path.h: Move to...
	* diagnostics/lazy-paths.h: ...here, updating header guard.
	Update for above changes.
	* diagnostic-path-output.cc: Move to...
	* diagnostics/paths-output.cc: ...here.  Update for above changes.
	(diagnostic_path_output_cc_tests): Rename to...
	(diagnostics_paths_output_cc_tests): ...this.
	* diagnostic-path.cc: Move to...
	* diagnostics/paths.cc: ...here.  Update for above changes.
	* diagnostic-path.h: Move to...
	* diagnostics/paths.h: ...here, updating header guard.
	Update #include for moving "diagnostic-event-id.h" to
	"diagnostics/event-id.h".
	(class diagnostic_event): Convert to...
	(class diagnostics::paths::event): ...this.
	(class diagnostic_thread): Convert to...
	(class diagnostics::paths::thread): ...this.
	(class diagnostic_path): Convert to...
	(class diagnostics::paths::path): ...this.
	* diagnostic-show-locus.cc: Update for above changes.
	* doc/analyzer.texi: Likewise.
	* selftest-diagnostic-path.cc: Move to...
	* diagnostics/selftest-paths.cc: ...here.  Update for
	above changes, and for "selftest-diagnostic-path.h" moving to
	"diagnostics/selftest-paths.h".
	* selftest-diagnostic-path.h: Move to...
	* diagnostics/selftest-paths.h: ...here, updating header guard.
	Update for above changes.
	* libgdiagnostics.cc: Update for above changes.
	* libsarifreplay.cc: Update property prefix for
	threadFlowLocations from "gcc/diagnostic_event/" to
	"gcc/diagnostics/paths/event/".
	* pretty-print-format-impl.h: Update for above changes.
	* pretty-print.cc: Likewise.
	* selftest-run-tests.cc (selftest::run_tests): Update for
	renaming of lazy_diagnostic_path_cc_tests to
	diagnostics_lazy_paths_cc_tests, and of
	diagnostic_path_output_cc_tests to
	diagnostics_paths_output_cc_tests.
	* selftest.h (lazy_diagnostic_path_cc_tests): Replace decl with...
	(diagnostics_lazy_paths_cc_tests): ...this.
	(diagnostic_path_output_cc_tests): Replace decl with...
	(diagnostics_paths_output_cc_tests): ...this.
	* simple-diagnostic-path.cc: Clarify that this relates to "tree"
	and thus shouldn't be in "diagnostics".  Update for above changes.
	* simple-diagnostic-path.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace diagnostic-output-spec.o
	with diagnostics/output-spec.o.
	* diagnostic-output-spec.cc: Move to...
	* diagnostics/output-spec.cc: ...here.  Update #include for
	move of diagnostic-output-spec.h to diagnostics/output-spec.h.
	(namespace::diagnostics_output_spec): Replace with...
	(namespace diagnostics::output_spec): ...this, removing redundant
	prefixes.
	(diagnostics_output_spec::gcc_spec_context): Replace with...
	(diagnostics::output_spec::dc_spec_context): ...this.
	(diagnostic_output_spec_cc_tests): Rename to...
	(diagnostics_output_spec_cc_tests): ...this.
	* diagnostic-output-spec.h: Move to...
	* diagnostics/output-spec.h: ...here and update inclusion guard.
	(namespace::diagnostics_output_spec): Replace with...
	(namespace diagnostics::output_spec): ...this, removing redundant
	prefixes.
	(diagnostics_output_spec::gcc_spec_context): Replace with...
	(diagnostics::output_spec::dc_spec_context): ...this.
	* libgdiagnostics.cc: Update #include for move of
	diagnostic-output-spec.h to diagnostics/output-spec.h.
	* opts-diagnostic.cc: Likewise.  Update for namespace and name
	changes.
	* selftest-run-tests.cc (selftest::run_tests): Update for renaming
	of diagnostic_output_spec_cc_tests to
	diagnostics_output_spec_cc_tests.
	* selftest.h (diagnostic_output_spec_cc_tests): Rename decl to...
	(diagnostics_output_spec_cc_tests): ...this.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc: Update #include for move of
	diagnostic-output-file.h to diagnostics/output-file.h.  Update for
	move of diagnostic_output_file to diagnostics::output_file.
	* diagnostic-format-html.h: Likewise.
	* diagnostic-format-sarif.cc: Likewise.
	* diagnostic-format-sarif.h: Likewise.
	* diagnostic-output-spec.cc: Likewise.
	* diagnostic-output-spec.h (along): Likewise.
	* diagnostic-output-file.h: Move to...
	* diagnostics/output-file.h: ...here, updating header guard.
	(class diagnostic_output_file): Move to...
	(class diagnostics::output_file): ...here.
	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for
	move of diagnostic_output_file to diagnostics::output_file.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc: Update #include for move of
	diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h.
	* diagnostic-format-sarif.cc: Likewise.  Update for move of
	diagnostic_client_plugin_info to diagnostics::client_plugin_info.
	* diagnostic-format-text.cc: Likewise.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostic-client-data-hooks.h: Move to...
	* diagnostics/client-data-hooks.h: ...here, updating header guard.
	(class diagnostic_client_data_hooks): Move to...
	(class diagnostics::client_data_hooks): ...here.  Remove redundant
	"diagnostics::" prefixes.
	(class diagnostic_client_plugin_info): Move to...
	(class diagnostics::client_plugin_info): ...here.
	* libgdiagnostics.cc: : Update #include for move of
	diagnostic-client-data-hooks.h to diagnostics/client-data-hooks.h.
	Update for move of diagnostic_client_data_hooks to
	diagnostics::client_data_hooks, and for move of
	diagnostic_client_version_info to diagnostics::client_version_info.
	* tree-diagnostic-client-data-hooks.cc: Likewise.
	* tree-diagnostic.cc: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace edit-context.o with
	diagnostics/edit-context.o.
	* diagnostic-format-html.cc: Update #include for move
	of edit-context.h to diagnostics subdir.
	* diagnostic.cc: Likewise.  Update for move of edit_context to
	diagnostics::edit_context.
	* diagnostic.h: Likewise.
	* edit-context.cc: Move to...
	* diagnostics/edit-context.cc: ...here.  Update #include for move
	of edit-context.h to diagnostics subdir.  Move all code
	within namespace diagnostics.
	* edit-context.h: Move to...
	* diagnostics/edit-context.h: ...here, updating header guard.
	Move all code within namespace diagnostics.
	* libgdiagnostics.cc: Update #include for move of edit-context.h
	to diagnostics subdir.  Update for move of edit_context
	to diagnostics::edit_context.
	* toplev.cc: Update #include for move of edit-context.h
	to diagnostics subdir.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc: Update for move of diagnostic_diagram
	to diagnostics::diagram.
	* diagnostic-format-sarif.cc: Update #include for move of
	"diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move
	of diagnostic_diagram to diagnostics::diagram.
	* diagnostic-format-text.cc: Likewise.
	* diagnostic-format-text.h: Update for move of diagnostic_diagram
	to diagnostics::diagram.
	* diagnostic-format.h: Likewise.
	* diagnostic.cc: Update #include for move of
	"diagnostic-diagram.h" to "diagnostics/diagram.h". Update for move
	of diagnostic_diagram to diagnostics::diagram.
	* diagnostic.h: Update for move of diagnostic_diagram to
	diagnostics::diagram.
	* diagnostic-diagram.h: Move to...
	* diagnostics/diagram.h: ...here.
	(class diagnostic_diagram): Convert to...
	(class diagnostics::diagram): ...this.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-core.h: Update for move of diagnostic_metadata to
	diagnostics::metadata.
	* diagnostic-format-html.cc: Likewise; also, update #include for
	move of "diagnostic-metadata.h" to "diagnostics/metadata.h".
	* diagnostic-format-sarif.cc: Likewise.
	* diagnostic-format-text.cc: Likewise.
	* diagnostic-global-context.cc: Likewise.
	* diagnostic.cc: Likewise.
	* diagnostic.h: Likewise.
	* diagnostic-metadata.h: Move to...
	* diagnostics/metadata.h: ...here, updating header guard.
	(class diagnostic_metadata): Move to...
	(class diagnostics::metadata): ...here.  Drop redundant
	"diagnostics::" qualifiers.
	* libgdiagnostics.cc: : Update #include for move of
	"diagnostic-metadata.h" to "diagnostics/metadata.h", and update
	for move of diagnostic_metadata to diagnostics::metadata.
	* selftest-diagnostic.cc: Update for move of diagnostic_metadata
	to diagnostics::metadata.
	* selftest-diagnostic.h: Likewise.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Replace
	selftest-logical-location.o with
	diagnostics/selftest-logical-locations.o.
	* diagnostic-client-data-hooks.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, and of logical_location
	to diagnostics::logical_locations::key.
	* diagnostic-format-html.cc: Add "using namespace diagnostics;",
	and drop now-redundant "diagnostics::" prefixes.
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, of logical_location to
	diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	* diagnostic-format-sarif.cc: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".  Add
	"using namespace diagnostics;", and drop now-redundant
	"diagnostics::" prefixes.
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, of logical_location to
	diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	* diagnostic-format-sarif.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location to
	diagnostics::logical_locations::key.
	* diagnostic-path-output.cc: Add "using namespace diagnostics;".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, and
	of logical_location to diagnostics::logical_locations::key,
	* diagnostic-path.cc: Add "using namespace diagnostics;".
	Update for conversion of logical_location to
	diagnostics::logical_locations::key.
	* diagnostic-path.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, and of logical_location
	to diagnostics::logical_locations::key,
	* diagnostic.cc: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	* diagnostic.h: Reorganize forward decls.
	(class logical_location_manager): Replace this forward decl
	with...
	(class diagnostics::logical_locations::manager): ...this.
	(diagnostic_context::get_logical_location_manager): Update
	return type.
	* diagnostics/digraphs.h: : Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location to
	diagnostics::logical_locations::key.
	* logical-location.h: Move to...
	* diagnostics/logical-locations.h: ...here.
	(enum class logical_location_kind): Convert to...
	(enum class diagnostics::logical_locations::kind): ... this.
	(class logical_location_manager::key): Convert to...
	(class diagnostics::logical_locations::key): ... this.
	(class logical_location_manager): Convert to...
	(class diagnostics::logical_locations::manager): ... this.
	(logical_location): Drop this typedef in favor of
	diagnostics::logical_locations::key.
	* selftest-logical-location.cc: Move to...
	* diagnostics/selftest-logical-locations.cc: ...here.
	Update #include for move of "selftest-logical-location.h" to
	"diagnostics/selftest-logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, of logical_location to
	diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	(selftest_logical_location_cc_tests): Rename to...
	(diagnostics_selftest_logical_locations_cc_tests): ...this.
	* selftest-logical-location.h: Move to...
	* diagnostics/selftest-logical-locations.h: ...here, updating
	include guard.
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, of logical_location to
	diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	* diagnostics/state-graphs-to-dot.cc: Add
	"using namespace diagnostics;" and drop now-redundant
	"diagnostics::" prefixes.
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager.
	* diagnostics/state-graphs.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager,
	of logical_location to diagnostics::logical_locations::key.
	* libgdiagnostics.cc: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, and of logical_location
	to diagnostics::logical_locations::key.
	* selftest-diagnostic-path.cc: Update for conversion of
	logical_location to diagnostics::logical_locations::key.
	* selftest-diagnostic-path.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location to
	diagnostics::logical_locations::key.
	* selftest-run-tests.cc (selftest::run_tests): Update for
	renaming of selftest_logical_location_cc_tests to
	diagnostics_selftest_logical_locations_cc_tests.
	* selftest.h: Likewise.
	* simple-diagnostic-path.h: Update for conversion of
	logical_location to diagnostics::logical_locations::key.
	* tree-diagnostic-client-data-hooks.cc: Update for conversion of
	logical_location_manager to
	diagnostics::logical_locations::manager, and of logical_location
	to diagnostics::logical_locations::key.
	* tree-logical-location.cc: Update for conversions.
	Update for conversion of logical_location to
	diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.
	* tree-logical-location.h: Update #include for move of
	"logical-location.h" to "diagnostics/logical-locations.h".
	Update for conversion of logical_location_manager to
	diagnostics::logical_locations::manager, of logical_location
	to diagnostics::logical_locations::key, and of
	enum logical_location_kind to
	enum diagnostics::logical_locations::kind.

2025-07-25  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Rename diagnostic-digraphs.o to
	diagnostics/digraphs.o.  Rename diagnostic-state-graphs.o to
	diagnostics/state-graphs.o.  Rename diagnostic-state-to-dot.o to
	diagnostics/state-graphs-to-dot.o.
	(PLUGIN_HEADERS): Add $(srcdir)/diagnostics/*.h.
	(install-plugin:): Likewise.
	* configure: Regenerate.
	* configure.ac (gccdepdir): Add "diagnostics" to directories.
	* diagnostic-format-html.cc: Update #includes for move of
	"diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of
	move of "diagnostic-state-graphs.h" to
	"diagnostics/state-graphs.h".
	* diagnostic-format-sarif.cc: Likewise.
	* diagnostic-path.cc: Likewise for state-graphs.h
	* diagnostic-digraphs.cc: Move...
	* diagnostics/digraphs.cc: ...to here.  Update #include
	for renaming of digraphs.h.
	(selftest::diagnostic_digraphs_cc_tests): Rename to...
	(selftest::diagnostics_digraphs_cc_tests): ...this.
	* diagnostic-digraphs.h: Move...
	* diagnostics/digraphs.h: ...to here, updating header guard.
	* diagnostic-state-to-dot.cc: Move...
	* diagnostics/state-graphs-to-dot.cc: ...to here.  Update #include
	of state-graphs.h.
	* diagnostic-state-graphs.cc: Move...
	* diagnostics/state-graphs.cc: ...to here.  Update #include
	of state-graphs.h.
	(selftest::diagnostic_state_graphs_cc_tests): Rename...
	(selftest::diagnostics_state_graphs_cc_tests): ...to this.
	* diagnostic-state-graphs.h: Move...
	* diagnostics/state-graphs.h: ...to here, updating header guard.
	* libgdiagnostics.cc: Update #includes for move of
	"diagnostic-digraphs.h" to "diagnostics/digraphs.h" and of
	move of "diagnostic-state-graphs.h" to
	"diagnostics/state-graphs.h".
	* selftest-run-tests.cc (selftest::run_tests): Update for
	function renamings that reflect file renamings.
	* selftest.h (selftest::diagnostic_digraphs_cc_tests): Rename
	to...
	(selftest::diagnostics_digraphs_cc_tests): ...this.
	(selftest::diagnostic_state_graphs_cc_tests): Rename...
	(selftest::diagnostics_state_graphs_cc_tests): ...to this.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_get_vec_defs): Remove overload
	with operand vector type.  Remove stmt_vec_info and
	ncopies argument.
	* tree-vect-stmts.cc (vect_get_vec_defs): Likewise.
	(vectorizable_conversion): Adjust by not passing in
	vector types, stmt_vec_info and ncopies.
	(vectorizable_bswap): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_scan_store): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_condition): Likewise.
	(vectorizable_comparison_1): Likewise.
	* tree-vect-loop.cc (vect_transform_reduction): Likewise.
	(vect_transform_lc_phi): Likewise.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_is_simple_use): Remove stmt-info
	with vectype output overload and remove stmt-info argument
	from SLP based API.
	* tree-vect-loop.cc (vectorizable_lane_reducing): Remove
	unused def_stmt_info output argument to vect_is_simple_use.
	Adjust.
	* tree-vect-stmts.cc (get_group_load_store_type): Get
	the gather/scatter offset vector type from the SLP child.
	(vect_check_scalar_mask): Remove stmt_info argument.  Adjust.
	(vect_check_store_rhs): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_load): Likewise.
	(vect_is_simple_cond): Remove stmt_info argument.  Adjust.
	(vectorizable_condition): Likewise.
	(vectorizable_comparison_1): Likewise.
	(vectorizable_store): Likewise.
	(vect_is_simple_use): Remove overload and non-SLP path.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_model_simple_cost): Removed code
	when no SLP node is passed, remove then unused dt and ndts
	parameters and fix the number of vector stmts calculation.
	(vectorizable_call): Adjust.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_condition): Likewise.
	(vectorizable_comparison_1): Likewise.

2025-07-25  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv-vector-costs.cc (get_live_range):
	Move compute_local_program_points to cost class.
	(variable_vectorized_p): Add slp node parameter.
	(need_additional_vector_vars_p): Move from here...
	(costs::need_additional_vector_vars_p): ... to here and add slp
	parameter.
	(compute_estimated_lmul): Move update_local_live_ranges to cost
	class.
	(has_unexpected_spills_p): Move from here...
	(costs::has_unexpected_spills_p): ... to here.
	(costs::record_lmul_spills): New function.
	(costs::add_stmt_cost): Add stmt_info, slp mapping.
	(costs::finish_cost): Analyze loop.
	* config/riscv/riscv-vector-costs.h: Move declarations to class.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_2): Get vectype
	from the SLP node.
	(vectorize_fold_left_reduction): Likewise.
	(vect_transform_reduction): Likewise.
	(vect_transform_cycle_phi): Likewise.
	(vect_transform_lc_phi): Likewise.
	* tree-vect-slp.cc (vect_analyze_slp): Likewise.
	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
	Pass in vectype and use that.
	(vect_use_strided_gather_scatters_p): Likewise.
	(get_group_load_store_type): Adjust.
	(vect_check_scalar_mask): We always have a SLP node.
	Use vectype from the SLP node.
	(vect_check_store_rhs): Likewise.
	(vect_build_one_gather_load_call): Pass in the vector type
	and use that.
	(vect_get_strided_load_store_ops): Likewise.
	(vectorizable_store): Adjust.
	(vectorizable_load): Use the vector type from the SLP node
	and adjust.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* target.h (stmt_vectype): Remove.
	* tree-vect-stmts.cc (stmt_vectype): Likewise.

2025-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>

	* config/riscv/riscv.cc (enum riscv_privilege_levels): Remove USER_MODE.
	(riscv_handle_type_attribute): Remove "user" interrupts.
	(riscv_expand_epilogue): Likewise.
	(riscv_get_interrupt_type): Likewise.
	* config/riscv/riscv.md (riscv_uret): Remove URET pattern.
	* doc/extend.texi: Remove documentation of user interrupts.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info::vec_stmts): Remove.
	(STMT_VINFO_VEC_STMTS): Likewise.
	* tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not
	initialize it.
	(vec_info::free_stmt_vec_info): Nor free it.
	* tree-vect-data-refs.cc (vect_vfa_access_size): Remove
	check on STMT_VINFO_VEC_STMTS.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_transform_grouped_load): Remove.
	(vect_record_grouped_load_vectors): Likewise.
	* tree-vect-data-refs.cc (vect_permute_load_chain): Likewise.
	(vect_shift_permute_load_chain): Likewise.
	(vect_transform_grouped_load): Likewise.
	(vect_record_grouped_load_vectors): Likewise.
	* tree-vect-stmts.cc (vectorizable_load): Remove comments
	about load interleaving.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_permute_store_chain): Remove.
	* tree-vect-data-refs.cc (vect_permute_store_chain): Likewise.
	* tree-vect-stmts.cc (vectorizable_store): Remove comment
	about store interleaving.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_get_vec_defs_for_operand): Remove.
	* tree-vect-stmts.cc (vect_get_vec_defs_for_operand): Likewise.
	(vect_get_vec_defs): Remove non-SLP path.
	(check_load_store_for_partial_vectors): We always have an
	SLP node.
	(vect_check_store_rhs): Likewise.
	(vect_get_gather_scatter_ops): Likewise.
	(vect_create_vectorized_demotion_stmts): Likewise.
	(vectorizable_store): Adjust.
	(vectorizable_load): Likewise.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (VMAT_CONTIGUOUS_PERMUTE): Remove.
	* tree-vect-stmts.cc (check_load_store_for_partial_vectors):
	Remove checks on VMAT_CONTIGUOUS_PERMUTE.
	(vectorizable_load): Likewise.
	(vectorizable_store): Likewise.  Prune dead code.

2025-07-25  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_store): Remove trivially
	dead code.

2025-07-25  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-opts.h (TARGET_NO_MANUAL_NOPS,
	TARGET_CDNA3_NOPS): Define.
	* config/gcn/gcn.md (define_attr "laneselect): Change 'yes' to
	'read' and 'write'.
	(define_attr "flatmemaccess"): Add with values store, storex34,
	load, atomic, atomicwait, cmpswapx2, and no. Replacing ...
	(define_attr "delayeduse"): Remove.
	(define_attr "transop"): Add with values yes and no.
	(various insns): Update 'laneselect', add flatmemaccess and transop,
	remove delayeduse; fixing an issue for s_load_dwordx4 vs.
	flat_store_dwordx4 related to delayeduse (now: flatmemaccess).
	* config/gcn/gcn-valu.md: Update laneselect attribute and add
	flatmemaccess.
	* config/gcn/gcn.cc (gcn_cmpx_insn_p): New.
	(gcn_md_reorg): Update for MI300 to add additional s_nop.
	Skip s_nop-insertion part for RDNA{2,3}; add "VALU writes EXEC
	followed by VALU DPP" unconditionally for CDNA2/CDNA3/GCN5.

2025-07-25  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR middle-end/121214
	* genpreds.cc (constraint_max_namelen): Delete.
	(write_tm_preds_h): Always write insn_constraint_len() and
	define CONSTRAINT_LEN to it, i.e., remove guard
	constraint_max_namelen>1.  Remove outer guard
	constraint_max_namelen>0 and re-indent.
	(write_insn_preds_c): Remove guard
	constraint_max_namelen>0 and re-indent.

2025-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>

	* config/riscv/riscv.cc (enum riscv_privilege_levels): Add
	RNMI_MODE.
	(riscv_handle_type_attribute): Handle 'rnmi' interrupt attribute.
	(riscv_expand_epilogue): Generate nmret for RNMI handlers.
	(riscv_get_interrupt_type): Handle 'rnmi' interrupt attribute.
	* config/riscv/riscv.md (riscv_rnmi): Add nmret INSN.
	* doc/extend.texi: Add documentation for 'rnmi' interrupt attribute.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vectorizable_induction): Remove
	gimple **vec_stmt argument.
	(vectorizable_phi): Likewise.
	(vectorizable_recurr): Likewise.
	(vectorizable_early_exit): Likewise.
	* tree-vect-loop.cc (vectorizable_phi): Likewise and adjust.
	(vectorizable_recurr): Likewise.
	(vectorizable_nonlinear_induction): Likewise.
	(vectorizable_induction): Likewise.
	* tree-vect-stmts.cc (vectorizable_bswap): Likewise.
	(vectorizable_call): Likewise.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_store): Likewise.
	(vectorizable_load): Likewise.
	(vectorizable_condition): Likewise.
	(vectorizable_comparison_1): Likewise.
	(vectorizable_comparison): Likewise.
	(vectorizable_early_exit): Likewise.
	(vect_analyze_stmt): Adjust.
	(vect_transform_stmt): Likewise.
	* tree-vect-slp.cc (vect_slp_analyze_operations): Adjust.
	(vectorize_slp_instance_root_stmt): Likewise.

2025-07-24  Andrew Pinski  <quic_apinski@quicinc.com>

	* doc/cpp.texi (#ifdef): Correct typo.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_early_exit): Remove non-SLP
	path.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (_stmt_vec_info::simd_clone_info): Remove.
	(STMT_VINFO_SIMD_CLONE_INFO): Likewise.
	* tree-vectorizer.cc (vec_info::free_stmt_vec_info): Do not
	release it.
	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Remove
	non-SLP path.

2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>

	* internal-fn.cc (internal_fn_len_index): Adjust indices for new
	alias_ptr param.
	(internal_fn_else_index): Ditto.
	(internal_fn_mask_index): Ditto.
	(internal_fn_stored_value_index): Ditto.
	(internal_fn_alias_ptr_index): Ditto.
	(internal_fn_offset_index): Ditto.
	(internal_fn_scale_index): Ditto.
	(internal_gather_scatter_fn_supported_p): Ditto.
	* internal-fn.h (internal_fn_alias_ptr_index): Ditto.
	* optabs-query.cc (supports_vec_gather_load_p): Ditto.
	* tree-vect-data-refs.cc (vect_check_gather_scatter): Add alias
	pointer.
	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Add
	alias pointer.
	* tree-vect-slp.cc (vect_get_operand_map): Adjust for alias
	pointer.
	* tree-vect-stmts.cc (vect_truncate_gather_scatter_offset): Add
	alias pointer and misalignment handling.
	(get_load_store_type): Move from here...
	(get_group_load_store_type): ...To here.
	(vectorizable_store): Add alias pointer.
	(vectorizable_load): Ditto.
	* tree-vectorizer.h (struct gather_scatter_info): Ditto.

2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>

	* config/aarch64/aarch64.cc (aarch64_builtin_support_vector_misalignment):
	Return true for gather/scatter.
	* config/arm/arm.cc (arm_builtin_support_vector_misalignment):
	Ditto.
	* config/epiphany/epiphany.cc (epiphany_support_vector_misalignment):
	Ditto.
	* config/gcn/gcn.cc (gcn_vectorize_support_vector_misalignment):
	Ditto.
	* config/loongarch/loongarch.cc (loongarch_builtin_support_vector_misalignment):
	Ditto.
	* config/riscv/riscv.cc (riscv_support_vector_misalignment):
	Add gather/scatter argument.
	* config/rs6000/rs6000.cc (rs6000_builtin_support_vector_misalignment):
	Return true for gather/scatter.
	* config/s390/s390.cc (s390_support_vector_misalignment):
	Ditto.
	* doc/tm.texi: Add argument.
	* target.def: Ditto.
	* targhooks.cc (default_builtin_support_vector_misalignment):
	Ditto.
	* targhooks.h (default_builtin_support_vector_misalignment):
	Ditto.
	* tree-vect-data-refs.cc (vect_supportable_dr_alignment):
	Ditto.

2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>

	* tree-vect-slp.cc (GATHER_SCATTER_OFFSET): New define.
	(vect_get_and_check_slp_defs): Use.
	* tree-vectorizer.h (GATHER_SCATTER_LEGACY_P): New define.
	(GATHER_SCATTER_IFN_P): Ditto.
	(GATHER_SCATTER_EMULATED_P): Ditto.
	* tree-vect-stmts.cc (vectorizable_store): Use.
	(vectorizable_load): Use.

2025-07-24  Robin Dapp  <rdapp@ventanamicro.com>

	* internal-fn.cc (expand_scatter_store_optab_fn): Use new
	function.
	(expand_gather_load_optab_fn): Ditto.
	(internal_fn_offset_index): Ditto.
	(internal_fn_scale_index): Ditto.
	* internal-fn.h (internal_fn_offset_index): New function.
	(internal_fn_scale_index): Ditto.
	* tree-vect-data-refs.cc (vect_describe_gather_scatter_call):
	Use new function.

2025-07-24  Alfie Richards  <alfie.richards@arm.com>

	* tree-vect-data-refs.cc (vect_create_data_ref_ptr): Remove unnecessary
	casts to aggr_ptr_type.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_comparison_1): Remove
	non-SLP path.
	(vectorizable_comparison): Likewise.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_condition): Remove
	non-SLP paths.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_scan_store): Remove
	non-SLP path and unused parameters.
	(vectorizable_store): Adjust.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_shift): Remove non-SLP paths.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_assignment): Remove
	non-SLP paths.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_call): Remove non-SLP path.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_bswap): Remove non-SLP path.

2025-07-24  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_recurr): Remove non-SLP path.

2025-07-24  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
	Extend from SVE_FULL_F_B16B16 to SVE_F_B16B16.
	(*cond_<optab><mode>_3_relaxed): Likewise.
	(*cond_<optab><mode>_any_relaxed): Likwise.
	(*cond_<optab><mode>_any_const_relaxed): Extend from SVE_FULL_F
	to SVE_F.
	(*cond_add<mode>_2_const_relaxed): Likewise.
	(*cond_add<mode>_any_const_relaxed): Likewise.
	(*cond_sub<mode>_3_const_relaxed): Likewise.
	(*cond_sub<mode>_const_relaxed): Likewise.

2025-07-24  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md: (@aarch64_sve_<optab><mode>):
	Extend from SVE_FULL_F to SVE_F, use aarch64_predicate_operand.
	(@aarch64_frecpe<mode>): Extend from SVE_FULL_F to SVE_F.
	(@aarch64_frecps<mode>): Likewise.
	(div<mode>3): Likewise, use aarch64_sve_fp_pred.
	* config/aarch64/iterators.md: Add warnings above SVE_FP_UNARY
	and SVE_FP_BINARY.

2025-07-24  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (<optab><mode>3): Extend from
	SVE_FULL_F to SVE_F, use aarch64_sve_fp_pred.
	(*post_ra_<sve_fp_op><mode>3): Extend from SVE_FULL_F to SVE_F.
	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F,
	use aarch64_predicate_operand (ADD/SUB/MUL/MAX/MIN).
	(split for using unpredicated insns): Move SVE_RELAXED_GP into
	the pattern, rather than testing for it in the condition.
	* config/aarch64/aarch64-sve2.md (@aarch64_pred_<optab><mode>):
	Extend from VNx8BF_ONLY to SVE_BF.

2025-07-24  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Rename
	from...
	(*<sat_op_v_vdup>_vx_<mode>): Rename to...
	(*<sat_op_vdup_v>_vx_<mode>): Rename to...
	* config/riscv/riscv-protos.h (enum insn_flags): Add vxrm
	RNE, ROD type.
	(enum insn_type): Add RNE_P, ROD_P type.
	(expand_vx_binary_vxrm_vec_vec_dup): Add new func decl.
	(expand_vx_binary_vxrm_vec_dup_vec): Ditto.
	* config/riscv/riscv-v.cc (get_insn_type_by_vxrm_val): Add
	helper to get insn type by vxrm value.
	(expand_vx_binary_vxrm_vec_vec_dup): Add new func impl
	to expand vec + vec_dup pattern.
	(expand_vx_binary_vxrm_vec_dup_vec): Ditto but for
	vec_dup + vec pattern.
	* config/riscv/vector-iterators.md: Add helper iterator
	for sat vx combine.

2025-07-23  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_relaxed):
	Extend from SVE_FULL_F to SVE_F.
	(*cond_<optab><mode>_any_relaxed): Likewise.

2025-07-23  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (<optab><mode>2): Replace use of
	aarch64_ptrue_reg with aarch64_sve_fp_pred.
	(@aarch64_pred_<optab><mode>): Extend from SVE_FULL_F to SVE_F,
	and use aarch64_predicate_operand.
	* config/aarch64/iterators.md: Split FABS/FNEG out of
	SVE_COND_FP_UNARY (into new SVE_COND_FP_UNARY_BITWISE).

2025-07-23  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md
	(*cond_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>_relaxed):
	New FCVT/SEL combiner pattern.
	(*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx2SI_ONLY:mode>_relaxed):
	New FCVTZ{S,U}/SEL combiner pattern.
	(*cond_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>_relaxed):
	New {S,U}CVTF/SEL combiner pattern.
	(*cond_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>):
	New FCVT/SEL combiner pattern.
	(*cond_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>_relaxed):
	New FCVTZ{S,U}/SEL combiner pattern.
	* config/aarch64/iterators.md: New mode iterator for VNx2SI.

2025-07-23  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/121073
	* config/riscv/autovec-opt.md: Use new helpers.
	* config/riscv/autovec.md: Ditto.
	* config/riscv/predicates.md (strided_broadcast_mask_operand):
	New predicate.
	(strided_broadcast_operand): Ditto.
	(any_broadcast_operand): Ditto.
	* config/riscv/riscv-protos.h (expand_broadcast): Declare.
	(expand_set_first): Ditto.
	(expand_set_first_tu): Ditto.
	(strided_broadcast_p): Ditto.
	* config/riscv/riscv-string.cc (expand_vec_setmem): Use new
	helpers.
	* config/riscv/riscv-v.cc (expand_broadcast): New functionk.
	(expand_set_first): Ditto.
	(expand_set_first_tu): Ditto.
	(expand_const_vec_duplicate): Use new helpers.
	(expand_const_vector_duplicate_repeating): Ditto.
	(expand_const_vector_duplicate_default): Ditto.
	(sew64_scalar_helper): Ditto.
	(expand_vector_init_merge_repeating_sequence): Ditto.
	(expand_reduction): Ditto.
	(strided_broadcast_p): New function.
	(whole_reg_to_reg_move_p): Use new helpers.
	* config/riscv/riscv-vector-builtins-bases.cc: Use either
	broadcast or strided broadcast.
	* config/riscv/riscv-vector-builtins.cc (function_expander::use_ternop_insn):
	Ditto.
	(function_expander::use_widen_ternop_insn): Ditto.
	(function_expander::use_scalar_broadcast_insn): Ditto.
	* config/riscv/riscv-vector-builtins.h: Declare scalar
	broadcast.
	* config/riscv/vector.md (*pred_broadcast<mode>): Split into
	regular and strided broadcast.
	(*pred_broadcast<mode>_zvfh): Split.
	(pred_broadcast<mode>_zvfh): Ditto.
	(*pred_broadcast<mode>_zvfhmin): Ditto.
	(@pred_strided_broadcast<mode>): Ditto.
	(*pred_strided_broadcast<mode>): Ditto.
	(*pred_strided_broadcast<mode>_zvfhmin): Ditto.

2025-07-23  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/120119
	* config/aarch64/cortex-a57-fma-steering.cc (func_fma_steering::analyze):
	Skip if renaming fails.

2025-07-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121220
	* tree-ssa-sink.cc (statement_sink_location): For stores
	handle sinking to paths ending in a store.  Skip loads
	that do not use the store.

2025-07-23  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/119085
	* tree-sra.cc (sort_and_splice_var_accesses): Prevent total
	scalarization if two incompatible aggregates access the same place.

2025-07-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* config.gcc <sparc*-*-solaris2*> (with_cpu): Default to ultrasparc3.

2025-07-23  Richard Biener  <rguenther@suse.de>

	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
	Check vectype is non-NULL before accessing it.

2025-07-23  Richard Biener  <rguenther@suse.de>

	PR middle-end/121216
	* expr.cc (constant_byte_string): Check the string type
	size fits an uhwi before converting to uhwi.

2025-07-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/109267
	* tree-cfgcleanup.cc (execute_cleanup_cfg_post_optimizing): If the first
	non debug statement in the first (and only) basic block is a call
	to __builtin_unreachable change it to a call to __builtin_trap or an
	infinite loop.

2025-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
	Rewrite to capture insns that could be L32R machine instructions
	wherever possible.
	(xtensa_rtx_costs): Fix to consider that moves larger than a
	natural word can take multiple L32R machine instructions.
	(constantpool_address_p): Cosmetics.
	* config/xtensa/xtensa.md (movdi_internal, movdf_internal):
	Add missing insn attributes.

2025-07-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md
	(movsi_internal, movhi_internal, movsf_internal):
	Change the value of the "type" attribute from "move" to "load"
	when the source operand constraint is "Y".

2025-07-22  Karl Meakin  <karl.meakin@arm.com>

	* tree-vect-data-refs.cc (vect_check_gather_scatter): Swap
	`base` and `off` in more scenarios. Also assert at the end of
	the function that `base` and `off` are loop-invariant and not
	loop-invariant respectively.

2025-07-22  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/generic-vector-ooo.md: Restrict insn reservations to
	generic_ooo and generic tuning models.

2025-07-22  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121202
	* tree-vect-slp.cc (vect_schedule_slp_node): Do not take
	an out-of-region stmt as "last".

2025-07-22  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* genpreds.cc (write_insn_constraint_len): Replace rawmemchr by
	a loop.

2025-07-21  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/mips-p8700.md: Add support for "ghost" insn types.
	* config/riscv/xiangshan.md: Add support for "sf_vc" and "sf_vc_se"
	insn types.

2025-07-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/110949
	PR tree-optimization/95906
	* match.pd (cmp - 1): New pattern.

2025-07-21  Andreas Schwab  <schwab@suse.de>

	PR target/121121
	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
	Use temp2 instead of temp1 for the CFA note.

2025-07-21  Pan Li  <pan2.li@intel.com>

	* config/riscv/vector.md: Allow VLS DImode for sat_op vx pattern.

2025-07-21  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*uavg_floor_vx_<mode>): Add
	pattern for vaaddu.vx combine.
	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add UNSPEC
	handling for UNSPEC_VAADDU.
	(riscv_rtx_costs): Ditto.

2025-07-21  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
	Enable only when optimizing for size.

2025-07-21  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64.cc (aarch64_rtx_costs): Add extra_cost values
	only when speed is true for CONST_VECTOR, VEC_DUPLICATE, VEC_SELECT
	cases.
	* config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs,
	thunderx_extra_costs, thunderx2t99_extra_costs,
	thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs,
	ampere1_extra_costs, ampere1a_extra_costs, ampere1b_extra_costs):
	Reduce cost of movi, dup, extract fields by COSTS_N_INSNS (1).
	* config/arm/aarch-cost-tables.h (generic_extra_costs,
	cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs,
	exynosm1_extra_costs, xgene1_extra_costs): Likewise.

2025-07-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121194
	* tree-vect-loop.cc (vectorizable_lc_phi): Verify
	vector types are compatible.

2025-07-21  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-valu.md (gather_load<mode><vndi>): New.
	(scatter_store<mode><vndi>): New.
	(mask_gather_load<mode><vndi>): New.
	(mask_scatter_store<mode><vndi>): New.
	* config/gcn/gcn.cc (gcn_expand_scaled_offsets): Support DImode.

2025-07-21  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn.cc (GEN_VNM_NOEXEC): Use USE_QHF.
	(GEN_VNM): Likewise, and call for new ashl and mul variants.

2025-07-21  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-valu.md (add<mode>3_dup): New.
	(add<mode>3_dup_exec): New.
	(<su>mul<mode>3_highpart_dup<exec>): New.
	(mul<mode>3_dup): Move the vec_duplicate to operand 1.
	(mul<mode>3_dup_exec): New.
	(vec_series<mode>): Adjust call to gen_mul<mode>3_dup.
	* config/gcn/gcn.cc (gcn_expand_vector_init): Likewise.

2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* genoutput.cc (main): Emit function
	verify_reg_names_in_constraints() for run-time validation.
	(mdep_constraint_len): Deal with hard register constraints.
	* output.h (verify_reg_names_in_constraints): New function
	declaration.
	* toplev.cc (backend_init): If checking is enabled, call into
	verify_reg_names_in_constraints().

2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* cfgexpand.cc (n_occurrences): Move this ...
	(check_operand_nalternatives): and this ...
	(expand_asm_stmt): and the call to gimplify.cc.
	* config/s390/s390.cc (s390_md_asm_adjust): Pass null pointer to
	parse_{input,output}_constraint().
	* gimple-walk.cc (walk_gimple_asm): Pass null pointer to
	parse_{input,output}_constraint().
	(walk_stmt_load_store_addr_ops): Ditto.
	* gimplify-me.cc (gimple_regimplify_operands): Ditto.
	* gimplify.cc (num_occurrences): Moved from cfgexpand.cc.
	(num_alternatives): Ditto.
	(gimplify_asm_expr): Deal with hard register constraints.
	* stmt.cc (eliminable_regno_p): New helper.
	(hardreg_ok_p): Perform a similar check as done in
	make_decl_rtl().
	(parse_output_constraint): Add parameter for gimplify_reg_info
	and validate hard register constrained operands.
	(parse_input_constraint): Ditto.
	* stmt.h (class gimplify_reg_info): Forward declaration.
	(parse_output_constraint): Add parameter.
	(parse_input_constraint): Ditto.
	* tree-ssa-operands.cc
	(operands_scanner::get_asm_stmt_operands): Pass null pointer
	to parse_{input,output}_constraint().
	* tree-ssa-structalias.cc (find_func_aliases): Pass null pointer
	to parse_{input,output}_constraint().
	* varasm.cc (assemble_asm): Pass null pointer to
	parse_{input,output}_constraint().
	* gimplify_reg_info.h: New file.

2025-07-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/cris/cris.cc (cris_md_asm_adjust): Deal with hard
	register constraint.
	* config/i386/i386.cc (map_egpr_constraints): Ditto.
	* config/s390/s390.cc (f_constraint_p): Ditto.
	* doc/extend.texi: Document hard register constraints.
	* doc/md.texi: Ditto.
	* function.cc (match_asm_constraints_2): Have a unique pseudo
	for each operand with a hard register constraint.
	(pass_match_asm_constraints::execute): Calling into new helper
	match_asm_constraints_2().
	* genoutput.cc (mdep_constraint_len): Return the length of a
	hard register constraint.
	* genpreds.cc (write_insn_constraint_len): Support hard register
	constraints for insn_constraint_len().
	* ira.cc (valid_replacement_for_asm_input_p_1): New helper.
	(valid_replacement_for_asm_input_p): New helper.
	(decrease_live_ranges_number): Similar to
	match_asm_constraints_2() ensure that each operand has a unique
	pseudo if constrained by a hard register.
	* lra-constraints.cc (process_alt_operands): Install hard
	register filter according to constraint.
	* recog.cc (asm_operand_ok): Accept register type for hard
	register constrained asm operands.
	(constrain_operands): Validate hard register constraints.
	* stmt.cc (decode_hard_reg_constraint): Parse a hard register
	constraint into the corresponding register number or bail out.
	(parse_output_constraint): Parse hard register constraint and
	set *ALLOWS_REG.
	(parse_input_constraint): Ditto.
	* stmt.h (decode_hard_reg_constraint): Declaration of new
	function.

2025-07-21  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_analyze_data_refs): Remove min_vf
	output.
	* tree-vect-data-refs.cc (vect_analyze_data_refs): Likewise.
	* tree-vect-loop.cc (vect_analyze_loop_2): Remove early
	out based on bogus min_vf.
	* tree-vect-slp.cc (vect_slp_analyze_bb_1): Adjust.

2025-07-20  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md: Add (const_int 1) as the op2 of
	ashiftrt.

2025-07-19  Dimitar Dimitrov  <dimitar@dinux.eu>

	PR target/121124
	* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Handle the
	ctable base address as signed 32-bit value, and sign-extend to
	HOST_WIDE_INT.
	* config/pru/pru-protos.h (struct pru_ctable_entry): Store the
	ctable base address as signed.
	(pru_get_ctable_exact_base_index): Pass base address as signed.
	(pru_get_ctable_base_index): Ditto.
	(pru_get_ctable_base_offset): Ditto.
	* config/pru/pru.cc (pru_get_ctable_exact_base_index): Ditto.
	(pru_get_ctable_base_index): Ditto.
	(pru_get_ctable_base_offset): Ditto.
	(pru_print_operand_address): Ditto.

2025-07-19  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*vfwnmacc_vf_<mode>): New pattern.
	(*vfwnmsac_vf_<mode>): New pattern.
	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add support for a
	vec_duplicate in a neg.

2025-07-19  Artemiy Volkov  <artemiyv@acm.org>

	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Protect
	from a NULL PREV_SET or CURR_SET.

2025-07-19  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-passes.cc (avr_optimize_casesi): Fuse
	get_insns() with end_sequence().

2025-07-18  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md (avg<mode>3_ceil): Add new pattern
	of avg3_ceil for RVV DImode

2025-07-18  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/117423
	* tree-sra.cc (analyze_access_subtree): Fix computation of grp_covered
	flag.

2025-07-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121126
	* tree-vect-stmts.cc (vect_analyze_stmt): Analyze the
	live lane extract for LC PHIs that are vect_internal_def.

2025-07-18  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_live_operation_1):
	Remove stmt_info and ncopies parameters.  Remove !slp_node
	paths.
	(vectorizable_live_operation): Remove !slp_node paths.

2025-07-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120924
	* params.opt (uninit-max-chain-len): Up from 8 to 12.

2025-07-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121048
	* tree-vect-loop.cc (vect_determine_vectype_for_stmt_1):
	Remove rejecting vector(1) vector types.
	(vect_set_stmts_vectype): Likewise.
	* tree-vect-slp.cc (vect_make_slp_decision): Only
	count instances with non-vector(1) root towards whether
	we have any interesting instances to vectorize.

2025-07-18  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/121131
	* gimple-fold.cc (fold_nonarray_ctor_reference): Use
	TREE_INT_CST_LOW (TYPE_SIZE ()) instead of
	GET_MODE_BITSIZE (SCALAR_INT_TYPE_MODE ()) for BLKmode BITINT_TYPEs.
	Don't compute encoding_size at all for little endian targets.

2025-07-17  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/121095
	* gcse.cc (execute_hardreg_pre): Skip if the hardreg which is never live.

2025-07-17  Filip Kastl  <fkastl@suse.cz>

	* tree-ssa-structalias.cc (lookup_vi_for_tree): Fix GNU style.
	(process_constraint): Fix GNU style.
	(get_constraint_for_component_ref): Fix GNU style.
	(get_constraint_for_1): Fix GNU style.
	(get_function_part_constraint): Fix GNU style.
	(handle_lhs_call): Fix GNU style.
	(find_func_aliases_for_builtin_call): Fix GNU style.
	(find_func_aliases): Fix GNU style.
	(find_func_clobbers): Fix GNU style.
	(struct shared_bitmap_hasher): Fix GNU style.
	(shared_bitmap_hasher::hash): Fix GNU style.
	(pt_solution_includes_global): Fix GNU style.
	(init_base_vars): Fix GNU style.
	(visit_loadstore): Fix GNU style.
	(compute_dependence_clique): Fix GNU style.
	(struct pt_solution): Fix GNU style.
	(ipa_pta_execute): Fix GNU style.

2025-07-17  Filip Kastl  <fkastl@suse.cz>

	* pta-andersen.cc (struct constraint_graph): Fix GNU style.
	(constraint_equal): Fix GNU style.
	(set_union_with_increment): Fix GNU style.
	(insert_into_complex): Fix GNU style.
	(merge_node_constraints): Fix GNU style.
	(unify_nodes): Fix GNU style.
	(do_ds_constraint): Fix GNU style.
	(scc_info::scc_info): Fix GNU style.
	(find_indirect_cycles): Fix GNU style.
	(equiv_class_lookup_or_add): Fix GNU style.
	(label_visit): Fix GNU style.
	(dump_pred_graph): Fix GNU style.
	(perform_var_substitution): Fix GNU style.
	(eliminate_indirect_cycles): Fix GNU style.
	(solve_graph): Fix GNU style.
	(solve_constraints): Fix GNU style.
	* tree-ssa-structalias.cc (first_vi_for_offset): Fix GNU style.
	(debug_constraint): Fix GNU style.
	* tree-ssa-structalias.h (struct constraint_expr): Fix GNU
	style.
	(struct variable_info): Fix GNU style.

2025-07-17  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-expand.cc (ix86_expand_ternlog): Don't change
	mode for XOR.

2025-07-17  Filip Kastl  <fkastl@suse.cz>

	* Makefile.in: Add pta-andersen.o.
	* tree-ssa-structalias.cc (create_variable_info_for): Just move
	around.
	(unify_nodes): Move to pta-andersen.cc.
	(struct constraint): Move to tree-ssa-structalias.h.
	(EXECUTE_IF_IN_NONNULL_BITMAP): Move to pta-andersen.cc.
	(struct variable_info): Move to tree-ssa-structalias.h.
	(struct constraint_stats): Move to tree-ssa-structalias.h.
	(first_vi_for_offset): External linkage, move to namespace
	pointer_analysis.
	(first_or_preceding_vi_for_offset): External linkage, move to namespace
	pointer_analysis.
	(dump_constraint): External linkage, move to namespace
	pointer_analysis.
	(debug_constraint): External linkage, move to namespace
	pointer_analysis.
	(dump_constraints): External linkage, move to namespace
	pointer_analysis.
	(debug_constraints): External linkage, move to namespace
	pointer_analysis.
	(lookup_vi_for_tree): Move around inside tree-ssa-structalias.cc.
	(type_can_have_subvars): Move around inside tree-ssa-structalias.cc.
	(make_param_constraints): Move around inside tree-ssa-structalias.cc.
	(dump_solution_for_var): External linkage, move to namespace
	pointer_analysis.  find (...) -> var_rep[...].
	(get_varinfo): Move to tree-ssa-structalias.h.
	(debug_solution_for_var): External linkage, move to namespace
	pointer_analysis.
	(vi_next): Move to tree-ssa-structalias.h.
	(dump_sa_stats): External linkage, move to namespace pointer_analysis.
	(new_var_info): Just move around.
	(dump_sa_points_to_info): External linkage, move to namespace
	pointer_analysis.
	(debug_sa_points_to_info): External linkage, move to namespace
	pointer_analysis.
	(get_call_vi): Just move around.
	(dump_varinfo): External linkage, move to namespace pointer_analysis.
	(lookup_call_use_vi): Just move around.
	(lookup_call_clobber_vi): Just move around.
	(get_call_use_vi): Just move around.
	(get_call_clobber_vi): Just move around.
	(enum constraint_expr_type): Move to tree-ssa-structalias.h.
	(struct constraint_expr): Move to tree-ssa-structalias.h.
	(UNKNOWN_OFFSET): Move to tree-ssa-structalias.h.
	(get_constraint_for_1): Just move around.
	(get_constraint_for): Just move around.
	(get_constraint_for_rhs): Just move around.
	(do_deref): Just move around.
	(constraint_pool): Just move around.
	(struct constraint_graph): Move to pta-andersen.h.
	(FIRST_REF_NODE): Move to pta-andersen.cc.
	(LAST_REF_NODE): Move to pta-andersen.cc.
	(find): Move to pta-andersen.cc.
	(unite): Move to pta-andersen.cc.
	(new_constraint): Just move around.
	(debug_constraint_graph): External linkage, move to namespace
	pointer_analysis.
	(debug_varinfo): External linkage, move to namespace pointer_analysis.
	(debug_varmap): External linkage, move to namespace pointer_analysis.
	(dump_constraint_graph): External linkage, move to namespace
	pointer_analysis.
	(constraint_expr_equal): Move to pta-andersen.cc.
	(constraint_expr_less): Move to pta-andersen.cc.
	(constraint_less): Move to pta-andersen.cc.
	(constraint_equal): Move to pta-andersen.cc.
	(constraint_vec_find): Move to pta-andersen.cc.
	(constraint_set_union): Move to pta-andersen.cc.
	(solution_set_expand): Move to pta-andersen.cc.
	(set_union_with_increment): Move to pta-andersen.cc.
	(insert_into_complex): Move to pta-andersen.cc.
	(merge_node_constraints): Move to pta-andersen.cc.
	(clear_edges_for_node): Move to pta-andersen.cc.
	(merge_graph_nodes): Move to pta-andersen.cc.
	(add_implicit_graph_edge): Move to pta-andersen.cc.
	(add_pred_graph_edge): Move to pta-andersen.cc.
	(add_graph_edge): Move to pta-andersen.cc.
	(init_graph): Move to pta-andersen.cc.  Initialize
	predbitmap_obstack here.
	(build_pred_graph): Move to pta-andersen.cc.
	(build_succ_graph): Move to pta-andersen.cc.
	(class scc_info): Move to pta-andersen.cc.
	(scc_visit): Move to pta-andersen.cc.
	(solve_add_graph_edge): Move to pta-andersen.cc.
	(do_sd_constraint): Move to pta-andersen.cc.
	(do_ds_constraint): Move to pta-andersen.cc.
	(do_complex_constraint): Move to pta-andersen.cc.
	(scc_info::scc_info): Move to pta-andersen.cc.
	(scc_info::~scc_info): Move to pta-andersen.cc.
	(find_indirect_cycles): Move to pta-andersen.cc.
	(topo_visit): Move to pta-andersen.cc.
	(compute_topo_order): Move to pta-andersen.cc.
	(struct equiv_class_hasher): Move to pta-andersen.cc.
	(equiv_class_hasher::hash): Move to pta-andersen.cc.
	(equiv_class_hasher::equal): Move to pta-andersen.cc.
	(equiv_class_lookup_or_add): Move to pta-andersen.cc.
	(condense_visit): Move to pta-andersen.cc.
	(label_visit): Move to pta-andersen.cc.
	(dump_pred_graph): External linkage, move to namespace
	pointer_analysis.
	(dump_varmap): External linkage, move to namespace pointer_analysis.
	(perform_var_substitution): Move to pta-andersen.cc.
	(free_var_substitution_info): Move to pta-andersen.cc.
	(find_equivalent_node): Move to pta-andersen.cc.
	(unite_pointer_equivalences): Move to pta-andersen.cc.
	(move_complex_constraints): Move to pta-andersen.cc.
	(rewrite_constraints): Move to pta-andersen.cc.
	(eliminate_indirect_cycles): Move to pta-andersen.cc.
	(solve_graph): Move to pta-andersen.cc.
	(set_uids_in_ptset): find (...) -> var_rep[...].
	(find_what_var_points_to): find (...) -> var_rep[...].
	(init_alias_vars): Don't initialize predbitmap_obstack here.
	(remove_preds_and_fake_succs): Move to pta-andersen.cc.
	(solve_constraints): Move to pta-andersen.cc.  Call
	delete_graph() at the end.
	(delete_points_to_sets): Don't delete graph here.  Delete var_rep here.
	(visit_loadstore): find (...) -> var_rep[...].
	(compute_dependence_clique): find (...) -> var_rep[...].
	(ipa_pta_execute): find (...) -> var_rep[...].
	* pta-andersen.cc: New file.
	* pta-andersen.h: New file.
	* tree-ssa-structalias.h: New file.

2025-07-17  Richard Sandiford  <richard.sandiford@arm.com>
	    Yury Khrustalev  <yury.khrustalev@arm.com>

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

2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.md (signbit_tdc): Rename expander.
	(signbit<mode>2): New expander.
	(signbit<mode>2_z10): New expander.

2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.cc (s390_register_move_cost): Add costing for
	vlvg/vlgv.

2025-07-17  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/vector.md (bhfgq): Add scalar modes.
	(*movdi<mode>_zero_extend_A): New insn.
	(*movsi<mode>_zero_extend_A): New insn.
	(*movdi<mode>_zero_extend_B): New insn.
	(*movsi<mode>_zero_extend_B): New insn.

2025-07-17  Xi Ruoyao  <xry111@xry111.site>

	PR target/121064
	* config/loongarch/lsx.md (lsx_vshuf_<lsxfmt_f>): Add '@' to
	generate a mode-aware helper.  Use <VIMODE> as the mode of the
	operand 1 (selector).
	* config/loongarch/lasx.md (lasx_xvshuf_<lasxfmt_f>): Likewise.
	* config/loongarch/loongarch.cc
	(loongarch_try_expand_lsx_vshuf_const): Create a new pseudo for
	the selector.  Use the mode-aware helper to simplify the code.
	(loongarch_expand_vec_perm_const): Likewise.

2025-07-17  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_build_slp_tree_1): Reject
	single-lane vector types.

2025-07-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121035
	* tree-ssa-pre.cc (find_or_generate_expression): Handle
	values without expression.

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

	* diagnostic-state-to-dot.cc (state_diagram::m_show_tags): Drop
	unused field.

2025-07-16  Kwok Cheung Yeung  <kcyeung@baylibre.com>

	* gimplify.cc (gimplify_omp_affinity): Use OMP_ITERATOR_DECL_P.
	(compute_omp_iterator_count): New.
	(build_omp_iterator_loop): New.
	(gimplify_omp_depend): Use OMP_ITERATOR_DECL_P,
	compute_omp_iterator_count and build_omp_iterator_loop.
	* tree-inline.cc (copy_tree_body_r): Use OMP_ITERATOR_DECL_P.
	* tree-pretty-print.cc (dump_omp_clause): Likewise.
	* tree.h (OMP_ITERATOR_DECL_P): New macro.

2025-07-16  Uros Bizjak  <ubizjak@gmail.com>

	PR target/121062
	* config/i386/i386.cc (ix86_convert_const_vector_to_integer):
	Handle E_V1SImode and E_V1DImode.
	* config/i386/mmx.md (V_16_32_64): Add V1SI, V2BF and V1DI.
	(mmxinsnmode): Add V1DI and V1SI.
	Add V_16_32_64 splitter for constant vector loads from constant
	vector pool.
	(V_16_32_64:*mov<mode>_imm): Moved after V_16_32_64 splitter.
	Replace lowpart_subreg with adjust_address.

2025-07-16  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120881
	PR testsuite/121078
	* config/i386/i386-options.cc (ix86_option_override_internal):
	Warn -pg without -mfentry only on glibc targets.

2025-07-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.cc (ix86_expand_move):
	Use MEM_P predicate instead of open coding it.
	(ix86_erase_embedded_rounding):
	Use NONJUMP_INSN_P predicate instead of open coding it.
	* config/i386/i386-features.cc (convertible_comparison_p):
	Use REG_P predicate instead of open coding it.
	* config/i386/i386.cc (ix86_rtx_costs):
	Use SUBREG_P predicate instead of open coding it.

2025-07-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.cc (symbolic_reference_mentioned_p):
	Use LABEL_REF_P predicate instead of open coding it.
	(ix86_legitimate_constant_p): Ditto.
	(legitimate_pic_address_disp_p): Ditto.
	(ix86_legitimate_address_p): Ditto.
	(legitimize_pic_address): Ditto.
	(ix86_print_operand): Ditto.
	(ix86_print_operand_address_as): Ditto.
	(ix86_rip_relative_addr_p): Ditto.
	* config/i386/i386.h (SYMBOLIC_CONST): Ditto.
	* config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto.
	* config/i386/predicates.md (symbolic_operand): Ditto.
	(local_symbolic_operand): Ditto.
	(vsib_address_operand): Ditto.

2025-07-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.cc (ix86_expand_move):
	Use SYMBOL_REF_P predicate instead of open coding it.
	(ix86_split_long_move): Ditto.
	(construct_plt_address): Ditto.
	(ix86_expand_call): Ditto.
	(ix86_notrack_prefixed_insn_p): Ditto.
	* config/i386/i386-features.cc
	(rest_of_insert_endbr_and_patchable_area): Ditto.
	* config/i386/i386.cc (symbolic_reference_mentioned_p): Ditto.
	(ix86_force_load_from_GOT_p): Ditto.
	(ix86_legitimate_constant_p): Ditto.
	(legitimate_pic_operand_p): Ditto.
	(legitimate_pic_address_disp_p): Ditto.
	(ix86_legitimate_address_p): Ditto.
	(legitimize_pic_address): Ditto.
	(ix86_legitimize_address): Ditto.
	(ix86_delegitimize_tls_address): Ditto.
	(ix86_print_operand): Ditto.
	(ix86_print_operand_address_as): Ditto.
	(ix86_rip_relative_addr_p): Ditto.
	(symbolic_base_address_p): Ditto.
	* config/i386/i386.h (SYMBOLIC_CONST): Ditto.
	* config/i386/i386.md (*anddi_1 to *andsi_1_zext splitter): Ditto.
	* config/i386/predicates.md (symbolic_operand): Ditto.
	(local_symbolic_operand): Ditto.
	(local_func_symbolic_operand): Ditto.

2025-07-16  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386-expand.cc (ix86_expand_vector_logical_operator):
	Use CONST_VECTOR_P instead of open coding it.
	(ix86_expand_int_sse_cmp): Ditto.
	(ix86_extract_perm_from_pool_constant): Ditto.
	(ix86_split_to_parts): Ditto.
	(const_vector_equal_evenodd_p): Ditto.
	* config/i386/i386.cc (ix86_print_operand): Ditto.
	* config/i386/predicates.md (zero_extended_scalar_load_operand): Ditto.
	(float_vector_all_ones_operand): Ditto.
	* config/i386/sse.md (avx512vl_vextractf128<mode>): Ditto.

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

	PR tree-optimization/121049
	* internal-fn.h (widening_evenodd_fn_p): Declare.
	* internal-fn.cc (widening_evenodd_fn_p): New function.
	* tree-vect-stmts.cc (vectorizable_conversion): When using
	an even/odd widening function disable loop masking.

2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/119920
	PR tree-optimization/112324
	PR tree-optimization/110015
	* tree-if-conv.cc (find_different_opnum): New function.
	(factor_out_operators): New function.
	(predicate_scalar_phi): Call factor_out_operators when
	there is only 2 elements of a phi.

2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-if-conv.cc (fold_build_cond_expr): Return early if lhs and rhs
	are the same.

2025-07-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-if-conv.cc (combine_blocks): Remove predicated
	dynamic array.

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

	PR tree-optimization/121116
	* tree-vect-loop.cc (vectorizable_induction): Use the
	step vector element type for further processing.

2025-07-16  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-valu.md (add<mode>3_vcc_dup<exec_vcc>): Change
	operand 2 to allow gcn_alu_operand.  Swap the operands in the VCC
	update RTL.
	(add<mode>3_vcc_zext_dup): Likewise.
	(add<mode>3_vcc_zext_dup_exec): Likewise.
	(add<mode>3_vcc_zext_dup2): Likewise.
	(add<mode>3_vcc_zext_dup2_exec): Likewise.

2025-07-16  Spencer Abson  <spencer.abson@arm.com>

	PR target/117850
	* config/aarch64/aarch64-builtins.cc (LO_HI_PAIRINGS): New, group the
	lo/hi pairs from aarch64-builtin-pairs.def.
	(aarch64_get_highpart_builtin): New function.
	(aarch64_v128_highpart_ref): New function, helper to look for vector
	highparts.
	(aarch64_build_vector_cst): New function, helper to build duplicated
	VECTOR_CSTs.
	(aarch64_fold_lo_call_to_hi): New function.
	(aarch64_general_gimple_fold_builtin): Add cases for the lo builtins
	in aarch64-builtin-pairs.def.
	* config/aarch64/aarch64-builtin-pairs.def: New file, declare the
	parirs of lowpart-operating and highpart-operating builtins.

2025-07-16  Alfie Richards  <alfie.richards@arm.com>

	* tree.cc (get_clone_versions): New function.
	(get_clone_attr_versions): New function.
	(get_version): New function.
	* tree.h (get_clone_versions): New function.
	(get_clone_attr_versions): New function.
	(get_target_version): New function.

2025-07-16  Alfie Richards  <alfie.richards@arm.com>

	* attribs.cc (make_attribute): Change arguments.
	* attribs.h (make_attribute): Change arguments.

2025-07-16  Alfie Richards  <alfie.richards@arm.com>

	* pretty-print.cc (format_phase_2): Add support for string_slice.
	* vec.cc (string_slice::tokenize): New static method.
	(string_slice::strcmp): New static method.
	(string_slice::strip): New method.
	(test_string_slice_initializers): New test.
	(test_string_slice_tokenize): Ditto.
	(test_string_slice_strcmp): Ditto.
	(test_string_slice_equality): Ditto.
	(test_string_slice_inequality): Ditto.
	(test_string_slice_invalid): Ditto.
	(test_string_slice_strip): Ditto.
	(vec_cc_tests): Add new tests.
	* vec.h (class string_slice): New class.

2025-07-16  Robin Dapp  <rdapp@ventanamicro.com>

	PR middle-end/121065
	* cfgexpand.cc (expand_debug_expr): Allow fixed-point modes for
	RDIV_EXPR.
	* optabs-tree.cc (optab_for_tree_code): Ditto.

2025-07-16  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/120297
	* config/riscv/riscv-vsetvl.def: Do not forget ratio demand of
	previous vsetvl.

2025-07-16  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_bsl2n_eon<mode>):
	New pattern.
	(*aarch64_sve2_eon_bsl2n_unpred<mode>): Likewise.

2025-07-16  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_unpred_nor<mode>):
	New define_insn.
	(*aarch64_sve2_nand_unpred<mode>): Likewise.

2025-07-16  Jeremy Rifkin  <jeremy@rifkin.dev>

	PR c/82134
	* gimplify.cc (gimplify_modify_expr): Add suppress_warning
	* tree-cfg.cc (do_warn_unused_result): Check warning_suppressed_p

2025-07-16  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AMX_AVX512_SET): Do not set AVX10.2.
	(OPTION_MASK_ISA2_AVX10_2_UNSET): Remove AMX-AVX512 unset.
	(OPTION_MASK_ISA2_AVX512F_UNSET): Unset AMX-AVX512.
	(ix86_handle_option): Imply AVX512F for AMX-AVX512.

2025-07-16  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md (avg<mode>3_floor): Add new
	pattern of avg3_floor for rvv DImode.

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

	* spellcheck.cc: Define INCLUDE_ALGORITHM.
	(CASE_COST, BASE_COST): Convert to...
	(case_cost, base_cost): ...these, in an anonymous namespace.
	(get_edit_distance): Update for above.  Use std::min rather than
	MIN.
	(get_edit_distance_cutoff): Likewise.  Use std::max rather than
	MAX.
	(selftest::test_edit_distances): Update for BASE_COST renaming.
	(selftest::get_old_cutoff): Likewise.  Use std::max.
	(selftest::assert_not_suggested_for): Use nullptr.
	(selftest::test_find_closest_string): Likewise.
	* spellcheck.h: Replace TYPE with StringLikeType in templates,
	and use CamelCase.

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

	PR sarif-replay/120792
	* auto-obstack.h: New file, based on material taken from
	pretty-print.cc.
	* diagnostic-digraphs.h
	(diagnostics::digraphs::digraph::set_description): New.
	(diagnostics::digraphs::node::set_label): New.
	* doc/libgdiagnostics/topics/compatibility.rst: Add
	LIBGDIAGNOSTICS_ABI_4.
	* doc/libgdiagnostics/topics/diagnostics.rst
	(diagnostic_finish_via_msg_buf): Document new entrypoint.
	* doc/libgdiagnostics/topics/execution-paths.rst
	(diagnostic_execution_path_add_event_via_msg_buf): Document new
	entrypoint.
	* doc/libgdiagnostics/topics/index.rst: Add message-buffers.rst.
	* doc/libgdiagnostics/topics/message-buffers.rst: New file.
	* doc/libgdiagnostics/topics/message-formatting.rst: Add note
	about message buffers.
	* doc/libgdiagnostics/topics/physical-locations.rst
	(diagnostic_add_location_with_label_via_msg_buf): Add.
	* doc/libgdiagnostics/tutorial/07-execution-paths.rst: Link to
	next section.
	* doc/libgdiagnostics/tutorial/08-message-buffers.rst: New file.
	* doc/libgdiagnostics/tutorial/index.rst: Add
	08-message-buffers.rst.
	* libgdiagnostics++.h (libgdiagnostics::message_buffer): New
	class.
	(libgdiagnostics::execution_path::add_event_via_msg_buf): New.
	(libgdiagnostics::diagnostic::add_location_with_label): New.
	(libgdiagnostics::diagnostic::finish_via_msg_buf): New.
	(libgdiagnostics::graph::set_description): New overload.
	(libgdiagnostics::graph::add_edge): New overload.
	(libgdiagnostics::node::set_label): New overload.
	* libgdiagnostics-private.h
	(private_diagnostic_execution_path_add_event_2): Drop decl.
	(private_diagnostic_execution_path_add_event_3): New decl.
	* libgdiagnostics.cc:  Include "pretty-print-format-impl.h",
	"pretty-print-markup.h", and "auto-obstack.h".
	(class copying_token_printer): New.
	(struct diagnostic_message_buffer): New.
	(class pp_element_message_buffer): New.
	(libgdiagnostics_path_event::libgdiagnostics_path_event): Replace
	params "gmsgid" and "args" with "msg_buf".
	(libgdiagnostics_path_event::print_desc): Reimplement using
	pp_element_message_buffer to replay m_msg_buf into "pp".
	(libgdiagnostics_path_event::m_desc_uncolored): Drop field.
	(libgdiagnostics_path_event::m_desc_colored): Drop field.
	(libgdiagnostics_path_event::msg_buf): New field.
	(diagnostic_execution_path::add_event_va): Reimplement.
	(diagnostic_execution_path::add_event_via_msg_buf): New.
	(diagnostic::add_location_with_label): New overload, using
	msg_buf.
	(diagnostic_manager::emit): Reimplement with...
	(diagnostic_manager::emit_va): ...this.
	(diagnostic_manager::emit_msg_buf): New.
	(FAIL_IF_NULL): Rename "p" to "ptr_arg".
	(diagnostic_finish_va): Update to use diagnostic_manager::emit_va.
	(diagnostic_graph::add_node_with_id): Rename "id" to "node_id".
	(diagnostic_graph_add_node): Likewise.
	(diagnostic_graph_add_edge): Rename "id" to "edge_id".
	(diagnostic_graph_get_node_by_id): Rename "id" to "node_id".
	(diagnostic_graph_get_edge_by_id): Rename "id" to "edge_id".
	(private_diagnostic_execution_path_add_event_2): Delete.
	(diagnostic_message_buffer_new): New public entrypoint.
	(diagnostic_message_buffer_release): Likewise.
	(diagnostic_message_buffer_append_str): Likewise.
	(diagnostic_message_buffer_append_text): Likewise.
	(diagnostic_message_buffer_append_byte): Likewise.
	(diagnostic_message_buffer_append_printf): Likewise.
	(diagnostic_message_buffer_append_event_id): Likewise.
	(diagnostic_message_buffer_begin_url): Likewise.
	(diagnostic_message_buffer_end_url): Likewise.
	(diagnostic_message_buffer_begin_quote): Likewise.
	(diagnostic_message_buffer_end_quote): Likewise.
	(diagnostic_message_buffer_begin_color): Likewise.
	(diagnostic_message_buffer_end_color): Likewise.
	(diagnostic_message_buffer_dump): Likewise.
	(diagnostic_finish_via_msg_buf): Likewise.
	(diagnostic_add_location_with_label_via_msg_buf): Likewise.
	(diagnostic_execution_path_add_event_via_msg_buf): Likewise.
	(diagnostic_graph_set_description_via_msg_buf): Likewise.
	(diagnostic_graph_add_edge_via_msg_buf): Likewise.
	(diagnostic_node_set_label_via_msg_buf): Likewise.
	(private_diagnostic_execution_path_add_event_3): New private
	entrypoint.
	* libgdiagnostics.h (LIBGDIAGNOSTICS_PARAM_FORMAT_STRING): New macro.
	(LIBGDIAGNOSTICS_PARAM_PRINTF_FORMAT_STRING): New macro.
	(diagnostic_message_buffer): New typedef.
	(LIBDIAGNOSTICS_HAVE_diagnostic_message_buffer): New define.
	(diagnostic_message_buffer_new): New decl.
	(diagnostic_message_buffer_release): New decl.
	(diagnostic_message_buffer_append_str): New decl.
	(diagnostic_message_buffer_append_text): New decl.
	(diagnostic_message_buffer_append_byte): New decl.
	(diagnostic_message_buffer_append_printf): New decl.
	(diagnostic_message_buffer_append_event_id): New decl.
	(diagnostic_message_buffer_begin_url): New decl.
	(diagnostic_message_buffer_end_url): New decl.
	(diagnostic_message_buffer_begin_quote): New decl.
	(diagnostic_message_buffer_end_quote): New decl.
	(diagnostic_message_buffer_begin_color): New decl.
	(diagnostic_message_buffer_end_color): New decl.
	(diagnostic_message_buffer_dump): New decl.
	(diagnostic_finish_via_msg_buf): New decl.
	(diagnostic_add_location_with_label_via_msg_buf): New decl.
	(diagnostic_execution_path_add_event_via_msg_buf): New decl.
	(diagnostic_graph_set_description_via_msg_buf): New decl.
	(diagnostic_graph_add_edge_via_msg_buf): New decl.
	(diagnostic_node_set_label_via_msg_buf): New decl.
	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): Drop
	private_diagnostic_execution_path_add_event_2.
	(LIBGDIAGNOSTICS_ABI_4): New.
	* libsarifreplay.cc (class annotation): Use
	libgdiagnostics::message_buffer rather than label_text.
	(add_any_annotations): Likewise.
	(sarif_replayer::handle_result_obj): Likewise.
	(make_plain_text_within_result_message): Likewise.
	(handle_thread_flow_location_object): Likewise.
	(handle_location_object): Likewise.
	(sarif_replayer::handle_graph_object): Likewise.
	(sarif_replayer::handle_node_object): Likewise.
	(sarif_replayer::handle_edge_object): Likewise.
	* pretty-print-format-impl.h (pp_token_list::push_back_byte): New
	decl.
	* pretty-print-markup.h (pp_markup::context::begin_url): New decl.
	(pp_markup::context::end_url): New decl.
	(pp_markup::context::add_event_id): New decl.
	* pretty-print.cc: Include "auto-obstack.h".
	(pp_token_list::push_back_byte): New.
	(struct auto_obstack): Move to auto-obstack.h.
	(default_token_printer): Make non-static.
	(pp_markup::context::begin_url): New.
	(pp_markup::context::end_url): New.
	(pp_markup::context::add_event_id): New.

2025-07-15  Umesh Kalappa  <ukalappa.mips@gmail.com>

	* config/riscv/riscv-cores.def (RISCV_CORE): Updated the supported march.
	* config/riscv/riscv-ext-mips.def (DEFINE_RISCV_EXT):
	New file added for mips conditional mov extension.
	* config/riscv/riscv-ext.def: Likewise.
	* config/riscv/t-riscv: Generates riscv-ext.opt
	* config/riscv/riscv-ext.opt: Generated file.
	* config/riscv/riscv.cc (riscv_expand_conditional_move): Updated for mips cmov
	and outlined some code that handle arch cond move.
	* config/riscv/riscv.md (mov<mode>cc): updated expand for MIPS CCMOV.
	* config/riscv/mips-insn.md: New file for mips-p8700 ccmov insn.
	* doc/riscv-ext.texi: Updated for mips cmov.

2025-07-15  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	* avoid-store-forwarding.cc (generate_bit_insert_sequence):
	Remove adjustment of bitfield insertion's starting position
	when BYTES_BIG_ENDIAN != BITS_BIG_ENDIAN.
	(process_store_forwarding): Update offset check in base reg
	initialization to take into account the target's endianness.

2025-07-15  Soumya AR  <soumyaa@nvidia.com>

	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
	Add AVOID_LDAPUR tuning flag.
	* config/aarch64/aarch64.cc (aarch64_adjust_generic_arch_tuning):
	Set AVOID_LDAPUR for architectures before armv8.8-a.
	(aarch64_override_options_internal): Apply generic tuning adjustments
	to generic_armv8_a_tunings and generic_armv9_a_tunings.
	* config/aarch64/aarch64.h (TARGET_ENABLE_LDAPUR): New macro to
	control LDAPUR usage based on RCPC2 and tuning flags.
	* config/aarch64/aarch64.md: Add enable_ldapur attribute.
	* config/aarch64/atomics.md (aarch64_atomic_load<mode>_rcpc): Modify
	to emit LDAPUR for cores with RCPC2.
	(*aarch64_atomic_load<ALLX:mode>_rcpc_zext): Likewise.
	(*aarch64_atomic_load<ALLX:mode>_rcpc_sext): Update constraint to Ust.
	* config/aarch64/tuning_models/cortexx925.h: Add AVOID_LDAPUR flag.
	* config/aarch64/tuning_models/neoversev2.h: Likewise.
	* config/aarch64/tuning_models/neoversev3.h: Likewise.
	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.

2025-07-15  Richard Biener  <rguenther@suse.de>
	    Richard Sandiford   <richard.sandiford@arm.com>

	PR tree-optimization/121059
	* tree-vect-stmts.cc (vectorizable_operation): Query
	scalar_cond_masked_set with the correct number of masks.

2025-07-15  Jakub Jelinek  <jakub@redhat.com>
	    Jason Merrill  <jason@redhat.com>

	PR c/44677
	* common.opt (Wunused-but-set-parameter=, Wunused-but-set-variable=):
	New options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Turn into
	aliases.
	* common.opt.urls: Regenerate.
	* diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Use
	OPT_Wunused_but_set_variable_ instead of OPT_Wunused_but_set_variable
	and OPT_Wunused_but_set_parameter_ instead of
	OPT_Wunused_but_set_parameter.
	* gimple-ssa-store-merging.cc (find_bswap_or_nop_1): Remove unused
	but set variable tmp.
	* ipa-strub.cc (pass_ipa_strub::execute): Cast named_args to
	(void) if ATTR_FNSPEC_DECONST_WATERMARK is not defined.
	* doc/invoke.texi (Wunused-but-set-parameter=,
	Wunused-but-set-variable=): Document new options.
	(Wunused-but-set-parameter, Wunused-but-set-variable): Adjust
	documentation now that they are just aliases.

2025-07-15  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>):
	Change gating and comment.

2025-07-15  Kyrylo Tkachov  <ktkachov@nvidia.com>

	Revert:
	2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (*eor3qdi4): New
	define_insn_and_split.

2025-07-15  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_and_combine):
	Extend from SVE_FULL_F to SVE_F.
	(*fcmuo<mode>_and_combine): Likewise.
	(*fcm<cmp_op><mode>_bic_combine): Likewise.
	(*fcm<cmp_op><mode>_nor_combine): Likewise.
	(*fcmuo<mode>_bic_combine): Likewise.
	(*fcmuo<mode>_nor_combine): Likewise.  Move the comment here to
	above fcmuo<mode>_bic_combine, since it applies to both patterns.

2025-07-15  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* tree.cc: Include memmodel.h.

2025-07-14  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-valu.md (vec_cmpu<mode>di_exec): Call gen_vec_cmp*,
	not gen_vec_cmpu*.

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

	Revert:
	2025-07-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121059
	* tree-vect-stmts.cc (vectorizable_operation): Record a
	loop mask for mask AND operations.

2025-07-14  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/vector.md (reduc_plus_scal_<mode>): Implement.
	(reduc_plus_scal_v2df): Implement.
	(reduc_plus_scal_v4sf): Implement.
	(REDUC_FMINMAX): New int iterator.
	(reduc_fminmax_name): New int attribute.
	(reduc_minmax): New code iterator.
	(reduc_minmax_name): New code attribute.
	(reduc_<reduc_fminmax_name>_scal_v2df): Implement.
	(reduc_<reduc_fminmax_name>_scal_v4sf): Implement.
	(reduc_<reduc_minmax_name>_scal_v2df): Implement.
	(reduc_<reduc_minmax_name>_scal_v4sf): Implement.
	(REDUCBIN): New code iterator.
	(reduc_bin_insn): New code attribute.
	(reduc_<reduc_bin_insn>_scal_v2di): Implement.
	(reduc_<reduc_bin_insn>_scal_v4si): Implement.
	(reduc_<reduc_bin_insn>_scal_v8hi): Implement.
	(reduc_<reduc_bin_insn>_scal_v16qi): Implement.

2025-07-14  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.cc (s390_option_override_internal): Remove override.

2025-07-14  Andrew Stubbs  <ams@baylibre.com>

	* config/gcn/gcn-valu.md (add<mode>3<exec_clobber>): Rename ...
	(add<mode>3<exec>): ... to this, remove the clobber, and change the
	instruction from v_add_co_u32 to v_add_u32.
	(add<mode>3_dup<exec_clobber>): Rename ...
	(add<mode>3_dup<exec>): ... to this, and likewise.
	(sub<mode>3<exec_clobber>): Rename ...
	(sub<mode>3<exec>): ... to this, and likewise
	* config/gcn/gcn.md (addsi3): Remove the DI clobber, and change the
	instruction from v_add_co_u32 to v_add_u32.
	(addsi3_scc): Likewise.
	(subsi3): Likewise, but for v_sub_co_u32.
	(muldi3): Likewise.

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

	PR tree-optimization/121059
	* tree-vect-stmts.cc (vectorizable_operation): Record a
	loop mask for mask AND operations.

2025-07-14  Pan Li  <pan2.li@intel.com>

	* match.pd: Make sure widen mul has twice bitsize
	of the inputs in SAT_MUL pattern.

2025-07-14  Uros Bizjak  <ubizjak@gmail.com>

	PR target/121015
	* config/i386/i386-features.cc (ix86_broadcast_inner): Check all
	0s/1s vectors with standard_sse_constant_p.

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

	PR target/120881
	* config.in: Regenerated.
	* configure: Likewise.
	* configure.ac: Add --enable-x86-64-mfentry.
	* config/i386/i386-options.cc (ix86_option_override_internal):
	Enable __fentry__ in 64-bit mode if ENABLE_X86_64_MFENTRY is set
	to 1.  Warn -pg without -mfentry with shrink wrapping enabled.
	* doc/install.texi: Document --enable-x86-64-mfentry.

2025-07-14  François-Xavier Coudert  <fxcoudert@gcc.gnu.org>

	PR target/120645
	* config/darwin-driver.cc: Account for latest macOS numbering
	scheme.

2025-07-14  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*vfwmacc_vf_<mode>): New pattern to
	handle both vfwmacc and vfwmsac.
	(*extend_vf_<mode>): New pattern that serves as an intermediate combine
	step.
	* config/riscv/vector-iterators.md (vsubel): New mode attribute. This is
	just the lower-case version of VSUBEL.
	* config/riscv/vector.md (@pred_widen_mul_<optab><mode>_scalar): Reorder
	and swap operands to match the RTL emitted by expand, i.e. first
	float_extend then vec_duplicate.

2025-07-14  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64-sme.md (@aarch64_sme_<faminmax_uns_op><mode>):
	New patterns.
	* config/aarch64/aarch64-sve-builtins-sme.def (svamin): New intrinsics.
	(svamax): New intrinsics.
	* config/aarch64/aarch64-sve-builtins-sve2.cc (class faminmaximpl): New
	class.
	(svamin): New function.
	(svamax): New function.

2025-07-14  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.h (PTA_PANTHERLAKE): Revmoe KL and WIDEKL.
	(PTA_CLEARWATERFOREST): Ditto.
	* doc/invoke.texi: Revise documentation.

2025-07-13  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120866
	* tree.cc: Add include to tm_p.h.

2025-07-13  Benjamin Wu  <bwu25@cs.washington.edu>

	* gimple.h (GTMA_DOES_GO_IRREVOCABLE): Fix typo.

2025-07-12  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (function_instance::~function_instance):
	Move down in source.
	(string_table::get_cgraph_node): New member function with
	logic broken out from ...
	(function_instance::get_cgraph_node): ... here.
	(match_with_target): Fix formating.
	(function_instance::match): Fix formating; do not use iterators
	after modifying map; remove incorrect set of warned flag.
	(autofdo_source_profile::offline_external_functions): Keep
	seen set up to date.
	(function_instance::read_function_instance): Fix formating.

2025-07-12  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/mmx.md (mov<V_32:mode>):
	Use nonimm_or_0_operand predicate for operand 1.
	(*mov<V_32:mode>_internal): Ditto.
	(movv2qi): Ditto.
	(*movv2qi_internal): Ditto.  Use ix86_hardreg_mov_ok
	in insn condition.

2025-07-12  Xi Ruoyao  <xry111@xry111.site>

	PR rtl-optimization/120983
	* lra-constraints.cc (process_alt_operands): Allow reloading
	user hard registers unless the insn is an asm.

2025-07-11  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc: Include "diagnostic-format-sarif.h",
	Replace include of "diagnostic-state.h" with includes of
	"diagnostic-digraphs.h" and "diagnostic-state-graphs.h".
	(html_generation_options::html_generation_options): Update for
	field renaming.
	(html_builder::m_body_element): New field.
	(html_builder::html_builder): Initialize m_body_element.
	(html_builder::maybe_make_state_diagram): Port from XML
	implementation to state graph implementation.
	(html_builder::make_element_for_diagnostic): Add any
	per-diagnostic graphs.
	(html_builder::add_graph): New.
	(html_builder::emit_global_graph): New.
	(html_output_format::report_global_digraph): New.
	* diagnostic-format-html.h
	(html_generation_options::m_show_state_diagram_xml): Replace
	with...
	(html_generation_options::m_show_state_diagrams_sarif): ...this.
	(html_generation_options::m_show_state_diagram_dot_src): Rename
	to...
	(html_generation_options::m_show_state_diagrams_dot_src): ...this.
	* diagnostic-format-sarif.cc: Include "diagnostic-digraphs.h" and
	"diagnostic-state-graphs.h".
	(sarif_builder::m_run_graphs): New field.
	(sarif_result::on_nested_diagnostic): Update call to
	make_location_object to pass arg by pointer.
	(sarif_builder::sarif_builder): Initialize m_run_graphs.
	(sarif_builder::report_global_digraph): New.
	(sarif_builder::make_result_object): Add any graphs to
	the result object.
	(sarif_builder::make_locations_arr): Update call to
	make_location_object to pass arg by pointer.
	(sarif_builder::make_location_object): Pass param "loc_mgr" by
	pointer rather than by reference so that it can be null, and
	handle this case.
	(copy_any_property_bag): New.
	(make_sarif_graph): New.
	(make_sarif_node): New.
	(make_sarif_edge): New.
	(sarif_property_bag::set_graph): New.
	(populate_thread_flow_location_object): Port from XML
	implementation to state graph implementation.
	(make_run_object): Store any graphs.
	(sarif_output_format::report_global_digraph): New.
	(sarif_generation_options::sarif_generation_options): Rename
	m_xml_state to m_state_graph.
	(selftest::test_make_location_object): Update for change to
	make_location_object.
	* diagnostic-format-sarif.h:
	(sarif_generation_options::m_xml_state): Replace with...
	(sarif_generation_options::m_state_graph): ...this.
	(class sarif_location_manager): Add forward decl.
	(diagnostics::digraphs::digraph): New forward decl.
	(diagnostics::digraphs::node): New forward decl.
	(diagnostics::digraphs::edge): New forward decl.
	(sarif_property_bag::set_graph): New decl.
	(class sarif_graph): New.
	(class sarif_node): New.
	(class sarif_edge): New.
	(make_sarif_graph): New decl.
	(make_sarif_node): New decl.
	(make_sarif_edge): New decl.
	* diagnostic-format-text.h
	(diagnostic_text_output_format::report_global_digraph): New.
	* diagnostic-format.h
	(diagnostic_output_format::report_global_digraph): New vfunc.
	* diagnostic-digraphs.cc: New file.
	* diagnostic-digraphs.h: New file.
	* diagnostic-metadata.h (diagnostics::digraphs::lazy_digraphs):
	New forward decl.
	(diagnostic_metadata::diagnostic_metadata): Initialize
	m_lazy_digraphs.
	(diagnostic_metadata::set_lazy_digraphs): New.
	(diagnostic_metadata::get_lazy_digraphs): New.
	(diagnostic_metadata::m_lazy_digraphs): New field.
	* diagnostic-output-spec.cc (sarif_scheme_handler::make_sink):
	Update for XML to state graph changes.
	(sarif_scheme_handler::make_sarif_gen_opts): Likewise.
	(html_scheme_handler::make_sink): Rename "show-state-diagram-xml"
	to "show-state-diagrams-sarif" and use pluralization consistently.
	* diagnostic-path.cc: Replace include of "xml.h" with
	"diagnostic-state-graphs.h".
	(diagnostic_event::maybe_make_xml_state): Replace with...
	(diagnostic_event::maybe_make_diagnostic_state_graph): ...this.
	* diagnostic-path.h (diagnostics::digraphs::digraph): New forward
	decl.
	(diagnostic_event::maybe_make_xml_state): Replace with...
	(diagnostic_event::maybe_make_diagnostic_state_graph): ...this.
	* diagnostic-state-graphs.cc: New file.
	* diagnostic-state-graphs.h: New file.
	* diagnostic-state-to-dot.cc: Port implementation from XML to
	state graphs.
	* diagnostic-state.h: Deleted file.
	* diagnostic.cc (diagnostic_context::report_global_digraph): New.
	* diagnostic.h (diagnostics::digraphs::lazy_digraph): New forward
	decl.
	(diagnostic_context::report_global_digraph): New decl.
	* doc/analyzer.texi (Debugging the Analyzer): Update to reflect
	change from XML to state graphs.
	* doc/invoke.texi ("sarif" diagnostics sink): Replace "xml-state"
	with "state-graphs".
	("experimental-html" diagnostics sink): Replace
	"show-state-diagrams-xml" with "show-state-diagrams-sarif"
	* doc/libgdiagnostics/topics/compatibility.rst
	(LIBGDIAGNOSTICS_ABI_3): New.
	* doc/libgdiagnostics/topics/graphs.rst: New file.
	* doc/libgdiagnostics/topics/index.rst: Add graphs.rst.
	* graphviz.h (node_id::operator=): New.
	* json.h (json::value::dyn_cast_string): New.
	(json::object::get_num_keys): New accessor.
	(json::object::get_key): New accessor.
	(json::string::dyn_cast_string): New.
	* libgdiagnostics++.h (class libgdiagnostics::graph): New.
	(class libgdiagnostics::node): New.
	(class libgdiagnostics::edge): New.
	(class libgdiagnostics::diagnostic::take_graph): New.
	(class libgdiagnostics::manager::take_global_graph): New.
	(class libgdiagnostics::graph::set_description): New.
	(class libgdiagnostics::graph::get_node_by_id): New.
	(class libgdiagnostics::graph::get_edge_by_id): New.
	(class libgdiagnostics::graph::add_edge): New.
	(class libgdiagnostics::node::set_label): New.
	(class libgdiagnostics::node::set_location): New.
	(class libgdiagnostics::node::set_logical_location): New.
	* libgdiagnostics-private.h: New file.
	* libgdiagnostics.cc: Define INCLUDE_STRING.  Include
	"diagnostic-digraphs.h", "diagnostic-state-graphs.h", and
	"libgdiagnostics-private.h".
	(struct diagnostic_graph): New.
	(struct diagnostic_node): New.
	(struct diagnostic_edge): New.
	(libgdiagnostics_path_event::libgdiagnostics_path_event): Add
	state_graph param.
	(libgdiagnostics_path_event::maybe_make_diagnostic_state_graph):
	New.
	(libgdiagnostics_path_event::m_state_graph): New field.
	(diagnostic_execution_path::add_event_va): Add state_graph param.
	(class prebuilt_digraphs): New.
	(diagnostic::diagnostic): Use m_graphs in m_metadata.
	(diagnostic::take_graph): New.
	(diagnostic::get_graphs): New accessor.
	(diagnostic::m_graphs): New field.
	(diagnostic_manager::take_global_graph): New.
	(diagnostic_execution_path_add_event): Update for new param to
	add_event_va.
	(diagnostic_execution_path_add_event_va): Likewise.
	(diagnostic_graph::add_node_with_id): New public entrypoint.
	(diagnostic_graph::add_edge_with_label): New public entrypoint.
	(diagnostic_manager_new_graph): New public entrypoint.
	(diagnostic_manager_take_global_graph): New public entrypoint.
	(diagnostic_take_graph): New public entrypoint.
	(diagnostic_graph_release): New public entrypoint.
	(diagnostic_graph_set_description): New public entrypoint.
	(diagnostic_graph_add_node): New public entrypoint.
	(diagnostic_graph_add_edge): New public entrypoint.
	(diagnostic_graph_get_node_by_id): New public entrypoint.
	(diagnostic_graph_get_edge_by_id): New public entrypoint.
	(diagnostic_node_set_location): New public entrypoint.
	(diagnostic_node_set_label): New public entrypoint.
	(diagnostic_node_set_logical_location): New public entrypoint.
	(private_diagnostic_execution_path_add_event_2): New private
	entrypoint.
	(private_diagnostic_graph_set_property_bag): New private
	entrypoint.
	(private_diagnostic_node_set_property_bag): New private
	entrypoint.
	(private_diagnostic_edge_set_property_bag): New private
	entrypoint.
	* libgdiagnostics.h (diagnostic_graph): New typedef.
	(diagnostic_node): New typedef.
	(diagnostic_edge): New typedef.
	(diagnostic_manager_new_graph): New decl.
	(diagnostic_manager_take_global_graph): New decl.
	(diagnostic_take_graph): New decl.
	(diagnostic_graph_release): New decl.
	(diagnostic_graph_set_description): New decl.
	(diagnostic_graph_add_node): New decl.
	(diagnostic_graph_add_edge): New decl.
	(diagnostic_graph_get_node_by_id): New decl.
	(diagnostic_graph_get_edge_by_id): New decl.
	(diagnostic_node_set_label): New decl.
	(diagnostic_node_set_location): New decl.
	(diagnostic_node_set_logical_location): New decl.
	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_3): New.
	* libsarifreplay.cc: Include "libgdiagnostics-private.h".
	(id_map): New "using".
	(sarif_replayer::report_invalid_sarif): Update for change to
	report_problem params.
	(sarif_replayer::report_unhandled_sarif): Likewise.
	(sarif_replayer::report_note): New.
	(sarif_replayer::report_problem): Pass param "ref" by
	pointer rather than reference and handle it being null.
	(sarif_replayer::maybe_get_property_bag): New.
	(sarif_replayer::maybe_get_property_bag_value): New.
	(sarif_replayer::handle_run_obj): Handle run-level "graphs" as per
	§3.14.20.
	(sarif_replayer::handle_result_obj): Handle result-level "graphs"
	as per §3.27.19.
	(handle_thread_flow_location_object): Optionally handle graphs
	stored in property "gcc/diagnostic_event/state_graph" as state
	graphs.
	(sarif_replayer::handle_graph_object): New.
	(sarif_replayer::handle_node_object): New.
	(sarif_replayer::handle_edge_object): New.
	(sarif_replayer::get_graph_node_by_id_property): New.
	* selftest-run-tests.cc (selftest::run_tests): Call
	selftest::diagnostic_graph_cc_tests and
	selftest::diagnostic_state_graph_cc_tests.
	* selftest.h (selftest::diagnostic_graph_cc_tests): New decl.
	(selftest::diagnostic_state_graph_cc_tests): New decl.

2025-07-11  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostic-digraphs.o and
	diagnostic-state-graphs.o.

2025-07-11  David Malcolm  <dmalcolm@redhat.com>

	* json.cc (json::object::clone): New.
	(json::object::clone_as_object): New.
	(json::array::clone): New.
	(json::float_number::clone): New.
	(json::integer_number::clone): New.
	(json::string::clone): New.
	(json::literal::clone): New.
	(selftest::test_cloning): New test.
	(selftest::json_cc_tests): Call it.
	* json.h (json::value::clone): New vfunc.
	(json::object::clone): New decl.
	(json::object::clone_as_object): New decl.
	(json::array::clone): New decl.
	(json::float_number::clone): New decl.
	(json::integer_number::clone): New decl.
	(json::string::clone): New decl.
	(json::literal::clone): New decl.

2025-07-11  David Malcolm  <dmalcolm@redhat.com>

	* json.cc (string::string): When constructing from pointer and
	length, ensure the new buffer is null-terminated.
	(selftest::test_strcmp): New.
	(selftest::json_cc_tests): Likewise.

2025-07-11  David Malcolm  <dmalcolm@redhat.com>

	* doc/libgdiagnostics/topics/compatibility.rst
	(_LIBGDIAGNOSTICS_ABI_2): Add missing anchor.
	* doc/libgdiagnostics/topics/diagnostic-manager.rst
	(diagnostic_manager_add_sink_from_spec): Add links to GCC's
	documentation of "-fdiagnostics-add-output=".  Fix parameter
	markup.
	(diagnostic_manager_set_analysis_target): Fix parameter markup.
	Add link to SARIF spec.
	* doc/libgdiagnostics/topics/logical-locations.rst: Markup fix.
	* doc/libgdiagnostics/tutorial/02-physical-locations.rst: Clarify
	wording of what "the source file" means, and that a range can't
	have multiple files.

2025-07-11  Vladimir N. Makarov  <vmakarov@redhat.com>

	* lra-constraints.cc (process_address_1): When changing base reg
	on a reg of the base class, fall back to reload of whole inner address.
	(process_address): Constrain the iteration number.

2025-07-11  Jakub Jelinek  <jakub@redhat.com>

	PR c++/119064
	* doc/invoke.texi (Wc++26-compat): Document.

2025-07-11  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/121027
	* config/aarch64/aarch64.cc (aarch64_evpc_sve_tbl): Punt on 2-input
	operations that can be handled by vec_perm.

2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (*eor3qdi4): New
	define_insn_and_split.

2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (*bcaxqdi4): New
	define_insn_and_split.

2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (eor3q<mode>4): Use VDQ_I mode
	iterator.

2025-07-11  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-simd.md (bcaxq<mode>4): Use VDQ_I mode
	iterator.

2025-07-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/121034
	* tree-vect-loop.cc (vectorizable_reduction): Cleanup
	reduction chain following code.

2025-07-11  Jan Hubicka  <hubicka@ucw.cz>

	* opts.cc (finish_options): Enable debug_nonbind_markers_p for
	auto-profile.
	* tree-cfg.cc (struct locus_discrim_map): Remove.
	(struct locus_discrim_hasher): Remove.
	(locus_discrim_hasher::hash): Remove.
	(locus_discrim_hasher::equal): Remove.
	(first_non_label_nondebug_stmt): Remove.
	(build_gimple_cfg): Do not allocate discriminator tables.
	(next_discriminator_for_locus): Remove.
	(same_line_p): Remove.
	(struct discrim_entry): New structure.
	(assign_discriminator): Rewrite.
	(assign_discriminators): Rewrite.

2025-07-11  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/114790
	* cgraph.cc (cgraph_update_edges_for_call_stmt_node): Resolve devirtualization
	if call statement was optimized out or turned to direct call.

2025-07-11  Jakub Jelinek  <jakub@redhat.com>
	    Martin Jambor  <mjambor@suse.cz>

	PR ipa/121023
	* ipa-fnsummary.cc (compute_fn_summary): Disallow signature changes
	on cfun->has_musttail functions.

2025-07-11  Hu, Lin1  <lin1.hu@intel.com>

	PR target/91384
	* config/i386/i386.md: Add new peeophole2 for optimize *negsi_1
	followed by *cmpsi_ccno_1 with APX_F.

2025-07-11  Richard Biener  <rguenther@suse.de>

	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Use
	the LHS of a scalar stmt to determine mode and whether it is FP.

2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
	Guard VF-based costing with !m_costing_for_scalar.

2025-07-10  Qing Zhao  <qing.zhao@oracle.com>

	* internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
	* internal-fn.def (ACCESS_WITH_SIZE): Update comments.
	* tree-object-size.cc (access_with_size_object_size): Update comments.
	Adjust the arguments per the new design.

2025-07-10  Qing Zhao  <qing.zhao@oracle.com>

	PR middle-end/121000
	* internal-fn.cc (expand_ACCESS_WITH_SIZE): Update comments.
	* internal-fn.def (ACCESS_WITH_SIZE): Update comments.
	* tree-object-size.cc (access_with_size_object_size): Update comments.
	Get the element_size from the 6th argument directly.

2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve2.md (aarch64_gather_ld1q): Replace with...
	(@aarch64_gather_ld1q<mode>): ...this, parameterizing based on mode.
	* config/aarch64/aarch64-sve-builtins-sve2.cc
	(svld1q_gather_impl::expand): Update accordingly.
	(svst1q_scatter_impl::expand): Use aarch64_sve_reinterpret
	instead of force_lowpart_subreg.

2025-07-10  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc: Include output.h.
	(function_instance::set_call_location): Also sanity check
	that location is known.
	(raw_symbol_name): Two new static functions.
	(dump_inline_stack): Use it.
	(string_table::get_index_by_decl): Likewise.
	(function_instance::get_cgraph_node): Likewise.
	(function_instance::get_function_instance_by_decl): Fix typo
	in warning; use raw names; fix lineno decoding.
	(match_with_target): Add containing funciton parameter;
	correctly output function and call location in warning.
	(function_instance::lookup_count): Fix warning locations.
	(function_instance::match): Fix warning locations; avoid
	crash with mismatched callee; do not warn about broken callsites
	twice.
	(autofdo_source_profile::offline_external_functions): Use
	raw_assembler_name.
	(walk_block): Use raw_assembler_name.

2025-07-10  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/121014
	* cfgexpand.cc (expand_debug_expr): Assert FLOAT_MODE_P.
	* optabs-tree.cc (optab_for_tree_code): Assert FLOAT_TYPE_P.
	* tree-vect-loop.cc (vect_get_loop_len): Use EXACT_DIV_EXPR.

2025-07-10  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/118734
	* config/riscv/constraints.md (Wdm): Use tunable for Wdm
	constraint.
	* config/riscv/riscv-protos.h (emit_avltype_insn): Declare.
	(can_be_broadcasted_p): Rename to...
	(can_be_broadcast_p): ...this.
	* config/riscv/predicates.md: Use renamed function.
	(strided_load_broadcast_p): Declare.
	* config/riscv/riscv-selftests.cc (run_broadcast_selftests):
	Only run broadcast selftest if strided broadcasts are OK.
	* config/riscv/riscv-v.cc (emit_avltype_insn): New function.
	(sew64_scalar_helper): Only emit a pred_broadcast if the new
	tunable says so.
	(can_be_broadcasted_p): Rename to...
	(can_be_broadcast_p): ...this and use new tunable.
	* config/riscv/riscv.cc (struct riscv_tune_param): Add strided
	broad tunable.
	(strided_load_broadcast_p): Implement.
	* config/riscv/vector.md: Use strided_load_broadcast_p () and
	work around 64-bit broadcast on rv32 targets.

2025-07-10  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_fusion_pairs): Add new cases.
	(riscv_set_is_add): New function.
	(riscv_set_is_addi, riscv_set_is_adduw, riscv_set_is_shNadd): Likewise.
	(riscv_set_is_shNadduw): Likewise.
	(riscv_macro_fusion_pair_p): Add new fusion cases.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp): Fail for non-canonical
	gconds.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_build_slp_instance): Do not use
	SLP_TREE_VECTYPE to determine the conversion back to the
	reduction IV.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Avoid
	vect_is_simple_use and record a vector type if we come
	up with one.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_load_store_type): Do not use
	vect_is_simple_use to fill gather/scatter offset operand
	vectype and dt.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_model_reduction_cost): Get SLP
	node instead of stmt_info and use that when recording costs.

2025-07-10  Kyrylo Tkachov  <ktkachov@nvidia.com>

	PR target/120999
	* config/aarch64/aarch64-sve2.md (*aarch64_sve2_nor<mode>):
	Adjust movprfx alternative.

2025-07-10  Richard Sandiford  <richard.sandiford@arm.com>

	* doc/sourcebuild.texi (aarch64_sve2_hw, aarch64_sve2p1_hw): Document.
	* config/aarch64/aarch64.cc (aarch64_evpc_hvla): Extend to
	BYTES_BIG_ENDIAN.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_analyze_stmt): Remove stmt-info
	and need_to_vectorize arguments.
	* tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
	Adjust.
	* tree-vect-stmts.cc (can_vectorize_live_stmts): Remove
	stmt_info argument and remove non-SLP path.
	(vect_analyze_stmt): Remove stmt_info and need_to_vectorize
	argument and prune paths no longer reachable.
	(vect_transform_stmt): Adjust.

2025-07-10  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/x86-tune.def: Change "Tunning the" to "tuning" in
	comment and use semicolon instead of dot in comment.
	* loop-unroll.cc (decide_unroll_stupid): Comment spelling fix,
	tunning -> tuning.

2025-07-10  Jakub Jelinek  <jakub@redhat.com>

	* tree-vect-loop.cc (scale_profile_for_vect_loop): Comment
	spelling fix: bellow -> below.
	* ipa-polymorphic-call.cc (record_known_type): Likewise.
	* config/i386/x86-tune.def: Likewise.
	* config/riscv/vector.md (*vsetvldi_no_side_effects_si_extend):
	Likewise.
	* tree-scalar-evolution.cc (iv_can_overflow_p): Likewise.
	* ipa-devirt.cc (add_type_duplicate): Likewise.
	* tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Likewise.
	* gimple-ssa-sccopy.cc: Likewise.
	* cgraphunit.cc: Likewise.
	* graphite.h (struct poly_dr): Likewise.
	* ipa-reference.cc (ignore_edge_p): Likewise.
	* tree-ssa-alias.cc (ao_compare::compare_ao_refs): Likewise.
	* profile-count.h (profile_probability::probably_reliable_p):
	Likewise.
	* ipa-inline-transform.cc (inline_call): Likewise.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_dissolve_slp_only_groups): Remove.
	(vect_analyze_loop_2): Do not call it.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_active_double_reduction_p): Remove.
	(vect_analyze_loop_operations): Remove.
	(vect_analyze_loop_2): Do not call it.

2025-07-10  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_determine_vf_for_stmt_1): Rename
	to ...
	(vect_determine_vectype_for_stmt_1): ... this and only set
	STMT_VINFO_VECTYPE.  Fail for single-element vector types.
	(vect_determine_vf_for_stmt): Rename to ...
	(vect_determine_vectype_for_stmt): ... this and only set
	STMT_VINFO_VECTYPE. Fail for single-element vector types.
	(vect_determine_vectorization_factor): Rename to ...
	(vect_set_stmts_vectype): ... this and only set STMT_VINFO_VECTYPE.
	(vect_update_vf_for_slp): Remove.
	(vect_analyze_loop_operations): Remove walk over stmts.
	(vect_analyze_loop_2): Call vect_set_stmts_vectype instead of
	vect_determine_vectorization_factor.  Set vectorization factor
	from LOOP_VINFO_SLP_UNROLLING_FACTOR.  Fail if vect_detect_hybrid_slp
	detects hybrid stmts or when vect_make_slp_decision finds
	nothing to SLP.
	* tree-vect-slp.cc (vect_detect_hybrid_slp): Move check
	whether we have any hybrid stmts here from vect_update_vf_for_slp
	* tree-vect-stmts.cc (vect_analyze_stmt): Remove loop over
	stmts.
	* tree-vectorizer.h (vect_detect_hybrid_slp): Update.

2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_simd_valid_imm): Account
	for FLOAT_WORDS_BIG_ENDIAN when building a floating-point value.

2025-07-09  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_adjust_guessed_profile): Add forgotten
	if (dump_file) guard.

2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_sve_index_series_p): New
	function, split out from...
	(aarch64_simd_valid_imm): ...here.  Account for the different
	SVE and Advanced SIMD element orders on big-endian targets.
	Check each vector in a structure mode.

2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>

	* read-rtl-function.cc (function_reader::read_rtx_operand_r): Use
	hard_regno_nregs to work out REG_NREGS for hard registers.

2025-07-09  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add
	new case SS_MINUS.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op ss_minus.

2025-07-09  Richard Sandiford  <richard.sandiford@arm.com>

	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
	to the subreg_lsb.

2025-07-09  Jan Dubiec  <jdx@o2.pl>

	PR target/109286
	* config.gcc: Include elfos.h before h8300/h8300.h.
	* config/h8300/h8300.h (INIT_SECTION_ASM_OP): Override
	default version from elfos.h.
	(FINI_SECTION_ASM_OP): Ditto.
	(ASM_DECLARE_FUNCTION_NAME): Ditto.
	(ASM_GENERATE_INTERNAL_LABEL): Macro removed because it was
	being overridden in elfos.h anyway.
	(ASM_OUTPUT_SKIP): Ditto.

2025-07-09  Icen Zeyada  <Icen.Zeyada2@arm.com>

	PR tree-optimization/119196
	* match.pd: Allow scalar optimizations with bitwise AND/OR/XOR to apply to vectors.

2025-07-09  Icen Zeyada  <Icen.Zeyada2@arm.com>

	PR tree-optimization/119196
	* match.pd: Merge multiple vec_cond_expr in a single one for
	bit_and, bit_ior and bit_xor.

2025-07-09  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120642
	* config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Do not do
	constant AVL propagation for xtheadvector.

2025-07-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_reduction): Get the
	output vector type from slp_for_stmt_info.
	* tree-vect-stmts.cc (vect_analyze_stmt): Bail out earlier
	for PURE_SLP_STMT when doing loop stmt analysis.

2025-07-09  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (struct scale): New structure.
	(add_scale): Also record weights.
	(afdo_adjust_guessed_profile): Compute robust average
	of scales and cap by max count in function.

2025-07-09  Jan Hubicka  <hubicka@ucw.cz>

	* tree-inline.cc (initialize_cfun): Use num and den for scaling.

2025-07-09  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (get_original_name): Fix loop walking the
	suffixes.

2025-07-09  Christophe Lyon  <christophe.lyon@linaro.org>

	* config/arm/arm_neon.h: Remove useless push/pop pragmas.

2025-07-09  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/120922
	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Support range
	for partial vectors.

2025-07-09  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/120922
	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Don't set range
	for partial vectors.

2025-07-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xtensa_b4const_or_zero):
	Remove.
	(xtensa_b4const): Add a case where the value is 0, and rename
	to xtensa_b4const_or_zero.
	(xtensa_rtx_costs): Fix to also consider the result of
	xtensa_b4constu().

2025-07-08  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.md (stack_protect_get_tpsi): New insn.
	(stack_protect_get_tpdi): New insn.
	(stack_protect_set): Use new insn.
	(stack_protect_test): Use new insn.

2025-07-08  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/120461
	* config/riscv/riscv-v.cc (emit_vlmax_insn_lra): Do not emit
	vsetivli for XTHeadVector.

2025-07-08  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/113829
	* config/riscv/riscv-vector-builtins.cc (registered_function::overloaded_hash):
	Skip non-type arguments.

2025-07-08  Andreas Schwab  <schwab@suse.de>

	PR target/120995
	* config/riscv/sync.md (zacas_atomic_cas_value_strong<mode>):
	Allow op3 to be zero.

2025-07-08  Richard Biener  <rguenther@suse.de>

	* config/i386/x86-tune.def (X86_TUNE_AVX512_MASKED_EPILOGUES):
	New tunable, default on for m_ZNVER4 and m_ZNVER5.
	* config/i386/i386.cc (ix86_vector_costs::finish_cost): With
	X86_TUNE_AVX512_MASKED_EPILOGUES and when the main loop
	had a vectorization factor > 2 use a masked epilogue when
	possible and when not obviously problematic.

2025-07-08  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vector_costs::suggested_epilogue_mode):
	Add masked output parameter and return m_masked_epilogue.
	(vector_costs::m_masked_epilogue): New tristate flag.
	(vector_costs::vector_costs): Initialize m_masked_epilogue.
	* tree-vect-loop.cc (vect_analyze_loop_1): Pass in masked
	flag to optionally initialize can_use_partial_vectors_p.
	(vect_analyze_loop): For epilogues also get whether to use
	a masked epilogue for this loop from the target and use
	that for the first epilogue mode we try.

2025-07-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120358
	* tree-ssa-structalias.cc (get_constraint_for_1): Adjust
	pruning of sub-variables according to the imprecise
	known start offset.

2025-07-08  Alexandre Oliva  <oliva@adacore.com>

	* config/vxworks-dummy.h (TARGET_VXWORKS_VAROFF): New.
	(TARGET_VXWORKS_GOTTPIC): New.
	* config/vxworks.h (TARGET_VXWORKS_VAROFF): Override.
	(TARGET_VXWORKS_GOTTPIC): Likewise.
	* config/i386/i386.cc (output_set_got): Disable VxWorks6 GOT
	sequence on VxWorks7.
	(legitimize_pic_address): Accept relative addressing of
	labels on VxWorks7.
	(ix86_delegitimize_address_1): Likewise.
	(ix86_output_addr_diff_elt): Likewise.
	* config/i386/i386.md (tablejump): Likewise.
	(set_got, set_got_labelled): Set no-red-zone flag on VxWorks7.
	* config/i386/predicates.md (gotoff_operand): Test
	TARGET_VXWORKS_VAROFF.

2025-07-08  Alexandre Oliva  <oliva@adacore.com>

	* config.gcc (vxworks-dummy.h): Add to aarch64-*-* as well.

2025-07-07  Qing Zhao  <qing.zhao@oracle.com>

	Revert:
	2025-07-07  Qing Zhao  <qing.zhao@oracle.com>

	* doc/extend.texi: Extend counted_by attribute to pointer fields in
	structures. Add one more requirement to pointers with counted_by
	attribute.

2025-07-07  Qing Zhao  <qing.zhao@oracle.com>

	Revert:
	2025-07-01  Qing Zhao  <qing.zhao@oracle.com>

	* tree-object-size.cc (access_with_size_object_size): Update comments
	for pointers with .ACCESS_WITH_SIZE.
	(collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN
	for pointers with .ACCESS_WITH_SIZE.

2025-07-07  Martin Jambor  <mjambor@suse.cz>

	* value-range.h (class irange): Mark member function verify_range
	with override.
	(class prange): Mark member function verify_range with final override.
	(class frange): Mark member function verify_range with override.

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

	PR target/120888
	* config/xtensa/xtensa.cc (xtensa_promote_function_mode): New.
	(TARGET_PROMOTE_FUNCTION_MODE): Use.
	(TARGET_PROMOTE_PROTOTYPES): Removed.

2025-07-07  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.md: Update UNSPECs
	* config/s390/vector.md (fmax<mode>3): New expander.
	(fmin<mode>3): New expander.
	* config/s390/vx-builtins.md (*fmin<mode>): New insn.
	(vfmin<mode>): Redefined to use new insn.
	(*fmax<mode>): New insn.
	(vfmax<mode>): Redefined to use new insn.

2025-07-07  Jason Merrill  <jason@redhat.com>

	PR c++/120917
	* doc/invoke.texi: Add -Wno-abbreviated-auto-in-template-arg.

2025-07-07  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64.md (popcountti2): Add TARGET_SVE path.

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

	PR tree-optimization/120817
	* tree-ssa-dse.cc (initialize_ao_ref_for_dse): Use
	ao_ref_init_from_ptr_and_range with unknown size for
	.MASK_STORE and .MASK_LEN_STORE.

2025-07-07  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-protos.h (riscv_expand_usmul): Add new func
	decl.
	* config/riscv/riscv.cc (riscv_expand_xmode_usmul): Add new func
	to expand Xmode SAT_MUL.
	(riscv_expand_non_xmode_usmul): Ditto but for non-Xmode.
	(riscv_expand_usmul): Add new func to implment SAT_MUL.
	* config/riscv/riscv.md (usmul<mode>3): Add new pattern to match
	standard name usmul.

2025-07-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Add new match pattern for unsigned SAT_MUL.
	* tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_mul):
	new decl for pattern match func.
	(match_unsigned_saturation_mul): Add new func to match unsigned
	SAT_MUL.
	(math_opts_dom_walker::after_dom_children): Try to match
	unsigned SAT_MUL on NOP.

2025-07-07  Pan Li  <pan2.li@intel.com>

	* internal-fn.cc (commutative_binary_fn_p): Add new case
	for SAT_MUL.
	* internal-fn.def (SAT_MUL): Add new IFN_SAT_MUL.
	* optabs.def (OPTAB_NL): Remove fixed point limitation.

2025-07-07  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.md: Removed unused unspecs.
	* config/s390/vector.md (avg<mode>3_ceil): New expander.
	(uavg<mode>3_ceil): New expander.
	(smul<mode>3_highpart): New expander.
	(umul<mode>3_highpart): New expander.
	* config/s390/vx-builtins.md (vec_umulh<mode>): Remove unspec.
	(vec_smulh<mode>): Remove unspec.

2025-07-07  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Extend
	to handle partial FP modes.
	(@aarch64_pred_fcm<cmp_op><mode>): Likewise.
	(@aarch64_pred_fcmuo<mode>): Likewise.
	(*one_cmpl<mode>3): Rename to...
	(@aarch64_pred_one_cmpl<mode>_z): ... this.
	* config/aarch64/aarch64.cc (aarch64_emit_sve_fp_cond): Allow the
	target and governing predicates to have different modes.
	(aarch64_emit_sve_or_fp_conds): Likewise.
	(aarch64_emit_sve_invert_fp_cond): Likewise.
	(aarch64_expand_sve_vec_cmp_float): Likewise.

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

	PR tree-optimization/118891
	* tree-vect-stmts.cc (supportable_widening_operation): Swap the
	hi and lo internal functions on big-endian targets.

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

	* ext-dce.cc (ext_dce_process_uses): Apply is_constant directly
	to the subreg_lsb.

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

	* config/aarch64/aarch64-sve.md (@aarch64_sve_set_neonq_<mode>):
	Use %Z instead of lowpart_subreg.  Tweak formatting.

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

	PR target/118891
	* config/aarch64/aarch64.cc (aarch64_expand_vector_init): Fix the
	ZIP1 operand order for big-endian targets.

2025-07-07  Jan Hubicka  <hubicka@ucw.cz>

	* tree-ssa-live.cc (dump_scope_block): Print discriminators
	of inlined functions.

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

	PR target/120670
	PR target/120683
	* config/i386/i386-expand.cc (expand_set_or_cpymem_via_loop):
	Don't generate the loop if the loop count is 1.
	(expand_cpymem_epilogue): Use move_by_pieces.
	(setmem_epilogue_gen_val): New.
	(expand_setmem_epilogue): Use store_by_pieces.
	(expand_small_cpymem_or_setmem): Choose cpymem mode from MOVE_MAX.
	For memset with vector and the size is smaller than the vector
	size, first try the narrower vector, otherwise, use the scalar
	value.
	(promote_duplicated_reg): Duplicate the scalar value for vector.
	(ix86_expand_set_or_cpymem): Always expand vector-version of
	memset for vector_loop.  Use misaligned prologue if alignment
	isn't needed and destination isn't aligned.  Always initialize
	vec_promoted_val from the promoted scalar value for vector_loop.

2025-07-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120709
	* builtins.cc (expand_builtin_crc_table_based): Error out
	instead of asserting the 3rd argument is an integer constant.
	* internal-fn.cc (expand_crc_optab_fn): Likewise.
	* doc/extend.texi (crc): Document requirement of the poly argument
	being a constant.

2025-07-06  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-mcus.def: -mmcu= takes lower case MCU names.
	* doc/avr-mmcu.texi: Rebuild.

2025-07-06  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-mcus.def (avr32da28S, avr32da32S, avr32da48S)
	(avr64da28S, avr64da32S, avr64da48S avr64da64S)
	(avr128da28S, avr128da32S, avr128da48S, avr128da64S): Add devices.
	* doc/avr-mmcu.texi: Rebuild.

2025-07-06  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120951
	* tree-call-cdce.cc (use_internal_fn): For non-call exceptions
	with EQ_EXPR can throw for floating point types, then create
	the EQ_EXPR seperately.

2025-07-06  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120921
	* tree-cfg.cc (verify_gimple_assign_single): Reject constant and address expression LHS.
	For non-empty vector constructors, make sure the LHS is an is_gimple_reg.

2025-07-06  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc
	(autofdo_source_profile::read): Scale cutoff.
	(read_autofdo_file): Initialize cutoff
	* coverage.cc (read_counts_file): Initialize cutoff to 1.
	* gcov-io.h (struct gcov_summary): Add cutoff field.
	* ipa-inline.cc (inline_small_functions): mac_count can be non-zero
	also with auto_profile.
	* lto-cgraph.cc (output_profile_summary): Write cutoff
	and sum_max.
	(input_profile_summary): Read cutoff and sum max.
	(merge_profile_summaries): Initialize and scale global cutoffs
	and sum max.
	* profile-count.cc: Include profile.h
	(profile_count::force_nonzero): move here from ...; use cutoff.
	* profile-count.h: (profile_count::force_nonzero): ... here.

2025-07-06  Jan Hubicka  <hubicka@ucw.cz>

	* profile-count.cc (profile_count::operator*): fix overflow check.

2025-07-05  Alexandre Oliva  <oliva@adacore.com>

	* config/rs6000/vxworks.h (SUBTARGET_DRIVER_SELF_SPECS):
	Redefine to select word size matching TARGET_VXWORKS64.
	(TARGET_VXWORKS64): Redefine in terms of TARGET_64BIT.

2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/118241
	* config/riscv/riscv.md (prefetch): Add alternative "r".

2025-07-04  Vineet Gupta  <vineetg@rivosinc.com>

	* config/riscv/predicates.md (prefetch_operand): mack 5 bits.

2025-07-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>

	* config/sh/predicates.md
	(treg_set_expr_not_const01): call sh_recog_treg_set_expr_not_01
	* config/sh/sh-protos.h
	(sh_recog_treg_set_expr_not_01): New function
	* config/sh/sh.cc (sh_recog_treg_set_expr_not_01): Likewise

2025-07-04  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/118948
	* fold-const.cc (tree_expr_nonnegative_warnv_p): Use
	error_operand_p instead of checking for error_mark_node directly.

2025-07-04  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case SS_PLUS.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op ss_plus.

2025-07-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120944
	* tree-ssa-sccvn.cc (vn_reference_lookup_3): Gate optimizations
	invalid when volatile is involved.

2025-07-04  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt: Add period.
	* common.opt.urls: Regenerate.

2025-07-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120927
	* tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
	Do not force a DRs base alignment when analyzing an
	epilog loop.  Check whether the step preserves alignment
	for all VFs possibly involved sofar.

2025-07-04  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.md (crc_combine): Avoid nested
	subreg.

2025-07-04  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Add basic
	instrumentation to all cases where fusion is detected.  Fix
	minor formatting goofs found in the process.

2025-07-04  panciyan  <panciyan@eswincomputing.com>

	* match.pd: Add signed scalar SAT_ADD IMM form2 matching.

2025-07-03  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.cc (expand_perm_with_merge): Add size change cases.
	(expand_perm_with_pack): New function.
	(vectorize_vec_perm_const_1): Wire up new function.

2025-07-03  Co-authored-by: Daniel Barboza  <dbarboza@ventanamicro.com>
	    Co-authored-by: Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR target/118886
	* config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Check
	for fusion being disabled earlier.  If PREV is already fused,
	then it can't be fused again.  Be more selective about fusing
	when the destination registers do not match.  Don't fuse into
	loads that aren't scalar integer modes.  Revamp store pair
	commit support.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (aarch64_cbz<optab><mode>1): Move
	above rules for CBB<cond>/CBH<cond>/CB<cond>.
	(*aarch64_tbz<optab><mode>1): Likewise.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_cb_rhs): New function.
	* config/aarch64/aarch64.cc (aarch64_cb_rhs): Likewise.
	* config/aarch64/aarch64.md (cbranch<mode>4): Rename to ...
	(cbranch<GPI:mode>4): ...here, and emit CMPBR if possible.
	(cbranch<SHORT:mode>4): New expand rule.
	(aarch64_cb<INT_CMP:code><GPI:mode>): New insn rule.
	(aarch64_cb<INT_CMP:code><SHORT:mode>): Likewise.
	* config/aarch64/constraints.md (Uc0): New constraint.
	(Uc1): Likewise.
	(Uc2): Likewise.
	* config/aarch64/iterators.md (cmpbr_suffix): New mode attr.
	(INT_CMP): New code iterator.
	(cmpbr_imm_constraint): New code attr.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64-option-extensions.def (cmpbr): New
	option.
	* config/aarch64/aarch64.h (TARGET_CMPBR): New macro.
	* doc/invoke.texi (cmpbr): New option.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (far_branch): Replace 0/1 with
	no/yes.
	(aarch64_bcond): Handle rename.
	(aarch64_cbz<optab><mode>1): Likewise.
	(*aarch64_tbz<optab><mode>1): Likewise.
	(@aarch64_tbz<optab><ALLI:mode><GPI:mode>): Likewise.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (BRANCH_LEN_P_1MiB): New constant.
	(BRANCH_LEN_N_1MiB): Likewise.
	(BRANCH_LEN_P_32KiB): Likewise.
	(BRANCH_LEN_N_32KiB): Likewise.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (condjump): Rename to ...
	(aarch64_bcond): ...here.
	(*compare_condjump<GPI:mode>): Rename to ...
	(*aarch64_bcond_wide_imm<GPI:mode>): ...here.
	(aarch64_cb<optab><mode>): Rename to ...
	(aarch64_cbz<optab><mode>1): ...here.
	(*cb<optab><mode>1): Rename to ...
	(*aarch64_tbz<optab><mode>1): ...here.
	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Rename to ...
	(@aarch64_tbz<optab><ALLI:mode><GPI:mode>): ...here.
	(restore_stack_nonlocal): Handle rename.
	(stack_protect_combined_test): Likewise.
	* config/aarch64/aarch64-simd.md (cbranch<mode>4): Likewise.
	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Likewise.
	* config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): Likewise.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (cbranch<mode>4): Reformat.
	(cbranchcc4): Likewise.
	(condjump): Likewise.
	(*compare_condjump<GPI:mode>): Likewise.
	(aarch64_cb<optab><mode>1): Likewise.
	(*cb<optab><mode>1): Likewise.
	(tbranch_<code><mode>3): Likewise.
	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise.

2025-07-03  Karl Meakin  <karl.meakin@arm.com>

	* config/aarch64/aarch64.md (condjump): Move.
	(*compare_condjump<GPI:mode>): Likewise.
	(aarch64_cb<optab><mode>1): Likewise.
	(*cb<optab><mode>1): Likewise.
	(tbranch_<code><mode>3): Likewise.
	(@aarch64_tb<optab><ALLI:mode><GPI:mode>): Likewise.

2025-07-03  Siddhesh Poyarekar  <siddhesh@gotplt.org>

	PR tree-optimization/120780
	* tree-object-size.cc (inner_at_offset,
	get_wholesize_for_memref): New functions.
	(addr_object_size): Call get_wholesize_for_memref.

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

	PR target/120936
	* config/i386/i386.cc (x86_print_call_or_nop): Add a label
	argument and use it to print label.
	(x86_function_profiler): Emit label only when __mcount_loc
	section is used.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (get_combined_location): Handle negative
	offsets; output better diagnostics.
	(get_relative_location_for_locus): Reutrn -1 for unknown location.
	(function_instance::get_cgraph_node): New member function.
	(match_with_target): New function.
	(dump_stmt): New function.
	(function_instance::lookup_count): New function.
	(mark_expr_locations): New function.
	(function_instance::match): New function.
	(autofdo_source_profile::offline_external_functions): Do
	not repeat renaming; manage two worklists and do matching.
	(autofdo_source_profile::offline_unrealized_inlines): Simplify.
	(afdo_set_bb_count): do not look for lost discriminators.
	(auto_profile): Do not ICE when profile reading failed.
	* common.opt (Wauto-profile): New warning flag
	* doc/invoke.texi (-Wauto-profile): Document.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-fnsummary.cc (analyze_function_body): For loop
	heuristics use header count instead of preheader count.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (update_profiling_info): Watch for division by zero.

2025-07-03  Alex Coplan  <alex.coplan@arm.com>

	* config/aarch64/aarch64-sve.md
	(vec_load_lanes<mode><vsingle>): Expand else operand in
	subvector mode, as per optab documentation.
	(vec_mask_load_lanes<mode><vsingle>): Add missing mode for
	operand 3.
	* config/aarch64/predicates.md (aarch64_maskload_else_operand):
	Remove const_int.

2025-07-03  Alex Coplan  <alex.coplan@arm.com>

	* doc/md.texi (Standard Names): Clarify mode of else operand for
	vec_mask_load_lanesmn optab.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (cs_interesting_for_ipcp_p): Handle
	correctly GLOBAL0 afdo counts.
	(ipcp_cloning_candidate_p): Do not rule out nodes
	!node->optimize_for_size_p ().
	(good_cloning_opportunity_p): Handle afdo counts
	as non-zero.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (hint_time_bonus): Return sreal and avoid
	conversions to integer.
	(good_cloning_opportunity_p): Avoid sreal to integer
	conversions
	(perform_estimation_of_a_value): Update.

2025-07-03  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_hot_bb_threshod): New global
	variable.
	(maybe_hot_afdo_count_p): New function.
	(autofdo_source_profile::read): Do not set up dump file;
	set afdo_hot_bb_threshod.
	(afdo_annotate_cfg): Handle partial training.
	(afdo_callsite_hot_enough_for_early_inline):
	Use maybe_hot_afdo_count_p.
	(auto_profile_offline::execute): Read autofdo file.
	* auto-profile.h (maybe_hot_afdo_count_p): Declare.
	(afdo_hot_bb_threshold): Declare.
	* coverage.cc (read_counts_file): Also set gcov_profile_info.
	(coverage_init): Do not read autofdo file.
	* opts.cc (enable_fdo_optimizations): Add autofdo parameter;
	do not set flag_branch_probabilities and flag_profile_values
	with it.
	(common_handle_option): Update.
	* passes.cc (finish_optimization_passes): Do not end branch
	prob here.
	(pass_manager::dump_profile_report): Also mark change after
	autofdo pass.
	* profile.cc: Include auto-profile.h
	(gcov_profile_info): New global variable.
	(struct afdo_fdo_record): New struture.
	(compute_branch_probabilities): Record afdo profile.
	(end_branch_prob): Dump afdo/fdo profile comparsion.
	* profile.h (gcov_profile_info): Declarre.
	* tree-profile.cc (tree_profiling): Call end_branch_prob
	(pass_ipa_tree_profile::gate): Also enable with autoFDO

2025-07-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118669
	* tree-vect-stmts.cc (vectorizable_load): Emit loads
	with proper (element) alignment.
	(vectorizable_store): Likewise.

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

	PR target/120908
	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
	gen_tls_local_dynamic_64.
	* config/i386/i386.md (*tls_global_dynamic_64_largepic): Add
	RDI clobber and use it to generate LEA.
	(*tls_local_dynamic_64_<mode>): Likewise.
	(*tls_local_dynamic_base_64_largepic): Likewise.
	(@tls_local_dynamic_64_<mode>): Add a clobber.

2025-07-02  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120908
	* config/i386/i386.cc (legitimize_tls_address): Pass RDI to
	gen_tls_global_dynamic_64.
	* config/i386/i386.md (*tls_global_dynamic_64_<mode>): Add RDI
	clobber and use it to generate LEA.
	(@tls_global_dynamic_64_<mode>): Add a clobber.

2025-07-02  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR target/120356
	* config/riscv/riscv-v.cc
	(expand_const_vector_interleaved_stepped_npatterns):
	Fix ASHIFT to LSHIFTRT insn.

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

	PR tree-optimization/120927
	* tree-vect-loop.cc (vect_analyze_loop): Stop querying
	further epilogues after one with partial vectors.

2025-07-02  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/driver-i386.cc (host_detect_local_cpu): Change
	to AMX-FP8 for Diamond Rapids.

2025-07-01  Qing Zhao  <qing.zhao@oracle.com>

	* tree-object-size.cc (access_with_size_object_size): Update comments
	for pointers with .ACCESS_WITH_SIZE.
	(collect_object_sizes_for): Propagate size info through GIMPLE_ASSIGN
	for pointers with .ACCESS_WITH_SIZE.

2025-07-01  Qing Zhao  <qing.zhao@oracle.com>

	* doc/extend.texi: Extend counted_by attribute to pointer fields in
	structures. Add one more requirement to pointers with counted_by
	attribute.

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

	PR c++/120471
	* tree.h (address_invariant_p): New function.
	* tree.cc (address_invariant_p): New function.
	(tree_invariant_p_1): Use it for ADDR_EXPR handling.  Formatting
	tweak.

2025-07-01  Remi Machet  <rmachet@nvidia.com>

	* config/aarch64/aarch64-simd.md (*shrn_to_subhn_<mode>): Add pattern
	converting mvn+shrn into mvni+subhn.

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

	PR middle-end/120608
	* passes.def (pass_musttail): Move before pass_sanopt.
	* tree-tailcall.cc (empty_eh_cleanup): Handle GIMPLE_RESX
	which doesn't throw externally through recursion on single
	eh edge (if any and cnt still allows that).
	(find_tail_calls): Add ESUCC, IGNORED_EDGES and MUST_SEE_BBS
	arguments.  Handle GIMPLE_CONDs for non-simplified cleanups with
	finally_tmp temporaries both on backward and forward walks, adjust
	recursive call.
	(tree_optimize_tail_calls_1): Adjust find_tail_calls callers.

2025-07-01  Ezra Sitorus  <ezra.sitorus@arm.com>

	* config/aarch64/aarch64-sys-regs.def: Copy from Binutils.

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

	PR debug/120902
	* print-tree.cc (debug with const tree_node *): Call debug_tree
	instead of debug.

2025-07-01  Yuao Ma  <c8ef@outlook.com>

	* fold-const-call.cc (fold_const_call_ss): Constant fold for
	single arg pi-based trigonometric builtins.
	(fold_const_call_sss): Constant fold for double arg pi-based
	trigonometric builtins.
	* fold-const.cc (negate_mathfn_p): asinpi/atanpi is odd func.
	(tree_call_nonnegative_warnv_p): acospi always non-neg,
	asinpi/atanpi non-neg iff arg non-neg.
	* tree-call-cdce.cc (can_test_argument_range): Add acospi/asinpi.
	(edom_only_function): Add acospi/asinpi/cospi/sinpi.
	(get_no_error_domain): Add acospi/asinpi.

2025-06-30  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/120242
	PR rtl-optimization/120627
	PR rtl-optimization/120736
	PR rtl-optimization/120813
	* ext-dce.cc (ext_dce_process_uses): Remove some cases where we
	unnecessarily expanded live sets for promoted subregs.
	(expand_changed_pseudos): New function.
	(reset_subreg_promoted_p): Use it.

2025-06-30  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR target/120714
	* config/riscv/riscv.cc (riscv_allocate_and_probe_stack_space):
	Fix SP-addresses in REG_CFA_DEF_CFA notes for stack-clash case.

2025-06-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-color.cc: Use nullptr rather than NULL.
	* diagnostic-format-sarif.cc: Likewise.
	* diagnostic-format-text.cc: Likewise.
	* diagnostic-macro-unwinding.cc: Likewise.
	* diagnostic-path-output.cc: Likewise.
	* diagnostic-path.cc: Likewise.
	* diagnostic-show-locus.cc: Likewise.
	* diagnostic-spec.cc: Likewise.
	* diagnostic.cc: Likewise.
	* lazy-diagnostic-path.cc: Likewise.
	* simple-diagnostic-path.cc: Likewise.
	* tree-diagnostic-client-data-hooks.cc: Likewise.

2025-06-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-sarif.cc
	(sarif_builder::maybe_make_kinds_array): Convert
	diagnostic_event::meaning enums to enum class.
	* diagnostic-path-output.cc (path_label::get_text): Likewise.
	* diagnostic-path.cc
	(diagnostic_event::meaning::maybe_get_verb_str): Likewise.
	(diagnostic_event::meaning::maybe_get_noun_str): Likewise.
	(diagnostic_event::meaning::maybe_get_property_str): Likewise.
	* diagnostic-path.h (diagnostic_event::verb): Likewise.
	(diagnostic_event::noun): Likewise.
	(diagnostic_event::property): Likewise.
	(diagnostic_event::meaning): Likewise.

2025-06-30  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Drop diagnostic-format-json.o.
	* common.opt (fdiagnostics-format=): Drop
	"json|json-stderr|json-file".
	(diagnostics_output_format): Drop values "json", "json-stderr",
	and "json-file".
	* diagnostic-format-json.cc: Delete file.
	* diagnostic-format.h
	(diagnostic_output_format_init_json_stderr): Delete.
	(diagnostic_output_format_init_json_file): Delete.
	* diagnostic.cc (diagnostic_output_format_init): Delete cases for
	DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR and
	DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
	* diagnostic.h (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): Delete.
	(DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE): Delete.
	* doc/invoke.texi: Remove references to json output format.
	* doc/ux.texi: Likewise.
	* selftest-run-tests.cc (selftest::run_tests): Drop call to
	deleted selftest::diagnostic_format_json_cc_tests.
	* selftest.h (selftest::diagnostic_format_json_cc_tests): Delete.

2025-06-30  Mark Wielaard  <mark@klomp.org>

	* common.opt.urls: Regenerate.

2025-06-30  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add
	new case US_MINUS.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op us_minus.

2025-06-30  Peter Bergner  <bergner@linux.ibm.com>

	PR target/109116
	* config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT.
	(vsx_disassemble_pair): Expand into a vector register sized subreg.
	(mma_disassemble_acc): Likewise.
	(*vsx_disassemble_pair): Delete.
	(*mma_disassemble_acc): Likewise.

2025-06-30  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/sifive-7.md: Add primary vector pipeline model
	for SiFive 7 series.

2025-06-30  Kito Cheng  <kito.cheng@sifive.com>

	PR target/120659
	* config/riscv/sifive-7.md: Add B extension, fp16 and missing
	scalar instruction type for sifive-7 pipeline model.

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

	* tree-vect-slp.cc (vect_build_slp_2): Handle ternary
	and call operators when swapping operands.

2025-06-30  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*vfnmsub_<mode>,*vfnmadd_<mode>): Handle
	both add and acc variants.
	* config/riscv/vector.md (*pred_mul_neg_<optab><mode>_scalar_undef): New
	pattern.

2025-06-30  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-cores.def (gb10): New entry.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options): Document the above.

2025-06-30  Jakub Jelinek  <jakub@redhat.com>

	PR c/120520
	PR c/117023
	* builtin-attrs.def (DEF_LIST_INT_INT_INT): Define it and
	use for 1,2,3.
	(ATTR_NONNULL_IF123_LIST): New DEF_ATTR_TREE_LIST.
	(ATTR_NONNULL_4_IF123_LIST): Likewise.
	* builtins.def (BUILT_IN_FWRITE): Use ATTR_NONNULL_4_IF123_LIST
	instead of ATTR_NONNULL_LIST.
	(BUILT_IN_FWRITE_UNLOCKED): Likewise.
	* gimple.h (infer_nonnull_range_by_attribute): Add another optional
	tree * argument defaulted to NULL.
	* gimple.cc (infer_nonnull_range_by_attribute): Add OP3 argument,
	handle 3 argument nonnull_if_nonzero attribute.
	* builtins.cc (validate_arglist): Handle 3 argument nonnull_if_nonzero
	attribute.
	* tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Likewise.
	* ubsan.cc (instrument_nonnull_arg): Adjust
	infer_nonnull_range_by_attribute caller, handle 3 argument
	nonnull_if_nonzero attribute.
	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
	Handle 3 argument nonnull_if_nonzero attribute.
	* doc/extend.texi (nonnull_if_nonzero): Document 3 argument version
	of the attribute.

2025-06-30  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/120733
	* lra-eliminations.cc (move_plus_up): Check whether lowpart_subreg
	returns null.

2025-06-30  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (autofdo_source_profile::offline_external_functions):
	Add missing newline in dump.
	(afdo_propagate_edge): If annotated BB or edge has too small count
	bump it up to mitigate profile imprecisions caused by vectorizer.
	(afdo_propagate): Increase number of iteraitons and fix dump

2025-06-30  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (struct decl_lineno): Turn to structure; add
	location.
	(dump_inline_stack): Update.
	(get_inline_stack): Update.
	(get_relative_location_for_locus): Fixup formating.
	(function_instance::get_function_instance_by_decl): Add
	LOCATION parameter; improve dumping.
	(autofdo_source_profile::get_callsite_total_count): Improve dumping;
	update.
	(walk_block): Update.
	(autofdo_source_profile::offline_unrealized_inlines): Update.
	(autofdo_source_profile::get_count_info): Update.

2025-06-30  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120840
	* config/i386/i386-expand.cc (ix86_expand_call): Don't mark
	hard frame pointer as clobber.
	* config/i386/i386-options.cc (ix86_set_func_type): Use
	TYPE_NO_CALLEE_SAVED_REGISTERS instead of
	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
	* config/i386/i386.cc (ix86_function_ok_for_sibcall): Remove the
	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP check.
	(ix86_save_reg): Merge TYPE_NO_CALLEE_SAVED_REGISTERS and
	TYPE_PRESERVE_NONE with TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
	* config/i386/i386.h (call_saved_registers_type): Remove
	TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
	* doc/extend.texi: Update no_callee_saved_registers documentation.

2025-06-30  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/riscv-vsetvl.cc (bitmap_union_of_preds_with_entry):
	Refactor.

2025-06-30  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/pipeline-checker: New file.

2025-06-28  H.J. Lu  <hjl.tools@gmail.com>

	PR debug/120849
	* print-tree.cc (debug): New.
	* print-tree.h (debug): Likewise.

2025-06-28  Georg-Johann Lay  <avr@gjlay.de>

	PR target/120856
	* config/avr/avr.cc (avr_hard_regno_mode_ok) [-mno-lra]: Deny
	hard regs >= 4 bytes that overlap Y.

2025-06-28  Jan Hubicka  <hubicka@ucw.cz>
	    Kugan Vivekanandarajah   <kvivekananda@nvidia.com>

	* auto-profile.cc (get_original_name): Only strip suffixes introduced
	after auto-fdo annotation.
	(string_table::get_index_by_decl):  Simplify.
	(string_table::add_name): New member function.
	(string_table::read): Micro-optimize allocation.
	(function_instance::get_function_instance_by_decl): Dump reasons
	for failure; try to compensate lost discriminators.
	(function_instance::merge): Simplify sanity check; do not check
	for realized flag; fix merging of targets.
	(function_instance::offline_if_in_set): Simplify.
	(function_instance::dump): Sanity check that names are consistent.
	(autofdo_source_profile::offline_external_functions): Also handle
	stripping suffixes.
	(walk_block): Move up in source.
	(autofdo_source_profile::offline_unrealized_inlines): Also compute
	realized functions.
	(autofdo_source_profile::get_function_instance_by_name_index): Simplify.
	(autofdo_source_profile::add_function_instance): Simplify.
	(autofdo_source_profile::read): Do not strip suffxies; error on duplicates.
	(mark_realized_functions): Remove.
	(auto_profile): Do not call mark_realized_functions.
	* passes.def: Move auto_profile_offline before free_lang_data.

2025-06-27  Eric Botcazou  <ebotcazou@adacore.com>

	* gimple-fold.cc (fold_const_aggregate_ref_1) <COMPONENT_REF>:
	Bail out immediately if the reference has reverse storage order.
	* tree-ssa-sccvn.cc (fully_constant_vn_reference_p): Likewise.

2025-06-27  Jakub Jelinek  <jakub@redhat.com>

	PR c++/120777
	* gimple-fold.cc (gimple_get_virt_method_for_vtable): Revert
	2018-09-18 changes.

2025-06-27  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/98735
	PR c++/118904
	* tree.cc (struct identifier_hash): New type.
	(struct identifier_count_traits): New traits.
	(internal_label_nums): New hash map.
	(generate_internal_label): New function.
	(prefix_for_internal_label): New function.
	* tree.h (IDENTIFIER_INTERNAL_P): New macro.
	(generate_internal_label): Declare.
	(prefix_for_internal_label): Declare.
	* ubsan.cc (ubsan_ids): Remove.
	(ubsan_type_descriptor): Use generate_internal_label.
	(ubsan_create_data): Likewise.

2025-06-27  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (function_instance::set_name,
	function_instance::set_realized, function_instnace::realized_p,
	function_instance::set_in_worklist,
	function_instance::clear_in_worklist,
	function_instance::in_worklist_p): New member functions.
	(function_instance::in_worklist, function_instance::realized_):
	new.
	(get_relative_location_for_locus): Break out from ....
	(get_relative_location_for_stmt): ... here.
	(function_instance::~function_instance): Sanity check that
	removed function is not in worklist.
	(function_instance::merge): Do not offline realized instances.
	(function_instance::offline): Make private; add duplicate functions
	to worklist rather then merging immediately.
	(function_instance::offline_if_in_set):  Cleanup.
	(function_instance::remove_external_functions): Likewise.
	(function_instance::offline_if_not_realized): New member function.
	(autofdo_source_profile::offline_external_functions): Handle delayed
	functions.
	(autofdo_source_profile::offline_unrealized_inlines): New member function.
	(walk_block): New function.
	(mark_realized_functions): New function.
	(afdo_annotate_cfg): Fix dump.
	(auto_profile): Mark realized functions and offline rest; do not compute
	fn summary.

2025-06-27  Georg-Johann Lay  <avr@gjlay.de>

	PR target/113934
	* config/avr/avr.opt (-mlra): Turn on per default.

2025-06-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120808
	* tree-vect-slp-patterns.cc (vect_match_expression_p):
	Take a code_helper and also match calls.
	(addsub_pattern::recognize): Handle .FMA/.FMS pairs
	in addition to PLUS/MINUS.
	(addsub_pattern::build): Adjust.

2025-06-27  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (vect_chooses_same_modes_p): New
	overload.
	* tree-vect-stmts.cc (vect_chooses_same_modes_p): Likewise.
	* tree-vect-loop.cc (vect_analyze_loop): Prune epilogue
	analysis further when not using partial vectors.

2025-06-27  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop): Consider AVX512
	style masking when computing supports_partial_vectors.

2025-06-27  Tamar Christina  <tamar.christina@arm.com>

	* doc/extend.texi: Fix typo in unsed attribute docs.

2025-06-27  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120830
	* config/i386/i386-features.cc (ix86_get_vector_cse_mode): Handle
	vector broadcast source.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (elimination_2sp_occurred_p): Rename
	from...
	(elimination_fp2sp_occured_p): ... this.  Adjust all uses.
	(lra_eliminate_regs_1): Don't require a from-frame-pointer
	elimination to set it.
	(update_reg_eliminate): Likewise to test it.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (lra_eliminate_regs_1): Adjust autoinc
	addresses that are MEMs.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (lra_update_fp2sp_elimination): Reorder
	and regroup related statements.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (lra_update_fp2sp_elimination):
	Avoid sp offsets in further fp2sp eliminations...
	(update_reg_eliminate): ... and restore to_rtx before assert
	checking.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (lra_update_fp2sp_elimination):
	Compute complete live ranges and recompute slots' live ranges
	if needed.
	* lra-lives.cc (lra_reset_live_range_list): New.
	(lra_complete_live_ranges): New.
	* lra-spills.cc (assign_spill_hard_regs): Reject empty live
	ranges.
	(add_pseudo_to_slot): Likewise.
	(lra_recompute_slots_live_ranges): New.
	* lra-int.h (lra_reset_live_range_list): Declare.
	(lra_complete_live_ranges): Declare.
	(lra_recompute_slots_live_ranges): Declare.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* genoutput.cc (scan_operands): Make MATCH_SCRATCHes eliminable.

2025-06-27  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	* lra-eliminations.cc (lra_update_fp2sp_elimination):
	Inactivate the unused fp2sp elimination right away.

2025-06-26  Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/pru/pru.md (reg move splitter): New splitter for 64-bit
	register moves into two 32-bit moves.
	(const_int move splitter): New splitter for 64-bit constant
	integer moves into two 32-bit moves.

2025-06-26  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostic_context::set_permissive_option): New.
	(diagnostic_context::set_fatal_errors): New.
	(diagnostic_context::set_internal_error_callback): New.
	(diagnostic_context::set_adjust_diagnostic_info_callback): New.
	(diagnostic_context::inhibit_notes): New.
	(diagnostic_context::m_opt_permissive): Make private.
	(diagnostic_context::m_fatal_errors): Likewise.
	(diagnostic_context::m_internal_error): Likewise.
	(diagnostic_context::m_adjust_diagnostic_info): Likewise.
	(diagnostic_context::m_inhibit_notes_p): Likewise.
	(diagnostic_inhibit_notes): Delete.
	* opts.cc (common_handle_option): Use
	diagnostic_context::set_fatal_errors.
	* toplev.cc (internal_error_function): Use
	diagnostic_context::set_internal_error_callback.
	(general_init): Likewise.
	(process_options): Use diagnostic_context::inhibit_notes.

2025-06-26  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/120809
	* diagnostic-format-html.cc
	(html_builder::maybe_make_state_diagram): Bulletproof against the
	SVG generation failing.
	* xml.cc (xml::printer::push_element): Assert that the ptr is
	nonnull.
	(xml::printer::append): Likewise.

2025-06-26  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-output-spec.cc (sarif_scheme_handler::make_sink):
	Split out creation of sarif_generation_options and
	sarif_serialization_format into...
	(sarif_scheme_handler::make_sarif_gen_opts): ...this...
	(sarif_scheme_handler::make_sarif_serialization_object): ...and
	this.

2025-06-26  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/120828
	* config/riscv/riscv-v.cc (prepare_ternary_operands): Handle the
	vector-scalar case.

2025-06-26  Uros Bizjak  <ubizjak@gmail.com>

	PR target/120719
	* config/i386/i386.md (crc_rev<SWI124:mode>si4): New expander.

2025-06-26  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.md: Fix build issue.

2025-06-26  Martin Jambor  <mjambor@suse.cz>

	* lto-ltrans-cache.h (class ltrans_file_cache): Remove member prefix.
	* lto-ltrans-cache.cc (ltrans_file_cache::ltrans_file_cache): Do
	not initialize member prefix.

2025-06-26  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.md: Add comment and reorder include
	files.

2025-06-26  Martin Jambor  <mjambor@suse.cz>

	* tree-vect-stmts.cc (supportable_indirect_convert_operation):
	Remove an unused shadowed variable.

2025-06-26  Martin Jambor  <mjambor@suse.cz>

	* tree-vect-slp.cc (cond_expr_maps): Remove.

2025-06-26  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (function_instance::merge): Add TODO.
	(autofdo_source_profile::offline_external_functions):
	Do not use range for on the worklist.
	* timevar.def (TV_IPA_AUTOFDO_OFFLINE): New timevar.

2025-06-26  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (name_index_set, name_index_map): New types.
	(dump_afdo_loc): New function.
	(dump_inline_stack): Simplify.
	(function_instance::merge): Merge recursively inlined functions;
	offline if necessary; collect new fnctions.
	(function_instance::offline): New member function.
	(function_instance::offline_if_in_set): New member function.
	(function_instance::remove_external_functions): New member function.
	(function_instance::dump): New member function.
	(function_instance::debug): New member function.
	(function_instance::dump_inline_stack): New member function.
	(function_instance::find_icall_target_map): Use removed_icall_target.
	(function_instance::remove_icall_target): Only mark icall target removed.
	(autofdo_source_profile::offline_external_functions): New function.
	(function_instance::read_function_instance): Record inlined_to pointers;
	use -1 for unknown head counts.
	(autofdo_source_profile::get_function_instance_by_name_index): New
	function.
	(autofdo_source_profile::add_function_instance): New member function.
	(autofdo_source_profile::read): Do not leak memory; fix formatting.
	(read_profile): Fix formatting.
	(afdo_annotate_cfg): LIkewise.
	(class pass_ipa_auto_profile_offline): New pass.
	(make_pass_ipa_auto_profile_offline): New function.
	* passes.def (pass_ipa_auto_profile_offline): Add
	* tree-pass.h (make_pass_ipa_auto_profile): Declare

2025-06-26  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120819
	* config/i386/i386-features.cc (ix86_broadcast_inner): Also handle
	all 1s float vector constant.

2025-06-26  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120816
	* config/i386/i386-features.cc (remove_redundant_vector_load):
	Handle REG_EH_REGION note in DEF_INSN.

2025-06-26  H.J. Lu  <hjl.tools@gmail.com>

	PR target/119628
	* config/i386/i386-expand.cc (ix86_expand_call): Call
	ix86_type_no_callee_saved_registers_p instead of looking up
	no_callee_saved_registers attribute.
	* config/i386/i386-options.cc (ix86_set_func_type): Look up
	preserve_none attribute.  Check preserve_none attribute for
	interrupt attribute.  Don't check no_caller_saved_registers nor
	no_callee_saved_registers conflicts here.
	(ix86_set_func_type): Check no_callee_saved_registers before
	checking no_caller_saved_registers attribute.
	(ix86_set_current_function): Allow SSE with
	no_caller_saved_registers attribute.
	(ix86_handle_call_saved_registers_attribute): Check preserve_none,
	no_callee_saved_registers and no_caller_saved_registers conflicts.
	(ix86_gnu_attributes): Add preserve_none attribute.
	* config/i386/i386-protos.h (ix86_type_no_callee_saved_registers_p):
	New.
	* config/i386/i386.cc
	(x86_64_preserve_none_int_parameter_registers): New.
	(ix86_using_red_zone): Don't use red-zone when there are no
	caller-saved registers with SSE.
	(ix86_type_no_callee_saved_registers_p): New.
	(ix86_function_ok_for_sibcall): Also check TYPE_PRESERVE_NONE
	and call ix86_type_no_callee_saved_registers_p instead of looking
	up no_callee_saved_registers attribute.
	(ix86_comp_type_attributes): Call
	ix86_type_no_callee_saved_registers_p instead of looking up
	no_callee_saved_registers attribute.  Return 0 if preserve_none
	attribute doesn't match in 64-bit mode.
	(ix86_function_arg_regno_p): For cfun with TYPE_PRESERVE_NONE,
	use x86_64_preserve_none_int_parameter_registers.
	(init_cumulative_args): Set preserve_none_abi.
	(function_arg_64): Use x86_64_preserve_none_int_parameter_registers
	with preserve_none attribute.
	(setup_incoming_varargs_64): Use
	x86_64_preserve_none_int_parameter_registers with preserve_none
	attribute.
	(ix86_save_reg): Treat TYPE_PRESERVE_NONE like
	TYPE_NO_CALLEE_SAVED_REGISTERS.
	(ix86_nsaved_sseregs): Allow saving XMM registers for
	no_caller_saved_registers attribute.
	(ix86_compute_frame_layout): Likewise.
	(x86_this_parameter): Use
	x86_64_preserve_none_int_parameter_registers with preserve_none
	attribute.
	* config/i386/i386.h (ix86_args): Add preserve_none_abi.
	(call_saved_registers_type): Add TYPE_PRESERVE_NONE.
	(machine_function): Change call_saved_registers to 3 bits.
	* doc/extend.texi: Add preserve_none attribute.  Update
	no_caller_saved_registers attribute to remove -mgeneral-regs-only
	restriction.

2025-06-25  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-features.cc (ix86_place_single_vector_set):
	Add debug dump.
	(replace_vector_const): Likewise.
	(remove_redundant_vector_load): Likewise.

2025-06-25  Luis Silva  <luiss@synopsys.com>

	* config/arc/arc.md (<su_optab>mulvsi4): New define_expand.
	(<su_optab>mulsi3_Vcmp): New define_insn.

2025-06-25  Luis Silva  <luiss@synopsys.com>

	* config/arc/arc.cc (arc_select_cc_mode): Handle multiplication
	results compared against zero, selecting CC_Zmode.
	* config/arc/arc.md (*mulsi3_cmp0): New define_insn.
	(*mulsi3_cmp0_noout): New define_insn.

2025-06-25  Shahab Vahedi  <shahab@synopsys.com>

	* config/arc/arc.md (subsi3_v, subvsi4, subsi3_c): New patterns.

2025-06-25  Shahab Vahedi  <shahab@synopsys.com>

	* config/arc/arc-modes.def (CC_V): New mode.
	* config/arc/arc-protos.h (arc_gen_unlikely_cbranch): New
	function declaration.
	* config/arc/arc.cc (arc_gen_unlikely_cbranch): New
	function.
	(get_arc_condition_code): Handle new mode.
	* config/arc/arc.md (addvsi3_v, addvsi4, addsi3_c, uaddvsi4): New
	patterns.
	* config/arc/predicates.md (proper_comparison_operator): Handel
	the new V_mode.
	(equality_comparison_operator): Likewise.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* diagnostic-path-output.cc (path_label::get_effects): Mark as
	final override.
	* diagnostic-format-html.cc
	(html_output_format::after_diagnostic): Likewise.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* gimple-range-op.cc
	(gimple_range_op_handler::maybe_builtin_call): Use
	CFN_BUILT_IN_ISINF instead of BUILT_IN_ISINF.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* value-relation.h (class dom_oracle): Mark member function
	next_relation as override.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* tree-ssa-propagate.h (class substitute_and_fold_engine): Mark
	member functions value_of_expr and range_of_expr as override.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* range-op-mixed.h (class operator_plus): Mark member function
	overflow_free_p as final override.
	(class operator_minus): Likewise.
	(class operator_mult): Likewise.
	* range-op-ptr.cc (class pointer_plus_operator): Mark member
	function lhs_op1_relation as final override.
	* range-op.cc (class operator_div::): Mark member functions
	op2_range and update_bitmask as final override.
	(class operator_logical_and): Mark member functions fold_range,
	op1_range and op2_range as final override.  Remove unnecessary
	virtual.
	(class operator_logical_or): Likewise.
	(class operator_logical_not): Mark member functions fold_range and
	op1_range as final override.  Remove unnecessary virtual.
	formatting easier.
	(class operator_absu): Mark member functions wi_fold as final
	override.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* gimple-ssa-sccopy.cc (class pass_sccopy): Mark member functions
	gate and execute as final override.

2025-06-25  Martin Jambor  <mjambor@suse.cz>

	* avoid-store-forwarding.cc (class
	pass_rtl_avoid_store_forwarding): Mark member function gate as
	final override.

2025-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* value-relation.cc (relation_to_code): Remove.

2025-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* value-range.cc (frange::verify_range): Constify.
	(irange::verify_range): Constify.
	* value-range.h (vrange::verify_range): New.
	(irange::verify_range): Make public.
	(prange::verify_range): Make public.
	(prange::verify_range): Make public.
	(value_range::verify_range): New.

2025-06-25  Andrew MacLeod  <amacleod@redhat.com>

	* value-range.cc (irange::get_bitmask): Return original mask if
	result is unknown.
	(assert_snap_result): New.
	(test_irange_snap_bounds): New.
	(range_tests_misc): Call test_irange_snap_bounds.

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

	PR tree-optimization/109892
	* tree-vect-loop.cc (check_reduction_path): Handle fma.
	(vectorizable_reduction): Apply FOLD_LEFT_REDUCTION code
	generation constraints.

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

	PR tree-optimization/120808
	* tree-vectorizer.h (compatible_calls_p): Add flag to
	indicate a FMA/FMS pair is allowed.
	* tree-vect-slp.cc (compatible_calls_p): Likewise.
	(vect_build_slp_tree_1): Allow mixed .FMA/.FMS as two-operator.
	(vect_build_slp_tree_2): Handle calls in two-operator SLP build.
	* tree-vect-slp-patterns.cc (compatible_complex_nodes_p):
	Adjust.

2025-06-25  Alfie Richards  <alfie.richards@arm.com>

	* tree-ssa-loop-ivopts.cc (constant_multiple_of): Change
	tree_to_aff_combination to tree_to_aff_combination_expand and add
	parameter to take ivopts_data.
	(get_computation_aff_1): Change parameters and calls to include
	ivopts_data.
	(get_computation_aff): Ditto.
	(get_computation_at) Ditto.:
	(get_debug_computation_at) Ditto.:
	(get_computation_cost) Ditto.:
	(rewrite_use_nonlinear_expr) Ditto.:
	(rewrite_use_address) Ditto.:
	(rewrite_use_compare) Ditto.:
	(remove_unused_ivs) Ditto.:

2025-06-25  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/120745
	* rtl-ssa/changes.cc (process_uses_of_deleted_def): Rewrite to
	handle deletions of non-degenerate phis.

2025-06-25  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120815
	* common/config/i386/i386-common.cc (processor_alias_table):
	Replace CPU_SLM/PTA_NEHALEM with CPU_HASWELL/PTA_HASWELL for
	PROCESSOR_INTEL.
	* config/i386/i386-options.cc (processor_cost_table): Replace
	intel_cost with alderlake_cost.
	* config/i386/x86-tune-costs.h (intel_cost): Removed.
	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Treat
	PROCESSOR_INTEL like PROCESSOR_ALDERLAKE.
	(ix86_adjust_cost): Likewise.
	* doc/invoke.texi: Update -mtune=intel for Diamond Rapids and
	Clearwater Forest.

2025-06-25  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.h (PTA_ALDERLAKE): Use PTA_GOLDMONT_PLUS
	as base to remove PTA_CLDEMOTE.
	(PTA_SIERRAFOREST): Add PTA_CLDEMOTE since PTA_ALDERLAKE
	does not include that anymore.
	* doc/invoke.texi: Update texi file.

2025-06-25  Jiawei  <jiawei@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc: New Profiles.

2025-06-25  Jan Hubicka  <hubicka@ucw.cz>

	* common.opt: (fauto-profile-inlining): New
	* doc/invoke.texi (-fauto-profile-inlining): Document.
	* ipa-inline.cc (inline_functions_by_afdo): Check
	flag_auto_profile.
	(early_inliner): Also do inline_functions_by_afdo with
	!flag_early_inlining.

2025-06-25  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc: Update toplevel comment.
	(early_inline): Remove.
	(auto_profile): Don't do early inlining.

2025-06-24  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-opts.h (TARGET_GLC_NAME): Fix and extend the
	description in the comment.
	* config/gcn/gcn.cc (print_operand): Extend the comment about
	'G' and 'g'.
	* config/gcn/gcn.md: Use 'glc' instead of %G where appropriate.

2025-06-24  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Handle both add and
	acc FMA variants.
	* config/riscv/vector.md (*pred_mul_<optab><mode>_scalar_undef): New.

2025-06-24  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md
	(@pro_epilogue_adjust_stack_add_nocc<mode>): Add type attribute.
	(pro_epilogue_adjust_stack_add_nocc peephole2 pattern):
	Convert pro_epilogue_adjust_stack_add_nocc variant to
	pro_epilogue_adjust_stack_add when FLAGS_REG is dead.

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

	* tree-vect-stmts.cc (vectorizable_load): Remove non-SLP
	paths and propagate out ncopies == 1.

2025-06-24  Marc Poulhiès  <poulhies@adacore.com>

	* diagnostic-state-to-dot.cc (get_color_for_dynalloc_state):
	Rename argument dynalloc_state to dynalloc_st.
	(add_title_tr): Rename argument style to styl.
	(on_xml_node): Rename local variable dynalloc_state to dynalloc_st.

2025-06-24  Yuao Ma  <c8ef@outlook.com>

	* tree-call-cdce.cc (edom_only_function): Remove atan.

2025-06-24  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/vector.md (VF): Don't restrict modes.
	(VEC_SET_SINGLEFLOAT): Ditto.

2025-06-24  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Set
	value of parameter based on option.
	* config/aarch64/aarch64.opt (autovec-preference): New.
	* doc/invoke.texi (autovec-preference): Document it.

2025-06-24  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64.opt (max-vectorization): New.
	* config/aarch64/aarch64.cc (aarch64_override_options_internal): Save
	and restore option.
	Implement it through vect-scalar-cost-multiplier.
	(aarch64_attributes): Default to off.
	* common/config/aarch64/aarch64-common.cc (aarch64_handle_option):
	Initialize option.
	* doc/extend.texi (max-vectorization): Document attribute.
	* doc/invoke.texi (max-vectorization): Document flag.

2025-06-24  hongtao.liu  <hongtao.liu@intel.com>

	PR target/115842
	* tree-ssa-loop-ivopts.cc (determine_group_iv_cost_address):
	Don't recalculate inv_expr when group-candidate cost
	calucalution.

2025-06-24  Tamar Christina  <tamar.christina@arm.com>

	* doc/extend.texi: Document pragma unroll interaction with vectorizer.
	* tree-vectorizer.h (LOOP_VINFO_USER_UNROLL): New.
	(class _loop_vec_info): Add user_unroll.
	* tree-vect-loop.cc (vect_analyze_loop_1): Set
	suggested_unroll_factor and retry.
	(_loop_vec_info::_loop_vec_info): Initialize user_unroll.
	(vect_transform_loop): Clear the loop->unroll value if the pragma was
	used.

2025-06-24  Tamar Christina  <tamar.christina@arm.com>

	* tree-vect-loop-manip.cc (vect_gen_vector_loop_niters,
	vect_gen_vector_loop_niters_mult_vf): Remove uses of log_vf.

2025-06-24  H.J. Lu  <hjl.tools@gmail.com>

	PR target/92080
	* config/i386/i386-expand.cc (ix86_expand_call): Set
	recursive_function to true for recursive call.
	* config/i386/i386-features.cc (ix86_place_single_vector_set):
	Add an argument for inner scalar, default to nullptr.  Set the
	source from inner scalar if not nullptr.
	(ix86_get_vector_load_mode): Renamed to ...
	(ix86_get_vector_cse_mode): This.  Add an argument for scalar mode
	and handle integer and float scalar modes.
	(replace_vector_const): Add an argument for scalar mode and pass
	it to ix86_get_vector_load_mode.
	(x86_cse_kind): New.
	(redundant_load): Likewise.
	(ix86_broadcast_inner): Likewise.
	(remove_redundant_vector_load): Also support const0_rtx and
	constm1_rtx broadcasts.  Handle vector broadcasts from constant
	and variable scalars.
	* config/i386/i386.h (machine_function): Add recursive_function.

2025-06-24  H.J. Lu  <hjl.tools@gmail.com>

	PR target/70308
	PR target/101366
	PR target/102294
	PR target/108585
	PR target/118276
	PR target/119596
	PR target/119703
	PR target/119704
	* config/i386/x86-tune-costs.h (generic_memcpy): Updated.
	(generic_memset): Likewise.
	(generic_cost): Change CLEAR_RATIO to 10.

2025-06-24  Jan Hubicka  <hubicka@ucw.cz>

	* tree-inline.cc (expand_call_inline): Preserve discriminator.

2025-06-24  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_set_bb_count): Dump also 0 count stmts.
	(afdo_annotate_cfg): Fix conditional for block having non-zero static
	profile.

2025-06-24  Lili Cui  <lili.cui@intel.com>

	PR target/120741
	* config/i386/i386.cc (ix86_expand_prologue):
	Remove 1 assertion.

2025-06-24  Jeff Law  <jlaw@ventanamicro.com>

	PR target/118241
	* config/riscv/predicates.md: Fix comment typo in recent change.

2025-06-23  Sam James  <sam@gentoo.org>
	    Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/120795
	* ext-dce.cc (ext_dce_try_optimize_insn): Enable rescan in
	remove_reg_equal_equiv_notes call.

2025-06-23  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	PR testsuite/116163
	PR sarif-replay/120792
	* Makefile.in (OBJS-libcommon): Add diagnostic-output-spec.o.
	* diagnostic-format-html.cc (html_builder::html_builder): Ensure
	title is non-empty.
	* diagnostic-output-spec.cc: New file, taken from material in
	opts-diagnostic.cc.
	* diagnostic-output-spec.h: New file.
	* diagnostic.cc (diagnostic_context::set_main_input_filename):
	New.
	* diagnostic.h (diagnostic_context::set_main_input_filename): New
	decl.
	* doc/libgdiagnostics/topics/compatibility.rst
	(LIBGDIAGNOSTICS_ABI_2): New.
	* doc/libgdiagnostics/topics/diagnostic-manager.rst
	(diagnostic_manager_add_sink_from_spec): New.
	(diagnostic_manager_set_analysis_target): New.
	* libgdiagnostics++.h (manager::add_sink_from_spec): New.
	(manager::set_analysis_target): New.
	* libgdiagnostics.cc: Include "diagnostic-output-spec.h".
	(struct spec_context): New.
	(diagnostic_manager_add_sink_from_spec): New.
	(diagnostic_manager_set_analysis_target): New.
	* libgdiagnostics.h
	(LIBDIAGNOSTICS_HAVE_diagnostic_manager_add_sink_from_spec): New
	define.
	(diagnostic_manager_add_sink_from_spec): New decl.
	(LIBDIAGNOSTICS_HAVE_diagnostic_manager_set_analysis_target): New
	define.
	(diagnostic_manager_set_analysis_target): New decl.
	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_2): New.
	* libsarifreplay.cc (sarif_replayer::handle_artifact_obj): Looks
	for "analysisTarget" in roles and call set_analysis_target using
	the artifact if found.
	* opts-diagnostic.cc: Refactor, moving material to
	diagnostic-output-spec.cc.
	(struct opt_spec_context): New.
	(handle_OPT_fdiagnostics_add_output_): Use opt_spec_context.
	(handle_OPT_fdiagnostics_set_output_): Likewise.
	* sarif-replay.cc: Define INCLUDE_STRING.
	(struct options): Add m_extra_output_specs.
	(usage_msg): Add -fdiagnostics-add-output=SCHEME.
	(str_starts_with): New.
	(parse_options): Add -fdiagnostics-add-output=SCHEME.
	(main): Likewise.
	* selftest-run-tests.cc (selftest::run_tests): Call
	diagnostic_output_spec_cc_tests rather than
	opts_diagnostic_cc_tests.
	* selftest.h (selftest::diagnostic_output_spec_cc_tests):
	Replace...
	(selftest::opts_diagnostic_cc_tests): ...this.

2025-06-23  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* Makefile.in (ANALYZER_OBJS): Add
	analyzer/ana-state-to-diagnostic-state.o.
	(OBJS): Move graphviz.o to...
	(OBJS-libcommon): ...here.  Add diagnostic-state-to-dot.o and pex.o.
	* diagnostic-format-html.cc: Include "diagnostic-state.h" and
	"graphviz.h".
	(html_generation_options::html_generation_options): Initialize the
	new flags.
	(HTML_SCRIPT): Add function "get_any_state_diagram".  Use it
	when changing current focus id to update the visibility of the
	pertinent diagram, if any.
	(print_pre_source): New.
	(html_builder::maybe_make_state_diagram): New.
	(html_path_label_writer::html_path_label_writer): Add "path" param.
	Initialize m_path and m_curr_event_id.
	(html_path_label_writer::begin_label): Store current event id.
	(html_path_label_writer::end_label): Attempt to make a state
	diagram and add it if successful.
	(html_path_label_writer::get_element_id): New.
	(html_path_label_writer::m_path): New field.
	(html_path_label_writer::m_curr_event_id): New field.
	(html_builder::make_element_for_diagnostic): Pass path to label
	writer.
	* diagnostic-format-html.h
	(html_generation_options::m_show_state_diagrams): New field.
	(html_generation_options::m_show_state_diagram_xml): New field.
	(html_generation_options::m_show_state_diagram_dot_src): New field.
	* diagnostic-format-sarif.cc: Include "xml.h".
	(populate_thread_flow_location_object): If requested, attempt to
	generate xml state and add it to the proeprty bag as
	"gcc/diagnostic_event/xml_state" in xml source form.
	(sarif_generation_options::sarif_generation_options): Initialize
	m_xml_state.
	* diagnostic-format-sarif.h
	(sarif_generation_options::m_xml_state): New field.
	* diagnostic-path.cc: Define INCLUDE_MAP.  Include "xml.h".
	(diagnostic_event::maybe_make_xml_state): New.
	* diagnostic-path.h (class xml::document): New forward decl.
	(diagnostic_event::maybe_make_xml_state): New vfunc decl.
	* diagnostic-state-to-dot.cc: New file.
	* diagnostic-state.h: New file.
	* digraph.cc: Define INCLUDE_STRING and INCLUDE_VECTOR.
	* doc/analyzer.texi: Document state diagrams in html output.
	(__analyzer_dump_dot): New.
	(__analyzer_dump_xml): New.
	* doc/invoke.texi (sarif): Add "xml-state" key.
	(experimental-html): Add keys "show-state-diagrams",
	"show-state-diagrams-dot-src" and "show-state-diagrams-xml".
	* graphviz.cc: Define INCLUDE_MAP, INCLUDE_STRING, and
	INCLUDE_VECTOR.  Include "xml.h", "xml-printer.h", "pex.h" and
	"selftest.h".
	(graphviz_out::graphviz_out): Extract...
	(dot::writer::writer): ...this.
	(graphviz_out::write_indent): Convert to...
	(dot::writer::write_indent): ...this.
	(graphviz_out::print): Use get_pp.
	(graphviz_out::println): Likewise.
	(graphviz_out::begin_tr): Likewise.
	(graphviz_out::end_tr): Likewise.
	(graphviz_out::begin_td): Likewise.
	(graphviz_out::end_td): Likewise.
	(graphviz_out::begin_trtd): Likewise.
	(graphviz_out::end_tdtr): Likewise.
	(dot::ast_node::dump): New.
	(dot::id::id): New.
	(dot::id::print): New.
	(dot::id::is_identifier_p): New.
	(dot::kv_pair::print): New.
	(dot::attr_list::print): New.
	(dot::stmt_list::print): New.
	(dot::stmt_list::add_edge): New.
	(dot::stmt_list::add_attr): New.
	(dot::graph::print): New.
	(dot::stmt_with_attr_list::set_label): New.
	(dot::node_stmt::print): New.
	(dot::attr_stmt::print): New.
	(dot::kv_stmt::print): New.
	(dot::node_id::print): New.
	(dot::port::print): New.
	(dot::edge_stmt::print): New.
	(dot::subgraph::print): New.
	(dot::make_svg_document_buffer_from_graph): New.
	(dot::make_svg_from_graph): New.
	(selftest:test_ids): New.
	(selftest:test_trivial_graph): New.
	(selftest:test_layout_example): New.
	(selftest:graphviz_cc_tests): New.
	* graphviz.h (xml::node): New forward decl.
	(class graphviz_out): Split out into...
	(class dot::writer): ...this new class
	(struct dot::ast_node): New.
	(struct dot::id): New.
	(struct dot::kv_pair): New.
	(struct dot::attr_list): New.
	(struct dot::stmt_list): New.
	(struct dot::graph): New.
	(struct dot::stmt): New.
	(struct dot::stmt_with_attr_list): New.
	(struct dot::node_stmt): New.
	(struct dot::attr_stmt): New.
	(struct dot::kv_stmt): New.
	(enum class dot::compass_pt): New.
	(struct dot::port): New.
	(struct dot::node_id): New.
	(struct dot::edge_stmt): New.
	(struct dot::subgraph): New.
	(dot::make_svg_from_graph): New.
	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add
	"xml-state" flag.
	(html_scheme_handler::make_sink): Add flags "show-state-diagrams",
	"show-state-diagram-dot-src", and "show-state-diagram-xml".
	* pex.cc: New file.
	* pex.h: New file.
	* selftest-run-tests.cc (selftest::run_tests): Call
	graphviz_cc_tests.
	* selftest.h (selftest::graphviz_cc_tests): New decl.
	* xml.cc (xml::node_with_children::add_comment): New.
	(xml::node_with_children::find_child_element): New.
	(xml::element::get_attr): New.
	(xml::comment::write_as_xml): New.
	(selftest::test_printer): Add coverage of find_child_element and
	get_attr.
	(selftest::test_comment): New.
	(selftest::xml_cc_tests): Call test_comment.
	* xml.h: New forward decls.
	(xml::node::dyn_cast_text): Use nullptr.
	(xml::node::dyn_cast_element): New vfunc.
	(xml::node_with_children::add_comment): New decl.
	(xml::node_with_children::find_child_element): New decl.
	(xml::element::dyn_cast_element): New vfunc impl.
	(xml::element::get_attr): New decl.
	(struct xml::comment): New xml::node subclass.

2025-06-23  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc (html_token_printer::print_tokens):
	Handle pp_token::kind::event_id.
	(selftest::test_token_printer): Add coverage of printing an event
	id.

2025-06-23  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case US_PLUS.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op us_plus.

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

	PR middle-end/120608
	* tree-tailcall.cc (empty_eh_cleanup): Ignore .ASAN_MARK (POISON)
	internal calls for the cfun->has_musttail case and diag_musttail.
	(find_tail_calls): Likewise.

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

	PR middle-end/120608
	* cfgexpand.cc: Include rtl-iter.h.
	(expand_gimple_tailcall): Add ASAN_EPILOG_SEQ argument, if non-NULL
	and expand_gimple_stmt emitted a tail call, emit a copy of that
	insn sequence before the call sequence.
	(expand_gimple_basic_block): Remove DISABLE_TAIL_CALLS argument, add
	ASAN_EPILOG_SEQ argument.  Disable tail call flag only on non-musttail
	calls if that flag is set, pass it to expand_gimple_tailcall.
	(pass_expand::execute): Pass VAR_RET_SEQ directly as last
	expand_gimple_basic_block argument rather than its comparison with
	NULL.

2025-06-23  Pengfei Li  <Pengfei.Li2@arm.com>

	* tree-vect-data-refs.cc (vect_peeling_supportable): Return new
	enum values to indicate if combined peeling and versioning can
	potentially support vectorization.
	(vect_enhance_data_refs_alignment): Support combined peeling and
	versioning in vectorization analysis.
	* tree-vect-loop-manip.cc (vect_create_cond_for_align_checks):
	Add a new type of runtime check for mutually aligned DRs.
	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Set
	default value of allow_mutual_alignment in the initializer list.
	* tree-vectorizer.h (enum peeling_support): Define type of
	peeling support for function vect_peeling_supportable.
	(LOOP_VINFO_ALLOW_MUTUAL_ALIGNMENT): New access macro.

2025-06-23  Mikael Morin  <morin-mikael@orange.fr>

	* match.pd (`-(-X)`, `~(~X)`, `conj(conj(X))`): Add a
	NON_LVALUE_EXPR wrapper to the simplification of doubled unary
	operators NEGATE_EXPR, BIT_NOT_EXPR and CONJ_EXPR.

2025-06-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120729
	* gimple-predicate-analysis.h (uninit_analysis::prune_phi_opnds):
	Add argument of work budget remaining.
	* gimple-predicate-analysis.cc (uninit_analysis::prune_phi_opnds):
	Likewise.  Maintain and honor it throughout the recursion.
	* params.opt (uninit-max-prune-work): New.
	* doc/invoke.texi (uninit-max-prune-work): Document.

2025-06-23  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/120721
	* function.cc (instantiate_virtual_regs_in_insn): Use force_subreg
	instead of simplify_gen_subreg when instantiating an rvalue SUBREG.

2025-06-23  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120728
	* config/i386/i386.cc (ix86_get_ssemov): Use vmovdqu16/vmovdqu8
	only with EVEX register operands.

2025-06-23  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386-options.cc (processor_cost_table): Add a
	PROCESSOR_XXX comment to each entry.

2025-06-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/119830
	* config/riscv/riscv.cc (riscv_build_integer_1): Make arithmetic in bclr case
	clean for 32 bit hosts.

2025-06-22  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/120550
	* ext-dce.cc (ext_dce_try_optimize_insn): Drop REG_EQUAL/REG_EQUIV
	notes on modified insns.

2025-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.h (TARGET_DEPBITS): New macro.
	* config/xtensa/xtensa.md (insvsi): New insn pattern.

2025-06-22  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xtensa_zero_call_used_regs):
	New prototype and function.
	(TARGET_ZERO_CALL_USED_REGS): Define macro.

2025-06-22  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (update_count_by_afdo_count): Make static;
	add variant accepting profile_count.
	(afdo_find_equiv_class): Use update_count_by_afdo_count.
	(afdo_propagate_edge): Likewise.
	(afdo_propagate): Likewise.
	(afdo_calculate_branch_prob): Fix handling of all_known.
	(afdo_annotate_cfg): Annotate by 0 where both afdo and static
	profile agrees.

2025-06-22  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_set_bb_count): Dump inline stacks
	and reasons when lookup failed.
	(afdo_set_bb_count): Record info about BBs with zero AFDO count.
	(afdo_annotate_cfg): Set profile to global0_afdo if there are
	no samples in profile.

2025-06-22  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-profile.cc (ipa_profile): Use widest_int to avoid
	possible overflows.

2025-06-22  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (autofdo::afdo_count_scale): New.
	(autofdo_source_profile::update_inlined_ind_target): Scale
	counts.
	(autofdo_source_profile::read): Set scale and dump
	statistics.
	(afdo_indirect_call): Scale.
	(afdo_set_bb_count): Scale.
	(afdo_find_equiv_class): Fix dumps.
	(afdo_annotate_cfg): Scale.

2025-06-22  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.cc (cgraph_node::make_profile_global0): Support
	GUESSED_GLOBAL0_AFDO
	* ipa-cp.cc (update_profiling_info): Use
	GUESSED_GLOBAL0_AFDO.
	* profile-count.cc (profile_probability::dump): Use
	quality ().
	(profile_probability::stream_in): Use m_adjusted_quality.
	(profile_probability::stream_out): Use m_adjusted_quality.
	(profile_count::combine_with_ipa_count): Use quality ().
	(profile_probability::sqrt): Likewise.
	* profile-count.h (enum profile_quality): Add
	GUESSED_GLOBAL0_AFDO; reoder GUESSED_GLOBAL0_ADJUSTED and
	GUESSED_GLOBAL0.
	(profile_probability): Add min_quality; replase m_quality
	by m_adjused_quality; add set_quality; update all users
	of quality.
	(profile_count): Set n_bits to 60; make m_quality 4 bits;
	update uses of quality.
	(profile_count::afdo_zero, profile_count::globa0afdo): New.

2025-06-21  Jan Hubicka  <hubicka@ucw.cz>

	* tree-inline.cc (copy_cfg_body): Fix profile of split functions.

2025-06-21  Jeff Law  <jlaw@ventanamicro.com>

	PR target/118241
	* config/riscv/predicates.md (prefetch_operand): New predicate.
	* config/riscv/constraints.md (Q): New constraint.
	* config/riscv/riscv.md (prefetch): Use new predicate and constraint.
	(riscv_prefetchi_<mode>): Similarly.

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

	PR middle-end/120746
	* value-range.cc (irange::snap): Use int type instead of uint.

2025-06-21  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (dump_inline_stack): New function.
	(get_inline_stack_in_node): New function.
	(get_relative_location_for_stmt): Add FN parameter.
	(has_indirect_call): Remove.
	(function_instance::find_icall_target_map): Add FN parameter.
	(function_instance::remove_icall_target): New function.
	(function_instance::read_function_instance): Set sum_max.
	(autofdo_source_profile::get_count_info): Add NODE parameter.
	(autofdo_source_profile::update_inlined_ind_target): Add NODE parameter.
	(autofdo_source_profile::remove_icall_target): New function.
	(afdo_indirect_call): Add INDIRECT_EDGE parameter; dump reason
	for failure; do not check for recursion; do not inline call.
	(afdo_vpt): Add INDIRECT_EDGE parameter.
	(afdo_set_bb_count): Do not take PROMOTED set.
	(afdo_vpt_for_early_inline): Remove.
	(afdo_annotate_cfg): Do not take PROMOTED set.
	(auto_profile): Do not call afdo_vpt_for_early_inline.
	(afdo_callsite_hot_enough_for_early_inline): Dump count.
	(remove_afdo_speculative_target): New function.
	* auto-profile.h (afdo_vpt_for_early_inline): Declare.
	(remove_afdo_speculative_target): Declare.
	* ipa-inline.cc (inline_functions_by_afdo): Do VPT.
	(early_inliner): Redirecct edges if inlining happened.
	* tree-inline.cc (expand_call_inline): Add sanity check.

2025-06-21  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (get_inline_stack): Add fn parameter.
	* ipa-inline.cc (want_early_inline_function_p): Do not care
	about AFDO.
	(inline_functions_by_afdo): New function.
	(early_inliner): Use it.

2025-06-21  Pan Li  <pan2.li@intel.com>

	PR target/120652
	* config/riscv/autovec.md: Add immediate_operand for
	select_vl operand 2.

2025-06-20  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/120701
	* value-range.cc (irange::verify_range): Verify range pairs are
	sorted properly.
	(irange::snap): Check for over/underflow properly.

2025-06-20  Andrew Stubbs  <ams@baylibre.com>

	PR target/120722
	* config/gcn/gcn.cc (gcn_hard_regno_mode_ok): Allow SImode in VCC_HI.

2025-06-20  Jørgen Kvalsvik  <j@lambda.is>

	PR gcov-profile/120634
	* prime-paths.cc (struct auto_vec_vec): Add constructor from
	vec.
	(test_split_components): Use auto_vec_vec.
	(test_scc_internal_prime_paths): Ditto.
	(test_scc_entry_exit_paths): Ditto.
	(test_complete_prime_paths): Ditto.
	(test_entry_prime_paths): Ditto.
	(test_singleton_path): Ditto.

2025-06-20  Jørgen Kvalsvik  <j@lambda.is>

	PR gcov-profile/120634
	* prime-paths.cc (trie::paths): Use auto_vec.

2025-06-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120654
	* vr-values.cc (range_fits_type_p): Check for undefined_p ()
	before accessing type ().

2025-06-20  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120708
	* config/i386/i386-expand.cc (ix86_expand_set_or_cpymem): Use
	MOVE_MAX to get the widest vector mode in vector loop.

2025-06-20  Stafford Horne  <shorne@gmail.com>

	* config/or1k/or1k.cc (or1k_noce_conversion_profitable_p): New
	function.
	(or1k_is_cmov_insn): New function.
	(TARGET_NOCE_CONVERSION_PROFITABLE_P): Define macro.
	* config/or1k/or1k.md (cbranchsi4): Convert to insn_and_split.
	(cbranch<mode>4): Convert to insn_and_split.

2025-06-20  Stafford Horne  <shorne@gmail.com>

	PR target/120587
	* config/or1k/or1k.md (zero_extendbisi2_sr_f): New expand.
	(extendbisi2_sr_f): New expand.
	* config/or1k/predicates.md (sr_f_reg_operand): New predicate.

2025-06-20  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case UMIN.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op umin.

2025-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/120689
	* function.cc (assign_parm_setup_block): Align parm to at least
	word alignment even on !STRICT_ALIGNMENT targets, as long as
	BITS_PER_WORD is not larger than MAX_SUPPORTED_STACK_ALIGNMENT.

2025-06-19  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120427
	* config/i386/i386.md (*mov<mode>_and): Changed to
	define_insn_and_split.  Split it to "mov $0,mem" if not -Oz.
	(*mov<mode>_or): Changed to define_insn_and_split.  Split it
	to "mov $-1,mem" if not -Oz.
	(peephole2): Don't transform "mov $-1,reg" to "push $-1; pop reg"
	for -Oz since it will be transformed to "or $-1,reg".

2025-06-19  Georg-Johann Lay  <avr@gjlay.de>

	PR other/115893
	* doc/install.texi (Prerequisites): Note that Texinfo older
	than v7.1 may throw incorrect build warnings, cf.
	https://lists.nongnu.org/archive/html/help-texinfo/2023-11/msg00004.html

2025-06-19  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* config/riscv/riscv-cores.def (RISCV_TUNE): Add "generic" tune.
	* config/riscv/riscv.cc: Add generic_tune_info.
	* config/riscv/riscv.h (RISCV_TUNE_STRING_DEFAULT): Change default tune.

2025-06-19  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120631
	* dfp.cc (decimal_real_to_integer): Use result multiplication not just
	when precision > 128 and dn.exponent > 19, but when precision > 64
	and dn.exponent > 0.

2025-06-19  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.cc (riscv_legitimize_move): Use
	riscv_2x_xlen_mode_p.
	(riscv_binary_cost): Ditto.
	(riscv_hard_regno_mode_ok): Ditto.

2025-06-19  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.cc (riscv_cost_model): Add cost model for
	zilsd.

2025-06-19  Lili Cui  <lili.cui@intel.com>

	PR target/120697
	* config/i386/i386.cc (ix86_expand_prologue):
	Remove 3 assertions and associated code.

2025-06-18  Dimitar Dimitrov  <dimitar@dinux.eu>
	    Richard Sandiford  <richard.sandiford@arm.com>
	    Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/119966
	* emit-rtl.cc (validate_subreg): Call simplify_subreg_regno
	instead of checking info.representable_p..
	* rtl.h (simplify_subreg_regno): Add new argument
	allow_stack_regs.
	* rtlanal.cc (simplify_subreg_regno): Do not reject
	stack-related registers if allow_stack_regs is true.

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

	* value-range.cc (irange::intersect_bitmask): Always update the
	stored mask to reflect the current calculated mask.

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

	PR tree-optimization/119039
	* value-range.cc (irange::contains_p): Call wide_int version of
	contains_p for singleton ranges.
	(irange::intersect): If either range is a singleton, use
	contains_p.

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

	PR tree-optimization/119039
	* vr-values.cc (simplify_using_ranges::legacy_fold_cond): Remove.
	(simplify_using_ranges::simplify_switch_using_ranges): Adjust.

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

	* tree-cfg.cc (dump_function_to_file): Use flags, not dump_flags.

2025-06-18  Jan Beulich  <jbeulich@suse.com>

	* doc/gcov.texi: Drop blank after @anchor.

2025-06-18  Jan Beulich  <jbeulich@suse.com>

	* doc/extend.texi: Fill first argument of @xref{}.

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

	PR middle-end/120631
	* real.cc (decimal_from_integer): Add digits argument, if larger than
	256, use XALLOCAVEC allocated buffer.
	(real_from_integer): Pass val_in's precision divided by 3 to
	decimal_from_integer.
	* dfp.cc (decimal_real_to_integer): For precision > 128 if finite
	and exponent is large, decrease exponent and multiply resulting
	wide_int by powers of 10^19.

2025-06-18  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case SMIN.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op smin.

2025-06-18  Lili Cui  <lili.cui@intel.com>
	    Michael Matz  <matz@suse.de>

	* config/i386/i386-protos.h (ix86_get_separate_components):
	New function.
	(ix86_components_for_bb): Likewise.
	(ix86_disqualify_components): Likewise.
	(ix86_emit_prologue_components): Likewise.
	(ix86_emit_epilogue_components): Likewise.
	(ix86_set_handled_components): Likewise.
	* config/i386/i386.cc (save_regs_using_push_pop):
	Split from ix86_compute_frame_layout.
	(ix86_compute_frame_layout):
	Use save_regs_using_push_pop.
	(pro_epilogue_adjust_stack):
	Use gen_pro_epilogue_adjust_stack_add_nocc.
	(ix86_expand_prologue): Add some assertions and adjust
	the stack frame at the beginning of the prolog for shrink
	wrapping separate.
	(ix86_emit_save_regs_using_mov):
	Skip registers that are wrapped separately.
	(ix86_emit_restore_regs_using_mov): Likewise.
	(ix86_expand_epilogue): Add some assertions and set
	restore_regs_via_mov to true for shrink wrapping separate.
	(ix86_get_separate_components): New function.
	(ix86_components_for_bb): Likewise.
	(ix86_disqualify_components): Likewise.
	(ix86_emit_prologue_components): Likewise.
	(ix86_emit_epilogue_components): Likewise.
	(ix86_set_handled_components): Likewise.
	(TARGET_SHRINK_WRAP_GET_SEPARATE_COMPONENTS): Define.
	(TARGET_SHRINK_WRAP_COMPONENTS_FOR_BB): Likewise.
	(TARGET_SHRINK_WRAP_DISQUALIFY_COMPONENTS): Likewise.
	(TARGET_SHRINK_WRAP_EMIT_PROLOGUE_COMPONENTS): Likewise.
	(TARGET_SHRINK_WRAP_EMIT_EPILOGUE_COMPONENTS): Likewise.
	(TARGET_SHRINK_WRAP_SET_HANDLED_COMPONENTS): Likewise.
	* config/i386/i386.h (struct machine_function):Add
	reg_is_wrapped_separately array for register wrapping
	information.
	* config/i386/i386.md
	(@pro_epilogue_adjust_stack_add_nocc<mode>): New.

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

	PR tree-optimization/120661
	* value-range.cc (irange::snap): New.
	(irange::snap_subranges): New.
	(irange::set_range_from_bitmask): Call snap_subranges.
	* value-range.h (snap, snap_subranges): New prototypes.

2025-06-17  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_indirect_call): Compute speculative edge
	probability.
	(add_scale): Break out from ...
	(scale_bbs): Break out from ...
	(afdo_adjust_guessed_profile): ... here; use componet array instead of
	current_component hash_map; handle components with only 0 profile;
	be more agressive on finding scales along the boundary.

2025-06-17  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.cc (cgraph_node::apply_scale): Special case scaling
	to profile_count::zero ().
	(cgraph_node::verify_node): Add extra compatibility check.

2025-06-17  Umesh Kalappa  <ukalappa.mips@gmail.com>

	* config/riscv/sync.md (lrsc_atomic_exchange<mode>): Use scratch
	register for loop control rather than lr output.

2025-06-17  Jason Merrill  <jason@redhat.com>

	* diagnostic.h (diagnostic_option_classifier): Friend
	diagnostic_context.
	(diagnostic_context::get_classification_history): New.

2025-06-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/120677
	* gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop):
	Insert before gsi_after_labels instead of gsi_start_bb.  Use
	gimple_bb (output_crc) instead of output_crc->bb.  Formatting fix.

2025-06-17  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/113027
	* config/aarch64/aarch64-protos.h (aarch64_decompose_vec_struct_index):
	Declare.
	* config/aarch64/aarch64.cc (aarch64_decompose_vec_struct_index): New
	function.
	* config/aarch64/iterators.md (VEL, Vel): Add Advanced SIMD
	structure modes.
	* config/aarch64/aarch64-simd.md (vec_set<VSTRUCT_QD:mode>)
	(vec_extract<VSTRUCT_QD:mode>): New patterns.

2025-06-17  Tobias Burnus  <tburnus@baylibre.com>

	* omp-offload.cc (omp_discover_declare_target_tgt_fn_r): Also
	walk external functions that are declare inline (and have a
	DECL_SAVED_TREE).

2025-06-16  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_sve_valid_pred_p):
	Declare helper for aarch64_predicate_operand.
	(aarch64_sve_packed_pred): Declare helper for new expanders.
	(aarch64_sve_fp_pred): Likewise.
	* config/aarch64/aarch64-sve.md (<optab><mode><v_int_equiv>2):
	Extend into...
	(<optab><SVE_HSF:mode><SVE_HSDI:mode>2): New expander for converting
	vectors of HF,SF to vectors of HI,SI,DI.
	(<optab><VNx2DF_ONLY:mode><SVE_2SDI:mode>2): New expander for converting
	vectors of SI,DI to vectors of DF.
	(*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_F:mode><SVE_HSDI:mode>):
	New pattern to match those we've added here.
	(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Extend
	into...
	(@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><SVE_SI:mode>): Match both
	VNx2SI<-VNx2DF and VNx4SI<-VNx4DF.
	(<optab><v_int_equiv><mode>2): Extend into...
	(<optab><SVE_HSDI:mode><SVE_F:mode>2): New expander for converting vectors
	of HI,SI,DI to vectors of HF,SF,DF.
	(*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_PARTIAL_F:mode>): New
	pattern to match those we've added here.
	(trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>2): New expander to handle
	narrowing ('truncating') FP<-FP conversions.
	(*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_PARTIAL_HSF:mode>): New
	pattern to handle those we've added here.
	(extend<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>2): New expander to handle
	widening ('extending') FP<-FP conversions.
	(*aarch64_sve_<optab>_nontrunc<SVE_PARTIAL_HSF:mode><SVE_SDF:mode>): New
	pattern to handle those we've added here.
	* config/aarch64/aarch64.cc (aarch64_sve_packed_pred): New function.
	(aarch64_sve_fp_pred): Likewise.
	(aarch64_sve_valid_pred_p): Likewise.
	* config/aarch64/iterators.md (SVE_PARTIAL_HSF): New mode iterator.
	(SVE_HSF): Likewise.
	(SVE_SDF): Likewise.
	(SVE_SI): Likewise.
	(SVE_2SDI) Likewise.
	(self_mask):  Extend to all integer/FP vector modes.
	(narrower_mask): Likewise (excluding QI).
	* config/aarch64/predicates.md (aarch64_predicate_operand): New special
	predicate to handle narrower predicate modes.

2025-06-16  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64-sve.md: Replace uses of SVE_FULL_F_BF
	with SVE_FULL_F_B16B16.
	Replace use of SVE_F with SVE_F_BF.
	* config/aarch64/iterators.md (SVE_PARTIAL_F): New iterator for
	partial SVE FP modes.
	(SVE_FULL_F_BF): Rename to SVE_FULL_F_B16B16.
	(SVE_PARTIAL_F_B16B16): New iterator (BF16 included) for partial
	SVE FP modes.
	(SVE_F_B16B16): New iterator for all SVE FP modes.
	(SVE_BF): New iterator for all SVE BF16 modes.
	(SVE_F): Redefine to exclude BF16 modes.
	(SVE_F_BF): New iterator to replace the previous SVE_F.
	(VPRED): Describe the VPRED mapping for partial vector modes.
	(b): Cover partial FP modes.
	(is_bf16): Likewise.

2025-06-16  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi: Document -Wsfinae-incomplete.

2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>
	    Srinath Parvathaneni  <srinath.parvathaneni@arm.com>

	* config.in: Regenerate.
	* config/aarch64/aarch64-elf-metadata.h
	(class aeabi_subsection): New class for BAs.
	* config/aarch64/aarch64-protos.h
	(aarch64_pacret_enabled): New function.
	* config/aarch64/aarch64.cc
	(HAVE_AS_AEABI_BUILD_ATTRIBUTES): New definition.
	(aarch64_file_end_indicate_exec_stack): Emit BAss.
	(aarch64_pacret_enabled): New function.
	(aarch64_start_file): Indent.
	* configure: Regenerate.
	* configure.ac: New configure check for BAs support in binutils.

2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>

	* Makefile.in: Add missing declaration of BACKEND_H.
	* config.gcc: Add aarch64-elf-metadata.o to extra_objs.
	* config/aarch64/aarch64-elf-metadata.h: New file
	* config/aarch64/aarch64-elf-metadata.cc: New file.
	* config/aarch64/aarch64.cc
	(GNU_PROPERTY_AARCH64_FEATURE_1_AND): Removed.
	(GNU_PROPERTY_AARCH64_FEATURE_1_BTI): Likewise.
	(GNU_PROPERTY_AARCH64_FEATURE_1_PAC): Likewise.
	(GNU_PROPERTY_AARCH64_FEATURE_1_GCS): Likewise.
	(aarch64_file_end_indicate_exec_stack): Move GNU properties code to
	aarch64-elf-metadata.cc
	* config/aarch64/t-aarch64: Declare target aarch64-elf-metadata.o

2025-06-16  Matthieu Longo  <matthieu.longo@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_file_end_indicate_exec_stack): Emit assembly comments.

2025-06-16  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (edge_set): Remove unused typedef.
	(is_bb_annotated): Sanity check that annotated BBs has
	quality AFDO and non-anntoated non-AFDO.  Exceptions are
	zeros.
	(set_bb_annotated): Verify that BB set annotated has
	AFDO profile.
	(afdo_set_bb_count): Do not return true for 0 counts.
	(afdo_find_equiv_class): Fix formating;
	do not combine profile of annoated and non-annotated BBs.
	(afdo_propagate_edge): Fix variable names; dump info
	about changes; do not change non-annoated BB profiles;
	if all flow out of BB was decided on, annotate remaining
	edges with 0.
	(afdo_propagate): Dump info about copied BB counts
	and number of iteraitons used.
	(cmp): New function.
	(afdo_adjust_guessed_profile): New function.
	(afdo_calculate_branch_prob): Do not initialize loop
	optimizer here; call afdo_adjust_guessed_profile.
	(afdo_annotate_cfg): Initialize profile here;
	anotate entry/exit blocks only of profile is non-0.
	* profile-count.h: (profile_count::force_guessed): New.
	* tree-cfg.cc (gimple_verify_flow_info): Fix typo.

2025-06-16  Jiawei  <jiawei@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc: Add b-ext and supm.

2025-06-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/predicates.md (reload_operand):
	Remove.
	* config/xtensa/xtensa.md:
	Remove the peephole2 pattern that was previously added.

2025-06-16  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md:
	Remove the peephole2 pattern that was previously added.

2025-06-16  Jiawei  <jiawei@iscas.ac.cn>

	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle
	more logical simplifications.

2025-06-15  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
	case UMAX.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op umax.

2025-06-14  Georg-Johann Lay  <avr@gjlay.de>

	Backported from master:
	2025-06-14  Georg-Johann Lay  <avr@gjlay.de>

	PR rtl-optimization/120423
	PR rtl-optimization/116389
	* config/avr/avr.md [-mno-lra]: Add pre-reload split to transform
	(left shift of) a paradoxical subreg to a (left shift of) zero-extend.

2025-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120629
	* cfgexpand.cc (expand_split_edge): New function.
	(expand_gimple_cond, construct_init_block): Use it.

2025-06-13  Spencer Abson  <spencer.abson@arm.com>

	PR target/118150
	* config/aarch64/aarch64-sve.md (*one_cmpl<mode>3_cc): New
	combiner pattern.
	(*one_cmpl<mode>3_ptest): Likewise.

2025-06-13  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120629
	* cfgexpand.cc (construct_init_block): If first_block isn't BB_RTL,
	has any PHI nodes and false_edge->dest_idx before redirection is
	different from make_single_succ_edge result's dest_idx, swap the
	latter with the former last pred edge and their dest_idx members.

2025-06-13  Kito Cheng  <kito.cheng@sifive.com>

	* gcc.cc (driver::set_up_specs): Use gcc_exec_prefix to
	read the spec file rather than standard_exec_prefix.

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

	PR target/120589
	* config/mcore/mcore.cc (mcore_mark_dllimport): Don't use
	gen_rtx_MEM.

2025-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/120638
	* tree-ssa-math-opts.cc (pass_cse_reciprocals::execute): Call
	reset_flow_sensitive_info on arg1.

2025-06-12  Stafford Horne  <shorne@gmail.com>

	PR target/120587
	* config/or1k/or1k.cc (or1k_can_change_mode_class): Allow
	changing flags mode from BI to SI to allow for paradoxical
	subregs.

2025-06-12  Uros Bizjak  <ubizjak@gmail.com>

	PR target/120604
	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Make sure
	we can represent the difference between two 64-bit DImode
	immediate values in 64-bit HOST_WIDE_INT.

2025-06-12  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120629
	* cfgexpand.cc (expand_gimple_cond): If dest bb isn't BB_RTL,
	has any PHI nodes and false_edge->dest_idx before redirection is
	different from make_single_succ_edge result's dest_idx, swap the
	latter with the former last pred edge and their dest_idx members.

2025-06-12  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
	case SMAX.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op smax.

2025-06-12  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/120624
	* config/aarch64/aarch64.md (SME_STATE_REGNUM): Expand on comments.
	* config/aarch64/aarch64-sme.md (aarch64_restore_za): Also set
	SME_STATE_REGNUM

2025-06-12  Alfie Richards  <alfie.richards@arm.com>

	* cgraph.cc (cgraph_node::record_function_versions): Refactor and
	rename to...
	(cgraph_node::add_function_version): new function.
	* cgraph.h (cgraph_node::record_function_versions): Refactor and
	rename to...
	(cgraph_node::add_function_version): new function.
	* config/aarch64/aarch64.cc (aarch64_get_function_versions_dispatcher):
	Remove reordering.
	* config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
	Remove reordering.
	* config/riscv/riscv.cc (riscv_get_function_versions_dispatcher):
	Remove reordering.
	* config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
	Remove reordering.

2025-06-12  Alfie Richards  <alfie.richards@arm.com>

	* attribs.cc (is_function_default_version): Add target_version logic.

2025-06-12  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Set 4 for SRF,
	6 for GRR, GNR, CWF, DMR, ARL, PTL.

2025-06-11  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc: Include "selftest-xml.h".
	(html_builder::make_element_for_diagnostic): Move...
	(class html_token_printer): ...from local to the function
	to the global namespace.
	(struct selftest::token_printer_test): New.
	(selftest::test_token_printer): New.
	(selftest::test_simple_log): Simplify using ASSERT_XML_PRINT_EQ.
	(selftest::test_metadata): Likewise.
	(selftest::diagnostic_format_html_cc_tests): Run the new test.
	* selftest-xml.h: New file.
	* xml.cc: Include "selftest-xml.h".
	(selftest::assert_xml_print_eq): New.
	(selftest::test_no_dtd): Simplify using ASSERT_XML_PRINT_EQ.
	(selftest::test_printer): Likewise.
	(selftest::test_attribute_ordering): Likewise.

2025-06-11  Edwin Lu  <ewlu@rivosinc.com>

	* config/riscv/riscv.cc (struct riscv_tune_param): Add tune
	param.
	(riscv_sched_can_speculate_insn): Implement.
	(TARGET_SCHED_CAN_SPECULATE_INSN): Ditto.

2025-06-11  Uros Bizjak  <ubizjak@gmail.com>

	PR target/120604
	* config/i386/i386-expand.cc (ix86_expand_int_movcc): Cast operands of
	signed 64-bit HOST_WIDE_INT subtractions to (unsigned HOST_WIDE_INT).

2025-06-11  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Only handle vfmadd
	and vfmsub.
	(*vfnmsub_<mode>): New pattern.
	(*vfnmadd_<mode>): New pattern.
	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add cost model for
	NEG and VEC_DUPLICATE.

2025-06-11  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120434
	* gimple-range-fold.cc: Include rtl.h.
	(fold_using_range::range_of_range_op): Handle bb ending with
	GIMPLE_COND during RTL expansion where there is only one succ
	edge instead of two.

2025-06-11  Jakub Jelinek  <jakub@redhat.com>

	* internal-fn.cc (expand_POPCOUNT): Use
	expand_expr (lhs, NULL_RTX, VOIDmode, EXPAND_WRITE) instead of
	expand_normal (lhs).

2025-06-11  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc: Include "diagnostic-path.h" and
	"diagnostic-client-data-hooks.h".
	(html_builder::m_logical_loc_mgr): New field.
	(html_builder::m_cur_nesting_levels): New field.
	(html_builder::m_last_logical_location): New field.
	(html_builder::m_last_location): New field.
	(html_builder::m_last_expanded_location): New field.
	(HTML_STYLE): Add "white-space: pre;" to .source and .annotation.
	Add "gcc-quoted-text" CSS class.
	(html_builder::html_builder): Initialize the new fields.  If CSS
	is enabled, add CDN links to PatternFly 3 stylesheets.
	(html_builder::add_stylesheet): New.
	(html_builder::on_report_diagnostic): Add "alert" param to
	make_element_for_diagnostic, setting it by default, but unsetting
	it for nested diagnostics below the top level.  Use
	add_at_nesting_level for nested diagnostics.
	(add_nesting_level_attr): New.
	(html_builder::add_at_nesting_level): New.
	(get_pf_class_for_alert_div): New.
	(get_pf_class_for_alert_icon): New.
	(get_label_for_logical_location_kind): New.
	(add_labelled_value): New.
	(html_builder::make_element_for_diagnostic): Add leading comment.
	Add "alert" param.  Drop class="gcc-diagnostic" from <div> tag,
	instead adding the class for a PatternFly 3 alert if "alert" is
	true, and adding a <span> with an alert icon, both according to
	the diagnostic severity.  Add a severity prefix to the message for
	alerts.  Add any metadata/option text as suffixes to the message.
	Show any logical location.  Show any physical location.  Don't
	show the locus if the last location is unchanged within the
	diagnostic_group.  Wrap any execution path element in a
	<div id="execution-path"> and add a label to it.  Wrap any
	generated patch in a <div id="suggested-fix"> and add a label
	to it.
	(selftest::test_simple_log): Update expected HTML.

2025-06-11  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-path-output.cc: Use xml::printer::add_text_from_pp.
	* diagnostic-show-locus.cc: Likewise.
	* xml-printer.h (xml::printer::add_text_from_pp): New decl.
	* xml.cc (xml::node_with_children::add_text_from_pp): New.
	(xml::printer::add_text_from_pp): New.
	* xml.h (xml::node_with_children::add_text_from_pp): New decl.

2025-06-11  David Malcolm  <dmalcolm@redhat.com>

	PR other/120610
	* diagnostic-format-html.cc (html_builder::html_builder): Update
	for new param of xml::printer::pop_tag.
	(html_path_label_writer::end_label): Likewise.
	(html_builder::make_element_for_diagnostic::html_token_printer):
	Give the instance its own xml::printer.  Update for new param of
	xml::printer::pop_tag.
	(html_builder::make_element_for_diagnostic): Give the instance its
	own xml::printer.
	(html_builder::make_metadata_element): Update for new param of
	xml::printer::pop_tag.
	(html_builder::flush_to_file): Likewise.
	* diagnostic-path-output.cc (begin_html_stack_frame): Likewise.
	(begin_html_stack_frame): Likewise.
	(end_html_stack_frame): Likewise.
	(print_path_summary_as_html): Likewise.
	* diagnostic-show-locus.cc
	(struct to_text::auto_check_tag_nesting): New.
	(struct to_html:: auto_check_tag_nesting): New.
	(to_text::pop_html_tag): Change param to const char *.
	(to_html::pop_html_tag): Likewise; rename param to
	"expected_name".
	(default_diagnostic_start_span_fn<to_html>): Update for new param
	of xml::printer::pop_tag.
	(layout_printer<to_html>::end_label): Likewise.
	(layout_printer<Sink>::print_trailing_fixits): Add RAII sentinel
	to check tag nesting for the HTML case.  Delete stray popping
	of "td" in the presence of fix-it hints.
	(layout_printer<Sink>::print_line): Add RAII sentinel
	to check tag nesting for the HTML case.
	(diagnostic_source_print_policy::print_as_html): Likewise.
	(layout_printer<Sink>::print): Likewise.
	* xml-printer.h (xml::printer::printer): Add optional
	"check_popped_tags" param.
	(xml::printer::pop_tag): Add "expected_name" param.
	(xml::printer::get_num_open_tags): New accessor.
	(xml::printer::dump): New decl.
	(xml::printer::m_check_popped_tags): New field.
	(class xml::auto_check_tag_nesting): New.
	(class xml::auto_print_element): Update for new param of pop_tag.
	* xml.cc: Move pragma pop so that the pragma also covers
	xml::printer's member functions, "dump" in particular.
	(xml::printer::printer): Add param "check_popped_tags".
	(xml::printer::pop_tag): Add param "expected_name" and use it to assert
	that the popped tag is as expected.  Assert that we have a tag to
	pop.
	(xml::printer::dump): New.
	(selftest::test_printer): Update for new param of pop_tag.
	(selftest::test_attribute_ordering): Likewise.

2025-06-11  David Malcolm  <dmalcolm@redhat.com>

	* gimple-ssa-warn-access.cc
	(pass_waccess::maybe_check_dealloc_call): Add missing
	auto_diagnostic_group to nest the "returned from %qD"
	note within the warning.

2025-06-10  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.cc (cgraph_node::make_profile_local): New member function.
	(cgraph_node::make_profile_global0): New member function.
	(cgraph_node::apply_scale): Do not call adjust_for_ipa_scalling.
	(cgraph_node::scale_profile_to): New member function.
	* cgraph.h (cgraph_node::make_profile_local,
	cgraph_node::make_profile_global0, cgraph_node::scale_profile_to):
	Declare.
	* ipa-cp.cc (lenient_count_portion_handling): Fix logic dropping count
	to local.
	(update_counts_for_self_gen_clones): Use scale_profile_to.
	(update_profiling_info): Use make_profile_local, make_profile_global0
	and scale_profile_to.
	(update_specialized_profile): Likewise.
	* ipa-inline-transform.cc (clone_inlined_nodes): Call
	adjust_for_ipa_scalling.

2025-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120434
	* expr.cc (expand_expr_real_2) <CASE_CONVERT>: If get_range_pos_neg
	at -O2 for scalar integer extension suggests the most significant
	bit of op0 is not set, try both unsigned and signed conversion and
	choose the cheaper one.  If both are the same cost, choose one
	based on TYPE_UNSIGNED (TREE_TYPE (treeop0)).

2025-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120434
	* config/i386/i386.md (*bsr_rex64_2): Rename to ...
	(*bsr_rex64<u>_2): ... this.  Use any_extend instead of sign_extend.
	(*bsr_2): Rename to ...
	(*bsr<u>_2): ... this.  Use any_extend instead of sign_extend.
	(bsr splitters after those): Use any_extend instead of sign_extend.

2025-06-10  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120434
	* cfgrtl.h (update_bb_for_insn_chain): Declare.
	* cfgrtl.cc (update_bb_for_insn_chain): No longer static.
	* cfgexpand.h (expand_remove_edge): Declare.
	* cfgexpand.cc: Include "gimple-range.h".
	(head_end_for_bb): New variable.
	(label_rtx_for_bb): Drop ATTRIBUTE_UNUSED from bb argument.
	Use head_end_for_bb if possible for non-BB_RTL bbs.
	(expand_remove_edge): New function.
	(maybe_cleanup_end_of_block): Use it instead of remove_edge.
	(expand_gimple_cond): Don't clear EDGE_TRUE_VALUE and
	EDGE_FALSE_VALUE just yet.  Use head_end_for_bb elts instead
	of BB_END and update_bb_for_insn_chain instead of update_bb_for_insn.
	(expand_gimple_tailcall): Use expand_remove_edge instead of
	remove_edge.  Use head_end_for_bb elts instead of BB_END and
	update_bb_for_insn_chain instead of update_bb_for_insn.
	(expand_gimple_basic_block): Don't change bb to BB_RTL here, instead
	use head_end_for_bb elts instead of BB_HEAD and BB_END.  Use
	update_bb_for_insn_chain instead of update_bb_for_insn.
	(pass_expand::execute): Enable ranger before expand_gimple_basic_block
	calls and create head_end_for_bb vector.  Disable ranger after
	those calls, turn still non-BB_RTL blocks into BB_RTL and set their
	BB_HEAD and BB_END from head_end_for_bb elts, and clear EDGE_TRUE_VALUE
	and EDGE_FALSE_VALUE flags on edges.  Release head_end_for_bb
	vector.
	* tree-outof-ssa.cc (expand_phi_nodes): Don't clear phi nodes here.
	* tree.h (get_range_pos_neg): Add gimple * argument defaulted to NULL.
	* tree.cc (get_range_pos_neg): Add stmt argument.  Use
	get_range_query (cfun) instead of get_global_range_query () and pass
	stmt as third argument to range_of_expr.
	* expr.cc (expand_expr_divmod): Pass currently_expanding_gimple_stmt
	to get_range_pos_neg.
	(expand_expr_real_1) <case SSA_NAME>: Change internal fn handling
	to avoid temporarily overwriting gimple_call_lhs of ifn, instead
	temporarily overwrite SSA_NAME_VAR of its lhs.
	(maybe_optimize_pow2p_mod_cmp): Pass currently_expanding_gimple_stmt
	to get_range_pos_neg.
	(maybe_optimize_mod_cmp): Likewise.
	* internal-fn.cc (get_min_precision): Likewise.  Use
	get_range_query (cfun) instead of get_global_range_query () and pass
	currently_expanding_gimple_stmt as third argument to range_of_expr.
	Pass g to get_range_pos_neg.
	(expand_addsub_overflow): Pass currently_expanding_gimple_stmt
	to get_range_pos_neg.
	(expand_mul_overflow): Likewise.
	(expand_arith_overflow): Pass stmt to get_range_pos_neg.
	* gimple-range-edge.cc: Include rtl.h.
	(gimple_outgoing_range_stmt_p): Return NULL for BB_RTL bbs.
	(gimple_outgoing_range::calc_switch_range): If default_edge is NULL,
	assert currently_expanding_to_rtl and return before trying to
	set range on that edge.
	* builtins.cc (expand_builtin_strnlen): Use get_range_query (cfun)
	instead of get_global_range_query () and pass
	currently_expanding_gimple_stmt as third argument to range_of_expr.
	(determine_block_size): Likewise.
	* gimple-range.cc (gimple_ranger::range_on_exit): Set s to NULL
	instead of last_nondebug_stmt for BB_RTL bbs.
	* stmt.cc: Include cfgexpand.h.
	(expand_case): Use expand_remove_edge instead of remove_edge.

2025-06-10  Andrew MacLeod  <amacleod@redhat.com>

	* value-range.cc (irange::set_range_from_bitmask): When the bitmask
	result is a singleton, check if it is contained in the range.

2025-06-10  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-devices.def: Add gfx942, gfx950 and gfx9-4-generic.
	* config/gcn/gcn-opts.h (TARGET_CDNA3, TARGET_CDNA3_PLUS,
	TARGET_GLC_NAME, TARGET_TARGET_SC_CACHE): Define.
	(TARGET_ARCHITECTED_FLAT_SCRATCH): Use also for CDNA3.
	* config/gcn/gcn.h (gcn_isa): Add ISA_CDNA3 to the enum.
	* config/gcn/gcn.cc (print_operand): Update 'g' to use
	TARGET_GLC_NAME; add 'G' to print TARGET_GLC_NAME unconditionally.
	* config/gcn/gcn-valu.md (scatter, gather): Use TARGET_GLC_NAME.
	* config/gcn/gcn.md: Use %G<num> instead of glc; use 'buffer_inv sc1'
	for TARGET_TARGET_SC_CACHE.
	* doc/invoke.texi (march): Add gfx942, gfx950 and gfx9-4-generic.
	* doc/install.texi (amdgcn*-*-*): Add gfx942, gfx950 and gfx9-4-generic.
	* config/gcn/gcn-tables.opt: Regenerate.

2025-06-10  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.md (lui-constraint<X:mode>and_to_or): Do not use
	the RTL template for split code.  Emit it directly taking care to avoid
	emitting a constant load that needed synthesis.  Fix formatting.

2025-06-10  Kito Cheng  <kito.cheng@sifive.com>

	* doc/riscv-ext.texi: Regen.

2025-06-10  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
	case UMOD.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op umod.

2025-06-09  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-sarif.cc (maybe_get_sarif_kind): Update for
	conversion of enum logical_location_kind to enum class.
	* diagnostic.cc (logical_location_manager::function_p): Likewise.
	* libgdiagnostics.cc (html-output/missing-semicolon.py::get_kind):
	Likewise.
	* logical-location.h (enum logical_location_kind): Convert to...
	(enum class logical_location_kind): ...this.
	* selftest-logical-location.cc
	(test_logical_location_manager::item_from_funcname): Update for
	conversion of enum logical_location_kind to enum class.
	* tree-logical-location.cc
	(tree_logical_location_manager::get_kind): Likewise.

2025-06-09  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.cc (cgraph_node::apply_scale): New member function.
	* cgraph.h (struct cgraph_node): declare.
	* ipa-cp.cc (update_counts_for_self_gen_clones):
	Use cgraph_node::apply_scale.
	(update_profiling_info): Do not overwrite local
	profile when dropping to 0 global profile.
	(update_specialized_profile): Likewise.
	* ipa-inline-transform.cc (update_noncloned_counts): Remove.
	(can_remove_node_now_p_1): Fix formating.
	(clone_inlined_nodes): Use cgraph_node::apply_scale.
	* profile-count.cc (profile_count::dump): Do not ICE
	when count is not compatible with entry block count.
	* tree-cfg.cc (gimple_verify_flow_info): Check
	compatibility of count and entry block count.

2025-06-09  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc (html_builder::m_title_element): New
	field.
	(html_builder::html_builder): Initialize it.  Don't add
	placeholder text.
	(html_builder::set_main_input_filename): New.
	(html_output_format::set_main_input_filename): New.
	(test_html_diagnostic_context::test_html_diagnostic_context): Call
	set_main_input_filename on the new sink.
	(seldtest::test_simple_log): Update expected <title> text.
	* diagnostic-format-json.cc (diagnostic_output_format_init_json):
	Return a reference to the new sink.
	(diagnostic_output_format_init_json_stderr): Likewise.
	(diagnostic_output_format_init_json_file): Likewise.
	* diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Drop
	"main_input_filename_" param, and move adding an artifact for it
	with diagnostic_artifact_role::analysis_target to...
	(sarif_builder::set_main_input_filename): ...this new function.
	(sarif_output_format::set_main_input_filename): New.
	(sarif_output_format::sarif_output_format): Drop
	"main_input_filename_" param.
	(sarif_stream_output_format::sarif_stream_output_format):
	Likewise.
	(sarif_file_output_format::sarif_file_output_format): Likewise.
	(diagnostic_output_format_init_sarif): Return a reference to *FMT.
	(diagnostic_output_format_init_sarif_stderr): Return a refererence
	to the new sink.  Drop "main_input_filename_" param.
	(diagnostic_output_format_init_sarif_file): Likewise.
	(diagnostic_output_format_init_sarif_stream): Likewise.
	(make_sarif_sink): Drop "main_input_filename_" param.
	(selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context):
	Likewise.  Call set_main_input_filename on the new format.
	(selftest::test_sarif_diagnostic_context::buffered_output_format::buffered_output_format):
	Drop "main_input_filename_" param.
	(selftest::test_make_location_object): Likewise.
	* diagnostic-format-sarif.h
	(diagnostic_output_format_init_sarif_stderr): Return a refererence
	to the new sink.  Drop "main_input_filename_" param.
	(diagnostic_output_format_init_sarif_file): Likewise.
	(diagnostic_output_format_init_sarif_stream): Likewise.
	(make_sarif_sink): Drop "main_input_filename_" param.
	* diagnostic-format.h
	(diagnostic_output_format::set_main_input_filename): New vfunc.
	(diagnostic_output_format_init_json_stderr): Return a refererence
	to the new sink.
	(diagnostic_output_format_init_json_file): Likewise.
	* diagnostic.cc (diagnostic_output_format_init): Likewise.  Call
	set_main_input_filename on the new sink.
	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for above
	changes.
	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise.
	(handle_OPT_fdiagnostics_add_output_): Likewise.
	(handle_OPT_fdiagnostics_set_output_): Likewise.

2025-06-09  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_noce_conversion_profitable_p): Relax
	condition for adjustments due to copies from promoted SUBREGs.

2025-06-09  Tamar Christina  <tamar.christina@arm.com>

	* doc/extend.texi (outline-atomics): Document the inverse -mno flag.

2025-06-09  Tamar Christina  <tamar.christina@arm.com>

	* params.opt (vect-scalar-cost-multiplier): New.
	* tree-vect-loop.cc (vect_estimate_min_profitable_iters): Use it.
	* doc/invoke.texi (vect-scalar-cost-multiplier): Document it.

2025-06-09  liuhongt  <hongtao.liu@intel.com>

	PR target/103750
	* config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
	maskload.
	* config/i386/sse.md (*<avx512>_load<mode>mask_and15): New
	define_insn_and_split.
	(*<avx512>_load<mode>mask_and3): Ditto.

2025-06-09  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
	case MOD.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op mod.

2025-06-08  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* auto-profile.cc (function_instance::merge): Fix typo.

2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/120203
	* config/riscv/riscv.cc (CFUN_IN_CALL): New macro.
	(struct mode_switching_info): Add new field.
	(riscv_frm_adjust_mode_after_call): Remove.
	(riscv_frm_mode_needed): Track call_insn.

2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/119164
	* config/riscv/riscv.cc (riscv_emit_frm_mode_set): check
	STATIC_FRM_P for transition to DYN.

2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>

	* config/riscv/riscv.cc (riscv_frm_emit_after_bb_end): Delete.
	(riscv_frm_mode_needed): Remove call riscv_frm_emit_after_bb_end.

2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>

	* config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): Remove.
	(riscv_mode_confluence): Ditto.
	(TARGET_MODE_CONFLUENCE): Ditto.

2025-06-08  Vineet Gupta  <vineetg@rivosinc.com>

	* emit-rtl.cc (next_nonnote_nondebug_insn): Update comments.

2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Move
	definitin of else_vdef to right before the usage. Reformat
	slightly.

2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120533
	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_limited): New function.
	(pass_phiopt::execute):	Call cond_if_else_store_replacement_limited
	for diamand case.

2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-phiopt.cc (single_trailing_store_in_bb): Add vphi argument.
	Check for single use of the vdef of the store instead of a loop
	and check vdef's single use statement is the same as vphi.
	(cond_if_else_store_replacement): Update call to single_trailing_store_in_bb.

2025-06-08  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use get_virtual_phi
	instead of inlining it.

2025-06-08  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
	riscv_extend_comparands to extend sub-word comparison arguments.

2025-06-08  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (printx, print_operand):
	Add two instruction operand format codes 'U' and 'V',
	whose represent scale factors of 0 to 15th positive/negative
	power of two.
	* config/xtensa/xtensa.md (c_enum "unspec"):
	Add UNSPEC_CEIL and UNSPEC_FLOOR.
	(int_iterator ANY_ROUND, int_attr m_round):
	New integer iterator and its attribute.
	(fix<s_fix>_truncsfsi2, *fix<s_fix>_truncsfsi2_2x,
	*fix<s_fix>_truncsfsi2_scaled, float<s_float>sisf2,
	*float<s_float>sisf2_scaled):
	Use output templates with the operand formats added above,
	instead of individual output statements.
	(l<m_round>sfsi2, *l<m_round>sfsi2_2x, *l<m_round>sfsi2_scaled):
	New insn patterns.

2025-06-07  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_expand_conditional_move): Use
	riscv_extend_comparands to extend sub-word comparison arguments.

2025-06-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120572
	* doc/invoke.texi (Wmusttail-local-addr,
	Wno-maybe-musttail-local-addr): Fix opindex.
	* common.opt.urls: Regenerate.

2025-06-06  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc (struct html_doctypedecl): New.
	(html_builder::html_builder): Use it to populate the document's
	m_doctypedecl.
	* xml.cc (xml::document::write_as_xml): Replace hardcoded HTML DTD
	with use of m_doctypedecl field.
	(selftest::test_no_dtd): New.
	(selftest::xml_cc_tests): New.
	* xml.h (struct doctypedecl): New decl.

2025-06-06  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add xml.o.
	* diagnostic-format-html.cc (namespace xml): Move implementation
	to xml.cc
	(selftest::test_printer): Likewise.
	(selftest::test_attribute_ordering): Likewise.
	(selftest::diagnostic_format_html_cc_tests): Don't call the moved
	tests here; they will be called from xml_cc_tests in xml.cc.
	* selftest-run-tests.cc (selftest::run_tests): Call xml_cc_tests.
	* selftest.h (selftest::xml_cc_tests): New decl.
	* xml.cc: New file, based on material from
	diagnostic-format-html.cc.

2025-06-06  David Malcolm  <dmalcolm@redhat.com>

	* selftest.h: Fix the sorting of the various *_cc_tests decls.

2025-06-06  David Malcolm  <dmalcolm@redhat.com>

	* text-art/widget.cc (selftest::test_empty_wrapper_widget): New.
	(selftest::text_art_widget_cc_tests): Call it.
	* text-art/widget.h (text_art::wrapper_widget::calc_req_size):
	Gracefully handle m_child being null.
	(text_art::wrapper_widget::update_child_alloc_rects): Likewise.
	(text_art::wrapper_widget::paint_to_canvas): Likewise.

2025-06-06  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add vphi argument.
	Manually update the vphi and new_stmt vdef/lhs.
	(cond_if_else_store_replacement): Update call to cond_if_else_store_replacement_1.

2025-06-06  Tobias Burnus  <tburnus@baylibre.com>
	    Sandra Loosemore  <sloosemore@baylibre.com>

	* gimple-fold.cc (gimple_fold_builtin_omp_get_initial_device,
	gimple_fold_builtin_omp_get_num_devices): New.
	(gimple_fold_builtin): Call them.
	* omp-builtins.def (BUILT_IN_OMP_GET_INITIAL_DEVICE): Add
	(BUILT_IN_OMP_GET_NUM_DEVICES): Make uservisible + pure.

2025-06-06  Tobias Burnus  <tburnus@baylibre.com>

	* builtins.def (DEF_GOACC_BUILTIN_COMPILER, DEF_GOMP_BUILTIN_COMPILER):
	Set NONANSI_P = false to enable those also with -fno-nonansi-builtins.

2025-06-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (get_group_load_store_type): Remove
	non-SLP path.
	(get_load_store_type): Likewise.

2025-06-06  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
	case UDIV.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op divu.

2025-06-06  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_store): Remove non-SLP
	paths.

2025-06-06  Richard Biener  <rguenther@suse.de>

	* gimple-fold.h (create_tmp_reg_or_ssa_name): Remove.
	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Likewise.
	(gimple_fold_builtin_memory_op): Use make_ssa_name.
	(gimple_fold_builtin_strchr): Likewise.
	(gimple_fold_builtin_strcat): Likewise.
	(gimple_load_first_char): Likewise.
	(gimple_fold_builtin_string_compare): Likewise.
	(gimple_build): Likewise.
	* tree-inline.cc (copy_bb): Likewise.
	* config/rs6000/rs6000-builtin.cc (fold_build_vec_cmp): Likewise.
	(rs6000_gimple_fold_mma_builtin): Likewise.
	(rs6000_gimple_fold_builtin): Likewise.

2025-06-06  Eric Botcazou  <ebotcazou@adacore.com>

	* expr.cc (store_constructor) <ARRAY_TYPE>: Perform the arithmetics
	on offsets in (unsigned) sizetype.

2025-06-06  Jan Hubicka  <hubicka@ucw.cz>

	* coverage.cc (coverage_init): Return early when in LTO

2025-06-06  Jan Hubicka  <hubicka@ucw.cz>

	* profile-count.cc (profile_count::to_sreal_scale): Special case 0 of autofdo.
	(profile_count::combine_with_ipa_count): If outer function has GLOBAL0 profile
	but innter counter has non-zero profile, force it to be 0.

2025-06-06  Jiawei  <jiawei@iscas.ac.cn>
	    Jiawei Chen  <jiawei@iscas.ac.cn>
	    Yangyu Chen  <cyy@cyyself.name>
	    Tang Haojin  <tanghaojin@outlook.com>

	* config/riscv/riscv-cores.def (RISCV_TUNE): New cpu tune.
	(RISCV_CORE): New cpu.
	* doc/invoke.texi: Ditto.

2025-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120032
	* tree-ssa-forwprop.cc (simplify_count_zeroes): When we cannot use
	the IFN to determine the result at zero use a conditional move
	to reproduce the correct result from the table-based
	algorithm.

2025-06-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120032
	* match.pd (clz_table_index): New match.
	* tree-ssa-forwprop.cc (check_table_array): Rename from
	check_ctz_array.  Split out actual verification to a functor.
	(check_table_string): Rename from check_ctz_string and likewise.
	(check_table): Rename from check_ctz_table and adjust.
	(gimple_clz_table_index): Declare.
	(simplify_count_zeroes): Rename from simplify_count_trailing_zeroes.
	Extend to cover CLZ.
	(pass_forwprop::execute): Adjust.

2025-06-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.cc (simplify_count_trailing_zeroes):
	Use ranger instead of tree_expr_nonzero_p.

2025-06-06  Richard Biener  <rguenther@suse.de>

	* tree-ssa-forwprop.cc (optimize_count_trailing_zeroes):
	Inline into ...
	(simplify_count_trailing_zeroes): ... this function.
	Split out ...
	(check_ctz_table): ... a wrapper for CONSTRUCTOR vs. STRING_CST
	handling.

2025-06-05  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_expand_conditional_move): Avoid
	zicond in some cases involving sign bit tests.
	* config/riscv/riscv.md: Split a splat of the sign bit feeding a
	masking off high bits into a pair of right shifts.

2025-06-05  Uros Bizjak  <ubizjak@gmail.com>

	PR target/120553
	* config/i386/i386.md (mov<mode>cc): Use "general_operand"
	predicate for operands 2 and 3 for all modes.

2025-06-05  Marek Polacek  <polacek@redhat.com>

	* doc/invoke.texi: Update a link to c99status.html.
	* doc/standards.texi: Likewise.

2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Update the virtual
	op on the inserted clobber and the stack restore function.
	(do_ssa_ccp): Don't add TODO_update_ssa to the todo.

2025-06-05  Andrew Pinski  <quic_apinski@quicinc.com>

	* config/aarch64/aarch64-sve-builtins.cc: Include value-range.h and tree-ssanames.h
	(gimple_folder::convert_and_fold): Use make_ssa_name
	instead of create_tmp_var for the temporary. Add comment about callback argument.

2025-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/120231
	* range-op.cc (range_op_table::range_op_table): Register op_cast
	also for FLOAT_EXPR and FIX_TRUNC_EXPR.
	(RO_III): Adjust comment.
	(range_op_handler::op1_range): Handle RO_IFI rather than RO_IFF.
	Don't handle RO_FII.
	(range_operator::op1_range): Remove overload with
	irange &, tree, const frange &, const frange &, relation_trio
	and frange &, tree, const irange &, const irange &, relation_trio
	arguments.  Add overload with
	irange &, tree, const frange &, const irange &, relation_trio
	arguments.
	* range-op-mixed.h (operator_cast::op1_range): Remove overload with
	irange &, tree, const frange &, const frange &, relation_trio
	and frange &, tree, const irange &, const irange &, relation_trio
	arguments.  Add overload with
	irange &, tree, const frange &, const irange &, relation_trio and
	frange &, tree, const irange &, const frange &, relation_trio
	arguments.
	* range-op.h (range_operator::op1_cast): Remove overload with
	irange &, tree, const frange &, const frange &, relation_trio
	and frange &, tree, const irange &, const irange &, relation_trio
	arguments.  Add overload with
	irange &, tree, const frange &, const irange &, relation_trio
	arguments.
	* range-op-float.cc (operator_cast::fold_range): Implement
	float to int and int to float casts.
	(operator_cast::op1_range): Remove overload with
	irange &, tree, const frange &, const frange &, relation_trio
	and frange &, tree, const irange &, const irange &, relation_trio
	arguments.  Add overload with
	irange &, tree, const frange &, const irange &, relation_trio and
	frange &, tree, const irange &, const frange &, relation_trio
	arguments and implement reverse op of float to int and int to float
	cast there.

2025-06-05  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (afdo_calculate_branch_prob): Fix typo
	in previous patch.

2025-06-05  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc: Remove structured binding
	from the code.

2025-06-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/120547
	* real.cc (real_from_integer): Remove maxbitlen variable, use
	len instead of that.  When shifting right, or in 1 if any of the
	shifted away bits are non-zero.  Formatting fix.

2025-06-05  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (update_count_by_afdo_count): Fix handling
	of GUESSED_LOCAL.
	(afdo_calculate_branch_prob): Preserve static profile for
	probabilities 0 and 1.

2025-06-05  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md: Leverage vdup_v and v_vdup
	binary op for different patterns.
	* config/riscv/vector-iterators.md: Add vdup_v and v_vdup
	binary op iterators.

2025-06-05  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/zicond.md: Add new splitters to select
	1, -1 or -1, 1 based on a sign bit test.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension definition.
	* config/riscv/riscv-ext.opt: New extension mask.
	* doc/riscv-ext.texi: Document the new extension.

2025-06-05  Eric Botcazou  <ebotcazou@adacore.com>

	* tree-vect-data-refs.cc (vect_can_force_dr_alignment_p): Return
	false if the variable has no symtab node.

2025-06-05  Spencer Abson  <spencer.abson@arm.com>

	* tree-eh.cc (operation_could_trap_helper_p): Cover FIX_TRUNC
	expressions explicitly.

2025-06-05  Tobias Burnus  <tburnus@baylibre.com>

	* config.gcc (--with-{arch,tune}): Use .def file to validate gcn
	processor names.
	* doc/install.texi (amdgcn*-*-*): Update list of devices supported
	by --with-arch/--with-tune.

2025-06-05  Hongyu Wang  <hongyu.wang@intel.com>

	PR middle-end/112824
	* tree-sra.cc (sra_get_max_scalarization_size): Use MOVE_MAX
	instead of UNITS_PER_WORD to define max_scalarization_size.

2025-06-05  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/sse.md
	(avx512f_movddup512<mask_name>): Change sselog1 to ssemov.
	(avx_movddup256<mask_name>): Ditto.
	(*vec_dupv2di): Change alternative 4's type attribute from sselog1
	to ssemov.

2025-06-05  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: Update declaration.

2025-06-04  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* auto-profile.cc (autofdo_source_profile::read): Dump message
	while merging profile.
	* pass_manager.h (get_pass_auto_profile): New.

2025-06-04  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c++/120518
	* omp-general.cc (omp_device_num_check): Look inside a
	CLEANUP_POINT_EXPR when trying to optimize special cases.

2025-06-04  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/mkoffload.cc (process): Use an 'auto_vec' for
	'file_idx'.

2025-06-04  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/14295
	PR tree-optimization/108358
	PR tree-optimization/114169
	* tree-ssa-forwprop.cc (optimize_agr_copyprop): New function.
	(pass_forwprop::execute): Call optimize_agr_copyprop for load/store statements.

2025-06-04  Pengfei Li  <Pengfei.Li2@arm.com>

	* match.pd: Add folding rule for vector average.
	* tree-ssa-ccp.cc (get_default_value): Reject vector types.
	(evaluate_stmt): Reject vector types.
	* tree-ssanames.cc (get_nonzero_bits_1): Extend to handle
	uniform vectors.

2025-06-04  Xi Ruoyao  <xry111@xry111.site>

	PR rtl-optimization/120050
	* ext-dce.cc (ext_dce_process_uses): Break early if a SUBREG in
	rhs is promoted and the truncation from the inner mode to the
	outer mode is not a noop when handling SETs.

2025-06-04  Jakub Jelinek  <jakub@redhat.com>

	* range-op-float.cc (range_operator::fold_range,
	range_operator::op1_range, range_operator::op2_range,
	range_operator::lhs_op1_relation, range_operator::lhs_op2_relation,
	operator_equal::op1_range, foperator_unordered_gt::op1_range): Fix
	up parameter indentation.
	* range-op.cc (range_operator::fold_range, range_operator::op1_range,
	range_operator::op1_op2_relation_effect,
	range_operator::update_bitmask, plus_minus_ranges,
	operator_bitwise_and::lhs_op1_relation): Likewise.

2025-06-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/120231
	* range-op-mixed.h (operator_cast::fold_range): Add overload
	with 3 {,const} frange & operands.  Change parameter names and
	add final override keywords for float <-> integer cast overloads.
	(operator_cast::op1_range): Likewise.
	* range-op-float.cc (operator_cast::fold_range): New overload
	with 3 {,const} frange & operands.
	(operator_cast::op1_range): Likewise.

2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* config/riscv/riscv-ext.def: Imply zicsr.

2025-06-04  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension defs.
	* config/riscv/riscv-ext.opt: Ditto.
	* doc/riscv-ext.texi: Ditto.

2025-06-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/120447
	* emit-rtl.cc (validate_subreg): Restrict ordered_p test
	between osize and regsize to cases where the inner value
	occupies multiple blocks.

2025-06-04  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Rename
	the args to scalar2vr.
	(riscv_rtx_costs): Leverage above func to avoid code dup.

2025-06-04  H.J. Lu  <hjl.tools@gmail.com>

	PR debug/120525
	* var-tracking.cc (prepare_call_arguments): Use MEM_EXPR only
	if MEM_P is true.

2025-06-04  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension defs.
	* config/riscv/riscv-ext.opt: Ditto.
	* doc/riscv-ext.texi: Ditto.

2025-06-04  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/i386.md (define_peephole2): Define some new peephole2 for
	APX NDD.

2025-06-04  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/i386.md: Add 4 new peephole2 by swap the original
	peephole2's operands' order to support new pattern.

2025-06-04  H.J. Lu  <hjl.tools@gmail.com>

	PR other/120494
	* calls.cc (expand_call): Always add REG_CALL_DECL note.
	(emit_library_call_value_1): Likewise.

2025-06-03  Richard Biener  <rguenther@suse.de>

	* gimple-fold.cc (create_tmp_reg_or_ssa_name): Always
	create a SSA name.

2025-06-03  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_vec_dup): Add new
	case for DIV op.
	* config/riscv/riscv.cc (get_vector_binary_rtx_cost): Add new func
	to get the cost of vector binary.
	(riscv_rtx_costs): Add div rtx match and leverage above wrap to
	get cost.
	* config/riscv/vector-iterators.md: Add new op div to no_shift_vx_op.

2025-06-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120517
	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
	Fix math in dataref group split.

2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>

	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Replace
	FR2VR with get_fr2vr_cost ().
	* config/riscv/riscv.cc (riscv_register_move_cost): Likewise.
	(riscv_builtin_vectorization_cost): Likewise.

2025-06-03  Paul-Antoine Arras  <parras@baylibre.com>

	PR target/119100
	* config/riscv/autovec-opt.md (*<optab>_vf_<mode>): Add new pattern to
	combine vec_duplicate + vfm{add,sub}.vv into vfm{add,sub}.vf.
	* config/riscv/riscv-opts.h (FPR2VR_COST_UNPROVIDED): Define.
	* config/riscv/riscv-protos.h (get_fr2vr_cost): Declare function.
	* config/riscv/riscv.cc (riscv_rtx_costs): Add cost model for MULT with
	VEC_DUPLICATE.
	(get_fr2vr_cost): New function.
	* config/riscv/riscv.opt: Add new option --param=fpr2vr-cost.

2025-06-03  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120451
	* tree-switch-conversion.cc (switch_conversion::build_one_array): Mark
	the newly created decl as mergable.

2025-06-02  Alexandre Oliva  <oliva@adacore.com>

	PR rtl-optimization/120424
	PR middle-end/118939
	* lra-spills.cc (spill_pseudos): Update insn regno info.
	* lra-eliminations.cc (update_reg_eliminate): Recognize
	disabling of active elimination regardless of
	prev_can_eliminate.

2025-06-02  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension defs.
	* config/riscv/riscv-ext.opt: Ditto.
	* doc/riscv-ext.texi: Ditto.

2025-06-02  Stafford Horne  <shorne@gmail.com>

	* config/or1k/predicates.md (call_insn_operand): Add condition
	to not allow symbol_ref operands with TARGET_CMODEL_LARGE.
	* config/or1k/or1k.opt: Document new -mcmodel=large
	implications.
	* doc/invoke.texi: Likewise.

2025-06-02  Christophe Lyon  <christophe.lyon@linaro.org>

	* doc/sourcebuild.texi (tls_link): Add documentation.

2025-06-02  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/t-riscv: Adjust build rule for gen-riscv-ext-opt
	and gen-riscv-ext-texi.

2025-06-02  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Use
	range-based-for-loop.
	* config/riscv/riscv-subset.h (riscv_subset_list::iterator):
	New.
	(riscv_subset_list::const_iterator): New.

2025-06-01  H.J. Lu  <hjl.tools@gmail.com>

	PR other/120493
	* final.cc (call_from_call_insn): Change the argument type to
	const rtx_call_insn *.
	(get_call_rtx_from): New.
	* rtl.h (is_a_helper <const rtx_call_insn *>::test): New.
	(get_call_rtx_from): Moved to the final.cc section.
	* rtlanal.cc (get_call_rtx_from): Removed.

2025-06-01  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_vector_load): Set the vuse manually
	on the new load statements. Also remove forward declaration since
	the definition is before the first use.
	(pass_forwprop::execute): Likewise for complex loads.
	(pass_data_forwprop): Remove TODO_update_ssa.

2025-06-01  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md: Fix line too long for sorts
	of pattern.

2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc: Remove include of reload.h.

2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.md (movsf_internal):
	Remove destination side constraint modifier '^' in the third
	alternative.

2025-06-01  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc
	(xtensa_ira_change_pseudo_allocno_class):
	New prototype and function.
	(TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
	(xtensa_register_move_cost):
	Change between integer and FP register move cost to a value
	based on actual behavior, i.e. 2, the default and the same as
	the move cost between integer registers.

2025-05-31  Andrew Pinski  <quic_apinski@quicinc.com>

	* function.h (struct function): Remove last_verified.
	* gimple-harden-conditionals.cc (pass_data_harden_compares): Remove
	TODO_verify_il.
	(pass_data_harden_conditional_branches): Likewise.
	* gimple-harden-control-flow.cc (pass_harden_control_flow_redundancy::execute):
	Don't return TODO_verify_il.
	* ipa-strub.cc (pass_data_ipa_strub): Remove TODO_verify_il.
	* passes.cc (TODO_verify_il): Define.
	(execute_function_todo): Don't use or set last_verified.
	(clear_last_verified): Remove.
	(execute_one_ipa_transform_pass): Update comment before execute_todo.
	Assert that none of the todos have TODO_verify_il set on it.
	(execute_one_pass): Don't call clear_last_verified on all functions.
	Assert that none of the todos have TODO_verify_il set on it.
	* tree-inline.cc (initialize_cfun): Don't copy last_verified.
	* tree-pass.h (TODO_verify_all): Remove.
	* tree-vrp.cc (pass_data_early_vrp): Remove TODO_verify_all.
	(pass_data_fast_vrp): Likewise.

2025-05-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120357
	* tree-vect-loop.cc (vect_create_epilog_for_reduction): Create
	the conditional reduction induction IV increment before the
	main IV exit.

2025-05-31  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/120389
	* doc/gm2.texi (-fm2-strict-type-reason): Document new flag.

2025-05-30  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc (HTML_STYLE): Add ".highlight-a" and
	".highlight-b".
	(html_builder::make_element_for_diagnostic): Handle begin_color
	and end_color.
	* diagnostic-show-locus.cc (to_html::to_html): Add "richloc"
	param and use it to initialize m_richloc.
	(to_html::colorize_text_for_range_idx): Drop.
	(to_html::get_location_range_by_idx): New.
	(to_html::get_highlight_color_for_range_idx): New.
	(to_html::m_richloc): New field.
	(print_html_span_start): Update for new param of to_html ctor.
	(line_printer::m_was_in_range_p): New field.
	(line_printer::m_last_range_idx): New field.
	(layout_printer<Sink>::print_source_line): Use set_in_range
	and set_outside_range rather than colorization calls.
	(layout_printer<Sink>::set_in_range): New.
	(layout_printer<Sink>::set_outside_range): New.
	(layout_printer<Sink>::print_annotation_line): Use set_in_range
	and set_outside_range rather than colorization calls.
	(layout_printer<to_text>::begin_label): Convert param from label
	to state_idx.  Add "is_label_text" param and use it to guard logic
	for turning off colorization within paths.
	(layout_printer<to_html>::begin_label): Likewise.  Push <span>
	for any highlight color.
	(layout_printer<to_text>::end_label): Likewise.
	(layout_printer<to_text>::end_label): Likewise, popping the
	<span>.
	(layout_printer<Sink>::print_any_labels): Convert begin/end_label
	calls to pass in state_idx rather than label.  Use begin/end_label
	rather than colorization calls.
	(layout_printer<Sink>::layout_printer): Likewise.
	(layout_printer<Sink>::layout_printer): Initialize new fields.
	(diagnostic_source_print_policy::print_as_html): Update for new
	param of to_html ctor.

2025-05-30  Andrew Pinski  <quic_apinski@quicinc.com>

	* passes.cc (execute_all_ipa_transforms): Fix typo in
	commenet.

2025-05-30  Joseph Myers  <josmyers@redhat.com>

	* doc/standards.texi (C Language): Document library facilities
	provided in terms of headers not declaring functions with external
	linkage, not in terms of headers required of freestanding
	implementations.
	* doc/sourcebuild.texi (Subdirectories, Headers): Likewise.
	* doc/trouble.texi (Standard Libraries): Likewise.

2025-05-30  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md (avg<v_double_trunc>3_ceil): Add insn
	expand to leverage vaadd with rnu directly.

2025-05-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120341
	* tree-ssa-loop-im.cc (can_sm_ref_p): STRING_CSTs are readonly.
	* tree-ssa-phiopt.cc (cond_store_replacement): Likewise.

2025-05-30  Thomas Schwinge  <tschwinge@baylibre.com>
	    Richard Biener  <rguenther@suse.de>

	PR middle-end/119835
	* tree-nrv.cc (pass_nrv::execute): Defuse 'RESULT_DECL' check.

2025-05-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-show-locus.cc (colorizer::m_current_named_color): New
	field.
	(colorizer::set_named_color): Use it to consolidate repeated calls
	to the same color.

2025-05-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120457
	* tree-vect-slp.cc (vect_lower_load_permutations): Implement
	the same heuristics as load vectorization for single-element
	interleaving that spans multiple vectors.

2025-05-30  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/120347
	* rtlanal.cc (rtx_properties::try_to_add_src): Don't drop the
	IN_MEM_LOAD and IN_MEM_STORE flags for autoinc registers.
	* rtl-ssa/changes.cc (recog_level2): Check whether an
	RTX_AUTOINCed register also appears outside of an address.

2025-05-30  Julian Brown  <julian@codesourcery.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* gimplify.cc (gimplify_omp_ctx): Add IMPLICIT_MAPPERS field.
	(new_omp_context): Initialise IMPLICIT_MAPPERS hash map.
	(delete_omp_context): Delete IMPLICIT_MAPPERS hash map.
	(instantiate_mapper_info): New structs.
	(remap_mapper_decl_1, omp_mapper_copy_decl, omp_instantiate_mapper,
	omp_instantiate_implicit_mappers): New functions.
	(gimplify_scan_omp_clauses): Handle MAPPER_BINDING clauses.
	(gimplify_adjust_omp_clauses): Instantiate implicit declared mappers.
	(gimplify_omp_declare_mapper): New function.
	(gimplify_expr): Call above function.
	* langhooks-def.h (lhd_omp_mapper_lookup,
	lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): Add
	prototypes.
	(LANG_HOOKS_OMP_FINISH_MAPPER_CLAUSES,
	LANG_HOOKS_OMP_MAPPER_LOOKUP, LANG_HOOKS_OMP_EXTRACT_MAPPER_DIRECTIVE,
	LANG_HOOKS_OMP_MAP_ARRAY_SECTION): Define macros.
	(LANG_HOOK_DECLS): Add above macros.
	* langhooks.cc (lhd_omp_mapper_lookup,
	lhd_omp_extract_mapper_directive, lhd_omp_map_array_section): New
	dummy functions.
	* langhooks.h (lang_hooks_for_decls): Add OMP_FINISH_MAPPER_CLAUSES,
	OMP_MAPPER_LOOKUP, OMP_EXTRACT_MAPPER_DIRECTIVE, OMP_MAP_ARRAY_SECTION
	hooks.
	* omp-general.h (omp_name_type<T>): Add templatized struct, hash type
	traits (for omp_name_type<tree> specialization).
	(omp_mapper_list<T>): Add struct.
	* tree-core.h (omp_clause_code): Add OMP_CLAUSE__MAPPER_BINDING_.
	* tree-pretty-print.cc (dump_omp_clause): Support GOMP_MAP_UNSET,
	GOMP_MAP_PUSH_MAPPER_NAME, GOMP_MAP_POP_MAPPER_NAME artificial mapping
	clauses.  Support OMP_CLAUSE__MAPPER_BINDING_ and OMP_DECLARE_MAPPER.
	* tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
	OMP_CLAUSE__MAPPER_BINDING_.
	* tree.def (OMP_DECLARE_MAPPER): New tree code.
	* tree.h (OMP_DECLARE_MAPPER_ID, OMP_DECLARE_MAPPER_DECL,
	OMP_DECLARE_MAPPER_CLAUSES): New defines.
	(OMP_CLAUSE__MAPPER_BINDING__ID, OMP_CLAUSE__MAPPER_BINDING__DECL,
	OMP_CLAUSE__MAPPER_BINDING__MAPPER): New defines.

2025-05-30  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Return true
	if something was done.
	(scc_copy_prop::propagate): Return true if something was changed.
	(pass_sccopy::execute): Return TODO_cleanup_cfg if a prop happened.

2025-05-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* auto-profile.cc (function_instance::merge): New.
	(autofdo_source_profile::read): Call merge.

2025-05-29  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* config/aarch64/gcc-auto-profile: Make script executable.

2025-05-29  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Adds
	statistics when the statement changed.

2025-05-29  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Change check
	from NULL/non-ssa name to default name.

2025-05-29  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc (HTML_STYLE): Fix PatternFly URL in
	comment.

2025-05-29  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc
	(html_builder::make_element_for_diagnostic::html_token_printer):
	Reimplement in terms of xml::printer.
	(html_builder::make_element_for_diagnostic): Create an
	xml::printer and use it with the html_token_printer.

2025-05-29  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-html.cc (html_builder::make_metadata_element):
	Gracefully handle the case where "url" is null.

2025-05-29  David Malcolm  <dmalcolm@redhat.com>

	* pretty-print.cc (pretty_printer::pretty_printer): Use "nullptr"
	rather than "NULL".  Remove explicit delete of
	m_format_postprocessor.
	* pretty-print.h (format_postprocessor::clone): Use unique_ptr.
	(pretty_printer::set_format_postprocessor): New.
	(pretty_printer::m_format_postprocessor): Use unique_ptr.
	(pp_format_postprocessor): Update for use of unique_ptr, removing
	reference from return type.

2025-05-29  Martin Jambor  <mjambor@suse.cz>

	PR ipa/120295
	* ipa-prop.cc (update_jump_functions_after_inlining): Do not
	combine pass-through jump functions with type-casts changing
	signedness.

2025-05-29  Martin Jambor  <mjambor@suse.cz>

	* ipa-prop.cc (ipa_dump_jump_function): Fix whitespace when
	dumping IPA VRs.

2025-05-29  Pranav Gorantla  <Pranav.Gorantla@amd.com>

	* config/i386/i386-expand.cc (emit_reduc_half): Use shuffles to
	generate reduc half for V4SI, similar modes.
	* config/i386/i386.h (TARGET_SSE_REDUCTION_PREFER_PSHUF): New Macro.
	* config/i386/x86-tune.def (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF):
	New tuning.

2025-05-29  Jakub Jelinek  <jakub@redhat.com>

	PR bootstrap/120464
	* ggc-page.cc (struct ggc_globals): Fix up comment formatting.
	(find_free_list): Likewise.
	(alloc_page): For defined(USING_MALLOC_PAGE_GROUPS) use
	free_list->free_pages instead of G.free_pages.
	(do_release_pages): Add n1 and n2 arguments, make them used.
	Move defined(USING_MALLOC_PAGE_GROUPS) page group freeing to
	release_pages and dumping of statistics as well.  Formatting fixes.
	(release_pages): Adjust do_release_pages caller, move here
	defined(USING_MALLOC_PAGE_GROUPS) page group freeing and dumping
	of statistics.
	(ggc_handle_finalizers): Fix up comment formatting and typo.

2025-05-29  Jerry Zhang Jian  <jerry.zhangjian@sifive.com>

	* config/riscv/riscv-ext.def: New extensions
	* config/riscv/riscv-ext.opt: Auto re-generated
	* doc/riscv-ext.texi: Auto re-generated

2025-05-29  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case for MULT op.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op mult to no_shift_vx_ops.

2025-05-28  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119298
	* config/i386/x86-tune-costs.h (struct processor_costs): Set addss cost
	back to 2.

2025-05-28  Robin Dapp  <rdapp.gcc@gmail.com>

	* tree-vect-stmts.cc (vectorizable_load): Remove non-SLP paths.

2025-05-28  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/120436
	* config/riscv/riscv-vector-builtins-shapes.cc (struct vset_def):
	Avoid division by zero.
	(struct vget_def): Ditto.
	* config/riscv/riscv-vector-builtins.h (struct function_group_info):
	Use required_extensions_specified instead of duplicating code.

2025-05-28  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec.md (avg<v_double_trunc>3_floor): Add insn
	expand to leverage vaadd directly.

2025-05-28  Jan Hubicka  <hubicka@ucw.cz>

	* cgraph.cc (cgraph_edge::maybe_hot_p): For auto-fdo turn 0
	to non-zero.
	* ipa-cp.cc (cs_interesting_for_ipcp_p): Do not trust
	auto-fdo 0.
	* profile-count.cc (profile_count::adjust_for_ipa_scaling): Likewise.
	(profile_count::from_gcov_type): Fix formating.

2025-05-28  Jan Hubicka  <hubicka@ucw.cz>

	* predict.cc (rebuild_frequencies): look harder for presence
	of profile feedback.

2025-05-28  Yuta Mukai  <mukai.yuta@fujitsu.com>

	* config/aarch64/aarch64-cores.def (fujitsu-monaka): Update ISA
	features.

2025-05-28  Jan Hubicka  <hubicka@ucw.cz>

	* predict.cc (set_even_probabilities): Set quality to guessed.

2025-05-28  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (update_count_by_afdo_count): New function.
	(afdo_set_bb_count): Add debug output; only set count if it is
	non-zero.
	(afdo_find_equiv_class): Add debug output.
	(afdo_calculate_branch_prob): Fix formating.
	(afdo_annotate_cfg): Add debug output; do not erase static
	profile if autofdo profile is all 0.

2025-05-28  Haochen Jiang  <haochen.jiang@intel.com>

	* doc/extend.texi (C Extensions): Add missing menu items.

2025-05-28  liuhongt  <hongtao.liu@intel.com>

	PR tree-optimization/119181
	* tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
	Split datarefs when there's a gap bigger than
	MAX_BITSIZE_MODE_ANY_MODE.

2025-05-27  Jason Merrill  <jason@redhat.com>

	PR c++/120400
	* fold-const.cc (simple_operand_p): False for vars with
	DECL_VALUE_EXPR.

2025-05-27  Alejandro Colomar  <alx@kernel.org>

	PR c/117025
	* Makefile.in (USER_H): Add <stdcountof.h>.
	* ginclude/stdcountof.h: New file.

2025-05-27  Alejandro Colomar  <alx@kernel.org>
	    Martin Uecker  <uecker@tugraz.at>

	PR c/117025
	* doc/extend.texi: Document _Countof operator.

2025-05-27  Jan Hubicka  <hubicka@ucw.cz>

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

2025-05-27  Jan Hubicka  <hubicka@ucw.cz>

	* auto-profile.cc (function_instance::mark_annotated): Remove.
	(function_instance::total_annotated_count): Remove.
	(autofdo_source_profile::mark_annotated): Remove.
	(afdo_set_bb_count): Do not mark annotated locations.
	(afdo_annotate_cfg): Likewise.

2025-05-27  Eric Botcazou  <ebotcazou@adacore.com>

	* ipa-sra.cc (scan_expr_access): Also disqualify storage order
	barriers from splitting.
	* tree.h (storage_order_barrier_p): Also return false if the
	operand of the VIEW_CONVERT_EXPR has reverse storage order.

2025-05-27  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc: Define INCLUDE_STRING.
	Include "xml.h", "xml-printer.h", and "json.h".
	(html_generation_options::html_generation_options): New.
	(namespace xml): Move decls to xml.h and convert from using
	label_text to std::string.
	(xml::text::write_as_xml): Reimplement indentation so it is done
	by this node, rather than the parent.
	(xml::node_with_children::add_text): Convert from label_text to
	std::string.  Consolidate runs of text into a single node.
	(xml::document::write_as_xml): Reimplement indentation.
	(xml::element::write_as_xml): Reimplement indentation so it is
	done by this node, rather than the parent.  Convert from
	label_text to std::string.  Update attribute-printing to new
	representation to preserve insertion order.
	(xml::element::set_attr): Convert from label_text to std::string.
	Record insertion order.
	(xml::raw::write_as_xml): New.
	(xml::printer::printer): New.
	(xml::printer::push_tag): New.
	(xml::printer::push_tag_with_class): New.
	(xml::printer::pop_tag): New.
	(xml::printer::set_attr): New.
	(xml::printer::add_text): New.
	(xml::printer::add_raw): New.
	(xml::printer::push_element): New.
	(xml::printer::append): New.
	(xml::printer::get_insertion_point): New.
	(html_builder::add_focus_id): New.
	(html_builder::m_html_gen_opts): New field.
	(html_builder::m_head_element): New field.
	(html_builder::m_next_diag_id): New field.
	(html_builder::m_ui_focus_ids): New field.
	(make_div): Convert from label_text to std::string.
	(make_span): Likewise.
	(HTML_STYLE): New.
	(HTML_SCRIPT): New.
	(html_builder::html_builder): Fix indentation.  Add
	"html_gen_opts" param.  Initialize new fields.  Reimplement
	using xml::printer.  Optionally add style and script tags.
	(class html_path_label_writer): New.
	(html_builder::make_element_for_diagnostic): Convert from
	label_text to std::string. Set "id" on "gcc-diagnostic" and
	"gcc-message" <div> elements; add the latter to the focus ids.
	Use diagnostic_context::maybe_show_locus_as_html rather than
	html_builder::make_element_for_source.  Use print_path_as_html
	rather than html_builder::make_element_for_path.
	(html_builder::make_element_for_source): Drop.
	(html_builder::make_element_for_path): Drop.
	(html_builder::make_element_for_patch): Convert from label_text to
	std::string.
	(html_builder::make_metadata_element): Likewise.  Use
	xml::printer.
	(html_builder::make_element_for_metadata): Convert from label_text
	to std::string.
	(html_builder::emit_diagram): Expand comment.
	(html_builder::flush_to_file): Write out initializer for
	"focus_ids" into javascript.
	(html_output_format::html_output_format): Add param
	"html_gen_opts" and use it to initialize m_builder.
	(html_file_output_format::html_file_output_format): Likewise, to
	initialize base class.
	(make_html_sink): Likewise, to pass to ctor.
	(selftest::test_html_diagnostic_context::test_html_diagnostic_context):
	Set up html_generation_options.
	(selftest::html_buffered_output_format::html_buffered_output_format):
	Add html_gen_opts param.
	(selftest::test_simple_log): Add id attributes to expected text
	for "gcc-diagnostic" and "gcc-message" elements.  Update
	whitespace for indentation fixes.
	(selftest::test_metadata): Update whitespace for indentation
	fixes.
	(selftest::test_printer): New selftest.
	(selftest::test_attribute_ordering): New selftest.
	(selftest::diagnostic_format_html_cc_tests): Call the new
	selftests.
	* diagnostic-format-html.h (struct html_generation_options): New.
	(make_html_sink): Add "html_gen_opts" param.
	(print_path_as_html): New decl.
	* diagnostic-path-output.cc: Define INCLUDE_MAP.  Add includes of
	"diagnostic-format-html.h", "xml.h", and "xml-printer.h".
	(path_print_policy::path_print_policy): Add ctor.
	(path_print_policy::get_diagram_theme): Fix whitespace.
	(struct stack_frame): New.
	(begin_html_stack_frame): New function.
	(end_html_stack_frame): New function.
	(emit_svg_arrow): New function.
	(event_range::print): Rename to...
	(event_range::print_as_text): ...this.  Update call to
	diagnostic_start_span.
	(event_range::print_as_html): New, based on the above, but ported
	from pretty_printer to xml::printer.
	(thread_event_printer::print_swimlane_for_event_range): Rename
	to...
	(thread_event_printer::print_swimlane_for_event_range_as_text):
	...this.  Update for renaming of event_range::print to
	event_range::print_as_text.
	(thread_event_printer::print_swimlane_for_event_range_as_html):
	New.
	(print_path_summary_as_text): Update for "_as_text" renaming.
	(print_path_summary_as_html): New.
	(print_path_as_html): New.
	* diagnostic-show-locus.cc: Add defines of INCLUDE_MAP and
	INCLUDE_STRING.  Add includes of "xml.h" and "xml-printer.h".
	(struct char_display_policy): Replace "m_print_cb" with
	"m_print_text_cb" and "m_print_html_cb".
	(struct to_text): New.
	(struct to_html): New.
	(get_printer): New.
	(default_diagnostic_start_span_fn<to_text>): New.
	(default_diagnostic_start_span_fn<to_html>): New.
	(class layout): Update "friend class layout_printer;" for
	template.
	(enum class margin_kind): New.
	(class layout_printer): Convert into a template.
	(layout_printer::m_pp): Replace field with...
	(layout_printer::m_sink): ...this.
	(layout_printer::m_colorizer): Drop field in favor of a pointer
	in the "to_text" sink.
	(default_print_decoded_ch): Convert into a template.
	(escape_as_bytes_print): Likewise.
	(escape_as_unicode_print): Likewise.
	(make_char_policy): Update to use both text and html callbacks.
	(layout_printer::print_gap_in_line_numbering): Replace with...
	(layout_printer<to_text>::print_gap_in_line_numbering): ...this
	(layout_printer<to_html>::print_gap_in_line_numbering): ...and
	this.
	(layout_printer::print_source_line): Convert to template, using
	m_sink.
	(layout_printer::print_leftmost_column): Likewise.
	(layout_printer::start_annotation_line): Likewise.
	(layout_printer<to_text>::end_line): New.
	(layout_printer<to_html>::end_line): New.
	(layout_printer::print_annotation_line): Convert to template,
	using m_sink.
	(class line_label): Add field m_original_range_idx.
	(layout_printer<to_text>::begin_label): New.
	(layout_printer<to_html>::begin_label): New.
	(layout_printer<to_text>::end_label): New.
	(layout_printer<to_html>::end_label): New.
	(layout_printer::print_any_labels): Convert to template, using
	m_sink.
	(layout_printer::print_leading_fixits): Likewise.
	(layout_printer::print_trailing_fixits): Likewise.
	(layout_printer::print_newline): Drop.
	(layout_printer::move_to_column): Convert to template, using
	m_sink.
	(layout_printer::show_ruler): Likewise.
	(layout_printer::print_line): Likewise.
	(layout_printer::print_any_right_to_left_edge_lines): Likewise.
	(layout_printer::layout_printer): Likewise.
	(diagnostic_context::maybe_show_locus_as_html): New.
	(diagnostic_source_print_policy::diagnostic_source_print_policy):
	Update for split of start_span_cb into text vs html variants.
	(diagnostic_source_print_policy::print): Update for use of
	templates; use to_text.
	(diagnostic_source_print_policy::print_as_html): New.
	(layout_printer::print): Convert to template, using m_sink.
	(selftest::make_element_for_locus): New.
	(selftest::make_raw_html_for_locus): New.
	(selftest::test_layout_x_offset_display_utf8): Update for use of
	templates.
	(selftest::test_layout_x_offset_display_tab): Likewise.
	(selftest::test_one_liner_caret_and_range): Add test coverage of
	HTML output.
	(selftest::test_one_liner_labels): Likewise.
	* diagnostic.cc (diagnostic_context::initialize): Update for split
	of start_span_cb into text vs html variants.
	(default_diagnostic_start_span_fn): Move to
	diagnostic-show-locus.cc, converting to template.
	* diagnostic.h (class xml::printer): New forward decl.
	(diagnostic_start_span_fn): Replace typedef with "using",
	converting to a template.
	(struct to_text): New forward decl.
	(struct to_html): New forward decl.
	(get_printer): New decl.
	(diagnostic_location_print_policy::print_text_span_start): New
	decl.
	(diagnostic_location_print_policy::print_html_span_start): New
	decl.
	(class html_label_writer): New.
	(diagnostic_source_print_policy::print_as_html): New decl.
	(diagnostic_source_print_policy::get_start_span_fn): Replace
	with...
	(diagnostic_source_print_policy::get_text_start_span_fn): ...this
	(diagnostic_source_print_policy::get_html_start_span_fn): ...and
	this
	(diagnostic_source_print_policy::m_start_span_cb): Replace with...
	(diagnostic_source_print_policy::m_text_start_span_cb): ...this
	(diagnostic_source_print_policy::m_html_start_span_cb): ...and
	this.
	(diagnostic_context::maybe_show_locus_as_html): New decl.
	(diagnostic_context::m_text_callbacks::m_start_span): Replace
	with...
	(diagnostic_context::m_text_callbacks::m_text_start_span): ...this
	(diagnostic_context::m_text_callbacks::m_html_start_span): ...and
	this.
	(diagnostic_start_span): Update for template change.
	(diagnostic_show_locus_as_html): New inline function.
	(default_diagnostic_start_span_fn): Convert to template.
	* doc/invoke.texi (experimental-html): Add "css" and "javascript"
	keys.
	* opts-diagnostic.cc (html_scheme_handler::make_sink): Likewise.
	* selftest-diagnostic.cc
	(selftest::test_diagnostic_context::start_span_cb): Update for
	template changes.
	* selftest-diagnostic.h
	(selftest::test_diagnostic_context::start_span_cb): Likewise.
	* xml-printer.h: New file.
	* xml.h: New file, based on material in diagnostic-format-html.cc,
	but using std::string rather than label_text.
	(xml::element::m_key_insertion_order): New field.
	(struct xml::raw): New.

2025-05-27  David Malcolm  <dmalcolm@redhat.com>

	* Makefile.in (OBJS-libcommon): Add diagnostic-path-output.o.
	* diagnostic-path-output.cc: New file, taken from material in
	diagnostic-path.cc.
	* diagnostic-path.cc: Drop includes of
	"diagnostic-macro-unwinding.h", "intl.h", "gcc-rich-location.h",
	"diagnostic-color.h", "diagnostic-event-id.h",
	"diagnostic-label-effects.h", "pretty-print-markup.h",
	"selftest.h", "selftest-diagnostic.h",
	"selftest-diagnostic-path.h", "text-art/theme.h", and
	"diagnostic-format-text.h".
	(class path_print_policy): Move to diagnostic-path-output.cc.
	(class path_label): Likewise.
	(can_consolidate_events): Likewise.
	(class per_thread_summary): Likewise.
	(struct event_range): Likewise.
	(struct path_summary): Likewise.
	(per_thread_summary::interprocedural_p): Likewise.
	(path_summary::path_summary): Likewise.
	(write_indent): Likewise.
	(base_indent): Likewise.
	(per_frame_indent): Likewise.
	(class thread_event_printer): Likewise.
	(print_path_summary_as_text): Likewise.
	(class element_event_desc): Likewise.
	(diagnostic_text_output_format::print_path): Likewise.
	(selftest::path_events_have_column_data_p): Likewise.
	(selftest::test_empty_path): Likewise.
	(selftest::test_intraprocedural_path): Likewise.
	(selftest::test_interprocedural_path_1): Likewise.
	(selftest::test_interprocedural_path_2): Likewise.
	(selftest::test_recursion): Likewise.
	(class selftest::control_flow_test): Likewise.
	(selftest::test_control_flow_1): Likewise.
	(selftest::test_control_flow_2): Likewise.
	(selftest::test_control_flow_3): Likewise.
	(selftest::assert_cfg_edge_path_streq): Likewise.
	(ASSERT_CFG_EDGE_PATH_STREQ): Likewise.
	(selftest::test_control_flow_4): Likewise.
	(selftest::test_control_flow_5): Likewise.
	(selftest::test_control_flow_6): Likewise.
	(selftest::control_flow_tests): Likewise.
	(selftest::diagnostic_path_cc_tests): Likewise, renaming
	accordingly.
	* selftest-run-tests.cc (selftest::run_tests): Update for
	move of path-printing selftests.
	* selftest.h (selftest::diagnostic_path_cc_tests): Replace decl
	with...
	(selftest::diagnostic_path_output_cc_tests): ...this.

2025-05-27  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/vector.md(*vec_extract<mode>): Fix mnemonic.

2025-05-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/117965
	* tree-ssa-phiprop.cc (phivn_valid_p): Remove.
	(propagate_with_phi): Pass in virtual PHI node from BB,
	rewrite load motion validity check to require the same
	virtual use along all paths.

2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	PR rtl-optimization/119884
	* avoid-store-forwarding.cc (process_store_forwarding):
	Use `lowpart_subreg` for the base register initialization
	and remove redundant stores from the store/load sequence.

2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	* sbitmap.cc (bitmap_any_bit_in_range_p):
	Call and return the result of `bitmap_bit_in_range_p` with the
	`any_inverted` parameter set to false.
	(bitmap_bit_in_range_p): New function.
	(bitmap_all_bits_in_range_p): New function.
	* sbitmap.h (bitmap_all_bits_in_range_p): New function.

2025-05-27  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>

	* sbitmap.cc (bitmap_bit_in_range_p): Renamed the function.
	(bitmap_any_bit_in_range_p): New function name.
	(bitmap_bit_in_range_p_checking): Renamed the function.
	(bitmap_any_bit_in_range_p_checking): New function name.
	(test_set_range): Updated function calls to use the new name.
	(test_bit_in_range): Likewise.
	* sbitmap.h (bitmap_bit_in_range_p): Renamed the function.
	(bitmap_any_bit_in_range_p): New function name.
	* tree-ssa-dse.cc (live_bytes_read):
	Updated function call to use the new name.

2025-05-27  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/bitmanip.md (andi+bclr splits): Simplified from
	prior define_insn_and_splits.
	* config/riscv/riscv.cc (synthesize_and): Add support for andi+bclr
	sequences.

2025-05-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add
	new case for XOR op.
	(expand_vx_binary_vec_vec_dup): Diito.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops.

2025-05-27  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/vector.md (VF): New mode iterator.
	(VEC_SET_NONFLOAT): New mode iterator.
	(VEC_SET_SINGLEFLOAT): New mode iterator.
	(*vec_set<mode>): Split pattern in two.
	(*vec_setv2df): Extract special handling for V2DF mode.
	(*vec_extract<mode>): Split pattern in two.

2025-05-27  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Common Variable Attributes): Fix typo in
	description of nonstring.

2025-05-27  Kito Cheng  <kito.cheng@sifive.com>

	* gcc.cc (find_multilib_os_dir_by_multilib_dir): New.
	(set_multilib_dir): Fix multilib_os_dir and multiarch_dir
	if multilib_os_dir is not set.

2025-05-27  xuli  <xuli1@eswincomputing.com>

	* match.pd: add singned vector SAT_ADD IMM form1 matching.

2025-05-27  xuli  <xuli1@eswincomputing.com>

	* match.pd: Add signed scalar SAT_ADD IMM form1 with IMM=-1 matching.
	* tree-ssa-math-opts.cc (match_unsigned_saturation_add): Adapt function name.
	(match_saturation_add_with_assign): Match signed and unsigned SAT_ADD with assign.
	(math_opts_dom_walker::after_dom_children): Match imm=-1 signed SAT_ADD with NOP_EXPR case.

2025-05-26  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi: Move C++ -fdump-lang to C++ section.
	Add -fdump-lang-tinst.

2025-05-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* config/aarch64/gcc-auto-profile: New file.

2025-05-26  Segher Boessenkool  <segher@kernel.crashing.org>

	* config/rs6000/rs6000.cc: Remove include of reload.h .

2025-05-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	* ipa-split.cc (pass_feedback_split_functions::clone): New.
	* passes.def: Enable pass_feedback_split_functions for
	pass_ipa_auto_profile.

2025-05-25  Michael J. Eager  <eager@eagercon.com>

	PR target/86772
	Tracking CVE-2017-5753
	* config/microblaze/microblaze.cc (TARGET_HAVE_SPECULATION_SAFE_VALUE):
	Define to speculation_save_value_not_needed

2025-05-25  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_builtin_vectorization_cost):
	use sse_op instead of addss to cost vinsertti128 and vinsertti64x4;
	compute correct mode of vinsertti128.
	(ix86_vector_costs::add_stmt_cost): For integer 256bit and 512bit
	vector constructions account more integer_to_sse moves.

2025-05-25  LIU Hao  <lh_mouse@126.com>

	PR target/53929
	PR target/80881
	* config/i386/i386-protos.h (ix86_asm_output_labelref): Declare new
	function for quoting user-defined symbols in Intel syntax.
	* config/i386/i386.cc (ix86_asm_output_labelref): Implement it.
	* config/i386/i386.h (ASM_OUTPUT_LABELREF): Use it.
	* config/i386/cygming.h (ASM_OUTPUT_LABELREF): Use it.

2025-05-24  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/riscv.cc (synthesize_and): Use a srl+andi+sll
	sequence when the mask fits in a simm12 after shifting by the
	number of trailing zeros.
	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>

2025-05-24  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
	case for IOR op.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op or to no_shift_vx_ops.

2025-05-23  Andi Kleen  <ak@gcc.gnu.org>

	* doc/install.texi: Document bootstrap-native.

2025-05-23  Andi Kleen  <ak@gcc.gnu.org>

	PR middle-end/114563
	PR c++/119387
	* ggc-page.cc (struct free_list): New structure.
	(struct page_entry): Point to free_list.
	(find_free_list): New function.
	(find_free_list_order): Dito.
	(alloc_page): Use specific free_list.
	(release_pages): Dito.
	(do_release_pages): Dito.
	(init_ggc): Dito.
	(ggc_print_statistics): Print overflow stat.
	(ggc_pch_read): Use specific free list.

2025-05-23  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/implement-c.texi (C Implementation): Add missing menu items.

2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>

	* common/config/riscv/riscv-common.cc (riscv_subset_list::parse_base_ext):
	Adjust error message.
	(riscv_handle_option): Parse as CPU string first.
	(riscv_expand_arch): Ditto.
	* doc/invoke.texi: Document.

2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv-v.cc (autovectorize_vector_modes): Return
	user-specified mode if available.
	* config/riscv/riscv.opt: New param.

2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv.cc (singleton_vxrm_need): Init
	saved_vxrm_mode.

2025-05-23  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
	Always use vect_vf_for_cost and TARGET_MIN_VLEN.

2025-05-23  Dhruv Chawla  <dhruvc@nvidia.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	* expmed.cc (expand_rotate_as_vec_perm): Avoid a no-op move if the
	target already provided the result in the expected register.
	* config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const):
	Avoid forcing subregs into fresh registers unnecessarily.
	* config/aarch64/aarch64-sve.md: Add define_split for rotate.
	(*v_revvnx8hi): New pattern.

2025-05-23  Dhruv Chawla  <dhruvc@nvidia.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_adr<mode>_shift):
	Match lowered form of ashift.
	(*aarch64_adr<mode>_shift): Likewise.
	(*aarch64_adr_shift_sxtw): Likewise.
	(*aarch64_adr_shift_uxtw): Likewise.
	(<ASHIFT:optab><mode>3): Check amount instead of operands[2] in
	aarch64_sve_<lr>shift_operand.
	(v<optab><mode>3): Generate unpredicated shifts for constant
	operands.
	(@aarch64_pred_<optab><mode>): Convert to a define_expand.
	(*aarch64_pred_<optab><mode>): Create define_insn_and_split pattern
	from @aarch64_pred_<optab><mode>.
	(*post_ra_v_ashl<mode>3): Rename to ...
	(aarch64_vashl<mode>3_const): ... this and remove reload requirement.
	(*post_ra_v_<optab><mode>3): Rename to ...
	(aarch64_v<optab><mode>3_const): ... this and remove reload
	requirement.
	* config/aarch64/aarch64-sve2.md
	(@aarch64_sve_add_<sve_int_op><mode>): Match lowered form of
	SHIFTRT.
	(*aarch64_sve2_sra<mode>): Likewise.
	(*bitmask_shift_plus<mode>): Match lowered form of lshiftrt.

2025-05-22  Joseph Myers  <josmyers@redhat.com>

	* doc/implement-c.texi: Document C23 implementation-defined
	behavior.
	(Constant expressions implementation, Types implementation): New
	nodes.

2025-05-22  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Add specific
	handling of bit-fields for big-endian targets.

2025-05-22  Alexandre Oliva  <oliva@adacore.com>

	* config/aarch64/aarch64-vxworks.h (TARGET_OS_USES_R18): Define.
	Update comments.
	* config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
	Mark x18 as fixed on VxWorks.
	(aarch64_override_options_internal): Issue sorry message on
	-fsanitize=shadow-call-stack if TARGET_OS_USES_R18.

2025-05-22  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/riscv.cc (synthesize_and): When profitable, use a three
	shift sequence to clear bits at both upper and lower bits rather than
	synthesizing the constant mask.

2025-05-22  Siarhei Volkau  <lis8215@gmail.com>

	PR target/70557
	* config/riscv/riscv.md (movdi_32bit): Add "J" constraint to allow storing 0
	directly to memory.

2025-05-22  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/120372
	* config/aarch64/aarch64.cc (aarch64_rtx_costs <case CONST_INSN>): Handle
	if outer is COMPARE and the constant can be handled by the cmp instruction.

2025-05-22  Andrew Pinski  <quic_apinski@quicinc.com>

	* expmed.cc (canonicalize_comparison): Use rtx_cost directly
	instead of gen_move_insn. Print out the choice if dump is enabled.

2025-05-22  Jakub Jelinek  <jakub@redhat.com>

	* gimple-lower-bitint.cc (bitint_extended): New variable.
	(bitint_large_huge::lower_shift_stmt): For LSHIFT_EXPR with
	bitint_extended if lhs has most significant partial limb extend
	it afterwards.

2025-05-22  Xi Ruoyao  <xry111@xry111.site>

	* doc/md.texi: Document the 'q' constraint for LoongArch.

2025-05-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/120360
	* config/i386/predicates.md (x86_64_neg_const_int_operand): New
	predicate.
	* config/i386/i386.md (*cmp<mode>_plus_1): New pattern.

2025-05-22  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/riscv.cc (synthesize_and): When profitable, use two
	shift combinations to clear high or low bits rather than synthsizing
	the constant.

2025-05-22  Pengxuan Zheng  <quic_pzheng@quicinc.com>

	* config/aarch64/aarch64.cc (aarch64_evpc_reencode): Copy zero_op0_p and
	zero_op1_p from d to newd.

2025-05-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/120090
	* combine.cc (gen_lowpart_for_combine_no_emit): New function.
	(RTL_HOOKS_GEN_LOWPART_NO_EMIT): Set to gen_lowpart_for_combine_no_emit.

2025-05-21  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.md ((x << C1) + C2): Tighten split condition
	and generate more efficient code when splitting.

2025-05-21  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120368
	* config/riscv/riscv.md (shift with masked shift count): Fix
	opcode when generating an SImode shift on rv64.

2025-05-21  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
	case for rtx code AND.
	(expand_vx_binary_vec_vec_dup): Ditto.
	* config/riscv/riscv.cc (riscv_rtx_costs): Ditto.
	* config/riscv/vector-iterators.md: Add new op and to no_shift_vx_ops.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* gensupport.h (needs_barrier_p): Delete.
	* gensupport.cc (needs_barrier_p): Likewise.
	* rtl.h (always_void_p): Return true for PC, RETURN and SIMPLE_RETURN.
	(expand_opcode): New enum class.
	(expand_rtx, complete_seq): Declare.
	* emit-rtl.cc (rtx_expander): New class.
	(expand_rtx, complete_seq): New functions.
	* gengenrtl.cc (special_rtx, excluded_rtx): Add a cross-reference
	comment.
	* genemit.cc (FIRST_CODE): New constant.
	(print_code): Delete.
	(generator::file, generator::used, generator::sequence_type): Delete.
	(generator::bytes): New member variable.
	(generator::generator): Update accordingly.
	(generator::gen_rtx_scratch): Delete.
	(generator::add_uint, generator::add_opcode, generator::add_code)
	(generator::add_match_operator, generator::add_exp)
	(generator::add_vec, generator::gen_table): New member functions.
	(generator::gen_exp): Rewrite to use a bytecode expansion.
	(generator::gen_emit_seq): Likewise.
	(start_gen_insn): Return the C++ expression for the operands array.
	(gen_insn, gen_expand, gen_split): Update callers accordingly.
	(emit_c_code): Remove use of _val.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (clobber_pat::code): Delete.
	(maybe_queue_insn): Don't set clobber_pat::code.
	(output_add_clobbers): Remove info argument and output the two
	REG and SCRATCH cases directly.
	(main): Update call accordingly.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (generator::gen_exp): Report an error for 's' operands.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (generator::gen_exp): Raise an error if we see
	an 'L' operand.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (generator::used): Update comment.
	(generator::gen_exp): Remove handling of null unused arrays.
	(gen_insn, gen_expand): Always pass a used array.
	(output_add_clobbers): Note why the used array is null here.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (generator): New structure.
	(gen_rtx_scratch, gen_exp, gen_emit_seq): Turn into member
	functions of generator.
	(gen_insn, gen_expand, gen_split, output_add_clobbers): Update
	users accordingly.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (gen_rtx_scratch, gen_exp): Use operands[%d] rather than
	operand%d.
	(start_gen_insn): Mark the incoming arguments as const and store
	them to an operands array.
	(gen_expand, gen_split): Remove copies into and out of the operands
	array.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (start_gen_insn): New function, split out from...
	(gen_insn, gen_expand): ...here.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (queue): New static variable.
	(maybe_queue_insn): New function, split out from...
	(gen_insn): ...here.
	(queue_expand): New function, split out from...
	(gen_expand): ...here.
	(gen_split): New function, split out from...
	(queue_split): ...here.
	(main): Queue definitions for later processing rather than
	emitting them on the fly.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* genemit.cc (gen_exp): Make the info argument a constant reference.
	(gen_emit_seq, gen_insn, gen_expand, gen_split): Likewise.
	(output_add_clobbers): Likewise.
	(main): Update calls accordingly.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* config/sparc/sparc.md (zero_extendhisi2, zero_extendhidi2)
	(extendhisi2, extendqihi2, extendqisi2, extendqidi2)
	(extendhidi2): Use operands[0] and operands[1] instead of
	operand0 and operand1.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	* config/stormy16/stormy16.md (negsi2): Remove unused assignment.

2025-05-21  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/100837
	* config/nds32/nds32-intrinsic.md (unspec_get_pending_int): Use
	a local variable instead of operands[2].

2025-05-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120369
	* tree-complex.cc (gimple_expand_builtin_cabs): Return early
	if the LHS of cabs is null.

2025-05-21  Co-Authored-By: Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv-protos.h (synthesize_and): Prototype.
	* config/riscv/riscv.cc (synthesize_and): New function.
	* config/riscv/riscv.md (and<mode>3): Use it.

2025-05-21  liuhongt  <hongtao.liu@intel.com>

	PR middle-end/118994
	* match.pd ((a >> 1) + (b >> 1) + ((a | b) & 1) to
	.AVG_CEIL (a, b)): New pattern.
	((a | b) - ((a ^ b) >> 1) to .AVG_CEIL (a, b)): Ditto.

2025-05-20  Andrew Pinski  <quic_apinski@quicinc.com>

	* Makefile.in (gimple-match-exports.o-warn): Remove.
	* gimple-match-exports.cc (gimple_extract): Remove valueize_condition
	argument.
	(gimple_extract_op): Update call to gimple_extract.
	(gimple_simplify): Likewise. Also remove valueize_condition lambda.

2025-05-20  Umesh Kalappa  <ukalappa.mips@gmail.com>

	* config/riscv/mips-p8700.md (mips_p8700_dummies): New
	reservation.
	(mips_p8700_unknown): Reservation for all the dummies.

2025-05-20  Umesh Kalappa  <ukalappa.mips@gmail.com>

	* config/riscv/mips-p8700.md: New scheduler model.
	* config/riscv/riscv-cores.def (mips-p87000): New tuning model
	and core architecture.
	* config/riscv/riscv-opts.h (riscv_microarchitecture_type); Add
	mips-p8700.
	* config/riscv/riscv.cc (mips_p8700_tune_info): New uarch
	tuning parameters.
	* config/riscv/riscv.md (tune): Add mips_p8700.
	Include mips-p8700.md
	* doc/invoke.texi: Document tune/cpu options for the MIPS P8700.
	Co-authored-by: Jeff Law <jlaw@ventanamicro.com>

2025-05-20  Jakub Jelinek  <jakub@redhat.com>

	* tree-chrec.cc (convert_affine_scev): Use signed_type_for instead of
	build_nonstandard_integer_type.

2025-05-20  Jakub Jelinek  <jakub@redhat.com>

	* gimple-lower-bitint.cc (bitint_big_endian): New variable.
	(bitint_precision_kind): Set it.
	(struct bitint_large_huge): Add unsigned argument to
	finish_arith_overflow.
	(bitint_large_huge::limb_access_type): Handle bitint_big_endian.
	(bitint_large_huge::handle_operand): Likewise.
	(bitint_large_huge::handle_cast): Likewise.
	(bitint_large_huge::handle_bit_field_ref): Likewise.
	(bitint_large_huge::handle_load): Likewise.
	(bitint_large_huge::lower_shift_stmt): Likewise.
	(bitint_large_huge::finish_arith_overflow): Likewise.
	Add nelts argument.
	(bitint_large_huge::lower_addsub_overflow): Handle bitint_big_endian.
	Adjust finish_arith_overflow caller.
	(bitint_large_huge::lower_mul_overflow): Likewise.
	(bitint_large_huge::lower_bit_query): Handle bitint_big_endian.
	(bitint_large_huge::lower_stmt): Likewise.
	(build_bitint_stmt_ssa_conflicts): Likewise.
	(gimple_lower_bitint): Likewise.

2025-05-20  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/bitmanip.md (various splits): Avoid writing the output
	more than once when trivially possible.

2025-05-20  liuhongt  <hongtao.liu@intel.com>

	PR tree-optimization/103771
	* match.pd (cond_expr_convert_p): Extend the match to handle
	REAL_CST.
	* tree-vect-patterns.cc
	(vect_recog_cond_expr_convert_pattern): Handle REAL_CST.

2025-05-20  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md: Leverage the new add func to
	expand the vx insn.
	* config/riscv/riscv-protos.h (expand_vx_binary_vec_dup_vec): Add
	new func decl to expand format v = vop(vec_dup(x), v).
	(expand_vx_binary_vec_vec_dup): Diito but for format
	v = vop(v, vec_dup(x)).
	* config/riscv/riscv-v.cc (expand_vx_binary_vec_dup_vec): Add new
	func impl to expand vx for v = vop(vec_dup(x), v).
	(expand_vx_binary_vec_vec_dup): Diito but for another format
	v = vop(v, vec_dup(x)).

2025-05-19  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120333
	* config/riscv/bitmanip.md: Remove bext formed from left+right
	shift patterns.

2025-05-19  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa-hpux.h (TARGET_HAVE_LIBATOMIC): Define.
	(HAVE_sync_compare_and_swapqi): Likewise.
	(HAVE_sync_compare_and_swaphi): Likewise.
	(HAVE_sync_compare_and_swapsi): Likewise.
	(HAVE_sync_compare_and_swapdi): Likewise.

2025-05-19  Thomas Schwinge  <tschwinge@baylibre.com>

	PR lto/120308
	* lto-streamer-out.cc (hash_tree): Don't handle 'TYPE_EMPTY_P' for
	'lto_stream_offload_p'.
	* tree-streamer-in.cc (unpack_ts_type_common_value_fields):
	Likewise.
	* tree-streamer-out.cc (pack_ts_type_common_value_fields):
	Likewise.

2025-05-19  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (synthesize_ior_xor): Initialize OUTPUT and
	verify it's non-null before emitting the final copy insn.

2025-05-19  Richard Earnshaw  <rearnsha@arm.com>

	PR target/120351
	* config/arm/predicates.md (mem_noofs_operand): Also check the op
	is a valid memory_operand.

2025-05-19  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* common/config/riscv/riscv-common.cc (get_riscv_ext_info): Fix argument type.
	(riscv_subset_list::check_implied_ext): Type conversion.

2025-05-19  zhusonghe  <zhusonghe@eswincomputing.com>

	* config/riscv/gen-riscv-ext-texi.cc (struct version_t):rename
	major/minor to major_version/minor_version.

2025-05-19  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.cc (riscv_legitimize_move): Handle
	load/store with odd-even reg pair.
	(riscv_split_64bit_move_p): Don't split load/store if zilsd enabled.
	(riscv_hard_regno_mode_ok): Only allow even reg can be used for
	64 bits mode for zilsd.

2025-05-19  Jennifer Schmitz  <jschmitz@nvidia.com>

	PR middle-end/120276
	* regcprop.cc (copy_value): Return in case of unordered modes.

2025-05-19  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/constraints.md (cR): New constraint.
	* doc/md.texi (Machine Constraints::RISC-V): Document the new cR
	constraint.

2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>

	* config.gcc: Remove 512 intrin file.
	* config/i386/avx10_2-512bf16intrin.h:
	Removed and combined to ...
	* config/i386/avx10_2bf16intrin.h: ... this.
	* config/i386/avx10_2-512convertintrin.h:
	Removed and combined to ...
	* config/i386/avx10_2convertintrin.h: ... this.
	* config/i386/avx10_2-512mediaintrin.h:
	Removed and combined to ...
	* config/i386/avx10_2mediaintrin.h: ... this.
	* config/i386/avx10_2-512minmaxintrin.h:
	Removed and combined to ...
	* config/i386/avx10_2minmaxintrin.h: ... this.
	* config/i386/avx10_2-512satcvtintrin.h:
	Removed and combined to ...
	* config/i386/avx10_2satcvtintrin.h: ... this.
	* config/i386/immintrin.h: Remove 512 intrin file.

2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/sse.md (VF1_VF2_AVX10_2): Removed.
	(VF2_AVX10_2): Ditto.
	(VI1248_AVX10_2): Ditto.
	(VFH_AVX10_2): Ditto.
	(VF1_AVX10_2): Ditto.
	(VHF_AVX10_2): Ditto.
	(VBF_AVX10_2): Ditto.
	(VI8_AVX10_2): Ditto.
	(VI2_AVX10_2): Ditto.
	(VBF): New.
	(div<mode>3): Use VBF instead of AVX10.2 ones.
	(vec_cmp<mode><avx512fmaskmodelower>): Ditto.
	(avx10_2_cvt2ps2phx_<mode><mask_name><round_name>):
	Use VHF_AVX512VL instead of AVX10.2 ones.
	(vcvt<convertfp8_pack><mode><mask_name>): Ditto.
	(vcvthf82ph<mode><mask_name>): Ditto.
	(VHF_AVX10_2_2): Remove not needed TARGET_AVX10_2.
	(usdot_prod<sseunpackmodelower><mode>): Use VI2_AVX512F
	instead of AVX10.2 ones.
	(vdpphps_<mode>): Use VF1_AVX512VL instead of AVX10.2 ones.
	(vdpphps_<mode>_mask): Ditto.
	(vdpphps_<mode>_maskz): Ditto.
	(vdpphps_<mode>_maskz_1): Ditto.
	(avx10_2_scalefbf16_<mode><mask_name>): Use VBF instead of
	AVX10.2 ones.
	(<code><mode>3): Ditto.
	(avx10_2_<code>bf16_<mode><mask_name>): Ditto.
	(avx10_2_fmaddbf16_<mode>_maskz); Ditto.
	(avx10_2_fmaddbf16_<mode><sd_maskz_name>): Ditto.
	(avx10_2_fmaddbf16_<mode>_mask): Ditto.
	(avx10_2_fmaddbf16_<mode>_mask3): Ditto.
	(avx10_2_fnmaddbf16_<mode>_maskz): Ditto.
	(avx10_2_fnmaddbf16_<mode><sd_maskz_name>): Ditto.
	(avx10_2_fnmaddbf16_<mode>_mask): Ditto.
	(avx10_2_fnmaddbf16_<mode>_mask3): Ditto.
	(avx10_2_fmsubbf16_<mode>_maskz); Ditto.
	(avx10_2_fmsubbf16_<mode><sd_maskz_name>): Ditto.
	(avx10_2_fmsubbf16_<mode>_mask): Ditto.
	(avx10_2_fmsubbf16_<mode>_mask3): Ditto.
	(avx10_2_fnmsubbf16_<mode>_maskz): Ditto.
	(avx10_2_fnmsubbf16_<mode><sd_maskz_name>): Ditto.
	(avx10_2_fnmsubbf16_<mode>_mask): Ditto.
	(avx10_2_fnmsubbf16_<mode>_mask3): Ditto.
	(avx10_2_rsqrtbf16_<mode><mask_name>): Ditto.
	(avx10_2_sqrtbf16_<mode><mask_name>): Ditto.
	(avx10_2_rcpbf16_<mode><mask_name>): Ditto.
	(avx10_2_getexpbf16_<mode><mask_name>): Ditto.
	(avx10_2_<bf16immop>bf16_<mode><mask_name>): Ditto.
	(avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): Ditto.
	(avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): Ditto.
	(avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
	Ditto.
	(avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
	Use VHF_AVX512VL instead of AVX10.2 ones.
	(avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
	Ditto.
	(avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
	Use VF1_AVX512VL instead of AVX10.2 ones.
	(avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
	Ditto.
	(avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>):
	Use VF instead of AVX10.2 ones.
	(avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
	Use VF2 instead of AVX10.2 ones.
	(avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
	Use VI8 instead of AVX10.2 ones.
	(avx10_2_minmaxbf16_<mode><mask_name>): Use VBF instead of
	AVX10.2 ones.
	(avx10_2_minmaxp<mode><mask_name><round_saeonly_name>):
	Use VFH_AVX512VL instead of AVX10.2 ones.
	(avx10_2_vmovrs<ssemodesuffix><mode><mask_name>):
	Use VI1248_AVX512VLBW instead of AVX10.2 ones.

2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_available_features): Remove feature set for AVX10_1_256.
	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_EVEX512_SET): Removed.
	(OPTION_MASK_ISA2_AVX10_1_256_SET): Removed.
	(OPTION_MASK_ISA_AVX10_1_SET): Imply all AVX512 features.
	(OPTION_MASK_ISA2_AVX10_1_SET): Ditto.
	(OPTION_MASK_ISA2_AVX2_UNSET): Remove AVX10_1_UNSET.
	(OPTION_MASK_ISA2_EVEX512_UNSET): Removed.
	(OPTION_MASK_ISA2_AVX10_1_UNSET): Remove AVX10_1_256.
	(OPTION_MASK_ISA2_AVX512F_UNSET): Unset AVX10_1.
	(ix86_handle_option): Remove special handling for AVX512/AVX10.1
	options, evex512 and avx10_1_256. Modify ISA set for AVX10 options.
	* common/config/i386/i386-cpuinfo.h
	(enum feature_priority): Remove P_AVX10_1_256.
	(enum processor_features): Remove FEATURE_AVX10_1_256.
	* common/config/i386/i386-isas.h: Remove avx10.1-256/512.
	* config/i386/avx512bf16intrin.h: Rollback target push before
	evex512 is introduced.
	* config/i386/avx512bf16vlintrin.h: Ditto.
	* config/i386/avx512bitalgintrin.h: Ditto.
	* config/i386/avx512bitalgvlintrin.h: Ditto.
	* config/i386/avx512bwintrin.h: Ditto.
	* config/i386/avx512cdintrin.h: Ditto.
	* config/i386/avx512dqintrin.h: Ditto.
	* config/i386/avx512fintrin.h: Ditto.
	* config/i386/avx512fp16intrin.h: Ditto.
	* config/i386/avx512fp16vlintrin.h: Ditto.
	* config/i386/avx512ifmaintrin.h: Ditto.
	* config/i386/avx512ifmavlintrin.h: Ditto.
	* config/i386/avx512vbmi2intrin.h: Ditto.
	* config/i386/avx512vbmi2vlintrin.h: Ditto.
	* config/i386/avx512vbmiintrin.h: Ditto.
	* config/i386/avx512vbmivlintrin.h: Ditto.
	* config/i386/avx512vlbwintrin.h: Ditto.
	* config/i386/avx512vldqintrin.h: Ditto.
	* config/i386/avx512vlintrin.h: Ditto.
	* config/i386/avx512vnniintrin.h: Ditto.
	* config/i386/avx512vnnivlintrin.h: Ditto.
	* config/i386/avx512vp2intersectintrin.h: Ditto.
	* config/i386/avx512vp2intersectvlintrin.h: Ditto.
	* config/i386/avx512vpopcntdqintrin.h: Ditto.
	* config/i386/avx512vpopcntdqvlintrin.h: Ditto.
	* config/i386/gfniintrin.h: Ditto.
	* config/i386/vaesintrin.h: Ditto.
	* config/i386/vpclmulqdqintrin.h: Ditto.
	* config/i386/driver-i386.cc (check_avx512_features): Removed.
	(host_detect_local_cpu): Remove -march=native special handling.
	* config/i386/i386-builtins.cc
	(ix86_vectorize_builtin_gather): Remove TARGET_EVEX512.
	* config/i386/i386-c.cc
	(ix86_target_macros_internal): Remove EVEX512 and AVX10_1_256.
	* config/i386/i386-expand.cc
	(ix86_valid_mask_cmp_mode): Remove TARGET_EVEX512.
	(ix86_expand_int_sse_cmp): Ditto.
	(ix86_vector_duplicate_simode_const): Ditto.
	(ix86_expand_vector_init_duplicate): Ditto.
	(ix86_expand_vector_init_one_nonzero): Ditto.
	(ix86_emit_swsqrtsf): Ditto.
	(ix86_vectorize_vec_perm_const): Ditto.
	(ix86_expand_vecop_qihi2): Ditto.
	(ix86_expand_sse2_mulvxdi3): Ditto.
	(ix86_gen_bcst_mem): Ditto.
	* config/i386/i386-isa.def (EVEX512): Removed.
	(AVX10_1_256): Ditto.
	* config/i386/i386-options.cc
	(isa2_opts): Remove evex512 and avx10.1-256.
	(ix86_function_specific_save): Remove no_avx512_explicit and
	no_avx10_1_explicit.
	(ix86_function_specific_restore): Ditto.
	(ix86_valid_target_attribute_inner_p): Remove evex512 and
	avx10.1-256/512.
	(ix86_valid_target_attribute_tree): Remove special handling
	to rerun ix86_option_override_internal for AVX10.1-256.
	(ix86_option_override_internal): Remove warning handling.
	(ix86_simd_clone_adjust): Remove evex512.
	* config/i386/i386.cc
	(type_natural_mode): Remove TARGET_EVEX512.
	(ix86_return_in_memory): Ditto.
	(standard_sse_constant_p): Ditto.
	(standard_sse_constant_opcode): Ditto.
	(ix86_get_ssemov): Ditto.
	(ix86_legitimate_constant_p): Ditto.
	(ix86_vectorize_builtin_scatter): Ditto.
	(ix86_hard_regno_mode_ok): Ditto.
	(ix86_set_reg_reg_cost): Ditto.
	(ix86_rtx_costs): Ditto.
	(ix86_vector_mode_supported_p): Ditto.
	(ix86_preferred_simd_mode): Ditto.
	(ix86_autovectorize_vector_modes): Ditto.
	(ix86_get_mask_mode): Ditto.
	(ix86_simd_clone_compute_vecsize_and_simdlen): Ditto.
	(ix86_simd_clone_usable): Ditto.
	* config/i386/i386.h (BIGGEST_ALIGNMENT): Ditto.
	(MOVE_MAX): Ditto.
	(STORE_MAX_PIECES): Ditto.
	(PTA_SKYLAKE_AVX512): Remove PTA_EVEX512.
	(PTA_CANNONLAKE): Ditto.
	(PTA_ZNVER4): Ditto.
	(PTA_GRANITERAPIDS): Use PTA_AVX10_1.
	(PTA_DIAMONDRAPIDS): Use PTA_GRANITERAPIDS.
	* config/i386/i386.md: Remove TARGET_EVEX512, avx512f_512
	and avx512bw_512.
	* config/i386/i386.opt: Remove ix86_no_avx512_explicit,
	ix86_no_avx10_1_explicit, mevex512, mavx10.1-256/512 and
	warning for mavx10.1. Modify option comment.
	* config/i386/i386.opt.urls: Remove evex512 and avx10.1-256/512.
	* config/i386/predicates.md: Remove TARGET_EVEX512.
	* config/i386/sse.md: Ditto.
	* doc/extend.texi: Remove avx10.1-256/512. Modify avx10.1 doc.
	* doc/invoke.texi: Remove avx10.1-256/512 and evex512.
	* doc/sourcebuild.texi: Remove avx10.1-256/512.

2025-05-19  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386-builtin.def
	(BDESC): Remove OPTION_MASK_ISA2_EVEX512.
	* config/i386/i386-builtins.cc
	(ix86_init_mmx_sse_builtins): Ditto.

2025-05-18  Dimitar Dimitrov  <dimitar@dinux.eu>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR target/119966
	* emit-rtl.cc (validate_subreg): Do not exit immediately for
	paradoxical subregs.  Filter subsequent tests which are
	not valid for paradoxical subregs.

2025-05-18  Eric Botcazou  <ebotcazou@adacore.com>

	* dwarf2out.cc (loc_list_from_tree_1) <COMPONENT_REF>: Do not bail
	out when the size is not a multiple of a byte.
	Deal with bit-fields whose size is not a multiple of a byte when
	dereferencing an address.

2025-05-18  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-fold.cc (mark_lhs_in_seq_for_dce): Make
	non-static.
	* gimple-fold.h (mark_lhs_in_seq_for_dce): Declare.
	* tree-ssa-phiopt.cc (match_simplify_replacement): Use
	mark_lhs_in_seq_for_dce instead of manually looping.

2025-05-17  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv-vect-permconst.cc (vector_permconst:process_bb):
	Use rtvec_alloc, not gen_rtvec since we don't want/need to initialize
	the vector.

2025-05-17  Yuao Ma  <c8ef@outlook.com>

	* doc/extend.texi: Mention new builtins.

2025-05-17  Yuao Ma  <c8ef@outlook.com>

	* builtins.def (TRIG_TYPE): New.
	(BUILT_IN_ACOSPI): New.
	(BUILT_IN_ACOSPIF): New.
	(BUILT_IN_ACOSPIL): New.
	(BUILT_IN_ASINPI): New.
	(BUILT_IN_ASINPIF): New.
	(BUILT_IN_ASINPIL): New.
	(BUILT_IN_ATANPI): New.
	(BUILT_IN_ATANPIF): New.
	(BUILT_IN_ATANPIL): New.
	(BUILT_IN_COSPI): New.
	(BUILT_IN_COSPIF): New.
	(BUILT_IN_COSPIL): New.
	(BUILT_IN_SINPI): New.
	(BUILT_IN_SINPIF): New.
	(BUILT_IN_SINPIL): New.
	(BUILT_IN_TANPI): New.
	(BUILT_IN_TANPIF): New.
	(BUILT_IN_TANPIL): New.
	(TRIG2_TYPE): New.
	(BUILT_IN_ATAN2PI): New.
	(BUILT_IN_ATAN2PIF): New.
	(BUILT_IN_ATAN2PIL): New.

2025-05-17  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (synthesize_ior_xor): Avoid writing
	operands[0] more than once, use new pseudos instead.

2025-05-17  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/riscv.cc (riscv_gpr_save_operation_p): Remove
	break and fixbug for elt index.

2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>

	PR target/100165
	* config/aarch64/aarch64-protos.h (aarch64_output_fmov): New prototype.
	(aarch64_simd_valid_and_imm_fmov): Likewise.
	* config/aarch64/aarch64-simd.md (and<mode>3<vczle><vczbe>): Allow FMOV
	codegen.
	* config/aarch64/aarch64.cc (aarch64_simd_valid_and_imm_fmov): New.
	(aarch64_output_fmov): Likewise.
	* config/aarch64/constraints.md (Df): New constraint.
	* config/aarch64/predicates.md (aarch64_reg_or_and_imm): Update
	predicate to support FMOV codegen.

2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>

	PR target/100165
	* config/aarch64/aarch64.cc (aarch64_evpc_and): New.
	(aarch64_expand_vec_perm_const_1): Call aarch64_evpc_and.
	* optabs.cc (vec_perm_and_mask): New.
	* optabs.h (vec_perm_and_mask): New prototype.

2025-05-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>

	* config/aarch64/aarch64.cc (aarch64_evpc_reencode): Zero initialize
	newd.

2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (forward_propagate_into_comparison): Dump
	when replacing statement.

2025-05-16  Martin Jambor  <mjambor@suse.cz>
	    Michal Jires  <mjires@suse.cz>

	* cgraph.h (symtab_node): Make member function get_uid const.
	* cgraphclones.cc (dump_callgraph_transformation): Dump m_uid of the
	call graph nodes instead of order.
	* cgraph.cc (cgraph_node::remove): Likewise.
	* ipa-cp.cc (ipcp_lattice<valtype>::print): Likewise.
	* ipa-sra.cc (ipa_sra_summarize_function): Likewise.
	* symtab.cc (symtab_node::dump_base): Likewise.

2025-05-16  Ville Voutilainen  <ville.voutilainen@gmail.com>

	* doc/invoke.texi: Add to_underlying to -ffold-simple-inlines.

2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/118603
	* config/aarch64/driver-aarch64.cc (aarch64_cpu_data): Add cast to unsigned
	to VARIANT of the define AARCH64_CORE.

2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* config/aarch64/aarch64-protos.h (struct sve_vec_cost): Change gather_load_x32_cost
	and gather_load_x64_cost fields to unsigned.

2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Add a limit on the alias walk.

2025-05-16  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-fold.cc (optimize_memcpy_to_memset): Move to
	tree-ssa-forwprop.cc.
	(gimple_fold_builtin_memory_op): Remove call to
	optimize_memcpy_to_memset.
	(fold_stmt_1): Likewise.
	* tree-ssa-forwprop.cc (optimize_memcpy_to_memset): Move from
	gimple-fold.cc.
	(simplify_builtin_call): Try to optimize memcpy/memset.
	(pass_forwprop::execute): Try to optimize memcpy like assignment
	from a previous memset.

2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>

	* config/arm/arm.cc (arm_gen_load_multiple_1): Simplify use of
	end_sequence.
	(arm_gen_store_multiple_1): Likewise.
	* expr.cc (gen_move_insn): Likewise.
	* gentarget-def.cc (main): Likewise.

2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>

	* asan.cc (asan_emit_allocas_unpoison): Directly return the
	result of end_sequence.
	(hwasan_emit_untag_frame): Likewise.
	* config/aarch64/aarch64-speculation.cc
	(aarch64_speculation_clobber_sp): Likewise.
	(aarch64_speculation_establish_tracker): Likewise.
	* config/arm/arm.cc (arm_call_tls_get_addr): Likewise.
	* config/avr/avr-passes.cc (avr_parallel_insn_from_insns): Likewise.
	* config/sh/sh_treg_combine.cc
	(sh_treg_combine::make_not_reg_insn): Likewise.
	* tree-outof-ssa.cc (emit_partition_copy): Likewise.

2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>

	* asan.cc (asan_clear_shadow): Use the return value of end_sequence,
	rather than calling get_insns separately.
	(asan_emit_stack_protection, asan_emit_allocas_unpoison): Likewise.
	(hwasan_frame_base, hwasan_emit_untag_frame): Likewise.
	* auto-inc-dec.cc (attempt_change): Likewise.
	* avoid-store-forwarding.cc (process_store_forwarding): Likewise.
	* bb-reorder.cc (fix_crossing_unconditional_branches): Likewise.
	* builtins.cc (expand_builtin_apply_args): Likewise.
	(expand_builtin_return, expand_builtin_mathfn_ternary): Likewise.
	(expand_builtin_mathfn_3, expand_builtin_int_roundingfn): Likewise.
	(expand_builtin_int_roundingfn_2, expand_builtin_saveregs): Likewise.
	(inline_string_cmp): Likewise.
	* calls.cc (expand_call): Likewise.
	* cfgexpand.cc (expand_asm_stmt, pass_expand::execute): Likewise.
	* cfgloopanal.cc (init_set_costs): Likewise.
	* cfgrtl.cc (insert_insn_on_edge, prepend_insn_to_edge): Likewise.
	(rtl_lv_add_condition_to_bb): Likewise.
	* config/aarch64/aarch64-speculation.cc
	(aarch64_speculation_clobber_sp): Likewise.
	(aarch64_speculation_establish_tracker): Likewise.
	(aarch64_do_track_speculation): Likewise.
	* config/aarch64/aarch64.cc (aarch64_load_symref_appropriately)
	(aarch64_expand_vector_init, aarch64_gen_ccmp_first): Likewise.
	(aarch64_gen_ccmp_next, aarch64_mode_emit): Likewise.
	(aarch64_md_asm_adjust): Likewise.
	(aarch64_switch_pstate_sm_for_landing_pad): Likewise.
	(aarch64_switch_pstate_sm_for_jump): Likewise.
	(aarch64_switch_pstate_sm_for_call): Likewise.
	* config/alpha/alpha.cc (alpha_legitimize_address_1): Likewise.
	(alpha_emit_xfloating_libcall, alpha_gp_save_rtx): Likewise.
	* config/arc/arc.cc (hwloop_optimize): Likewise.
	* config/arm/aarch-common.cc (arm_md_asm_adjust): Likewise.
	* config/arm/arm-builtins.cc: Likewise.
	* config/arm/arm.cc (require_pic_register): Likewise.
	(arm_call_tls_get_addr, arm_gen_load_multiple_1): Likewise.
	(arm_gen_store_multiple_1, cmse_clear_registers): Likewise.
	(cmse_nonsecure_call_inline_register_clear): Likewise.
	(arm_attempt_dlstp_transform): Likewise.
	* config/avr/avr-passes.cc (bbinfo_t::optimize_one_block): Likewise.
	(avr_parallel_insn_from_insns): Likewise.
	* config/avr/avr.cc (avr_prologue_setup_frame): Likewise.
	(avr_expand_epilogue): Likewise.
	* config/bfin/bfin.cc (hwloop_optimize): Likewise.
	* config/c6x/c6x.cc (c6x_expand_compare): Likewise.
	* config/cris/cris.cc (cris_split_movdx): Likewise.
	* config/cris/cris.md: Likewise.
	* config/csky/csky.cc (csky_call_tls_get_addr): Likewise.
	* config/epiphany/resolve-sw-modes.cc
	(pass_resolve_sw_modes::execute): Likewise.
	* config/fr30/fr30.cc (fr30_move_double): Likewise.
	* config/frv/frv.cc (frv_split_scc, frv_split_cond_move): Likewise.
	(frv_split_minmax, frv_split_abs): Likewise.
	* config/frv/frv.md: Likewise.
	* config/gcn/gcn.cc (move_callee_saved_registers): Likewise.
	(gcn_expand_prologue, gcn_restore_exec, gcn_md_reorg): Likewise.
	* config/i386/i386-expand.cc
	(ix86_expand_carry_flag_compare, ix86_expand_int_movcc): Likewise.
	(ix86_vector_duplicate_value, expand_vec_perm_interleave2): Likewise.
	(expand_vec_perm_vperm2f128_vblend): Likewise.
	(expand_vec_perm_2perm_interleave): Likewise.
	(expand_vec_perm_2perm_pblendv): Likewise.
	(expand_vec_perm2_vperm2f128_vblend, ix86_gen_ccmp_first): Likewise.
	(ix86_gen_ccmp_next): Likewise.
	* config/i386/i386-features.cc
	(scalar_chain::make_vector_copies): Likewise.
	(scalar_chain::convert_reg, scalar_chain::convert_op): Likewise.
	(timode_scalar_chain::convert_insn): Likewise.
	* config/i386/i386.cc (ix86_init_pic_reg, ix86_va_start): Likewise.
	(ix86_get_drap_rtx, legitimize_tls_address): Likewise.
	(ix86_md_asm_adjust): Likewise.
	* config/ia64/ia64.cc (ia64_expand_tls_address): Likewise.
	(ia64_expand_compare, spill_restore_mem): Likewise.
	(expand_vec_perm_interleave_2): Likewise.
	* config/loongarch/loongarch.cc
	(loongarch_call_tls_get_addr): Likewise.
	* config/m32r/m32r.cc (gen_split_move_double): Likewise.
	* config/m32r/m32r.md: Likewise.
	* config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
	(m68k_call_m68k_read_tp, m68k_sched_md_init_global): Likewise.
	* config/m68k/m68k.md: Likewise.
	* config/microblaze/microblaze.cc
	(microblaze_call_tls_get_addr): Likewise.
	* config/mips/mips.cc (mips_call_tls_get_addr): Likewise.
	(mips_ls2_init_dfa_post_cycle_insn): Likewise.
	(mips16_split_long_branches): Likewise.
	* config/nvptx/nvptx.cc (nvptx_gen_shuffle): Likewise.
	(nvptx_gen_shared_bcast, nvptx_propagate): Likewise.
	(workaround_uninit_method_1, workaround_uninit_method_2): Likewise.
	(workaround_uninit_method_3): Likewise.
	* config/or1k/or1k.cc (or1k_init_pic_reg): Likewise.
	* config/pa/pa.cc (legitimize_tls_address): Likewise.
	* config/pru/pru.cc (pru_expand_fp_compare, pru_reorg_loop): Likewise.
	* config/riscv/riscv-shorten-memrefs.cc
	(pass_shorten_memrefs::transform): Likewise.
	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Likewise.
	* config/riscv/riscv.cc (riscv_call_tls_get_addr): Likewise.
	(riscv_frm_emit_after_bb_end): Likewise.
	* config/rl78/rl78.cc (rl78_emit_libcall): Likewise.
	* config/rs6000/rs6000.cc (rs6000_debug_legitimize_address): Likewise.
	* config/s390/s390.cc (legitimize_tls_address): Likewise.
	(s390_two_part_insv, s390_load_got, s390_va_start): Likewise.
	* config/sh/sh_treg_combine.cc
	(sh_treg_combine::make_not_reg_insn): Likewise.
	* config/sparc/sparc.cc (sparc_legitimize_tls_address): Likewise.
	(sparc_output_mi_thunk, sparc_init_pic_reg): Likewise.
	* config/stormy16/stormy16.cc (xstormy16_split_cbranch): Likewise.
	* config/xtensa/xtensa.cc (xtensa_copy_incoming_a7): Likewise.
	(xtensa_expand_block_set_libcall): Likewise.
	(xtensa_expand_block_set_unrolled_loop): Likewise.
	(xtensa_expand_block_set_small_loop, xtensa_call_tls_desc): Likewise.
	* dse.cc (emit_inc_dec_insn_before, find_shift_sequence): Likewise.
	(replace_read): Likewise.
	* emit-rtl.cc (reorder_insns, gen_clobber, gen_use): Likewise.
	* except.cc (dw2_build_landing_pads, sjlj_mark_call_sites): Likewise.
	(sjlj_emit_function_enter, sjlj_emit_function_exit): Likewise.
	(sjlj_emit_dispatch_table): Likewise.
	* expmed.cc (expmed_mult_highpart_optab, expand_sdiv_pow2): Likewise.
	* expr.cc (convert_mode_scalar, emit_move_multi_word): Likewise.
	(gen_move_insn, expand_cond_expr_using_cmove): Likewise.
	(expand_expr_divmod, expand_expr_real_2): Likewise.
	(maybe_optimize_pow2p_mod_cmp, maybe_optimize_mod_cmp): Likewise.
	* function.cc (emit_initial_value_sets): Likewise.
	(instantiate_virtual_regs_in_insn, expand_function_end): Likewise.
	(get_arg_pointer_save_area, make_split_prologue_seq): Likewise.
	(make_prologue_seq, gen_call_used_regs_seq): Likewise.
	(thread_prologue_and_epilogue_insns): Likewise.
	(match_asm_constraints_1): Likewise.
	* gcse.cc (prepare_copy_insn): Likewise.
	* ifcvt.cc (noce_emit_store_flag, noce_emit_move_insn): Likewise.
	(noce_emit_cmove): Likewise.
	* init-regs.cc (initialize_uninitialized_regs): Likewise.
	* internal-fn.cc (expand_POPCOUNT): Likewise.
	* ira-emit.cc (emit_move_list): Likewise.
	* ira.cc (ira): Likewise.
	* loop-doloop.cc (doloop_modify): Likewise.
	* loop-unroll.cc (compare_and_jump_seq): Likewise.
	(unroll_loop_runtime_iterations, insert_base_initialization): Likewise.
	(split_iv, insert_var_expansion_initialization): Likewise.
	(combine_var_copies_in_loop_exit): Likewise.
	* lower-subreg.cc (resolve_simple_move,resolve_shift_zext): Likewise.
	* lra-constraints.cc (match_reload, check_and_process_move): Likewise.
	(process_addr_reg, insert_move_for_subreg): Likewise.
	(process_address_1, curr_insn_transform): Likewise.
	(inherit_reload_reg, process_invariant_for_inheritance): Likewise.
	(inherit_in_ebb, remove_inheritance_pseudos): Likewise.
	* lra-remat.cc (do_remat): Likewise.
	* mode-switching.cc (commit_mode_sets): Likewise.
	(optimize_mode_switching): Likewise.
	* optabs.cc (expand_binop, expand_twoval_binop_libfunc): Likewise.
	(expand_clrsb_using_clz, expand_doubleword_clz_ctz_ffs): Likewise.
	(expand_doubleword_popcount, expand_ctz, expand_ffs): Likewise.
	(expand_absneg_bit, expand_unop, expand_copysign_bit): Likewise.
	(prepare_float_lib_cmp, expand_float, expand_fix): Likewise.
	(expand_fixed_convert, gen_cond_trap): Likewise.
	(expand_atomic_fetch_op): Likewise.
	* ree.cc (combine_reaching_defs): Likewise.
	* reg-stack.cc (compensate_edge): Likewise.
	* reload1.cc (emit_input_reload_insns): Likewise.
	* sel-sched-ir.cc (setup_nop_and_exit_insns): Likewise.
	* shrink-wrap.cc (emit_common_heads_for_components): Likewise.
	(emit_common_tails_for_components): Likewise.
	(insert_prologue_epilogue_for_components): Likewise.
	* tree-outof-ssa.cc (emit_partition_copy): Likewise.
	(insert_value_copy_on_edge): Likewise.
	* tree-ssa-loop-ivopts.cc (computation_cost): Likewise.

2025-05-16  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (end_sequence): Return the sequence.
	* emit-rtl.cc (end_sequence): Likewise.

2025-05-16  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new
	pattern to convert vec_duplicate + vsub.vv to vsub.vx.
	* config/riscv/riscv.cc (riscv_rtx_costs): Add minus as plus op.
	* config/riscv/vector-iterators.md: Add minus to iterator
	any_int_binop_no_shift_vx.

2025-05-15  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/116546
	* range-op.cc (operator_bitwise_and::op1_range): Utilize bitmask
	from the LHS to improve op1's bitmask.

2025-05-15  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/116546
	* value-range.cc (irange::intersect_bitmask): Allow unknown
	bitmasks to be processed.

2025-05-15  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/116546
	* value-range.cc (irange_bitmask::irange_bitmask): Include
	leading ones in the bitmask.

2025-05-15  Andrew MacLeod  <amacleod@redhat.com>

	* value-range.cc (irange_bitmask::irange_bitmask): Rename from
	get_bitmask_from_range and tweak.
	(prange::set): Use new constructor.
	(prange::intersect): Use new constructor.
	(irange::get_bitmask): Likewise.
	* value-range.h (irange_bitmask): New constructor prototype.

2025-05-15  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/120277
	* range-op-ptr.cc (operator_cast::fold_range): Check if the cast
	if UNDEFINED before setting bounds.

2025-05-15  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120223
	* config/riscv/riscv.cc (synthesize_ior_xor): XTHEADBS does not have
	single bit manipulations.

2025-05-15  Alexander Monakov  <amonakov@ispras.ru>

	* tree-cfg.cc (verify_gimple_assign_unary): Accept only
	COMPLEX_TYPE for CONJ_EXPR.

2025-05-15  Andrew Pinski  <quic_apinski@quicinc.com>

	* fold-const.cc (tree_swap_operands_p): Put ADDR_EXPR last
	instead of just is_gimple_invariant_address ones.
	* match.pd (`a ptr+ b !=\== ADDR`, `ADDR !=/== ssa_name`):
	Move the ADDR to the last operand. Update comment.

2025-05-15  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.cc (vect_transform_loops): When diagnosing
	a vectorized loop indicate whether we vectorized an epilogue,
	whether we used masked vectors and what unroll factor was
	used.

2025-05-15  Richard Biener  <rguenther@suse.de>

	* config/i386/i386.cc (ix86_vector_costs::finish_cost):
	Do not suggest a first epilogue mode for AVX512 sized
	main loops with X86_TUNE_AVX512_TWO_EPILOGUES as that
	interferes with using a masked epilogue.

2025-05-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (record_stmt_cost): Remove mixed
	stmt_vec_info/SLP node inline overload.
	* tree-vect-stmts.cc (vectorizable_store): For costing
	vector stmts only pass SLP node to record_stmt_cost.
	(vectorizable_load): Likewise.

2025-05-14  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vect_get_store_cost): Compute vectype based
	on whether we got SLP node or stmt_vec_info and use the full
	record_stmt_cost API.
	(vect_get_load_cost): Likewise.

2025-05-14  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc
	(riscv_subset_list::riscv_subset_list): Init m_allow_adding_dup.

2025-05-14  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/riscv-ext.def: New extension defs.
	* config/riscv/riscv-ext.opt: Ditto.
	* doc/riscv-ext.texi: Ditto.

2025-05-14  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/t-riscv: Drop duplicate build rule for
	riscv-ext.opt.

2025-05-14  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-ext.opt.urls: Regenerate.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-cfgcleanup.cc (canonicalize_bool_cond): New function.
	(cleanup_control_expr_graph): Call canonicalize_bool_cond for GIMPLE_COND.
	* tree-cfgcleanup.h (canonicalize_bool_cond): New declaration.
	* tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond):
	Call canonicalize_bool_cond.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple.h (gimple_cond_set_code): Add assert of the code
	being a comparison.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (forward_propagate_into_gimple_cond): Assert
	that gimple_cond_code is always a comparison.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-fold.cc (replace_stmt_with_simplification): Check cfun before
	accessing cfun.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (pass_forwprop::execute): Move marking of to_purge bb
	and marking of fixup statements to after the local optimizations.

2025-05-14  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-forwprop.cc (pass_forwprop::execute): Use `|=` for
	changed on the local folding.

2025-05-14  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (record_stmt_cost): Add overload with
	only SLP node and no vector type.
	* tree-vect-stmts.cc (record_stmt_cost): Use
	SLP_TREE_REPRESENTATIVE for stmt_vec_info.
	(vect_model_simple_cost): Do not get stmt_vec_info argument
	and adjust.
	(vectorizable_call): Adjust.
	(vectorizable_simd_clone_call): Likewise.
	(vectorizable_conversion): Likewise.
	(vectorizable_assignment): Likewise.
	(vectorizable_shift): Likewise.
	(vectorizable_operation): Likewise.
	(vectorizable_condition): Likewise.
	(vectorizable_comparison_1): Likewise.
	* tree-vect-slp.cc (vect_prologue_cost_for_slp): Use
	full-blown record_stmt_cost.

2025-05-14  liuhongt  <hongtao.liu@intel.com>

	PR target/120215
	* config/i386/i386-features.cc
	(scalar_chain::mark_dual_mode_def): Weight
	cost of integer<->sse move with bb frequency when it's
	optimized_for_speed_p.
	(general_scalar_chain::compute_convert_gain): Ditto, and
	adjust function prototype to return true/false when cost model
	is profitable or not.
	(timode_scalar_chain::compute_convert_gain): Ditto.
	(convert_scalars_to_vector): Adjust after the upper two
	function prototype are changed.
	* config/i386/i386-features.h (class scalar_chain): Change
	n_integer_to_sse/n_sse_to_integer to cost_sse_integer, and add
	weighted_cost_sse_integer.
	(class general_scalar_chain): Adjust prototype to return bool
	intead of int.
	(class timode_scalar_chain): Ditto.

2025-05-14  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/111873
	* tree-sra.cc (sra_modify_expr): When processing a load which has
	a type-incompatible replacement, do not store the contents of the
	replacement into the original aggregate when that aggregate is
	const.

2025-05-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/vector.md: Fix tf_to_fprx2 by using vlr instead of
	ldr.

2025-05-14  liuhongt  <hongtao.liu@intel.com>

	PR tree-optimization/103771
	* match.pd (cond_expr_convert_p): Extend the match to handle
	scalar floating point type.
	* tree-vect-patterns.cc
	(vect_recog_cond_expr_convert_pattern): Handle floating point
	type.

2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/119903
	* gimple-fold.cc (replace_stmt_with_simplification): Reject for
	noncall exceptions replacing comparison with itself.

2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/118868
	* tree-cfg.cc (verify_gimple_assign_unary): Allow pointers
	but disallow aggregate types for PAREN_EXPR.

2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>

	* cfgexpand.cc (vars_ssa_cache::operator()): Update the cache if the use is already
	has a cache.

2025-05-13  Andrew Pinski  <quic_apinski@quicinc.com>

	* cfgexpand.cc (vars_ssa_cache::operator()): Reverse the order of the going
	through the update list.

2025-05-13  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vectorizable_nonlinear_induction):
	Remove non-SLP path, use SLP_TREE_VECTYPE.
	(vectorizable_induction): Likewise.  Drop ncopies variable
	which is always 1.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_extra_ext_flag_table_t):
	New.
	(riscv_ext_flag_table): Rename to ...
	(riscv_extra_ext_flag_table): this, and drop most of definitions
	that can obtained from the flags field of the riscv_ext_info_t
	structures.
	(apply_extra_extension_flags): Use riscv_ext_info_t.
	(riscv_ext_is_subset): Ditto.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_ext_version_table):
	Remove.
	(standard_extensions_p): Use riscv_ext_info_t.
	(get_default_version): Use riscv_ext_info_t.
	(riscv_arch_help): Ditto.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc
	(riscv_implied_info::riscv_implied_info_t): Remove unused
	variant.
	(struct riscv_implied_info_t): Remove unsued field.
	(riscv_implied_info::match): Remove unused variant, and adjust
	the logic.
	(get_riscv_ext_info): New.
	(riscv_implied_info): Remove.
	(riscv_ext_info_t::apply_implied_ext): New.
	(riscv_combine_info). Remove.
	(riscv_subset_list::handle_implied_ext): Use riscv_ext_info_t
	rather than riscv_implied_info.
	(riscv_subset_list::check_implied_ext): Ditto.
	(riscv_subset_list::handle_combine_ext): Use riscv_ext_info_t
	rather than riscv_combine_info.
	(riscv_minimal_hwprobe_feature_bits): Use riscv_ext_info_t
	rather than riscv_implied_info.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_ext_info_t): New
	struct.
	(opt_var_ref_t): Adjust order.
	(cl_opt_var_ref_t): Ditto.
	(riscv_ext_flag_table_t): Adjust order, and add a new construct
	that not hold the extension name.
	(riscv_version_t): New struct.
	(riscv_implied_info_t): Adjust order, and add a new construct that not
	hold the extension name.
	(apply_extra_extension_flags): New function.
	(riscv_ext_infos): New.
	(riscv_implied_info): Adjust.
	* config/riscv/riscv-opts.h (EXT_FLAG_MACRO): New macro.
	(BITMASK_NOT_YET_ALLOCATED): New macro.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* common/config/riscv/riscv-common.cc (riscv_can_inline_p): Drop
	extension flags check from `target_flags`.
	* config/riscv/riscv-subset.h (riscv_x_target_flags_isa_mask):
	Remove.
	* config/riscv/riscv.cc (riscv_x_target_flags_isa_mask): Remove.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* doc/invoke.texi: Replace hand‑written extension table with
	`@include riscv-ext.texi` to pull in auto‑generated entries.
	* doc/riscv-ext.texi: New generated definition file
	containing formatted documentation entries for each extension.
	* Makefile.in: Add riscv-ext.texi to the list of files to be
	processed by the Texinfo generator.
	* config/riscv/gen-riscv-ext-texi.cc: New.
	* config/riscv/t-riscv: Add rule for generating riscv-ext.texi.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/gen-riscv-ext-opt.cc: New.
	* config/riscv/riscv.opt: Drop manual entries for target
	options, and include riscv-ext.opt.
	* config/riscv/riscv-ext.opt: New.
	* config/riscv/riscv-ext.opt.urls: New.
	* config.gcc: Add riscv-ext.opt to the list of target options files.
	* common/config/riscv/riscv-common.cc (riscv_ext_flag_table): Adjsut target
	option variable entry.
	(riscv_set_arch_by_subset_list): Adjust target option variable.
	* config/riscv/riscv-c.cc (riscv_ext_flag_table): Adjust target
	option variable entry.
	* config/riscv/riscv-vector-builtins.cc (pragma_intrinsic_flags):
	Adjust variable name.
	(riscv_pragma_intrinsic_flags_pollute): Adjust variable name.
	(riscv_pragma_intrinsic_flags_restore): Ditto.
	* config/riscv/t-riscv: Add the rule for generating
	riscv-ext.opt.
	* config/riscv/riscv-opts.h (TARGET_MIN_VLEN): Update.
	(TARGET_MIN_VLEN_OPTS): Update.

2025-05-13  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-ext.def: New file; define extension metadata table.
	* config/riscv/riscv-ext-corev.def: New.
	* config/riscv/riscv-ext-sifive.def: New.
	* config/riscv/riscv-ext-thead.def: New.
	* config/riscv/riscv-ext-ventana.def: New.

2025-05-13  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* diagnostic-format-html.cc: Include "diagnostic-format-text.h",
	"pretty-print-urlifier.h" and "edit-context.h".
	(html_builder::html_builder): Fix indentation in decl.
	(html_builder::make_element_for_diagnostic): Split out metadata
	code into make_element_for_metadata.  Call
	make_element_for_source, make_element_for_path, and
	make_element_for_patch.
	(html_builder::make_element_for_source): New.
	(html_builder::make_element_for_path): New.
	(html_builder::make_element_for_patch): New.
	(html_builder::make_metadata_element): New.
	(html_builder::make_element_for_metadata): New.
	(html_output_format::get_builder): New.
	(selftest::test_html_diagnostic_context::get_builder): New.
	(selftest::test_simple_log): Update test to print a quoted string,
	and verify that it uses a "gcc-quoted-text" span.
	(selftest::test_metadata): New.
	(selftest::diagnostic_format_html_cc_tests): Call it.

2025-05-13  Andrew MacLeod  <amacleod@redhat.com>

	* tree-ssanames.cc (set_bitmask): Use int_range_max for temps.
	* value-range.cc (irange::set_range_from_bitmask): Handle all
	trailing zero values.

2025-05-12  Pan Li  <pan2.li@intel.com>

	* match.pd: Add form 7 matching pattern for unsigned integer
	SAT_ADD.

2025-05-12  Andrew Pinski  <quic_apinski@quicinc.com>

	* config/aarch64/aarch64.md (cmov<mode>6): Remove.

2025-05-12  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/120230
	* optabs.cc (can_compare_p): Remove support for ccp_cmov.
	* optabs.def (cmov_optab): Remove.
	* optabs.h (can_compare_purpose): Remove ccp_cmov.

2025-05-12  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/120231
	* range-op-float.cc (operator_cast::fold_range): New variants.
	(operator_cast::op1_range): Likewise.
	* range-op-mixed.h (operator_cast::fold_range): Likewise.
	(operator_cast::op1_range): Likewise
	* range-op.cc (range_op_handler::fold_range): Add RO_FIF dispatch.
	(range_op_handler::op1_range): Add RO_IFF and RO_FII patterns.
	(range_operator::fold_range): Provide new variant default.
	(range_operator::op1_range): Likewise.
	* range-op.h (range_operator): Add new variant methods.

2025-05-12  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/120188
	* doc/gm2.texi (Semantic checking): Add -fm2-plugin command line option.

2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx-sm.def: Add '61'.
	* config/nvptx/nvptx-gen.h: Regenerate.
	* config/nvptx/nvptx-gen.opt: Likewise.
	* config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
	* config/nvptx/nvptx.opt (-march-map=sm_61, -march-map=sm_62):
	Likewise.
	* config.gcc: Likewise.
	* doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_61'.
	* config/nvptx/gen-multilib-matches-tests: Extend.

2025-05-12  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
	'PTX_VERSION_5_0'.
	* config/nvptx/nvptx.cc (ptx_version_to_string)
	(ptx_version_to_number): Adjust.
	* config/nvptx/nvptx.h (TARGET_PTX_5_0): New.
	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
	'5.0' for 'PTX_VERSION_5_0'.
	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=5.0'.

2025-05-12  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* common/config/riscv/riscv-common.cc
	(riscv_subset_list::check_conflict_ext): New extension.
	* config/riscv/riscv.opt: Ditto.

2025-05-12  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* common/config/riscv/riscv-common.cc
	(riscv_subset_list::check_conflict_ext): New extension.
	* config/riscv/riscv.opt: Ditto.

2025-05-12  Richard Biener  <rguenther@suse.de>

	* lto-streamer-out.cc (hash_tree): Hash TYPE_MODE_RAW.
	When offloading hash modes as VOIDmode for aggregates
	and vectors.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* doc/extend.texi: Remove the iwmmxt intrinsics.
	* doc/md.texi: Remove the iwmmxt-related constraints.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/aout.h (REGISTER_NAMES): Remove iwmmxt registers.
	* config/arm/arm.h (FIRST_IWMMXT_REGNUM): Delete.
	(LAST_IWMMXT_REGNUM): Delete.
	(FIRST_IWMMXT_GR_REGNUM): Delete.
	(LAST_IWMMXT_GR_REGNUM): Delete.
	(IS_IWMMXT_REGNUM):  Delete.
	(IS_IWMMXT_GR_REGNUM): Delete.
	(FRAME_POINTER_REGNUM): Define relative to CC_REGNUM.
	(ARG_POINTER_REGNUM): Define relative to FRAME_POINTER_REGNUM.
	(FIRST_PSEUDO_REGISTER): Adjust.
	(WREG): Delete.
	(WGREG): Delete.
	(REG_ALLOC_ORDER): Remove iWMMX registers.
	(enum reg_class): Remove iWMMX register classes.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS):  Remove iWMMX registers.
	* config/arm/arm.md (CC_REGNUM): Adjust value.
	(VFPCC_RENGUM): Likewise.
	(APSRQ_REGNUM): Likewise.
	(APSRGE_REGNUM): Likewise.
	(VPR_REGNUM): Likewise.
	(RA_AUTH_CODE): Likewise.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm-cpus.in (feature iwmmxt, feature iwmmxt2):  Delete.
	* config/arm/arm-protos.h (arm_output_iwmmxt_shift_immediate): Delete.
	(arm_output_iwmmxt_tinsr): Delete.
	(arm_arch_iwmmxt): Delete.
	(arm_arch_iwmmxt2): Delete.
	* config/arm/arm.h (TARGET_IWMMXT): Delete.
	(TARGET_IWMMXT2): Delete.
	(TARGET_REALLY_IWMMXT): Delete.
	(TARGET_REALLY_IWMMXT2): Delete.
	(VALID_IWMMXT_REG_MODE): Delete.
	(ARM_HAVE_V8QI_ARITH): Remove iWMMXT.
	(ARM_HAVE_V4HI_ARITH): Likewise.
	(ARM_HAVE_V2SI_ARITH): Likewise.
	(ARM_HAVE_V8QI_LDST): Likewise.
	(ARM_HAVE_V4HI_LDST): Likewise.
	(ARM_HAVE_V2SI_LDST): Likewise.
	(SECONDARY_OUTPUT_RELOAD_CLASS):  Remove iWMMXT cases.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.
	* config/arm/arm.cc (arm_arch_iwmmxt): Delete.
	(arm_arch_iwmmxt2): Delete.
	(arm_option_reconfigure_globals): Don't initialize them.
	(arm_register_move_cost): Remove costs for iwmmxt.
	(struct minipool_node):  Update comment.
	(output_move_double): Likewise
	(output_return_instruction): Likewise.
	(arm_print_operand, cases 'U' and 'w'): Report an error if
	used.
	(arm_regno_class): Remove iWMMXT cases.
	(arm_debugger_regno): Remove iWMMXT cases.
	(arm_output_iwmmxt_shift_immediate): Delete.
	(arm_output_iwmmxt_tinsr): Delete.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm-c.cc (arm_cpu_builtins):  Remove predefines
	for __IWWMXT__, __IWMMXT2__ and __ARM_WMMX.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/iterators.md (VMMX, VMMX2): Remove mode iterators.
	(MMX_char): Remove mode iterator attribute.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md (core_cycles): Remove iwmmxt attributes.
	* config/arm/types.md (autodetect_type): Likewise.
	* config/arm/marvell-f-iwmmxt.md: Removed.
	* config/arm/t-arm: Remove marvell-f-iwmmxt.md

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.cc (arm_option_check_internal): Remove
	IWMMXT check.
	(arm_options_perform_arch_sanity_checks): Likewise.
	(use_return_insn): Likewise.
	(arm_init_cumulative_args): Likewise.
	(arm_legitimate_index_p): Likewise.
	(thumb2_legitimate_index_p): Likewise.
	(arm_compute_save_core_reg_mask): Likewise.
	(output_return_instruction): Likewise.
	(arm_compute_frame_layout): Likewise.
	(arm_save_coproc_regs): Likewise.
	(arm_hard_regno_mode_ok): Likewise.
	(arm_expand_epilogue_apcs_frame): Likewise.
	(arm_expand_epilogue): Likewise.
	(arm_vector_mode_supported_p): Likewise.
	(arm_preferred_simd_mode): Likewise.
	(arm_conditional_register_usage): Likewise.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config.gcc (arm, --with-abi): Remove iwmmxt abi option.
	* config/arm/arm.opt (enum ARM_ABI_IWMMXT): Remove.
	* config/arm/arm.h (TARGET_IWMMXT_ABI): Delete.
	(enum arm_pcs): Remove ARM_PCS_AAPCS_IWMMXT.
	(FUNCTION_ARG_REGNO_P): Remove IWMMXT ABI support.
	(CUMULATIVE_ARGS): Remove iwmmxt_nregs.
	* config/arm/arm.cc (arm_options_perform_arch_sanity_checks):
	Remove IWMMXT ABI checks.
	(arm_libcall_value_1): Likewise.
	(arm_function_value_regno_p): Likewise.
	(arm_apply_result_size): Remove adjustment for IWMMXT ABI.
	(arm_function_arg): Remove IWMMXT ABI support.
	(arm_arg_partial_bytes): Likewise.
	(arm_function_arg_advance): Likewise.
	(arm_init_cumulative_args): Don't initialize iwmmxt_nregs.
	* doc/invoke.texi (arm -mabi): Remove mention of the iwmmxt
	ABI option.
	* config/arm/arm-opts.h (enum arm_abi_type): Remove ARM_ABI_IWMMXT.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md(attr arch): Remove iwmmxt and iwmmxt2.
	Remove checks based on TARGET_REALLY_IWMMXT2 from all split
	patterns.
	(arm_movdi): Likewise.
	(*arm_movt): Likewise.
	(arch_enabled): Remove test for iwmmxt2.
	* config/arm/constraints.md (y, z): Remove register constraints.
	(Uy): Remove memory constraint.
	* config/arm/thumb2.md (thumb2_pop_single): Remove check for
	IWMMXT.
	* config/arm/vec-common.md (mov<mode>): Remove check for IWMMXT.
	(mul<mode>3): Likewise.
	(xor<mode>3): Likewise.
	(<absneg_str><mode>2): Likewise.
	(@movmisalign<mode>): Likewise.
	(@mve_<mve_insn>q_<supf><mode>): Likewise.
	(vashl<mode>3): Likewise.
	(vashr<mode>3): Likewise.
	(vlshr<mode>3): Likewise.
	(uavg<mode>3_ceil): Likewise.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md: Don't include iwmmxt.md.
	* config/arm/t-arm (MD_INCLUDES): Remove iwmmxt*.md.
	* config/arm/iwmmxt.md: Removed.
	* config/arm/iwmmxt2.md: Removed.
	* config/arm/unspecs.md: Remove comment referring to
	iwmmxt2.md.
	(enum unspec): Remove iWMMXt unspec values.
	(enum unspecv): Likewise.
	* config/arm/predicates.md (imm_or_reg_operand): Delete.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm-builtins.cc (enum arm_builtins): Delete iWMMX
	builtin values.
	(bdesc_2arg): Likewise.
	(bdesc_1arg): Likewise.
	(arm_init_iwmmxt_builtins): Delete.
	(arm_init_builtins): Don't call arm_init_iwmmxt_builtins.
	(safe_vector_operand): Use __builtin_unreachable instead of emitting
	an iwmmxt builtin.
	(arm_general_expand_builtin): Remove iWMMX builtins support.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm-cpus.in (arch iwmmxt): treat in the same
	way as we would treat XScale.
	(arch iwmmxt2): Likewise.
	(cpu xscale): Add aliases for iwmmxt and iwmmxt2.
	(cpu iwmmxt): Delete.
	(cpu iwmmxt2): Delete.
	* config/arm/arm-generic.md (load_ldsched_xscale): Remove references
	to iwmmxt.
	(load_ldsched): Likewise.
	* config/arm/arm-tables.opt: Regenerated.
	* config/arm/arm-tune.md: Regenerated.
	* doc/sourcebuild.texi (arm_iwmmxt_ok): Delete.

2025-05-12  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add	parentheis
	and re-indent.
	(SECONDARY_INPUT_RELOAD_CLASS): Likewise.

2025-05-12  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120228
	* config/i386/i386-features.cc (ix86_place_single_vector_set):
	Remove df_insn_rescan after emit_insn_*.
	(remove_partial_avx_dependency): Likewise.
	(replace_vector_const): Likewise.

2025-05-11  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_widen_mult_cost): Use sse_op to cost
	SSE integer addition.
	(ix86_multiplication_cost): Use COSTS_N_INSNS (...)/2 to cost sse
	loads.
	(ix86_shift_rotate_cost): Likewise.
	(ix86_vector_costs::add_stmt_cost): Likewise.

2025-05-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>

	* config/xtensa/xtensa.cc (xtensa_register_move_cost):
	Add appropriate move costs between AR_REGS and FP_REGS.

2025-05-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120211
	* tree-vect-stmts.cc (vect_stmt_relevant_p): Only add PHIs
	from the loop header to LOOP_VINFO_EARLY_BREAKS_LIVE_IVS.

2025-05-11  Jiawei  <jiawei@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc: New profile.

2025-05-11  Jiawei  <jiawei@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc (struct riscv_profiles): New struct.
	(riscv_subset_list::parse_profiles): New parser.
	(riscv_subset_list::parse_base_ext): Ditto.
	* config/riscv/riscv-subset.h: New def.
	* doc/invoke.texi: New option descriptions.

2025-05-10  H.J. Lu  <hjl.tools@gmail.com>

	PR target/92080
	PR target/117839
	* config/i386/i386-features.cc (replace_vector_const): Change
	dest to src.

2025-05-10  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386-features.cc
	(general_scalar_chain::vector_const_cost): Add BB parameter; handle
	size costs; use COSTS_N_INSNS to compute move costs.
	(general_scalar_chain::compute_convert_gain): Use optimize_bb_for_size
	instead of optimize_insn_for size; use COSTS_N_INSNS to compute move costs;
	update calls of general_scalar_chain::vector_const_cost; use
	ix86_cost->integer_to_sse.
	(timode_immed_const_gain): Add bb parameter; use
	optimize_bb_for_size_p.
	(timode_scalar_chain::compute_convert_gain): Use optimize_bb_for_size_p.
	* config/i386/i386-features.h (class general_scalar_chain): Update
	prototype of vector_const_cost.
	* config/i386/i386.h (struct processor_costs): Add integer_to_sse.
	* config/i386/x86-tune-costs.h (struct processor_costs): Copy
	sse_to_integer to integer_to_sse everywhere.

2025-05-10  Filip Kastl  <fkastl@suse.cz>

	PR tree-optimization/120080
	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
	Replace assert with return.

2025-05-10  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	* config/riscv/iterators.md (OPTAB): New iterator.
	* config/riscv/predicates.md (arith_or_zbs_operand): Remove.
	(reg_or_const_int_operand): New predicate.
	* config/riscv/riscv-protos.h (synthesize_ior_xor): Prototype.
	* config/riscv/riscv.cc (synthesize_ior_xor): New function.
	* config/riscv/riscv.md (ior/xor expander): Use synthesize_ior_xor.

2025-05-10  LIU Hao  <lh_mouse@126.com>

	PR target/111107
	* config/i386/cygming.h (PREFERRED_STACK_BOUNDARY_DEFAULT): Override
	definition from i386.h.
	(STACK_REALIGN_DEFAULT): Undefine, as it no longer has an effect.
	* config/i386/i386.cc (ix86_update_stack_boundary): Force minimum
	128-bit alignment if `force_align_arg_pointer`.

2025-05-10  Anton Blanchard  <antonb@tenstorrent.com>

	* config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): Check
	TARGET_ZVBC.
	* config/riscv/riscv.cc (expand_crc_using_clmul): Emit code using
	vclmul if TARGET_ZVBC.

2025-05-09  Eric Botcazou  <ebotcazou@adacore.com>

	* vr-values.cc (simplify_using_ranges::simplify) <BIT_AND_EXPR>:
	Do not call simplify_bit_ops_using_ranges for boolean types whose
	precision is not 1.

2025-05-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/114166
	* tree-vect-stmts.cc (vectorizable_operation): Lower also
	bitwise operations on word-mode vectors.

2025-05-09  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_operation): Remve non-SLP
	path.

2025-05-09  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple.h (gimple_cond_true_canonical_p): New function.
	(gimple_cond_false_canonical_p): New function.
	* gimple-fold.cc (replace_stmt_with_simplification): Return
	false if replacing the operands of GIMPLE_COND with an INTEGER_CST
	and already in canonical form.

2025-05-09  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/120182
	* dse.cc (canon_address): Constant addresses have no
	separate store group.

2025-05-09  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119960
	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
	Handle cases where defs from multiple BBs are ordered
	by their dominance relation.

2025-05-09  Jørgen Kvalsvik  <j@lambda.is>

	PR gcov-profile/120086
	* gcov.cc (print_prime_path_lines): Use unsigned, format with
	%u.
	(print_prime_path_source): Likewise.
	(output_path_coverage): Format with HOST_SIZE_T_PRINT_UNSIGNED,
	use unsigned for pathno.

2025-05-09  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64-sve.md (*aarch64_sve_ptrue<mode>_ldr_str):
	Add define_insn_and_split to fold predicated SVE loads/stores with
	ptrue predicates to unpredicated instructions.

2025-05-09  David Malcolm  <dmalcolm@redhat.com>

	PR other/116792
	* Makefile.in (OBJS-libcommon): Add diagnostic-format-html.o.
	* diagnostic-format-html.cc: Move here from
	testsuite/gcc.dg/plugin/diagnostic_plugin_xhtml_format.cc.
	Simplify includes.  Rename "xhtml" to "html" throughout.
	(write_escaped_text): Drop.
	(class xhtml_stream_output_format): Drop.
	(class html_file_output_format): Reimplement using
	diagnostic_output_file.
	(diagnostic_output_format_init_xhtml): Drop.
	(diagnostic_output_format_init_xhtml_stderr): Drop.
	(diagnostic_output_format_init_xhtml_file): Drop.
	(diagnostic_output_format_open_html_file): New.
	(make_html_sink): New.
	(xhtml_format_selftests): Convert to...
	(diagnostic_format_html_cc_tests): ...this.
	(plugin_is_GPL_compatible): Drop.
	(plugin_init): Drop.
	* diagnostic-format-html.h: New file.
	* doc/invoke.texi (-fdiagnostics-add-output=): Add
	"experimental-html" scheme.
	* opts-diagnostic.cc: Include "diagnostic-format-html.h".
	(class html_scheme_handler): New.
	(output_factory::output_factory): Add html_scheme_handler.
	(html_scheme_handler::make_sink): New.
	* selftest-run-tests.cc (selftest::run_tests): Call the new
	selftests.
	* selftest.h (selftest::diagnostic_format_html_cc_tests): New
	decl.

2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-fold.cc (replace_stmt_with_simplification): Return false
	if replacing `bool_var != 0` with `bool_var` in GIMPLE_COND.

2025-05-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* tree-vect-loop.cc (get_initial_def_for_reduction): Remove.
	(vect-create_epilog_for_reduction): Remove non-SLP path.
	(vectorize_fold_left_reduction): Likewise.
	(vectorizable_lane_reducing): Likewise.
	(vectorizable_reduction): Likewise.
	(vect_transform_reduction): Likewise.
	(vect_transform_cycle_phi): Likewise.
	(vectorizable_lc_phi): Remove non-SLP PATH and split into...
	(vect_transform_lc_phi): ... this.
	(update_epilogue_loop_vinfo): Update comment.
	* tree-vect-stmts.cc (vect_analyze_stmt): Update call to
	vectorizable_lc_phi.
	(vect_transform_stmt): Update calls to vect_transform_reduction and
	vect_transform_cycle_phi.  Rename call from vectorizable_lc_phi to
	vect_transform_lc_phi.
	* tree-vectorizer.h (vect_transform_reduction): Update declaration.
	(vect_transform_cycle_phi): Likewise.
	(vectorizable_lc_phi): Likewise.
	(vect_transform_lc_phi): New.

2025-05-08  Richard Earnshaw  <rearnsha@arm.com>

	* gensupport.cc (conlist::conlist): Pass a location to the constructor.
	Only allow skipping of non-alpha-numeric characters when parsing a
	number and only allow '=', '+' or '%'.  Add some error checking when
	parsing an operand number.
	(parse_section_layout): Pass the location to the conlist constructor.
	(parse_section): Allow an optional list of forbidden characters.
	If specified, reject strings containing them.
	(convert_syntax): Reject '=', '+' or '%' in an alternative.

2025-05-08  Richard Earnshaw  <rearnsha@arm.com>

	* config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Move
	commutative marker to the cons specification.
	(add<mode>3): Likewise.
	(@aarch64_pred_<su>abd<mode>): Likewise.
	(@aarch64_pred_<optab><mode>): Likewise.
	(*cond_<optab><mode>_z): Likewise.
	(<optab><mode>3): Likewise.
	(@aarch64_pred_<optab><mode>): Likewise.
	(*aarch64_pred_abd<mode>_relaxed): Likewise.
	(*aarch64_pred_abd<mode>_strict): Likewise.
	(@aarch64_pred_<optab><mode>): Likewise.
	(@aarch64_pred_<optab><mode>): Likewise.
	(@aarch64_pred_fma<mode>): Likewise.
	(@aarch64_pred_fnma<mode>): Likewise.
	(@aarch64_pred_<optab><mode>): Likewise.
	* config/aarch64/aarch64-sve2.md (@aarch64_sve_<su>clamp<mode>): Move
	commutative marker to the cons specification.
	(*aarch64_sve_<su>clamp<mode>_x): Likewise.
	(@aarch64_sve_fclamp<mode>): Likewise.
	(*aarch64_sve_fclamp<mode>_x): Likewise.
	(*aarch64_sve2_nor<mode>): Likewise.
	(*aarch64_sve2_nand<mode>): Likewise.
	(*aarch64_pred_faminmax_fused): Likewise.
	* config/aarch64/aarch64.md (*loadwb_pre_pair_<ldst_sz>): Move the
	early-clobber marker to the relevant alternative.
	(*storewb_pre_pair_<ldst_sz>): Likewise.
	(*add<mode>3_aarch64): Move commutative marker to the cons
	specification.
	(*addsi3_aarch64_uxtw): Likewise.
	(*add<mode>3_poly_1): Likewise.
	(add<mode>3_compare0): Likewise.
	(*addsi3_compare0_uxtw): Likewise.
	(*add<mode>3nr_compare0): Likewise.
	(<optab><mode>3): Likewise.
	(*<optab>si3_uxtw): Likewise.
	(*and<mode>3_compare0): Likewise.
	(*andsi3_compare0_uxtw): Likewise.
	(@aarch64_and<mode>3nr_compare0): Likewise.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/116352
	* tree-vect-slp.cc (vect_build_slp_tree_2): When compressing
	operands from a two-operator node make sure the resulting
	operation does not mix defs from different basic-blocks.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120043
	* tree-ssa-phiopt.cc (cond_store_replacement): Check
	whether the store is to readonly memory.

2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/116938
	* tree-ssa-phiopt.cc (move_stmt): Use rewrite_to_defined_overflow
	isntead of manually doing the rewrite of the VCE.

2025-05-08  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/120122
	PR tree-optimization/116939
	* gimple-fold.h (gimple_with_undefined_signed_overflow): Rename to ..
	(rewrite_to_defined_overflow): This.
	(gimple_needing_rewrite_undefined): Rename to ...
	(rewrite_to_defined_unconditional): this.
	* gimple-fold.cc (gimple_with_undefined_signed_overflow): Rename to ...
	(gimple_needing_rewrite_undefined): This. Return true for VCE with integral
	types of smaller precision.
	(rewrite_to_defined_overflow): Rename to ...
	(rewrite_to_defined_unconditional): This. Handle VCE rewriting to a cast.
	* tree-if-conv.cc: s/gimple_with_undefined_signed_overflow/gimple_needing_rewrite_undefined/
	s/rewrite_to_defined_overflow/rewrite_to_defined_unconditional.
	* tree-scalar-evolution.cc: Likewise
	* tree-ssa-ifcombine.cc: Likewise.
	* tree-ssa-loop-im.cc: Likewise.
	* tree-ssa-loop-split.cc: Likewise.
	* tree-ssa-reassoc.cc: Likewise.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR ipa/120146
	* tree-ssa-structalias.cc (create_variable_info_for): If
	the symtab cannot tell us whether all refs to a variable
	are explicit assume they are not.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119589
	PR tree-optimization/119586
	PR tree-optimization/119155
	* tree-vect-stmts.cc (vectorizable_store): Verify
	DR_STEP_ALIGNMENT preserves DR_TARGET_ALIGNMENT when
	VF > 1 and VMAT_STRIDED_SLP.  Use vector aligned accesses when
	we can.
	(vectorizable_load): Likewise.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120143
	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
	Move/update the original stmts, not the pattern stmts which
	lack virtual operands and are not in the IL.

2025-05-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120089
	* tree-vect-stmts.cc (vect_stmt_relevant_p): Mark all
	PHIs live when not already so and doing early-break
	vectorization.
	(vect_mark_stmts_to_be_vectorized): Skip virtual PHIs.
	* tree-vect-slp.cc (vect_analyze_slp): Robustify handling
	of early-break forced IVs.

2025-05-08  Pengxuan Zheng  <quic_pzheng@quicinc.com>

	* config/aarch64/aarch64-protos.h (aarch64_exact_log2_inverse): New.
	* config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
	Update pattern accordingly.
	* config/aarch64/aarch64.cc (aarch64_exact_log2_inverse): New.
	* simplify-rtx.cc (simplify_context::simplify_ternary_operation):
	Canonicalize vec_merge.

2025-05-07  Jeff Law  <jlaw@ventanamicro.com>

	PR target/120137
	PR target/120154
	* config/riscv/riscv-vect-permconst.cc (process_bb): Verify each
	canonicalized element fits into the vector element mode.

2025-05-07  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* common/config/riscv/riscv-common.cc: New extension.
	* config/riscv/riscv.opt: Ditto.

2025-05-07  Richard Earnshaw  <rearnsha@arm.com>

	PR target/91323
	* config/arm/arm.cc (arm_select_cc_mode): Use CCFPEmode for LTGT.

2025-05-07  Richard Earnshaw  <rearnsha@arm.com>

	PR target/110796
	PR target/118446
	* config/arm/arm.h (REVERSIBLE_CC_MODE): FP modes are only
	reversible if flag_finite_math_only.
	* config/arm/arm.cc (arm_select_cc_mode): Return CCFPmode for all
	FP comparisons if flag_finite_math_only.

2025-05-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/111276
	* gimple-fold.cc (arith_code_with_undefined_signed_overflow): Make static.
	(gimple_with_undefined_signed_overflow): New function.
	* gimple-fold.h (arith_code_with_undefined_signed_overflow): Remove.
	(gimple_with_undefined_signed_overflow): Add declaration.
	* tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Use
	gimple_with_undefined_signed_overflow instead of manually
	checking lhs and the code of the stmt.
	(predicate_statements): Likewise.
	* tree-ssa-ifcombine.cc (ifcombine_rewrite_to_defined_overflow): Likewise.
	* tree-ssa-loop-im.cc (move_computations_worker): Likewise.
	* tree-ssa-reassoc.cc (update_range_test): Likewise. Reformat.
	* tree-scalar-evolution.cc (final_value_replacement_loop): Use
	gimple_with_undefined_signed_overflow instead of
	arith_code_with_undefined_signed_overflow.
	* tree-ssa-loop-split.cc (split_loop): Likewise.

2025-05-07  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-loop-im.cc (compute_invariantness): Hoist to the always executed point
	if ignorning the cost.

2025-05-07  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add FLOAT_EXPR;
	FIX_TRUNC_EXPR and vec_promote_demote costs.

2025-05-07  Jennifer Schmitz  <jschmitz@nvidia.com>

	PR target/117978
	* config/aarch64/aarch64-protos.h: Declare
	aarch64_emit_load_store_through_mode and aarch64_sve_maskloadstore.
	* config/aarch64/aarch64-sve.md
	(maskload<mode><vpred>): New define_expand folding maskloads with
	certain predicate patterns to ASIMD loads.
	(*aarch64_maskload<mode><vpred>): Renamed from maskload<mode><vpred>.
	(maskstore<mode><vpred>): New define_expand folding maskstores with
	certain predicate patterns to ASIMD stores.
	(*aarch64_maskstore<mode><vpred>): Renamed from maskstore<mode><vpred>.
	* config/aarch64/aarch64.cc
	(aarch64_emit_load_store_through_mode): New function emitting a
	load/store through subregs of a given mode.
	(aarch64_emit_sve_pred_move): Refactor to use
	aarch64_emit_load_store_through_mode.
	(aarch64_expand_maskloadstore): New function to emit ASIMD loads/stores
	for maskloads/stores with SVE predicates with VL1, VL2, VL4, VL8, or
	VL16 patterns.
	(aarch64_partial_ptrue_length): New function returning number of leading
	set bits in a predicate.

2025-05-07  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-protos.h (s390_expand_cstoreti4): New
	function.
	* config/s390/s390.cc (s390_expand_cstoreti4): New function.
	* config/s390/s390.md (CC_SUZ): New mode iterator.
	(l): New mode attribute.
	(cc_tolower): New mode attribute.
	* config/s390/vector.md (cstoreti4): New expander.
	(*vec_cmpv2di_lane0_<cc_tolower>): New insn.
	(*vec_cmpti_<cc_tolower>): New insn.

2025-05-07  H.J. Lu  <hjl.tools@gmail.com>

	PR target/120036
	* config/i386/i386-features.cc (ix86_get_vector_load_mode):
	Handle 8/4/2 bytes.
	(remove_redundant_vector_load): If the mode size is smaller than
	its natural size, first insert an extra move with a QI vector
	SUBREG of the same size to avoid validate_subreg failure.

2025-05-07  hongtao.liu  <hongtao.liu@intel.com>

	PR gcov-profile/118508
	* auto-profile.cc
	(autofdo_source_profile::get_callsite_total_count): Fix name
	mismatch for fortran.

2025-05-07  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_equals_zero):
	Avoid generating unnecessary andi.  Fix formatting.

2025-05-06  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>

	* common/config/riscv/riscv-common.cc: New extension.

2025-05-06  Mingzhu Yan  <yanmingzhu@iscas.ac.cn>

	* common/config/riscv/riscv-common.cc (riscv_ext_version_table): New
	extension.
	(riscv_ext_flag_table) Ditto.
	* config/riscv/riscv.opt: New mask.
	* doc/invoke.texi (RISC-V Options): New extension

2025-05-06  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_rtx_costs): Cost FLOAT, UNSIGNED_FLOAT,
	FIX, UNSIGNED_FIX.
	* config/i386/i386.h (struct processor_costs): Add
	cvtsi2ss, cvtss2si, cvtpi2ps, cvtps2pi.
	* config/i386/x86-tune-costs.h (struct processor_costs): Update tables.

2025-05-06  Martin Jambor  <mjambor@suse.cz>

	PR ipa/119852
	* cgraph.h (cgraph_node::create_clone): Remove the default value of
	argument suffix.  Update function comment.
	* cgraphclones.cc (cgraph_node::create_clone): Update function comment.
	* ipa-inline-transform.cc (clone_inlined_nodes): Pass NULL to suffix
	of create_clone explicitely.
	* ipa-inline.cc (recursive_inlining): Likewise.
	* lto-cgraph.cc (input_node): Likewise.

2025-05-06  Martin Jambor  <mjambor@suse.cz>

	* cgraph.h (cgraph_node::create_version_clone_with_body): Fix function
	comment.  Change the name of clone_name to suffix, in line with the
	function definition.
	* cgraphclones.cc (cgraph_node::create_version_clone_with_body): Fix
	function comment.

2025-05-06  Martin Jambor  <mjambor@suse.cz>

	PR ipa/119852
	* cgraphclones.cc (dump_callgraph_transformation): Document the
	function.  Do not dump if suffix is NULL.

2025-05-06  Martin Jambor  <mjambor@suse.cz>

	* doc/invoke.texi (Developer Options): Document -fdump-ipa-clones.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	* selftest-diagnostic.cc (test_diagnostic_context::report): Use
	diagnostic_option_id rather than plain int.
	* selftest-diagnostic.h (test_diagnostic_context::report):
	Likewise.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	PR sarif-replay/117988
	* json.cc (json::pointer::token::token): New ctors.
	(json::pointer::token::~token): New.
	(json::pointer::token::operator=): New.
	(json::object::set): Set the value's m_pointer_token.
	(json::array::append): Likewise.
	* json.h (json::pointer::token): New struct.
	(json::value::get_pointer_token): New accessor.
	(json::value::m_pointer_token): New field.
	* libsarifreplay.cc (get_logical_location_kind_for_json_kind):
	New.
	(make_logical_location_from_jv): New.
	(sarif_replayer::report_problem): Set the logical location of the
	diagnostic.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-sarif.cc (maybe_get_sarif_kind): Add cases for
	new kinds of logical location.
	* doc/libgdiagnostics/topics/logical-locations.rst: Add new kinds
	of logical location for handling XML and JSON.
	* libgdiagnostics.cc (impl_logical_location_manager::get_kind):
	Add cases for new kinds of logical location.
	(diagnostic_text_sink::text_starter): Likewise, introducing a
	macro for this.
	(diagnostic_manager_debug_dump_logical_location): Likewise.
	* libgdiagnostics.h (enum diagnostic_logical_location_kind_t): Add
	new kinds of logical location for handling XML and JSON.
	* libsarifreplay.cc (handle_logical_location_object): Add entries
	to "kind_values" for decoding sarif logical location kinds
	relating to XML and JSON.
	* logical-location.h (enum logical_location_kind): Add new kinds
	of logical location for handling XML and JSON.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	PR other/116176
	* diagnostic-format-sarif.cc (class sarif_array_of_unique): New
	template.
	(class sarif_logical_location): Move here from
	diagnostic-format-sarif.h.
	(sarif_builder::m_cached_logical_locs): New.
	(sarif_builder::sarif_builder): Initialize it.
	(sarif_builder::set_any_logical_locs_arr): Call
	make_minimal_sarif_logical_location rather than
	make_sarif_logical_location_object.
	(sarif_property_bag::set_logical_location): Likewise.
	(make_sarif_logical_location_object): Replace with...
	(sarif_builder::ensure_sarif_logical_location_for): ...this.
	Capture "parentIndex" property.  Consolidate into
	theRuns.logicalLocations.
	(sarif_builder::make_minimal_sarif_logical_location): New.
	(sarif_builder::make_run_object): Add "index" properties to
	m_cached_logical_locs and move it to theRuns.logicalLocations.
	(selftest::test_sarif_array_of_unique_1): New.
	(selftest::test_sarif_array_of_unique_2): New.
	(selftest::diagnostic_format_sarif_cc_tests): Call the new
	selftests.
	* diagnostic-format-sarif.h (class sarif_logical_location): Move
	to diagnostic-format-sarif.cc.
	(make_sarif_logical_location_object): Drop decl.
	* json.cc (value::compare): New.
	(object::compare): New.
	(selftest::fail_comparison): New.
	(selftest::assert_json_equal): New.
	(ASSERT_JSON_EQ): New.
	(selftest::assert_json_non_equal): New.
	(ASSERT_JSON_NE): New.
	(selftest::test_comparisons): New.
	(selftest::json_cc_tests): Call the new selftest.
	* json.h (json::value::dyn_cast_object): New vfunc.
	(json::object::dyn_cast_object): New vfunc impl.
	(json::object::compare): New decl.
	* libgdiagnostics.cc
	(impl_logical_location_manager::get_parent): New.
	* logical-location.h (logical_location_manager::get_parent): New
	vfunc impl.
	* selftest-logical-location.h
	(test_logical_location_manager::get_parent): New vfunc impl.
	* tree-logical-location.cc (assert_valid_tree): New.
	(tree_logical_location_manager::get_short_name): Support types as
	well as decls.
	(tree_logical_location_manager::get_name_with_scope): Gracefully
	handle non-decl nodes.
	(tree_logical_location_manager::get_internal_name): Likewise.
	(tree_logical_location_manager::get_kind): Don't attempt to handle
	null nodes.  Handle NAMESPACE_DECL and RECORD_TYPE.
	(tree_logical_location_manager::get_name_for_path_output):
	Gracefully handle non-decl nodes.
	(tree_logical_location_manager::get_parent): New.
	* tree-logical-location.h
	(tree_logical_location_manager::get_parent): New vfunc impl.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-client-data-hooks.h: Include "logical-location.h".
	(diagnostic_client_data_hooks::get_logical_location_manager): New.
	(diagnostic_client_data_hooks::get_current_logical_location):
	Convert return type from const logical_location * to
	logical_location.
	* diagnostic-format-json.cc: Include
	"diagnostic-client-data-hooks.h".
	(make_json_for_path): Update to use logical_location_manager from
	the context.
	* diagnostic-format-sarif.cc
	(sarif_builder::get_logical_location_manager): New.
	(sarif_builder::make_location_object): Update type of logical_loc
	from "const logical_location *" to "logical_location".
	(sarif_builder::set_any_logical_locs_arr): Likewise.
	(sarif_builder::m_logical_loc_mgr): New field.
	(sarif_result::on_nested_diagnostic): Use logical_location default
	ctor rather than nullptr.
	(sarif_builder::sarif_builder): Initialize m_logical_loc_mgr from
	context's client data hooks.
	(sarif_builder::make_locations_arr): Convert type of logical_loc
	from from "const logical_location *" to "logical_location".
	(sarif_builder::set_any_logical_locs_arr): Likewise.  Pass manager
	to make_sarif_logical_location_object.
	(sarif_builder::make_location_object): Likewise.
	(sarif_property_bag::set_logical_location): New.
	(make_sarif_logical_location_object): Update for introduction of
	logical_location_manager.
	(populate_thread_flow_location_object): Pass builder to
	ev.maybe_add_sarif_properties.
	(selftest::test_make_location_object): Use logical_location
	default ctor rather than nullptr.
	* diagnostic-format-sarif.h (class logical_location): Replace
	forward decl with include of "logical-location.h".
	(class sarif_builder): New forward decl.
	(sarif_property_bag::set_logical_location): New.
	(make_sarif_logical_location_object): Add "mgr" param.
	* diagnostic-path.cc
	(diagnostic_path::get_first_event_in_a_function): Update for
	change of logical_location type.
	(per_thread_summary::per_thread_summary): Pass in
	"logical_loc_mgr".
	(per_thread_summary::m_logical_loc_mgr): New field.
	(event_range::m_logical_loc): Update for change of
	logical_location type.
	(path_summary::get_logical_location_manager): New accessor.
	(path_summary::m_logical_loc_mgr): New field.
	(path_summary::get_or_create_events_for_thread_id): Pass
	m_logical_loc_mgr to per_thread_summary ctor.
	(path_summary::path_summary): Initialize m_logical_loc_mgr.
	(thread_event_printer::print_swimlane_for_event_range): Add param
	"logical_loc_mgr".  Update for change in logical_loc type.
	(print_path_summary_as_text): Pass manager to
	thread_event_printer::print_swimlane_for_event_range.
	(diagnostic_text_output_format::print_path): Update for
	introduction of logical_location_manager.
	* diagnostic-path.h: Include "logical-location.h".
	(class sarif_builder): New forward decl.
	(diagnostic_event::get_logical_location): Convert return type from
	"const logical_location *" to "logical_location".
	(diagnostic_event::maybe_add_sarif_properties): Add sarif_builder
	param.
	(diagnostic_path::get_logical_location_manager): New accessor.
	(diagnostic_path::diagnostic_path): New ctor, taking manager.
	(diagnostic_path::m_logical_loc_mgr): New field.
	* diagnostic.cc
	(diagnostic_context::get_logical_location_manager): New.
	(logical_location::function_p): Convert to...
	(logical_location_manager::function_p): ...this.
	* diagnostic.h (class logical_location): Replace forward decl
	with...
	(class logical_location_manager): ...this.
	(diagnostic_context::get_logical_location_manager): New decl.
	* lazy-diagnostic-path.cc
	(selftest::test_lazy_path::test_lazy_path): Pass m_logical_loc_mgr
	to path ctor.
	(selftest::test_lazy_path::make_inner_path): Likewise.
	(selftest::test_lazy_path::m_logical_loc_mgr): New field.
	* lazy-diagnostic-path.h
	(lazy_diagnostic_path::lazy_diagnostic_path): New ctor.
	* libgdiagnostics.cc (struct diagnostic_logical_location): Convert
	from subclass of logical_location to a plain struct, dropping
	accessors.
	(class impl_logical_location_manager): New.
	(impl_diagnostic_client_data_hooks::get_logical_location_manager):
	New
	(impl_diagnostic_client_data_hooks::m_logical_location_manager):
	New field.
	(diagnostic_manager::get_logical_location_manager): New.
	(libgdiagnostics_path_event::get_logical_location): Reimplement.
	(diagnostic_execution_path::diagnostic_execution_path): Add
	logical_loc_mgr and pass to base class.
	(diagnostic_execution_path::same_function_p): Update for change to
	logical_location type.
	(diagnostic::add_execution_path): Pass logical_loc_mgr to path
	ctor.
	(impl_diagnostic_client_data_hooks::get_current_logical_location):
	Reimplement.
	(diagnostic_text_sink::text_starter): Reimplement printing of
	logical location.
	(diagnostic_manager::new_execution_path): Pass mgr to path ctor.
	(diagnostic_manager_debug_dump_logical_location): Update for
	changes to diagnostic_logical_location.
	(diagnostic_logical_location_get_kind): Likewise.
	(diagnostic_logical_location_get_parent): Likewise.
	(diagnostic_logical_location_get_short_name): Likewise.
	(diagnostic_logical_location_get_fully_qualified_name): Likewise.
	(diagnostic_logical_location_get_decorated_name): Likewise.
	* logical-location.h (class logical_location_manager): New.
	(class logical_location): Convert to typedef of
	logical_location_manager::key.
	* selftest-diagnostic-path.cc
	(selftest::test_diagnostic_path::test_diagnostic_path): Pass
	m_test_logical_loc_mgr to base ctor.
	(selftest::test_diagnostic_path::same_function_p): Use pointer
	comparison.
	(selftest::test_diagnostic_path::add_event): Use
	logical_location_from_funcname.
	(selftest::test_diagnostic_path::add_thread_event): Likewise.
	(selftest::test_diagnostic_path::logical_location_from_funcname):
	New.
	(selftest::test_diagnostic_event::test_diagnostic_event): Fix
	indentation.  Pass logical_location rather than const char *.
	* selftest-diagnostic-path.h
	(selftest::test_diagnostic_event::test_diagnostic_event):
	Likewise.
	(selftest::test_diagnostic_event::get_logical_location): Update
	for change to logical_location type.
	(selftest::test_diagnostic_event::get_function_name): Drop.
	(selftest::test_diagnostic_event::m_logical_loc): Convert from
	test_logical_location to logical_location.
	(selftest::test_diagnostic_path::logical_location_from_funcname):
	New.
	(selftest::test_diagnostic_path::m_test_logical_loc_mgr): New
	field.
	* selftest-logical-location.cc: Include "selftest.h".
	(selftest::test_logical_location::test_logical_location): Drop.
	(selftest::test_logical_location_manager::~test_logical_location_manager):
	New.
	(selftest::test_logical_location::get_short_name): Replace with...
	(selftest::test_logical_location_manager::get_short_name):
	...this.
	(selftest::test_logical_location::get_name_with_scope): Replace
	with...
	(selftest::test_logical_location_manager::get_name_with_scope):
	...this.
	(selftest::test_logical_location::get_internal_name): Replace
	with...
	(selftest::test_logical_location_manager::get_internal_name):
	...this.
	(selftest::test_logical_location::get_kind): Replace with...
	(selftest::test_logical_location_manager::get_kind): ...this.
	(selftest::test_logical_location::get_name_for_path_output):
	Replace with...
	(selftest::test_logical_location_manager::get_name_for_path_output):
	...this.
	(selftest::test_logical_location_manager::logical_location_from_funcname):
	New.
	(selftest::test_logical_location_manager::item_from_funcname):
	New.
	(selftest::selftest_logical_location_cc_tests): New.
	* selftest-logical-location.h (class test_logical_location):
	Replace with...
	(class test_logical_location_manager): ...this.
	* selftest-run-tests.cc (selftest::run_tests): Call
	selftest_logical_location_cc_tests.
	* selftest.h (selftest::selftest_logical_location_cc_tests): New
	decl.
	* simple-diagnostic-path.cc
	(simple_diagnostic_path::simple_diagnostic_path): Add
	"logical_loc_mgr" param and pass it to base ctor.
	(simple_diagnostic_event::simple_diagnostic_event): Update init of
	m_logical_loc.
	(selftest::test_intraprocedural_path): Update for changes to
	logical locations.
	* simple-diagnostic-path.h: Likewise.
	* tree-diagnostic-client-data-hooks.cc
	(compiler_data_hooks::get_logical_location_manger): New.
	(compiler_data_hooks::get_current_logical_location): Update.
	(compiler_data_hooks::m_current_fndecl_logical_loc): Replace
	with...
	(compiler_data_hooks::m_logical_location_manager): ...this.
	* tree-logical-location.cc
	(compiler_logical_location::get_short_name_for_tree): Replace
	with...
	(tree_logical_location_manager::get_short_name): ...this.
	(compiler_logical_location::get_name_with_scope_for_tree): Replace
	with...
	(tree_logical_location_manager::get_name_with_scope): ...this.
	(compiler_logical_location::get_internal_name_for_tree): Replace
	with...
	(tree_logical_location_manager::get_internal_name): ...this.
	(compiler_logical_location::get_kind_for_tree): Replace with...
	(tree_logical_location_manager::get_kind): ...this.
	(compiler_logical_location::get_name_for_tree_for_path_output):
	Replace with...
	(tree_logical_location_manager::get_name_for_path_output):
	...this.
	(tree_logical_location::get_short_name): Drop.
	(tree_logical_location::get_name_with_scope): Drop.
	(tree_logical_location::get_internal_name): Drop.
	(tree_logical_location::get_kind): Drop.
	(tree_logical_location::get_name_for_path_output): Drop.
	(current_fndecl_logical_location::get_short_name): Drop.
	(current_fndecl_logical_location::get_name_with_scope): Drop.
	(current_fndecl_logical_location::get_internal_name): Drop.
	(current_fndecl_logical_location::get_kind): Drop.
	(current_fndecl_logical_location::get_name_for_path_output): Drop.
	* tree-logical-location.h (class compiler_logical_location): Drop.
	(class tree_logical_location): Drop.
	(class current_fndecl_logical_location): Drop.
	(class tree_logical_location_manager): New.

2025-05-06  David Malcolm  <dmalcolm@redhat.com>

	* doc/libgdiagnostics/topics/compatibility.rst: New file, based
	on gcc/jit/docs/topics/compatibility.rst.
	* doc/libgdiagnostics/topics/index.rst: Add compatibility.rst.
	* doc/libgdiagnostics/topics/logical-locations.rst (Accessors):
	New section.
	* libgdiagnostics++.h (logical_location::operator bool): New.
	(logical_location::operator==): New.
	(logical_location::operator!=): New.
	(logical_location::get_kind): New.
	(logical_location::get_parent): New.
	(logical_location::get_short_name): New.
	(logical_location::get_fully_qualified_name): New.
	(logical_location::get_decorated_name): New.
	* libgdiagnostics.cc
	(diagnostic_logical_location::get_fully_qualified_name): New.
	(diagnostic_logical_location_get_kind): New entrypoint.
	(diagnostic_logical_location_get_parent): New entrypoint.
	(diagnostic_logical_location_get_short_name): New entrypoint.
	(diagnostic_logical_location_get_fully_qualified_name): New
	entrypoint.
	(diagnostic_logical_location_get_decorated_name): New entrypoint.
	* libgdiagnostics.h
	(LIBDIAGNOSTICS_HAVE_LOGICAL_LOCATION_ACCESSORS): New define.
	(diagnostic_logical_location_get_kind): New entrypoint.
	(diagnostic_logical_location_get_parent): New entrypoint.
	(diagnostic_logical_location_get_short_name): New entrypoint.
	(diagnostic_logical_location_get_fully_qualified_name): New
	entrypoint.
	(diagnostic_logical_location_get_decorated_name): New entrypoint.
	* libgdiagnostics.map (LIBGDIAGNOSTICS_ABI_1): New.

2025-05-06  Shreya Munnangi  <smunnangi1@ventanamicro.com>

	PR middle-end/114512
	* config/riscv/bitmanip.md (bext* patterns): New patterns for
	bext recognition plus splitter for extracting variable bit from
	a constant.
	* config/riscv/predicates.md (bitpos_mask_operand): New predicate.

2025-05-06  Pan Li  <pan2.li@intel.com>

	* config/riscv/autovec-opt.md (*<optab>_vx_<mode>): Add new
	combine to convert vec_duplicate + vadd.vv to vaddvx on GR2VR
	cost.
	* config/riscv/riscv.cc (riscv_rtx_costs): Take care of the cost
	when vec_dup and vadd v, vec_dup(x).
	* config/riscv/vector-iterators.md: Add new iterator for vx.

2025-05-06  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-protos.h (get_gr2vr_cost): Add new decl to
	get the cost of gr2vr.
	* config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
	Leverage the helper function to get the cost of gr2vr.
	* config/riscv/riscv.cc (riscv_register_move_cost): Ditto.
	(riscv_builtin_vectorization_cost): Ditto.
	(get_gr2vr_cost): Add new impl of the helper function.

2025-05-06  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-opts.h (RVV_GR2VR_COST_UNPROVIDED): Add
	new macro to indicate the param is not provided.
	* config/riscv/riscv.opt: Add new option --pararm=gpr2vr-cost.

2025-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/1157777
	* tree-vectorizer.h (_slp_tree::avoid_stlf_fail): New member.
	* tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize it.
	(vect_print_slp_tree): Dump it.
	* tree-vect-data-refs.cc (vect_slp_analyze_instance_dependence):
	For dataflow dependent loads of a store check whether there's
	a cross-iteration data dependence that for sure prohibits
	store-to-load forwarding and mark involved loads.
	* tree-vect-stmts.cc (get_group_load_store_type): For avoid_stlf_fail
	marked loads use VMAT_ELEMENTWISE.

2025-05-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/120074
	* gimple-fold.cc (fold_truth_andor_for_ifcombine): For
	lsignbit && l_xor case, punt if ll_bitsize != lr_bitsize.  Similarly
	for rsignbit && r_xor case, punt if rl_bitsize != rr_bitsize.
	Formatting fix.

2025-05-06  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_tls_index): Add ifdef.

2025-05-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120031
	* match.pd ((nop_outer_cast)-(inner_cast)var -> -(outer_cast)(var)):
	Allow inner conversions that are not widenings when the outer
	type is unsigned.

2025-05-06  LIU Hao  <lh_mouse@126.com>

	PR pch/14940
	* config/i386/host-mingw32.cc (mingw32_gt_pch_use_address):
	Replace the loop that attempted to map the PCH only to its
	original address with more adaptive operations

2025-05-06  Julian Waters  <tanksherman27@gmail.com>
	    Eric Botcazou  <botcazou@adacore.com>
	    Uroš Bizjak  <ubizjak@gmail.com>
	    Liu Hao  <lh_mouse@126.com>

	* config/i386/i386.cc (ix86_legitimate_constant_p): Handle new UNSPEC.
	(legitimate_pic_operand_p): Handle new UNSPEC.
	(legitimate_pic_address_disp_p): Handle new UNSPEC.
	(ix86_legitimate_address_p): Handle new UNSPEC.
	(ix86_tls_index_symbol): New symbol for _tls_index.
	(ix86_tls_index): Handle creation of _tls_index symbol.
	(legitimize_tls_address): Create thread local access sequence.
	(output_pic_addr_const): Handle new UNSPEC.
	(i386_output_dwarf_dtprel): Handle new UNSPEC.
	(i386_asm_output_addr_const_extra): Handle new UNSPEC.
	* config/i386/i386.h (TARGET_WIN32_TLS): Define.
	* config/i386/i386.md: New UNSPEC.
	* config/i386/predicates.md: Handle new UNSPEC.
	* config/mingw/mingw32.h (TARGET_WIN32_TLS): Define.
	(TARGET_ASM_SELECT_SECTION): Define.
	(DEFAULT_TLS_SEG_REG): Define.
	* config/mingw/winnt.cc (mingw_pe_select_section): Select proper TLS section.
	(mingw_pe_unique_section): Handle TLS section.
	* config/mingw/winnt.h (mingw_pe_select_section): Declare.
	* configure: Regenerate.
	* configure.ac: New check for broken linker thread local support

2025-05-05  Jeff Law  <jlaw@ventanamicro.com>

	PR target/119971
	* config/riscv/bitmanip.md (rotation with masked count): Rewrite
	as define_insn patterns.  Fix formatting.
	* config/riscv/riscv.md (shift with masked count): Similarly.

2025-05-05  Uros Bizjak  <ubizjak@gmail.com>
	    Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	PR target/120019
	* config/i386/i386.cc (ix86_print_operand): Handle 'v' operand
	modifier to emit segment override prefix.
	* config/i386/i386.md (*strmovdi_rex_1): Use %v operand modifier
	to emit segment override prefix.
	(*strmovsi_1): Ditto.
	(*strmovhi_1): Ditto.
	(*strmovqi_1): Ditto.
	(*rep_movdi_rex64): Ditto.
	(*rep_movsi): Ditto.
	(*rep_movqi): Ditto.

2025-05-05  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/120048
	* ipa-cp.cc (ipcp_store_vr_results): Check for UNDEFINED.

2025-05-05  Kyle Huey  <khuey@kylehuey.com>

	* dwarf2out.cc (resolve_addr_in_expr): Propagate dtprel into the address
	table when appropriate.

2025-05-05  Simon Martin  <simon@nasilyan.com>

	PR c++/118163
	PR c++/118392
	* diagnostic.cc (diagnostic_context::initialize): Initialize
	m_diagnostic_groups.m_inhibiting_notes_from.
	(diagnostic_context::inhibit_notes_in_group): New.
	(diagnostic_context::notes_inhibited_in_group): New
	(diagnostic_context::report_diagnostic): Call
	inhibit_notes_in_group and notes_inhibited_in_group.
	(diagnostic_context::end_group): Call inhibit_notes_in_group.
	(diagnostic_context::pop_nesting_level): Ditto.
	* diagnostic.h (diagnostic_context::m_diagnostic_groups): Add
	member to track the depth at which a warning has been inhibited.
	(diagnostic_context::notes_inhibited_in_group): Declare.
	(diagnostic_context::inhibit_notes_in_group): Declare.
	* doc/ux.texi: Document diagnostic_group behavior with regards
	to inhibited warnings.

2025-05-05  Jakub Jelinek  <jakub@redhat.com>

	* config/i386/i386.md (truncsfbf2): Fix comment typo,
	unsafte -> unsafe.

2025-05-05  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/genrvv-type-indexer.cc: Apply clang-format to the
	file.

2025-05-04  Jeff Law  <jlaw@ventanamicro.com>

	* config.gcc (riscv): Add riscv-vect-permcost.o to extra_objs.
	* config/riscv/riscv-passes.def (pass_vector_permcost): Add new pass.
	* config/riscv/riscv-protos.h (make_pass_vector_permconst): Declare.
	* config/riscv/riscv-vect-permconst.cc: New file.
	* config/riscv/t-riscv: Add build rule for riscv-vect-permcost.o

2025-05-04  Jin Ma  <jinma@linux.alibaba.com>
	    Dimitar Dimitrov  <dimitar@dinux.eu>

	* config/riscv/riscv.cc (riscv_print_operand): Add H.
	* doc/extend.texi: Document for H.

2025-05-04  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_register_move_cost): Handle
	subclasses with vector registers as well.

2025-05-04  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119900
	* cgraph.cc (cgraph_edge::maybe_hot_p): Add
	a variant accepting a sreal scale; use reliability of
	profile.
	* cgraph.h (cgraph_edge::maybe_hot_p): Declare
	a varaint accepting a sreal scale.
	* ipa-inline.cc (callee_speedup): New function.
	(want_inline_small_function_p): add early return
	and avoid duplicated lookup of summaries; use scaled
	maybe_hot predicate.

2025-05-04  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv.cc (riscv_emit_frm_mode_set): Refactor
	the frm mode set by removing fsrmsi_restore_volatile.
	* config/riscv/vector-iterators.md (unspecv): Remove as
	unnecessary.
	* config/riscv/vector.md (fsrmsi_restore_volatile): Ditto.

2025-05-03  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (unspec_pcmp_p): New function.
	(ix86_rtx_costs): Cost VEC_MERGE more realistically.

2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/120059
	* simplify-rtx.cc (simplify_with_subreg_not): Check the result
	of simplify_gen_subreg.

2025-05-02  Jakub Jelinek  <jakub@redhat.com>
	    Andrew MacLeod  <amacleod@redhat.com>

	PR c/117023
	* gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
	For nonnull_if_nonzero attribute check also arg2 range if it doesn't
	include zero and in that case call add_nonzero too.

2025-05-02  Jeff Law  <jlaw@ventanamicro.com>

	Revert:
	2025-04-21  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.cc (mips_option_override): Error out for
	-mmicromips -mmsa.

2025-05-02  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119900
	* config/i386/i386.cc (ix86_can_change_mode_class): Add TODO
	comment.
	(ix86_rtx_costs): Make VEC_SELECT equivalent to SUBREG cost 1.

2025-05-02  Jason Merrill  <jason@redhat.com>

	PR c++/120012
	* doc/invoke.texi: Document C++20 aggregate fix.
	* common.opt: Likewise.

2025-05-02  Jason Merrill  <jason@redhat.com>

	PR c++/60336
	* config/i386/i386.cc (ix86_warn_parameter_passing_abi):
	If no target, check the current TU.

2025-05-02  Richard Biener  <rguenther@suse.de>

	* config/arc/arc.cc (TARGET_LRA_P): Remove define.
	* config/gcn/gcn.cc (TARGET_LRA_P): Likewise.

2025-05-02  Filip Kastl  <fkastl@suse.cz>

	PR middle-end/117091
	* tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement):
	Remove warning about using different algorithms.

2025-05-02  Filip Kastl  <fkastl@suse.cz>

	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
	Modify the dynamic programming algorithm to take is_beneficial()
	into account earlier.  To do this efficiently, copy some logic
	from is_beneficial() here.  Add detailed comments about how the
	DP algorithm works.
	(bit_test_cluster::can_be_handled): Check that the cluster range
	is >, not >= BITS_IN_WORD.  Remove the
	"vec<cluster *> &, unsigned, unsigned" overloaded variant since
	we no longer need it.
	(bit_test_cluster::is_beneficial): Add a comment that this
	function is closely tied to m_max_case_bit_tests.  Remove the
	"vec<cluster *> &, unsigned, unsigned" overloaded variant since
	we no longer need it.
	* tree-switch-conversion.h: Remove the vec overloaded variants
	of bit_test_cluster::is_beneficial and
	bit_test_cluster::can_be_handled.

2025-05-02  Filip Kastl  <fkastl@suse.cz>

	PR middle-end/117091
	* tree-switch-conversion.cc (bit_test_cluster::find_bit_tests_fast):
	Remove function.
	(bit_test_cluster::find_bit_tests_slow): Remove function.
	(bit_test_cluster::find_bit_tests): We don't need to decide
	between slow and fast so just put the modified (no longer) slow
	algorithm here.

2025-05-02  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64-sve.md (vec_extract<mode><Vel>):
	Prevent the emission of pfalse+lastb for VLS.

2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118617
	* tree-vect-generic.cc (expand_vector_conversion): Have 2 elements
	as internal storage for converts.
	* tree-vect-stmts.cc (vectorizable_conversion): Likewise.

2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118659
	* tree-ssanames.cc (get_known_nonzero_bits_1): Use
	wi::bit_and_not instead of `a & ~b`.

2025-05-02  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/118090
	* ccmp.cc (get_compare_parts): Remove the up argument.
	(expand_ccmp_next): Update call to get_compare_parts.
	(expand_ccmp_expr_1): Likewise.

2025-05-02  Richard Biener  <rguenther@suse.de>

	* common.opt.urls: Regenerate.

2025-05-01  Jason Merrill  <jason@redhat.com>

	* doc/invoke.texi: Add -fabi-version detail.
	* common.opt: Likewise.

2025-05-01  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-ssa-phiopt.cc (phiopt_early_allow): Only allow a sequence
	with one statement for MIN/MAX and the op was MIN/MAX.

2025-05-01  Ayan Shafqat  <ayan.x.shafqat@gmail.com>

	* config/aarch64/arm_acle.h (__sqrt, __sqrtf): New function.

2025-05-01  Ayan Shafqat  <ayan.x.shafqat@gmail.com>

	* config/aarch64/aarch64-simd-builtins.def: Change
	BUILTIN_VHSDF_DF to BUILTIN_VHSDF_HSDF.

2025-05-01  Jason Merrill  <jason@redhat.com>

	PR c++/119162
	* fold-const.cc (maybe_nonzero_address): Return 1 for non-symtab
	vars if folding_cxx_constexpr.

2025-05-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-stmts.cc (vectorizable_conversion): Remove non-SLP
	paths.

2025-05-01  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_remove_slp_scalar_calls): Look
	at the original stmt.

2025-05-01  Jakub Jelinek  <jakub@redhat.com>

	* combine.cc (try_combine): Sets which satisfy set_noop_p can go
	to i2 unless i3 is a jump and the other set is not.

2025-04-30  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/120042
	* tree-vectorizer.h: Include dominance.h.

2025-04-30  David Malcolm  <dmalcolm@redhat.com>

	* prime-paths.cc (limit_checked_add): Remove redundant trailing
	';'.
	(enters_through_p): Likewise.

2025-04-30  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-sarif.cc
	(sarif_serialization_format_json::write_to_file): New.
	(sarif_builder::m_formatted): Replace field with...
	(sarif_builder::m_serialization_format): ...this.
	(sarif_builder::sarif_builder): Update for field change.
	(sarif_builder::flush_to_file): Call m_serialization_format's
	write_to_file vfunc.
	(sarif_output_format::sarif_output_format): Replace param
	"formatted" with "serialization_format".
	(sarif_stream_output_format::sarif_output_format): Likewise.
	(sarif_file_output_format::sarif_file_output_format): Likewise.
	(diagnostic_output_format_init_sarif_stderr): Make a
	sarif_serialization_format_json and pass it to
	diagnostic_output_format_init_sarif.
	(diagnostic_output_format_open_sarif_file): Split out into...
	(diagnostic_output_file::try_to_open): ...this, adding
	"serialization_kind" param.
	(diagnostic_output_format_init_sarif_file): Update for new param
	to diagnostic_output_format_open_sarif_file.  Make a
	sarif_serialization_format_json and pass it to
	diagnostic_output_format_init_sarif.
	(diagnostic_output_format_init_sarif_stream): Make a
	sarif_serialization_format_json and pass it to
	diagnostic_output_format_init_sarif.
	(make_sarif_sink): Replace param "formatted" with "serialization".
	(selftest::test_make_location_object): Update for changes to
	sarif_builder ctor.
	* diagnostic-format-sarif.h (enum class sarif_serialization): New.
	(diagnostic_output_format_open_sarif_file): Add param
	"serialization_kind".
	(class sarif_serialization_format): New.
	(class sarif_serialization_format_json): New.
	(make_sarif_sink): Replace param "formatted" with
	"serialization_format".
	* diagnostic-output-file.h (diagnostic_output_file::try_to_open):
	New decl.
	* diagnostic.h (enum diagnostics_output_format): Tweak comments.
	* doc/invoke.texi (-fdiagnostics-add-output): Add "serialization"
	param to sarif scheme.
	* libgdiagnostics.cc (sarif_sink::sarif_sink): Update for change
	to make_sarif_sink.
	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Add
	"serialization" param and pass it on to make_sarif_sink.

2025-04-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119960
	* tree-vect-slp.cc (vect_schedule_slp_node): Sanity
	check dominance check on operand defs.

2025-04-30  Richard Biener  <rguenther@suse.de>

	Revert:
	2025-04-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119960
	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
	Handle cases where defs from multiple BBs are ordered
	by their dominance relation.

2025-04-30  Richard Biener  <rguenther@suse.de>

	* tree-vectorizer.h (get_later_stmt): Robustify against
	stmts in different BBs, assert when they are unordered.

2025-04-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119960
	* tree-vect-slp.cc (vect_slp_can_convert_to_external):
	Handle cases where defs from multiple BBs are ordered
	by their dominance relation.

2025-04-30  Richard Biener  <rguenther@suse.de>

	PR ipa/120006
	* tree-ssa-structalias.cc (find_func_clobbers): Handle
	strdup, strndup, realloc, index, strchr, strrchr, memchr,
	strstr, strpbrk builtins like find_func_aliases does.

2025-04-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/120003
	* tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
	Allow block re-use but do not enlarge the path beyond such a
	re-use.

2025-04-30  Georg-Johann Lay  <avr@gjlay.de>

	Backported from master:
	2025-04-30  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (xload_<mode>_libgcc): Clobber R21, Z.

2025-04-30  Kito Cheng  <kito.cheng@sifive.com>

	PR target/119832
	* config/riscv/riscv.cc (riscv_dynamic_frm_mode_p): New.
	(riscv_mode_confluence): New.
	(TARGET_MODE_CONFLUENCE): Define to riscv_mode_confluence.

2025-04-30  Jerry Zhang Jian  <jerry.zhangjian@sifive.com>

	* common/config/riscv/riscv-common.cc: Add Zve32x depends on Zicsr

2025-04-30  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64.cc (aarch64_emit_sve_pred_move):
	Fold LD1/ST1 with ptrue to LDR/STR for 128-bit VLS.

2025-04-30  yulong  <shiyulong@iscas.ac.cn>

	* config/riscv/constraints.md (Ou01): New constraint.
	(Ou02): Ditto.
	* config/riscv/generic-vector-ooo.md (vec_sf_vcp): New reservation.
	* config/riscv/genrvv-type-indexer.cc (main): New type.
	* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Add xsfvcp strings.
	* config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vcix_se_def):
	New function.
	(struct sf_vcix_def): Ditto.
	(SHAPE): Ditto.
	* config/riscv/riscv-vector-builtins-shapes.h: Ditto.
	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_X2_U_OPS): New type.
	(DEF_RVV_X2_WU_OPS): Ditto.
	(vuint8mf8_t): Ditto.
	(vuint8mf4_t): Ditto.
	(vuint8mf2_t): Ditto.
	(vuint8m1_t): Ditto.
	(vuint8m2_t): Ditto.
	(vuint8m4_t): Ditto.
	(vuint16mf4_t): Ditto.
	(vuint16mf2_t): Ditto.
	(vuint16m1_t): Ditto.
	(vuint16m2_t): Ditto.
	(vuint16m4_t): Ditto.
	(vuint32mf2_t): Ditto.
	(vuint32m1_t): Ditto.
	(vuint32m2_t): Ditto.
	(vuint32m4_t): Ditto.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_X2_U_OPS): New builtins
	def.
	(DEF_RVV_X2_WU_OPS): Ditto.
	(rvv_arg_type_info::get_scalar_float_type): Ditto.
	(function_instance::modifies_global_state_p): Ditto.
	* config/riscv/riscv-vector-builtins.def (v_x): New base type.
	(i): Ditto.
	(v_i): Ditto.
	(xv): Ditto.
	(iv): Ditto.
	(fv): Ditto.
	(vvv): Ditto.
	(xvv): Ditto.
	(ivv): Ditto.
	(fvv): Ditto.
	(vvw): Ditto.
	(xvw): Ditto.
	(ivw): Ditto.
	(fvw): Ditto.
	(v_vv): Ditto.
	(v_xv): Ditto.
	(v_iv): Ditto.
	(v_fv): Ditto.
	(v_vvv): Ditto.
	(v_xvv): Ditto.
	(v_ivv): Ditto.
	(v_fvv): Ditto.
	(v_vvw): Ditto.
	(v_xvw): Ditto.
	(v_ivw): Ditto.
	(v_fvw): Ditto.
	(x2_vector): Ditto.
	(scalar_float): Ditto.
	* config/riscv/riscv-vector-builtins.h (enum required_ext): New extension.
	(required_ext_to_isa_name): Ditto.
	(required_extensions_specified): Ditto.
	(struct rvv_arg_type_info): Ditto.
	(struct function_group_info): Ditto.
	* config/riscv/riscv.md: New attr.
	* config/riscv/sifive-vector-builtins-bases.cc (class sf_vc): New function.
	(BASE): New base_name.
	* config/riscv/sifive-vector-builtins-bases.h: New function_base.
	* config/riscv/sifive-vector-builtins-functions.def
	(REQUIRED_EXTENSIONS): New intrinsics def.
	(sf_vc): Ditto.
	* config/riscv/sifive-vector.md (@sf_vc_x_se<mode>): New RTL mode.
	(@sf_vc_v_x_se<mode>): Ditto.
	(@sf_vc_v_x<mode>): Ditto.
	(@sf_vc_i_se<mode>): Ditto.
	(@sf_vc_v_i_se<mode>): Ditto.
	(@sf_vc_v_i<mode>): Ditto.
	(@sf_vc_vv_se<mode>): Ditto.
	(@sf_vc_v_vv_se<mode>): Ditto.
	(@sf_vc_v_vv<mode>): Ditto.
	(@sf_vc_xv_se<mode>): Ditto.
	(@sf_vc_v_xv_se<mode>): Ditto.
	(@sf_vc_v_xv<mode>): Ditto.
	(@sf_vc_iv_se<mode>): Ditto.
	(@sf_vc_v_iv_se<mode>): Ditto.
	(@sf_vc_v_iv<mode>): Ditto.
	(@sf_vc_fv_se<mode>): Ditto.
	(@sf_vc_v_fv_se<mode>): Ditto.
	(@sf_vc_v_fv<mode>): Ditto.
	(@sf_vc_vvv_se<mode>): Ditto.
	(@sf_vc_v_vvv_se<mode>): Ditto.
	(@sf_vc_v_vvv<mode>): Ditto.
	(@sf_vc_xvv_se<mode>): Ditto.
	(@sf_vc_v_xvv_se<mode>): Ditto.
	(@sf_vc_v_xvv<mode>): Ditto.
	(@sf_vc_ivv_se<mode>): Ditto.
	(@sf_vc_v_ivv_se<mode>): Ditto.
	(@sf_vc_v_ivv<mode>): Ditto.
	(@sf_vc_fvv_se<mode>): Ditto.
	(@sf_vc_v_fvv_se<mode>): Ditto.
	(@sf_vc_v_fvv<mode>): Ditto.
	(@sf_vc_vvw_se<mode>): Ditto.
	(@sf_vc_v_vvw_se<mode>): Ditto.
	(@sf_vc_v_vvw<mode>): Ditto.
	(@sf_vc_xvw_se<mode>): Ditto.
	(@sf_vc_v_xvw_se<mode>): Ditto.
	(@sf_vc_v_xvw<mode>): Ditto.
	(@sf_vc_ivw_se<mode>): Ditto.
	(@sf_vc_v_ivw_se<mode>): Ditto.
	(@sf_vc_v_ivw<mode>): Ditto.
	(@sf_vc_fvw_se<mode>): Ditto.
	(@sf_vc_v_fvw_se<mode>): Ditto.
	(@sf_vc_v_fvw<mode>): Ditto.
	* config/riscv/vector-iterators.md: New iterator.
	* config/riscv/vector.md: New vtype.

2025-04-29  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (cs_interesting_for_ipcp_p): Fix handling of uninitialized
	counts and 0 IPA cost wrt flag_profile_partial_training.

2025-04-29  Pengfei Li  <Pengfei.Li2@arm.com>

	* simplify-rtx.cc (non_paradoxical_subreg_not_p): New function
	for pattern match of (subreg (not X)).
	(simplify_with_subreg_not): New function for simplification.

2025-04-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/111657
	* config/i386/i386-expand.cc (alg_usable_p): For Pmode != word_mode
	reject rep_prefix_{1,4,8}_byte algorithms with src_as in the
	non-default address space.
	* config/i386/i386-protos.h (ix86_check_movs): New prototype.
	* config/i386/i386.cc (ix86_check_movs): New function.
	(ix86_print_operand) [case '^']: Remove excess check for TARGET_64BIT.
	* config/i386/i386.md (strmov): For Pmode != word_mode expand with
	gen_strmov_single only when operands[3] (source) is in the default
	address space.
	(*strmovdi_rex_1) Use ix86_check_movs.  Remove %^ from asm template.
	(*strmovsi_1): Ditto.
	(*strmovhi_1): DItto.
	(*strmovqi_1): Ditto.
	(*rep_movdi_rex64): Ditto.
	(*rep_movsi): Ditto.
	(*rep_movqi): Ditto.

2025-04-29  Zhijin Zeng  <zengzhijin@linux.spacemit.com>

	* config/riscv/riscv.cc (riscv_register_move_cost): Use
	reg_class_subset_p to check the reg class.

2025-04-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119997
	* vec.h (vec<T, A, vl_embed>::last): Provide const overload.
	(vec<T, va_heap, vl_ptr>::last): Likewise.
	* tree-ssa-sccvn.h (vn_pp_nary_for_addr): Declare.
	* tree-ssa-sccvn.cc (vn_pp_nary_for_addr): Split out from ...
	(vn_reference_lookup): ... here.
	(vn_reference_insert): ... and duplicate here.  Do not handle
	zero offset as POINTER_PLUS_EXPR.
	* tree-ssa-pre.cc (compute_avail): Implement
	ADDR_EXPR-as-POINTER_PLUS_EXPR special casing.

2025-04-29  Uros Bizjak  <ubizjak@gmail.com>

	PR target/111657
	* config/i386/i386-expand.cc (alg_usable_p): Remove have_as bool
	argument and add dst_as and src_as address space arguments.  Reject
	libcall algorithm with dst_as and src_as in the non-default address
	spaces.  Reject rep_prefix_{1,4,8}_byte algorithms with dst_as in
	the non-default address space.
	(decide_alg): Remove have_as bool argument and add dst_as and src_as
	address space arguments.  Update calls to alg_usable_p.
	(ix86_expand_set_or_cpymem): Update call to decide_alg.
	* config/i386/i386.md (strmov): Do not fail if operand[3] (source)
	is in the non-default address space.  Expand with gen_strmov_singleop
	only when operand[1] (destination) is in the default address space.
	(*strmovdi_rex_1): Determine memory operands from insn pattern.
	Allow only when destination is in the default address space.
	Rewrite asm template to use explicit operands.
	(*strmovsi_1): Ditto.
	(*strmovhi_1): DItto.
	(*strmovqi_1): Ditto.
	(*rep_movdi_rex64): Ditto.
	(*rep_movsi): Ditto.
	(*rep_movqi): Ditto.
	(*strsetdi_rex_1): Determine memory operands from insn pattern.
	Allow only when destination is in the default address space.
	(*strsetsi_1): Ditto.
	(*strsethi_1): Ditto.
	(*strsetqi_1): Ditto.
	(*rep_stosdi_rex64): Ditto.
	(*rep_stossi): Ditto.
	(*rep_stosqi): Ditto.

2025-04-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/119985
	* target.def: Remove TARGET_PROMOTE_FUNCTION_RETURN reference.
	* doc/tm.texi: Regenerated.

2025-04-29  hongtao.liu  <hongtao.liu@intel.com>

	PR gcov-profile/118581
	* auto-profile.cc (autofdo_source_profile::get_count_info):
	Overload the function with parameter gimple location instead
	of stmt.
	(afdo_set_bb_count): For !has_annotated BB, Check single
	successors PHIs corresponding to the block and use those
	count.

2025-04-29  Richard Biener  <rguenther@suse.de>

	PR debug/78685
	* doc/invoke.texi (-Og): Reword.

2025-04-29  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.cc (ix86_update_stack_alignment): Skip sub-RTXes
	of the memory operand if stack access register is not mentioned in
	the operand.

2025-04-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/92080
	PR target/117839
	* config/i386/i386-features.cc (ix86_place_single_vector_set):
	New function.
	(remove_partial_avx_dependency): Use it.
	(ix86_get_vector_load_mode): New function.
	(replace_vector_const): Likewise.
	(remove_redundant_vector_load): Likewise.
	(pass_data_remove_redundant_vector_load): Likewise.
	(pass_remove_redundant_vector_load): Likewise.
	(make_pass_remove_redundant_vector_load): Likewise.
	* config/i386/i386-passes.def: Add
	pass_remove_redundant_vector_load after
	pass_remove_partial_avx_dependency.
	* config/i386/i386-protos.h
	(make_pass_remove_redundant_vector_load): New.
	* config/i386/i386.cc (ix86_modes_tieable_p): Return true for
	narrower non-scalar-integer modes in SSE registers.

2025-04-29  H.J. Lu  <hjl.tools@gmail.com>

	PR target/117547
	* config/i386/i386-expand.cc (ix86_expand_unsigned_small_int_cst_argument):
	New function.
	(ix86_expand_args_builtin): Call
	ix86_expand_unsigned_small_int_cst_argument to expand the argument
	before calling fixup_modeless_constant.
	(ix86_expand_round_builtin): Likewise.
	(ix86_expand_special_args_builtin): Likewise.
	(ix86_expand_builtin): Likewise.

2025-04-29  liuhongt  <hongtao.liu@intel.com>

	* config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC):
	Remove other processor except for GLC since this one is only
	for GLC.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	PR analyzer/97111
	* doc/invoke.texi: Add -Wanalyzer-throw-of-unexpected-type.
	* gimple.h (gimple_call_nothrow_p): Make arg const.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-json.cc: Drop include of "make-unique.h".
	Replace uses of ::make_unique with std::make_unique.
	* diagnostic-format-sarif.cc: Likewise.
	* diagnostic-format-text.cc: Likewise.
	* diagnostic.cc: Likewise.
	* dumpfile.cc: Likewise.
	* gcc-attribute-urlifier.cc: Likewise.
	* gcc-urlifier.cc: Likewise.
	* json-parsing.cc: Likewise.
	* json.cc: Likewise.
	* lazy-diagnostic-path.cc: Likewise.
	* libgdiagnostics.cc: Likewise.
	* libsarifreplay.cc: Likewise.
	* lto-wrapper.cc: Likewise.
	* make-unique.h: Delete.
	* opts-diagnostic.cc: Drop include of "make-unique.h".
	Replace uses of ::make_unique with std::make_unique.
	* pretty-print.cc: Likewise.
	* text-art/style.cc: Likewise.
	* text-art/styled-string.cc: Likewise.
	* text-art/table.cc: Likewise.
	* text-art/tree-widget.cc: Likewise.
	* text-art/widget.cc: Likewise.
	* timevar.cc: Likewise.
	* toplev.cc: Likewise.
	* tree-diagnostic-client-data-hooks.cc: Likewise.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* pass_manager.h (class pass_manager): Add "m_" prefix to all pass
	fields.
	* passes.cc (pass_manager::execute_early_local_passes): Update
	for added "m_" prefix.
	(pass_manager::execute_pass_mode_switching): Likewise.
	(pass_manager::finish_optimization_passes): Likewise.
	(pass_manager::pass_manager): Likewise.
	(pass_manager::dump_profile_report): Likewise.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostic_context::m_opt_permissive): Convert
	from int to diagnostic_option_id.  Update comment.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic.h (diagnostic_context::set_abort_on_error): New.
	(diagnostic_context::m_abort_on_error): Make private.
	(diagnostic_abort_on_error): Delete.
	* opts.cc (setup_core_dumping): Update for above changes.

2025-04-28  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-format-sarif.cc (sarif_builder::get_opts): New
	accessor.
	(sarif_builder::get_version): Update for...
	(sarif_builder::m_version): Replace this field...
	(sarif_builder::m_m_sarif_gen_opts): ...with this.
	(sarif_builder::sarif_builder): Replace version with
	sarif_gen_opts throughout.
	(sarif_builder::make_top_level_object): Use get_version.
	(sarif_output_format::sarif_output_format): Replace version with
	sarif_gen_opts throughout.
	(sarif_stream_output_format::sarif_stream_output_format):
	Likewise.
	(sarif_file_output_format::sarif_file_output_format): Likewise.
	(diagnostic_output_format_init_sarif_stderr): Drop version param
	and use default for sarif_generation_options instead.
	(diagnostic_output_format_init_sarif_file): Likewise.
	(diagnostic_output_format_init_sarif_stream): Likewise.
	(make_sarif_sink): Replace version with sarif_gen_opts throughout.
	(sarif_generation_options::sarif_generation_options): New.
	(selftest::test_sarif_diagnostic_context::test_sarif_diagnostic_context):
	Replace version with sarif_gen_opts throughout.
	(selftest::test_make_location_object): Likewise.
	(selftest::test_simple_log): Likewise.
	(selftest::test_simple_log_2): Likewise.
	(selftest::test_message_with_embedded_link): Likewise.
	(selftest::test_message_with_braces): Likewise.
	(selftest::test_buffering): Likewise.
	(selftest::run_tests_per_version): Replace with...
	(selftest::for_each_sarif_gen_option): ...this...
	(selftest::run_line_table_case_tests_per_version): ...and this.
	(selftest::diagnostic_format_sarif_cc_tests): Update to use
	for_each_sarif_gen_option and
	run_line_table_case_tests_per_version.
	* diagnostic-format-sarif.h (enum class sarif_version): Move lower
	down.
	(diagnostic_output_format_init_sarif_stderr): Drop "version"
	param.
	(diagnostic_output_format_init_sarif_file): Likewise.
	(diagnostic_output_format_init_sarif_stream): Likewise.
	(struct sarif_generation_options): New.
	(make_sarif_sink): Add "formatted" param.  Replace version param
	with sarif_gen_opts.
	* diagnostic.cc (diagnostic_output_format_init): Drop hardcoded
	sarif_version::v2_1_0 arguments from calls, which instead use
	the default ctor for sarif_generation_options internally.
	* libgdiagnostics.cc (sarif_sink::sarif_sink): Replace version
	param with sarif_gen_opts, and update for changes to
	make_sarif_sink.
	(diagnostic_manager_add_sarif_sink): Use sarif_gen_opts rather
	than version.
	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Likewise.
	Pass "true" for "formatted" param.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	* value-relation.cc (value_relation::swap): New.
	(value_relation::negate): Remove.
	(dom_oracle::next_relation): New.
	(block_relation_iterator::block_relation_iterator): New.
	(block_relation_iterator::get_next_relation): New.
	(dom_oracle::dump): Use iterator.
	* value-relation.h (relation_oracle::next_relation): New.
	(dom_oracle::next_relation): New prototype.
	(class block_relation_iterator): New.
	(FOR_EACH_RELATION_BB): New.
	(FOR_EACH_RELATION_NAME): New.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	* range-op-ptr.cc (range_operator::lhs_op1_relation): Add
	prange/prange/irange (PPI) default.
	(pointer_plus_operator::lhs_op1_relation): New.
	* range-op.cc (range_op_handler::lhs_op1_relation): Add RO_PPI case.
	* range-op.h (range_op_handler::lhs_op1_relation): Add prototype.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-fold.cc (fold_using_range::range_of_range_op): Use a
	new local variable for intermediate relation results.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	* gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): Pass
	'this' as the range-query to the inferred range constructor.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/95801
	* range-op.cc (operator_div::op2_range): New.

2025-04-28  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/119712
	* value-range.cc (range_bitmask::adjust_range): Delete.
	(irange::set_range_from_bitmask): Integrate adjust_range.
	(irange::update_bitmask): Do nothing if bitmask doesnt change.
	(irange:intersect_bitmask): Do not call adjust_range. Exit if there
	is no second bitmask.
	* value-range.h (adjust_range): Remove prototype.

2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/67797
	* tree-tailcall.cc (find_tail_calls): Add support for ERF_RETURNS_ARG.

2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>

	* tree-cfg.cc (verify_gimple_cond): Error out if the comparison
	throws.

2025-04-28  Andrew Pinski  <quic_apinski@quicinc.com>

	PR c/119432
	* tree-pretty-print.cc (op_symbol_code): For LROTATE_EXPR,
	output __ROTATE_LEFT for gimple.
	For RROTATE_EXPR output __ROTATE_RIGHT for gimple.

2025-04-28  Richard Sandiford  <richard.sandiford@arm.com>

	* rtl.h (native_decode_int): Declare.
	* simplify-rtx.cc (native_decode_int): New function, split out from...
	(native_decode_rtx): ...here.

2025-04-28  H.J. Lu  <hjl.tools@gmail.com>
	    Uros Bizjak  <ubizjak@gmail.com>

	PR target/109780
	PR target/109093
	* config/i386/i386.cc (stack_access_data): New.
	(ix86_update_stack_alignment): Likewise.
	(ix86_find_all_reg_use_1): Likewise.
	(ix86_find_all_reg_use): Likewise.
	(ix86_find_max_used_stack_alignment): Also check memory accesses
	from registers defined by stack or frame registers.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR ipa/119973
	* tree-ssa-structalias.cc (create_variable_info_for):
	Build constraints from DECL_INITIAL directly rather than
	the IPA reference list which is incomplete.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR lto/113207
	* ipa-free-lang-data.cc (fld_type_variant): Add extra checking.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119044
	* tree-predcom.cc (ref_at_iteration): Copy alias info
	from the original ref.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119103
	* tree-ssa-loop-im.cc (in_loop_pipeline): Globalize.
	(compute_invariantness): Override costing when we run
	right before PRE and PRE is enabled.
	(pass_lim::execute): Adjust.
	* tree-vect-patterns.cc (vect_determine_precisions_from_users):
	For variable shift amounts use range information.

2025-04-28  Richard Biener  <rguenther@suse.de>

	* genmatch.cc (::gen_transform): Add in_place parameter.
	Assert it isn't set in unexpected places.
	(possible_noop_convert): New.
	(expr::gen_transform): Support in_place and emit code to
	compute a child in-place when the operation is a conversion.
	(dt_simplify::gen_1): Arrange for an outermost conversion
	to be elided by generating the transform of the operand
	in-place.
	* match.pd (__real cepxi (x) -> cos (x)): Use single_use.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/60779
	* common.opt (fcx-method=): New, map to flag_complex_method.
	(Enum complex_method): New.
	(fcx-limited-range): Alias to -fcx-method=limited-range.
	(fcx-fortran-rules): Alias to -fcx-medhot=fortran.
	* ipa-inline-transform.cc (inline_call): Check flag_complex_method.
	* ipa-inline.cc (can_inline_edge_by_limits_p): Likewise.
	* opts.cc (finish_options): Adjust.
	(set_fast_math_flags): Likewise.
	* doc/invoke.texi (fcx-method=): Document.

2025-04-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/116083
	* stor-layout.cc (layout_type): Compute TYPE_SIZE and
	TYPE_SIZE_UNIT for vector types from the component mode
	sizes.

2025-04-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_operations): Prune
	all actual analysis and only fail when we discover a not
	SLP covered stmt.
	(vect_analyze_loop_2): Remove path trying without SLP.

2025-04-28  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_loop_kill_debug_uses): Remove.
	(maybe_set_vectorized_backedge_value): Likewise.
	(vect_transform_loop_stmt): Likewise.  Move dump printing
	to vect_transform_stmt.
	(vect_transform_loop): Remove loop over loop stmts transforming
	them, but retain some DCE code still necessary.
	* tree-vect-stmts.cc (vect_transform_stmt): Dump that
	we're vectorizing a stmt.

2025-04-28  Richard Biener  <rguenther@suse.de>

	* params.opt (--param=vect-force-slp): Remove.
	* doc/invoke.texi (--param=vect-force-slp): Likewise.
	* tree-vect-loop.cc (vect_analyze_loop_2): Assume
	param_vect_force_slp is 1.
	* tree-vect-stmts.cc (vect_analyze_stmt): Likewise.

2025-04-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119493
	* tree-tailcall.cc (find_tail_calls): Handle non-gimple_reg_type
	arguments which aren't just passed through for tail recursions
	even for non-musttail calls.

2025-04-28  LIU Hao  <lh_mouse@126.com>

	PR target/111107
	* config/i386/cygming.h (STACK_REALIGN_DEFAULT): Copy from sol2.h.

2025-04-27  H.J. Lu  <hjl.tools@gmail.com>

	PR c/48274
	PR middle-end/112877
	PR middle-end/118288
	* gimple.cc (gimple_builtin_call_types_compatible_p): Remove the
	targetm.calls.promote_prototypes call.
	* tree.cc (tree_builtin_call_types_compatible_p): Likewise.

2025-04-27  H.J. Lu  <hjl.tools@gmail.com>

	PR middle-end/112877
	* calls.cc (initialize_argument_information): Promote small integer
	arguments if TARGET_PROMOTE_PROTOTYPES returns true.

2025-04-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_const_vector): Extract
	const vector stepped into separated func.
	(expand_const_vector_single_step_npatterns): Add new func
	to take care of single step.
	(expand_const_vector_interleaved_stepped_npatterns): Add new
	func to take care of interleaved step.
	(expand_const_vector_stepped): Add new func to take care of
	const vector stepped.

2025-04-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_const_vector_duplicate_repeating):
	Add new func to take care of vector duplicate with repeating.
	(expand_const_vector_duplicate_default): Add new func to take
	care of default const vector duplicate.
	(expand_const_vector_duplicate): Add new func to take care
	of all const vector duplicate.
	(expand_const_vector): Extract const vector duplicate into
	separated function.

2025-04-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_const_vec_series): Add new
	func to take care of the const vec_series.
	(expand_const_vector): Extract const vec_series into separated
	function.

2025-04-27  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv-v.cc (expand_const_vector): Extract
	const vec_duplicate into separated function.
	(expand_const_vec_duplicate): Add new func to take care
	of the const vec_duplicate.

2025-04-27  liuhongt  <hongtao.liu@intel.com>

	PR target/119549
	* common/config/i386/i386-common.cc (ix86_handle_option):
	Refactor msse4 and mno-sse4.
	* config/i386/i386.opt (msse4): Remove RejectNegative.
	(mno-sse4): Remove the entry.
	* config/i386/i386-options.cc
	(ix86_valid_target_attribute_inner_p): Remove special code
	which handles mno-sse4.

2025-04-26  Jan Hubicka  <hubicka@ucw.cz>

	PR target/105275
	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Fix cost of FP scalar
	MAX_EXPR and MIN_EXPR

2025-04-26  Iain Buclaw  <ibuclaw@gdcproject.org>

	* config.gcc (LIST): --enable-obsolete for m32c-elf.

2025-04-26  Andrew Pinski  <quic_apinski@quicinc.com>

	* simplify-rtx.cc (simplify_context::simplify_unary_operation_1) <case ZERO_EXTEND>:
	Add simplifcation for and with a constant.

2025-04-25  Dimitar Dimitrov  <dimitar@dinux.eu>

	* doc/sourcebuild.texi: Document variadic_mi_thunk effective
	target check.

2025-04-25  Dimitar Dimitrov  <dimitar@dinux.eu>

	* doc/sourcebuild.texi: Document effective target
	using_sjlj_exceptions.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>

	* match.pd: Move `(cmp (cond @0 @1 @2) @3)` simplifcation after
	the bool comparison simplifications.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple.h (gimple_cond_make_false): Fix comment.
	(gimple_cond_make_true): Likewise.
	(gimple_cond_true_p): Fix spello for statement in comment.

2025-04-25  Jason Merrill  <jason@redhat.com>

	* common.opt: Add ABI v21.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>

	* ipa-icf.cc (sem_function::sem_function): Remove
	the obstack argument version one.
	(sem_variable::sem_variable): Likewise.
	* ipa-icf.h (sem_function): Remove ctor for
	obstack argument only one.
	(sem_variable): Likewise.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>

	* ipa-icf.cc (sem_function::init): Remove assignment of node from itself.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/119811
	* tree-ssa-phiopt.cc: Remove calls.h include.

2025-04-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	PR rtl-optimization/116479
	* modulo-sched.cc (doloop_register_get): Reject conditions with
	decrements that are not 1.

2025-04-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/119873
	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
	true if default definition of PARM_DECL SSA_NAME of the same register
	is passed in call saved register in the PARALLEL case either.

2025-04-25  Andrew Pinski  <quic_apinski@quicinc.com>
	    Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119737
	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Properly
	switch sections.

2025-04-25  Yuriy Kolerov  <Yuriy.Kolerov@synopsys.com>

	PR target/119122
	* common/config/riscv/riscv-common.cc (riscv_implied_info): Add a rule
	for Zca to C implication.

2025-04-24  Jakub Jelinek  <jakub@redhat.com>
	    Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/119873
	* config/s390/s390.cc (s390_call_saved_register_used): Don't return
	true if default definition of PARM_DECL SSA_NAME of the same register
	is passed in call saved register.
	(s390_function_ok_for_sibcall): Adjust comment.

2025-04-24  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119919
	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Account
	correctly cond_expr and min/max when one of operands is 0 or -1.

2025-04-24  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/119924
	* ipa-cp.cc (update_counts_for_self_gen_clones): Use nonzero_p.
	(update_profiling_info): Likewise.
	(update_specialized_profile): Likewise.

2025-04-24  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/119610
	* config/aarch64/aarch64.cc (aarch64_allocate_and_probe_stack_space):
	Add a bytes_below_sp parameter and use it to calculate the CFA
	offsets.  Attach the first SVE CFA note to the move into the
	associated temporary register.
	(aarch64_allocate_and_probe_stack_space): Update calls accordingly.
	Start out with bytes_per_sp set to the frame size and decrement
	it after each allocation.

2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* opts.cc (validate_ipa_reorder_locality_lto_partition): Check opts
	instead of opts_set for x_flag_ipa_reorder_for_locality.
	(finish_options): Update call site.

2025-04-24  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* common.opt (LTO_PARTITION_DEFAULT): Delete.
	(flto-partition=): Change default back to balanced.
	* flag-types.h (lto_partition_model): Remove LTO_PARTITION_DEFAULT.
	* opts.cc (validate_ipa_reorder_locality_lto_partition):
	Check opts_set->x_flag_lto_partition instead of LTO_PARTITION_DEFAULT.
	(finish_options): Remove handling of LTO_PARTITION_DEFAULT.

2025-04-24  Jakub Jelinek  <jakub@redhat.com>

	PR debug/119711
	* dwarf2out.h (struct dw_val_node): Add u member.
	(struct dw_loc_descr_node): Remove dw_loc_opc, dtprel,
	frame_offset_rel and dw_loc_addr members.
	(dw_loc_opc, dw_loc_dtprel, dw_loc_frame_offset_rel, dw_loc_addr):
	Define.
	(struct dw_attr_struct): Remove dw_attr member.
	(dw_attr): Define.
	* dwarf2out.cc (loc_descr_equal_p_1): Use dw_loc_dtprel instead of
	dtprel.
	(output_loc_operands, new_addr_loc_descr, loc_checksum,
	loc_checksum_ordered): Likewise.
	(resolve_args_picking_1): Use dw_loc_frame_offset_rel instead of
	frame_offset_rel.
	(loc_list_from_tree_1): Likewise.
	(resolve_addr_in_expr): Use dw_loc_dtprel instead of dtprel.
	(copy_deref_exprloc): Copy val_class, val_entry and v members
	instead of whole dw_loc_oprnd1 and dw_loc_oprnd2.
	(optimize_string_length): Copy val_class, val_entry and v members
	instead of whole dw_attr_val.
	(hash_loc_operands): Use dw_loc_dtprel instead of dtprel.
	(compare_loc_operands, compare_locs): Likewise.

2025-04-24  liuhongt  <hongtao.liu@intel.com>

	PR target/103750
	* config/i386/sse.md (*<avx512>_cmp<mode>3_and15): New define_insn.
	(*<avx512>_ucmp<mode>3_and15): Ditto.
	(*<avx512>_cmp<mode>3_and3): Ditto.
	(*avx512vl_ucmpv2di3_and3): Ditto.
	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
	Change operands[3] predicate to <cmp_imm_predicate>.
	(*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
	Ditto.
	(*<avx512>_cmp<mode>3): Add GET_MODE_NUNITS (<MODE>mode) >= 8
	to the condition.
	(*<avx512>_ucmp<mode>3): Ditto.
	(V48_AVX512VL_4): New mode iterator.
	(VI48_AVX512VL_4): Ditto.
	(V8_AVX512VL_2): Ditto.

2025-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* ipa-cp.cc (base_count): Remove.
	(struct caller_statistics): Rename n_hot_calls to n_interesting_calls;
	add called_without_ipa_profile.
	(init_caller_stats): Update.
	(cs_interesting_for_ipcp_p): New function.
	(gather_caller_stats): collect n_interesting_calls and
	called_without_profile.
	(ipcp_cloning_candidate_p): Use n_interesting-calls rather then hot.
	(good_cloning_opportunity_p): Rewrite heuristics when IPA profile is
	present
	(estimate_local_effects): Update.
	(value_topo_info::propagate_effects): Update.
	(compare_edge_profile_counts): Remove.
	(ipcp_propagate_stage): Do not collect base_count.
	(get_info_about_necessary_edges): Record whether function is called
	without profile.
	(decide_about_value): Update.
	(ipa_cp_cc_finalize): Do not initialie base_count.
	* profile-count.cc (profile_count::operator*): New.
	(profile_count::operator*=): New.
	* profile-count.h (profile_count::operator*): Declare
	(profile_count::operator*=): Declare.
	* params.opt: Remove ipa-cp-profile-count-base.
	* doc/invoke.texi: Likewise.

2025-04-23  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost truth_value
	exprs.

2025-04-23  liuhongt  <hongtao.liu@intel.com>

	* config/i386/predicates.md (vector_or_0_or_1s_operand): New predicate.
	(nonimm_or_0_or_1s_operand): Ditto.
	* config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
	Extend the predicate of operands1 to accept 0 or allones
	operands.
	(vcond_mask_<mode><sseintvecmodelower>): Ditto.
	(vcond_mask_v1tiv1ti): Ditto.
	(vcond_mask_<mode><sseintvecmodelower>): Ditto.
	* config/i386/i386.md (mov<mode>cc): Ditto for operands[2] and
	operands[3].
	* config/i386/i386-expand.cc (ix86_expand_sse_fp_minmax):
	Force immediate_operand to register.

2025-04-22  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Add special cases
	for COND_EXPR; make MIN_EXPR, MAX_EXPR, ABS_EXPR and ABSU_EXPR more realistic.

2025-04-22  Jakub Jelinek  <jakub@redhat.com>

	PR target/119327
	* config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore also
	OPTION_MASK_SAVE_TOC_INDIRECT differences.

2025-04-22  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
	__ARM_FEATURE_FAMINMAX.

2025-04-22  Spencer Abson  <spencer.abson@arm.com>

	* tree-vect-loop.cc (vectorizable_induction): Add target support
	checks for vectorized MULT_EXPR and FLOAT_EXPR where necessary for
	scalable types.
	Prefer target_supports_op_p over directly_supports_p for these tree
	codes.
	(vectorizable_nonlinear_induction): Fix a doc comment while I'm
	here.

2025-04-22  Spencer Abson  <spencer.abson@arm.com>

	* config/aarch64/aarch64.md: Update cbranch, cstore, fcmp
	and fcmpe to use the GPF_F16 iterator for floating-point
	modes.

2025-04-22  Spencer Abson  <spencer.abson@arm.com>

	PR target/117013
	* config/aarch64/aarch64-protos.h (aarch64_expand_fp_spaceship):
	Declare optab expander function for floating-point types.
	* config/aarch64/aarch64.cc (aarch64_expand_fp_spaceship):
	Define optab expansion for floating-point types (new function).
	* config/aarch64/aarch64.md (spaceship<mode>4):
	Add define_expands for spaceship<mode>4 on integer and
	floating-point types.

2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-cores.def (olympus): Add fp8fma, fp8dot4
	explicitly.

2025-04-22  Yixuan Chen  <chenyixuan@iscas.ac.cn>

	* config/riscv/riscv-cores.def (RISCV_TUNE): Add xt-c908, xt-c908v,
	xt-c910, xt-c910v2, xt-c920, xt-c920v2.
	(RISCV_CORE): Add xt-c908, xt-c908v, xt-c910, xt-c910v2, xt-c920,
	xt-c920v2.
	* doc/invoke.texi: Add xt-c908, xt-c908v, xt-c910, xt-c910v2,
	xt-c920, xt-c920v2.

2025-04-22  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* doc/invoke.texi (lto-partition-locality-frequency-cutoff,
	lto-partition-locality-size-cutoff, lto-max-locality-partition):
	Document.

2025-04-22  Alexandre Oliva  <oliva@adacore.com>

	PR target/118182
	* config/riscv/vector.md (@pred_broadcast<mode>): Expand to
	_zero and _imm variants without vec_duplicate.

2025-04-21  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119879
	* config/i386/i386.cc (fp_conversion_stmt_cost): Inline to ...
	(ix86_vector_costs::add_stmt_cost): ... here; fix handling of NOP_EXPR.

2025-04-21  Matthew Fortune  <matthew.fortune@imgtec.com>

	* config/mips/mips.cc (mips_option_override): Error out for
	-mmicromips -mmsa.

2025-04-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/119507
	* except.cc (switch_to_exception_section): Don't use the cached section if
	the current function is in comdat.

2025-04-21  Andrew Pinski  <quic_apinski@quicinc.com>

	* vec.h (array_slice::begin): Assert that the
	slice is valid.
	(array_slice::end): Likewise.

2025-04-21  hongtao.liu  <hongtao.liu@intel.com>

	* config/i386/i386-expand.cc (ix86_emit_swdivsf): Generate 2
	FMA instructions when TARGET_FMA.

2025-04-19  Jeff Law  <jlaw@ventanamicro.com>

	PR target/119865
	* config/riscv/riscv.cc (parse_features_for_version): Do not
	explicitly free the architecture string.

2025-04-19  Jeff Law  <jlaw@ventanamicro.com>

	PR target/118410
	* config/riscv/bitmanip.md (logical with constant argument): New
	splitter for cases where synthesizing ~C is cheaper than synthesizing
	the original constant C.

2025-04-19  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.cc (vec_fp_conversion_cost): New function.
	(ix86_rtx_costs): Use it for SSE/AVX FP conversoins.
	(ix86_builtin_vectorization_cost): Fix indentation;
	and use vec_fp_conversion_cost in vec_promote_demote.
	(fp_conversion_stmt_cost): New function.
	(ix86_vector_costs::add_stmt_cost): Use it to cost NOP_EXPR
	and vec_promote_demote.
	* config/i386/i386.h (struct processor_costs):
	* config/i386/x86-tune-costs.h (struct processor_costs):

2025-04-19  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/111949
	* combine.cc (find_split_point): Add a split point
	for `(and (not X) Y)` if not in the outer set already.

2025-04-19  Jiaxun Yang  <jiaxun.yang@flygoat.com>

	PR target/111814
	* config/sh/sh-modes.def (RESET_FLOAT_FORMAT): Use mips format.
	(FLOAT_MODE): Use mips mode.

2025-04-19  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha.cc
	(alpha_get_mem_rtx_alignment_and_offset): Recurse into
	COMPONENT_REF nodes.

2025-04-18  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/bitmanip.md (*bext<mode>_mask_pos): New pattern
	for extracting a single bit at masked bit position.

2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/87901
	* tree-ssa-dse.cc (maybe_trim_constructor_store): Add was_integer_cst argument.
	Check for was_integer_cst instead of `{}` when was_integer_cst is true.
	(maybe_trim_partially_dead_store): Handle INTEGER_CST stores of 0 as stores of `{}`.
	Udpate call to maybe_trim_constructor_store for CONSTRUCTOR.

2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/87901
	* tree-ssa-dse.cc (maybe_trim_constructor_store): Strip over useless type
	conversions after taking the address of the MEM_REF.

2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118902
	* fold-const.cc (tree_swap_operands_p): Place invariants in the first operand
	if not used with constants.

2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118947
	* gimple-fold.cc (optimize_memcpy_to_memset): Walk back until we get a
	statement that may clobber the read.

2025-04-18  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/78408
	PR tree-optimization/118947
	* gimple-fold.cc (optimize_memcpy_to_memset): Handle STRING_CST case too.

2025-04-18  Richard Braun  <rbraun@sceen.net>

	* config/c6x/c6x.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove the
	DW_EH_PE_indirect flag.

2025-04-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119858
	* tree-vect-loop.cc (vectorizable_live_operation): Convert
	pointer offset to sizetype.

2025-04-18  Hakan Candar  <hakancandar@protonmail.com>

	* config.gcc: Recognize riscv*-*-gnu* targets.
	* config/riscv/gnu.h: New file.

2025-04-18  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR middle-end/108016
	PR middle-end/108016
	* config/riscv/riscv.md (addv<mode>4, uaddv<mode>4, subv<mode>4,
	usubv<mode>4): Tunes for unnecessary sext.w elimination.

2025-04-18  kelefth  <konstantinos.eleftheriou@vrull.eu>

	PR rtl-optimization/119160
	* avoid-store-forwarding.cc (process_store_forwarding):
	Zero-extend the value stored in the base register, in case
	of load-elimination, only when the mode of the destination
	is wider.

2025-04-18  kelefth  <konstantinos.eleftheriou@vrull.eu>

	* doc/cfg.texi: Update the exception handling section for the
	REG_EH_REGION notes to make it clear that the note is attached
	to the instruction throwing the exception.

2025-04-17  翁愷邑  <kaiweng9487@gmail.com>

	* config/riscv/riscv-target-attr.cc
	(riscv_target_attr_parser::update_settings):
	Do not manually free any arch string.

2025-04-17  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	* tree.def (BOOLEAN_TYPE): Add more details.

2025-04-17  Sam James  <sam@gentoo.org>

	* doc/invoke.texi: Use "compatible types" term. Rephrase to be
	more precise (and correct).

2025-04-17  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/119351
	* tree-vect-stmts.cc (vectorizable_early_exit): Mask both operands of
	the gcond for partial masking support.

2025-04-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/119834
	* config/s390/s390.md (define_split after *cpymem_short): Use
	(clobber (match_scratch N)) instead of (clobber (scratch)).  Use
	(match_dup 4) and operands[4] instead of (match_dup 3) and operands[3]
	in the last of those.
	(define_split after *clrmem_short): Use (clobber (match_scratch N))
	instead of (clobber (scratch)).
	(define_split after *cmpmem_short): Likewise.

2025-04-17  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.cc (TARGET_ASM_NEED_VAR_DECL_BEFORE_USE):
	Don't '#define'.

2025-04-17  Hans-Peter Nilsson  <hp@axis.com>

	* combine.cc: Correct comments about combine_validate_cost.

2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/88382
	* doc/extend.texi (Syntax Extensions): Adjust menu.
	(Raw String Literals): New section.

2025-04-16  Keith Packard  <keithp@keithp.com>

	* config/rx/rx.md (cmpstrnsi): Allow constant length.  For
	static length 0, just store 0 into the output register.
	For dynamic zero, set C/Z appropriately.
	(rxcmpstrn): No longer set C/Z.

2025-04-16  Eric Botcazou  <ebotcazou@gcc.gnu.org>

	* tree-ssa-phiopt.cc (factor_out_conditional_operation): Do not
	bypass the int_fits_type_p test for boolean types whose precision
	is not 1.

2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>

	* common.opt.urls: Regenerated.

2025-04-16  Ard Biesheuvel  <ardb@kernel.org>

	PR target/119386
	* config/i386/i386-options.cc: Permit -mnop-mcount when
	using -fpic with PLTs.

2025-04-16  Ard Biesheuvel  <ardb@kernel.org>

	PR target/119386
	* config/i386/i386.cc (x86_print_call_or_nop): Add @PLT suffix
	where appropriate.
	(x86_function_profiler): Fall through to x86_print_call_or_nop()
	for PIC codegen when flag_plt is set.

2025-04-16  Sandra Loosemore  <sloosemore@baylibre.com>

	PR driver/90465
	* doc/invoke.texi (Overall Options): Add a @cindex for -Q in
	connection with --help=.
	(Developer Options): Point at --help= documentation for the
	other use of -Q.

2025-04-16  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/97106
	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
	[ACCEL_COMPILER]: Make sure to emit C++ constructor, destructor
	aliases.

2025-04-16  Jan Hubicka  <hubicka@ucw.cz>

	PR tree-optimization/119614
	* ipa-prop.cc (ipa_write_return_summaries): New function.
	(ipa_record_return_value_range_1): Break out from ....
	(ipa_record_return_value_range): ... here.
	(ipa_read_return_summaries): New function.
	(ipa_prop_read_section): Read return summaries.
	(read_ipcp_transformation_info): Read return summaries.
	(ipcp_write_transformation_summaries): Write return summaries;
	do not stream stray 0.

2025-04-16  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/119351
	* tree-vectorizer.h (LOOP_VINFO_MASK_NITERS_PFA_OFFSET,
	LOOP_VINFO_NON_LINEAR_IV): New.
	(class _loop_vec_info): Add mask_skip_niters_pfa_offset and
	nonlinear_iv.
	* tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize them.
	(vect_analyze_scalar_cycles_1): Record non-linear inductions.
	(vectorizable_induction): If early break and PFA using masking create a
	new phi which tracks where the scalar code needs to start...
	(vectorizable_live_operation): ...and generate the adjustments here.
	(vect_use_loop_mask_for_alignment_p): Reject non-linear inductions and
	early break needing peeling.

2025-04-16  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/119808
	* gimple-lower-bitint.cc (gimple_lower_bitint): Don't set
	m_single_use_names bits for SSA_NAMEs which have single use but
	their SSA_NAME_DEF_STMT is a copy from another SSA_NAME which doesn't
	have a single use, or single use which is such a copy etc.

2025-04-16  Jesse Huang  <jesse.huang@sifive.com>

	* config/riscv/riscv.cc (riscv_file_end): Fix .p2align value.

2025-04-16  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv.h (JUMP_TABLES_IN_TEXT_SECTION): Check if
	large code model.

2025-04-16  Tejas Belagod  <tejas.belagod@arm.com>

	* config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Fix operand
	order to gen_vcond_mask_*.

2025-04-16  Alice Carlotti  <alice.carlotti@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_valid_sysreg_name_p): Remove feature check.
	(aarch64_retrieve_sysreg): Ditto.

2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>

	PR tree-optimization/71094
	* doc/invoke.texi (Optimize Options): Document that -fivopts is
	enabled at -O1 and higher.  Add blurb about -O0 causing GCC to
	completely ignore most optimization options.

2025-04-15  Iain Sandoe  <iain@sandoe.co.uk>

	* configure: Regenerate.
	* configure.ac: Recognise PROJECT:ld-mmmm.nn.aa as an identifier
	for Darwin's static linker.

2025-04-15  Iain Sandoe  <iainsandoe@mini-05-seq.local>

	PR target/116827
	* ginclude/stddef.h: Undefine __PTRDIFF_T and __SIZE_T for module-
	enabled c++ on Darwin/macOS platforms.

2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* common.opt.urls: Regenerate.

2025-04-15  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune-sched.cc (ix86_issue_rate): Set
	to 4 for znver5.

2025-04-15  Jan Hubicka  <hubicka@ucw.cz>

	PR target/119298
	* config/i386/x86-tune-costs.h (znver5_cost): Set ADDSS cost to 3.

2025-04-15  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/119533
	* config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): Check for
	EDGE_ABNOMAL.
	(pre_vsetvl::compute_lcm_local_properties): Initialize kill
	bitmap.
	Debug dump skipped edge.

2025-04-15  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/119547
	* config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
	Do not perform lift if block is not transparent.

2025-04-15  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* Makefile.in (OBJS): Add ipa-locality-cloning.o.
	* cgraph.h (set_new_clone_decl_and_node_flags): Declare prototype.
	* cgraphclones.cc (set_new_clone_decl_and_node_flags): Remove static
	qualifier.
	* common.opt (fipa-reorder-for-locality): New flag.
	(LTO_PARTITION_DEFAULT): Declare.
	(flto-partition): Change default to LTO_PARTITION_DFEAULT.
	* doc/invoke.texi: Document -fipa-reorder-for-locality.
	* flag-types.h (enum lto_locality_cloning_model): Declare.
	(lto_partitioning_model): Add LTO_PARTITION_DEFAULT.
	* lto-cgraph.cc (lto_set_symtab_encoder_in_partition): Add dumping of
	node and index.
	* opts.cc (validate_ipa_reorder_locality_lto_partition): Define.
	(finish_options): Handle LTO_PARTITION_DEFAULT.
	* params.opt (lto_locality_cloning_model): New enum.
	(lto-partition-locality-cloning): New param.
	(lto-partition-locality-frequency-cutoff): Likewise.
	(lto-partition-locality-size-cutoff): Likewise.
	(lto-max-locality-partition): Likewise.
	* passes.def: Register pass_ipa_locality_cloning.
	* timevar.def (TV_IPA_LC): New timevar.
	* tree-pass.h (make_pass_ipa_locality_cloning): Declare.
	* ipa-locality-cloning.cc: New file.
	* ipa-locality-cloning.h: New file.

2025-04-15  Martin Jambor  <mjambor@suse.cz>
	    Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119803
	* ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Move m_value adjustmed
	according to m_mask below the adjustment of the latter according to
	cap_mask.  Optimize the  calculation of cap_mask a bit.
	(ipcp_bits_lattice::meet_with): Optimize the calculation of cap_mask a
	bit.

2025-04-15  Jakub Jelinek  <jakub@redhat.com>

	* ipa-cp.cc (ipcp_print_widest_int): Print values with all ones in
	bits 128+ with "0xf..f" prefix instead of "all ones folled by ".
	Simplify wide_int check for -1 or all ones above least significant
	128 bits.

2025-04-15  Jakub Jelinek  <jakub@redhat.com>

	PR sanitizer/119801
	* sanitizer.def (BUILT_IN_TSAN_FUNC_EXIT): Use BT_FN_VOID rather
	than BT_FN_VOID_PTR.
	* tree-tailcall.cc: Include attribs.h and asan.h.
	(struct tailcall): Add has_tsan_func_exit member.
	(empty_eh_cleanup): Add eh_has_tsan_func_exit argument, set what
	it points to to 1 if there is exactly one __tsan_func_exit call
	and ignore that call otherwise.  Adjust recursive call.
	(find_tail_calls): Add RETRY_TSAN_FUNC_EXIT argument, pass it
	to recursive calls.  When seeing __tsan_func_exit call with
	RETRY_TSAN_FUNC_EXIT 0, set it to -1.  If RETRY_TSAN_FUNC_EXIT
	is 1, initially ignore __tsan_func_exit calls.  Adjust
	empty_eh_cleanup caller.  When looking through stmts after the call,
	ignore exactly one __tsan_func_exit call but remember it in
	t->has_tsan_func_exit.  Diagnose if EH cleanups didn't have
	__tsan_func_exit and normal path did or vice versa.
	(optimize_tail_call): Emit __tsan_func_exit before the tail call
	or tail recursion.
	(tree_optimize_tail_calls_1): Adjust find_tail_calls callers.  If
	find_tail_calls changes retry_tsan_func_exit to -1, set it to 1
	and call it again with otherwise the same arguments.

2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>

	PR ipa/113203
	* doc/extend.texi (Common Function Attributes): Explain how to
	use always_inline in programs that have multiple translation
	units, and that LTO inlining additionally needs optimization
	enabled.

2025-04-15  liuhongt  <hongtao.liu@intel.com>

	PR target/108134
	* doc/extend.texi: Remove documents from r11-344-g0fec3f62b9bfc0.

2025-04-15  Sandra Loosemore  <sloosemore@baylibre.com>

	PR target/42683
	* doc/invoke.texi (x86 Options): Clarify that -march=pentiumpro
	doesn't include MMX.

2025-04-14  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/118794
	* config/gcn/gcn.opt (-mfake-exceptions): Support.
	* config/nvptx/nvptx.opt (-mfake-exceptions): Likewise.
	* config/gcn/gcn.md (define_expand "exception_receiver"): Use it.
	* config/nvptx/nvptx.md (define_expand "exception_receiver"):
	Likewise.
	* config/gcn/mkoffload.cc (main): Set it.
	* config/nvptx/mkoffload.cc (main): Likewise.
	* config/nvptx/nvptx.cc (nvptx_assemble_integer)
	<in_section == exception_section>: Special handling for
	'SYMBOL_REF's.
	* except.cc (expand_dw2_landing_pad_for_region): Don't generate
	bogus code for (default)
	'#define EH_RETURN_DATA_REGNO(N) INVALID_REGNUM'.

2025-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119785
	* expmed.cc (init_expmed): Always pass QImode rather than mode to
	set_src_cost passed to set_zero_cost.

2025-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119718
	* tree-pretty-print.cc (dump_generic_node) <case CALL_EXPR>: Dump
	also CALL_EXPR_MUST_TAIL_CALL flag.
	* calls.cc (maybe_complain_about_tail_call): Emit error about
	CALL_EXPR_MUST_TAIL_CALL only after emitting dump message, not before
	it.

2025-04-14  Arthur Cohen  <arthur.cohen@embecosm.com>

	* doc/install.texi: Add requirements for building gccrs.

2025-04-14  H.J. Lu  <hjl.tools@gmail.com>

	PR target/119784
	* config/i386/i386.cc (ix86_using_red_zone): Don't use red-zone
	with 32 GPRs and no caller-saved registers.

2025-04-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118097
	* ipa-cp.cc (ipa_get_jf_arith_result): Require res_operand for
	anything except NOP_EXPR or ADDR_EXPR, document it and remove the code
	trying to deduce it.
	(ipa_value_from_jfunc): Use the stored and streamed type of arithmetic
	pass-through functions.
	(ipa_agg_value_from_jfunc): Use the stored and streamed type of
	arithmetic pass-through functions, convert to the type used to store
	the value if necessary.
	(get_val_across_arith_op): New parameter op_type, pass it to
	ipa_get_jf_arith_result.
	(propagate_vals_across_arith_jfunc): New parameter op_type, pass it to
	get_val_across_arith_op.
	(propagate_vals_across_pass_through): Use the stored and streamed type
	of arithmetic pass-through functions.
	(propagate_aggregate_lattice): Likewise.
	(push_agg_values_for_index_from_edge): Use the stored and streamed
	type of arithmetic pass-through functions, convert to the type used to
	store the value if necessary.

2025-04-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118785
	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Use the stored
	and streamed type of arithmetic pass-through functions.

2025-04-14  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.cc (ipcp_print_widest_int): Also add a truncated form of
	dumping of widest ints which only have zeros in the lowest 128 bits.
	Update the comment.
	(ipcp_bits_lattice::print): Also dump the mask using
	ipcp_print_widest_int.
	(ipcp_store_vr_results): Likewise.

2025-04-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/119318
	* ipa-cp.cc (ipcp_bits_lattice::meet_with_1): Set all mask bits
	not covered by precision to one.
	(ipcp_bits_lattice::meet_with): Likewise.
	(propagate_bits_across_jump_function): Use the stored operation
	type to perform meet with other lattices.

2025-04-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118097
	PR ipa/118785
	PR ipa/119318
	* lto-streamer.h (lto_variably_modified_type_p): Declare.
	* ipa-prop.h (ipa_pass_through_data): New field op_type.
	(ipa_get_jf_pass_through_op_type): New function.
	* ipa-prop.cc: Include lto-streamer.h.
	(ipa_dump_jump_function): Dump also pass-through
	operation types, if any.  Dump pass-through operands only if not NULL.
	(ipa_set_jf_simple_pass_through): Set op_type accordingly.
	(compute_complex_assign_jump_func): Set op_type of arithmetic
	pass-through jump_functions.
	(analyze_agg_content_value): Update lhs when walking assighment
	copies.  Set op_type of aggregate arithmetic pass-through
	jump_functions.
	(update_jump_functions_after_inlining): Also transfer the operation
	type from the source arithmentic pass-through jump function to the
	destination jump function.
	(ipa_write_jump_function): Stream also the op_type when necessary.
	(ipa_read_jump_function): Likewise.
	(ipa_agg_pass_through_jf_equivalent_p): Also compare operation types.
	* lto-streamer-out.cc (lto_variably_modified_type_p): Make public.

2025-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119757
	* tree-vect-slp.cc (vect_build_slp_tree_1): Record and compare
	whether a stmt uses a maks.

2025-04-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119778
	* tree-inline.cc (copy_edges_for_bb): Mark calls that are
	source of abnormal edges as altering control-flow.

2025-04-14  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/119779
	* doc/gm2.texi (Interface to assembly language): Use eax
	rather than rax in both examples.

2025-04-14  Jakub Jelinek  <jakub@redhat.com>

	PR driver/119727
	* configure.ac (HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE): New check.
	* gcc.cc: Include sys/personality.h if
	HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
	(try_generate_repro): Call
	personality (personality (0xffffffffU) | ADDR_NO_RANDOMIZE)
	if HOST_HAS_PERSONALITY_ADDR_NO_RANDOMIZE is defined.
	* config.in: Regenerate.
	* configure: Regenerate.

2025-04-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.cc: Add z17 scheduler description.
	* config/s390/s390.h: Ditto.
	* config/s390/s390.md: Ditto.
	* config/s390/9175.md: New file.

2025-04-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* common/config/s390/s390-common.cc: Rename arch15 to z17.
	* config.gcc: Add z17.
	* config/s390/driver-native.cc: Detect z17 machine.
	* config/s390/s390-builtins.def (B_VXE3): Rename arch15 to z17.
	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin): Ditto.
	* config/s390/s390-opts.h (enum processor_type): Ditto.
	* config/s390/s390.cc: Ditto.
	* config/s390/s390.h: Ditto.
	* config/s390/s390.md: Ditto.
	* config/s390/s390.opt: Add z17.
	* doc/invoke.texi: Ditto.

2025-04-12  Sandra Loosemore  <sloosemore@baylibre.com>

	PR target/97585
	* doc/invoke.texi (x86 Options): Document list of extensions
	supported by -march=x86_64, according to the declaration of
	PTA_X86_64_BASELINE in config/i386/i386.h.

2025-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR driver/119727
	* gcc.cc (files_equal_p): Rewritten using fopen/fgets/fclose instead
	of open/fstat/read/close.  At the start of lines, ignore lowercase
	hexadecimal addresses followed by space.

2025-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119722
	* gimple-lower-bitint.h (build_bitint_stmt_ssa_conflicts): Add
	CLEAR argument.
	* gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Add
	CLEAR argument.  Call clear on gimple_assign_copy_p rhs1 if lhs
	is large/huge bitint unless lhs is not in names.
	* tree-ssa-coalesce.cc (build_ssa_conflict_graph): Adjust
	build_bitint_stmt_ssa_conflicts caller.  Move gimple_assign_copy_p
	handling to after the build_bitint_stmt_ssa_conflicts call.

2025-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119718
	* tree-tailcall.cc (maybe_error_musttail): Dump the GIMPLE at the
	end of the Cannot tail-call line rather than on the line before it.
	* calls.cc (maybe_complain_about_tail_call): Dump the GENERIC
	at the end of the ;; Cannot tail-call line rather than on the
	line before it.

2025-04-12  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119718
	* tree-tailcall.cc (maybe_error_musttail): Only dump into dump_file
	if dump_flags & TDF_DETAILS.  Use "Cannot tail-call: " prefix instead
	of "Cannot convert: ".
	(find_tail_calls, tree_optimize_tail_calls_1): Formatting fixes
	for maybe_error_musttail calls.
	* calls.cc (maybe_complain_about_tail_call): Emit also a message
	into dump_file when dump_flags & TDF_DETAILS for CALL_EXPR_TAILCALL
	calls.
	(initialize_argument_information): Formatting fix for
	maybe_complain_about_tail_call calls.
	(can_implement_as_sibling_call_p, expand_call): Likewise.

2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c++/106618
	* doc/invoke.texi (Option Summary): Remove -fargs-in-order, add
	-fstrong-eval-order.
	(C++ Dialect Options): Explicitly document that -fstrong-eval-order
	takes an optional argument and what the choices are.  Generalize
	references to C++17.

2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/105548
	* doc/invoke.texi (Optimize Options): Delete misleading sentence
	about conversions.

2025-04-11  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119707
	* gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Only use
	m_data[save_data_cnt] instead of m_data[save_data_cnt + 1] if
	idx is odd and equal to low + 1.  Remember tree_to_uhwi (idx) in
	a temporary instead of calling the function multiple times.

2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>

	PR tree-optimization/87909
	* common.opt.urls: Regenerate.
	* doc/invoke.texi (Option Summary): Add -ftree-cselim.
	(Optimize Options): Likewise.

2025-04-11  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/14708
	* doc/invoke.texi (Optimize Options): List -fexcess-precision
	before -ffloat-store, moving some background discussion to the
	former from the latter.  Recommend using -fexcess-precision=standard
	instead of -ffloat-store.

2025-04-10  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (LINK_SPEC): Add support for
	-static-libgcobol.

2025-04-10  Richard Biener  <rguenther@suse.de>

	PR middle-end/119706
	* gimple-expr.cc (is_gimple_mem_ref_addr): Also allow
	POLY_INT_CST.

2025-04-10  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/119399
	* tree-data-ref.cc (create_waw_or_war_checks): Use a MINUS_EXPR
	on two converted pointers, rather than converting a POINTER_DIFF_EXPR
	on the pointers.

2025-04-10  Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/multilib-generator: Remove the compact code model
	and check large code model for RV32.

2025-04-09  Jakub Jelinek  <jakub@redhat.com>

	* pretty-print.cc (pretty_printer::format): Use %.Ns instead of
	%Ns in function comment.

2025-04-09  Jakub Jelinek  <jakub@redhat.com>

	PR target/119664
	* config/h8300/jumpcall.md (bit test and jump define_insn_and_split):
	Use HSI iterator rather than QHSI.

2025-04-09  Jakub Jelinek  <jakub@redhat.com>

	* config/riscv/riscv-vector-builtins.cc (verify_type_context):
	Diagnose RVV types for a given OpenMP context.

2025-04-09  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/119689
	PR rtl-optimization/115568
	* lra-remat.cc (create_cands): Use prev_nonnote_nondebug_insn
	to check whether insn2 is directly before insn.

2025-04-09  Robin Dapp  <rdapp@ventanamicro.com>

	PR middle-end/116595
	* expr.cc (categorize_ctor_elements_1): Use
	constant_lower_bound.

2025-04-09  Yang Yujie  <yangyujie@loongson.cn>

	* config/loongarch/genopts/gen-evolution.awk: remove
	usage of "asort".
	* config/loongarch/genopts/genstr.sh: replace sed with awk.

2025-04-08  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c++/90468
	* doc/invoke.texi (Warning Options): Clean up text describing
	-Wno-xxx.

2025-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119672
	* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
	For POPCOUNT == 0 or != 0 optimizations use
	CONST0_RTX (GET_MODE (XEXP (op0, 0))) rather than const0_rtx.

2025-04-08  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/119662
	* gimplify.cc (modify_call_for_omp_dispatch): Fix GOMP_interop
	arg passing; add location info to function calls.

2025-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/119678
	* config/riscv/freebsd.h (LINK_SPEC): Use FBSD_LINK_PG_NOTE rather
	than non-existing FBSD_LINK_PG_NOTES.

2025-04-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
	[!ACCEL_COMPILER]: Don't define label 'emit_ptx_alias'.

2025-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119594
	* cse.cc (count_reg_usage): Count even x == dest regs if they have
	non-zero counts already and incr is positive.

2025-04-08  Jakub Jelinek  <jakub@redhat.com>

	PR lto/119625
	* lto-opts.cc (lto_write_options): Mask of CF_SET from
	global_options.x_flag_cf_protection.

2025-04-08  Tejas Belagod  <tejas.belagod@arm.com>
	    Andrea Corallo  <andrea.corallo@arm.com>

	* target.h (type_context_kind): Add new context kinds for target clauses.
	(omp_type_context): Query if the context is of OMP kind.
	* config/aarch64/aarch64-sve-builtins.cc (verify_type_context): Diagnose
	SVE types for a given OpenMP context.
	(omp_type_context): New.
	* gimplify.cc (omp_notice_variable): Diagnose implicitly-mapped SVE
	objects in OpenMP regions.
	(gimplify_scan_omp_clauses): Diagnose SVE types for various target
	clauses.

2025-04-08  Tejas Belagod  <tejas.belagod@arm.com>

	* tree.h (strip_pointer_types): New.

2025-04-08  Richard Sandiford  <richard.sandiford@arm.com>
	    Tejas Belagod  <tejas.belagod@arm.com>

	PR middle-end/101018
	* poly-int.h (can_and_p): New function.
	* fold-const.cc (poly_int_binop): Use it to optimize BIT_AND_EXPRs
	involving POLY_INT_CSTs.
	* gimplify.cc (omp_notice_variable): Use poly_int_tree_p instead
	of INTEGER_CST when checking for constant-sized omp data.
	(gimplify_adjust_omp_clauses_1): Likewise.
	(gimplify_adjust_omp_clauses): Likewise.
	* omp-low.cc (scan_sharing_clauses): Likewise.

2025-04-08  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Add PTA_AVX10_1_256.

2025-04-08  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/vector.md: Disable vsext/vzext for XTheadVector.

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

	PR target/113257
	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple-a12,
	Apple-M1, Apple-M2, Apple-M3 with expanded names to allow for the
	LITTLE.big versions.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi: Add apple-m1,2 and 3 cores to the ones listed
	for arch and tune selections.

2025-04-07  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.opt (-mfake-ptx-alloca): Update.

2025-04-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/118924
	* tree-sra.cc (create_total_scalarization_access): Set
	grp_same_access_path flag to zero.

2025-04-07  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/118924
	* tree-ssa-alias-compare.h (types_equal_for_same_type_for_tbaa_p):
	Declare.
	* tree-ssa-alias.cc: Include ipa-utils.h.
	(types_equal_for_same_type_for_tbaa_p): New public overloaded variant.
	* tree-sra.cc: Include tree-ssa-alias-compare.h.
	(create_access): Initialzie grp_same_access_path to true.
	(build_accesses_from_assign): Detect tbaa hazards and clear
	grp_same_access_path fields of involved accesses when they occur.
	(sort_and_splice_var_accesses): Take previous values of
	grp_same_access_path into account.

2025-04-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119640
	* tree-vect-stmts.cc (vectorizable_shift): Always insert code
	for one of our SLP operands before the code for the vector
	shift itself.

2025-04-07  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119614
	* tree-tailcall.cc (find_tail_calls): Remember edges which have been
	walked through if !ass_var.  Perform IPA-VRP workaround even when
	ret_var is not TREE_CONSTANT, in that case check in a loop if it is
	a PHI result and in that case look at the PHI argument from
	corresponding edge in the edge vector.

2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR testsuite/116398
	* params.opt (-param=max-combine-search-insns=): New param.
	* doc/invoke.texi: Document it.
	* combine.cc (insn_link::insn_count): New field.
	(alloc_insn_link): Initialize it.
	(distribute_links): Add a limit parameter.
	(try_combine): Use the new param to limit distribute_links
	when only i3 has changed.

2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR testsuite/116398
	* combine.cc (distribute_links): Take an optional start point.
	(try_combine): If only i3 has changed, only distribute i3's links,
	not i2's.  Start the search for the new use from i3 rather than
	from the definition instruction.  Likewise start the search for
	the new use from i2 when distributing i2's links.

2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR testsuite/116398
	* combine.cc (try_combine): Shortcut the split_i2i3 handling if
	i2 is unchanged.

2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>
	    Richard Biener  <rguenther@suse.de>

	PR testsuite/116398
	* combine.cc (try_combine): Reallow 2->2 combinations.  Detect when
	only i3 has changed and restart from i3 in that case.

2025-04-07  Richard Sandiford  <richard.sandiford@arm.com>

	* simplify-rtx.cc (simplify_const_relational_operation): Generalize
	the constant checks in the fold-via-minus path to match the
	INTEGRAL_MODE_P condition.

2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi (Boolean Type): Further clarify support for
	_Bool in C23 and C++.

2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/78874
	* doc/invoke.texi (Warning Options): Fix description of
	-Wno-aggressive-loop-optimizations to reflect that this turns
	off the warning, and the default is for it to be enabled.

2025-04-06  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/81831
	* doc/invoke.texi (Option Summary): Add -Wno-psabi.
	(Warning Options): Document -Wpsabi separately from -Wabi.
	Note it's enabled by default, not just implied by -Wabi.
	Replace the detailed example for a GCC 4.4 change for x86
	(which is unlikely to be very interesting nowadays) with
	just a list of all targets that presently diagnose these
	warnings.
	(RS/6000 and PowerPC Options): Add cross-references for
	-Wno-psabi.

2025-04-05  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/112589
	* common.opt (-fcf-protection): Add documentation string.
	* doc/invoke.texi (Option Summary): Add entry for -fcf-protection
	without argument.
	(Instrumentation Options): Tidy the -fcf-protection entry and
	and add documention for the form without an argument.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR lto/119625
	* lto-opts.cc (lto_write_options): If neither flag_pic nor
	flag_pie are set, check first for flag_pie and only later
	for flag_pic rather than the other way around, use a temporary
	variable.  If flag_cf_protection is not set, don't append anything
	if flag_cf_protection is none of CF_{NONE,FULL,BRANCH,RETURN} and
	use a temporary variable.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/119618
	* profile.cc (branch_prob): Only check for musttail calls if
	cfun->has_musttail.  Use gsi_last_nondebug_bb instead of gsi_last_bb.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119616
	* tree-tailcall.cc (suitable_for_tail_call_opt_p): Move checking
	for addressable parameters from here ...
	(find_tail_calls): ... here.  If cfun->has_musttail, don't clear
	opt_tailcalls for it, instead set a local flag and punt if we can't
	tail recurse optimize it.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/119613
	* cfgrtl.cc (purge_dead_edges): Remove REG_EH_REGION notes from
	tail calls.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR target/115910
	* rtlanal.cc (pattern_cost): Return at least COSTS_N_INSNS (1)
	rather than just COSTS_N_INTNS (1) for cost <= 0.
	* config/i386/i386.cc (ix86_rtx_costs): Set *total to 1 for
	TARGET_64BIT x86_64_zext_immediate_operand constants.

2025-04-04  Andrew Pinski  <quic_apinski@quicinc.com>

	PR ipa/119599
	* tree-cfg.cc (pass_warn_function_return::execute): Turn return statements always
	into __builtin_unreachable calls.

2025-04-04  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119614
	* tree-tailcall.cc (find_tail_calls): Handle also pointer types in the
	IPA-VRP workaround.

2025-04-03  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119573
	* config/nvptx/nvptx.cc (nvptx_encode_section_info): Don't set
	'DATA_AREA_CONST' for 'TREE_CONSTANT', or 'TREE_READONLY'.
	(nvptx_asm_declare_constant_name): Use '.global' instead of
	'.const'.

2025-04-03  Peter Bergner  <bergner@linux.ibm.com>

	PR target/119308
	* config/rs6000/rs6000-logue.cc (rs6000_output_function_epilogue):
	Handle GCC COBOL for the tbtab lang field.

2025-04-03  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi (Statement Attributes): Copy-edit the musttail
	attribute documentation and correct the comment in the last
	example.

2025-04-03  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/x86-tune-costs.h (ix86_size_cost): Fix sizes of move
	instructions

2025-04-03  Jakub Jelinek  <jakub@redhat.com>

	PR cobol/119242
	* fold-const.h (native_encode_wide_int): Declare.
	* fold-const.cc (native_encode_wide_int): New function.
	(native_encode_int): Use it.

2025-04-03  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/genopts/gen-evolution.awk: Avoid using gensub
	that FreeBSD awk lacks.

2025-04-03  Hongyu Wang  <hongyu.wang@intel.com>

	PR target/119539
	* config/i386/i386.md (*<insn><mode>3_mask): Emit NF variant of
	rotate when APX_NF enabled, and use force_lowpart_subreg.
	(*<insn><mode>3_mask_1): Likewise.

2025-04-03  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/101440
	* doc/extend.texi (Common Function Attributes): Clean up some
	confusing language in the description of the "access" attribute.

2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>
	    GUO Yixuan  <culu.gyx@gmail.com>

	PR driver/58973
	* common.opt (Werror, Werror=): Use less awkward wording in
	description.
	(pedantic-errors): Likewise.
	* doc/invoke.texi (Warning Options): Likewise for -Werror and
	-Werror= here.

2025-04-02  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/119572
	* config/riscv/autovec.md: Mask broadcast value.

2025-04-02  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/bitmanip.md: The optimization can only be applied if
	the high bit of operands[3] is set to 1.

2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/114957
	PR c/78008
	PR c++/60972
	* doc/extend.texi (Structure-Layout Pragmas):  Add @cindex
	entries	and reformat the pragma descriptions to match the markup
	used for other pragmas.  Document what #pragma pack(0) does.
	Add cross-references to similar attributes.

2025-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119491
	* tree-tailcall.cc (single_non_eh_succ_edge): New function.
	(independent_of_stmt_p): Use single_non_eh_succ_edge (bb)->dest
	instead of single_succ (bb).
	(empty_eh_cleanup): New function.
	(find_tail_calls): Diagnose throwing of exceptions which do not
	propagate only if there are no EDGE_EH successor edges.  If there are
	and the call is musttail, use empty_eh_cleanup to find if the cleanup
	is not empty.  If not or the call is not musttail, use different
	diagnostics.  Set is_noreturn even if there are successor edges.  Use
	single_non_eh_succ_edge (abb) instead of single_succ_edge (abb).  Punt
	on internal noreturn calls.
	(decrease_profile): Don't assert 0 or 1 successor edges.
	(eliminate_tail_call): Use
	single_non_eh_succ_edge (gsi_bb (t->call_gsi)) instead of
	single_succ_edge (gsi_bb (t->call_gsi)).
	(tree_optimize_tail_calls_1): Also look into basic blocks with
	single succ edge which is EDGE_EH for noreturn musttail calls.

2025-04-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119586
	* tree-vect-stmts.cc (vectorizable_load): Assume we got
	alignment analysis for VMAT_STRIDED_SLP wrong.
	(vectorizable_store): Likewise.

2025-04-02  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (musttail statement attribute): Hint how
	to avoid -Wmaybe-musttail-local-addr warnings.

2025-04-02  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119376
	* common.opt (Wmusttail-local-addr, Wmaybe-musttail-local-addr): New.
	* tree-tailcall.cc (suitable_for_tail_call_opt_p): Don't fail for
	TREE_ADDRESSABLE PARM_DECLs for musttail calls if diag_musttail.
	Emit -Wmusttail-local-addr warnings.
	(maybe_error_musttail): Use gimple_location instead of directly
	accessing location member.
	(find_tail_calls): For musttail calls if diag_musttail, don't fail
	if address of local could escape to the call, instead emit
	-Wmaybe-musttail-local-addr warnings.  Emit
	-Wmaybe-musttail-local-addr warnings also for address taken
	parameters.
	* common.opt.urls: Regenerate.
	* doc/extend.texi (musttail statement attribute): Clarify local
	variables without non-trivial destruction are considered out of scope
	before the tail call instruction.
	* doc/invoke.texi (-Wno-musttail-local-addr,
	-Wmaybe-musttail-local-addr): Document.

2025-04-02  Andi Kleen  <ak@gcc.gnu.org>

	PR middle-end/119482
	* bitmap.cc (bitmap_set_bit): Write back value unconditionally

2025-04-02  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c++/118982
	* doc/extend.texi (Common Function Attributes): For the
	constructor/destructory attribute, be more explicit about the
	relationship between the constructor attribute and
	the C++ init_priority attribute, and add a cross-reference.
	Also document that most targets support this.
	(C++ Attributes): Similarly for the init_priority attribute.

2025-04-01  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/118118
	* doc/extend.texi (Boolean Type): New section.

2025-04-01  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/117689
	* doc/extend.texi (Incomplete Enums): Rename to....
	(Enum Extensions): This.  Document support for specifying the
	underlying type of an enum as an extension in all earlier C
	and C++ standards.  Document that a forward declaration with
	underlying type is not an incomplete type, and which dialects
	GCC supports that in.

2025-04-01  Tom Tromey  <tromey@adacore.com>

	* dwarf2out.cc (modified_type_die): Use mod_scope for
	ranged types, base types, and array types.

2025-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119493
	* tree-tailcall.cc (find_tail_calls): Don't punt on tail recusion
	if some arguments don't have is_gimple_reg_type, only punt if they
	have non-POD types, or volatile, or addressable or (for now) it is
	not a musttail call.  Set tailr_arg_needs_copy in those cases too.
	(eliminate_tail_call): Copy call arguments to params if they don't
	have is_gimple_reg_type, use temporaries if the argument is used
	later.
	(tree_optimize_tail_calls_1): Skip !is_gimple_reg_type
	tailr_arg_needs_copy parameters.  Formatting fix.

2025-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119291
	* combine.cc (try_combine): For splitting of PARALLEL with
	2 independent SETs into i2 and i3 sets check reg_used_between_p
	of the SET_DESTs rather than just modified_between_p.

2025-04-01  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119534
	* tree-vect-stmts.cc (get_load_store_type): Reject
	VECTOR_BOOLEAN_TYPE_P offset vector type for emulated gathers.

2025-04-01  Martin Uecker  <uecker@tugraz.at>

	PR c/119173
	* doc/invoke.texi (Warning Options): Move to general options.

2025-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR gcov-profile/119535
	* profile.cc (branch_prob): Ignore any edges from bbs ending with
	musttail call, rather than only EDGE_FAKE edges from those to EXIT.

2025-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119493
	* tree-tailcall.cc (tree_optimize_tail_calls_1): Ignore tail recursion
	candidates which need accumulators if there is at least one musttail
	non-recursive call.

2025-04-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/119537
	* gimplify.cc (find_used_user_labels): New function.
	(gimplify_call_expr): Don't remove complex assume expression at -O0
	if it defines any user labels.
	* gimple-low.cc: Include diagnostic-core.h.
	(assume_labels): New variable.
	(diagnose_assume_labels): New function.
	(lower_function_body): Call it via walk_gimple_seq if assume_labels
	is non-NULL, then BITMAP_FREE assume_labels.
	(find_assumption_locals_r): Record in assume_labels uids of user
	labels defined in assume attribute expressions.

2025-04-01  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/119369
	* config/gcn/gcn-protos.h (gcn_asm_weaken_decl): Declare.
	* config/gcn/gcn.cc (gcn_asm_weaken_decl): New.
	* config/gcn/gcn-hsa.h (ASM_WEAKEN_DECL): '#define' to this.

2025-04-01  Richard Biener  <rguenther@suse.de>

	PR target/119549
	* common/config/i386/i386-common.cc (ix86_handle_option):
	Assert that both OPT_msse4 and OPT_mno_sse4 are never unset.
	* config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
	Process negated OPT_msse4 as OPT_mno_sse4.

2025-04-01  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/119559
	* gimplify.cc (modify_call_for_omp_dispatch): Reorder checks to avoid
	asserts and bogus diagnostic.

2025-04-01  Hu, Lin1  <lin1.hu@intel.com>
	    Hongyu Wang  <hongyu.wang@intel.com>

	PR target/119473
	* config/i386/sse.md
	(vaesdec_<mode>): Set attr "isa" as "avx,vaes_avx512vl", "type" as
	"sselog1", "mode" as "TI".
	(vaesdeclast_<mode>): Ditto.
	(vaesenc_<mode>): Ditto.
	(vaesenclast_<mode>): Ditto.

2025-04-01  Monk Chiang  <monk.chiang@sifive.com>
	    Kito Cheng  <kito.cheng@sifive.com>

	* config/riscv/riscv-v.cc: Add restrict for insert LMUL.
	* config/riscv/riscv-vector-builtins-types.def:
	Use RVV_REQUIRE_ELEN_64 to check LMUL number.
	* config/riscv/riscv-vector-switch.def: Likewise.
	* config/riscv/vector-iterators.md: Check TARGET_VECTOR_ELEN_64
	rather than "TARGET_MIN_VLEN > 32" for all iterator.

2025-04-01  Lulu Cheng  <chenglulu@loongson.cn>

	* doc/invoke.texi: Corrected the position of '-mtls-dialect=opt'
	option.

2025-03-31  Jørgen Kvalsvik  <j@lambda.is>

	PR gcov-profile/119553
	* path-coverage.cc (find_paths): Return path count, don't
	write to gcno, and rename to ...
	(instrument_prime_paths): ... this.
	* profile.cc (branch_prob): Write path counts to gcno.

2025-03-31  Marek Polacek  <polacek@redhat.com>

	PR c++/116960
	PR c++/119303
	* diagnostic.cc (diagnostic_context::report_diagnostic): Check for
	non-zero m_lock later, after checking diagnostic_enabled.

2025-03-31  Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>

	* config/aarch64/aarch64-option-extensions.def (SME): Remove SVE2 as
	prerequisite and add in FCMA and F16FML.
	* config/aarch64/aarch64.cc (aarch64_override_options_internal):
	Diagnose use of SME without SVE2 and implicitly enable SVE2 when
	enabling SME after streaming mode diagnosis.
	* doc/invoke.texi (sme): Document that this can only be used with the
	sve2 extension.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119532
	* tree-tailcall.cc (process_assignment): FAIL for fixed-point
	typed functions.

2025-03-31  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/119541
	* gimplify.cc (modify_call_for_omp_dispatch): Limit interop claues
	processing by the number of append_args arguments.

2025-03-31  Kyrylo Tkachov  <ktkachov@nvidia.com>

	PR middle-end/119442
	* expr.cc (store_constructor): Also allow element modes explicitly
	accepted by target vec_duplicate pattern.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/sse.md (*vmov<mode>_constm1_pternlog_false_dep):
	Add mode attribute.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_mov_fp_load,
	znver5_sse_mov_fp_load): Also match ssemov2.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_log_evex_store,
	znver5_sse_log_evex_store): New reservations.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_icvt): Use sseicvt.
	(znver4_sse_icvt_store): Likewise.
	(znver5_sse_icvt_store): Likewise.
	(znver4_sse_icvt2): New.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_div_pd,
	znver4_sse_div_pd_load, znver5_sse_div_pd_load): Handle DFmode.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_cmp_avx128,
	znver5_sse_cmp_avx128): Handle TImode.
	(znver4_sse_cmp_avx256, znver5_sse_cmp_avx256): Handle OImode.
	(znver4_sse_cmp_avx512, znver5_sse_cmp_avx512): Handle XImode.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_test): Drop test of
	prefix_extra attribute.

2025-03-31  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_log1): Rename to
	znver4_sse_log1_store.
	(znver5_sse_log1): Rename to znver5_sse_log1_store.
	(znver4_sse_log1): New memory-less variant.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi (New/Delete Builtins): Cleanup up the text and
	explicitly list the builtins being documented.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Numeric Builtins): Move Integer Overflow Builtins
	section here, as a subsection.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Atomic Memory Access): New section.
	(__sync Builtins): Make it a subsection of the above.
	(Atomic Memory Access): Likewise.
	(x86 specific memory model extensions for transactional memory):
	Delete this section, incorporating the text into the discussion
	of __atomic builtins.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Built-in Functions): Incorporate some text
	formerly in "Other Builtins" into the introduction.  Adjust
	menu for new sections.
	(Library Builtins): New section, split from "Other Builtins".
	(Numeric Builtins): Likewise.
	(Stack Allocation): Likewise.
	(Constructing Calls): Move __builtin_call_with_static_chain here.
	(Object Size Checking): Minor copy-editing.
	(Other Builtins): Move text to new sections listed above.  Delete
	duplicate docs for object-size checking builtins.
	* doc/invoke.texi (C dialect options): Update @xref for -fno-builtin.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (C Extensions): Move menu items for
	builtin-related sections to...
	(Built-in Functions): New chapter.
	* doc/gcc.texi (Introduction): Add menu entry for new chapter.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Attributes): New section.
	(Function Attributes): Make it a subsection of the new section.
	(Variable Attributes): Likewise.
	(Type Attributes): Likewise.
	(Label Attributes): Likewise.
	(Enumerator Attributes): Likewise.
	(Attribute Syntax): Likewise.

2025-03-30  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Function Attributes): Merge text from "Target
	Format Checks" into the main discussion of the format and
	format_arg attributes.
	(Target Format Checks): Delete section.

2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>

	PR target/117759
	* config/alpha/alpha-protos.h
	(alpha_expand_unaligned_store_safe_partial): New prototype.
	* config/alpha/alpha.cc (alpha_expand_movmisalign)
	(alpha_expand_block_move, alpha_expand_block_clear): Handle
	TARGET_SAFE_PARTIAL.
	(alpha_expand_unaligned_store_safe_partial)
	(alpha_expand_unaligned_store_words_safe_partial)
	(alpha_expand_clear_safe_partial_nobwx): New functions.
	* config/alpha/alpha.md (insvmisaligndi): Handle
	TARGET_SAFE_PARTIAL.
	* config/alpha/alpha.opt (msafe-partial): New option.
	* config/alpha/alpha.opt.urls: Regenerate.
	* doc/invoke.texi (Option Summary, DEC Alpha Options): Document
	the new option.

2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>

	PR target/117759
	* config/alpha/alpha-modes.def (OI): New integer mode.
	* config/alpha/alpha-protos.h (alpha_expand_mov_safe_bwa): New
	prototype.
	* config/alpha/alpha.cc (alpha_expand_mov_safe_bwa): New
	function.
	(alpha_secondary_reload): Handle TARGET_SAFE_BWA.
	* config/alpha/alpha.md (aligned_store_safe_bwa)
	(unaligned_store<mode>_safe_bwa, reload_out<mode>_safe_bwa)
	(reload_out<mode>_unaligned_safe_bwa): New expanders.
	(mov<mode>, movcqi, reload_out<mode>_aligned): Handle
	TARGET_SAFE_BWA.
	(reload_out<mode>): Guard against TARGET_SAFE_BWA.
	* config/alpha/alpha.opt (msafe-bwa): New option.
	* config/alpha/alpha.opt.urls: Regenerate.
	* doc/invoke.texi (Option Summary, DEC Alpha Options): Document
	the new option.

2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>

	* function.h (struct function): Add
	`split_basic_blocks_after_reload' member.
	* lra.cc (lra): Handle it.
	* reload1.cc (reload): Likewise.

2025-03-30  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha-protos.h (alpha_emit_unlikely_jump): New
	prototype.
	* config/alpha/alpha.cc (emit_unlikely_jump): Rename to...
	(alpha_emit_unlikely_jump): ... this.  Return the insn emitted.
	(alpha_split_atomic_op, alpha_split_compare_and_swap)
	(alpha_split_compare_and_swap_12, alpha_split_atomic_exchange)
	(alpha_split_atomic_exchange_12): Update call sites accordingly.

2025-03-30  LIU Hao  <lh_mouse@126.com>

	* config/mingw/winnt.cc (mingw_pe_file_end): Add `.p2align`.

2025-03-29  Iain Sandoe  <iain@sandoe.co.uk>

	PR cobol/119283
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Check for host memrchr.

2025-03-29  Lulu Cheng  <chenglulu@loongson.cn>

	* doc/invoke.texi: Modify the description of '-mld-seq-sa'.

2025-03-29  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch-def.cc
	(la464_align): Add settings for labels.
	(la664_align): Likewise.
	* config/loongarch/loongarch-opts.cc
	(loongarch_target_option_override): Likewise.
	* config/loongarch/loongarch-tune.h
	(struct loongarch_align): Implement the function `label_`.

2025-03-28  Jakub Jelinek  <jakub@redhat.com>

	* common.opt.urls: Regenerate.

2025-03-28  Jakub Jelinek  <jakub@redhat.com>

	* Makefile.in (gcc.srcextra): Use sed to turn .../gcc/gengtype-lex.l
	in #line directives into just gengtype-lex.l.

2025-03-28  Andrew MacLeod  <amacleod@redhat.com>

	* range-op.cc (operator_mult::op1_range): If the LHS does not
	contain zero, return non-zero.

2025-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119483
	* tree-tailcall.cc (find_tail_calls): Handle noreturn musttail
	calls.
	(eliminate_tail_call): Likewise.
	(tree_optimize_tail_calls_1): If cfun->has_musttail and
	diag_musttail, handle also basic blocks with no successors
	with noreturn musttail calls.
	* calls.cc (can_implement_as_sibling_call_p): Allow ECF_NORETURN
	calls if they are musttail calls.

2025-03-28  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119484
	* ipa-sra.cc (isra_analyze_call): Don't set m_return_ignored if
	gimple_call_must_tail_p even if it doesn't have lhs.

2025-03-28  Richard Biener  <rguenther@suse.de>

	* fold-const.h (native_encode_real): Export.
	* fold-const.cc (native_encode_real): Change API to take
	mode and REAL_VALUE_TYPE.
	(native_encode_expr): Adjust.

2025-03-27  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.cc (ix86_redzone_clobber): Use integer, not rtx
	as the third argument of plus_constant.

2025-03-27  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_insn_both, znver5_insn_both):
	New reservation for ALU ops with load and store.

2025-03-27  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_add, znver4_sse_add_load,
	znver5_sse_add_load, znver4_sse_add1, znver4_sse_add1_load,
	znver5_sse_add1_load, znver4_sse_mul, znver4_sse_mul_load,
	znver5_sse_mul_load, znver4_sse_cvt, znver4_sse_cvt_load,
	znver5_sse_cvt_load, znver4_sse_shuf, znver5_sse_shuf,
	znver4_sse_shuf_load, znver5_sse_shuf_load,
	znver4_sse_cmp_avx128, znver5_sse_cmp_avx128,
	znver4_sse_cmp_avx128_load, znver5_sse_cmp_avx128_load):
	Also handle DFmode.
	(znver4_sse_muladd_load, znver5_sse_muladd_load): Use
	ssemuladd type.

2025-03-27  Tobias Burnus  <tburnus@baylibre.com>

	* gimplify.cc (modify_call_for_omp_dispatch): Remove sorry.

2025-03-27  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/neon.md (<fmaxmin><mode>3): Move pattern from here...
	* config/arm/vec-common.md (<fmaxmin><mode>3): ... to here.  Convert
	to define_expand and disable the pattern when denormal values might
	get truncated to zero.  Iterate on VF to add V4HF and V8HF variants.

2025-03-27  Hu, Lin1  <lin1.hu@intel.com>

	PR target/119425
	* config/i386/sse.md:
	(vec_set<mode>_0): Set the alternative with constraint "jm"'s
	attribute "addr" to "gpr16".
	(<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>):
	Ditto.
	(avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
	(avx2_pblendd<mode>): Ditto.
	(aesenc): Ditto.
	(aesenclast): Ditto.
	(aesdec): Ditto.
	(aesdeclast): Ditto.
	(vaesdec_<mode>): Ditto.
	(vaesdeclast_<mode>): Ditto.
	(vaesenc_<mode>):: Ditto.
	(vaesenclast_<mode>):: Ditto.
	(aes<aesklvariant>u8): Ditto.
	(*aes<aeswideklvariant>u8): Ditto.

2025-03-27  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/119408
	* config/loongarch/loongarch.cc
	(loongarch_c_mode_for_suffix): New.
	(TARGET_C_MODE_FOR_SUFFIX): Define.

2025-03-26  Jørgen Kvalsvik  <j@lambda.is>

	* builtins.cc (expand_builtin_fork_or_exec): Call
	coverage_instrumentation_p.
	* ipa-inline.cc (can_early_inline_edge_p): Likewise.
	* passes.cc (finish_optimization_passes): Likewise.
	* profile.cc (coverage_instrumentation_p): New function.
	* profile.h (coverage_instrumentation_p): New declaration.
	* tree-profile.cc (tree_profiling): Call
	coverage_instrumentation_p.
	(pass_ipa_tree_profile::gate): Likewise.
	* value-prof.h (coverage_instrumentation_p): New declaration.

2025-03-26  Jørgen Kvalsvik  <j@lambda.is>

	* Makefile.in (OBJS): Add prime-paths.o, path-coverage.o.
	(GTFILES): Add prime-paths.cc, path-coverage.cc
	(GCOV_OBJS): Add graphds.o, prime-paths.o, bitmap.o
	* builtins.cc (expand_builtin_fork_or_exec): Check
	path_coverage_flag.
	* collect2.cc (main): Add -fno-path-coverage to OBSTACK.
	* common.opt: Add new options -fpath-coverage,
	-fpath-coverage-limit, -Wcoverage-too-many-paths
	* doc/gcov.texi: Add --prime-paths, --prime-paths-lines,
	--prime-paths-source documentation.
	* doc/invoke.texi: Add -fpath-coverage, -fpath-coverage-limit,
	-Wcoverage-too-many-paths documentation.
	* gcc.cc: Link gcov on -fpath-coverage.
	* gcov-counter.def (GCOV_COUNTER_PATHS): New.
	* gcov-io.h (GCOV_TAG_PATHS): New.
	(GCOV_TAG_PATHS_LENGTH): New.
	(GCOV_TAG_PATHS_NUM): New.
	* gcov.cc (class path_info): New.
	(struct coverage_info): Add paths, paths_covered.
	(find_prime_paths): New.
	(add_path_counts): New.
	(find_arc): New.
	(print_usage): Add -e, --prime-paths, --prime-paths-lines,
	--prime-paths-source.
	(process_args): Likewise.
	(json_set_prime_path_coverage): New.
	(output_json_intermediate_file): Call
	json_set_prime_path_coverage.
	(process_all_functions): Call find_prime_paths.
	(generate_results): Call add_path_counts.
	(read_graph_file): Read path counters.
	(read_count_file): Likewise.
	(function_summary): Print path counts.
	(file_summary): Likewise.
	(print_source_line): New.
	(print_prime_path_lines): New.
	(print_inlined_separator): New.
	(print_prime_path_source): New.
	(output_path_coverage): New.
	(output_lines): Print path coverage.
	* ipa-inline.cc (can_early_inline_edge_p): Check
	path_coverage_flag.
	* passes.cc (finish_optimization_passes): Likewise.
	* profile.cc (branch_prob): Likewise.
	* selftest-run-tests.cc (selftest::run_tests): Run path coverage
	tests.
	* selftest.h (path_coverage_cc_tests): New declaration.
	* tree-profile.cc (tree_profiling): Check path_coverage_flag.
	(pass_ipa_tree_profile::gate): Likewise.
	* path-coverage.cc: New file.
	* prime-paths.cc: New file.

2025-03-26  Jørgen Kvalsvik  <j@lambda.is>

	* gcov.cc (generate_results): Count branches, conditions.
	(function_summary): Output branch, calls, condition count.

2025-03-26  Thomas Schwinge  <thomas@codesourcery.com>

	PR driver/101544
	* gcc.cc (driver_handle_option): Forward host '-lstdc++' to
	offloading compilation.
	* config/gcn/mkoffload.cc (main): Adjust.
	* config/nvptx/mkoffload.cc (main): Likewise.

2025-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119417
	* tree-ssa-math-opts.cc (convert_mult_to_widen): Before changing
	typeN because actual_precision/from_unsignedN differs cast rhsN
	to typeN if it has a different type.
	(convert_plusminus_to_widen): Before changing
	typeN because actual_precision/from_unsignedN differs cast mult_rhsN
	to typeN if it has a different type.

2025-03-26  Jakub Jelinek  <jakub@redhat.com>
	    Andi Kleen  <ak@gcc.gnu.org>

	PR gcov-profile/118442
	* profile.cc (branch_prob): Ignore EDGE_FAKE edges from musttail calls
	to EXIT.

2025-03-26  Jakub Jelinek  <jakub@redhat.com>

	PR target/119450
	* config/i386/i386.md (narrow test peephole2): Test for
	offsettable_memref_p in condition.

2025-03-26  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_sse_mov_fp, znver4_sse_mov_fp_load,
	znver5_sse_mov_fp_load, znver4_sse_mov_fp_store,
	znver5_sse_mov_fp_store): Also match V1SF and DF.

2025-03-26  Richard Biener  <rguenther@suse.de>

	PR target/119010
	* config/i386/zn4zn5.md (znver4_imov_double_store,
	znver5_imov_double_store, znver4_imov_store, znver5_imov_store):
	New reservations for integer stores.

2025-03-26  Richard Biener  <rguenther@suse.de>

	PR middle-end/118795
	* match.pd (vec_perm <vec_perm <a, b>> -> vec_perm <a, b>):
	Use the appropriate check to see whether the original
	outer permute was supported.

2025-03-26  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2-512convertintrin.h (_mm512_mask_cvtx2ps_ph): Formatting fixes
	(_mm512_mask_cvtx_round2ps_ph): Ditto
	(_mm512_maskz_cvtx_round2ps_ph): Ditto
	(_mm512_cvtbiassph_bf8): Rename to _mm512_cvts_biasph_bf8.
	(_mm512_mask_cvtbiassph_bf8): Rename to _mm512_mask_cvts_biasph_bf8.
	(_mm512_maskz_cvtbiassph_bf8): Rename to _mm512_maskz_cvts_biasph_bf8.
	(_mm512_cvtbiassph_hf8): Rename to _mm512_cvts_biasph_hf8.
	(_mm512_mask_cvtbiassph_hf8): Rename to _mm512_mask_cvts_biasph_hf8.
	(_mm512_maskz_cvtbiassph_hf8): Rename to _mm512_maskz_cvts_biasph_hf8.
	(_mm512_cvts2ph_bf8): Rename to _mm512_cvts_2ph_bf8.
	(_mm512_mask_cvts2ph_bf8): Rename to _mm512_mask_cvts_2ph_bf8.
	(_mm512_maskz_cvts2ph_bf8): Rename to _mm512_maskz_cvts_2ph_bf8.
	(_mm512_cvts2ph_hf8): Rename to _mm512_cvts_2ph_hf8.
	(_mm512_mask_cvts2ph_hf8): Rename to _mm512_mask_cvts_2ph_hf8.
	(_mm512_maskz_cvts2ph_hf8): Rename to _mm512_maskz_cvts_2ph_hf8.
	(_mm512_cvtsph_bf8): Rename to _mm512_cvts_ph_bf8.
	(_mm512_mask_cvtsph_bf8): Rename to _mm512_mask_cvts_ph_bf8.
	(_mm512_maskz_cvtsph_bf8): Rename to _mm512_maskz_cvts_ph_bf8.
	(_mm512_cvtsph_hf8): Rename to _mm512_cvts_ph_hf8.
	(_mm512_mask_cvtsph_hf8): Rename to _mm512_mask_cvts_ph_hf8.
	(_mm512_maskz_cvtsph_hf8): Rename to _mm512_maskz_cvts_ph_hf8.
	* config/i386/avx10_2convertintrin.h
	(_mm_cvtbiassph_bf8): Rename to _mm_cvts_biasph_bf8.
	(_mm_mask_cvtbiassph_bf8): Rename to _mm_mask_cvts_biasph_bf8.
	(_mm_maskz_cvtbiassph_bf8): Rename to _mm_maskz_cvts_biasph_bf8.
	(_mm256_cvtbiassph_bf8): Rename to _mm256_cvts_biasph_bf8.
	(_mm256_mask_cvtbiassph_bf8): Rename to _mm256_mask_cvts_biasph_bf8.
	(_mm256_maskz_cvtbiassph_bf8): Rename to _mm256_maskz_cvts_biasph_bf8.
	(_mm_cvtbiassph_hf8): Rename to _mm_cvts_biasph_hf8.
	(_mm_mask_cvtbiassph_hf8): Rename to _mm_mask_cvts_biasph_hf8.
	(_mm_maskz_cvtbiassph_hf8): Rename to _mm_maskz_cvts_biasph_hf8.
	(_mm256_cvtbiassph_hf8): Rename to _mm256_cvts_biasph_hf8.
	(_mm256_mask_cvtbiassph_hf8): Rename to _mm256_mask_cvts_biasph_hf8.
	(_mm256_maskz_cvtbiassph_hf8): Rename to _mm256_maskz_cvts_biasph_hf8.
	(_mm_cvts2ph_bf8): Rename to _mm_cvts_2ph_bf8.
	(_mm_mask_cvts2ph_bf8): Rename to _mm_mask_cvts_2ph_bf8.
	(_mm_maskz_cvts2ph_bf8): Rename to _mm_maskz_cvts_2ph_bf8.
	(_mm256_cvts2ph_bf8): Rename to _mm256_cvts_2ph_bf8.
	(_mm256_mask_cvts2ph_bf8): Rename to _mm256_mask_cvts_2ph_bf8.
	(_mm256_maskz_cvts2ph_bf8): Rename to _mm256_maskz_cvts_2ph_bf8.
	(_mm_cvts2ph_hf8): Rename to _mm_cvts_2ph_hf8.
	(_mm_mask_cvts2ph_hf8): Rename to _mm_mask_cvts_2ph_hf8.
	(_mm_maskz_cvts2ph_hf8): Rename to _mm_maskz_cvts_2ph_hf8.
	(_mm256_cvts2ph_hf8): Rename to _mm256_cvts_2ph_hf8.
	(_mm256_mask_cvts2ph_hf8): Rename to _mm256_mask_cvts_2ph_hf8.
	(_mm256_maskz_cvts2ph_hf8): Rename to _mm256_maskz_cvts_2ph_hf8.
	(_mm_cvtsph_bf8): Rename to _mm_cvts_ph_bf8.
	(_mm_mask_cvtsph_bf8): Rename to _mm_mask_cvts_ph_bf8.
	(_mm_maskz_cvtsph_bf8): Rename to _mm_maskz_cvts_ph_bf8.
	(_mm256_cvtsph_bf8): Rename to _mm256_cvts_ph_bf8.
	(_mm256_mask_cvtsph_bf8): Rename to _mm256_mask_cvts_ph_bf8.
	(_mm256_maskz_cvtsph_bf8): Rename to _mm256_maskz_cvts_ph_bf8.
	(_mm_cvtsph_hf8): Rename to _mm_cvts_ph_hf8.
	(_mm_mask_cvtsph_hf8): Rename to _mm_mask_cvts_ph_hf8.
	(_mm_maskz_cvtsph_hf8): Rename to _mm_maskz_cvts_ph_hf8.
	(_mm256_cvtsph_hf8): Rename to _mm256_cvts_ph_hf8.
	(_mm256_mask_cvtsph_hf8): Rename to _mm256_mask_cvts_ph_hf8.
	(_mm256_maskz_cvtsph_hf8): Rename to _mm256_maskz_cvts_ph_hf8.

2025-03-25  Iain Sandoe  <iain@sandoe.co.uk>

	* gcov.cc (get_gcov_intermediate_filename): Use lbasename().

2025-03-25  Iain Sandoe  <iain@sandoe.co.uk>

	PR other/119250
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Match the configure test in libiberty when checking
	the basename decl.

2025-03-25  Sandra Loosemore  <sloosemore@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* gimplify.cc (modify_call_for_omp_dispatch): Adjust arguments.
	Remove the "sorry" for the case where new interop objects must be
	constructed, and add code to make it work instead.
	(expand_variant_call_expr): Adjust arguments and call to
	modify_call_for_omp_dispatch.
	(gimplify_variant_call_expr): Simplify logic for calling
	expand_variant_call_expr.

2025-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR target/96226
	PR target/119428
	* config/i386/i386.md (splitter after *<rotate_insn><mode>3_mask,
	splitter after *<rotate_insn><mode>3_mask_1): Revert 2020-12-05
	changes.

2025-03-25  Vineet Gupta  <vineetg@rivosinc.com>

	PR target/119224
	* config/riscv/autovec.md: Disable abd splitter.

2025-03-25  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/119325
	* doc/install.texi (gcn): Change ROCm > 6.3.2 to >6.3.3 for generic
	support; mention Newlib commit that fixes a SIMD math issue.

2025-03-25  Tobias Burnus  <tburnus@baylibre.com>

	PR middle-end/118627
	* omp-general.cc (omp_parse_access_method): Change to return void.
	(omp_parse_access_methods): Return void; remove 'if' around a
	function call.
	(omp_parse_expr): Remove 'if' around a function call.

2025-03-25  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md (<US>mull): Add alternatives that allow Rs
	to be tied to either Rdlo or Rdhi.

2025-03-25  Richard Earnshaw  <rearnsha@arm.com>

	PR middle-end/117811
	* optabs.cc (expand_binop_directly): Remove LAST as an argument,
	instead record the last insn on entry.  Only delete insns if
	we need to restart and restart by calling ourself, not expand_binop.
	(expand_binop): Update callers to expand_binop_directly.  If it
	fails to expand the operation, delete back to LAST.

2025-03-25  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119376
	* tree-tailcall.cc (suitable_for_tail_opt_p): Add DIAG_MUSTTAIL
	argument, propagate it down to maybe_error_musttail.
	(suitable_for_tail_call_opt_p): Likewise.
	(maybe_error_musttail): Add DIAG_MUSTTAIL argument.  Don't emit error
	for gimple_call_must_tail_p calls if it is false.
	(find_tail_calls): Add DIAG_MUSTTAIL argument, propagate it down to
	maybe_error_musttail, suitable_for_tail_opt_p,
	suitable_for_tail_call_opt_p and find_tail_calls calls.
	(tree_optimize_tail_calls_1): Add DIAG_MUSTTAIL argument, propagate
	it down to find_tail_calls and if set, clear cfun->has_musttail flag
	at the end.  Rename OPT_MUSTCALL argument to OPT_MUSTTAIL.
	(execute_tail_calls): Pass true to DIAG_MUSTTAIL
	tree_optimize_tail_calls_1 argument.
	(pass_tail_recursion::execute): Pass false to DIAG_MUSTTAIL
	tree_optimize_tail_calls_1 argument.
	(pass_musttail::gate): Don't test flag_optimize_sibling_calls.
	(pass_musttail::execute): Pass true to DIAG_MUSTTAIL
	tree_optimize_tail_calls_1 argument.

2025-03-24  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118616
	* tree-vect-generic.cc (expand_vector_conversion): Add
	an assert that converts vect is non empty if
	supportable_indirect_convert_operation returns true.

2025-03-24  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/101544
	* config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls)
	[ACCEL_COMPILER]: Special-case certain host-setup symbol aliases.
	* varasm.cc (do_assemble_alias) [ACCEL_COMPILER]: Adjust.

2025-03-24  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.cc (default_ptx_version_option): Default at
	least to '-mptx=6.3'.
	* doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_available_features): Change to FEATURE_AVX10_1.
	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AVX10_1_512_SET): Renamed to ...
	(OPTION_MASK_ISA2_AVX10_1_SET): ... this.
	(OPTION_MASK_ISA2_AVX10_2_SET): Use renamed macro.
	(OPTION_MASK_ISA2_AVX10_1_UNSET): Ditto.
	(ix86_handle_option): Ditto.
	(processor_alias_table): Use P_PROC_AVX10_1.
	* common/config/i386/i386-cpuinfo.h
	(enum feature_priority): Rename from AVX10_1_512 to AVX10_1.
	(enum processor_features): Ditto.
	* common/config/i386/i386-isas.h: Add avx10.1.
	* config/i386/driver-i386.cc
	(host_detect_local_cpu): Use renamed enum.
	* config/i386/i386-c.cc
	(ix86_target_macros_internal): Rename to avx10.1.
	* config/i386/i386-isa.def (AVX10_1_512): Rename to ...
	(AVX10_1): ... this.
	* config/i386/i386-options.cc (isa2_opts): Rename to avx10.1.
	(ix86_valid_target_attribute_inner_p): Add avx10.1.
	(ix86_option_override_internal): Rename to AVX10_1.
	Revise warnings to mention behavior change for option
	combination in GCC 16.
	* config/i386/i386.h (PTA_DIAMONDRAPIDS): Use AVX10_1.
	* config/i386/i386.opt: Add avx10.1.
	Add deprecate warnings for mevex512 and mavx10.1-256/512.
	* config/i386/i386.opt.urls: Add avx10.1.
	* doc/extend.texi: Ditto.
	* doc/sourcebuild.texi: Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h
	(get_available_features): Revise the logic AVX10 version.
	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AVX10_2_256_SET): Removed.
	(OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto.
	(OPTION_MASK_ISA2_AVX10_2_SET): New.
	(OPTION_MASK_ISA2_AMX_AVX512_SET): Use AVX10.2 macro.
	(OPTION_MASK_ISA2_AVX10_2_UNSET): Ditto.
	(ix86_handle_option): Remove avx10.2-256 part. Adjust avx10.2.
	* common/config/i386/i386-cpuinfo.h
	(enum processor_features): Remove FEATURE_AVX10_2_256 and skip
	the value for it. Change the name from FEATURE_AVX10_2_512 to
	FEATURE_AVX10_2.
	* common/config/i386/i386-isas.h: Remove avx10.2-256/512.
	* config/i386/avx10_2-512bf16intrin.h: Use avx10.2 instead of
	avx10.2-256/512.
	* config/i386/avx10_2-512convertintrin.h: Ditto.
	* config/i386/avx10_2-512mediaintrin.h: Ditto.
	* config/i386/avx10_2-512minmaxintrin.h: Ditto.
	* config/i386/avx10_2-512satcvtintrin.h: Ditto.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/avx10_2convertintrin.h: Ditto.
	* config/i386/avx10_2mediaintrin.h: Ditto.
	* config/i386/avx10_2minmaxintrin.h: Ditto.
	* config/i386/avx10_2satcvtintrin.h: Ditto.
	* config/i386/movrsintrin.h: Ditto.
	* config/i386/sm4intrin.h: Ditto.
	* config/i386/cpuid.h (bit_AVX10_256): Removed.
	(bit_AVX10_512): Ditto.
	* config/i386/driver-i386.cc (host_detect_local_cpu): Adjust
	Diamond Rapids and -march=native condition.
	* config/i386/i386-builtin.def (BDESC): Use AVX10.2 macro
	instead of AVX10.2-256/512.
	* config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
	* config/i386/i386-expand.cc
	(ix86_expand_branch): Use TARGET_AVX10_2 instead of specifying
	vector size.
	(ix86_prepare_fp_compare_args): Ditto.
	(ix86_expand_fp_compare): Ditto.
	(ix86_ssecom_setcc): Ditto.
	(ix86_expand_sse_comi): Ditto.
	(ix86_expand_sse_comi_round): Ditto.
	(ix86_check_builtin_isa_match): Ditto.
	* config/i386/i386.cc (ix86_fp_compare_code_to_integer): Ditto.
	(ix86_get_mask_mode): Ditto.
	* config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): Ditto.
	* config/i386/i386.md: Ditto.
	* config/i386/mmx.md: Ditto.
	* config/i386/sse.md: Ditto.
	* config/i386/predicates.md: Ditto.
	* config/i386/i386-isa.def (AVX10_2_256): Removed.
	(AVX10_2_512): Removed.
	(AVX10_2): New.
	* config/i386/i386-options.cc
	(isa2_opts): Remove avx10.2-256/512.
	(ix86_valid_target_attribute_inner_p): Ditto.
	(PTA_DIAMONDRAPIDS): Use PTA_AVX10_2.
	* config/i386/i386.opt: Remove avx10.2-256/512.
	* config/i386/i386.opt.urls: Ditto.
	* doc/extend.texi: Ditto.
	* doc/invoke.texi: Ditto.
	* doc/sourcebuild.texi: Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config.gcc: Add avx10_2roundingintrin.h.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT,
	V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT,
	UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT.
	* config/i386/immintrin.h: Include avx10_2roundingintrin.h.
	* config/i386/sse.md: Change subst_attr name due to renaming.
	* config/i386/subst.md:
	(<round_mode512bit_condition>): Add condition check for avx10.2
	rounding control 256bit intrins and renamed to ...
	(<round_mode_condition>): ...this.
	(round_saeonly_mode512bit_condition): Add condition check for
	avx10.2 rounding control 256 bit intris and renamed to ...
	(round_saeonly_mode_condition): ...this.
	* config/i386/avx10_2roundingintrin.h: New file.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: Add new intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT,
	V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT.
	* config/i386/sse.md:
	(avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>):
	Add condition check.
	(avx512fp16_vcvtpd2ph_v4df_mask_round): New expand.
	(*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Change name to
	avx512fp16_vcvt<castmode>2ph_<mode>_mask<round_name>_1
	and extend pattern to generate 256bit insns.
	(avx_cvtpd2ps256<mask_name>): Change name to
	avx_cvtpd2ps256<mask_name><round_name> and extend pattern to
	generate 256bit insns.
	* config/i386/subst.md (round_applied): New condition.
	(round_suff): New iterator.
	(round_mode_condition): Add V32HI check for 512bit.
	(round_saeonly_mode_condition): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: Add new intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT.
	* config/i386/sse.md:
	(avx_cvtpd2dq256<mask_name>): Change name to
	avx_cvtpd2dq256<mask_name><round_name> and extend pattern to
	generate 256bit insns.
	(fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
	Add round_mode_condition.
	* config/i386/subst.md (round_pd2udqsuff): New iterator.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT,
	V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT.
	* config/i386/sse.md:
	(avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>):
	Add condition check.
	(avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode>
	<mask_name><round_name>):
	Ditto.
	(avx512fp16_float_extend_ph<mode>2<mask_name>): Extend round saeonly.
	(vcvtph2ps256<mask_name>): Ditto.
	* config/i386/subst.md
	(round_saeonly_applied): New condition.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT
	V8HF_FTYPE_V8SF_V8HF_UQI_INT.
	* config/i386/sse.md
	(avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>):
	Add round condition check.
	* config/i386/subst.md (round_mode_condition): Add V16HI check for
	256bit.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT.
	* config/i386/sse.md
	(<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>):
	Extend to round.
	(<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
	Add round condition check.
	* config/i386/subst.md (round_constraint4): New.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT,
	V8HF_FTYPE_V4DI_V8HF_UQI_INT.
	* config/i386/sse.md:
	(avx512fp16_vcvt<floatsuffix>qq2ph_v4di_mask_round): New expand.
	(*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask):
	Extend round control and add "_1" suffix.
	(float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
	Add condition check.
	(float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
	Ditto.
	(float<floatunssuffix><mode><ssePSmode2lower>2<mask_name><round_name>):
	Limit suffix output.
	(unspec_fix_truncv4dfv4si2<mask_name>): Extend round control.
	(unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
	* config/i386/subst.md (round_qq2pssuff): New iterator.
	(round_saeonly_suff): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>):
	Extend round control for 256bit.
	(unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
	Ditto.
	(avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>):
	Add condition check.
	* config/i386/subst.md
	(round_saeonly_mode_condition): Add V16HI check for 256bit.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md
	(unspec_fix_truncv8sfv8si2<mask_name>): Extend rounding control.
	(<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
	Ditto.
	(<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):
	Add condition check.
	(fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
	Remove round_saeonly_name.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V16HF_FTYPE_V16HI_V16HF_UHI_INT.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT,
	V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT,
	V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT,
	V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT.
	* config/i386/sse.md:
	(<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>):
	Add condition check.
	(<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md:
	(<avx512>_fmadd_<mode>_mask3<round_name>): Add condition check.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md:
	(<avx512>_fmaddsub_<mode>_mask<round_name>): Add condition check.
	(<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md:
	(<avx512>_fmsub_<mode>_mask<round_name>): Add condition check.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md:
	(<avx512>_fnmsub_<mode>_mask3<round_name>): Add condition check.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
	V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT,
	V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT,
	V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT.
	* config/i386/sse.md:
	(<avx512>_getexp<mode><mask_name><round_saeonly_name>):
	Add condition check.
	(<avx512>_getmant<mode><mask_name><round_saeonly_name>):
	Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/i386-expand.cc (ix86_expand_round_builtin):
	Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT,
	V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.
	* config/i386/sse.md:
	(<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
	Add condition check.
	(<avx512>_rndscale<mode><mask_name><round_saeonly_name>): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/sse.md:
	(<avx512>_scalef<mode><mask_name><round_name>): Add condition check.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	Revert:
	2024-08-19  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2roundingintrin.h: New intrins.
	* config/i386/i386-builtin.def (BDESC): Add new builtins.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/avx10_2satcvtintrin.h: Remove rounding intrins.
	Use non-round intrins.
	* config/i386/i386-builtin.def (BDESC): Ditto.

2025-03-24  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/avx10_2convertintrin.h: Remove rounding intrins.
	Use non-round builtins.
	* config/i386/avx10_2minmaxintrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/i386-builtin-types.def: Remove unused type.
	* config/i386/i386-expand.cc
	(ix86_expand_args_builtin): Ditto.
	(ix86_expand_round_builtin): Ditto.

2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Nonlocal Gotos): Group with other built-ins
	sections.
	(Constructing Calls): Likewise.
	(Pragmas): Move earlier in the section, before the built-ins docs.
	(Thread-Local): Likewise.
	(OpenMP): Likewise.
	(OpenACC): Likewise.

2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Syntax Extensions): New section.
	(Statement Exprs): Make it a subsection of the above.
	(Local Labels): Likewise.
	(Labels as Values): Likewise.
	(Nested Functions): Likewise.
	(Typeof): Likewise.
	(Offsetof): Likewise.
	(Alignment): Likewise.
	(Incomplete Enums): Likewise.
	(Variadic Macros): Likewise.
	(Conditionals): Likewise.
	(Case Ranges): Likewise.
	(Mixed Labels and Declarations): Likewise.
	(C++ Comments): Likewise.
	(Escaped Newlines): Likewise.
	(Hex Floats): Likewise.
	(Binary constants): Likewise.
	(Dollar Signs): Likewise.
	(Character Escapes): Likewise.
	(Alternate Keywords): Likewise.
	(Function Names): Likewise.
	(Semantic Extensions): New section.
	(Function Prototypes): Make it a subsection of the above.
	(Pointer Arith): Likewise.
	(Variadic Pointer Args): Likewise.
	(Pointers to Arrays): Likewise.
	(Const and Volatile Functions): Likewise.

2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Aggregate Types): New section.
	(Variable Length): Make it a subsection of the above.
	(Zero Length): Likewise.
	(Empty Structures): Likewise.
	(Flexible Array Members in Unions): Likewise.
	(Flexible Array Members alone in Structures): Likewise.
	(Unnamed Fields): Likewise.
	(Cast to Union): Likewise.
	(Subscripting): Likewise.
	(Initializers): Likewise.
	(Compound Literals): Likewise.
	(Designated Inits): Likewise.

2025-03-23  Sandra Loosemore  <sloosemore@baylibre.com>

	PR other/42270
	* doc/extend.texi (Additional Numeric Types): New section.
	(__int128): Make it a subsection of the above.
	(Long Long): Likewise.
	(Complex): Likewise.
	(Floating Types): Likewise.
	(Half-Precision): Likewise.
	(Decimal Float): Likewise.
	(Fixed-Point): Likewise.

2025-03-23  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-mcus.def: Add AVR32SD20, AVR32SD28, AVR32SD32,
	AVR64SD28, AVR64SD32, AVR64SD48.
	* doc/avr-mmcu.texi: Rebuild.

2025-03-23  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Optimization Options)
	<-maccumulate-args>: Refer to -fdefer-pop.
	<-muse-nonzero-bits>: Re-formulate what the option does.

2025-03-22  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_option_override): Use
	"avr-peep2-after-fuse-move" as dump name instead of "peephole2".

2025-03-22  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.opt.urls: Add -muse-nonzero-bits.

2025-03-22  Georg-Johann Lay  <avr@gjlay.de>

	PR target/119421
	* config/avr/avr.opt (-muse-nonzero-bits): New option.
	* config/avr/avr-protos.h (avr_nonzero_bits_lsr_operands_p): New.
	(make_avr_pass_split_nzb): New.
	* config/avr/avr.cc (avr_nonzero_bits_lsr_operands_p): New function.
	(avr_rtx_costs_1): Return costs for the new insns.
	* config/avr/avr.md (nzb): New insn attribute.
	(*nzb=1.<code>...): New insns to better support some bit
	operations for <code> in AND, IOR, XOR.
	* config/avr/avr-passes.def (avr_pass_split_nzb): Insert pass
	atfer combine.
	* config/avr/avr-passes.cc (avr_pass_data_split_nzb). New pass data.
	(avr_pass_split_nzb): New pass.
	(make_avr_pass_split_nzb): New function.
	* common/config/avr/avr-common.cc (avr_option_optimization_table):
	Enable -muse-nonzero-bits for -O2 and higher.
	* doc/invoke.texi (AVR Options): Document -muse-nonzero-bits.

2025-03-22  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_attrs_section_name): New function.
	(avr_insert_attributes): Add "used" attribute to functions
	in .initN and .finiN.

2025-03-22  Iain Sandoe  <iain@sandoe.co.uk>

	* config/darwin.h (DL_LIBRARY): New.

2025-03-22  Jakub Jelinek  <jakub@redhat.com>

	* gimplify.cc (warn_switch_unreachable_and_auto_init_r): Add missing
	space in the middle of diagnostics.
	* tree-vect-stmts.cc (vectorizable_load): Add missing space in the
	middle of debug dump message.
	* sym-exec/sym-exec-state.cc (state::check_args_compatibility):
	Likewise.

2025-03-21  Surya Kumari Jangala  <jskumari@linux.ibm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/116028
	PR rtl-optimization/118615
	* lra-constraints.cc (first_call_insn): New variable.
	(split_reg): Spill register before first_call_insn if call_save_p
	and the call is in a different bb in the ebb.
	(split_if_necessary): Formatting fix.
	(inherit_in_ebb): Set first_call_insn when handling a CALL_INSN.
	For successful split_if_necessary with before_p, only change
	use_insn if it emitted any new instructions before curr_insn.
	Clear first_call_insn before returning.

2025-03-21  Paul-Antoine Arras  <parras@baylibre.com>
	    Tobias Burnus  <tburnus@baylibre.com>

	* builtin-types.def
	(BT_FN_VOID_INT_INT_PTR_PTR_PTR_INT_PTR_INT_PTR_UINT_PTR): New.
	* gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_INTEROP.
	* gimple-pretty-print.cc (dump_gimple_omp_interop): New function.
	(pp_gimple_stmt_1): Handle GIMPLE_OMP_INTEROP.
	* gimple.cc (gimple_build_omp_interop): New function.
	(gimple_copy): Handle GIMPLE_OMP_INTEROP.
	* gimple.def (GIMPLE_OMP_INTEROP): Define.
	* gimple.h (gimple_build_omp_interop): Declare.
	(gimple_omp_interop_clauses): New function.
	(gimple_omp_interop_clauses_ptr): Likewise.
	(gimple_omp_interop_set_clauses): Likewise.
	(gimple_return_set_retval): Handle GIMPLE_OMP_INTEROP.
	* gimplify.cc (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_INIT,
	OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY.
	(gimplify_omp_interop): New function.
	(gimplify_expr): Replace sorry with call to gimplify_omp_interop.
	* omp-builtins.def (BUILT_IN_GOMP_INTEROP): Define.
	* omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_INIT,
	OMP_CLAUSE_USE and OMP_CLAUSE_DESTROY.
	(scan_omp_1_stmt): Handle GIMPLE_OMP_INTEROP.
	(lower_omp_interop_action_clauses): New function.
	(lower_omp_interop): Likewise.
	(lower_omp_1): Handle GIMPLE_OMP_INTEROP.

2025-03-21  Jason Merrill  <jason@redhat.com>

	PR c++/114992
	* multiple_target.cc (create_dispatcher_calls):
	remove_from_same_comdat_group before add_to_same_comdat_group.

2025-03-21  Dhruv Chawla  <dhruvc@nvidia.com>

	* config/aarch64/aarch64-cores.def (olympus): New entry.
	* config/aarch64/aarch64-tune.md: Regenerate.
	* doc/invoke.texi (AArch64 Options): Document the above.

2025-03-21  Antoni Boucher  <bouanto@zoho.com>

	* config/i386/i386-rust-and-jit.inc: New file.
	* config/i386/i386-rust.cc: Move code to i386-rust-and-jit.inc.

2025-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119376
	* ipa-icf-gimple.cc (func_checker::compare_gimple_call): Return false
	for gimple_call_must_tail_p mismatches.

2025-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119376
	* ipa-split.cc (split_function): Call gimple_call_set_must_tail
	on the call to outlined partition if has_musttail and
	!add_tsan_func_exit.

2025-03-21  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/119376
	* tree-inline.cc (remap_gimple_stmt): Silently clear
	gimple_call_must_tail_p on inlined call stmts if id->call_stmt
	is a call without that flag set.

2025-03-21  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/119235
	* config/s390/s390.cc (s390_hard_regno_mode_ok): Accept only
	Pmode for registers AP/FP/RA.

2025-03-21  Richard Biener  <rguenther@suse.de>

	* cgraphunit.cc (symbol_table::finalize_compilation_unit):
	Put early debug generation under TV_SYMOUT.

2025-03-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/118914
	* combine.cc (recog_for_combine): Add old_nregs and new_nregs
	argument (defaulting to 0). Update call to recog_for_combine_1.
	(combine_split_insns): Add old_nregs and new_nregs arguments,
	store the old and new max registers to them.
	(try_combine): Update calls to combine_split_insns and
	pass old_nregs and new_nregs for the i3 call to recog_for_combine.
	(find_split_point): Update call to combine_split_insns; ignoring
	the values there.
	(recog_for_combine_1): Add old_nregs and new_nregs arguments,
	if the insn was recognized (and not to no-op move), add the
	REG_DEAD notes to pnotes argument.

2025-03-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119389
	* tree-ssa-sccvn.cc (dominated_by_p_w_unex): Limit the number
	of predecessors of a CFG merge we try to skip.

2025-03-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	Revert:
	2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config.gcc: Fail in case of option --with-mode=esa.
	* config/s390/s390.cc (s390_option_override_internal): Default
	to z/Architecture mode.
	* config/s390/s390.h (DRIVER_SELF_SPECS): Ditto.
	* config/s390/s390.opt: Emit a warning for option -mesa.
	* doc/invoke.texi: Document the change.

2025-03-20  Filip Kastl  <fkastl@suse.cz>

	* gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Don't
	increment after vec::unordered_remove().

2025-03-20  Richard Biener  <rguenther@suse.de>

	* tree-core.h (function_decl_type): Make a scoped enum.
	* tree.h (set_function_decl_type): Adjust.
	(DECL_IS_OPERATOR_NEW_P): Likewise.
	(DECL_SET_IS_OPERATOR_NEW): Likewise.
	(DECL_IS_OPERATOR_DELETE_P): Likewise.
	(DECL_SET_IS_OPERATOR_DELETE): Likewise.
	(DECL_LAMBDA_FUNCTION_P): Likewise.
	(DECL_SET_LAMBDA_FUNCTION): Likewise.
	* lto-streamer-out.cc (hash_tree): Hash all of
	FUNCTION_DECL_DECL_TYPE.
	* tree-streamer-out.cc (pack_ts_function_decl_value_fields):
	Adjust.
	* config/aarch64/aarch64-simd-pragma-builtins.def (vcombine_mf8):
	Use literal zero instead of NONE.

2025-03-20  liuhongt  <hongtao.liu@intel.com>

	PR target/117452
	* config/i386/i386.md (cbranchbf4): Use
	ix86_fp_comparison_operator instead of comparison_operator.

2025-03-20  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2-512satcvtintrin.h: Add "s_" before
	intrinsics' core name.
	* config/i386/avx10_2satcvtintrin.h: Ditto.

2025-03-20  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2-512satcvtintrin.h: Add new intrinsics.
	* config/i386/avx10_2satcvtintrin.h: Ditto.
	* config/i386/i386-builtin-types.def:
	Add DEF_FUNCTION_TYPE (V32HI, V32HF, V32HI, USI),
	(V16SI, V16SF, V16SI, UHI), (V8DI, V8SF, V8DI, UQI),
	(V8DI, V8DF, V8DI, UQI), (V8SI, V8DF, V8SI, UQI).
	* config/i386/i386-builtin.def: Add new builtins.
	* config/i386/i386-expand.cc: Handle V16SI_FTYPE_V16SF_V16SI_UHI,
	V32HI_FTYPE_V32HF_V32HI_USI, V8DI_FTYPE_V8SF_V8DI_UQI,
	V8DI_FTYPE_V8DF_V8DI_UQI, V8SI_FTYPE_V8DF_V8SI_UQI.

2025-03-20  Hu, Lin1  <lin1.hu@intel.com>

	* config/i386/avx10_2-512satcvtintrin.h: Change *i[u]bs's type suffix
	of intrin name.
	* config/i386/avx10_2satcvtintrin.h: Ditto.

2025-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/119270
	* ira-costs.cc (calculate_equiv_gains): Ignore equiv init insns
	only for invariants.

2025-03-19  David Malcolm  <dmalcolm@redhat.com>

	PR c/119366
	* diagnostic-format-sarif.cc (test_message_with_embedded_link):
	Convert diagnostic_context from one urlifier to a stack of
	urlifiers, where each node in the stack tracks whether the
	urlifier is owned or borrowed.
	* diagnostic.cc (diagnostic_context::initialize): Likewise.
	(diagnostic_context::finish): Likewise.
	(diagnostic_context::set_urlifier): Delete.
	(diagnostic_context::push_owned_urlifier): New.
	(diagnostic_context::push_borrowed_urlifier): New.
	(diagnostic_context::pop_urlifier): New.
	(diagnostic_context::get_urlifier): Reimplement in terms of stack.
	(diagnostic_context::override_urlifier): Delete.
	* diagnostic.h (diagnostic_context::set_urlifier): Delete decl.
	(diagnostic_context::override_urlifier): Delete decl.
	(diagnostic_context::push_owned_urlifier): New decl.
	(diagnostic_context::push_borrowed_urlifier): New decl.
	(diagnostic_context::pop_urlifier): New decl.
	(diagnostic_context::get_urlifier): Make return value const; hide
	implementation.
	(diagnostic_context::m_urlifier): Replace with...
	(diagnostic_context::urlifier_stack_node): ... this and...
	(diagnostic_context::m_urlifier_stack): ...this.
	* gcc-urlifier.cc
	(auto_override_urlifier::auto_override_urlifier): Reimplement.
	(auto_override_urlifier::~auto_override_urlifier): Reimplement.
	* gcc-urlifier.h (class auto_override_urlifier): Reimplement.
	(auto_urlify_attributes::auto_urlify_attributes): Update for
	pass-by-reference.
	* gcc.cc (driver::global_initializations): Update for
	reimplementation of urlifiers in terms of a stack.
	* toplev.cc (general_init): Likewise.

2025-03-19  Jakub Jelinek  <jakub@redhat.com>

	PR target/119357
	* config/i386/sse.md (pmovmskb 0xffff to ptest splitter,
	*pmovsk_ptest_<mode>_avx512): Force operands[0] into a REG.

2025-03-19  Kyrylo Tkachov  <ktkachov@nvidia.com>

	* config/aarch64/aarch64-arches.def (...): Add SVE2p1.
	* doc/invoke.texi (AArch64 Options): Document +sve2p1 in
	-march=armv9.4-a.

2025-03-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
	fa0-fa7, ft0-ft16, and fs0-fs7.

2025-03-18  Georg-Johann Lay  <avr@gjlay.de>

	PR target/119355
	* config/avr/avr-passes.cc (memento_t::apply): Only
	read values[p.arg] when it is actually used.

2025-03-18  Iain Sandoe  <iain@sandoe.co.uk>

	PR cobol/119301
	* config.in: Regenerate.
	* configure: Regenerate.
	* configure.ac: Add check for get_current_dir_name.

2025-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR c/116545
	* doc/extend.texi (musttail statement attribute): Document
	that musttail GNU attribute can be used as well.

2025-03-18  Michael Matz  <matz@suse.de>

	* config/rs6000/rs6000.opt.urls: Regenerate.

2025-03-18  Jakub Jelinek  <jakub@redhat.com>

	* doc/sourcebuild.texi (dg-output-file): Document.

2025-03-18  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-ssa-sccopy.cc (scc_copy_prop::replace_scc_by_value): Dump
	what is being replaced with what.

2025-03-18  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119307
	* lra.cc (lra_rtx_hash): Handle SUBREG.

2025-03-18  Richard Biener  <rguenther@suse.de>

	PR debug/101533
	* dwarf2out.cc (gen_type_die_with_usage): When we have
	output the typedef already do nothing for a typedef variant.
	Do not set TREE_ASM_WRITTEN on the type.

2025-03-18  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/riscv.md (equality shifted-arith splitter): Do not
	create op AND -1 as it won't be cleaned up post-reload.

2025-03-18  Andrew Pinski  <quic_apinski@quicinc.com>

	* configure: Regenerate.
	* configure.ac: s/gcc_cv_ld64_macosx_version_min/gcc_cv_ld64_macos_version_min/.

2025-03-17  Jeff Law  <jlaw@ventanamicro.com>

	* config/riscv/bitmanip.md (*<or_optab>i<mode>_extrabit): Reject cases
	where we only need to twiddle one bit.  Fix formatting.
	(*andi<mode>extrabit): Likewise.

2025-03-17  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/119285
	* ira-costs.cc (equiv_can_be_consumed_p): Use 2 ways for
	recognizing a valid insn after equiv insertion.

2025-03-17  Michael Matz  <matz@suse.de>

	PR target/112980
	* config/rs6000/rs6000.opt (msplit-patch-nops): New option.
	* doc/invoke.texi (RS/6000 and PowerPC Options): Document it.
	* config/rs6000/rs6000.h (machine_function.stop_patch_area_print):
	New member.
	* config/rs6000/rs6000.cc (rs6000_print_patchable_function_entry):
	Emit split nops under control of that one.
	* config/rs6000/rs6000-logue.cc (rs6000_output_function_prologue):
	Add handling of split patch nops.

2025-03-17  Michal Jires  <mjires@suse.cz>

	* common.opt.urls: Regenerate.

2025-03-17  Michal Jires  <mjires@suse.cz>

	* doc/invoke.texi: (Optimize Options):
	Add incremental LTO flags.

2025-03-17  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/119114
	* config/riscv/autovec.md: Apply & 0x1 mask when initializing
	bitmask vector.

2025-03-17  Ayan Shafqat  <ayan.x.shafqat@gmail.com>

	* config/aarch64/arm_acle.h (__fma, __fmaf): New functions.

2025-03-17  Richard Biener  <rguenther@suse.de>

	* opts.cc (gen_producer_string): Record -D and -U
	with _FORTIFY_SOURCE prefix.

2025-03-16  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116256
	* config/riscv/riscv.md (reassociation splitters): Do not load the
	adjusted addend into a register if it fits in a simm12.

2025-03-16  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/113546
	* tree-cfg.cc (first_non_label_stmt): Rename to ...
	(first_non_label_nondebug_stmt): This and use gsi_start_nondebug_after_labels_bb.
	(assign_discriminators): Update call to first_non_label_nondebug_stmt.

2025-03-16  Iain Sandoe  <iain@sandoe.co.uk>

	Backported from master:
	2025-03-16  Iain Sandoe  <iain@sandoe.co.uk>

	PR target/119172
	* config.in: Regenerate.
	* config/darwin.h (DARWIN_PLATFORM_ID): Add the option to
	use -macos_version_min where available.
	* configure: Regenerate.
	* configure.ac: Check for ld64 support of -macos_version_min.

2025-03-14  Martin Jambor  <mjambor@suse.cz>

	PR ipa/116572
	* cgraph.cc (cgraph_update_edges_for_call_stmt): Do not update
	edges of clones that are unexpanded thunk.  Assert that the node
	passed as the parameter is not an unexpanded thunk.

2025-03-14  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119287
	* match.pd (((X >> C1) & C2) * (1 << C1) to X & (C2 << C1)): Use
	(convert @0) instead of @0 in the substitution.

2025-03-14  Thomas Schwinge  <thomas@codesourcery.com>

	PR target/92713
	PR target/101544
	* config/gcn/gcn.h (LIBSTDCXX): Don't set.
	* config/nvptx/nvptx.h (LIBSTDCXX): Likewise.

2025-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119274
	* tree-ssa-sccvn.cc (dominated_by_p_w_unex): Handle the
	top block being the only executable forwarder to a CFG
	merge.

2025-03-14  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-slp.cc (vect_build_slp_instance): Pass the new group
	size (i) rather than 1 to vect_slp_prefer_store_lanes_p.
	(vect_analyze_slp): Only force the use of load-lanes and
	store-lanes if that is preferred for at least one load/store pair.

2025-03-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119155
	* tree-vect-stmts.cc (vectorizable_store): Do not always
	use vector element alignment for VMAT_STRIDED_SLP but
	a more correct alignment towards both ends.
	(vectorizable_load): Likewise.

2025-03-14  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi (Alternate Keywords): Clean up text and remove
	discussion of "restrict", which is not a GNU extension at all.
	* doc/invoke.texi (C Dialect Options): Remove detailed discussion.

2025-03-13  Jan Hubicka  <hubicka@ucw.cz>

	PR ipa/119147
	* ipa-inline.cc: Include ipa-modref-tree.h and
	ipa-modref.h.
	(speculation_useful_p): If target is a clone, speculation is usef;
	fix mixup of caller and callee; speculate also calls not considered
	hot; consider modref summary also possibly useful for optimization.
	* ipa-profile.cc (ipa_profile): Keep non-hot speculations.

2025-03-13  Richard Biener  <rguenther@suse.de>

	* tree.h (DECL_NOT_GIMPLE_REG_P): Update description.

2025-03-13  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* common/config/aarch64/cpuinfo.h: Remove FEAT_PREDRES and FEAT_LS64*.
	* config/aarch64/aarch64-option-extensions.def: Remove FMV support
	for PREDRES.

2025-03-13  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Extend pointer alignment folds so that they handle
	the case where a constant is added before or after the alignment.

2025-03-13  Richard Sandiford  <richard.sandiford@arm.com>

	* match.pd: Fold ((X >> C1) & C2) * (1 << C1) to X & (C2 << C1).

2025-03-13  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/119115
	* config/riscv/riscv-vsetvl.cc (reg_used): New function.
	(reg_single_use_in_avl): Ditto.
	(pre_vsetvl::fuse_local_vsetvl_info): Use reg_single_use_in_avl
	when checking if vsetvl can be deleted.

2025-03-13  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/117955
	* config/riscv/riscv-vsetvl.cc: Use LMUL/ratio from vsetvl with
	larger SEW.

2025-03-13  Matthias Klose  <doko@ubuntu.com>

	* configure.ac: Add option --enable-versioned-jit.
	* configure: Regenerate.
	* Makefile.in: Move from jit/Make-lang.in, setting value from
	configure.ac.
	* doc/install.texi: Document option --enable-versioned-jit.

2025-03-13  Xi Ruoyao  <xry111@xry111.site>

	PR target/119238
	* config/loongarch/simd.md (<su>dot_prod<wvec_half><mode>):
	Stop using structured binding.

2025-03-12  Alex Coplan  <alex.coplan@arm.com>

	PR rtl-optimization/116564
	* df-problems.cc (df_simulate_defs): For partial defs, mark the
	register live (treat it as a RMW operation).

2025-03-12  Richard Earnshaw  <rearnsha@arm.com>

	PR target/115439
	* config/arm/predicates.md (vpr_register_operand): Allow type-punning
	subregs.

2025-03-12  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/116901
	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Allow
	stmt_info to be null.
	(aarch64_vector_costs::add_stmt_cost): Call count_ops even if
	stmt_info is null.

2025-03-12  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/116901
	* tree-vect-loop.cc (vectorizable_reduction): Set ncopies to
	SLP_TREE_NUMBER_OF_VEC_STMTS for SLP.

2025-03-12  Jakub Jelinek  <jakub@redhat.com>

	* tree.def (RAW_DATA_CST): Document meaning of NULL RAW_DATA_OWNER.
	(CONSTRUCTOR): Document meaning of RAW_DATA_CST used as element
	value.

2025-03-12  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/119204
	PR middle-end/119219
	* builtins.cc (fold_builtin_2): Pass type as another argument
	to fold_builtin_strspn and fold_builtin_strcspn.
	(fold_builtin_strspn): Add type argument, use it instead of
	size_type_node.
	(fold_builtin_strcspn): Add type argument, use it instead of
	TREE_TYPE (expr).

2025-03-12  Jeff Law  <jlaw@ventanamicro.com>

	Revert:
	2025-03-09  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/117467
	* ext-dce.cc (ext_dce_process_uses): When trivially possible advance
	the iterator over the destination of a SET.

2025-03-11  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/119131
	* config/aarch64/aarch64.cc (aarch64_valid_fp_move): Remove check
	for !DECIMAL_FLOAT_MODE_P.
	(aarch64_float_const_representable_p): Reject decimal floating modes.
	* config/aarch64/aarch64.md (mov<mode>): Likewise.

2025-03-11  Jonathan Wakely  <jwakely@redhat.com>

	* doc/extend.texi (Common Variable Attributes): Fix grammar in
	final sentence of -ftrivial-auto-var-init description.

2025-03-11  Juergen Christ  <jchrist@linux.ibm.com>

	* config/s390/s390.cc (s390_delegitimize_address): Add missing case.

2025-03-11  Martin Jambor  <mjambor@suse.cz>

	* tree-ssa-alias.cc (ao_compare::compare_ao_refs): Fix a
	copy-and-paste error.

2025-03-11  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.cc (gen_compile_unit_die): Use DW_LANG_Cobol85 if
	language_string is "GCC COBOL" rather than "Cobol".

2025-03-11  Richard Biener  <rguenther@suse.de>

	PR middle-end/119204
	* builtins.cc (fold_builtin_strcspn): Preserve the original
	expression type.

2025-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR c/119183
	* tree.cc (skip_simple_arithmetic): If first operand of binary
	expr is TREE_CONSTANT or TREE_READONLY with no side-effects, call
	tree_invariant_p on that operand first instead of on the second.

2025-03-11  Jakub Jelinek  <jakub@redhat.com>

	PR debug/119190
	* tree-complex.cc (update_complex_assignment, tree_lower_complex):
	Perform simple dce on dce_worklist only if optimize.

2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config.gcc: Fail in case of option --with-mode=esa.
	* config/s390/s390.cc (s390_option_override_internal): Default
	to z/Architecture mode.
	* config/s390/s390.h (DRIVER_SELF_SPECS): Ditto.
	* config/s390/s390.opt: Emit a warning for option -mesa.
	* doc/invoke.texi: Document the change.

2025-03-11  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/115835
	* config/s390/s390.cc (s390_insn_cost): Implement.
	(TARGET_INSN_COST): Define.

2025-03-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119166
	* tree-vect-stmts.cc (get_load_store_type): Guard SLP tree
	access.

2025-03-11  James K. Lowden  <jklowden@symas.com>

	* doc/contrib.texi: Update for gcobol.
	* doc/frontends.texi: Likewise.
	* doc/install.texi: Likewise.
	* doc/invoke.texi: Likewise.
	* doc/sourcebuild.texi: Likewise.
	* doc/standards.texi: Likewise.

2025-03-11  James K. Lowden  <jklowden@symas.com>

	* Makefile.in (installdirs): Create man3 directory.
	* common.opt (static-libgcobol): New driver option.
	* dwarf2out.cc (gen_compile_unit_die): Support Cobol as
	source language.

2025-03-10  Richard Sandiford  <richard.sandiford@arm.com>
	    Kugan Vivekanandarajah  <kvivekananda@nvidia.com>

	PR target/115258
	* config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
	d.one_vector_p to decide whether op1 should be a copy of op0.

2025-03-10  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/114991
	* ira-costs.cc (equiv_can_be_consumed_p): Add new argument invariant_p.
	Add code for dealing with the invariant.
	(calculate_equiv_gains): Don't consider init insns.  Pass the new
	argument to equiv_can_be_consumed_p.  Don't treat invariant as
	memory.

2025-03-10  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/invoke.texi (Instrumentation Options): Fix typo introduced
	in commit 313edeeeb607fe32da5633cfb6f91977add446f6.

2025-03-10  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/115439
	* config/arm/mve.md (vec_vcmp, vec_vcmpu, vcond_mask): Use
	vpr_register_operand predicate for MVE_VPRED operands.

2025-03-10  Xi Ruoyao  <xry111@xry111.site>

	PR target/119127
	* config/loongarch/loongarch.cc
	(loongarch_reassoc_shift_bitwise): Sign extend mask to mode,
	specially handle the case it's extended to -1.
	* config/loongarch/loongarch.md
	(loongarch_reassoc_shift_bitwise): Update the comment for the
	special case.

2025-03-10  Jakub Jelinek  <jakub@redhat.com>

	PR c/117178
	* gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg): Look through
	multi-dimensional array types, stop at the innermost ARRAY_TYPE.

2025-03-09  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/117467
	* ext-dce.cc (ext_dce_process_sets): Handle FP destinations better.

2025-03-09  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/117467
	* ext-dce.cc (ext_dce_process_uses): When trivially possible advance
	the iterator over the destination of a SET.

2025-03-09  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118922
	* tree-ssa-phiopt.cc (value_replacement): Set empty_or_with_defined_p
	to false when there is phi nodes for the middle bb.

2025-03-09  Sandra Loosemore  <sloosemore@baylibre.com>

	PR middle-end/118457
	* gimplify.cc (modify_call_for_omp_dispatch): New, containing
	code split from gimplify_call_expr and modified to emit tree
	instead of gimple.  Remove the error for falling through to a call
	to the base function.
	(expand_variant_call_expr): New, split from gimplify_variant_call_expr.
	Call modify_call_for_omp_dispatch on calls to
	variants in a dispatch construct context.
	(gimplify_variant_call_expr): Make it call expand_variant_call_expr
	to do the actual work.
	(gimplify_call_expr): Remove sorry for calls involving both
	dynamic/late selectors and adjust_args/append_args, and adjust
	for new interface.  Move adjust_args/append_args code to
	modify_call_for_omp_dispatch.
	(gimplify_omp_dispatch): Add some comments.

2025-03-08  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi (Basic Asm): Document that AssemblerInstructions
	can be an asm constexpr.
	(Extended Asm): Move the notes about asm constexprs for
	AssemblerTemplate and Clobbers to the corresponding subsections.
	Remove the notes for OutputOperands and InputOperands and reword
	misleading descriptions of the list item syntax.  Note that
	constraint strings can be asm constexprs.
	(Asm constexprs): Use "title case" for subsection name.  Be
	explicit about what parts of the asm syntax this applies to and
	that the parentheses are required.  Correct markup and terminology.

2025-03-08  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/67301
	* doc/extend.texi (Extended Asm): Clarify that the square brackets
	around the asmSymbolicName of operands are a required part of
	the syntax.

2025-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/117178
	* tree.cc (get_attr_nonstring_decl): Look through all ARRAY_REFs, not
	just one and handle COMPONENT_REF and MEM_REF after skipping those
	rather than only when there wasn't ARRAY_REF.  Formatting fix.

2025-03-07  Kees Cook  <kees@kernel.org>
	    Jakub Jelinek  <jakub@redhat.com>

	PR c/117178
	* doc/invoke.texi (Wunterminated-string-initialization): Document
	the new interaction between this warning and -Wc++-compat and that
	initialization of decls with nonstring attribute aren't warned about.

2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>

	PR sanitizer/56682
	* doc/invoke.texi (Instrumentation Options): Document that -g
	is useful with -fsanitize=thread and -fsanitize=address.
	Also mention -fno-omit-frame-pointer per the asan wiki.

2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>
	    Jan Hubicka  <hubicka@ucw.cz>
	    H.J. Lu  <hjl.tools@gmail.com>

	PR rtl-optimization/117477
	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
	(aarch64_frame_allocation_cost): Likewise.
	(TARGET_CALLEE_SAVE_COST): Define.
	(TARGET_FRAME_ALLOCATION_COST): Likewise.
	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
	Replace with...
	(ix86_callee_save_cost): ...this new hook.
	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST): Define.
	* target.h (spill_cost_type, frame_cost_type): New enums.
	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
	(ira_callee_saved_register_cost_scale): Delete.
	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
	* doc/tm.texi: Regenerate.
	* hard-reg-set.h (hard_reg_set_popcount): New function.
	* ira-color.cc (allocated_memory_p): New variable.
	(allocated_callee_save_regs): Likewise.
	(record_allocation): New function.
	(assign_hard_reg): Use targetm.frame_allocation_cost to model
	the cost of the first spill or first caller save.  Use
	targetm.callee_save_cost to model the cost of using new callee-saved
	registers.  Apply the exit rather than entry frequency to the cost
	of restoring a register or deallocating the frame.  Update the
	new variables above.
	(improve_allocation): Use record_allocation.
	(color): Initialize allocated_callee_save_regs.
	(ira_color): Initialize allocated_memory_p.
	* targhooks.h (default_callee_save_cost): Declare.
	(default_frame_allocation_cost): Likewise.
	* targhooks.cc (default_callee_save_cost): New function.
	(default_frame_allocation_cost): Likewise.

2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>

	PR target/116708
	* doc/invoke.texi (x86 Options): Clarify how -msse4 and -mno-sse4
	interact with other SSE options.

2025-03-07  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118318
	* ipa-cp.cc (adjust_clone_incoming_counts): Add a compatible_p check.

2025-03-07  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm_neon.h: Try harder to detect if we have
	the softfp ABI enabled.

2025-03-07  Jakub Jelinek  <jakub@redhat.com>

	PR c/112960
	PR c/117029
	* doc/extend.texi (Complex): Add I and J suffixes to the list of
	complex suffixes, adjust for all of those being part of ISO C2Y,
	clarify that for -fno-ext-numeric-literals none of those are
	recognized as GNU extensions and for C++14 i is considered UDL
	even for -fext-numeric-literals when <complex> is included.

2025-03-07  Simon Martin  <simon@nasilyan.com>

	* tree-vect-data-refs.cc: Define INCLUDE_ALGORITHM.

2025-03-07  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/118464
	PR tree-optimization/116855
	* doc/invoke.texi (min-pagesize): Update docs with vectorizer use.
	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Delay
	checks.
	(vect_compute_data_ref_alignment): Remove alignment checks and move to
	get_load_store_type, increase group access alignment.
	(vect_enhance_data_refs_alignment): Add note to comment needing
	investigating.
	(vect_analyze_data_refs_alignment): Likewise.
	(vect_supportable_dr_alignment): For group loads look at first DR.
	* tree-vect-stmts.cc (get_load_store_type):
	Perform safety checks for early break pfa.
	* tree-vectorizer.h (dr_set_safe_speculative_read_required,
	dr_safe_speculative_read_required, DR_SCALAR_KNOWN_BOUNDS): New.
	(need_peeling_for_alignment): Renamed to...
	(safe_speculative_read_required): .. This
	(class dr_vec_info): Add scalar_access_known_in_bounds.

2025-03-07  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/118464
	PR tree-optimization/116855
	* config/aarch64/aarch64-sve.md (@extract_<last_op>_<mode>,
	@fold_extract_<last_op>_<mode>,
	@aarch64_fold_extract_vector_<last_op>_<mode>): Change SVE_FULL to
	SVE_ALL.
	* config/aarch64/iterators.md (vccore): Add more partial types.

2025-03-07  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119145
	* tree-vectorizer.cc (try_vectorize_loop_1): Avoid BB
	vectorizing an if-converted loop body when there's a .MASK_CALL
	in the loop body.

2025-03-07  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/115485
	* config/arm/arm.cc (require_pic_register): Fix typos in
	comment. Handle fixed arm_pic_register.

2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/116125
	* tree-vect-data-refs.cc (vect_prune_runtime_alias_test_list): Make
	the dr_with_seg_len alignment fields describe tha access sizes as
	well as the pointer alignment.
	* tree-data-ref.cc (create_intersect_range_checks): Don't compensate
	for invalid alignment fields here.

2025-03-07  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/119133
	* config/aarch64/aarch64.md
	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>): Use
	force_lowpart_subreg.

2025-03-07  Richard Biener  <rguenther@suse.de>

	PR middle-end/118801
	* tree-ssa-dce.cc (eliminate_unnecessary_stmts): Prune
	sequences of uninterrupted DEBUG BEGIN_STMTs, keeping only
	the last of a set with unique location.

2025-03-07  Sandra Loosemore  <sloosemore@baylibre.com>

	PR c/113515
	* doc/invoke.texi (Warning Options): Improve -Wstringop-overflow
	documentation.

2025-03-07  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/avx10_2-512convertintrin.h
	(_mm512_mask_cvtbf8_ph): Correct mask width.
	(_mm512_maskz_cvtbf8_ph): Ditto.
	* config/i386/avx10_2convertintrin.h
	(_mm256_mask_cvtbf8_ph): Ditto.
	(_mm256_maskz_cvtbf8_ph): Ditto.

2025-03-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>

	PR rtl-optimization/119099
	* ext-dce.cc (ext_dce_rd_transfer_n): Do not allow the livein
	set to shrink.

2025-03-06  Simon Martin  <simon@nasilyan.com>

	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
	comment typo, paramter -> parameter.
	* config/lm32/lm32.cc (lm32_std_gimplify_va_arg_expr): Likewise.

2025-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	PR target/118351
	PR other/38768
	* common/config/aarch64/aarch64-common.cc: Enable early scheduling with
	-O3 and higher.
	* doc/invoke.texi (-fschedule-insns): Update comment.

2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>

	Revert:
	2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>
		    Jan Hubicka  <hubicka@ucw.cz>

	PR rtl-optimization/117477
	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
	(aarch64_frame_allocation_cost): Likewise.
	(TARGET_CALLEE_SAVE_COST): Define.
	(TARGET_FRAME_ALLOCATION_COST): Likewise.
	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
	Replace with...
	(ix86_callee_save_cost): ...this new hook.
	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST): Define.
	* target.h (spill_cost_type, frame_cost_type): New enums.
	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
	(ira_callee_saved_register_cost_scale): Delete.
	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
	* doc/tm.texi: Regenerate.
	* hard-reg-set.h (hard_reg_set_popcount): New function.
	* ira-color.cc (allocated_memory_p): New variable.
	(allocated_callee_save_regs): Likewise.
	(record_allocation): New function.
	(assign_hard_reg): Use targetm.frame_allocation_cost to model
	the cost of the first spill or first caller save.  Use
	targetm.callee_save_cost to model the cost of using new callee-saved
	registers.  Apply the exit rather than entry frequency to the cost
	of restoring a register or deallocating the frame.  Update the
	new variables above.
	(improve_allocation): Use record_allocation.
	(color): Initialize allocated_callee_save_regs.
	(ira_color): Initialize allocated_memory_p.
	* targhooks.h (default_callee_save_cost): Declare.
	(default_frame_allocation_cost): Likewise.
	* targhooks.cc (default_callee_save_cost): New function.
	(default_frame_allocation_cost): Likewise.

2025-03-06  Richard Biener  <rguenther@suse.de>

	PR lto/114501
	* ipa-free-lang-data.cc (find_decls_types_r): Explicitly
	handle CONSTRUCTORs as walk_tree handling of those is
	incomplete.

2025-03-06  Alex Coplan  <alex.coplan@arm.com>

	PR rtl-optimization/114492
	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Check for singleton
	move range before calling restrict_movement.
	(pair_fusion::try_promote_writeback): Likewise.

2025-03-06  Richard Sandiford  <richard.sandiford@arm.com>
	    Jan Hubicka  <hubicka@ucw.cz>

	PR rtl-optimization/117477
	* config/aarch64/aarch64.cc (aarch64_count_saves): New function.
	(aarch64_count_above_hard_fp_saves, aarch64_callee_save_cost)
	(aarch64_frame_allocation_cost): Likewise.
	(TARGET_CALLEE_SAVE_COST): Define.
	(TARGET_FRAME_ALLOCATION_COST): Likewise.
	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
	Replace with...
	(ix86_callee_save_cost): ...this new hook.
	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST): Define.
	* target.h (spill_cost_type, frame_cost_type): New enums.
	* target.def (callee_save_cost, frame_allocation_cost): New hooks.
	(ira_callee_saved_register_cost_scale): Delete.
	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Delete.
	(TARGET_CALLEE_SAVE_COST, TARGET_FRAME_ALLOCATION_COST): New hooks.
	* doc/tm.texi: Regenerate.
	* hard-reg-set.h (hard_reg_set_popcount): New function.
	* ira-color.cc (allocated_memory_p): New variable.
	(allocated_callee_save_regs): Likewise.
	(record_allocation): New function.
	(assign_hard_reg): Use targetm.frame_allocation_cost to model
	the cost of the first spill or first caller save.  Use
	targetm.callee_save_cost to model the cost of using new callee-saved
	registers.  Apply the exit rather than entry frequency to the cost
	of restoring a register or deallocating the frame.  Update the
	new variables above.
	(improve_allocation): Use record_allocation.
	(color): Initialize allocated_callee_save_regs.
	(ira_color): Initialize allocated_memory_p.
	* targhooks.h (default_callee_save_cost): Declare.
	(default_frame_allocation_cost): Likewise.
	* targhooks.cc (default_callee_save_cost): New function.
	(default_frame_allocation_cost): Likewise.

2025-03-06  Richard Biener  <rguenther@suse.de>

	PR middle-end/119119
	* gimplify.cc (is_gimple_mem_rhs_or_call): All empty CTORs
	are OK when not a register type.

2025-03-05  Hannes Braun  <hannes@hannesbraun.net>

	PR target/118942
	* config/arm/arm_neon.h (vld1q_s8_x3): Use int8_t instead of
	uint16_t.
	(vld1q_s16_x3): Use int16_t instead of uint16_t.
	(vld1q_s8_x4): Likewise.
	(vld1q_s16_x4): Likewise.

2025-03-05  Kyrylo Tkachov  <ktkachov@nvidia.com>

	PR rtl-optimization/119046
	* config/aarch64/aarch64.cc (aarch64_evpc_dup): Use VOIDmode for
	PARALLEL.

2025-03-05  Kyrylo Tkachov  <ktkachov@nvidia.com>

	PR rtl-optimization/119046
	* rtlanal.cc (may_trap_p_1): Don't mark FP-mode PARALLELs as trapping.

2025-03-05  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118953
	* value-range.cc (irange::union_bitmask): Update m_bitmask if
	get_bitmask () is unknown_p and m_bitmask is not even when the
	semantic bitmask didn't change and returning false.

2025-03-05  Richard Biener  <rguenther@suse.de>

	PR middle-end/97323
	* tree.cc (gimple_canonical_types_compatible_p): Ignore
	TYPE_MODE also for ARRAY_TYPE.
	(verify_type): Likewise.

2025-03-05  Xi Ruoyao  <xry111@xry111.site>

	PR target/119084
	* config/loongarch/lasx.md (UNSPEC_LASX_XVLDX): Remove.
	(lasx_xvldx): Remove.
	* config/loongarch/lsx.md (UNSPEC_LSX_VLDX): Remove.
	(lsx_vldx): Remove.
	* config/loongarch/simd.md (QIVEC): New define_mode_iterator.
	(<simd_isa>_<x>vldx): New define_expand.
	* config/loongarch/loongarch.cc (loongarch_address_insns_1): New
	static function with most logic factored out from ...
	(loongarch_address_insns): ... here.  Call
	loongarch_address_insns_1 with reg_reg_cost = 1.
	(loongarch_address_cost): Call loongarch_address_insns_1 with
	reg_reg_cost = la_addr_reg_reg_cost.

2025-03-04  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Optimization Options): New @subsubsection
	for pure optimization options.

2025-03-04  Oscar Gustafsson  <oscar.gustafsson@gmail.com>

	* doc/extend.texi: Improve example for __builtin_bswap16.

2025-03-04  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_TZCNT): New macro.
	(TARGET_AVOID_FALSE_DEP_FOR_BLS): New macro.
	* config/i386/i386.md (*bmi_blsi_<mode>): Add splitter for false
	dependency.
	(*bmi_blsi_<mode>_ccno): Add splitter for false dependency.
	(*bmi_blsi_<mode>_falsedep): New pattern.
	(*bmi_blsmsk_<mode>): Add splitter for false dependency.
	(*bmi_blsmsk_<mode>_falsedep): New pattern.
	(*bmi_blsr_<mode>): Add splitter for false dependency.
	(*bmi_blsr_<mode>_cmp): Add splitter for false dependency
	(*bmi_blsr_<mode>_cmp_falsedep): New pattern.
	* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_TZCNT): New tune.
	(X86_TUNE_AVOID_FALSE_DEP_FOR_BLS): New tune.

2025-03-04  Jan Hubicka  <hubicka@ucw.cz>

	* config/i386/i386.h (TARGET_FUSE_ALU_AND_BRANCH_MEM): New macro.
	(TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM): New macro.
	(TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New macro.
	* config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Support
	non-single-set.
	(ix86_macro_fusion_pair_p): Allow ALU which only clobbers;
	be more careful about immediates; check TARGET_FUSE_ALU_AND_BRANCH_MEM,
	TARGET_FUSE_ALU_AND_BRANCH_MEM_IMM, TARGET_FUSE_ALU_AND_BRANCH_RIP_RELATIVE;
	verify that we never use unsigned checks with inc/dec.
	* config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): New tune.
	(X86_TUNE_FUSE_ALU_AND_BRANCH_MEM): New tune.
	(X86_TUNE_FUSE_ALU_AND_BRANCH_MEM_IMM): New tune.
	(X86_TUNE_FUSE_ALU_AND_BRANCH_RIP_RELATIVE): New tune.

2025-03-04  Tamar Christina  <tamar.christina@arm.com>

	PR target/118892
	* config/aarch64/aarch64.md (copysign<GPF:mode>3): Use
	force_lowpart_subreg instead of lowpart_subreg.

2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/118976
	* fold-const.cc (const_unop): Use ~ rather than - for BIT_NOT_EXPR.
	* config/aarch64/aarch64.cc (aarch64_test_sve_folding): New function.
	(aarch64_run_selftests): Run it.

2025-03-04  Richard Sandiford  <richard.sandiford@arm.com>
	    Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119002
	* simplify-rtx.cc
	(simplify_context::simplify_logical_relational_operation): Handle
	comparisons between CC values.  If there is no evidence that the
	CC values are unsigned, restrict the fold to always-true or
	always-false results.

2025-03-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119096
	* tree-vect-loop.cc (vect_transform_reduction): Use the
	correct else value for .COND_fn.

2025-03-03  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(struct aarch64_extension_info): Add field.
	(aarch64_get_required_features): New.
	* config/aarch64/aarch64-builtins.cc
	(aarch64_simd_switcher::aarch64_simd_switcher): Rename to...
	(aarch64_target_switcher::aarch64_target_switcher): ...this,
	and extend to handle sve, nosimd and target pragmas.
	(aarch64_simd_switcher::~aarch64_simd_switcher): Rename to...
	(aarch64_target_switcher::~aarch64_target_switcher): ...this,
	and extend to handle sve, nosimd and target pragmas.
	(handle_arm_acle_h): Use aarch64_target_switcher.
	(handle_arm_neon_h): Rename switcher and pass explicit flags.
	(aarch64_general_init_builtins): Ditto.
	* config/aarch64/aarch64-protos.h
	(class aarch64_simd_switcher): Rename to...
	(class aarch64_target_switcher): ...this, and add new members.
	(aarch64_get_required_features): New prototype.
	* config/aarch64/aarch64-sve-builtins.cc
	(sve_switcher::sve_switcher): Delete
	(sve_switcher::~sve_switcher): Delete
	(sve_alignment_switcher::sve_alignment_switcher): New
	(sve_alignment_switcher::~sve_alignment_switcher): New
	(register_builtin_types): Use alignment switcher
	(init_builtins): Rename switcher.
	(handle_arm_neon_sve_bridge_h): Ditto.
	(handle_arm_sme_h): Ditto.
	(handle_arm_sve_h): Ditto, and use alignment switcher.
	* config/aarch64/aarch64-sve-builtins.h
	(class sve_switcher): Delete.
	(class sme_switcher): Delete.
	(class sve_alignment_switcher): New.
	* config/aarch64/t-aarch64 (aarch64-builtins.o): Add $(REGS_H).
	(aarch64-sve-builtins.o): Remove $(REG_H).

2025-03-03  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/thumb1.md (split patterns for GEU and LEU): New.

2025-03-03  Uros Bizjak  <ubizjak@gmail.com>

	Revert:
	2025-03-03  Uros Bizjak  <ubizjak@gmail.com>

	* combine.cc (distribute_notes):
	Reverse negative logic in ternary operators.

2025-03-03  Uros Bizjak  <ubizjak@gmail.com>

	* combine.cc (distribute_notes):
	Reverse negative logic in ternary operators.

2025-03-03  Uros Bizjak  <ubizjak@gmail.com>

	PR rtl-optimization/118739
	* combine.cc (distribute_notes) <case REG_UNUSED>: Correct the
	logic when the register is used by I3.

2025-03-03  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118785
	* ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Handle non-conversion
	unary operations separately before doing any conversions.  Check
	expr_type_first_operand_type_p for non-unary operations too.  Fix type
	of op_res.

2025-03-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/119057
	* tree-vect-loop.cc (check_reduction_path): Add argument
	specifying whether we're analyzing the inner loop of a
	double reduction.  Do not allow extra uses outside of the
	double reduction cycle in this case.
	(vect_is_simple_reduction): Adjust.

2025-03-03  Richard Biener  <rguenther@suse.de>

	PR ipa/119067
	* ipa-devirt.cc (odr_types_equivalent_p): Check
	TYPE_VECTOR_SUBPARTS for vectors.

2025-03-02  Jeff Law  <jlaw@ventanamicro.com>

	PR target/118934
	* config/riscv/corev.md (cv_branch): Adjust output template.
	(branch): Likewise.
	* config/riscv/riscv.md (branch): Likewise.
	* config/riscv/riscv.cc (riscv_asm_output_opcode): Handle 'r' rather
	than 'n'.

2025-03-02  Jakub Jelinek  <jakub@redhat.com>

	PR translation/118991
	* config/avr/avr.cc (avr_print_operand): Print ival into
	a temporary buffer and use %s in output_operand_lossage to make
	the diagnostics translatable.

2025-03-02  Filip Kastl  <fkastl@suse.cz>

	PR tree-optimization/117919
	* gimple-ssa-sccopy.cc (scc_copy_prop::propagate): Prune
	statements that 'replace_uses_by ()' removed.

2025-03-01  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Specific, *-*-freebsd*): Simplify description.

2025-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR jit/117047
	* ggc-common.cc (ggc_internal_cleared_alloc_no_dtor): Pass size
	rather than s as the first argument to ggc_internal_cleared_alloc.

2025-03-01  Yuriy Kolerov  <Yuriy.Kolerov@synopsys.com>

	PR target/118906
	* common/config/riscv/riscv-common.cc: fix zce to zcf
	implication.

2025-03-01  Jan Dubiec  <jdx@o2.pl>

	PR target/114222
	* config/h8300/h8300.cc (h8300_init_libfuncs): For HImode override
	calls to external ffs() (from newlib) with calls to __ffshi2() from
	libgcc. The implementation of ffs() in newlib calls __builtin_ffs()
	what causes infinite recursion and finally a stack overflow.

2025-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR other/119052
	* input.cc (check_line): Don't call sscanf on non-null terminated
	buffer, instead copy line.length () bytes from line.get_buffer ()
	to a local buffer, null terminate it and call sscanf on that.
	Formatting fix.
	(test_replacement): Just allocate maxline * 5 rather than maxline * 15
	bytes for the file.  Formatting fix.

2025-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR jit/117047
	* acinclude.m4 (gcc_CHECK_ATTRIBUTE_ALIAS): New.
	* configure.ac: Add gcc_CHECK_ATTRIBUTE_ALIAS.
	* ggc.h (ggc_internal_alloc): Remove ATTRIBUTE_MALLOC from
	overload with finalizer pointer.  Call ggc_internal_alloc_no_dtor
	in inline overload without finalizer pointer.
	(ggc_internal_alloc_no_dtor): Declare.
	(ggc_internal_cleared_alloc): Remove ATTRIBUTE_MALLOC from
	overload with finalizer pointer.  Call
	ggc_internal_cleared_alloc_no_dtor in inline overload without
	finalizer pointer.
	(ggc_internal_cleared_alloc_no_dtor): Declare.
	(ggc_alloc): Call ggc_internal_alloc_no_dtor if no finalization
	is needed.
	(ggc_alloc_no_dtor): Call ggc_internal_alloc_no_dtor.
	(ggc_cleared_alloc): Call ggc_internal_cleared_alloc_no_dtor if no
	finalization is needed.
	(ggc_vec_alloc): Call ggc_internal_alloc_no_dtor if no finalization
	is needed.
	(ggc_cleared_vec_alloc): Call ggc_internal_cleared_alloc_no_dtor if no
	finalization is needed.
	* ggc-page.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn
	overload with finalizer into alias to ggc_internal_alloc_ and
	rename it to ...
	(ggc_internal_alloc_): ... this, make it extern "C".
	(ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS,
	otherwise new noinline wrapper.
	* ggc-common.cc (ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS,
	turn overload with finalizer into alias to ggc_internal_alloc_ and
	rename it to ...
	(ggc_internal_cleared_alloc_): ... this, make it extern "C".
	(ggc_internal_cleared_alloc_no_dtor): New alias if
	HAVE_ATTRIBUTE_ALIAS, otherwise new noinline wrapper.
	* ggc-none.cc (ggc_internal_alloc): If HAVE_ATTRIBUTE_ALIAS, turn
	overload with finalizer into alias to ggc_internal_alloc_ and
	rename it to ...
	(ggc_internal_alloc_): ... this, make it extern "C".
	(ggc_internal_alloc_no_dtor): New alias if HAVE_ATTRIBUTE_ALIAS,
	otherwise new wrapper.
	(ggc_internal_cleared_alloc): If HAVE_ATTRIBUTE_ALIAS, turn overload
	with finalizer into alias to ggc_internal_alloc_ and rename it to ...
	(ggc_internal_cleared_alloc_): ... this, make it extern "C".
	(ggc_internal_cleared_alloc_no_dtor): New alias if
	HAVE_ATTRIBUTE_ALIAS, otherwise new wrapper.
	* genmatch.cc (ggc_internal_cleared_alloc, ggc_free): Formatting fix.
	(ggc_internal_cleared_alloc_no_dtor): Define.
	* config.in: Regenerate.
	* configure: Regenerate.

2025-03-01  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/115871
	* omp-simd-clone.cc (simd_clone_adjust): For SIMD_CLONE_ARG_TYPE_MASK
	and sc->mask_mode not VOIDmode, set elem_type to the characteristic
	type rather than boolean_type_node.

2025-03-01  Jan Dubiec  <jdx@o2.pl>

	PR target/109189
	* config/h8300/h8300.cc (h8300_print_operand): Replace %ld format
	strings with HOST_WIDE_INT_PRINT_DEC macro in order to silence
	-Wformat warnings when building on Windows/MinGW64.

2025-02-28  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118243
	* ipa-sra.cc (pull_accesses_from_callee): New parameters
	caller_ipcp_ts and param_idx.  Check that scalar pulled accesses would
	not clash with a known IPA-CP aggregate constant.
	(param_splitting_across_edge): Pass IPA-CP transformation summary and
	caller parameter index to pull_accesses_from_callee.

2025-02-28  Richard Biener  <rguenther@suse.de>

	PR ipa/111245
	* ipa-modref.cc (modref_access_analysis::analyze_store): Do
	not guard the check of whether the stmt could throw by
	cfun->can_throw_non_call_exceptions.

2025-02-28  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/117712
	* expr.cc (force_operand): Handle {,UNSIGNED_}FIX with
	FIX operand using expand_fix on the inner FIX operand.

2025-02-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/87984
	* tree-ssa-dom.cc (dom_opt_dom_walker::optimize_stmt): Do
	not perform redundant store elimination to hard register
	variables.
	* tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
	Likewise.

2025-02-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/66279
	* gimplify.cc (gimplify_asm_expr): Copy TREE_PURPOSE before
	rewriting it for "+" processing.

2025-02-28  H.J. Lu  <hjl.tools@gmail.com>

	* config/i386/i386.h (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
	Moved to ...
	* config/i386/i386.cc (TARGET_SMALL_REGISTER_CLASSES_FOR_MODE_P):
	Here.

2025-02-27  Pan Li  <pan2.li@intel.com>

	PR target/118931
	* config/riscv/riscv-v.cc (expand_const_vector): Add overflow to
	smode check and clean up highest bits if overflow.

2025-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/119030
	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix a pasto,
	ll_unsignedp -> rl_unsignedp.

2025-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/118860
	* input.h (file_cache::tune): No longer static.  Rename argument
	from num_file_slots_ to num_file_slots.  Formatting fix.
	(file_cache::num_file_slots): Renamed to ...
	(file_cache::m_num_file_slots): ... this.  No longer static.
	* input.cc (file_cache_slot::tune): Change return type from void to
	size_t, return previous file_cache_slot::line_record_size value.
	Formatting fixes.
	(file_cache::tune): Rename argument from num_file_slots_ to
	num_file_slots.  Set m_num_file_slots rather than num_file_slots.
	If m_num_file_slots or file_cache_slot::line_record_size changes,
	delete[] m_file_slots and new it again.
	(file_cache::num_file_slots): Remove definition.
	(file_cache::lookup_file): Use m_num_file_slots rather than
	num_file_slots.
	(file_cache::evicted_cache_tab_entry): Likewise.
	(file_cache::file_cache): Likewise.  Initialize m_num_file_slots
	to 16.
	(file_cache::dump): Use m_num_file_slots rather than num_file_slots.
	(file_cache_slot::get_next_line): Formatting fixes.
	(file_cache_slot::read_line_num): Likewise.
	(get_source_text_between): Likewise.
	* toplev.cc (toplev::main): Call global_dc->get_file_cache ().tune
	rather than file_cache::tune.

2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.h (MAX_FIXED_MODE_SIZE): '#define'.

2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.opt (-mfake-ptx-alloca): New.
	* config/nvptx/nvptx-protos.h (nvptx_output_fake_ptx_alloca):
	Declare.
	* config/nvptx/nvptx.cc (nvptx_output_fake_ptx_alloca): New.
	* config/nvptx/nvptx.md (define_insn "@nvptx_alloca_<mode>")
	[!(TARGET_PTX_7_3 && TARGET_SM52)]: Use it for
	'-mfake-ptx-alloca'.

2025-02-27  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.md (define_expand "allocate_stack")
	[!TARGET_SOFT_STACK]: Move
	'sorry ("dynamic stack allocation not supported");'...
	(define_insn "@nvptx_alloca_<mode>"): ... here.

2025-02-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

	PR fortran/108369
	* doc/invoke.texi: Add a note to clarify. Adjust some wording.

2025-02-27  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/x86-tune.def
	(X86_TUNE_DEST_FALSE_DEP_FOR_GLC): Add GNR, GNR-D, DMR.
	(X86_TUNE_AVOID_256FMA_CHAINS): Ditto.
	(X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto.
	(X86_TUNE_AVX512_STORE_BY_PIECES): Ditto.

2025-02-27  Jakub Jelinek  <jakub@redhat.com>

	* gimple-range-phi.cc (phi_analyzer::process_phi): Fix comment typo,
	dpoesn;t -> doesn't.

2025-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/116143
	* Makefile.in (EXTRA_BACKEND_OBJS): New variable.
	(BACKEND): Use it before libbackend.a.

2025-02-27  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/118819
	* alias.cc (memrefs_conflict_p): Perform arithmetics on c, xsize and
	ysize in poly_offset_int and return -1 if it is not representable in
	poly_int64.

2025-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/119001
	* varasm.cc (output_constructor_regular_field): Don't fail
	assertion if next is non-NULL and FIELD_DECL if
	TREE_CODE (local->type) is UNION_TYPE.

2025-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR c/114870
	* ginclude/stddef.h (__STDC_VERSION_STDDEF_H__, unreachable): Don't
	redefine multiple times if stddef.h is first included without __need_*
	defines and later with them.  Move nullptr_t and unreachable and
	__STDC_VERSION_STDDEF_H__ definitions into the same
	defined (__STDC_VERSION__) && __STDC_VERSION__ > 201710L #if block.

2025-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/119002
	* config/arm/arm.h (REVERSE_CONDITION): Use CODE - the macro
	argument - in the macro rather than code.

2025-02-26  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR middle-end/119021
	* lra.cc (lra_asm_insn_error): Use lra_invalidate_insn_data
	instead of lra_update_insn_regno_info.
	* lra-assigns.cc (lra_split_hard_reg_for): Restore old code.

2025-02-26  Alexandre Oliva  <oliva@adacore.com>

	* doc/sourcebuild.texi: Add x86 effective target.

2025-02-26  Alexandre Oliva  <oliva@adacore.com>

	* doc/sourcebuild.texi (dg-do-if): Document.

2025-02-26  Jakub Jelinek  <jakub@redhat.com>

	PR testsuite/116143
	* simple-diagnostic-path.h (simple_diagnostic_path::num_events): Define
	inline.
	(simple_diagnostic_path::num_threads): Likewise.
	* simple-diagnostic-path.cc (simple_diagnostic_path::num_events):
	Remove out of line definition.
	(simple_diagnostic_path::num_threads): Likewise.

2025-02-25  Jason Merrill  <jason@redhat.com>

	* doc/install.texi: 10.5 won't bootstrap with C++98.

2025-02-25  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/115458
	* lra-int.h (LRA_MAX_FAILED_SPLITS): Define and check its value.
	(lra_split_hard_reg_for): Change prototype.
	* lra.cc (lra): Try to split hard reg range several times after a
	failure.
	* lra-assigns.cc (lra_split_hard_reg_for): Add an arg, a flag of
	giving up.  Report asm error and nullify the asm insn depending on
	the arg value.

2025-02-25  Jakub Jelinek  <jakub@redhat.com>

	PR translation/118991
	* config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Use %wd
	instead of %" HOST_WIDE_INT_PRINT "d to print a hwi in error.

2025-02-25  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/118654
	* config/i386/i386-d.cc (ix86_d_target_versions): Predefine GNU_CET.
	(ix86_d_handle_target_cf_protection): New.
	(ix86_d_register_target_info): Add 'CET' TargetInfo key.

2025-02-24  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/114516
	* config/riscv/riscv-vector-costs.cc (compute_estimated_lmul):
	Add pattern statements to program points.

2025-02-24  Robin Dapp  <rdapp@ventanamicro.com>

	PR middle-end/118950
	* tree-vect-patterns.cc (vect_recog_gather_scatter_pattern): Use
	original LHS's type.

2025-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118915
	* tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): For
	highj == NULL_TREE use TYPE_MAX_VALUE (TREE_TYPE (lowj)) rather
	than TYPE_MAX_VALUE (type).

2025-02-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118973
	* tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Calls
	that alter control flow in unpredictable ways need to be
	preserved.

2025-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/118993
	* gimplify.cc (gimplify_scan_omp_clauses): Fix diagnostics typo,
	undfined -> undefined.

2025-02-24  Jakub Jelinek  <jakub@redhat.com>

	PR c/117023
	* builtin-attrs.def (ATTR_NONNULL_IF_NONZERO): New DEF_ATTR_IDENT.
	(ATTR_NOTHROW_NONNULL_IF12_LEAF, ATTR_NOTHROW_NONNULL_IF13_LEAF,
	ATTR_NOTHROW_NONNULL_IF123_LEAF, ATTR_NOTHROW_NONNULL_IF23_LEAF,
	ATTR_NOTHROW_NONNULL_1_IF23_LEAF, ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF,
	ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF,
	ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF,
	ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF,
	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF): New
	DEF_ATTR_TREE_LIST.
	* builtins.def (BUILT_IN_STRNDUP): Use
	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_IF12_LEAF instead of
	ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_STRNCAT, BUILT_IN_STRNCAT_CHK): Use
	ATTR_NOTHROW_NONNULL_1_IF23_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_BCOPY, BUILT_IN_MEMCPY, BUILT_IN_MEMCPY_CHK,
	BUILT_IN_MEMMOVE, BUILT_IN_MEMMOVE_CHK,  BUILT_IN_STRNCPY,
	BUILT_IN_STRNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of
	ATTR_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_MEMPCPY, BUILT_IN_MEMPCPY_CHK, BUILT_IN_STPNCPY,
	BUILT_IN_STPNCPY_CHK): Use ATTR_NOTHROW_NONNULL_IF123_LEAF instead of
	ATTR_RETNONNULL_NOTHROW_LEAF.
	(BUILT_IN_BZERO, BUILT_IN_MEMSET, BUILT_IN_MEMSET_CHK): Use
	ATTR_NOTHROW_NONNULL_IF13_LEAF instead of ATTR_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_BCMP, BUILT_IN_MEMCMP, BUILT_IN_STRNCASECMP,
	BUILT_IN_STRNCMP): Use ATTR_PURE_NOTHROW_NONNULL_IF123_LEAF instead of
	ATTR_PURE_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_STRNLEN): Use ATTR_PURE_NOTHROW_NONNULL_IF12_LEAF instead of
	ATTR_PURE_NOTHROW_NONNULL_LEAF.
	(BUILT_IN_MEMCHR): Use ATTR_PURE_NOTHROW_NONNULL_IF13_LEAF instead of
	ATTR_PURE_NOTHROW_NONNULL_LEAF.

2025-02-24  Lino Hsing-Yu Peng  <linopeng@andestech.com>

	* config/riscv/riscv.cc: Set multi push regs bits.

2025-02-22  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/bpf/bpf.md (define_expand "allocate_stack"): Emit
	'sorry, unimplemented: dynamic stack allocation not supported'.
	* config/nvptx/nvptx.md (define_expand "allocate_stack")
	[!TARGET_SOFT_STACK && !(TARGET_PTX_7_3 && TARGET_SM52)]: Likewise.

2025-02-21  H.J. Lu  <hjl.tools@gmail.com>

	* sese.cc (debug_edge): Append a newline.

2025-02-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118954
	* tree-predcom.cc (ref_at_iteration): Make sure to not
	associate the constant offset with DR_BASE_ADDRESS when
	that is an offsetted pointer.

2025-02-20  David Malcolm  <dmalcolm@redhat.com>

	* diagnostic-core.h: Add comments making clear that these
	functions implicitly use global_dc.

2025-02-20  David Malcolm  <dmalcolm@redhat.com>

	* libsarifreplay.cc
	(sarif_replayer::make_plain_text_within_result_message): Capture
	which json::string was used.  When reporting on unescaped "{" or
	"}" in SARIF message strings, use that string rather than the
	message object, and refer the user to §3.11.5 ("Messages with
	placeholders") rather than §3.11.11 ("arguments").  Ideally we'd
	place the error at the precise character, but that can't be done
	without reworking json-parsing.cc's lexer::lex_string, which is
	too invasive for stage 4.
	(sarif_replayer::get_plain_text_from_mfms): Capture which
	json::string was used.
	(sarif_replayer::lookup_plain_text_within_result_message):
	Likewise.

2025-02-20  Gerald Pfeifer  <gerald@pfeifer.com>

	PR target/69374
	* doc/install.texi (Specific, aarch64*-*-*): Drop note for
	Binutils pre 2.24.

2025-02-20  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-protos.h (aarch64_expand_sve_vec_cmp_float):
	Remove can_invert_p argument and change return type to void.
	* config/aarch64/aarch64.cc (aarch64_expand_sve_vec_cmp_float):
	Likewise.
	* config/aarch64/aarch64-sve.md (vec_cmp<mode><vpred>): Update call
	accordingly.

2025-02-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118521
	* tree-scalar-evolution.cc (final_value_replacement_loop):
	Fold uses of the replaced PHI def.

2025-02-20  Filip Kastl  <fkastl@suse.cz>

	* doc/invoke.texi: Fix typo file-cache-files ->
	file-cache-lines.

2025-02-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/86270
	* tree-outof-ssa.cc (insert_backedge_copies): Pattern
	match a single conflict in a loop condition and adjust
	that avoiding the conflict if possible.

2025-02-20  H.J. Lu  <hjl.tools@gmail.com>

	Revert:
	2025-02-16  H.J. Lu  <hjl.tools@gmail.com>

	PR target/109780
	PR target/109093
	* config/i386/i386.cc (ix86_update_stack_alignment): New.
	(ix86_find_all_reg_use_1): Likewise.
	(ix86_find_all_reg_use): Likewise.
	(ix86_find_max_used_stack_alignment): Also check memory accesses
	from registers defined by stack or frame registers.

2025-02-20  H.J. Lu  <hjl.tools@gmail.com>

	Revert:
	2025-02-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.cc (ix86_find_all_reg_use):
	Scan only for SET RTX in PARALLEL.

2025-02-19  David Malcolm  <dmalcolm@redhat.com>

	PR other/118919
	* input.cc (file_cache_slot::m_file_path): Make non-const.
	(file_cache_slot::evict): Free m_file_path.
	(file_cache_slot::create): Store a copy of file_path if non-null.
	(file_cache_slot::~file_cache_slot): Free m_file_path.

2025-02-19  Pan Li  <pan2.li@intel.com>

	PR middle-end/116351
	* tree-vect-loop.cc (vect_verify_loop_lens): Return false if the
	loop_vinfo has relevant mode such as DImode.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/lasx.md (UNSPEC_LASX_XVSRARI): Remove.
	(UNSPEC_LASX_XVSRLRI): Remove.
	(lasx_xvsrari_<lsxfmt>): Remove.
	(lasx_xvsrlri_<lsxfmt>): Remove.
	* config/loongarch/lsx.md (UNSPEC_LSX_VSRARI): Remove.
	(UNSPEC_LSX_VSRLRI): Remove.
	(lsx_vsrari_<lsxfmt>): Remove.
	(lsx_vsrlri_<lsxfmt>): Remove.
	* config/loongarch/simd.md (simd_<optab>_imm_round_<mode>): New
	define_insn.
	(<simd_isa>_<x>v<insn>ri_<simdfmt>): New define_expand.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/simd.md (wvec_half): New define_mode_attr.
	(<su>dot_prod<wvec_half><mode>): New define_expand.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/simd.md (even_odd): New define_int_attr.
	(vec_widen_<su>mult_<even_odd>_<mode>): New define_expand.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/simd.md (LVEC): New define_mode_attr.
	(simdfmt_as_i): Make it same as simdfmt for integer vector
	modes.
	(_f): New define_mode_attr.
	* config/loongarch/lsx.md (lsx_vpickev_b): Remove.
	(lsx_vpickev_h): Remove.
	(lsx_vpickev_w): Remove.
	(lsx_vpickev_w_f): Remove.
	(lsx_vpickod_b): Remove.
	(lsx_vpickod_h): Remove.
	(lsx_vpickod_w): Remove.
	(lsx_vpickev_w_f): Remove.
	(lsx_pick_evod_<mode>): New define_insn.
	(lsx_<x>vpick<ev_od>_<simdfmt_as_i><_f>): New
	define_expand.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/lasx.md (UNSPEC_LASX_XVMADDWEV): Remove.
	(UNSPEC_LASX_XVMADDWEV2): Remove.
	(UNSPEC_LASX_XVMADDWEV3): Remove.
	(UNSPEC_LASX_XVMADDWOD): Remove.
	(UNSPEC_LASX_XVMADDWOD2): Remove.
	(UNSPEC_LASX_XVMADDWOD3): Remove.
	(lasx_xvmaddwev_h_b<u>): Remove.
	(lasx_xvmaddwev_w_h<u>): Remove.
	(lasx_xvmaddwev_d_w<u>): Remove.
	(lasx_xvmaddwev_q_d): Remove.
	(lasx_xvmaddwod_h_b<u>): Remove.
	(lasx_xvmaddwod_w_h<u>): Remove.
	(lasx_xvmaddwod_d_w<u>): Remove.
	(lasx_xvmaddwod_q_d): Remove.
	(lasx_xvmaddwev_q_du): Remove.
	(lasx_xvmaddwod_q_du): Remove.
	(lasx_xvmaddwev_h_bu_b): Remove.
	(lasx_xvmaddwev_w_hu_h): Remove.
	(lasx_xvmaddwev_d_wu_w): Remove.
	(lasx_xvmaddwev_q_du_d): Remove.
	(lasx_xvmaddwod_h_bu_b): Remove.
	(lasx_xvmaddwod_w_hu_h): Remove.
	(lasx_xvmaddwod_d_wu_w): Remove.
	(lasx_xvmaddwod_q_du_d): Remove.
	* config/loongarch/lsx.md (UNSPEC_LSX_VMADDWEV): Remove.
	(UNSPEC_LSX_VMADDWEV2): Remove.
	(UNSPEC_LSX_VMADDWEV3): Remove.
	(UNSPEC_LSX_VMADDWOD): Remove.
	(UNSPEC_LSX_VMADDWOD2): Remove.
	(UNSPEC_LSX_VMADDWOD3): Remove.
	(lsx_vmaddwev_h_b<u>): Remove.
	(lsx_vmaddwev_w_h<u>): Remove.
	(lsx_vmaddwev_d_w<u>): Remove.
	(lsx_vmaddwev_q_d): Remove.
	(lsx_vmaddwod_h_b<u>): Remove.
	(lsx_vmaddwod_w_h<u>): Remove.
	(lsx_vmaddwod_d_w<u>): Remove.
	(lsx_vmaddwod_q_d): Remove.
	(lsx_vmaddwev_q_du): Remove.
	(lsx_vmaddwod_q_du): Remove.
	(lsx_vmaddwev_h_bu_b): Remove.
	(lsx_vmaddwev_w_hu_h): Remove.
	(lsx_vmaddwev_d_wu_w): Remove.
	(lsx_vmaddwev_q_du_d): Remove.
	(lsx_vmaddwod_h_bu_b): Remove.
	(lsx_vmaddwod_w_hu_h): Remove.
	(lsx_vmaddwod_d_wu_w): Remove.
	(lsx_vmaddwod_q_du_d): Remove.
	* config/loongarch/simd.md (simd_maddw_evod_<mode>_<su>):
	New define_insn.
	(<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt><u>): New
	define_expand.
	(simd_maddw_evod_<mode>_hetero): New define_insn.
	(<simd_isa>_<x>vmaddw<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>):
	New define_expand.
	(<simd_isa>_maddw<ev_od>_q_d<u>_punned): New define_expand.
	(<simd_isa>_maddw<ev_od>_q_du_d_punned): New define_expand.
	* config/loongarch/loongarch-builtins.cc
	(CODE_FOR_lsx_vmaddwev_q_d): Define as a macro to override it
	with the punned expand.
	(CODE_FOR_lsx_vmaddwev_q_du): Likewise.
	(CODE_FOR_lsx_vmaddwev_q_du_d): Likewise.
	(CODE_FOR_lsx_vmaddwod_q_d): Likewise.
	(CODE_FOR_lsx_vmaddwod_q_du): Likewise.
	(CODE_FOR_lsx_vmaddwod_q_du_d): Likewise.
	(CODE_FOR_lasx_xvmaddwev_q_d): Likewise.
	(CODE_FOR_lasx_xvmaddwev_q_du): Likewise.
	(CODE_FOR_lasx_xvmaddwev_q_du_d): Likewise.
	(CODE_FOR_lasx_xvmaddwod_q_d): Likewise.
	(CODE_FOR_lasx_xvmaddwod_q_du): Likewise.
	(CODE_FOR_lasx_xvmaddwod_q_du_d): Likewise.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/lasx.md (UNSPEC_LASX_XVHADDW_Q_D): Remove.
	(UNSPEC_LASX_XVHSUBW_Q_D): Remove.
	(UNSPEC_LASX_XVHADDW_QU_DU): Remove.
	(UNSPEC_LASX_XVHSUBW_QU_DU): Remove.
	(lasx_xvh<addsub:optab>w_h<u>_b<u>): Remove.
	(lasx_xvh<addsub:optab>w_w<u>_h<u>): Remove.
	(lasx_xvh<addsub:optab>w_d<u>_w<u>): Remove.
	(lasx_xvhaddw_q_d): Remove.
	(lasx_xvhsubw_q_d): Remove.
	(lasx_xvhaddw_qu_du): Remove.
	(lasx_xvhsubw_qu_du): Remove.
	(reduc_plus_scal_v4di): Call gen_lasx_haddw_q_d_punned instead
	of gen_lasx_xvhaddw_q_d.
	(reduc_plus_scal_v8si): Likewise.
	* config/loongarch/lsx.md (UNSPEC_LSX_VHADDW_Q_D): Remove.
	(UNSPEC_ASX_VHSUBW_Q_D): Remove.
	(UNSPEC_ASX_VHADDW_QU_DU): Remove.
	(UNSPEC_ASX_VHSUBW_QU_DU): Remove.
	(lsx_vh<addsub:optab>w_h<u>_b<u>): Remove.
	(lsx_vh<addsub:optab>w_w<u>_h<u>): Remove.
	(lsx_vh<addsub:optab>w_d<u>_w<u>): Remove.
	(lsx_vhaddw_q_d): Remove.
	(lsx_vhsubw_q_d): Remove.
	(lsx_vhaddw_qu_du): Remove.
	(lsx_vhsubw_qu_du): Remove.
	(reduc_plus_scal_v2di): Change the temporary register mode to
	V1TI, and pun the mode calling gen_vec_extractv2didi.
	(reduc_plus_scal_v4si): Change the temporary register mode to
	V1TI.
	* config/loongarch/simd.md (simd_h<optab>w_<mode>_<su>): New
	define_insn.
	(<simd_isa>_<x>vh<optab>w_<simdfmt_w><u>_<simdfmt><u>): New
	define_expand.
	(<simd_isa>_h<optab>w_q<u>_d<u>_punned): New define_expand.
	* config/loongarch/loongarch-builtins.cc
	(CODE_FOR_lsx_vhaddw_q_d): Define as a macro to override with
	punned expand.
	(CODE_FOR_lsx_vhaddw_qu_du): Likewise.
	(CODE_FOR_lsx_vhsubw_q_d): Likewise.
	(CODE_FOR_lsx_vhsubw_qu_du): Likewise.
	(CODE_FOR_lasx_xvhaddw_q_d): Likewise.
	(CODE_FOR_lasx_xvhaddw_qu_du): Likewise.
	(CODE_FOR_lasx_xvhsubw_q_d): Likewise.
	(CODE_FOR_lasx_xvhsubw_qu_du): Likewise.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/lasx.md (UNSPEC_LASX_XVADDWEV): Remove.
	(UNSPEC_LASX_XVADDWEV2): Remove.
	(UNSPEC_LASX_XVADDWEV3): Remove.
	(UNSPEC_LASX_XVSUBWEV): Remove.
	(UNSPEC_LASX_XVSUBWEV2): Remove.
	(UNSPEC_LASX_XVMULWEV): Remove.
	(UNSPEC_LASX_XVMULWEV2): Remove.
	(UNSPEC_LASX_XVMULWEV3): Remove.
	(UNSPEC_LASX_XVADDWOD): Remove.
	(UNSPEC_LASX_XVADDWOD2): Remove.
	(UNSPEC_LASX_XVADDWOD3): Remove.
	(UNSPEC_LASX_XVSUBWOD): Remove.
	(UNSPEC_LASX_XVSUBWOD2): Remove.
	(UNSPEC_LASX_XVMULWOD): Remove.
	(UNSPEC_LASX_XVMULWOD2): Remove.
	(UNSPEC_LASX_XVMULWOD3): Remove.
	(lasx_xv<addsubmul:optab>wev_h_b<u>): Remove.
	(lasx_xv<addsubmul:optab>wev_w_h<u>): Remove.
	(lasx_xv<addsubmul:optab>wev_d_w<u>): Remove.
	(lasx_xvaddwev_q_d): Remove.
	(lasx_xvsubwev_q_d): Remove.
	(lasx_xvmulwev_q_d): Remove.
	(lasx_xv<addsubmul:optab>wod_h_b<u>): Remove.
	(lasx_xv<addsubmul:optab>wod_w_h<u>): Remove.
	(lasx_xv<addsubmul:optab>wod_d_w<u>): Remove.
	(lasx_xvaddwod_q_d): Remove.
	(lasx_xvsubwod_q_d): Remove.
	(lasx_xvmulwod_q_d): Remove.
	(lasx_xvaddwev_q_du): Remove.
	(lasx_xvsubwev_q_du): Remove.
	(lasx_xvmulwev_q_du): Remove.
	(lasx_xvaddwod_q_du): Remove.
	(lasx_xvsubwod_q_du): Remove.
	(lasx_xvmulwod_q_du): Remove.
	(lasx_xv<addmul:optab>wev_h_bu_b): Remove.
	(lasx_xv<addmul:optab>wev_w_hu_h): Remove.
	(lasx_xv<addmul:optab>wev_d_wu_w): Remove.
	(lasx_xv<addmul:optab>wod_h_bu_b): Remove.
	(lasx_xv<addmul:optab>wod_w_hu_h): Remove.
	(lasx_xv<addmul:optab>wod_d_wu_w): Remove.
	(lasx_xvaddwev_q_du_d): Remove.
	(lasx_xvsubwev_q_du_d): Remove.
	(lasx_xvmulwev_q_du_d): Remove.
	(lasx_xvaddwod_q_du_d): Remove.
	(lasx_xvsubwod_q_du_d): Remove.
	* config/loongarch/lsx.md (UNSPEC_LSX_XVADDWEV): Remove.
	(UNSPEC_LSX_VADDWEV2): Remove.
	(UNSPEC_LSX_VADDWEV3): Remove.
	(UNSPEC_LSX_VSUBWEV): Remove.
	(UNSPEC_LSX_VSUBWEV2): Remove.
	(UNSPEC_LSX_VMULWEV): Remove.
	(UNSPEC_LSX_VMULWEV2): Remove.
	(UNSPEC_LSX_VMULWEV3): Remove.
	(UNSPEC_LSX_VADDWOD): Remove.
	(UNSPEC_LSX_VADDWOD2): Remove.
	(UNSPEC_LSX_VADDWOD3): Remove.
	(UNSPEC_LSX_VSUBWOD): Remove.
	(UNSPEC_LSX_VSUBWOD2): Remove.
	(UNSPEC_LSX_VMULWOD): Remove.
	(UNSPEC_LSX_VMULWOD2): Remove.
	(UNSPEC_LSX_VMULWOD3): Remove.
	(lsx_v<addsubmul:optab>wev_h_b<u>): Remove.
	(lsx_v<addsubmul:optab>wev_w_h<u>): Remove.
	(lsx_v<addsubmul:optab>wev_d_w<u>): Remove.
	(lsx_vaddwev_q_d): Remove.
	(lsx_vsubwev_q_d): Remove.
	(lsx_vmulwev_q_d): Remove.
	(lsx_v<addsubmul:optab>wod_h_b<u>): Remove.
	(lsx_v<addsubmul:optab>wod_w_h<u>): Remove.
	(lsx_v<addsubmul:optab>wod_d_w<u>): Remove.
	(lsx_vaddwod_q_d): Remove.
	(lsx_vsubwod_q_d): Remove.
	(lsx_vmulwod_q_d): Remove.
	(lsx_vaddwev_q_du): Remove.
	(lsx_vsubwev_q_du): Remove.
	(lsx_vmulwev_q_du): Remove.
	(lsx_vaddwod_q_du): Remove.
	(lsx_vsubwod_q_du): Remove.
	(lsx_vmulwod_q_du): Remove.
	(lsx_v<addmul:optab>wev_h_bu_b): Remove.
	(lsx_v<addmul:optab>wev_w_hu_h): Remove.
	(lsx_v<addmul:optab>wev_d_wu_w): Remove.
	(lsx_v<addmul:optab>wod_h_bu_b): Remove.
	(lsx_v<addmul:optab>wod_w_hu_h): Remove.
	(lsx_v<addmul:optab>wod_d_wu_w): Remove.
	(lsx_vaddwev_q_du_d): Remove.
	(lsx_vsubwev_q_du_d): Remove.
	(lsx_vmulwev_q_du_d): Remove.
	(lsx_vaddwod_q_du_d): Remove.
	(lsx_vsubwod_q_du_d): Remove.
	(lsx_vmulwod_q_du_d): Remove.
	* config/loongarch/loongarch-modes.def: Add V4TI and V1DI.
	* config/loongarch/loongarch-protos.h
	(loongarch_gen_stepped_int_parallel): New function prototype.
	* config/loongarch/loongarch.cc (loongarch_print_operand):
	Accept 'O' for printing "ev" or "od."
	(loongarch_gen_stepped_int_parallel): Implement.
	* config/loongarch/predicates.md
	(vect_par_cnst_even_or_odd_half): New define_predicate.
	* config/loongarch/simd.md (WVEC_HALF): New define_mode_attr.
	(simdfmt_w): Likewise.
	(zero_one): New define_int_iterator.
	(ev_od): New define_int_attr.
	(simd_<optab>w_evod_<mode:IVEC>_<su>): New define_insn.
	(<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt><u>): New
	define_expand.
	(simd_<optab>w_evod_<mode>_hetero): New define_insn.
	(<simd_isa>_<x>v<optab>w<ev_od>_<simdfmt_w>_<simdfmt>u_<simdfmt>):
	New define_expand.
	(DIVEC): New define_mode_iterator.
	(<simd_isa>_<optab>w<ev_od>_q_d<u>_punned): New define_expand.
	(<simd_isa>_<optab>w<ev_od>_q_du_d_punned): Likewise.
	* config/loongarch/loongarch-builtins.cc
	(CODE_FOR_lsx_vaddwev_q_d): Define as a macro to override it
	with the punned expand.
	(CODE_FOR_lsx_vaddwev_q_du): Likewise.
	(CODE_FOR_lsx_vsubwev_q_d): Likewise.
	(CODE_FOR_lsx_vsubwev_q_du): Likewise.
	(CODE_FOR_lsx_vmulwev_q_d): Likewise.
	(CODE_FOR_lsx_vmulwev_q_du): Likewise.
	(CODE_FOR_lsx_vaddwod_q_d): Likewise.
	(CODE_FOR_lsx_vaddwod_q_du): Likewise.
	(CODE_FOR_lsx_vsubwod_q_d): Likewise.
	(CODE_FOR_lsx_vsubwod_q_du): Likewise.
	(CODE_FOR_lsx_vmulwod_q_d): Likewise.
	(CODE_FOR_lsx_vmulwod_q_du): Likewise.
	(CODE_FOR_lsx_vaddwev_q_du_d): Likewise.
	(CODE_FOR_lsx_vmulwev_q_du_d): Likewise.
	(CODE_FOR_lsx_vaddwod_q_du_d): Likewise.
	(CODE_FOR_lsx_vmulwod_q_du_d): Likewise.
	(CODE_FOR_lasx_xvaddwev_q_d): Likewise.
	(CODE_FOR_lasx_xvaddwev_q_du): Likewise.
	(CODE_FOR_lasx_xvsubwev_q_d): Likewise.
	(CODE_FOR_lasx_xvsubwev_q_du): Likewise.
	(CODE_FOR_lasx_xvmulwev_q_d): Likewise.
	(CODE_FOR_lasx_xvmulwev_q_du): Likewise.
	(CODE_FOR_lasx_xvaddwod_q_d): Likewise.
	(CODE_FOR_lasx_xvaddwod_q_du): Likewise.
	(CODE_FOR_lasx_xvsubwod_q_d): Likewise.
	(CODE_FOR_lasx_xvsubwod_q_du): Likewise.
	(CODE_FOR_lasx_xvmulwod_q_d): Likewise.
	(CODE_FOR_lasx_xvmulwod_q_du): Likewise.
	(CODE_FOR_lasx_xvaddwev_q_du_d): Likewise.
	(CODE_FOR_lasx_xvmulwev_q_du_d): Likewise.
	(CODE_FOR_lasx_xvaddwod_q_du_d): Likewise.
	(CODE_FOR_lasx_xvmulwod_q_du_d): Likewise.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/lsx.md (mov<LSX:mode>): Remove.
	(movmisalign<LSX:mode>): Remove.
	(mov<LSX:mode>_lsx): Remove.
	* config/loongarch/lasx.md (mov<LASX:mode>): Remove.
	(movmisalign<LASX:mode>): Remove.
	(mov<LASX:mode>_lasx): Remove.
	* config/loongarch/loongarch-modes.def (V1TI): Add.
	(V2TI): Mention in the comment.
	* config/loongarch/loongarch.md (mode): Add V1TI and V2TI.
	* config/loongarch/simd.md (ALLVEC_TI): New mode iterator.
	(mov<ALLVEC_TI:mode): New define_expand.
	(movmisalign<ALLVEC_TI:mode>): Likewise.
	(mov<ALLVEC_TI:mode>_simd): New define_insn_and_split.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch-protos.h
	(loongarch_const_vector_vrepli): New function prototype.
	* config/loongarch/loongarch.cc (loongarch_const_vector_vrepli):
	Implement.
	(loongarch_const_insns): Call loongarch_const_vector_vrepli
	instead of loongarch_const_vector_same_int_p.
	(loongarch_split_vector_move_p): Likewise.
	(loongarch_output_move): Use loongarch_const_vector_vrepli to
	pun operend[1] into a better mode if it's a const int vector,
	and decide the suffix of [x]vrepli with the new mode.
	* config/loongarch/constraints.md (YI): Call
	loongarch_const_vector_vrepli instead of
	loongarch_const_vector_same_int_p.

2025-02-19  Xi Ruoyao  <xry111@xry111.site>

	PR target/115478
	* config/loongarch/loongarch.md (any_or_plus): New
	define_code_iterator.
	(bstrins_<mode>_for_ior_mask): Use any_or_plus instead of ior.
	(bytepick_w_<bytepick_imm>): Likewise.
	(bytepick_d_<bytepick_imm>): Likewise.
	(bytepick_d_<bytepick_imm>_rev): Likewise.

2025-02-19  Jeff Law  <jlaw@ventanamicro.com>

	PR middle-end/113525
	* doc/invoke.texi (dump-rtl-sibling): Drop documentation for pass
	removed long ago.
	(dump-rtl-unshare): Likewise.

2025-02-18  Andi Kleen  <ak@gcc.gnu.org>

	* doc/invoke.texi:

2025-02-18  David Malcolm  <dmalcolm@redhat.com>

	* opts-diagnostic.cc (sarif_scheme_handler::make_sink): Put
	properties in alphabetical order.

2025-02-18  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/115703
	* config/riscv/riscv-vsetvl.cc: Use max_sew for calculating the
	new LMUL.

2025-02-18  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/108840
	* late-combine.cc (late_combine::check_register_pressure):
	Take only allocatable registers into account when checking
	the permissiveness of register classes.

2025-02-18  Alex Coplan  <alex.coplan@arm.com>

	PR rtl-optimization/118320
	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Tweak wording in dump
	message when punting on invalid use arrays.

2025-02-18  Soumya AR  <soumyaa@nvidia.com>

	* config/aarch64/tuning_models/generic_armv8_a.h: Updated prefetch
	struct pointer.

2025-02-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/98845
	* tree-ssa-tail-merge.cc (stmt_local_def): Consider a
	def with no uses not local.

2025-02-18  Pan Li  <pan2.li@intel.com>

	PR target/118540
	* config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
	Report error when cmd xlen is different with target attribute.

2025-02-18  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.opt.urls: Adjust the order for avx10.2
	and avx10.2-512 due to their order change in i386.opt.

2025-02-18  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118805
	* gimple-fold.cc (fold_truth_andor_for_combine): Detect and
	cope with zero-extension in signbit tests.  Reject swapping
	right-compare operands if rsignbit.

2025-02-17  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.cc (ix86_find_all_reg_use):
	Scan only for SET RTX in PARALLEL.

2025-02-17  Uros Bizjak  <ubizjak@gmail.com>

	PR middle-end/118288
	* builtins.cc (expand_builtin_crc_table_based):
	Use gen_int_mode to emit constant integers with MSB set.

2025-02-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118895
	* tree-ssa-sccvn.cc (vn_nary_build_or_lookup_1): Only allow
	CSE if we can verify the result is available.

2025-02-17  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118764
	* config/avr/gen-avr-mmcu-specs.cc (print_mcu)
	[has CVT]: Mention CVT in header comment of generated specs file.

2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/i386.opt.urls: Regenetated.

2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AVX10_1_UNSET): Adjust macro.
	(OPTION_MASK_ISA2_AVX10_2_256_UNSET): Removed.
	(OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto.
	(OPTION_MASK_ISA2_AVX10_2_UNSET): New.
	(ix86_handle_option): Remove disable part for avx10.2-256.
	Rename avx10.2-512 switch case to avx10.2 and adjust disable
	part macro.
	* common/config/i386/i386-isas.h: Adjust avx10.2 and
	avx10.2-512.
	* config/i386/driver-i386.cc
	(host_detect_local_cpu): Do not append -mno-avx10.x-256
	for -march=native.
	* config/i386/i386-options.cc
	(ix86_valid_target_attribute_inner_p): Adjust avx10.2 and
	avx10.2-512.
	* config/i386/i386.opt: Reject Negative for mavx10.2-256.
	Alias mavx10.2-512 to mavx10.2. Reject Negative for
	mavx10.2-512.
	* doc/extend.texi: Adjust documentation.
	* doc/sourcebuild.texi: Ditto.

2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/i386-common.cc
	(OPTION_MASK_ISA2_AVX2_UNSET): Change AVX10.1 unset macro.
	(OPTION_MASK_ISA2_AVX10_1_256_UNSET): Removed.
	(OPTION_MASK_ISA2_AVX10_1_512_UNSET): Removed.
	(OPTION_MASK_ISA2_AVX10_1_UNSET): New.
	(ix86_handle_option): Adjust AVX10.1 unset macro.
	* common/config/i386/i386-isas.h: Remove avx10.1.
	* config/i386/i386-options.cc
	(ix86_valid_target_attribute_inner_p): Ditto.
	(ix86_option_override_internal): Adjust warning message.
	* config/i386/i386.opt: Remove mavx10.1.
	* doc/extend.texi: Remove avx10.1 and adjust doc.
	* doc/sourcebuild.texi: Ditto.

2025-02-17  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118815
	* config/i386/i386-options.cc (ix86_option_override_internal):
	Do not check vector size conflict when AVX512 is not explicitly
	set.

2025-02-16  Jakub Jelinek  <jakub@redhat.com>

	PR target/118248
	* config/riscv/riscv-string.cc (riscv_block_move_straight): Only
	allocate REGS buffer if it will be needed.

2025-02-16  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118764
	* config/avr/avr-c.cc (avr_cpu_cpp_builtins)
	[TARGET_CVT]: Define __AVR_CVT__.
	* doc/invoke.texi (AVR Built-in Macros): Document __AVR_CVT__.

2025-02-16  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.cc (avr_result_regno_unused_p): New static function.
	(avr_out_bitop): Only output result bytes that are used.
	(avr_out_plus_1): Same.

2025-02-16  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-protos.h (avr_builtin_supported_p): Remove.
	* config/avr/avr.cc (avr_init_builtins): Don't initialize
	non-available built-ins with NULL_TREE.
	(avr_builtin_supported_p): Move to...
	* config/avr/avr-c.cc: ...here.
	(avr_resolve_overloaded_builtin): Run avr_builtin_supported_p.

2025-02-16  H.J. Lu  <hjl.tools@gmail.com>

	PR target/109780
	PR target/109093
	* config/i386/i386.cc (ix86_update_stack_alignment): New.
	(ix86_find_all_reg_use_1): Likewise.
	(ix86_find_all_reg_use): Likewise.
	(ix86_find_max_used_stack_alignment): Also check memory accesses
	from registers defined by stack or frame registers.

2025-02-15  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/98028
	* vr-values.cc (check_for_binary_op_overflow): Try to use a known
	relationship betwen op0/op1 to statically determine overflow state.

2025-02-15  Robin Dapp  <rdapp.gcc@gmail.com>

	* config/riscv/autovec-opt.md
	(*single_widen_first_<any_widen_binop:optab><any_extend:su><mode>):
	New combine "bridge" pattern.

2025-02-15  Keith Packard  <keithp@keithp.com>

	* config/rx/rx.md (rx_cmpstrn): Correctly handle len=0 case.

2025-02-15  David Malcolm  <dmalcolm@redhat.com>

	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Call
	handle_fix_object if we see a single-element "fixes" array.
	(sarif_replayer::handle_fix_object): New.
	(sarif_replayer::handle_artifact_change_object): New.

2025-02-15  David Malcolm  <dmalcolm@redhat.com>

	* libsarifreplay.cc (should_add_rule_p): New.
	(sarif_replayer::handle_result_obj): Use it to filter out rules
	that don't make sense.

2025-02-15  David Malcolm  <dmalcolm@redhat.com>

	* libsarifreplay.cc (sarif_replayer::handle_result_obj): Treat any
	relatedLocations without messages as secondary ranges within the
	diagnostic.  Doing so requires stashing the notes until after
	the diagnostic has been finished, so that relatedLocations can be
	walked in one pass.

2025-02-15  David Malcolm  <dmalcolm@redhat.com>

	PR sarif-replay/118881
	* doc/libgdiagnostics/topics/physical-locations.rst: Add
	diagnostic_physical_location_get_file.
	* libgdiagnostics++.h (physical_location::get_file): New wrapper.
	(diagnostic::add_location): Likewise.
	* libgdiagnostics.cc (diagnostic_manager::get_file_by_name): New.
	(diagnostic_physical_location::get_file): New.
	(diagnostic_physical_location_get_file): New.
	* libgdiagnostics.h (diagnostic_physical_location_get_file): New.
	* libgdiagnostics.map (diagnostic_physical_location_get_file): New.
	* libsarifreplay.cc (class annotation): New.
	(add_any_annotations): New.
	(sarif_replayer::handle_result_obj): Collect vectors of
	annotations in the calls to handle_location_object and apply them
	to "err" and to "note" as appropriate.
	(sarif_replayer::handle_thread_flow_location_object): Pass nullptr
	for annotations.
	(sarif_replayer::handle_location_object): Handle §3.28.6
	"annotations" property, using it to populate a new
	"out_annotations" param.

2025-02-15  Thomas Schwinge  <thomas@codesourcery.com>

	* config/nvptx/nvptx.cc (nvptx_record_needed_fndecl): Tag as
	'static'.

2025-02-15  Jin Ma  <jinma@linux.alibaba.com>

	PR target/118872
	* config/riscv/riscv.cc (riscv_fntype_abi): Strengthen the logic
	of the check to avoid missing the error report.

2025-02-14  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118878
	* config/avr/avr.cc (avr_out_plus_1): Don't ICE on result of
	paradoxical reg's register allocation.

2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/94282
	PR target/113331
	* common/config/gcn/gcn-common.cc (gcn_except_unwind_info): 'return UI_TARGET;'.
	* config/gcn/gcn.cc (gcn_asm_init_sections): New function.
	(TARGET_ASM_INIT_SECTIONS): '#define'.

2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/86660
	* common/config/nvptx/nvptx-common.cc (nvptx_except_unwind_info):
	'return UI_TARGET;'.
	* config/nvptx/nvptx.cc (nvptx_assemble_integer): Handle
	'exception_section'.
	(nvptx_output_section_asm_op, nvptx_asm_init_sections): New
	functions.
	(TARGET_ASM_INIT_SECTIONS): '#define'.
	* config/nvptx/nvptx.h (TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP):
	Don't '#define'.
	(ASM_OUTPUT_DWARF_DELTA): '#define'.

2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.cc (init_frag): New 'bool active' member.
	(output_init_frag, nvptx_assemble_value, nvptx_assemble_integer)
	(nvptx_output_skip, nvptx_assemble_decl_begin)
	(nvptx_assemble_decl_end): Sanity-check its state.

2025-02-14  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx.cc (nvptx_output_skip): Clarify case of
	no or incomplete initializer.

2025-02-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118852
	* tree-vect-slp.cc (vect_analyze_slp): For early-break
	forced-live IVs make sure we create an appropriate
	entry into the SLP graph.

2025-02-14  Jakub Jelinek  <jakub@redhat.com>

	PR debug/118790
	* tree.cc (struct gt_value_expr_mark_data): New type.
	(gt_value_expr_mark_2): Don't call ggc_set_mark, instead check
	ggc_marked_p.  Treat data as gt_value_expr_mark_data * with pset
	in it rather than address of the pset itself and push to be marked
	VAR_DECLs into to_mark vec.
	(gt_value_expr_mark_1): Change argument from hash_set<tree> *
	to gt_value_expr_mark_data * and find pset in it.
	(gt_value_expr_mark): Pass to traverse_noresize address of
	gt_value_expr_mark_data object rather than hash_table<tree> and
	for all entries in the to_mark vector after the traversal call
	gt_ggc_mx.

2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/genopts/loongarch.opt.in: Add
	option '-maddr-reg-reg-cost='.
	* config/loongarch/loongarch-def.cc
	(loongarch_rtx_cost_data::loongarch_rtx_cost_data): Initialize
	addr_reg_reg_cost to 3.
	* config/loongarch/loongarch-opts.cc
	(loongarch_target_option_override): If '-maddr-reg-reg-cost='
	is not used, set it to the initial value.
	* config/loongarch/loongarch-tune.h
	(struct loongarch_rtx_cost_data): Add the member
	addr_reg_reg_cost and its assignment function to the structure
	loongarch_rtx_cost_data.
	* config/loongarch/loongarch.cc (loongarch_address_insns):
	Use la_addr_reg_reg_cost to set the cost of ADDRESS_REG_REG.
	* config/loongarch/loongarch.opt: Regenerate.
	* config/loongarch/loongarch.opt.urls: Regenerate.
	* doc/invoke.texi: Add description of '-maddr-reg-reg-cost='.

2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/118843
	* config/loongarch/loongarch-c.cc
	(loongarch_update_cpp_builtins): Fix macro definition issues.

2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/118828
	* config/loongarch/loongarch-c.cc (loongarch_pragma_target_parse):
	Update the predefined macros.

2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch-c.cc (builtin_undef): New macro.
	(loongarch_cpu_cpp_builtins): Split to loongarch_update_cpp_builtins
	and loongarch_define_unconditional_macros.
	(loongarch_def_or_undef): New functions.
	(loongarch_define_unconditional_macros): Likewise.
	(loongarch_update_cpp_builtins): Likewise.

2025-02-14  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch-target-attr.cc
	(loongarch_pragma_target_parse): Move to ...
	(loongarch_register_pragmas): Move to ...
	* config/loongarch/loongarch-c.cc
	(loongarch_pragma_target_parse): ... here.
	(loongarch_register_pragmas): ... here.
	* config/loongarch/loongarch-protos.h
	(loongarch_process_target_attr): Function Declaration.

2025-02-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/90579
	* tree-ssa-forwprop.cc (simplify_bitfield_ref): Move to
	match.pd.
	(pass_forwprop::execute): Adjust.
	* match.pd (bit_field_ref (vec_perm ...)): New pattern
	modeled after simplify_bitfield_ref.
	* tree-vect-loop.cc (vect_expand_fold_left): Fold the
	element extract stmt, combining it with the vector def.

2025-02-13  Robin Dapp  <rdapp.gcc@gmail.com>

	PR target/118832
	* config/riscv/riscv-v.cc (expand_const_vector):  Expand as
	vlmax insn during lra.

2025-02-13  Marek Polacek  <polacek@redhat.com>

	PR driver/117739
	* doc/invoke.texi: Tweak wording for -Whardened.
	* gcc.cc (driver_handle_option): If -z lazy or -z norelro was
	specified, don't enable linker hardening.
	(process_command): Don't check warn_hardened.

2025-02-13  Ed Catmur  <ed@catmur.uk>
	    Jason Merrill  <jason@redhat.com>

	PR c++/70536
	* dwarf2out.cc (gen_formal_parameter_pack_die): Add name attr.

2025-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR debug/118790
	* gengtype.cc (write_roots): Remove cache variable, instead break from
	the loop on match and test o for NULL.  If the cache option has
	non-empty string argument, call the specified function with v->name
	as argument before calling gt_cleare_cache on it.
	* tree.cc (gt_value_expr_mark_2, gt_value_expr_mark_1,
	gt_value_expr_mark): New functions.
	(value_expr_for_decl): Use GTY ((cache ("gt_value_expr_mark"))) rather
	than just GTY ((cache)).
	* doc/gty.texi (cache): Document optional argument of cache option.

2025-02-13  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/114522
	* config/arm/arm-builtins.cc (arm_fold_aes_op): New function.
	(arm_general_gimple_fold_builtin): New function.
	* config/arm/arm-builtins.h (arm_general_gimple_fold_builtin): New
	prototype.
	* config/arm/arm.cc (arm_gimple_fold_builtin): Call
	arm_general_gimple_fold_builtin as needed.

2025-02-13  Jakub Jelinek  <jakub@redhat.com>

	PR c++/118822
	PR c++/118833
	* tree-iterator.h (tsi_split_stmt_list): Declare.
	* tree-iterator.cc (tsi_split_stmt_list): New function.

2025-02-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* configure.ac (gcc_cv_ld_eh_frame_ciev3): Remove.
	* configure, config.in: Regenerate.
	* config/sol2.cc (solaris_override_options): Remove.
	* config/sol2.h (SUBTARGET_OVERRIDE_OPTIONS): Remove.
	* config/sol2-protos.h (solaris_override_options): Remove.

2025-02-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	* doc/install.texi (Specific, *-*-solaris2*): Updates for newer
	Solaris 11.4 SRUs and binutils 2.44.

2025-02-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/118835
	* config/s390/s390.cc (s390_valid_shift_count): Reject shift
	count operands which do not trivially fit the scheme of
	address operands.

2025-02-13  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118817
	* tree-ssa-sccvn.cc (vn_nary_simplify): Do not process
	CONSTRUCTOR NARY or update from CONSTRUCTOR simplified
	gimple_match_op.

2025-02-12  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/102150
	* loop-invariant.cc (find_invariant_insn): Treat inline-asm similar to
	trapping instruction and only move them if always executed.

2025-02-12  Andrew Pinski  <quic_apinski@quicinc.com>

	PR rtl-optimization/102150
	* ifcvt.cc (cheap_bb_rtx_cost_p): Return false if the insn
	has an inline-asm in it.

2025-02-12  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.opt.urls: Add -mcall-main.

2025-02-12  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118806
	* config/avr/avr.opt (-mcall-main): New option and...
	(avropt_call_main): ...variable.
	* config/avr/avr.cc (avr_no_call_main_p): New variable.
	(avr_insert_attributes) [-mno-call-main, main]: Add attributes
	noreturn and section(".init9") to main.  Set avr_no_call_main_p.
	(avr_file_end) [avr_no_call_main_p]: Define symbol __call_main.
	* doc/invoke.texi (AVR Options) <-mno-call-main>: Document.
	<-mnodevicelib>: Extend explanation.

2025-02-12  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/117790
	* tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
	Set profile counts for {main,alt}_loop_exit_block.

2025-02-12  Vineet Gupta  <vineetg@rivosinc.com>

	* config/riscv/vector.md: vncvt substitute vnsrl.
	vnsrl with x0 replace with immediate 0.
	vneg substitute vrsub.

2025-02-12  Jin Ma  <jinma@linux.alibaba.com>

	PR target/118601
	* config/riscv/riscv-string.cc (expand_block_move): Check with new
	constraint 'vl' instead of 'K'.
	(expand_vec_setmem): Likewise.
	(expand_vec_cmpmem): Likewise.
	* config/riscv/riscv-v.cc (force_vector_length_operand): Likewise.
	(expand_load_store): Likewise.
	(expand_strided_load): Likewise.
	(expand_strided_store): Likewise.
	(expand_lanes_load_store): Likewise.

2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/install.texi: Add missing comma after @xref to fix warning.

2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/extend.texi: Fix a bunch of typos and other writing bugs.
	* doc/invoke.texi: Likewise.

2025-02-12  Sandra Loosemore  <sloosemore@baylibre.com>

	* Makefile.in (TEXI_GCCINT_FILES): Remove interface.texi.
	* doc/gccint.texi (Top): Remove menu entry for the "interface" node,
	and include of interface.texi.
	* doc/interface.texi: Delete.

2025-02-12  Yangyu Chen  <cyy@cyyself.name>

	* config/riscv/riscv-feature-bits.h (RISCV_VENDOR_FEATURE_BITS_LENGTH): Drop.
	(struct riscv_vendor_feature_bits): Drop.

2025-02-11  Jeff Law  <jlaw@ventanamicro.com>

	PR target/115478
	* config/aarch64/iterators.md (any_or_plus): New code iterator.
	* config/aarch64/aarch64.md (extr<mode>5_insn): Use any_or_plus.
	(extr<mode>5_insn_alt, extrsi5_insn_uxtw): Likewise.
	(extrsi5_insn_uxtw_alt, extrsi5_insn_di): Likewise.

2025-02-11  Jason Merrill  <jason@redhat.com>

	PR c++/188574
	* doc/invoke.texi: Adjust -frange-for-ext-temps documentation.

2025-02-11  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-option-extensions.def
	(SSVE_FP8FMA): Adjust formatting.
	(FP8DOT4): Replace FP8FMA dependency with FP8.
	(SSVE_FP8DOT4): Replace SSVE_FP8FMA dependency with SME2+FP8.
	(FP8DOT2): Replace FP8DOT4 dependency with FP8.
	(SSVE_FP8DOT2): Replace SSVE_FP8DOT4 dependency with SME2+FP8.

2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>

	* omp-general.cc (omp_check_context_selector): Change
	metadirective_p argument to a 3-way flag.  Add extra check for
	OMP_CTX_BEGIN_DECLARE_VARIANT.
	* omp-general.h (enum omp_ctx_directive): New.
	(omp_check_context_selector): Adjust declaration.

2025-02-11  Sandra Loosemore  <sloosemore@baylibre.com>

	* omp-general.cc (omp_context_selector_props_compare): Handle
	arbitrary expressions in the "user" and "device_num" selectors.
	(omp_context_selector_set_compare): Detect mismatch when one
	selector specifies a score and the other doesn't.

2025-02-11  Martin Jambor  <mjambor@suse.cz>

	PR lto/118125
	* ipa-fnsummary.cc (redirect_to_unreachable): Add checking assert
	that the builtin_unreachable decl has attribute cold.

2025-02-11  David Malcolm  <dmalcolm@redhat.com>

	PR sarif-replay/118792
	* libsarifreplay.cc (sarif_replayer::handle_region_object): Fix
	off-by-one in handling of endColumn property so that the code
	matches the comment and the SARIF spec (§3.30.8).

2025-02-11  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118817
	* tree-ssa-pre.cc (fully_constant_expression): Fold into
	the single caller.
	(phi_translate_1): Refactor folded in fully_constant_expression.
	* tree-ssa-sccvn.cc (vn_nary_simplify): Update the NARY with
	the simplified expression.

2025-02-11  H.J. Lu  <hjl.tools@gmail.com>

	PR target/118825
	* config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Replace x with
	SYM.

2025-02-11  YunQiang Su  <syq@debian.org>

	* config.gcc: Add mips*64*-linux-muslabi64 triple support.

2025-02-11  Jie Mei  <jie.mei@oss.cipunited.com>
	    Xi Ruoyao  <xry111@xry111.site>

	* config/mips/i6400.md (i6400_fpu_minmax): Include
	fclass type.
	(i6400_fpu_fadd): Include frint type.
	* config/mips/mips.cc (AVAIL_NON_MIPS16): Add an entry
	for __builtin_mipsr6_xxx.
	(MIPSR6_BUILTIN_PURE): Same as above.
	(CODE_FOR_mipsr6_min_a_s, CODE_FOR_mipsr6_min_a_d)
	(CODE_FOR_mipsr6_max_a_s, CODE_FOR_mipsr6_max_a_d)
	(CODE_FOR_mipsr6_class_s, CODE_FOR_mipsr6_class_d):
	New code_aliasing macros.
	(mips_builtins): Add mips32r6 min_a_s, min_a_d, max_a_s,
	max_a_d, class_s, class_d builtins.
	* config/mips/mips.h (ISA_HAS_FRINT): Define a new macro.
	(ISA_HAS_FCLASS): Same as above.
	* config/mips/mips.md (UNSPEC_FRINT): New unspec.
	(UNSPEC_FCLASS): Same as above.
	(type): Add frint and fclass.
	(fmin_a_<mode>): Generates MINA.fmt instructions.
	(fmax_a_<mode>): Generates MAXA.fmt instructions.
	(rint<mode>2): Generates RINT.fmt instructions.
	(fclass_<mode>): Generates CLASS.fmt instructions.
	* config/mips/p6600.md (p6600_fpu_fadd): Include
	frint type.
	(p6600_fpu_fabs): Include fclass type.

2025-02-11  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118813
	* config/i386/avx512bwintrin.h: Fix wrong __OPTIMIZE__
	wrap.

2025-02-10  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/mkoffload.cc (enum elf_arch_code): Add
	EF_AMDGPU_MACH_AMDGCN_NONE.
	(elf_arch): Use enum elf_arch_code as type.
	(tool_cleanup): Silence warning by removing tailing '.' from error.
	(get_arch_name): Return enum elf_arch_code.
	(check_for_missing_lib): New; print fatal error if the multilib
	is not available but it is for the associate generic ISA.
	(main): Call it.

2025-02-10  Tobias Burnus  <tburnus@baylibre.com>

	* doc/install.texi (GCN): Update section about multilibs and
	required LLVM version.

2025-02-10  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118097
	* ipa-cp.cc (ipa_get_jf_arith_result): Adjust comment.
	(ipa_get_jf_pass_through_result): Removed.
	(ipa_value_from_jfunc): Use directly ipa_get_jf_arith_result, do
	not specify operation type but make sure we check and possibly
	convert the result.
	(get_val_across_arith_op): Remove the last parameter, always pass
	NULL_TREE to ipa_get_jf_arith_result in its last argument.
	(propagate_vals_across_arith_jfunc): Do not pass res_type to
	get_val_across_arith_op.
	(propagate_vals_across_pass_through): Add checking assert that
	parm_type is not NULL.

2025-02-10  Jakub Jelinek  <jakub@redhat.com>

	PR target/118623
	* config/i386/i386.md (*bt<mode>): Represent bt as
	compare:CCC of const0_rtx and zero_extract rather than
	zero_extract and const0_rtx.
	(*bt<SWI48:mode>_mask): Likewise.
	(*jcc_bt<mode>): Likewise.  Use LTU and GEU as flags test
	instead of EQ and NE.
	(*jcc_bt<mode>_mask): Likewise.
	(*jcc_bt<SWI48:mode>_mask_1): Likewise.
	(Help combine recognize bt followed by cmov splitter): Likewise.
	(*bt<mode>_setcqi): Likewise.
	(*bt<mode>_setncqi): Likewise.
	(*bt<mode>_setnc<mode>): Likewise.
	(*bt<mode>_setncqi_2): Likewise.
	(*bt<mode>_setc<mode>_mask): Likewise.

2025-02-09  Dario Gjorgjevski  <dario.gjorgjevski@gmail.com>

	PR middle-end/117263
	* genautomata.cc (output_statistics): Avoid set but unnused warnings
	when compiling with NDEBUG.

2025-02-09  Jeff Law  <jlaw@ventanamicro.com>

	PR target/118146
	* config/riscv/riscv.cc (riscv_legitimize_move): Handle subreg
	of vector source better to avoid ICE.

2025-02-08  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118764
	* doc/invoke.texi (AVR Options): Fix typos.

2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/gcn/gcn.md (exception_receiver): 'define_expand'.
	* config/nvptx/nvptx.md (exception_receiver): Likewise.

2025-02-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* doc/sourcebuild.texi (Effective-Target Keywords): Clarify that
	effective-target 'exceptions' and 'exceptions_enabled' are
	orthogonal.

2025-02-08  Jakub Jelinek  <jakub@redhat.com>

	PR target/118776
	* config/i386/sse.md (<code><mode>3_mask): Use VI1248_AVX512VLBW
	iterator rather than VI48_AVX512VL.
	(<mask_codefor><code><mode>3<mask_name>): Rename to ...
	(*avx512bw_<code><mode>3<mask_name>): ... this.  Use
	nonimmediate_operand rather than register_operand predicate and %v
	rather than v constraint for operand 1 and adjust condition to reject
	MEMs in both operand 1 and 2.

2025-02-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/114522
	* config/aarch64/aarch64-builtins.cc (aarch64_fold_aes_op): New function.
	(aarch64_general_gimple_fold_builtin): Call aarch64_fold_aes_op for crypto_aese
	and crypto_aesd.

2025-02-07  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (file_cache::m_line_recent,
	m_line_recent_first, m_line_recent_last): Add.
	(file_cache_slot::evict): Clear new fields.
	(file_cache_slot::create): Clear new fields.
	(file_cache_slot::file_cache_slot): Initialize new fields.
	(file_cache_slot::~file_cache_slot): Release m_line_recent.
	(file_cache_slot::get_next_line): Maintain ring buffer of lines
	in m_line_recent.
	(file_cache_slot::read_line_num): Use m_line_recent to look up
	recent lines quickly.

2025-02-07  Richard Earnshaw  <rearnsha@arm.com>

	PR target/118089
	* config/arm/arm.cc (arm_emit_multi_reg_pop): Restructure.
	Don't emit LDR on thumb2 when POP can be used for smaller code.
	Don't add a CFA adjust note when SP is popped off the stack.

2025-02-07  Richard Earnshaw  <rearnsha@arm.com>

	PR target/118089
	* config/arm/arm.cc (arm_emit_multi_reg_pop): Add a CFA adjust
	note to single-register POP instructions.

2025-02-07  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/116244
	* ira-build.cc (create_insn_allocnos): Do not restrict the check for
	subreg uses to allocno creation time.  Do it for all uses.

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

	PR jit/118780
	* system.h: Check INCLUDE_DLFCN_H for including dlfcn.h instead
	of ENABLE_PLUGIN.
	* plugin.cc: Define INCLUDE_DLFCN_H.

2025-02-07  Pan Li  <pan2.li@intel.com>

	PR target/118103
	* config/riscv/riscv.cc (riscv_conditional_register_usage): Add
	the VXRM as the global_regs.

2025-02-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR target/118771
	* config/aarch64/aarch64.cc (aarch64_split_move): Assert that npieces is
	greater than 0.

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

	PR tree-optimization/115538
	* tree-vectorizer.h (vect_get_slp_scalar_def): Declare.
	* tree-vect-slp.cc (vect_get_slp_scalar_def): New helper.
	* tree-vect-generic.cc (expand_vector_conversion): Adjust.
	* tree-vect-stmts.cc (vectorizable_conversion): For SLP
	correctly look at ranges of the scalar defs of the SLP operand.
	(supportable_indirect_convert_operation): Likewise.

2025-02-07  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn.cc (gcn_hsa_declare_function_name): Update
	'amdhsa.version' output to match used code version.
	* config/gcn/gen-gcn-device-macros.awk: Add a comment to
	crosslink.

2025-02-07  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.md
	(*sel<code><GPR:mode>_using_<GPR2:mode>): Rename to ...
	(*sel<code><GPR:mode>_using_<X:mode>): ... here.
	(GPR2): Remove as nothing uses it now.

2025-02-07  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118514
	PR tree-optimization/118706
	* gimple-fold.cc (decode_field_reference): Refuse to consider
	merging out-of-bounds BIT_FIELD_REFs.
	(make_bit_field_load): Drop too-strict assert.
	* tree-eh.cc (bit_field_ref_in_bounds_p): Rename to...
	(access_in_bounds_of_type_p): ... this.  Change interface,
	export.
	(tree_could_trap_p): Adjust.
	* tree-eh.h (access_in_bounds_of_type_p): Declare.

2025-02-07  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-devices.def (GCN_DEVICE): Add gfx9-generic,
	gfx902, gfx904, gfx909, gfx1031, gfx1032, gfx1033, gfx1034,
	gfx1035, gfx1101, gfx1102, gfx1150, gfx1151, gfx1152, and gfx1153.
	Add a currently unused column linking, a specific ISA to a generic
	one (if it exists).
	* config/gcn/gcn-tables.opt: Regenerate
	* doc/invoke.texi (AMD GCN): Add the the new gfc... and the older
	gfx{10-3,11}-generic to -march= as 'experimental'.

2025-02-07  Tobias Burnus  <tburnus@baylibre.com>

	* config/gcn/gcn-devices.def (GCN_DEVICE): Change sramecc for
	gfx906 to 'any'.
	* config/gcn/gcn.cc (GCN_DEVICE): Add tailing ... to #define.

2025-02-07  H.J. Lu  <hjl.tools@gmail.com>

	PR rtl-optimization/111673
	PR rtl-optimization/115932
	PR rtl-optimization/116028
	PR rtl-optimization/117081
	PR rtl-optimization/117082
	PR rtl-optimization/118497
	* ira-color.cc (assign_hard_reg): Call the target hook for the
	callee-saved register cost scale in epilogue and prologue.
	* target.def (ira_callee_saved_register_cost_scale): New target
	hook.
	* targhooks.cc (default_ira_callee_saved_register_cost_scale):
	New.
	* targhooks.h (default_ira_callee_saved_register_cost_scale):
	Likewise.
	* config/i386/i386.cc (ix86_ira_callee_saved_register_cost_scale):
	New.
	(TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE): Likewise.
	* doc/tm.texi: Regenerated.
	* doc/tm.texi.in (TARGET_IRA_CALLEE_SAVED_REGISTER_COST_SCALE):
	New.

2025-02-06  Craig Blackmore  <craig.blackmore@embecosm.com>

	* config/riscv/riscv.md: Move UNSPEC_SSP_SET and UNSPEC_SSP_TEST
	to unspec enum.

2025-02-06  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.opt.urls: Add mcvt.

2025-02-06  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/118756
	* tree-ssa-loop-ivopts.cc (contain_complex_addr_expr): Remove.

2025-02-06  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118764
	* config/avr/avr.opt (-mcvt): New target option.
	* config/avr/avr-arch.h (AVR_CVT): New enum value.
	* config/avr/avr-mcus.def: Add AVR_CVT flag for devices that
	support it.
	* config/avr/avr.cc (avr_handle_isr_attribute) [TARGET_CVT]: Issue
	an error when a vector number larger that 3 is used.
	* config/avr/gen-avr-mmcu-specs.cc (McuInfo.have_cvt): New property.
	(print_mcu) <*avrlibc_startfile>: Use crt<mcu>-cvt.o depending
	on -mcvt (or issue an error when the device doesn't support a CVT).
	* doc/invoke.texi (AVR Options): Document -mcvt.

2025-02-06  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/117506
	* loop-iv.cc (get_biv_step_1): For {ZERO,SIGN}_EXTEND
	of PLUS apply {ZERO,SIGN}_EXTEND to op1.

2025-02-06  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118768
	* config/avr/genmultilib.awk: Parse the AVR_MCU lines in
	a more robust way w.r.t. white spaces.

2025-02-06  Lulu Cheng  <chenglulu@loongson.cn>

	PR target/118561
	* config/loongarch/loongarch-builtins.cc
	(loongarch_expand_builtin_lsx_test_branch):
	NULL_RTX will not be returned when an error is detected.
	(loongarch_expand_builtin): Likewise.

2025-02-06  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/110449
	* tree-ssa-loop-manip.h (insert_iv_increment): Declare.
	* tree-ssa-loop-manip.cc (insert_iv_increment): New function,
	split out from...
	(create_iv): ...here and generalized to gimple_seqs.
	* tree-vect-loop.cc (vectorizable_induction): Use
	standard_iv_increment_position and insert_iv_increment
	to insert the IV increment.

2025-02-06  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/117922
	* fold-mem-offsets.cc (pass_fold_mem_offsets::execute):
	Do nothing for a highly connected CFG.

2025-02-06  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118749
	* tree-vect-data-refs.cc (vector_alignment_reachable_p): Pass
	in the vectorization factor, when that cannot maintain
	the DRs target alignment do not claim we can reach that
	by peeling.

2025-02-05  Jeff Law  <jlaw@ventanamicro.com>

	* config/bfin/bfin.md (abssi): Disable pattern.

2025-02-05  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/115568
	* lra-remat.cc (create_cands): Check that output reload insn is
	adjacent to given insn.  Update a comment.

2025-02-05  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_insn_cost): Give PARALLELs
	the same cost as the costliest SET.

2025-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/117239
	* cselib.cc (cselib_init): Remove spurious closing paren in
	the #ifdef STACK_ADDRESS_OFFSET specific code.

2025-02-05  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/117239
	* cselib.cc: Include predict.h.
	(callmem): Change type from rtx to rtx[2].
	(cselib_preserve_only_values): Use callmem[0] rather than callmem.
	(cselib_invalidate_mem): Optimize and don't try to invalidate
	for the mem_rtx == callmem[1] case MEMs which clearly can't be
	below the stack pointer.
	(cselib_process_insn): Use callmem[0] rather than callmem.
	For const/pure calls also call cselib_invalidate_mem (callmem[1])
	in !ACCUMULATE_OUTGOING_ARGS or cfun->calls_alloca functions.
	(cselib_init): Initialize callmem[0] rather than callmem and also
	initialize callmem[1].

2025-02-05  Richard Earnshaw  <rearnsha@arm.com>

	PR target/118089
	* config/arm/arm.cc (thumb2_expand_return): Use LDM SP!, {PC}
	when optimizing for size, or when there's no performance benefit over
	LDR PC, [SP], #4.
	(arm_expand_epilogue): Likewise.

2025-02-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.md (*pop_multiple_with_writeback_and_return): Remove
	constraints.  Don't validate the first transfer register here.

2025-02-05  Richard Earnshaw  <rearnsha@arm.com>

	* config/arm/arm.cc (decompose_addr_for_ldm_stm): New function.
	(ldm_stm_operation_p): Rework to clarify logic.  Allow single
	registers to be pushed or popped using LDM/STM.

2025-02-05  Xi Ruoyao  <xry111@xry111.site>

	PR tree-optimization/118727
	* tree-vect-patterns.cc (vect_recog_sad_pattern): Don't call
	vect_look_through_possible_promotion on ABD inputs.

2025-02-05  Sebastian Huber  <sebastian.huber@embedded-brains.de>

	* config/arm/t-rtems: Add Cortex-M33 multilib.

2025-02-04  Andi Kleen  <ak@gcc.gnu.org>

	* doc/invoke.texi: Document file cache tunables.
	* params.opt: Move auto tuning description to lines.

2025-02-04  Ilya Leoshkevich  <iii@linux.ibm.com>

	* config/s390/s390.cc (print_operand): Remove the no longer
	necessary 31-bit and weak symbol handling.
	* config/s390/s390.md (*movdi_64): Do not use @PLT with larl.
	(*movsi_larl): Likewise.
	(main_base_64): Likewise.
	(reload_base_64): Likewise.

2025-02-04  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/117113
	* gimple-loop-jam.cc (unroll_jam_possible_p): Detect when
	we cannot handle virtual SSA update.

2025-02-04  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/116926
	* optabs-query.cc (find_widening_optab_handler_and_mode): Fix
	limit for `vec-mode -> scalar-mode` case.

2025-02-04  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/117611
	* combine.cc (simplify_shift_const_1): Bail if not
	scalar int mode.

2025-02-04  Richard Biener  <rguenther@suse.de>

	PR lto/113207
	* ipa-free-lang-data.cc (free_lang_data_in_type): First drop
	const/volatile qualifiers from function argument types,
	then build a simplified type.

2025-02-03  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*sibcall_pop_memory):
	Disable for TARGET_INDIRECT_BRANCH_REGISTER
	* config/i386/predicates.md (call_insn_operand): Enable when
	"satisfies_constraint_Bw (op)" is true, instead of open-coding
	constraint here.
	(sibcall_insn_operand): Ditto with "satisfies_constraint_Bs (op)"

2025-02-03  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_choose_vector_init_constant):
	New function, split out from...
	(aarch64_expand_vector_init_fallback): ...here.  Use a bit-
	reversed increment to find a constant index.  Add support for
	stepped constants.

2025-02-03  John David Anglin  <danglin@gcc.gnu.org>

	PR rtl-optimization/117248
	* config/pa/predicates.md (r25_operand): New predicate.
	(r26_operand): Likewise.
	* config/pa/pa.md: Use match_operand for r25 and r26 hard
	register operands in mult, div, udiv, mod and umod millicode
	patterns.

2025-02-03  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118717
	* tree-ssa-phiopt.cc (cond_if_else_store_replacement_1):
	Do not common stores referencing abnormal SSA names.
	* tree-ssa-sink.cc (sink_common_stores_to_bb): Likewise.

2025-02-03  Andi Kleen  <ak@gcc.gnu.org>

	* input.cc (check_line): New.
	(test_replacement): New function to test line caching.
	(input_cc_tests): Call test_replacement

2025-02-03  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (file_cache_slot::get_next_line): Implement
	dynamic sizing of m_line_record based on input length.
	* params.opt: (param_file_cache_lines): Set to 0 to size
	dynamically.

2025-02-03  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (total_lines_num): Remove.
	(file_cache_slot::evict): Ditto.
	(file_cache_slot::create): Ditto.
	(file_cache_slot::set_content): Ditto.
	(file_cache_slot::file_cache_slot): Ditto.
	(file_cache_slot::dump): Ditto.

2025-02-03  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (file_cache_slot::get_next_line): Use new algorithm
	to maintain
	(file_cache_slot::read_line_num): Use binary search for lookup.

2025-02-03  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (file_cache::tune): New function.
	* input.h (class file_cache): Make tunables non const.
	* params.opt: Add new tunables.
	* toplev.cc (toplev::main): Initialize input buffer context
	tunables.

2025-02-02  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/117411
	* doc/gm2.texi (Exception handling): New section.
	(The ISO system module): Add description of COFF_T.
	(Assembler language): Tidy up last sentance.

2025-02-02  Lewis Hyatt  <lhyatt@gmail.com>

	PR middle-end/115913
	* optc-save-gen.awk (cl_optimization_compare): Skip options with
	CL_WARNING flag.

2025-02-01  H.J. Lu  <hjl.tools@gmail.com>

	PR target/118713
	* config/i386/i386-expand.cc (ix86_expand_call): Change "if
	(TARGET_X32 ...)" back to "else if (TARGET_X32 ...)".

2025-02-01  H.J. Lu  <hjl.tools@gmail.com>

	PR target/118713
	* config/i386/constraints.md (Bs): Always disable if
	TARGET_INDIRECT_BRANCH_REGISTER is true.
	(Bw): Likewise.
	* config/i386/i386-expand.cc (ix86_expand_call): Force indirect
	call via register for x32 GOT slot call if
	TARGET_INDIRECT_BRANCH_REGISTER is true.
	* config/i386/i386-protos.h (ix86_nopic_noplt_attribute_p): New.
	* config/i386/i386.cc (ix86_nopic_noplt_attribute_p): Make it
	global.
	* config/i386/i386.md (*call_got_x32): Disable indirect call via
	memory for TARGET_INDIRECT_BRANCH_REGISTER.
	(*call_value_got_x32): Likewise.
	(*sibcall_value_pop_memory): Likewise.
	* config/i386/predicates.md (constant_call_address_operand):
	Return false if both TARGET_INDIRECT_BRANCH_REGISTER and
	ix86_nopic_noplt_attribute_p are true.

2025-02-01  David Malcolm  <dmalcolm@redhat.com>

	* libsarifreplay.cc (sarif_replayer::handle_run_obj): Pass run to
	handle_result_obj.
	(sarif_replayer::handle_result_obj): Add run_obj param and pass it
	to handle_location_object and handle_thread_flow_object.
	(sarif_replayer::handle_thread_flow_object): Add run_obj param and
	pass it to handle_thread_flow_location_object.
	(sarif_replayer::handle_thread_flow_location_object): Add run_obj
	param and pass it to handle_location_object.
	(sarif_replayer::handle_location_object): Add run_obj param and
	pass it to handle_logical_location_object.
	(sarif_replayer::handle_logical_location_object): Add run_obj
	param.  If the run_obj is non-null and has "logicalLocations",
	then use these "cached" logical locations if we see an "index"
	property, as per §3.33.3

2025-02-01  Jeff Law  <jlaw@ventanamicro.com>

	PR tree-optimization/114277
	* match.pd (a * (a || b) -> a): New pattern.
	(a * !(a || b) -> 0): Likewise.

2025-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/117432
	* ipa-icf-gimple.cc (func_checker::compare_asm_inputs_outputs):
	Also return_false if operands have incompatible types.
	(func_checker::compare_gimple_call): Check fntype1 vs. fntype2
	compatibility for all non-internal calls and assume fntype1 and
	fntype2 are non-NULL for those.  For calls to non-prototyped
	calls or for stdarg_p functions after the last named argument (if any)
	check type compatibility of call arguments.

2025-01-31  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/116234
	* lra-constraints.cc (multiple_insn_refs_p): New function.
	(curr_insn_transform): Use it.

2025-01-31  Richard Biener  <rguenther@suse.de>

	PR debug/100530
	* dwarf2out.cc (modified_type_die): Do not claim we handle
	address-space qualification with dwarf_qual_info[].

2025-01-31  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118689
	PR modula2/115032
	* tree-ssa-loop-niter.cc (build_cltz_expr): Return NULL_TREE if fn is
	NULL and use_ifn is false.

2025-01-31  Richard Biener  <rguenther@suse.de>

	* tree-vect-loop.cc (vect_analyze_loop_operations): Only
	call vectorizable_lc_phi when not PURE_SLP.
	(vectorizable_reduction): Do not claim having handled
	the inner loop LC PHI for outer loop vectorization.

2025-01-30  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/builtins.def (STRLEN_FLASH, STRLEN_FLASHX)
	(STRLEN_MEMX): New DEF_BUILTIN's.
	* config/avr/avr.cc (avr_ftype_strlen): New static function.
	(avr_builtin_supported_p): New built-ins are not for AVR_TINY.
	(avr_init_builtins) <strlen_flash_node, strlen_flashx_node,
	strlen_memx_node>: Provide new fntypes.
	(avr_fold_builtin) [AVR_BUILTIN_STRLEN_FLASH]
	[AVR_BUILTIN_STRLEN_FLASHX, AVR_BUILTIN_STRLEN_MEMX]: Fold if
	possible.
	* doc/extend.texi (AVR Built-in Functions): Document
	__builtin_avr_strlen_flash, __builtin_avr_strlen_flashx,
	__builtin_avr_strlen_memx.

2025-01-30  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/builtins.def (AVR_FIRST_C_ONLY_BUILTIN_ID): New macro.
	* config/avr/avr-protos.h (avr_builtin_supported_p): New.
	* config/avr/avr.cc (avr_builtin_supported_p): New function.
	(avr_init_builtins): Only provide a built-in when it is supported.
	* config/avr/avr-c.cc (avr_cpu_cpp_builtins): Only define the
	__BUILTIN_AVR_<NAME> build-in defines when the associated built-in
	function is supported.
	* doc/extend.texi (AVR Built-in Functions): Add a note that
	following built-ins are supported for only for GNU-C.

2025-01-30  Jakub Jelinek  <jakub@redhat.com>
	    Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/118696
	* config/s390/vector.md (*vec_cmpgt<mode><mode>_nocc_emu,
	*vec_cmpgtu<mode><mode>_nocc_emu): Duplicate the first rather than
	second V2DImode element.

2025-01-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/118695
	* expr.cc (expand_expr_real_1): When expanding a MEM_REF
	to a non-MEM by committing it to a stack temporary make
	sure to handle misaligned accesses correctly.

2025-01-30  Tobias Burnus  <tburnus@baylibre.com>

	* gimplify.cc (gimplify_call_expr): For OpenMP's append_args clause
	processed by 'omp dispatch', update for internal-representation
	changes; fix handling of hidden arguments, add some comments and
	handle Fortran's value dummy and optional/pointer/allocatable actual
	args.

2025-01-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/118692
	* expr.cc (expand_expr_real_1): When expanding a MEM_REF
	as BIT_FIELD_REF avoid large offsets for accesses not
	overlapping the base object.

2025-01-30  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/114052
	* tree-ssa-loop-niter.cc (maybe_lower_iteration_bound): Check
	for infinite subloops we might not exit.

2025-01-30  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/118320
	* pair-fusion.cc (pair_fusion_bb_info::fuse_pair): Commonize
	the merge of input_uses and return early if it fails.

2025-01-29  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	PR modula2/118183
	PR modula2/116073
	* doc/gm2.texi (-fm2-file-offset-bits=): Change the default size
	description to CSSIZE_T.
	Add COFF_T to the list of data types exported by SYSTEM.def.

2025-01-29  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/118429
	* pair-fusion.cc (latest_hazard_before): Add an extra parameter
	to say whether the instruction is a load or a store.  If the
	instruction is not a load or store and has memory side effects,
	prevent it from being moved earlier.
	(pair_fusion::find_trailing_add): Update call accordingly.
	(pair_fusion_bb_info::fuse_pair): If the trailng addition had
	a memory side-effect, use a tombstone to preserve it.

2025-01-29  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr.md (*negsi2.libgcc): New insn.

2025-01-29  Yoshinori Sato  <ysato@users.sourceforge.jp>

	* config/rx/constraints.md (Q): Also check that the address
	passes rx_is_restricted_memory-address.

2025-01-29  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118505
	* gimple-ssa-split-paths.cc (poor_ifcvt_pred): Return
	true for trapping statements.

2025-01-29  Andrew Pinski  <quic_apinski@quicinc.com>

	* gimple-ssa-split-paths.cc (poor_ifcvt_candidate_code): Remove CALL_EXPR handling.

2025-01-29  Martin Jambor  <mjambor@suse.cz>
	    Michal Jireš  <mjires@suse.cz>

	PR tree-optimization/117892
	* tree-ssa-dse.cc (dse_optimize_call): Leave control-altering
	noreturn calls alone.

2025-01-29  Pan Li  <pan2.li@intel.com>

	PR target/117688
	* config/riscv/riscv.cc (riscv_expand_sstrunc): Leverage the helper
	riscv_extend_to_xmode_reg with SIGN_EXTEND.

2025-01-29  Pan Li  <pan2.li@intel.com>

	PR target/117688
	* config/riscv/riscv.cc (riscv_expand_sssub): Leverage the helper
	riscv_extend_to_xmode_reg with SIGN_EXTEND.

2025-01-29  Pan Li  <pan2.li@intel.com>

	PR target/117688
	* config/riscv/riscv.cc (riscv_expand_ssadd): Leverage the helper
	riscv_extend_to_xmode_reg with SIGN_EXTEND.

2025-01-29  Pan Li  <pan2.li@intel.com>

	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Rename from ...
	(riscv_extend_to_xmode_reg): Rename to and add rtx_code for
	zero/sign extend if non-Xmode.
	(riscv_expand_usadd): Leverage the renamed function with ZERO_EXTEND.
	(riscv_expand_ussub): Ditto.

2025-01-29  Richard Biener  <rguenther@suse.de>

	PR middle-end/118684
	* expr.cc (expand_expr_real_1): When creating a stack local
	during expansion of a handled component, when the base is
	a SSA_NAME use its type alignment and avoid calling
	get_object_alignment.

2025-01-28  Richard Biener  <rguenther@suse.de>

	PR middle-end/118684
	* expr.cc (expand_expr_real_1): When expanding a reference
	based on a register and we end up needing a MEM make sure
	that's aligned as the original reference required.

2025-01-28  David Malcolm  <dmalcolm@redhat.com>

	* input.cc (file_cache_slot::dump): Show indices within
	m_line_record when dumping entries.

2025-01-28  David Malcolm  <dmalcolm@redhat.com>

	PR other/118675
	* diagnostic-format-sarif.cc: Define INCLUDE_STRING.
	(escape_braces): New.
	(set_string_property_escaping_braces): New.
	(sarif_builder::make_message_object): Escape braces in the "text"
	property.
	(sarif_builder::make_message_object_for_diagram): Likewise, and
	for the "markdown" property.
	(sarif_builder::make_multiformat_message_string): Likewise for the
	"text" property.
	(xelftest::test_message_with_braces): New.
	(selftest::diagnostic_format_sarif_cc_tests): Call it.

2025-01-28  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/117270
	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Make nperms
	account for the number of times that each permutation will be used
	during transformation.

2025-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/112859
	* tree-loop-distribution.cc
	(loop_distribution::pg_add_dependence_edges): Add comment.

2025-01-28  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/118663
	* lra-constraints.cc (invalid_mode_reg_p): Check empty
	reg_class_contents.

2025-01-28  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/117424
	* tree-eh.cc (tree_could_trap_p): Verify the base is
	fully contained within a decl.

2025-01-28  Thomas Schwinge  <tschwinge@baylibre.com>

	* tree-pretty-print.cc (dump_omp_clause): Clarify
	'OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P'.

2025-01-28  Jakub Jelinek  <jakub@redhat.com>

	PR rtl-optimization/118638
	* combine.cc (make_extraction): Only optimize (mult x 2^n) if len is
	larger than 1.

2025-01-28  Richard Sandiford  <richard.sandiford@arm.com>

	* tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
	extra newline from dump message.

2025-01-28  Jeff Law  <jlaw@ventanamicro.com>

	PR target/114085
	* config/h8300/constraints.md (U): No longer accept REGs.
	* config/h8300/logical.md (andqi3_2): Use "rU" rather than "U".
	(andqi3_2_clobber_flags, andqi3_1, <code>qi3_1): Likewise.
	* config/h8300/testcompare.md (tst_extzv_1_n): Likewise.

2025-01-27  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/117173
	* config/riscv/riscv-v.cc (shuffle_generic_patterns): Only
	support single-source permutes by default.
	* config/riscv/riscv.opt: New param "riscv-two-source-permutes".

2025-01-27  John David Anglin  <danglin@gcc.gnu.org>

	PR c++/116524
	* configure.ac: Check for munmap and msync.
	* configure: Regenerate.
	* config.in: Regenerate.

2025-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118653
	* tree-vect-loop.cc (vectorizable_live_operation): Also allow
	out-of-loop debug uses.

2025-01-27  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/118662
	* combine.cc (try_combine): When re-materializing a load
	from an extended reg by a lowpart subreg make sure we're
	not dealing with vector or complex modes.

2025-01-27  Richard Biener  <rguenther@suse.de>

	PR middle-end/118643
	* expr.cc (expand_expr_real_1): Avoid falling back to BIT_FIELD_REF
	expansion for negative offset.

2025-01-27  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/112859
	PR tree-optimization/115347
	* tree-loop-distribution.cc
	(loop_distribution::pg_add_dependence_edges): For a zero
	distance vector still make sure to not have an inner
	loop with zero distance.

2025-01-27  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118637
	* match.pd: Canonicalize unsigned division by power of two to
	right shift.

2025-01-27  Soumya AR  <soumyaa@nvidia.com>

	PR target/118490
	* match.pd: Added ! to verify that log/exp (CST) can be constant folded.

2025-01-26  Ilya Leoshkevich  <iii@linux.ibm.com>

	* asan.cc (asan_emit_stack_protection): Always zero the flag
	unless it is cleared by the __asan_stack_free_N() libcall.

2025-01-26  Pan Li  <pan2.li@intel.com>

	PR target/118103
	* config/riscv/riscv.cc (riscv_conditional_register_usage): Add
	the FRM as the global_regs.

2025-01-25  Andi Kleen  <ak@gcc.gnu.org>

	PR preprocessor/118168
	* input.cc (file_cache_slot::m_error): New field.
	(file_cache_slot::create): Clear m_error.
	(file_cache_slot::file_cache_slot): Clear m_error.
	(file_cache_slot::read_data): Set m_error on error.
	(file_cache_slot::get_next_line): Use m_error instead of ferror.

2025-01-25  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116256
	* config/riscv/riscv.md (mvconst_internal): Reject single bit
	constants.
	* config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Improve
	handling constants.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V9_5A): Add CPA.
	* config/aarch64/aarch64-option-extensions.def (CPA): New.
	* doc/invoke.texi: Document +cpa.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* doc/invoke.texi: Add +wfxt and +xs to armv9.2-a

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V9_5A): New.
	* doc/invoke.texi: Document armv9.5-a option.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc: Assert that CRYPTO
	bit is not set.
	* config/aarch64/aarch64-feature-deps.h
	(info<FEAT>.explicit_on): Unset CRYPTO bit.
	(cpu_##CORE_IDENT): Ditto.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(aarch64_rewrite_selected_cpu): Refactor and inline into...
	(aarch64_rewrite_mcpu): this.
	* config/aarch64/aarch64-protos.h
	(aarch64_rewrite_selected_cpu): Delete.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(aarch64_get_arch_string_for_assembler): New.
	(aarch64_rewrite_march): New.
	(aarch64_rewrite_selected_cpu): Call new function.
	* config/aarch64/aarch64-elf.h (ASM_SPEC): Remove identity mapping.
	* config/aarch64/aarch64-protos.h
	(aarch64_get_arch_string_for_assembler): New.
	* config/aarch64/aarch64.cc
	(aarch64_declare_function_name): Call new function.
	(aarch64_start_file): Ditto.
	* config/aarch64/aarch64.h
	(EXTRA_SPEC_FUNCTIONS): Use new macro name.
	(MCPU_TO_MARCH_SPEC): Rename to...
	(MARCH_REWRITE_SPEC): ...this, and extend the spec rule.
	(aarch64_rewrite_march): New declaration.
	(MCPU_TO_MARCH_SPEC_FUNCTIONS): Rename to...
	(AARCH64_BASE_SPEC_FUNCTIONS): ...this, and add new function.
	(ASM_CPU_SPEC): Use new macro name.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(aarch64_get_all_extension_candidates): Inline into...
	(aarch64_print_hint_for_extensions): ...this.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(aarch64_get_all_extension_candidates): Move within file.
	(aarch64_print_hint_candidates): Move from aarch64.cc.
	(aarch64_print_hint_for_extensions): Ditto.
	(aarch64_print_hint_for_arch): Ditto.
	(aarch64_print_hint_for_core): Ditto.
	(enum aarch_parse_opt_result): Ditto.
	(aarch64_parse_arch): Ditto.
	(aarch64_parse_cpu): Ditto.
	(aarch64_parse_tune): Ditto.
	(aarch64_validate_march): Ditto.
	(aarch64_validate_mcpu): Ditto.
	(aarch64_validate_mtune): Ditto.
	* config/aarch64/aarch64-protos.h
	(aarch64_rewrite_selected_cpu): Move within file.
	(aarch64_print_hint_for_extensions): Share function prototype.
	(aarch64_print_hint_for_arch): Ditto.
	(aarch64_print_hint_for_core): Ditto.
	(enum aarch_parse_opt_result): Ditto.
	(aarch64_validate_march): Ditto.
	(aarch64_validate_mcpu): Ditto.
	(aarch64_validate_mtune): Ditto.
	(aarch64_get_all_extension_candidates): Unshare prototype.
	* config/aarch64/aarch64.cc
	(aarch64_parse_arch): Move to aarch64-common.cc.
	(aarch64_parse_cpu): Ditto.
	(aarch64_parse_tune): Ditto.
	(aarch64_print_hint_candidates): Ditto.
	(aarch64_print_hint_for_core): Ditto.
	(aarch64_print_hint_for_arch): Ditto.
	(aarch64_print_hint_for_extensions): Ditto.
	(aarch64_validate_mcpu): Ditto.
	(aarch64_validate_march): Ditto.
	(aarch64_validate_mtune): Ditto.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_print_hint_candidates): New helper function.
	(aarch64_print_hint_for_core_or_arch): Inline into callers.
	(aarch64_print_hint_for_core): Inline callee and use new helper.
	(aarch64_print_hint_for_arch): Ditto.
	(aarch64_print_hint_for_extensions): Use new helper.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_print_hint_for_extensions): Receive string as a char *.
	(aarch64_parse_arch): Don't return a const struct processor *.
	(aarch64_parse_cpu): Ditto.
	(aarch64_parse_tune): Ditto.
	(aarch64_validate_mtune): Ditto.
	(aarch64_validate_mcpu): Ditto, and use temporary variables for
	march/mcpu cross-check.
	(aarch64_validate_march): Ditto.
	(aarch64_override_options): Adjust for changed parameter types.
	(aarch64_handle_attr_arch): Ditto.
	(aarch64_handle_attr_cpu): Ditto.
	(aarch64_handle_attr_tune): Ditto.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(struct aarch64_option_extension): Rename to..
	(struct aarch64_extension_info): ...this.
	(all_extensions): Update type name.
	(struct arch_to_arch_name): Rename to...
	(struct aarch64_arch_info): ...this, and rename name field.
	(all_architectures): Update type names, and move before...
	(struct processor_name_to_arch): ...this. Rename to...
	(struct aarch64_processor_info): ...this, rename name field and
	add cpu field.
	(all_cores): Update type name, and set new field.
	(aarch64_parse_extension): Update names.
	(aarch64_get_all_extension_candidates): Ditto.
	(aarch64_rewrite_selected_cpu): Ditto.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* common/config/aarch64/aarch64-common.cc
	(all_cores): Remove explicit generic entry.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-opts.h
	(enum aarch64_processor): Rename to...
	(enum aarch64_cpu): ...this, and rename the entries.
	* config/aarch64/aarch64.cc
	(aarch64_type): Rename type and initial value.
	(struct processor): Rename member types.
	(all_architectures): Rename enum members.
	(all_cores): Ditto.
	(aarch64_get_tune_cpu): Rename type and enum member.
	* config/aarch64/aarch64.h (enum target_cpus): Remove.
	(TARGET_CPU_DEFAULT): Rename default value.
	(aarch64_tune): Rename type.
	* config/aarch64/aarch64.opt:
	(selected_tune): Rename type and default value.

2025-01-24  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64.cc (aarch64_override_options): Compare
	returned feature masks directly.

2025-01-24  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/118497
	* ira-int.h (target_ira_int): Add x_ira_hard_regno_nrefs.
	(ira_hard_regno_nrefs): New macro.
	* ira.cc (setup_hard_regno_aclass): Remove unused code.  Modify
	the comment.
	(setup_hard_regno_nrefs): New function.
	(ira): Call it.
	* ira-color.cc (calculate_saved_nregs): Check
	ira_hard_regno_nrefs.

2025-01-24  yxj-github-437  <2457369732@qq.com>

	* config/aarch64/aarch64.cc (aarch64_build_builtin_va_list): Mark
	__builtin_va_list as TREE_PUBLIC.
	* config/arm/arm.cc (arm_build_builtin_va_list): Likewise.

2025-01-24  David Malcolm  <dmalcolm@redhat.com>

	PR sarif-replay/117670
	* Makefile.in (SARIF_REPLAY_INSTALL_NAME): New.
	(install-libgdiagnostics): Use it,and exeext, rather than just
	sarif-replay.

2025-01-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/116010
	* tree-data-ref.cc (contains_ssa_ref_p_1): New function.
	(contains_ssa_ref_p): Likewise.
	(dr_may_alias_p): Avoid treating unanalyzed base parts without
	SSA reference conservatively.

2025-01-24  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.h (S390_TDC_POSITIVE_ZERO): Remove.
	(S390_TDC_NEGATIVE_ZERO): Remove.
	(S390_TDC_POSITIVE_NORMALIZED_BFP_NUMBER): Remove.
	(S390_TDC_NEGATIVE_NORMALIZED_BFP_NUMBER): Remove.
	(S390_TDC_POSITIVE_DENORMALIZED_BFP_NUMBER): Remove.
	(S390_TDC_NEGATIVE_DENORMALIZED_BFP_NUMBER): Remove.
	(S390_TDC_POSITIVE_INFINITY): Remove.
	(S390_TDC_NEGATIVE_INFINITY): Remove.
	(S390_TDC_POSITIVE_QUIET_NAN): Remove.
	(S390_TDC_NEGATIVE_QUIET_NAN): Remove.
	(S390_TDC_POSITIVE_SIGNALING_NAN): Remove.
	(S390_TDC_NEGATIVE_SIGNALING_NAN): Remove.
	(S390_TDC_POSITIVE_DENORMALIZED_DFP_NUMBER): Remove.
	(S390_TDC_NEGATIVE_DENORMALIZED_DFP_NUMBER): Remove.
	(S390_TDC_POSITIVE_NORMALIZED_DFP_NUMBER): Remove.
	(S390_TDC_NEGATIVE_NORMALIZED_DFP_NUMBER): Remove.
	(S390_TDC_SIGNBIT_SET): Remove.
	(S390_TDC_INFINITY): Remove.
	* config/s390/s390.md (signbit<mode>2<tf_fpr>): Merge this one
	(isinf<mode>2<tf_fpr>): and this one into
	(<TDC_CLASS:tdc_insn><mode>2<tf_fpr>): new expander.
	(isnormal<mode>2<tf_fpr>): New BFP expander.
	(isnormal<mode>2): New DFP expander.
	* config/s390/vector.md (signbittf2_vr): Merge this one
	(isinftf2_vr): and this one into
	(<tdc_insn>tf2_vr): new expander.
	(signbittf2): Merge this one
	(isinftf2): and this one into
	(<tdc_insn>tf2): new expander.

2025-01-24  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118634
	* tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely):
	Dump the number of estimated eliminated insns.

2025-01-24  Saurabh Jha  <saurabh.jha@arm.com>

	* config/aarch64/aarch64-sve2.md:
	(*aarch64_pred_faminmax_fused): Fix to use the correct flags.
	* config/aarch64/aarch64.h
	(TARGET_SVE_FAMINMAX): Remove.
	* config/aarch64/iterators.md: Fix iterators so that famax and
	famin use correct flags.

2025-01-24  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118572
	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Compare as
	unsigned the variables whose extension bits are masked out.

2025-01-24  Alexandre Oliva  <oliva@adacore.com>

	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Document
	reversep's absence of effects on range tests.  Don't reject
	reversep mismatches before trying compare swapping.

2025-01-24  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118514
	* tree-eh.cc (bit_field_ref_in_bounds_p): New.
	(tree_could_trap_p) <BIT_FIELD_REF>: Call it.
	* gimple-fold.cc (make_bit_field_load): Check trapping status
	of replacement load against original load.

2025-01-23  John David Anglin  <danglin@gcc.gnu.org>

	* config/pa/pa32-regs.h (ADDITIONAL_REGISTER_NAMES): Change
	register 86 name to "%fr31L".

2025-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118628
	* tree-vect-stmts.cc (vectorizable_store, vectorizable_load):
	Initialize offvar to NULL_TREE.

2025-01-23  Georg-Johann Lay  <avr@gjlay.de>

	PR tree-optimization/118012
	PR tree-optimization/118360
	* config/avr/avr.opt (-mpr118012): New undocumented option.
	* config/avr/avr-protos.h (avr_out_sextr)
	(avr_emit_skip_pixop, avr_emit_skip_clear): New protos.
	* config/avr/avr.cc (avr_adjust_insn_length)
	[case ADJUST_LEN_SEXTR]: Handle case.
	(avr_rtx_costs_1) [NEG]: Costs for NEG (ZERO_EXTEND (ZERO_EXTRACT)).
	[MULT && avropt_pr118012]: Costs for MULT (x AND 1).
	(avr_out_sextr, avr_emit_skip_pixop, avr_emit_skip_clear): New
	functions.
	* config/avr/avr.md [avropt_pr118012]: Add combine patterns with
	that condition that try to work around PR118012.
	(adjust_len) <sextr>: Add insn attr value.
	(pixop): New code iterator.
	(mulsi3) [avropt_pr118012 && !AVR_TINY]: Allow these in insn condition.

2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/118562
	* rtl-ssa/blocks.cc (function_info::replace_phi): When converting
	to a degenerate phi, make sure to remove all uses of the previous
	inputs.

2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64-tuning-flags.def
	(AARCH64_EXTRA_TUNE_CHEAP_FPMR_WRITE): New tuning flag.
	* config/aarch64/aarch64.h (TARGET_CHEAP_FPMR_WRITE): New macro.
	* config/aarch64/aarch64.md: Split moves into FPMR into a test
	and branch around.
	(aarch64_write_fpmr): New pattern.

2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.cc (aarch64_memory_move_cost): Account
	for the cost of moving in and out of GENERAL_SYSREGS.

2025-01-23  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64)
	(*movsi_aarch64, *movdi_aarch64): Allow the source of an MSR
	to be zero.

2025-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118605
	* tree-assume.cc (assume_query::m_parm_list): Change type
	from bitmap & to bitmap.

2025-01-23  Tejas Belagod  <tejas.belagod@arm.com>

	* omp-low.cc (use_pointer_for_field): Use pointer if the OMP data
	structure's field type is a poly-int.

2025-01-23  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/114877
	* builtins.cc (fold_builtin_frexp): Handle rvc_nan and rvc_inf cases
	like rvc_zero, return passed in arg and set *exp = 0.

2025-01-23  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	'alarm'.

2025-01-23  Georg-Johann Lay  <avr@gjlay.de>

	PR target/117726
	* config/avr/avr.cc (avr_ld_regno_p): New function.
	(ashlsi3_out) [case 25,26,27,28,29,30]: Handle and tweak.
	(lshrsi3_out): Same.
	(avr_rtx_costs_1) [SImode, ASHIFT, LSHIFTRT]: Adjust costs.
	* config/avr/avr.md (ashlsi3, *ashlsi3, *ashlsi3_const):
	Add "r,r,C4L" alternative.
	(lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,r,C4R" alternative.
	* config/avr/constraints.md (C4R, C4L): New,

2025-01-23  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118558
	* tree-vectorizer.h (vect_known_alignment_in_bytes): Pass
	through offset to dr_misalignment.
	* tree-vect-stmts.cc (get_group_load_store_type): Compute
	offset applied for negative stride and use it when querying
	alignment of accesses.
	(vectorizable_load): Likewise.

2025-01-23  Nathaniel Shead  <nathanieloshead@gmail.com>

	PR c++/107741
	* common.opt: Add -fabi-version=20.
	* doc/invoke.texi: Likewise.

2025-01-23  Xi Ruoyao  <xry111@xry111.site>

	PR target/118501
	* config/loongarch/loongarch.md (@xorsign<mode>3): Use
	force_lowpart_subreg.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/avx10_2-512convertintrin.h:
	Omit "p" for packed for FP8.
	* config/i386/avx10_2convertintrin.h: Ditto.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512satcvtintrin.h: Change intrin and
	builtin name according to new mnemonics.
	* config/i386/avx10_2satcvtintrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VCVTBF162IBS): Rename from UNSPEC_VCVTNEBF162IBS.
	(UNSPEC_VCVTBF162IUBS): Rename from UNSPEC_VCVTNEBF162IUBS.
	(UNSPEC_VCVTTBF162IBS): Rename from UNSPEC_VCVTTNEBF162IBS.
	(UNSPEC_VCVTTBF162IUBS): Rename from UNSPEC_VCVTTNEBF162IUBS.
	(UNSPEC_CVTNE_BF16_IBS_ITER): Rename to...
	(UNSPEC_CVT_BF16_IBS_ITER): ...this. Adjust UNSPEC name.
	(sat_cvt_sign_prefix): Adjust UNSPEC name.
	(sat_cvt_trunc_prefix): Ditto.
	(avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
	Rename to...
	(avx10_2_cvt<sat_cvt_trunc_prefix>bf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
	...this. Change instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512convertintrin.h: Change intrin and
	builtin name according to new mnemonics.
	* config/i386/avx10_2convertintrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VCVTPH2BF8): Rename from UNSPEC_VCVTNEPH2BF8.
	(UNSPEC_VCVTPH2BF8S): Rename from UNSPEC_VCVTNEPH2BF8S.
	(UNSPEC_VCVTPH2HF8): Rename from UNSPEC_VCVTNEPH2HF8.
	(UNSPEC_VCVTPH2HF8S): Rename from UNSPEC_VCVTNEPH2HF8S.
	(UNSPEC_CONVERTPH2FP8): Rename from UNSPEC_NECONVERTPH2FP8.
	Adjust UNSPEC name.
	(convertph2fp8): Rename from neconvertph2fp8. Adjust
	iterator map.
	(vcvt<neconvertph2fp8>v8hf): Rename to...
	(vcvt<neconvertph2fp8>v8hf): ...this.
	(*vcvt<neconvertph2fp8>v8hf): Rename to...
	(*vcvt<neconvertph2fp8>v8hf): ...this.
	(vcvt<neconvertph2fp8>v8hf_mask): Rename to...
	(vcvt<neconvertph2fp8>v8hf_mask): ...this.
	(*vcvt<neconvertph2fp8>v8hf_mask): Rename to...
	(*vcvt<neconvertph2fp8>v8hf_mask): ...this.
	(vcvt<neconvertph2fp8><mode><mask_name>): Rename to...
	(vcvt<convertph2fp8><mode><mask_name>): ...this.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512convertintrin.h: Change intrin and
	builtin name according to new mnemonics.
	* config/i386/avx10_2convertintrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VCVT2PH2BF8): Rename from UNSPEC_VCVTNE2PH2BF8.
	(UNSPEC_VCVT2PH2BF8S): Rename from UNSPEC_VCVTNE2PH2BF8S.
	(UNSPEC_VCVT2PH2HF8): Rename from UNSPEC_VCVTNE2PH2HF8.
	(UNSPEC_VCVT2PH2HF8S): Rename from UNSPEC_VCVTNE2PH2HF8S.
	(UNSPEC_CONVERTFP8_PACK): Rename from UNSPEC_NECONVERTFP8_PACK.
	Adjust UNSPEC name.
	(convertfp8_pack): Rename from neconvertfp8_pack. Adjust
	iterator map.
	(vcvt<neconvertfp8_pack><mode><mask_name>): Rename to...
	(vcvt<convertfp8_pack><mode><mask_name>): ...this.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/i386-expand.cc
	(ix86_expand_fp_compare): Adjust comments.
	(ix86_expand_builtin): Adjust switch case.
	* config/i386/i386.md (cmpibf): Change instruction name output.
	* config/i386/sse.md (UNSPEC_VCOMSBF16): Removed.
	(avx10_2_comisbf16_v8bf): New.
	(avx10_2_comsbf16_v8bf): Removed.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VFPCLASSBF16); Rename from UNSPEC_VFPCLASSPBF16.
	(avx10_2_getexppbf16_<mode><mask_name>): Rename to...
	(avx10_2_getexpbf16_<mode><mask_name>): ...this.
	Change instruction name output.
	(avx10_2_fpclasspbf16_<mode><mask_scalar_merge_name>):
	Rename to...
	(avx10_2_fpclassbf16_<mode><mask_scalar_merge_name>): ...this.
	Change instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VSCALEFBF16): Rename from UNSPEC_VSCALEFPBF16.
	(avx10_2_scalefpbf16_<mode><mask_name>): Rename to...
	(avx10_2_scalefbf16_<mode><mask_name>): ...this.
	Change instruction name output.
	(avx10_2_rsqrtpbf16_<mode><mask_name>): Rename to...
	(avx10_2_rsqrtbf16_<mode><mask_name>): ...this.
	Change instruction name output.
	(avx10_2_sqrtnepbf16_<mode><mask_name>): Rename to...
	(avx10_2_sqrtbf16_<mode><mask_name>): ...this.
	Change instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_VRNDSCALEBF16): Rename from UNSPEC_VRNDSCALENEPBF16.
	(UNSPEC_VREDUCEBF16): Rename from UNSPEC_VREDUCENEPBF16.
	(UNSPEC_VGETMANTBF16): Rename from UNSPEC_VGETMANTPBF16.
	(BF16IMMOP): Adjust iterator due to UNSPEC name change.
	(bf16immop): Ditto.
	(avx10_2_<bf16immop>pbf16_<mode><mask_name>): Rename to...
	(avx10_2_<bf16immop>bf16_<mode><mask_name>): ...this. Change
	instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512minmaxintrin.h: Change intrin and
	builtin name according to new mnemonics.
	* config/i386/avx10_2minmaxintrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(UNSPEC_MINMAXBF16): Rename from UNSPEC_MINMAXNEPBF16.
	(avx10_2_minmaxnepbf16_<mode><mask_name>): Rename to...
	(avx10_2_minmaxbf16_<mode><mask_name>): ...this. Change
	instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(avx10_2_<code>pbf16_<mode><mask_name>): Rename to...
	(avx10_2_<code>bf16_<mode><mask_name>): ...this.
	Change instruction name output.
	(avx10_2_cmppbf16_<mode><mask_scalar_merge_name>): Rename to...
	(avx10_2_cmpbf16_<mode><mask_scalar_merge_name>): ...this.
	Change instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	names according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md
	(avx10_2_fmaddnepbf16_<mode>_maskz): Rename to...
	(avx10_2_fmaddbf16_<mode>_maskz): ...this. Adjust emit_insn.
	(avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): Rename to...
	(avx10_2_fmaddbf16_<mode><sd_maskz_name>): ...this.
	Change instruction name output.
	(avx10_2_fmaddnepbf16_<mode>_mask): Rename to...
	(avx10_2_fmaddbf16_<mode>_mask): ...this.
	Change instruction name output.
	(avx10_2_fmaddnepbf16_<mode>_mask3): Rename to...
	(avx10_2_fmaddbf16_<mode>_mask3): ...this.
	Change instruction name output.
	(avx10_2_fnmaddnepbf16_<mode>_maskz): Rename to...
	(avx10_2_fnmaddbf16_<mode>_maskz): ...this. Adjust emit_insn.
	(avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Rename to...
	(avx10_2_fnmaddbf16_<mode><sd_maskz_name>): ...this.
	Change instruction name output.
	(avx10_2_fnmaddnepbf16_<mode>_mask): Rename to...
	(avx10_2_fnmaddbf16_<mode>_mask): ...this.
	Change instruction name output.
	(avx10_2_fnmaddnepbf16_<mode>_mask3): Rename to...
	(avx10_2_fnmaddbf16_<mode>_mask3): ...this.
	Change instruction name output.
	(avx10_2_fmsubnepbf16_<mode>_maskz): Rename to...
	(avx10_2_fmsubbf16_<mode>_maskz): ...this. Adjust emit_insn.
	(avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Rename to...
	(avx10_2_fmsubbf16_<mode><sd_maskz_name>): ...this.
	Change instruction name output.
	(avx10_2_fmsubnepbf16_<mode>_mask): Rename to...
	(avx10_2_fmsubbf16_<mode>_mask): ...this.
	Change instruction name output.
	(avx10_2_fmsubnepbf16_<mode>_mask3): Rename to...
	(avx10_2_fmsubbf16_<mode>_mask3): ...this.
	Change instruction name output.
	(avx10_2_fnmsubnepbf16_<mode>_maskz): Rename to...
	(avx10_2_fnmsubbf16_<mode>_maskz): ...this. Adjust emit_insn.
	(avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Rename to...
	(avx10_2_fnmsubbf16_<mode><sd_maskz_name>): ...this.
	Change instruction name output.
	(avx10_2_fnmsubnepbf16_<mode>_mask): Rename to...
	(avx10_2_fnmsubbf16_<mode>_mask): ...this.
	Change instruction name output.
	(avx10_2_fnmsubnepbf16_<mode>_mask3): Rename to...
	(avx10_2_fnmsubbf16_<mode>_mask3): ...this.
	Change instruction name output.

2025-01-23  Haochen Jiang  <haochen.jiang@intel.com>

	PR target/118270
	* config/i386/avx10_2-512bf16intrin.h: Change intrin and builtin
	name according to new mnemonics.
	* config/i386/avx10_2bf16intrin.h: Ditto.
	* config/i386/i386-builtin.def (BDESC): Ditto.
	* config/i386/sse.md (div<mode>3): Adjust emit_insn.
	(avx10_2_<insn>nepbf16_<mode><mask_name>): Rename to...
	(avx10_2_<insn>bf16_<mode><mask_name>): ...this. Change
	instruction name output.
	(avx10_2_rcppbf16_<mode><mask_name>): Rename to...
	(avx10_2_rcpbf16_<mode><mask_name>):...this. Change
	instruction name output.

2025-01-22  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.cc: Fix arch15 machine string which must not
	be empty.

2025-01-22  Richard Sandiford  <richard.sandiford@arm.com>

	* config/aarch64/aarch64.md (aarch64_read_sysregti): Change
	the source predicate to aarch64_reg_or_zero.

2025-01-22  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.md
	(<optab>_alsl_reversesi_extended): Add '&' to the destination
	register constraint and append '0' to the first source register
	constraint to indicate the destination register cannot be same
	as the second source register, and change the split condition to
	reload_completed so that the insn will be split only after RA in
	order to obtain allocated registers that satisfy the above
	constraints.

2025-01-21  Jeff Law  <jlaw@ventanamicro.com>

	Revert:
	2024-10-29  yulong  <shiyulong@iscas.ac.cn>

	* config.gcc: Add riscv_cmo.h.
	* config/riscv/riscv_cmo.h: New file.

2025-01-21  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118483
	* match.pd (`x ==/!= ~x`): Allow for an optional convert
	and use itwise_inverted_equal_p/maybe_bit_not instead of
	directly matching bit_not.

2025-01-21  Robin Dapp  <rdapp@ventanamicro.com>

	* config/riscv/riscv.cc (riscv_file_end): Fix format string.
	(riscv_lshift_subword): Mark MODE as unused.

2025-01-21  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-passes.cc (avr_emit_shift) [ASHIFT,HImode]:
	Allow offsets 5 and 6 as 3op provided have MUL and a scratch.
	* config/avr/avr.cc (avr_optimize_size_max_p): New function.
	(avr_out_ashlhi3_mul): New function.
	(ashlhi3_out) [case 4, 5, 6]: Better speed for -Os.
	* config/avr/avr.md (isa) <mul, no_mul>: New attr values.
	(*ashlhi3_const): Add alternative for offsets 5 and 6.

2025-01-21  Jin Ma  <jinma@linux.alibaba.com>

	PR target/116593
	* config/riscv/constraints.md (vl): New.
	* config/riscv/thead-vector.md: Replacing rK with rvl.
	* config/riscv/vector.md: Likewise.

2025-01-21  Denis Chertykov  <chertykov@gmail.com>

	* lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Use known_ge
	to compare sizes.

2025-01-21  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116256
	* config/riscv/predicates.md (consecutive_bits_operand): Properly
	handle (const_int 0).

2025-01-21  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.opt.urls: Regenerate

2025-01-21  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118569
	* cfgloopmanip.cc (fix_loop_placement): When the loops
	nesting parents changed, mark all blocks to be scanned
	for LC PHI uses.
	(fix_bb_placements): Remove code moved into fix_loop_placement.

2025-01-21  Vladimir Miloserdov  <vladimir.miloserdov@arm.com>

	* config/aarch64/aarch64-c.cc
	(aarch64_update_cpp_builtins): Add new flag TARGET_LUT.
	* config/aarch64/aarch64-sve-builtins-shapes.cc
	(struct luti_base): Shape for lut intrinsics.
	(SHAPE): Specializations for lut shapes for luti2 and luti4..
	* config/aarch64/aarch64-sve-builtins-shapes.h: Declare lut
	intrinsics.
	* config/aarch64/aarch64-sve-builtins-sve2.cc
	(class svluti_lane_impl): Define expand for lut intrinsics.
	(FUNCTION): Define expand for lut intrinsics.
	* config/aarch64/aarch64-sve-builtins-sve2.def
	(REQUIRED_EXTENSIONS): Declare lut intrinsics behind lut flag.
	(svluti2_lane): Define intrinsic behind flag.
	(svluti4_lane): Define intrinsic behind flag.
	* config/aarch64/aarch64-sve-builtins-sve2.h: Declare lut
	intrinsics.
	* config/aarch64/aarch64-sve-builtins.cc
	(TYPES_bh_data): New type for byte and halfword.
	(bh_data): Type array for byte and halfword.
	(h_data): Type array for halfword.
	* config/aarch64/aarch64-sve2.md
	(@aarch64_sve_luti<LUTI_BITS><mode>): Instruction patterns for
	lut intrinsics.
	* config/aarch64/iterators.md: Iterators and attributes for lut
	intrinsics.

2025-01-21  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/118273
	* tree-vect-stmts.cc (vectorizable_simd_clone_call): Use nvectors when
	doing mask registrations.

2025-01-21  Tamar Christina  <tamar.christina@arm.com>

	* config.gcc (aarch64-*-elf): Drop ILP32 from default multilibs.

2025-01-21  Lulu Cheng  <chenglulu@loongson.cn>

	* config/loongarch/loongarch-protos.h
	(loongarch_reset_previous_fndecl):  Add function declaration.
	(loongarch_save_restore_target_globals): Likewise.
	(loongarch_register_pragmas): Likewise.
	* config/loongarch/loongarch-target-attr.cc
	(loongarch_option_valid_attribute_p): Optimize the processing
	of attributes.
	(loongarch_pragma_target_parse): New functions.
	(loongarch_register_pragmas): Likewise.
	* config/loongarch/loongarch.cc
	(loongarch_reset_previous_fndecl): New functions.
	(loongarch_set_current_function): When the old_tree is the same
	as the new_tree, the rules for using registers, etc.,
	are set according to the option values to ensure that the
	pragma can be processed correctly.
	* config/loongarch/loongarch.h (REGISTER_TARGET_PRAGMAS):
	Define macro.
	* doc/extend.texi: Supplemental Documentation.

2025-01-21  Lulu Cheng  <chenglulu@loongson.cn>

	* attr-urls.def: Regenerate.
	* config.gcc: Add loongarch-target-attr.o to extra_objs.
	* config/loongarch/loongarch-protos.h
	(loongarch_option_valid_attribute_p): Function declaration.
	(loongarch_option_override_internal): Likewise.
	* config/loongarch/loongarch.cc
	(loongarch_option_override_internal): Delete the modifications
	to target_option_default_node and target_option_current_node.
	(loongarch_set_current_function): Add annotation information.
	(loongarch_option_override): add assignment operations to
	target_option_default_node and target_option_current_node.
	(TARGET_OPTION_VALID_ATTRIBUTE_P): Define.
	* config/loongarch/t-loongarch: Add compilation of target file
	loongarch-target-attr.o.
	* doc/extend.texi: Add description information of LoongArch
	Function Attributes.
	* config/loongarch/loongarch-target-attr.cc: New file.

2025-01-21  Alfie Richards  <alfie.richards@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_process_target_version_attr): Add experimental warning.
	* config/aarch64/aarch64.opt: Add command line option to disable
	warning.
	* doc/invoke.texi: Add documentation for -W[no-]experimental-fmv-target.

2025-01-20  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/118560
	* lra-constraints.cc (invalid_mode_reg_p): Exchange args in
	hard_reg_set_subset_p call.

2025-01-20  Jeff Law  <jlaw@ventanamicro.com>

	PR target/114442
	* config/riscv/xiangshan.md: Add missing insn types to a
	new dummy insn reservation.

2025-01-20  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116256
	* config/riscv/riscv.md (reassocating constant addition): Adjust
	condition to avoid creating an unrecognizable insn.

2025-01-20  Denis Chertykov  <chertykov@gmail.com>

	PR rtl-optimization/117868
	* lra-spills.cc (assign_stack_slot_num_and_sort_pseudos): Reuse slots
	only without allocated memory or only with equal or smaller registers
	with equal or smaller alignment.
	(lra_spill): Print slot size as width.

2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/118348
	* tree-vectorizer.cc (vec_info::move_dr): Copy
	STMT_VINFO_SIMD_LANE_ACCESS_P.

2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	Revert:
	2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/118384
	* tree-vectorizer.cc (vec_info::move_dr): Copy
	STMT_VINFO_SIMD_LANE_ACCESS_P.

2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR tree-optimization/118384
	* tree-vectorizer.cc (vec_info::move_dr): Copy
	STMT_VINFO_SIMD_LANE_ACCESS_P.

2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/118501
	* config/aarch64/aarch64.md (@xorsign<mode>3): Use
	force_lowpart_subreg.

2025-01-20  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/118531
	* config/aarch64/aarch64.md (*insv_reg<mode>_<SUBDI_BITS>)
	(*aarch64_bfi<GPI:mode><ALLX:mode>_<SUBDI_BITS>)
	(*aarch64_bfidi<ALLX:mode>_subreg_<SUBDI_BITS>): Add missing
	simd requirements.

2025-01-20  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>):
	Change GPR2 to X.
	(*th_cond_mov<GPR:mode>): Likewise.

2025-01-20  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118077
	PR tree-optimization/117668
	* tree-inline.cc (fold_marked_statements): Purge abnormal edges
	as needed.

2025-01-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/117875
	* tree-vect-slp.cc (vect_build_slp_tree_1): Handle SSA copies.

2025-01-20  Xi Ruoyao  <xry111@xry111.site>

	PR target/115921
	* config/loongarch/loongarch-protos.h
	(loongarch_reassoc_shift_bitwise): New function prototype.
	* config/loongarch/loongarch.cc
	(loongarch_reassoc_shift_bitwise): Implement.
	* config/loongarch/loongarch.md
	(*alslsi3_extend_subreg): New define_insn_and_split.
	(<any_bitwise:optab>_shift_reverse<X:mode>): New
	define_insn_and_split.
	(<any_bitwise:optab>_alsl_reversesi_extended): New
	define_insn_and_split.
	(zero_extend_ashift): Remove as it's just a special case of
	and_shift_reversedi, and it does not make too much sense to
	write "alsl.d rd,rs,r0,shamt" instead of "slli.d rd,rs,shamt".
	(bstrpick_alsl_paired): Remove as it is already done by
	splitting and_shift_reversedi into and + ashift first, then
	late combining the ashift and a further add.

2025-01-20  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/constraints.md (Yy): New define_constriant.
	* config/loongarch/loongarch.cc (loongarch_print_operand):
	For "%M", output the index of bits to be used with
	bstrins/bstrpick.
	* config/loongarch/predicates.md (ins_zero_bitmask_operand):
	Exclude low_bitmask_operand as for low_bitmask_operand it's
	always better to use bstrpick instead of bstrins.
	(and_operand): New define_predicate.
	* config/loongarch/loongarch.md (any_or): New
	define_code_iterator.
	(bitwise_operand): New define_code_attr.
	(*<optab:any_or><mode:GPR>3): New define_insn.
	(*and<mode:GPR>3): New define_insn.
	(<optab:any_bitwise><mode:X>3): New define_expand.
	(and<mode>3_extended): Remove, replaced by the 3rd alternative
	of *and<mode:GPR>3.
	(bstrins_<mode>_for_mask): Remove, replaced by the 4th
	alternative of *and<mode:GPR>3.
	(*<optab:any_bitwise>si3_internal): Remove, already covered by
	the *<optab:any_or><mode:GPR>3 and *and<mode:GPR>3 templates.

2025-01-20  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118552
	* cfgloopmanip.cc (fix_loop_placement): Properly mark
	exit source blocks as to be scanned for LC SSA update when
	the loops nesting relationship changed.
	(fix_loop_placements): Adjust.
	(fix_bb_placements): Likewise.

2025-01-20  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/t-nvptx (MULTILIB_OPTIONS): Don't add 'mptx=3.1' if
	neither sm_30 nor sm_35 multilib variant is built.

2025-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR c++/118509
	* tree.cc (tree_invariant_p_1): Return true for TARGET_EXPR too.

2025-01-20  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118224
	* tree-ssa-dce.cc (is_removable_allocation_p): Multiply a1 by a2
	instead of adding it.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_load_len): Deprecate
	some overloads.
	(s390_vec_store_len): Deprecate some overloads.
	(s390_vec_load_len_r): Add.
	(s390_vec_store_len_r): Add.
	* config/s390/s390-c.cc (s390_vec_load_len_r): Add.
	(s390_vec_store_len_r): Add.
	* config/s390/vecintrin.h (vec_load_len_r): Redefine.
	(vec_store_len_r): Redefine.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def: Add 128-bit variants.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/vector.md (<vec_shifts_name><mode>3): Add 128-bit
	variants.
	* config/s390/vx-builtins.md: Ditto.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def: Add 128-bit variants and remove
	bool variants.
	* config/s390/s390-builtin-types.def: Update accordinly.
	* config/s390/s390.md: Emulate min/max for GPR.
	* config/s390/vector.md: Add min/max patterns and emulate in
	case of no VXE3.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_abs_s128): Add.
	(s390_vlpq): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/vector.md (abs<mode>2): Emulate w/o VXE3.
	(*abs<mode>2): Add 128-bit variant.
	(*vec_sel0<mode>): Make it a ...
	(vec_sel0<mode>): named pattern.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def: Add 128-bit variants.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.cc (s390_expand_vec_compare_cc): Also
	consider TI modes for vectors.
	* config/s390/vector.md: Enable *vec_cmp et al. for VXE3.
	* config/s390/vx-builtins.md: Ditto.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/vector.md (div<mode>3): Add.
	(udiv<mode>3): Add.
	(mod<mode>3): Add.
	(umod<mode>3): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_cntlz): Add 128-bit
	integer overloads.
	(s390_vclzq): Add.
	(s390_vec_cnttz): Add 128-bit integer overloads.
	(s390_vctzq): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.h (CTZ_DEFINED_VALUE_AT_ZERO): Define.
	* config/s390/s390.md (*clzg): New insn.
	(clztidi2): Exploit new insn for target arch15.
	(ctzdi2): New insn.
	* config/s390/vector.md (clz<mode>2): Extend modes including
	128-bit integer.
	(ctz<mode>2): Likewise.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_gen_element_masks_128): Add.
	(s390_vgemb): Add.
	(s390_vgemh): Add.
	(s390_vgemf): Add.
	(s390_vgemg): Add.
	(s390_vgemq): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.md (UNSPEC_VEC_VGEM): Add.
	* config/s390/vecintrin.h (vec_gen_element_masks_8): Define.
	(vec_gen_element_masks_16): Define.
	(vec_gen_element_masks_32): Define.
	(vec_gen_element_masks_64): Define.
	(vec_gen_element_masks_128): Define.
	* config/s390/vx-builtins.md (vgemv16qi): Add.
	(vgem<mode>): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_evaluate): Add.
	(s390_veval): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.md (UNSPEC_VEC_VEVAL): Add.
	* config/s390/vecintrin.h (vec_evaluate): Define.
	* config/s390/vector.md
	(*veval<mode>_<logic_op1:logic_op_stringify><logic_op2:logic_op_stringify>):
	Add.
	(veval<mode>): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_vec_blend): Add.
	(s390_vblendb): Add.
	(s390_vblendh): Add.
	(s390_vblendf): Add.
	(s390_vblendg): Add.
	(s390_vblendq): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.md (UNSPEC_VEC_VBLEND): Add.
	* config/s390/vecintrin.h (vec_blend): Define.
	* config/s390/vx-builtins.md (vblend<mode>): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def (s390_bdepg): Add.
	(s390_bextg): Add.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/s390.md (UNSPEC_BDEPG): Add.
	(UNSPEC_BEXTG): Add.
	(bdepg): Add.
	(bextg): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390.md (*lxa<LXAMODE>_index): Add.
	(*lxa<LXAMODE>_displacement_index): Add.
	(*lxa<LXAMODE>_index_base): Add.
	(*lxa<LXAMODE>_displacement_index_base): Add.
	(*lxab_displacement_index_base): Add.
	(*llxa<LXAMODE>_displacement_index): Add.
	(*llxa<LXAMODE>_index_base): Add.
	(*llxa<LXAMODE>_displacement_index_base): Add.
	(*llxab_displacement_index_base): Add.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-builtins.def: Add new instruction variants.
	* config/s390/s390-builtin-types.def: Update accordingly.
	* config/s390/vecintrin.h: Add new defines.
	* config/s390/vector.md: Adapt insns for new instruction
	variants.
	* config/s390/vx-builtins.md: Ditto.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* config/s390/s390-builtins.def (B_VXE3): Define.
	(B_ARCH15): Define.
	* config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
	Consistency checks for VXE3.
	* config/s390/s390.cc (s390_expand_builtin): Consistency checks
	for VXE3.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* config/s390/s390-c.cc (rid_int128): New helper function.
	(s390_macro_to_expand): Deal with `vector __int128`.
	(s390_cpu_cpp_builtins_internal): Bump __VEC__.
	* config/s390/s390.cc (s390_handle_vectorbool_attribute): Add
	128-bit bool zvector.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* common/config/s390/s390-common.cc: Add arch15 processor flags.
	* config.gcc: Add arch15 for options --with-{arch,mtune}.
	* config/s390/driver-native.cc (s390_host_detect_local_cpu):
	Default to arch15.
	* config/s390/s390-opts.h (enum processor_type): Add
	PROCESSOR_ARCH15.
	* config/s390/s390.cc (processor_table,s390_issue_rate,
	s390_get_sched_attrmask,s390_get_unit_mask): Add arch15.
	* config/s390/s390.h (enum processor_flags): Add processor flags
	for VXE3 and ARCH15.
	(TARGET_CPU_VXE3): Define.
	(TARGET_CPU_VXE3_P): Define.
	(TARGET_CPU_ARCH15): Define.
	(TARGET_CPU_ARCH15_P): Define.
	(TARGET_VXE3): Define.
	(TARGET_VXE3_P): Define.
	(TARGET_ARCH15): Define.
	(TARGET_ARCH15_P): Define.
	* config/s390/s390.md: Add VXE3 and ARCH15 to cpu_facility, and
	let attribute "enabled" deal with them.
	* config/s390/s390.opt: Add arch15.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	* config/s390/vecintrin.h: Sort definitions.

2025-01-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/vector.md: Stay scalar for TOINTVEC/tointvec.

2025-01-20  Kito Cheng  <kito.cheng@sifive.com>

	* config.gcc (riscv*): Install sifive_vector.h.
	* config/riscv/sifive_vector.h: New.

2025-01-20  Hongyu Wang  <hongyu.wang@intel.com>

	PR target/118510
	* config/i386/i386.md (*x86_64_shld_ndd_2): Use register_operand
	for operand[0] and adjust the output template to directly
	generate ndd form shld pattern.
	(*x86_shld_ndd_2): Likewise.
	(*x86_64_shrd_ndd_2): Likewise.
	(*x86_shrd_ndd_2): Likewise.

2025-01-19  Uros Bizjak  <ubizjak@gmail.com>

	* config/i386/i386.md (*movdi_internal): Reorder ISA attribute
	by ascending alternative index.

2025-01-19  Mark Wielaard  <mark@klomp.org>

	* config/sparc/sparc.opt.urls: Regenerated.

2025-01-19  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/gm2.texi (Type compatibility): Move modula2.org link
	to https.

2025-01-19  Gerald Pfeifer  <gerald@pfeifer.com>

	* doc/extend.texi (OpenMP): Adjust link to specifications.

2025-01-18  Jeff Law  <jlaw@ventanamicro.com>

	PR target/116308
	* config/riscv/riscv.cc (riscv_lshift_subword): Use gen_lowpart
	rather than simplify_gen_subreg.

2025-01-18  Michal Jires  <mjires@suse.cz>

	* cgraph.cc (symbol_table::create_empty):
	Move uid to symtab_node.
	(test_symbol_table_test): Change expected dump id.
	* cgraph.h (struct cgraph_node):
	Move uid to symtab_node.
	(symbol_table::register_symbol): Likewise.
	* dumpfile.cc (test_capture_of_dump_calls):
	Change expected dump id.
	* ipa-inline.cc (update_caller_keys):
	Use summary id instead of uid.
	(update_callee_keys): Likewise.
	* symtab.cc (symtab_node::get_dump_name):
	Use uid instead of order.

2025-01-18  Eric Botcazou  <ebotcazou@adacore.com>

	PR target/118512
	* config/sparc/sparc-c.cc (sparc_target_macros): Deal with VIS 3B.
	* config/sparc/sparc.cc (dump_target_flag_bits): Likewise.
	(sparc_option_override): Likewise.
	(sparc_vis_init_builtins): Likewise.
	* config/sparc/sparc.md (fpcmp_vis): Replace TARGET_VIS3 with
	TARGET_VIS3B.
	(vec_cmp): Likewise.
	(fpcmpu_vis): Likewise.
	(vec_cmpu): Likewise.
	(vcond_mask_): Likewise.
	* config/sparc/sparc.opt (VIS3B): New target mask.
	* doc/invoke.texi (SPARC options): Document -mvis3b.

2025-01-18  Jin Ma  <jinma@linux.alibaba.com>

	PR target/118357
	* config/riscv/riscv-vsetvl.cc: Function change_vtype_only_p always
	returns false for XTheadVector.

2025-01-18  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118529
	* tree-vect-stmts.cc (vectorizable_condition): Check the
	shape of the vector and condition vector type are compatible.

2025-01-18  Georg-Johann Lay  <avr@gjlay.de>

	* doc/invoke.texi (AVR Options): Fix plenk at -msplit-ldst.

2025-01-18  Akram Ahmad  <Akram.Ahmad@arm.com>
	    Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.cc: Expand iterators.
	* config/aarch64/aarch64-simd-builtins.def: Use standard names
	* config/aarch64/aarch64-simd.md: Use standard names, split insn
	definitions on signedness of operator and type of operands.
	* config/aarch64/arm_neon.h: Use standard builtin names.
	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
	simplify splitting of insn for unsigned scalar arithmetic.

2025-01-18  Akram Ahmad  <Akram.Ahmad@arm.com>

	* config/aarch64/aarch64-sve.md: Rename insns

2025-01-18  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2025-01-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.cc: Expand iterators.
	* config/aarch64/aarch64-simd-builtins.def: Use standard names
	* config/aarch64/aarch64-simd.md: Use standard names, split insn
	definitions on signedness of operator and type of operands.
	* config/aarch64/arm_neon.h: Use standard builtin names.
	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
	simplify splitting of insn for unsigned scalar arithmetic.

2025-01-18  Tamar Christina  <tamar.christina@arm.com>

	Revert:
	2025-01-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-sve.md: Rename insns

2025-01-18  Monk Chiang  <monk.chiang@sifive.com>

	* config/riscv/riscv.cc: Remove unused variable.

2025-01-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.cc (loongarch_rtx_costs): Fix the
	cost for (a + b * imm) and (a + (b << imm)) which can be
	implemented with a single alsl instruction.

2025-01-18  Xi Ruoyao  <xry111@xry111.site>

	* config/loongarch/loongarch.md (alslsi3_extend): Add alsl.wu.

2025-01-17  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/118067
	* lra-constraints.cc (invalid_mode_reg_p): New function.
	(curr_insn_transform): Use it to check mode returned by target
	secondary_memory_needed_mode.

2025-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR target/118511
	* config/s390/s390.cc (print_operand) <case 'p'>: Use
	output_operand_lossage instead of gcc_checking_assert.
	(print_operand) <case 'q'>: Likewise.
	(print_operand) <case 'r'>: Likewise.

2025-01-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-sve.md: Rename insns

2025-01-17  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-builtins.cc: Expand iterators.
	* config/aarch64/aarch64-simd-builtins.def: Use standard names
	* config/aarch64/aarch64-simd.md: Use standard names, split insn
	definitions on signedness of operator and type of operands.
	* config/aarch64/arm_neon.h: Use standard builtin names.
	* config/aarch64/iterators.md: Add VSDQ_I_QI_HI iterator to
	simplify splitting of insn for unsigned scalar arithmetic.

2025-01-17  Carl Love  <cel@linux.ibm.com>

	* config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvuxwdp):
	Remove built-in definition.

2025-01-17  Carl Love  <cel@linux.ibm.com>

	* config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_8hi,
	__builtin_vsx_vperm_8hi_uns): Remove built-in definitions.

2025-01-17  Carl Love  <cel@linux.ibm.com>

	* doc/extend.texi: Fix spelling mistake in description of the
	vec_sel built-in.  Add documentation of the 128-bit vec_perm
	instance.

2025-01-17  Georg-Johann Lay  <avr@gjlay.de>

	* config/avr/avr-c.cc (DEF_BUILTIN): Add ATTRS argument to macro
	definition.
	* config/avr/avr.cc: Same.
	(avr_init_builtins) <attr_const>: New variable that can be used
	as ATTRS argument in DEF_BUILTIN.
	* config/avr/builtins.def (DEF_BUILTIN): Add ATTRS parameter
	to all definitions.

2025-01-17  Georg-Johann Lay  <avr@gjlay.de>

	PR target/118329
	* config/avr/avr-modes.def: Add INT_N (PSI, 24).
	* config/avr/avr.cc (avr_init_builtin_int24)
	<__int24>: Remove definition.
	<__uint24>: Adjust definition to INT_N interface.

2025-01-17  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118522
	* match.pd ((FTYPE) N CMP (FTYPE) M): Add convert, as in GENERIC
	integral types with the same precision and sign might actually not
	be compatible types.

2025-01-17  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/92539
	* tree-ssa-loop-ivcanon.cc (tree_unroll_loops_completely_1):
	Also try force-evaluation if ivcanon did not yet run.
	(canonicalize_loop_induction_variables):
	When niter was computed constant by force evaluation add a
	canonical IV if we didn't unroll.
	* tree-ssa-loop-niter.cc (loop_niter_by_eval): When we
	don't find a proper PHI try if the exit condition scans
	over a STRING_CST and simulate that.

2025-01-17  Monk Chiang  <monk.chiang@sifive.com>

	* config/riscv/riscv.cc
	(is_zicfilp_p): New function.
	(is_zicfiss_p): New function.
	* config/riscv/riscv-zicfilp.cc: Update.
	* config/riscv/riscv.h: Update.
	* config/riscv/riscv.md: Update.
	* config/riscv/riscv-c.cc: Add CFI predefine marco.

2025-01-17  Monk Chiang  <monk.chiang@sifive.com>

	* config/riscv/riscv.cc
	(riscv_file_end): Add .note.gnu.property.

2025-01-17  Monk Chiang  <monk.chiang@sifive.com>

	* common/config/riscv/riscv-common.cc: Add ZICFILP ISA
	string.
	* config.gcc: Add riscv-zicfilp.o
	* config/riscv/riscv-passes.def (INSERT_PASS_BEFORE):
	Insert landing pad instructions.
	* config/riscv/riscv-protos.h (make_pass_insert_landing_pad):
	Declare.
	* config/riscv/riscv-zicfilp.cc: New file.
	* config/riscv/riscv.cc
	(riscv_trampoline_init): Add landing pad instructions.
	(riscv_legitimize_call_address): Likewise.
	(riscv_output_mi_thunk): Likewise.
	* config/riscv/riscv.h: Update.
	* config/riscv/riscv.md: Add landing pad patterns.
	* config/riscv/riscv.opt (TARGET_ZICFILP): Define.
	* config/riscv/t-riscv: Add build rule for
	riscv-zicfilp.o

2025-01-17  Monk Chiang  <monk.chiang@sifive.com>

	* common/config/riscv/riscv-common.cc: Add ZICFISS ISA string.
	* config/riscv/predicates.md: New predicate x1x5_operand.
	* config/riscv/riscv.cc
	(riscv_expand_prologue): Insert shadow stack instructions.
	(riscv_expand_epilogue): Likewise.
	(riscv_for_each_saved_reg): Assign t0 or ra register for
	sspopchk instruction.
	(need_shadow_stack_push_pop_p): New function. Omit shadow
	stack operation on leaf function.
	* config/riscv/riscv.h
	(need_shadow_stack_push_pop_p): Define.
	* config/riscv/riscv.md: Add shadow stack patterns.
	(save_stack_nonlocal): Add shadow stack instructions for setjump.
	(restore_stack_nonlocal): Add shadow stack instructions for longjump.
	* config/riscv/riscv.opt (TARGET_ZICFISS): Define.

2025-01-16  Tamar Christina  <tamar.christina@arm.com>
	    Richard Sandiford  <richard.sandiford@arm.com>

	PR target/113257
	* config/aarch64/driver-aarch64.cc (get_cpu_from_id, DEFAULT_CPU): New.
	(host_detect_local_cpu): Use it.

2025-01-16  Tamar Christina  <tamar.christina@arm.com>

	PR target/110901
	* config/aarch64/aarch64.h (MCPU_TO_MARCH_SPEC): Don't override if
	march is set.

2025-01-16  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/1180167
	* lra-constraints.cc (process_alt_operands): Use operand mode not
	subreg reg mode.  Add and improve debugging prints for updating
	losers.

2025-01-16  Sandra Loosemore  <sloosemore@baylibre.com>

	* omp-general.cc (omp_complete_construct_context): Check
	"omp declare target" attribute, not "omp declare target block".

2025-01-16  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Return
	const0_rtx when there is an error.

2025-01-16  Peter Bergner  <bergner@linux.ibm.com>

	* config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Use correct
	array size for the loop limit.
	* config/rs6000/rs6000-builtins.def: Fix field size for PMASK operand.

2025-01-16  Liao Shihua  <shihua@iscas.ac.cn>

	* config/riscv/vector.md: New attr set.

2025-01-16  Jiawei  <jiawei@iscas.ac.cn>

	* config/riscv/genrvv-type-indexer.cc (expand_floattype): New func.
	(main): New type.
	* config/riscv/riscv-vector-builtins-types.def (DEF_RVV_XFQF_OPS): New def.
	(vint8mf8_t): Ditto.
	(vint8mf4_t): Ditto.
	(vint8mf2_t): Ditto.
	(vint8m1_t): Ditto.
	(vint8m2_t): Ditto.
	* config/riscv/riscv-vector-builtins.cc (DEF_RVV_XFQF_OPS): Ditto.
	(rvv_arg_type_info::get_xfqf_float_type): Ditto.
	* config/riscv/riscv-vector-builtins.def (xfqf_vector): Ditto.
	(xfqf_float): Ditto.
	* config/riscv/riscv-vector-builtins.h
	(struct rvv_arg_type_info): New function prototype.
	* config/riscv/sifive-vector.md: Update iterator.
	* config/riscv/vector-iterators.md: Ditto.

2025-01-16  Christoph Müllner  <christoph.muellner@vrull.eu>

	PR tree-optimization/118487
	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq):
	Ensure that shuffle masks are VECTOR_CSTs.

2025-01-16  Christoph Müllner  <christoph.muellner@vrull.eu>

	* tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq):
	Eliminate redundant calls to to_constant().

2025-01-16  Richard Biener  <rguenther@suse.de>
	    Mikael Morin  <mikael@gcc.gnu.org>

	PR tree-optimization/115494
	* tree-ssa-pre.cc (phi_translate_1): Always generate a
	representative for translated dependent expressions.

2025-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118430
	* tree-ssa-propagate.cc (may_propagate_copy): Return false if dest
	is lhs of an [[gnu::musttail]] call.
	(substitute_and_fold_dom_walker::before_dom_children): Formatting fix.

2025-01-16  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/118430
	* tree-tailcall.cc: Include gimple-range.h, alloc-pool.h, sreal.h,
	symbol-summary.h, ipa-cp.h and ipa-prop.h.
	(find_tail_calls): If ass_var is NULL and ret_var is not, check if
	IPA-VRP has not found singleton return range for it.  In that case,
	don't punt if ret_var is the only value in that range.  Adjust the
	maybe_error_musttail message otherwise to diagnose different value
	being returned from the caller and callee rather than using return
	slot.  Formatting fixes.

2025-01-16  Jakub Jelinek  <jakub@redhat.com>

	* doc/extend.texi (Using Assembly Language with C): Add Asm constexprs
	to @menu.
	(Basic Asm): Move @node asm constexprs before Asm Labels, rename to
	Asm constexprs, change wording so that it is clearer that the constant
	expression actually must not return a string literal, just some specific
	container and other wording tweaks.  Only talk about top-level for basic
	asms in this @node, move restrictions on top-level extended asms to ...
	(Extended Asm): ... here.

2025-01-16  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/118400
	* vec.h (vec<T, va_heap, vl_ptr>::release): Call m_vec->truncate (0)
	instead of clearing m_vec->m_vecpfx.m_num.

2025-01-16  liuhongt  <hongtao.liu@intel.com>

	PR target/118489
	* config/i386/sse.md (VF1_AVX512BW): Fix typo.

2025-01-16  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/115895
	* tree-vect-stmts.cc (get_group_load_store_type): When we
	might overrun because the group size is not a multiple of the
	vector size we cannot use loop masking since that does not
	implement the required load shortening.

2025-01-16  Keith Packard  <keithp@keithp.com>

	* config/lm32/lm32.cc: Add several #includes.
	(va_list_type): New.
	(lm32_build_va_list): New function.
	(lm32_builtin_va_start): Likewise.
	(lm32_sd_gimplify_va_arg_expr): Likewise.
	(lm32_gimplify_va_arg_expr): Likewise.

2025-01-16  Keith Packard  <keithp@keithp.com>

	* config/lm32/lm32.cc (setup_incoming_varargs): Adjust the
	conditionals so that pretend_size is always computed, even
	if no_rtl is set.

2025-01-16  Keith Packard  <keithp@keithp.com>

	* config/lm32/lm32.cc (lm32_setup_incoming_varargs): Skip last
	named parameter when preparing to flush registers with unnamed
	arguments to th stack.

2025-01-16  Keith Packard  <keithp@keithp.com>

	* config/lm32/lm32.cc (lm32_function_arg): Pass unnamed
	arguments in registers too, just like named arguments.

2025-01-16  Andi Kleen  <ak@gcc.gnu.org>

	* config/i386/x86-tune-sched-core.cc: Fix incorrect comment.

2025-01-16  Eugene Rozenfeld  <erozen@microsoft.com>

	PR gcov-profile/116743
	* auto-profile.cc (afdo_annotate_cfg): Fix mismatch between the call graph node count
	and the entry block count.

2025-01-15  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/102705
	* match.pd (`(1 >> X) != 0`): Remove pattern.
	(`1 >> x`): New pattern.

2025-01-15  Sam James  <sam@gentoo.org>

	* doc/extend.texi: Cleanup trailing whitespace.

2025-01-15  Sam James  <sam@gentoo.org>

	* doc/extend.texi: Add 'a' for grammar fix.

2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/tuning_models/neoverse512tvb.h (tune_flags): Update.

2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE):
	Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
	* config/aarch64/tuning_models/ampere1b.h: Remove redundant
	AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
	* config/aarch64/tuning_models/neoversev2.h: Likewise.

2025-01-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64.cc (aarch64_override_options): Add warning.
	* doc/invoke.texi: Document -mabi=ilp32 as deprecated.

2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>

	* config/bpf/core-builtins.cc (compute_field_expr): Change
	VAR_DECL outcome in switch case.

2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>

	* config/bpf/core-builtins.cc
	(make_gimple_core_safe_access_index): Fix in condition.

2025-01-15  Cupertino Miranda  <cupertino.miranda@oracle.com>

	* btfout.cc (get_btf_kind): Remove static from function definition.
	* config/bpf/btfext-out.cc (bpf_code_reloc_add): Check if CO-RE type
	is not a const or volatile.
	* ctfc.h (btf_dtd_kind): Add prototype for function.

2025-01-15  Tamar Christina  <tamar.christina@arm.com>

	PR middle-end/118472
	* fold-const.cc (operand_compare::operand_equal_p): Fix incorrect
	replacement.

2025-01-15  Richard Biener  <rguenther@suse.de>

	* genmatch.cc (define_dump_logs): Make reverse lookup in
	dbg_line_numbers easier by adding comments with start index
	and cutting number of elements per line to 10.

2025-01-15  Jakub Jelinek  <jakub@redhat.com>

	PR ipa/116068
	* cgraphunit.cc (symbol_table::process_new_functions): Call
	bitmap_obstack_initialize (NULL); and bitmap_obstack_release (NULL)
	around processing the functions.

2025-01-15  Kito Cheng  <kito.cheng@sifive.com>

	PR target/118182
	* config/riscv/autovec-opt.md (*widen_reduc_plus_scal_<mode>): Adjust
	argument for expand_reduction.
	(*widen_reduc_plus_scal_<mode>): Ditto.
	(*fold_left_widen_plus_<mode>): Ditto.
	(*mask_len_fold_left_widen_plus_<mode>): Ditto.
	(*cond_widen_reduc_plus_scal_<mode>): Ditto.
	(*cond_len_widen_reduc_plus_scal_<mode>): Ditto.
	(*cond_widen_reduc_plus_scal_<mode>): Ditto.
	* config/riscv/autovec.md (reduc_plus_scal_<mode>): Adjust argument for
	expand_reduction.
	(reduc_smax_scal_<mode>): Ditto.
	(reduc_umax_scal_<mode>): Ditto.
	(reduc_smin_scal_<mode>): Ditto.
	(reduc_umin_scal_<mode>): Ditto.
	(reduc_and_scal_<mode>): Ditto.
	(reduc_ior_scal_<mode>): Ditto.
	(reduc_xor_scal_<mode>): Ditto.
	(reduc_plus_scal_<mode>): Ditto.
	(reduc_smax_scal_<mode>): Ditto.
	(reduc_smin_scal_<mode>): Ditto.
	(reduc_fmax_scal_<mode>): Ditto.
	(reduc_fmin_scal_<mode>): Ditto.
	(fold_left_plus_<mode>): Ditto.
	(mask_len_fold_left_plus_<mode>): Ditto.
	* config/riscv/riscv-v.cc (expand_reduction): Add one more
	argument for reduction code for vl0-safe.
	* config/riscv/riscv-protos.h (expand_reduction): Ditto.
	* config/riscv/vector-iterators.md (unspec): Add _VL0_SAFE variant of
	reduction.
	(ANY_REDUC_VL0_SAFE): New.
	(ANY_WREDUC_VL0_SAFE): Ditto.
	(ANY_FREDUC_VL0_SAFE): Ditto.
	(ANY_FREDUC_SUM_VL0_SAFE): Ditto.
	(ANY_FWREDUC_SUM_VL0_SAFE): Ditto.
	(reduc_op): Add _VL0_SAFE variant of reduction.
	(order) Ditto.
	* config/riscv/vector.md (@pred_<reduc_op><mode>): New.

2025-01-15  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/115777
	* tree-vect-slp.cc (vect_bb_slp_scalar_cost): Do not
	cost a scalar stmt that needs to be preserved.

2025-01-15  Michal Jires  <mjires@suse.cz>

	PR lto/118238
	* lto-wrapper.cc (run_gcc): Remove link() copying.

2025-01-15  Anton Blanchard  <antonb@tenstorrent.com>
	    Jeff Law  <jlaw@ventanamicro.com>

	PR target/118170
	* config/riscv/generic-ooo.md (generic_ooo_float_div_half): New
	reservation.

2025-01-15  Richard Sandiford  <richard.sandiford@arm.com>
	    Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/109592
	* simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
	Simplify nested shifts with subregs.

2025-01-14  anetczuk  <anetczuk@o2.pl>

	* tree-dump.cc (dequeue_and_dump): Handle OBJ_TYPE_REF.

2025-01-14  Alexandre Oliva  <oliva@adacore.com>

	* gimple-fold.cc (decode_field_reference): Rebustify to set
	out parms only when returning non-NULL.
	(fold_truth_andor_for_ifcombine): Bail if
	decode_field_reference returns NULL.  Add complementary assert
	on r_const's not being set when l_const isn't.

2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>

	* cgraph.cc (symbol_table::create_edge): Don't set
	calls_declare_variant_alt in the caller.
	* cgraph.h (struct cgraph_node): Remove declare_variant_alt
	and calls_declare_variant_alt flags.
	* cgraphclones.cc (cgraph_node::create_clone): Don't copy
	calls_declare_variant_alt bit.
	* gimplify.cc: Remove previously #ifdef-ed out code.
	* ipa-free-lang-data.cc (free_lang_data_in_decl): Adjust code
	referencing declare_variant_alt bit.
	* ipa.cc (symbol_table::remove_unreachable_nodes): Likewise.
	* lto-cgraph.cc (lto_output_node): Remove references to deleted
	bits.
	(output_refs): Adjust code referencing declare_variant_alt bit.
	(input_overwrite_node): Remove references to deleted bits.
	(input_refs): Adjust code referencing declare_variant_alt bit.
	* lto-streamer-out.cc (lto_output): Likewise.
	* lto-streamer.h (omp_lto_output_declare_variant_alt): Delete.
	(omp_lto_input_declare_variant_alt): Delete.
	* omp-expand.cc (expand_omp_target): Use has_omp_variant_constructs
	bit to trigger pass_omp_device_lower instead of
	calls_declare_variant_alt.
	* omp-general.cc (struct omp_declare_variant_entry): Delete.
	(struct omp_declare_variant_base_entry): Delete.
	(struct omp_declare_variant_hasher): Delete.
	(omp_declare_variant_hasher::hash): Delete.
	(omp_declare_variant_hasher::equal): Delete.
	(omp_declare_variants): Delete.
	(omp_declare_variant_alt_hasher): Delete.
	(omp_declare_variant_alt_hasher::hash): Delete.
	(omp_declare_variant_alt_hasher::equal): Delete.
	(omp_declare_variant_alt): Delete.
	(omp_lto_output_declare_variant_alt): Delete.
	(omp_lto_input_declare_variant_alt): Delete.
	(includes): Delete unnecessary include of gt-omp-general.h.
	* omp-offload.cc (execute_omp_device_lower): Remove references
	to deleted bit.
	(pass_omp_device_lower::gate): Likewise.
	* omp-simd-clone.cc (simd_clone_create): Likewise.
	* passes.cc (ipa_write_summaries): Likeise.
	* symtab.cc (symtab_node::get_partitioning_class): Likewise.
	* tree-inline.cc (expand_call_inline): Likewise.
	(tree_function_versioning): Likewise.

2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>
	    Marcel Vollweiler  <marcel@codesourcery.com>

	PR middle-end/114596
	PR middle-end/112779
	PR middle-end/113904
	* Makefile.in (GTFILES): Move omp-general.h earlier; required
	because of moving score_wide_int declaration to that file.
	* cgraph.h (struct cgraph_node): Add has_omp_variant_constructs flag.
	* cgraphclones.cc (cgraph_node::create_clone): Propagate
	has_omp_variant_constructs flag.
	* gimplify.cc (omp_resolved_variant_calls): New.
	(expand_late_variant_directive): New.
	(find_supercontext): New.
	(gimplify_variant_call_expr): New.
	(gimplify_call_expr): Adjust parameters to make fallback available.
	Update processing for "declare variant" substitution.
	(is_gimple_stmt): Add OMP_METADIRECTIVE.
	(omp_construct_selector_matches): Ifdef out unused function.
	(omp_get_construct_context): New.
	(gimplify_omp_dispatch): Replace call to deleted function
	omp_resolve_declare_variant with equivalent logic.
	(expand_omp_metadirective): New.
	(expand_late_variant_directive): New.
	(gimplify_omp_metadirective): New.
	(gimplify_expr): Adjust arguments to gimplify_call_expr.  Add
	cases for OMP_METADIRECTIVE, OMP_NEXT_VARIANT, and
	OMP_TARGET_DEVICE_MATCHES.
	(gimplify_function_tree): Initialize/clean up
	omp_resolved_variant_calls.
	* gimplify.h (omp_construct_selector_matches): Delete declaration.
	(omp_get_construct_context): Declare.
	* lto-cgraph.cc (lto_output_node): Write has_omp_variant_constructs.
	(input_overwrite_node): Read has_omp_variant_constructs.
	* omp-builtins.def (BUILT_IN_OMP_GET_NUM_DEVICES): New.
	* omp-expand.cc (expand_omp_taskreg): Propagate
	has_omp_variant_constructs.
	(expand_omp_target): Likewise.
	* omp-general.cc (omp_maybe_offloaded): Add construct_context
	parameter; use it instead of querying gimplifier state.  Add
	comments.
	(omp_context_name_list_prop): Do not test lang_GNU_Fortran in
	offload compiler, just use the string as-is.
	(expr_uses_parm_decl): New.
	(omp_check_context_selector): Add metadirective_p parameter.
	Remove sorry for target_device selector.  Add additional checks
	specific to metadirective or declare variant.
	(make_omp_metadirective_variant): New.
	(omp_construct_traits_match): New.
	(omp_context_selector_matches): Temporarily ifdef out the previous
	code, and add a new implementation based on the old one with
	different parameters, some unnecessary loops removed, and code
	re-indented.
	(omp_target_device_matches_on_host): New.
	(resolve_omp_target_device_matches): New.
	(omp_construct_simd_compare): Support matching of "simdlen" and
	"aligned" clauses.
	(omp_context_selector_set_compare): Make static.  Adjust call to
	omp_construct_simd_compare.
	(score_wide_int): Move declaration to omp-general.h.
	(omp_selector_is_dynamic): New.
	(omp_device_num_check): New.
	(omp_dynamic_cond): New.
	(omp_context_compute_score): Ifdef out the old version and
	re-implement with different parameters.
	(omp_complete_construct_context): New.
	(omp_resolve_late_declare_variant): Ifdef out.
	(omp_declare_variant_remove_hook): Likewise.
	(omp_resolve_declare_variant): Likewise.
	(sort_variant): New.
	(omp_get_dynamic_candidates): New.
	(omp_declare_variant_candidates): New.
	(omp_metadirective_candidates): New.
	(omp_early_resolve_metadirective): New.
	(omp_resolve_variant_construct): New.
	* omp-general.h (score_wide_int): Moved here from omp-general.cc.
	(struct omp_variant): New.
	(make_omp_metadirective_variant): Declare.
	(omp_construct_traits_to_codes): Delete declaration.
	(omp_check_context_selector): Adjust parameters.
	(omp_context_selector_matches): Likewise.
	(omp_context_selector_set_compare): Delete declaration.
	(omp_resolve_declare_variant): Likewise.
	(omp_declare_variant_candidates): Declare.
	(omp_metadirective_candidates): Declare.
	(omp_get_dynamic_candidates): Declare.
	(omp_early_resolve_metadirective): Declare.
	(omp_resolve_variant_construct): Declare.
	(omp_dynamic_cond): Declare.
	* omp-offload.cc (resolve_omp_variant_cookies): New.
	(execute_omp_device_lower): Call the above function to resolve
	variant directives.  Remove call to omp_resolve_declare_variant.
	(pass_omp_device_lower::gate): Check has_omp_variant_construct bit.
	* omp-simd-clone.cc (simd_clone_create): Propagate
	has_omp_variant_constructs bit.
	* tree-inline.cc (expand_call_inline): Likewise.
	(tree_function_versioning): Likewise.

2025-01-14  Sandra Loosemore  <sloosemore@baylibre.com>
	    Kwok Cheung Yeung  <kcy@codesourcery.com>
	    Sandra Loosemore  <sandra@codesourcery.com>

	* doc/generic.texi (OpenMP): Document OMP_METADIRECTIVE,
	OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES.
	* fold-const.cc (operand_compare::hash_operand): Ignore
	the new nodes.
	* gimple-expr.cc (is_gimple_val): Allow OMP_NEXT_VARIANT
	and OMP_TARGET_DEVICE_MATCHES.
	* gimple.cc (get_gimple_rhs_num_ops): OMP_NEXT_VARIANT and
	OMP_TARGET_DEVICE_MATCHES are both GIMPLE_SINGLE_RHS.
	* tree-cfg.cc (tree_node_can_be_shared): Allow sharing of
	OMP_NEXT_VARIANT.
	* tree-inline.cc (remap_gimple_op_r): Ignore subtrees of
	OMP_NEXT_VARIANT.
	* tree-pretty-print.cc (dump_generic_node): Handle OMP_METADIRECTIVE,
	OMP_NEXT_VARIANT, and OMP_TARGET_DEVICE_MATCHES.
	* tree-ssa-operands.cc (operands_scanner::get_expr_operands):
	Ignore operands of OMP_NEXT_VARIANT and OMP_TARGET_DEVICE_MATCHES.
	* tree.def (OMP_METADIRECTIVE): New.
	(OMP_NEXT_VARIANT): New.
	(OMP_TARGET_DEVICE_MATCHES): New.
	* tree.h (OMP_METADIRECTIVE_VARIANTS): New.
	(OMP_METADIRECTIVE_VARIANT_SELECTOR): New.
	(OMP_METADIRECTIVE_VARIANT_DIRECTIVE): New.
	(OMP_METADIRECTIVE_VARIANT_BODY): New.
	(OMP_NEXT_VARIANT_INDEX): New.
	(OMP_NEXT_VARIANT_STATE): New.
	(OMP_TARGET_DEVICE_MATCHES_SELECTOR): New.
	(OMP_TARGET_DEVICE_MATCHES_PROPERTIES): New.

2025-01-14  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118456
	* gimple-fold.cc (decode_field_reference): Punt if shifting
	after changing signedness.
	(fold_truth_andor_for_ifcombine): Check extension bits in
	constants before clipping.

2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>

	PR target/118154
	* config/riscv/riscv-vsetvl.cc (MAX_LMUL): New define.
	(pre_vsetvl::earliest_fuse_vsetvl_info): Use.
	(pre_vsetvl::pre_global_vsetvl_info): New predicate with equal
	ratio.
	* config/riscv/riscv-vsetvl.def: Use.

2025-01-14  Robin Dapp  <rdapp@ventanamicro.com>

	PR middle-end/118140
	* gimple-match-exports.cc (maybe_resimplify_conditional_op): Add
	COND_EXPR when we simplified to a scalar gimple value but still
	have an else value.

2025-01-14  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118405
	* tree-vect-stmts.cc (vectorizable_load): When we fall back
	to scalar loads make sure we properly convert to vector(1) T
	when there was only a single vector element.

2025-01-14  Robin Dapp  <rdapp.gcc@gmail.com>

	* config/riscv/riscv-v.cc (expand_const_vector): Shift in Xmode.

2025-01-14  Jiufu Guo  <guojiufu@linux.ibm.com>

	PR target/116030
	* config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): Add clobber
	and guard with !altivec_indexed_or_indirect_operand.

2025-01-14  Robin Dapp  <rdapp.gcc@gmail.com>

	PR target/117682
	* config/riscv/riscv-v.cc (expand_const_vector): Fall back to
	merging if either step is negative.

2025-01-13  Xi Ruoyao  <xry111@xry111.site>

	PR target/115921
	* config/riscv/riscv.md (<optab>_shift_reverse): Remove
	check for TARGET_ZBA.

2025-01-13  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/118418
	* simplify-rtx.cc (simplify_context::simplify_relational_operation_1):
	Take STORE_FLAG_VALUE into account when handling signed comparisons
	of comparison results.

2025-01-13  Xi Ruoyao  <xry111@xry111.site>

	PR target/115921
	* config/riscv/riscv.md (<optab>_shift_reverse): Only check
	popcount_hwi if !TARGET_ZBS.

2025-01-13  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/riscv-vsetvl.cc (demand_system::use_max_sew): Also
	set the ratio for PREV.

2025-01-13  Vineet Gupta  <vineetg@rivosinc.com>

	* config/riscv/riscv.cc (riscv_register_move_cost): Remove buggy
	check.

2025-01-13  Jin Ma  <jinma@linux.alibaba.com>

	* config/riscv/riscv.cc (riscv_build_integer_1): Change
	1UL/1ULL to HOST_WIDE_INT_1U.

2025-01-13  Jeff Law  <jlaw@ventanamicro.com>

	PR rtl-optimization/107455
	* postreload.cc (reload_cse_regs_1): Take advantage of conditional
	equivalences.

2025-01-13  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118409
	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Apply the
	signbit mask to the right-hand XOR operand too.

2025-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR target/115910
	* expr.cc (expand_expr_divmod): Prefix the TDF_DETAILS note with
	";; " and add a space before (needed tie breaker).  Formatting fixes.

2025-01-13  Richard Biener  <rguenther@suse.de>
	    Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>

	PR tree-optimization/117119
	* tree-data-ref.cc (initialize_matrix_A): Check whether
	an INTEGER_CST fits in HWI, otherwise return chrec_dont_know.

2025-01-13  Michal Jires  <mjires@suse.cz>

	PR lto/118181
	* lto-ltrans-cache.cc (ltrans_file_cache::create_item):
	Pass checksum by reference.
	* lto-ltrans-cache.h: Likewise.

2025-01-13  Michal Jires  <mjires@suse.cz>

	* lockfile.cc (LOCKFILE_USE_FCNTL): New.
	(lockfile::lock_write): Use LOCKFILE_USE_FCNTL.
	(lockfile::try_lock_write): Use LOCKFILE_USE_FCNTL.
	(lockfile::lock_read): Use LOCKFILE_USE_FCNTL.
	(lockfile::unlock): Use LOCKFILE_USE_FCNTL.
	(lockfile::lockfile_supported): Use LOCKFILE_USE_FCNTL.

2025-01-13  liuhongt  <hongtao.liu@intel.com>

	* config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
	Refactor to avoid redundant TARGET_AVX512BW in many places.

2025-01-13  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/117997
	PR middle-end/118415
	* expr.cc (assemble_crc_table): Make static, remove id argument,
	use output_constant_def.  Emit note if -fdump-rtl-expand-details
	about which table has been emitted.
	(generate_crc_table): Make static, adjust assemble_crc_table
	caller, call it always.
	(calculate_table_based_CRC): Make static.
	* internal-fn.cc (expand_crc_optab_fn): Emit note if
	-fdump-rtl-expand-details about using optab for crc.  Formatting fix.

2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha.cc (alpha_expand_block_move): Use a HImode
	subreg of a DImode register to hold data from an aligned HImode
	load.

2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha.cc (alpha_expand_block_move): Merge loaded
	data from pairs of SImode registers into single DImode registers
	if to be used with unaligned stores.

2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha.cc (alpha_option_override): Ignore CPU
	flags corresponding to features the enabling or disabling of
	which has been requested with an individual feature option.

2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>

	PR middle-end/64242
	* config/alpha/alpha.md (`builtin_longjmp'): Restore frame
	pointer last.  Add frame clobber and schedule blockage.

2025-01-12  Maciej W. Rozycki  <macro@orcam.me.uk>

	* config/alpha/alpha.md (builtin_longjmp): Add memory clobbers.

2025-01-12  Richard Biener  <rguenther@suse.de>

	* tree-vect-slp.cc (vect_analyze_slp): Release saved_stmts
	vector.
	(vect_build_slp_tree_2): Release new_oprnds_info when not
	used.
	(vect_analyze_slp): Release root_stmts when gcond SLP
	build fails.

2025-01-12  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/118411
	* final.cc (get_attr_length_1): Handle asm for CALL_INSN
	and JUMP_INSNs.

2025-01-11  mengqinggang  <mengqinggang@loongson.cn>

	* config/loongarch/lasx.md: Use new loongarch_output_move.
	* config/loongarch/loongarch-protos.h (loongarch_output_move):
	Change parameters from (rtx, rtx) to (rtx *).
	* config/loongarch/loongarch.cc (loongarch_output_move):
	Generate final immediate for lu12i.w and lu52i.d.
	* config/loongarch/loongarch.md:
	Generate final immediate for lu32i.d and lu52i.d.
	* config/loongarch/lsx.md: Use new loongarch_output_move.

2025-01-11  Andrew MacLeod  <amacleod@redhat.com>

	PR tree-optimization/88575
	* vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Query
	relation between op0 and op1 and utilize it.
	(simplify_using_ranges::simplify): Do not eliminate float checks.

2025-01-10  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/118211
	PR tree-optimization/116126
	* tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
	Don't skip over gconds.

2025-01-10  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/118211
	PR tree-optimization/116126
	* tree-vect-loop-manip.cc (vect_do_peeling): Adjust skip_vector
	condition to only omit the edge if we're versioning for
	alignment.

2025-01-10  Tamar Christina  <Tamar.Christina@arm.com>
	    Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/118211
	PR tree-optimization/116126
	* tree-vect-loop-manip.cc (vect_do_peeling): Update immediate
	dominators of nodes that were dominated by the prolog skip block
	after inserting vector skip edge.  Initialize prolog variable to
	NULL to avoid bogus -Wmaybe-uninitialized during bootstrap.

2025-01-10  Alex Coplan  <alex.coplan@arm.com>

	PR tree-optimization/118211
	PR tree-optimization/116126
	* tree-vect-loop-manip.cc (vect_do_peeling): Avoid emitting an
	epilogue guard for inverted early-exit loops.

2025-01-10  Alex Coplan  <alex.coplan@arm.com>
	    Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/118211
	PR tree-optimization/116126
	* tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
	Set need_peeling_for_alignment flag on read DRs instead of
	failing vectorization.  Punt on gathers.
	(dr_misalignment): Handle non-constant target alignments.
	(vect_compute_data_ref_alignment): If need_peeling_for_alignment
	flag is set on the DR, then override the target alignment chosen
	by the preferred_vector_alignment hook to choose a safe
	alignment.
	(vect_supportable_dr_alignment): Override
	support_vector_misalignment hook if need_peeling_for_alignment
	is set on the DR: in this case we must return
	dr_unaligned_unsupported in order to force peeling.
	* tree-vect-loop-manip.cc (vect_do_peeling): Allow prolog
	peeling by a compile-time non-constant amount.
	* tree-vectorizer.h (dr_vec_info): Add new flag
	need_peeling_for_alignment.

2025-01-10  Tamar Christina  <tamar.christina@arm.com>

	* config/aarch64/aarch64-cores.def (AARCH64_CORE): Fix cortex-x4 parts
	num.

2025-01-10  Richard Biener  <rguenther@suse.de>

	* df-core.cc (rest_of_handle_df_finish): Release dflow for
	problems without free function (like LR).
	* gimple-crc-optimization.cc (crc_optimization::loop_may_calculate_crc):
	Release loop_bbs on all exits.
	* tree-vectorizer.h (supportable_indirect_convert_operation): Change.
	* tree-vect-generic.cc (expand_vector_conversion): Adjust.
	* tree-vect-stmts.cc (vectorizable_conversion): Use auto_vec for
	converts.
	(supportable_indirect_convert_operation): Get a reference to
	the output vector of converts.

2025-01-10  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/118332
	* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Delete.
	(register_type_decl): Delete.
	(register_builtin_tuple_types): Use
	lang_hooks.types.simulate_record_decl.

2025-01-10  Richard Biener  <rguenther@suse.de>

	* gcse.cc (pass_hardreg_pre::gate): Wrap possibly unused
	fun argument.

2025-01-10  Richard Biener  <rguenther@suse.de>

	PR rtl-optimization/117467
	PR rtl-optimization/117934
	* ext-dce.cc (ext_dce_execute): Do nothing if a memory
	allocation estimate exceeds what is allowed by
	--param max-gcse-memory.

2025-01-10  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	* config/s390/s390-protos.h (s390_emit_compare): Add mode
	parameter for the resulting RTX.
	* config/s390/s390.cc (s390_emit_compare): Dito.
	(s390_emit_compare_and_swap): Change.
	(s390_expand_vec_strlen): Change.
	(s390_expand_cs_hqi): Change.
	(s390_expand_split_stack_prologue): Change.
	* config/s390/s390.md (*add<mode>3_carry1_cc): Renamed to ...
	(add<mode>3_carry1_cc): this and in order to use the
	corresponding gen function, encode CC mode into pattern.
	(*sub<mode>3_borrow_cc): Renamed to ...
	(sub<mode>3_borrow_cc): this and in order to use the
	corresponding gen function, encode CC mode into pattern.
	(*add<mode>3_alc_carry1_cc): Renamed to ...
	(add<mode>3_alc_carry1_cc): this and in order to use the
	corresponding gen function, encode CC mode into pattern.
	(sub<mode>3_slb_borrow1_cc): New.
	(uaddc<mode>5): New.
	(usubc<mode>5): New.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* doc/passes.texi: Document hardreg PRE pass.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64.h (HARDREG_PRE_REGNOS): New macro.
	* gcse.cc (doing_hardreg_pre_p): New global variable.
	(do_load_motion): New boolean check.
	(current_hardreg_regno): New global variable.
	(compute_local_properties): Unset transp for hardreg clobbers.
	(prune_hardreg_uses): New function.
	(want_to_gcse_p): Use different checks for hardreg PRE.
	(oprs_unchanged_p): Disable load motion for hardreg PRE pass.
	(hash_scan_set): For hardreg PRE, skip non-hardreg sets and
	check for hardreg clobbers.
	(record_last_mem_set_info): Skip for hardreg PRE.
	(compute_pre_data): Prune hardreg uses from transp bitmap.
	(pre_expr_reaches_here_p_work): Add sentence to comment.
	(insert_insn_start_basic_block): New functions.
	(pre_edge_insert): Don't add hardreg sets to predecessor block.
	(pre_delete): Use hardreg for the reaching reg.
	(reset_hardreg_debug_uses): New function.
	(pre_gcse): For hardreg PRE, reset debug uses and don't insert
	copies.
	(one_pre_gcse_pass): Disable load motion for hardreg PRE.
	(execute_hardreg_pre): New.
	(class pass_hardreg_pre): New.
	(pass_hardreg_pre::gate): New.
	(make_pass_hardreg_pre): New.
	* passes.def (pass_hardreg_pre): New pass.
	* tree-pass.h (make_pass_hardreg_pre): New.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* multiple_target.cc
	(redirect_to_specific_clone): Assert that "target" attribute is
	used for FMV before checking it.
	(ipa_target_clone): Skip redirect_to_specific_clone on some
	targets.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* doc/invoke.texi: Add new AArch64 flags.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_7A): Add XS.
	* config/aarch64/aarch64-option-extensions.def (XS): New flag.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_7A): Add WFXT.
	* config/aarch64/aarch64-option-extensions.def (WFXT): New flag.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_4A): Add RCPC2.
	* config/aarch64/aarch64-option-extensions.def
	(RCPC2): New flag.
	(RCPC3): Add RCPC2 dependency.
	* config/aarch64/aarch64.h (TARGET_RCPC2): Use new flag.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_5A): Add FLAGM2.
	* config/aarch64/aarch64-option-extensions.def (FLAGM2): New flag.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_5A): Add FRINTTS
	* config/aarch64/aarch64-option-extensions.def (FRINTTS): New flag.
	* config/aarch64/aarch64.h (TARGET_FRINT): Use new flag.
	* config/aarch64/arm_acle.h: Use new flag for frintts intrinsics.
	* config/aarch64/arm_neon.h: Ditto.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_3A): Add JSCVT.
	* config/aarch64/aarch64-option-extensions.def (JSCVT): New flag.
	* config/aarch64/aarch64.h (TARGET_JSCVT): Use new flag.
	* config/aarch64/arm_acle.h: Use new flag for jscvt intrinsics.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64-arches.def (V8_3A): Add FCMA.
	* config/aarch64/aarch64-option-extensions.def (FCMA): New flag.
	(SVE): Add FCMA dependency.
	* config/aarch64/aarch64.h (TARGET_COMPLEX): Use new flag.
	* config/aarch64/arm_neon.h: Use new flag for fcma intrinsics.

2025-01-10  Andrew Carlotti  <andrew.carlotti@arm.com>

	* config/aarch64/aarch64.cc
	(aarch64_expand_epilogue): Use TARGET_PAUTH.
	* config/aarch64/aarch64.md: Update comment.

2025-01-10  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/117186
	* rtl.h (simplify_context::simplify_logical_relational_operation): Add
	an invert0_p parameter.
	* simplify-rtx.cc (unsigned_comparison_to_mask): New function.
	(mask_to_unsigned_comparison): Likewise.
	(comparison_code_valid_for_mode): Delete.
	(simplify_context::simplify_logical_relational_operation): Add
	an invert0_p parameter.  Handle AND and XOR.  Handle unsigned
	comparisons.  Handle always-false results.  Ignore the low bit
	of the mask if the operands are always ordered and remove the
	then-redundant check of comparison_code_valid_for_mode.  Check
	for side-effects in the operands before simplifying them away.
	(simplify_context::simplify_binary_operation_1): Remove
	simplification of (compare (gt ...) (lt ...)) and instead...
	(simplify_context::simplify_relational_operation_1): ...handle
	comparisons of comparisons here.
	(test_comparisons): New function.
	(test_scalar_ops): Call it.

2025-01-10  Alexandre Oliva  <oliva@adacore.com>

	* gimple-fold.cc (decode_field_reference): Drop misuses of
	uniform_integer_cst_p.
	(fold_truth_andor_for_ifcombine): Likewise.

2025-01-10  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118344
	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Fix typo in
	rr_and_mask's type adjustment test.

2025-01-10  Alexandre Oliva  <oliva@adacore.com>

	* gimple-fold.cc (decode_field_reference): Add xor_pand_mask.
	Propagate pand_mask to the right-hand xor operand.  Don't
	require the right-hand xor operand to be a constant.
	(fold_truth_andor_for_ifcombine): Pass right-hand mask when
	appropriate.

2025-01-10  Alexandre Oliva  <oliva@adacore.com>

	PR tree-optimization/118206
	* gimple-fold.cc (decode_field_reference): Account for upper
	bits dropped by narrowing conversions whether before or after
	a right shift.
	(fold_truth_andor_for_ifcombine): Fold masks, compares, and
	combined results.

2025-01-10  Alexandre Oliva  <oliva@adacore.com>

	* gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit
	boundary choice by word size as well.  Try aligned double-word
	loads as a last resort.

2025-01-10  Martin Jambor  <mjambor@suse.cz>

	PR ipa/118138
	* ipa-cp.cc (ipacp_value_safe_for_type): Return the appropriate
	type instead of a bool, accept NULL_TREE VALUEs.
	(propagate_vals_across_arith_jfunc): Use the new returned value of
	ipacp_value_safe_for_type.
	(propagate_vals_across_ancestor): Likewise.
	(propagate_scalar_across_jump_function): Likewise.

2025-01-10  chenxiaolong  <chenxiaolong@loongson.cn>
	    Deng Jianbo  <dengjianbo@loongson.cn>.

	* config/loongarch/loongarch.cc
	(loongarch_builtin_vectorization_cost): Modify the
	construction cost of the vec_construct vector.

2025-01-09  Tamar Christina  <tamar.christina@arm.com>

	PR target/118188
	* config/aarch64/aarch64.cc (aarch64_vector_costs::count_ops): Adjust
	throughput of emulated gather and scatters.

2025-01-09  Vladimir N. Makarov  <vmakarov@redhat.com>

	PR target/118017
	* lra-constraints.cc (inherit_reload_reg): Check reg class on uniformity.

2025-01-09  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>

	PR target/118362
	* config/s390/s390.cc (s390_constant_via_vgbm_p): Allow at most
	16-byte vectors.

2025-01-09  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/118131
	* config/arm/arm.h (VALID_MVE_STRUCT_MODE): Accept TI, OI and XI
	modes again.

2025-01-09  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/65181
	* config/nvptx/nvptx.cc (nvptx_get_drap_rtx): Handle
	'!TARGET_SOFT_STACK'.
	* config/nvptx/nvptx.md (define_c_enum "unspec"): Add
	'UNSPEC_STACKSAVE', 'UNSPEC_STACKRESTORE'.
	(define_expand "allocate_stack", define_expand "save_stack_block")
	(define_expand "save_stack_block"): Handle '!TARGET_SOFT_STACK',
	PTX 'alloca'.
	(define_insn "@nvptx_alloca_<mode>")
	(define_insn "@nvptx_stacksave_<mode>")
	(define_insn "@nvptx_stackrestore_<mode>"): New.
	* doc/invoke.texi (Nvidia PTX Options): Update '-msoft-stack',
	'-mno-soft-stack'.
	* doc/sourcebuild.texi (nvptx-specific attributes): Document
	'nvptx_runtime_alloca_ptx'.
	(Add Options): Document 'nvptx_alloca_ptx'.

2025-01-09  Richard Biener  <rguenther@suse.de>

	* cfgloopmanip.cc (duplicate_loop_body_to_header_edge): When
	copying to the header edge first redirect the entry to the
	new loop and then the exit to the old to avoid PHI node
	re-allocation.

2025-01-09  H.J. Lu  <hjl.tools@gmail.com>

	PR rtl-optimization/118266
	* ree.cc (add_removable_extension): Skip extension on fixed
	register.

2025-01-09  Jakub Jelinek  <jakub@redhat.com>
	    Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/117927
	* tree-pass.h (PROP_last_full_fold): Define.
	* passes.def: Add last= parameters to pass_forwprop.
	* tree-ssa-forwprop.cc (pass_forwprop): Add last_p non-static
	data member and initialize it in the ctor.
	(pass_forwprop::set_pass_param): New method.
	(pass_forwprop::execute): Set PROP_last_full_fold in curr_properties
	at the start if last_p.
	* match.pd (a rrotate (32-b) -> a lrotate b): Only optimize either
	if @2 is known not to be equal to prec or if during/after last
	forwprop the subtraction has single use and prec is power of two; in
	that case transform it into orotate by masked count.

2025-01-09  Haochen Jiang  <haochen.jiang@intel.com>

	* common/config/i386/cpuinfo.h (get_intel_cpu): Remove 0x00.

2025-01-09  xuli  <xuli1@eswincomputing.com>

	* config/riscv/riscv-vector-builtins.cc (function_builder::add_unique_function):
	Only register overloaded intrinsic for g++.
	Only insert non_overloaded_function_table for gcc.
	(function_builder::add_overloaded_function): Only register overloaded intrinsic for gcc.
	(handle_pragma_vector): Only initialize non_overloaded_function_table for gcc.

2025-01-09  Tobias Burnus  <tburnus@baylibre.com>

	* builtin-types.def (BT_FN_PTRMODE_PTR_INT_PTR): Add.
	* gimplify.cc (gimplify_call_expr): Add error for multiple
	list items to the OpenMP interop clause if no device clause;
	continue instead of restarting after append_args handling.
	(gimplify_omp_dispatch): Extract device number from the
	single interop-clause list item.
	* omp-builtins.def (BUILT_IN_OMP_GET_INTEROP_INT): Add.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/65181
	* config/nvptx/nvptx.cc (default_ptx_version_option): For
	'-march=sm_52' and higher, default at least to '-mptx=7.3'.
	* doc/invoke.texi (Nvidia PTX Options): Update '-mptx=[...]'.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* config/nvptx/nvptx-opts.h (enum ptx_version): Add
	'PTX_VERSION_7_3'.
	* config/nvptx/nvptx.cc (ptx_version_to_string)
	(ptx_version_to_number): Adjust.
	* config/nvptx/nvptx.h (TARGET_PTX_7_3): New.
	* config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
	'7.3' for 'PTX_VERSION_7_3'.
	* doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.3'.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* doc/sourcebuild.texi (Effective-Target Keywords): Document
	'nvptx_softstack'.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/65181
	* config/nvptx/nvptx.h (STACK_SAVEAREA_MODE): '#define'.
	* config/nvptx/nvptx.md [!TARGET_SOFT_STACK]
	(save_stack_function): 'define_expand'.
	(restore_stack_function): Handle '!TARGET_SOFT_STACK'.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	PR target/65181
	* config/nvptx/nvptx.md [!TARGET_SOFT_STACK] (save_stack_block):
	'define_expand'.

2025-01-08  Thiago Jung Bauermann  <thiago.bauermann@linaro.org>

	* configure.ac: Fix check for HAVE_GAS_SHF_MERGE on Arm targets.
	* configure: Regenerate.

2025-01-08  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/107102
	* config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall): Only
	reject calls with different PCSes if the callee clobbers register
	state that the caller must preserve.

2025-01-08  Tobias Burnus  <tburnus@baylibre.com>

	* gimplify.cc (gimplify_call_expr): Disable variant function's
	append_args in 'omp dispatch' when invoking the variant directly
	and not through the base function.

2025-01-08  Thomas Schwinge  <tschwinge@baylibre.com>

	* doc/invoke.texi (Nvidia PTX Options): Update '-march-map=sm_50'.

2025-01-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/117979
	* tree-ssa-dce.cc (make_forwarders_with_degenerate_phis):
	Properly update the irreducible region state.

2025-01-08  Jakub Jelinek  <jakub@redhat.com>

	* dwarf2out.cc (break_out_comdat_types): Copy over
	DW_AT_language_{name,version} if present.
	(output_skeleton_debug_sections): Remove also
	DW_AT_language_{name,version}.
	(gen_compile_unit_die): For C17, C23, C2Y, C++17, C++20, C++23
	and C++26 emit for -gdwarf-5 -gno-strict-dwarf also
	DW_AT_language_{name,version} attributes.

2025-01-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/118325
	* tree-nested.cc (convert_nl_goto_reference): Assign proper
	context to generated artificial label.

2025-01-08  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118269
	* tree-vect-loop.cc (vect_create_epilog_for_reduction):
	Use the correct stmt for the REDUC_GROUP_FIRST_ELEMENT lookup.

2025-01-08  Christophe Lyon  <christophe.lyon@linaro.org>

	PR target/118332
	* config/arm/arm-mve-builtins.cc (wrap_type_in_struct): Use 'val'
	instead of '__val'.

2025-01-08  Haochen Jiang  <haochen.jiang@intel.com>

	* config/i386/amxavx512intrin.h
	(_tile_cvtrowps2pbf16h_internal): Rename to...
	(_tile_cvtrowps2bf16h_internal): ...this.
	(_tile_cvtrowps2pbf16hi_internal): Rename to...
	(_tile_cvtrowps2bf16hi_internal): ...this.
	(_tile_cvtrowps2pbf16l_internal): Rename to...
	(_tile_cvtrowps2bf16l_internal): ...this.
	(_tile_cvtrowps2pbf16li_internal): Rename to...
	(_tile_cvtrowps2bf16li_internal): ...this.
	(_tile_cvtrowps2pbf16h): Rename to...
	(_tile_cvtrowps2bf16h): ...this.
	(_tile_cvtrowps2pbf16hi): Rename to...
	(_tile_cvtrowps2bf16hi): ...this.
	(_tile_cvtrowps2pbf16l): Rename to...
	(_tile_cvtrowps2bf16l): ...this.
	(_tile_cvtrowps2pbf16li): Rename to...
	(_tile_cvtrowps2bf16li): ...this.

2025-01-08  Hongyu Wang  <hongyu.wang@intel.com>

	* config/i386/i386.cc (ix86_noce_max_ifcvt_seq_cost): Adjust
	cost with ix86_tune_cost->br_mispredict_scale.
	* config/i386/i386.h (processor_costs): Add br_mispredict_scale.
	* config/i386/x86-tune-costs.h: Add new br_mispredict_scale to
	all processor_costs, in which icelake_cost/alderlake_cost
	with value COSTS_N_INSNS (2) + 3 and other processor with value
	COSTS_N_INSNS (2).

2025-01-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Update comments for sat_* pattern.

2025-01-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Extract saturated value match for signed SAT_*.

2025-01-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Refactor sorts of signed SAT_TRUNC match patterns

2025-01-07  Pan Li  <pan2.li@intel.com>

	* match.pd: Refactor sorts of signed SAT_SUB match patterns.

2025-01-07  Vineet Gupta  <vineetg@rivosinc.com>
	    Pan Li  <pan2.li@intel.com>

	PR target/117722
	* config/riscv/autovec.md: Add uabd expander.

2025-01-07  Tsung Chun Lin  <tclin914@gmail.com>

	* expr.cc (widest_fixed_size_mode_for_size): Prefer scalar modes
	over vector modes in more cases.

2025-01-07  Andreas Schwab  <schwab@suse.de>

	PR target/118137
	* config/riscv/sync.md ("lrsc_atomic_exchange<mode>"): Apply mask
	to shifted value.

2025-01-07  Jeff Law  <jlaw@ventanamicro.com>

	* config/ft32/ft32.md (casesi expander): Force operands[2] into
	a register if it's not a suitable rimm operand.

2025-01-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* common/config/aarch64/aarch64-common.cc: Switch off fschedule_insns.

2025-01-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>

	* config/aarch64/aarch64.md (movhf_aarch64): Use aarch64_valid_fp_move.
	(movsf_aarch64): Likewise.
	(movdf_aarch64): Likewise.
	* config/aarch64/aarch64.cc (aarch64_valid_fp_move): New function.
	* config/aarch64/aarch64-protos.h (aarch64_valid_fp_move): Likewise.

2025-01-07  Paul-Antoine Arras  <parras@baylibre.com>

	* gimplify.cc (gimplify_call_expr): Create variable
	variant_substituted_p to control whether adjust_args applies.

2025-01-07  Tamar Christina  <tamar.christina@arm.com>

	PR tree-optimization/114932
	* tree-ssa-loop-ivopts.cc (alloc_iv): Perform affine unsigned fold.

2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR tree-optimization/105769
	* cfgexpand.cc (vars_ssa_cache::operator()): For constructors
	walk over the elements.

2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>

	PR middle-end/117426
	PR middle-end/111422
	* cfgexpand.cc (struct vars_ssa_cache): New class.
	(vars_ssa_cache::vars_ssa_cache): New constructor.
	(vars_ssa_cache::~vars_ssa_cache): New deconstructor.
	(vars_ssa_cache::create): New method.
	(vars_ssa_cache::exists): New method.
	(vars_ssa_cache::add_one): New method.
	(vars_ssa_cache::update): New method.
	(vars_ssa_cache::dump): New method.
	(add_scope_conflicts_2): Factor mostly out to
	vars_ssa_cache::operator(). New cache argument.
	Walk the bitmap cache for the stack variables addresses.
	(vars_ssa_cache::operator()): New method factored out from
	add_scope_conflicts_2. Rewrite to be a full walk of all operands
	and use a worklist.
	(add_scope_conflicts_1): Add cache new argument for the addr cache.
	Just call add_scope_conflicts_2 for the phi result instead of calling
	for the uses and don't call walk_stmt_load_store_addr_ops for phis.
	Update call to add_scope_conflicts_2 to add cache argument.
	(add_scope_conflicts): Add cache argument and update calls to
	add_scope_conflicts_1.

2025-01-07  Andrew Pinski  <quic_apinski@quicinc.com>

	* cfgexpand.cc (INVALID_STACK_INDEX): New defined.
	(decl_stack_index): New function.
	(visit_op): Use decl_stack_index.
	(visit_conflict): Likewise.
	(add_scope_conflicts_1): Likewise.

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

	PR rtl-optimization/118298
	* loop-unroll.cc (decide_unroll_constant_iterations): Honor
	loop->unroll even if the loop is too big for heuristics.

2025-01-07  Deng Jianbo  <dengjianbo@loongson.cn>

	* config/loongarch/loongarch.cc (loongarch_output_move):
	Optimize instructions for initializing fp regsiter to zero.

2025-01-07  Gaius Mulley  <gaiusmod2@gmail.com>

	PR modula2/118010
	* doc/gm2.texi (Compiler options): New option
	-fm2-file-offset-bits=.

2025-01-07  Jennifer Schmitz  <jschmitz@nvidia.com>

	* tree-vect-stmts.cc (vectorizable_store): Extend the use of
	n_adjacent_stores to also cover vec_to_scalar operations.
	* config/aarch64/aarch64-tuning-flags.def: Remove
	use_new_vector_costs as tuning option.
	* config/aarch64/aarch64.cc (aarch64_use_new_vector_costs_p):
	Remove.
	(aarch64_vector_costs::add_stmt_cost): Remove use of
	aarch64_use_new_vector_costs_p.
	(aarch64_vector_costs::finish_cost): Remove use of
	aarch64_use_new_vector_costs_p.
	* config/aarch64/tuning_models/cortexx925.h: Remove
	AARCH64_EXTRA_TUNE_USE_NEW_VECTOR_COSTS.
	* config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
	* config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
	* config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
	* config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
	* config/aarch64/tuning_models/neoversen2.h: Likewise.
	* config/aarch64/tuning_models/neoversen3.h: Likewise.
	* config/aarch64/tuning_models/neoversev1.h: Likewise.
	* config/aarch64/tuning_models/neoversev2.h: Likewise.
	* config/aarch64/tuning_models/neoversev3.h: Likewise.
	* config/aarch64/tuning_models/neoversev3ae.h: Likewise.

2025-01-06  Alexandre Oliva  <oliva@adacore.com>

	PR middle-end/118006
	* cfgexpand.cc (expand_gimple_basic_block): Do not emit
	pending stack adjustments after a barrier.

2025-01-06  Akram Ahmad  <Akram.Ahmad@arm.com>

	* config/aarch64/aarch64-simd.md: (*aarch64_trunc_concat)
	new insn definition.

2025-01-06  Fangrui Song  <maskray@gcc.gnu.org>

	PR gcov-profile/96092
	* coverage.cc (coverage_init): Remap getpwd().

2025-01-06  Jennifer Schmitz  <jschmitz@nvidia.com>

	* config/aarch64/aarch64-sve-builtins-base.cc
	(svmul_impl::fold): Wrap code for folding to svneg in lambda
	function and pass to gimple_folder::convert_and_fold to enable
	the transform for unsigned types.
	* config/aarch64/aarch64-sve-builtins.cc
	(gimple_folder::convert_and_fold): New function that converts
	operands to target type before calling callback function, adding the
	necessary conversion statements.
	(gimple_folder::redirect_call): Set fntype of redirected call.
	(get_vector_type): Move from here to aarch64-sve-builtins.h.
	* config/aarch64/aarch64-sve-builtins.h
	(gimple_folder::convert_and_fold): Declare function.
	(get_vector_type): Move here as inline function.

2025-01-06  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.cc (ipcp_print_widest_int): New function.
	(ipcp_store_vr_results): Use it.
	(ipcp_bits_lattice::print): Likewise.  Fix formatting.

2025-01-06  Mark Wielaard  <mark@klomp.org>

	PR tree-optimization/118032
	* tree-switch-conversion.cc (jump_table_cluster::find_jump_tables):
	Remove param_switch_lower_slow_alg_max_cases check.

2025-01-06  Tamar Christina  <tamar.christina@arm.com>

	PR target/96342
	PR target/118272
	* config/aarch64/aarch64-sve.md (vec_init<mode><Vquad>,
	vec_initvnx16qivnx2qi): New.
	* config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector):
	Rewrite to support any arbitrary combinations.
	* config/aarch64/iterators.md (SVE_NO2E): Update to use SVE_NO4E
	(SVE_NO2E, Vquad): New.

2025-01-06  Jakub Jelinek  <jakub@redhat.com>

	PR tree-optimization/118224
	* tree-ssa-dce.cc (is_removable_allocation_p): Don't return true
	for allocations with constant size argument larger than PTRDIFF_MAX
	or for calloc with one of the arguments constant larger than
	PTRDIFF_MAX or their product known constant above PTRDIFF_MAX.
	Fix comment typos, furhter -> further and then -> than.
	* lto-section-in.cc (lto_free_function_in_decl_state_for_node):
	Fix comment typo, furhter -> further.

2025-01-04  Hans-Peter Nilsson  <hp@axis.com>

	* config/mmix/mmix.cc (mmix_asm_output_labelref): Replace '.'
	with '::'.
	* config/mmix/mmix.h (ASM_PN_FORMAT): Define to actual default.

2025-01-03  Richard Sandiford  <richard.sandiford@arm.com>

	PR rtl-optimization/117938
	* rtlanal.cc (rtx_properties::try_to_add_dest): Treat writes
	to the stack pointer as also writing to memory.

2025-01-03  Jakub Jelinek  <jakub@redhat.com>

	PR c++/118275
	* varasm.cc (array_size_for_constructor): Use build_int_cst
	with TREE_TYPE (index) as first argument, instead of bitsize_int.

2025-01-03  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-forwprop.cc (check_ctz_array): Use tree_fits_shwi_p instead
	of just TREE_CODE tests for INTEGER_CST.

2025-01-03  Jose E. Marchesi  <jose.marchesi@oracle.com>

	* config.gcc: install a wrapping stdint.h in bpf targets.

2025-01-02  Paul-Antoine Arras  <parras@baylibre.com>

	* gimplify.cc (gimplify_call_expr): Fix handling of need_device_ptr for
	type(c_ptr). Fix handling of nested function calls in a dispatch region.
	(find_ifn_gomp_dispatch): Return the IFN without stripping it.
	(gimplify_omp_dispatch): Keep IFN_GOMP_DISPATCH until
	gimplify_call_expr.

2025-01-02  Tobias Burnus  <tburnus@baylibre.com>

	* doc/install.texi (amdgcn-x-amdhsa): Refer to Newlib 4.5.0 for
	the I/O locking fixes.

2025-01-02  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/118171
	* tree-ssa-pre.cc (create_component_ref_by_pieces_1): Do not
	fold any component ref parts.

2025-01-02  Richard Sandiford  <richard.sandiford@arm.com>

	PR target/118184
	* config/aarch64/aarch64-early-ra.cc (allocno_assignment_is_rmw):
	New function.
	(early_ra::record_insn_defs): Mark the live range information as
	untrustworthy if an assignment would change part of an allocno
	but preserve the rest.

2025-01-02  Jakub Jelinek  <jakub@redhat.com>

	* tree-ssa-forwprop.cc (check_ctz_array): Handle also RAW_DATA_CST
	in the CONSTRUCTOR_ELTS.

2025-01-02  Jakub Jelinek  <jakub@redhat.com>

	* doc/libgdiagnostics/conf.py: Use u'' instead of '' in
	project and copyright initialization.

2025-01-02  Jakub Jelinek  <jakub@redhat.com>

	* gcc.cc (process_command): Update copyright notice dates.
	* gcov-dump.cc (print_version): Ditto.
	* gcov.cc (print_version): Ditto.
	* gcov-tool.cc (print_version): Ditto.
	* gengtype.cc (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.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.cc
	(loongarch_expand_conditional_move): Add some optimization
	implementations based on noce_try_cmove_arith.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md (lasx_xvabsd_s_<lasxfmt>): Remove.
	(<su>abd<mode>3): New insn pattern.
	(lasx_xvabsd_u_<lasxfmt_u>): Remove.
	* config/loongarch/loongarch-builtins.cc (CODE_FOR_lsx_vabsd_b):
	Rename.
	(CODE_FOR_lsx_vabsd_h): Ditto.
	(CODE_FOR_lsx_vabsd_w): Ditto.
	(CODE_FOR_lsx_vabsd_d): Ditto.
	(CODE_FOR_lsx_vabsd_bu): Ditto.
	(CODE_FOR_lsx_vabsd_hu): Ditto.
	(CODE_FOR_lsx_vabsd_wu): Ditto.
	(CODE_FOR_lsx_vabsd_du): Ditto.
	(CODE_FOR_lasx_xvabsd_b): Ditto.
	(CODE_FOR_lasx_xvabsd_h): Ditto.
	(CODE_FOR_lasx_xvabsd_w): Ditto.
	(CODE_FOR_lasx_xvabsd_d): Ditto.
	(CODE_FOR_lasx_xvabsd_bu): Ditto.
	(CODE_FOR_lasx_xvabsd_hu): Ditto.
	(CODE_FOR_lasx_xvabsd_wu): Ditto.
	(CODE_FOR_lasx_xvabsd_du): Ditto.
	* config/loongarch/loongarch.md (u): Add smax/umax.
	* config/loongarch/lsx.md (SU_MAX): New iterator.
	(su_min): New attr.
	(lsx_vabsd_s_<lsxfmt>): Remove.
	(<su>abd<mode>3): New insn pattern.
	(lsx_vabsd_u_<lsxfmt_u>): Remove.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md (vec_unpacks_lo_<mode>): Redefine.
	(vec_unpacku_lo_<mode>): Ditto.
	(lasx_vext2xv_h<u>_b<u>): Replaced by vec_unpack<su>_lo_v32qi.
	(vec_unpack<su>_lo_v32qi): New insn.
	(lasx_vext2xv_w<u>_h<u>): Replaced by vec_unpack<su>_lo_v16hi.
	(vec_unpack<su>_lo_v16qi_internal): New insn, for 128 bits.
	(vec_unpack<su>_lo_v16hi): New insn.
	(lasx_vext2xv_d<u>_w<u>): Replaced by vec_unpack<su>_lo_v8si.
	(vec_unpack<su>_lo_v8hi_internal): New insn, for 128 bits.
	(vec_unpack<su>_lo_v8si): New insn.
	(vec_unpack<su>_lo_v4si_internal): New insn, for 128 bits.
	(vec_packs_float_v4di): New expander.
	(vec_pack_sfix_trunc_v4df): Ditto.
	(vec_unpacks_float_hi_v8si): Ditto.
	(vec_unpacks_float_lo_v8si): Ditto.
	(vec_unpack_sfix_trunc_hi_v8sf): Ditto.
	(vec_unpack_sfix_trunc_lo_v8sf): Ditto.
	* config/loongarch/loongarch-builtins.cc
	(CODE_FOR_lsx_vftintrz_w_d): Rename.
	(CODE_FOR_lsx_vftintrzh_l_s): Ditto.
	(CODE_FOR_lsx_vftintrzl_l_s): Ditto.
	(CODE_FOR_lsx_vffint_s_l): Ditto.
	(CODE_FOR_lsx_vffinth_d_w): Ditto.
	(CODE_FOR_lsx_vffintl_d_w): Ditto.
	(CODE_FOR_lsx_vexth_h_b): Ditto.
	(CODE_FOR_lsx_vexth_w_h): Ditto.
	(CODE_FOR_lsx_vexth_d_w): Ditto.
	(CODE_FOR_lsx_vexth_hu_bu): Ditto.
	(CODE_FOR_lsx_vexth_wu_hu): Ditto.
	(CODE_FOR_lsx_vexth_du_wu): Ditto.
	(CODE_FOR_lsx_vfcvth_d_s): Ditto.
	(CODE_FOR_lsx_vfcvtl_d_s): Ditto.
	(CODE_FOR_lasx_vext2xv_h_b): Ditto.
	(CODE_FOR_lasx_vext2xv_w_h): Ditto.
	(CODE_FOR_lasx_vext2xv_d_w): Ditto.
	(CODE_FOR_lasx_vext2xv_hu_bu): Ditto.
	(CODE_FOR_lasx_vext2xv_wu_hu): Ditto.
	(CODE_FOR_lasx_vext2xv_du_wu): Ditto.
	(loongarch_expand_builtin_insn): Swap source operands in
	CODE_FOR_lsx_vftintrz_w_d and CODE_FOR_lsx_vffint_s_l.
	* config/loongarch/loongarch-protos.h
	(loongarch_expand_vec_unpack): Remove useless parameter high_p.
	* config/loongarch/loongarch.cc (loongarch_expand_vec_unpack):
	Rewrite.
	* config/loongarch/lsx.md (vec_unpacks_hi_v4sf): Redefine.
	(vec_unpacks_lo_v4sf): Ditto.
	(vec_unpacks_hi_<mode>): Ditto.
	(vec_unpacku_hi_<mode>): Ditto.
	(lsx_vfcvth_d_s): Replaced by vec_unpacks_hi_v4sf.
	(lsx_vfcvtl_d_s): Replaced by vec_unpacks_lo_v4sf.
	(lsx_vffint_s_l): Replaced by vec_packs_float_v2di.
	(vec_packs_float_v2di): New insn.
	(lsx_vftintrz_w_d): Replaced by vec_pack_sfix_trunc_v2df.
	(vec_pack_sfix_trunc_v2df): New insn.
	(lsx_vffinth_d_w): Replaced by vec_unpacks_float_hi_v4si.
	(vec_unpacks_float_hi_v4si): New insn.
	(lsx_vffintl_d_w): Replaced by vec_unpacks_float_lo_v4si.
	(vec_unpacks_float_lo_v4si): New insn.
	(lsx_vftintrzh_l_s): Replaced by vec_unpack_sfix_trunc_hi_v4sf.
	(vec_unpack_sfix_trunc_hi_v4sf): New insn.
	(lsx_vftintrzl_l_s): Replaced by vec_unpack_sfix_trunc_lo_v4sf.
	(vec_unpack_sfix_trunc_lo_v4sf): New insn.
	(lsx_vexth_h<u>_b<u>): Replaced by vec_unpack<su>_hi_v16qi.
	(vec_unpack<su>_hi_v16qi): New insn.
	(lsx_vexth_w<u>_h<u>): Replaced by vec_unpack<su>_hi_v8hi.
	(vec_unpack<su>_hi_v8hi): New insn.
	(lsx_vexth_d<u>_w<u>): Replaced by vec_unpack<su>_hi_v4si.
	(vec_unpack<su>_hi_v4si): New insn.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/loongarch.md
	(bytepick_d_<bytepick_imm>_rev): New combiner.
	(bstrpick_alsl_paired): Reorder input operands.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md: Remove useless vec_select.
	* config/loongarch/predicates.md: Correct error predicate.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md: Fix selector index.

2025-01-02  Guo Jie  <guojie@loongson.cn>

	* config/loongarch/lasx.md: Remove useless code.
	* config/loongarch/lsx.md: Ditto.

2025-01-01  Sam James  <sam@gentoo.org>

	* doc/cpp.texi (Common Predefined Macros): Fix syntax.

2025-01-01  Richard Biener  <rguenther@suse.de>

	PR middle-end/118174
	* tree-outof-ssa.cc (ssa_is_replaceable_p): Exclude tailcalls.

2025-01-01  Sandra Loosemore  <sloosemore@baylibre.com>

	* doc/invoke.texi (Option Summary): Put "M32C Options" and
	"Cygwin and MinGW Options" in alphabetical order.  Add
	cross-references.
	(Cygwin and MinGW Options): Likewise move the section to its
	correct alphabetical location.
	* config/lynx.opt.urls: Regenerated.
	* config/mingw/cygming.opt.urls: Regenerated.

Copyright (C) 2025 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.
