diff options
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r-- | gcc/ChangeLog | 4465 |
1 files changed, 4465 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 319b756..fec8c7a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,4468 @@ +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): |