mirror of
https://forge.sourceware.org/marek/gcc.git
synced 2026-02-22 12:00:11 -05:00
1213 lines
44 KiB
Plaintext
1213 lines
44 KiB
Plaintext
2026-01-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
|
||
|
||
* match.pd (`(T1)(a bit_op (T2)b)`): Remove redundant
|
||
type checks.
|
||
|
||
2026-01-13 Pengxuan Zheng <pengxuan.zheng@oss.qualcomm.com>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
PR tree-optimization/119402
|
||
* match.pd (`(a*zero_one_valued_p) & b`): New pattern.
|
||
|
||
2026-01-13 Andrew Pinski <andrew.pinski@oss.qualcomm.com>
|
||
|
||
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 <jeffrey.law@oss.qualcomm.com>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
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 <rdapp@oss.qualcomm.com>
|
||
|
||
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 <rdapp@oss.qualcomm.com>
|
||
|
||
PR tree-optimization/123301
|
||
* tree-if-conv.cc (convert_scalar_cond_reduction):
|
||
Disallow vector types.
|
||
|
||
2026-01-13 Robin Dapp <rdapp@oss.qualcomm.com>
|
||
|
||
PR rtl-optimization/123501
|
||
PR rtl-optimization/123444
|
||
* rtlanal.cc (nonzero_bits1): Use operand mode instead of
|
||
operation mode.
|
||
|
||
2026-01-13 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
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 <kito.cheng@sifive.com>
|
||
|
||
* 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 <kito.cheng@sifive.com>
|
||
|
||
PR target/117581
|
||
* config/riscv/riscv.cc (riscv_bitint_type_info): New function.
|
||
(TARGET_C_BITINT_TYPE_INFO): Define.
|
||
|
||
2026-01-13 liuhongt <hongtao.liu@intel.com>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
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 <mjambor@suse.cz>
|
||
|
||
PR ipa/123543
|
||
* ipa-cp.cc (propagate_bits_across_jump_function): Fix test for
|
||
recipient_only_p.
|
||
|
||
2026-01-12 Richard Biener <rguenther@suse.de>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
* 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 <rguenther@suse.de>
|
||
|
||
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 <jakub@redhat.com>
|
||
|
||
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 <dhruvc@nvidia.com>
|
||
|
||
* auto-profile.cc (autofdo_source_profile::offline_unrealized_inlines):
|
||
Add missing check for in_map.
|
||
|
||
2026-01-11 Michal Jires <mjires@suse.cz>
|
||
|
||
* 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 <mjires@suse.cz>
|
||
|
||
* 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 <mjires@suse.cz>
|
||
|
||
* 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 <mjires@suse.cz>
|
||
|
||
* 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 <mjires@suse.cz>
|
||
|
||
* 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 <mjires@suse.cz>
|
||
|
||
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 <mjires@suse.cz>
|
||
|
||
* 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 <hp@axis.com>
|
||
|
||
* config/cris/cris.cc (cris_rtx_costs) <POST_INC>: Handle POST_INC
|
||
as ZERO_EXTEND and SIGN_EXTEND, i.e. as an operator without cost.
|
||
|
||
2026-01-10 Jeff Law <jeffrey.law@oss.qualcomm.com>
|
||
|
||
* config/mcore/mcore.h (ASM_OUT_ADDR_DIFF_ELT): Remove.
|
||
|
||
2026-01-10 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
|
||
|
||
* 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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
PR tree-optimization/123417
|
||
* tree-cfgcleanup.cc (maybe_remove_forwarder_block): Always
|
||
protect latches.
|
||
|
||
2026-01-10 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
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 <rdapp@oss.qualcomm.com>
|
||
|
||
PR tree-optimization/123414
|
||
* tree-ssa-forwprop.cc (simplify_vector_constructor):
|
||
Use ssizetype as mask type.
|
||
|
||
2026-01-09 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
* 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 <dmalcolm@redhat.com>
|
||
|
||
* 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 <dmalcolm@redhat.com>
|
||
|
||
* 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 <dmalcolm@redhat.com>
|
||
|
||
* 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 <dmalcolm@redhat.com>
|
||
|
||
* 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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
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 <jakub@redhat.com>
|
||
|
||
* 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 <vmakarov@redhat.com>
|
||
|
||
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 <bergner@tenstorrent.com>
|
||
|
||
PR target/123492
|
||
* config/riscv/riscv-cores.def (RISCV_CORE)<tt-ascalon-d8>: Add missing
|
||
extensions via use of rva23s64 profile and adding zkr, smaia, smmpm,
|
||
smnpm, smrnmi, smstateen, ssaia, ssstrict, svadu.
|
||
|
||
2026-01-09 Martin Jambor <mjambor@suse.cz>
|
||
|
||
* 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 <mjambor@suse.cz>
|
||
|
||
* 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 <oliva@gnu.org>
|
||
|
||
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 <stefansf@gcc.gnu.org>
|
||
|
||
* config/s390/s390.cc (print_operand): Align %cN with %N.
|
||
* config/s390/s390.md: Remove comment.
|
||
|
||
2026-01-09 Filip Kastl <fkastl@suse.cz>
|
||
|
||
PR c/123212
|
||
* opts.cc: Enable -fbit-tests and -fjump-tables at -Og.
|
||
|
||
2026-01-09 Alfie Richards <alfie.richards@arm.com>
|
||
|
||
* 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_<insn><VDQ_HSF_FMMLA:mode>): 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_<sve_fp_op><SVE_FULL_HSF_FMMLA:mode><VNx16QI_ONLY:mode>): New instruction.
|
||
(@aarch64_sve2_<sve_fp_op><VNx4SF_ONLY:mode><VNx8HF_ONLY:mode>): 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 <christophe.lyon@linaro.org>
|
||
|
||
* 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 <jakub@redhat.com>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
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 <smunnangi1@ventanamicro.com>
|
||
Jeff Law <jeffrey.law@oss.qualcomm.com>
|
||
|
||
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 <jeffrey.law@oss.qualcomm.com>
|
||
|
||
* 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 <kvivekananda@nvidia.com>
|
||
|
||
PR gcov-profile/123019
|
||
* auto-profile.cc (auto_profile): Call execute_fixup_cfg.
|
||
|
||
2026-01-09 Kugan Vivekanandarajah <kvivekananda@nvidia.com>
|
||
|
||
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 <jakub@redhat.com>
|
||
|
||
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 <rdapp@ventanamicro.com>
|
||
|
||
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 <qing.zhao@oracle.com>
|
||
|
||
* doc/extend.texi: Update doc to support pointers inside structures.
|
||
|
||
2026-01-08 Olivier Hainque <hainque@adacore.com>
|
||
Alexandre Oliva <oliva@adacore.com>
|
||
|
||
* config.gcc [x86_64-*-*]: Match *abi32 target, default to m32
|
||
abi. Accept 32 or m32 for --with-abi.
|
||
|
||
2026-01-08 Jonathan Wakely <jwakely@redhat.com>
|
||
|
||
* doc/invoke.texi (C++ Dialect Options): Fix typo in
|
||
documentation of -flang-info-module-cmi.
|
||
|
||
2026-01-08 Aleksandar Rakic <aleksandar.rakic@htecgroup.com>
|
||
|
||
* 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 <tglozar@gmail.com>
|
||
|
||
* config/ia64/ia64.cc (MAX_VECT_LEN): Set to 16 from 8.
|
||
|
||
2026-01-08 Robin Dapp <rdapp.gcc@gmail.com>
|
||
|
||
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 <rdsandiford@googlemail.com>
|
||
Richard Biener <rguenther@suse.de>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
PR tree-optimization/123310
|
||
* tree-ssa-sccvn.cc (vn_reference_lookup_3): Properly
|
||
test against unknown offset.
|
||
|
||
2026-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
* tree-vect-stmts.cc (vectorizable_shift): Improve missing
|
||
optab or optab support messages.
|
||
(vectorizable_operation): Likewise.
|
||
|
||
2026-01-08 Stefan Schulze Frielinghaus <stefansf@gcc.gnu.org>
|
||
|
||
* 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_<mode>): Test for volatile
|
||
memory.
|
||
|
||
2026-01-08 Richard Biener <rguenther@suse.de>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
* cse.cc (cse_find_path): Change follow_jumps to bool.
|
||
|
||
2026-01-07 Tomas Glozar <tglozar@gmail.com>
|
||
|
||
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 <cyan@cyano.uk>
|
||
|
||
* config.gcc: limit -lunwind usage by testing if the system
|
||
libunwind is being used.
|
||
|
||
2026-01-07 Xi Ruoyao <xry111@xry111.site>
|
||
|
||
PR target/123320
|
||
* config/loongarch/loongarch.md (<optab><mode>3): Only expand
|
||
using psuedos when can_create_pseudo_p ().
|
||
(addsi3): Likewise.
|
||
|
||
2026-01-07 Andrew MacLeod <amacleod@redhat.com>
|
||
|
||
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 <amacleod@redhat.com>
|
||
|
||
PR tree-optimization/123319
|
||
* value-range.cc (irange::intersect): If there is a bitmask, snap
|
||
subranges after creating them.
|
||
|
||
2026-01-07 Daniel Barboza <daniel.barboza@oss.qualcomm.com>
|
||
|
||
PR tree-optimization/102486
|
||
* match.pd (`popcount (X & -X) -> -X != 0`): New pattern.
|
||
|
||
2026-01-07 Jakub Jelinek <jakub@redhat.com>
|
||
|
||
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 <rearnsha@arm.com>
|
||
|
||
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 <alfie.richards@arm.com>
|
||
|
||
* 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 <alfie.richards@arm.com>
|
||
|
||
* 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 <mjambor@suse.cz>
|
||
|
||
* 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 <mjambor@suse.cz>
|
||
|
||
* 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 <rguenther@suse.de>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
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 <rguenther@suse.de>
|
||
|
||
PR tree-optimization/123316
|
||
* tree-vect-loop.cc (vectorizable_reduction): Detect missing
|
||
PHI patterns for bools.
|
||
|
||
2026-01-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
|
||
|
||
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 <siddhesh@gotplt.org>
|
||
|
||
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 <sebastian.huber@embedded-brains.de>
|
||
|
||
* 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 <jjsuwa_sys3175@yahoo.co.jp>
|
||
|
||
* 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 <tamar.christina@arm.com>
|
||
|
||
PR tree-optimization/122103
|
||
* tree-if-conv.cc (ifcvt_can_predicate): Add check for
|
||
normal builtins.
|
||
|
||
2026-01-06 Richard Ball <Richard.Ball@arm.com>
|
||
|
||
* 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 <Richard.Ball@arm.com>
|
||
|
||
* 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<mode>): New pattern for intrinsic.
|
||
* config/aarch64/iterators.md: New UNSPEC.
|
||
|
||
2026-01-06 Eric Botcazou <ebotcazou@adacore.com>
|
||
|
||
PR target/121192
|
||
* expr.cc (store_constructor) <VECTOR_TYPE>: 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 <ebotcazou@adacore.com>
|
||
|
||
* 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 <jakub@redhat.com>
|
||
Marco Falke <falke.marco@gmail.com>
|
||
|
||
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 <tamar.christina@arm.com>
|
||
|
||
PR tree-optimization/122103
|
||
* tree-vect-stmts.cc (vectorizable_call): Handle trapping math.
|
||
|
||
2026-01-05 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
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 <tamar.christina@arm.com>
|
||
|
||
PR tree-optimization/122103
|
||
* match.pd: Add COND_FMA to COND_FMS rewrite rules.
|
||
|
||
2026-01-05 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
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 <tamar.christina@arm.com>
|
||
|
||
PR tree-optimization/122103
|
||
* gimple.cc (gimple_could_trap_p_1): Handle __builtin_ calls.
|
||
|
||
2026-01-05 Jeff Law <jeffrey.law@oss.qualcomm.com>
|
||
|
||
* 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 <pan2.li@intel.com>
|
||
|
||
PR target/123317
|
||
* config/riscv/autovec-opt.md: Take zero_extend for
|
||
both the vwaddu and vwsubu wx pattern.
|
||
|
||
2026-01-05 Alice Carlotti <alice.carlotti@arm.com>
|
||
|
||
* config/aarch64/aarch64-sme.md
|
||
(aarch64_sme_write_zt): Add TARGET_STREAMING requirement.
|
||
(aarch64_sme_lut_zt): Ditto.
|
||
|
||
2026-01-05 Alice Carlotti <alice.carlotti@arm.com>
|
||
|
||
* doc/invoke.texi: Fix incorrect function name.
|
||
|
||
2026-01-05 Pan Li <pan2.li@intel.com>
|
||
|
||
* tree-vect-slp.cc (vec_slp_has_scalar_use): Adjust the
|
||
depth_limit from 2 to 3.
|
||
|
||
2026-01-05 Tamar Christina <tamar.christina@arm.com>
|
||
|
||
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 <tamar.christina@arm.com>
|
||
|
||
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 <andrew.pinski@oss.qualcomm.com>
|
||
|
||
* configure: Regenerate.
|
||
|
||
2026-01-04 Jeff Law <jeffrey.law@oss.qualcomm.com>
|
||
|
||
* config/riscv/riscv.cc (riscv_conditional_register_usage): Revert
|
||
patch that made VXRM a global register.
|
||
|
||
2026-01-04 Keith Packard <keithp@keithp.com>
|
||
|
||
* 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 <jeffrey.law@oss.qualcomm.com>
|
||
|
||
* doc/contrib.texi: Add Kazumoto & Oleg.
|
||
|
||
2026-01-04 Richard Braun <rbraun@sceen.net>
|
||
|
||
* 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 <kalvisd@gmail.com>
|
||
|
||
* 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 <daniel.barboza@oss.qualcomm.com>
|
||
|
||
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 <jeffrey.law@oss.qualcomm.com>
|
||
|
||
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 <jakub@redhat.com>
|
||
|
||
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 <iain@sandoe.co.uk>
|
||
|
||
* config/aarch64/aarch64-sve-builtins-shapes.cc
|
||
(INCLUDE_ALGORITHM): Define.
|
||
|
||
2026-01-01 Kugan Vivekanandarajah <kvivekananda@nvidia.com>
|
||
|
||
* 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 <jakub@redhat.com>
|
||
|
||
* gcc.cc (process_command): Update copyright notice dates.
|
||
* gcov-dump.cc (print_version): Ditto.
|
||
* gcov.cc (print_version): Ditto.
|
||
* gcov-tool.cc (print_version): Ditto.
|
||
* gengtype.cc (create_file): Ditto.
|
||
* doc/cpp.texi: Bump @copying's copyright year.
|
||
* doc/cppinternals.texi: Ditto.
|
||
* doc/gcc.texi: Ditto.
|
||
* doc/gccint.texi: Ditto.
|
||
* doc/gcov.texi: Ditto.
|
||
* doc/install.texi: Ditto.
|
||
* doc/invoke.texi: Ditto.
|
||
|
||
|
||
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.
|