aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog10281
1 files changed, 10281 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 33d10ef..fec8c7a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10284 @@
+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