2026-06-01 Kyrylo Tkachov PR target/122827 * config/aarch64/aarch64.cc (aarch64_hard_regno_call_part_clobbered): For SVE modes use BYTES_PER_SVE_VECTOR for the per-register size rather than GET_MODE_SIZE. * config/aarch64/aarch64-early-ra.cc (early_ra::get_allocno_subgroup): Classify any SVE mode as FPR_Z. 2026-06-01 Kyrylo Tkachov * config/aarch64/tuning_models/olympus.h (olympus_scalar_issue_info, olympus_advsimd_issue_info, olympus_sve_issue_info): Set loads_stores_per_cycle to 6. 2026-06-01 Kyrylo Tkachov * config/aarch64/tuning_models/olympus.h (olympus_tunings): Adjust loop_align, function_align, jump_align. 2026-06-01 Dhruv Chawla * config/arm/arm-mve-builtins-shapes.cc (struct viddup_def): Re-flow comment. (struct vidwdup_def): Likewise. * config/arm/arm.cc (arm_mve_check_reg_origin_is_num_elems): Likewise. * config/loongarch/sync.md: Likewise. * config/microblaze/microblaze.cc (compute_frame_size): Likewise. * config/rs6000/rs6000-call.cc (rs6000_gimplify_va_arg): Likewise. 2026-06-01 Dhruv Chawla * config/darwin-c.cc (find_subframework_header): Fix typos. * config/darwin-driver.cc (darwin_find_version_from_kernel): Likewise. * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Likewise. (fprintf): Likewise. * config/sol2-stubs.cc: Likewise. * config/sol2.cc (solaris_elf_asm_comdat_section): Likewise. * config/sol2.h: Likewise. * config/vx-common.h: Likewise. * config/vxworks.h (vxworks_asm_out_destructor): Likewise. 2026-06-01 Dhruv Chawla * config/xtensa/xtensa.cc (xtensa_legitimize_address): Fix typos. 2026-06-01 Dhruv Chawla * config/vms/vms-c.cc (enum extern_model_kind): Fix typos. (vms_pragma_message): Likewise. (vms_c_register_includes): Likewise. * config/vms/vms.cc (vms_function_section): Likewise. 2026-06-01 Dhruv Chawla * config/visium/visium.h (CASE_VECTOR_PC_RELATIVE): Fix typos. 2026-06-01 Dhruv Chawla * config/vax/vax.cc (vax_expand_addsub_di_operands): Fix typos. * config/vax/vax.h (PRINT_OPERAND_ADDRESS): Likewise. 2026-06-01 Dhruv Chawla * config/sparc/freebsd.h: Fix typos. * config/sparc/sparc.cc (emit_scc_insn): Likewise. (sparc_emit_membar_for_model): Likewise. 2026-06-01 Dhruv Chawla * config/sh/sh-mem.cc (sh_expand_cmpstr): Fix typos. * config/sh/sh.cc (sh_option_override): Likewise. (sh_rtx_costs): Likewise. (fixup_addr_diff_vecs): Likewise. (sh_expand_epilogue): Likewise. (sh_legitimize_address_displacement): Likewise. (sh_can_use_simple_return_p): Likewise. (sh_find_equiv_gbr_addr): Likewise. (sh_check_add_incdec_notes): Likewise. * config/sh/sh.md: Likewise. * config/sh/sh4-300.md: Likewise. * config/sh/sh_treg_combine.cc (sh_treg_combine::try_combine_comparisons): Likewise. (sh_treg_combine::try_eliminate_cstores): Likewise. * config/sh/sync.md: Likewise. 2026-06-01 Dhruv Chawla * config/rx/rx.cc (rx_print_operand): Fix typos. (rx_expand_epilogue): Likewise. * config/rx/rx.md: Likewise. 2026-06-01 Dhruv Chawla * config/s390/2817.md: Fix typos. * config/s390/s390.cc (s390_contiguous_bitmask_nowrap_p): Likewise. (s390_contiguous_bitmask_p): Likewise. (s390_short_displacement): Likewise. (s390_expand_cmpmem): Likewise. (s390_expand_vec_movstr): Likewise. (s390_expand_cstoreti4): Likewise. (s390_expand_int_spaceship): Likewise. (s390_z10_optimize_cmp): Likewise. (s390_support_vector_misalignment): Likewise. * config/s390/s390.h (NO_FUNCTION_CSE): Likewise. * config/s390/s390.md: Likewise. * config/s390/subst.md: Likewise. * config/s390/vx-builtins.md: Likewise. 2026-06-01 Dhruv Chawla * config/rs6000/aix.h: Fix typos. * config/rs6000/cell.md: Likewise. * config/rs6000/darwin.h: Likewise. * config/rs6000/mmintrin.h: Likewise. * config/rs6000/rs6000-call.cc (rs6000_gimplify_va_arg): Likewise. * config/rs6000/rs6000-internal.h: Likewise. * config/rs6000/rs6000-logue.cc (is_altivec_return_reg): Likewise. (rs6000_output_function_prologue): Likewise. * config/rs6000/rs6000-p8swap.cc (quad_aligned_store_p): Likewise. (const_load_sequence_p): Likewise. (replace_swapped_aligned_store): Likewise. * config/rs6000/rs6000-passes.def: Likewise. * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Likewise. (expand_compare_loop): Likewise. * config/rs6000/rs6000.cc (rs6000_debug_addr_mask): Likewise. (rs6000_setup_reg_addr_masks): Likewise. (darwin_rs6000_override_options): Likewise. (rs6000_option_override_internal): Likewise. (rs6000_cost_data::determine_suggested_unroll_factor): Likewise. (rs6000_cannot_force_const_mem): Likewise. (rs6000_emit_le_vsx_move): Likewise. (rs6000_secondary_reload_memory): Likewise. (rs6000_reverse_condition): Likewise. (rs6000_expand_float128_convert): Likewise. (rs6000_adjust_atomic_subword): Likewise. (rs6000_expand_atomic_op): Likewise. (rs6000_xcoff_declare_object_name): Likewise. (output_pcrel_opt_reloc): Likewise. (rs6000_set_up_by_prologue): Likewise. (rs6000_split_logical_inner): Likewise. (rs6000_split_multireg_move): Likewise. * config/rs6000/rs6000.h: Likewise. * config/rs6000/rs6000.md: Likewise. * config/rs6000/sync.md: Likewise. * config/rs6000/vector.md: Likewise. * config/rs6000/vsx.md: Likewise. * config/rs6000/vxworks.h: Likewise. 2026-06-01 Dhruv Chawla * config/rl78/rl78.cc (rl78_alloc_physical_registers): Fix typos. (set_origin): Likewise. (rl78_remove_unused_sets): Likewise. 2026-06-01 Dhruv Chawla * config/pdp11/pdp11.cc (pdp11_insn_cost): Fix typo. 2026-06-01 Dhruv Chawla * common/config/riscv/riscv-common.cc (riscv_subset_list::add): Fix typos. (riscv_subset_list::parse_single_multiletter_ext): Likewise. (riscv_subset_list::set_loc): Likewise. (riscv_arch_str): Likewise. * config/riscv/riscv-avlprop.cc: Likewise. * config/riscv/riscv-bclr-lowest-set-bit.cc (find_later_ctz): Likewise. * config/riscv/riscv-ext-andes.def: Likewise. * config/riscv/riscv-ext.def: Likewise. * config/riscv/riscv-profiles.def: Likewise. * config/riscv/riscv-selftests.cc (run_const_vector_selftests): Likewise. (run_broadcast_selftests): Likewise. (riscv_run_selftests): Likewise. * config/riscv/riscv-string.cc (riscv_expand_strcmp): Likewise. * config/riscv/riscv-v.cc (shuffle_decompress_patterns): Likewise. (vls_mode_valid_p): Likewise. * config/riscv/riscv-vect-permconst.cc (vector_permconst::process_bb): Likewise. * config/riscv/riscv-vector-builtins.cc (riscv_pragma_intrinsic_flags_pollute): Likewise. * config/riscv/riscv-vsetvl.cc: Likewise. * config/riscv/riscv-zicfilp.cc: Likewise. * config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Likewise. (riscv_rtx_costs): Likewise. (riscv_address_cost): Likewise. (riscv_vls_cc_function_abi): Likewise. (riscv_frm_mode_needed): Likewise. (dispatch_function_versions): Likewise. * config/riscv/riscv.h (DWARF_REG_TO_UNWIND_COLUMN): Likewise. * config/riscv/riscv.md: Likewise. 2026-06-01 Dhruv Chawla * config/pa/pa.cc (pa_assemble_integer): Fix typos. (pa_can_change_mode_class): Likewise. 2026-06-01 Dhruv Chawla * config/or1k/or1k.cc (or1k_strict_argument_naming): Fix typos. (or1k_print_operand_address): Likewise. * config/or1k/or1k.md: Likewise. 2026-06-01 Dhruv Chawla * config/nvptx/nvptx.cc (nvptx_option_override): Fix typos. (nvptx_assemble_undefined_decl): Likewise. (nvptx_mem_maybe_shared_p): Likewise. (nvptx_discover_pars): Likewise. (verify_neutering_labels): Likewise. (nvptx_condjump_label): Likewise. (nvptx_lockfull_update): Likewise. * config/nvptx/nvptx.md: Likewise. 2026-06-01 Dhruv Chawla * common/config/nds32/nds32-common.cc (nds32_except_unwind_info): Fix typos. * config/nds32/constants.md: Likewise. * config/nds32/constraints.md: Likewise. * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise. * config/nds32/nds32-dspext.md: Likewise. * config/nds32/nds32-e8.md: Likewise. * config/nds32/nds32-fp-as-gp.cc (nds32_fp_as_gp_check_available): Likewise. * config/nds32/nds32-intrinsic.cc (nds32_expand_priority_builtin): Likewise. * config/nds32/nds32-isr.cc (nds32_emit_isr_vector_section): Likewise. (nds32_asm_file_end_for_isr): Likewise. * config/nds32/nds32-md-auxiliary.cc (output_cond_branch): Likewise. (nds32_expand_cbranch): Likewise. (nds32_expand_float_cstore): Likewise. (nds32_expand_movcc): Likewise. (nds32_output_stack_pop): Likewise. (nds32_output_return): Likewise. (nds32_split_sms): Likewise. (nds32_legitimize_tls_address): Likewise. * config/nds32/nds32-memory-manipulation.cc (nds32_expand_cpymemsi_unroll): Likewise. (nds32_expand_load_multiple): Likewise. * config/nds32/nds32-multiple.md: Likewise. * config/nds32/nds32-n7.md: Likewise. * config/nds32/nds32-n8.md: Likewise. * config/nds32/nds32-n9-2r1w.md: Likewise. * config/nds32/nds32-pipelines-auxiliary.cc (extract_nth_access_reg): Likewise. (pbsada_insn_ra_rb_dep_reg_p): Likewise. * config/nds32/nds32-predicates.cc (nds32_can_use_bset_p): Likewise. (nds32_can_use_btgl_p): Likewise. (nds32_symbol_load_store_p): Likewise. * config/nds32/nds32-protos.h (nds32_cond_move_p): Likewise. (nds32_mem_format): Likewise. * config/nds32/nds32-relax-opt.cc (nds32_plus_reg_load_store_p): Likewise. * config/nds32/nds32-utils.cc (extract_offset_rtx): Likewise. * config/nds32/nds32.cc (nds32_compute_stack_frame): Likewise. (nds32_emit_stack_pop_multiple): Likewise. (nds32_emit_stack_v3pop): Likewise. (nds32_can_change_mode_class): Likewise. (nds32_arg_partial_bytes): Likewise. (nds32_function_ok_for_sibcall): Likewise. (nds32_register_move_cost): Likewise. (nds32_print_operand): Likewise. (nds32_merge_decl_attributes): Likewise. (nds32_insert_attributes): Likewise. (nds32_init_libfuncs): Likewise. (nds32_expand_epilogue_v3pop): Likewise. (nds32_can_use_return_insn): Likewise. (nds32_target_alignment): Likewise. (nds32_split_double_word_load_store_p): Likewise. * config/nds32/nds32.h (enum nds32_builtins): Likewise. (CASE_VECTOR_MODE): Likewise. * config/nds32/nds32.md: Likewise. * config/nds32/nds32_intrinsic.h (__attribute__): Likewise. * config/nds32/nds32_isr.h: Likewise. 2026-06-01 Dhruv Chawla * config/msp430/msp430-opts.h (enum msp430_cpu_types): Fix typos. * config/msp430/msp430.cc (msp430_op_not_in_high_mem): Likewise. * config/msp430/msp430.md: Likewise. 2026-06-01 Dhruv Chawla * config/mingw/winnt-cxx.cc (i386_pe_adjust_class_at_definition): Fix typos. 2026-06-01 Dhruv Chawla * config/microblaze/microblaze.cc (struct microblaze_frame_info): Fix typos. (compute_frame_size): Likewise. * config/microblaze/microblaze.h: Likewise. 2026-06-01 Dhruv Chawla * config/mcore/mcore.h: Fix typo. 2026-06-01 Dhruv Chawla * config/mips/driver-native.cc (host_detect_local_cpu): Fix typos. * config/mips/mips-cpus.def (MIPS_CPU): Likewise. * config/mips/mips.cc (mips_setup_incoming_varargs): Likewise. (mips_function_ok_for_sibcall): Likewise. (mips_expand_ext_as_unaligned_load): Likewise. (mips_use_ins_ext_p): Likewise. (mips_pop_asm_switch): Likewise. (mips_cfun_has_inflexible_gp_ref_p): Likewise. (mips_set_compression_mode): Likewise. (mips_expand_vec_unpack): Likewise. * config/mips/mips.h (while): Likewise. * config/mips/mips.md: Likewise. 2026-06-01 Dhruv Chawla * config/m68k/cf.md: Fix typos. * config/m68k/m68k.cc (m68k_unwrap_symbol): Likewise. (m68k_adjust_decorated_operand): Likewise. (m68k_call_tls_get_addr): Likewise. (m68k_call_m68k_read_tp): Likewise. (m68k_sched_attr_size): Likewise. (m68k_sched_dfa_post_advance_cycle): Likewise. (sched_mem_operand_p): Likewise. (m68k_sched_address_bypass_p): Likewise. * config/m68k/m68kelf.h: Likewise. * config/m68k/netbsd-elf.h (REGISTER_PREFIX): Likewise. 2026-06-01 Dhruv Chawla * config/loongarch/lasx.md: Fix typos. * config/loongarch/loongarch-builtins.cc: Likewise. * config/loongarch/loongarch-c.cc (loongarch_pragma_target_parse): Likewise. * config/loongarch/loongarch-opts.cc (loongarch_generate_mrecip_scheme): Likewise. * config/loongarch/loongarch-opts.h (loongarch_config_target): Likewise. * config/loongarch/loongarch.cc (loongarch_setup_incoming_varargs): Likewise. (loongarch_build_integer): Likewise. (loongarch_explicit_relocs_p): Likewise. (loongarch_valid_lo_sum_p): Likewise. (loongarch_addu16i_imm12_operand_p): Likewise. (loongarch_rewrite_mem_for_simple_ldst): Likewise. (loongarch_is_elem_duplicate): Likewise. (loongarch_expand_vec_perm_const): Likewise. (loongarch_sched_reassociation_width): Likewise. (loongarch_expand_vec_unpack): Likewise. (dispatch_function_versions): Likewise. (loongarch_option_same_function_versions): Likewise. * config/loongarch/loongarch.h: Likewise. * config/loongarch/loongarch.md: Likewise. * config/loongarch/lsx.md: Likewise. * config/loongarch/predicates.md: Likewise. * config/loongarch/simd.md: Likewise. * config/loongarch/sync.md: Likewise. 2026-06-01 Dhruv Chawla * config/lm32/lm32.cc (lm32_compute_frame_size): Fix typos. 2026-06-01 Dhruv Chawla * config/ia64/ia64.cc (ia64_add_bundle_selector_before): Fix typos. * config/ia64/itanium2.md: Likewise. * config/ia64/sync.md: Likewise. 2026-06-01 Dhruv Chawla * config/i386/athlon.md: Fix typos. * config/i386/avx512fintrin.h: Likewise. * config/i386/btver2.md: Likewise. * config/i386/c86-4g-m7.md: Likewise. * config/i386/c86-4g.md: Likewise. * config/i386/cygwin.h: Likewise. * config/i386/i386-c.cc (ix86_target_macros_internal): Likewise. * config/i386/i386-expand.cc (ix86_expand_branch): Likewise. (ix86_expand_int_sse_cmp): Likewise. (ix86_expand_vec_perm): Likewise. (expand_small_cpymem_or_setmem): Likewise. (ix86_copy_addr_to_reg): Likewise. (ix86_expand_special_args_builtin): Likewise. (ix86_expand_vector_init_interleave): Likewise. (expand_vec_perm_shufps_shufps): Likewise. (ix86_expand_sse2_mulvxdi3): Likewise. (ix86_gen_ccmp_first): Likewise. * config/i386/i386-features.cc (general_scalar_to_vector_candidate_p): Likewise. (pass_x86_cse::x86_cse): Likewise. (ix86_apx_nf_convert): Likewise. (dispatch_function_versions): Likewise. * config/i386/i386-features.h (class scalar_chain): Likewise. * config/i386/i386-options.cc (ix86_function_specific_restore): Likewise. (ix86_valid_target_attribute_tree): Likewise. (ix86_override_options_after_change_1): Likewise. (ix86_option_override_internal): Likewise. * config/i386/i386.cc (ix86_can_inline_p): Likewise. (ix86_function_regparm): Likewise. (construct_container): Likewise. (ix86_return_in_memory): Likewise. (output_indirect_thunk): Likewise. (ix86_compute_frame_layout): Likewise. (choose_basereg): Likewise. (ix86_emit_save_reg_using_mov): Likewise. (pro_epilogue_adjust_stack): Likewise. (ix86_expand_prologue): Likewise. (ix86_emit_restore_sse_regs_using_mov): Likewise. (ix86_memory_address_reg_class): Likewise. (ix86_avx_u128_mode_after): Likewise. (ix86_output_addr_diff_elt): Likewise. (ix86_lea_outperforms): Likewise. (ix86_avoid_lea_for_addr): Likewise. (ix86_cc_modes_compatible): Likewise. (add_parameter_dependencies): Likewise. (ix86_data_alignment): Likewise. (ix86_gimple_fold_builtin): Likewise. (ix86_autovectorize_vector_modes): Likewise. (ix86_max_noce_ifcvt_seq_cost): Likewise. (ix86_vector_costs::add_stmt_cost): Likewise. (ix86_vector_costs::finish_cost): Likewise. (ix86_optab_supported_p): Likewise. (ix86_push_rounding): Likewise. * config/i386/i386.h (host_detect_local_cpu): Likewise. (enum reg_class): Likewise. * config/i386/i386.md: Likewise. * config/i386/i386elf.h: Likewise. * config/i386/predicates.md: Likewise. * config/i386/sse.md: Likewise. * config/i386/x86-tune-costs.h (struct processor_costs): Likewise. * config/i386/x86-tune-sched-atom.cc (swap_top_of_ready_list): Likewise. (ix86_atom_sched_reorder): Likewise. * config/i386/x86-tune-sched-bd.cc (find_constant): Likewise. * config/i386/x86-tune-sched.cc (exact_store_load_dependency): Likewise. * config/i386/x86-tune.def (X86_TUNE_FUSE_MOV_AND_ALU): Likewise. (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Likewise. (X86_TUNE_DOUBLE_WITH_ADD): Likewise. (X86_TUNE_PROMOTE_QIMODE): Likewise. * config/i386/zn4zn5.md: Likewise. * config/i386/znver.md: Likewise. 2026-06-01 Dhruv Chawla * config/gcn/constraints.md: Fix typos. * config/gcn/gcn-opts.h (TARGET_ARCHITECTED_FLAT_SCRATCH): Likewise. * config/gcn/gcn-valu.md: Likewise. * config/gcn/gcn.cc (gcn_gen_undef): Likewise. (gcn_addr_space_debug): Likewise. (gcn_expand_prologue): Likewise. (gcn_frame_pointer_rqd): Likewise. * config/gcn/gcn.h (NUM_PARM_REGS): Likewise. (enum gcn_builtin_codes): Likewise. * config/gcn/gcn.md: Likewise. 2026-06-01 Dhruv Chawla * config/ft32/ft32.cc (ft32_init_machine_status): Fix typos. 2026-06-01 Dhruv Chawla * config/frv/frv-opts.h: Fix typos. 2026-06-01 Dhruv Chawla * config/fr30/fr30.cc (fr30_const_double_is_zero): Fix typos. 2026-06-01 Dhruv Chawla * config/epiphany/epiphany.cc (epiphany_expand_epilogue): Fix typos. * config/epiphany/resolve-sw-modes.cc: Likewise. 2026-06-01 Dhruv Chawla * config/csky/csky.cc (csky_output_inline_const): Fix typos. (emit_csky_regs_pop): Likewise. (csky_return_in_memory): Likewise. 2026-06-01 Dhruv Chawla * config/c6x/c6x.cc (c6x_file_start): Fix typos. (c6x_print_operand_address): Likewise. (c6x_asm_emit_except_personality): Likewise. 2026-06-01 Dhruv Chawla * config/bpf/bpf.cc (bpf_asm_named_section): Fix typos. * config/bpf/core-builtins.cc (remove_parser_plugin): Likewise. (make_core_relo): Likewise. (bpf_handle_plugin_finish_type): Likewise. (bpf_output_core_reloc): Likewise. (core_make_builtins): Likewise. 2026-06-01 Dhruv Chawla * config/bfin/bfin.cc (bfin_function_ok_for_sibcall): Fix typos. 2026-06-01 Dhruv Chawla * common/config/avr/avr-common.cc: Fix typos. * config/avr/avr-passes.cc (size_to_mode): Likewise. (struct absint_t): Likewise. (plies_t::emit_sets): Likewise. (avr_strict_unsigned_p): Likewise. (avr_redundant_compare): Likewise. (avr_optimize_casesi): Likewise. (struct AVR_LdSt_Props): Likewise. (avr_pass_split_nzb::split_nzb_insns): Likewise. (make_avr_pass_fuse_move): Likewise. * config/avr/avr.cc (avr_option_override): Likewise. (avr_can_inline_p): Likewise. (avr_expand_epilogue): Likewise. (avr_init_cumulative_args): Likewise. (reg_unused_after): Likewise. (avr_out_lpm_no_lpmx): Likewise. (avr_out_compare): Likewise. (avr_out_plus_ext): Likewise. (avr_out_fract): Likewise. (avr_nonzero_bits_lsr_operands_p): Likewise. * config/avr/avr.h (avr_no_devlib): Likewise. (struct machine_function): Likewise. * config/avr/avr.md: Likewise. * config/avr/builtins.def (FLASH_SEGMENT): Likewise. * config/avr/specs.h: Likewise. 2026-06-01 Dhruv Chawla * common/config/arm/arm-common.cc (arm_config_default): Fix typos. (arm_canon_arch_option_1): Likewise. * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Likewise. * config/arm/arm-builtins.cc (MAC_LANE_PAIR_QUALIFIERS): Likewise. (USMAC_LANE_QUADTUP_QUALIFIERS): Likewise. * config/arm/arm-modes.def (ADJUST_FLOAT_FORMAT): Likewise. * config/arm/arm-mve-builtins-base.cc: Likewise. * config/arm/arm-mve-builtins-shapes.cc (struct binary_lshift_unsigned_def): Likewise. (struct binary_maxamina_def): Likewise. (struct viddup_def): Likewise. (struct vidwdup_def): Likewise. * config/arm/arm-protos.h (struct tune_params): Likewise. * config/arm/arm.cc (arm_option_override_internal): Likewise. (arm_option_override): Likewise. (optimal_immediate_sequence_1): Likewise. (arm_pcs_from_attribute): Likewise. (aapcs_vfp_advance): Likewise. (aapcs_layout_arg): Likewise. (arm_init_cumulative_args): Likewise. (arm_rtx_costs_internal): Likewise. (mve_bool_vec_to_const): Likewise. (operands_ok_ldrd_strd): Likewise. (emit_multi_reg_push): Likewise. (arm_emit_vfp_multi_reg_pop): Likewise. (thumb2_emit_ldrd_pop): Likewise. (arm_print_condition): Likewise. (get_arm_condition_code): Likewise. (thumb_pop): Likewise. (arm_print_asm_arch_directives): Likewise. (arm_debugger_regno): Likewise. (arm_target_bb_ok_for_lob): Likewise. (arm_mve_load_store_insn_p): Likewise. (arm_mve_check_reg_origin_is_num_elems): Likewise. (arm_mve_dlstp_check_dec_counter): Likewise. (arm_mve_loop_valid_for_dlstp): Likewise. (arm_loop_unroll_adjust): Likewise. * config/arm/arm.h (ROUND_UP_WORD): Likewise. * config/arm/arm.md: Likewise. * config/arm/constraints.md: Likewise. * config/arm/cortex-a17-neon.md: Likewise. * config/arm/cortex-r4f.md: Likewise. * config/arm/crypto.md: Likewise. * config/arm/elf.h: Likewise. * config/arm/fa726te.md: Likewise. * config/arm/iterators.md: Likewise. * config/arm/neon.md: Likewise. * config/arm/thumb1.md: Likewise. * config/arm/uclinuxfdpiceabi.h: Likewise. * config/arm/unspecs.md: Likewise. * config/arm/vec-common.md: Likewise. * config/arm/vxworks.h (STACK_CHECK_PROTECT): Likewise. 2026-06-01 Dhruv Chawla * config/arc/arc-arch.h (enum base_architecture): Fix typos. * config/arc/arc-cpus.def: Likewise. * config/arc/arc.cc (legitimate_small_data_address_p): Likewise. (legitimate_scaled_address_p): Likewise. (get_arc_condition_code): Likewise. (arc_setup_incoming_varargs): Likewise. (pop_reg): Likewise. (arc_restore_callee_leave): Likewise. (arc_asm_trampoline_template): Likewise. (arc_add_jli_section): Likewise. (arc_invalid_within_doloop): Likewise. (arc_reorg): Likewise. (conditionalize_nonjump): Likewise. (arc_eh_uses): Likewise. (arc_memory_move_cost): Likewise. * config/arc/arc.h (TARGET_CPU_CPP_BUILTINS): Likewise. (TARGET_PAD_RETURN): Likewise. (arc_select_cc_mode): Likewise. * config/arc/arc.md: Likewise. * config/arc/arc.opt: Likewise. * config/arc/arc700.md: Likewise. * config/arc/elf.h (TARGET_ASM_FILE_END): Likewise. 2026-06-01 Dhruv Chawla * config/alpha/alpha.cc (alpha_pass_by_reference): Fix typos. (alpha_reorg): Likewise. * config/alpha/predicates.md: Likewise. 2026-06-01 Dhruv Chawla * common/config/aarch64/aarch64-common.cc (aarch64_parse_cpu): Fix typos. * common/config/aarch64/cpuinfo.h: Likewise. * config/aarch64/aarch64-builtins.cc: Likewise. * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Likewise. * config/aarch64/aarch64-modes.def (FLOAT_MODE): Likewise. * config/aarch64/aarch64-simd.md: Likewise. * config/aarch64/aarch64-speculation.cc: Likewise. * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. * config/aarch64/aarch64-sve-builtins-shapes.cc (struct binary_za_m_def): Likewise. * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise. * config/aarch64/aarch64-sve.md: Likewise. * config/aarch64/aarch64-sve2.md: Likewise. * config/aarch64/aarch64.cc (aarch64_init_sysregs): Likewise. (aarch64_load_symref_appropriately): Likewise. (aarch64_output_sve_cnt_immediate): Likewise. (aarch64_replace_reg_mode): Likewise. (aarch64_pass_by_reference_1): Likewise. (aarch64_layout_arg): Likewise. (aarch64_allocate_and_probe_stack_space): Likewise. (aarch64_legitimize_address_displacement): Likewise. (aarch64_output_casesi): Likewise. (aarch64_stp_sequence_cost): Likewise. (aarch64_vector_costs::add_stmt_cost): Likewise. (aarch64_override_options): Likewise. (aarch64_functions_b_resolvable_from_a): Likewise. (dispatch_function_versions): Likewise. (aarch64_can_inline_p): Likewise. (aarch64_classify_symbol): Likewise. (aarch64_build_builtin_va_list): Likewise. (aarch64_sve_pred_valid_immediate): Likewise. (aarch64_simd_lane_bounds): Likewise. (aarch64_expand_vector_init_fallback): Likewise. (aarch64_modes_compatible_p): Likewise. (aarch64_ldrstr_offset_compare): Likewise. (aarch64_speculation_safe_value): Likewise. * config/aarch64/aarch64.h (DEFAULT_PCC_STRUCT_RETURN): Likewise. (struct GTY): Likewise. * config/aarch64/aarch64.md: Likewise. * config/aarch64/aarch64.opt: Likewise. * config/aarch64/arm_bf16.h: Likewise. * config/aarch64/arm_neon.h (vbslq_u64): Likewise. * config/aarch64/cortex-a57-fma-steering.cc: Likewise. * config/aarch64/driver-aarch64.cc (get_cpu_from_id): Likewise. (host_detect_local_cpu): Likewise. * config/aarch64/iterators.md: Likewise. * config/aarch64/thunderx.md: Likewise. * config/aarch64/thunderx3t110.md: Likewise. 2026-06-01 Jakub Jelinek * configure: Regenerate. 2026-06-01 Hongyu Wang * config/i386/i386.h (TARGET_ENABLE_NDD_MEM): New. * config/i386/x86-tune.def (X86_TUNE_ENABLE_NDD_MEM): New. * config/i386/i386.md (*add3_doubleword): Split NDD rm to r,m and add preferred_for_speed for NDD memory alternatives. (*add3_doubleword_zext): Likewise. (*add_1): Likewise. (addsi_1_zext): Likewise. (*addhi_1): Likewise. (*addqi_1): Likewise. (*add_2): Likewise. (*addsi_2_zext): Likewise. (*add_3): Likewise. (*addsi_3_zext): Likewise. (*add_5): Likewise. (*addv4): Likewise. (addv4_1): Likewise. (*addv4_doubleword_1): Likewise. (*addv4_overflow_1): Likewise. (*addv4_overflow_2): Likewise. (*sub3_doubleword): Likewise. (*sub3_doubleword_zext): Likewise. (*sub_1): Likewise. (*subsi_1_zext): Likewise. (*sub_2): Likewise. (*subsi_2_zext): Likewise. (*subv4): Likewise. (subv4_1): Likewise. (*subv4_doubleword_1): Likewise. (*subv4_overflow_1): Likewise. (*subv4_overflow_2): Likewise. (*sub_3): Likewise. (*subsi_3_zext): Likewise. (@add3_carry): Likewise. (*add3_carry_2): Likewise. (*addsi3_carry_zext): Likewise. (*addsi3_carry_zext_0): Likewise. (*addsi3_carry_zext_0r): Likewise. (addcarry): Likewise. (*addcarry_1): Likewise. (@sub3_carry): Likewise. (*sub3_carry_2): Likewise. (*subsi3_carry_zext): Likewise. (*subsi3_carry_zext_0): Likewise. (*subsi3_carry_zext_0r): Likewise. (subborrow): Likewise. (*subborrow_1): Likewise. (*add3_cconly_overflow_1): Likewise. (@add3_cc_overflow_1): Likewise. (*addsi3_zext_cc_overflow_1): Likewise. (*add3_cconly_overflow_2): Likewise. (*add3_cc_overflow_2): Likewise. (*addsi3_zext_cc_overflow_2): Likewise. (*mul3_1): Likewise. (*mulsi3_1_zext): Likewise. (*mulv4): Likewise. (*mulvhi4): Likewise. (*and3_doubleword): Likewise. (*anddi_1): Likewise. (*andsi_1_zext): Likewise. (*andqi_1): Likewise. (*anddi_2): Likewise. (*andsi_2_zext): Likewise. (*andqi_2_maybe_si): Likewise. (*and_2): Likewise. (*3_doubleword): Likewise. (*_1): Likewise. (*notxor_1): Likewise. (*si_1_zext): Likewise. (*si_1_zext_imm): Likewise. (*qi_1): Likewise. (*notxorqi_1): Likewise. (*_2): Likewise. (*si_2_zext): Likewise. (*si_2_zext_imm): Likewise. (*neg2_doubleword): Likewise. (*neg_1): Likewise. (*negsi_1_zext): Likewise. (*neg_2): Likewise. (*negsi_2_zext): Likewise. (*neg_ccc_1): Likewise. (*neg_ccc_2): Likewise. (*one_cmpl2_doubleword): Likewise. (*one_cmpl2_1): Likewise. (*one_cmplsi2_1_zext): Likewise. (*one_cmplqi2_1): Likewise. (*one_cmpl2_2): Likewise. (*one_cmplsi2_2_zext): Likewise. (*ashl3_doubleword_highpart): Likewise. (*ashl3_1): Likewise. (*ashlsi3_1_zext): Likewise. (*ashlhi3_1): Likewise. (*ashlqi3_1): Likewise. (*ashl3_cmp): Likewise. (*ashlsi3_cmp_zext): Likewise. (*ashl3_cconly): Likewise. (ashr3_cvt): Likewise. (*ashrsi3_cvt_zext): Likewise. (*ashr3_1): Likewise. (*highpartdisi2): Likewise. (*lshr3_1): Likewise. (*si3_1_zext): Likewise. (*lshrqi3_1): Likewise. (*lshrhi3_1): Likewise. (*3_cmp): Likewise. (*si3_cmp_zext): Likewise. (*3_cconly): Likewise. (*3_1): Likewise. (*si3_1_zext): Likewise. (rcrsi2): Likewise. (rcrdi2): Likewise. (3_carry): Likewise. (*movcc_noc): Likewise. (*movsicc_noc_zext): Likewise. (*movsicc_noc_zext_1): Likewise. (*addqi3_carry_zext_0): Likewise. (*addhi3_carry_zext_0): Likewise. (*addqi3_carry_zext_0r): Likewise. (*addhi3_carry_zext_0r): Likewise. (*subqi3_carry_zext_0): Likewise. (*subhi3_carry_zext_0): Likewise. (*subqi3_carry_zext_0r): Likewise. (*subhi3_carry_zext_0r): Likewise. (*negqi_1_zext): Likewise. (*neghi_1_zext): Likewise. (*one_cmplqi2_1_zext): Likewise. (*one_cmplhi2_1_zext): Likewise. (x86_64_shld_ndd): Likewise. (x86_64_shld_ndd_1): Likewise. (x86_shld_ndd): Likewise. (x86_shld_ndd_1): Likewise. (*ashlqi3_1_zext): Likewise. (*ashlhi3_1_zext): Likewise. (x86_64_shrd_ndd): Likewise. (x86_64_shrd_ndd_1): Likewise. (x86_shrd_ndd): Likewise. (x86_shrd_ndd_1): Likewise. (*qi3_1_zext): Likewise. (*hi3_1_zext): Likewise. * config/i386/sse.md (*kortest_cmp_movcc): Add preferred_for_speed for NDD memory alternatives. 2026-06-01 Hongyu Wang * config/i386/x86-tune.def (X86_TUNE_DISABLE_SETZUCC): New. Enable for m_DIAMONDRAPIDS | m_NOVALAKE. * config/i386/i386.h (TARGET_DISABLE_SETZUCC): New define. * config/i386/i386.md (*setcc__zu): Guard with TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC. (*setcc_di_1, *setcc__1_movzbl): Guard with (!TARGET_APX_ZU || TARGET_DISABLE_SETZUCC). (*setcc_qi, *setcc_qi_slp): Emit setzucc only when TARGET_APX_ZU && !TARGET_DISABLE_SETZUCC. 2026-06-01 Martin Liska * configure.ac: Declare Wild as capable of LTO bootstrap. * configure: Regenerate. 2026-05-31 Andrew Pinski PR tree-optimization/23471 PR tree-optimization/125513 * range-op-mixed.h (operator_mult): Add op1_op2_relation_effect for 2xirange. * range-op.cc (operator_mult::op1_op2_relation_effect): New function. 2026-05-31 Jeff Law PR rtl-optimization/123313 * ifcvt.cc (noce_try_store_flag_logical): New function. (noce_process_if_block): Call it. 2026-05-31 Georg-Johann Lay * doc/invoke.texi (AVR Options): Fix overly long URLs. * doc/extend.texi (Specifying the size of an asm on AVR): Dito. 2026-05-31 Daniel Barboza * common.opt: Updated Wstrict-overflow entries to indicate that they do nothing now. * coretypes.h (enum warn_strict_overflow_code): Enum removed. * doc/invoke.texi: Updated Wstrict-overflow entries to indicate that they do nothing now. Also removed the option from the "Warning Options" list. * opts.cc (common_handle_option): Removed OPT_Wstrict_overflow logic. 2026-05-31 Daniel Barboza * flags.h (issue_strict_overflow_warning): Removed. * fold-const.cc (fold_defer_overflow_warnings): Removed. (fold_undefer_overflow_warnings): Removed. (fold_undefer_and_ignore_overflow_warnings): Removed. (fold_deferring_overflow_warnings_p): Removed. * fold-const.h (fold_defer_overflow_warnings): Removed. (fold_undefer_overflow_warnings): Removed. (fold_undefer_and_ignore_overflow_warnings): Removed. (fold_deferring_overflow_warnings_p): Removed. * gimple-fold.cc (fold_stmt_1): Removed fold_*_overflow_warnings uses and all related logic. * passes.cc (verify_interpass_invariants): Likewise. (execute_one_ipa_transform_pass): Likewise. (execute_one_pass): Likewise. * tree-cfgcleanup.cc (cleanup_control_expr_graph): Likewise. * tree-data-ref.cc (create_runtime_alias_checks): Likewise. * tree-ssa-ccp.cc (evaluate_stmt): Likewise. * tree-ssa-forwprop.cc (combine_cond_expr_cond): Likewise. * tree-ssa-loop-niter.cc (expand_simple_operations): Likewise. (number_of_iterations_exit_assumptions): Likewise. (loop_niter_by_eval): Likewise. (estimate_numbers_of_iterations): Likewise. (loop_exits_before_overflow): Likewise. * tree-ssa-threadedge.cc: Likewise. * tree-vrp.cc (compare_values): Likewise. 2026-05-31 Daniel Barboza * tree-ssa-loop-ch.cc (ch_base::copy_headers): Removed warn_strict_overflow logic. 2026-05-31 Daniel Barboza * expr.cc (maybe_optimize_sub_cmp_0): Removed warning_at () call for Wstrict-overflow comparison. 2026-05-31 Daniel Barboza * tree-vrp.cc (compare_values_warnv): Removed. (compare_values): Changed to do the same thing as the former compare_values_warn but without the strict_overflow_p logic. * tree-vrp.h (compare_values_warnv): Removed. * vr-values.cc (test_for_singularity): Removed the supress_warning logic that was used by compare_values_warnv. 2026-05-31 Daniel Barboza * tree-ssa-reassoc.cc (init_range_entry): Removed strict_overflow_p use. (force_into_ssa_name): Likewise. (update_range_test): Removed strict_overflow_p from function signature, along with the flag associated logic and the warning_at call. (optimize_range_tests_xor): Removed strict_overflow_p use. (optimize_range_tests_diff): Likewise. (optimize_range_tests_to_bit_test): Likewise. (optimize_range_tests_cmp_bitwise): Likewise. (optimize_range_tests_var_bound): Removed strict_overflow_p from function signature, along with the flag associated logic and the warning_at call. (optimize_range_tests): Removed strict_overflow_p use. * tree-ssa-reassoc.h (struct range_entry): Removed strict_overflow_p flag. 2026-05-31 Georg-Johann Lay * config/avr/avr.cc (avr_length_of_asm): Support "nl" as the number of lines in the code template. * doc/extend.texi (Size of an asm): Document [[len=nl]]. Simplify the description of the default length. 2026-05-31 John David Anglin * config/pa/pa.cc (pa_trampoline_init): Rework to use clear_cache pattern. * config/pa/pa.md (dcacheflush): Use "<<" condition instead of "<<=". (icacheflush): Remove. (icacheflush1, icacheflush2, icacheflush3): New flush patterns for PA 1.x targets, PA 2.0 targets, and PA 1.x no space register targets. (clear_cache): Rework to flush data and instruction caches. Skip flush if the start address is greater than or equal to the end address. Don't align the end address to a cacheline boundary. Handle instruction flushes for PA 1.x targets, PA 2.0 targets, and PA 1.x no space register targets. 2026-05-30 Jeff Law * config/m68k/m68k.h (ASM_PREFERRED_EH_DATA_FORMAT): Avoid constant-logical diagnostic. 2026-05-30 Takayuki 'January June' Suwa * config/xtensa/xtensa.md (insvsi_intermal): Rename from 'insvsi'. (insvsi): New expansion pattern that also addresses situations where the DEPBITS machine instruction is unavailable. 2026-05-30 Takayuki 'January June' Suwa * config/xtensa/xtensa.md (*splice_bits): Remove. 2026-05-30 Dhruv Chawla * builtins.def: Reflow long line. * graphite-isl-ast-to-gimple.cc (graphite_copy_stmts_from_block): Likewise. * lto-streamer.h: Likewise. * prime-paths.cc (struct xpair): Likewise. 2026-05-30 Dhruv Chawla * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Fix typos. (vect_preserves_scalar_order_p): Likewise. (vect_slp_analyze_instance_dependence): Likewise. (vect_enhance_data_refs_alignment): Likewise. (vect_check_gather_scatter): Likewise. (vect_grouped_store_supported): Likewise. * tree-vect-generic.cc (type_for_widest_vector_mode): Likewise. * tree-vect-loop-manip.cc (vect_set_loop_condition_partial_vectors_avx512): Likewise. (get_live_virtual_operand_on_edge): Likewise. (vect_can_peel_nonlinear_iv_p): Likewise. (vect_do_peeling): Likewise. * tree-vect-loop.cc (vec_init_loop_exit_info): Likewise. (vect_verify_full_masking_avx512): Likewise. (vect_verify_loop_lens): Likewise. (vect_analyze_loop_costing): Likewise. (vect_analyze_loop_2): Likewise. (vect_analyze_loop): Likewise. (vect_is_simple_reduction): Likewise. (vect_create_epilog_for_reduction): Likewise. (vectorizable_lane_reducing): Likewise. (vectorizable_reduction): Likewise. (vectorizable_live_operation): Likewise. (vect_record_loop_len): Likewise. (scale_profile_for_vect_loop): Likewise. (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise. * tree-vect-patterns.cc (vect_recog_bit_insert_pattern): Likewise. (vect_recog_build_binary_gimple_stmt): Likewise. (vect_recog_sat_sub_pattern_transform): Likewise. (vect_recog_sat_sub_pattern): Likewise. (add_code_for_floorceilround_divmod): Likewise. (vect_recog_bool_pattern): Likewise. (struct vect_recog_func): Likewise. * tree-vect-slp-patterns.cc (class complex_pattern): Likewise. (compatible_complex_nodes_p): Likewise. * tree-vect-slp.cc (vect_slp_tree_uniform_p): Likewise. (vect_def_types_match): Likewise. (vect_record_max_nunits): Likewise. (vect_analyze_slp_instance): Likewise. (vect_lower_load_permutations): Likewise. (vect_optimize_slp_pass::is_compatible_layout): Likewise. * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Likewise. (vectorizable_simd_clone_call): Likewise. (vectorizable_store): Likewise. (vectorizable_load): Likewise. (vectorizable_condition): Likewise. (vectorizable_early_exit): Likewise. * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost): Likewise. * tree-vectorizer.h (enum vect_reduction_type): Likewise. 2026-05-30 Dhruv Chawla * tree-ssa-alias-compare.h: Fix typos. * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Likewise. (ao_ref_alignment): Likewise. (component_ref_to_zero_sized_trailing_array_p): Likewise. (access_path_may_continue_p): Likewise. (nonoverlapping_component_refs_p_1): Likewise. (nonoverlapping_array_refs_p): Likewise. (refs_may_alias_p_2): Likewise. (ref_maybe_used_by_call_p_1): Likewise. (stmt_kills_ref_p): Likewise. * tree-ssa-ccp.cc: Likewise. * tree-ssa-dce.cc (mark_all_reaching_defs_necessary_1): Likewise. (propagate_necessity): Likewise. (propagate_counts): Likewise. (eliminate_unnecessary_stmts): Likewise. * tree-ssa-dom.cc (pass_dominator::execute): Likewise. * tree-ssa-dse.cc: Likewise. * tree-ssa-forwprop.cc (new_src_based_on_copy): Likewise. (optimize_agr_copyprop_1): Likewise. (pass_forwprop::execute): Likewise. * tree-ssa-ifcombine.cc (tree_ssa_ifcombine_bb_1): Likewise. (pass_tree_ifcombine::execute): Likewise. * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise. * tree-ssa-loop-ch.cc (loop_combined_static_and_iv_p): Likewise. (should_duplicate_loop_header_p): Likewise. * tree-ssa-loop-im.cc (get_coldest_out_loop): Likewise. (determine_max_movement): Likewise. (execute_sm_exit): Likewise. (hoist_memory_references): Likewise. * tree-ssa-loop-ivcanon.cc (constant_after_peeling): Likewise. (loop_edge_to_cancel): Likewise. (unloop_loops): Likewise. (try_unroll_loop_completely): Likewise. (adjust_loop_info_after_peeling): Likewise. (tree_unroll_loops_completely_1): Likewise. * tree-ssa-loop-ivopts.cc (struct iv_inv_expr_ent): Likewise. (dump_cand): Likewise. (group_compare_offset): Likewise. (split_address_groups): Likewise. (get_computation_aff_1): Likewise. (iv_ca_dump): Likewise. * tree-ssa-loop-niter.cc (number_of_iterations_ne): Likewise. (number_of_iterations_popcount): Likewise. (idx_infer_loop_bounds): Likewise. (infer_loop_bounds_from_signedness): Likewise. (discover_iteration_bound_by_body_walk): Likewise. (loop_exits_before_overflow): Likewise. * tree-ssa-loop-niter.h: Likewise. * tree-ssa-loop-prefetch.cc (should_issue_prefetch_p): Likewise. (schedule_prefetches): Likewise. * tree-ssa-loop-split.cc (split_loop): Likewise. (find_vdef_in_loop): Likewise. (get_cond_branch_to_split_loop): Likewise. * tree-ssa-math-opts.cc (powi_as_mults): Likewise. (expand_pow_as_sqrts): Likewise. (gimple_expand_builtin_pow): Likewise. (convert_mult_to_widen): Likewise. (convert_plusminus_to_widen): Likewise. * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Likewise. (factor_out_conditional_operation): Likewise. (cond_if_else_store_replacement_1): Likewise. (execute_over_cond_phis): Likewise. * tree-ssa-phiprop.cc (can_handle_load): Likewise. (propagate_with_phi): Likewise. * tree-ssa-pre.cc (get_or_alloc_expr_for_nary): Likewise. (sorted_array_from_bitmap_set): Likewise. (value_dies_in_block_x): Likewise. (compute_antic_aux): Likewise. * tree-ssa-propagate.cc (substitute_and_fold_engine::substitute_and_fold): Likewise. * tree-ssa-reassoc.cc (get_rank): Likewise. (remove_visited_stmt_chain): Likewise. * tree-ssa-sccvn.cc (vn_reference_eq): Likewise. (vn_reference_lookup_call): Likewise. (vn_nary_op_eq): Likewise. (vn_nary_op_insert_into): Likewise. (visit_reference_op_call): Likewise. (visit_phi): Likewise. (eliminate_dom_walker::eliminate_stmt): Likewise. (eliminate_dom_walker::eliminate_cleanup): Likewise. (process_bb): Likewise. * tree-ssa-scopedtables.cc (hashable_expr_equal_p): Likewise. * tree-ssa-structalias.cc (determine_global_memory_access): Likewise. (clear_dependence_clique): Likewise. * tree-ssa-threadbackward.cc (back_threader_profitability::profitable_path_p): Likewise. * tree-ssa-threadedge.cc (propagate_threaded_block_debug_into): Likewise. * tree-ssa-uninit.cc (warn_uninit): Likewise. (execute_late_warn_uninitialized): Likewise. * tree-ssanames.cc (range_info_get_range): Likewise. 2026-05-30 Dhruv Chawla * tree-assume.cc (assume_query::calculate_phi): Fix typos. * tree-cfg.cc (assign_discriminators): Likewise. (stmt_starts_bb_p): Likewise. (move_stmt_op): Likewise. (ifconvertable_edge): Likewise. * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Likewise. (cleanup_tree_cfg_noloop): Likewise. * tree-chrec.cc (scev_is_linear_expression): Likewise. * tree-complex.cc (expand_complex_div_wide): Likewise. * tree-core.h (enum built_in_class): Likewise. * tree-data-ref.cc (dump_alias_pair): Likewise. (create_ifn_alias_checks): Likewise. * tree-data-ref.h (struct data_dependence_relation): Likewise. * tree-eh.cc (lower_try_finally_fallthru_label): Likewise. (lower_eh_dispatch): Likewise. * tree-if-conv.cc (idx_within_array_bound): Likewise. (base_object_writable): Likewise. (ifcvt_memrefs_wont_trap): Likewise. (get_loop_body_in_if_conv_order): Likewise. (predicate_scalar_phi): Likewise. * tree-inline.cc (remap_type_1): Likewise. (declare_return_variable): Likewise. (inline_forbidden_p): Likewise. (estimate_num_insns): Likewise. (copy_decl_for_dup_finish): Likewise. * tree-into-ssa.cc (get_ssa_name_ann): Likewise. (clear_ssa_name_info): Likewise. (insert_updated_phi_nodes_compare_uids): Likewise. (update_ssa): Likewise. * tree-loop-distribution.cc (enum partition_kind): Likewise. (struct partition): Likewise. (class loop_distribution): Likewise. (loop_distribution::classify_partition): Likewise. (loop_distribution::pg_add_dependence_edges): Likewise. (add_partition_graph_edge): Likewise. (free_partition_graph_vdata): Likewise. (pg_unmark_merged_alias_ddrs): Likewise. (version_loop_by_alias_check): Likewise. * tree-object-size.cc (gimplify_size_expressions): Likewise. (object_sizes_execute): Likewise. * tree-parloops.cc (parloops_is_simple_reduction): Likewise. (transform_to_exit_first_loop_alt): Likewise. * tree-predcom.cc (pcom_worker::suitable_component_p): Likewise. (pcom_worker::determine_roots_comp): Likewise. (prepare_initializers_chain_store_elim): Likewise. (pcom_worker::tree_predictive_commoning_loop): Likewise. * tree-profile.cc (condition_uid): Likewise. (cov_length): Likewise. (tree_profiling): Likewise. * tree-scalar-evolution.cc (scev_dfs::add_to_evolution_1): Likewise. (scev_reset): Likewise. (expression_expensive_p): Likewise. * tree-sra.cc (struct access): Likewise. (build_access_from_call_arg): Likewise. (path_comparable_for_same_access): Likewise. (child_would_conflict_in_acc): Likewise. (sra_modify_call_arg): Likewise. * tree-switch-conversion.cc (can_log2): Likewise. (switch_conversion::exp_index_transform): Likewise. * tree-switch-conversion.h (enum cluster_type): Likewise. * tree-vrp.cc (remove_unreachable::handle_early): Likewise. * tree.cc (build5): Likewise. (get_file_function_name): Likewise. (build_opaque_vector_type): Likewise. (array_ref_flexible_size_p): Likewise. (verify_type_variant): Likewise. (gimple_canonical_types_compatible_p): Likewise. * tree.h (decl_debug_args_insert): Likewise. (strip_pointer_types): Likewise. 2026-05-30 Dhruv Chawla * rtl-ssa/access-utils.h (drop_memory_access): Fix typos. * rtl-ssa/accesses.cc (clobber_info::recompute_group): Likewise. * rtl-ssa/accesses.h: Likewise. * rtl-ssa/blocks.cc (function_info::add_artificial_accesses): Likewise. * rtl-ssa/functions.h: Likewise. * rtl-ssa/insns.cc (function_info::record_use): Likewise. * rtl-ssa/insns.h: Likewise. 2026-05-30 Dhruv Chawla * lto-cgraph.cc (get_alias_symbol): Fix typos. (input_node): Likewise. (input_varpool_node): Likewise. * lto-ltrans-cache.cc: Likewise. * lto-streamer-in.cc (lto_location_cache::revert_location_cache): Likewise. (lto_location_cache::input_location_and_block): Likewise. (lto_location_cache::input_location): Likewise. (lto_input_location): Likewise. * lto-streamer-out.cc (lto_variably_modified_type_p): Likewise. (lto_is_streamable): Likewise. (DFS::DFS): Likewise. (cmp_symbol_files): Likewise. (lto_output): Likewise. * lto-streamer.h (enum LTO_tags): Likewise. * lto-wrapper.cc (merge_flto_options): Likewise. (run_gcc): Likewise. 2026-05-30 Dhruv Chawla * ipa-comdats.cc: Fix typos. * ipa-cp.cc (good_cloning_opportunity_p): Likewise. (dump_profile_updates): Likewise. (update_counts_for_self_gen_clones): Likewise. (update_profiling_info): Likewise. (adjust_refs_in_act_callers): Likewise. (struct cloning_opportunity_ranking): Likewise. * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Likewise. (unmodified_parm_or_parm_agg_item): Likewise. (guards_builtin_unreachable): Likewise. (analyze_function_body): Likewise. (estimate_edge_devirt_benefit): Likewise. * ipa-fnsummary.h (cross_module_call_p): Likewise. * ipa-free-lang-data.cc (fld_simplified_type_name): Likewise. (free_lang_data_in_decl): Likewise. * ipa-icf-gimple.cc (func_checker::compare_decl): Likewise. (func_checker::compatible_types_p): Likewise. (func_checker::compare_gimple_asm): Likewise. * ipa-icf.cc (sem_function::hash_stmt): Likewise. (sem_item_optimizer::subdivide_classes_by_equality): Likewise. (sem_item_optimizer::traverse_congruence_split): Likewise. (sem_item_optimizer::process_cong_reduction): Likewise. * ipa-inline-transform.cc (mark_all_inlined_calls_cdtor): Likewise. (preserve_function_body_p): Likewise. * ipa-inline.cc (enum can_inline_edge_by_limits_flags): Likewise. (can_early_inline_edge_p): Likewise. (early_inliner): Likewise. * ipa-locality-cloning.cc (edge_redirectable_p): Likewise. (clone_node_as_needed): Likewise. (partition_callchain): Likewise. * ipa-modref.cc (modref_eaf_analysis::merge_with_ssa_name): Likewise. * ipa-param-manipulation.cc (ipa_param_adjustments::get_surviving_params): Likewise. (purge_all_uses): Likewise. (ipa_param_body_adjustments::mark_dead_statements): Likewise. (replace_with_mapped_expr): Likewise. (ipa_param_body_adjustments::get_new_param_chain): Likewise. (record_argument_state): Likewise. (ipa_param_body_adjustments::perform_cfun_body_modifications): Likewise. * ipa-param-manipulation.h (struct ipa_replace_map): Likewise. * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::combine_with): Likewise. * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Likewise. (noted_fnptr_hasher::equal): Likewise. (ipa_set_ancestor_jf): Likewise. (check_stmt_for_type_change): Likewise. (param_type_may_change_p): Likewise. (find_dominating_aa_status): Likewise. (parm_ref_data_pass_through_p): Likewise. (build_agg_jump_func_from_list): Likewise. (analyze_agg_content_value): Likewise. (ipa_single_noted_fnptr_in_record): Likewise. (ipa_make_edge_direct_to_target): Likewise. (combine_controlled_uses_counters): Likewise. (ipa_duplicate_jump_function): Likewise. (ipa_write_jump_function): Likewise. (useful_ipcp_transformation_info_p): Likewise. * ipa-prop.h (struct GTY): Likewise. * ipa-reference.cc (ipa_reference_var_uid): Likewise. (ipa_reference_get_written_global): Likewise. (union_static_var_sets): Likewise. * ipa-split.cc (split_function): Likewise. * ipa-sra.cc (isra_track_scalar_value_uses): Likewise. (process_scan_results): Likewise. (flip_all_hints_pessimistic): Likewise. (flip_all_param_hints_pessimistic): Likewise. * ipa-strub.cc (get_strub_mode_attr_parm): Likewise. (compute_strub_mode): Likewise. * ipa-utils.cc (ipa_merge_profiles): Likewise. (recursive_call_p): Likewise. (stmt_may_terminate_function_p): Likewise. (find_always_executed_bbs): Likewise. * ipa-utils.h (type_with_linkage_p): Likewise. (lto_streaming_expected_p): Likewise. * ipa-visibility.cc (varpool_node::externally_visible_p): Likewise. * ipa.cc (update_inlined_to_pointer): Likewise. (enqueue_node): Likewise. (process_references): Likewise. (set_readonly_bit): Likewise. (clear_addressable_bit): Likewise. (BOTTOM): Likewise. (propagate_single_user): Likewise. 2026-05-30 Dhruv Chawla * gimple-array-bounds.cc (trailing_array): Fix typos. * gimple-crc-optimization.cc (crc_optimization::set_defs): Likewise. * gimple-fold.cc (get_range_strlen): Likewise. (can_refer_decl_in_current_unit_p): Likewise. (gimple_fold_builtin_bcopy): Likewise. (get_range_strlen_tree): Likewise. (gimple_fold_builtin_stpcpy): Likewise. (fold_stmt_1): Likewise. (fold_truth_andor_for_ifcombine): Likewise. (gimple_fold_stmt_to_constant): Likewise. (fold_const_aggregate_ref): Likewise. (gimple_get_virt_method_for_vtable): Likewise. (rewrite_to_defined_unconditional): Likewise. (gimple_build): Likewise. (gimple_convert): Likewise. * gimple-harden-control-flow.cc (pass_harden_control_flow_redundancy::execute): Likewise. * gimple-loop-interchange.cc (loop_cand::can_interchange_p): Likewise. (loop_cand::analyze_lcssa_phis): Likewise. (should_interchange_loops): Likewise. * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Likewise. * gimple-low.cc (find_assumption_locals_r): Likewise. * gimple-match-exports.cc (try_conditional_simplification): Likewise. * gimple-predicate-analysis.cc (find_matching_predicate_in_rest_chains): Likewise. (uninit_analysis::func_t::phi_arg_set): Likewise. (predicate::dump): Likewise. * gimple-predicate-analysis.h (class uninit_analysis): Likewise. * gimple-range-cache.cc (sbr_vector::bb_range_p): Likewise. (block_range_cache::set_bb_range): Likewise. * gimple-range-gori.cc (gori_compute::compute_operand_range): Likewise. (gori_stmt_info::gori_stmt_info): Likewise. (gori_calc_operands): Likewise. (gori_on_edge): Likewise. (gori_name_helper): Likewise. * gimple-range-infer.h: Likewise. * gimple-range-phi.cc (phi_group::phi_group): Likewise. (phi_group::calculate_using_modifier): Likewise. (phi_analyzer::operator[]): Likewise. * gimple-range-phi.h: Likewise. * gimple-range.cc (dom_ranger::range_of_stmt): Likewise. * gimple-ssa-isolate-paths.cc (is_addr_local): Likewise. (warn_return_addr_local): Likewise. * gimple-ssa-pta-constraints.cc (get_constraint_for_ssa_var): Likewise. (find_func_clobbers): Likewise. (create_variable_info_for): Likewise. (associate_varinfo_to_alias): Likewise. * gimple-ssa-sccopy.cc: Likewise. * gimple-ssa-split-paths.cc (count_stmts_in_block): Likewise. (poor_ifcvt_pred): Likewise. (is_feasible_trace): Likewise. * gimple-ssa-sprintf.cc (get_int_range): Likewise. (handle_printf_call): Likewise. * gimple-ssa-store-merging.cc (get_location_for_stmts): Likewise. * gimple-ssa-strength-reduction.cc: Likewise. * gimple-ssa-warn-access.cc (call_arg): Likewise. * gimple-ssa-warn-restrict.cc (builtin_memref::offset_out_of_bounds): Likewise. (builtin_access::overlap_size): Likewise. (maybe_diag_access_bounds): Likewise. * gimple.def (GIMPLE_PHI): Likewise. * gimple.h (gimple_goto_dest): Likewise. 2026-05-30 Dhruv Chawla * genattrtab.cc (min_fn): Fix typos. (get_attr_order): Likewise. (optimize_attrs): Likewise. * genautomata.cc (struct unit_usage): Likewise. * gengtype-state.cc (s_expr_writer::write_any_indent): Likewise. (write_state): Likewise. * gengtype.cc (struct file_rule_st): Likewise. (walk_type): Likewise. (write_roots): Likewise. * genmatch.cc (expr::gen_transform): Likewise. (usage): Likewise. * genopinit.cc (open_outfile): Likewise. (handle_overloaded_code_for): Likewise. (main): Likewise. * genoutput.cc (operand_data_hasher::equal): Likewise. * genpreds.cc (FOR_ALL_CONSTRAINTS): Likewise. * genrecog.cc (prune_invalid_results): Likewise. (split_out_patterns): Likewise. * gensupport.cc (parse_section): Likewise. (convert_syntax): Likewise. (mark_operands_from_match_dup): Likewise. 2026-05-30 Dhruv Chawla * sanopt.cc: Fix typos. * sched-deps.cc (sched_analyze_2): Likewise. * sel-sched-ir.cc (alloc_target_context): Likewise. (av_set_union_and_live): Likewise. (make_regions_from_loop_nest): Likewise. * sel-sched-ir.h (struct _list_iterator): Likewise. (struct succs_info): Likewise. (SUCCS_ALL): Likewise. * sel-sched.cc (moveup_expr): Likewise. (moveup_expr_cached): Likewise. (get_spec_check_type_for_insn): Likewise. (get_expr_cost): Likewise. (find_place_for_bookkeeping): Likewise. (update_and_record_unavailable_insns): Likewise. (move_op_at_first_insn): Likewise. (calculate_new_fences): Likewise. * shrink-wrap.cc (live_edge_for_reg): Likewise. (try_shrink_wrapping): Likewise. * simplify-rtx.cc (simplify_context::simplify_logical_relational_operation): Likewise. (simplify_const_vector_subreg): Likewise. * spellcheck.cc (assert_not_suggested_for): Likewise. * stringpool.h: Likewise. * sym-exec/sym-exec-state.cc (state::do_shift_right): Likewise. (state::get_parent_with_const_child): Likewise. (state::add_numbers): Likewise. (state::add_equal_cond): Likewise. (state::add_not_equal_cond): Likewise. * sym-exec/sym-exec-state.h (class state): Likewise. * symbol-summary.h: Likewise. * symtab.cc (symtab_node::noninterposable_alias): Likewise. (symtab_node::equal_address_to): Likewise. * system.h (gcc_stablesort_r): Likewise. * target-hooks-macros.h: Likewise. * target.def: Likewise. * targhooks.cc (default_floatn_mode): Likewise. (default_floatn_builtin_p): Likewise. (default_builtin_vector_alignment_reachable): Likewise. (default_addr_space_for_artificial_rodata): Likewise. * text-art/ruler.cc (x_ruler::update_layout): Likewise. * text-art/ruler.h (class x_ruler): Likewise. * timevar.def (TV_ISOLATE_ERRONEOUS_PATHS): Likewise. * trans-mem.cc (ipa_tm_scan_irr_block): Likewise. (ipa_tm_execute): Likewise. * typed-splay-tree.h (class typed_splay_tree): Likewise. * ubsan.cc (instrument_bool_enum_load): Likewise. * value-prof.cc: Likewise. * value-range.cc (irange::union_append): Likewise. (irange::snap): Likewise. (irange::snap_subranges): Likewise. (irange::get_bitmask): Likewise. * value-range.h (irange_bitmask::get_precision): Likewise. * value-relation.cc (dom_oracle::next_relation): Likewise. (block_relation_iterator::block_relation_iterator): Likewise. * var-tracking.cc (shared_hash_find): Likewise. (emit_note_insn_var_location): Likewise. * varasm.cc (mergeable_constant_section): Likewise. (finish_tm_clone_pairs): Likewise. (default_binds_local_p_3): Likewise. * vr-values.cc (simplify_using_ranges::simplify): Likewise. * vtable-verify.cc: Likewise. * warning-control.cc (has_warning_spec): Likewise. * wide-int.cc (wi::from_mpz): Likewise. (wi::force_to_size): Likewise. (wi::divmod_internal): Likewise. * wide-int.h (wi::bitreverse): Likewise. (wi::umin): Likewise. (wi::mul_high): Likewise. (wi::div_trunc): Likewise. (wi::sdiv_trunc): Likewise. (wi::udiv_trunc): Likewise. (wi::div_floor): Likewise. (wi::sdiv_floor): Likewise. (wi::udiv_floor): Likewise. (wi::div_ceil): Likewise. (wi::udiv_ceil): Likewise. (wi::div_round): Likewise. (wi::gcd): Likewise. (wi::mod_trunc): Likewise. (wi::smod_trunc): Likewise. (wi::umod_trunc): Likewise. (wi::mod_floor): Likewise. (wi::umod_floor): Likewise. (wi::mod_ceil): Likewise. 2026-05-30 Dhruv Chawla * omp-expand.cc (expand_oacc_collapse_vars): Likewise. (expand_omp_for_init_vars): Likewise. (expand_omp_for): Likewise. (expand_omp_atomic_fetch_op): Likewise. (build_omp_regions_1): Likewise. * omp-general.cc (omp_is_allocatable_or_ptr): Likewise. * omp-low.cc (lower_rec_input_clauses): Likewise. (lower_omp): Likewise. * omp-offload.cc (oacc_validate_dims): Likewise. (oacc_loop_process): Likewise. (oacc_loop_fixed_partitions): Likewise. (oacc_loop_auto_partitions): Likewise. (execute_oacc_device_lower): Likewise. * omp-simd-clone.cc (simd_clone_clauses_extract): Likewise. (ipa_simd_modify_stmt_ops): Likewise. * optabs-query.cc (lshift_cheap_p): Likewise. * optabs-query.h (trapv_binoptab_p): Likewise. (get_vec_cmp_icode): Likewise. * optabs.cc (expand_binop): Likewise. (expand_vec_perm_var): Likewise. (expand_compare_and_swap_loop): Likewise. (expand_atomic_load): Likewise. (maybe_optimize_fetch_op): Likewise. (can_reuse_operands_p): Likewise. * opts-global.cc (init_options_once): Likewise. * opts.h (struct cl_option): Likewise. * pair-fusion.cc (pair_fusion_bb_info::try_fuse_pair): Likewise. * pair-fusion.h (enum class): Likewise. * passes.cc (account_profile_1): Likewise. * path-coverage.cc (instrument_prime_paths): Likewise. * plugin.cc (get_event_last): Likewise. * pointer-query.cc (handle_min_max_size): Likewise. (handle_array_ref): Likewise. (handle_ssa_name): Likewise. * poly-int.h (struct if_lossless): Likewise. (POLY_POLY_COEFF): Likewise. * postreload-gcse.cc (gcse_after_reload_main): Likewise. * predict.cc (expr_expected_value_1): Likewise. (is_exit_with_zero_arg): Likewise. (predict_paths_for_bb): Likewise. (estimate_bb_frequencies): Likewise. (rebuild_frequencies): Likewise. (make_pass_rebuild_frequencies): Likewise. * pretty-print-format-impl.h: Likewise. * pretty-print.h: Likewise. * prime-paths.cc (struct xpair): Likewise. (edge_matrix): Likewise. (test_build_ccfg): Likewise. * print-rtl.cc (rtx_writer::print_rtx_operand_code_r): Likewise. * profile-count.h (class profile_probability): Likewise. * pta-andersen.cc (merge_node_constraints): Likewise. (add_graph_edge): Likewise. * range-op.cc (bool): Likewise. (operator_cast::op1_range): Likewise. (operator_bitwise_and::wi_fold): Likewise. (operator_bitwise_and::op1_range): Likewise. * range-op.h: Likewise. * read-md.h (class md_reader): Likewise. * read-rtl-function.cc (lookup_reg_by_dump_name): Likewise. * real.cc: Likewise. * recog.h: Likewise. * ree.cc (find_and_remove_re): Likewise. * reg-notes.def (REG_CFA_NOTE): Likewise. * reginfo.cc (reg_allocno_class): Likewise. * reload1.cc (will_delete_init_insn_p): Likewise. (emit_reload_insns): Likewise. * resource.cc (mark_referenced_resources): Likewise. (mark_target_live_regs): Likewise. * rtl.def (DEFINE_SPECIAL_PREDICATE): Likewise. (COND): Likewise. (DEFINE_SUBST): Likewise. * rtl.h (const_vec_series_p_1): Likewise. (const_vec_series_p): Likewise. 2026-05-30 Dhruv Chawla * emit-rtl.h (struct rtl_data): Fix typos. (struct address_reload_context): Likewise. * explow.cc (anti_adjust_stack_and_probe): Likewise. * explow.h (anti_adjust_stack_and_probe_stack_clash): Likewise. * expmed.cc (store_bit_field_using_insv): Likewise. (expand_mult): Likewise. (emit_store_flag_force): Likewise. (equivalent_cmp_code): Likewise. * expr.cc (class op_by_pieces_d): Likewise. (op_by_pieces_d::run): Likewise. (use_group_regs): Likewise. (get_def_for_expr): Likewise. (emit_move_insn): Likewise. (expand_expr_real): Likewise. (expand_expr_real_gassign): Likewise. * ext-dce.cc (ext_dce_process_uses): Likewise. (ext_dce_process_bb): Likewise. (ext_dce_rd_confluence_n): Likewise. * fibonacci_heap.h (fibonacci_heap::cut): Likewise. * fold-const.cc (combine_comparisons): Likewise. (operand_compare::operand_equal_p): Likewise. (fold_view_convert_vector_encoding): Likewise. (fold_truth_andor): Likewise. * fold-const.h: Likewise. * function.cc (temp_address_hasher::equal): Likewise. (gen_call_used_regs_seq): Likewise. * gcc-diagnostic-spec.cc (GTY): Likewise. (warning_suppressed_at): Likewise. * gcc.cc (driver::maybe_run_linker): Likewise. * gcov.cc (print_usage): Likewise. (strip_extention): Likewise. * gdbhooks.py: Likewise. * gimplify.cc (gimplify_decl_expr): Likewise. (gimplify_modify_expr): Likewise. (oacc_default_clause): Likewise. (omp_notice_variable): Likewise. * graph.cc (draw_cfg_nodes): Likewise. * graphite-dependences.cc (scop_get_reads_and_writes): Likewise. * graphite-isl-ast-to-gimple.cc (graphite_copy_stmts_from_block): Likewise. * haifa-sched.cc (model_set_excess_costs): Likewise. (analyze_set_insn_for_autopref): Likewise. (autopref_multipass_dfa_lookahead_guard): Likewise. * hash-map-traits.h (HASH_MAP_TRAITS_H): Likewise. * hosthooks.h (struct host_hooks): Likewise. * ifcvt.cc (noce_try_sign_bit_splat): Likewise. * input.cc (line_table_test::line_table_test): Likewise. * internal-fn.def (PHI): Likewise. * internal-fn.h (enum ifn_goacc_loop_kind): Likewise. * ira-build.cc (create_insn_allocnos): Likewise. * ira-color.cc (ira_mark_new_stack_slot): Likewise. * ira-int.h: Likewise. * ira.cc (struct sloc): Likewise. * json-parsing.cc (parser::require_one_of): Likewise. * langhooks.h (struct lang_hooks_for_decls): Likewise. * libgdiagnostics.cc: Likewise. * libgdiagnostics.h (diagnostic_manager_write_patch): Likewise. * loop-invariant.cc (MAX_CANON_ADDR_PARTS): Likewise. * lra-assigns.cc (reload_pseudo_compare_func): Likewise. * lra-constraints.cc (match_reload): Likewise. (process_alt_operands): Likewise. (process_address_1): Likewise. (lra_constraints): Likewise. (inherit_in_ebb): Likewise. * lra-eliminations.cc (init_elim_table): Likewise. * lra-remat.cc: Likewise. * machmode.h (struct int_n_data_t): Likewise. * mem-stats.h (mem_alloc_description::register_descriptor): Likewise. (mem_alloc_description::unregister_descriptor): Likewise. * mode-switching.cc (optimize_mode_switching): Likewise. * modulo-sched.cc (schedule_reg_moves): Likewise. (optimize_sc): Likewise. 2026-05-30 Dhruv Chawla * adjust-alignment.cc (pass_adjust_alignment::execute): Fix typos. * alias.cc (alias_set_subset_of): Likewise. (alias_ptr_types_compatible_p): Likewise. (get_alias_set): Likewise. (record_component_aliases): Likewise. (base_alias_check): Likewise. * alloc-pool.h: Likewise. * asan.cc (insert_if_then_before_iter): Likewise. (asan_expand_check_ifn): Likewise. (hwasan_expand_check_ifn): Likewise. * asan.h (sanitize_flags_p): Likewise. * asm-toplevel.cc (analyze_toplevel_extended_asm): Likewise. * attr-fnspec.h: Likewise. * attribs.cc (decl_attributes): Likewise. * auto-profile.cc (function_instance::match): Likewise. (function_instance::remove_icall_target): Likewise. (autofdo_source_profile::offline_external_functions): Likewise. (afdo_set_bb_count): Likewise. (scale_bbs): Likewise. (afdo_adjust_guessed_profile): Likewise. * basic-block.h (find_fallthru_edge): Likewise. * bbitmap.h: Likewise. * bitmap.cc (bitmap_list_find_element): Likewise. * bitmap.h: Likewise. * btfout.cc (BTF_INFO_SECTION_FLAGS): Likewise. (btf_asm_type): Likewise. (output_btf_vars): Likewise. (btf_add_used_type_1): Likewise. * builtins.cc (string_length): Likewise. (expand_builtin_setjmp_setup): Likewise. (inline_expand_builtin_bytecmp): Likewise. * builtins.def: Likewise. * ccmp.cc (get_compare_parts): Likewise. (expand_ccmp_next): Likewise. * ccmp.h: Likewise. * cfg.cc (update_bb_profile_for_threading): Likewise. * cfganal.cc (post_order_compute): Likewise. * cfgbuild.cc (find_many_sub_basic_blocks): Likewise. * cfgexpand.cc (vars_ssa_cache::dump): Likewise. (add_scope_conflicts_1): Likewise. (set_parm_rtl): Likewise. (expand_one_ssa_partition): Likewise. (expand_one_var): Likewise. (discover_nonconstant_array_refs_r): Likewise. (pass_expand::execute): Likewise. * cfgloop.cc (get_estimated_loop_iterations): Likewise. * cfgloopanal.cc (loop_count_in): Likewise. * cfgloopmanip.cc (loop_exit_for_scaling): Likewise. (update_loop_exit_probability_scale_dom_bbs): Likewise. * cgraph.cc (add_detected_attribute_1): Likewise. (cgraph_edge::maybe_hot_p): Likewise. * cgraph.h (struct cgraph_node): Likewise. * cif-code.def (ORIGINALLY_INDIRECT_CALL): Likewise. * collect2.cc (main): Likewise. * combine.cc (simplify_comparison): Likewise. (distribute_notes): Likewise. * configure.ac: Likewise. * coretypes.h (enum pad_direction): Likewise. * coroutine-passes.cc (make_pass_coroutine_lower_builtins): Likewise. * coverage.cc (coverage_compute_profile_id): Likewise. * cse.cc (struct set): Likewise. (try_back_substitute_reg): Likewise. (count_stores): Likewise. * cselib.cc (struct cselib_hasher): Likewise. * ctfc.cc (ctfc_get_num_ctf_vars): Likewise. (ctf_add_string): Likewise. (ctf_add_function_arg): Likewise. * ctfc.h (GTY): Likewise. (CTF_AUX_STRTAB): Likewise. (ctfc_get_num_ctf_vars): Likewise. * ctfout.cc (ctf_asm_sou_lmember): Likewise. (output_ctf_header): Likewise. * debug.h: Likewise. * defaults.h: Likewise. * df-problems.cc (df_simulate_fixup_sets): Likewise. (df_simulate_finalize_backwards): Likewise. * diagnostic-context-rich-location.cc (lazy_diagnostic_context_path::make_inner_path): Likewise. * diagnostics/color.cc (auto_enable_urls): Likewise. * diagnostics/context.h: Likewise. * diagnostics/sarif-sink.cc (get_message_from_result): Likewise. * double-int.cc (double_int::lrotate): Likewise. * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise. * dwarf2cfi.cc (dwarf2out_frame_debug_expr): Likewise. * dwarf2ctf.cc (ctf_get_AT_data_member_location): Likewise. (handle_ctf_type_tags): Likewise. * dwarf2out.cc (cst_pool_loc_descr): Likewise. (loc_list_for_address_of_addr_expr_of_indirect_ref): Likewise. (resolve_args_picking_1): Likewise. (typed_binop_from_tree): Likewise. (gen_array_type_die): Likewise. * dwarf2out.h (struct dw_val_node): Likewise. (dw_loc_dtprel): Likewise. 2026-05-30 Dhruv Chawla * doc/analyzer.texi: Fix typos. * doc/cpp.texi: Likewise. * doc/extend.texi: Likewise. * doc/gcov.texi: Likewise. * doc/gm2.texi: Likewise. * doc/gty.texi: Likewise. * doc/install.texi: Likewise. * doc/invoke.texi: Likewise. * doc/libgdiagnostics/topics/compatibility.rst: Likewise. * doc/libgdiagnostics/topics/physical-locations.rst: Likewise. * doc/libgdiagnostics/tutorial/07-execution-paths.rst: Likewise. * doc/libgdiagnostics/tutorial/08-message-buffers.rst: Likewise. * doc/match-and-simplify.texi: Likewise. * doc/md.texi: Likewise. * doc/optinfo.texi: Likewise. * doc/params.texi: Likewise. * doc/poly-int.texi: Likewise. * doc/riscv-ext.texi: Likewise. * doc/rtl.texi: Likewise. * doc/sourcebuild.texi: Likewise. * doc/tm.texi: Likewise. * doc/tm.texi.in: Likewise. * doc/tree-ssa.texi: Likewise. 2026-05-30 Dhruv Chawla * Makefile.in: Fix typos. 2026-05-30 Jakub Jelinek * tree.h (BITINT_TYPE_P): Return true also for ENUMERAL_TYPE with BITINT_TYPE as underlying type. * stor-layout.cc (finish_bitfield_representative): Use BITINT_TYPE_P macro. (layout_type): Likewise. Lay out ENUMERAL_TYPEs with BITINT_TYPE as underlying type the same as BITINT_TYPEs. * gimple-lower-bitint.cc (maybe_cast_middle_bitint): Use BITINT_TYPE_P macro. (mergeable_op, optimizable_arith_overflow, comparison_op, bitint_large_huge::handle_cast, bitint_large_huge::lower_shift_stmt, bitint_large_huge::lower_muldiv_stmt, bitint_large_huge::lower_mul_overflow, bitint_large_huge::lower_bit_query, bitint_large_huge::lower_call, bitint_large_huge::lower_asm, bitint_large_huge::lower_stmt, build_bitint_stmt_ssa_conflicts, arith_overflow_arg_kind, gimple_lower_bitint): Likewise. * gimple-expr.cc (useless_type_conversion_p): Likewise. * fold-const.cc (make_range_step): Likewise. (range_check_type): For ENUMERAL_TYPEs with BITINT_TYPE as underlying type use the underlying type. (extract_muldiv_1): Use BITINT_TYPE_P macro. (native_encode_wide_int): Likewise. (native_interpret_int): Likewise. * vr-values.cc (simplify_using_ranges::simplify_float_conversion_using_ranges): Likewise. * cfgexpand.cc (expand_debug_expr): Likewise. * convert.cc (convert_to_integer_1): Add special case for ENUMERAL_TYPE with underlying BITINT_TYPE. * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use BITINT_TYPE_P macro. (vn_reference_lookup_3): Likewise. (eliminate_dom_walker::eliminate_stmt): Likewise. * match.pd (ctz(ext(X)) == ctz(X), popcount(zext(X)) == popcount(X), parity(zext(X)) == parity(X), a != 0 ? CLZ(a) : CST -> .CLZ(a), a != 0 ? CTZ(a) : CST -> .CTZ(a), ffs(ext(X)) == ffs(X)): Likewise. * builtins.cc (fold_builtin_bit_query): Likewise. * explow.cc (promote_function_mode): Handle ENUMERAL_TYPE with BITINT_TYPE as underlying type like BITINT_TYPE. (promote_mode): Likewise. * expr.cc (EXTEND_BITINT): Use BITINT_TYPE_P macro. (expand_expr_real_1): Likewise. * fold-const-call.cc (fold_const_call_ss): Likewise. * gimple-fold.cc (gimple_fold_builtin_memset): Likewise. (clear_padding_type_may_have_padding_p): Handle ENUMERAL_TYPE with BITINT_TYPE as underlying type like BITINT_TYPE. (type_has_padding_at_level_p): Likewise. (clear_padding_type): Likewise. * gimple-match-exports.cc (build_call_internal): Use BITINT_TYPE_P macro. * internal-fn.cc (expand_ubsan_result_store): Likewise. * tree-sra.cc (create_access): Likewise. (analyze_access_subtree): Likewise. * tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Likewise. * tree-ssa.cc (maybe_optimize_var): Likewise. * tree-switch-conversion.cc (switch_conversion::array_value_type): Likewise. (switch_conversion::build_arrays): Likewise. (jump_table_cluster::emit): Likewise. * ubsan.cc (ubsan_encode_value): Likewise. (ubsan_type_descriptor): Handle ENUMERAL_TYPE with BITINT_TYPE as underlying type like BITINT_TYPE. (instrument_si_overflow): Use BITINT_TYPE_P macro. * varasm.cc (output_constant): Handle ENUMERAL_TYPE with BITINT_TYPE as underlying type like BITINT_TYPE. * config/aarch64/aarch64.cc (aarch64_return_in_memory_1): Use BITINT_TYPE_P macro. (bitint_or_aggr_of_bitint_p): Likewise. (aarch64_composite_type_p): Likewise. * config/arm/arm.cc (arm_return_in_memory): Likewise. (arm_needs_doubleword_align): Likewise. * config/i386/i386.cc (classify_argument): Handle ENUMERAL_TYPE with BITINT_TYPE as underlying type like BITINT_TYPE. * config/loongarch/loongarch.h: Use BITINT_TYPE_P macro. 2026-05-30 Andrew Pinski * tree-switch-conversion.cc (case_bit_test::cmp): Stability based on the index of the target bb instead. (bit_test_cluster::emit): Remove setting of the label field of case_bit_test. * tree-switch-conversion.h (case_bit_test): Remove the label field. 2026-05-29 Andrew Pinski PR tree-optimization/125475 * gimple-range-fold.cc (fold_using_range::fold_stmt): Don't call gimple_stmt_nonnegative_p. Instead set the varying range to `[type_min, type_max]` if not the same as the precision. 2026-05-29 Georg-Johann Lay PR target/121343 * config/avr/avr.md (FMUL): New int iterator. (fmul, fmul_X, fmul_1, fmul_2): New int attributes. (fmul, fmuls, fmulsu): Turn from expander to insn_and_split. (fmul_insn, fmuls_insn, fmulsu_insn): Remove. 2026-05-29 Tobias Burnus PR c/122892 * gimplify.cc (gimplify_scan_omp_clauses): Update for removed plural -S in GOMP_OMP_PREDEF_ALLOC_THREAD. 2026-05-29 Nathan Sidwell * config/riscv/sync.md: Move & rename atomic unspec enums to unspecv enum. Use renamed UNSPECV_$NAME enums. * config/riscv/sync-rvwmo.md: Use renamed UNSPECV_$NAME enums. * config/riscv/sync-ztso.md: Use renamed UNSPECV_$NAME enums. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Emit definitions for __ARM_FEATURE_{SVE,SME}2p2. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve-builtins-sve2.def (svmul): Define new SVE function variant. * config/aarch64/aarch64-sve2.md (@aarch64_sve_): New instruction pattern. (@aarch64_sve__single): Likewise. * config/aarch64/aarch64.h (TARGET_STREAMING_SME2p2): New macro. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve-builtins-base.cc (class svexpand_impl): Define new SVE function base. * config/aarch64/aarch64-sve-builtins-base.def (svcompact): Allow execution in streaming mode when SME2p2 is enabled. * config/aarch64/aarch64-sve-builtins-base.h (svexpand): Declare new SVE function base. * config/aarch64/aarch64-sve-builtins-sve2.def (svcompact): Define new SVE function. (svexpand): Likewise. * config/aarch64/aarch64-sve.md (@aarch64_sve_compact): Enable 32- and 64-bit element variants under SME2p2. New insn pattern for 8- and 16-bit elements. (@aarch64_sve_expand): New insn pattern. * config/aarch64/aarch64.h (TARGET_SVE_OR_SME2p2): New macro. * config/aarch64/aarch64.md (UNSPEC_SVE_EXPAND): New UNSPEC. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve-builtins-sve2.cc (class svfirst_lastp_impl): Define new SVE function base class. (svfirstp): Define new SVE function base. (svlastp): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.def (svfirstp): Define new SVE function. (svlastp): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.h (svfirstp): Declare new SVE function base. * config/aarch64/aarch64-sve2.md (@aarch64_pred_firstp): New insn pattern. (@aarch64_pred_lastp): Likewise. * config/aarch64/iterators.md (UNSPEC_FIRSTP): New UNSPEC. (UNSPEC_LASTP): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve-builtins-sve2.cc (svrint32x): Define new function base. (svrint32z): Likewise. (svrint64x): Likewise. (svrint64z): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.def (svrint32x): Define new SVE function. (svrint32z): Likewise. (svrint64x): Likewise. (svrint64z): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.h (svrint32x): Declare new function base. (svrint32z): Likewise. (svrint64x): Likewise. (svrint32z): Likewise. * config/aarch64/aarch64-sve-builtins.cc (TYPES_sd_float): New type set. (sd_float): New SVE type array. * config/aarch64/aarch64-sve2.md (@cond_): New insn pattern. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve-builtins-base.cc (class svcvtnt_impl): Remove. (svcvtnt): Redefine using narrowing_top_convert. * config/aarch64/aarch64-sve-builtins-functions.h (class narrowing_top_convert): New SVE function base class. (NARROWING_TOP_CONVERT0): New function-like macro for specializing narrowing_top_convert. (NARROWING_TOP_CONVERT1): Likewise. * config/aarch64/aarch64-sve-builtins-sve2.cc (class svcvtxnt_impl): Remove. (svcvtxnt): Redefine using narrowing_top_convert. * config/aarch64/aarch64-sve-builtins-sve2.def (svcvtlt): Allow zeroing predication. (svcvtnt): Likewise. (svcvtxnt): Likewise. * config/aarch64/aarch64-sve.md (@aarch64_sve_cvtnt): Convert to compact syntax. Add operand 4 for values of inactive lanes. New alternative for zeroing predication. * config/aarch64/aarch64-sve2.md (*cond__relaxed): Convert to compact syntax. New alternative for zeroing predication. (*cond__strict): Likewise. (@aarch64_sve_cvtnt): Convert to compact syntax. Add operand 4 for values of inactive lanes. New alternative for zeroing predication. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (*cond__nonextend_relaxed): New alternative for zeroing predication. Add `arch` attribute to every alternative. (*cond__nonextend_relaxed): Likewise. (*cond__nonextend_strict): Likewise. (*cond__extend): Likewise. (*cond__trunc): Likewise. (*cond__trunc): Likewise. (*cond__trunc): Likewise. (*cond__nontrunc): Likewise. (*cond__nontrunc_relaxed): Likewise. * config/aarch64/aarch64-sve2.md (*cond__any_relaxed): Likewise. (*cond__any_strict): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (*cond__nontrunc_relaxed): New alternative for zeroing predication. Add `arch` attribute to every alternative. (*cond__nontrunc_relaxed): Likewise. (*cond__nontrunc_strict): Likewise. (*cond__trunc): Likewise. (*cond__trunc_relaxed): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (*cond__any_relaxed): New alternative for zeroing predication. Add `arch` attribute to every alternative. (*cond__any_strict): Likewise. * config/aarch64/aarch64-sve2.md (*cond_): Likewise. (*cond__strict): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (@cond_): New alternative for zeroing predication. Add `arch` attribute to every alternative. * config/aarch64/aarch64-sve2.md (@aarch64_pred_): Use zeroing predication variant for PRED_X. (@cond_): Accept constant zero as operand 3. New alternative for zeroing predication. Add `arch` attribute to every alternative. * config/aarch64/predicates.md (aarch64_simd_reg_or_direct_zero): New predicate. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (@aarch64_cond_sxt): New alternative for zeroing predication. Add `arch` attribute to every alternative. (*cond_uxt_any): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64-sve.md (*cond__any): New alternative for zeroing predication. Add `arch` attribute to every alternative. (*cond_cnot_any): Likewise. * config/aarch64/aarch64-sve2.md: (*cond_): Likewise. 2026-05-29 Artemiy Volkov * config/aarch64/aarch64.h (TARGET_SVE2p2): New macro. (TARGET_SME2p2): Likewise. (TARGET_SVE2p2_OR_SME2p2): Likewise. * config/aarch64/aarch64.md (arches): Add sve2p2_or_sme2p2 enum constant. (arch): Add test for sve2p2_or_sme2p2. * doc/invoke.texi: Document sve2p2 and sme2p2 extensions. 2026-05-29 LIU Hao * config/i386/i386.cc (ix86_decompose_address): Add a special case where there's no base, there's an index, and the scale is 1. 2026-05-28 Roger Sayle * tree-ssa-loop-im.cc (ref_always_accessed_p): Rename to... (ref_always_stored_p): New function specialized to determine if REF is a store that is always executed in LOOP. (execute_sm): Use ref_always_stored_p instead of ref_always_accessed_p. (class ref_always_accessed): Rename to.. (class ref_always_stored): Remove (always true) stored_p field. (ref_always_stored::operator ()): Always check for a store. Move hash table lookup, get_lim_data, after store test. (can_sm_ref_p): Use ref_always_stored_p insead of ref_always_accessed_p. 2026-05-28 Roger Sayle * config/i386/i386-features.cc (compute_convert_gain): Tweak the cost of a 128-bit rotation to be 4 (or 5) instructions. 2026-05-28 Roger Sayle Hongtao Liu * config/i386/i386-features.cc (scalar_chain::add_insn): Don't call analyze_register_chain if the USE is a SUBREG. (scalar_chain::convert_op): Call gen_lowpart to convert scalar (TImode) SUBREGs to vector (V1TImode) SUBREGs. (convertible_comparison_p): We can now handle all general_operands of *cmp_doubleword. (timode_remove_non_convertible_regs): We only need to check TImode uses that aren't TImode SUBREGs of registers in other modes. 2026-05-28 Roger Sayle Hongtao Liu Uros Bizjak * config/i386/i386.md (inv_insn): New define_code_attr. * config/i386/sse.md (3): Accept a CONST_VECTOR as the second operand. If the second operand is CONST1_RTX, canonicalize to use CONSTM1_RTX instead. (*add3_one): New define_insn_and_split to convert padd +1 to psub -1. (*sub3_one): Likewise, a new define_insn_and_split to convert psub +1 to padd -1. 2026-05-28 Jin Ma * config/riscv/riscv.cc (riscv_regno_to_class): Use the minimal class containing each FP hard register: FP_REGS for f0-f7 and f16-f31, RVC_FP_REGS for f8-f15. (riscv_secondary_memory_needed): Use reg_class_subset_p to detect FP classes. 2026-05-28 Zhongyao Chen * config/riscv/riscv-vector-costs.cc (get_lmul_cost_scaling): Enable scaling for all vector modes (VLA and VLS). 2026-05-28 Georg-Johann Lay * config/avr/avr.opt.urls (-masm-len-notes, -Wasm-len-notes): Add. 2026-05-28 Artemiy Volkov * config/aarch64/aarch64-sve.md (*aarch64_vec_duplicate_subvector): New pattern. * config/aarch64/iterators.md (VCONSV): New mode attribute. (vconsv): Likewise. 2026-05-28 Artemiy Volkov * config/aarch64/aarch64-simd.md (*aarch64_combine_internal): New insn pattern. (*aarch64_combine_internal_be): Likewise. (*aarch64_combinez): Likewise. (*aarch64_combinez_be): Likewise. (@aarch64_vec_concat): Support smaller vector and scalar modes. * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Handle the case of two scalar elements. * config/aarch64/iterators.md (SSUB64): New mode iterator. (VSSUB64): Likewise. (VSSUB32_I) : Likewise. (VSSUB64_F): Likewise. (VS32_I_SUB64_F): Likewise. (single_wx): Define attribute for sub-64-bit vector and scalar modes. (bitsize): Likewise. (VDBL): Likewise. (single_dwx): New mode attribute. 2026-05-28 Artemiy Volkov * config/aarch64/aarch64-simd.md (*aarch64_simd_dup_subvector): New insn pattern. (*aarch64_simd_dup_subvector): Likewise. (@aarch64_simd_vec_set): Likewise. (vec_set): Handle 16- and 32-bit vector modes in the expander. * config/aarch64/aarch64.cc (aarch64_expand_vector_init_fallback): Add logic to initialize vector from starting subsequence. Make static. (scalar_move_insn_p): Consider sub-64-bit vector moves scalar. * config/aarch64/iterators.md (VDDUP): New iterator. (VQDUP): Likewise. (elem_bits): Define attribute for sub-64-bit vector modes. (Vetype): Likewise. (VEL): Likewise. (single_wx): Define attribute for sub-64-bit vector and scalar modes. (single_type): Likewise. (VCOND): Likewise. (VCONQ): Likewise. (Vqduptype): New mode attribute. (Vdduptype): Likewise. (vcond): Likewise. (vconq): Likewise. (vstype): Define attribute for 64-bit vector and sub-128-bit scalar modes. 2026-05-28 Artemiy Volkov * config/aarch64/aarch64-modes.def (VECTOR_MODE): Remove V2HF. (VECTOR_MODES): Define V2QI, V4QI, V2HI, V2HF, V2BF. * config/aarch64/aarch64-protos.h (aarch64_advsimd_sub_dword_mode_p): Declare new predicate. * config/aarch64/aarch64-simd.md (*aarch64_simd_mov): New define_insn_and_split pattern. (mov): Add sub-64-bit vector modes to the VALL_F16 expander. Forego const vector expansion for those modes. * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Handle 16- and 32-bit vector modes. (aarch64_advsimd_sub_dword_mode_p): Define new predicate. (aarch64_vectorize_vec_perm_const): Refuse for partial vector modes. * config/aarch64/constraints.md (Da): New constraint. * config/aarch64/iterators.md (VSUB64): New iterator. (VALL_F16_SUB64): Likewise. (size): Define attribute for sub-64-bit vector modes. (VSC): New mode attribute. (vstype): Likewise. 2026-05-28 Kewen Lin Xin Liu * config/i386/c86-4g-m7.md (c86_4g_m7_fpu): Remove automaton. (c86_4g_m7_fpu02): New automaton. (c86_4g_m7_fpu13): Ditto. (c86-4g-m7-fpu0): Move to c86_4g_m7_fpu02 automaton. (c86-4g-m7-fpu1): Move to c86_4g_m7_fpu13 automaton. (c86-4g-m7-fpu2): Move to c86_4g_m7_fpu02 automaton. (c86-4g-m7-fpu3): Move to c86_4g_m7_fpu13 automaton. (c86-4g-m7-fdiv): Remove cpu unit. (c86-4g-m7-fdiv1): New cpu unit. (c86-4g-m7-fdiv3): Ditto. (c86-4g-m7-fpu_0_3): New reservation. (c86-4g-m7-fpu_1_3x2): Ditto. (c86-4g-m7-fpu_1_3x3): Ditto. (c86-4g-m7-fpu_1_3x6): Ditto. (c86-4g-m7-fpux2): Ditto. (c86-4g-m7-fpux4): Ditto. (c86-4g-m7-fpux6): Ditto. (c86-4g-m7-fpux8): Ditto. (c86-4g-m7-fpux16): Ditto. (c86-4g-m7-fp1fdiv1x4): Ditto. (c86-4g-m7-fp3fdiv3x4): Ditto. (c86-4g-m7-fdiv13): Ditto. (c86-4g-m7-fp13div13): Ditto. (c86-4g-m7-fp13div13x4): Ditto. (c86-4g-m7-fp1div1_fp3div3_x4x8): Ditto. (c86-4g-m7-fp1div1_fp3div3_x4x9): Ditto. (c86-4g-m7-fp1div1_fp3div3_x4x11): Ditto. (c86-4g-m7-fp1div1_fp3div3_x4x15): Ditto. (c86-4g-m7-fp1div1_fp3div3_x4x18): Ditto. (c86_4g_m7_idiv): New reservation. (c86_4g_m7_idiv_QI): Adjust reservation latency and unit occupancy. (c86_4g_m7_idiv_load): New reservation. (c86_4g_m7_idiv_QI_load): Adjust reservation latency and unit occupancy. (c86_4g_m7_idiv_DI): Remove reservation. (c86_4g_m7_idiv_SI): Ditto. (c86_4g_m7_idiv_HI): Ditto. (c86_4g_m7_idiv_DI_load): Ditto. (c86_4g_m7_idiv_SI_load): Ditto. (c86_4g_m7_idiv_HI_load): Ditto. (c86_4g_m7_sse_insertimm): Adjust reservation units and unit occupancy. (c86_4g_m7_sse_insert): Ditto. (c86_4g_m7_fp_sqrt): Adjust reservation. (c86_4g_m7_fp_div): Ditto. (c86_4g_m7_fp_div_load): Ditto. (c86_4g_m7_fp_idiv_load): Ditto. (c86_4g_m7_sse_pinsr_reg): Adjust reservation units and unit occupancy. (c86_4g_m7_sse_pinsr_reg_load): Ditto. (c86_4g_m7_avx_vpinsr_reg): Ditto. (c86_4g_m7_avx_vpinsr_reg_load): Ditto. (c86_4g_m7_avx512_perm_xmm): Delete the prefix condition. (c86_4g_m7_avx512_perm_xmm_opload): Ditto. (c86_4g_m7_avx512_permi2_ymm): Adjust reservation units and unit occupancy. (c86_4g_m7_avx512_permi2_zmm): Ditto. (c86_4g_m7_avx512_permi2_ymm_load): Ditto. (c86_4g_m7_avx512_permi2_zmm_load): Ditto. (c86_4g_m7_avx512_perm_zmm_imm): Ditto. (c86_4g_m7_avx512_perm_zmm_imm_load): Ditto. (c86_4g_m7_avx512_perm_zmm_noimm): Ditto. (c86_4g_m7_sse_perm_zmm_noimm_load): Ditto. (c86_4g_m7_avx_perm_ymm): Remove. (c86_4g_m7_avx_perm_ymem): Ditto. (c86_4g_m7_avx512_shuf_zmm): Adjust reservation units and unit occupancy. (c86_4g_m7_avx512_shuf_zmem): Ditto. (c86_4g_m7_avx512_cmpestr): Ditto. (c86_4g_m7_avx512_cmpestr_load): Ditto. (c86_4g_m7_avx512_vdbpsadbw_zmm): Ditto. (c86_4g_m7_avx512_vdbpsadbw_zmem): Ditto. (c86_4g_m7_avx_ssecomi_comi): Ditto. (c86_4g_m7_avx_ssecomi_comi_load): Ditto. (c86_4g_m7_avx512_expand): Ditto. (c86_4g_m7_avx512_expand_load): Ditto. (c86_4g_m7_avx512_expand_z): Ditto. (c86_4g_m7_avx512_expand_z_load): Ditto. (c86_4g_m7_sse_movnt_xy): Rename to c86_4g_m7_sse_movnt. (c86_4g_m7_avx512_sseadd_xy): Adjust reservation units. (c86_4g_m7_avx512_sseadd_xy_load): Ditto. (c86_4g_m7_sse_sseiadd_hplus): Adjust reservation units and unit occupancy. (c86_4g_m7_sse_sseiadd_hplus_load): Ditto. (c86_4g_m7_avx512_ssemul): Adjust reservation units. (c86_4g_m7_avx512_ssemul_load): Ditto. (c86_4g_m7_avx512_ssediv): Remove. (c86_4g_m7_avx512_ssediv_mem): Remove. (c86_4g_m7_avx512_ssediv_x): New. (c86_4g_m7_avx512_ssediv_xmem): New. (c86_4g_m7_avx512_ssediv_y): New. (c86_4g_m7_avx512_ssediv_ymem): New. (c86_4g_m7_avx512_ssediv_z): Adjust reservation units. (c86_4g_m7_avx512_ssediv_zmem): Ditto. (c86_4g_m7_avx512_ssecmp_z): Add reservation units and unit occupancy. (c86_4g_m7_avx512_ssecmp_z_load): Ditto. (c86_4g_m7_avx512_ssecmp_vp_z): New reservation. (c86_4g_m7_avx512_ssecmp_vp_z_load): Ditto. (c86_4g_m7_avx512_ssecmp_test_z): Remove reservation. (c86_4g_m7_avx512_ssecmp_test_z_load): Ditto. (c86_4g_m7_avx512_muladd): Broaden matching condition. (c86_4g_m7_avx512_muladd_load): Ditto. (c86_4g_m7_fma_muladd): Remove reservation. (c86_4g_m7_fma_muladd_load): Ditto. (c86_4g_m7_avx512_sse_conflict_x): Add reservation units and unit occupancy. (c86_4g_m7_avx512_sse_conflict_x_load): Ditto. (c86_4g_m7_avx512_sse_conflict_y): Ditto. (c86_4g_m7_avx512_sse_conflict_y_load): Ditto. (c86_4g_m7_avx512_sse_conflict_z): Ditto. (c86_4g_m7_avx512_sse_conflict_z_load): Ditto. (c86_4g_m7_avx512_sse_class_z): Add reservation units and unit occupancy. (c86_4g_m7_avx512_sse_class_z_load): Ditto. (c86_4g_m7_avx512_sse_sqrt): Remove. (c86_4g_m7_avx512_sse_sqrt_load): Remove. (c86_4g_m7_avx512_sse_sqrt_sf_x): New. (c86_4g_m7_avx512_sse_sqrt_sf_xload): New. (c86_4g_m7_avx512_sse_sqrt_sf_y): New. (c86_4g_m7_avx512_sse_sqrt_sf_yload): New. (c86_4g_m7_avx512_sse_sqrt_sf_z): New. (c86_4g_m7_avx512_sse_sqrt_sf_zload): New. (c86_4g_m7_avx512_sse_sqrt_df_x): New. (c86_4g_m7_avx512_sse_sqrt_df_xload): New. (c86_4g_m7_avx512_sse_sqrt_df_y): New. (c86_4g_m7_avx512_sse_sqrt_df_yload): New. (c86_4g_m7_avx512_sse_sqrt_df_z): New. (c86_4g_m7_avx512_sse_sqrt_df_zload): New. (c86_4g_m7_avx512_msklog_vector): Add reservation units and unit occupancy. (c86_4g_m7_avx512_mskmov_z_k): Ditto. (c86_4g_m7_avx512_mskmov_k_reg): Ditto. * config/i386/c86-4g.md (c86_4g_fp): Remove automaton. (c86_4g_fp024): New automaton. (c86_4g_fp1): Ditto. (c86-4g-fp0): Move to c86_4g_fp024 automaton. (c86-4g-fp1): Move to c86_4g_fp1 automaton. (c86-4g-fp2): Move to c86_4g_fp024 automaton. (c86-4g-fp3): Ditto. (c86-4g-fp1fdivx4): New reservation. (c86_4g_fp_sqrt): Adjust reservation. (c86_4g_sse_sqrt_sf): Ditto. (c86_4g_sse_sqrt_sf_mem): Ditto. (c86_4g_sse_sqrt_df): Ditto. (c86_4g_sse_sqrt_df_mem): Ditto. (c86_4g_fp_op_div): Ditto. (c86_4g_fp_op_div_load): Ditto. (c86_4g_fp_op_idiv_load): Adjust reservation latency. (c86_4g_ssediv_ss_ps): Adjust reservation. (c86_4g_ssediv_ss_ps_load): Ditto. (c86_4g_ssediv_sd_pd): Ditto. (c86_4g_ssediv_sd_pd_load): Ditto. (c86_4g_ssediv_avx256_ps): Ditto. (c86_4g_ssediv_avx256_ps_load): Ditto. (c86_4g_ssediv_avx256_pd): Ditto. (c86_4g_ssediv_avx256_pd_load): Ditto. 2026-05-28 Zhongyao Chen * config/riscv/riscv-vector-costs.cc (estimated_loop_iters): New function. (compare_loop_overhead): New function. (costs::better_main_loop_than_p): Compare RVV loop overhead after inside-loop cost. 2026-05-28 Alex Coplan * config/aarch64/aarch64.cc (aarch64_strip_extend): Replace (unsigned HOST_WIDE_INT) INVAL (x) with UINTVAL (x). * config/aarch64/predicates.md (aarch64_shift_imm_si): Likewise. (aarch64_shift_imm_di): Likewise. (aarch64_shift_imm64_di): Likewise. (aarch64_imm3): Likewise. 2026-05-28 Georg-Johann Lay * config/avr/avr.cc (avr_read_number, avr_length_of_asm) (avr_maybe_length_of_asm): New static functions. (avr_adjust_insn_length): Call avr_maybe_length_of_asm on unrecognized insns. * config/avr/avr.opt (-masm-len-notes, -Wasm-len-notes): New options. * doc/invoke.texi (AVR Options): Add -masm-len-notes, -Wasm-len-notes. * doc/extend.texi (Size of an asm): Add @subsubheading "Specifying the size of an asm on AVR". 2026-05-28 Georg-Johann Lay PR target/121343 * config/avr/avr.md (divmod4, udivmod4): Use hard-reg constraints instead of explicit hard-regs. (*divmodqi4_call_split, *udivmodqi4_call_split): Remove. (*divmodhi4_call_split, *udivmodhi4_call_split): Remove. (*divmodpsi4_call_split, *udivmodpsi4_call_split): Remove. (*divmodsi4_call_split, *udivmodsi4_call_split): Remove. 2026-05-28 Jakub Jelinek PR target/125469 * config/i386/i386.md (*add_1): Don't return "#" for the lea non-TARGET_APX_NDD case, instead emit a lea directly. 2026-05-27 Philipp Tomsich Konstantinos Eleftheriou * ext-dce.cc (ext_dce_try_optimize_extension): Handle SIGN_EXTEND of MEM by replacing with ZERO_EXTEND of MEM when upper bits are dead. 2026-05-27 Philipp Tomsich Konstantinos Eleftheriou * ext-dce.cc (ext_dce_process_uses): Fix off-by-one: use size > 32 instead of size >= 32 for group 3 liveness. 2026-05-27 Wilco Dijkstra * config/aarch64/aarch64.md (movdi_aarch64): Use aarch64_output_move_imm to select w-regs. * config/aarch64/aarch64.cc (aarch64_output_move_imm): New function. * config/aarch64/aarch64-protos.h (aarch64_output_move_imm): Add declaration. 2026-05-27 Tamar Christina PR tree-optimization/120164 * tree-if-conv.cc (if_convertible_stmt_p): Detect prefetches. (predicate_statements): Drop them during predication. 2026-05-27 oltolm PR target/54412 * target.def (overaligned_stack_slot_required): New calls hook. * calls.cc (allocate_call_dynamic_stack_space): New helper. (initialize_argument_information): Use targetm.calls.overaligned_stack_slot_required for over-aligned by-reference argument copies. (expand_call): Use targetm.calls.overaligned_stack_slot_required for over-aligned hidden return slots. * function.cc (assign_stack_local_aligned): New helper. (assign_parm_setup_block): Use targetm.calls.overaligned_stack_slot_required for over-aligned stack parm slots. (assign_parm_setup_reg): Likewise. * config/i386/i386.cc (ix86_overaligned_stack_slot_required): New. (TARGET_OVERALIGNED_STACK_SLOT_REQUIRED): Define for i386. * doc/tm.texi.in: Add hook placement. * doc/tm.texi: Regenerate. 2026-05-27 oltolm PR target/89597 * config/i386/i386.cc (function_value_ms_64): Handle 32-byte and 64-byte vector returns in registers when supported. (ix86_return_in_memory): Do not force 32-byte/64-byte eligible vector returns to memory for MS ABI. 2026-05-27 Tamar Christina PR tree-optimization/120352 * tree-vectorizer.h (LOOP_VINFO_EARLY_BRK_NEEDS_EPILOG): New. (class _loop_vec_info): Add early_break_needs_epilogue. * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Detect usage of stores. * tree-vect-loop-manip.cc (vect_do_peeling): Use them. * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Likewise. (vect_create_loop_vinfo): Likewise. (vect_update_ivs_after_vectorizer_for_early_breaks): Likewise. * tree-vect-stmts.cc (vect_stmt_relevant_p): Likewise. 2026-05-27 Tamar Christina PR tree-optimization/120352 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Add redirect_exits. (vect_do_peeling): Use it. * tree-vectorizer.h (slpeel_tree_duplicate_loop_to_edge_cfg): Update prototype. 2026-05-27 Tamar Christina PR target/125148 * config/aarch64/aarch64-sve.md (*aarch64_vec_shl_insert_into_zero_, *aarch64_vec_shl_insert_into_zero_vnx16qi, *aarch64_vec_shl_insert_from_load_): New. * config/aarch64/aarch64.cc (aarch64_emit_load_store_through_mode): Replace paradoxical subreg with zero-extend. 2026-05-27 Evgeny Karpov * config/aarch64/aarch64-coff.h (SUPPORTS_INIT_PRIORITY): Enable SUPPORTS_INIT_PRIORITY by default. 2026-05-27 liuhongt * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for m_DIAMONDRAPIDS. (X86_TUNE_USE_GATHER_4PARTS): Likewise. 2026-05-26 Sergei Trofimovich PR bootstrap/125318 * tree-vect-stmts.cc (vectorizable_load): Explicitly initialize stride_step to work around -Werror=maybe-uninitialized build failure. 2026-05-26 Andrew Pinski PR tree-optimization/125396 * tree-cfgcleanup.cc (bb_phis_references_abnormal_uses): New function. (maybe_remove_forwarder_block): Check to make sure the forwarder block does not have a phi that references ssa name that has abnormal uses. 2026-05-26 Jin Ma * config/riscv/riscv-fusion.cc (riscv_fusion_same_dest_p): New function. (riscv_set_is_add_p): Rename from riscv_set_is_add. (riscv_set_is_addi_p): Rename from riscv_set_is_addi. (riscv_set_is_adduw_p): Rename from riscv_set_is_adduw. (riscv_set_is_shNadd_p): Rename from riscv_set_is_shNadd. (riscv_set_is_shNadduw_p): Rename from riscv_set_is_shNadduw. (riscv_fuse_zextws): New function. (riscv_fuse_zexth): Likewise. (riscv_fuse_ldindexed): Likewise. (riscv_fuse_expanded_ld): Likewise. (riscv_fuse_ldpreincrement): Likewise. (riscv_fuse_lui_addi): Likewise. (riscv_fuse_auipc_addi): Likewise. (riscv_fuse_lui_ld): Likewise. (riscv_fuse_auipc_ld): Likewise. (riscv_fuse_cache_aligned_std): Likewise. (riscv_fuse_aligned_std): Likewise. (riscv_fuse_bfext): Likewise. (riscv_fuse_b_alui): Likewise. (struct riscv_fusion_entry): New struct. (riscv_fusion_table): New table. (riscv_macro_fusion_pair_p): Refactor to use table-driven dispatch loop with simplified checker interface. 2026-05-26 Jin Ma * config/riscv/riscv-fusion.cc (riscv_macro_fusion_pair_p): Fix XINT to access SET_SRC (prev_set) in AUIPC_LD case. Fix base register comparison from != to == in CACHE_ALIGNED_STD case. Remove redundant CONST_INT_P check in B_ALUI sub+smax case. Remove duplicate REG_P check in LDINDEXED case. Fix typo in comment. Fix dump output name for CACHE_ALIGNED_STD. 2026-05-26 Andrew Pinski PR tree-optimization/125453 * match.pd (`(smaller)a ==/!= (smaller) b`): Reject non integral types. 2026-05-25 Georg-Johann Lay PR target/125409 * config/avr/avr-fixed.md (FIXED_A, FIXED_B): Add PSI to iterators. 2026-05-25 Georg-Johann Lay PR target/121343 * config/avr/avr.md (load__libgcc): Rewrite to use a hard-reg constraint for operand 0. (gen_load_libgcc): Remove expander. (mov): No more special handling needed for sources that satisfy avr_load_libgcc_p. 2026-05-25 Tobias Burnus PR c/125377 * omp-general.cc (omp_check_for_duplicate_variant): Fix used tree for 'inform' part of the error message. 2026-05-25 Eric Botcazou * doc/invoke.texi (fstack-usage): Document new second field. * toplev.cc (output_stack_usage_1): Revert latest changes and add the mangled name as the second field. 2026-05-25 Richard Sandiford * bitmap.cc (bitmap_last_set_bit): Fix handling of index 0. 2026-05-25 liuhongt PR middle-end/124630 * match.pd (popcount (x ^ (x - 1))): Fold to ctz (x) + 1 when x is nonzero and CTZ is directly supported. 2026-05-24 Raven Hallsby PR tree-optimization/125104 * match.pd (`(~y & x) ^ y`): New Pattern. 2026-05-24 Andrew Pinski * toplev.cc (output_stack_usage_1): Print out the human readable name in quotes. 2026-05-24 Andrew Pinski PR tree-optimization/125419 * tree-if-conv.cc (factor_out_operators): Change asserts about abnormals into a conditional to reject it. 2026-05-23 Daniel Barboza * fold-const.cc (fold_overflow_warning): Removed. (pointer_may_wrap_p): Removed. (fold_comparison): Removed fold_overflow_warning and pointer_may_wrap_up calls. (fold_binary_loc): Likewise. * fold-const.h (fold_overflow_warning): Removed. 2026-05-23 Daniel Barboza * fold-const.cc (fold_binary_loc): Likewise. (tree_expr_nonnegative_warnv_p): Renamed to tree_expr_nonnegative_p. Argument strict_overflow_p removed. (tree_expr_nonnegative_p): Removed. (RECURSE): Removed strict_overflow_p argument. (tree_unary_nonnegative_p): Local strict_overflow_p variable added to support the RECURSE() macro was removed. (tree_binary_nonnegative_p): Likewise. (tree_single_nonnegative_p): Likewise. (tree_call_nonnegative_p): Likewise. (tree_invalid_nonnegative_p): Likewise. (tree_binary_nonzero_p): Removed sub_strict_overflow_p variable from tree_expr_nonnegative_p call. * fold-const.h (tree_expr_nonnegative_p): Removed. (tree_expr_nonnegative_warnv_p): Renamed to tree_expr_nonnegative_p, removed strict_overflow_p argument. * tree-ssa-loop-manip.cc (create_iv): Removed ovf variable from tree_expr_nonnegative_p call. 2026-05-23 Daniel Barboza * fold-const.cc (tree_call_nonnegative_warnv_p): Renamed to tree_call_nonnegative_warnv_p. (tree_call_nonnegative_p): Removed strict_overflow_p flag. (tree_invalid_nonnegative_warnv_p): Renamed to tree_invalid_nonnegative_p. (tree_invalid_nonnegative_p): Removed strict_overflow_p flag. (tree_expr_nonnegative_warnv_p): Added ATTRIBUTE_UNUSED tag in the now unused strict_overflow_p argument. Removed strict_overflow_p call from tree_invalid_nonnegative_p. * fold-const.h (tree_call_nonnegative_warnv_p): Renamed to tree_call_nonnegative_p. (tree_call_nonnegative_p): Removed strict_overflow_p flag. * gimple-fold.cc (gimple_call_nonnegative_warnv_p): Renamed to gimple_call_nonnegative_p. (gimple_call_nonnegative_p): Removed strict_overflow_p flag. (gimple_stmt_nonnegative_warnv_p): Renamed to gimple_stmt_nonnegative_p. (gimple_stmt_nonnegative_p): Removed strict_overflow_p flag. * gimple-fold.h (gimple_stmt_nonnegative_warnv_p): Renamed to gimple_stmt_nonnegative_p. (gimple_stmt_nonnegative_p): Removed strict_overflow_p flag. * gimple-range-fold.cc (fold_using_range::fold_stmt): Removed strict_overflow_p flag from gimple_stmt_nonnegative_p. (fold_using_range::range_of_call): Likewise. 2026-05-23 Daniel Barboza * fold-const.cc (tree_single_nonnegative_warnv_p): Renamed to tree_single_nonnegative_p. (tree_single_nonnegative_p): Removed strict_overflow_p flag. (tree_expr_nonnegative_warnv_p): Removed strict_overflow_p flag from tree_single_nonnegative_p call. * fold-const.h (tree_single_nonnegative_warnv_p): Renamed to tree_single_nonnegative_p. (tree_single_nonnegative_p): Removed strict_overflow_p flag. * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Renamed to gimple_assign_nonnegative_p. (gimple_assign_nonnegative_p): Removed strict_overflow_p flag. (gimple_phi_nonnegative_warnv_p): Renamed to gimple_phi_nonnegative_p. (gimple_phi_nonnegative_p): Removed strict_overflow_p flag. (gimple_stmt_nonnegative_warnv_p): Removed strict_overflow_p flag from gimple_phi_nonnegative_p and gimple_assign_nonnegative_p calls. 2026-05-23 Daniel Barboza * fold-const.cc (tree_unary_nonnegative_warnv_p): Renamed to tree_unary_nonnegative_p. (tree_unary_nonnegative_p): Removed strict_overflow_p flag. (tree_expr_nonnegative_warnv_p): Removed strict_overflow_flag from tree_unary_nonnegative_p calls. * fold-const.h (tree_unary_nonnegative_warnv_p): Renamed to tree_unary_nonnegative_p. (tree_unary_nonnegative_p): Removed strict_overflow_p flag. * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Removed strict_overflow_flag from tree_unary_nonnegative_p calls. 2026-05-23 Daniel Barboza * fold-const.cc (tree_binary_nonnegative_warnv_p): Renamed to tree_binary_nonnegative_p. (tree_binary_nonnegative_p): Removed strict_overflow_p flag. Add a local variable with the same name for RECURSE() that we'll remove later. (tree_expr_nonnegative_warnv_p): Removed strict_overflow_p flag from tree_binary_nonnegative_p call. * fold-const.h (tree_binary_nonnegative_warnv_p): Renamed to tree_binary_nonnegative_p. (tree_binary_nonnegative_p): Removed strict_overflow_p flag. * gimple-fold.cc (gimple_assign_nonnegative_warnv_p): Likewise. 2026-05-23 Daniel Barboza * fold-const.cc (maybe_canonicalize_comparison_1): Removed strict_overflow_p flag. (maybe_canonicalize_comparison): Removed strict_overflow_p flag and all fold_overflow_warning calls. 2026-05-23 Daniel Barboza * fold-const.cc (tree_expr_nonzero_warnv_p): Renamed to tree_expr_nonzero_p and removed the strict_overflow_p flag. (tree_expr_nonzero_p): Removed it since it's now redundant with tree_expr_nonzero_warnv_p. (tree_unary_nonzero_p): Removed the local sub_strict_overflow_p flag from the tree_expr_nonzero_p call. (tree_binary_nonzero_p): Likewise. (tree_single_nonzero_p): Likewise. 2026-05-23 Daniel Barboza * fold-const.cc (tree_expr_nonzero_warnv_p): Removed strict_overflow_p flag. (tree_single_nonzero_warnv_p): Renamed to tree_single_nonzero_p. (tree_single_nonzero_p): Removed strict_overflow_p flag. * fold-const.h (tree_single_nonzero_warnv_p): Renamed to tree_single_nonzero_p. (tree_single_nonzero_p): Removed strict_overflow_p flag. * gimple-range-fold.cc (fold_using_range::range_of_address): Removed strict_overflow_p flag. (range_from_readonly_load): Likewise. * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise. * tree-ssa-phiopt.cc (absorbing_element_p): Likewise. * value-query.cc (range_query::get_tree_range): Likewise. 2026-05-23 Daniel Barboza * fold-const.cc (tree_expr_nonzero_warnv_p): Removed strict_overflow_p flag from tree_binary_nonzero_p call. (tree_binary_nonzero_warnv_p): Renamed to tree_binary_nonzero_p. (tree_binary_nonzero_p): Removed strict_overflow_p flag. * fold-const.h (tree_binary_nonzero_warnv_p): Renamed to tree_binary_nonzero_p. (tree_binary_nonzero_p): Removed strict_overflow_p flag. 2026-05-23 Daniel Barboza * fold-const.cc (mask_with_tz): Changed comment that describes tree_expr_nonzero_warnv_p warn on overflow behavior. (tree_expr_nonzero_warnv_p): Removed strict_overflow_p flag. (tree_unary_nonzero_warnv_p): Renamed to tree_unary_nonzero_p. (tree_unary_nonzero_p): Removed strict_overflow_p flag. * fold-const.h (tree_unary_nonzero_warnv_p): Renamed to tree_unary_nonzero_p. (tree_unary_nonzero_p): Removed strict_overflow_p flag. 2026-05-23 Daniel Barboza * fold-const.cc (extract_muldiv): Removed strict_overflow_p references, including temporary variables and comments. (extract_muldiv_1): Likewise. (fold_binary_loc): Likewise. 2026-05-23 Daniel Barboza * fold-const.cc (make_range_step): Likewise. (make_range): Likewise. (fold_range_test): Likewise. * fold-const.h (make_range): Likewise. (make_range_step): Likewise. * tree-ssa-reassoc.cc (init_range_entry): Likewise. 2026-05-23 Philipp Tomsich * config/riscv/bitmanip.md (slli_slli_uw): New pattern. (plus+and+ashift splitter): Turn into define_insn_and_split. (riscv_slli_uw): Renamed from *slliuw. 2026-05-23 Dimitar Dimitrov * config/pru/constraints.md (MULDST_REGS): Remove constraint. (MULSRC0_REGS): Ditto. (MULSRC1_REGS): Ditto. * config/pru/predicates.md (pru_muldst_operand): Compare register number directly. (pru_mulsrc0_operand): Ditto. (pru_mulsrc1_operand): Ditto. * config/pru/pru.h (enum reg_class): Remove single-reg classes. (REG_CLASS_NAMES): Ditto. (REGNO_REG_CLASS): Ditto. * config/pru/pru.md (mulsi3): Switch to hard register constraints. (umulsidi3): Ditto. 2026-05-23 Dimitar Dimitrov * config/pru/constraints.md: Prevent allocating r27 as SImode destination for mulsi3 pattern. * config/pru/pru.h (enum reg_class): Expand MULDST_REGS to allow fitting DImode. * config/pru/pru.md (umulsidi3): New pattern. (muldi3): Ditto. 2026-05-22 Disservin PR target/50481 * config/aarch64/aarch64.md (bitreverse2, bitreverseqi2, bitreversehi2): New expanders. * config/aarch64/aarch64-simd.md (bitreverse2): New expander. 2026-05-22 Wang Yaduo * config/riscv/riscv-protos.h (common_vector_cost): Add reduc_i8_cost through reduc_f64_cost and reduc_f{16,32,64}_ordered_cost. * config/riscv/riscv.cc: Set costs in rvv_vls_vector_cost and rvv_vla_vector_cost. * config/riscv/riscv-vector-costs.cc (is_reduction): New helper. (get_reduction_cost): New helper. (costs::adjust_stmt_cost): Use them for vec_to_scalar kind. 2026-05-22 Richard Sandiford PR rtl-optimization/125375 * cfgrtl.cc (flow_active_insn_p): Return true for clobbers. 2026-05-22 Jakub Jelinek PR tree-optimization/125399 * match.pd (BITREVERSE): Add BUILT_IN_BITREVERSE8. 2026-05-22 Steve Markgraf * config/rs6000/rs6000.h (TARGET_NO_LWSYNC): Add PROCESSOR_MPCCORE. 2026-05-22 Avinal Kumar PR tree-optimization/125050 * match.pd: (X != C1 ? -X : C2): Handle C1 being INT_MIN by emitting (signed)(-(unsigned)X) instead of bailing out. 2026-05-21 Konstantinos Eleftheriou * avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding): Replace return with flush-and-continue for complex memory operations. 2026-05-21 Konstantinos Eleftheriou * avoid-store-forwarding.cc: Include regs.h. (record_hard_reg_clobbers): New callback. (store_forwarding_analyzer::m_bb_live_after): New cache. (store_forwarding_analyzer::compute_bb_live_after): New helper. (store_forwarding_analyzer::process_store_forwarding): Add liveness check for hard registers clobbered by bit-insert sequences, using the cached per-BB live-out information, and evict the load_insn entry from the cache before delete_insn in the load-elim path. (store_forwarding_analyzer::avoid_store_forwarding): Clear the per-BB liveness cache on entry. 2026-05-21 Konstantinos Eleftheriou * avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding): Remove store_exprs_del vector and all associated tracking. Remove the same_range_as_removed check from the forwarding loop. Update block comment. 2026-05-21 Gerald Pfeifer * doc/install.texi (Prerequisites): The C++ front end also does not use extensions. 2026-05-21 Wilco Dijkstra PR target/123791 * config/aarch64/aarch64.cc (aarch64_cannot_force_const_mem): Remove forcing symbol references to const mem. (aarch64_can_use_per_function_literal_pools_p): Return false for large model. (aarch64_use_blocks_for_constant_p): Update comment. (initialize_aarch64_code_model): Allow PIC/PIE. (aarch64_classify_symbol): Use SYMBOL_SMALL_ABSOLUTE for constant references and SYMBOL_SMALL_GOT_4G for writeable data. 2026-05-21 Xi Ruoyao PR target/125320 * config/riscv/riscv.md (stack_protect_test_): Call riscv_output_move() instead of hard coding . (stack_protect_set_): Call riscv_output_move() instead of hard coding and . 2026-05-21 Martin Jambor * ipa-cp.cc (get_max_overall_size): Remove parameter CUR_SWEEP and its use. (decide_about_value): Adjust the call to get_max_overall_size. (decide_whether_version_node): Likewise. * params.opt (param_ipa_cp_eval_threshold): Initialize to 1100. 2026-05-21 Christoph Müllner * config/riscv/riscv.opt.urls: Regenerate. 2026-05-21 Christoph Müllner * common/config/riscv/riscv-common.cc (riscv_handle_option): Handle Zilsd alignment options and clear the Zilsd-specific explicit marker for -mstrict-align. * config/riscv/riscv-opts.h (riscv_zilsd_align_type): New enum. * config/riscv/riscv-protos.h (riscv_expand_zilsd_misaligned_move): Declare as void. (riscv_zilsd_valid_mem_p): Declare. * config/riscv/riscv.cc (riscv_zilsd_required_align): New functions. (riscv_zilsd_valid_mem_p): New function. (riscv_rtx_costs): Honor Zilsd alignment policy. (riscv_split_64bit_move_p): Split invalid Zilsd GPR accesses. (riscv_expand_zilsd_misaligned_move): New function. (riscv_can_inline_p): Check effective Zilsd alignment policy. (riscv_override_options_internal): Reject explicit Zilsd alignment options for RV64. * config/riscv/riscv.md (movmisaligndi): New expander. (movmisaligndf): New expander. * config/riscv/riscv.opt: Add -mzilsd-word-align and -mzilsd-strict-align. * config/riscv/riscv.opt.urls: Regenerate. * doc/invoke.texi: Document the new options. 2026-05-21 Christoph Müllner * config/riscv/andes_vector.h: Define intrinsic detection macros. * config/riscv/riscv_bitmanip.h: Likewise. * config/riscv/riscv_crypto.h: Likewise. * config/riscv/riscv_vector.h: Likewise. * config/riscv/sifive_vector.h: Likewise. * doc/extend.texi: Document RISC-V intrinsic detection macros. 2026-05-21 Christoph Müllner * common/config/riscv/riscv-ext-bitmask.def: Add zicfiss. * config/riscv/riscv-ext.def: Add C API bit position for zicfiss. 2026-05-21 Christoph Müllner * common/config/riscv/riscv-ext-bitmask.def: Add supm, zicntr, zihpm, zfbfmin, zvfbfmin, zvfbfwma, zicbom, zaamo, zalrsc, zabha, zalasr, zicbop, and zicfilp. * config/riscv/riscv-ext.def: Add C API bit positions for supm, zicntr, zihpm, zfbfmin, zvfbfmin, zvfbfwma, zicbom, zaamo, zalrsc, zabha, zalasr, zicbop, and zicfilp. 2026-05-21 Christoph Müllner * common/config/riscv/riscv-ext-bitmask.def: Add b, e, h, zilsd, zclsd, zcmp, zifencei, and zmmul. 2026-05-21 Georg-Johann Lay PR target/121343 * config/avr/avr.md (ctz_ffs, cxz_ffs): New code iterators. (clzhi2, ctzhi2, ffshi2, clzsi2, ctzsi2, ffssi2, bswapsi2): New insn-and-split's from former expanders. 2026-05-21 Xi Ruoyao PR target/50481 * config/loongarch/loongarch.md (@rbit2): Rename to ... (@bitreverse2): ... this. (rbithi2): Rename to ... (bitreversehi2): ... this. (rbitqi2): Rename to ... (bitreverseqi2): ... this. (rbitsi_extended): Rename to ... (bitreversesi2_extended): ... this. 2026-05-20 Shivam Gupta PR tree-optimization/112533 * match.pd: Add integral narrowing eq/ne to XOR-against-zero rule for (T)(x) == (T)(y) where precision(T) < precision(x). 2026-05-20 Richard Sandiford * cselib.h (references_value_p): Remove only_useless parameter. * cselib.cc (references_value_p): Likewise. Use rtx iterators. (invariant_or_equiv_p): Update accordingly. * postreload.cc (reload_cse_simplify_set): Likewise. * var-tracking.cc (reverse_op): Likewise. 2026-05-20 Richard Sandiford * cselib.h (cselib_val::HASH_MASK): New static constant. (cselib_val::hash): Turn into a 30-bit bitfield. (cselib_val::in_preserved_table_p): New bitfield. (cselib_val::all_locs_preserved_p): Likewise. * cselib.cc: Include rtl-iter.h. (cselib_preserved_prune_list): New variable. (cselib_clear_all_locs_preserved): New function. (new_elt_loc_list): Call it when modifying a value's location list. (preserve_constants_and_equivs): Set in_preserved_table_p when moving a value to the preserved hash table. Also push such values onto cselib_preserved_prune_list. (cselib_find_slot): Mask out the upper 2 bits of the hash. (discard_useless_locs): New overload, split out from original hash table traverse callback. Use an inline rtl iteration instead of calling references_value_p. Record whether the retained location only reference preserved value. (remove_useless_values): Iterate over cselib_preserved_prune_list instead of the hash table itself. Remove a value from the list if all remaining locations only reference preserved value. (new_cselib_val): Initialize the new bitfields. (cselib_finish): Free cselib_preserved_prune_list. 2026-05-20 Richard Sandiford * cselib.cc (new_elt_loc_list): Cache CSELIB_VAL_PTR. 2026-05-20 Nathan Sidwell * config/riscv/riscv-builtins.cc (enum riscv_builtin_type): Delete. (struct riscv_builtin_description): Replace builtin_type by bool. Reorder fields for better packing. (RISCV_BUILTIN_NO_PREFIX): Remove BUILTIN_TYPE arg. (RISCV_BUILTIN): Likewise, call RISCV_BUILTIN_NO_PREFIX. (DIRECT_BUILTIN): Adjust RISCV_BUILTIN invocation. (DIRECT_NO_TARGET_BUILTIN): Delete. (riscv_builtins): Make non-constant. Adjust initializers. (riscv_init_builtins): Compute no_target from function type. (riscv_expand_builtin): Simplify. * config/riscv/andes.def: Adjust. * config/riscv/corev.def: Adjust. * config/riscv/riscv-cmo.def: Adjust. * config/riscv/riscv-scalar-crypto.def: Adjust. 2026-05-20 Uros Bizjak * config/i386/x86-tune.def (X86_TUNE_SHIFT1): Remove. * config/i386/i386.h (TARGET_SHIFT1): Remove. * config/i386/i386.md (*ashl3_1): Remove TARGET_SHIFT1-gated implicit-1 encoding and simplify length_immediate attribute. (*ashlsi3_1_zext): Likewise. (*ashlhi3_1): Likewise. (*ashlqi3_1): Likewise. (*ashl3_1_slp): Likewise. (*ashl3_cmp): Likewise. (*ashlsi3_cmp): Likewise. (*3_1): Likewise. (*si3_1_zext): Likewise. (*3_1_slp): Likewise. (*3_cconly): Likewise. (*qi_ext_1): Likewise. (3_carry): Likewise. 2026-05-20 Michiel Derhaeg PR target/115650 * config/arc/arc.cc (legitimate_small_data_address_p): Check offset size. 2026-05-20 Jakub Jelinek PR target/125373 * config/i386/i386.md (Convert imul by three, five and nine into lea define_peephole2s): Use index_reg_operand instead of register_operand. 2026-05-20 Jakub Jelinek PR target/125357 * config/i386/i386-expand.cc (ix86_expand_vec_perm): For TARGET_AVX one_operand_shuffle handle also V2DImode and V2DFmode using vpaddq and vpermilpd. 2026-05-20 liuhongt * tree-ssa-loop-unswitch.cc (estimate_loop_insns): New function. (init_loop_unswitch_info): Do not select an outer loop for unswitching when the duplicated outer-body size exceeds param_max_unswitch_insns. 2026-05-20 Zhou Qiankang PR target/125362 * config/loongarch/t-loongarch (TM_H): Add common/config/loongarch/cpu-features.h. 2026-05-19 Pengxuan Zheng PR target/123748 * config/aarch64/aarch64-simd.md (vec_packs_float_v2di): New pattern. 2026-05-19 Christopher Bazley * config/aarch64/aarch64.cc (aarch64_call_scalar_result_in_simd_reg_p): New function to determine probabilistically whether a gcall produces a scalar result in a SIMD/FP register. (aarch64_scalar_op_to_vec_p): New function to determine whether or not to add scalar_to_vec_cost per scalar operand from which a vector is to be constructed. (aarch64_external_adjust_stmt_cost): New function to adjust the cost of an SLP tree node for a vec_construct that is fed by values defined outside the vectorized region. (aarch64_vector_costs::add_stmt_cost): Call the new aarch64_external_adjust_stmt_cost function if we have an SLP node and a vector type. 2026-05-19 Paul-Antoine Arras Chung-Lin Tang Sandra Loosemore * fold-const.cc (operand_compare::operand_equal_p): Handle OMP_ARRAY_SECTION. * gimplify.cc (gimplify_scan_omp_clauses): Call omp_remove_duplicate_maps after partial clause expansion. * omp-general.cc (omp_remove_duplicate_maps): New function. * omp-general.h (omp_remove_duplicate_maps): Declare. * omp-low.cc (install_var_field): Add new 'tree key_expr = NULL_TREE' default parameter. Set splay-tree lookup key to key_expr instead of var if key_expr is non-NULL. Adjust call to install_parm_decl. Update comments. (scan_sharing_clauses): Use clause tree expression as splay-tree key for map/to/from and OpenACC firstprivate cases when installing the variable field into the send/receive record type. (lower_oacc_reductions): Adjust to find map-clause of reduction variable, then create receiver-ref. (lower_omp_target): Adjust to lookup var field using clause expression. 2026-05-19 Jakub Jelinek PR other/125348 * config/i386/i386-expand.cc (ix86_expand_builtin): Fix diagnostic typo, forth -> fourth. 2026-05-19 Georg-Johann Lay PR target/50481 * config/avr/avr.md (bitreverseqi2): New insn-and-split. (*bitreverseqi2): New insn. 2026-05-19 Roger Sayle PR target/90483 PR libstdc++/118416 * config/i386/i386-expand.cc (ix86_expand_sse_ptest): Refactor with optimizations for PTESTZ*, PTESTC* and PTESTNZC*, including transforming ptestz(x,-1) into ptestz(x,x). 2026-05-19 Christophe Lyon PR target/124870 * config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl) (vldrq_gather_base_impl): Fix call_properties. 2026-05-19 Andrew Pinski * cfgrtl.cc: Don't include gimplify.h or gimplify-me.h. * cgraphbuild.cc: Likewise. * emit-rtl.cc: Likewie. * tree-ssa-dom.cc: Likewise. * tree-ssa-dse.cc: Likewise. * tree-ssa-loop-im.cc: Likewise. * tree-ssa-loop-niter.cc: Likewise. * tree-ssa-loop-unswitch.cc: Likewise. * tree-ssa-math-opts.cc: Likewise. * tree-ssa-phiopt.cc: Likewise. * tree-ssa-phiprop.cc: Likewise. * tree-ssa-pre.cc: Likewise. * tree-ssa-propagate.cc: Likewise. * tree-ssa-sccvn.cc: Likewise. * gimplify.h (unshare_expr): Remove. (unshare_expr_without_location): Remove. (copy_if_shared): Remove. * tree.h (unshare_expr): New decl. (unshare_expr_without_location): Likewise. (copy_if_shared): Likewise. * gimplify.cc (mostly_copy_tree_r): Moved to tree.cc. (copy_if_shared_r): Likewise. (copy_if_shared): Likewise. (unshare_expr): Likewise. (prune_expr_location): Likewise. (unshare_expr_without_location): Likewise. * tree.cc (mostly_copy_tree_r): Moved from gimplify.cc (copy_if_shared_r): Likewise. (copy_if_shared): Likewise. (unshare_expr): Likewise. (prune_expr_location): Likewise. (unshare_expr_without_location): Likewise. 2026-05-19 Jakub Jelinek PR target/125357 * config/i386/i386-expand.cc (ix86_expand_vec_perm): For one_operand_shuffle if TARGET_AVX and not TARGET_AVX512F use vpermilps for V4SImode/V4SFmode. Formatting fix. 2026-05-19 Georg-Johann Lay * config/avr/avr.md (bitreversehi2, bitreversesi2): New insn_and_split. (*bitreversehi2.libgcc, *bitreversesi2.libgcc): New insns. 2026-05-19 Jakub Jelinek PR target/50481 * optabs.cc (widen_bswap): Add UNOPTAB argument and use it instead of hardcoded bswap_optab. Rename to ... (widen_bswap_or_bitreverse): ... this. (expand_doubleword_bswap): Add UNOPTAB argument and use it instead of hardcoded bswap_optab. Rename to ... (expand_doubleword_bswap_or_bitreverse): ... this. (expand_bitreverse): Use widen_bswap_or_bitreverse and expand_doubleword_bswap_or_bitreverse. (expand_unop): Adjust widen_bswap and expand_doubleword_bswap callers to use new names and add an extra bswap_optab argument. 2026-05-19 H.J. Lu PR target/125355 * config/i386/i386-expand.cc (ix86_expand_movmem): Replace optimize_function_for_size_p with optimize_insn_for_size_p. 2026-05-19 Robin Dapp PR target/125097 * config/riscv/riscv.cc (riscv_legitimize_move): Emit 32-bit vec_extracts right away. 2026-05-19 Robin Dapp * config/riscv/autovec.md (): Remove. * config/riscv/riscv-protos.h (expand_vec_cmp_float): Add mask and else arguments. * config/riscv/riscv-v.cc (expand_vec_cmp): Add mask and else arguments. (expand_vec_cmp_float): Ditto. * config/riscv/vector-iterators.md: Remove iterators. 2026-05-19 Peter Bergner Jeevitha Palanisamy * config/rs6000/amo.h: Add missing atomic memory operations. * doc/extend.texi (PowerPC Atomic Memory Operation Functions): Document new functions. 2026-05-19 Andi Kleen PR target/125351 * config/i386/i386.md: Use alternative to handle masm ptwrite syntax. 2026-05-18 Xin Wang * tree-ssa-loop-split.cc (fix_loop_bb_probability): Rename parameters from true_edge/false_edge to loop1_edge/loop2_edge and scale both loops directly from their semantic edge probabilities. (split_loop): Derive loop1_edge and loop2_edge from initial_true. Use them for loop1_prob, fix_loop_bb_probability, and iteration estimate scaling. 2026-05-18 Wang Yaduo * config/riscv/riscv-cores.def: Add xt-c9501fdvt tune and core. * doc/riscv-mcpu.texi: Regenerated. * doc/riscv-mtune.texi: Regenerated. 2026-05-18 Jeff Law * config/riscv/riscv.cc (riscv_rtx_costs): Properly cost pack insns for Zbkb. * config/riscv/riscv.md (zero_extendsidi2): Expand into shift pairs when the appropriate instructions are not available. (zero_extendhi2): Simlarly. (*zero_extendsidi2_internal): Make a simple define_insn. Only handle MEM sources. (*zero_extendhi2): Similarly. (zero_extendsidi2_shifted): Turn into a define_split and generalize to handle more constants. * config/riscv/predicates.md (dimode_shift_operand): New predicate. 2026-05-18 Jeff Law * ext-dce.cc (carry_backpropagate): Handle AND and IOR with a constant argument. 2026-05-18 David Malcolm * doc/analyzer.texi: Update for change in param name. * doc/params.texi: Likewise. Clarify wording. 2026-05-18 David Malcolm * dump-context.h (dump_context::emit_optinfo): "info" is non-null, so pass it by reference. * dumpfile.cc (dump_context::end_any_optinfo): Update for above change. (dump_context::emit_optinfo): Likewise. * optinfo-emit-json.cc: Update throughout to eliminate naked "new" and "delete" in favor of std::make_unique and unique_ptr. Drop redundant dtor. Use nullptr rather than NULL. Pass by const-reference rather than by const-pointer in the places that require non-null. * optinfo-emit-json.h: Likewise. * optinfo.cc (optinfo::emit_for_opt_problem): Update for above changes. 2026-05-18 Yoshinori Sato * config/rx/rx.cc (rx_gen_move_template): Select the mode with the smallest size for the mov instruction. 2026-05-18 Kito Cheng * expr.cc (calculate_reversed_crc): New function. (assemble_reversed_crc_table): New function. (generate_reversed_crc_table): New function. (calculate_table_based_reversed_CRC): New function. (expand_reversed_crc_table_based): Remove gen_reflecting_code parameter. Use calculate_table_based_reversed_CRC. * expr.h (expand_reversed_crc_table_based): Update prototype. * builtins.cc (expand_builtin_crc_table_based): Update call. * internal-fn.cc (expand_crc_optab_fn): Update call. * config/aarch64/aarch64.md (crc_rev4): Update call. * config/i386/i386.md (crc_revsi4): Update call. * config/loongarch/loongarch.md (crc_revsi4): Update call. Remove local rbit lambda. * config/riscv/bitmanip.md (crc_rev4): Update call. Remove TARGET_ZBKB case. * config/riscv/riscv.cc (generate_reflecting_code_using_brev): Remove. * config/riscv/riscv-protos.h (generate_reflecting_code_using_brev): Remove declaration. 2026-05-18 Robin Dapp * config/riscv/riscv.cc (riscv_hard_regno_mode_ok): Remove else. 2026-05-18 Robin Dapp * config/riscv/riscv.cc (riscv_check_target_clone_version): Fix format specifier. 2026-05-18 Jakub Jelinek PR target/50481 * config/i386/i386-protos.h (ix86_expand_gfni_bitreverse): Declare. * config/i386/i386-expand.cc (ix86_expand_gfni_bitreverse): New function. * config/i386/i386.md (bitreverse2): New expander. 2026-05-18 H.J. Lu PR target/125355 * config/i386/i386-expand.cc (ix86_expand_movmem): Return false for -Os. 2026-05-17 Andrew Pinski * tree-ssa-uncprop.cc (associate_equivalences_with_edges): For switches info only store the case low value to be recorded as the only value. Add comments. 2026-05-17 Andrew Pinski * ipa-icf-gimple.cc (func_checker::compare_gimple_switch): Remove the check on CASE_LABEL_EXPR since it is redundant. 2026-05-17 Andrew Pinski * tree-ssa-dom.cc (record_edge_info): For switches info only store the case low value to be recorded as the only value. Add comments. 2026-05-16 Jakub Jelinek PR target/50481 * match.pd (BITREVERSE): New define_operator_list. Use it next to BSWAP for a subset of bswap simplifications. 2026-05-16 Jakub Jelinek PR target/50481 * doc/extend.texi (__builtin_bitreverse32, __builtin_bitreverse64): Tweak wording for consistency with __builtin_bswap*. (__builtin_bitreverse128): Document. * builtins.def (BUILT_IN_BITREVERSE128): New. * builtins.cc (expand_builtin): Handle also BUILT_IN_BITREVERSE128. (is_inexpensive_builtin): Likewise. * fold-const-call.cc (fold_const_call_ss): Handle also CFN_BUILT_IN_BITREVERSE128. * fold-const.cc (tree_call_nonnegative_warnv_p): Likewise. * tree-ssa-ccp.cc (evaluate_stmt): Handle also BUILT_IN_BITREVERSE128. * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p): Handle also CFN_BUILT_IN_BITREVERSE128. (cond_removal_in_builtin_zero_pattern): Likewise. 2026-05-16 Jakub Jelinek PR target/50481 * tree-ssa-ccp.cc (evaluate_stmt): Fix up BUILT_IN_BITREVERSE{8,16,32,64} handling. 2026-05-16 Roger Sayle Hongtao Liu * config/i386/i386-features.cc (scalar_chain): If the chain starts with a register-to-register move from a hard register, then the hard register's defs don't need to converted. (timode_scalar_chain::compute_convert_gain): Provide costs for hard_reg-to-pseudo and pseudo-to-hard_reg moves. Tweak speed cost of timode_concatdi_p moves. (timode_scalar_chain::convert_insn): Add support for hard_reg-to-pseudo and pseudo-to-hard_reg TImode transfers. (timode_scalar_to_vector_candidate_p): Likewise. 2026-05-16 Shivam Gupta PR tree-optimization/112095 * match.pd: Simplify ((~x) & y) ^ (x | y) to x and ((~x) | y) ^ (x & y) to ~x. 2026-05-16 Timo Rothenpieler * config/i386/mingw-pthread.h: rename to generic config/mingw/mingw-pthread.h * config.gcc [aarch64-*-mingw*]: Fix support for posix threading on aarch64 mingw targets. * config/mingw/mingw-pthread.h: New file. 2026-05-15 Andrew Pinski * tree-ssa-operands.cc (operands_scanner::parse_ssa_operands): Process index of the gswitch only. 2026-05-15 Andrew Pinski PR tree-optimization/125290 * tree-cfg.cc (group_case_labels_stmt): Remove code that was added to remove `cases` that goto blocks of unreachable. * tree-ssa-forwprop.cc (optimize_unreachable): Remove the comment about switch cases being handled. 2026-05-15 John David Anglin * config/pa/pa.h (ASM_PREFERRED_EH_DATA_FORMAT): Use DW_EH_PE_aligned encoding on 64-bit HP-UX. 2026-05-15 H.J. Lu PR rtl-optimization/125321 * function-abi.cc (function_abi_aggregator::caller_save_regs): Return the enabled registers. 2026-05-15 Xi Ruoyao PR tree-optimization/125291 * tree-scalar-evolution.cc (simplify_peeled_chrec): Sign-extend the step for peeled converted IV. 2026-05-15 Xi Ruoyao * config/loongarch/loongarch.md (spaceship4): New define_expand. 2026-05-15 Abhishek Kaushik PR target/123924 * match.pd: Allow conversions in FMA-to-FNMA fold. 2026-05-15 Richard Biener * tree-vectorizer.h (vector_costs::add_slp_cost): New. * tree-vectorizer.cc (vector_costs::add_slp_cost): New default version. * tree-vect-slp.cc (add_slp_costs): Helper for dispatching a cost vector in SLP chunks. (vect_slp_analyze_operations): Adjust. (li_cost_vec_cmp): Likewise. (vect_bb_vectorization_profitable_p): Likewise. 2026-05-15 Richard Biener PR tree-optimization/125296 * tree-ssa-forwprop.cc (forward_propagate_addr_expr_1): Preserve alignment of the original access. 2026-05-15 Jakub Jelinek PR target/125308 * config/i386/sse.md (*minmax3_4): Force also operands[2] into a REG. 2026-05-15 Disservin Jakub Jelinek PR target/50481 * builtin-types.def (BT_FN_UINT8_UINT8): New. * builtins.def (BUILT_IN_BITREVERSE8, BUILT_IN_BITREVERSE16, BUILT_IN_BITREVERSE32, BUILT_IN_BITREVERSE64): New builtins. * builtins.cc (expand_builtin, is_inexpensive_builtin): Handle bitreverse builtins. * fold-const-call.cc (fold_const_call_ss): Fold bitreverse builtins. * fold-const.cc (tree_call_nonnegative_warnv_p): Handle bitreverse builtins. * optabs.def (bitreverse_optab): New. * optabs.cc (expand_bitreverse): New function. (expand_unop): Use it for bitreverse_optab. * tree-ssa-ccp.cc (evaluate_stmt): Handle bitreverse builtins. * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p, cond_removal_in_builtin_zero_pattern): Likewise. * doc/extend.texi: Document __builtin_bitreverse{8,16,32,64}. * doc/md.texi (bitreverse2): Document. 2026-05-15 Jakub Jelinek PR c++/125081 * doc/invoke.texi (Wconstant-logical-operand): Document. 2026-05-14 Andi Kleen PR target/124316 * config/i386/i386.md (ptwrite): Add explicit mode to instruction. 2026-05-14 Xi Ruoyao PR rtl-optimization/96692 * config/loongarch/loongarch.md (define_split): New splitters turning a ^ b ^ (a | c) => (c &~ a) ^ b. 2026-05-14 Jeff Law * config/riscv/riscv-v.cc (expand_const_vector_stepped): Drop unused SRC parameter. All callers changed. (expand_const_vector_interleaved_stepped_npatterns): Likewise. (expand_const_vector): Corresponding changes. 2026-05-14 Alex Coplan * doc/rtl.texi (Machine Modes): Update description of GET_MODE_MASK to use HOST_BITS_PER_WIDE_INT instead of HOST_BITS_PER_INT as the upper limit of the input mode's bitsize. 2026-05-14 Tobias Burnus * langhooks.cc (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt, lhd_omp_deep_mapping): Improve interface comment. * langhooks.h (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt, lhd_omp_deep_mapping): Likewise 2026-05-14 Georg-Johann Lay PR target/125194 * config/avr/avr.cc (avr_no_call_main_p): Remove variable... (avr_file_end): ...and code that uses it. (avr_insert_attributes): Same. Add "used" to main attributes when -mno-call-main. * config/avr/gen-avr-mmcu-specs.cc (print_mcu): Emit code for link_no_call_main specs. * config/avr/specs.h (LINK_SPEC): Add %(link_no_call_main). 2026-05-13 Zhongyao Chen PR target/125215 * config/riscv/riscv-v.cc (expand_const_vector_interleaved_stepped_npatterns): Remove hi/lo optimization and always use the merge fallback. 2026-05-13 Tamar Christina * tree-chrec.cc (chrec_convert_1): Fold unsigned CHREC converts. 2026-05-13 Roger Sayle Uros Bizjak PR target/32803 * config/i386/i386.md (peephole2): Don't transform xorl;movb into movzb with -Oz. (peephole2): Convert movl into xorl;movb (strict_low_part) with -Oz. (peephole2): Likewise, convert movl into xorl;movb [abcd]h with -Oz. 2026-05-13 Richard Biener * tree-vect-stmts.cc (vectorizable_store): Record ls_type for VMAT_STRIDED_SLP. (vectorizable_load): Likewise. 2026-05-13 Richard Biener * tree-vect-stmts.cc (vectorizable_store): Set slp_node->data and SLP_TREE_TYPE only on success. (vectorizable_load): Likewise. Move one validity check early. 2026-05-13 Jeevitha Palanisamy PR target/122665 * config/rs6000/vsx.md (smul3_highpart, umul3_highpart): Replace shift-based patterns with smul_highpart and umul_highpart RTL codes and use altivec_register_operand. 2026-05-13 Reshma Roy * match.pd: Add new popcount pattern variants from Hacker's Delight. 2026-05-13 H.J. Lu Uros Bizjak PR target/120870 * config/i386/i386.cc (ix86_save_reg): Return true for DRAP register early at entry. (find_drap_reg): Use R11_REG in preserve_none functions in 64-bit mode. 2026-05-13 Tobias Burnus * omp-general.cc (omp_runtime_api_procname): Add omp_control_tool. 2026-05-12 Heiko Eißfeldt PR middle-end/124651 * gimple-warn-recursion.cc (find_function_exit): replace recursive calls with iteration for lower stack usage 2026-05-12 John David Anglin * config/pa/pa64-hpux.h (MD_EXEC_PREFIX): Define to empty string. 2026-05-12 Christopher Bazley * common.opt: Add Wzero-init-padding-bits=. * common.opt.urls: Regenerated. * doc/invoke.texi: Document Wzero-init-padding-bits=. * expr.cc (categorize_ctor_elements_1): Update new struct type ctor_completeness instead of an integer to indicate presence of padding or missing fields in a constructor. Instead of setting -1 upon discovery of padding bits in both structs and unions, set separate flags to indicate the type of padding bits. (categorize_ctor_elements): Update the type and documentation of the p_complete parameter. (mostly_zeros_p): Use new struct type ctor_completeness when calling categorize_ctor_elements. (all_zeros_p): Use new struct type ctor_completeness when calling categorize_ctor_elements. * expr.h (struct ctor_completeness): New struct type to replace an an integer that could take the value -1 ('all fields are initialized, but there's padding'), 0 ('fields are missing') or 1 ('all fields are initialized, and there's no padding'). Named bool members make the code easier to understand and make room to disambiguate struct padding bits from union padding bits. (categorize_ctor_elements): Update the function declaration to use the new struct type in the last parameter declaration. * gimplify.cc (gimplify_init_constructor): Replace use of complete_p != 0 ('all fields are initialized') with !sparse, replace use of complete == 0 ('fields are missing') with sparse, and replace use of complete <= 0 ('fields are missing' or 'all fields are initialized, but there's padding') with sparse || padded_union or padded_non_union. Trigger new warnings if storage for the object is not zeroed but padded_union or padded_non_union is set (because this combination implies possible non-zero padding bits). 2026-05-12 Martin Jambor PR tree-optimization/124151 * tree-sra.cc (build_user_friendly_ref_for_offset): Added parameters CUR_SIZE and EXP_SIZE. Added code passing the correct CUR_SIZE and checking it against EXP_SIZE. Removed unused code for the case when EXP_TYPE was NULL_TREE. (create_artificial_child_access): Adjusted the call to build_user_friendly_ref_for_offset. (propagate_subaccesses_from_rhs): Likewise. (propagate_subaccesses_from_rhs): Removed a check that the size of lchild is a multiple of BITS_PER_UNIT. (propagate_subaccesses_from_lhs): Likewise. 2026-05-12 Yoshinori Sato PR target/113948 * config/rx/rx-protos.h (rx_split_double_move): New helper prototype. (rx_relax_double_operands): Likewise. * config/rx/rx.cc (rx_legitimize_address): Add expand complex case. (rx_is_legitimate_address): Add double word case. (rx_gen_move_template): Fix operation size in unsigned extend. (rx_gen_move_template): Remove DImode and DFmode. (rx_get_stack_layout): Fix for frame size calculation. (rx_initial_elimination_offset): The calculation method has been changed to one that supports LRA. (rx_hard_regno_nregs): Use CEIL. (rx_hard_regno_mode_ok): Add ATTRIBUTE_UNUSED. (rx_get_subword): New. Double word move helper. (rx_split_double_move): Likewise. (rx_relax_double_operands): Likewise. * config/rx/rx.h (reg_class): Add CC for all regsisters. (CLASS_MAX_NREGS): Remove. * config/rx/rx.md (mov): Replace copy_to_mode_reg to force_reg. (movdi): Limit the arguments to make register allocation easier. (movdf): Likewise. (movdi_internal): New. (movdf_internal): New. (addsi3_pid): New. Handling UNSPEC_PID_ADDR. (addsi3_lra): New. alternative addptrsi3. (ashlsi3_lra): Likewise. 2026-05-12 Lili Cui Hongtao Liu * tree-vect-slp.cc (vect_analyze_slp_reduction): Don't bail out early when SLP discovery limit is exhausted; only guard the chain analysis which may build multi-lane trees. Single-lane fallback does not consume limit and should always be attempted. 2026-05-12 Lili Cui Hongtao Liu * tree-vect-slp.cc (vect_build_slp_tree_1): Use unified first_commutative_argument interface to allow commutative operand swap for both tree codes and internal functions (e.g. .COND_ADD) in SLP reduction matching. 2026-05-12 Richard Biener * tree-vect-stmts.cc (get_load_store_type): Pass temporary to vect_use_grouped_gather, only set ls_type when that succeeded. 2026-05-12 Artemiy Volkov PR middle-end/125259 * match.pd: Fix the view_convert (BIT_FIELD_REF) pattern. 2026-05-12 Alexandre Oliva * config.gcc [aarch64*-wrs-vxworks*] (tm_file): Add aarch64/aarch64-errata.h. * config/aarch64/aarch64-vxworks.h (LINK_SPEC): Add AARCH64_ERRATA_LINK_SPEC. (CC1_SPEC, CC1PLUS_SPEC): Add AARCH64_ERRATA_COMPILE_SPEC. 2026-05-12 Naveen * fold-const-call.cc (fold_internal_fn_sat_add): New function. (fold_const_call): Handle CFN_SAT_ADD. * match.pd: Add simplifications for x SAT_ADD 0 == x. * genmatch.cc (commutative_op): Add CFN_SAT_ADD. 2026-05-12 Naveen * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_imm_low): Change return type to const char *. * config/aarch64/aarch64.cc (aarch64_output_simd_mov_imm_low): Likewise. 2026-05-11 William D. Jones PR target/120077 * config/lm32/lm32.cc: Enable LRA after diff testing showed minimal issues. 2026-05-11 Jerry DeLisle * flag-types.h (gfc_fcoarray): Add GFC_FCOARRAY_SHARED. 2026-05-11 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (FPreg_neg_scaled_simm12b, convert_SF_const, constantsynth_pass1, litpool_set_src_1, litpool_set_src): Change each call to validate_change() and apply_change_group() to trigger an ICE if the result is not true. 2026-05-11 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_can_eliminate_callee_saved_reg_p): Change the arguments that return values from being passed by pointer to C++ reference. (xtensa_expand_prologue): Adjust the call to xtensa_can_eliminate_callee_saved_reg_p() to match the above changes. 2026-05-11 Takayuki 'January June' Suwa * config/xtensa/xtensa.h (HONOR_REG_ALLOC_ORDER): New macro definition. 2026-05-11 Tamar Christina * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE): Add AARCH64_EXTRA_TUNE_NARROW_GP_WRITES. 2026-05-11 Pan Li * Makefile.in: Add match-sat-alu.pd as dependency. * match.pd: Remove saturation alu related patterns. * match-sat-alu.pd: Add new file for saturation alu patterns. 2026-05-11 Oleg Tolmatcev * config/i386/cygming.h (TARGET_SEH): Keep SEH enabled for all 64-bit Windows functions when unwind tables are requested. 2026-05-11 Richard Biener PR tree-optimization/125250 * tree-ssa-loop-im.cc (execute_sm): For modes that cannot transfer bits, _Bool and bitfield accesses force the multi-threaded model. 2026-05-11 LIU Hao PR target/53929 * config/mingw/winnt.cc (mingw_pe_file_end): Use `ASM_OUTPUT_LABELREF` to emit `name`. 2026-05-11 Richard Biener PR target/125174 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Cost calls as 10 times FMA. 2026-05-11 Stefan Schulze Frielinghaus PR rtl-optimization/121426 * combine.cc (recog_for_combine_1): Reject insns which make use of hard register constraints. 2026-05-11 Naveen * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_imm_low): New. (aarch64_const_vec_fmov_p): New. * config/aarch64/aarch64-simd.md (mov): Do not expand constant vectors handled by aarch64_const_vec_fmov_p into VDUP. (*aarch64_simd_mov): Add Dc alternatives for FMOV based SIMD constant moves. (*aarch64_simd_mov): Likewise. * config/aarch64/aarch64.cc (aarch64_const_vec_fmov_p): New function. (aarch64_output_simd_mov_imm_low): New function. * config/aarch64/constraints.md (Dc): New constraint. 2026-05-11 Boudewijn van der Heide PR rtl-optimization/125209 * combine.cc (make_compound_operation_int): Return NULL_RTX if we got CLOBBER. 2026-05-11 Shreya Munnangi Jeff Law PR rtl-optimization/80770 * rtl.h (simplify_context::simplify_ior_with_common_term): Add new method. (simplify_context::simplify_binary_operation_1): Use new method. * simplify-rtx.cc (simplify_context::simplify_ior_with_common_term): New method. 2026-05-10 Jørgen Kvalsvik * gcov.cc (json_set_prime_path_coverage): Read arc.true_value. 2026-05-10 H.J. Lu PR target/125238 * config/i386/i386-features.cc (ix86_broadcast_inner): Set kind to X86_CSE_CONST_VECTOR if the vector load can be converted to constant integer load. 2026-05-09 Michiel Derhaeg PR target/125217 * config/riscv/riscv.cc (riscv_gen_multi_pop_insn): Rename variable. (riscv_expand_epilogue): Don't emit cm.popret with shadow stack. 2026-05-09 Andrew Pinski PR middle-end/117871 * cfghooks.cc (cfg_hooks): Change the type to be a pointer to a const struct cfg_hooks. (get_cfg_hooks): Return the current pointer rather the struct. (set_cfg_hooks): Change the argument type and set the cfg_hooks directly to it. * cfghooks.h (gimple_cfg_hooks): Constify. (rtl_cfg_hooks): Likewise. (cfg_layout_rtl_cfg_hooks): Likewise. (get_cfg_hooks): Update declration. (set_cfg_hooks): Likewise. * cfgrtl.cc (rtl_cfg_hooks): Constify. (cfg_layout_rtl_cfg_hooks): Likewise. * sel-sched-ir.cc (orig_cfg_hooks): Change to a pointer. (sel_create_basic_block): Update for orig_cfg_hooks being a pointer. (sel_register_cfg_hooks): Update for the constification of cfg_hooks. * tree-cfg.cc (gimple_cfg_hooks): Constify. 2026-05-09 Andrew Pinski * cfghooks.cc (current_ir_name): New function. (dump_bb_for_graph): Use current_ir_name instead of accessing the name field. (dump_bb_as_sarif_properties): Likewise. (redirect_edge_and_branch): Likewise. (can_remove_branch_p): Likewise. (redirect_edge_and_branch_force): Likewise. (split_block_1): Likewise. (move_block_after): Likewise. (delete_basic_block): Likewise. (split_edge): Likewise. (create_basic_block_1): Likewise. (can_merge_blocks_p): Likewise. (predict_edge): Likewise. (predicted_by_p): Likewise. (merge_blocks): Likewise. (make_forwarder_block): Likewise. (force_nonfallthru): Likewise. (can_duplicate_block_p): Likewise. (duplicate_block): Likewise. (block_ends_with_call_p): Likewise. (block_ends_with_condjump_p): Likewise. (flow_call_edges_add): Likewise. * cfghooks.h (struct cfg_hooks): Remove the name field. * cfgrtl.cc (rtl_cfg_hooks): Update for the removal of the name field. (cfg_layout_rtl_cfg_hooks): Likewise. * tree-cfg.cc (struct cfg_hooks): Likewise. 2026-05-09 Andrew Pinski * cfghooks.cc (current_ir_type): Return cfghooks' ir field. * cfghooks.h (struct cfg_hooks): Add ir field. * cfgrtl.cc (rtl_cfg_hooks): Update for new ir field. (cfg_layout_rtl_cfg_hooks): Likewise. * tree-cfg.cc (gimple_cfg_hooks): Likewise. 2026-05-09 H.J. Lu PR target/125239 * config/i386/i386-features.cc (ix86_place_single_vector_set): For CONST_VECTOR source, check CONST0_RTX with X86_CSE_CONST0_VECTOR and CONSTM1_RTX with X86_CSE_CONSTM1_VECTOR. (ix86_broadcast_inner): Set x86_cse kind to X86_CSE_CONST0_VECTOR for CONST0_RTX and X86_CSE_CONSTM1_VECTOR for CONSTM1_RTX. 2026-05-09 Andrew Pinski PR tree-optimization/125234 * match.pd (`(a !=/== b) &\| ((a|b) ==/!= 0)`): Fix resulting constant form. 2026-05-08 Roger Sayle PR middle-end/124637 * calls.cc (load_register_parameters): If using store_constructor to place a constant structure in a register, use a right shift to align the structure/padding if required on big-endian targets. 2026-05-08 Daniel Barboza PR tree-optimization/119422 * match.pd(`(bool >= A) >= A -> bool >= A`): New pattern. 2026-05-08 Jeff Law PR target/124955 * config/riscv/riscv.md (masked shifted bitfield extraction): New splitter to utilize slliw to eliminate the need for sign extnesion. 2026-05-08 Jeff Law PR tree-optimization/93504 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Generalize existing code for (X & C) | ((X|Y) & ~C) to handle (X & C) | ((X^Y) & ~C) as well. 2026-05-08 Roger Sayle * expmed.cc (synth_mult): Add more constraints to recent change to avoid "false positive" array bounds warnings during bootstrap. 2026-05-08 Xi Ruoyao * config/loongarch/loongarch.cc (loongarch_print_operand): Print the symbol name for SYMBOL_REF with %c. 2026-05-08 Xi Ruoyao PR target/125049 * config/loongarch/predicates.md (ssp_operand): New define_predicate. (ssp_normal_operand): New define_predicate. * config/loongarch/constraints.md (ZE): New define_constraint. (ZF): New define_constraint. * config/loongarch/loongarch.md (UNSPEC_SSP): New unspec. (cbranch4): Add "@" to create gen_cbranch4(machine_mode, ...). (@stack_protect_combined_set_normal_): New define_insn. (@stack_protect_combined_set_extreme_): New define_insn. (@stack_protect_combined_test_internal_): New define_insn. (stack_protect_combined_set): New define_expand. (stack_protect_combined_test): New define_expand. * config/loongarch/loongarch-protos.h (loongarch_output_asm_load_canary): Declare. * config/loongarch/loongarch.cc (loongarch_print_operand): Allow 'v' to print d/w for DImode/SImode. (loongarch_output_asm_load_canary): Implement. 2026-05-08 Xi Ruoyao * config/loongarch/loongarch.md (*ctzsi2_extend): New define_insn. 2026-05-08 Vijay Shankar PR target/113353 * config/rs6000/rs6000.cc (rs6000_builtin_vectorized_function): Emit xvrdpic/xvrspic. * config/rs6000/rs6000-overload.def (__builtin_vec_nearbyint): Modified bif-id and overload-id. 2026-05-08 Richard Biener PR tree-optimization/125174 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Cost the number of OMP SIMD calls number of vector stmts. 2026-05-08 Bohan Lei * config/riscv/riscv-v.cc (shuffle_even_odd_patterns): Use vnsrl when possible. 2026-05-08 Soumya AR PR target/124895 * config/aarch64/aarch64-passes.def (pass_narrow_gp_writes): Move pass before pass_free_cfg. 2026-05-08 H.J. Lu PR target/125100 * config/i386/i386-features.cc (x86_cse_kind): Add X86_CSE_CONST_VECTOR. (redundant_pattern): Add dest_mode. (ix86_place_single_vector_set): Handle X86_CSE_CONST_VECTOR. Generate SUBREG for constant integer source. (ix86_broadcast_inner): Add an INSN argument. Use CONST_VECTOR in REG_EQUAL note. Set load kind to X86_CSE_CONST_VECTOR for native and converted CONST_VECTORs. Return CONST_VECTOR if it can be converted to constant integer load. (pass_x86_cse::candidate_vector_p): Add an INSN argument and pass the insn to ix86_broadcast_inner. (pass_x86_cse::x86_cse): Add a basic block bitmap for calls. Pass the insn to candidate_vector_p. Handle X86_CSE_CONST_VECTOR. Set dest_mode. Keep constant integer load when crossing a function call. Convert CONST_VECTOR load no larger than integer register to constant integer load even if there are no redundant CONST_VECTOR loads. 2026-05-07 Eikansh Gupta PR tree-optimization/109878 * match.pd(min/max (a & CST0, a & CST1)): New pattern. (min/max (a, a & CST)): New pattern. 2026-05-07 Jeff Law PR tree-optimization/106244 * config/riscv/riscv.md ((and (ashift X Y) const_int 1)): New splitter. 2026-05-07 Eikansh Gupta PR tree-optimization/123514 * match.pd ((x - (x<0)) ^ -(x<0) into ABS_EXPR): New pattern. 2026-05-07 Richard Sandiford * rtlanal.cc (commutative_operand_precedence): Bump the precedence of non-commutative binary arithmetic to 3. Give comparisons a precedence of 2. 2026-05-07 Richard Sandiford * combine.cc (make_compound_operation_int): Remove PLUS and MINUS simplifications and PLUS operand order swapping. Delegate those tasks to simplify_gen_binary instead. 2026-05-07 Richard Sandiford * alloc-pool.h (object_allocator::allocate): Generalize to handle non-default constructors. 2026-05-07 Richard Sandiford * rtl.h (post_ra_split_completed): Declare. * final.cc (rest_of_clean_state): Set it to false. * recog.cc (post_ra_split_completed): New variable. (split_insn): Temporarily set post_ra_split_completed while walking the new instructions. (split_all_insns, split_all_insns_noflow): Set post_ra_split_completed after completing a post-reload split. * config/rx/rx.md (*cmpsi, *tstsi, *cmpsf, *conditional_branch) (*sccc, *stcc, *stcc_reg, *abssi2_flags, *addsi3_flags, adc_internal) (*adc_flags, *andsi3_flags, *negsi2_flags, *one_cmplsi2_flags) (*iorsi3_flags, *rotlsi3_flags, *rotrsi3_flags, *ashrsi3_flags) (*lshrsi3_flags, *ashlsi3_flags, *sat, *subsi3_flags, sbb_internal) (*sbb_flags, *xorsi3_flags, *bmcc): Require post_ra_split_completed rather than reload_completed. (comparesi3_, addsi3_flags) (subsi3_flags): Require post_ra_split_completed. 2026-05-07 Pengxuan Zheng PR tree-optimization/125214 * match.pd (min|max(a+|-c,b+|-c)): Add integral type check. 2026-05-07 Roger Sayle PR middle-end/122871 * expmed.cc (synth_mult): Handle doubleword left shifts by BITS_PER_WORD bits or more, for scalar modes. * optabs.cc (expand_doubleword_mult): Avoid generating multiply instructions by immediate constants 0, 1 or 2. 2026-05-07 Avinash Jayakar * config/rs6000/crypto.md (UNSPEC_XXAESENCP): New unspec entry. (UNSPEC_XXAES128ENCP): Likewise. (UNSPEC_XXAES192ENCP): Likewise. (UNSPEC_XXAES256ENCP): Likewise. (UNSPEC_XXAESDECP): Likewise. (UNSPEC_XXAES128DECP): Likewise. (UNSPEC_XXAES192DECP): Likewise. (UNSPEC_XXAES256DECP): Likewise. (UNSPEC_XXAESGENLKP): Likewise. (UNSPEC_XXAES128GENLKP): Likewise. (UNSPEC_XXAES192GENLKP): Likewise. (UNSPEC_XXAES256GENLKP): Likewise. (UNSPEC_XXGFMUL128): Likewise. (UNSPEC_XXGFMUL128GCM): Likewise. (UNSPEC_XXGFMUL128XTS): Likewise. (AESACC_base_code): New iterator for xxaesencp and xxaesdecp base mnemonics. (AESACC_code): New iterator for xxaesencp and xxaesdecp extended mnemonics. (AESGENLKP_code): New iterator for xxaesgenlkp extended mnemonics. (AESGF_code): New iterator for xxgfmul128 extended mnemonics. (AESACC_base_insn): New attribute iterator for xxaesencp and xxaesdecp base mnemonics. (AESACC_insn): New attribute iterator for xxaesencp and xxaesdecp extended mnemonics. (AESGENLKP_insn): New attribute iterator for xxaesgenlkp extended mnemonics. (AESGF_insn): New attribute iterator for xxgfmul128 extended mnemonics. (): New define_insn for xxaesencp and xxaesdecp base mnemonics. (): New define_insn for xxaesencp and xxaesdecp extended mnemonics. (): New define_insn for xxaesgenlkp extended mnemonics. (xxaesgenlkp): New define_insn for genlkp base mnemonic. (): New define_insn for xxgfmul128 extended mnemonics. (xxgfmul128): New define_insn for xxgfmul128 base mnemonic. * config/rs6000/rs6000-builtins.def: Added new builtin definitions for AES acceleration. * doc/extend.texi: Add new section for AES acceleration builtins for Future ISA. 2026-05-07 Pan Li * config/riscv/predicates.md: Add lt to swapped operator. * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Handle the rtl as well. 2026-05-07 Pengxuan Zheng PR tree-optimization/116008 PR tree-optimization/124560 * match.pd (min|max(a+|-c,b+|-c)): New patterns. 2026-05-06 Jason Merrill * Makefile.in (TAGS): Add diagnostics/ and text-art/. 2026-05-06 David Malcolm * range-op-float.cc (fop_unordered): Make static and const. (fop_ordered): Likewise. (fop_unordered_lt): Likewise. (fop_unordered_le): Likewise. (fop_unordered_gt): Likewise. (fop_unordered_ge): Likewise. (fop_unordered_equal): Likewise. (fop_ltgt): Likewise. (fop_div): Likewise. * range-op-ptr.cc (op_pointer_plus): Likewise. (op_pointer_diff): Likewise. * range-op.cc (op_equal): Likewise. (op_not_equal): Likewise. (op_lt): Likewise. (op_le): Likewise. (op_gt): Likewise. (op_ge): Likewise. (op_ident): Likewise. (op_cst): Likewise. (op_cast): Likewise. (op_view): Likewise. (op_plus): Likewise. (op_abs): Likewise. (op_minus): Likewise. (op_negate): Likewise. (op_mult): Likewise. (op_addr): Likewise. (op_bitwise_not): Likewise. (op_bitwise_xor): Likewise. (op_bitwise_and): Likewise. (op_bitwise_or): Likewise. (op_min): Likewise. (op_max): Likewise. (operator_table): Make static. Fix typo in comment. (range_op_handler::range_op_handler): Fix typo in leading comment. (range_op_handler::range_op): Make returned ptr const. Use nullptr. (RO_III): Make static. (RO_IFI): Likewise. (RO_IFF): Likewise. (RO_FFF): Likewise. (RO_FIF): Likewise. (RO_FII): Likewise. (RO_PPP): Likewise. (RO_PPI): Likewise. (RO_IPP): Likewise. (RO_IPI): Likewise. (RO_PIP): Likewise. (RO_PII): Likewise. (op_trunc_div): Make const. (op_floor_div): Likewise. (op_round_div): Likewise. (op_ceil_div): Likewise. * range-op.h (range_op_handler::range_op): Make returned ptr const. (range_op_handler::m_operator): Make const. (range_op_table::operator[]): Make const. Make returned ptr const. (range_op_table::set): Make range_operator const. (range_op_table::m_range_tree): Make ptrs const. 2026-05-06 David Malcolm * value-range.cc (value_range::print): New, based on value_range::dump. * value-range.h (value_range::print): New decl. 2026-05-06 David Malcolm * value-range.h: Remove stray slash in comment. 2026-05-06 David Malcolm * Makefile.in (ANALYZER_OBJS): Add analyzer/state-transition.o. * digraph.cc (test_path::append_edge): New. (test_path::reverse): New. * shortest-paths.h (get_shortest_path): Use append_edge and reverse. * tree-diagnostic.h (tree_dump_pretty_printer::~tree_dump_pretty_printer): Only flush when the buffer's stream is non-null. 2026-05-06 Andrew MacLeod * value-range-storage.cc (prange_storage::alloc): Use prange_format. (prange_storage::prange_storage): Likewise. (prange_format::prange_format): New. (prange_storage::set_prange): Use prange_foramt and only write required words to storage. (prange_storage::get_prange): Only read required words. (prange_storage::equal_p): Adjust for new enum. (prange_storage::fits_p): Use prange_format to determine size. * value-range-storage.h (enum prange_kind): New. (class prange_format): New. (get_low, get_high, get_value, get_mask): Replace with get_word. (set_low, set_high, set_value, set_mask): Replace with set_word. (get_word): New. (set_word): New. 2026-05-06 Andrew MacLeod * gimple-fold.cc (get_maxval_strlen): Return the same value if passed a constant. 2026-05-06 Zhongyao Chen PR target/122558 * config/riscv/riscv-vector-costs.cc (get_lmul_cost_scaling): New function to calculate multiplicative scaling factors. (costs::adjust_stmt_cost): Apply LMUL scaling uniformly to all vector statements. 2026-05-06 Lulu Cheng * config/loongarch/loongarch.cc (loongarch_rtx_costs): Add RTX cost handling for the ORDERED RTX code. 2026-05-06 Lulu Cheng PR target/125057 * config/loongarch/loongarch.cc (loongarch_split_vector_move): Complete the split condition. * config/loongarch/loongarch.h (LSX_REG_RTX_P): Delete. (LASX_REG_RTX_P): Delete. (GP_REG_RTX_P): Define macro. 2026-05-06 Robin Dapp * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): Rename from this... (whole_reg_move_p): ...to this. (whole_reg_loadstore_p): Declare. * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto. (whole_reg_move_p): Ditto. (whole_reg_loadstore_p): New function. * config/riscv/thead-vector.md: Use renamed function. * config/riscv/vector.md (@pred_store): Use new function. 2026-05-06 Richard Biener * config/i386/x86-tune.def (avx512_two_epilogues): Enable for m_ZNVER6. (avx512_masked_epilogues): Likewise. 2026-05-05 H.J. Lu PR target/120587 PR target/125155 * config/or1k/or1k.cc (or1k_hard_regno_mode_ok): Allow condition condition flag register in SImode. 2026-05-05 wangzicong * config/riscv/riscv.cc (riscv_modes_tieable_p): Make tuple modes not tieable to some modes. 2026-05-05 Gaius Mulley PR modula2/120189 * doc/gm2.texi (Building a shared library): Rewrite the description of the shared library and include complete code into the example. 2026-05-05 Richard Biener PR tree-optimization/125185 * tree-vect-slp.cc (vect_analyze_slp_reduc_chain): Guard first vect_slp_linearize_chain call. 2026-05-05 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_legitimize_address): Modify to extend the upper limit of the coverable offset if the address displacement of the corresponding machine instruction is greater than 255. 2026-05-05 Jakub Jelinek PR target/125180 * config/i386/i386.md (HI/SI test -> QI test splitter): Punt if operands[2] is a volatile MEM. 2026-05-05 Richard Biener PR tree-optimization/125124 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Disable BB SLP partitioning sanity-check. 2026-05-04 H.J. Lu PR c/121911 * target.def (stack_protect_guard_symbol_p): New target hook. * targhooks.cc (default_stack_protect_guard): Use the type of uintptr_t, instead of ptr_type_node, if the stack_protect_guard_symbol_p hook returns true. * config/i386/i386.cc (ix86_stack_protect_guard_symbol_p): New. (TARGET_STACK_PROTECT_GUARD_SYMBOL_P): Likewise. * doc/tm.texi: Regenerated. * doc/tm.texi.in (TARGET_STACK_PROTECT_GUARD_SYMBOL_P): New. 2026-05-04 Iain Buclaw * config/m32c/*: Delete entire directory. * attr-urls.def: Remove references to m32c. * config.gcc: Likewise. * config/msp430/msp430.cc (msp430_expand_epilogue): Likewise. * configure: Regenerate. * configure.ac: Remove references to m32c. * doc/extend.texi: Likewise. * doc/install.texi: Likewise. * doc/invoke.texi: Likewise. * doc/md.texi: Likewise. * explow.cc (promote_mode): Likewise. * regenerate-opt-urls.py: Likewise. * config/microblaze/microblaze.opt.urls: Regenerate. * config/msp430/msp430.opt.urls: Regenerate. * config/nds32/nds32.opt.urls: Regenerate. * config/rl78/rl78.opt.urls: Regenerate. * config/rs6000/sysv4.opt.urls: Regenerate. * config/rx/elf.opt.urls: Regenerate. * config/stormy16/stormy16.opt.urls: Regenerate. * config/visium/visium.opt.urls: Regenerate. 2026-05-04 Richard Sandiford * config/aarch64/aarch64.cc (aarch64_expand_sve_vec_perm): Check whether all indices of a variable selector refer to the first values vector. 2026-05-04 Mark Wielaard * config/xtensa/xtensa.opt.urls: Regenerated. 2026-05-04 Nathan Myers * doc/invoke.texi: insert "result" in comment text 2026-05-04 Artemiy Volkov PR tree-optimization/122679 * tree-ssa-forwprop.cc (simplify_vector_constructor): Check the PROP_gimple_lvec property before returning false. 2026-05-04 Andrew Pinski PR tree-optimization/116823 * tree-ssa-phiprop.cc (can_handle_load): Skip past clobbers for !aggregate. 2026-05-04 David Malcolm * data-streamer-in.cc (streamer_read_value_range): Update for renaming of value_range::set_type to value_range::set_range_class. * gimple-range-gori.cc (gori_compute::compute_operand_range): Likewise. (gori_compute::compute_operand1_and_operand2_range): Likewise. (gori_stmt_info::gori_stmt_info): Likewise. (gori_calc_operands): Likewise. (gori_name_helper): Likewise. * ipa-cp.cc (ipcp_vr_lattice::set_to_bottom): Likewise. * ipa-cp.h (ipcp_vr_lattice::init): Likewise. * ipa-fnsummary.cc (evaluate_properties_for_edge): Likewise. * ipa-prop.cc (ipa_vr::get_vrange): Likewise. * range-op.h (range_cast): Likewise. * value-range.h (value_range::set_type): Rename to... (value_range::set_range_class): ...this, and add a note to the leading comment that it doesn't set the type of the underlying vrange. (value_range::init): Add a similar note to the leading comment. 2026-05-04 Andrew MacLeod * gimple-range-cache.cc (ranger_cache::range_of_expr): Handle NULL statement. 2026-05-04 Andrew MacLeod * gimple-range-fold.cc (fold_using_range::fold_stmt): Move range_of_address call into nested 'if' with other routines. 2026-05-04 Andrew MacLeod * gimple-range-cache.cc (ranger_cache::ranger_cache): Allocate bitmap. (ranger_cache::~ranger_cache): Free bitmap. (ranger_cache::mark_stale): New. (ranger_cache::get_global_range): Check if NAME is marked stale. * gimple-range-cache.h (ranger_cache::mark_stale): New. * gimple-range.cc (gimple_ranger::update_range_info): New variant. * gimple-range.h (update_range_info): New prototype. * gimple.h (gimple_set_modified): Call update_range_info. * value-query.cc (range_query::update_range_info): New variant. * value-query.h (range_query::update_range_info): New prototype. 2026-05-04 Andrew MacLeod * value-range.cc (irange::intersect): Snap bounds as they are created. 2026-05-04 Andrew MacLeod * value-query.cc (range_query::get_tree_range): Check if return range R supports the expression type. 2026-05-04 Uros Bizjak * config/i386/i386.md (*bt_mask): Use int248_register_operand for operand 1 predicate. (*jcc_bt_mask): Use nonimmediate_operand for operand 1 predicate. (*jcc_bt_mask_1): Use nonimmediate_operand for operand 1 predicate and int248_register_operand for operand 2 predicate. (BT followed by CMOV splitter): Use nonimmediate_operand for operand 1 predicate. (*bt_setcqi): Ditto. (*bt_setncqi): Ditto. (*bt_setnc): Ditto. (*bt_setncqi_2): Ditto. (*bt_setc_mask): Use nonimmediate_operand for operand 1 predicate and int248_register_operand for operand 2 predicate. 2026-05-04 Andrew Pinski PR tree-optimization/123120 PR tree-optimization/116823 * tree-ssa-phiprop.cc (phiprop_insert_phi): Add other_vuse argument, use it instead of the vuse on the use_stmt. (can_handle_load): Add aggregate argument. Also return the vuse of the load/store when the insert is allowed. Skipping over one non-modifying store for !aggregate. (propagate_with_phi): Update call to can_handle_load and phiprop_insert_phi. 2026-05-04 Richard Biener Revert: 2025-04-30 Richard Biener PR tree-optimization/120003 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names): Allow block re-use but do not enlarge the path beyond such a re-use. 2026-05-04 Richard Biener PR middle-end/125156 * tree-cfgcleanup.cc (cleanup_control_expr_graph): Clear EDGE_TRUE_VALUE and EDGE_FALSE_VALUE edge flags only. 2026-05-04 Richard Biener PR middle-end/125146 * gimple-fold.cc (fold_stmt_1): Discard stmts in seq after failed gimple_simplify as well. 2026-05-04 Kishan Parmar * config.gcc (powerpc*-*-*): Add support for supporting --with-cpu=future. * config/rs6000/aix71.h (ASM_CPU_SPEC): Pass -mfuture to the assembler if the user used the -mcpu=future option. * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise. * config/rs6000/rs6000-builtin.cc (rs6000_invalid_builtin): Handle ENB_FUTURE and issue diagnostic requiring -mcpu=future. (rs6000_builtin_is_supported): Return TARGET_FUTURE for ENB_FUTURE built-ins. * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define _ARCH_FUTURE if -mcpu=future. * config/rs6000/rs6000-cpus.def (FUTURE_MASKS_SERVER): New macro. (POWERPC_MASKS): Add OPTION_MASK_FUTURE. (rs6000_cpu_opt_value): New entry for 'future' via the RS6000_CPU macro. * config/rs6000/rs6000-gen-builtins.cc (enum bif_stanza): Add BSTZ_FUTURE for future. (write_decls): Add ENB_FUTURE in bif_enable enum of generated header file. * config/rs6000/rs6000-opts.h (PROCESSOR_FUTURE): New macro. * config/rs6000/rs6000-tables.opt: Regenerate. * config/rs6000/rs6000.cc (rs6000_machine_from_flags) If -mcpu=future, set the .machine directive to "future". (rs6000_opt_masks): Add entry for -mfuture. * config/rs6000/rs6000.h (ASM_CPU_SPEC): Pass -mfuture to the assembler if the user used the -mcpu=future option. * config/rs6000/rs6000.opt (-mfuture): New option. * doc/invoke.texi (IBM RS/6000 and PowerPC Options): Document -mcpu=future. 2026-05-04 Takayuki 'January June' Suwa * doc/extend.texi (Xtensa Named Address Spaces): Document '__force_l32'. (Xtensa Attributes): Document 'force_l32'. * doc/invoke.texi (Xtensa Options): Document '-m[no-]force-l32'. 2026-05-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_expand_load_force_l32_2): New sub-function for inspecting pseudos that clearly point to the function's stack frame. (xtensa_expand_load_force_l32): Add handling for loading from the generic address space when the "-mforce-l32" option is enabled, however, obvious references to function stack frames are excluded. * config/xtensa/xtensa.opt (mforce-l32): New target-specific option definition. 2026-05-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_attribute_table, TARGET_ATTRIBUTE_TABLE): New definitions for target-specific attributes. (xtensa_expand_load_force_l32_1): New sub-function for inspecting the attribute from the specified MEM rtx. (xtensa_expand_load_force_l32): Add handlings for for addresses with offsets. (xtensa_handle_force_l32_attribute_1, xtensa_handle_force_l32_attribute): New functions for handling the attribute. 2026-05-04 Takayuki 'January June' Suwa * config/xtensa/xtensa-protos.h (xtensa_expand_load_force_l32): New function prototype. * config/xtensa/xtensa.cc (#include): Add "expmed.h". (TARGET_LEGITIMATE_ADDRESS_P): Change a whitespace delimiter from HTAB to SPACE. (TARGET_ADDR_SPACE_SUBSET_P, TARGET_ADDR_SPACE_CONVERT, TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro definitions for named address space. (xtensa_addr_space_subset_p, xtensa_addr_space_convert, xtensa_addr_space_legitimate_address_p): New hook function prototypes and definitions required for implementing the named address space. (xtensa_expand_load_force_l32): New function that generates RTXes that perform loads from memory belonging to the named address space. * config/xtensa/xtensa.h (ADDR_SPACE_FORCE_L32): New macro for the ID# of the named address space. (REGISTER_TARGET_PRAGMAS): New hook for registering C language identifier for the named address space. * config/xtensa/xtensa.md (zero_extendsi2_internal): Rename from zero_extendsi2. (zero_extendsi2): New RTL generation pattern that calls xtensa_expand_load_force_l32(). (extendhisi2, extendqisi2, movhi, movqi): Change to call xtensa_expand_load_force_l32() first. (*shift_per_byte): Delete the insn condition. 2026-05-04 Jeff Law PR rtl-optimization/124766 * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): Simplify x + y == y constructs. 2026-05-04 Avinal Kumar PR tree-optimization/116700 * match.pd: (A > B ? ABS(A) : B -> MAX(A, B)): New pattern for non-negative B. 2026-05-03 Andrew Pinski * tree-chrec.cc (chrec_fold_plus_poly_poly): Move rtype definition to right before the use. 2026-05-03 Philipp Tomsich PR tree-optimization/122569 * tree-ssa-forwprop.cc (simplify_count_zeroes): Avoid shift-by-HOST_BITS_PER_WIDE_INT UB when computing the all-ones value for the CLZ validator. 2026-05-03 Jeff Law PR target/124009 * config/riscv/iterators.md (scc_0): Add any_lt. * config/riscv/zicond.md: Add splitters to select between 2^n and 0. 2026-05-03 Collin Funk * glimits.h (__STDC_VERSION_LIMITS_H__): Only define the macro if it was not already defined. 2026-05-03 Jeff Law PR target/125152 * config/riscv/riscv.cc (riscv_expand_conditional_move): Extract the mode after operand canonicalization. 2026-05-02 Andrew Pinski * tree-ssa-phiopt.cc (pass_phiopt::execute): Set cfgcleanup if cselim_limited returns true. 2026-05-02 Jeff Law PR target/109038 * config/riscv/bitmanip.md (rotate_with_masking_to_shift): New pattern. 2026-05-02 Michiel Derhaeg * config/riscv/riscv.opt.urls: Add temp fix for -mmpy-option. 2026-05-02 Andrew Pinski PR tree-optimization/125139 * match.pd (`(A>>bool) EQ 0 -> (unsigned)A LE bool`): Enable only for INTEGRAL_TYPE_P types. 2026-05-01 Sam James * Makefile.in (MOSTLYCLEANFILES): Fix typo of '$(exeext)'. 2026-05-01 Jeff Law PR tree-optimization/119420 * match.pd(`(A>>bool) EQ 0 -> (unsigned)A LE bool`): New pattern. 2026-05-01 Daniel Barboza PR rtl-optimization/123967 * match.pd(`if (cond) (A | CST1) : (A & ~CST1)`)`: New pattern. 2026-05-01 Daniel Henrique Barboza PR tree-optimization/110010 * match.pd (`(A>>C) NE|EQ (B>>C) -> (A^B) GE|LT (1< * config.gcc: Added riscv-fusion.o * config/riscv/riscv-protos.h (enum riscv_fusion_pairs): (riscv_macro_fusion_p): Added declaration. (riscv_macro_fusion_pair_p): Idem. (riscv_get_fusible_ops): Idem. * config/riscv/riscv.cc (enum riscv_fusion_pairs): (riscv_macro_fusion_p): Moved to riscv-fusion.cc (riscv_fusion_enabled_p): Idem. (riscv_set_is_add): Idem. (riscv_set_is_addi): Idem. (riscv_set_is_adduw): Idem. (riscv_set_is_shNadd): Idem. (riscv_set_is_shNadduw): Idem. (riscv_macro_fusion_pair_p): Idem. (riscv_get_fusible_ops): New function to access tune_param->fusible_ops from riscv-fusion.cc. * config/riscv/t-riscv: Added riscv-fusion.cc * config/riscv/riscv-fusion.cc: New file. 2026-05-01 Kewen Lin * config/i386/c86-4g-m7.md (c86_4g_m7_idiv): New automaton. (c86_4g_m7_fdiv): Ditto. (c86-4g-m7-idiv): New unit. (c86-4g-m7-fdiv): Ditto. (c86_4g_m7_idiv_DI): Adjust unit in the reservation. (c86_4g_m7_idiv_SI): Ditto. (c86_4g_m7_idiv_HI): Ditto. (c86_4g_m7_idiv_QI): Ditto. (c86_4g_m7_idiv_DI_load): Ditto. (c86_4g_m7_idiv_SI_load): Ditto. (c86_4g_m7_idiv_HI_load): Ditto. (c86_4g_m7_idiv_QI_load): Ditto. (c86_4g_m7_fp_div): Ditto. (c86_4g_m7_fp_div_load): Ditto. (c86_4g_m7_fp_idiv_load): Ditto. (c86_4g_m7_avx512_ssediv): Ditto. (c86_4g_m7_avx512_ssediv_mem): Ditto. (c86_4g_m7_avx512_ssediv_z): Ditto. (c86_4g_m7_avx512_ssediv_zmem): Ditto. (c86_4g_m7_avx512_sse_sqrt): Ditto. (c86_4g_m7_avx512_sse_sqrt_load): Ditto. (c86_4g_m7_fp_sqrt): Ditto. Rename from ... (c86_4g_m7fp_sqrt): ... here. * config/i386/c86-4g.md (c86_4g_idiv): New automaton. (c86_4g_fdiv): Ditto. (c86-4g-idiv): New unit. (c86-4g-fdiv): Ditto. (c86_4g_idiv_DI): Ditto. (c86_4g_idiv_SI): Ditto. (c86_4g_idiv_HI): Ditto. (c86_4g_idiv_QI): Ditto. (c86_4g_idiv_mem_DI): Ditto. (c86_4g_idiv_mem_SI): Ditto. (c86_4g_idiv_mem_HI): Ditto. (c86_4g_idiv_mem_QI): Ditto. (c86_4g_fp_sqrt): Ditto. (c86_4g_sse_sqrt_sf): Ditto. (c86_4g_sse_sqrt_sf_mem): Ditto. (c86_4g_sse_sqrt_df): Ditto. (c86_4g_sse_sqrt_df_mem): Ditto. (c86_4g_fp_op_div): Ditto. (c86_4g_fp_op_div_load): Ditto. (c86_4g_fp_op_idiv_load): Ditto. (c86_4g_ssediv_ss_ps): Ditto. (c86_4g_ssediv_ss_ps_load): Ditto. (c86_4g_ssediv_ss_pd): Ditto. (c86_4g_ssediv_ss_pd_load): Ditto. (c86_4g_ssediv_avx256_ps): Ditto. (c86_4g_ssediv_avx256_ps_load): Ditto. (c86_4g_ssediv_avx256_pd): Ditto. (c86_4g_ssediv_avx256_pd_load): Ditto. 2026-05-01 Michiel Derhaeg Artemiy Volkov Luis Silva * config/riscv/riscv-cores.def (RISCV_TUNE): Add arc-v-rmx-100-series. * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Add arcv_rmx100. (enum arcv_mpy_option_enum): New enum for ARC-V multiply options. * config/riscv/riscv-protos.h (arcv_mpy_1c_bypass_p): New declaration. (arcv_mpy_2c_bypass_p): New declaration. (arcv_mpy_10c_bypass_p): New declaration. * config/riscv/riscv.cc (arcv_mpy_1c_bypass_p): New function. (arcv_mpy_2c_bypass_p): New function. (arcv_mpy_10c_bypass_p): New function. * config/riscv/riscv.md: Add arcv_rmx100. * config/riscv/riscv.opt: New option for RMX-100 multiply unit configuration. * doc/riscv-mtune.texi: Document arc-v-rmx-100-series. * config/riscv/arcv-rmx100.md: New file. 2026-05-01 Michiel Derhaeg Artemiy Volkov Luis Silva * config/riscv/riscv-cores.def (RISCV_TUNE): Add arc-v-rhx-100-series. * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): Add arcv_rhx100. * config/riscv/riscv.cc (arcv_rhx100_tune_info): New riscv_tune_param. * config/riscv/riscv.md: Add arcv_rhx100 to tune attribute. * doc/riscv-mtune.texi: Add RHX-100 documentation. * config/riscv/arcv-rhx100.md: New file. 2026-05-01 Philipp Tomsich * config/riscv/riscv.cc (riscv_expand_conditional_move): Convert unsigned comparisons against power-of-2 boundaries to shift-based equality tests. 2026-05-01 Rainer Orth * configure.ac: Test solaris_as, solaris_ld instead of gas, gnu_ld. (gcc_cv_as_working_gdwarf_n_flag): Escape '.' in filename. * acinclude.m4 (gcc_cv_initfini_array): Test solaris_as, solaris_ld instead of gas, gnu_ld. * configure: Regenerate. 2026-05-01 Jin Ma * config/riscv/riscv.cc (riscv_rtx_costs): Add missing braces around the if body for the slli.uw pattern in the AND case. 2026-05-01 Jakub Jelinek PR tree-optimization/125079 * tree-ssa-strlen.cc (get_string_length): Transform __strcat_chk (x, y, z) when we need strlen (x) afterwards into l1 = strlen (x); l = __stpcpy_chk (x + l1, y, z - l1) - x; where l is the strlen (x), instead of using z as last __stpcpy_chk argument. 2026-05-01 Jeff Law PR target/124559 * config/riscv/riscv-protos.h (riscv_move_integer): Drop mode argument. * config/riscv/riscv.cc (riscv_move_integer): Pass mode after promotions to riscv_build_integer. All callers changed. * config/riscv/riscv.md: Corresponding changes. * cse.cc (cse_insn): Try to derive one constant from another using NOT/NEG. 2026-05-01 H.J. Lu PR target/125117 * config/i386/i386-expand.cc (ix86_expand_movmem): Generate last_4x_vec_label when min_size <= 4 * MOVE_MAX. 2026-05-01 Stefan Schulze Frielinghaus * config/s390/s390.cc (s390_secondary_reload): Add cases for HF vector modes. * config/s390/s390.md: Add modes V{1,2,4,8}HF to mode iterator ALL. 2026-05-01 Jakub Jelinek * tree-vect-loop.cc (vectorizable_reduction): Remove pointless && 1. 2026-05-01 Jeff Law PR rtl-optimization/96692 * config/riscv/bitmanip.md (xor+xor+ior splitters): New splitters that ultimately generate andn+xor when possible. 2026-04-30 H.J. Lu PR target/124878 * config/i386/i386.cc (x86_64_int_return_registers): Remove DI_REG and SI_REG. (ix86_function_value_regno_p): Remove DI_REG and SI_REG cases. (function_value_64): Replace X86_64_REGPARM_MAX and X86_64_SSE_REGPARM_MAX with X86_64_MAX_RETURN_NREGS and X86_64_MAX_SSE_RETURN_NREGS for the number of registers used in return values. * config/i386/i386.h (X86_64_MAX_RETURN_NREGS): New. Defined to 2. (X86_64_MAX_SSE_RETURN_NREGS): Likewise. 2026-04-30 H.J. Lu PR target/125102 * config/i386/mmx.md (V_16_32_64:*mov_imm): Disable 16-bit immediate integer store if TARGET_LCP_STALL is true. 2026-04-30 Eric Botcazou * Makefile.in (COVERAGE_FLAGS): Remove obsolete comment. 2026-04-30 Vladimir N. Makarov * ira-costs.cc (record_reg_classes): Process correctly case op_class == NO_REGS. 2026-04-30 Vladimir N. Makarov * ira-color.cc (assign_hard_reg): Use the right allocno mode to call note_conflict. 2026-04-30 Heiko Eißfeldt PR middle-end/124805 * tree-ssa.cc (verify_vssa): replace recursive calls with iteration for lower stack usage 2026-04-30 Tomas Härdin * toplev.cc (output_stack_usage_1): Pass RINT_DECL_UNIQUE_NAME instead of PRINT_DECL_NAME to print_decl_identifier. 2026-04-30 Andrew Pinski * match.pd (`(a !=/== b) &\| ((a|b) ==/!= 0)`): Simplify patterns using for loop and remove the `:c` on the inner ne/eq. 2026-04-30 Christopher Bazley * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Pass &global_options_set as an argument to aarch64_override_options_internal. * config/aarch64/aarch64-protos.h (aarch64_override_options_internal): Add a parameter declaration for opts_set. * config/aarch64/aarch64.cc (aarch64_override_options_internal): Add a parameter declaration for opts_set and use the argument when invoking SET_OPTION_IF_UNSET. (aarch64_override_options): Pass &global_options_set as an argument to aarch64_override_options_internal. (aarch64_option_restore): As above. (aarch64_set_current_function): As above. (aarch64_option_valid_attribute_p): As above. (aarch64_option_valid_version_attribute_p): As above. 2026-04-30 Richard Biener PR tree-optimization/125088 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Refactor and simplify. * tree-vect-stmts.cc (vect_nop_conversion_p): Exclude copies with memory accesses. 2026-04-30 H.J. Lu PR target/125026 PR target/125032 * config/i386/i386-features.cc (ix86_place_single_vector_set): Don't check CONST_VECTOR load size. (replace_vector_const): Handle constant integer load. (x86_cse::x86_cse): Convert CONST_VECTOR load no larger than integer to constant integer load and keep redundant constant integer load. Generate zero CONST_VECTOR load. 2026-04-30 Michiel Derhaeg * doc/params.texi: Added --param=max-niter-dominators-walk. * params.opt: Added --param=max-niter-dominators-walk. * tree-ssa-loop-niter.cc (MAX_DOMINATORS_TO_WALK): Removed. (determine_value_range): Updated. (bound_difference): Updated. (simplify_using_initial_conditions): Updated. 2026-04-30 Richard Biener PR tree-optimization/120398 PR tree-optimization/123603 * config/i386/i386.opt (ix86-vect-compare-costs): Default to 1. 2026-04-30 Richard Biener * config/i386/i386.cc (ix86_vector_costs::better_epilogue_loop_than_p): New. If the other loop suggests this as epilog prefer other. 2026-04-30 Richard Biener * tree-vectorizer.h (vector_costs::vinfo): New accessor. * config/i386/i386.cc (ix86_vector_costs::better_main_loop_than_p): Prefer a masked main loop if we can elide enough of (vector) epilog loop iterations. 2026-04-29 Pengxuan Zheng PR tree-optimization/113379 * match.pd (min(a,b) {<=,>,<,>=} max(a,b)): New patterns. 2026-04-29 John David Anglin * doc/install.texi (hppa64-hp-hpux11*): Remove incorrect statement. 2026-04-29 Wilco Dijkstra * config/aarch64/aarch64.opt (mpc-relative-literal-loads): Deprecate. * config/aarch64/aarch64.cc (aarch64_override_options): Add deprecated warning for -mpc-relative-literal-loads. * doc/invoke.texi (mpc-relative-literal-loads): Update docs. 2026-04-29 Wilco Dijkstra * config/aarch64/aarch64.h (HAS_LONG_COND_BRANCH): Unused, remove. (HAS_LONG_UNCOND_BRANCH): unused, remove. * config/aarch64/aarch64.cc (aarch64_use_pseudo_pic_reg): Declare. (aarch64_rtx_costs): Update. (aarch64_override_options_after_change_1): Likewise. (initialize_aarch64_code_model): Simplify. (aarch64_classify_tls_symbol): Likewise. (aarch64_classify_symbol): Simplify, remove duplicated code. (aarch64_asm_preferred_eh_data_format): Update. (aarch64_use_pseudo_pic_reg): Update. * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Remove uses of AARCH64_CMODEL_TINY_PIC, AARCH64_CMODEL_SMALL_PIC, and AARCH64_CMODEL_SMALL_SPIC. * config/aarch64/aarch64-opts.h (aarch64_code_model): Remove AARCH64_CMODEL_TINY_PIC, AARCH64_CMODEL_SMALL_PIC and AARCH64_CMODEL_SMALL_SPIC. 2026-04-29 Vladimir N. Makarov * lra-remat.cc (do_remat): Use the right nregs for pseudo hard reg when updating live hard regs. 2026-04-29 Vladimir N. Makarov * lra-remat.cc (reg_overlap_for_remat_p): Use the right mode for regno2. 2026-04-29 Vladimir N. Makarov * ira-conflicts.cc (build_object_conflicts): Use the right conflicting allocno. 2026-04-29 Richard Biener PR tree-optimization/125080 * tree-vect-slp.cc (vect_bb_slp_mark_stmts_vectorized): Only add instance root stmts to scalar coverage if they do not appear in externs. 2026-04-29 Xin Liu Zhaoling Bao * common/config/i386/cpuinfo.h (get_hygon_cpu): Detect the specific type of HYGON CPU and return HYGON CPU name. (cpu_indicator_init): Handle HYGON CPU. * common/config/i386/i386-common.cc (processor_names): Add HYGON C86-4G processors c86-4g-m{4,6,7}. (processor_alias_table): Add hygon, hygonfam18h and c86-4g-m{4,6,7} entries. (ARRAY_SIZE): Update as new entries added. * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add VENDOR_HYGON. (enum processor_types): Add HYGONFAM18H. (enum processor_subtypes): Add HYGONFAM18H_C86_4G_M{4,6,7}. * config.gcc: Add support for c86_4g_m{4,6,7}. * config/i386/cpuid.h (signature_HYGON_ebx): Add signature for HYGON. (signature_HYGON_ecx): Ditto. (signature_HYGON_edx): Ditto. * config/i386/driver-i386.cc (host_detect_local_cpu): Support HYGON c86-4g-m4{4,6,7} processors. * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto. * config/i386/i386-options.cc (m_C86_4G_M4): New definition. (m_C86_4G_M6): Ditto. (m_C86_4G_M7): Ditto. (m_C86_4G): Ditto. (processor_cost_table): Add cost entries for c86-4g-m4{4,6,7}. * config/i386/i386.cc (ix86_reassociation_width): Add handlings for PROCESSOR_C86_4G_M{4,6,7}. * config/i386/i386.h (enum processor_type): Define PROCESSOR_C86_4G_M{4,6,7}. (PTA_C86_4G_M4): New define. (PTA_C86_4G_M6): Ditto. (PTA_C86_4G_M7): Ditto. * config/i386/x86-tune-costs.h (c86_4g_m4_memcpy): New stringop_algs. (c86_4g_m4_cost): New processor_costs. (c86_4g_m6_cost): Ditto. (c86_4g_m7_cost): Ditto. * config/i386/x86-tune-sched.cc (ix86_issue_rate): Handle PROCESSOR_C86_4G_M{4,6,7}. (ix86_adjust_cost): Ditto. * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Handle m_C86_4G. (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto. (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto. (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto. (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto. (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto. (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto. (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto. (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto. (X86_TUNE_USE_LEAVE): Ditto. (X86_TUNE_PUSH_MEMORY): Ditto. (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto. (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto. (X86_TUNE_USE_SAHF): Ditto. (X86_TUNE_USE_BT): Ditto. (X86_TUNE_AVOID_MFENCE): Ditto. (X86_TUNE_USE_FFREEP): Ditto. (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto. (X86_TUNE_SSE_PACKED_SINGLE_INSN_OPTIMAL): Ditto. (X86_TUNE_SSE_TYPELESS_STORES): Ditto. (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto. (X86_TUNE_USE_GATHER_2PARTS): Ditto. (X86_TUNE_USE_GATHER_4PARTS): Ditto. (X86_TUNE_USE_GATHER_8PARTS): Ditto. (X86_TUNE_AVOID_128FMA_CHAINS): Ditto. (X86_TUNE_AVOID_256FMA_CHAINS): Ditto. (X86_TUNE_USE_RCR): Ditto. (X86_TUNE_AVX256_MOVE_BY_PIECES): Handle m_C86_4G_M{4,6}. (X86_TUNE_USE_SCATTER_2PARTS): Handle m_C86_4G_M7. (X86_TUNE_USE_SCATTER_4PARTS): Ditto. (X86_TUNE_USE_SCATTER_8PARTS): Ditto. (X86_TUNE_SSE_REDUCTION_PREFER_PSHUF): Ditto. (X86_TUNE_AVX512_SPLIT_REGS): Ditto. (X86_TUNE_AVX512_MOVE_BY_PIECES): Ditto. (X86_TUNE_AVX512_MASKED_EPILOGUES): Ditto. * doc/extend.texi: Document about hygonfam18h and c86-4g-m{4,6,7}. * doc/invoke.texi: Document about c86-4g-m{4,6,7}. * config/i386/c86-4g-m7.md: New file for c86-4g-m7 scheduling model information. * config/i386/c86-4g.md: New file for c86-4g-m{4,6} scheduling model information. * config/i386/i386.md (cpu attr): Add c86_4g_m{4,6,7}. (c86-4g.md): New include. (c86-4g-m7.md): Ditto. (*cmpixf_i387): Set attr c86_decode. (*cmpi): Ditto. (swap): Ditto. (*swap): Ditto. (extendhisi2): Ditto. (floathi2): Ditto. (floatxf2): Ditto. (*float2): Ditto. (*floatdi2_i387): Ditto. (*anddi_1_bt): Ditto. (*iordi_1_bts): Ditto. (*xordi_1_btc): Ditto. (*): Ditto. (*btr): Ditto. (*btsq_imm): Ditto. (*btrq_imm): Ditto. (*btcq_imm): Ditto. (*tzcnt_1): Ditto. (*tzcnt_1_falsedep): Ditto. (*bsf_1): Ditto. (*ctz2_falsedep): Ditto. (*ctzsi2_zext): Ditto. (*ctzsi2_zext_falsedep): Ditto. (bsr_rex64): Ditto. (bsr_rex64_1): Ditto. (bsr_rex64_1_zext): Ditto. (bsr): Ditto. (bsr_1): Ditto. (bsr_zext_1): Ditto. (*bswaphi2_movbe): Ditto. (*bswaphi2): Ditto. (bswaphisi2_lowpart): Ditto. (fpremxf4_i387): Ditto. (fprem1xf4_i387): Ditto. (xf2): Ditto. (sincosxf3): Ditto. (fptanxf4_i387): Ditto. (atan2xf3): Ditto. (fyl2xxf3_i387): Ditto. (fyl2xp1xf3_i387): Ditto. (fxtractxf3_i387): Ditto. (*f2xm1xf2_i387): Ditto. (fscalexf4_i387): Ditto. (rintxf2): Ditto. (*movxi_internal_avx512f): Set attr c86_attr. (*movoi_internal_avx): Ditto. (*movti_internal): Ditto. (*movdi_internal): Ditto. (*movsi_internal): Ditto. (*movhi_internal): Ditto. (*movtf_internal): Ditto. (*movdf_internal): Ditto. (*movsf_internal): Ditto. (*zero_extendsidi2): Ditto. (sqrtxf2): Ditto. (3): Ditto. (*ieee_s3): Ditto. * config/i386/mmx.md (*mmx_maskmovq): Set attr c86_decode. (*mmx_maskmovq): Ditto. (sse_movntq): Set attr c86_attr. (*mmx_blendps): Ditto. (mmx_blendvps): Ditto. (*mmx_pmaddwd): Ditto. (mmx_pblendvb_v8qi): Ditto. (mmx_pblendvb_): Ditto. (sse4_1_v4qiv4hi2): Ditto. (sse4_1_v2hiv2si2): Ditto. (sse4_1_v2qiv2si2): Ditto. (sse4_1_v2qiv2hi2): Ditto. (*mmx_pinsrd): Ditto. (*mmx_pinsrw): Ditto. (*mmx_pinsrb): Ditto. (*mmx_pextrw): Ditto. (*mmx_pextrw): Ditto. (*mmx_pextrw_zext): Ditto. (*mmx_pextrb): Ditto. (*mmx_pextrb_zext): Ditto. (*mmx_pblendw64): Ditto. (*mmx_pblendw32): Ditto. (*vec_extractv2si_1): Ditto. (*vec_extractv2si_1_zext): Ditto. (*pinsrw): Ditto. (*pinsrb): Ditto. (*pextrw): Ditto. (*pextrw): Ditto. (*pextrw_zext): Ditto. (*pextrb): Ditto. (*pextrb_zext): Ditto. (*mmx_psadbw): Ditto. * config/i386/sse.md (ktest): Set attr c86_decode. (*kortest): Ditto. (sse_cvtsi2ss): Ditto. (sse2_cvtsi2sd): Ditto. (sse2_maskmovdqu): Ditto. (*_dp): Ditto. (*_mpsadbw): Ditto. (pclmulqdq): Ditto. (conflict): Ditto. (_blendm): Set attr c86_attr. (sse2_movnti): Ditto. (_movnt): Ditto. (_movnt): Ditto. (_rcp2): Ditto. (sse_vmrcpv4sf2): Ditto. (rcp14): Ditto. (srcp14): Ditto. (srcp14_mask): Ditto. (_sqrt2): Ditto. (_vmsqrt2): Ditto. (*_vmsqrt2): Ditto. (rsqrt14): Ditto. (rsqrt14): Ditto. (rsqrt14__mask"): Ditto. (*3): Ditto. (ieee_3): Ditto. (*_vm3): Ditto. (_ieee_vm3 ): Ditto. (*ieee_3): Ditto. (avx_hv4df3): Ditto. (*sse3_haddv2df3): Ditto. (sse3_hsubv2df3): Ditto. (*sse3_haddv2df3_low): Ditto. (*sse3_hsubv2df3_low): Ditto. (avx_hv8sf3): Ditto. (sse3_hv4sf3): Ditto. (*reducep): Ditto. (reduces): Ditto. (*_eq3_1): Ditto. (_andnot3): Ditto. (*3): Ditto. (*andnot3): Ditto. (3): Ditto. (*tf3): Ditto. (vec_set_0): Ditto. (@vec_set_0): Ditto. (*sse4_1_extractps): Ditto. (vec_extract): Ditto. (_align): Ditto. (avx512bw_pmaddwd512): Ditto. (*avx2_pmaddw): Ditto. (*sse2_pmaddwd): Ditto. (*avx2_3): Ditto. (*avx512f_3): Ditto. (*avx512bw_3): Ditto. (*sse4_1_3): Ditto. (*v8hi3): Ditto. (*v16qi3): Ditto. (*andnot3_mask): Ditto. (*3): Ditto. (v1ti3): Ditto. (_pinsr): Ditto. (*_vinsert_0): Ditto. (_vinsert _1): Ditto. (vec_set_lo_): Ditto. (vec_set_hi_): Ditto. (avx512dq_shuf_64x2_1): Ditto. (avx512f_shuf_64x2_1): Ditto. (*avx512f_shuf_64x2_1_1): Ditto. (avx512vl_shuf_32x4_1): Ditto. (avx512f_shuf_32x4_1): Ditto. (*avx512f_shuf_32x4_1_1): Ditto. (*vec_extract): Ditto. (*vec_extract_zext): Ditto. (*vec_extractv16qi_zext): Ditto. (*vec_extractv4si): Ditto. (*vec_extractv4si_zext): Ditto. (*vec_extractv2di_1): Ditto. (*vec_concatv2si_sse4_1): Ditto. (vec_concatv2di): Ditto. (*_uavg3): Ditto. (*_psadbw): Ditto. (_movmsk): Ditto. (*_movmsk_ext): Ditto. (_pmovmskb): Ditto. (*_pmovmskb_zext): Ditto. (*sse2_maskmovdqu): Ditto. (avx2_phwv16hi3): Ditto. (ssse3_phwv8hi3): Ditto. (ssse3_phdv4si3): Ditto. (avx2_phdv8si3): Ditto. (avx2_pmaddubsw256): Ditto. (avx512bw_pmaddubsw512): Ditto. (ssse3_pmaddubsw128): Ditto. (_psign3): Ditto. (ssse3_psign3): Ditto. (*abs2): Ditto. (abs2_mask): Ditto. (abs2_mask): Ditto. (sse4a_movnt): Ditto. (sse4a_vmmovnt): Ditto. (_blend): Ditto. (_blendv): Ditto. (sse4_1_blendv): Ditto. (_movntdqa): Ditto. (_pblendvb): Ditto. (sse4_1_pblend): Ditto. (*avx2_pblend): Ditto. (avx2_pblendd): Ditto. (avx2_v16qiv16hi2): Ditto. (avx512bw_v32qiv32hi2): Ditto. (sse4_1_v8qiv8hi2): Ditto. (*sse4_1_v8qiv8hi2_1): Ditto. (avx512f_v16qiv16si2): Ditto. (avx2_v8qiv8si2): Ditto. (*avx2_v8qiv8si2_1): Ditto. (sse4_1_v4qiv4si2): Ditto. (*sse4_1_v4qiv4si2_1): Ditto. (avx512f_v16hiv16si2): Ditto. (avx2_v8hiv8si2): Ditto. (sse4_1_v4hiv4si2): Ditto. (*sse4_1_v4hiv4si2_1): Ditto. (avx512f_v8qiv8di2): Ditto. (*avx512f_v8qiv8di2_1): Ditto. (avx2_v4qiv4di2): Ditto. (*avx2_v4qiv4di2_1): Ditto. (sse4_1_v2qiv2di2): Ditto. (*sse4_1_v2qiv2di2_1): Ditto. (avx512f_v8hiv8di2): Ditto. (avx2_v4hiv4di2): Ditto. (*avx2_v4hiv4di2_1): Ditto. (sse4_1_v2hiv2di2): Ditto. (*sse4_1_v2hiv2di2_1): Ditto. (avx512f_v8siv8di2): Ditto. (avx2_v4siv4di2): Ditto. (sse4_1_v2siv2di2): Ditto. (*sse4_1_v2siv2di2_1): Ditto. (sse4_1_round): Ditto. (*sse4_1_round"): Ditto. (sse4_2_pcmpestri): Ditto. (sse4_2_pcmpestrm): Ditto. (sse4_2_pcmpestr_cconly): Ditto. (sse4_2_pcmpistri): Ditto. (sse4_2_pcmpistrm): Ditto. (sse4_2_pcmpistr_cconly): Ditto. (xop_phaddbw): Ditto. (xop_phaddbd): Ditto. (xop_phaddbq): Ditto. (xop_phaddwd): Ditto. (xop_phaddwq): Ditto. (xop_phadddq): Ditto. (xop_phsubbw): Ditto. (xop_phsubwd): Ditto. (xop_phsubdq): Ditto. (aesenc): Ditto. (aesenclast): Ditto. (aesdec): Ditto. (aesdeclast): Ditto. (aesimc): Ditto. (aeskeygenassist): Ditto. (_permvar): Ditto. (avx2_perm_1): Ditto. (_permvar): Ditto. (avx512f_perm_1): Ditto. (avx512f_broadcast): Ditto. (avx_vbroadcastf128_): Ditto. (avx512vl_broadcast_1): Ditto. (avx512dq_broadcast_1): Ditto. (*_vpermi2var3_mask): Ditto. (_vpermt2var3): Ditto. (_vpermt2var3_mask): Ditto. (*avx_vperm2f128_nozero): Ditto. (vec_set_lo_): Ditto. (vec_set_hi_): Ditto. (vec_set_lo_): Ditto. (vec_set_hi_): Ditto. (vec_set_lo_v32qi): Ditto. (_maskload): Ditto. (_maskstore): Ditto. (avx_vec_concat): Ditto. (_compress_mask): Ditto. (compress_mask): Ditto. (_compressstore_mask): Ditto. (compressstore_mask): Ditto. (expand_mask): Ditto. (avx512bw_dbpsadbw): Ditto. (clz2): Ditto. (vpmadd52v8di): Ditto. (vpmadd52): Ditto. (vpmadd52_maskz_1): Ditto. (vpmadd52_mask): Ditto. (vaesdec_): Ditto. (vaesdeclast_): Ditto. (vaesenc_): Ditto. (vaesenclast_): Ditto. 2026-04-29 Pan Li * config/riscv/predicates.md: Add ltu to swappable cmp operator. * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Handle the swapped rtx code as well. 2026-04-29 Jakub Jelinek PR middle-end/123635 * gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow): Move obj_nelts/atype computation before bitint_extended handling. For bitint_big_endian in the bitint_extended handling use size_zero_node only for limb_access_type calls, otherwise use size_int (nelts - obj_nelts) and pass NULL_TREE as first argument to limb_access calls. 2026-04-29 Raghesh Aloor * tree-vect-slp.cc (vect_slp_linearize_chain): Optional parameter allow_alt_code added (default true), check added not to follow MINUS_EXPR, when false. (vect_slp_check_for_roots): Calls vect_slp_linearize_chain with parameter allow_alt_code set to false. 2026-04-28 David Malcolm PR analyzer/124217 * doc/invoke.texi: Add -Wanalyzer-div-by-zero. 2026-04-28 David Malcolm * Makefile.in (ANALYZER_OBJS): Add analyzer/exploded-path.o. 2026-04-28 David Malcolm * Makefile.in (ANALYZER_OBJS): Add analyzer/setjmp-longjmp.o. 2026-04-28 David Malcolm * Makefile.in (ANALYZER_OBJS): Add analyzer/poisoned-value-diagnostic.o, analyzer/shift-diagnostics.o, and analyzer/write-to-const-diagnostics.o. 2026-04-28 Tomás Ortín Fernández PR analyzer/105890 * doc/invoke.texi: Rename -Wanalyzer-mkstemp-missing-suffix to -Wanalyzer-mktemp-missing-placeholder and -Wanalyzer-mkstemp-of-string-literal to -Wanalyzer-mktemp-of-string-literal. Add -Wanalyzer-mkostemp-redundant-flags. Fix alphabetical ordering of detailed descriptions. 2026-04-28 Tomás Ortín Fernández PR analyzer/105890 * doc/invoke.texi: Add -Wanalyzer-mkstemp-missing-suffix and -Wanalyzer-mkstemp-of-string-literal. 2026-04-28 David Malcolm * diagnostics/html-sink.cc: Update status comment. 2026-04-28 David Malcolm * doc/libgdiagnostics/topics/execution-paths.rst (diagnostic_execution_path_add_event_via_msg_buf): Fix indentation. * doc/libgdiagnostics/topics/message-buffers.rst: Replace duplicate entry for diagnostic_message_buffer_end_url with entry for diagnostic_message_buffer_end_quote. 2026-04-28 David Malcolm * diagnostics/context.h (diagnostics::context::make_option_name): Convert return type from char * to label_text, and rename to... (diagnostics::context::get_option_name): ...this. (diagnostics::context::make_option_url): Likewise, renaming to... (diagnostics::context::get_option_url): ...this. * diagnostics/html-sink.cc (html_builder::make_element_for_diagnostic): Update for above changes. * diagnostics/lazy-paths.cc (selftest::all_warnings_disabled): Update for above changes. * diagnostics/option-id-manager.h (diagnostics::option_id_manager::make_option_name): Convert return type from char * to label_text, and rename to... (diagnostics::option_id_manager::get_option_name): ...this. (diagnostics::option_id_manager::make_option_url): Likewise, renaming to... (diagnostics::option_id_manager::get_option_url): ...this. * diagnostics/sarif-sink.cc: Add #define INCLUDE_SET. (sarif_builder::m_rule_id_set): Convert from hash_set to std::set. (sarif_builder::make_result_object): Update for above changes, removing manual memory management. (sarif_builder::make_reporting_descriptor_object_for_warning): Likewise. * diagnostics/text-sink.cc (text_sink::print_option_information): Likewise. * lto-wrapper.cc (print_lto_docs_link): Likewise. (lto_diagnostic_option_id_manager::make_option_name): Convert return type from char * to label_text, and rename to... (lto_diagnostic_option_id_manager::get_option_name): ...this. * opts-diagnostic.h (gcc_diagnostic_option_id_manager): Update for above changes. * opts.cc (compiler_diagnostic_option_id_manager::make_option_name): Update as above, renaming to... (compiler_diagnostic_option_id_manager::get_option_name): ...this. (gcc_diagnostic_option_id_manager::make_option_url): Likewise, renaming to... (gcc_diagnostic_option_id_manager::get_option_url): ...this. 2026-04-28 David Malcolm PR sarif-replay/123056 * libsarifreplay.cc: Include "json-pointer-parsing.h". (sarif_replayer::sarif_replayer): Initialize m_root_val. (sarif_replayer::m_root_val): New field. (sarif_replayer::replay_file): Store m_root_val. (sarif_replayer::append_embeddded_link): Add message_obj param. Attempt to decode intra-sarif links, turning them into event IDs. (sarif_replayer::decode_link_within_sarif): New. (sarif_replayer::make_plain_text_within_result_message): Pass message_obj to append_embeddded_link. 2026-04-28 David Malcolm * Makefile.in (OBJS-libcommon): Add json-pointer-parsing.o. * json-pointer-parsing.cc: New file. * json-pointer-parsing.h: New file. * json.cc (json::object::set_string): Return a borrowed pointer to the new json::value. (json::object::set_integer): Likewise. (json::array::append_string): Likewise. * json.h (json::object::set_string): Likewise. (json::object::set_integer): Likewise. (json::array::append_string): Likewise. * selftest-run-tests.cc (selftest::run_tests): Call selftest::json_pointer_parsing_cc_tests. * selftest.h (selftest::json_pointer_parsing_cc_tests): New decl. 2026-04-28 David Malcolm * Makefile.in (OBJS-libcommon): Add pretty-print-token-buffer.o. * libgdiagnostics.cc: Drop include of "auto-obstack.h". Include "pretty-print-token-buffer.h". (class copying_token_printer): Move to pretty-print-token-buffer.cc. (struct diagnostic_message_buffer): Reimplement as a subclass of pretty_print_token_buffer. (diagnostic_message_buffer::to_string): Rename to pretty_print_token_buffer::to_string and move to pretty-print-token-buffer.cc. * pretty-print-token-buffer.cc: New file, based on material from libgdiagnostics.cc. * pretty-print-token-buffer.h: New file, based on material from libgdiagnostics.h. * selftest-run-tests.cc (selftest::run_tests): Call selftest::pretty_print_token_buffer_cc_tests. * selftest.h (selftest::pretty_print_token_buffer_cc_tests): New decl. 2026-04-28 David Malcolm * json-diagnostic.cc: Include "pretty-print-markup-json.h". (class pp_markup::quoted_json_pointer): Move to... * pretty-print-markup-json.h: ...this new file. 2026-04-28 Jeff Law PR target/124760 * config/riscv/bitmanip.md (SI->DI promoting shadd pattern): Promote intermediate SI ops to DI ops when there's a final extending op. 2026-04-28 Andrew Pinski PR tree-optimization/125067 * tree-ssa-phiprop.cc (can_handle_load): Fix copy and pasto on dominated_by_p. 2026-04-28 Vladimir N. Makarov * lra-eliminations.cc (mark_not_eliminable): Fix condition to consider hard regs instead of pseudos for INC/DEC/MODIFY operands. 2026-04-28 Vladimir N. Makarov * lra-constraints.cc (curr_insn_transform): When recreating subreg of a const put in pool, use the original subreg mode. 2026-04-28 Vladimir N. Makarov * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Use the same start prefered for all operand. 2026-04-28 Andrew Pinski * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse variable declaration right before its use. 2026-04-28 Andrew Pinski * tree-ssa-phiprop.cc (propagate_with_phi): Move vuse checks before the dominator tests. 2026-04-28 Andrew Pinski * tree-ssa-phiprop.cc (propagate_with_phi): Factor out checking the load for vdef to .... (can_move_into_conditional): Here. 2026-04-28 Philipp Tomsich * fold-mem-offsets.cc (pass_fold_mem_offsets::execute): Remove optimize_bb_for_size_p check. * config/riscv/riscv.cc (riscv_option_override): Disable flag_fold_mem_offsets when optimizing for size with compressed instructions. 2026-04-28 Jiawei Edwin Lu * config/riscv/riscv-ext.def: New extension. * config/riscv/riscv-ext.opt: Ditto. * config/riscv/sync-rvwmo.md: Add check for zalasr. * config/riscv/sync-ztso.md: Ditto. * doc/riscv-ext.texi: New extension. 2026-04-28 Maximilian Ciric * config/riscv/riscv.cc (riscv_can_tag_addresses): New function. (RISCV_HWASAN_TAG_SIZE): New definition. (riscv_memtag_tag_bitsize): New function. (TARGET_MEMTAG_CAN_TAG_ADDRESSES): New definition. (TARGET_MEMTAG_TAG_BITSIZE): Likewise. 2026-04-28 Dimitar Dimitrov * config/pru/pru.h (ASM_SPEC): Define. 2026-04-28 Jeff Law PR tree-optimization/94892 * config/riscv/riscv.md (sign_bit_splat_equality_test): New pattern. 2026-04-28 Richard Biener * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Do not attempt to live code-generate defs that are kept in scalar form anyway. * tree-vect-loop.cc (vectorizable_live_operation): Update comment. 2026-04-28 Richard Biener * tree-vectorizer.h (_slp_tree::live_lanes): New vector. (SLP_TREE_LIVE_LANES): New. * tree-vect-loop.cc (vectorizable_live_operation): Append to SLP_TREE_LIVE_LANES. * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize SLP_TREE_LIVE_LANES. (_slp_tree::~_slp_tree): Release SLP_TREE_LIVE_LANES. (vect_print_slp_tree): Adjust live lane dumping, indicating the SLP node a lane is code generated from. (vect_bb_slp_mark_live_stmts): No longer verify we can code-generate from all SLP nodes but at least one, picking the first. * tree-vect-stmts.cc (vect_transform_stmt): Iterate over SLP_TREE_LIVE_LANES. (vect_analyze_stmt): Also analyze reductions for live lanes. 2026-04-28 Richard Biener PR tree-optimization/124222 * tree-vect-slp.cc (vect_slp_gather_vectorized_scalar_stmts): Remove. (vect_bb_slp_scalar_cost): Simplify by using SLP_TREE_TYPE and a use-def walk of the scalar stmts SSA uses. (vect_bb_vectorization_profitable_p): Simplify. 2026-04-28 Richard Biener * tree-vect-slp.cc (vec_slp_has_scalar_use): Remove. (vect_bb_slp_mark_live_stmts): Simplify. 2026-04-28 Richard Biener * tree-vect-slp.cc (vect_slp_analyze_bb_1): Split out pure_slp marking into ... (vect_bb_slp_mark_stmts_vectorized): ... new function. Compute full scalar stmt coverage of the SLP graph. (vect_slp_gather_extern_scalar_stmts): New helper. (vect_bb_slp_mark_live_stmts): Adjust. * tree-vect-loop.cc (vectorizable_live_operation): Likewise. 2026-04-28 Richard Biener * tree-vect-slp.cc (struct slp_oprnds): New. 2026-04-28 Richard Biener * tree-vect-slp.cc (vect_slp_analyze_operations): Move vect_bb_slp_mark_live_stmts call ... (vect_slp_analyze_bb_1): ... here. Move SLP stmt marking right before it. (vect_mark_slp_stmts): Remove unused overload. 2026-04-28 Richard Biener * tree-vectorizer.h (vect_slp_child_index_for_operand): Get a stmt_vec_info, elide gather-scatter flag. * tree-vect-stmts.cc (vect_check_store_rhs): Adjust. (vectorizable_simd_clone_call): Likewise. (vectorizable_store): Likewise. (vectorizable_load): Likewise. * tree-vect-slp.cc (vect_get_operand_map): New overload with a stmt_vec_info argument. (vect_slp_child_index_for_operand): Adjust. (vect_get_and_check_slp_defs): Likewise. (compatible_calls_p): Likewise. (vect_build_slp_tree_2): Likewise. 2026-04-28 Richard Biener * tree-vect-slp.cc (vect_get_operand_map): Put operand map data here. Handle VIEW_CONVERT_EXPR, use else if, factor out assertion. (vect_get_and_check_slp_defs): Remove explicit VIEW_CONVERT_EXPR handling here. 2026-04-28 Uros Bizjak * config/i386/i386.cc (construct_container): Remove redundant early call to classify_argument. Recompute the classification only when needed and assert that it succeeds. (examine_argument): Change in_return parameter type to bool. (function_arg_advance_64): Update call to examine_argument. (function_arg_64): Update call to construct_container. (function_value_64): Likewise. (ix86_return_in_memory): Update call to examine_argument. (ix86_gimplify_va_arg): Update calls to construct_container and examine_argument. 2026-04-28 Bohan Lei * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Specify -mcpu instead of -march when --with-cpu is used. 2026-04-28 Bohan Lei * simplify-rtx.cc (simplify_context::simplify_relational_operation_1): Add simplifications for `(cmp (and/ior x C1) C2)`. 2026-04-28 Richard Biener * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Add comment about costing of prologue/epilogue. 2026-04-28 Richard Biener * tree-vect-loop.cc (vect_get_known_peeling_cost): Use scalar_costs instead of guesstimating it. 2026-04-28 Richard Biener * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost): Record stmt cost to vect_body. 2026-04-28 Richard Biener * tree-vectorizer.h (vect_get_known_peeling_cost): Simplify API. * tree-vect-loop.cc (vect_get_known_peeling_cost): Avoid all the overhead of record_stmt_cost as we only are interested in the overall sum of the included builtin_vectorization_cost calls. * tree-vect-data-refs.cc (vect_peeling_hash_get_lowest_cost): Adjust. (vect_enhance_data_refs_alignment): Likewise. 2026-04-28 Netanel Komm PR tree-optimization/112659 PR tree-optimization/122996 * match.pd: Extend conditional addition pattern to handle a third constant and uniform vectors. 2026-04-28 Monk Chiang * config/riscv/riscv.md (length attribute): Check CROSSING_JUMP_P for jump instructions and use length 8 for crossing jumps. (jump): Update comment to explain when long form is used. 2026-04-28 Jakub Jelinek PR tree-optimization/125039 * range-op-float.cc (operator_not_equal::fold_range): Call empty_range_varying when not calling frelop_early_resolve. 2026-04-28 Jakub Jelinek * tree.cc (build_bitint_type): Allow build_bitint_type (1, 0). (signed_or_unsigned_type_for): Call that for !unsignedp case of BITINT_TYPE with bits 1. 2026-04-28 Andrew Pinski PR tree-optimization/125036 * tree-ssa-loop-ivopts.cc (add_iv_candidate_for_doloop): Don't assert on niniter being integer type. Convert to a full mode integer type if non integer or non-full mode integer type. 2026-04-27 Jeff Law PR tree-optimization/57650 * config/riscv/zicond.md: Generalize patterns which identify a logical AND of an equality test and some other sCC insn to handle more cases. 2026-04-27 Soumya AR * config/aarch64/aarch64-narrow-gp-writes.cc (narrow_gp_writes::narrow_gp_writes): Remove redundant m_curr_insn initialization. (narrow_gp_writes::~narrow_gp_writes): Remove redundant m_curr_insn de-initialization. 2026-04-27 Philipp Tomsich * ext-dce.cc (promotion_candidate_info): New struct. (copy_info): New struct. (promotion_candidates, promotable_dests): New file-scope variables. (consumed_by_candidate, promotion_copies): Likewise. (ext_dce_try_promote_operation): New function to promote sign/zero-extended arithmetic to wider mode. (ext_dce_record_promotion_candidate): New function to record promotion candidates for deferred chain analysis. (ext_dce_promote_chained_candidates): New function to promote only chained candidates. (ext_dce_process_uses): Record candidates instead of promoting immediately; propagate chain info through optimized copies. (ext_dce_process_bb): Call ext_dce_promote_chained_candidates after processing all insns in a block. (ext_dce_init): Allocate chain detection bitmaps. (ext_dce_finish): Free chain detection data structures. 2026-04-27 Philipp Tomsich * ext-dce.cc (ext_dce_try_optimize_extension): Only remove REG_EQUAL/EQUIV notes when validate_change succeeds. 2026-04-27 Soumya AR * config/aarch64/tuning_models/generic.h: Update br_mispredict_factor to 7. 2026-04-27 Philipp Tomsich * match.pd: Relax single_use for eq/ne when folded constant is zero. 2026-04-27 Vladimir N. Makarov * lra-lives.cc (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead of dead_set. 2026-04-27 Vladimir N. Makarov * ira-costs.cc (record_reg_classes): When calculating alt_cost use the right cost of memory-reg move. * ira-emit.cc (emit_move_list): Use load cost instead of store for moving memory to reg. 2026-04-27 Vladimir N. Makarov * ira-build.cc (add_to_conflicts): Use sizeof(ira_object_p) instead of sizeof(ira_allocno_t) for allocations. * ira-color.cc (print_hard_reg_set): Fix printing hard reg set. * ira-emit.cc (allocno_last_set, allocno_last_set_check): Remove unused static variables. * ira.cc (combine_and_move_insns): Fix dead note recognition. (ira_remove_insn_scratches): Use dump_file instead of ira_dump_file. * lra-constraints.cc (match_reload): Remove always true condition. (undo_optional_reloads): Fix recognition of clobber for assertion. 2026-04-27 Pengxuan Zheng PR tree-optimization/124886 * match.pd ((X * C1) + (X << C2) -> X * (C1 + (1 << C2))): New pattern. 2026-04-27 Jeff Law PR target/121268 * config/riscv/bitmanip.md: Add splitters to exploit identities that relate subtraction and bitwise negation on 2's complement arithmetic. 2026-04-27 Muhammad Kamran * doc/sourcebuild.texi (Scan object metadata with readelf): Document object-readelf-attributes, object-readelf-attributes-not, object-readelf-notes, and object-readelf-notes-not as regex-based checks with optional target/xfail selectors. 2026-04-27 Netanel Komm PR tree-optimization/93556 * gimple-fold.cc (gimple_fold_builtin_mempcpy): New function. (gimple_fold_builtin): Handle BUILT_IN_MEMPCPY. 2026-04-27 Richard Biener PR tree-optimization/125025 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Avoid negation of most negative signed integer. (number_of_iterations_lt): Likewise. 2026-04-27 Richard Biener PR tree-optimization/125019 * tree-vect-loop.cc (vectorizable_recurr): Properly guard against hitting last stmt when searching for the insertion place. 2026-04-26 Andrew Pinski PR tree-optimization/110262 * match.pd (`signed < 0 ? positive : min`): New pattern. 2026-04-26 Gerald Pfeifer * doc/install.texi (Prerequisites): Use Binutils over binutils to refer to that project. (Downloading the source): Ditto. (Configuration): Ditto. (Building): Ditto. (Specific): Ditto. 2026-04-26 Roger Sayle * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) : Simplify a (non-identity) vec_select of a vec_select. 2026-04-26 Roger Sayle PR tree-optimization/124715 * match.pd (simpify pows): Check flag_errno_math before simplifying pow(x,-1) -> 1/x when x could be zero. 2026-04-26 Roger Sayle * config/i386/sse.md (_cmp3): Change mode iterator from V48H_AVX512VL to VFH_AVX512VL and op3's predicate from to const_0_to_31_operand. (_cmp3): Change mode iterator from VI12_AVX512VL to VI1248_AVX512VLBW. (_ucmp3): Likewise. 2026-04-26 Jeff Law PR rtl-optimization/56096 * config/riscv/riscv.md: Add new patterns to optimize certain cases with a logical AND feeding an equality test against zero. 2026-04-25 Andrew Pinski PR tree-optimization/124061 * tree-scalar-evolution.cc (interpret_rhs_expr): Use INTEGRAL_NB_TYPE_P instead of comparing the code to INTEGER_TYPE. * tree-ssa-loop-niter.cc (number_of_iterations_ne): Likewise. (number_of_iterations_cltz): Likewise. (number_of_iterations_exit_assumptions): Likewise. * tree.h (INTEGRAL_NB_TYPE_P): New macro. 2026-04-25 Jeff Law PR target/123904 * config/riscv/riscv.md (masking shifted value): New splitter to optimize certain masking operations on shifted values. 2026-04-25 Jeff Law PR target/123838 * config/riscv/riscv.md: Use splitters to simplify shifts where the shift count is 31-N or 63-N. 2026-04-25 Pan Li * config/riscv/predicates.md: Add ge to the swappable cmp operator iterator. * config/riscv/riscv-v.cc (get_swapped_cmp_rtx_code): Take care of the swapped rtx code as well. 2026-04-25 Daniel Barboza PR tree-optimization/64567 * match.pd (`cond (bit_and A IMM) (bit_or A IMM) A`): New pattern. (`cond (bit_and A IMM) (bit_and A ~IMM) A`): New pattern. 2026-04-25 Avinal Kumar PR tree-optimization/122989 * tree-ssa-strlen.cc (get_string_length): Use gimple_convert_to_ptrofftype and gimple_build instead of convert_to_ptrofftype/force_gimple_operand_gsi/gimple_build_assign. 2026-04-25 Jeff Law PR target/124984 * config/riscv/thead.cc (th_memidx_classify_address_index): Extract constant multiplicand value from the right object. 2026-04-24 Hans-Peter Nilsson * doc/sourcebuild.texi (Effective-Target Keywords): Document 'sleep'. 2026-04-24 Jeff Law PR rtl-optimization/80770 * config/riscv/riscv.md (zero_extendqi2): Always extend out to a word and use a subreg lowpart extraction to get the right bits. (extend2): Similarly. 2026-04-24 Carter Rennick PR target/120144 * config/mips/mips.h (MAX_FIXED_MODE_SIZE): Remove. 2026-04-24 Eikansh Gupta PR tree-optimization/123966 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Don't mark a relaxed atomic load with no LHS as necessary. 2026-04-24 Milan Tripkovic * config/riscv/riscv.cc (riscv_sched_adjust_cost):Enable TARGET_ADJUST_LMUL_COST for spacemit_x60. * config/riscv/spacemit-x60.md: Add vector pipeline model for Spacemit-X60. Co-authored-by: Dusan Stojkovic Co-authored-by: Nikola Ratkovac 2026-04-24 Richard Biener * tree-vect-slp.cc (vect_create_new_slp_node): Assert that 'code' is either ERROR_MARK or VEC_PERM_EXPR. Document properly. * tree-vect-slp-patterns.cc (vect_build_swap_evenodd_node): Use lane_permutation_t. (vect_build_combine_node): Likewise. Pass VEC_PERM_EXPR as code. 2026-04-24 Richard Biener * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Do not pass vector type to costing. 2026-04-24 Raphael Zinsly PR target/123839 * config/riscv/riscv-v.cc (shuffle_slide_patterns): Use a vslideup+vslidedown pair rather than a vcompressed based sequence. 2026-04-24 Jakub Jelinek PR target/124133 * config/rs6000/rs6000-c.cc (c_fold_convert): New function. (c_fold_build2_loc): Likewise. (fully_fold_convert): Use c_fold_convert instead of fold_convert. (altivec_build_resolved_builtin): Likewise. Use c_fold_build2_loc instead of fold_build2. (resolve_vec_mul, resolve_vec_adde_sube, resolve_vec_addec_subec): Use c_fold_build2_loc instead of fold_build2_loc. (resolve_vec_splats, resolve_vec_extract): Use c_fold_convert instead of fold_convert. (resolve_vec_insert): Use c_fold_build2_loc instead of fold_build2. (altivec_resolve_overloaded_builtin): Use c_fold_convert instead of fold_convert. 2026-04-24 Jakub Jelinek PR middle-end/123635 PR tree-optimization/124988 * gimple-lower-bitint.cc (bitint_large_huge::finish_arith_overflow): Handle bitint_extend. (bitint_large_huge::lower_addsub_overflow): Fix up comment spelling. For bitint_extended extend the partial limb if any. 2026-04-24 H.J. Lu PR target/125009 * config/i386/i386-features.cc (ix86_place_single_vector_set): Support CONST_VECTOR load no larger than integer register. (ix86_broadcast_inner): Use inner mode as the scalar mode for CONST_VECTOR load source. (pass_x86_cse::x86_cse): Generate CONST_VECTOR broadcast source for CONST_VECTOR load no larger than integer register. 2026-04-24 Richard Biener PR tree-optimization/124843 * tree-vect-patterns.cc (vect_recog_bool_pattern): Recognize BIT_NOT_EXPR of scalar bools and rewrite with BIT_XOR_EXPR. 2026-04-24 Richard Biener * tree-vect-data-refs.cc (vect_duplicate_ssa_name_ptr_info): Create points-to info from decl-based accesses. (vect_create_addr_base_for_vector_ref): Adjust. (vect_create_data_ref_ptr): Likewise. (bump_vector_ptr): Likewise. 2026-04-24 Richard Biener * tree-vectorizer.h (_stmt_vec_info::slp_vect_pattern_only_p): Remove. (STMT_VINFO_SLP_VECT_ONLY_PATTERN): Likewise. * tree-vectorizer.cc (vec_info::new_stmt_vec_info): Do not initialize STMT_VINFO_SLP_VECT_ONLY_PATTERN. * tree-vect-loop.cc (vect_analyze_loop_2): Nothing to do for SLP pattern stmts that are not reachable from scalar stmts anyway. Remove dead code. * tree-vect-slp-patterns.cc (complex_pattern::build): Do not set STMT_VINFO_SLP_VECT_ONLY_PATTERN. (addsub_pattern::build): Likewise. * tree-vect-slp.cc (vect_free_slp_tree): Remove dead code. 2026-04-24 Richard Biener * tree-vect-slp-patterns.cc (complex_pattern::build): Add pattern for the original stmt, do not set STMT_VINFO_REDUC_DEF. (addsub_pattern::build): Likewise. 2026-04-24 Netanel Komm PR tree-optimization/122996 * match.pd (x != CST1 ? x + CST2 : 0 -> x + CST2): New pattern. 2026-04-24 Richard Biener PR tree-optimization/124947 * tree-ssa-loop-ivopts.cc (may_eliminate_iv): Do not use a candidate that involves undefs. 2026-04-24 Richard Biener PR tree-optimization/124946 * tree-vect-loop.cc (vect_emulate_mixed_dot_prod): Perform the constant biasing in an unsigned type. 2026-04-23 Michiel Derhaeg * config/riscv/pipeline-checker: Filter tuneless insn types. 2026-04-23 Yuxuan Chen PR c++/107187 * doc/extend.texi: Document __attribute__((trivial_abi)). 2026-04-23 Philipp Tomsich * config/riscv/bitmanip.md (si3): Add SUBREG_PROMOTED annotation to lowpart result. 2026-04-23 Andrew Pinski PR target/124029 * config/riscv/riscv.cc (riscv_rtx_costs): Improve costing of COMPARE nodes. 2026-04-23 Eric Botcazou * config/i386/cygming.h (STACK_CHECK_PROTECT): Define. 2026-04-23 H.J. Lu PR target/124994 * config/i386/i386-features.cc (x86_cse::gate): Drop TARGET_SSE2. 2026-04-23 Bohan Lei * config/riscv/riscv.cc (vxrm_unknown_p): Remove `CALL_P` check 2026-04-22 Sam James * ipa-prop.cc (param_type_may_change_p): Fix comment typo. 2026-04-22 Sam James * config/i386/i386.cc (ix86_get_callcvt): Say 'regparm' in comment, not 'regparam'. 2026-04-22 Andrew Pinski * cfghooks.cc (make_forwarder_block): New data argument, pass it down to redirect_edge_p. * cfghooks.h (make_forwarder_block): Add void* argument. * cfgloop.cc (mfb_reis_set): Remove. (mfb_redirect_edges_in_set): Add new data argument. Use it instead of mfb_reis_set. (form_subloop): Create a local variable instead of mfb_areis_set. Update call to make_forwarder_block. (merge_latch_edges): Likewise. * cfgloopmanip.cc (mfb_kj_edge): Remove. (mfb_keep_just): Add new data argument. Use it instead of mfb_kj_edge. (create_preheader): Use local variable instead of mfb_kj_edge. Update call to make_forwarder_block. * cfgloopmanip.h (mfb_keep_just): Add void* argument. * tree-cfgcleanup.cc (mfb_keep_latches): Add unused void* arugment. (cleanup_tree_cfg_noloop): Update call to make_forwarder_block. * tree-ssa-threadupdate.cc (fwd_jt_path_registry::thread_through_loop_header): Use local variable instead of mfb_kj_edge. Update call to make_forwarder_block. 2026-04-22 Andrew Pinski * cfghooks.cc (make_forwarder_block): Remove new_bb_cbk argument. * cfghooks.h (make_forwarder_block): Remove last argument. * cfgloop.cc (form_subloop): Update call to make_forwarder_block. (merge_latch_edges): Likewise. * cfgloopmanip.cc (create_preheader): Likewise. * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise. * tree-ssa-threadupdate.cc (fwd_jt_path_registry::thread_through_loop_header): Likewise. 2026-04-22 Sam James * doc/invoke.texi (-ffunction-cse): Add missing full stop. 2026-04-22 Sam James * doc/invoke.texi (-Wduplicate-decl-specifier): Say 'a duplicate'. 2026-04-22 Sam James * doc/invoke.texi (-Waddress): Drop unnecessary 'warning'. 2026-04-22 Sam James * doc/invoke.texi: Fix whitespace. 2026-04-22 Sam James * doc/invoke.texi: Write 'In C,' and 'In C++,' with a comma consistently. 2026-04-22 Sam James * doc/invoke.texi (-Walloca): Simplify phrasing. (-Walloca-larger-than=-): Ditto. 2026-04-22 Alice Carlotti * mode-switching.cc (optimize_mode_switching): Add dump output. 2026-04-22 Alice Carlotti * config/aarch64/aarch64.cc (aarch64_start_call_args): Extend comment. 2026-04-22 Alice Carlotti * config/aarch64/aarch64.cc (aarch64_mode_confluence): Fix comment typo. * target.def (mode_switching): Fix incorrect variable names in documentation. * doc/tm.texi: Regenerate. 2026-04-22 Alice Carlotti PR target/119210 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state): Add PSTATE.ZA enablement, and zero it if already enabled. 2026-04-22 Alice Carlotti * config/aarch64/aarch64-sme.md (aarch64_sme_write_zt): Add ZTO_REGNUM use and make unspec non-volatile. 2026-04-22 Kyrylo Tkachov PR target/124908 * config/aarch64/aarch64-sve-builtins-base.cc (svld1rq_impl::fold): When the SVE vector length equals the quadword width, emit VIEW_CONVERT_EXPR instead of VEC_PERM_EXPR. 2026-04-22 Richard Earnshaw PR target/124933 * config/arm/constraints.md (Uj): Allow offset addressing for all targets, only allow Neon addressing when we have both Neon and FP16INST. * config/arm/vfp.md (mov_vfp_16): Only use vld1/vst1 when the pattern needs address write-back. 2026-04-22 Jakub Jelinek PR middle-end/124971 * gensupport.cc (convert_syntax): Fix up // comment handling. 2026-04-21 Gaius Mulley PR modula2/120189 * doc/gm2.texi (Building a shared library): Replace constant string with DEFAULT_RUNTIME_MODULE_OVERRIDE. 2026-04-21 Jakub Jelinek PR middle-end/123635 * gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt): Extend the padding bits not just for unsigned MULT_EXPR but for any TYPE_OVERFLOW_WRAPS MULT_EXPR and signed TYPE_OVERFLOW_WRAPS division. 2026-04-21 Jakub Jelinek PR tree-optimization/124941 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Use build_bitint_type rather than build_nonstandard_integer_type for maxsizei larger than MAX_FIXED_MODE_SIZE. 2026-04-21 Gaius Mulley PR modula2/120189 * doc/gm2.texi (Building a shared library): Rewrite. 2026-04-20 Jakub Jelinek PR middle-end/123635 * gimple-lower-bitint.cc (bitint_large_huge::lower_shift_stmt): In the RSHIFT_EXPR case, use p2 in two LE_EXPR conditions rather than just one. In LSHIFT_EXPR case, use signed RSHIFT_EXPR instead of unsigned. (bitint_large_huge::lower_muldiv_stmt): For unsigned MULT_EXPR with bitint_extended if prec is not multiple of limb_prec, clear padding bits after libgcc call. (bitint_large_huge::lower_float_conv_stmt): Use signed RSHIFT_EXPR instead of unsigned. 2026-04-20 Jakub Jelinek PR middle-end/123635 * gimple-lower-bitint.cc (bitint_precision_kind): Assert the current assumptions, that bitint_ext_full for abi_limb_prec > limb_prec is supported only when abi_limb_prec is limb_Prec * 2 and it is not big endian in that case. (bitint_large_huge::lower_mergeable_stmt): Don't set separate_ext fir bitint_ext_full for bit-field stores. Guard the condition on an extra limb of padding bits to be extended rather than including earlier extensions in that too. If already sign extending before and type is unsigned, set zero_ms_limb instead and later handle it. (bitint_large_huge::lower_shift_stmt): Handle bitint_ext_full. 2026-04-20 Soumya AR * config/aarch64/aarch64-narrow-gp-writes.cc (narrow_dimode_src): Remove redundant checks. Don't recurse when an operand remains DImode. (narrow_gp_writes::optimize_compare_arith_insn): Use HOST_WIDE_INT_PRINT_HEX. (narrow_gp_writes::optimize_single_set_insn): Likewise. 2026-04-19 Richard Sandiford PR rtl-optimization/124643 * cse.cc (canon_reg): Handle and canonicalize subregs. 2026-04-18 Richard Sandiford * config/aarch64/aarch64.md (SME_STATE_REGNUM): Fix a comment typo. 2026-04-18 Gopi Kumar Bulusu PR target/103383 * config/microblaze/microblaze.md: bswaphi2: (set_attr length 8) 2026-04-17 Jonathan Wakely PR c/84717 * doc/extend.texi (Decimal Float): Document d and D suffixes. Fix index entries for decimal float suffixes. 2026-04-17 Jan Hubicka PR ipa/120098 * ipa-polymorphic-call.cc (polymorphic_ctor_dtor_p): Remove check for pure/const flags 2026-04-17 Jan Hubicka PR ipa/120098 * ipa-devirt.cc (odr_type_p): Add no_derived_construction_vtables (odr_types_ptr): Move ahead in file. (odr_types): Move ahead in file. (anonymous_construction_vtable_p): New function. (mark_derived_construction_vtables): New function. (construction_vtable_hook): New function. (type_possibly_instantiated_p): Watch for construction vtables. 2026-04-17 Thomas Schwinge * config/nvptx/nvptx-sm.def: Add '50'. * config/nvptx/nvptx-gen.h: Regenerate. * config/nvptx/nvptx-gen.opt: Likewise. * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust. * config/nvptx/nvptx.opt (-march-map=sm_50): Likewise. * config.gcc: Likewise. * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_50'. * config/nvptx/gen-multilib-matches-tests: Extend. 2026-04-17 Thomas Schwinge * config/nvptx/nvptx-opts.h (enum ptx_version): Add 'PTX_VERSION_4_0'. * config/nvptx/nvptx.cc (ptx_version_to_string) (ptx_version_to_number): Adjust. * config/nvptx/nvptx.h (TARGET_PTX_4_0): New. * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue' '4.0' for 'PTX_VERSION_4_0'. * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.0'. 2026-04-17 Tamar Christina PR middle-end/124900 * gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop): Do not expand to table when compiling for size. (class crc_optimization): Update prototype of optimize_crc_loop to include loop. (crc_optimization::execute): Pass loop to optimize_crc_loop. 2026-04-16 Richard Earnshaw * config/arm/arm-cpus.in (cortex-m85): Allow +cdecp. * doc/invoke.texi: Document this 2026-04-16 Jakub Jelinek PR target/124565 * config/stormy16/stormy16.cc (xstormy16_build_builtin_va_list): Set TREE_PUBLIC on type_decl. * config/xtensa/xtensa.cc (xtensa_build_builtin_va_list): Likewise. 2026-04-16 Tobias Burnus PR target/124897 * doc/install.texi (amdgcn-amdhsa): Fix required LLVM version for default multilib. 2026-04-16 Richard Biener PR middle-end/124877 * calls.cc (initialize_argument_information): Compute signedness of the formal argument type before applying PROMOTE_PROTOTYPES promotion. Also apply promotion to a smaller than int integer first member type of a transparent union. * target.def (promote_prototypes): Update documentation. * doc/tm.texi: Re-generate. 2026-04-16 Jakub Jelinek PR target/124892 * config/i386/i386.md (clz2_lzcnt_nf, __nf, popcount2_nf): Emit explicit set of (match_dup 0) to (const_int 0) without flags clobber instead of using ix86_expand_clear. 2026-04-16 Jakub Jelinek PR tree-optimization/124891 * tree-ssa-propagate.cc (substitute_and_fold_dom_walker::before_dom_children): Call update_stmt in the did_replace case before calling fold_stmt. 2026-04-15 Martin Jambor PR tree-optimization/122976 * tree-sra.cc (path_comparable_for_same_access): Return false if the base is a MEM_REF with a different underlying type. 2026-04-15 Jakub Jelinek PR middle-end/123635 * target.h (enum bitint_ext): New. (struct bitint_info): Change extend type from bool to enum bitint_ext and document it. * gimple-lower-bitint.cc (bitint_extended): Change type from bool to enum bitint_ext. (bitint_precision_kind): Change bitint_extended to bitint_ext_partial from bitint_ext_full if limb_mode is the same as abi_limb_mode. (bitint_large_huge::limb_access_type): For bitint_extended == bitint_ext_full allow access to the most significant limb solely with padding bits if present. (bitint_large_huge::lower_mergeable_stmt): Handle bitint_extended == bitint_ext_full extension if needed. (bitint_large_huge::lower_muldiv_stmt): Likewise. (bitint_large_huge::lower_float_conv_stmt): Likewise. * config/aarch64/aarch64.cc (aarch64_bitint_type_info): Set info->extended to bitint_ext_undef rather than false. * config/arm/arm.cc (arm_bitint_type_info): Set info->extended to bitint_ext_full rather than true. * config/i386/i386.cc (ix86_bitint_type_info): Set info->extended to bitint_ext_undef rather than false. * config/loongarch/loongarch.cc (loongarch_bitint_type_info): Set info->extended to bitint_ext_partial rather than true. * config/riscv/riscv.cc (riscv_bitint_type_info): Set info->extended to bitint_ext_full rather than true. * config/s390/s390.cc (s390_bitint_type_info): Likewise. 2026-04-15 Jason Merrill PR c++/117133 PR c++/124768 PR c++/124773 * doc/trouble.texi (Linkage in Anonymous Namespaces): Remove. 2026-04-15 H.J. Lu * config/i386/i386.cc (x86_64_preserve_none_int_parameter_registers): Replace ix86_function_value_regno_p with ix86_function_arg_regno_p in comments. 2026-04-14 Tamar Christina * config/aarch64/aarch64-cores.def (armagicpu): New. * config/aarch64/aarch64-tune.md: Renegerate * doc/invoke.texi: Document it. 2026-04-14 Andrew MacLeod PR tree-optimization/124809 * value-relation.cc (equiv_oracle::equiv_oracle): Allocate lhs equivalence bitmap. (relation_oracle::record): Check if LHS has already created an equivalence record. * value-relation.h (relation_oracle::relation_oracle): New. (relation_oracle::m_lhs_equiv_set_p): New. 2026-04-14 Richard Earnshaw PR target/123102 * config/arm/arm.md (*cmp_ite0): Apply stricter checks on the comparison mode. (*cmp_ite1, *cmp_and, *cmp_ior): Likewise. 2026-04-14 Martin Jambor PR ipa/124777 * ipa-cp.h (ipacp_value_safe_for_type): Declare. * ipa-cp.cc (ipacp_value_safe_for_type): Make public. * ipa-prop.cc (ipa_set_jf_cst_copy): Fix comment. (ipa_convert_prop_cst_jf): New function. (update_jump_functions_after_inlining): Handle the constant to pass-through case by calling ipa_convert_prop_cst_jf. 2026-04-14 Soumya AR * config/aarch64/aarch64.opt.urls: Regenerate. 2026-04-14 Richard Biener PR tree-optimization/124875 * tree-ssa-pre.cc (prefer): Also compare TBAA set and base_set. Refactor computing the final prefered expression, do early outs and allow same prefered expressions. (sorted_array_from_bitmap_set): Fix thinko that prevented the last expression in the set of being excluded. 2026-04-14 Soumya AR Kyrylo Tkachov * config.gcc: Add aarch64-narrow-gp-writes.o. * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert pass_narrow_gp_writes before pass_cleanup_barriers. * config/aarch64/aarch64-protos.h (make_pass_narrow_gp_writes): Declare. * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION): Add NARROW_GP_WRITES. * config/aarch64/aarch64.opt (mnarrow-gp-writes): New option. * config/aarch64/t-aarch64: Add aarch64-narrow-gp-writes.o rule. * config/aarch64/tuning_models/olympus.h: Add AARCH64_EXTRA_TUNE_NARROW_GP_WRITES to tune_flags. * doc/invoke.texi: Document -mnarrow-gp-writes. * config/aarch64/aarch64-narrow-gp-writes.cc: New file. 2026-04-14 Jakub Jelinek PR tree-optimization/124826 * gimple-lower-bitint.cc (bitint_large_huge::handle_load): Look through BIT_FIELD_REF with zero bit offset. 2026-04-14 Jakub Jelinek * cgraphunit.cc (process_symver_attribute): Fix comment typo, bintuils -> binutils. 2026-04-14 Richard Biener PR tree-optimization/124868 * gimple-ssa-isolate-paths.cc (handle_return_addr_local_phi_arg): Do not diagnose returns in blocks not dominated by the PHI. (find_implicit_erroneous_behavior): Do two sweeps over PHIs, first for NULL dereferences and then for local address returns. 2026-04-14 Avinash Jayakar Revert: 2026-04-07 Avinash Jayakar Surya Kumari Jangala * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add logic to handle __builtin_ppc_atomic_cas_local. * config/rs6000/rs6000-builtins.def: New builtins for __builtin_ppc_atomic_cas_local with types. * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Handle builtins with up to 6 arguments. * config/rs6000/rs6000-overload.def: Overload builtin for signed/unsiged char, short, int, long, __int128. * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): Add additional parameter 'local' to the prototype. * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass new parameter to generate load-locked instruction. (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call emit_load_locked() with additional parameter value of EH bit. (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). (rs6000_expand_atomic_op): Likewise. * config/rs6000/sync.md (load_locked): Add new operand in RTL template. Specify EH bit in the larx instruction. (load_locked_si): Likewise. (load_lockedpti): Likewise. (load_lockedti): Add new operand in RTL template. Pass EH bit to gen_load_lockedpti(). (atomic_compare_and_swap): Pass new parameter 'false' to rs6000_expand_atomic_compare_and_swap. (atomic_compare_and_swap_local): New define_expand. 2026-04-14 H.J. Lu PR target/124876 * config/i386/i386.cc (ix86_zero_call_used_regs): Zero ZMM16-31 if needed. 2026-04-13 Surya Kumari Jangala Revert: 2025-06-30 Peter Bergner PR target/109116 * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_EXTRACT. (vsx_disassemble_pair): Expand into a vector register sized subreg. (mma_disassemble_acc): Likewise. (*vsx_disassemble_pair): Delete. (*mma_disassemble_acc): Likewise. 2026-04-13 Josef Melcr PR ipa/124700 * cgraph.cc (cgraph_node::is_clone_of): New method, determines whether a node is a descendant of another in the clone tree. * cgraph.h (struct cgraph_node): Add decl of is_clone_of. * cgraphbuild.cc (mark_address): Fix reference creation for cloned callback functions. 2026-04-13 Hu, Lin1 PR target/124710 * config/i386/sse.md (iptrps2qq): New mode attribute for ps2qq Intel syntax memory operand size override. (avx10_2_vcvttps2qqs): Use %1 in Intel syntax to emit qword ptr for V2DI (128-bit) memory operands. (avx10_2_vcvttsd2sis): Use %q1 in Intel syntax to emit qword ptr for scalar double memory operands. (avx10_2_vcvttss2sis): Use %k1 in Intel syntax to emit dword ptr for scalar single memory operands. 2026-04-11 Christopher Albert PR fortran/93554 * omp-expand.cc (expand_oacc_for): Relax entry_bb and cont_bb assertions to allow intermediate blocks from finalization code. Remove exit_bb predecessor count assertion. 2026-04-10 Jakub Jelinek PR middle-end/124827 * gimple-ssa-warn-access.cc (xchg_models): Remove. (pass_waccess::check_atomic_builtin): Fix up sucs_arg for BUILT_IN_ATOMIC_EXCHAGE_* and use all_models instead of xchg_models. Handle BUILT_IN_TSAN_ATOMIC*. Formatting fixes. 2026-04-10 Dhruv Chawla * configure: Regenerate. 2026-04-10 Christoph Müllner * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Set __riscv_v_intrinsic to v1.0. * doc/extend.texi (RISC-V Vector Intrinsics): Document the ratified v1.0 RVV intrinsic specification and update the link. 2026-04-09 Sandra Loosemore PR c++/124773 * doc/trouble.texi (Linkage in Anonymous Namespaces): New section. 2026-04-09 Alex Coplan PR target/122483 * config/aarch64/t-aarch64: Replace instances of TM_H with TARGET_H where appropriate, add missing dependency on TARGET_H for aarch64-early-ra.cc. 2026-04-09 Dhruv Chawla * Makefile.in (AFDO_PROFILER): New variable. (PERF): Likewise. * config/aarch64/gcc-auto-profile: Detect and use ARM SPE events when invoking perf record. * configure: Regenerate. * configure.ac: Detect whether build has perf utility available and check for ARM SPE-based profiling support when building on AArch64. 2026-04-09 Richard Biener * coverage.cc (coverage_init): Do not call read_counts_file if flag_auto_profile. 2026-04-09 Christoph Müllner PR target/124818 * config/riscv/riscv.cc (synthesize_ior_xor): Do not treat TARGET_ZBKB as sufficient for single-bit immediate IOR/XOR. 2026-04-09 Tamar Christina * doc/params.texi: Replace param_vect_scalar_cost_multiplier with param_vect_allow_possibly_not_worthwhile_vectorizations * params.opt: Likewise. * config/aarch64/aarch64.cc (aarch64_override_options_internal): Likewise. * config/riscv/riscv.cc (riscv_override_options_internal): Likewise. * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Likewise. * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise. (vect_slp_region): Likewise. 2026-04-09 Xi Ruoyao PR target/105192 * ifcvt.cc (find_if_header): Don't attempt to use ctrap expander after reload. 2026-04-08 Richard Biener PR tree-optimization/124810 * cfgloopmanip.cc (fix_loop_placements): Do not stop iterating when an inner loop didn't get re-parented. Compute the outermost loop we have to consider re-parenting. 2026-04-08 Prathamesh Kulkarni * auto-profile.cc (function_instance::merge): Set other->timestamp() if it's lesser than timestamp() and greater than zero or if timestamp() is zero. 2026-04-07 H.J. Lu PR target/124759 PR target/124789 * config/i386/i386.cc (ix86_need_alignment_p_2): New function. Exclude memory with SYMBOLIC_CONST. (ix86_need_alignment_p_1): Call ix86_need_alignment_p_2. (ix86_find_max_used_stack_alignment): Restore hard_stack_slot_access handling. 2026-04-07 H.J. Lu * config/i386/i386.cc (ix86_need_alignment_p_1): Replace GET_MODE_ALIGNMENT with MEM_ALIGN. 2026-04-07 Richard Biener PR tree-optimization/124802 * tree-vect-slp-patterns.cc (vect_match_expression_p): Fail for SLP_TREE_PERMUTE_P. 2026-04-07 Sandra Loosemore PR sanitizer/124170 * doc/invoke.texi (Option Summary) : Add -static-libhwasan and fix alphabetization of similar options. (Link Options): Likewise. * common.opt.urls: Regenerated. 2026-04-07 Sandra Loosemore PR other/124784 * regenerate-opt-urls.py (canonicalize_option_name): Remove one of the dashes from option names starting with two dashes. (test_parse_option_index): Add a self-test for this. * common.opt.urls: Regenerated. * config/picolibc.opt.urls: Regenerated. 2026-04-07 Peter Damianov * config/mingw/t-cygming: Remove obsolete STMP_FIXINC override. 2026-04-07 Richard Biener PR tree-optimization/124743 * tree-vect-slp.cc (vect_schedule_slp_node): Schedule loop invariant operations in the loop preheader. 2026-04-07 Avinash Jayakar Surya Kumari Jangala * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Add logic to handle __builtin_ppc_atomic_cas_local. * config/rs6000/rs6000-builtins.def: New builtins for __builtin_ppc_atomic_cas_local with types. * config/rs6000/rs6000-c.cc (altivec_build_resolved_builtin): Handle builtins with up to 6 arguments. * config/rs6000/rs6000-overload.def: Overload builtin for signed/unsiged char, short, int, long, __int128. * config/rs6000/rs6000-protos.h (rs6000_expand_atomic_compare_and_swap): Add additional parameter 'local' to the prototype. * config/rs6000/rs6000.cc (emit_load_locked): Add new parameter. Pass new parameter to generate load-locked instruction. (rs6000_expand_atomic_compare_and_swap): Add new parameter. Call emit_load_locked() with additional parameter value of EH bit. (rs6000_expand_atomic_exchange): Pass EH value 0 to emit_load_locked(). (rs6000_expand_atomic_op): Likewise. * config/rs6000/sync.md (load_locked): Add new operand in RTL template. Specify EH bit in the larx instruction. (load_locked_si): Likewise. (load_lockedpti): Likewise. (load_lockedti): Add new operand in RTL template. Pass EH bit to gen_load_lockedpti(). (atomic_compare_and_swap): Pass new parameter 'false' to rs6000_expand_atomic_compare_and_swap. (atomic_compare_and_swap_local): New define_expand. 2026-04-06 Nathaniel Shead PR libstdc++/124268 * doc/invoke.texi: Note that -Wexpose-global-module-tu-local also applies to 'export using' declarations. 2026-04-06 Rainer Orth * doc/install.texi (Specific, amd64-*-solaris2*, i?86-*-solaris2*) (sparc-sun-solaris2*, sparc64-*-solaris2*, sparcv9-*-solaris2*) (x86_64-*-solaris2*): Remove. Fold into ... (Specific, *-*-solaris2*): ... this. Rewrite. 2026-04-04 Sandra Loosemore * doc/invoke.texi (Picolibc Options): Copy-edit for markup, use of proper names, etc. 2026-04-04 Sandra Loosemore * doc/invoke.texi (GCC Command Options): Move Picolibc Options section to Target-Specific Options. (Option Summary): Likewise. 2026-04-04 Sandra Loosemore * doc/extend.texi (Common Attributes): Fix cross-reference for renamed "Submodel Options" -> "Target-Specific Options". * doc/invoke.texi (Invoking GCC): Likewise for the menu. (Option Summary): Likewise for the use here. (Submodel Options): Rename to Target-Specific Options. Leave an anchor with the old name. Add better index entries. Rewrite introductory text. (Precompiled Headers): Fix another cross-reference. 2026-04-04 Sandra Loosemore PR target/107337 * doc/invoke.texi (x86 Options): Add CX16 feature to nocona, alderlake, arrowlake, arrowlake-s, pantherlake, novalake, bonnell, sierraforest, grandridge, clearwaterforest, and amdfam10 family processors. 2026-04-04 Richard Biener * doc/gccint.texi: Add named pattern index with @mdindex. * doc/md.texi (Standard Pattern Names For Generation): Split table into two using subsections, splitting out vectorizer related standard patterns. Use @mdindex for all standard pattern names. 2026-04-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_legitimize_address): Add code to legitimize the displacement of 64 kilobytes before and after using two ADDMI instructions. 2026-04-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.md (negsf2): Change define_insn to define_insn_and_split, and replace the corresponding output template with the split pattern. 2026-04-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P): Remove. 2026-04-04 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (smalloffset_mem_p): Rename it to smalloffset_address_p and remove the result check of MEM_P(). (constantpool_address_p): Change from static scope to global. * config/xtensa/xtensa-protos.h (smalloffset_mem_p): Rename it to smalloffset_address_p. (constantpool_address_p): New function prototype. * config/xtensa/constraints.md (R): Change the call in (match_test "...") from smalloffset_mem_p() to smalloffset_address_p(). (T, U): Change the call in (match_test "...") from constantpool_mem_p() to constantpool_address_p(). 2026-04-03 Sandra Loosemore PR c/123234 * doc/extend.texi (Decimal Float): Clarify that GCC really does support only the older N1312 draft as documented here, not the standard C23 functionality yet. 2026-04-03 Jakub Jelinek PR tree-optimization/124754 * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strcpy): Make sure both get_stridx calls are done before first get_strinfo call. (strlen_pass::handle_builtin_memcpy): Likewise. (strlen_pass::handle_builtin_strcat): Likewise. 2026-04-03 Sandra Loosemore PR debug/94491 * doc/invoke.texi (Debugging Options): Explicitly document what -g2 does instead of just saying it's the default. 2026-04-03 Sandra Loosemore PR other/94182 * doc/implement-c.texi (Characters implementation): Add cross-reference to more detailed discussion about signedness. * doc/invoke.texi (C Dialect Options): Combine -fsigned-char and -funsigned-char table entries since the following discussion applies to both. Add an anchor so other things can point at it. (Warning Options): Add cross-references to the above two places. Clarify that the warning is given regardless of whether char is signed or unsigned. 2026-04-02 Andrew Pinski PR tree-optimization/124746 * tree-ssa-phiprop.cc (propagate_with_phi): Treat and aggregate copy as it is a trapping load. 2026-04-02 Andrew Pinski * tree-ssa-phiprop.cc (propagate_with_phi): Move the check for load from ptr before the checks of domination. 2026-04-02 Lulu Cheng * config/loongarch/loongarch-protos.h (loongarch_parse_fmv_features): Modify parameter type. * config/loongarch/loongarch-target-attr.cc (loongarch_parse_fmv_features): Some errors have been changed to warnings. * config/loongarch/loongarch.cc (loongarch_process_target_version_attr): Update parameters. (loongarch_check_target_clone_version): Likewise. (loongarch_option_same_function_versions): Likewise. (TARGET_CHECK_TARGET_CLONE_VERSION): Define. 2026-04-01 Tamar Christina Roger Sayle PR target/123238 * config/aarch64/aarch64.cc (aarch64_rtx_costs) : Provide improved costs for scalar and vector comparisons. 2026-04-01 Roger Sayle PR target/123238 * expr.cc (convert_tree_comp_to_rtx): Make global. * expr.h (convert_tree_comp_to_rtx): Prototype here. * internal-fn.cc (expand_vec_cond_mask_optab_fn): Use rtx_costs to determine whether swapping operands would result in better code. * config/i386/i386-expand.cc (ix86_expand_int_vec_cmp): On AVX512 targets use a ternlog instead of a comparison to negate the mask (requires one instruction instead of two). * config/i386/i386.cc (ix86_rtx_costs): Refactor code for UNSPEC. Provide costs for UNSPEC_BLENDV and UNSPEC_MOVMSK. Provide costs for comparison operators of integer vector modes. 2026-04-01 Vladimir N. Makarov PR rtl-optimization/124696 * lra-constraints.cc (simplify_operand_subreg): Reload paradoxical subreg only if it requires more than one hard reg. 2026-04-01 Stefan Schulze Frielinghaus * config/s390/s390.cc (print_operand): Use fputs instead of fprintf. 2026-04-01 Sandra Loosemore PR preprocessor/70917 * doc/invoke.texi (Environment Variables): Clarify that LC_ALL, LC_CTYPE, LC_MESSAGES, and LANG affect only diagnostics and informational output from GCC, not the encodings of input and output files. Remove separate bit-rotten entry for LANG. 2026-04-01 Andrew Pinski PR tree-optimization/124742 * tree-ssa-forwprop.cc (optimize_aggr_zeroprop): Exit if the vdef on the stmt is NULL. 2026-04-01 H.J. Lu PR middle-end/124697 * function.cc (assign_parm_adjust_stack_rtl): Force a local copy if the current alignment is less than the minimum of BIGGEST_ALIGNMENT and MAX_SUPPORTED_STACK_ALIGNMENT. 2026-04-01 Richard Biener Sandra Loosemore PR middle-end/124634 * doc/ifn.texi: New file. * doc/gccint.texi: Include ifn.texi. * Makefile.in (TEXI_GCCINT_FILES): Add ifn.texi. 2026-04-01 Sandra Loosemore PR c/61896 * doc/cppopts.texi (-finput-charset=): Remove long-obsolete locale discussion. Document behavior about ill-formed inputs. 2026-04-01 Sandra Loosemore * doc/poly-int.texi: Add copyright notice. * doc/specs.texi: Likewise. 2026-03-31 Eric Botcazou * tree-ssa-dse.cc (compute_trims): Bail out if ref->size is not byte aligned either. 2026-03-31 Mikael Morin Christopher Albert PR fortran/121185 PR fortran/124661 * tree-inline.cc (debug_find_tree, debug_find_tree_1): Move and rename functions... * tree.cc (find_tree, find_tree_1): ... here. * tree-inline.h (debug_find_tree): Move renamed declaration... * tree.h (find_tree): ... here. 2026-03-31 H.J. Lu PR target/124165 PR target/124684 * config/i386/i386.cc (ix86_symbolic_const_load_p_1): Renamed to ... (ix86_need_alignment_p_1): This. (ix86_symbolic_const_load_p): Renamed to ... (ix86_need_alignment_p): This. (ix86_find_max_used_stack_alignment): Call ix86_access_stack_p only if the INSN needs alignment > stack alignment. 2026-03-31 Srinath Parvathaneni * config/aarch64/aarch64-sys-regs.def: Copy from Binutils. 2026-03-31 Srinath Parvathaneni * config/aarch64/aarch64-option-extensions.def (poe2): New CLI extension option. (tev): Likewise. (tlbid): Likewise. (gcie): Likewise. (mpamv2): Likewise. (lscp): Likewise. (mops-go): Likewise. (sve2p3): Likewise. (sme2p3): Likewise. (f16f32dot): Likewise. (sve-b16mm): Likewise. (mtetc): Likewise. (f16f32mm): Likewise. (f16mm): Likewise. * doc/invoke.texi (poe2): Document option. (tev): Likewise. (tlbid): Likewise. (gcie): Likewise. (mpamv2): Likewise. (lscp): Likewise. (mops-go): Likewise. (sve2p3): Likewise. (sme2p3): Likewise. (f16f32dot): Likewise. (sve-b16mm): Likewise. (mtetc): Likewise. (f16f32mm): Likewise. (f16mm): Likewise. 2026-03-31 Wu Haotian * config.gcc: removed linux.h and t-linux for loongarch*-*-elf* targets 2026-03-30 H.J. Lu Richard Biener PR target/120839 PR middle-end/124671 * function.cc (assign_parm_adjust_stack_rtl): Get the parameter as argument. Adjust alignment check forcing a local copy. (assign_parms): Adjust. * config/i386/i386.cc (ix86_argument_passed_on_stack_p): New. (ix86_update_stack_alignment): Ignore argument passed on stack. 2026-03-30 Vineet Gupta * config/bpf/bpf.md (zero_extendhidi2): Add alternates for alu32 and use 'W' for reg operands. (zero_extendqidi2): Ditto. 2026-03-30 Richard Biener PR tree-optimization/124692 * tree-cfg.cc (replace_uses_by): Call update_stmt after substitution and before folding. 2026-03-30 Saurabh Jha Evgeny Karpov * config/aarch64/aarch64.cc (aarch64_scalar_mode_supported_p): Only return true on TFmode if TARGET_LONG_DOUBLE_128 is set. 2026-03-30 Richard Biener PR tree-optimization/88576 * tree-ssa-alias.cc (check_fnspec): Remove flag_errno_math check. * ipa-modref.cc (modref_access_analysis::process_fnspec): Likewise. 2026-03-30 Richard Biener PR tree-optimization/124677 * tree-vect-loop.cc (vectorizable_recurr): Skip vector stmts for the def. 2026-03-30 Francois-Xavier Coudert * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add Apple M5 cores. * config/aarch64/aarch64-tune.md: Regenerate. * doc/invoke.texi: Add apple-m5 core to the ones listed for arch and tune selections. 2026-03-30 Torbjörn SVENSSON PR target/102309 * config/arm/arm.cc (arm_constant_limit): Allways allow at least one insn when loading a constant. 2026-03-29 Jeff Law PR target/124674 * config/riscv/riscv-modes.def: Create OImode. 2026-03-27 Vineet Gupta PR target/124670 * config/bpf/bpf.md (zero_extendsidi2): Use 'W' in asm template. 2026-03-27 Andrew Pinski PR rtl-optimization/124649 * regcprop.cc (maybe_mode_change): Return early for unordered modes. 2026-03-27 Robin Dapp PR target/124613 * config/riscv/riscv-vector-builtins.cc (rvv_switcher::rvv_switcher): Add riscv_registering_builtins. (rvv_switcher::~rvv_switcher): Set riscv_registering_builtins to false. * config/riscv/riscv.cc (riscv_vector_mode_supported_p): Use riscv_registering_builtins. * config/riscv/riscv.h: Declare. 2026-03-27 Richard Biener PR debug/124644 * dwarf2out.cc (dwarf2out_abstract_function): Only add DW_AT_artificial if the decl isn't DECL_ARTIFICIAL. 2026-03-27 Torbjörn SVENSSON * Makefile.in: (PLUGIN_HEADERS): Add $(srcdir)/topics/*.h. (install-plugin): Preserve directory structure for topics headers. 2026-03-25 Richard Biener PR gcov-profile/121074 * coverage.h (coverage_init_file): Declare. (coverage_finish_file): Likewise. * coverage.cc (coverage_init_file): New function, split out actual file opening and writing from ... (coverage_init): ... here. (coverage_finish_file): Likewise for file closing, from ... (coverage_finish): ... here. * tree-profile.cc (tree_profiling): Call coverage_init_file and coverage_finish_file here. 2026-03-25 Richard Biener PR tree-optimization/124627 * tree-inline.cc (copy_debug_stmts): Only copy debug stmts that are still in the IL. 2026-03-25 Alexandre Oliva * gcc-diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Map OPT_Wuse_after_free like OPT_Wuse_after_free_. 2026-03-25 Rainer Orth * config/i386/i386.cc (ix86_in_large_data_p): Check for .lbss etc. (x86_64_elf_section_type_flags): Clear SECTION_NOTYPE for .lbss etc. * config/i386/x86-64.h (MACH_DEP_SECTION_ASM_FLAG): Define. * config/i386/sol2.h [HAVE_SOLARIS_AS] (MACH_DEP_SECTION_ASM_FLAG): Redefine as 'h'. 2026-03-25 Kugan Vivekanandarajah * cgraph.cc (cgraph_edge::get_next_speculative_id): Use next_speculative_call_target in get_next_speculative_id. 2026-03-24 Vladimir N. Makarov PR rtl-optimization/124572 * lra-eliminations.cc (lra_eliminate): Push new reload insns for eliminations in insns. 2026-03-24 Christopher Bazley * doc/rtl.texi: Fix example of the SSA form. 2026-03-24 Alfie Richards * tree-vect-stmts.cc (vectorizable_load): Swap order of failure message checks. 2026-03-23 Stefan Weigl-Bosker * omp-general.h: Fix typos. 2026-03-23 Richard Biener PR tree-optimization/124599 * tree-ssa-pre.cc (compute_avail): Make the VUSE in the PRE reference expression part of the value again. (phi_translate_1): Likewise. 2026-03-23 Jakub Jelinek PR bootstrap/124547 * configure.ac: After config.gcc inclusion use or set only gas instead of gas_flag and gnu_ld instead of gnu_ld_flag. * config.gcc: Document possibility of gas_flag or gnu_ld_flag being empty. * acinclude.m4 (gcc_GAS_FLAGS): Use gas instead of gas_flag. (gcc_AC_INITFINI_ARRAY): Likewise. Use gnu_ld instead of gnu_ld_flag. * configure: Regenerate. 2026-03-22 Andrew Pinski PR target/124597 * config/i386/i386-builtins.cc (ix86_init_builtins_va_builtins_abi): Also add nothrow and leaf attributes to the va builtins. 2026-03-22 Andrew Pinski PR tree-optimization/124597 * gimple-fold.cc (gimple_fold_builtin_stdarg): Correct the eh_update argument to gsi_replace for the VA_END case. 2026-03-21 Andrew Pinski PR target/123852 * config/sh/sh.md (movsicc_t_false): Add the SImode on the if_then_else. (movsicc_t_true): Likewise. (negsi_cond): Likewise. (negdi_cond): Add the DImode on the if_then_else. (bst_m2a): Add the QImode on the if_then_else. 2026-03-20 Tobias Burnus Sandra Loosemore PR c/122866 * gimplify.cc (omp_instantiate_mapper): Give a sorry if there are iterators. 2026-03-20 Kwok Cheung Yeung Sandra Loosemore * gimplify.cc (gimplify_omp_workshare): Handle iterators in "target data". 2026-03-20 Kyrylo Tkachov * config/aarch64/tuning_models/olympus.h (olympus_tunings): Set loop_align to 64:16. 2026-03-20 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (gen_int_relational): Specify the table array "info" and the pointer to its elements as const. 2026-03-20 Jakub Jelinek PR target/124565 * config/i386/i386.cc (ix86_build_builtin_va_list_64): Set TREE_PUBLIC on type_decl. 2026-03-20 Jakub Jelinek PR target/124566 * config/sh/sh.cc (sh_build_builtin_va_list): Set TREE_PUBLIC on type_decl. 2026-03-20 Richard Biener PR tree-optimization/124578 * tree-ssa-sccvn.cc (vn_reference_eq): Consistently check fields from vro2. 2026-03-20 Yangyu Chen * config/aarch64/aarch64.cc (aarch64_generate_version_dispatcher_body): Check DECL_VIRTUAL_P for virtual functions for LTO handling. * config/i386/i386-features.cc (ix86_generate_version_dispatcher_body): Ditto. * config/riscv/riscv.cc (riscv_generate_version_dispatcher_body): Ditto. * config/rs6000/rs6000.cc (rs6000_generate_version_dispatcher_body): Ditto. * config/loongarch/loongarch.cc (loongarch_generate_version_dispatcher_body): Ditto. 2026-03-19 Jakub Jelinek PR target/124565 * config/alpha/alpha.cc (alpha_build_builtin_va_list): Set TREE_PUBLIC on type_decl. 2026-03-19 Dhruv Chawla * common.opt.urls: Added missing entry. 2026-03-18 Vladimir N. Makarov PR rtl-optimization/124041 PR rtl-optimization/124439 * lra-constraints.cc (process_alt_operands): Check hard reg subreg mode by hard_regno_mode_ok. (curr_insn_transform): Always subsitute equivalence for hard reg subreg. 2026-03-18 Richard Biener PR tree-optimization/124555 * match.pd ((A - B) >=/> 0 ? (A - B) : (B - A) -> abs (A - B)): Guard the vector case with target_supports_op_p checks. ((A - B) <=/< 0 ? (A - B) : (B - A) -> -abs (A - B)): Likewise. ((type)A >=/> 0 ? A : -A -> abs (A)): Likewise. ((type)A <=/< 0 ? A : -A -> -abs (A)): Likewise. 2026-03-18 Dhruv Chawla * Makefile.in (all.fda): Add `--print-autofdo-gcov-version` to profile_merger invocation. * auto-profile.cc (AUTO_PROFILE_VERSION): Move from here ... * auto-profile.h (AUTO_PROFILE_VERSION): ... to here. * common.opt: Add -print-autofdo-gcov-version and --print-autofdo-gcov-version. * doc/invoke.texi: Document the options. * gcc.cc: Add include for auto-profile.h. (driver_handle_option): Add OPT_print_autofdo_gcov_version. (driver::maybe_print_and_exit): Handle the option. 2026-03-18 Richard Biener PR middle-end/124552 * function.cc (free_after_compilation): Free the copyid allocator. 2026-03-18 Jakub Jelinek PR bootstrap/124547 * configure.ac (--with-gnu-ld): Set gnu_ld_flag= instead of gnu_ld_flag=no if not explicitly specified. (--with-gnu-as): Similarly for gas_flag. (DEFAULT_ASSEMBLER): Use wording without GNU as whenever gas_flag is not yes rather than when it is no. * configure: Regenerate. 2026-03-18 Richard Biener * common.opt (fpost-ipa-mem-report): Fix typo. 2026-03-18 Richard Biener * ipa-cp.cc (gather_edges_for_value): Return an auto_vec. (decide_about_value): Simplify, fixing leak of callers. 2026-03-18 Prachi Godbole PR target/123749 * ipa-locality-cloning.cc (partition_callchain): Start new partition if no. of insns exceeds size and if there are nodes to process. 2026-03-18 Sebastian Huber * config/sparc/t-rtems: Add leon5 multilibs. 2026-03-17 Alice Carlotti * config/aarch64/aarch64-sve2.md (@aarch64_pred_revd): Remove movprfx alternative. (@cond_revd): Likewise. 2026-03-17 Philipp Tomsich PR rtl-optimization/124476 * avoid-store-forwarding.cc (store_forwarding_analyzer::process_store_forwarding): Replace bitmap_all_bits_in_range_p with bitmap_any_bit_in_range_p and return false on partial overlap. Remove redundant-store vectors and their associated removal, dump, and deletion logic. 2026-03-17 Richard Biener * tree-vect-slp.cc (vect_analyze_slp): Release BST map when returning. 2026-03-17 Richard Biener * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize loop_iv_cond given it's no longer always initialized ... (vect_create_loop_vinfo): ... here. Fix formatting. 2026-03-17 Richard Biener PR tree-optimization/122380 * tree-ssa-sccvn.h (copy_reference_ops_from_ref): Declare. (vn_reference_compute_hash): Likewise. (vn_reference_eq): Add parameter indicating lexical equivalence, defaulted to false. * tree-ssa-sccvn.cc (vn_reference_eq): Likewise. (print_vn_reference_ops): Print alias type and alignment. (vn_reference_compute_hash): Export. (copy_reference_ops_from_ref): Likewise. * tree-ssa-pre.cc (pre_expr_d::equal): Use lexical equivalence. (get_or_alloc_expr_for_reference): Also get value-id, upon zero assign a new value-id if the expression is unknown. (expr_cmp): New helper. (prefer): Likewise. (pre_expr_DFS): Get expression exclusion bitmap and honor it. (sorted_array_from_bitmap_set): If done for insertion, do limited canonexpr() via pairwise prefer on expression pairs with the same value, populating an exclution bitmap. (phi_translate_1): Do not use the VN hashtable expressions or insert there. Instead maintain a PRE view of expressions. (clean): Adjust. (do_hoist_insertion): Likewise. (insert): Likewise. (compute_avail): Use gimple_could_trap_p_1 on the original stmt rather than vn_reference_may_trap on the VN leader. Use the original stmt operands for the PRE view of reference expressions, only use the value number from the VN tables. Remove no longer effective workarounds for semantically different references with same value. (fini_pre): Release operand vectors for PRE IL reference expressions. 2026-03-17 Yangyu Chen * config/i386/i386-features.cc (make_resolver_func): Use symtab->change_decl_assembler_name instead of SET_DECL_ASSEMBLER_NAME to properly update the symbol table. 2026-03-16 Jose E. Marchesi * doc/install.texi (Configuration): Fix copy pasto --enable-objc-gc to --enable-algol68-gc. 2026-03-16 Richard Biener PR tree-optimization/124528 * tree-scalar-evolution.cc (scev_dfs::add_to_evolution): Perform the negation in an unsigned type if we cannot make sure it will not cause UB. 2026-03-16 Kito Cheng * doc/invoke.texi: Add experimental warning for RISC-V big-endian support. 2026-03-16 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (constantsynth_method_lshr_mi12b): New. (constantsynth_methods): Add constantsynth_method_lshr_mi12b. 2026-03-14 Jakub Jelinek PR other/124508 * config/loongarch/genopts/gen-evolution.awk: Rename copyright_header routine so that update-copyright.py isn't upset about it. 2026-03-13 Andrew Pinski PR rtl-optimization/124454 * regcprop.cc (pass_cprop_hardreg::execute): If something changed and non-call exceptions is on, call purge_all_dead_edges and cleanup_cfg. 2026-03-13 Vladimir N. Makarov PR target/117182 * lra-constraints.cc (curr_insn_transform): Don't change an output operand by constant or invariant equivalence. 2026-03-13 Andre Vieira * config/arm/arm.cc (TARGET_C_BITINT_TYPE_INFO): New Macro. (arm_return_in_memory): Return true for any _BitInt(N) where N > 64. (arm_needs_doubleword_align): Return true for any _BitInt(N) where N > 32. (arm_bitint_type_info): New. * config/arm/arm-protos.h (arm_bitint_type_info): New declaration. 2026-03-13 Saurabh Jha PR target/122953 * config/aarch64/aarch64-c.cc (TARGET_AARCH64_MS_ABI): Explicitly set it to 0 if not on mingw. (aarch64_define_unconditional_macros): Remove __ARM_PCS_AAPCS64 from here. (aarch64_update_cpp_builtins): Define __ARM_PCS_AAPCS64 if not on Windows ABI. --- Hey, Regression tested on aarch64-linux-gnu and found no regressions. Built for arch64-w64-mingw32, ran target dependent tests, and found no regressions. Ok for master? Thanks, Saurabh 2026-03-13 Jakub Jelinek * tree-profile.cc (struct conds_ctx): Formatting fixes. Rename B1, B2, G1, G2 and G3 members to b1, b2, g1, g2 and g3. Adjust all uses. (topological_cmp, topological_src_cmp, index_of, single_p, single_edge, contract_edge_up): Formatting fixes. (struct outcomes): Likewise. (conditional_succs, condition_index, condition_uid, masking_vectors, emit_assign, emit_bitwise_op): Likewise. (make_top_index_visit, make_top_index): Likewise. Rename L argument to l. (paths_between): Formatting fixes. (struct condcov): Likewise. (cov_length, cov_blocks, cov_masks, cov_maps, cov_free): Likewise. (find_conditions): Likewise. Don't start warning_at message with uppercase letter. (struct counters): Formatting fixes. (find_counters, resolve_counter, resolve_counters, instrument_decisions): Likewise. (init_ic_make_global_vars): Comment formatting fixes. (gimple_init_gcov_profiler): Formatting fixes. 2026-03-13 Jørgen Kvalsvik PR ipa/124462 * tree-profile.cc (masking_vectors): Skip blocks with less than 2 non-complex incoming edges. 2026-03-13 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (constantsynth_pass1): Change the comparison between src and SET_SRC(pat) to be performed using rtx_equal_p rather than between references (pointer values) directly, and adjust the destination of changes in validate_change to eliminate the need to call gen_rtx_SET. (constantsynth_pass2): Fill in missing spacing in one place and changes dump file output slightly. 2026-03-13 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (xtensa_split_operand_pair) Move the common code from the split part of movd[if]_internal MD patterns into this function, since this function is only called from the split part of that patterns. Also, during non-debug optimization, re-register new literal pool entries with the split values themselves instead of splitting the memory reference of the source numeric constant placed in the pool. (split_DI_SF_DF_const): Rename to convert_SF_const and remove the split function of D[IF]mode constant assignment. (do_largeconst2): Change the call from split_DI_SF_DF_const to convert_SF_const. * config/xtensa/xtensa.md (movdi_internal, movdf_internal): Reduce their split parts to just a call to xtensa_split_operand_pair. 2026-03-13 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (FPreg_neg_scaled_simm12b_1): Change the test to determine whether REAL_VALUE_TYPE is a non- zero finite value to whether it is normal. (FPreg_neg_scaled_simm12b): Place the call to FPreg_neg_scaled_simm12b_1 last in the expression to improve performance, and change the dump file output slightly. 2026-03-13 Takayuki 'January June' Suwa * config/xtensa/xtensa-passes.def (pass_xtensa_largeconst): Rename to pass_xtensa_largeconst1. (pass_xtensa_largeconst2): New target-specific pass. * config/xtensa/xtensa-protos.h (make_pass_xtensa_largeconst): Rename to make_pass_xtensa_largeconst1. (make_pass_xtensa_largeconst2): New function prototype. * config/xtensa/xtensa.cc (litpool_set_src_1): Change to process large numeric constant assignments to DImode as well as [SH]Imode. (do_largeconst): Rename it to do_largeconst1 and leave only the mandatory insn transformation process. (do_largeconst2): New function that inherits the optional insn transformation processes from the old do_largeconst. (rest_of_handle_largeconst): Rename to rest_of_handle_largeconst1 and change to call do_largeconst1. (rest_of_handle_largeconst2): New function that calls do_largeconst2. (pass_data_xtensa_largeconst) Rename to pass_data_xtensa_largeconst1. (pass_xtensa_largeconst): Rename to pass_xtensa_largeconst1 and change to call rest_of_handle_largeconst1. (pass_data_xtensa_largeconst2): New opt_pass data. (pass_xtensa_largeconst2): New rtl_opt_pass that runs rest_of_handle_largeconst2 when non- debug optimizations are enabled. (make_pass_xtensa_largeconst): Rename to make_pass_xtensa_largeconst1. (make_pass_xtensa_largeconst2): New function definition. 2026-03-13 Jakub Jelinek PR target/124461 * config/i386/i386.md (movrs): Use only for -masm=att, not for -masm=intel. 2026-03-12 Andrew Pinski PR rtl-optimization/123822 * simplify-rtx.cc (simplify_context::simplify_subreg): Check the mode of the part to be non-VOIDmode before calling gen_rtx_SUBREG. 2026-03-12 Vladimir N. Makarov PR rtl-optimization/124452 * lra-constraints.cc (curr_insn_transform): Move return on the postponed insn before any reload generation. 2026-03-12 Rainer Orth Revert: 2026-02-06 Rainer Orth * configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). (gcc_cv_ld): Set before gnu_ld_flag. (gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). (gcc_cv_as): Set before gas_flag. * configure: Regenerate. 2026-03-12 Martin Jambor PR objc/124260 * ipa-prop.cc (ipa_analyze_var_static_initializer): Skip a constructor entry if its index is NULL. 2026-03-12 Richard Biener PR bootstrap/124406 * ipa-pure-const.cc (skip_function_for_local_pure_const): Do not analyze interposable functions when LTO is enabled. 2026-03-12 H.J. Lu PR target/122925 PR target/119979 * config/sh/sh.cc (TARGET_PROMOTE_PROTOTYPES): Removed. 2026-03-12 Philipp Tomsich * fold-mem-offsets.cc (do_analysis): Revise comment. 2026-03-12 Andrew Pinski PR middle-end/120030 * symtab.cc (symtab_node::set_init_priority): Better handle the case of setting the priority back to default. (cgraph_node::set_fini_priority): Likewise. 2026-03-12 Andrew Pinski * doc/extend.texi (constructor/destructor): Add documentation about multiple attributes here. 2026-03-12 Andrew Pinski * doc/extend.texi (constructor/destructor): Document the priority when none is supplied. 2026-03-12 Andrew Pinski PR target/124409 * doc/install.texi: Increment the required binutils for riscv to 2.40. 2026-03-12 Marek Polacek PR c++/124397 * diagnostic.h (emitting_diagnostic_p): New. * diagnostics/context.h (context::emitting_diagnostic_p): New. 2026-03-11 Jakub Jelinek PR target/124436 * genautomata.cc (output_dfa_insn_code_func): Use MIN (INT_MAX, 2U * uid) instead of 2 * uid in dfa_insn_code_enlarge. 2026-03-11 H.J. Lu PR target/124407 * config/i386/i386-features.cc (ix86_place_single_vector_set): Handle non-int load with integer constant. (ix86_broadcast_inner): Convert const0_rtx to non-int mode. 2026-03-11 Richard Sandiford PR middle-end/124435 * expr.cc (store_field_updates_msb_p): Use GET_MODE_BITSIZE instead of GET_MODE_SIZE. Handle the two endiannesses separately. 2026-03-11 Jeff Law Revert: 2026-02-27 Jeff Law PR tree-optimization/90036 * tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always record the new hash table entry. 2026-03-11 Jeff Law Revert: 2026-02-28 Jeff Law PR tree-optimization/90036 * tree-ssa-dom.cc (back_propagate_equivalences): Accept new argument for available expression stack. Lookup equivalences in the expression hash table too. If an expression hash a known constant value, record it and recurse. (record_temporary_equivalences): Back propagate for a subset of edge equivalences. 2026-03-11 Richard Earnshaw PR target/123271 * config/arm/arm.md (subvsi3_intmin): Renamed to ... (sub_cmpVsi3_intmin): ... this. (subvsi3): Renamed to ... (sub_cmpVsi3): ... this. (subvsi3_imm1): Renamed to ... (sub_cmpVsi3_imm1): ... this. (usubvsi3_borrow): Renamed to ... (usub_cmpVsi3_borrow): ... this. (usubvsi3_borrow_imm): Renamed to ... (usub_cmpVsi3_borrow_imm): ... this. (subvsi3_borrow): Renamed to ... (sub_cmpVsi3_borrow): ... this. (subvsi3_borrow_imm): Renamed to ... (sub_cmpVsi3_borrow_imm): ... this. 2026-03-11 Arsen Arsenović * config/gcn/gcn.cc (gcn_addr_space_convert): Use SHARED_BASE_REG to find flat address space base of LDS. 2026-03-11 Arsen Arsenović PR target/124044 * config/gcn/gcn.cc (gcn_addr_space_resolve_default): New function. Converts from ADDR_SPACE_DEFAULT to DEFAULT_ADDR_SPACE. (gcn_addr_space_convert): Resolve from_type and to_type address spaces. 2026-03-11 Arsen Arsenović * config/gcn/gcn.cc (gcn_regno_reg_class): Handle MEMORY_APERTURE_REGS. (gcn_hard_regno_rename_ok): Return false for memory aperture regs. (gcn_memory_move_cost): Handle memory aperture regs the same as general registers. (gcn_hard_regno_nregs): Handle MEMORY_APERTURE_REGS. * config/gcn/gcn.h (SHARED_BASE_REG): Define. (SHARED_LIMT_REG): Ditto. (PRIVATE_BASE_REG): Ditto. (PRIVATE_LIMT_REG): Ditto. (MEMORY_APERTURE_REG_P): New macro. Evaluates to non-zero if parameter is one of the above registers. (SSRC_REGNO_P): Also evaluate to non-zero for aperture regs, as they can be sources to scalar instructions. (enum reg_class): New class: MEMORY_APERTURE_REGS. (REG_CLASS_NAMES): Provide name for that class. (MEMORY_APERTURE_REGS_MASK): New helper macro. Value of NAMED_REG_MASK2 for each of the memory aperture regs. (REG_CLASS_CONTENTS): Add the above registers to MEMORY_APERTURE_REGS, SGPR_VOP_SRC_REGS, and SGPR_SRC_REGS. 2026-03-11 Philipp Tomsich * fold-mem-offsets.cc (do_check_validity): fix wrong mode and rename arguments to avoid future confusion 2026-03-10 Yangyu Chen * config/riscv/riscv.cc (riscv_check_target_clone_version): Fix TARGET_CHECK_TARGET_CLONE_VERSION implementation. 2026-03-10 Richard Biener * tree-vect-loop.cc (vect_get_datarefs_in_loop): Add function level comment. (vect_analyze_loop_2): Fix comment. 2026-03-10 Jan Hubicka Andrew Pinski PR tree-optimization/120987 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Mask off non const/pure/novops related flags when combining of outer functions. 2026-03-09 Jonathan Wakely PR translation/124422 * config/loongarch/loongarch-target-attr.cc (loongarch_parse_fmv_features): Fix spelling in diagnostics. * params.opt (max-devirt-targets): Fix typo in description. 2026-03-09 Martin Jambor PR ipa/124291 * ipa-cp.cc (ipcp_val_replacement_ok_p): Allow more precise contexts that what the clone was originally intended for. 2026-03-09 Dhruv Chawla PR gcov-profile/124075 * config/aarch64/gcc-auto-profile: Add "-o perf.data" to perf record invocation. * config/i386/gcc-auto-profile: Likewise. 2026-03-09 Dhruv Chawla PR gcov-profile/123923 * config/aarch64/gcc-auto-profile: Add --inherit to perf record flags. * config/i386/gcc-auto-profile: Likewise. 2026-03-09 Richard Sandiford PR middle-end/118608 * rtlanal.cc (truncated_to_mode): Revert a change made on 2026-02-03. * config/mips/mips.md (*extenddi_truncate): Likewise. 2026-03-09 Takayuki 'January June' Suwa * config/xtensa/xtensa.md (movdi_internal, movdf_internal, *btrue, *ubtrue, movsicc_internal0, movsicc_internal1, movsfcc_internal0, movsfcc_internal1): Rewrite in compact syntax. 2026-03-08 Andrew Pinski PR target/124403 * config/riscv/riscv.cc (riscv_get_vls_cc_attr): Fix formating of the diagnostic. 2026-03-07 Sandra Loosemore PR driver/69367 PR driver/69849 * Makefile.in (TEXI_GCCINT_FILES): Add specs.texi. * doc/gccint.texi: Include it. * doc/install.texi: Fix cross-references. * doc/invoke.texi: Likewise. (Option Summary): Reclassify -specs/--specs as a developer option. (Overall Options): Move -specs= documentation to... (Developer Options): ...here. (Spec Files): Move entire section to.... * doc/specs.texi: ....new file. * common.opt.urls: Regenerated. 2026-03-07 Jørgen Kvalsvik * tree-profile.cc (struct conds_ctx): Add edges. (topological_src_cmp): New function. (masking_vectors): New search strategy. 2026-03-07 Robin Dapp PR rtl-optimization/121649 * cse.cc (find_sets_in_insn): Only use non-reg vec_select simplifications. 2026-03-06 Andrew Pinski PR target/124126 * config/aarch64/aarch64-builtins.cc (aarch64_init_ls64_builtins_types): Copy the array type before setting the mode. 2026-03-06 Jakub Jelinek PR tree-optimization/124135 * tree-inline.cc (expand_call_inline): If both gimple_call_lhs (stmt) and use_retvar aren't gimple regs but have gimple reg type, use separate load of use_retva into SSA_NAME and then store of it into gimple_call_lhs (stmt). 2026-03-06 Jakub Jelinek PR tree-optimization/124358 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): Simplify into (ptr) x p+ (y + z) instead. 2026-03-05 Victor Do Nascimento PR tree-optimization/124037 * tree-vect-stmts.cc (get_load_store_type): Fix alignment_support_scheme categorization for early break VMAT_ELEMENTWISE accesses. 2026-03-05 Richard Biener * tree-vect-loop.cc (vectorizable_live_operation): Fix typo. 2026-03-05 Richard Biener PR tree-optimization/98064 * tree-vect-loop.cc (vectorizable_live_operation): Do not restrict replacing uses in a LC PHI. 2026-03-05 Jakub Jelinek * config/i386/i386.md (swap): Swap operand order for -masm=intel. 2026-03-05 Xi Ruoyao PR target/123807 PR middle-end/124250 * config/loongarch/loongarch.cc (loongarch_expand_vector_init_same): Revert r16-7163 change. 2026-03-05 Jakub Jelinek PR target/124349 * config/i386/sse.md (iptrssebvec_2): New define_mode_attr. (cvthf82ph): Use it for -masm=intel input operand. 2026-03-05 Jakub Jelinek PR target/124367 * config/i386/sse.md (*andnot3): Use 0x44 rather than $0x44 for -masm=intel. 2026-03-05 Jakub Jelinek PR target/124366 * config/i386/i386.md (@wrss, @wruss): Swap operand order for -masm=intel. 2026-03-04 Andrew Pinski PR tree-optimization/119568 * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Reject different mode classes. 2026-03-04 Robin Dapp PR rtl-optimization/124041 * lra-constraints.cc (curr_insn_transform): Check if hardreg is valid in subreg context. 2026-03-04 Philipp Tomsich PR rtl-optimization/124351 * avoid-store-forwarding.cc (process_store_forwarding): Add bitmap_clear after allocating forwarded_bytes. 2026-03-04 Jakub Jelinek PR target/124341 * config/i386/sse.md (vcvt): Use rather than for -masm=intel. 2026-03-04 Jakub Jelinek PR target/124349 * config/i386/sse.md (avx10_2_comisbf16_v8bf): Use %w1 instead of %1 for -masm=intel. 2026-03-03 H.J. Lu PR target/124165 * config/i386/i386-protos.h (symbolic_reference_mentioned_p): Change the argument type from rtx to const_rtx. * config/i386/i386.cc (symbolic_reference_mentioned_p): Likewise. (ix86_access_stack_p): Add 2 auto_bitmap[] arguments. Cache the register BB domination result. (ix86_symbolic_const_load_p_1): New. (ix86_symbolic_const_load_p): Likewise. (ix86_find_max_used_stack_alignment): If there is no symbolic constant load into the register, don't call ix86_access_stack_p. 2026-03-03 Vladimir N. Makarov PR target/115042 * lra-int.h (lra_postponed_insns): New. * lra.cc (lra_set_insn_deleted, lra_asm_insn_error): Clear postponed insn flag. (lra_process_new_insns): Propagate postponed insn flag for asm gotos. (lra_postponed_insns): New. (lra): Initialize lra_postponed_insns. Push postponed insns on the stack. * lra-constraints.cc (postpone_insns): New function. (curr_insn_transform): Use it to postpone processing reload insn constraints. Skip processing postponed insns. 2026-03-03 Richard Biener PR middle-end/45273 * predict.cc (combine_predictions_for_insn): Use int64_t math instead of double. 2026-03-03 Jakub Jelinek PR target/124336 * config/i386/i386.cc (output_adjust_stack_and_probe): Use or{b} rather than or%z0 and BYTE PTR rather than DWORD PTR. (output_probe_stack_range): Likewise. * config/i386/i386.md (probe_stack): Pass just 2 arguments to gen_probe_stack_1, first adjust_address to QImode, second const0_rtx. (@probe_stack_1_): Remove. (probe_stack_1): New define_insn. 2026-03-03 Jonathan Wakely * fold-const.cc: Fix "Conveinece" typo in comment. 2026-03-03 Richard Biener * tree-vect-slp.cc (vect_make_slp_decision): Do not call vect_mark_slp_stmts. * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment): We are always doing SLP. (vect_supportable_dr_alignment): Likewise. * tree-vect-loop.cc (vect_analyze_loop_2): No need to reset STMT_SLP_TYPE. 2026-03-03 Jonathan Yong <10walls@gmail.com> * Makefile.in: the libgdiagnostics shared object for mingw should be based on host name, not target name. 2026-03-03 Richard Sandiford Artemiy Volkov PR rtl-optimization/123786 * rtl-ssa/functions.h (function_info::live_out_value): Delete. (function_info::create_degenerate_phi): New overload. * rtl-ssa/blocks.cc (all_uses_are_live_out_uses): Delete. (function_info::live_out_value): Likewise. (function_info::replace_phi): Keep live-out uses if they are followed by a definition in the same EBB. (function_info::create_degenerate_phi): New overload, extracted from create_reg_use. (function_info::add_phi_nodes): Ensure that there is a phi for every live input that is redefined by a second or subsequent block in the EBB. Record that such phis need live-out uses. (function_info::record_block_live_out): Use look_through_degenerate_phi rather than live_out_value when setting phi inputs. Remove use of live_out_value for live-out uses. Inline the old handling of bb_mem_live_out. (function_info::start_block): Move append_bb call to... (function_info::create_ebbs): ...here. * rtl-ssa/insns.cc (function_info::create_reg_use): Use the new create_degenerate_phi overload. 2026-03-03 Jakub Jelinek PR target/124315 * config/i386/sse.md (avx512f_vmfmadd__mask3, avx512f_vmfmsub__mask3, avx512f_vmfnmadd__mask3, avx512f_vmfnmsub__mask3): Use %1 instead of %3 in -masm=intel syntax. 2026-03-03 Jakub Jelinek PR target/124335 * config/i386/sse.md (*avx512f_load_mask): Use %{%3%} instead of %{3%} for -masm=intel syntax. 2026-03-03 Jakub Jelinek * config/i386/sse.md (avx512fp16_mov): Rename pattern to... (*avx512fp16_mov): ... this. 2026-03-02 Sandra Loosemore PR c++/102397 * doc/extend.texi (Attributes): Explicitly say that all attributes work in both syntaxes and examples may show either form. (Common Attributes): Convert some examples to use the new syntax. 2026-03-02 Filip Kastl PR target/123926 * config/sparc/sparc.h (HAVE_AS_TLS): Default to 0. 2026-03-02 Alfie Richards PR target/124167 * attribs.cc (make_dispatcher_decl): Change node->definition to inherit from the node its called on. * ipa.cc (remote_unreachable_nodes): Move FMV logic out of (!in_boundary_p) if block. 2026-03-02 Cupertino Miranda PR target/113453 * config/bpf/bpf-protos.h (bpf_output_call): Change prototype. * config/bpf/bpf.cc (bpf_output_call): Change to adapt operands and return the instruction template instead of immediately emit asm and not allow proper final expected execution flow. (bpf_output_line_info): Add function to introduce line info entries in respective structures (bpf_asm_out_unwind_emit): Add function as hook to TARGET_ASM_UNWIND_EMIT. This hook is called before any instruction is emitted. * config/bpf/bpf.md: Change calls to bpf_output_call. * config/bpf/btfext-out.cc (struct btf_ext_lineinfo): Add fields to struct. (bpf_create_lineinfo, btf_add_line_info_for): Add support function to insert line_info data in respective structures. (output_btfext_line_info): Function to emit line_info data in .BTF.ext section. (btf_ext_output): Call output_btfext_line_info. * config/bpf/btfext-out.h: Add prototype for btf_add_line_info_for. 2026-03-02 Jakub Jelinek PR target/124294 * config/i386/sse.md (avx512fp16_mov): Fix ordering of operands for -masm=intel for the avx10_2 alternative. Fix up indentation in the insn condition. (vec_set_0): Fix comment typo, higer -> higher. 2026-03-01 Rainer Orth PR target/57261 * configure.ac (gcc_cv_ld_as_needed) : Don't disable. * configure: Regenerate. 2026-03-01 Rainer Orth * configure.ac (solaris_ld): New check. Test solaris_ld instead of gnu_ld_flag. * configure: Regenerate. * config.in: Regenerate. * config/i386/sol2.h: Switch to HAVE_SOLARIS_LD. * config/sol2.h: Likewise. * config/sparc/sol2.h: Likewise. * config/sparc/sparc.md: Likewise. 2026-03-01 Rainer Orth * configure.ac (solaris_as): New check. * configure: Regenerate. * config.in: Regenerate. * config/i386/i386.cc: Switch to HAVE_SOLARIS_AS. * config/i386/sol2.h: Likewise. * config/sol2.h: Likewise. * config/sparc/sol2.h: Likewise. * config/sparc/sparc.cc: Likewise. * config/sparc/sparc.md: Likewise. 2026-02-28 Jeff Law PR tree-optimization/90036 * tree-ssa-dom.cc (back_propagate_equivalences): Accept new argument for available expression stack. Lookup equivalences in the expression hash table too. If an expression hash a known constant value, record it and recurse. (record_temporary_equivalences): Back propagate for a subset of edge equivalences. 2026-02-28 David Malcolm PR target/124094 * config/aarch64/aarch64-generate-json-tuning-routines.py (generate_field_code): Add "ctxt, " arg to function call when operation is "parse". (generate_function): Add "gcc_json_context &ctxt, " param to function decl when operation is "parse". * config/aarch64/aarch64-json-tunings-parser-generated.inc: Regenerate, passing around a gcc_json_context &. * config/aarch64/aarch64-json-tunings-parser.cc: Include "json-diagnostic.h". (WARNING_OPT) New macro. (PARSE_INTEGER_FIELD): Add "ctxt" param and pass it around. (PARSE_UNSIGNED_INTEGER_FIELD): Likewise. (PARSE_BOOLEAN_FIELD): Likewise. (PARSE_STRING_FIELD): Likewise. (PARSE_OBJECT): Likewise. (PARSE_ARRAY_FIELD): Likewise. (PARSE_ENUM_FIELD): Likewise. (parse_func_type): Likewise. (parse_object_helper): Likewise. Use json_error rather than error. (inform_about_wrong_kind_of_json_value): New. (extract_string): Add "ctxt" param. Replace "warning" with a pair of calls to json_warning and inform_about_wrong_kind_of_json_value, tweaking wording accordingly. (extract_integer): Likewise. (extract_unsigned_integer): Likewise. (parse_enum_field): Likewise. (validate_and_traverse): Replace "warning" and "error" with "json_warning" and "json_error". (check_version_compatibility): Use WARNING_OPT. Add auto_diagnostic_group to group the error and note. (aarch64_load_tuning_params_from_json_string): Add "js_filename" param. Use gcc_json_context to capture location info. Use it when reporting errors to get file/line/column info. Replace check on root being non-null with assertion, as this is guaranteed if error is non-null. Replace warning with json_warning. (aarch64_load_tuning_params_from_json): Pass data_filename to aarch64_load_tuning_params_from_json_string for use when reporting diagnostics. (selftest::test_json_integers): Add a placeholder filename. (selftest::test_json_boolean): Likewise. (selftest::test_json_strings): Likewise. (selftest::test_json_enums): Likewise. 2026-02-28 David Malcolm * Makefile.in (OBJS-libcommon): Add json-diagnostic.o. * diagnostics/client-data-hooks.h (class client_data_hooks_decorator): New. * diagnostics/context.cc (context::set_client_data_hooks): Return the old hooks. * diagnostics/context.h (context::set_client_data_hooks): Update decl likewise. * json-diagnostic.cc: New file. * json-diagnostic.h: New file. 2026-02-28 David Malcolm * config/aarch64/aarch64-json-tunings-parser.cc: Define INCLUDE_MAP. * json-parsing.cc: Likewise. * json-parsing.h (class simple_location_map): New class, moved and renamed from... * libsarifreplay.cc (class replayer_location_map): ...here. (sarif_replayer::m_json_location_map): Update for renaming of class. 2026-02-28 David Malcolm * Makefile.in (OBJS-libcommon): Add diagnostics/physical-location-maker.o. * diagnostics/physical-location-maker.cc: New file, adapted from material in libgdiagnostics.cc. * diagnostics/physical-location-maker.h: New file, adapted from material in libgdiagnostics.cc. * libgdiagnostics.cc: Include "diagnostics/physical-location-maker.h". (diagnostic_manager::diagnostic_manager): Initialize m_phys_loc_maker. (diagnostic_manager::new_location_from_file_and_line): Split out into physical_location_maker. (diagnostic_manager::new_location_from_file_line_column): Likewise. (diagnostic_manager::ensure_linemap_for_file_and_line): Likewise. (diagnostic_manager::m_phys_loc_maker): New field. 2026-02-28 David Malcolm * diagnostics/html-sink.cc (html_builder::make_element_for_diagnostic): Update for logical location strings being returned as label_text rather than const char *. * diagnostics/logical-locations.h (logical_locations::manager::get_short_name): Return label_text rather than const char *. (logical_locations::manager::get_name_with_scope): Likewise. (logical_locations::manager::get_internal_name): Likewise. * diagnostics/sarif-sink.cc (sarif_builder::ensure_sarif_logical_location_for): Update for logical location strings being returned as label_text rather than const char *. (sarif_builder::make_minimal_sarif_logical_location): Likewise. * diagnostics/selftest-logical-locations.cc (test_manager::get_short_name): Likewise. (test_manager::get_name_with_scope): Likewise. (test_manager::get_internal_name): Likewise. (selftest_logical_locations_cc_tests): Likewise. * diagnostics/selftest-logical-locations.h (test_manager::get_short_name): Likewise. (test_manager::get_name_with_scope): Likewise. (test_manager::get_internal_name): Likewise. * diagnostics/state-graphs-to-dot.cc (state_diagram::on_node_in_table): Likewise. * libgdiagnostics.cc (impl_logical_location_manager::get_short_name): Likewise. (impl_logical_location_manager::get_name_with_scope): Likewise. (impl_logical_location_manager::get_internal_name): Likewise. * tree-logical-location.cc (tree_logical_location_manager::get_short_name): Likewise. (tree_logical_location_manager::get_name_with_scope): Likewise. (tree_logical_location_manager::get_internal_name): Likewise. * tree-logical-location.h (tree_logical_location_manager::get_short_name): Likewise. (tree_logical_location_manager::get_name_with_scope): Likewise. (tree_logical_location_manager::get_internal_name): Likewise. 2026-02-28 Sandra Loosemore PR c/87591 * doc/extend.texi (Attributes): Document __attribute keyword. (Attribute Syntax): Here too. 2026-02-28 Sandra Loosemore * doc/extend.texi (Attributes): Rename the node "GNU Attribute Syntax" node back to "Attribute Syntax"; fix references. Add @anchor for sections recently merged away at the new location of the material they used to contain. 2026-02-28 Kwok Cheung Yeung PR middle-end/113436 * omp-low.cc (lower_omp_target): Merge branches for allocating memory for private clauses. Add handling for references when allocator clause not specified. 2026-02-27 Tamar Christina PR tree-optimization/124142 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): For early break require masking when operation can trap. 2026-02-27 Jeff Law PR tree-optimization/90036 * tree-ssa-scopedtables.cc (avail_exprs_stack::record_cond): Always record the new hash table entry. 2026-02-27 Xi Ruoyao PR middle-end/124280 * optabs.cc (expand_vector_broadcast): Allow broadcasting QImode to BImode vector. 2026-02-27 Vladimir N. Makarov Revert: 2026-02-26 Vladimir N. Makarov PR target/115042 * lra-int.h (lra_constraint_insn_stack_clear): New prototype. * lra.cc (lra_constraint_insn_stack2): New vector. (lra_constraint_insn_stack_clear): New function. (lra): Initialize/finalize lra_constraint_insn_stack2. * lra-constraints.cc (lra_constraints): Use lra_constraint_insn_stack_clear to postpone processing new reload insns. 2026-02-27 Martin Jambor PR ipa/123229 * ipa-prop.cc (update_indirect_edges_after_inlining): Reset parameter index associated with an indirect edge if the inlined edge does not have any jump functions. 2026-02-27 Soumya AR * config/aarch64/aarch64-json-tunings-parser.cc (parse_object_helper): Zero-initialize objects that are NULL in the base tunings, if provided in JSON tunings. * config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add default constructor. (struct aarch64_simd_vec_issue_info): Likewise. (struct aarch64_sve_vec_issue_info): Likewise. 2026-02-27 Martin Jambor PR ipa/123629 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::meet_with): When an outer context is NULL, call make_speculative on the other one. 2026-02-27 Tamar Christina PR target/124162 * config/aarch64/aarch64-sve.md (cond_vec_cbranch_any, cond_vec_cbranch_all): Drop partial vectors support. 2026-02-27 Andrew Pinski PR tree-optimization/117935 * tree-ssa-phiopt.cc (contains_hot_cold_predict): New function. (match_simplify_replacement): Return early if early_p and one of the middle bb(s) have a hot/cold predict statement. 2026-02-26 Vladimir N. Makarov PR target/115042 * lra-int.h (lra_constraint_insn_stack_clear): New prototype. * lra.cc (lra_constraint_insn_stack2): New vector. (lra_constraint_insn_stack_clear): New function. (lra): Initialize/finalize lra_constraint_insn_stack2. * lra-constraints.cc (lra_constraints): Use lra_constraint_insn_stack_clear to postpone processing new reload insns. 2026-02-26 Robin Dapp PR target/122448 * config/riscv/riscv-vsetvl.cc (compute_reaching_defintion): Rename... (compute_reaching_definition): ...To this. (pre_vsetvl::compute_vsetvl_def_data): Compute reaching definitions for vsetvl VL -> vsetvl AVL. (pre_vsetvl::compute_transparent): Include VL uses. (pre_vsetvl::fuse_local_vsetvl_info): Initialize m_reg_use_loc. (pre_vsetvl::earliest_fuse_vsetvl_info): Don't hoist if any successor would use VL. 2026-02-26 Xi Ruoyao PR middle-end/124250 PR target/123807 * optabs.cc (expand_vector_broadcast): Add a checking assert to verify the precondition about the input modes. (expand_binop): Extend the shift amount if it's narrower than the element of the shifted vector. 2026-02-26 Roger Sayle PR target/124194 * config/i386/sse.md (*_cmp3_dup_op): Also return CONSTM1_RTX for the case cmp_imm == 7 (predicate TRUE). 2026-02-26 Roger Sayle PR c/119651 PR c/123472 * fold-const.cc (tree_nonzero_bits): Rename the original as a static function taking an additional precision parameter. Make this implementation robust to error_mark_node. Preserve the original API by checking for error_operand_p before invoking the static helper function. 2026-02-26 H.J. Lu PR target/119979 PR target/120888 * targhooks.cc (default_promote_function_mode_sign_extend): New. * targhooks.h (default_promote_function_mode_sign_extend): Likewise. * config/mcore/mcore.cc (TARGET_PROMOTE_FUNCTION_MODE): Use default_promote_function_mode_sign_extend. (TARGET_PROMOTE_PROTOTYPES): Removed. * config/xtensa/xtensa.cc (xtensa_promote_function_mode): Removed. (TARGET_PROMOTE_FUNCTION_MODE): Use default_promote_function_mode_sign_extend. 2026-02-25 Philipp Tomsich * avoid-store-forwarding.cc (store_forwarding_analyzer::process_store_forwarding): Use auto_sbitmap for forwarded_bytes to ensure it is freed on all return paths. 2026-02-25 Philipp Tomsich * avoid-store-forwarding.cc (store_forwarding_analyzer::update_stats): Use stats_sf_avoided for the "avoided" counter. 2026-02-25 Philipp Tomsich * avoid-store-forwarding.cc: Move config.h before avoid-store-forwarding.h; place avoid-store-forwarding.h after rtl.h; remove unused cselib.h include. * avoid-store-forwarding.h: Remove includes of config.h, system.h, coretypes.h, backend.h, rtl.h. 2026-02-25 Cupertino Miranda PR target/120241 * config/bpf/core-builtins.cc (is_attr_preserve_access): Correct for pointer types. (maybe_get_base_for_field_expr, core_access_index_map, core_access_clean, core_is_access_index, core_mark_as_access_index): Remove. (make_gimple_core_safe_access_index): Remove function. (struct walker_data): New struct to pass data to tree walker. (callback_should_do_core_access, should_do_core_access): Add function to identify expressions that should not be converted to CO-RE. (core_make_builtins): Add callback tree walker function to convert expressions to CO-RE. (callback_find_next_split_location, core_should_split_expr, find_next_split_location, gimple_core_early_split_expr): Add function to split expressions in CO-RE and non-CO-RE expressions. (execute_lower_bpf_core): Adapt to new code. * config/bpf/bpf.opt: Add option Wco-re. * doc/invoke.texi: Add documentation for Wco-re. 2026-02-25 Andrew Pinski PR tree-optimization/110091 * ipa-split.cc (split_function): Find the bb which is used for return in the outlined function. Move the clobbers that are at the end of that bb to be after the new call. 2026-02-25 Andrew Pinski PR tree-optimization/110091 * ipa-split.cc (split_function): Split after the clobbers/debug stmts rather than after the labels. 2026-02-25 Takayuki 'January June' Suwa * config/xtensa/xtensa.md (spaceshipsi4): New RTL generation pattern. 2026-02-25 Richard Biener PR target/120234 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): For constructor elements always look through a conversion. Rewrite load and vector extraction matching to be more obvious. Allow arbitrary conversions from the vector extract to elide costing of a gpr<->xmm move. 2026-02-25 Andrew Pinski PR target/123285 * config/aarch64/aarch64-early-ra.cc (early_ra::form_chains): Process clobbers and ABI clobbers before starting to form the chain. 2026-02-24 Sandra Loosemore PR other/88472 * Makefile.in (ATTR_URLS_HTML_DEPS): Point at new index file. * attr-urls.def: Regenerated. * gcc-attribute-urlifier.cc (test_attribute_urlifier): Adjust URLs to match formatting in the new index. * regenerate-attr-urls.py (parse_html_line_attribute_index): Update pattern to match formatting in the new combined index. Don't segregate entries into separate function/variable/etc arrays. (INDEX_REL_PATH): Point at the new index file. (class TestParsingIndex): Update patterns in self-tests to match the current formatting. 2026-02-24 Sandra Loosemore PR other/88472 * doc/extend.texi (Common Attributes): Change @cindex entries for attributes to @atindex. Add some additional @cindex entries. (AArch64 Attributes): Likewise. (AMD GCN Attributes): Likewise. (ARC Attributes): Likewise. (ARM Attributes): Likewise. (AVR Attributes): Likewise. (Blackfin Attributes): Likewise. (BPF Attributes): Likewise. (C-SKY Attributes): Likewise. (Epiphany Attributes): Likewise. (H8/300 Attributes): Likewise. (IA-64 Attributes): Likewise. (LoongArch Attributes): Likewise. (M32C Attributes): Likewise. (M32R/D Attributes): Likewise. (m68k Attributes): Likewise. (MicroBlaze Attributes): Likewise. (Microsoft Windows Attributes): Likewise. (MIPS Attributes): Likewise. (MSP430 Attributes): Likewise. (NDS32 Attributes): Likewise. (Nvidia PTX Attributes): Likewise. (PowerPC Attributes): Likewise. (RISC-V Attributes): Likewise. (RL78 Attributes): Likewise. (RX Attributes): Likewise. (S/390 Attributes): Likewise. (SH Attributes): Likewise. (Symbian OS Attributes): Likewise. (V850 Attributes): Likewise. (Visium Attributes): Likewise. (x86 Attributes): Likewise. (Xstormy16 Attributes): Likewise. (C++ Attributes): Likewise. * doc/gcc.texi: Define a new "at" index for attributes. (Attribute Index): New appendix. 2026-02-24 Sandra Loosemore PR other/88472 * doc/extend.texi (Common Attributes): Document the "naked" attribute here. (ARC Attributes): Delete entry for "naked". (ARM Attributes): Likewise. (AVR Attributes): Likewise. (BPF Attributes): Likewise. (C-SKY Attributes): Likewise. (MCORE Attributes): Delete entire section since "naked" was the only thing listed. (MSP430 Attributes): Delete entry for "naked". (NDS32 Attributes): Likewise. (RISC-V Attributes): Likewise. (RL78 Attributes): Likewise. (RX Attributes): Likewise. (x86 Attributes): Likewise. 2026-02-24 Sandra Loosemore PR other/88472 * doc/extend.texi (Common Attributes): Consolidate documentation for "cold" and "hot" attributes, including the C++-specific behavior. (C++ Attributes): Likewise, just point to the main entry. 2026-02-24 Sandra Loosemore * doc/extend.texi (RISC-V Attributes): Format and index options for the "target" attribute consistently with the documentation for other back ends. 2026-02-24 Sandra Loosemore * doc/extend.texi (Common Attributes): Add LoongArch to lists of targets supporting target_clones and target_version. (LoongArch Attributes): Copy-edit for grammar and markup. Wrap excessively long lines. Rearrange the introductory material for the target attribute. Correct index entries for target attribute options. (Function Multiversioning): Add LoongArch to list of targets supporting this feature. Fix nearby typo. 2026-02-24 Sandra Loosemore * doc/extend.texi (AArch64 Attributes): Reorganize material in this section, correct terminology and formatting. 2026-02-24 Sandra Loosemore * doc/extend.texi (Attributes): General copy-editing. (C++ Attributes): Likewise. 2026-02-24 Sandra Loosemore PR other/88472 * doc/extend.texi (Attributes): Start each attribute's documentation with a short paragraph describing what it applies to. (C++ Attributes): Likewise. 2026-02-24 Sandra Loosemore PR other/88472 * doc/extend.texi (Attributes): Merge respective subsections of Function Attributes, Variable Attributes, Type Attributes, Label Attributes, Enumerator Attributes, and Statement Attributes into new sections Common Attributes and Target-Specific Attributes. Fix cross-references. * doc/invoke.texi: Fix cross-references. * doc/trouble.texi: Likewise. 2026-02-24 Sandra Loosemore PR c++/102397 * doc/extend.texi (Attributes): Rewrite and expand discussion of standard vs legacy syntax, with several examples. (Attribute Syntax): Rename section to... (GNU Attribute Syntax): ...this. Prune discussion of standard attribute syntax. Fix cross-references. 2026-02-24 Robin Dapp * config/riscv/vector.md: Change 'X' to 'r' in _lra insns. 2026-02-24 Robin Dapp PR target/124147 * config/riscv/autovec.md: Work around fractional-LMUL modes for TARGET_XTHEADVECTOR. * config/riscv/riscv-protos.h (get_m1_mode): Export. * config/riscv/riscv-v.cc (get_m1_mode): Allow to get a VLS m1 vector. 2026-02-24 Robin Dapp PR rtl-optimization/123381 * lra-constraints.cc (process_alt_operands): Detect cycles in three-operand moves with clobber. (curr_insn_transform): Don't write back a scratch operand. 2026-02-24 Wilco Dijkstra PR target/121240 * config/aarch64/aarch64-simd.md (mov): Expand vector constants early. * config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force vector immediates <= 16 bytes to constdata. 2026-02-24 Richard Biener PR tree-optimization/123117 PR target/120234 * tree-ssa-forwprop.cc (simplify_vector_constructor): Fix sign conversion check guarding unpacking. 2026-02-24 Martin Jambor PR ipa/123629 * ipa-cp.cc (ipcp_val_replacement_ok_p): Also verify that the vector of known contexts has sufficient length. 2026-02-23 Sandra Loosemore PR translation/118988 * params.opt (-param=cycle-accurate-model=): Fix wording of help string. (-param=phiopt-factor-max-stmts-live=): Likewise. 2026-02-23 Sandra Loosemore * config/gcn/gcn.md (addsi3): Disparage vector alternative. (addptrdi3): Reverse order of vector and scalar alternatives to prefer the latter. (subsi3): Disparage vector alternatives. (mulsi3): Likewise. (muldi3): Likewise. (bitunop si2): Likewise. (vec_and_scalar_com si3): Likewise. (vec_and_scalar_nocom si3): Likewise. (one_cmpldi2): Likewise. (vec_and_scalar64_com di3): Likwise. (vec_and_scalar64_nocom di3): Likwise. 2026-02-23 Paul-Antoine Arras PR fortran/120505 * gimplify.cc (omp_accumulate_sibling_list): When the containing struct is a Fortran array descriptor, sort mapped components by offset. 2026-02-23 Paul-Antoine Arras PR fortran/120505 * gimplify.cc (omp_mapped_by_containing_struct): Handle Fortran array descriptors. (omp_build_struct_sibling_lists): Allow attach_detach bias to be adjusted on non-target regions. (gimplify_adjust_omp_clauses): Remove GIMPLE-only nodes. * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT and OMP_CLAUSE_MAP_GIMPLE_ONLY. * tree.h (OMP_CLAUSE_MAP_SIZE_NEEDS_ADJUSTMENT, OMP_CLAUSE_MAP_GIMPLE_ONLY): Define. 2026-02-23 Alice Carlotti * config/aarch64/aarch64.cc (aarch64_override_options_internal): Remove +sme+nosve sorry, and remove SVE from nosme workaround. * doc/invoke.texi: Remove SVE2 requirement from +sme. 2026-02-23 Alice Carlotti * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Replace TARGET_SVE{2} with explicit feature flag checks. * config/aarch64/aarch64.cc (aarch64_adjust_generic_arch_tuning): Add SME to SVE2 check. * config/aarch64/aarch64.h (TARGET_SVE): Adjust condition. (TARGET_SVE2): Ditto. 2026-02-23 Alice Carlotti * config/aarch64/aarch64-sme.md (UNSPEC_GET_CURRENT_VG): New enum value. (aarch64_get_current_vg): New insn. * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use __arm_get_current_vg if cntd is unavailable. 2026-02-22 Roger Sayle PR c/123716 * tree.cc (tree_nop_conversion_p): Move sanity checks on inner_type to here... (tree_nop_conversion): ... from here. 2026-02-22 Nathaniel Shead PR c++/120974 * gcc.cc (join_spec_func): Escape special characters. 2026-02-21 Takayuki 'January June' Suwa * config/xtensa/xtensa.cc (constantsynth_pass1): Add the case where the assignment destination is a stack pointer to the exclusion criteria for processing. 2026-02-21 Jeff Law PR rtl-optimization/123994 * rtl-ssa/changes.cc (function_info::verify_insn_changes): Bullet proof loop to not fault if we run off the end of the insn chain. 2026-02-21 Jeff Law PR target/124147 * config/riscv/riscv.cc (riscv_same_function_versions): Use nullptr_t rather than UNKNOWN_LOCATION for pointer argument. 2026-02-20 Kwok Cheung Yeung PR middle-end/113436 * omp-low.cc (omp_lower_target): Do not check for variable-length variables in private clauses by reference when allocating memory. 2026-02-20 Richard Biener PR tree-optimization/124068 * tree-vect-patterns.cc (target_has_vecop_for_code): Move earlier, add defaulted optab_subtype parameter. (vect_recog_over_widening_pattern): Check that the target supports the narrowed operation before committing to the pattern. 2026-02-20 Martin Jambor PR ipa/122856 * ipa-cp.cc (self_recursive_pass_through_p): Test jump function type first. (self_recursive_ancestor_p): New function. (find_scalar_values_for_callers_subset): Test also for self-recursive ancestor jump functions. (push_agg_values_for_index_from_edge): Likewise. 2026-02-20 Andrew Pinski PR tree-optimization/121103 * gimple-fold.cc (gimple_fold_call): Don't simplify noreturn functions. * tree-ssa-dse.cc (dse_optimize_stmt): Don't handle calls to noreturn functions. 2026-02-19 jlaw PR tree-optimization/124108 * match.pd (reassociating XOR to expose rotations): Check type_has_mode_precision_p before simplifying. 2026-02-19 Jakub Jelinek * config/i386/i386.cc (avx_vpermilp_parallel): Use IN_RANGE macro. 2026-02-19 Pan Li * config/riscv/autovec-opt.md (*literal_v_vf_): Add new pattern for vfmax/min combine to fx. 2026-02-18 Andrew Pinski PR rtl-optimization/116053 * regcprop.cc (copyprop_hardreg_forward_1): Use delete_insn_and_edges instead of delete_insn. 2026-02-18 Vladimir N. Makarov PR rtl-optimization/120169 * lra-int.h (lra_process_new_insns): Modify the prototype. * lra.cc (lra_process_new_insns): Add arg fixup_reg_args_size with implicit value. Move REG_ARGS_SIZE note if necessary. * lra-constraints.cc (curr_insn_transform): Pass the new arg value. 2026-02-18 Richard Biener PR target/123137 * config/i386/i386-features.cc (ix86_emit_tls_call): Improve local FLAGS_REG liveness calculation. 2026-02-18 Jakub Jelinek PR target/124138 * config/i386/i386.cc (avx_vpermilp_parallel): Verify ipar[2] and ipar[3] aren't larger than 3. 2026-02-18 H.J. Lu PR target/124098 * config/i386/i386.cc (ix86_access_stack_p): New. (ix86_find_max_used_stack_alignment): Update stack alignment only if stack is used. 2026-02-17 H.J. Lu PR target/124136 * config/i386/i386-features.cc (ix86_check_flags_reg): Don't mark clobbered FLAGS_REG as live. 2026-02-17 Richard Earnshaw PR target/124134 * config/arm/arm.md (movsfcc): FAIL if using restricted IT blocks and we lack VSEL. (movdfcc): Likewise. 2026-02-17 Jeff Law PR target/124048 * config/riscv/zicond.md (conditional AND patterns): Fix missed flipping the condition's test in RTL output. 2026-02-17 Richard Biener PR tree-optimization/124130 * tree-inline.cc (copy_edges_for_bb): Fixup noreturn calls with abnormal edge source. 2026-02-17 Richard Biener PR tree-optimization/124132 * tree-ssa-loop-split.cc (compute_new_first_bound): Fix bound difference computation. 2026-02-17 Jakub Jelinek PR target/120233 * gimple-ssa-store-merging.cc (find_bswap_or_nop_2): New function. (find_bswap_or_nop): Move CONSTRUCTOR handling to above function, call it instead of find_bswap_or_nop_1. (bswap_replace): Handle VEC_PACK_TRUNC_EXPR like CONSTRUCTOR. (maybe_optimize_vector_constructor): Likewise. (pass_optimize_bswap::execute): Likewise. (get_status_for_store_merging): Likewise. (pass_store_merging::execute): Likewise. 2026-02-15 Rainer Orth PR libstdc++/113450 PR libstdc++/123176 * config/sol2.h (INT8_TYPE): Change to signed char. (INT_LEAST8_TYPE): Likewise. (INT_FAST8_TYPE): Likewise. 2026-02-15 Iain Sandoe * json.cc (pointer::token::print): Cast the value to pp_scalar with (fmt_size_t). 2026-02-15 Jan Hubicka * ipa-devirt.cc (ipa_devirt): Improve statistics for multi-target devirtualization; do not simple-call devirtualize already devirtualized calls. 2026-02-15 Rainer Orth * configure.ac (gcc_cv_as_sparc_fmaf): Remove. (gcc_cv_as_sparc_sparc4): Remove. (gcc_cv_as_sparc_sparc): Remove. (gcc_cv_as_sparc_sparc6): Remove. * configure: Regenerate. * config.in: Regenerate. * config/sparc/sparc.h (AS_NIAGARA3_FLAG) Remove. Replace uses by definition. (AS_NIAGARA4_FLAG): Likewise. (AS_NIAGARA7_FLAG): Likewise. (AS_M8_FLAG): Likewise. * config/sparc/sol2.h [!HAVE_AS_SPARC4]: Remove. (AS_SPARC32_FLAG): Remove. (AS_SPARC64_FLAG): Remove. (AS_NIAGARA3_FLAG) Replace uses by definition. (AS_NIAGARA4_FLAG): Likewise. (AS_NIAGARA7_FLAG): Likewise. (AS_M8_FLAG): Likewise. * config/sparc/sparc.cc (sparc_option_override): [!HAVE_AS_FMAF_HPC_VIS3]: Remove. [!HAVE_AS_SPARC4]: Likewise. [!HAVE_AS_SPARC5_VIS4]: Likewise. [!HAVE_AS_SPARC6]: Likewise. 2026-02-15 Andrew Pinski PR tree-optimization/124099 * tree-ssa-forwprop.cc (optimize_agr_copyprop_return): Don't do anything if the return is already result decl or a deference of result decl. Also reject non local var decls. 2026-02-14 Jakub Jelinek PR cobol/122839 * doc/install.texi (COBOL-Specific Options): New. 2026-02-14 Rainer Orth * configure.ac (gcc_cv_as_sparc_gotdata_op): Remove. * configure: Regenerate. * config.in: Regenerate. * config/sparc/sparc.md [!HAVE_AS_SPARC_GOTDATA_OP]: Remove. 2026-02-14 Kalvis Duckmanton PR target/112400 * config/vax/vax.md (casesi1): Wrap naked operand 1 with a USE where used with the insn split to. (*casesi1): Likewise naked incoming operand 1. 2026-02-14 Maciej W. Rozycki * config/vax/vax.cc (nonindexed_address_p): Move incoming RTX's operand 0 access to the actual use places. 2026-02-14 Andrew Pinski PR tree-optimization/124086 * tree-complex.cc (extract_component): Extend the check for ssa names for VCE to include invariants. 2026-02-13 David Malcolm * json-parsing.cc (selftest::assert_json_pointer_eq): New. (ASSERT_JSON_POINTER_EQ): New. (selftest::test_parse_object): Add tests of JSON pointer. (selftest::test_pointer_escaping): New test. (selftest::json_parser_cc_tests): Call it. * json.cc (json::pointer::token::print): New. (json::value::print_pointer): New. * json.h (json::pointer::token::print): New decl. (json::value::print_pointer): New decl. * libsarifreplay.cc: Include pretty-print.h. (make_logical_location_from_jv): Use json::pointer::token::print for short_name. 2026-02-13 Vladimir N. Makarov PR rtl-optimization/124079 * lra-constraints.cc (get_matching_reload_reg_subreg): Add new arg rclass. Use another condition to use lowpart_subreg. Use lra_constraint_offset to calculate the subreg offset. (get_reload_reg, match_reload): Pass the new arg. 2026-02-13 Andrew Pinski PR tree-optimization/95825 * tree-ssa-forwprop.cc (optimize_agr_copyprop_return): New function. (optimize_agr_copyprop): Call optimize_agr_copyprop_return for return statements. 2026-02-13 David Malcolm PR diagnostics/124014 * diagnostics/html-sink.cc (html_builder::get_logical_loc_mgr): New. (html_builder::m_logical_loc_mgr): Drop field. (html_builder::html_builder): Drop initialization of m_logical_loc_mgr. (html_builder::maybe_make_state_diagram): Use get_logical_loc_mgr rather than m_logical_loc_mgr. (html_builder::make_element_for_diagnostic): Likewise. 2026-02-13 Richard Biener PR tree-optimization/99959 * tree-sra.cc (create_access_replacement): Guard DECL_NONLOCAL_FRAME access. 2026-02-13 Richard Biener PR tree-optimization/99959 * tree-sra.cc (create_access_replacement): Always create debug expressions for DECL_NONLOCAL_FRAME bases. 2026-02-13 Dhruv Chawla * Makefile.in (all.fda): Bump profile_merger gcov_version to 3. 2026-02-12 Hans-Peter Nilsson * config/cris/cris.cc (cris_reduce_compare): Add forcing the first operand to be a register, unless the second operand is 0, to scope. * config/cris/cris.md ("*cstore4") ("*cbranch4"): Add guards to condition, for either operand to be a register unless the last operand is zero. 2026-02-12 Hans-Peter Nilsson * config/cris/cris.md (BWDSF): New mode_iterator replacing SISF. All callers changed. ("*movhi_internal"): Anonymized from "movhi" to make it a match-only pattern. Add conditions to guard from source and destination both being memory operands. ("*movstricthi_internal", "*movstrictqi_internal"): Similarly for "movstricthi" and "movstrictqi". ("movstrict"): Add common expander for BW, forcing one operand to be a register or source being zero. 2026-02-12 Hans-Peter Nilsson * config/cris/cris.md (SISF): New mode_iterator for SI and SF. ("mov"): Make "movsi" a define_expand to include SFmode by means of the SISF iterator and adjust to also handle SFmode. ("*movsf_internal"): Anonymize "movsf"; make it a match-only pattern. Add conditions to guard from source and destination both being memory operands. 2026-02-12 Kwok Cheung Yeung PR middle-end/113436 * omp-low.cc (is_variable_sized): Add extra is_ref argument. Check referenced type if true. (lower_omp_target): Call lower_private_allocate to generate code to allocate memory for firstprivate/private clauses with allocators, and insert code after dependent variables have been initialized. Construct calls to free allocate memory and insert after target block. Adjust decl values for clause variables. Copy value of firstprivate variables to allocated memory. 2026-02-12 Andrew Pinski PR rtl-optimization/124062 * ifcvt.cc (noce_try_cond_arith): Check the conditional code for UNKNOWN. 2026-02-12 Soumya AR * config/aarch64/aarch64-json-schema.h: Include inherited members for SVE vector costs. * config/aarch64/aarch64-json-tunings-parser-generated.inc (parse_vec_costs_sve): Regenerate. * config/aarch64/aarch64-json-tunings-parser.cc (aarch64_load_tuning_params_from_json_string): Clear dispatch scheduling flag if dispatch_constraints is NULL. * config/aarch64/aarch64-json-tunings-printer-generated.inc (serialize_vec_costs_sve): Regenerate. 2026-02-11 Vladimir N. Makarov PR rtl-optimization/121191 * lra-constraints.cc (get_matching_reload_reg_subreg): New. (get_reload_reg, match_reload): Use it. 2026-02-11 Tamar Christina PR tree-optimization/124038 * tree-ssa-math-opts.cc (strip_nop_view_converts): Remove. (convert_mult_to_fma): Undo stripping. 2026-02-11 Jakub Jelinek PR middle-end/124056 * cfgexpand.cc (expand_asm_stmt): If after_md_seq is non-NULL, emit it at the start of after_rtl_seq instead of after fallthru_label. 2026-02-11 Jakub Jelinek PR rtl-optimization/116600 PR middle-end/123386 * cfgrtl.cc (force_nonfallthru_and_redirect): Don't do any asm goto adjustments early, only note in asm_goto_edge if any labels point originally to e->dest head. After jumpblock creation don't add an extra edge for asm_goto_edge, instead adjust those labels pointing to former e->dest head to point to jumpblock instead. 2026-02-10 Dimitry Andric PR libfortran/123366 * configure.ac: Move restoring of CXXFLAGS/LDFLAGS for zstd test to the correct place. * configure: Regenerate. 2026-02-10 Alice Carlotti PR target/123624 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): New. * config/aarch64/aarch64.cc (aarch64_use_simple_return_insn_p): New, used... * config/aarch64/aarch64.md (simple_return): ...here. 2026-02-10 Alice Carlotti * config.gcc: Improve aarch64 --with-arch checks. 2026-02-10 Alfie Richards * tree-vect-data-refs.cc (vect_analyze_data_refs_alignment): Update signature and comment. * tree-vect-loop.cc (vect_analyze_loop_2): Update comment for vect_analyze_data_refs_alignment and remove control flow. * tree-vectorizer.h (vect_analyze_data_refs_alignment): Update signature. 2026-02-10 Juergen Christ PR tree-optimization/122297 * tree-vect-loop.cc (vectorize_fold_left_reduction): Adjust. (vectorizable_induction): Adjust. (vectorizable_live_operation_1): Adjust. (vect_get_loop_len): Provide parameter to select bias-adjusted length. (vect_gen_loop_len_mask): Adjust. (vect_update_ivs_after_vectorizer_for_early_breaks): Adjust. * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Adjust. (vectorizable_call): Adjust. (vectorizable_operation): Adjust. (vectorizable_store): Adjust. (vectorizable_load): Adjust. (vectorizable_condition): Adjust. * tree-vectorizer.h (vect_get_loop_len): Add parameter. 2026-02-10 Kyrylo Tkachov * config/aarch64/tuning_models/olympus.h (olympus_sve_vector_cost): Set align_load_cost to 6. 2026-02-10 Richard Biener PR tree-optimization/107690 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Do not merge possibly analyzable exit conditions. 2026-02-09 David Malcolm PR diagnostics/124014 * diagnostics/sarif-sink.cc (sarif_builder::get_logical_location_manager): Reimplement, to eliminate m_logical_loc_mgr. (sarif_builder::m_logical_loc_mgr): Drop field. (sarif_builder::sarif_builder): Update for removed field. (sarif_builder::set_any_logical_locs_arr): Likewise. (sarif_builder::ensure_sarif_logical_location_for): Likewise. (sarif_builder::make_minimal_sarif_logical_location): Likewise. 2026-02-09 David Faust PR target/123556 * config/bpf/bpf.h (SLOW_BYTE_ACCESS): Set to 0, update comment. 2026-02-09 Eric Botcazou PR target/80881 * attribs.cc (handle_dll_attribute): If TARGET_WIN32_TLS is 1, issue an error if either attribute is set on a TLS variable. 2026-02-09 Rainer Orth PR other/123841 PR target/123926 * acinclude.m4 (gcc_GAS_FLAGS): Handle non-Darwin/Solaris as cases alike on x86 and SPARC. * configure: Regenerate. 2026-02-09 Vladimir N. Makarov PR rtl-optimization/123796 * lra-int.h (lra_pointer_equiv_set_add): Add prototype. (lra_pointer_equiv_set_in, lra_finish_equiv): Ditto. * lra.cc (lra_emit_move): Set up pointer flag of the destination if necessary. (lra): Call lra_finish_equiv. * lra-constraints.cc: Include hash-set.h. (pointer_equiv_set, lra_pointer_equiv_set_add): New. (lra_pointer_equiv_set_in, lra_finish_equiv): New. (get_equiv_with_elimination): Propagate pointer flag by adding to pointer_equiv_set. (process_addr_reg, curr_insn_transform): Ditto. 2026-02-09 Richard Biener * doc/analyzer.texi (State Tracking): Fix typo. 2026-02-09 Richard Biener PR tree-optimization/123225 * tree-vect-loop.cc (vect_analyze_loop_costing): For uncounted loops reject not trivially profitable loops that have no estimate on the number of scalar iterations. 2026-02-09 Richard Biener PR tree-optimization/124034 * tree-vect-stmts.cc (process_use): Never force induction latch defs relevant when doing early break vectorization. 2026-02-09 Takayuki 'January June' Suwa * doc/invoke.texi (-mconst16/-mno-const16): Remove the clause "The CONST16 instruction is currently not a standard option from Tensilica." 2026-02-09 Martin Jambor PR tree-optimization/117217 * tree-sra.cc (propagate_subaccesses_from_rhs): Do not propagate bit-field children. (propagate_subaccesses_from_lhs): Likewise. 2026-02-09 Jeff Law PR target/123911 * config/riscv/riscv.cc (riscv_legitimize_move): Elide nop moves to avoid infinite recursion. 2026-02-07 Jakub Jelinek PR tree-optimization/123672 * tree-ssa-forwprop.cc (recognise_vec_perm_simplify_seq): Use std::swap instead of fetching gimple_assign_rhs{1,2} again. Change type of lanes vector from auto_vec to auto_vec and store true instead of 1 into it. Fix comment typo and formatting fix. (can_blend_vec_perm_simplify_seqs_p): Put end of comment on the same line as the last sentence in it. (calc_perm_vec_perm_simplify_seqs): Change lane_assignment type from auto_vec to auto_vec and store 2 + l_orig into it instead of true. Fix comment typo and formatting fix. Set use_seq1 to line_assignment[i] < 2 instead of line_assignment[i] != 2. Replace bogus computation of index for !use_seq with using line_assignment[i] - 2. Set l1 to l1 % nelts and similarly for l2. 2026-02-07 Jakub Jelinek * optabs.cc (expand_vec_perm_const): Comment spelling fix, permuation -> permutation. * config/arm/arm.cc (arm_evpc_neon_vtbl): Likewise. * config/loongarch/loongarch.cc (loongarch_try_expand_lsx_vshuf_const): Comment spelling fix, permuatation -> permutation. (loongarch_is_elem_duplicate): Likewise. Comment spelling fix, permuation -> permutation. 2026-02-07 Richard Biener * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Remove double and triple accounting of GPR -> XMM moves in construction of AVX and AVX512 vectors. 2026-02-07 Stefan Schulze Frielinghaus * cse.cc (invalidate_from_sets_and_clobbers): Consider any hard register referred to by any single register constraint potentially being clobbered. 2026-02-07 Roger Sayle PR middle-end/123826 PR tree-optimization/123958 PR c++/124002 * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Delete code that (mis)handled conversion of pow(x,2.0) to x*x. 2026-02-07 Roger Sayle Andrew Pinski Jeff Law PR rtl-optimization/123833 * recog.cc (cancel_changes): Update the recog_data cache if it holds the instruction being changed. 2026-02-06 Richard Ball * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add ptr and generic variants. (aarch64_init_pcdphint_builtins): Likewise. (aarch64_general_expand_builtin): Add ptr variant. (aarch64_resolve_overloaded_builtin_stshh): Function to handle overloaded atomic_store_with_stshh. (aarch64_resolve_overloaded_builtin_general): Add call to stshh function. * config/aarch64/aarch64-c.cc (aarch64_resolve_overloaded_builtin): Allow fndecl to return. * config/aarch64/arm_acle.h (__atomic_store_with_stshh): Remove __Generic. 2026-02-06 Martin Jambor PR ipa/106260 * ipa-cp.cc (initialize_node_lattices): Replace assert that there are callers with handling that situation when -fno-toplevel_reorder. 2026-02-06 Rainer Orth * configure.ac (gnu_ld_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). (gcc_cv_ld): Set before gnu_ld_flag. (gas_flag): Move $gcc_cv_ld --version check into AC_ARG_WITH(gnu-ld). (gcc_cv_as): Set before gas_flag. * configure: Regenerate. 2026-02-06 Jakub Jelinek PR c/101312 * alias.cc (get_alias_set): Allow TYPE_CANONICAL (mv) to be not its own TYPE_MAIN_VARIANT, as long as its TYPE_MAIN_VARIANT has TYPE_CANONICAL equal to itself. * tree.cc (verify_type): Likewise. 2026-02-06 Daniel Barboza PR tree-optimization/114969 * match.pd (`(A | (convert?)(A != 0)) EQ|NE 0`): New pattern. 2026-02-06 Andrew Stubbs * config/gcn/gcn-valu.md (*mov_exec_match): Delete. (*mov_exec_match): Likewise. (*mov): Delete unaligned register support, and convert to new constraint syntax. (mov_exec): Likewise. (@mov_sgprbase): Likewise. * config/gcn/gcn.md (*movbi): Likewise. 2026-02-06 Richard Biener PR tree-optimization/114274 * tree-switch-conversion.cc (switch_conversion::build_one_array): Use UNKNOWN_LOCATION for the CSWTCH decl. 2026-02-06 Jakub Jelinek PR c++/123977 * tree.cc (build_function_type): Pass no_named_args_stdarg_p as last argument to recursive call. 2026-02-06 Robin Dapp PR tree-optimization/123940 * tree-ssa-math-opts.cc (convert_mult_to_fma): Check multiplication result is an addend. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * attribs.cc: Replace CONST_CAST with const_cast<>. * builtins.cc: Likewise. * collect2.cc: Likewise. * config/bpf/core-builtins.cc: Likewise. * config/gcn/mkoffload.cc: Likewise. * config/nvptx/mkoffload.cc: Likewise. * config/nvptx/nvptx.cc: Likewise. * ctfc.cc: Likewise. * dumpfile.cc: Likewise. * gcc.cc: Likewise. * gcov.cc: Likewise. * gengtype-parse.cc: Likewise. * gengtype-state.cc: Likewise. * gengtype.cc: Likewise. * genoutput.cc: Likewise. * ggc-page.cc: Likewise. * godump.cc: Likewise. * lto-section-in.cc: Likewise. * lto-wrapper.cc: Likewise. * omp-offload.cc: Likewise. * passes.cc: Likewise. * plugin.cc: Likewise. * prefix.cc: Likewise. * pretty-print.cc: Likewise. * selftest.cc: Likewise. * statistics.cc: Likewise. * stringpool.cc: Likewise. * tree.h: Likewise. * tree-profile.cc: Likewise. * vec.h: Likewise. * system.h (CONST_CAST2): Remove. (CONST_CAST): Likewise. * tsystem.h (CONST_CAST2): Remove. (CONST_CAST): Likewise. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * tree.h: Replace CONST_CAST2 with const_cast<>. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * attribs.cc: Replace CONST_CAST_TREE with const_cast. * config/aarch64/aarch64.cc: Likewise. * config/arm/arm.cc: Likewise. * config/darwin.cc: Likewise. * fold-const.cc: Likewise. * gimple-expr.cc: Likewise. * print-rtl.cc: Likewise. * tree-object-size.cc: Likewise. * tree.cc: Likewise. * varasm.cc: Likewise. * tree.h: Likewise. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * gimple.h: Replace CONST_CAST_GIMPLE with const_cast. * system.h (CONST_CAST_GIMPLE): Remove. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * system.h: Remove. * tracer.cc: Replace CONST_CAST_BB with const_cast. * tree-cfg.cc: Likewise. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * alias.cc: Replace CONST_CAST_RTX with const_cast. * config/i386/x86-tune-sched-bd.cc: Likewise. * config/rs6000/rs6000.cc: Likewise. * recog.cc: Likewise. * sel-sched-ir.cc: Likewise. * var-tracking.cc: Likewise. * varasm.cc: Likewise. * system.h (CONST_CAST_RTX): Remove. 2026-02-06 Torbjörn SVENSSON PR middle-end/123892 * config/aarch64/aarch64.cc: Replace CONST_CAST_RTX_INSN with const_cast. * rtlanal.cc: Likewise. * sched-deps.cc: Likewise. * system.h (CONST_CAST_RTX_INSN): Remove. 2026-02-05 David Malcolm * value-range.cc (irange_bitmask::irange_bitmask): Fix typo in comment. * value-range.h (class vrange): Update leading comment to refer to "subsets" rather than "ranges". Allude to the available subclasses. Warn that the classes can be over-approximations and thus can introduce imprecision. (class irange_bitmask): Updating leading comment to refer to knowledge about a "value", rather than a "range". Reword description of MASK and VALUE to clarify implementation, and add an example. (class irange): Update leading comment to refer to a "subset of possible values" rather than a "range", and that subclasses have responsibility for storage. (class nan_state): Rewrite leading comment. (class frange final): Update leading comment to refer to subsets of possible values, rather than ranges, and to consistently use "Nan" when capitalizing. 2026-02-05 Michal Jires PR testsuite/123559 * cgraphunit.cc (check_global_declaration): Suppress OPT_Wunused. 2026-02-05 Jakub Jelinek Revert: 2026-01-28 Jakub Jelinek PR c/101312 * langhooks.h (struct lang_hooks_for_types): Remove copy_lang_qualifiers. Add build_lang_qualified_type. * langhooks.cc (lhd_build_lang_qualified_type): New function. * langhooks-def.h (lhd_build_lang_qualified_type): Declare. (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove. (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of LANG_HOOKS_COPY_LANG_QUALIFIERS. * attribs.cc (build_type_attribute_qual_variant): Use lang_hooks.types.build_lang_qualified_type instead of build_qualified_type and/or build_qualified_type with optional lang_hooks.types.copy_lang_qualifiers call. (attr_access::array_as_string): Use "array " attribute instead of "array". If attribute has been created or intended quals differ from quals of build_array_type, use copy_node and adjust quals and attributes on the copy, print and then ggc_free. 2026-02-05 Richard Biener PR tree-optimization/123986 * tree-vect-slp.cc (vect_slp_analyze_operations): When rolling back analyzed nodes, release node specific data and reset SLP_TREE_TYPE. 2026-02-05 Richard Biener PR tree-optimization/123983 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer): Only update the PHI argument on the requested edge. 2026-02-05 Richard Earnshaw PR target/123604 * compare-elim.cc (find_flags_uses_in_insn): Handle COND_EXEC. * config/arm/arm.cc (TARGET_FLAGS_REGNUM): Define. 2026-02-05 Jakub Jelinek PR middle-end/123978 * range-op.h (OP_WIDEN_MULT_SIGNED_UNSIGNED): Define. (OP_WIDEN_PLUS_SIGNED, OP_WIDEN_PLUS_UNSIGNED, RANGE_OP_TABLE_SIZE): Renumber. * gimple-range-op.cc (imple_range_op_handler::maybe_non_standard): Use 3 different classes instead of 2 for WIDEN_MULT_EXPR, one for both operands signed, one for both operands unsigned and one for operands with different signedness. In the last case canonicalize to first operand signed second unsigned. * range-op.cc (operator_widen_mult_signed::wi_fold): Use TYPE_PRECISION (type) rather than wi::get_precision (whatever) * 2, use SIGNED for all wide_int::from calls. (operator_widen_mult_unsigned::wi_fold): Similarly but use UNSIGNED for all wide_int::from calls. (class operator_widen_mult_signed_unsigned): New type. (operator_widen_mult_signed_unsigned::wi_fold): Define. 2026-02-05 Jan Hubicka PR ipa/123226 * cgraph.cc (cgraph_update_edges_for_call_stmt_node): Fix handling of multi-target speculations resolved at clone materialization time 2026-02-05 xiezhiheng liyunfei * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add hip12 core * config/aarch64/aarch64-cost-tables.h: Add hip12_extra_costs * config/aarch64/aarch64-tune.md: Regenerate * config/aarch64/aarch64.cc: Include hip12 tuning model * doc/invoke.texi: Document -mcpu=hip12 * config/aarch64/tuning_models/hip12.h: New file. 2026-02-05 Robin Dapp PR target/123870 PR target/123969 * config/riscv/vector.md: Add vlds to "no ratio" for theadvector. 2026-02-05 Robin Dapp PR target/123971 * config/riscv/riscv.cc (riscv_vector_mode_supported_any_target_p): Remove TARGET_XTHEADVECTOR. 2026-02-05 Robin Dapp PR tree-optimization/123925 * tree-ssa-forwprop.cc (simplify_vector_constructor): Add nop-conversion handling for maybe_ident. 2026-02-05 Robin Dapp PR target/123910 * config/riscv/riscv-string.cc (riscv_expand_block_move): Remove !xtheadvector guard. (use_vector_stringop_p): Guard small LMULs. (check_vectorise_memory_operation): Ditto. 2026-02-05 Richard Biener PR tree-optimization/121726 * tree-sra.cc (build_ref_for_offset): Add force_ref_all parameter and use ptr_type_node as alias pointer type in that case. (build_ref_for_model): Add force_ref_all parameter and pass it through, forcing build_ref_for_offset. (generate_subtree_copies): Likewise. (sra_modify_call_arg): Force ref-all accesses. 2026-02-05 Tamar Christina PR tree-optimization/123898 * tree-ssa-math-opts.cc (strip_nop_view_converts): New. (convert_mult_to_fma): Use it. 2026-02-05 Alexandre Oliva * simplify-rtx.cc (negated_ops_p): New. (simplify_context::simplify_binary_operation_1): Use it. 2026-02-05 Pan Li * config/riscv/riscv-opts.h (VR2FPR_COST_UNPROVIDED): Add new sentinel for unprovided cost. * config/riscv/riscv-protos.h (get_vr2fr_cost): Add new func decl. * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Leverage new func to get cost of vr2fpr. * config/riscv/riscv.cc (riscv_register_move_cost): Ditto. (get_vr2fr_cost): Add new func to wrap access to the cost of the vr2fpr. * config/riscv/riscv.opt: Add new param vr2fpr-cost. 2026-02-05 Pan Li * config/riscv/riscv-opts.h (GPR2VR_COST_UNPROVIDED): Depend on default unprovided value. (FPR2VR_COST_UNPROVIDED): Ditto. (VR2GPR_COST_UNPROVIDED): Ditto. (COST_UNPROVIDED): Add new default unprovided value. * config/riscv/riscv-protos.h (get_vr2gr_cost): Add new func decl. * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost): Leverage new func to get cost of vr2gpr. * config/riscv/riscv.cc (riscv_register_move_cost): Ditto. (get_vr2gr_cost): Add new func to wrap access to the cost of the vr2gpr. * config/riscv/riscv.opt: Add new param vr2gpr-cost. 2026-02-04 Vladimir N. Makarov PR rtl-optimization/123922 * lra-assigns.cc (lra_split_hard_reg_for): Allocate and free update_hard_regno_preference_check. Clear non_reload_pseudos for successful spilling too. 2026-02-04 Andrew Pinski PR middle-end/121661 * tree-complex.cc (extract_component): Create gimple assign statements directly rather than call force_gimple_operand_gsi. 2026-02-04 Sandra Loosemore PR translation/89915 * doc/params.texi: Copy-edit text throughout the file. * params.opt: Likewise in documentation strings. 2026-02-04 Sandra Loosemore PR target/123245 PR translation/89915 * doc/invoke.texi (Warning Options): Remove discussion of parameters from -Winterference-size documentation. (Static Analyzer Options): Ditto for -Wanalyzer-symbol-too-complex, the list of things the analyzer has specific knowledge of, and -fanalyzer-call-summaries. (Optimize Options): Ditto for -finline-limit and fipa-cp-clone. (Instrumentation Options): Likewise for -fsanitize=kernel-hwaddress and -fharden-control-flow-redundancy. (C++ Compiled Module Interface): Likewise for discussion of limits on number of open files. 2026-02-04 Sandra Loosemore PR target/123245 PR translation/89915 * Makefile.in (TEXI_GCCINT_FILES): Add params.texi. * doc/gccint.texi (pa): New index. (Top): Add new Parameters and Parameters Index nodes to menu. Include params.texi. (Parameter Index): New. * doc/invoke.texi (Option Summary): Move --param from Optimization Options to Developer Options. (Optimization Options): Move parameter documentation to params.texi. (Developer Options): Add abbreviated discussion of --param here. (LoongArch Options): Move parameter documentation to params.texi. (RISC-V Options): Likewise. (RS/6000 and PowerPC Options): Likewise. * doc/params.texi: New file. 2026-02-04 Yangyu Chen * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch): Fix nullptr dereference when parsing invalid arch string. 2026-02-04 Jakub Jelinek PR c++/123818 * tree.cc (simple_cst_equal) : Return -1 if some recursive call returns -1. Also compare indexes. 2026-02-04 Jakub Jelinek PR middle-end/122689 * gimple-lower-bitint.cc (gimple_lower_bitint): For the PHI handling if min_prec == prec, break after emitting assignment from c. 2026-02-04 Prachi Godbole * params.opt: Change default param value. 2026-02-03 Rainer Orth PR other/123841 * acinclude.m4 (gcc_GAS_FLAGS): Check $gas_flag, $gnu_ld_flag instead of $gas, $gnu_ld. * configure.ac: Likewise. (gas_flag): Determine if not already set. (gnu_ld_flag): Likewise. (ld_32_opt): Only set after gnu_ld_flag is set. (ld_64_opt): Likewise. * configure: Regenerate. 2026-02-03 Rainer Orth PR other/123841 * acinclude.m4 (gcc_GAS_FLAGS): Handle Darwin as cases separately. * configure: Regenerate. 2026-02-03 Roger Sayle PR middle-end/118608 * expr.cc (store_field_updates_msb_p): New helper function that now also handles BYTES_BIG_ENDIAN targets. (expand_assignment): Use the above function when deciding to emit a required sign/zero extension. * rtlanal.cc (truncated_to_mode): Call targetm.mode_rep_extended to check whether an explicit TRUNCATE is required (i.e. performs an extension) on this target. * config/mips/mips.md (*extenddi_truncate): Handle all SUBDI modes, not just SHORT modes. 2026-02-03 Roger Sayle PR middle-end/123826 * tree-ssa-math-opts.cc (gimple_expand_builtin_pow): Add test for flag_errno_math. * fold-const-call.cc (fold_const_pow): Reorganize, eliminating call to real_powi, and letting do_mpfr_arg2 do all the heavy lifting. 2026-02-03 Alfie Richards PR target/123548 * config/aarch64/aarch64-builtins.cc (aarch64_builtins): Rename AARCH64_PL to AARCH64_PREFETCH_PL. (aarch64_init_prefetch_builtin): Rename to... (aarch64_init_prefetch_builtins): ...this and change builtin names. (AARCH64_INIT_PREFETCH_BUILTIN): Change to not add "__builtin_aarch64__" prefix and to register builtins. (handle_arm_acle_h): Add call to aarch64_init_prefetch_builtins. (aarch64_init_pcdphint_builtins): Move __pldir code to init prefetch builtins. (aarch64_general_init_builtins): Remove call to aarch64_init_prefetch_builtin. (aarch64_expand_prefetch_builtin): Update names of PL builtins.` * config/aarch64/arm_acle.h (__pld): Remove (__pli): Likewise. (__plix): Likewise. (__pldx): Likewise. (__pldir): Likewise. 2026-02-03 Jeff Law PR rtl-optimization/123322 * combine.cc (try_combine): Consider an IF_THEN_ELSE "good" when evaluating if 4 insn combinations should be tried. * config/riscv/iterators.md (zero_is_neutral_op): New iterator. (zero_is_neutral_op_c): Likewise. (any_shift_rotate): Likewise. * config/riscv/riscv.cc (riscv_rtx_costs): Recognize the conditional AND RTL and cost is appropriately. * config/riscv/zicond.md: Add patterns to rewrite general conditional move sequences into simpler forms. 2026-02-03 Torbjörn SVENSSON * config.in: Regenerate. * configure: Regenerate. * configure.ac (gcc_cv_header_afunix_h): New test. (HAVE_AFUNIX_H): New AC_DEFINE. * diagnostics/sarif-sink.cc: Conditionally include afunix.h if it's available, else fall back to internal definition. 2026-02-03 Torbjörn SVENSSON PR middle-end/123892 * collect2.cc: Migrate from CONST_CAST2() macro to const_cast<>() C++ expression. * config/sparc/driver-sparc.cc: Likewise. * gcc-ar.cc: Likewise. * gcc.cc: Likewise. * toplev.cc: Likewise. * tree-nested.cc: Likewise. 2026-02-03 Richard Biener PR ipa/123416 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Fix typo in condtion for load merging when no callee summary. 2026-02-03 Xi Ruoyao Revert: 2025-11-08 Lulu Cheng PR target/122097 * config/loongarch/loongarch.cc (loongarch_const_vector_same_bytes_p): Add processing for floating-point vector data. 2026-02-03 Xi Ruoyao * config/loongarch/predicates.md (const_vector_neg_fp_operand): New define_predicate. (reg_or_vector_neg_fp_operand): New define_predicate. * config/loongarch/lasx.md (copysign3): Remove. (xorsign3): Remove. * config/loongarch/lsx.md (copysign3): Remove. (@xorsign3): Remove. * config/loongarch/simd.md (copysign3): New define_expand. (@xorsign3): New define_expand. (and3): Only allow IVEC instead of ALLVEC. (ior3): Likewise. (xor3): Likewise. * config/loongarch/loongarch.cc (loongarch_print_operand): No longer allow floating-point vector constants for %V. (loongarch_const_vector_bitimm_set_p): Always return false for floating-point vector constants. (loongarch_build_signbit_mask): Factor out force_reg. (loongarch_emit_swrsqrtsf): Use integer vector mode instead of floating-point vector mode when masking zero inputs. 2026-02-02 David Malcolm PR diagnostics/110522 * gcc.cc (driver_handle_option): Use get_diagnostic_file_output_basename for OPT_fdiagnostics_format_. * opts-diagnostic.cc (get_base_filename): Likewise. (get_diagnostic_file_output_basename): New. * opts-diagnostic.h (get_diagnostic_file_output_basename): New decl. * opts.cc (maybe_prepend_dump_dir_name): New, based on code in finish_options. (finish_options): Move code for determining prepended dump_base_name to maybe_prepend_dump_dir_name and call it. (common_handle_option): Use get_diagnostic_file_output_basename for OPT_fdiagnostics_format_. * opts.h (maybe_prepend_dump_dir_name): New decl. 2026-02-02 Andrew Pinski PR rtl-optimization/123294 * ifcvt.cc (noce_emit_store_flag): Reject modes greater than MAX_FIXED_MODE_SIZE. 2026-02-02 Tamar Christina PR tree-optimization/123897 * tree-ssa-math-opts.cc (convert_mult_to_fma_1): Use type of variable being folded. 2026-02-02 Tamar Christina PR target/121290 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost): Remove else. 2026-02-02 Jakub Jelinek PR tree-optimization/121104 * tree-ssa-math-opts.cc (match_uaddc_usubc): Punt if lhs of ovf1 or ovf2 doesn't have element type compatible with type. 2026-02-01 Richard Biener PR tree-optimization/123755 * tree-vect-stmts.cc (vectorizable_call): Adjust len-masking condition. Simplify code generation. 2026-01-31 Keith Packard * config/picolibc-spec.h (LIBC_LINK_SPEC): Use find-file for test and access to picolibc.ld. 2026-01-31 Richard Biener PR middle-end/123887 * match.pd ((a ? x : y) !=/== (b ? x : y)): Make sure x and y have no side-effects before evaluating them unconditionally. 2026-01-31 Gerald Pfeifer * doc/install.texi (Binaries): Switch delorie.com to https. 2026-01-30 Richard Biener PR middle-end/123887 * match.pd ((zero_one ==/!= 0) ? .. z y .. -> zero_one * z ..): Check evaluating z unconditionally has no side-effects, like trapping. 2026-01-30 Richard Biener PR debug/123886 * dwarf2out.cc (sym_off_pair::sym): Remove GTY((skip)). 2026-01-30 Michal Jires * doc/extend.texi: Mention flto-toplevel-asm-heuristics. * doc/invoke.texi: Add flto-toplevel-asm-heuristics. 2026-01-30 Richard Biener PR debug/110885 * dwarf2out.cc (generate_skeleton_bottom_up): Generate the skeleton ancestor tree when moving a new child to the parent even for template instantiations. 2026-01-30 Jakub Jelinek PR tree-optimization/123864 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) -> x > stype_max / cst || x < stype_min / cst): Only check integer_minus_onep for signed types. 2026-01-30 Jakub Jelinek PR c++/123790 * fold-const.cc (fold_convert_const): Handle conversion of integer_zerop to NULLPTR_TYPE. (fold_convert_loc): Likewise. 2026-01-30 Jørgen Kvalsvik PR gcov-profile/123855 * path-coverage.cc (flush_on_edges): Only look up SSA name def stmt when counter is non-const. 2026-01-30 Jørgen Kvalsvik * gcov-dump.cc (tag_paths): New function. 2026-01-30 Jørgen Kvalsvik * common.opt: ftest-coverage enabled by fpath-coverage or fcondition-coverage 2026-01-30 Jørgen Kvalsvik * gcov-dump.cc (tag_conditions): Read position before blocks, terms. 2026-01-30 Jørgen Kvalsvik PR gcov-profile/121084 PR gcov-profile/121123 PR gcov-profile/121409 * profile.cc (branch_prob): Record seen_locations without discriminators. 2026-01-30 Jakub Jelinek PR middle-end/123876 * omp-low.cc (diagnose_sb_2): Handle GIMPLE_ASM. 2026-01-30 Alex Coplan PR target/123206 * config/aarch64/aarch64-builtins.cc (struct aarch64_pragma_builtins_data): Declare array as CONSTEXPR. * config/aarch64/aarch64-simd-pragma-builtins.def: Update incorrect uses of TARGET_SIMD to use AARCH64_FL_SIMD instead. 2026-01-30 Richard Biener PR tree-optimization/109410 * tree-ssa-reassoc.cc (build_and_add_sum): Use gsi_start_nondebug_after_labels_bb to look for a possible returns-twice call. 2026-01-30 Iain Buclaw * config/darwin-d.cc (darwin_d_os_builtins): Add Apple. 2026-01-30 Andrew Pinski PR rtl-optimization/122170 * ifcvt.cc (noce_can_force_operand): Don't only check if there is an optab for the code check the entry for the mode is non-null. Handle non integral div by checking optab like force_operand does. 2026-01-30 Lulu Cheng * config/loongarch/loongarch-ftypes.def: Remove unused type. 2026-01-30 Lulu Cheng PR target/123766 * config/loongarch/loongarch-builtins.cc (loongarch_build_vpointer_type): New function. Return a type for 'volatile void *'. (LARCH_ATYPE_VPOINTER): New macro. * config/loongarch/loongarch-ftypes.def: Change the pointer type of the store class function from CVPOINTER to VPOINTER. 2026-01-30 Lulu Cheng PR target/123807 * config/loongarch/loongarch.cc (loongarch_expand_vector_init_same): When same is MEM and GET_MODE(same) != imode, first load the data from memory and then process it further. 2026-01-30 mengqinggang * config/loongarch/loongarch.md: Delete movsf TARGET_HARD_FLOAT condition. 2026-01-29 Andrew Pinski PR middle-end/123869 * optabs.cc (expand_unop): Move the NEG optab handling before the widening code. Move the ABS bitwise expansion from expand_abs_nojump to before the widening code. (expand_abs_nojump): Remove the bitwise expansion trial since expand_unop is called right above. 2026-01-29 Roger Sayle * expr.cc (emit_group_load_1): Don't call force_reg if orig_src is already a CONCAT. 2026-01-29 Sandra Loosemore * doc/options.texi (Options): Point to the "user experience" documentation. * doc/ux.texi (Guidelines for Options): Add some. 2026-01-29 Robin Dapp PR target/123806 * config/riscv/riscv-string.cc (expand_rawmemchr): Use unified vl_read. (expand_strcmp): Ditto. * config/riscv/riscv-vector-builtins-bases.cc: * config/riscv/riscv-vector-builtins.cc (function_expander::use_fof_load_insn): Only emit the store and not the VL read. * config/riscv/riscv-vsetvl.cc (get_fof_set_vl_reg): New function. (init_rtl_ssa): New wrapper. (finish_rtl_ssa): Ditto. (emit_fof_read_vls): Emit read_vl after each fault-only-first load. (pass_vsetvl::simple_vsetvl): Call emit_fof_read_vls (). (pass_vsetvl::lazy_vsetvl): Ditto. * config/riscv/vector-iterators.md: Add read_vl unspec. * config/riscv/vector.md (read_vlsi): Unify. (@read_vl): Ditto. (read_vldi_zero_extend): Ditto. (@pred_fault_load_set_vl): New FoF variant that saves VL in a register. (@pred_fault_load_set_vl): Ditto. 2026-01-29 Filip Kastl * gimple-ssa-pta-constraints.cc (make_param_constraints): Adjust comment: The function only creates varinfos for the parameters, the return value and the static chain. 2026-01-29 Richard Biener PR tree-optimization/122537 * tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne): Register may_be_zero condition when the IV may overflow. 2026-01-29 Sangamesh Mallayya * diagnostics/sarif-sink.cc: Move config.h at the begining. 2026-01-29 Richard Biener PR tree-optimization/123596 * tree-eh.cc (sink_clobbers): Create a virtual PHI when one is required but not present, queuing arguments for renaming. 2026-01-29 Richard Biener PR tree-optimization/116747 * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Avoid duplicate stmts in the set of store pairs to process. 2026-01-28 Uros Bizjak PR target/36503 * config/i386/i386.md (*3_sub): Also allow operands[3] & (-1) == (-1) in insn condition. Emit NOT RTX instead of NEG RTX in this case. (*3_sub_1): Ditto. 2026-01-28 Robin Dapp PR target/123824 * config/riscv/riscv.cc (riscv_vls_mode_fits_in_gprs_p): New helper. (riscv_pass_vls_aggregate_in_gpr): Use helper and distribute half-fitting vector to GPR and stack. (riscv_pass_aggregate_in_vr): Reformat comment. (riscv_get_arg_info): Use helper. (riscv_pass_by_reference): Ditto. 2026-01-28 Vladimir N. Makarov PR target/121571 * lra-constraints.cc (process_alt_operands): Reprocess asm insn when there are no enough regs for the asm-insn. 2026-01-28 Richard Biener PR middle-end/123575 * match.pd (abs ((T)x) -> absu (x)): For vector type arguments require the resulting operation is supported. 2026-01-28 Richard Biener PR ipa/111036 * match.pd (__builtin_constant_p ((T)x)): Strip nop-conversions from __builtin_constant_p arguments. 2026-01-28 Richard Biener PR rtl-optimization/106859 * var-tracking.cc (val_store): Dump -1 as UID if setting_insn is NULL. 2026-01-28 Richard Biener PR tree-optimization/123537 * match.pd (REDUC (@0 & @1) -> @0[I] & @1[I]): Restrict allowed conversions. 2026-01-28 Karl Meakin * doc/invoke.texi: Document `+sve-bfscale` flag. * config/aarch64/aarch64.h (TARGET_SVE_BFSCALE): New macro. * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define `__AARCH64_FEATURE_SVE_BFSCALE`. * config/aarch64/aarch64-sve-builtins-base.cc: Skip constant folding for floating-point or unpredicated multiplications. * config/aarch64/aarch64-sve-builtins-sve2.def: New `SVE_FUNCTION`s. * config/aarch64/aarch64-sve.md: Modify insns for `SVE_COND_FP_BINARY_INT` to handle BF16 modes. * config/aarch64/aarch64-sve2.md (@aarch64_sve_, @aarch64_sve__single): New insn for `BFSCALE`. Modify insns for `UNSPEC_FSCALE` to handle BF16 modes. * config/aarch64/iterators.md (SVE_FULL_F_SCALAR): Add `VNx8BF` to iterator. (SVE_FULL_F_BFSCALE): New iterator. (SVE_Fx24_BFSCALE): New iterator. (SVE_BFx24): New iterator. (UNSPEC_FMUL): New unspec. (V_INT_EQUIV): Add entries for BF16 modes. (b): Add entries for scalar float modes. (is_bf16): Add entries for BF16 modes and reformat. (SVSCALE_SINGLE_INTARG): Likewise. (SVSCALE_INTARG): Likewise. (SVE_FP_MULL): New iterator. 2026-01-28 Pengfei Li PR middle-end/123447 * expr.cc (expand_expr_real_1): Increase stack slot alignment for STRICT_ALIGNMENT targets. 2026-01-28 Andre Vieira PR target/123016 * tree-vect-stmts.cc (vectorizable_simd_clone_call): use 'build_truth_vector_type_for_mode' to reconstruct mask's vectype for non-scalar masks. 2026-01-28 Jakub Jelinek PR c/101312 * langhooks.h (struct lang_hooks_for_types): Remove copy_lang_qualifiers. Add build_lang_qualified_type. * langhooks.cc (lhd_build_lang_qualified_type): New function. * langhooks-def.h (lhd_build_lang_qualified_type): Declare. (LANG_HOOKS_COPY_LANG_QUALIFIERS): Remove. (LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE): Add. (LANG_HOOKS_FOR_TYPES_INITIALIZER): Use LANG_HOOKS_BUILD_LANG_QUALIFIED_TYPE instead of LANG_HOOKS_COPY_LANG_QUALIFIERS. * attribs.cc (build_type_attribute_qual_variant): Use lang_hooks.types.build_lang_qualified_type instead of build_qualified_type and/or build_qualified_type with optional lang_hooks.types.copy_lang_qualifiers call. (attr_access::array_as_string): Use "array " attribute instead of "array". If attribute has been created or intended quals differ from quals of build_array_type, use copy_node and adjust quals and attributes on the copy, print and then ggc_free. 2026-01-28 Jakub Jelinek PR c++/123837 * ipa-free-lang-data.cc (find_decls_types_r): Remove C++ annotations from {DECL,TYPE}_ATRIBUTES. 2026-01-28 Andrew Pinski PR tree-optimization/123849 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle DEMANGLE_COMPONENT_EXTENDED_BUILTIN_TYPE like DEMANGLE_COMPONENT_BUILTIN_TYPE. 2026-01-28 Richard Biener PR tree-optimization/110043 * pointer-query.cc (get_offset_range): Fail for integer types with precision larger than ptrdiff_type_node. 2026-01-28 Hongyu Wang PR target/123779 * config/i386/sse.md (*sse4_1_v8qiv8hi2_2): Rename to ... (*sse4_1_v8qiv8hi2_2): ... this, and drop mask conditions. (*avx2_v8qiv8si2_2): Rename to ... (*avx2_v8qiv8si2_2): ... this, and likewise. (*sse4_1_v4qiv4si2_2): Rename to ... (*sse4_1_v4qiv4si2_2): ... this, and likewise. (*sse4_1_v4hiv4si2_2): Rename to ... (*sse4_1_v4hiv4si2_2): ... this, and likewise. (*avx2_v4qiv4di2_2): Rename to ... (*avx2_v4qiv4di2_2): ... this, and likewise. (*avx2_v4hiv4di2_2): Rename to ... (*avx2_v4hiv4di2_2): ... this, and likewise. (*sse4_1_v2hiv2di2_2): Rename to ... (*sse4_1_v2hiv2di2_2): ... this, and likewise. (*sse4_1_v2siv2di2_2): Rename to ... (*sse4_1_v2siv2di2_2): ... this, and likewise. (*avx512f_v8qiv8di2_2): Rename to ... (*avx512f_v8qiv8di2_2): ... this. (*avx512vl_v8qiv8hi2_mask_2): New define_insn_and_split. (*avx512vl_v8qiv8si2_mask_2): Likewise. (*avx512vl_v4qiv4si2_mask_2): Likewise. (*avx512vl_v4hiv4si2_mask_2): Likewise. (*avx512f_v8qiv8di2_mask_2): Likewise. (*avx512vl_v4qiv4di2_mask_2): Likewise. (*avx512vl_v4hiv4di2_mask_2): Likewise. (*avx512vl_v2hiv2di2_mask_2): Likewise. (*avx512vl_v2siv2di2_mask_2): Likewise. 2026-01-28 Nina Ranns Iain Sandoe Ville Voutilainen * doc/invoke.texi: Document -fcontracts-client-check= and -fcontracts-definition-check=. 2026-01-28 Nina Ranns Iain Sandoe Ville Voutilainen * doc/invoke.texi: Document -fcontract-checks-outlined and -fcontract-disable-optimized-checks. 2026-01-28 Nina Ranns Iain Sandoe * tree-core.h (struct tree_base): Update tree flag usage comment. 2026-01-28 Nina Ranns Iain Sandoe * tree.h (CONST_WRAPPER_P): New. 2026-01-28 Nina Ranns Iain Sandoe * doc/invoke.texi: Document -fcontracts-conservative-ipa. 2026-01-28 Iain Sandoe Nina Ranns Ville Voutilainen * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add cases for contract constant data that need to be in independent link-time 'atoms'. * doc/invoke.texi: Document -fcontracts and -fcontract-evaluation-semantic=. 2026-01-28 Iain Sandoe Nina Ranns * doc/invoke.texi: Remove documentation of contracts options. 2026-01-27 Jakub Jelinek PR other/123841 * acinclude.m4 (gcc_GAS_FLAGS) : Set gcc_cv_as_flags irrespective of $gas_flag. * configure: Regenerate. 2026-01-27 David Malcolm PR analyzer/122623 * doc/invoke.texi (-fanalyzer-assume-nothrow): New option. 2026-01-27 Andrew Pinski PR middle-end/97898 * omp-expand.cc (expand_omp_for_static_chunk): Don't conditionalize the call to force_gimple_operand_gsi on DECL_P/TREE_ADDRESSABLE but rather pass that as the 3rd argument. 2026-01-27 Jan Hubicka PR ipa/123619 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::possible_dynamic_type_change): Remove impossible speuculation. 2026-01-27 Rainer Orth * configure.ac (ld_32_opt, ld_64_opt): Set. (ld_ix86_gld_32_opt): Replace by ld_32_opt. (ld_ix86_gld_64_opt): Replace by ld_64_opt. Replace -melf_x86_64 by ld_64_opt. * configure: Regenerate. 2026-01-27 Rainer Orth * acinclude.m4 (gcc_cv_as_flags) Provide Solaris settings. Apply Linux/x86 gas settings on all x86 gas targets, too. (as_32_opt, as_64_opt): Set on all x86 gas targets. * configure.ac: Consistenly use as_32_opt, as_64_opt instead of as_ix86_gas_{32,64}_opt or hardcoded --64. : Simplify setting TLS test code. * configure: Regenerate. 2026-01-27 Rainer Orth * configure.ac (fw_as_opt): Set. Replace --fatal-warnings by $fw_as_opt. (tls_as_opt): Remove --fatal-warnings. (gcc_cv_as_tls): Use $fw_as_opt. * configure: Regenerate. 2026-01-27 Richard Biener PR ipa/116296 * ipa-modref-tree.cc (modref_access_node::contains): Use poly_offset_int for the param offset difference and the overlap computation. 2026-01-27 Richard Biener PR debug/123376 * dwarf2out.cc (tree_add_const_value_attribute): Walk all initializers for early mangling of referenced decls. (mangle_referenced_decls): Also walk subtrees of CONSTRUCTORS. 2026-01-27 Robin Dapp PR tree-optimization/123799 * tree-ssa-forwprop.cc (simplify_vector_constructor): Pun conversion element type with integer type. 2026-01-27 Wilco Dijkstra PR target/123791 * config/aarch64/aarch64.cc (aarch64_cannot_force_const_mem): Always return true for symbols and labels except for large model. (aarch64_select_rtx_section): Force .rodata for constants only. 2026-01-27 Wilco Dijkstra PR target/123792 * config/aarch64/aarch64.md (aarch64__reg_minus3): Add support for invert in shift count. 2026-01-27 Tobias Burnus * doc/install.texi (gcn): Require Newlib 4.6.0+, replacing 4.3.0+ requirement with long list of recommended fixes up to post-4.5.0. 2026-01-27 Tamar Christina PR tree-optimization/122749 * tree-ssa-math-opts.cc (convert_mult_to_fma_1, convert_mult_to_fma): Unwrap converts around addend. 2026-01-26 Andrew Pinski PR tree-optimization/123820 * gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Use the correct type for the stride (lhs if non-pointer). 2026-01-26 Andrew Pinski PR middle-end/123709 * final.cc (output_asm_operand_names): Skip over opnum which is MAX_RECOG_OPERANDS (invalid). (output_asm_insn): Increase opoutput and oporder size by 1. For out of range operands, set the opnum to MAX_RECOG_OPERANDS. 2026-01-26 Filip Kastl * doc/invoke.texi: Document --param auto-profile-reorder-only. * params.opt: Fix spelling. 2026-01-26 Richard Biener PR tree-optimization/122474 * tree-vectorizer.h (vect_reduc_info_s::neutral_op): New. (VECT_REDUC_INFO_NEUTRAL_OP): New. * tree-vect-loop.cc (vectorizable_reduction): Adjust condition guarding the check for .VEC_SHL_INSERT. 2026-01-26 Richard Biener PR tree-optimization/123755 * tree-vect-stmts.cc (vectorizable_call): Fixup LEN masking of unconditional but possibly trapping calls. 2026-01-26 Victor Do Nascimento PR tree-optimization/123657 * tree-vect-loop.cc (vect_analyze_loop_form): Add chrec_dont_know check. 2026-01-26 Richard Biener PR tree-optimization/123794 * tree-vect-slp.cc (vect_remove_slp_scalar_calls): Unlink VOPs for all calls. 2026-01-26 Tamar Christina PR tree-optimization/122103 PR tree-optimization/123628 * tree-if-conv.cc (if_convertible_simdclone_stmt_p): New. (if_convertible_stmt_p, predicate_statements): Use it. 2026-01-25 Sandra Loosemore * gcc-urlifier.cc (test_gcc_urlifier): Match either positive or negative option URLS. 2026-01-25 Roger Sayle PR middle-end/122348 * expr.cc (store_constructor): Ignore fields where DECL_SIZE is NULL_TREE, i.e. flexible array members. 2026-01-25 Sandra Loosemore * common.opt.urls: Regenerated. * config/alpha/alpha.opt.urls: Regenerated. * config/arc/arc.opt.urls: Regenerated. * config/arm/arm.opt.urls: Regenerated. * config/avr/avr.opt.urls: Regenerated. * config/bpf/bpf.opt.urls: Regenerated. * config/cris/cris.opt.urls: Regenerated. * config/lynx.opt.urls: Regenerated. * config/m68k/m68k.opt.urls: Regenerated. * config/mcore/mcore.opt.urls: Regenerated. * config/mingw/cygming.opt.urls: Regenerated. * config/mips/mips.opt.urls: Regenerated. * config/mips/sde.opt.urls: Regenerated. * config/mmix/mmix.opt.urls: Regenerated. * config/nvptx/nvptx.opt.urls: Regenerated. * config/rs6000/linux64.opt.urls: Regenerated. * config/rs6000/rs6000.opt.urls: Regenerated. * config/rs6000/sysv4.opt.urls: Regenerated. * config/sh/sh.opt.urls: Regenerated. 2026-01-25 Sandra Loosemore * doc/invoke.texi (Option Summary): Fix whitespace in @gccoptlist tables. 2026-01-25 Sandra Loosemore PR other/122243 * doc/cppopts.texi: Add missing @opindex entries for -fno-* options. * doc/invoke.texi: Likewise. 2026-01-25 Sandra Loosemore PR other/122243 * doc/cppwarnopts.texi: Add missing @opindex entries for -Wno-* options. * doc/invoke.texi: Likewise. 2026-01-25 Sandra Loosemore PR other/122243 * doc/cppdiropts.texi: Document -imultiarch. * doc/invoke.texi (Option Summary) : Add -flto-toplevel-asm-heuristics. : Remove -fbounds-check. : Add -imultiarch. : Add -mbitops, -mcmem, -munaligned-access. : Add -mvectorize-with-neon-quad and -mvectorize-with-neon-double. : Add -mrmw and -mstrict-X. : Fix typo in -mmax-stackframe. : Add -muse-libstdc-wrappers. : Add several missing CPU options, plus -mxtls. : Add -mno-data-in-code and -mcode-xonly. : Add mset-data-start, -mset-program-start, and -mno-set-program-start. : Add -msoft-stack-reserve-local. : Add -mprofile-kernel, -mbit-word, -mno-splat-word-constant, -mno-splat-float-constant, -mno-ieee128-constant, and -mno-warn-altivec-long. (Optimization Options): Document -flto-toplevel-asm-heuristics. (ARC Options): Document -mbitops and -mcmem. (ARM Options): Add index entries for mbe32, m[no-]fix-cortex-a57-aes-1742098, m[no-]fix-cortex-a72-aes-1655431. Document -mvectorize-with-neon-quad and -mvectorize-with-neon-double. (AVR Options): Document -mpmem-wrap-around. (CRIS Options): Fix typo in -mmax-stackframe. (Cygwin and MinGW Options): Document -muse-libstdc-wrappers. (DEC Alpha Options): Fix typo in -mfp-regs. (eBPF Options): Add @opindex for -mframe-limit. (HPPA Options): Fix typos in -mno-disable-fpregs and -mno-gas index entries. (m680x0 Options): Document -m68302, -m68332, -m68851, and -mfidoa. Document -mnoshort and -mnortd aliases. Document -mxtls. (MCore Options): Fix typos in -m[no-]relax-immediates. (MIPS Options): Document -mno-data-in-code and -mcode-xonly. (MMIX Options): Document -mset-data-start, -mset-program-start, and -mno-set-program-start. (Nvidia PTX Options): Document -msoft-stack-reserve-local. (RS/6000 and PowerPC Options): Document -mprofile-kernel, -mbit-word, -msplat-word-constant, -msplat-float-constant, -mieee128-constant, and -mwarn-altivec-long. (SH Options): Add index entry for -m2e. Document -m4-400. 2026-01-25 Sandra Loosemore PR other/122243 * common.opt (fbounds-check): Mark as Undocumented, expand comments to explain why. * config/frv/frv.opt (msched-lookahead=): Mark unused option as Undocumented. * config/m68k/m68k.opt (m68851): Add RejectNegative. * config/nvptx/nvptx.opt (minit-regs=): Mark as Undocumented. It's not currently documented and seems to have been introduced as a stopgap to experiment with different implementation strategies. * config/rs6000/476.opt (mpreserve-link-stack): Mark as Undocumented. It seems to be an internal option that is enabled by default on the cpu that can benefit from it. 2026-01-25 Sandra Loosemore PR other/122243 * common.opt (gtoggle): Mark RejectNegative. * doc/invoke.texi (Option Summary) : Remove redundant -gno- forms from the list. (Debugging Options): Add @opindex for -gno- option forms. Copy-edit option descriptions to avoid future tense and use of implementor jargon. 2026-01-25 Sandra Loosemore PR other/67300 * common.opt (foffload-abi, foffload-abi-host-opts): Mark "Undocumented". 2026-01-25 Sandra Loosemore PR other/122243 * doc/invoke.texi (Option Summary) : New. (LynxOS Options): New section. 2026-01-24 Andrew Pinski PR tree-optimization/123803 * gimple-ssa-strength-reduction.cc (replace_rhs_if_not_dup): For pointer lhs use sizetype. 2026-01-23 Robin Dapp PR target/123780 * config/riscv/vector.md: Correct output template. 2026-01-23 Robin Dapp PR tree-optimization/123767 * tree-vect-stmts.cc (vectorizable_store): Only scale offset once. (vectorizable_load): Ditto. 2026-01-23 Andrew Pinski PR tree-optimization/123778 * genmatch.cc (parser::parse_expr): Peek on the next token after eating the `!` or `^`. * match.pd (`(op (cnd @0 @1 @2) @3)`, `(op @3 (cnd @0 @1 @2))`): Add the type to resulting op. 2026-01-23 Andrew Pinski PR tree-optimization/120258 PR tree-optimization/106883 * gimple-ssa-strength-reduction.cc (replace_mult_candidate): Allow for basis_name and bump_tree not to be the same type as the lhs. Rewrite added multiply for undefined overflow. (create_add_on_incoming_edge): Allow for init to be a different type from the wanted type. Rewrite added add for undefined overflow. (replace_rhs_if_not_dup): Rewrite replaced stmts for undefined overflow. (replace_one_candidate): Allow for basis_name and rhs2 to be a different type from lhs. 2026-01-23 Andrew Pinski PR tree-optimization/106883 * gimple-ssa-strength-reduction.cc (create_add_on_incoming_edge): Rewrite the new addition on the edge too. 2026-01-23 Andrew Pinski * gimple-ssa-strength-reduction.cc (introduce_cast_before_cand): Use gimple_convert instead of manually creating the gimple_assign. 2026-01-23 Andrew Pinski PR tree-optimization/121347 PR tree-optimization/106883 * gimple-ssa-strength-reduction.cc (insert_initializers): Rewrite newly inserted statements for undefinedness (overflow). 2026-01-23 Peter Bergner PR target/123492 * config/riscv/riscv-cores.def (RISCV_CORE): Add zvfbfmin to tt-ascalon-d8. 2026-01-23 Andrew Pinski PR tree-optimization/123776 * gimple-fold.cc (gimple_fold_partial_load_store): Copy the vdef from the old statement to the new statement of a load that is also a store to non gimple_reg. 2026-01-23 Richard Sandiford PR rtl-optimization/80357 PR rtl-optimization/94014 PR rtl-optimization/123144 * haifa-sched.cc (model_recompute): Ignore dying uses of registers that are not assumed to be live. 2026-01-23 Richard Biener * match.pd ((convert (vec_cond ...))): Make sure the resulting vec_cond can be expanded. 2026-01-23 Richard Biener PR middle-end/123775 * match.pd ((view_convert (vec_cond ...))): Make sure the resulting vec_cond can be expanded. 2026-01-23 Kyrylo Tkachov Revert: 2026-01-20 Kyrylo Tkachov PR target/123584 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar): Use aarch64_simd_rshift_imm predicate for rotate amount. 2026-01-23 Jakub Jelinek PR middle-end/123703 * builtins.cc (fold_builtin_abs): Return NULL_TREE if type is not integral. 2026-01-23 Richard Biener PR tree-optimization/123771 * tree-vect-loop.cc (vectorizable_induction): Convert step also for VLA vectors. 2026-01-23 Richard Biener * config/i386/i386.cc (ix86_vector_costs::finish_cost): Avoid selecting masked epilogs for in-order reductions. 2026-01-23 Hongyu Wang * config/i386/sse.md (avx2_vbroadcasti128_): Constraint alternative 0 with jm and add gpr16 attr to avoid egpr usage. 2026-01-22 Richard Earnshaw PR target/123742 * config/arm/neon.md (*smin3_neon): Renamed to ... (*smin3_neon): ... this. Add HFmode support. (*smax3_neon): Renamed to ... (*smax3_neon): ... this. Add HFmode support. 2026-01-22 Richard Biener PR tree-optimization/123741 * tree-vect-stmts.cc (vectorizable_store): Add missing check on loop vectorization. 2026-01-22 Jonathan Wakely * tree-vrp.cc (remove_unreachable::fully_replaceable): Fix typo in comment. 2026-01-22 Robin Dapp PR tree-optimization/123731 * tree-ssa-forwprop.cc (simplify_vector_constructor): Handle nop conversion between during extraction. 2026-01-22 Robin Dapp PR target/122869 * config/riscv/riscv-vector-builtins-bases.cc (fold_fault_load): Remove * config/riscv/riscv-vector-builtins.cc (function_expander::use_contiguous_load_insn): Use new helper. (function_expander::prepare_contiguous_load_insn): New helper. (function_expander::use_fof_load_insn): New function to emit FoF loads. * config/riscv/riscv-vector-builtins.h: Declare new functions. 2026-01-22 Robin Dapp PR target/123279 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): Add VECTOR_EXT_NO_XTHEAD. (vlm): Move to VECTOR_EXT_NO_XTHEAD. (vsm): Ditto. (vzext): Ditto. (vsext): Ditto. (vaaddu): Ditto. (vaadd): Ditto. (vasubu): Ditto. (vasub): Ditto. (vfrsqrt7): Ditto. (vfrec7): Ditto. (vfrec7_frm): Ditto. (vfslide1up): Ditto. (vfslide1down): Ditto. (vluxei8): Ditto. (vluxei16): Ditto. (vluxei32): Ditto. (vluxei64): Ditto. (vsuxei8): Ditto. (vsuxei16): Ditto. (vsuxei32): Ditto. (vsuxei64): Ditto. (vluxseg): Ditto. (vsuxseg): Ditto. (vrgatherei16): Ditto. (vlseg): Keep. (vsseg): Keep. (vlsseg): Keep. (vssseg): Keep. (vloxseg): Keep. (vsoxseg): Keep. (vlsegff): Keep. * config/riscv/riscv-vector-builtins.cc (GTY): Split registered_functions into multiple partitions. (is_fractional_lmul): New function. (xthvector_unsupported_p): Ditto. (get_builtin_partition): Ditto. (function_builder::add_function): Use new functions. (lookup_registered_function): Ditto. (builtin_decl): Use lookup_registered_function. (gimple_fold_builtin): Ditto. (expand_builtin): Ditto. (check_builtin_call): Ditto. (resolve_overloaded_builtin): Ditto. * config/riscv/riscv-vector-builtins.h (enum required_ext): (enum rvv_builtin_partition): New enum. (required_ext_to_isa_name): Add NO_XTHEAD. (required_extensions_specified): Ditto. * config/riscv/riscv-vector-switch.def (ENTRY): Remove XTheadVector. (TUPLE_ENTRY): Ditto. * config/riscv/riscv.cc (riscv_expand_mult_with_const_int): Fix whitespace. (riscv_legitimize_poly_move): Ditto. (riscv_vector_fractional_lmul_p): New function. (riscv_validate_vector_type): Use new function. 2026-01-22 Richard Biener PR tree-optimization/123755 * tree-vect-stmts.cc (vectorizable_call): Register mask when the call could trap. 2026-01-22 Richard Biener PR tree-optimization/123756 * tree-vect-loop.cc (vect_transform_reduction): Remove bogus assert. 2026-01-22 Jakub Jelinek PR tree-optimization/123736 * tree-ssa-loop-unswitch.cc (hoist_guard): Guard dump message on dump_file && (dump_flags & TDF_DETAILS) condition. 2026-01-22 David Malcolm PR diagnostics/122622 * diagnostics/paths-output.cc: Include "diagnostics/file-cache.h". (event_range::print_as_text): Generalize the fallback logic for special locations to also cover the case where source-printing will fail, and show the location for that case. (event_range::print_as_html): Likewise. (event_range::can_print_source_p): New. 2026-01-22 liuhongt PR target/123631 * config/i386/i386-expand.cc (ix86_vector_duplicate_value): Don't force CONST_INT to reg !TARGET_PREFER_BCST_FROM_INTEGER, force it to mem instead. * config/i386/i386.h (TARGET_PREFER_BCST_FROM_INTEGER): New macro. * config/i386/x86-tune.def (X86_TUNE_PREFER_BCST_FROM_INTEGER): New tune. 2026-01-21 Stefan Schulze Frielinghaus PR target/122781 * config/s390/vector.md: Don't emulate vec_cmpgtu for 128-bit integers for VXE3. 2026-01-20 Jeff Law PR rtl-optimization/123380 * combine.cc (gen_lowpart_for_combine): Don't try to create a paradoxical SUBREG if it's going to be rejected by validate_subreg. 2026-01-20 Jeff Law PR target/123626 * config/riscv/vector.md (vxrm_mode): Handle CALL_INSNs, which set the attribute to the new VXRM_MODE_CLOBBER state. * config/riscv/riscv.cc (riscv_emit_mode_set): Don't emit code when VXRM's state changes to VXRM_MODE_CLOBBER. 2026-01-20 Andrew MacLeod PR tree-optimization/123314 * gimple-range.cc (gimple_ranger::range_on_entry): Do not check ranger cache for an SSA_NAME with no BB. (gimple_ranger::prefill_stmt_dependencies): Stop filling dependencies when an out-of IL name is encountered. 2026-01-20 supers1ngular * doc/extend.texi: Swap samp fields to fix overfull hbox. * doc/invoke.texi: Ditto. 2026-01-20 Giuseppe D'Angelo PR c++/123639 * doc/invoke.texi: Add @item for -Wsfinae-incomplete. 2026-01-20 Nathan Sidwell * diagnostics/context.cc (context::action_after_output): Print invocation on ICE. 2026-01-20 David Malcolm PR sarif-replay/123056 * libsarifreplay.cc (struct embedded_link): Move decl earlier. (sarif_replayer::append_embeddded_link): New. (sarif_replayer::make_plain_text_within_result_message): Move the link-replay logic to the above, and skip the link part of intra-sarif links. 2026-01-20 Georg-Johann Lay * config/avr/avr.cc (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): Return true when WITH_AVRLIBC. 2026-01-20 Alfie Richards * config/aarch64/aarch64.md: Update comment. * config/aarch64/aarch64-simd.md: Change comment to refer to aarch64.md. * config/aarch64/aarch64-sme.md: Likewise. * config/aarch64/aarch64-sve.md: Likewise. * config/aarch64/aarch64-sve2.md: Likewise. * config/aarch64/aarch64-sve-builtins.def: Update comment. * config/aarch64/aarch64-sve-builtins-base.def: Update to refer to aarch64-sve-builtins.def. * config/aarch64/aarch64-sve-builtins-sme.def: Likewise. * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. 2026-01-20 Jakub Jelinek PR target/123724 * config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): Ignore debug stmts. 2026-01-20 Roger Sayle PR rtl-optimization/123585 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) : Correct gcc_assert when optimizing a vec_select of a vec_select with differing vector lengths. 2026-01-20 Kyrylo Tkachov PR target/123584 * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar): Use aarch64_simd_rshift_imm predicate for rotate amount. 2026-01-20 Kyrylo Tkachov PR target/123584 * config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Leave zero rotate amounts as zero during expansion. (*aarch64_xarqv2di_insn): Account for zero rotate amounts. Print # in rotate immediate. 2026-01-20 Prachi Godbole * flag-types.h (enum lto_locality_heuristics): New enum. * ipa-locality-cloning.cc (struct templ_info): New struct. (struct locality_info): Add templ_info field. (templ_hash_map): New hash_map. (callee_templ_cmp): Ditto. (static_profile_templ_cmp): Ditto. (sort_templ_hashes_cmp): Ditto. (order_templ_hashes): Ditto. (locality_dc_template_p): Ditto. (populate_templ_info): Ditto. (create_locality_info): Call populate_templ_info. (partition_callchain): Call callee_templ_cmp. (locality_determine_static_order): Populate and sort templ_hash_map. (locality_partition_and_clone): Handle lto_locality_heuristics. (lc_execute): Initialize templ_hash_map. * params.opt: New param. 2026-01-20 Prachi Godbole * ipa-locality-cloning.cc (struct locality_callee_info): New struct. (struct locality_info): Ditto. (loc_infos): Ditto. (get_locality_info): New function. (sort_all_callees_default): Ditto. (callee_default_cmp): Ditto. (populate_callee_locality_info): Ditto. (populate_caller_locality_info): Ditto. (create_locality_info): Ditto. (adjust_recursive_callees): Access node_to_clone by reference. (inline_clones): Access node_to_clone and clone_to_node by reference. (clone_node_as_needed): Ditto. (accumulate_incoming_edge_frequency): Remove function. (clone_node_p): New function. (partition_callchain): Refactor the function. (is_entry_node_p): Call local_p (). (locality_determine_ipa_order): Call create_locality_info (). (locality_determine_static_order): Ditto. (locality_partition_and_clone): Update call to partition_callchain () according prototype. (lc_execute): Allocate and free node_to_ch_info, node_to_clone, clone_to_node. 2026-01-20 Richard Biener PR middle-end/123697 * gimple-fold.cc (gimple_fold_partial_load_store): Use an empty CTOR for a zero else value in .MASK_LOAD_LANES. 2026-01-20 Richard Biener PR tree-optimization/123729 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Set SSA_NAME_OCCURS_IN_ABNORMAL_PHI if the reduction flows across an abnomal edge. 2026-01-20 Richard Biener * tree-phinodes.h (phi_arg_index_from_use): Use gphi *. (phi_arg_edge_from_use): New helper composing phi_arg_index_from_use and gimple_phi_arg_edge. 2026-01-19 Jeff Law PR rtl-optimization/121787 * config/riscv/riscv-vsetvl.cc (pre_vsetvl): Adjust call to loop_optimizer_init to avoid making CFG changes. 2026-01-19 Rainer Orth * config/sol2.opt.urls: Regenerate. * config/darwin.opt.urls: Likewise. * config/dragonfly.opt.urls: Likewise. * config/freebsd.opt.urls: Likewise. * config/gnu-user.opt.urls: Likewise. * config/hpux11.opt.urls: Likewise. * config/i386/cygwin.opt.urls: Likewise. * config/mingw/mingw.opt.urls: Likewise. * config/netbsd.opt.urls: Likewise. * config/openbsd.opt.urls: Likewise. * config/rs6000/aix64.opt.urls: Likewise. * config/rtems.opt.urls: Likewise. 2026-01-19 Rainer Orth * config/sol2.h (CPP_SUBTARGET_SPEC): Remove. * config/sol2.opt (pthread): Ignore. (pthreads): Likewise. * config/i386/sol2.h (CPP_SPEC): Remove. (SUBTARGET_CPU_EXTRA_SPECS): Remove cpp_subtarget. * doc/invoke.texi (Solaris 2 Options, pthread): Remove. 2026-01-19 Jeff Law Andrew Pinski PR target/113666 * fold-const-call.cc (fold_const_vec_extract): New function. (fold_const_call, case CFN_VEC_EXTRACT): Call it. * match.pd (IFN_VEC_EXTRACT): Handle extraction from a uniform vector. 2026-01-19 Richard Biener PR tree-optimization/123061 PR tree-optimization/123636 * tree-ssa-loop-im.cc (fill_always_executed_in_1): Change outer-to-inner to inner-to-outer iteration. Update inner loop state only when always executed in an immediately nested loop. 2026-01-19 Tobias Burnus * doc/install.texi (GCN): gfx9-4-generic requires LLVM 20. 2026-01-19 Richard Biener PR tree-optimization/123602 * tree-ssa-pre.cc (find_or_generate_expression): Do not generate references to abnormal SSA names. 2026-01-19 Stefan Schulze Frielinghaus * config.gcc: Deprecate -m31. * doc/invoke.texi: Deprecate -m31. 2026-01-19 Jakub Jelinek PR tree-optimization/123656 * tree-vect-generic.cc (expand_vector_mult): Fix up alg_sub_factor handling. Fix up formatting in alg_add_t_m2 handling. 2026-01-19 Richard Biener PR target/123603 * config/i386/i386.opt (-param=ix86-vect-compare-costs=): Add. * config/i386/i386.cc (ix86_autovectorize_vector_modes): Honor it. * doc/invoke.texi (ix86-vect-compare-costs): Document. 2026-01-19 Lulu Cheng PR target/117575 * config/loongarch/lasx.md: Modify the range of operand1. 2026-01-18 Andrew Pinski PR tree-optimization/123645 * tree-ssa-phiopt.cc (cond_removal_in_builtin_zero_pattern): Rewrite the canonicalization of the args code based on e1/e2 being edges into the join block. 2026-01-17 Sandra Loosemore * config/darwin.opt.urls: Regenerated. * config/dragonfly.opt.urls: Regenerated. * config/freebsd.opt.urls: Regenerated. * config/gnu-user.opt.urls: Regenerated. * config/hpux11.opt.urls: Regenerated. * config/i386/cygwin.opt.urls: Regenerated. * config/i386/i386.opt.urls: Regenerated. * config/mingw/mingw.opt.urls: Regenerated. * config/nds32/nds32.opt.urls: Regenerated. * config/netbsd.opt.urls: Regenerated. * config/nvptx/nvptx.opt.urls: Regenerated. * config/openbsd.opt.urls: Regenerated. * config/pru/pru.opt.urls: Regenerated. * config/riscv/riscv.opt.urls: Regenerated. * config/rl78/rl78.opt.urls: Regenerated. * config/rs6000/aix64.opt.urls: Regenerated. * config/rs6000/rs6000.opt.urls: Regenerated. * config/rs6000/sysv4.opt.urls: Regenerated. * config/rtems.opt.urls: Regenerated. * config/rx/rx.opt.urls: Regenerated. * config/s390/s390.opt.urls: Regenerated. * config/s390/tpf.opt.urls: Regenerated. * config/sh/sh.opt.urls: Regenerated. * config/sol2.opt.urls: Regenerated. * config/sparc/sparc.opt.urls: Regenerated. * config/v850/v850.opt.urls: Regenerated. * config/vax/vax.opt.urls: Regenerated. * config/vxworks.opt.urls: Regenerated. 2026-01-17 Sandra Loosemore PR other/122243 * config/nds32/nds32.opt: Tidy documentation strings. (mbig-endian, mlittle-endian): Remove "Undocumented" flag since these are, in fact, documented. * doc/invoke.texi (Option Summary) : Document -EB, -EL, -mabi, -mfloat-abi, -malways-align, -malign-functions, -mfp-as-gp, -mext-dsp, -mext-fpu-fma, -mext-fpu-sp, -mext-fpu-dp, -misr-vector-size, -misr-secure, -mcpu, -mconfig-fpu, -mconfig-mul, -mconfig-register-ports, -mrelax-hint, -msched-prolog-epilog, -mno-ret-in-naked-func, -malways-save-lp, -munaligned-access, and -minline-asm-r15. (NDS32 Options): Likewise. 2026-01-17 Sandra Loosemore PR other/122243 * config/xtensa/uclinux.opt (elf2flt, elf2flt=): Mark as Undocumented. * config/xtensa/xtensa.opt (mlra): Likewise. * doc/invoke.texi (Option Summary) : Remove redundant negative forms plus obsolete -mfused-madd option. (Xtensa Options): Likewise undocument -mfused-madd. List negative form of -mforce-no-pic. 2026-01-17 Sandra Loosemore PR other/122243 * config/i386/i386.opt (malign-functions): Mark undocumented/unused option as Undocumented. (malign-jumps): Likewise. (malign-loops): Likewise. (mbranch-cost, mforce-drap): Mark undocumented options likely intended for developer use only as Undocumented. (mstv): Correct sense of option in doc string. (mavx512cd): Remove extra "and" from doc string. (mavx512dq): Likewise. (mavx512bw): Likewise. (mavx512vl): Likewise. (mavx512ifma): Likewise. (mavx512bvmi): Likewise. * doc/invoke.texi (Options Summary) : Add missing options. Correct whitespace and re-wrap long lines. Remove -mthreads which is now classed as a MinGW option. (Cygwin and MinGW Options): Replace existing documentation of -mthreads with the more detailed text moved from x86 Options. (x86 Options): Move introductory text about ISA extensions before the individual options instead of after. Document them all individually instead of as a group, and move immediately after -march/-mtune documentation. Rewrap long lines. Document interaction between SSE and AVX with -mfpmath=sse. Move -masm documentation farther down instead of grouped with options affecting floating-point behavior. Add missing @opindex entries. Rewrite the -mdaz-ftz documentation. Document -mstack-arg-probe. Copy-editing. Document -mstv. Remove obsolete warning about -mskip-rax-setup in very old GCC versions. Rewrite the -mapx-inline-asm-use-gpr32 documentation. Document -mgather and -mscatter. Split -miamcu documentation from -m32/-m64/etc. Rewrite -munroll-only-small-loops documentation. Document -mdispatch-scheduler. 2026-01-17 Sandra Loosemore PR other/122243 * doc/invoke.texi (Option Summary) : Add -mvthreads. (VxWorks Options): Likewise. 2026-01-17 Sandra Loosemore PR other/122243 * config/vms/vms.opt (map): Mark as Undocumented. 2026-01-17 Sandra Loosemore PR other/122243 * config/visium/visium.opt (menable-trampolines): Mark Undocumented. * doc/invoke.texi (Options Summary) : Remove redundant -mno- option. (Visium Options): Copy-editing to put in active voice and add markup. 2026-01-17 Sandra Loosemore PR other/122243 * config/vax/elf.opt (mno-asm-pic): Mark as Undocumented. * doc/invoke.texi (Option Summary) : Add -mvaxc-alignment and -mqmath. (VAX Options): Likewise. 2026-01-17 Sandra Loosemore PR other/122243 * config/v850/v850.opt: Copy-edit documentation strings. (mdebug): Make Undocumented. (mno-strict-align): Add RejectNegative. (mUS-bit-set): Make Undocumented. * doc/invoke.texi (Option Summary) : Remove redundant -mno- forms from list. Add missing entries. (V850 Options): Add @opindex for negative forms. Combine entries for -mapp-regs and -mno-app-regs. Document -msmall-sld, -mno-strict-align, and -mjump-tables-in-data-section. 2026-01-17 Sandra Loosemore PR other/122243 * doc/invoke.texi (Option Summary) : Remove redundant -mno- forms from the list. Add -mptr32 and -mptr64. (SPARC Options): Document -mptr32 and -mptr64. 2026-01-17 Sandra Loosemore PR other/122243 * doc/invoke.texi (Option Summary) : Remove redundant negative option forms from list. List both -pthread and -pthreads. (Solaris 2 Options): Index and list the negative forms here. Combine the two @table environments. Document both -pthread and -pthreads. 2026-01-17 Sandra Loosemore PR other/122243 * config/sh/sh.opt (mhitachi, mpadstruct): Mark obsolete options as Undocumented. * doc/invoke.texi (Option Summary) : Add missing entries for -m4-* and other options. Remove redundant -mno- entries and obsolete options. Add missing options -mfdpic, -mlra. (SH Options): Combine entries for -mrenesas and -mno-renesas. Index and list -mno- forms for other options that have them. Remove documentation for obsolete options -mpadstruct and -mfused-madd. Add documentation for -mlra. Copy-edit and wrap long lines throughout the section. 2026-01-17 Sandra Loosemore PR other/122243 * config/s390/s390.opt (mbranch-cost): Mark as Undocumented. * config/s390/tpf.opt (mtpf-trace-hook-prologue-check=): Likewise. (mtpf-trace-hook-prologue-target=): Likewise. (mtpf-trace-hook-epilogue-check=): Likewise. (mtpf-trace-hook-epilogue-target=): Likewise. * doc/invoke.texi (Option Summary) : Remove redundant -mno- entries and add missing options. Make entries with arguments match the syntax in the main documentation. (S/390 and zSeries Options): Light copy-editing. Wrap overly-long lines. Add missing @opindex entries. Add documention for -mmain, -mno-pic-data-is-text-relative, -mindirect-branch, -mindirect-branch-jump, -mindirect-branch-call, -mfunction-return, -mfunction-return-mem, -mfunction-return-reg, -mindirect-branch-table, -mfentry, -mrecord-mcount, -mnop-mcount, -mpreserve-args, and -munaligned-symbols. 2026-01-17 Sandra Loosemore PR other/122243 * config/rx/rx.opt (mgcc-abi, mrx-abi): Mark as Undocumented. * doc/invoke.texi (Option Summary) : Remove redundant entries for -mno-forms, correct name of -msmall-data-limit option, add -mlra, clean up formatting. (RX Options): Minor copy-editing, add -mlra. 2026-01-17 Sandra Loosemore PR other/122243 * config/rs6000/darwin.opt (Waltivec-long-deprecated): Mark as Undocumented. (faltivec, ffix-and-continue, findirect-data): Likewise. * config/rs6000/rs6000.opt (mvrsave): Likewise. * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback): Likewise. (mshlib, mnewlib): Likewise. * doc/invoke.texi (Option Summary) : Document only one form of each option. Add missing options. Correct whitespace. (RS/6000 and PowerPC Options): Separately document -mpowerpc-gpopt, -mpowerpc-gfxopt, -mpowerpc64, -mmfcrf, -mpopcntb, -mpopcntd, -mfprnd, -mcmpb, and -mhard-dfp and move their documentation after -mcpu=. Remove documentation for -mtoc which is unimplemented. Add missing @opindex entries. Minor copy-editing and whitespace fixes. 2026-01-17 Sandra Loosemore PR other/122243 PR target/71340 * doc/invoke.texi (Option Summary) : Remove never-implemented -m64bit-doubles and -m32bit-doubles options. Add missing entries for -mrelax, -mes0, -mmul=rl78, -mcpu=rl78, and -mrl78. (RL78 Options): Likewise. Add missing @opindex entries. Light copy-editing. 2026-01-17 Jakub Jelinek PR tree-optimization/123513 * tree.cc (valid_new_delete_pair_p): If new_name[3] or delete_name[3] is 'I', return false with *pcertain set to false rather than true. 2026-01-16 Kugan Vivekanandarajah * hierarchical_discriminator.cc (init_copyid_allocator): Walks the function body to find existing max copyids per location. (record_existing_copyid): New. 2026-01-16 Alice Carlotti PR target/123460 * config.gcc: Accept hyphens in aarch64 --with-arch extensions. 2026-01-16 David Malcolm PR analyzer/123145 * timevar.def (TV_ANALYZER_SUPERGRAPH): Rename to... (TV_ANALYZER_SUPERGRAPH_CREATION): ...this. (TV_ANALYZER_SUPERGRAPH_FIXUP_LOCATIONS): New. (TV_ANALYZER_SUPERGRAPH_SIMPLIFY): New. (TV_ANALYZER_SUPERGRAPH_SORTING): New. 2026-01-16 Vladimir N. Makarov PR target/123092 * lra-constraints.cc (lra_constraints): Push insn on processing stack after equivalence substitution. 2026-01-16 Rainer Orth PR pch/110746 * config/host-freebsd.cc: New file. * config.host <*-*-freebsd*>: Use it. * config/x-freebsd: New file. 2026-01-16 Martin Jambor PR ipa/123412 * ipa-cp.cc (devirtualization_time_bonus): Do add the indirect edge frequency at least once even for targets which cannot be inlined. 2026-01-16 Jakub Jelinek PR target/123607 * config/i386/i386.md (movhf_mask): Change constraint on match_operand 2's second alternative from 0C to 0. 2026-01-16 Lulu Cheng PR target/123521 * config/loongarch/loongarch.cc (loongarch_expand_vector_init_same): Fixed a bug in the vector initialization section.. 2026-01-16 David Guillen Fandos * config/mips/mips.h (ISA_HAS_FMIN_FMAX): Add R5900; note that, R5900 is not IEEE754 fully compatiable. 2026-01-15 Marek Polacek Jakub Jelinek PR c++/120775 PR c++/123081 PR c++/122634 * attribs.cc (attribute_value_equal): Return false if either attribute is ATTR_UNIQUE_VALUE_P. (merge_attributes): Handle lists with ATTR_UNIQUE_VALUE_P values. * doc/invoke.texi: Document -freflection. * dwarf2out.cc (is_base_type) : Check TREE_CODE >= LAST_AND_UNUSED_TREE_CODE instead of is_cxx_auto. (gen_type_die_with_usage): For TREE_CODE >= LAST_AND_UNUSED_TREE_CODE trees use use DW_TAG_unspecified_type. * tree-core.h (struct tree_base): Update a comment. * tree.h (ATTR_UNIQUE_VALUE_P): Define. (BINFO_BASE_ACCESSES): Update the comment. 2026-01-15 Peter Damianov PR driver/123504 * config/i386/cygming.h (EXTRA_DEFAULT_COMPILERS): Comment out .res spec to allow COFF files with .res extension to pass through to the linker. * config/aarch64/cygming.h (EXTRA_DEFAULT_COMPILERS): Likewise. 2026-01-15 Stefan Schulze Frielinghaus * ira-lives.cc (ira_implicitly_set_insn_hard_regs): Honor hard register constraints. * ira.cc (ira_setup_alts): Ditto. 2026-01-15 Stefan Schulze Frielinghaus * doc/extend.texi: Document current limitations of hard register constraints. * stmt.cc (parse_output_constraint): Reject multiple hard register constraints or a combination of hard register constraints and regular register constraints in one alternative. (parse_input_constraint): Ditto. 2026-01-15 Alfie Richards * config/aarch64/aarch64-simd.md: Add comment. * config/aarch64/aarch64-sme.md: Likewise. * config/aarch64/aarch64-sve-builtins-base.def: Likewise. * config/aarch64/aarch64-sve-builtins-sme.def: Likewise. * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise. * config/aarch64/aarch64-sve-builtins.def: Likewise. * config/aarch64/aarch64-sve.md: Likewise. * config/aarch64/aarch64-sve2.md: Likewise. * config/aarch64/aarch64.md: Likewise. 2026-01-15 Rainer Orth * config/sparc/sparc.h (TARGET_SUN_TLS): Remove. * config/sparc/sol2.h (TARGET_SUN_TLS): Likewise. * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Guard with HAVE_GNU_AS. (sparc_tls_got): Guard with !HAVE_GNU_AS. (sparc_legitimize_tls_address): Likewise. * config/sparc/sparc.md ("tls_delay_slot"): Likewise. ("@tie_add"): Likewise. 2026-01-15 Jakub Jelinek PR debug/121045 * tree-pretty-print.h (dump_location): Add new dump_flags_t argument defaulted to TDF_NONE. * tree-pretty-print.cc (dump_location): Add flags argument. Don't print discriminator if TDF_COMPARE_DEBUG bit is set in flags. (dump_block_node, dump_generic_node): Pass through flags to dump_location. * gimple-pretty-print.cc (dump_gimple_phi, pp_gimple_stmt_1, dump_implicit_edges): Likewise. (gimple_dump_bb_as_sarif_properties): Pass dump_flags to dump_location. * print-rtl.cc (rtx_writer::print_rtx_operand_code_L): If dump_flags has TDF_COMPARE_DEBUG bit set, don't print discriminators. 2026-01-15 Rainer Orth * config/i386/sol2.h [!HAVE_GNU_AS] (ASM_CPU32_DEFAULT_SPEC): Use -m32. (ASM_CPU64_DEFAULT_SPEC): Use -m64. 2026-01-15 Josef Melcr PR ipa/122852 * cgraph.cc (cgraph_node::verify_node): Verify that callback edges are unreachable when the carrying edge is unreachable. * ipa-fnsummary.cc (redirect_to_unreachable): Redirect callback edges to unreachable when redirecting the carrying edge. 2026-01-15 Rainer Orth * configure.ac (gcc_cv_as_sparc_ua_pcrel): Remove. (gcc_cv_as_sparc_ua_pcrel_hidden): Likewise. * configure: Regenerate. * config.in: Regenerate. * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove !HAVE_AS_SPARC_UA_PCREL, !HAVE_AS_SPARC_UA_PCREL_HIDDEN support. * config/sparc/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Remove HAVE_AS_SPARC_UA_PCREL guard. 2026-01-15 Rainer Orth * config/sparc/sparc.h (TARGET_TLS): Define as HAVE_AS_TLS. Update comment. (TARGET_SUN_TLS): Define as 0. (TARGET_GNU_TLS): Remove. * config/sparc/freebsd.h (TARGET_SUN_TLS): Remove. (TARGET_GNU_TLS): Remove. * config/sparc/linux.h: Likewise. * config/sparc/linux64.h: Likewise. * config/sparc/sol2.h (TARGET_SUN_TLS): Redefine as 1. Guard with HAVE_AS_TLS && !HAVE_GNU_AS. (TARGET_GNU_TLS): Remove. * config/sparc/sparc.cc (TARGET_ASM_OUTPUT_DWARF_DTPREL): Use !TARGET_SUN_TLS in guard. with !TARGET_SUN_TLS only. * config/sparc/sparc.md ("tls_delay_slot"): Guard with !TARGET_SUN_TLS. 2026-01-15 Rainer Orth PR target/38118 * config/sparc/sol2.h (ASM_OUTPUT_ALIGNED_COMMON): Remove. 2026-01-15 Kugan Vivekanandarajah * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Assign hierarchical discriminators for loop unrolling. * cfgloopmanip.h (DLTHE_RECORD_HIERARCHICAL_DISCRIMINATOR): New flag. * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Pass flag to enable hierarchical discriminator assignment. (try_peel_loop): Likewise. 2026-01-15 Kugan Vivekanandarajah * gimple-loop-versioning.cc (loop_versioning::version_loop): Assign copyid discriminators to distinguish different loop versions. 2026-01-15 Kugan Vivekanandarajah * tree-vect-loop-manip.cc (vect_loop_versioning): Assign copyid discriminators for vectorized and scalar loop versions. * tree-vect-loop.cc (vect_transform_loop): Assign copyid discriminators for vectorized and scalar loop versions. 2026-01-15 Kugan Vivekanandarajah * Makefile.in: Add hierarchical_discriminator.o to OBJS. * hierarchical_discriminator.cc: New file. * hierarchical_discriminator.h: New file. * function.h (copyid_alloc): New. * input.cc (location_with_discriminator_components): New function. (get_discriminator_components_from_loc): Likewise. * input.h (DISCR_BASE_BITS): New constant. (DISCR_MULTIPLICITY_BITS): Likewise. (DISCR_COPYID_BITS): Likewise. (DISCR_UNUSED_BITS): Likewise. (DISCR_BASE_MASK): Likewise. (DISCR_MULTIPLICITY_MASK): Likewise. (DISCR_COPYID_MASK): Likewise. (DISCR_BASE_SHIFT): Likewise. (DISCR_MULTIPLICITY_SHIFT): Likewise. (DISCR_COPYID_SHIFT): Likewise. (DISCR_BASE_MAX): Likewise. (DISCR_MULTIPLICITY_MAX): Likewise. (DISCR_COPYID_MAX): Likewise. (location_with_discriminator_components): New function declaration. (get_discriminator_components_from_loc): Likewise. 2026-01-15 DengJianbo * config/loongarch/loongarch.md: Remove condition in template movdi_symbolic_off64. 2026-01-14 Peter Bergner PR target/123092 * config/riscv/constraints.md (ZD): Disable when xmipscbop is disabled. 2026-01-14 Martin Jambor PR ipa/123542 * ipa-cp.cc (ipa_value_from_jfunc): Always use ipacp_value_safe_for_type. Bail out if parm_type is NULL. 2026-01-14 Wilco Dijkstra PR target/121240 * config/aarch64/aarch64.md (mov): Expand FP immediates early. * config/aarch64/aarch64.cc (aarch64_select_rtx_section): Force immediates <= 8 bytes to constdata. (aarch64_rtx_costs): Increase cost of CONST_DOUBLE loaded from memory. 2026-01-14 Wilco Dijkstra PR target/114528 * config/aarch64/aarch64.cc (aarch64_check_mov_add_imm12): New function to check and emit MOV+ADD/SUB immediates. (aarch64_internal_mov_immediate): Add support for MOV+ADD/SUB immediates. 2026-01-14 Tejas Belagod PR middle-end/123392 * cfgexpand.cc (expand_debug_expr): Handle variable-length initializer for CONSTRUCTOR. 2026-01-14 Jakub Jelinek PR middle-end/123115 * defaults.h (EH_RETURN_DATA_REGNO): Add void (N) to the macro definition inside of a comma expression before INVALID_REGNUM. 2026-01-14 Jakub Jelinek PR target/120250 * combine.cc (recog_for_combine): Don't try to put SET_SRC into a constant pool if SET_DEST is pc_rtx. 2026-01-14 Richard Biener PR tree-optimization/123190 * tree-vectorizer.h (vect_load_store_data): Add n_loads member. * tree-vect-stmts.cc (get_load_store_type): Record the number of required loads for permuted loads. (vectorizable_load): Make use of this when costing loads for VMAT_CONTIGUOUS[_REVERSE]. 2026-01-14 Richard Biener PR tree-optimization/123190 * tree-vect-loop.cc (vect_analyze_loop_costing): Allow vectorizing loops with a single scalar iteration iff the vectorization factor is 1. 2026-01-14 Jakub Jelinek PR rtl-optimization/123544 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1) : Don't canonicalize (subreg (lshiftrt (x cnt)) low) into (lshiftrt (subreg x low) cnt) if the SUBREG is paradoxical. 2026-01-14 Prathamesh Kulkarni * auto-profile.cc: (string_table::filenames): New method. (function_instance::timestamp_): New member. (function_instance::timestamp): New accessor for timestamp_ member. (function_instance::set_timestamp): New function. (function_instance::prop_timestamp): Likewise. (function_instance::prop_timestamp_1): Likewise. (function_instance::function_instance): Initialize timestamp_ to 0. (function_instance::read_function_instance): Adjust prototype by replacing head_count with toplevel param with default value true, and stream in head_count and timestamp values from gcov file. (autofdo::timestamp_info_map): New std::map. (autofdo_source_profile::get_function_instance_by_decl): New argument filename with default value NULL. (autofdo_source_profile::read): Populate timestamp_info_map and propagate timestamp to inlined instances from toplevel function. (afdo_annotate_cfg): Assign node->tp_first_run based on timestamp_info_map and bail out of annotation if param_auto_profile_reorder_only is enabled. * params.opt: New param auto-profile-reorder-only. 2026-01-14 Lili Cui * config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS): disable tight loop alignment for m_CORE_ATOM. 2026-01-14 Daniel Barboza * match.pd: remove 'fold_overflow_warning' references. * tree.h (TYPE_OVERFLOW_UNDEFINED): remove note telling that we must use warn_strict_overflow for every optimization based on TYPE_OVERFLOW_UNDEFINED. 2026-01-13 Andrew Pinski * match.pd (`(T1)(a bit_op (T2)b)`): Remove redundant type checks. 2026-01-13 Pengxuan Zheng PR tree-optimization/123109 * fold-const.cc (fold_binary_loc): Remove (X >> C) NE/EQ 0 -> X LT/GE 0 folding. * match.pd (`(X >> C) NE/EQ 0 -> X LT/GE 0`): New pattern. 2026-01-13 Andrew Pinski PR tree-optimization/119402 * match.pd (`(a*zero_one_valued_p) & b`): New pattern. 2026-01-13 Andrew Pinski PR rtl-optimization/123312 * ifcvt.cc (noce_try_cond_zero_arith): Rename to ... (noce_try_cond_arith): This. For AND try `cmp ? a : -1` also to see which one cost less. (noce_process_if_block): Handle the rename. 2026-01-13 Jonathan Yong <10walls@gmail.com> * config/i386/winnt-utf8.manifest: enable longPathAware. 2026-01-13 Jonathan Yong <10walls@gmail.com> PR driver/108865 * config/i386/winnt-utf8.manifest: correct XML tags 2026-01-13 Jeff Law PR tree-optimization/123530 * match.pd (reassociating xor to enable rotations): Verify constants fit into a uhwi before trying to extract them as a uhwi. 2026-01-13 Richard Biener PR middle-end/123573 * fold-const.cc (fold_vec_perm): Actually check, not assert, that input and output vector element numbers agree. * match.pd (vec_perm @0 @1 @2): Make sure element numbers are the same when folding to an input vector and wrap that inside a VIEW_CONVERT_EXPR. 2026-01-13 Robin Dapp PR tree-optimization/123525 * tree-ssa-forwprop.cc (simplify_vector_constructor): Use converted source type for conversion bit field ref. 2026-01-13 Robin Dapp PR tree-optimization/123301 * tree-if-conv.cc (convert_scalar_cond_reduction): Disallow vector types. 2026-01-13 Robin Dapp PR rtl-optimization/123501 PR rtl-optimization/123444 * rtlanal.cc (nonzero_bits1): Use operand mode instead of operation mode. 2026-01-13 Jakub Jelinek PR libstdc++/123396 * configure.ac (gcc_cv_ld_use_as_needed_ldscript): New test. (USE_LD_AS_NEEDED_LDSCRIPT): New AC_DEFINE. * gcc.cc (LINK_LIBATOMIC_SPEC): Use "-latomic_asneeded" instead of LD_AS_NEEDED_OPTION " -latomic " LD_NO_AS_NEEDED_OPTION if USE_LD_AS_NEEDED_LDSCRIPT is defined. (init_gcc_specs): Use "-lgcc_s_asneeded" instead of LD_AS_NEEDED_OPTION " -lgcc_s " LD_NO_AS_NEEDED_OPTION if USE_LD_AS_NEEDED_LDSCRIPT is defined. * config.in: Regenerate. * configure: Regenerate. 2026-01-13 Richard Biener PR tree-optimization/123539 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the compute vectype to pun down to smaller or element size for by-element reductions. 2026-01-13 Kito Cheng * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use build_bitint_type for BITINT_TYPE when maxsizei exceeds MAX_FIXED_MODE_SIZE. 2026-01-13 Kito Cheng PR target/117581 * config/riscv/riscv.cc (riscv_bitint_type_info): New function. (TARGET_C_BITINT_TYPE_INFO): Define. 2026-01-13 liuhongt PR target/123484 * config/i386/mmx.md (divv4hf3): Add TARGET_MMX_WITH_SSE to the condition. (cmlav4hf4): Ditto. (cmla_conjv4hf4): Ditto. (cmulv4hf3): Ditto. (cmul_conjv4hf3): Ditto. 2026-01-12 Andrew Pinski PR tree-optimization/122845 PR tree-optimization/122843 * match.pd (`(T1)(a bit_op (T2)b)`): Also simplify if T1 is the same type as b and T2 is wider type than T1. 2026-01-12 Richard Biener PR tree-optimization/123528 * tree-vect-patterns.cc (vect_recog_bool_pattern): Restore INTEGRAL_TYPE_P check but also allow SCALAR_FLOAT_TYPE_P. 2026-01-12 Martin Jambor PR ipa/123543 * ipa-cp.cc (propagate_bits_across_jump_function): Fix test for recipient_only_p. 2026-01-12 Richard Biener PR tree-optimization/122830 PR tree-optimization/122824 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Generalize aggregate copy handling when no variable offsets are involved. 2026-01-12 Richard Biener * tree-ssa-sccvn.cc (vn_reference_lookup_3): Only tentatively accumulate extra_off when tentatively consuming components during aggregate copy handling. 2026-01-12 Richard Biener PR middle-end/123175 * match.pd (vec_perm @0 @1 @2): Fixup for inputs having a different number of elements than the result. * tree-vect-generic.cc (lower_vec_perm): Likewise. 2026-01-12 Jakub Jelinek PR rtl-optimization/123523 * simplify-rtx.cc (simplify_const_binary_operation): Use DImode for VOIDmode shift and truncation counts if int_mode is narrower than HOST_BITS_PER_WIDE_INT rather than word_mode if int_mode it is narrower than BITS_PER_WORD. 2026-01-12 Dhruv Chawla * auto-profile.cc (autofdo_source_profile::offline_unrealized_inlines): Add missing check for in_map. 2026-01-11 Michal Jires * asm-toplevel.cc (mark_fragile_ref_by_asm): Add marked_local to handle symbol as local. (ipa_asm_heuristics): New. (class pass_ipa_asm): New. (make_pass_ipa_asm_lgen): New. (make_pass_ipa_asm_wpa): New. * common.opt: New flto-toplevel-asm-heuristics. * passes.def: New asm passes. * timevar.def (TV_IPA_LTO_ASM): New. * tree-pass.h (make_pass_ipa_asm_lgen): New. (make_pass_ipa_asm_wpa): New. 2026-01-11 Michal Jires * asm-toplevel.cc (mark_fragile_ref_by_asm): New. (struct constraint_data): New. (walk_through_constraints): Handle .local definitions. (analyze_toplevel_extended_asm): Propagate constraint_data. 2026-01-11 Michal Jires * cgraph.h: Add must_remain_in_tu_*. * cgraphclones.cc (cgraph_node::create_clone): Propagate must_remain_in_tu_body. * cif-code.def (MUST_REMAIN_IN_TU): New. * ipa-icf.cc (sem_function::equals_wpa): Check must_remain_in_tu_* (sem_variable::equals_wpa): Likewise. * ipa-inline-transform.cc (inline_call): Propagate must_remain_in_tu_body. * ipa-inline.cc (can_inline_edge_p): Check must_remain_in_tu_body. * lto-cgraph.cc (lto_output_node): Output must_remain_in_tu_* (lto_output_varpool_node): Likewise. (input_overwrite_node): Input must_remain_in_tu_*. (input_varpool_node): Likewise. * tree.cc (decl_address_ip_invariant_p): Check must_remain_in_tu_name. * varpool.cc (varpool_node::ctor_useable_for_folding_p): Check must_remain_in_tu_body. 2026-01-11 Michal Jires * lto-cgraph.cc (compute_ltrans_boundary): Add symbols referenced from asm_nodes. * lto-streamer-out.cc (lto_output): Move adding asm_nodes to... * passes.cc (ipa_write_summaries): ...here. 2026-01-11 Michal Jires * ipa-free-lang-data.cc (find_decls_types_in_asm): New. (free_lang_data_in_cgraph): Use find_decls_types_in_asm. * lto-cgraph.cc (input_cgraph_1): Move asm to.. (input_toplevel_asms): ..here. * lto-streamer-in.cc (lto_input_toplevel_asms): Allow extended asm. * lto-streamer-out.cc (lto_output_toplevel_asms): Allow extended asm. (lto_output_toplevel_asms): Allow ASM_EXPR. * lto-streamer.h (input_toplevel_asms): New. 2026-01-11 Michal Jires PR ipa/122458 * Makefile.in: Add new file. * cgraph.h (analyze_toplevel_extended_asm): New. * cgraphunit.cc (symbol_table::finalize_compilation_unit): Call analyze_toplevel_extended_asm. * asm-toplevel.cc: New file. 2026-01-11 Michal Jires * cgraph.cc (cgraph_node_cannot_be_local_p_1): Check ref_by_asm. (cgraph_node::verify_node): Likewise. * cgraph.h (cgraph_node::only_called_directly_or_aliased_p): Likewise. (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise. (varpool_node::can_remove_if_no_refs_p): Likewise. (varpool_node::all_refs_explicit_p): Likewise. * cgraphunit.cc (symtab_node::needed_p): Likewise. (analyze_functions): Likewise. * gimple-ssa-pta-constraints.cc (refered_from_nonlocal_fn): Likewise. (refered_from_nonlocal_var): Likewise. (ipa_create_global_variable_infos): Likewise. * ipa-comdats.cc (ipa_comdats): Likewise. * ipa-visibility.cc (cgraph_externally_visible_p): Likewise. (varpool_node::externally_visible_p): Likewise. * ipa.cc (symbol_table::remove_unreachable_nodes): Likewise. * lto-cgraph.cc (lto_output_node): Output ref_by_asm. (lto_output_varpool_node): Likewise. (input_overwrite_node): Input ref_by_asm. (input_varpool_node): Likewise. * symtab.cc (address_matters_1): Check ref_by_asm. 2026-01-11 Hans-Peter Nilsson * config/cris/cris.cc (cris_rtx_costs) : Handle POST_INC as ZERO_EXTEND and SIGN_EXTEND, i.e. as an operator without cost. 2026-01-10 Jeff Law * config/mcore/mcore.h (ASM_OUT_ADDR_DIFF_ELT): Remove. 2026-01-10 Stefan Schulze Frielinghaus * config/s390/s390-modes.def (FLOAT_MODE): Add HF mode. (VECTOR_MODE): Add V{1,2,4,8,16}HF modes. * config/s390/s390.cc (s390_scalar_mode_supported_p): For 64-bit targets z10 and newer support HF mode. (s390_vector_mode_supported_p): Add HF mode. (s390_register_move_cost): Keep HF mode operands in registers. (s390_legitimate_constant_p): Support zero constant. (s390_secondary_reload): For GPR to FPR moves a secondary reload register is required. (s390_secondary_memory_needed): GPR<->FPR moves don't require secondary memory. (s390_libgcc_floating_mode_supported_p): For 64-bit targets z10 and newer support HF mode. (s390_hard_regno_mode_ok): Allow HF mode for FPRs and VRs. (s390_function_arg_float): Consider HF mode, too. (s390_excess_precision): For EXCESS_PRECISION_TYPE_FLOAT16 return FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16. (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. * config/s390/s390.md (movhf): Define. (reload_half_gprtofpr_z10): Define. (signbithf2): Define. * config/s390/vector.md: Add new vector modes to various iterators. 2026-01-10 Andrew Pinski PR tree-optimization/123417 * tree-cfgcleanup.cc (maybe_remove_forwarder_block): Always protect latches. 2026-01-10 Jakub Jelinek PR tree-optimization/123431 * gimple-range-op.cc (gimple_range_op_handler::maybe_builtin_call): Punt if type-generic builtins with a single argument don't have exactly one argument. For returns_arg punt if call doesn't have at least one argument. 2026-01-09 Robin Dapp PR tree-optimization/123414 * tree-ssa-forwprop.cc (simplify_vector_constructor): Use ssizetype as mask type. 2026-01-09 Jakub Jelinek * config/loongarch/genopts/gen-evolution.awk: Update copyright year. (copyright_header): Separate parts of Copyright word with " " so that it doesn't get matched by update-copyright.py. (gen_full_header, gen_full_source, gen_full_def): Include 2026 year in the ranges. 2026-01-09 David Malcolm * channels.h (gcc::topics::analyzer_events::subscriber): New forward decl. (compiler_channels::analyzer_events_channel): New field. * doc/plugins.texi (PLUGIN_ANALYZER_INIT): Delete. * plugin.cc (register_callback): Delete PLUGIN_ANALYZER_INIT. (invoke_plugin_callbacks_full): Likewise. * plugin.def (PLUGIN_ANALYZER_INIT): Delete this event. 2026-01-09 David Malcolm * Makefile.in (OBJS): Add tree-diagnostic-cfg.o. (OBJS-libcommon): Add custom-sarif-properties/cfg.o, diagnostics/digraphs-to-dot.o, and diagnostics/digraphs-to-dot-from-cfg.o. * cfghooks.cc: Define INCLUDE_VECTOR. Add includes of "diagnostics/sarif-sink.h" and "custom-sarif-properties/cfg.h". (dump_bb_as_sarif_properties): New. * cfghooks.h (diagnostics::sarif_builder): New forward decl. (json::object): New forward decl. (cfg_hooks::dump_bb_as_sarif_properties): New callback field. (dump_bb_as_sarif_properties): New decl. * cfgrtl.cc (rtl_cfg_hooks): Populate the new callback field with rtl_dump_bb_as_sarif_properties. (cfg_layout_rtl_cfg_hooks): Likewise. * custom-sarif-properties/cfg.cc: New file. * custom-sarif-properties/cfg.h: New file. * diagnostics/digraphs-to-dot-from-cfg.cc: New file, partly adapted from gcc/graph.cc. * diagnostics/digraphs-to-dot.cc: New file. * diagnostics/digraphs-to-dot.h: New file, based on material in... * diagnostics/digraphs.cc: Include "diagnostics/digraphs-to-dot.h". (class conversion_to_dot): Rework and move to above. (make_dot_graph_from_diagnostic_graph): Likewise. (make_dot_node_from_digraph_node): Likewise. (make_dot_edge_from_digraph_edge): Likewise. (conversion_to_dot::get_dot_id_for_node): Likewise. (conversion_to_dot::has_edges_p): Likewise. (digraph::make_dot_graph): Use to_dot::converter::make and invoke the result to make the dot graph. * diagnostics/digraphs.h (digraph:get_all_nodes): New accessor. * diagnostics/html-sink.cc (html_builder::m_per_logical_loc_graphs): New field. (html_builder::add_graph_for_logical_loc): New. (html_sink::report_digraph_for_logical_location): New. * diagnostics/sarif-sink.cc (sarif_array_of_unique::get_element): New. (sarif_builder::report_digraph_for_logical_location): New. (sarif_sink::report_digraph_for_logical_location): New. * diagnostics/sink.h: Include "diagnostics/logical-locations.h". (sink::report_digraph_for_logical_location): New vfunc. * diagnostics/text-sink.h (text_sink::report_digraph_for_logical_location): New. * doc/invoke.texi (fdiagnostics-add-output): Clarify wording. Distinguish between scheme-specific vs GCC-specific keys, and add "cfgs" as the first example of the latter. * gimple-pretty-print.cc: Include "cfghooks.h", "json.h", and "custom-sarif-properties/cfg.h". (gimple_dump_bb_as_sarif_properties): New. * gimple-pretty-print.h (diagnostics::sarif_builder): New forward decl. (json::object): Likewise. (gimple_dump_bb_as_sarif_properties): New. * graphviz.cc (get_compass_pt_from_string): New * graphviz.h (get_compass_pt_from_string): New decl. * libsarifreplay.cc (sarif_replayer::handle_graph_object): Fix overlong line. * opts-common.cc: Define INCLUDE_VECTOR. * opts-diagnostic.cc: Define INCLUDE_LIST. Include "diagnostics/sarif-sink.h", "tree-diagnostic-sink-extensions.h", "opts-diagnostic.h", and "pub-sub.h". (class gcc_extra_keys): New class. (opt_spec_context::opt_spec_context): Add "client_keys" param and pass to dc_spec_context. (handle_gcc_specific_keys): New. (try_to_make_sink): New. (gcc_extension_factory::singleton): New. (handle_OPT_fdiagnostics_add_output_): Rework to use try_to_make_sink. (handle_OPT_fdiagnostics_set_output_): Likewise. * opts-diagnostic.h: Include "diagnostics/sink.h". (class gcc_extension_factory): New. * opts.cc: Define INCLUDE_LIST. * print-rtl.cc: Include "dumpfile.h", "cfghooks.h", "json.h", and "custom-sarif-properties/cfg.h". (rtl_dump_bb_as_sarif_properties): New. * print-rtl.h (diagnostics::sarif_builder): New forward decl. (json::object): Likewise. (rtl_dump_bb_as_sarif_properties): New decl. * tree-cfg.cc (gimple_cfg_hooks): Use gimple_dump_bb_as_sarif_properties for new callback field. * tree-diagnostic-cfg.cc: New file, based on material in graph.cc. * tree-diagnostic-sink-extensions.h: New file. * tree-diagnostic.cc: Define INCLUDE_LIST. Include "tree-diagnostic-sink-extensions.h". (compiler_ext_factory): New. (tree_diagnostics_defaults): Set gcc_extension_factory::singleton to be compiler_ext_factory. 2026-01-09 David Malcolm * channels.h: New file. * context.cc: Define INCLUDE_LIST. Include "channels.h". (gcc::context::context): Create m_channels. (gcc::context::~context): Delete it. * context.h (struct compiler_channels): New forward decl. (gcc::context::get_channels): New accessor. (gcc::context::m_channels): New field. * passes.cc: Define INCLUDE_LIST. Include "topics/pass-events.h" and "channels.h". (execute_one_pass): If the global context's pass_events_channel has subscribers, publish before_pass and after_pass events to it. * topics/pass-events.h: New file. 2026-01-09 David Malcolm * Makefile.in (OBJS-libcommon): Add pub-sub.o. * pub-sub.cc: New file. * pub-sub.h: New file. * selftest-run-tests.cc (selftest::run_tests): Call selftest::pub_sub_cc_tests. * selftest.h (selftest::pub_sub_cc_tests): New decl. 2026-01-09 Andrew Pinski PR target/123457 * config/aarch64/aarch64-sve-builtins.cc (struct registered_function_hasher): Change base class to ggc_ptr_hash. (initial_indexes): Mark with GTY. (function_table): Likewise. (handle_arm_sve_h): Allocate function_table from ggc instead of heap. 2026-01-09 Jakub Jelinek * doc/invoke.texi (-x): Add c++-system-module, objc-cpp-output, objc++-cpp-output, adascil, adawhy, modula-2, modula-2-cpp-output, rust, algol68 and lto as further possible option arguments. 2026-01-09 Vladimir N. Makarov PR rtl-optimization/123121 * lra-remat.cc (bad_for_rematerialization_p): Consider div/mod ops. (operand_to_remat): Exclude rematerialization of insns with multiple sets. 2026-01-09 Peter Bergner PR target/123492 * config/riscv/riscv-cores.def (RISCV_CORE): Add missing extensions via use of rva23s64 profile and adding zkr, smaia, smmpm, smnpm, smrnmi, smstateen, ssaia, ssstrict, svadu. 2026-01-09 Martin Jambor * ipa-cp.h (class ipcp_bits_lattice): New members set_recipient_only, recipient_only_p and m_recipient_only. (class ipcp_vr_lattice): Likewise. (ipcp_vr_lattice::init): Initialize also m_recipient_only. * ipa-cp.cc (ipcp_bits_lattice::print): Adjust printting to also print the new flag. (ipcp_vr_lattice::print): Likewise. (ipcp_vr_lattice::set_recipient_only): New function. (ipcp_bits_lattice::set_recipient_only): Likewise. (set_all_contains_variable): New parameter MAKE_SIMPLE_RECIPIENTS, set bits and vr lattices to recibient only insted to bottom when it is true. (initialize_node_lattices): Pass true to the second parameter of set_all_contains_variable. (propagate_bits_across_jump_function): Treat recipient_only source lattices like bottom. (propagate_vr_across_jump_function): Likewise. (ipcp_store_vr_results): Skip non-local nodes. 2026-01-09 Martin Jambor * ipa-cp.cc (good_cloning_opportunity_p): Dump a message when bailing out early too. (find_more_scalar_values_for_callers_subset): Rename to find_scalar_values_for_callers_subset, collect constants regardless of what is already in the vector. Remove dumping. (find_more_contexts_for_caller_subset): Rename to find_contexts_for_caller_subset, collect contexts regardless of what is already in the vector. Remove dumping. (find_aggregate_values_for_callers_subset): Rename to find_aggregate_values_for_callers_subset_gc, implement using new functions. (find_aggregate_values_for_callers_subset_1): New function. (find_aggregate_values_for_callers_subset): Likewise. (copy_known_vectors_add_val): Removed. (dump_reestimation_message): New function. (decide_about_value): Remove formal parameter avals, compute it independently, and use it to estimate local cloning effects. (struct cloning_opportunity_ranking): New type. (compare_cloning_opportunities): New function. (cloning_opportunity_ranking_evaluation): Likewise. (decide_whether_version_node): Pre-sort candidates for cloning before really evaluating them. Calculate context independent values only when considering versioning for all contexts. (ipcp_val_agg_replacement_ok_p): Renamed to ipcp_val_replacement_ok_p, check also non-aggregate values. 2026-01-09 Alexandre Oliva PR target/119430 * config/arm/arm.cc (arm_function_ok_for_sibcall): Disable sibcalls for long-calls that use all call-clobbered general-purpose registers, including the static chain. 2026-01-09 Stefan Schulze Frielinghaus * config/s390/s390.cc (print_operand): Align %cN with %N. * config/s390/s390.md: Remove comment. 2026-01-09 Filip Kastl PR c/123212 * opts.cc: Enable -fbit-tests and -fjump-tables at -Og. 2026-01-09 Alfie Richards * config/aarch64/aarch64-builtins.cc (aarch64_expand_pragma_builtin): Add case for FMMLA. * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Add new __ARM_FEATURE_X macros. * config/aarch64/aarch64-simd-pragma-builtins.def (vmmlaq_f16_mf8): New intrinsic. (vmmlaq_f32_mf8): Likewise. * config/aarch64/aarch64-simd.md (@aarch64_): New instruction. * config/aarch64/aarch64-sve-builtins-base.cc: Update mmla_impl for new instructions. * config/aarch64/aarch64-sve-builtins-shapes.cc (struct mmla_def): Add support for the new widening forms. * config/aarch64/aarch64-sve-builtins-sve2.def (svmmla) Add new intrinsics. * config/aarch64/aarch64-sve-builtins.cc (TYPES_cvt_narrow_s): Fix comment. * config/aarch64/aarch64-sve2.md (@aarch64_sve2_): New instruction. (@aarch64_sve2_): Likewise. * config/aarch64/aarch64.h (TARGET_F8F32MM): New macro. (TARGET_F8F16MM): Likewise. (TARGET_SVE_F16F32MM): Likewise. * config/aarch64/iterators.md (insn): Add fmmla entry. (VDQ_HSF_FMMLA): New iterator. (SVE_FULL_HSF_FMMLA): Likewise. 2026-01-09 Christophe Lyon * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Remove TARGET_HAVE_MVE condition. (class arm_target_switcher): New. (arm_init_mve_builtins): Remove calls to arm_init_simd_builtin_types and arm_init_simd_builtin_scalar_types. Switch to MVE isa flags. (arm_init_neon_builtins): Remove calls to arm_init_simd_builtin_types and arm_init_simd_builtin_scalar_types. (arm_need_mve_mode_regs): New. (arm_need_neon_mode_regs): New. (arm_target_switcher::arm_target_switcher): New. (arm_target_switcher::~arm_target_switcher): New. (arm_init_builtins): Call arm_init_simd_builtin_scalar_types and arm_init_simd_builtin_types. Always call arm_init_mve_builtins and arm_init_neon_builtins. 2026-01-09 Jakub Jelinek PR target/123489 * config/i386/i386-builtin.def (__builtin_ia32_cvttsd2sis64_round, __builtin_ia32_cvttsd2usis64_round, __builtin_ia32_cvttss2sis64_round, __builtin_ia32_cvttss2usis64_round): Require OPTION_MASK_ISA_64BIT. 2026-01-09 Andrew Pinski PR rtl-optimization/123491 * ifcvt.cc (noce_try_cond_zero_arith): Reject non-scalar integer modes for the inner mode of the subreg. 2026-01-09 Shreya Munnangi Jeff Law PR target/121778 * match.pd: Add pattern to recognize rotate with one or more bits flipped via xor. * config/sh/sh.md (*rotcl); New variant which handles the output we get after the match.pd change above. 2026-01-09 Jeff Law * config/riscv/andes-23-series.md: Clamp reservations to 7c. * config/riscv/andes-25-series.md: Likewise. * config/riscv/andes-45-series.md: Likewise. * config/riscv/generic.md: Likewise. * config/riscv/mips-p8700.md: Likewise. * config/riscv/sifive-7.md: Likewise. * config/riscv/spacemit-x60.md: Likewise. 2026-01-09 Kugan Vivekanandarajah PR gcov-profile/123019 * auto-profile.cc (auto_profile): Call execute_fixup_cfg. 2026-01-09 Kugan Vivekanandarajah PR ipa/123383 * cgraph.cc (cgraph_edge::get_next_speculative_id): Check lto_stmt_uid in get_next_speculative_id. 2026-01-08 Jakub Jelinek PR middle-end/111817 * stmt.cc (parse_input_constraint): For matching construct, goto before the loop without changing j instead of break. Remove comment about that problem. 2026-01-08 Robin Dapp PR target/122846 * config/riscv/riscv-opts.h (enum rvv_max_lmul_enum): Add RVV_CONV_DYNAMIC. (TARGET_MAX_LMUL): Ditto. * config/riscv/riscv-string.cc (use_vector_stringop_p): Use LMUL1 for RVV_CONV_DYNAMIC. (expand_rawmemchr): Ditto. (expand_strcmp): Ditto. (check_vectorise_memory_operation): Ditto. * config/riscv/riscv-vector-costs.cc (get_smallest_mode): New function. (compute_lmul_from_conversion_ratio): Calculate LMUL from largest/smallest type. (costs::has_unexpected_spills_p): Split. (costs::compute_live_ranges_and_lmul): Compute smallest type and call new function. (costs::cleanup_live_range_data): New function. (costs::compute_conversion_dynamic_lmul): New function. (costs::record_potential_unexpected_spills): Use new function. (costs::better_main_loop_than_p): Allow appropriate LMUL. * config/riscv/riscv-vector-costs.h: Declare. * config/riscv/riscv.opt: New option -mrvv-max-lmul=conv-dynamic. 2026-01-08 Qing Zhao * doc/extend.texi: Update doc to support pointers inside structures. 2026-01-08 Olivier Hainque Alexandre Oliva * config.gcc [x86_64-*-*]: Match *abi32 target, default to m32 abi. Accept 32 or m32 for --with-abi. 2026-01-08 Jonathan Wakely * doc/invoke.texi (C++ Dialect Options): Fix typo in documentation of -flang-info-module-cmi. 2026-01-08 Aleksandar Rakic * Makefile.in: Add with_multi_buildlist for multilib configuration control. Pass an additional argument to genmultilib indicating whether --with-multi-buildlist is set (true or false). Use with_multi_buildlist to filter multilib directories in fixinc_list. * configure: Regenerate. * configure.ac: Restrict the installed fixedincludes multilibs. * configure.tgt: New file. * doc/install.texi: Add --with-multi-buildlist configure option for multilib filtering. * genmultilib: Document the new eleventh argument indicating whether --with-multi-buildlist configure option is set (true or false). Update argument parsing to include this flag before enable_multilib. Modify reuse rule validation: - Keep the original error for reuse of nonexistent multilibs when --with-multi-buildlist is not used. - Suppress the error only when the new configure option is active, allowing reuse rules to reference multilibs that are intentionally excluded from the build. 2026-01-08 Tomas Glozar * config/ia64/ia64.cc (MAX_VECT_LEN): Set to 16 from 8. 2026-01-08 Robin Dapp PR target/123268 * gimple-match-exports.cc (convert_conditional_op): Check if orig_op->type and type of else value match. 2026-01-08 Richard Sandiford Richard Biener PR tree-optimization/122793 * tree-vect-slp.cc (vect_add_slp_permutation): Document the existing identity_offset parameter. Handle identities that take from the second input rather than the first. 2026-01-08 Richard Biener PR tree-optimization/123310 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Properly test against unknown offset. 2026-01-08 Richard Biener PR tree-optimization/123298 * tree-ssa-alias.h (get_continuation_for_phi): Take a gphi *, add is_backedge hook argument. (walk_non_aliased_vuses): Add is_backedge hook argument. * tree-ssa-alias.cc (maybe_skip_until): Adjust. (get_continuation_for_phi): Use new hook to classify an edge into the PHI as backedge. (walk_non_aliased_vuses): Adjust. * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Likewise. * ipa-prop.cc (determine_known_aggregate_parts): Likewise. * tree-ssa-scopedtables.cc (avail_exprs_stack::lookup_avail_expr): Likewise. * tree-ssa-pre.cc (translate_vuse_through_block): Likewise. * tree-ssa-sccvn.cc (vn_bb_to_rpo): Make BB to RPO order mapping accessible from new hook. (do_rpo_vn_1): Likewise. (vn_is_backedge): New hook to classify edge. (vn_reference_lookup_pieces): Adjust. (vn_reference_lookup): Likewise. 2026-01-08 Richard Biener * tree-vect-stmts.cc (vectorizable_shift): Improve missing optab or optab support messages. (vectorizable_operation): Likewise. 2026-01-08 Stefan Schulze Frielinghaus * config/s390/s390.cc (s390_logical_operator_ok_p): Test for volatile memory. (s390_mem_constraint): Remove volatile condition. * config/s390/s390.md (*andc_split_): Test for volatile memory. 2026-01-08 Richard Biener PR middle-end/123107 * fold-const.cc (fold_binary_loc): Guard (v >> CST) == { 0, 0.. } to v < { 0, 0.. } folding. 2026-01-08 Andrew Pinski PR tree-optimization/123382 * tree-if-conv.cc: Reject VEC_PERM_EXPR for factoring if it is the mask and they are constant. 2026-01-08 Andrew Pinski * cse.cc (cse_find_path): Change follow_jumps to bool. 2026-01-07 Tomas Glozar PR target/121535 * config/ia64/ia64.cc (TARGET_ZERO_CALL_USED_REGS): Override function with target-specific one. (struct gcc_target): Move to end of file. (ia64_zero_call_used_regs): Add target-specific function. 2026-01-07 Xinhui Yang * config.gcc: limit -lunwind usage by testing if the system libunwind is being used. 2026-01-07 Xi Ruoyao PR target/123320 * config/loongarch/loongarch.md (3): Only expand using psuedos when can_create_pseudo_p (). (addsi3): Likewise. 2026-01-07 Andrew MacLeod PR tree-optimization/123300 * gimple-range-gori.cc (gori_map::exports_and_deps): New. * gimple-range-gori.h (exports_and_deps): New prototype. (FOR_EACH_GORI_EXPORT_AND_DEP_NAME): New macro. * tree-vrp.cc (remove_unreachable:remove_unreachable): Initialize m_tmp bitmap. (remove_unreachable:~remove_unreachable): Dispose of m_tmp bitmap. (remove_unreachable:fully_replaceable): Move from static function and check reachability of exports and dependencies. 2026-01-07 Andrew MacLeod PR tree-optimization/123319 * value-range.cc (irange::intersect): If there is a bitmask, snap subranges after creating them. 2026-01-07 Daniel Barboza PR tree-optimization/102486 * match.pd (`popcount (X & -X) -> -X != 0`): New pattern. 2026-01-07 Jakub Jelinek PR rtl-optimization/119291 PR rtl-optimization/121773 * combine.cc (try_combine): Check that SET_DEST (setN) is neither modified_between_p nor reg_used_between_p instead of just not reg_used_between_p or pc_rtx. 2026-01-07 Richard Earnshaw PR target/123390 * config/arm/arm.cc (arm_gen_constant): Fix types of HWI literals. (arm_const_double_prefer_rsbs_rsc): Likewise. 2026-01-07 Alfie Richards * config/aarch64/aarch64.cc (aarch64_parse_fmv_features): Add parsing for priority arguments. (aarch64_process_target_version_attr): Update call to aarch64_parse_fmv_features. (get_feature_mask_for_version): Update call to aarch64_parse_fmv_features. (aarch64_compare_version_priority): Add logic to order by priority if present. (aarch64_functions_b_resolvable_from_a): Update call to aarch64_parse_fmv_features. (aarch64_mangle_decl_assembler_name): Update call to aarch64_parse_fmv_features. (dispatch_function_versions): Add logic to sort by priority. (aarch64_same_function_versions): Add diagnostic if invalid use of priority syntax. (aarch64_merge_decl_attributes): Add logic to make suer priority arguments are preserved. (aarch64_check_target_clone_version): Update call to aarch64_parse_fmv_features. 2026-01-07 Alfie Richards * target.def (TARGET_OPTION_SAME_FUNCTION_VERSIONS): Update documentation. * tree.cc (disjoint_version_decls): Change for new NULL parameter to same_function_versions. (diagnose_versioned_decls): Update to pass diagnostic location to same_function_versions. * doc/tm.texi: Regenerate. * config/aarch64/aarch64.cc (aarch64_same_function_versions): Update hook impl for new arguments. * config/riscv/riscv.cc (riscv_same_function_versions): Update hook impl for new arguments. * config/loongarch/loongarch.cc (loongarch_same_function_versions): Likewise * hooks.cc (hook_stringslice_stringslice_unreachable): Changed to... (hook_stringslice_consttree_stringslice_consttree_unreachable): ...this and add extra arguments. * hooks.h (hook_stringslice_stringslice_unreachable): Changed to... (hook_stringslice_consttree_stringslice_consttree_unreachable): and add extra arguments. 2026-01-07 Martin Jambor * params.opt (param_ipa_cp_sweeps): New. * doc/invoke.texi (ipa-cp-sweeps): New. * ipa-cp.cc (max_number_sweeps): New. (get_max_overall_size): New parameter cur_sweep, use it and the total number of sweeps from the NODE to calculate the result too. (ipcp_propagate_stage): Get the maximum number of sweeps specified in the corresponding parameter of any possibly affected node. (good_cloning_opportunity_p): Add parameter cur_sweep, adjust the threshold according to it. (decide_about_value): New parameter cur_sweep, pass it to get_max_overall_size and to good_cloning_opportunity_p. (decide_whether_version_node): New parameter cur_sweep, pass it to decide_about_value and get_max_overall_size. Make sure the node is not dead. (ipcp_decision_stage): Make multiple sweeps over the call-graph. 2026-01-07 Martin Jambor * ipa-prop.h (ipa_node_params): Remove member do_clone_for_all_contexts. (ipa_node_params::ipa_node_params): Do not initialize do_clone_for_all_contexts. * ipa-cp.cc (gather_context_independent_values): Remove parameter calculate_aggs, calculate them always. (estimate_local_effects): Move the decision whether to clone for all context... (decide_whether_version_node): ...here. Fix dumps. (decide_about_value): Adjust alignment in dumps. 2026-01-07 Richard Biener PR tree-optimization/123315 * tree-vect-loop.cc (vect_analyze_loop_2): Reset LOOP_VINFO_USING_DECREMENTING_IV_P before retrying. 2026-01-07 Richard Biener PR tree-optimization/123221 * tree-vect-loop.cc (vectorizable_reduction): When we did not find the non-conversion reduction operation, bail. 2026-01-07 Richard Biener PR tree-optimization/123316 * tree-vect-loop.cc (vectorizable_reduction): Detect missing PHI patterns for bools. 2026-01-07 Rainer Orth PR debug/123259 * toplev.cc (process_options): Guard CTF non-C warning by -Wcomplain-wrong-lang. * doc/invoke.texi (Warning Options, -Wno-complain-wrong-lang): Document effect on -gctf/-gsctf. 2026-01-07 Siddhesh Poyarekar PR tree-optimization/123374 * gimple-ssa-warn-access.cc (pass_waccess::set_pass_param): Add a second parameter. (pass_waccess::check_call): Skip access checks for waccess2. (pass_waccess::execute): Drop initialization of M_CHECK_DANGLING_P. * passes.def: Adjust. 2026-01-06 Sebastian Huber * tree-profile.cc (tree_profiling): Do not use atomic operations if they are not available. Try to use at least partial atomic updates as a fallback. 2026-01-06 Takayuki 'January June' Suwa * config/xtensa/xtensa.h (EPILOGUE_USES): New macro definition. * config/xtensa/xtensa.md (return): Remove '(use (reg:SI A0_REG))' from the template description, and reload_completed from the condition. (sibcall_epilogue): Remove emitting '(use (reg:SI A0_REG))'. 2026-01-06 Tamar Christina PR tree-optimization/122103 * tree-if-conv.cc (ifcvt_can_predicate): Add check for normal builtins. 2026-01-06 Richard Ball * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): New builtin flag. (aarch64_init_pcdphint_builtins): New builtin function. (aarch64_expand_pldir_builtin): Expander for new intrinsic. (aarch64_general_expand_builtin): Call new expander. * config/aarch64/aarch64.md (aarch64_pldir): New pattern for instrinsic. * config/aarch64/arm_acle.h (__attribute__): New call to builtin. (__pldir): Likewise. 2026-01-06 Richard Ball * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add new flags. (aarch64_init_pcdphint_builtins): Create new Builtin functions. (aarch64_general_init_builtins): Call init for PCDPHINT. (aarch64_expand_stshh_builtin): Expander for new intrinsic. (aarch64_general_expand_builtin): Call new expander. * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): New feature. * config/aarch64/aarch64.h (TARGET_PCDPHINT): Likewise. * config/aarch64/arm_acle.h (__atomic_store_with_stshh): Generic to call builtins. * config/aarch64/atomics.md (@aarch64_atomic_store_stshh): New pattern for intrinsic. * config/aarch64/iterators.md: New UNSPEC. 2026-01-06 Eric Botcazou PR target/121192 * expr.cc (store_constructor) : Disable the special trick for uniform boolean vectors with integer modes and single-bit mask entries on big-endian platforms. 2026-01-06 Eric Botcazou * doc/install.texi (Prerequisites): Remove reference to Ada in conjunction with GCC 9.5 and adjust its GCC version requirement. 2026-01-06 Jakub Jelinek Marco Falke PR tree-optimization/123351 * tree-object-size.cc (object_sizes_set_temp): Separate calls to make_ssa_name to ensure deterministic execution order. 2026-01-05 Tamar Christina PR tree-optimization/122103 * tree-vect-stmts.cc (vectorizable_call): Handle trapping math. 2026-01-05 Tamar Christina PR tree-optimization/122103 * tree-if-conv.cc (ifcvt_can_predicate): Support gimple_call_builtin_p. (if_convertible_stmt_p, predicate_rhs_code, predicate_statements): Likewise. 2026-01-05 Tamar Christina PR tree-optimization/122103 * match.pd: Add COND_FMA to COND_FMS rewrite rules. 2026-01-05 Tamar Christina PR tree-optimization/122103 * doc/md.texi: Document them * internal-fn.cc (FOR_EACH_COND_FN_PAIR, internal_fn_else_index): Add SQRT, CEIL, FLOOR, ROUND and RINT. * internal-fn.def (IFN_COND_SQRT, IFN_COND_CEIL, IFN_COND_FLOOR, IFN_COND_ROUND, IFN_COND_RINT, IFN_COND_LEN_SQRT, IFN_COND_LEN_CEIL, IFN_COND_LEN_FLOOR, IFN_COND_LEN_ROUND, IFN_COND_LEN_RINT): New. * optabs.def (cond_rint_optab, cond_sqrt_optab, cond_round_optab, cond_ceil_optab, cond_floor_optab, cond_len_rint_optab, cond_len_sqrt_optab, cond_len_round_optab, cond_len_ceil_optab, cond_len_floor_optab): New. 2026-01-05 Tamar Christina PR tree-optimization/122103 * gimple.cc (gimple_could_trap_p_1): Handle __builtin_ calls. 2026-01-05 Jeff Law * config/riscv/riscv-string.cc (expand_block_move): Restore using inlined memcpy/memmove for unknown counts if the param hasn't been specified. (expand_vec_setmem): Similarly for memset. 2026-01-05 Pan Li PR target/123317 * config/riscv/autovec-opt.md: Take zero_extend for both the vwaddu and vwsubu wx pattern. 2026-01-05 Alice Carlotti * config/aarch64/aarch64-sme.md (aarch64_sme_write_zt): Add TARGET_STREAMING requirement. (aarch64_sme_lut_zt): Ditto. 2026-01-05 Alice Carlotti * doc/invoke.texi: Fix incorrect function name. 2026-01-05 Pan Li * tree-vect-slp.cc (vec_slp_has_scalar_use): Adjust the depth_limit from 2 to 3. 2026-01-05 Tamar Christina PR target/121290 * config/aarch64/aarch64.cc (aarch64_possible_by_lane_insn_p): New. (aarch64_vector_costs): Add m_num_dup_stmts and m_num_total_stmts. (aarch64_vector_costs::add_stmt_cost): Use them. (adjust_body_cost): Likewise. 2026-01-05 Tamar Christina PR target/123017 * config/aarch64/aarch64-json-schema.h: Add br_mispredict_factor. * config/aarch64/aarch64-json-tunings-parser-generated.inc (parse_branch_costs): Add br_mispredict_factor. * config/aarch64/aarch64-json-tunings-printer-generated.inc (serialize_branch_costs): Add br_mispredict_factor. * config/aarch64/aarch64-protos.h (struct cpu_branch_cost): Add br_mispredict_factor. * config/aarch64/aarch64.cc (aarch64_max_noce_ifcvt_seq_cost, aarch64_noce_conversion_profitable_p, TARGET_MAX_NOCE_IFCVT_SEQ_COST, TARGET_NOCE_CONVERSION_PROFITABLE_P): New. * config/aarch64/tuning_models/generic.h (generic_branch_cost): Add br_mispredict_factor. * config/aarch64/tuning_models/generic_armv8_a.h: Remove generic_armv8_a_branch_cost and use generic_branch_cost. 2026-01-04 Andrew Pinski * configure: Regenerate. 2026-01-04 Jeff Law * config/riscv/riscv.cc (riscv_conditional_register_usage): Revert patch that made VXRM a global register. 2026-01-04 Keith Packard * config.gcc: Add clause for picolibc. * config/picolibc-spec.h: New file. * config/picolibc.opt: Likewise. * config/picolibc.opt.urls: Likewise. * configure.ac: Add support for --with-picolibc. * configure: Rebuilt. * doc/invoke.texi: Document picolibc options. * doc/tm.texi.in (LIBC_CPP_SPEC): Document. (LIBC_LINK_SPEC): Similarly. * doc/tm.texi: Rebuilt. * gcc.cc (LIBC_CPP_SPEC): Provide default definition. (LIBC_LINK_SPEC): Likewise. (cpp_spec): Include LIBC_CPP_SPEC. (link_spec): Similarly for LIBC_LINK_SPEC. 2026-01-04 Jeff Law * doc/contrib.texi: Add Kazumoto & Oleg. 2026-01-04 Richard Braun * config/c6x/c6x-sched.md.in (mpydp_m_N__CROSS_, mpyspdp_m_N__CROSS_, mpysp2dp_m_N__CROSS_): Update reservations. * config/c6x/c6x-sched.md: Regenerated. * config/c6x/c6x.md (m1dp, m1spdp, m2dp, m2spdp): New CPU units. 2026-01-04 Kalvis Duckmanton * config/host-netbsd.cc (netbsd_gt_pch_use_address): Support PCH loading at addresses other than its preferred address. * config/host-openbsd.cc (openbsd_gt_pch_use_address): Likewise. 2026-01-04 Daniel Barboza PR tree-optimization/122608 * match.pd (`(c ? a : b) op d -> c ? (a op d) : (b op d)`): New pattern. (`d op (c ? a : b) -> c ? (d op a) : (d op b)`): Likewise 2026-01-04 Jeff Law PR target/123010 * simplify-rtx.cc (simplify_binary_operation_1, case ASHIFT): Simplify case where a left shift of the sign extracted field can be turned into a sign extension of a left shift. 2026-01-03 Jakub Jelinek PR tree-optimization/123372 * tree-ssa-math-opts.cc (build_saturation_binary_arith_call_and_replace): Pass type of op_0 rather than type of lhs as second argument to direct_internal_fn_supported_p. 2026-01-02 Iain Sandoe * config/aarch64/aarch64-sve-builtins-shapes.cc (INCLUDE_ALGORITHM): Define. 2026-01-01 Kugan Vivekanandarajah * cgraph.cc (cgraph_edge::get_next_speculative_id): New. * cgraph.h (cgraph_edge::get_next_speculative_id): New. * ipa-devirt.cc (ipa_devirt): Use get_next_speculative_id in make_speculative. 2026-01-01 Jakub Jelinek * gcc.cc (process_command): Update copyright notice dates. * gcov-dump.cc (print_version): Ditto. * gcov.cc (print_version): Ditto. * gcov-tool.cc (print_version): Ditto. * gengtype.cc (create_file): Ditto. * doc/cpp.texi: Bump @copying's copyright year. * doc/cppinternals.texi: Ditto. * doc/gcc.texi: Ditto. * doc/gccint.texi: Ditto. * doc/gcov.texi: Ditto. * doc/install.texi: Ditto. * doc/invoke.texi: Ditto. Copyright (C) 2026 Free Software Foundation, Inc. Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.