[PATCH] RISC-V: Move UNSPEC_SSP_SET and UNSPEC_SSP_TEST to correct enum
[gcc.git] / gcc / ChangeLog-2024
blob08ab075bce285db5d6f4f77834adcdaf3db4846b
1 2024-12-31  Jiahao Xu  <xujiahao@loongson.cn>
2             Deng Jianbo  <dengjianbo@loongson.cn>
4         * config/loongarch/simd.md (cbranch<mode>4): New expander.
6 2024-12-31  Robin Dapp  <rdapp.gcc@gmail.com>
8         PR target/118036
9         * varasm.cc (output_constant_pool_2): Use native_encode_rtx for
10         building the memory image of a const vector mask.
12 2024-12-30  Jeff Law  <jlaw@ventanamicro.com>
14         PR target/106544
15         * config/riscv/riscv.cc (riscv_print_operand): Issue an error for
16         invalid operands rather than invalidly accessing INTVAL of an
17         object that is not a CONST_INT.  Fix one error string for 'N'.
19 2024-12-30  Jeff Law  <jlaw@ventanamicro.com>
21         PR target/118122
22         * config/riscv/riscv.md (lui_constraint<X:mode>_and_to_or): Use
23         X iterator rather than ANYI consistently.  Fix formatting.
25 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
26             Saurabh Jha  <saurabh.jha@arm.com>
28         * config/aarch64/aarch64.md (UNSPEC_BSL, UNSPEC_COMBINE, UNSPEC_DUP)
29         (UNSPEC_DUP_LANE, UNSPEC_GET_LANE, UNSPEC_LD1_DUP, UNSPEC_LD1x2)
30         (UNSPEC_LD1x3, UNSPEC_LD1x4, UNSPEC_SET_LANE, UNSPEC_ST1_LANE)
31         (USNEPC_ST1x2, UNSPEC_ST1x3, UNSPEC_ST1x4, UNSPEC_VCREATE)
32         (UNSPEC_VEC_COPY): New unspecs.
33         * config/aarch64/iterators.md (UNSPEC_TBL): Likewise.
34         * config/aarch64/aarch64-simd-pragma-builtins.def: Add definitions
35         of the mf8 data movement intrinsics.
36         * config/aarch64/aarch64-protos.h
37         (aarch64_advsimd_vector_array_mode): Declare.
38         * config/aarch64/aarch64.cc
39         (aarch64_advsimd_vector_array_mode): Make public.
40         * config/aarch64/aarch64-builtins.h (qualifier_const_pointer): New
41         aarch64_type_qualifiers member.
42         * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS)
43         (AARCH64_SIMD_VGET_HIGH_BUILTINS): Add mf8 variants.
44         (aarch64_int_or_fp_type): Handle qualifier_modal_float.
45         (aarch64_num_lanes): New function.
46         (binary_two_lanes, load, load_lane, store, store_lane): New signatures.
47         (unary_lane): Likewise.
48         (simd_type::nunits): New member function.
49         (simd_types): Add pointer types.
50         (aarch64_fntype): Handle the new signatures.
51         (require_immediate_lane_index): Use aarch64_num_lanes.
52         (aarch64_pragma_builtins_checker::check): Handle the new intrinsics.
53         (aarch64_convert_address): (aarch64_dereference_pointer):
54         (aarch64_canonicalize_lane, aarch64_convert_to_lane_mask)
55         (aarch64_pack_into_v128s, aarch64_expand_permute_pair)
56         (aarch64_expand_tbl_tbx): New functions.
57         (aarch64_expand_pragma_builtin): Handle the new intrinsics.
58         (aarch64_force_gimple_val, aarch64_copy_vops, aarch64_fold_to_val)
59         (aarch64_dereference, aarch64_get_lane_bit_index, aarch64_get_lane)
60         (aarch64_set_lane, aarch64_fold_combine, aarch64_fold_load)
61         (aarch64_fold_store, aarch64_ext_index, aarch64_rev_index)
62         (aarch64_trn_index, aarch64_uzp_index, aarch64_zip_index)
63         (aarch64_fold_permute): New functions, some split out from
64         aarch64_general_gimple_fold_builtin.
65         (aarch64_gimple_fold_pragma_builtin): New function.
66         (aarch64_general_gimple_fold_builtin): Use the new functions above.
67         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>)
68         (aarch64_dup_lane_<vswap_width_name><mode>): Add "@" to name.
69         (aarch64_simd_vec_set<mode>): Likewise.
70         (*aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
71         (aarch64_simd_bsl<mode>): Likewise.
72         (aarch64_combine<mode>): Likewise.
73         (aarch64_cm<optab><mode><vczle><vczbe>): Likewise.
74         (aarch64_simd_ld2r<vstruct_elt>): Likewise.
75         (aarch64_vec_load_lanes<mode>_lane<vstruct_elt>): Likewise.
76         (aarch64_simd_ld3r<vstruct_elt>): Likewise.
77         (aarch64_simd_ld4r<vstruct_elt>): Likewise.
78         (aarch64_ld1x3<vstruct_elt>): Likewise.
79         (aarch64_ld1x4<vstruct_elt>): Likewise.
80         (aarch64_st1x2<vstruct_elt>): Likewise.
81         (aarch64_st1x3<vstruct_elt>): Likewise.
82         (aarch64_st1x4<vstruct_elt>): Likewise.
83         (aarch64_ld<nregs><vstruct_elt>): Likewise.
84         (aarch64_ld1<VALL_F16: Likewise.mode>): Likewise.
85         (aarch64_ld1x2<vstruct_elt>): Likewise.
86         (aarch64_ld<nregs>_lane<vstruct_elt>): Likewise.
87         (aarch64_<PERMUTE: Likewise.perm_insn><mode><vczle><vczbe>): Likewise.
88         (aarch64_ext<mode>): Likewise.
89         (aarch64_rev<REVERSE: Likewise.rev_op><mode><vczle><vczbe>): Likewise.
90         (aarch64_st<nregs><vstruct_elt>): Likewise.
91         (aarch64_st<nregs>_lane<vstruct_elt>): Likewise.
92         (aarch64_st1<VALL_F16: Likewise.mode>): Likewise.
94 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
96         * config/aarch64/t-aarch64 (aarch64-builtins.o): Depend on
97         aarch64-simd-pragma-builtins.def.
99 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
101         * config/aarch64/aarch64-builtins.cc (simd_types::f8): Rename to...
102         (simd_types::mf8): ...this.
103         * config/aarch64/aarch64-simd-pragma-builtins.def: Update accordingly.
105 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
107         * config/aarch64/aarch64-builtins.cc (simd_types): Use one macro
108         invocation for each element type.
110 2024-12-30  Richard Sandiford  <richard.sandiford@arm.com>
112         * read-rtl.cc (md_reader::handle_overloaded_name): Don't add
113         arguments for uses of subst attributes.
114         (apply_iterators): Only add instructions to an overloaded helper
115         if they use the default subst iterator values.
116         * doc/md.texi: Update documentation accordingly.
117         * config/i386/i386-expand.cc (expand_vec_perm_broadcast_1): Update
118         accordingly.
120 2024-12-30  kelefth  <konstantinos.eleftheriou@vrull.eu>
122         PR rtl-optimization/117835
123         PR rtl-optimization/117872
124         * avoid-store-forwarding.cc
125         (store_forwarding_analyzer::process_store_forwarding):
126         Zero-extend the value stored in the base register instead of
127         using a paradoxical subreg.
129 2024-12-30  Hans-Peter Nilsson  <hp@bitrange.com>
131         PR target/117618
132         * config/mmix/mmix.cc (mmix_setup_incoming_varargs):
133         Correct handling of C23 (...)-functions.
135 2024-12-30  Lewis Hyatt  <lhyatt@gmail.com>
137         PR tree-optimization/118205
138         * tree-parloops.cc (reduction_phi): Return NULL if PHI parameter is
139         not a phi node.
141 2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
143         PR target/116715
144         * config/riscv/bitmanip.md: Drop bogus pattern.
146 2024-12-29  John David Anglin  <danglin@gcc.gnu.org>
148         PR target/118121
149         * configure.ac: Check for mkstemps declaration.
150         * configure: Regenerate.
151         * config.in: Regenerate.
153 2024-12-29  Jeff Law  <jlaw@ventanamicro.com>
155         PR target/116720
156         * config/riscv/thead.cc (th_mempair_operands_p): Test for
157         aligned memory after swapping operands.  Simplify test for
158         first memory access as well.
160 2024-12-28  Jakub Jelinek  <jakub@redhat.com>
162         PR tree-optimization/118207
163         * gimple-fold.cc (fold_array_ctor_reference): For RAW_DATA_CST,
164         just set val to build_int_cst and fall through to the normal
165         element handling code instead of returning build_int_cst right away.
167 2024-12-28  Gerald Pfeifer  <gerald@pfeifer.com>
169         * doc/install.texi (Specific) <*-ibm-aix*>: Drop verbose
170         references to PTFs for AIX.
172 2024-12-27  Jiahao Xu  <xujiahao@loongson.cn>
174         * config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove.
175         (vec_cmpu<ILASX:mode><mode256_i>): Remove.
176         * config/loongarch/loongarch.cc (loongarch_expand_lsx_cmp):
177         Ensure vector comparison instructions support CMP_OP1.
178         * config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Remove.
179         (vec_cmpu<ILSX:mode><mode_i>): Remove.
180         * config/loongarch/simd.md (ALLVEC, allmode_i): New mode iterators.
181         (vec_cmp<mode><allmode_i>): New define_expand.
182         (vec_cmpu<mode><allmode_i>): Likewise.
184 2024-12-26  John David Anglin  <danglin@gcc.gnu.org>
186         PR target/118050
187         * timevar.cc (get_time): Only use CLOCK_MONOTONIC if
188         '_POSIX_TIMERS > 0 && defined(_POSIX_MONOTONIC_CLOCK)'.
189         Otherise, use CLOCK_REALTIME.
191 2024-12-26  Gerald Pfeifer  <gerald@pfeifer.com>
193         * doc/gm2.texi (Dialect): Move PM4 link to https.
195 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
197         * config/alpha/alpha.cc
198         (alpha_get_mem_rtx_alignment_and_offset): New function.
199         (alpha_expand_block_move, alpha_expand_block_clear): Use it for
200         alignment retrieval.
202 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
204         * config/alpha/alpha.cc (alpha_expand_unaligned_load_words):
205         Move address extraction until after the MEM referred has been
206         adjusted for the offset supplied.
207         (alpha_expand_unaligned_store_words): Likewise.
209 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
211         PR target/115459
212         * config/alpha/alpha.cc (alpha_expand_block_clear): Adjust MEM
213         to match inferred alignment.
215 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
217         * config/alpha/alpha.cc (alpha_expand_block_clear): Fold two
218         legs of a conditional together.
220 2024-12-25  Maciej W. Rozycki  <macro@orcam.me.uk>
222         * config/alpha/alpha.md (insvmisaligndi): Use "reg_or_0_operand"
223         rather than "register_operand" for operand 3.
225 2024-12-25  Jiahao Xu  <xujiahao@loongson.cn>
227         * config/loongarch/loongarch.cc
228         (loongarch_ira_change_pseudo_allocno_class): New function.
229         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define macro.
231 2024-12-23  Gerald Pfeifer  <gerald@pfeifer.com>
233         * doc/invoke.texi (HPPA Options): Remove references
234         to HP-UX 8 and HP-UX 9.
236 2024-12-22  Pan Li  <pan2.li@intel.com>
238         * config/riscv/autovec.md: Align the operand for strided
239         load/store pattern.
241 2024-12-21  Arsen Arsenović  <arsen@aarsen.me>
243         PR middle-end/109224
244         * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Strip
245         DEMANGLE_COMPONENT_TEMPLATE from the operator new and operator
246         after demangling.
248 2024-12-21  Jeff Law  <jlaw@ventanamicro.com>
250         PR middle-end/118084
251         * config/riscv/riscv.cc (generate_reflecting_code_using_brev): Handle
252         sub-word sized objects correctly.
254 2024-12-21  Pan Li  <pan2.li@intel.com>
256         * match.pd: Refactor sorts of signed SAT_ADD match patterns.
258 2024-12-21  Mark Harmstone  <mark@harmstone.com>
260         * vmsdbgout.cc (vmsdbgout_begin_block): Fix compilation error.
262 2024-12-20  Alexandre Oliva  <oliva@adacore.com>
264         PR middle-end/118007
265         * ipa-strub.cc (pass_ipa_strub::execute): Accept indirecting
266         volatile args of pointer types.
268 2024-12-20  Alexandre Oliva  <oliva@adacore.com>
270         PR middle-end/113506
271         * emit-rtl.cc (add_insn_before): Don't set the block of a
272         barrier.
274 2024-12-20  Uros Bizjak  <ubizjak@gmail.com>
276         PR target/118067
277         * config/i386/i386.md (*movdi_internal):
278         Disable alternatives from/to mask registers without AVX512BW.
279         (*movsi_internal): Ditto.
281 2024-12-20  Tamar Christina  <tamar.christina@arm.com>
283         PR target/96342
284         * config/aarch64/aarch64-protos.h
285         (aarch64_sve_expand_vector_init_subvector): New.
286         * config/aarch64/aarch64-sve.md (vec_init<mode><Vhalf>): New.
287         (@aarch64_pack_partial<mode>): New.
288         * config/aarch64/aarch64.cc (aarch64_sve_expand_vector_init_subvector): New.
289         * config/aarch64/iterators.md (SVE_NO2E): New.
290         (VHALF, Vhalf): Add SVE partial vectors.
292 2024-12-20  Tamar Christina  <tamar.christina@arm.com>
293             Victor Do Nascimento  <victor.donascimento@arm.com>
295         PR target/96342
296         * config/aarch64/aarch64-protos.h (add_sve_type_attribute): Declare.
297         * config/aarch64/aarch64-sve-builtins.cc (add_sve_type_attribute): Make
298         visibility global and support use for non_acle types.
299         * config/aarch64/aarch64.cc
300         (aarch64_simd_clone_compute_vecsize_and_simdlen): Create VLA simd clone
301         when no simdlen is provided, according to ABI rules.
302         (simd_clone_adjust_sve_vector_type): New helper function.
303         (aarch64_simd_clone_adjust): Add '+sve' attribute to SVE simd clones
304         and modify types to use SVE types.
305         * omp-simd-clone.cc (simd_clone_mangle): Print 'x' for VLA simdlen.
306         (simd_clone_adjust): Adapt safelen check to be compatible with VLA
307         simdlen.
309 2024-12-20  Christophe Lyon  <christophe.lyon@linaro.org>
311         PR target/118131
312         * config/arm/arm.cc (output_move_neon): Check TARGET_NEON as
313         needed.
314         (arm_attr_length_move_neon): Add support for V2x and V4x MVE tuple
315         modes.
316         * config/arm/iterators.md (VSTRUCT2, VSTRUCT4): New.
317         * config/arm/neon.md: Use VSTRUCT2 instead of OI and VSTRUCT4
318         instead of XI in define_split.
320 2024-12-20  Christoph Müllner  <christoph.muellner@vrull.eu>
322         * tree-ssa-forwprop.cc (get_vect_selector_index_map): Removed.
323         (recognise_vec_perm_simplify_seq): Fix calculation of vec-perm
324         selectors of narrowed sequence.
325         (calc_perm_vec_perm_simplify_seqs): Fixing calculation of
326         vec-perm selectors of the blended sequence.
327         (process_vec_perm_simplify_seq_list): Add whitespace to dump
328         string to avoid bad formatted dump output.
330 2024-12-20  Christoph Müllner  <christoph.muellner@vrull.eu>
332         * common/config/riscv/riscv-common.cc (riscv_get_valid_option_values):
333         Skip adding mtune entries that are already in the list.
335 2024-12-20  Jakub Jelinek  <jakub@redhat.com>
337         PR c++/110345
338         * tree.cc (type_hash_canon_hash): Hash TYPE_REF_IS_RVALUE for
339         REFERENCE_TYPE.
340         (type_cache_hasher::equal): Compare TYPE_REF_IS_RVALUE for
341         REFERENCE_TYPE.
343 2024-12-20  Nathaniel Shead  <nathanieloshead@gmail.com>
345         * doc/invoke.texi: Document -Wtemplate-names-tu-local.
347 2024-12-19  Patrick Palka  <ppalka@redhat.com>
349         PR c++/118069
350         * hwint.h (add_sat_hwi): New function.
351         (mul_sat_hwi): Likewise.
353 2024-12-19  Tobias Burnus  <tburnus@baylibre.com>
355         * omp-general.cc (vendor_properties): Add "nec".
357 2024-12-19  Andrew Carlotti  <andrew.carlotti@arm.com>
359         * tree-assume.cc: Fix comment typos.
361 2024-12-19  Pan Li  <pan2.li@intel.com>
363         PR target/118075
364         * config/riscv/vector.md: Add the (mem:BLK (scratch)) as the
365         lhs of strided store define insn.
367 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
369         * gimple-fold.cc (decode_field_reference): Add psignbit
370         parameter.  Set it if the mask references sign-extending
371         bits.
372         (fold_truth_andor_for_ifcombine): Adjust calls with new
373         variables.  Swap them along with other r?_* variables.  Handle
374         extended sign bit compares with zero.
375         * tree-ssa-ifcombine.cc (ifcombine_ifandif): If bits_test
376         fails in a way that doesn't prevent other ifcombine strategies
377         from passing, give them a try.
379 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
381         * gimple-fold.cc (decode_field_reference): Accept incoming
382         mask.
383         (fold_truth_andor_for_ifcombine): Handle some compares with
384         powers of two, minus 1 or 0, like masked compares with zero.
386 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
388         PR tree-optimization/117915
389         * tree-ssa-ifcombine.cc (ifcombine_mark_ssa_name): Move
390         preconditions from...
391         (ifcombine_mark_ssa_name_walk): ... here.
393 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
395         PR tree-optimization/118046
396         * gimple-fold.cc (decode_field_reference): Don't follow more
397         than one conversion.
399 2024-12-19  Alexandre Oliva  <oliva@adacore.com>
401         * gimple-fold.cc (gimple_convert_def_p): Reject load stmts
402         unless requested.
403         (decode_field_reference): Accept a converting load at the last
404         conversion matcher, subsuming the load identification.
405         (fold_truth_andor_for_ifcombine): Refuse to merge operands
406         when only one of them has an associated load stmt.  Swap
407         operands of one of the compares if that helps them match.
409 2024-12-18  Eric Botcazou  <ebotcazou@adacore.com>
411         PR target/118096
412         * config/sparc/predicates.md (vec_cmp_operator): New predicate.
413         (vec_cmpu_operator): Likewise.
414         * config/sparc/sparc.md (vec_cmp<FPCMP:mode><P:mode>): Use the
415         vec_cmp_operator predicate instead of FAILing the expansion.
416         (vec_cmpu<FPCMP:mode><P:mode>): Likewise for vec_cmpu_operator.
418 2024-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
420         PR rtl-optimization/117248
421         * lra-lives.cc (process_bb_lives): Update conflict hard regs even
422         when clobber hard reg is not marked as dead.
424 2024-12-18  Michal Jires  <mjires@suse.cz>
426         * lto-cgraph.cc (lto_symtab_encoder_delete_node):
427         Declare var later when initialized.
428         * lto-streamer.h (struct lto_encoder_entry):
429         Remove empty constructor.
431 2024-12-18  Vladimir N. Makarov  <vmakarov@redhat.com>
433         Revert:
434         2024-12-06  Vladimir N. Makarov  <vmakarov@redhat.com>
436         PR rtl-optimization/117248
437         * lra-lives.cc (start_living, start_dying): Remove.
438         (insn_regnos, out_insn_regnos, insn_regnos_live_after): New.
439         (sparseset_contains_pseudos_p): Remove.
440         (make_hard_regno_live, make_hard_regno_dead): Return true if
441         something in liveness is changed.
442         (mark_pseudo_live,  mark_pseudo_dead): Ditto.
443         (mark_regno_live, mark_regno_dead): Ditto.
444         (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead
445         of dead_set.
446         (process_bb_lives): Rewrite dealing with reg notes.  Update
447         conflict hard regs even when clobber hard reg is not marked as
448         dead.
449         (lra_create_live_ranges_1): Add initialization/finalization of
450         insn_regnos, out_insn_regnos, insn_regnos_live_after.
452 2024-12-18  Michal Jires  <mjires@suse.cz>
454         * ipa-devirt.cc (ipa_odr_summary_write):
455         Add unused argument.
456         * ipa-fnsummary.cc (ipa_fn_summary_write): Likewise.
457         * ipa-icf.cc (sem_item_optimizer::write_summary): Likewise.
458         * ipa-modref.cc (modref_write): Likewise.
459         * ipa-prop.cc (ipa_prop_write_jump_functions): Likewise.
460         (ipcp_write_transformation_summaries): Likewise.
461         * ipa-sra.cc (ipa_sra_write_summary): Likewise.
462         * lto-cgraph.cc (lto_symtab_encoder_delete): Delete remap.
463         (lto_output_node): Remap order.
464         (lto_output_varpool_node): Likewise.
465         (output_cgraph_opt_summary): Add unused argument.
466         * lto-streamer-out.cc (produce_symbol_asm): Renamed. Use remapped order.
467         (produce_asm): Rename. New wrapper.
468         (output_function): Propagate remapped order.
469         (output_constructor): Likewise.
470         (copy_function_or_variable): Likewise.
471         (cmp_int): New.
472         (create_order_remap): New.
473         (lto_output): Create remap. Remap order.
474         * lto-streamer.h (struct lto_symtab_encoder_d): Remap hash_map.
475         (produce_asm): Add order argument.
477 2024-12-18  Michal Jires  <mjires@suse.cz>
479         * cgraph.h (symbol_table::register_symbol):
480         Order can be already set.
481         * cgraphclones.cc (cgraph_node::create_clone):
482         Reuse order for clones.
484 2024-12-18  Michal Jires  <mjires@suse.cz>
486         * ipa-strub.cc (ipa_strub_set_mode_for_new_functions): Replace
487         order with uid.
488         (pass_ipa_strub_mode::execute): Likewise.
490 2024-12-18  Michal Jires  <mjires@suse.cz>
492         * Makefile.in: Add lto-ltrans-cache.o.
493         * common.opt: New flags for configuring cache.
494         * lto-opts.cc (lto_write_options): Don't stream the flags.
495         * lto-wrapper.cc: Use ltrans cache.
496         * lto-ltrans-cache.cc: New file.
497         * lto-ltrans-cache.h: New file.
499 2024-12-18  Michal Jires  <mjires@suse.cz>
501         * Makefile.in: Add lockfile.o.
502         * lockfile.cc: New file.
503         * lockfile.h: New file.
505 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
507         Revert:
508         2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
509                     Matthew Malcolmson  <mmalcolmson@nvidia.com>
511         PR driver/81358
512         * common.opt: New option -flink-libatomic.
513         * gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
514         * config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use
515         LINK_LIBATOMIC_SPEC.
516         * doc/invoke.texi: Document -flink-libatomic.
517         * configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
518         * configure: Regenerate.
519         * config.in: Regenerate.
521 2024-12-18  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
523         * config/arm/thumb1.md (thumb1_cbz): Escape the semicolon.
525 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
527         PR tree-optimization/118081
528         * gimple-fold.cc (decode_field_reference): Only set *xor_p to true
529         if *xor_cmp_op is integer_zerop.
531 2024-12-18  Prathamesh Kulkarni  <prathameshk@nvidia.com>
532             Matthew Malcolmson  <mmalcolmson@nvidia.com>
534         PR driver/81358
535         * common.opt: New option -flink-libatomic.
536         * gcc.cc (LINK_LIBATOMIC_SPEC): New macro.
537         * config/gnu-user.h (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Use
538         LINK_LIBATOMIC_SPEC.
539         * doc/invoke.texi: Document -flink-libatomic.
540         * configure.ac: Define TARGET_PROVIDES_LIBATOMIC.
541         * configure: Regenerate.
542         * config.in: Regenerate.
544 2024-12-18  Tobias Burnus  <tburnus@baylibre.com>
546         * gimplify.cc (gimplify_call_expr): Update for OpenMP's
547         append_args; cleanup of OpenMP's dispatch clause handling.
549 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
551         PR c/41045
552         * stmt.cc (parse_output_constraint, parse_input_constraint): Handle
553         - modifier.
554         * recog.h (raw_constraint_p): Declare.
555         * recog.cc (raw_constraint_p): New variable.
556         (asm_operand_ok, constrain_operands): Handle - modifier.
557         * common.md (i, s, n): For raw_constraint_p don't require
558         LEGITIMATE_PIC_OPERAND_P.
559         * doc/md.texi: Document - constraint modifier.
561 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
563         * final.cc (output_asm_insn): Add support for cc operand modifier.
564         * doc/extend.texi (Generic Operand Modifiers): Document cc operand
565         modifier.
566         * doc/md.texi (@samp{:} in constraint): Mention the cc operand
567         modifier and add small example.
569 2024-12-18  Jakub Jelinek  <jakub@redhat.com>
571         * genpreds.cc (mangle): Add ':' mangling.
572         (add_constraint): Allow : constraint.
573         * common.md (:): New define_constraint.
574         * stmt.cc (parse_output_constraint): Diagnose "=:".
575         (parse_input_constraint): Handle ":" and diagnose invalid
576         uses.
577         * doc/md.texi (Simple Constraints): Document ":" constraint.
579 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
581         * config/loongarch/loongarch.md (*crc_combine): New
582         define_insn_and_split.
584 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
586         * config/loongarch/loongarch.md (crc_rev<mode:SUBDI>si4): New
587         define_expand.
589 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
591         * config/loongarch/loongarch.md (@rbit<mode:GPR>): New
592         define_insn template.
593         (rbitsi_extended): New define_insn.
594         (rbitqi): New define_insn.
595         (rbithi): New define_expand.
597 2024-12-18  Xi Ruoyao  <xry111@xry111.site>
599         * config/loongarch/loongarch.md (QHSD): Remove.
600         (loongarch_<crc>_w_<size>_w): Use QHSD instead of QHWD.
601         (loongarch_<crc>_w_<size>_w_extended): Likewise.
603 2024-12-18  Sandra Loosemore  <sloosemore@baylibre.com>
605         * doc/extend.texi (OpenACC): Fix paste-o.
607 2024-12-17  Sandra Loosemore  <sloosemore@baylibre.com>
609         PR c/26154
610         * common.opt.urls: Regenerated.
611         * doc/extend.texi (C Extensions): Adjust menu for new sections.
612         (Attribute Syntax): Mention OpenMP directives.
613         (Pragmas): Mention OpenMP and OpenACC directives.
614         (OpenMP): New section.
615         (OpenACC): New section.
616         * doc/invoke.texi (Invoking GCC): Adjust menu for new section.
617         (Option Summary): Move OpenMP and OpenACC options to their own
618         category.
619         (C Dialect Options): Move documentation for -foffload, -fopenacc,
620         -fopenacc-dim, -fopenmp, -fopenmd-simd, and
621         -fopenmp-target-simd-clone to...
622         (OpenMP and OpenACC Options): ...this new section.  Light
623         copy-editing of the option descriptions.
625 2024-12-17  Richard Biener  <rguenther@suse.de>
627         PR middle-end/118062
628         * tree-vect-generic.cc (expand_vector_piecewise): Properly
629         compute delta.
631 2024-12-17  Oliver Kozul  <Oliver.Kozul@rt-rk.com>
633         * config/riscv/riscv.md (*lui_constraint<ANYI:mode>_and_to_or): New pattern
635 2024-12-17  Yangyu Chen  <cyy@cyyself.name>
637         * common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Remove svvptc.
639 2024-12-17  Anton Blanchard  <antonb@tenstorrent.com>
641         * config/riscv/riscv-cores.def: Add tt-ascalon-d8.
642         * config/riscv/riscv.cc (tt_ascalon_d8_tune_info): New.
643         * doc/invoke.texi (RISC-V): Add tt-ascalon-d8 to -mcpu.
645 2024-12-17  Anton Blanchard  <antonb@tenstorrent.com>
647         * doc/invoke.texi (RISC-V): Add thead-c906, xiangshan-nanhu to
648         -mcpu, add generic-ooo and remove thead-c906 from -mtune.
650 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
652         * config/riscv/constraints.md (R): New constraint.
653         * doc/md.texi: Document new constraint `R`.
655 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
657         * config/riscv/riscv.cc (riscv_print_operand): Add N.
658         * doc/extend.texi: Document for N,
660 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
662         * config/riscv/corev.md (*cv_branch<mode>): Update modifier.
663         (*branch<mode>): Ditto.
664         * config/riscv/riscv.cc (riscv_print_operand): Update modifier.
665         * config/riscv/riscv.md (*branch<mode>): Update modifier.
667 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
669         * config/riscv/constraints.md (cr): New.
670         (cf): New.
671         * config/riscv/riscv.h (reg_class): Add RVC_GR_REGS and
672         RVC_FP_REGS.
673         (REG_CLASS_NAMES): Ditto.
674         (REG_CLASS_CONTENTS): Ditto.
675         * doc/md.texi: Document cr and cf constraint.
676         * config/riscv/riscv.cc (riscv_regno_to_class): Update
677         FP_REGS to RVC_FP_REGS since it smaller set.
678         (riscv_secondary_memory_needed): Handle RVC_FP_REGS.
679         (riscv_register_move_cost): Ditto.
681 2024-12-17  Kito Cheng  <kito.cheng@sifive.com>
683         * config/riscv/constraints.md (c01): Rename to...
684         (k01): ...this.
685         (c02): Rename to...
686         (k02): ...this.
687         (c03): Rename to...
688         (k03): ...this.
689         (c04): Rename to...
690         (k04): ...this.
691         (c08): Rename to...
692         (k08): ...this.
693         * config/riscv/corev.md (riscv_cv_simd_add_h_si): Update
694         constraints.
695         (riscv_cv_simd_sub_h_si): Ditto.
696         (riscv_cv_simd_cplxmul_i_si): Ditto.
697         (riscv_cv_simd_subrotmj_si): Ditto.
698         * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Update
699         constraints.
700         * config/riscv/vector-iterators.md (stride_load_constraint):
701         Update constraints.
702         (stride_store_constraint): Ditto.
704 2024-12-17  Martin Jambor  <mjambor@suse.cz>
706         * cgraph.h (symtab_node): Add a new overload of nonzero_address.
707         * symtab.cc (symtab_node::nonzero_address): Add a new overload whith a
708         parameter for delete_null_pointer_checks.  Make the original overload
709         call the new one which has retains the actual implementation.
710         * ipa-prop.h (ipa_get_range_from_ip_invariant): Declare.
711         (ipa_range_set_and_normalize): Remove.
712         * ipa-prop.cc (ipa_get_range_from_ip_invariant): New function.
713         (ipa_range_set_and_normalize): Remove.
714         * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): Add a new parameter
715         context_node. Use ipa_get_range_from_ip_invariant instead of
716         ipa_range_set_and_normalize and pass to it the new parameter.
717         (ipa_value_range_from_jfunc): Pass cs->caller as the context_node to
718         ipa_vr_intersect_with_arith_jfunc.
719         (propagate_vr_across_jump_function): Likewise.
720         (ipa_get_range_from_ip_invariant): New function.
721         * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Use
722         ipa_get_range_from_ip_invariant instead of ipa_range_set_and_normalize
724 2024-12-17  Martin Jambor  <mjambor@suse.cz>
726         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Try harder to
727         use the value range obtained from ranger for pointer values.
729 2024-12-17  Martin Jambor  <mjambor@suse.cz>
731         * ipa-prop.cc: Include vr-values.h.
732         (skip_a_safe_conversion_op): New function.
733         (ipa_compute_jump_functions_for_edge): Use it.
735 2024-12-16  Uros Bizjak  <ubizjak@gmail.com>
737         * config/i386/mmx.md: Fix tabs vs. spaces.
739 2024-12-16  Uros Bizjak  <ubizjak@gmail.com>
741         * config/i386/i386.cc (ix86_hard_regno_mode_ok):
742         Remove explicit HImode handling for SSE2 XMM regnos.
743         * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HImode.
745 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
747         * libsarifreplay.cc (struct embedded_link): New.
748         (maybe_consume_embedded_link): New.
749         (sarif_replayer::make_plain_text_within_result_message): Handle
750         embedded links by using the link text, for now.
752 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
754         * doc/libgdiagnostics/topics/logical-locations.rst
755         (diagnostic_manager_new_logical_location): Add note about repeated
756         calls.
757         * libgdiagnostics.cc: Define INCLUDE_MAP.
758         (class owned_nullable_string): Add copy ctor and move ctor.
759         (owned_nullable_string::operator<): New.
760         (diagnostic_logical_location::operator<): New.
761         (diagnostic_manager::new_logical_location): Use m_logical_locs to
762         "uniquify" instances, converting it to a std::map.
763         (diagnostic_manager::logical_locs_map_t): New typedef.
764         (diagnostic_manager::t m_logical_locs): Convert from a std::vector
765         to a std::map.
766         (diagnostic_execution_path::same_function_p): Update comment.
768 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
770         PR sarif-replay/117943
771         * doc/libgdiagnostics/topics/physical-locations.rst
772         (diagnostic_manager_new_file): Drop "const" from return type.
773         * doc/libgdiagnostics/tutorial/02-physical-locations.rst: Drop
774         "const" from "main_file" decl.
775         * input.cc (file_cache::add_buffered_content): New.
776         (file_cache_slot::set_content): New.
777         (file_cache_slot::dump): Use m_file_path being null rather than
778         m_fp to determine empty slots.  Dump m_fp.
779         (find_end_of_line): Drop "const" from return type and param.  Add
780         forward decl.
781         (file_cache_slot::get_next_line): Fix "const"-ness.
782         (selftest::test_reading_source_buffer): New.
783         (selftest::input_cc_tests): Call it.
784         * input.h (file_cache::add_buffered_content): New decl.
785         * libgdiagnostics++.h (class file): Drop const-ness from m_inner.
786         (file::set_buffered_content): New.
787         * libgdiagnostics.cc (class content_buffer): New.
788         (diagnostic_file::diagnostic_file): Add "mgr" param.
789         (diagnostic_file::get_content): New.
790         (diagnostic_file::set_buffered_content): New.
791         (diagnostic_file::m_mgr): New.
792         (diagnostic_file::m_content): New.
793         (diagnostic_manager::new_file): Drop const-ness.  Pass *this to
794         ctor.
795         (diagnostic_file::set_buffered_content): New.
796         (diagnostic_manager_new_file): Drop "const" from return type.
797         (diagnostic_file_set_buffered_content): New entrypoint.
798         (diagnostic_manager_debug_dump_file): Dump the content size,
799         if any.
800         * libgdiagnostics.h (diagnostic_manager_new_file): Drop "const"
801         from return type.
802         (diagnostic_file_set_buffered_content): New decl.
803         * libgdiagnostics.map (diagnostic_file_set_buffered_content): New
804         symbol.
805         * libsarifreplay.cc (sarif_replayer::m_artifacts_arr): Convert
806         from json::value to json::array.
807         (sarif_replayer::handle_run_obj): Call handle_artifact_obj
808         on all artifacts.
809         (sarif_replayer::handle_artifact_obj): New.
811 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
813         PR sarif-replay/117943
814         * diagnostic-format-text.cc
815         (diagnostic_text_output_format::append_note): Use source-printing
816         options from text_output.
817         (diagnostic_text_output_format::update_printer): Copy
818         source-printing options from dc.
819         (default_diagnostic_text_finalizer): Use source-printing
820         options from text_output.
821         * diagnostic-format-text.h
822         (diagnostic_text_output_format::diagnostic_text_output_format):
823         Add optional diagnostic_source_printing_options param, using
824         the context's if null.
825         (diagnostic_text_output_format::get_source_printing_options): New
826         accessor.
827         (diagnostic_text_output_format::m_source_printing): New field.
828         * diagnostic-path.cc (event_range::print): Use source-printing
829         options from text_output.
830         (selftest::test_interprocedural_path_1): Use source-printing
831         options from dc.
832         * diagnostic-show-locus.cc
833         (gcc_rich_location::add_location_if_nearby): Likewise.
834         (diagnostic_context::maybe_show_locus): Add "opts" param
835         and use in place of m_source_printing.  Pass it to source_policy
836         ctor.
837         (diagnostic_source_print_policy::diagnostic_source_print_policy):
838         Add overload taking a const diagnostic_source_printing_options &.
839         * diagnostic.cc (diagnostic_context::initialize): Pass nullptr
840         for source options when creating text sink, so that it uses
841         the dc's options.
842         (diagnostic_context::dump): Add an "output sinks:" heading and
843         print "(none)" if there aren't any.
844         (diagnostic_context::set_output_format): Split out code into...
845         (diagnostic_context::remove_all_output_sinks): ...this new
846         function.
847         * diagnostic.h
848         (diagnostic_source_print_policy::diagnostic_source_print_policy):
849         Add overload taking a const diagnostic_source_printing_options &.
850         (diagnostic_context::maybe_show_locus): Add "opts" param.
851         (diagnostic_context::remove_all_output_sinks): New decl.
852         (diagnostic_context::m_source_printing): New field.
853         (diagnostic_show_locus): Add "opts" param and pass to
854         maybe_show_locus.
855         * libgdiagnostics.cc (sink::~sink): Delete.
856         (sink::begin_group): Delete.
857         (sink::end_group): Delete.
858         (sink::emit): Delete.
859         (sink::m_dc): Drop field.
860         (diagnostic_text_sink::on_begin_text_diagnostic): Delete.
861         (diagnostic_text_sink::get_source_printing_options): Use
862         m_souece_printing.
863         (diagnostic_text_sink::m_current_logical_loc): Drop field.
864         (diagnostic_text_sink::m_inner_sink): New field.
865         (diagnostic_text_sink::m_source_printing): New field.
866         (diagnostic_manager::diagnostic_manager): Update for changes
867         to fields.  Initialize m_dc.
868         (diagnostic_manager::~diagnostic_manager): Call diagnostic_finish.
869         (diagnostic_manager::get_file_cache): Drop.
870         (diagnostic_manager::get_dc): New accessor.
871         (diagnostic_manager::begin_group): Reimplement.
872         (diagnostic_manager::end_group): Reimplement.
873         (diagnostic_manager::get_prev_diag_logical_loc): New accessor.
874         (diagnostic_manager::m_dc): New field.
875         (diagnostic_manager::m_file_cache): Drop field.
876         (diagnostic_manager::m_edit_context): Convert to a std::unique_ptr
877         so that object can be constructed after m_dc is initialized.
878         (diagnostic_manager::m_prev_diag_logical_loc): New field.
879         (diagnostic_text_sink::diagnostic_text_sink): Reimplement.
880         (get_color_rule): Delete.
881         (diagnostic_text_sink::set_colorize): Reimplement.
882         (diagnostic_text_sink::text_starter): New.
883         (sarif_sink::sarif_sink): Reimplement.
884         (diagnostic_manager::write_patch): Update for change to
885         m_edit_context.
886         (diagnostic_manager::emit): Update now that each sink has a
887         corresponding diagnostic_output_format object within m_dc.
889 2024-12-16  David Malcolm  <dmalcolm@redhat.com>
891         * diagnostic.cc (diagnostic_context::dump): Dump m_file_cache.
892         * input.cc (file_cache_slot::dump): New decls and implementations.
893         (file_cache::dump): New.
894         * input.h (file_cache::dump): New decl.
896 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
898         * doc/md.texi: Add "3" suffix.
900 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
902         PR target/112694
903         PR target/116611.
904         * config/riscv/riscv-v.cc (expand_vec_perm_const): Remove early
905         return.
906         * tree-vect-slp.cc (can_duplicate_and_interleave_p): Return
907         false when we cannot create sub-elements.
909 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
911         PR target/117383
912         * config/riscv/riscv-protos.h (enum insn_type): Use TU policy.
913         * config/riscv/riscv-v.cc (shuffle_compress_patterns): Set VL.
915 2024-12-16  Robin Dapp  <rdapp@ventanamicro.com>
917         PR target/118019
918         * config/riscv/riscv.cc (riscv_builtin_vectorization_cost):
919         Increase vec_construct cost.
921 2024-12-16  Mark Harmstone  <mark@harmstone.com>
923         * dwarf2codeview.cc (write_s_frameproc): Align output.
924         (write_s_inlinesite): Align output.
926 2024-12-15  John David Anglin  <danglin@gcc.gnu.org>
928         PR target/118018
929         * config/pa/pa.cc (pa_frame_pointer_required): Declare and
930         implement.
931         (TARGET_FRAME_POINTER_REQUIRED): Define.
933 2024-12-15  Tamar Christina  <tamar.christina@arm.com>
935         * config/arm/arm-mve-builtins-base.cc (expand): Initialize new_base.
937 2024-12-15  Jakub Jelinek  <jakub@redhat.com>
939         * tree-core.h (struct tree_exp): Remove condition_uid member.
940         * tree.h (SET_EXPR_UID, EXPR_COND_UID): Remove.
941         * gimplify.cc (nextuid): Rename to ...
942         (nextconduid): ... this.
943         (cond_uids): New static variable.
944         (next_cond_uid, reset_cond_uid): Adjust for the renaming,
945         formatting fix.
946         (tree_associate_condition_with_expr): New function.
947         (shortcut_cond_r, tag_shortcut_cond, shortcut_cond_expr): Use it
948         instead of SET_EXPR_UID.
949         (gimplify_cond_expr): Look up cond_uid in cond_uids hash map if
950         non-NULL instead of using EXPR_COND_UID.
951         (gimplify_function_tree): Delete cond_uids and set it to NULL.
953 2024-12-14  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
955         * match.pd: New pattern.
956         * simplify-rtx.cc (match_plus_neg_pattern): New helper function.
957         (simplify_context::simplify_binary_operation_1): New
958         code to handle (a - 1) & -a, (a - 1) | -a and (a - 1) ^ -a.
960 2024-12-14  Jose E. Marchesi  <jose.marchesi@oracle.com>
962         * config/bpf/bpf.cc (bpf_resolve_overloaded_builtin): Add argument
963         `complain'.
965 2024-12-14  Heiko Eißfeldt  <heiko@hexco.de>
967         * doc/install.texi (Configuration): Fix typos in documentation
968         for --enable-host-pie.
970 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
972         PR tree-optimization/118023
973         * gimple-fold.cc (decode_field_reference): Return NULL_TREE if
974         inner has non-type_has_mode_precision_p integral type.
976 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
978         PR middle-end/118024
979         * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Walk malloc
980         attributes of alloc_decl and dealloc_decl in separate loops rather
981         than in lock-step.  Use common_deallocs.contains rather than
982         common_deallocs.add in the second loop.
984 2024-12-14  Jakub Jelinek  <jakub@redhat.com>
986         PR c/118011
987         * opts.cc (init_options_struct): Don't set opts->x_flag_short_enums to
988         2.
989         * toplev.cc (process_options): Test !OPTION_SET_P (flag_short_enums)
990         rather than flag_short_enums == 2.
992 2024-12-13  Jakub Jelinek  <jakub@redhat.com>
994         PR rtl-optimization/117095
995         * cse.cc (cse_extended_basic_block): Don't call record_jump_equiv
996         if multiple_sets (insn).
998 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
999             Jakub Jelinek  <jakub@redhat.com>
1001         PR target/114801
1002         * config/arm/arm-mve-builtins.cc
1003         (function_expander::add_input_operand): Handle CONST_INT
1004         predicates.
1006 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1008         * config/arm/arm-mve-builtins-base.cc (class vst24_impl): New.
1009         (class vld24_impl): New.
1010         (vld2q, vld4q, vst2q, vst4q): New.
1011         * config/arm/arm-mve-builtins-base.def (vld2q, vld4q, vst2q)
1012         (vst4q): New.
1013         * config/arm/arm-mve-builtins-base.h (vld2q, vld4q, vst2q, vst4q):
1014         New.
1015         * config/arm/arm-mve-builtins.cc (register_builtin_tuple_types):
1016         Add more asserts.
1017         * config/arm/arm.cc (TARGET_ARRAY_MODE): New.
1018         (output_move_neon): Handle MVE struct modes.
1019         (arm_print_operand_address): Likewise.
1020         (arm_hard_regno_mode_ok): Likewise.
1021         (arm_array_mode): New.
1022         * config/arm/arm.h (VALID_MVE_STRUCT_MODE): Likewise.
1023         * config/arm/arm_mve.h (vst4q): Delete.
1024         (vst2q): Delete.
1025         (vld2q): Delete.
1026         (vld4q): Delete.
1027         (vst4q_s8): Delete.
1028         (vst4q_s16): Delete.
1029         (vst4q_s32): Delete.
1030         (vst4q_u8): Delete.
1031         (vst4q_u16): Delete.
1032         (vst4q_u32): Delete.
1033         (vst4q_f16): Delete.
1034         (vst4q_f32): Delete.
1035         (vst2q_s8): Delete.
1036         (vst2q_u8): Delete.
1037         (vld2q_s8): Delete.
1038         (vld2q_u8): Delete.
1039         (vld4q_s8): Delete.
1040         (vld4q_u8): Delete.
1041         (vst2q_s16): Delete.
1042         (vst2q_u16): Delete.
1043         (vld2q_s16): Delete.
1044         (vld2q_u16): Delete.
1045         (vld4q_s16): Delete.
1046         (vld4q_u16): Delete.
1047         (vst2q_s32): Delete.
1048         (vst2q_u32): Delete.
1049         (vld2q_s32): Delete.
1050         (vld2q_u32): Delete.
1051         (vld4q_s32): Delete.
1052         (vld4q_u32): Delete.
1053         (vld4q_f16): Delete.
1054         (vld2q_f16): Delete.
1055         (vst2q_f16): Delete.
1056         (vld4q_f32): Delete.
1057         (vld2q_f32): Delete.
1058         (vst2q_f32): Delete.
1059         (__arm_vst4q_s8): Delete.
1060         (__arm_vst4q_s16): Delete.
1061         (__arm_vst4q_s32): Delete.
1062         (__arm_vst4q_u8): Delete.
1063         (__arm_vst4q_u16): Delete.
1064         (__arm_vst4q_u32): Delete.
1065         (__arm_vst2q_s8): Delete.
1066         (__arm_vst2q_u8): Delete.
1067         (__arm_vld2q_s8): Delete.
1068         (__arm_vld2q_u8): Delete.
1069         (__arm_vld4q_s8): Delete.
1070         (__arm_vld4q_u8): Delete.
1071         (__arm_vst2q_s16): Delete.
1072         (__arm_vst2q_u16): Delete.
1073         (__arm_vld2q_s16): Delete.
1074         (__arm_vld2q_u16): Delete.
1075         (__arm_vld4q_s16): Delete.
1076         (__arm_vld4q_u16): Delete.
1077         (__arm_vst2q_s32): Delete.
1078         (__arm_vst2q_u32): Delete.
1079         (__arm_vld2q_s32): Delete.
1080         (__arm_vld2q_u32): Delete.
1081         (__arm_vld4q_s32): Delete.
1082         (__arm_vld4q_u32): Delete.
1083         (__arm_vst4q_f16): Delete.
1084         (__arm_vst4q_f32): Delete.
1085         (__arm_vld4q_f16): Delete.
1086         (__arm_vld2q_f16): Delete.
1087         (__arm_vst2q_f16): Delete.
1088         (__arm_vld4q_f32): Delete.
1089         (__arm_vld2q_f32): Delete.
1090         (__arm_vst2q_f32): Delete.
1091         (__arm_vst4q): Delete.
1092         (__arm_vst2q): Delete.
1093         (__arm_vld2q): Delete.
1094         (__arm_vld4q): Delete.
1095         * config/arm/arm_mve_builtins.def (vst4q, vst2q, vld4q, vld2q):
1096         Delete.
1097         * config/arm/iterators.md (VSTRUCT): Add V2x16QI, V2x8HI, V2x4SI,
1098         V2x8HF, V2x4SF, V4x16QI, V4x8HI, V4x4SI, V4x8HF, V4x4SF.
1099         (MVE_VLD2_VST2, MVE_vld2_vst2, MVE_VLD4_VST4, MVE_vld4_vst4): New.
1100         * config/arm/mve.md (mve_vst4q<mode>): Update into ...
1101         (@mve_vst4q<mode>): ... this.
1102         (mve_vst2q<mode>): Update into ...
1103         (@mve_vst2q<mode>): ... this.
1104         (mve_vld2q<mode>): Update into ...
1105         (@mve_vld2q<mode>): ... this.
1106         (mve_vld4q<mode>): Update into ...
1107         (@mve_vld4q<mode>): ... this.
1108         * config/arm/vec-common.md (vec_load_lanesoi<mode>) Remove MVE
1109         support.
1110         (vec_load_lanesxi<mode>): Likewise.
1111         (vec_store_lanesoi<mode>): Likewise.
1112         (vec_store_lanesxi<mode>): Likewise.
1113         (vec_load_lanes<MVE_vld2_vst2><mode>):
1114         New.
1115         (vec_store_lanes<MVE_vld2_vst2><mode>): New.
1116         (vec_load_lanes<MVE_vld4_vst4><mode>): New.
1117         (vec_store_lanes<MVE_vld4_vst4><mode>): New.
1119 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1121         * config/arm/arm-mve-builtins-shapes.cc (struct store_def): Add
1122         support for tuples.
1124 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1126         * config/arm/arm-mve-builtins-shapes.cc (parse_type): Fix access
1127         to acle_vector_types.
1128         * config/arm/arm-mve-builtins.cc (wrap_type_in_struct): New.
1129         (register_type_decl): New.
1130         (register_builtin_tuple_types): Fix support for tuples.
1131         (function_resolver::infer_tuple_type): New.
1132         * config/arm/arm-mve-builtins.h
1133         (function_resolver::infer_tuple_type): Declare.
1134         (function_instance::tuple_type): Fix access to acle_vector_types.
1136 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1138         * config/arm/arm-modes.def (MVE_STRUCT_MODES): New.
1140 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1142         * config/arm/iterators.md (MVE_vecs): Remove V2DF.
1144 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1146         * config/arm/mve.md (mve_vec_extract_sext_internal): Fix
1147         condition.
1148         (mve_vec_extract_zext_internal): Likewise.
1150 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1152         * config/arm/arm-mve-builtins-base.cc (vstrq_impl): Remove
1153         call_properties.
1154         (vldrq_impl): Likewise.
1156 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1158         * config/arm/arm-builtins.cc (arm_ldrgbwbxu_qualifiers)
1159         (arm_ldrgbwbxu_z_qualifiers, arm_ldrgbwbs_qualifiers)
1160         (arm_ldrgbwbu_qualifiers, arm_ldrgbwbs_z_qualifiers)
1161         (arm_ldrgbwbu_z_qualifiers): Delete.
1162         * config/arm/arm-mve-builtins-base.cc (vldrq_gather_base_impl):
1163         Add support for MODE_wb.
1164         * config/arm/arm-mve-builtins-shapes.cc (struct
1165         load_gather_base_def): Likewise.
1166         * config/arm/arm_mve.h (vldrdq_gather_base_wb_s64): Delete.
1167         (vldrdq_gather_base_wb_u64): Delete.
1168         (vldrdq_gather_base_wb_z_s64): Delete.
1169         (vldrdq_gather_base_wb_z_u64): Delete.
1170         (vldrwq_gather_base_wb_f32): Delete.
1171         (vldrwq_gather_base_wb_s32): Delete.
1172         (vldrwq_gather_base_wb_u32): Delete.
1173         (vldrwq_gather_base_wb_z_f32): Delete.
1174         (vldrwq_gather_base_wb_z_s32): Delete.
1175         (vldrwq_gather_base_wb_z_u32): Delete.
1176         (__arm_vldrdq_gather_base_wb_s64): Delete.
1177         (__arm_vldrdq_gather_base_wb_u64): Delete.
1178         (__arm_vldrdq_gather_base_wb_z_s64): Delete.
1179         (__arm_vldrdq_gather_base_wb_z_u64): Delete.
1180         (__arm_vldrwq_gather_base_wb_s32): Delete.
1181         (__arm_vldrwq_gather_base_wb_u32): Delete.
1182         (__arm_vldrwq_gather_base_wb_z_s32): Delete.
1183         (__arm_vldrwq_gather_base_wb_z_u32): Delete.
1184         (__arm_vldrwq_gather_base_wb_f32): Delete.
1185         (__arm_vldrwq_gather_base_wb_z_f32): Delete.
1186         * config/arm/arm_mve_builtins.def (vldrwq_gather_base_nowb_z_u)
1187         (vldrdq_gather_base_nowb_z_u, vldrwq_gather_base_nowb_u)
1188         (vldrdq_gather_base_nowb_u, vldrwq_gather_base_nowb_z_s)
1189         (vldrwq_gather_base_nowb_z_f, vldrdq_gather_base_nowb_z_s)
1190         (vldrwq_gather_base_nowb_s, vldrwq_gather_base_nowb_f)
1191         (vldrdq_gather_base_nowb_s, vldrdq_gather_base_wb_z_s)
1192         (vldrdq_gather_base_wb_z_u, vldrdq_gather_base_wb_s)
1193         (vldrdq_gather_base_wb_u, vldrwq_gather_base_wb_z_s)
1194         (vldrwq_gather_base_wb_z_f, vldrwq_gather_base_wb_z_u)
1195         (vldrwq_gather_base_wb_s, vldrwq_gather_base_wb_f)
1196         (vldrwq_gather_base_wb_u): Delete
1197         * config/arm/iterators.md (supf): Remove VLDRWQGBWB_S,
1198         VLDRWQGBWB_U, VLDRDQGBWB_S, VLDRDQGBWB_U.
1199         (VLDRWGBWBQ, VLDRDGBWBQ): Delete.
1200         * config/arm/mve.md (mve_vldrwq_gather_base_wb_<supf>v4si): Delete.
1201         (mve_vldrwq_gather_base_nowb_<supf>v4si): Delete.
1202         (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Delete.
1203         (mve_vldrwq_gather_base_wb_z_<supf>v4si): Delete.
1204         (mve_vldrwq_gather_base_nowb_z_<supf>v4si): Delete.
1205         (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Delete.
1206         (mve_vldrwq_gather_base_wb_fv4sf): Delete.
1207         (mve_vldrwq_gather_base_nowb_fv4sf): Delete.
1208         (mve_vldrwq_gather_base_wb_fv4sf_insn): Delete.
1209         (mve_vldrwq_gather_base_wb_z_fv4sf): Delete.
1210         (mve_vldrwq_gather_base_nowb_z_fv4sf): Delete.
1211         (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Delete.
1212         (mve_vldrdq_gather_base_wb_<supf>v2di): Delete.
1213         (mve_vldrdq_gather_base_nowb_<supf>v2di): Delete.
1214         (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Delete.
1215         (mve_vldrdq_gather_base_wb_z_<supf>v2di): Delete.
1216         (mve_vldrdq_gather_base_nowb_z_<supf>v2di): Delete.
1217         (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Delete.
1218         (@mve_vldrq_gather_base_wb_<mode>): New.
1219         (@mve_vldrq_gather_base_wb_z_<mode>): New.
1220         * config/arm/unspecs.md (VLDRWQGBWB_S, VLDRWQGBWB_U, VLDRWQGBWB_F)
1221         (VLDRDQGBWB_S, VLDRDQGBWB_U): Delete
1222         (VLDRGBWBQ, VLDRGBWBQ_Z): New.
1224 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1226         * config/arm/arm-builtins.cc (arm_ldrgbs_qualifiers)
1227         (arm_ldrgbu_qualifiers, arm_ldrgbs_z_qualifiers)
1228         (arm_ldrgbu_z_qualifiers): Delete.
1229         * config/arm/arm-mve-builtins-base.cc (class
1230         vldrq_gather_base_impl): New.
1231         (vldrdq_gather_base, vldrwq_gather_base): New.
1232         * config/arm/arm-mve-builtins-base.def (vldrdq_gather_base)
1233         (vldrwq_gather_base): New.
1234         * config/arm/arm-mve-builtins-base.h: (vldrdq_gather_base)
1235         (vldrwq_gather_base): New.
1236         * config/arm/arm_mve.h (vldrwq_gather_base_s32): Delete.
1237         (vldrwq_gather_base_u32): Delete.
1238         (vldrwq_gather_base_z_u32): Delete.
1239         (vldrwq_gather_base_z_s32): Delete.
1240         (vldrdq_gather_base_s64): Delete.
1241         (vldrdq_gather_base_u64): Delete.
1242         (vldrdq_gather_base_z_s64): Delete.
1243         (vldrdq_gather_base_z_u64): Delete.
1244         (vldrwq_gather_base_f32): Delete.
1245         (vldrwq_gather_base_z_f32): Delete.
1246         (__arm_vldrwq_gather_base_s32): Delete.
1247         (__arm_vldrwq_gather_base_u32): Delete.
1248         (__arm_vldrwq_gather_base_z_s32): Delete.
1249         (__arm_vldrwq_gather_base_z_u32): Delete.
1250         (__arm_vldrdq_gather_base_s64): Delete.
1251         (__arm_vldrdq_gather_base_u64): Delete.
1252         (__arm_vldrdq_gather_base_z_s64): Delete.
1253         (__arm_vldrdq_gather_base_z_u64): Delete.
1254         (__arm_vldrwq_gather_base_f32): Delete.
1255         (__arm_vldrwq_gather_base_z_f32): Delete.
1256         * config/arm/arm_mve_builtins.def (vldrwq_gather_base_s)
1257         (vldrwq_gather_base_u, vldrwq_gather_base_z_s)
1258         (vldrwq_gather_base_z_u, vldrdq_gather_base_s)
1259         (vldrwq_gather_base_f, vldrdq_gather_base_z_s)
1260         (vldrwq_gather_base_z_f, vldrdq_gather_base_u)
1261         (vldrdq_gather_base_z_u): Delete.
1262         * config/arm/iterators.md (supf): Remove VLDRWQGB_S, VLDRWQGB_U,
1263         VLDRDQGB_S, VLDRDQGB_U.
1264         (VLDRWGBQ, VLDRDGBQ): Delete.
1265         * config/arm/mve.md (mve_vldrwq_gather_base_<supf>v4si): Delete.
1266         (mve_vldrwq_gather_base_z_<supf>v4si): Delete.
1267         (mve_vldrdq_gather_base_<supf>v2di): Delete.
1268         (mve_vldrdq_gather_base_z_<supf>v2di): Delete.
1269         (mve_vldrwq_gather_base_fv4sf): Delete.
1270         (mve_vldrwq_gather_base_z_fv4sf): Delete.
1271         (@mve_vldrq_gather_base_<mode>): New.
1272         (@mve_vldrq_gather_base_z_<mode>): New.
1273         * config/arm/unspecs.md (VLDRWQGB_S, VLDRWQGB_U, VLDRDQGB_S)
1274         (VLDRDQGB_U, VLDRWQGB_F): Delete.
1275         (VLDRGBQ, VLDRGBQ_Z): New.
1277 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1279         * config/arm/arm-mve-builtins-shapes.cc (struct
1280         load_gather_base_def): New.
1281         * config/arm/arm-mve-builtins-shapes.h: (load_gather_base): New.
1283 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1285         * config/arm/arm-builtins.cc (arm_ldrgu_qualifiers)
1286         (arm_ldrgs_qualifiers, arm_ldrgs_z_qualifiers)
1287         (arm_ldrgu_z_qualifiers): Delete.
1288         * config/arm/arm-mve-builtins-base.cc (vldrq_gather_impl): Add
1289         support for shifted version.
1290         (vldrdq_gather_shifted, vldrhq_gather_shifted)
1291         (vldrwq_gather_shifted): New.
1292         * config/arm/arm-mve-builtins-base.def (vldrdq_gather_shifted)
1293         (vldrhq_gather_shifted, vldrwq_gather_shifted): New.
1294         * config/arm/arm-mve-builtins-base.h (vldrdq_gather_shifted)
1295         (vldrhq_gather_shifted, vldrwq_gather_shifted): New.
1296         * config/arm/arm_mve.h (vldrhq_gather_shifted_offset): Delete.
1297         (vldrhq_gather_shifted_offset_z): Delete.
1298         (vldrdq_gather_shifted_offset): Delete.
1299         (vldrdq_gather_shifted_offset_z): Delete.
1300         (vldrwq_gather_shifted_offset): Delete.
1301         (vldrwq_gather_shifted_offset_z): Delete.
1302         (vldrhq_gather_shifted_offset_s32): Delete.
1303         (vldrhq_gather_shifted_offset_s16): Delete.
1304         (vldrhq_gather_shifted_offset_u32): Delete.
1305         (vldrhq_gather_shifted_offset_u16): Delete.
1306         (vldrhq_gather_shifted_offset_z_s32): Delete.
1307         (vldrhq_gather_shifted_offset_z_s16): Delete.
1308         (vldrhq_gather_shifted_offset_z_u32): Delete.
1309         (vldrhq_gather_shifted_offset_z_u16): Delete.
1310         (vldrdq_gather_shifted_offset_s64): Delete.
1311         (vldrdq_gather_shifted_offset_u64): Delete.
1312         (vldrdq_gather_shifted_offset_z_s64): Delete.
1313         (vldrdq_gather_shifted_offset_z_u64): Delete.
1314         (vldrhq_gather_shifted_offset_f16): Delete.
1315         (vldrhq_gather_shifted_offset_z_f16): Delete.
1316         (vldrwq_gather_shifted_offset_f32): Delete.
1317         (vldrwq_gather_shifted_offset_s32): Delete.
1318         (vldrwq_gather_shifted_offset_u32): Delete.
1319         (vldrwq_gather_shifted_offset_z_f32): Delete.
1320         (vldrwq_gather_shifted_offset_z_s32): Delete.
1321         (vldrwq_gather_shifted_offset_z_u32): Delete.
1322         (__arm_vldrhq_gather_shifted_offset_s32): Delete.
1323         (__arm_vldrhq_gather_shifted_offset_s16): Delete.
1324         (__arm_vldrhq_gather_shifted_offset_u32): Delete.
1325         (__arm_vldrhq_gather_shifted_offset_u16): Delete.
1326         (__arm_vldrhq_gather_shifted_offset_z_s32): Delete.
1327         (__arm_vldrhq_gather_shifted_offset_z_s16): Delete.
1328         (__arm_vldrhq_gather_shifted_offset_z_u32): Delete.
1329         (__arm_vldrhq_gather_shifted_offset_z_u16): Delete.
1330         (__arm_vldrdq_gather_shifted_offset_s64): Delete.
1331         (__arm_vldrdq_gather_shifted_offset_u64): Delete.
1332         (__arm_vldrdq_gather_shifted_offset_z_s64): Delete.
1333         (__arm_vldrdq_gather_shifted_offset_z_u64): Delete.
1334         (__arm_vldrwq_gather_shifted_offset_s32): Delete.
1335         (__arm_vldrwq_gather_shifted_offset_u32): Delete.
1336         (__arm_vldrwq_gather_shifted_offset_z_s32): Delete.
1337         (__arm_vldrwq_gather_shifted_offset_z_u32): Delete.
1338         (__arm_vldrhq_gather_shifted_offset_f16): Delete.
1339         (__arm_vldrhq_gather_shifted_offset_z_f16): Delete.
1340         (__arm_vldrwq_gather_shifted_offset_f32): Delete.
1341         (__arm_vldrwq_gather_shifted_offset_z_f32): Delete.
1342         (__arm_vldrhq_gather_shifted_offset): Delete.
1343         (__arm_vldrhq_gather_shifted_offset_z): Delete.
1344         (__arm_vldrdq_gather_shifted_offset): Delete.
1345         (__arm_vldrdq_gather_shifted_offset_z): Delete.
1346         (__arm_vldrwq_gather_shifted_offset): Delete.
1347         (__arm_vldrwq_gather_shifted_offset_z): Delete.
1348         * config/arm/arm_mve_builtins.def
1349         (vldrhq_gather_shifted_offset_z_u, vldrhq_gather_shifted_offset_u)
1350         (vldrhq_gather_shifted_offset_z_s, vldrhq_gather_shifted_offset_s)
1351         (vldrdq_gather_shifted_offset_s, vldrhq_gather_shifted_offset_f)
1352         (vldrwq_gather_shifted_offset_f, vldrwq_gather_shifted_offset_s)
1353         (vldrdq_gather_shifted_offset_z_s)
1354         (vldrhq_gather_shifted_offset_z_f)
1355         (vldrwq_gather_shifted_offset_z_f)
1356         (vldrwq_gather_shifted_offset_z_s, vldrdq_gather_shifted_offset_u)
1357         (vldrwq_gather_shifted_offset_u, vldrdq_gather_shifted_offset_z_u)
1358         (vldrwq_gather_shifted_offset_z_u): Delete.
1359         * config/arm/iterators.md (supf): Remove VLDRHQGSO_S, VLDRHQGSO_U,
1360         VLDRDQGSO_S, VLDRDQGSO_U, VLDRWQGSO_S, VLDRWQGSO_U.
1361         (VLDRHGSOQ, VLDRDGSOQ, VLDRWGSOQ): Delete.
1362         * config/arm/mve.md
1363         (mve_vldrhq_gather_shifted_offset_<supf><mode>): Delete.
1364         (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Delete.
1365         (mve_vldrdq_gather_shifted_offset_<supf>v2di): Delete.
1366         (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Delete.
1367         (mve_vldrhq_gather_shifted_offset_fv8hf): Delete.
1368         (mve_vldrhq_gather_shifted_offset_z_fv8hf): Delete.
1369         (mve_vldrwq_gather_shifted_offset_fv4sf): Delete.
1370         (mve_vldrwq_gather_shifted_offset_<supf>v4si): Delete.
1371         (mve_vldrwq_gather_shifted_offset_z_fv4sf): Delete.
1372         (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Delete.
1373         (@mve_vldrq_gather_shifted_offset_<mode>): New.
1374         (@mve_vldrq_gather_shifted_offset_extend_v4si<US>): New.
1375         (@mve_vldrq_gather_shifted_offset_z_<mode>): New.
1376         (@mve_vldrq_gather_shifted_offset_z_extend_v4si<US>): New.
1377         * config/arm/unspecs.md (VLDRHQGSO_S, VLDRHQGSO_U, VLDRDQGSO_S)
1378         (VLDRDQGSO_U, VLDRHQGSO_F, VLDRWQGSO_F, VLDRWQGSO_S, VLDRWQGSO_U):
1379         Delete.
1380         (VLDRGSOQ, VLDRGSOQ_Z, VLDRGSOQ_EXT, VLDRGSOQ_EXT_Z): New.
1382 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1384         * config/arm/arm-mve-builtins-base.cc (class vldrq_gather_impl):
1385         New.
1386         (vldrbq_gather, vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
1387         * config/arm/arm-mve-builtins-base.def (vldrbq_gather)
1388         (vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
1389         * config/arm/arm-mve-builtins-base.h (vldrbq_gather)
1390         (vldrdq_gather, vldrhq_gather, vldrwq_gather): New.
1391         * config/arm/arm_mve.h (vldrbq_gather_offset): Delete.
1392         (vldrbq_gather_offset_z): Delete.
1393         (vldrhq_gather_offset): Delete.
1394         (vldrhq_gather_offset_z): Delete.
1395         (vldrdq_gather_offset): Delete.
1396         (vldrdq_gather_offset_z): Delete.
1397         (vldrwq_gather_offset): Delete.
1398         (vldrwq_gather_offset_z): Delete.
1399         (vldrbq_gather_offset_u8): Delete.
1400         (vldrbq_gather_offset_s8): Delete.
1401         (vldrbq_gather_offset_u16): Delete.
1402         (vldrbq_gather_offset_s16): Delete.
1403         (vldrbq_gather_offset_u32): Delete.
1404         (vldrbq_gather_offset_s32): Delete.
1405         (vldrbq_gather_offset_z_s16): Delete.
1406         (vldrbq_gather_offset_z_u8): Delete.
1407         (vldrbq_gather_offset_z_s32): Delete.
1408         (vldrbq_gather_offset_z_u16): Delete.
1409         (vldrbq_gather_offset_z_u32): Delete.
1410         (vldrbq_gather_offset_z_s8): Delete.
1411         (vldrhq_gather_offset_s32): Delete.
1412         (vldrhq_gather_offset_s16): Delete.
1413         (vldrhq_gather_offset_u32): Delete.
1414         (vldrhq_gather_offset_u16): Delete.
1415         (vldrhq_gather_offset_z_s32): Delete.
1416         (vldrhq_gather_offset_z_s16): Delete.
1417         (vldrhq_gather_offset_z_u32): Delete.
1418         (vldrhq_gather_offset_z_u16): Delete.
1419         (vldrdq_gather_offset_s64): Delete.
1420         (vldrdq_gather_offset_u64): Delete.
1421         (vldrdq_gather_offset_z_s64): Delete.
1422         (vldrdq_gather_offset_z_u64): Delete.
1423         (vldrhq_gather_offset_f16): Delete.
1424         (vldrhq_gather_offset_z_f16): Delete.
1425         (vldrwq_gather_offset_f32): Delete.
1426         (vldrwq_gather_offset_s32): Delete.
1427         (vldrwq_gather_offset_u32): Delete.
1428         (vldrwq_gather_offset_z_f32): Delete.
1429         (vldrwq_gather_offset_z_s32): Delete.
1430         (vldrwq_gather_offset_z_u32): Delete.
1431         (__arm_vldrbq_gather_offset_u8): Delete.
1432         (__arm_vldrbq_gather_offset_s8): Delete.
1433         (__arm_vldrbq_gather_offset_u16): Delete.
1434         (__arm_vldrbq_gather_offset_s16): Delete.
1435         (__arm_vldrbq_gather_offset_u32): Delete.
1436         (__arm_vldrbq_gather_offset_s32): Delete.
1437         (__arm_vldrbq_gather_offset_z_s8): Delete.
1438         (__arm_vldrbq_gather_offset_z_s32): Delete.
1439         (__arm_vldrbq_gather_offset_z_s16): Delete.
1440         (__arm_vldrbq_gather_offset_z_u8): Delete.
1441         (__arm_vldrbq_gather_offset_z_u32): Delete.
1442         (__arm_vldrbq_gather_offset_z_u16): Delete.
1443         (__arm_vldrhq_gather_offset_s32): Delete.
1444         (__arm_vldrhq_gather_offset_s16): Delete.
1445         (__arm_vldrhq_gather_offset_u32): Delete.
1446         (__arm_vldrhq_gather_offset_u16): Delete.
1447         (__arm_vldrhq_gather_offset_z_s32): Delete.
1448         (__arm_vldrhq_gather_offset_z_s16): Delete.
1449         (__arm_vldrhq_gather_offset_z_u32): Delete.
1450         (__arm_vldrhq_gather_offset_z_u16): Delete.
1451         (__arm_vldrdq_gather_offset_s64): Delete.
1452         (__arm_vldrdq_gather_offset_u64): Delete.
1453         (__arm_vldrdq_gather_offset_z_s64): Delete.
1454         (__arm_vldrdq_gather_offset_z_u64): Delete.
1455         (__arm_vldrwq_gather_offset_s32): Delete.
1456         (__arm_vldrwq_gather_offset_u32): Delete.
1457         (__arm_vldrwq_gather_offset_z_s32): Delete.
1458         (__arm_vldrwq_gather_offset_z_u32): Delete.
1459         (__arm_vldrhq_gather_offset_f16): Delete.
1460         (__arm_vldrhq_gather_offset_z_f16): Delete.
1461         (__arm_vldrwq_gather_offset_f32): Delete.
1462         (__arm_vldrwq_gather_offset_z_f32): Delete.
1463         (__arm_vldrbq_gather_offset): Delete.
1464         (__arm_vldrbq_gather_offset_z): Delete.
1465         (__arm_vldrhq_gather_offset): Delete.
1466         (__arm_vldrhq_gather_offset_z): Delete.
1467         (__arm_vldrdq_gather_offset): Delete.
1468         (__arm_vldrdq_gather_offset_z): Delete.
1469         (__arm_vldrwq_gather_offset): Delete.
1470         (__arm_vldrwq_gather_offset_z): Delete.
1471         * config/arm/arm_mve_builtins.def (vldrbq_gather_offset_u)
1472         (vldrbq_gather_offset_s, vldrbq_gather_offset_z_s)
1473         (vldrbq_gather_offset_z_u, vldrhq_gather_offset_z_u)
1474         (vldrhq_gather_offset_u, vldrhq_gather_offset_z_s)
1475         (vldrhq_gather_offset_s, vldrdq_gather_offset_s)
1476         (vldrhq_gather_offset_f, vldrwq_gather_offset_f)
1477         (vldrwq_gather_offset_s, vldrdq_gather_offset_z_s)
1478         (vldrhq_gather_offset_z_f, vldrwq_gather_offset_z_f)
1479         (vldrwq_gather_offset_z_s, vldrdq_gather_offset_u)
1480         (vldrwq_gather_offset_u, vldrdq_gather_offset_z_u)
1481         (vldrwq_gather_offset_z_u): Delete.
1482         * config/arm/iterators.md (MVE_u_elem): New.
1483         (supf): Remove VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S, VLDRHQGO_U,
1484         VLDRDQGO_S, VLDRDQGO_U, VLDRWQGO_S, VLDRWQGO_U.
1485         (VLDRBGOQ, VLDRHGOQ, VLDRDGOQ, VLDRWGOQ): Delete.
1486         * config/arm/mve.md (mve_vldrbq_gather_offset_<supf><mode>):
1487         Delete.
1488         (mve_vldrbq_gather_offset_z_<supf><mode>): Delete.
1489         (mve_vldrhq_gather_offset_<supf><mode>): Delete.
1490         (mve_vldrhq_gather_offset_z_<supf><mode>): Delete.
1491         (mve_vldrdq_gather_offset_<supf>v2di): Delete.
1492         (mve_vldrdq_gather_offset_z_<supf>v2di): Delete.
1493         (mve_vldrhq_gather_offset_fv8hf): Delete.
1494         (mve_vldrhq_gather_offset_z_fv8hf): Delete.
1495         (mve_vldrwq_gather_offset_fv4sf): Delete.
1496         (mve_vldrwq_gather_offset_<supf>v4si): Delete.
1497         (mve_vldrwq_gather_offset_z_fv4sf): Delete.
1498         (mve_vldrwq_gather_offset_z_<supf>v4si): Delete.
1499         (@mve_vldrq_gather_offset_<mode>): New.
1500         (@mve_vldrq_gather_offset_extend_<mode><US>): New.
1501         (@mve_vldrq_gather_offset_z_<mode>): New.
1502         (@mve_vldrq_gather_offset_z_extend_<mode><US>): New.
1503         * config/arm/unspecs.md (VLDRBQGO_S, VLDRBQGO_U, VLDRHQGO_S)
1504         (VLDRHQGO_U, VLDRDQGO_S, VLDRDQGO_U, VLDRHQGO_F, VLDRWQGO_F)
1505         (VLDRWQGO_S, VLDRWQGO_U): Delete.
1506         (VLDRGOQ, VLDRGOQ_Z, VLDRGOQ_EXT, VLDRGOQ_EXT_Z): New.
1508 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1510         * config/arm/arm-mve-builtins-shapes.cc (struct load_ext_gather):
1511         New.
1512         (struct load_ext_gather_offset_def): New.
1513         * config/arm/arm-mve-builtins-shapes.h (load_ext_gather_offset):
1514         New.
1516 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1518         * config/arm/arm-builtins.cc (arm_strsbwbs_qualifiers)
1519         (arm_strsbwbu_qualifiers, arm_strsbwbs_p_qualifiers)
1520         (arm_strsbwbu_p_qualifiers): Delete.
1521         * config/arm/arm-mve-builtins-base.cc (vstrq_scatter_base_impl):
1522         Add support for MODE_wb.
1523         * config/arm/arm-mve-builtins-shapes.cc (parse_type): Add support
1524         for 'b' type.
1525         (store_scatter_base): Add support for MODE_wb.
1526         * config/arm/arm-mve-builtins.cc
1527         (function_resolver::require_pointer_to_type): New.
1528         * config/arm/arm-mve-builtins.h
1529         (function_resolver::require_pointer_to_type): New.
1530         * config/arm/arm_mve.h (vstrdq_scatter_base_wb): Delete.
1531         (vstrdq_scatter_base_wb_p): Delete.
1532         (vstrwq_scatter_base_wb_p): Delete.
1533         (vstrwq_scatter_base_wb): Delete.
1534         (vstrdq_scatter_base_wb_p_s64): Delete.
1535         (vstrdq_scatter_base_wb_p_u64): Delete.
1536         (vstrdq_scatter_base_wb_s64): Delete.
1537         (vstrdq_scatter_base_wb_u64): Delete.
1538         (vstrwq_scatter_base_wb_p_s32): Delete.
1539         (vstrwq_scatter_base_wb_p_f32): Delete.
1540         (vstrwq_scatter_base_wb_p_u32): Delete.
1541         (vstrwq_scatter_base_wb_s32): Delete.
1542         (vstrwq_scatter_base_wb_u32): Delete.
1543         (vstrwq_scatter_base_wb_f32): Delete.
1544         (__arm_vstrdq_scatter_base_wb_s64): Delete.
1545         (__arm_vstrdq_scatter_base_wb_u64): Delete.
1546         (__arm_vstrdq_scatter_base_wb_p_s64): Delete.
1547         (__arm_vstrdq_scatter_base_wb_p_u64): Delete.
1548         (__arm_vstrwq_scatter_base_wb_p_s32): Delete.
1549         (__arm_vstrwq_scatter_base_wb_p_u32): Delete.
1550         (__arm_vstrwq_scatter_base_wb_s32): Delete.
1551         (__arm_vstrwq_scatter_base_wb_u32): Delete.
1552         (__arm_vstrwq_scatter_base_wb_f32): Delete.
1553         (__arm_vstrwq_scatter_base_wb_p_f32): Delete.
1554         (__arm_vstrdq_scatter_base_wb): Delete.
1555         (__arm_vstrdq_scatter_base_wb_p): Delete.
1556         (__arm_vstrwq_scatter_base_wb_p): Delete.
1557         (__arm_vstrwq_scatter_base_wb): Delete.
1558         * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_wb_u)
1559         (vstrdq_scatter_base_wb_u, vstrwq_scatter_base_wb_p_u)
1560         (vstrdq_scatter_base_wb_p_u, vstrwq_scatter_base_wb_s)
1561         (vstrwq_scatter_base_wb_f, vstrdq_scatter_base_wb_s)
1562         (vstrwq_scatter_base_wb_p_s, vstrwq_scatter_base_wb_p_f)
1563         (vstrdq_scatter_base_wb_p_s): Delete.
1564         * config/arm/iterators.md (supf): Remove VSTRWQSBWB_S,
1565         VSTRWQSBWB_U, VSTRDQSBWB_S, VSTRDQSBWB_U.
1566         (VSTRDSBQ, VSTRWSBWBQ, VSTRDSBWBQ): Delete.
1567         * config/arm/mve.md (mve_vstrwq_scatter_base_wb_<supf>v4si): Delete.
1568         (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Delete.
1569         (mve_vstrwq_scatter_base_wb_fv4sf): Delete.
1570         (mve_vstrwq_scatter_base_wb_p_fv4sf): Delete.
1571         (mve_vstrdq_scatter_base_wb_<supf>v2di): Delete.
1572         (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Delete.
1573         (@mve_vstrq_scatter_base_wb_<mode>): New.
1574         (@mve_vstrq_scatter_base_wb_p_<mode>): New.
1575         * config/arm/unspecs.md (VSTRWQSBWB_S, VSTRWQSBWB_U, VSTRWQSBWB_F)
1576         (VSTRDQSBWB_S, VSTRDQSBWB_U): Delete.
1577         (VSTRSBWBQ, VSTRSBWBQ_P): New.
1579 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1581         * config/arm/arm-builtins.cc (arm_strsbs_qualifiers)
1582         (arm_strsbu_qualifiers, arm_strsbs_p_qualifiers)
1583         (arm_strsbu_p_qualifiers): Delete.
1584         * config/arm/arm-mve-builtins-base.cc (class
1585         vstrq_scatter_base_impl): New.
1586         (vstrwq_scatter_base, vstrdq_scatter_base): New.
1587         * config/arm/arm-mve-builtins-base.def (vstrwq_scatter_base)
1588         (vstrdq_scatter_base): New.
1589         * config/arm/arm-mve-builtins-base.h (vstrwq_scatter_base)
1590         (vstrdq_scatter_base): New.
1591         * config/arm/arm_mve.h (vstrwq_scatter_base): Delete.
1592         (vstrwq_scatter_base_p): Delete.
1593         (vstrdq_scatter_base_p): Delete.
1594         (vstrdq_scatter_base): Delete.
1595         (vstrwq_scatter_base_s32): Delete.
1596         (vstrwq_scatter_base_u32): Delete.
1597         (vstrwq_scatter_base_p_s32): Delete.
1598         (vstrwq_scatter_base_p_u32): Delete.
1599         (vstrdq_scatter_base_p_s64): Delete.
1600         (vstrdq_scatter_base_p_u64): Delete.
1601         (vstrdq_scatter_base_s64): Delete.
1602         (vstrdq_scatter_base_u64): Delete.
1603         (vstrwq_scatter_base_f32): Delete.
1604         (vstrwq_scatter_base_p_f32): Delete.
1605         (__arm_vstrwq_scatter_base_s32): Delete.
1606         (__arm_vstrwq_scatter_base_u32): Delete.
1607         (__arm_vstrwq_scatter_base_p_s32): Delete.
1608         (__arm_vstrwq_scatter_base_p_u32): Delete.
1609         (__arm_vstrdq_scatter_base_p_s64): Delete.
1610         (__arm_vstrdq_scatter_base_p_u64): Delete.
1611         (__arm_vstrdq_scatter_base_s64): Delete.
1612         (__arm_vstrdq_scatter_base_u64): Delete.
1613         (__arm_vstrwq_scatter_base_f32): Delete.
1614         (__arm_vstrwq_scatter_base_p_f32): Delete.
1615         (__arm_vstrwq_scatter_base): Delete.
1616         (__arm_vstrwq_scatter_base_p): Delete.
1617         (__arm_vstrdq_scatter_base_p): Delete.
1618         (__arm_vstrdq_scatter_base): Delete.
1619         * config/arm/arm_mve_builtins.def (vstrwq_scatter_base_s)
1620         (vstrwq_scatter_base_u, vstrwq_scatter_base_p_s)
1621         (vstrwq_scatter_base_p_u, vstrdq_scatter_base_s)
1622         (vstrwq_scatter_base_f, vstrdq_scatter_base_p_s)
1623         (vstrwq_scatter_base_p_f, vstrdq_scatter_base_u)
1624         (vstrdq_scatter_base_p_u): Delete.
1625         * config/arm/iterators.md (MVE_4): New.
1626         (supf): Remove VSTRWQSB_S, VSTRWQSB_U.
1627         (VSTRWSBQ): Delete.
1628         * config/arm/mve.md (mve_vstrwq_scatter_base_<supf>v4si): Delete.
1629         (mve_vstrwq_scatter_base_p_<supf>v4si): Delete.
1630         (mve_vstrdq_scatter_base_p_<supf>v2di): Delete.
1631         (mve_vstrdq_scatter_base_<supf>v2di): Delete.
1632         (mve_vstrwq_scatter_base_fv4sf): Delete.
1633         (mve_vstrwq_scatter_base_p_fv4sf): Delete.
1634         (@mve_vstrq_scatter_base_<mode>): New.
1635         (@mve_vstrq_scatter_base_p_<mode>): New.
1636         * config/arm/unspecs.md (VSTRWQSB_S, VSTRWQSB_U, VSTRWQSB_F):
1637         Delete.
1638         (VSTRSBQ, VSTRSBQ_P): New.
1640 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1642         * config/arm/arm-mve-builtins-shapes.cc (store_scatter_base): New.
1643         * config/arm/arm-mve-builtins-shapes.h (store_scatter_base): New.
1645 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1647         * config/arm/arm-mve-builtins.cc (report_out_of_range_multiple):
1648         New.
1649         (function_checker::require_signed_immediate): New.
1650         (function_checker::require_immediate_range_multiple): New.
1651         * config/arm/arm-mve-builtins.h
1652         (function_checker::require_immediate_range_multiple): New.
1653         (function_checker::require_signed_immediate): New.
1655 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1657         * config/arm/arm-builtins.cc (arm_strss_qualifiers)
1658         (arm_strsu_qualifiers, arm_strsu_p_qualifiers)
1659         (arm_strss_p_qualifiers): Delete.
1660         * config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl):
1661         Add support for shifted version.
1662         (vstrdq_scatter_shifted, vstrhq_scatter_shifted)
1663         (vstrwq_scatter_shifted): New.
1664         * config/arm/arm-mve-builtins-base.def (vstrhq_scatter_shifted)
1665         (vstrwq_scatter_shifted, vstrdq_scatter_shifted): New.
1666         * config/arm/arm-mve-builtins-base.h (vstrhq_scatter_shifted)
1667         (vstrwq_scatter_shifted, vstrdq_scatter_shifted): New.
1668         * config/arm/arm_mve.h (vstrhq_scatter_shifted_offset): Delete.
1669         (vstrhq_scatter_shifted_offset_p): Delete.
1670         (vstrdq_scatter_shifted_offset_p): Delete.
1671         (vstrdq_scatter_shifted_offset): Delete.
1672         (vstrwq_scatter_shifted_offset_p): Delete.
1673         (vstrwq_scatter_shifted_offset): Delete.
1674         (vstrhq_scatter_shifted_offset_s32): Delete.
1675         (vstrhq_scatter_shifted_offset_s16): Delete.
1676         (vstrhq_scatter_shifted_offset_u32): Delete.
1677         (vstrhq_scatter_shifted_offset_u16): Delete.
1678         (vstrhq_scatter_shifted_offset_p_s32): Delete.
1679         (vstrhq_scatter_shifted_offset_p_s16): Delete.
1680         (vstrhq_scatter_shifted_offset_p_u32): Delete.
1681         (vstrhq_scatter_shifted_offset_p_u16): Delete.
1682         (vstrdq_scatter_shifted_offset_p_s64): Delete.
1683         (vstrdq_scatter_shifted_offset_p_u64): Delete.
1684         (vstrdq_scatter_shifted_offset_s64): Delete.
1685         (vstrdq_scatter_shifted_offset_u64): Delete.
1686         (vstrhq_scatter_shifted_offset_f16): Delete.
1687         (vstrhq_scatter_shifted_offset_p_f16): Delete.
1688         (vstrwq_scatter_shifted_offset_f32): Delete.
1689         (vstrwq_scatter_shifted_offset_p_f32): Delete.
1690         (vstrwq_scatter_shifted_offset_p_s32): Delete.
1691         (vstrwq_scatter_shifted_offset_p_u32): Delete.
1692         (vstrwq_scatter_shifted_offset_s32): Delete.
1693         (vstrwq_scatter_shifted_offset_u32): Delete.
1694         (__arm_vstrhq_scatter_shifted_offset_s32): Delete.
1695         (__arm_vstrhq_scatter_shifted_offset_s16): Delete.
1696         (__arm_vstrhq_scatter_shifted_offset_u32): Delete.
1697         (__arm_vstrhq_scatter_shifted_offset_u16): Delete.
1698         (__arm_vstrhq_scatter_shifted_offset_p_s32): Delete.
1699         (__arm_vstrhq_scatter_shifted_offset_p_s16): Delete.
1700         (__arm_vstrhq_scatter_shifted_offset_p_u32): Delete.
1701         (__arm_vstrhq_scatter_shifted_offset_p_u16): Delete.
1702         (__arm_vstrdq_scatter_shifted_offset_p_s64): Delete.
1703         (__arm_vstrdq_scatter_shifted_offset_p_u64): Delete.
1704         (__arm_vstrdq_scatter_shifted_offset_s64): Delete.
1705         (__arm_vstrdq_scatter_shifted_offset_u64): Delete.
1706         (__arm_vstrwq_scatter_shifted_offset_p_s32): Delete.
1707         (__arm_vstrwq_scatter_shifted_offset_p_u32): Delete.
1708         (__arm_vstrwq_scatter_shifted_offset_s32): Delete.
1709         (__arm_vstrwq_scatter_shifted_offset_u32): Delete.
1710         (__arm_vstrhq_scatter_shifted_offset_f16): Delete.
1711         (__arm_vstrhq_scatter_shifted_offset_p_f16): Delete.
1712         (__arm_vstrwq_scatter_shifted_offset_f32): Delete.
1713         (__arm_vstrwq_scatter_shifted_offset_p_f32): Delete.
1714         (__arm_vstrhq_scatter_shifted_offset): Delete.
1715         (__arm_vstrhq_scatter_shifted_offset_p): Delete.
1716         (__arm_vstrdq_scatter_shifted_offset_p): Delete.
1717         (__arm_vstrdq_scatter_shifted_offset): Delete.
1718         (__arm_vstrwq_scatter_shifted_offset_p): Delete.
1719         (__arm_vstrwq_scatter_shifted_offset): Delete.
1720         * config/arm/arm_mve_builtins.def
1721         (vstrhq_scatter_shifted_offset_p_u)
1722         (vstrhq_scatter_shifted_offset_u)
1723         (vstrhq_scatter_shifted_offset_p_s)
1724         (vstrhq_scatter_shifted_offset_s, vstrdq_scatter_shifted_offset_s)
1725         (vstrhq_scatter_shifted_offset_f, vstrwq_scatter_shifted_offset_f)
1726         (vstrwq_scatter_shifted_offset_s)
1727         (vstrdq_scatter_shifted_offset_p_s)
1728         (vstrhq_scatter_shifted_offset_p_f)
1729         (vstrwq_scatter_shifted_offset_p_f)
1730         (vstrwq_scatter_shifted_offset_p_s)
1731         (vstrdq_scatter_shifted_offset_u, vstrwq_scatter_shifted_offset_u)
1732         (vstrdq_scatter_shifted_offset_p_u)
1733         (vstrwq_scatter_shifted_offset_p_u): Delete.
1734         * config/arm/iterators.md (MVE_VLD_ST_scatter_shifted): New.
1735         (MVE_scatter_shift): New.
1736         (supf): Remove VSTRHQSSO_S, VSTRHQSSO_U, VSTRDQSSO_S, VSTRDQSSO_U,
1737         VSTRWQSSO_U, VSTRWQSSO_S.
1738         (VSTRHSSOQ, VSTRDSSOQ, VSTRWSSOQ): Delete.
1739         * config/arm/mve.md (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>): Delete.
1740         (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Delete.
1741         (mve_vstrhq_scatter_shifted_offset_<supf><mode>): Delete.
1742         (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Delete.
1743         (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di): Delete.
1744         (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Delete.
1745         (mve_vstrdq_scatter_shifted_offset_<supf>v2di): Delete.
1746         (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Delete.
1747         (mve_vstrhq_scatter_shifted_offset_fv8hf): Delete.
1748         (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Delete.
1749         (mve_vstrhq_scatter_shifted_offset_p_fv8hf): Delete.
1750         (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Delete.
1751         (mve_vstrwq_scatter_shifted_offset_fv4sf): Delete.
1752         (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Delete.
1753         (mve_vstrwq_scatter_shifted_offset_p_fv4sf): Delete.
1754         (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Delete.
1755         (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si): Delete.
1756         (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Delete.
1757         (mve_vstrwq_scatter_shifted_offset_<supf>v4si): Delete.
1758         (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Delete.
1759         (@mve_vstrq_scatter_shifted_offset_<mode>): New.
1760         (@mve_vstrq_scatter_shifted_offset_p_<mode>): New.
1761         (mve_vstrq_truncate_scatter_shifted_offset_v4si): New.
1762         (mve_vstrq_truncate_scatter_shifted_offset_p_v4si): New.
1763         * config/arm/unspecs.md (VSTRDQSSO_S, VSTRDQSSO_U, VSTRWQSSO_S)
1764         (VSTRWQSSO_U, VSTRHQSSO_F, VSTRWQSSO_F, VSTRHQSSO_S, VSTRHQSSO_U):
1765         Delete.
1766         (VSTRSSOQ, VSTRSSOQ_P, VSTRSSOQ_TRUNC, VSTRSSOQ_TRUNC_P): New.
1768 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1770         * config/arm/arm-mve-builtins-base.cc (class vstrq_scatter_impl):
1771         New.
1772         (vstrbq_scatter, vstrhq_scatter, vstrwq_scatter, vstrdq_scatter):
1773         New.
1774         * config/arm/arm-mve-builtins-base.def (vstrbq_scatter)
1775         (vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New.
1776         * config/arm/arm-mve-builtins-base.h (vstrbq_scatter)
1777         (vstrhq_scatter, vstrwq_scatter, vstrdq_scatter): New.
1778         * config/arm/arm-mve-builtins.cc (integer_64): New.
1779         * config/arm/arm_mve.h (vstrbq_scatter_offset): Delete.
1780         (vstrbq_scatter_offset_p): Delete.
1781         (vstrhq_scatter_offset): Delete.
1782         (vstrhq_scatter_offset_p): Delete.
1783         (vstrdq_scatter_offset_p): Delete.
1784         (vstrdq_scatter_offset): Delete.
1785         (vstrwq_scatter_offset_p): Delete.
1786         (vstrwq_scatter_offset): Delete.
1787         (vstrbq_scatter_offset_s8): Delete.
1788         (vstrbq_scatter_offset_u8): Delete.
1789         (vstrbq_scatter_offset_u16): Delete.
1790         (vstrbq_scatter_offset_s16): Delete.
1791         (vstrbq_scatter_offset_u32): Delete.
1792         (vstrbq_scatter_offset_s32): Delete.
1793         (vstrbq_scatter_offset_p_s8): Delete.
1794         (vstrbq_scatter_offset_p_s32): Delete.
1795         (vstrbq_scatter_offset_p_s16): Delete.
1796         (vstrbq_scatter_offset_p_u8): Delete.
1797         (vstrbq_scatter_offset_p_u32): Delete.
1798         (vstrbq_scatter_offset_p_u16): Delete.
1799         (vstrhq_scatter_offset_s32): Delete.
1800         (vstrhq_scatter_offset_s16): Delete.
1801         (vstrhq_scatter_offset_u32): Delete.
1802         (vstrhq_scatter_offset_u16): Delete.
1803         (vstrhq_scatter_offset_p_s32): Delete.
1804         (vstrhq_scatter_offset_p_s16): Delete.
1805         (vstrhq_scatter_offset_p_u32): Delete.
1806         (vstrhq_scatter_offset_p_u16): Delete.
1807         (vstrdq_scatter_offset_p_s64): Delete.
1808         (vstrdq_scatter_offset_p_u64): Delete.
1809         (vstrdq_scatter_offset_s64): Delete.
1810         (vstrdq_scatter_offset_u64): Delete.
1811         (vstrhq_scatter_offset_f16): Delete.
1812         (vstrhq_scatter_offset_p_f16): Delete.
1813         (vstrwq_scatter_offset_f32): Delete.
1814         (vstrwq_scatter_offset_p_f32): Delete.
1815         (vstrwq_scatter_offset_p_s32): Delete.
1816         (vstrwq_scatter_offset_p_u32): Delete.
1817         (vstrwq_scatter_offset_s32): Delete.
1818         (vstrwq_scatter_offset_u32): Delete.
1819         (__arm_vstrbq_scatter_offset_s8): Delete.
1820         (__arm_vstrbq_scatter_offset_s32): Delete.
1821         (__arm_vstrbq_scatter_offset_s16): Delete.
1822         (__arm_vstrbq_scatter_offset_u8): Delete.
1823         (__arm_vstrbq_scatter_offset_u32): Delete.
1824         (__arm_vstrbq_scatter_offset_u16): Delete.
1825         (__arm_vstrbq_scatter_offset_p_s8): Delete.
1826         (__arm_vstrbq_scatter_offset_p_s32): Delete.
1827         (__arm_vstrbq_scatter_offset_p_s16): Delete.
1828         (__arm_vstrbq_scatter_offset_p_u8): Delete.
1829         (__arm_vstrbq_scatter_offset_p_u32): Delete.
1830         (__arm_vstrbq_scatter_offset_p_u16): Delete.
1831         (__arm_vstrhq_scatter_offset_s32): Delete.
1832         (__arm_vstrhq_scatter_offset_s16): Delete.
1833         (__arm_vstrhq_scatter_offset_u32): Delete.
1834         (__arm_vstrhq_scatter_offset_u16): Delete.
1835         (__arm_vstrhq_scatter_offset_p_s32): Delete.
1836         (__arm_vstrhq_scatter_offset_p_s16): Delete.
1837         (__arm_vstrhq_scatter_offset_p_u32): Delete.
1838         (__arm_vstrhq_scatter_offset_p_u16): Delete.
1839         (__arm_vstrdq_scatter_offset_p_s64): Delete.
1840         (__arm_vstrdq_scatter_offset_p_u64): Delete.
1841         (__arm_vstrdq_scatter_offset_s64): Delete.
1842         (__arm_vstrdq_scatter_offset_u64): Delete.
1843         (__arm_vstrwq_scatter_offset_p_s32): Delete.
1844         (__arm_vstrwq_scatter_offset_p_u32): Delete.
1845         (__arm_vstrwq_scatter_offset_s32): Delete.
1846         (__arm_vstrwq_scatter_offset_u32): Delete.
1847         (__arm_vstrhq_scatter_offset_f16): Delete.
1848         (__arm_vstrhq_scatter_offset_p_f16): Delete.
1849         (__arm_vstrwq_scatter_offset_f32): Delete.
1850         (__arm_vstrwq_scatter_offset_p_f32): Delete.
1851         (__arm_vstrbq_scatter_offset): Delete.
1852         (__arm_vstrbq_scatter_offset_p): Delete.
1853         (__arm_vstrhq_scatter_offset): Delete.
1854         (__arm_vstrhq_scatter_offset_p): Delete.
1855         (__arm_vstrdq_scatter_offset_p): Delete.
1856         (__arm_vstrdq_scatter_offset): Delete.
1857         (__arm_vstrwq_scatter_offset_p): Delete.
1858         (__arm_vstrwq_scatter_offset): Delete.
1859         * config/arm/arm_mve_builtins.def (vstrbq_scatter_offset_s)
1860         (vstrbq_scatter_offset_u, vstrbq_scatter_offset_p_s)
1861         (vstrbq_scatter_offset_p_u, vstrhq_scatter_offset_p_u)
1862         (vstrhq_scatter_offset_u, vstrhq_scatter_offset_p_s)
1863         (vstrhq_scatter_offset_s, vstrdq_scatter_offset_s)
1864         (vstrhq_scatter_offset_f, vstrwq_scatter_offset_f)
1865         (vstrwq_scatter_offset_s, vstrdq_scatter_offset_p_s)
1866         (vstrhq_scatter_offset_p_f, vstrwq_scatter_offset_p_f)
1867         (vstrwq_scatter_offset_p_s, vstrdq_scatter_offset_u)
1868         (vstrwq_scatter_offset_u, vstrdq_scatter_offset_p_u)
1869         (vstrwq_scatter_offset_p_u) Delete.
1870         * config/arm/iterators.md (MVE_VLD_ST_scatter): New.
1871         (MVE_scatter_offset): New.
1872         (MVE_elem_ch): Add entry for V2DI.
1873         (supf): Remove VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S, VSTRHQSO_U,
1874         VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_U, VSTRWQSO_S.
1875         (VSTRBSOQ, VSTRHSOQ, VSTRDSOQ, VSTRWSOQ): Delete.
1876         * config/arm/mve.md (mve_vstrbq_scatter_offset_<supf><mode>):
1877         Delete.
1878         (mve_vstrbq_scatter_offset_<supf><mode>_insn): Delete.
1879         (mve_vstrbq_scatter_offset_p_<supf><mode>): Delete.
1880         (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Delete.
1881         (mve_vstrhq_scatter_offset_p_<supf><mode>): Delete.
1882         (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Delete.
1883         (mve_vstrhq_scatter_offset_<supf><mode>): Delete.
1884         (mve_vstrhq_scatter_offset_<supf><mode>_insn): Delete.
1885         (mve_vstrdq_scatter_offset_p_<supf>v2di): Delete.
1886         (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Delete.
1887         (mve_vstrdq_scatter_offset_<supf>v2di): Delete.
1888         (mve_vstrdq_scatter_offset_<supf>v2di_insn): Delete.
1889         (mve_vstrhq_scatter_offset_fv8hf): Delete.
1890         (mve_vstrhq_scatter_offset_fv8hf_insn): Delete.
1891         (mve_vstrhq_scatter_offset_p_fv8hf): Delete.
1892         (mve_vstrhq_scatter_offset_p_fv8hf_insn): Delete.
1893         (mve_vstrwq_scatter_offset_fv4sf): Delete.
1894         (mve_vstrwq_scatter_offset_fv4sf_insn): Delete.
1895         (mve_vstrwq_scatter_offset_p_fv4sf): Delete.
1896         (mve_vstrwq_scatter_offset_p_fv4sf_insn): Delete.
1897         (mve_vstrwq_scatter_offset_p_<supf>v4si): Delete.
1898         (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Delete.
1899         (mve_vstrwq_scatter_offset_<supf>v4si): Delete.
1900         (mve_vstrwq_scatter_offset_<supf>v4si_insn): Delete.
1901         (@mve_vstrq_scatter_offset_<mode>): New.
1902         (@mve_vstrq_scatter_offset_p_<mode>): New.
1903         (@mve_vstrq_truncate_scatter_offset_<mode>): New.
1904         (@mve_vstrq_truncate_scatter_offset_p_<mode>): New.
1905         * config/arm/unspecs.md (VSTRBQSO_S, VSTRBQSO_U, VSTRHQSO_S)
1906         (VSTRDQSO_S, VSTRDQSO_U, VSTRWQSO_S, VSTRWQSO_U, VSTRHQSO_F)
1907         (VSTRWQSO_F, VSTRHQSO_U): Delete.
1908         (VSTRQSO, VSTRQSO_P, VSTRQSO_TRUNC, VSTRQSO_TRUNC_P): New.
1910 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1912         * config/arm/arm-mve-builtins-shapes.cc (struct store_scatter): New.
1913         (struct store_scatter_offset_def): New.
1914         * config/arm/arm-mve-builtins-shapes.h (store_scatter_offset): New.
1916 2024-12-13  Christophe Lyon  <christophe.lyon@linaro.org>
1918         * config/arm/arm-mve-builtins-shapes.cc (struct
1919         nonoverloaded_base): Implement mode_after_pred.
1920         (struct overloaded_base): Likewise.
1921         * config/arm/arm-mve-builtins.cc (function_builder::get_name):
1922         Call mode_after_pred as needed.
1923         * config/arm/arm-mve-builtins.h (function_shape): Add
1924         mode_after_pred.
1926 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
1928         PR target/111600
1929         * Makefile.in:  Add insn-recog split.
1930         * configure: Regenerate.
1931         * configure.ac: Document that the number of insnemit partitions is
1932         used for insn-recog as well.
1933         * genconditions.cc (write_one_condition): Use fprintf.
1934         * genpreds.cc (write_predicate_expr): Ditto.
1935         (write_init_reg_class_start_regs): Ditto.
1936         * genrecog.cc (write_header): Add header file to includes.
1937         (printf_indent): Use fprintf.
1938         (change_state): Ditto.
1939         (print_code): Ditto.
1940         (print_host_wide_int): Ditto.
1941         (print_parameter_value): Ditto.
1942         (print_test_rtx): Ditto.
1943         (print_nonbool_test): Ditto.
1944         (print_label_value): Ditto.
1945         (print_test): Ditto.
1946         (print_decision): Ditto.
1947         (print_state): Ditto.
1948         (print_subroutine_call): Ditto.
1949         (print_acceptance): Ditto.
1950         (print_subroutine_start): Ditto.
1951         (print_pattern): Ditto.
1952         (print_subroutine): Ditto.
1953         (print_subroutine_group): Ditto.
1954         (handle_arg): Add -O and -H for output and header file handling.
1955         (main): Use callback.
1956         * gentarget-def.cc (def_target_insn): Use fprintf.
1957         * read-md.cc (md_reader::print_c_condition): Ditto.
1958         * read-md.h (class md_reader): Ditto.
1960 2024-12-13  Tamar Christina  <tamar.christina@arm.com>
1962         * config/aarch64/tuning_models/cortexx925.h: Set L1 cache size to 64b.
1963         * config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
1964         * config/aarch64/tuning_models/neoversen1.h: Likewise.
1965         * config/aarch64/tuning_models/neoversen2.h: Likewise.
1966         * config/aarch64/tuning_models/neoversen3.h: Likewise.
1967         * config/aarch64/tuning_models/neoversev1.h: Likewise.
1968         * config/aarch64/tuning_models/neoversev2.h: Likewise.
1969         (neoversev2_prefetch_tune): Removed.
1970         * config/aarch64/tuning_models/neoversev3.h: Likewise.
1971         * config/aarch64/tuning_models/neoversev3ae.h: Likewise.
1973 2024-12-13  Tamar Christina  <tamar.christina@arm.com>
1975         * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_NEOVERSE_BASE):
1976         New.
1977         * config/aarch64/tuning_models/neoverse512tvb.h: Use it.
1978         * config/aarch64/tuning_models/neoversen2.h: Use it.
1979         * config/aarch64/tuning_models/neoversen3.h: Use it.
1980         * config/aarch64/tuning_models/neoversev1.h: Use it.
1981         * config/aarch64/tuning_models/neoversev2.h: Use it.
1982         * config/aarch64/tuning_models/neoversev3.h: Use it.
1983         * config/aarch64/tuning_models/neoversev3ae.h: Use it.
1984         * config/aarch64/tuning_models/cortexx925.h: Add fusions.
1985         * config/aarch64/tuning_models/generic_armv9_a.h: Add fusions.
1987 2024-12-13  Jakub Jelinek  <jakub@redhat.com>
1989         PR target/116979
1990         * config/i386/mmx.md (vec_fmaddsubv2sf4, vec_fmsubaddv2sf4): New
1991         define_expand patterns.
1993 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
1995         * config/riscv/riscv-protos.h (riscv_register_move_cost):
1996         Export.
1997         * config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns):
1998         Rename...
1999         (shuffle_off_by_one_patterns): ... to this and add slideup/slidedown
2000         variant.
2001         (expand_vec_perm_const_1): Call renamed function.
2002         * config/riscv/riscv.cc (riscv_secondary_memory_needed): Remove
2003         static.
2004         (riscv_register_move_cost): Add VR<->GR/FR handling.
2006 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
2008         * config/riscv/riscv-v.cc (shuffle_even_odd_patterns): New
2009         function.
2010         (expand_vec_perm_const_1): Use new function.
2012 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
2014         * config/riscv/riscv-v.cc (shuffle_interleave_patterns): New
2015         function.
2016         (expand_vec_perm_const_1): Use new function.
2018 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
2020         * config/riscv/riscv-v.cc (shuffle_slide_patterns): New.
2021         (expand_vec_perm_const_1): Call new function.
2023 2024-12-13  Robin Dapp  <rdapp@ventanamicro.com>
2025         PR target/117353
2026         PR target/117878
2027         * config/riscv/riscv-v.cc (expand_const_vector): Use predicated
2028         instead of simple shift.
2030 2024-12-13  Pan Li  <pan2.li@intel.com>
2032         PR target/117990
2033         * config/riscv/vector.md: Add the (mem:BLK (scratch)) to the
2034         vector strided load.
2036 2024-12-13  Sandra Loosemore  <sloosemore@baylibre.com>
2038         PR middle-end/111659
2039         * doc/extend.texi (Common Variable Attributes): Copy-edit description
2040         of the strict_flex_array attribute levels.
2041         * doc/invoke.texi (C Dialect Options): Swap documented behavior for
2042         levels 0 and 3.  Copy the description for the other levels from the
2043         attribute instead of indirecting to it.
2045 2024-12-12  John David Anglin  <danglin@gcc.gnu.org>
2047         * config/pa/pa.cc (pa_emit_hpdiv_const): Clobber r1, r25,
2048         r25 and return register.
2049         * config/pa/pa.md (divsi3): Revise clobbers and operands.
2050         Remove second clobber from div:SI insns.
2051         (udivsi3, modsi3, umodsi3): Likewise.
2053 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
2055         * attr-urls.def: Regenerate.
2057 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
2058             Peter Eisentraut  <peter@eisentraut.org>
2060         PR c/115532
2061         * common.opt.urls: Regenerated.
2062         * doc/invoke.texi (Option Summary): Don't try to list all the
2063         -Wsuggest-attribute= variants inline here.
2064         (Warning Options): Likewise.  Add @opindex for
2065         Wsuggest-attribute=returns_nonnull and its no- form.  Remove
2066         @itemx for no- form.
2068 2024-12-12  Jakub Jelinek  <jakub@redhat.com>
2070         PR sanitizer/115127
2071         * match.pd (clz (X) == C, ctz (X) == C, ctz (X) >= C): Don't
2072         optimize if -fsanitize=builtin and not yet in SSA form.
2074 2024-12-12  Tobias Burnus  <tburnus@baylibre.com>
2076         * gimplify.cc (gimplify_call_expr): When handling OpenMP's dispatch,
2077         add diagnostic when there is a ptr vs. addr mismatch between
2078         need_device_{addr,ptr} and {is,has}_device_{ptr,addr}, respectively.
2080 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
2082         PR target/118000
2083         * config/avr/avr.cc (avr_init_expanders) <sreg_rtx>
2084         <rampd_rtx, rampx_rtx, rampy_rtx, rampz_rtx>: Set MEM_VOLATILE_P.
2085         (avr_out_cpymem) [ELPM && EBI]: Restore RAMPZ to 0 after.
2087 2024-12-12  Alexandre Oliva  <oliva@adacore.com>
2089         * gimple-fold.cc (fold_truth_andor_for_ifcombine): Limit the
2090         size of the bitregion in get_best_mode calls by the inner
2091         object's type size, if known.
2092         (make_bit_field_load): Reuse SSA_NAME if we're attempting to
2093         issue an identical load.
2095 2024-12-12  Alexandre Oliva  <oliva@adacore.com>
2097         * fold-const.cc (make_bit_field): Export.
2098         (unextend, all_ones_mask_p): Drop.
2099         (decode_field_reference, fold_truth_andor_1): Move
2100         field compare merging logic...
2101         * gimple-fold.cc: (fold_truth_andor_for_ifcombine) ... here,
2102         with -Wtautological-compare warning guards, and...
2103         (decode_field_reference): ... here.  Rework for gimple.
2104         (gimple_convert_def_p, gimple_binop_def_p): New.
2105         (compute_split_boundary_from_align): New.
2106         (make_bit_field_load, build_split_load): New.
2107         (reuse_split_load): New.
2108         * fold-const.h: (make_bit_field_ref): Declare
2109         (fold_truth_andor_for_ifcombine): Declare.
2110         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Try
2111         fold_truth_andor_for_ifcombine.
2112         * common.opt (Wtautological-compare): Move here.
2114 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
2116         * config/avr/avr.cc (avr_ctz): New constexpr function.
2117         (section_common::flags): Assert minimal bit width.
2119 2024-12-12  Georg-Johann Lay  <avr@gjlay.de>
2121         PR target/118001
2122         * doc/extend.texi (AVR Named Address Spaces): Document __flashx.
2123         * config/avr/avr.h (ADDR_SPACE_FLASHX): New enum value.
2124         * config/avr/avr-protos.h (avr_out_fload, avr_mem_flashx_p)
2125         (avr_fload_libgcc_p, avr_load_libgcc_mem_p)
2126         (avr_load_libgcc_insn_p): New.
2127         * config/avr/avr.cc (avr_addrspace): Add ADDR_SPACE_FLASHX.
2128         (avr_decl_flashx_p, avr_mem_flashx_p, avr_fload_libgcc_p)
2129         (avr_load_libgcc_mem_p, avr_load_libgcc_insn_p, avr_out_fload):
2130         New functions.
2131         (avr_adjust_insn_length) [ADJUST_LEN_FLOAD]: Handle case.
2132         (avr_progmem_p) [avr_decl_flashx_p]: return 2.
2133         (avr_addr_space_legitimate_address_p) [ADDR_SPACE_FLASHX]:
2134         Has same behavior like ADDR_SPACE_MEMX.
2135         (avr_addr_space_convert): Use pointer sizes rather then ASes.
2136         (avr_addr_space_contains): New function.
2137         (avr_convert_to_type): Use it.
2138         (avr_emit_cpymemhi): Handle ADDR_SPACE_FLASHX.
2139         * config/avr/avr.md (adjust_len) <fload>: New attr value.
2140         (gen_load<mode>_libgcc): Renamed from load<mode>_libgcc.
2141         (xload8<mode>_A): Iterate over MOVMODE rather than over ALL1.
2142         (fxmov<mode>_A): New from xloadv<mode>_A.
2143         (xmov<mode>_8): New from xload<mode>_A.
2144         (fmov<mode>): New insns.
2145         (fxload<mode>_A): New from xload<mode>_A.
2146         (fxload_<mode>_libgcc): New from xload_<mode>_libgcc.
2147         (*fxload_<mode>_libgcc): New from *xload_<mode>_libgcc.
2148         (mov<mode>) [avr_mem_flashx_p]: Hande ADDR_SPACE_FLASHX.
2149         (cpymemx_<mode>): Make sure the address space is not lost
2150         when splitting.
2151         (*cpymemx_<mode>) [ADDR_SPACE_FLASHX]: Use __movmemf_<mode> for asm.
2152         (*ashlqi.1.zextpsi_split): New combine pattern.
2153         * config/avr/predicates.md (nox_general_operand): Don't match
2154         when avr_mem_flashx_p is true.
2155         * config/avr/avr-passes.cc (AVR_LdSt_Props):
2156         ADDR_SPACE_FLASHX has no post_inc.
2158 2024-12-12  Martin Uecker  <uecker@tugraz.at>
2160         PR c/113688
2161         PR c/114014
2162         PR c/114713
2163         PR c/117724
2164         * tree.cc (gimple_canonical_types_compatible_p): Add exception.
2166 2024-12-12  Martin Uecker  <uecker@tugraz.at>
2168         * tree.cc (gimple_canonical_types_compatible_p): Add exception.
2169         (verify_type): Add exception.
2171 2024-12-12  Sam James  <sam@gentoo.org>
2173         * config/i386/i386.opt.urls: Regenerate.
2175 2024-12-12  Jakub Jelinek  <jakub@redhat.com>
2177         * gimple-crc-optimization.cc (crc_optimization::optimize_crc_loop):
2178         Comment spelling fix, is succeeded -> succeeded.
2180 2024-12-12  Sandra Loosemore  <sloosemore@baylibre.com>
2182         PR target/117150
2183         * doc/invoke.texi (RS/6000 and PowerPC Options): Move description
2184         of -mstack-protector-guard-symbol from here...
2185         (x86 Options): ...to here.
2187 2024-12-11  Vladimir N. Makarov  <vmakarov@redhat.com>
2189         PR rtl-optimization/116778
2190         * ira-int.h (x_ira_class_hard_reg_index): Fix comment typo.
2191         * lra-eliminations.cc (lra_fp_pseudo_p): New function.
2192         * lra-int.h (lra_fp_pseudo_p): External declaration.
2193         * lra-spills.cc (lra_need_for_spills_p): Fix formatting.
2194         * lra.cc (lra): Use lra_fp_pseudo_p in lra_create_live_range after
2195         lra_remat.
2197 2024-12-11  Filip Kastl  <fkastl@suse.cz>
2198             Andi Kleen  <ak@gcc.gnu.org>
2200         PR middle-end/117091
2201         PR middle-end/117352
2202         * doc/invoke.texi: Add switch-lower-slow-alg-max-cases.
2203         * params.opt: Add switch-lower-slow-alg-max-cases.
2204         * tree-switch-conversion.cc (jump_table_cluster::find_jump_tables):
2205         Note in a comment that we are looking for jump tables in
2206         case sequences delimited by the already found bit tests.
2207         (bit_test_cluster::find_bit_tests): Decide between
2208         find_bit_tests_fast() and find_bit_tests_slow().
2209         (bit_test_cluster::find_bit_tests_fast): New function.
2210         (bit_test_cluster::find_bit_tests_slow): New function.
2211         (switch_decision_tree::analyze_switch_statement): Report
2212         exceeding the limit.
2213         * tree-switch-conversion.h: Add find_bit_tests_fast() and
2214         find_bit_tests_slow().
2216 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
2218         * diagnostic-highlight-colors.h: Tweak comment.
2219         * pretty-print-markup.h (class pp_element_quoted_string): New,
2220         based on pretty-print.cc's selftest::test_element, adding an
2221         optional highlight color.
2222         * pretty-print.cc (class test_element): Drop.
2223         (selftest::test_pp_format): Use pp_element_quoted_string.
2224         (selftest::test_urlification): Likewise.
2226 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
2228         PR other/116253
2229         * diagnostic-format-text.cc (build_prefix): Don't add the
2230         "note: " prefix when showing nested diagnostics.
2232 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
2234         PR other/116253
2235         * diagnostic-format-text.cc (on_report_diagnostic): When showing
2236         locations for nested messages on new lines, don't print
2237         UNKNOWN_LOCATION or BUILTINS_LOCATION.
2239 2024-12-11  David Malcolm  <dmalcolm@redhat.com>
2241         * input.cc (file_cache::initialize_input_context): Rename member
2242         "in_context" to "m_input_context".
2243         (file_cache::add_file): Likewise.
2244         * input.h (class file_cache): Likewise.
2246 2024-12-11  Martin Jambor  <mjambor@suse.cz>
2248         * ipa-cp.h: Forward declare class ipa_vr.
2249         (ipa_vr_operation_and_type_effects) Declare.
2250         * ipa-cp.cc (ipa_vr_operation_and_type_effects): Make public.
2251         * ipa-prop.cc (update_jump_functions_after_inlining): Also update
2252         value range jump functions.
2254 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
2255             Tamar Christina  <tamar.christina@arm.com>
2257         PR target/96342
2258         * expr.cc (store_constructor): Enable poly_{u}int64 type usage.
2259         (get_inner_reference): Ditto.
2261 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
2262             Tamar Christina  <tamar.christina@arm.com>
2264         PR target/96342
2265         * expr.cc (store_constructor): add support for variable-length
2266         vectors.
2268 2024-12-11  Victor Do Nascimento  <victor.donascimento@arm.com>
2270         PR target/96342
2271         * tree-vect-stmts.cc (vectorizable_simd_clone_call):
2272         s/vectype/masktype/ in call to vect_get_loop_mask.
2274 2024-12-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
2275             Victor Do Nascimento  <victor.donascimento@arm.com>
2276             Tamar Christina  <tamar.christina@arm.com>
2278         PR target/96342
2279         * target.def (TARGET_SIMD_CLONE_USABLE): Add argument.
2280         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Pass stmt_info to
2281         call TARGET_SIMD_CLONE_USABLE.
2282         * config/aarch64/aarch64.cc (aarch64_simd_clone_usable): Add argument
2283         and use it to reject the use of SVE simd clones with Advanced SIMD
2284         modes.
2285         * config/gcn/gcn.cc (gcn_simd_clone_usable): Add unused argument.
2286         * config/i386/i386.cc (ix86_simd_clone_usable): Likewise.
2287         * doc/tm.texi: Regenerate
2289 2024-12-11  Tamar Christina  <tamar.christina@arm.com>
2291         PR tree-optimization/114932
2292         * fold-const.cc (operand_compare::operand_equal_p): Use it.
2293         (operand_compare::verify_hash_value): Likewise.
2294         (operand_compare::hash_operand): Likewise.
2295         (test_operand_equality::test): New.
2296         (fold_const_cc_tests): Use it.
2297         * tree-core.h (enum operand_equal_flag): Add OEP_ASSUME_WRAPV.
2298         * tree-ssa-loop-ivopts.cc (record_group_use): Check for structural eq.
2300 2024-12-11  Tamar Christina  <tamar.christina@arm.com>
2302         PR tree-optimization/114932
2303         * fold-const.cc (operand_compare::operand_equal_p): Split into one that
2304         takes explicit type parameters and use that in public one.
2305         * fold-const.h (class operand_compare): Add operand_equal_p private
2306         overload.
2308 2024-12-11  Soumya AR  <soumyaa@nvidia.com>
2309             Richard Sandiford  <richard.sandiford@arm.com>
2311         * config/aarch64/aarch64.cc (aarch64_ptrue_reg): New overload.
2312         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Likewise.
2313         * config/aarch64/aarch64-sve.md: Extended sdiv_pow2<mode>3
2314         and *sdiv_pow2<mode>3 to support Neon modes.
2316 2024-12-11  Soumya AR  <soumyaa@nvidia.com>
2318         * config/aarch64/aarch64-sve2.md
2319         (*aarch64_sve2_nbsl_unpred<mode>): New pattern to match unpredicated
2320         form.
2321         (*aarch64_sve2_bsl1n_unpred<mode>): Likewise.
2322         (*aarch64_sve2_bsl2n_unpred<mode>): Likewise.
2324 2024-12-11  liuhongt  <hongtao.liu@intel.com>
2326         PR tree-optimization/117888
2327         * tree-ssa-loop-ivcanon.cc (try_unroll_loop_completely): Use
2328         cunrolli instead of cunrolli && !loop->inner to check if it's
2329         innermost loop.
2330         (canonicalize_loop_induction_variables): Add new parameter
2331         const_sbitmap innermost, and pass
2332         cunrolli
2333         && (unsigned) loop->num < SBITMAP_SIZE (innermost)
2334         && bitmap_bit_p (innermost, loop->num) as "cunrolli" to
2335         try_unroll_loop_completely
2336         (canonicalize_induction_variables): Pass innermost to
2337         canonicalize_loop_induction_variables.
2338         (tree_unroll_loops_completely_1): Add new parameter
2339         const_sbitmap innermost.
2340         (tree_unroll_loops_completely): Move local variable cunrolli
2341         to parameter to indicate it's from pass cunrolli, also track
2342         all "original" innermost loop at the beginning.
2344 2024-12-10  David Malcolm  <dmalcolm@redhat.com>
2346         PR other/117944
2347         * libsarifreplay.cc (sarif_replayer::handle_result_obj): Get any
2348         helpUri from the rule_obj and pass it to add_rule.
2350 2024-12-10  Vladimir N. Makarov  <vmakarov@redhat.com>
2352         PR rtl-optimization/117946
2353         * lra-assigns.cc: (find_hard_regno_for_1): Use the biggest mode to
2354         check ira_prohibited_class_mode_regs.
2356 2024-12-10  Marek Polacek  <polacek@redhat.com>
2358         PR c++/117880
2359         * fold-const.cc (operand_compare::operand_equal_p) <case tcc_unary>:
2360         Use OP_SAME_WITH_NULL instead of OP_SAME.
2362 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2364         PR target/117675
2365         * config/arm/arm.cc (arm_ldrd_legitimate_address): New function.
2366         * config/arm/arm-protos.h (arm_ldrd_legitimate_address): New prototype.
2367         * config/arm/constraints.md: Add new Uo constraint.
2368         * config/arm/predicates.md (arm_ldrd_memory_operand): Add new predicate.
2369         * config/arm/sync.md (arm_atomic_loaddi2_ldrd): Use
2370         arm_ldrd_memory_operand and Uo.
2372 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2374         * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNE_BASE): New define.
2375         * config/aarch64/tuning_models/ampere1b.h: Use AARCH64_EXTRA_TUNE_BASE.
2376         * config/aarch64/tuning_models/cortexx925.h: Likewise.
2377         * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
2378         * config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
2379         * config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
2380         * config/aarch64/tuning_models/neoversen1.h: Likewise.
2381         * config/aarch64/tuning_models/neoversen2.h: Likewise.
2382         * config/aarch64/tuning_models/neoversen3.h: Likewise.
2383         * config/aarch64/tuning_models/neoversev1.h: Likewise.
2384         * config/aarch64/tuning_models/neoversev2.h: Likewise.
2385         * config/aarch64/tuning_models/neoversev3.h: Likewise.
2386         * config/aarch64/tuning_models/neoversev3ae.h: Likewise.
2388 2024-12-10  Wilco Dijkstra  <wilco.dijkstra@arm.com>
2390         * config/aarch64/aarch64.h (AARCH64_EXPAND_ALIGNMENT): Remove.
2391         (DATA_ALIGNMENT): Use aarch64_data_alignment.
2392         (LOCAL_ALIGNMENT): Use aarch64_stack_alignment.
2393         * config/aarch64/aarch64.cc (aarch64_data_alignment): New function.
2394         (aarch64_stack_alignment): Likewise.
2395         * config/aarch64/aarch64-protos.h (aarch64_data_alignment): New prototype.
2396         (aarch64_stack_alignment): Likewise.
2398 2024-12-10  Wilco Dijkstra  <wdijkstr@ip-10-252-53-150.eu-west-1.compute.internal>
2400         * config/aarch64/aarch64.cc (aarch64_classify_address): Treat SIMD structs
2401         identically in little and bigendian.
2402         * config/aarch64/aarch64-simd.md (aarch64_mov<mode>): Remove VSTRUCT
2403         instructions.
2404         (aarch64_be_mov<mode>): Allow little-endian, rename to aarch64_mov<mode>.
2405         (aarch64_be_movoi): Allow little-endian, rename to aarch64_movoi.
2406         (aarch64_be_movci): Allow little-endian, rename to aarch64_movci.
2407         (aarch64_be_movxi): Allow little-endian, rename to aarch64_movxi.
2408         Remove big-endian special case in define_split variants.
2410 2024-12-10  Arsen Arsenović  <arsen@aarsen.me>
2411             Iain Sandoe  <iain@sandoe.co.uk>
2413         * dumpfile.cc (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 6 for sake
2414         of the coroutine dump.
2416 2024-12-10  Richard Sandiford  <richard.sandiford@arm.com>
2418         * doc/md.texi (vcond@var{m}@var{n}, vcondu@var{m}@var{n})
2419         (vcondeq@var{m}@var{n}): Delete.
2420         (vcond_mask_@var{m}@var{n}): Redocument in standalone form.
2421         * internal-fn.def (VCOND, VCONDU, VCONDEQ): Delete.
2422         * internal-fn.cc (expand_vec_cond_optab_fn): Delete.
2423         * optabs.def (vcond_optab, vcondu_optab, vcondeq_optab): Delete.
2425 2024-12-10  Richard Sandiford  <richard.sandiford@arm.com>
2427         * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vcond): Delete.
2428         * config/aarch64/aarch64-simd.md (<su><maxmin>v2di3): Expand into
2429         separate vec_cmp and vcond_mask instructions, instead of using vcond.
2430         (vcond<mode><mode>, vcond<v_cmp_mixed><mode>, vcondu<mode><mode>)
2431         (vcondu<mode><v_cmp_mixed>): Delete.
2432         * config/aarch64/aarch64-sve.md (vcond<SVE_ALL:mode><SVE_I:mode>)
2433         (vcondu<SVE_ALL:mode><SVE_I:mode>, vcond<mode><v_fp_equiv>): Likewise.
2434         * config/aarch64/aarch64.cc (aarch64_expand_sve_vcond): Likewise.
2435         * config/aarch64/iterators.md (V_FP_EQUIV, v_fp_equiv, V_cmp_mixed)
2436         (v_cmp_mixed): Likewise.
2438 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
2439             Richard Sandiford  <richard.sandiford@arm.com>
2441         * config/aarch64/aarch64-builtins.cc
2442         (aarch64_pragma_builtins_checker::require_immediate_lane_index): New
2443         overload.
2444         (aarch64_pragma_builtins_checker::check): Add support for FP8FMA
2445         intrinsics.
2446         (aarch64_expand_pragma_builtins): Likewise.
2447         * config/aarch64/aarch64-c.cc
2448         (aarch64_update_cpp_builtins): Conditionally define TARGET_FP8FMA.
2449         * config/aarch64/aarch64-simd-pragma-builtins.def: Add the FP8FMA
2450         intrinsics.
2451         * config/aarch64/aarch64-simd.md:
2452         (@aarch64_<FMLAL_FP8_HF:insn><mode): New pattern.
2453         (@aarch64_<FMLAL_FP8_HF:insn>_lane<V8HF_ONLY:mode><VB:mode>):
2454         Likewise.
2455         (@aarch64_<FMLALL_FP8_SF:insn><mode): Likewise.
2456         (@aarch64_<FMLALL_FP8_SF:insn>_lane<V8HF_ONLY:mode><VB:mode>):
2457         Likewise.
2458         * config/aarch64/iterators.md (V8HF_ONLY): New mode iterator.
2459         (SVE2_FP8_TERNARY_VNX8HF): Rename to...
2460         (FMLAL_FP8_HF): ...this.
2461         (SVE2_FP8_TERNARY_LANE_VNX8HF): Delete in favor of FMLAL_FP8_HF.
2462         (SVE2_FP8_TERNARY_VNX4SF): Rename to...
2463         (FMLALL_FP8_SF): ...this.
2464         (SVE2_FP8_TERNARY_LANE_VNX4SF): Delete in favor of FMLALL_FP8_SF.
2465         (sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Fold into...
2466         (insn): ...here.
2467         * config/aarch64/aarch64-sve2.md: Update uses accordingly.
2469 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
2470             Richard Sandiford  <richard.sandiford@arm.com>
2472         * config/aarch64/aarch64-builtins.cc
2473         (enum class): Add ternary_lane.
2474         (aarch64_fntype): Hnadle ternary_lane.
2475         (aarch64_pragma_builtins_checker::require_immediate_lane_index): New
2476         function.
2477         (aarch64_pragma_builtins_checker::check): Handle the new intrinsics.
2478         (aarch64_expand_pragma_builtin): Likewise.
2479         * config/aarch64/aarch64-c.cc
2480         (aarch64_update_cpp_builtins): Define TARGET_FP8DOT2 and
2481         TARGET_FP8DOT4.
2482         * config/aarch64/aarch64-simd-pragma-builtins.def: Define vdot
2483         and vdot_lane intrinsics.
2484         * config/aarch64/aarch64-simd.md
2485         (@aarch64_<fpm_uns_op><mode>): New pattern.
2486         (@aarch64_<fpm_uns_op>_lane<VQ_HSF_VDOT:mode><VB:mode>): Likewise.
2487         * config/aarch64/iterators.md (VQ_HSF_VDOT): New mode iterator.
2488         (UNSPEC_VDOT, UNSPEC_VDOT_LANE): New unspecs.
2489         (fpm_uns_op): Handle them.
2490         (VNARROWB, Vnbtype): New mode attributes.
2491         (FPM_VDOT, FPM_VDOT_LANE): New int iterators.
2493 2024-12-10  Saurabh Jha  <saurabh.jha@arm.com>
2494             Richard Sandiford  <richard.sandiford@arm.com>
2496         * config/aarch64/aarch64-builtins.cc
2497         (FLAG_USES_FPMR, FLAG_FP8): New flags.
2498         (ENTRY): Modified to support ternary operations.
2499         (enum class): New variants to support new signatures.
2500         (struct aarch64_pragma_builtins_data): Extend types to 4 elements.
2501         (aarch64_fntype): Handle new signatures.
2502         (aarch64_get_low_unspec): New function.
2503         (aarch64_convert_to_v64): New function, split out from...
2504         (aarch64_expand_pragma_builtin): ...here.  Handle new signatures.
2505         * config/aarch64/aarch64-c.cc
2506         (aarch64_update_cpp_builtins): New flag for FP8.
2507         * config/aarch64/aarch64-simd-pragma-builtins.def: Define new fp8
2508         intrinsics.
2509         (ENTRY_BINARY, ENTRY_BINARY_LANE): Update for new ENTRY interface.
2510         (ENTRY_UNARY, ENTRY_TERNARY, ENTRY_UNARY_FPM): New macros.
2511         (ENTRY_BINARY_VHSDF_SIGNED): Likewise.
2512         * config/aarch64/aarch64-simd.md
2513         (@aarch64_<fpm_uns_op><mode>): New pattern.
2514         (@aarch64_<fpm_uns_op><mode>_high): Likewise.
2515         (@aarch64_<fpm_uns_op><mode>_high_be): Likewise.
2516         (@aarch64_<fpm_uns_op><mode>_high_le): Likewise.
2517         * config/aarch64/iterators.md (V4SF_ONLY, VQ_BHF): New mode iterators.
2518         (UNSPEC_FCVTN_FP8, UNSPEC_FCVTN2_FP8, UNSPEC_F1CVTL_FP8)
2519         (UNSPEC_F1CVTL2_FP8, UNSPEC_F2CVTL_FP8, UNSPEC_F2CVTL2_FP8)
2520         (UNSPEC_FSCALE): New unspecs.
2521         (VPACKB, VPACKBtype): New mode attributes.
2522         (b): Add support for V[48][BH]F.
2523         (FPM_UNARY_UNS, FPM_BINARY_UNS, SCALE_UNS): New int iterators.
2524         (insn): New int attribute.
2526 2024-12-10  Richard Biener  <rguenther@suse.de>
2528         PR tree-optimization/117912
2529         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): For addresses
2530         of zero-sized components do not set ->off if the object size pass
2531         didn't run.
2532         For OOB ARRAY_REF accesses in address expressions avoid setting
2533         ->off if the object size pass didn't run.
2534         (valueize_refs_1): Likewise.
2536 2024-12-10  Antoni Boucher  <bouanto@zoho.com>
2538         PR target/117923
2539         * config/aarch64/aarch64-builtins.cc: Remove GTY marker on aarch64_simd_types,
2540         aarch64_simd_types_trees (new variable), rename aarch64_simd_types to
2541         aarch64_simd_types_trees.
2542         * config/aarch64/aarch64-builtins.h: Remove GTY marker on aarch64_simd_types,
2543         aarch64_simd_types_trees (new variable).
2544         * config/aarch64/aarch64-sve-builtins-shapes.cc: Rename aarch64_simd_types to
2545         aarch64_simd_types_trees.
2546         * config/aarch64/aarch64-sve-builtins.cc: Rename aarch64_simd_types to
2547         aarch64_simd_types_trees.
2549 2024-12-09  Mariam Arutunian  <mariamarutunian@gmail.com>
2550             Richard Sandiford  <richard.sandiford@arm.com>
2552         * config/aarch64/aarch64-protos.h (aarch64_expand_crc_using_pmull): New
2553         extern function declaration.
2554         (aarch64_expand_reversed_crc_using_pmull):  Likewise.
2555         * config/aarch64/aarch64.cc (aarch64_expand_crc_using_pmull): New
2556         function.
2557         (aarch64_expand_reversed_crc_using_pmull):  Likewise.
2558         * config/aarch64/aarch64.md (crc_rev<ALLI:mode><ALLX:mode>4): New
2559         expander for reversed CRC.
2560         (crc<ALLI:mode><ALLX:mode>4): New expander for bit-forward CRC.
2561         * config/aarch64/iterators.md (crc_data_type): New mode attribute.
2563 2024-12-09  Marek Polacek  <polacek@redhat.com>
2565         PR driver/117942
2566         * opts-common.cc (decode_cmdline_options_to_array): Also detect
2567         --diagnostics-plain-output.
2569 2024-12-09  Richard Sandiford  <richard.sandiford@arm.com>
2571         * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>): Add
2572         "@" to the name.
2574 2024-12-09  Richard Biener  <rguenther@suse.de>
2576         * late-combine.cc (late_combine::execute): Delete RTL SSA.
2578 2024-12-09  Richard Biener  <rguenther@suse.de>
2580         * timevar.def (TV_DUP_COMPGOTO): Add.
2581         * bb-reorder.cc (pass_data_duplicate_computed_gotos): Use
2582         TV_DUP_COMPGOTO.
2584 2024-12-09  Juergen Christ  <jchrist@linux.ibm.com>
2586         * config/s390/s390.cc (s390_canonicalize_comparison): Add
2587         missing UNSPEC_CC_TO_INT case.
2589 2024-12-09  Matthew Malcomson  <mmalcomson@nvidia.com>
2591         * config/aarch64/aarch64-c.cc
2592         (aarch64_resolve_overloaded_builtin,aarch64_check_builtin_call):
2593         Add new unused boolean parameter to match target hook
2594         definition.
2595         * config/arm/arm-builtins.cc (arm_check_builtin_call): Likewise.
2596         * config/arm/arm-c.cc (arm_resolve_overloaded_builtin):
2597         Likewise.
2598         * config/arm/arm-protos.h (arm_check_builtin_call): Likewise.
2599         * config/avr/avr-c.cc (avr_resolve_overloaded_builtin):
2600         Likewise.
2601         * config/riscv/riscv-c.cc (riscv_check_builtin_call,
2602         riscv_resolve_overloaded_builtin): Likewise.
2603         * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
2604         Likewise.
2605         * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
2606         Likewise.
2607         * config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
2608         Likewise.
2609         * doc/tm.texi: Regenerate.
2610         * target.def (TARGET_RESOLVE_OVERLOADED_BUILTIN,
2611         TARGET_CHECK_BUILTIN_CALL): Update prototype to include a
2612         boolean parameter that indicates whether errors should be
2613         emitted.  Update documentation to mention this fact.
2615 2024-12-09  Jakub Jelinek  <jakub@redhat.com>
2617         PR sanitizer/117960
2618         * doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets
2619         it is supported.
2621 2024-12-09  Richard Earnshaw  <rearnsha@arm.com>
2623         PR target/114189
2624         * config/arm/arm-protos.h (arm_expand_vcond): Delete prototype.
2625         * config/arm/arm.cc (arm_expand_vcond): Delete function.
2626         * config/arm/vec-common.md (vcond<mode><mode>): Delete pattern
2627         (vcond<V_cvtto><mode>): Likewise.
2628         (vcond<VH_cvtto><mode>): Likewise.
2629         (vcondu<mode><v_cmp_result>): Likewise.
2631 2024-12-09  Richard Biener  <rguenther@suse.de>
2633         PR middle-end/117932
2634         * df-core.cc (df_worklist_propagate_forward): Elide
2635         age check for the first iteration, adjust for
2636         last_change_age change.
2637         (df_worklist_propagate_backward): Likewise.
2638         (df_worklist_dataflow_doublequeue): Make last_change_age
2639         indexed by BB index, avoid clearing both age arrays.
2641 2024-12-09  Richard Biener  <rguenther@suse.de>
2643         PR middle-end/117932
2644         * df-core.cc (df_worklist_propagate_forward): When WORKLIST
2645         is NULL, do not set bits there.
2646         (df_worklist_propagate_backward): Likewise.
2647         (df_worklist_dataflow_doublequeue): Separate first pass
2648         over all blocks with NULL worklist.
2649         (df_worklist_dataflow): Do not initialize pending and adjust.
2651 2024-12-09  Thomas Schwinge  <tschwinge@baylibre.com>
2653         * config.gcc [nvptx-*]: Switch default from '-march=sm_30' to
2654         '-march=sm_52'.
2655         * doc/install.texi (Nvidia PTX Options): Update.
2657 2024-12-09  Thomas Schwinge  <tschwinge@baylibre.com>
2659         * config/gcn/gcn.cc (gcn_vec_constant): Fix 'real_from_integer'
2660         usage.
2662 2024-12-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
2664         * config/aarch64/aarch64-option-extensions.def (sve-b16b16,
2665         f32mm, f64mm, sve2p1, sme-f64f64, sme-i16i64, sme-b16b16,
2666         sme-f16f16, mops): Update FEATURE_STRING field.
2668 2024-12-09  Simon Martin  <simon@nasilyan.com>
2670         PR c++/117845
2671         * tree-eh.cc (honor_protect_cleanup_actions): Support empty
2672         finally sequences.
2674 2024-12-08  Lewis Hyatt  <lhyatt@gmail.com>
2676         * gimple.h (struct gphi): Update word marking comments to reflect
2677         the new size of location_t.
2678         (struct gimple): Likewise. Add a comment about padding.
2679         * common.opt: Mark -flarge-source-files as Ignored.
2680         * common.opt.urls: Regenerate.
2681         * doc/invoke.texi: Remove -flarge-source-files.
2682         * toplev.cc (process_options): Remove support for
2683         -flarge-source-files.
2685 2024-12-08  Dimitar Dimitrov  <dimitar@dinux.eu>
2687         * config/pru/pru.cc (pru_print_operand): Implement c and n
2688         inline assembly operand modifiers.
2690 2024-12-07  Eric Botcazou  <ebotcazou@adacore.com>
2692         * config/sparc/sparc.md (VIS4B instructions): Add comments.
2694 2024-12-07  Georg-Johann Lay  <avr@gjlay.de>
2696         * config/avr/avr.cc (avr_print_operand_address): Use
2697         avr_insn_location as location for late (during final) diagnostic.
2699 2024-12-07  Jakub Jelinek  <jakub@redhat.com>
2701         PR target/117930
2702         * config/i386/i386.md (crotate): New define_code_attr.
2703         (*<insn><mode>3_add, *<insn><mode>3_add_1,
2704         *<insn><mode>3_sub, *<insn><mode>3_sub_1): New define_insn_and_split
2705         patterns plus following define_split for constant first input
2706         operand.
2708 2024-12-07  Denis Chertykov  <chertykov@gmail.com>
2710         PR target/116778
2711         * lra-lives.cc (complete_info_p): Clarification of the comment.
2712         * lra.cc (lra): Create a full live info after rematerialization.
2714 2024-12-07  Kito Cheng  <kito.cheng@sifive.com>
2716         Revert:
2717         2024-12-05  Kito Cheng  <kito.cheng@sifive.com>
2719         * config/riscv/riscv-vector-builtins-shapes.cc
2720         (vsetvl_def::get_name): Adjust return type.
2721         (loadstore_def::get_name): Ditto.
2722         (indexed_loadstore_def::get_name): Ditto.
2723         (th_loadstore_width_def::get_name): Ditto.
2724         (th_indexed_loadstore_width_def::get_name): Ditto.
2725         (alu_def::get_name): Ditto.
2726         (alu_frm_def::get_name): Ditto.
2727         (widen_alu_frm_def::get_name): Ditto.
2728         (narrow_alu_frm_def::get_name): Ditto.
2729         (reduc_alu_frm_def::get_name): Ditto.
2730         (widen_alu_def::get_name): Ditto.
2731         (no_mask_policy_def::get_name): Ditto.
2732         (return_mask_def::get_name): Ditto.
2733         (narrow_alu_def::get_name): Ditto.
2734         (move_def::get_name): Ditto.
2735         (mask_alu_def::get_name): Ditto.
2736         (reduc_alu_def::get_name): Ditto.
2737         (th_extract_def::get_name): Ditto.
2738         (scalar_move_def::get_name): Ditto.
2739         (vundefined_def::get_name): Ditto.
2740         (misc_def::get_name): Ditto.
2741         (vset_def::get_name): Ditto.
2742         (vcreate_def: Ditto.::get_name): Ditto.
2743         (read_vl_def::get_name): Ditto.
2744         (fault_load_def::get_name): Ditto.
2745         (vlenb_def::get_name): Ditto.
2746         (seg_loadstore_def::get_name): Ditto.
2747         (seg_indexed_loadstore_def::get_name): Ditto.
2748         (seg_fault_load_def::get_name): Ditto.
2749         (crypto_vv_def::get_name): Ditto.
2750         (crypto_vi_def::get_name): Ditto.
2751         (crypto_vv_no_op_type_def::get_name): Ditto.
2752         (sf_vqmacc_def::get_name): Ditto.
2753         (sf_vqmacc_def::get_name): Ditto.
2754         (sf_vfnrclip_def::get_name): Ditto.
2755         * config/riscv/riscv-vector-builtins.cc
2756         (function_builder::add_unique_function): Adjust the type for the
2757         function name holder.
2758         (function_builder::add_overloaded_function): Ditto.
2759         * config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add
2760         const to the return type.
2762 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
2764         * libgdiagnostics.cc (struct diagnostic_manager): Use location_t(-1)
2765         instead of UINT_MAX to support 64-bit location_t as well.
2766         (diagnostic_manager::diagnostic_manager): Change hard-coded "5" to
2767         line_map_suggested_range_bits.
2769 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
2771         * rtl.def (DEBUG_INSN): Use new format code 'L' for location_t fields.
2772         (INSN): Likewise.
2773         (JUMP_INSN): Likewise.
2774         (CALL_INSN): Likewise.
2775         (ASM_INPUT): Likewise.
2776         (ASM_OPERANDS): Likewise.
2777         * rtl.h (union rtunion): Add new location_t RT_LOC member for use by
2778         the 'L' format.
2779         (struct rtx_debug_insn): Adjust comment.
2780         (struct rtx_nonjump_insn): Adjust comment.
2781         (struct rtx_call_insn): Adjust comment.
2782         (XLOC): New accessor macro for rtunion::rt_loc.
2783         (X0LOC): Likewise.
2784         (XCLOC): Likewise.
2785         (INSN_LOCATION): Use XLOC instead of XUINT to retrieve a location_t.
2786         (NOTE_MARKER_LOCATION): Likewise for XCUINT -> XCLOC.
2787         (ASM_OPERANDS_SOURCE_LOCATION): Likewise.
2788         (ASM_INPUT_SOURCE_LOCATION):Likewise.
2789         (gen_rtx_ASM_INPUT): Adjust to use sL format instead of si.
2790         (gen_rtx_INSN): Adjust prototype to use location_r rather than int
2791         for the location.
2792         * cfgrtl.cc (force_nonfallthru_and_redirect): Change type of LOC
2793         local variable from int to location_t.
2794         * rtlhash.cc (add_rtx): Support 'L' format in the switch statement.
2795         * var-tracking.cc (loc_cmp): Likewise.
2796         * alias.cc (rtx_equal_for_memref_p): Likewise.
2797         * config/alpha/alpha.cc (summarize_insn): Likewise.
2798         * config/ia64/ia64.cc (rtx_needs_barrier): Likewise.
2799         * config/rs6000/rs6000.cc (rs6000_hash_constant): Likewise.
2800         * cse.cc (hash_rtx): Likewise.
2801         (exp_equiv_p): Likewise.
2802         * cselib.cc (rtx_equal_for_cselib_1): Likewise.
2803         (cselib_hash_rtx): Likewise.
2804         (cselib_expand_value_rtx_1): Likewise.
2805         * emit-rtl.cc (copy_insn_1): Likewise.
2806         (gen_rtx_INSN): Change the location argument from int to location_t,
2807         and call the corresponding gen_rtf_fmt_* function.
2808         * final.cc (leaf_renumber_regs_insn): Support 'L' format in the
2809         switch statement.
2810         * genattrtab.cc (attr_rtx_1): Likewise.
2811         * genemit.cc (gen_exp): Likewise.
2812         * gengenrtl.cc (type_from_format): Likewise.
2813         (accessor_from_format): Likewise.
2814         * gengtype.cc (adjust_field_rtx_def): Likewise.
2815         * genpeep.cc (match_rtx): Likewise; just mark gcc_unreachable() for
2816         now.
2817         * genrecog.cc (find_operand): Support 'L' format in the switch statement.
2818         (find_matching_operand): Likewise.
2819         (validate_pattern): Likewise.
2820         * gensupport.cc (subst_pattern_match): Likewise.
2821         (get_alternatives_number): Likewise.
2822         (collect_insn_data): Likewise.
2823         (alter_predicate_for_insn): Likewise.
2824         (alter_constraints): Likewise.
2825         (subst_dup): Likewise.
2826         * jump.cc (rtx_renumbered_equal_p): Likewise.
2827         * loop-invariant.cc (hash_invariant_expr_1): Likewise.
2828         * lra-constraints.cc (operands_match_p): Likewise.
2829         * lra.cc (lra_rtx_hash): Likewise.
2830         * print-rtl.cc (rtx_writer::print_rtx_operand_code_i): Refactor
2831         location_t-relevant code to...
2832         (rtx_writer::print_rtx_operand_code_L): ...new function here.
2833         (rtx_writer::print_rtx_operand): Support 'L' format in the switch statement.
2834         * print-rtl.h (rtx_writer::print_rtx_operand_code_L): Add prototype
2835         for new function.
2836         * read-rtl-function.cc (function_reader::read_rtx_operand): Support
2837         'L' format in the switch statement.
2838         (function_reader::read_rtx_operand_i_or_n): Rename to...
2839         (function_reader::read_rtx_operand_inL): ...this, and support 'L' as
2840         well.
2841         * read-rtl.cc (apply_int_iterator): Support 'L' format in the switch
2842         statement.
2843         (rtx_reader::read_rtx_operand): Likewise.
2844         * reload.cc (operands_match_p): Likewise.
2845         * rtl.cc (rtx_format): Add new code 'L'.
2846         (rtx_equal_p): Support 'L' in the switch statement. Remove dead code
2847         in the handling for 'i' and 'n'.
2849 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
2851         * final.cc (reemit_insn_block_notes): Don't try to call
2852         INSN_LOCATION on a NOTE rtl object. Don't call change_scope () for a
2853         NOTE missing a location.
2855 2024-12-07  Lewis Hyatt  <lhyatt@gmail.com>
2857         * tree-parloops.cc (struct reduction_info): Store the result of the
2858         reduction PHI rather than the PHI itself.
2859         (reduction_info::reduc_phi): New member function.
2860         (reduction_hasher::equal): Adapt to the change in struct reduction_info.
2861         (reduction_phi): Likewise.
2862         (initialize_reductions): Likewise.
2863         (create_call_for_reduction_1): Likewise.
2864         (transform_to_exit_first_loop_alt): Likewise.
2865         (transform_to_exit_first_loop): Likewise.
2866         (build_new_reduction): Likewise.
2867         (set_reduc_phi_uids): Likewise.
2868         (try_create_reduction_list): Likewise.
2869         * tree-ssa-loop-split.cc (split_loop): Remember the PHI result
2870         variable so that the PHI can be found in case it is resized and move
2871         to a new address.
2872         * tree-vect-loop-manip.cc (vect_loop_versioning): After calling
2873         loop_version(), fix up stored PHI pointers in case they have
2874         changed.
2875         * tree-vectorizer.cc (vec_info::resync_stmt_addr): New function.
2876         * tree-vectorizer.h (vec_info::resync_stmt_addr): Declare.
2878 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
2880         PR tree-optimization/117467
2881         * gimple-range-infer.cc (infer_range_manager::add_ranges): Check
2882         range_of_expr to see if the inferred range is needed.
2884 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
2886         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create the
2887         infer oracle using THIS as the range_query.
2888         * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
2889         Add a range_query to the constructor and use it.
2890         (infer_range_manager::infer_range_manager): Add a range_query.
2891         * gimple-range-infer.h (gimple_infer_range): Adjust prototype.
2892         (infer_range_manager): Add a range_query.
2893         * value-query.cc (range_query::create_infer_oracle): Add a range_query.
2894         * value-query.h (range_query::create_infer_oracle): Update prototype.
2896 2024-12-06  Andrew MacLeod  <amacleod@redhat.com>
2898         PR tree-optimization/117467
2899         * gimple-range-cache.cc (ranger_cache::entry_range): Do not
2900         invoke range_from_dom for invariant ssa-names.
2902 2024-12-06  Vladimir N. Makarov  <vmakarov@redhat.com>
2904         PR rtl-optimization/117248
2905         * lra-lives.cc (start_living, start_dying): Remove.
2906         (insn_regnos, out_insn_regnos, insn_regnos_live_after): New.
2907         (sparseset_contains_pseudos_p): Remove.
2908         (make_hard_regno_live, make_hard_regno_dead): Return true if
2909         something in liveness is changed.
2910         (mark_pseudo_live,  mark_pseudo_dead): Ditto.
2911         (mark_regno_live, mark_regno_dead): Ditto.
2912         (clear_sparseset_regnos, regnos_in_sparseset_p): Use set instead
2913         of dead_set.
2914         (process_bb_lives): Rewrite dealing with reg notes.  Update
2915         conflict hard regs even when clobber hard reg is not marked as
2916         dead.
2917         (lra_create_live_ranges_1): Add initialization/finalization of
2918         insn_regnos, out_insn_regnos, insn_regnos_live_after.
2920 2024-12-06  Jeff Law  <jlaw@ventanamicro.com>
2922         PR tree-optimization/117895
2923         * expr.cc (calculate_table_based_CRC): Drop CRC_MODE argument.
2924         Convert DATA to CRC's mode, then do calculations in CRC's mode.
2925         (expand_crc_table_based): Corresponding changes.
2926         (expand_reversed_crc_table_based): Corresponding changes.
2928 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
2930         * config/i386/i386.cc (ix86_decompose_address):
2931         Add missing part from my previous commit.
2933 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
2935         * config/i386/i386.cc (ix86_decompose_address): Eliminate
2936         common code and use use UINTVAL and HOST_WIDE_INT_UC macros
2937         in the condition for AND wrapped address.
2939 2024-12-06  Uros Bizjak  <ubizjak@gmail.com>
2941         PR target/117926
2942         * config/i386/mmx.md (UNSPEC_3DNOW): New unspec.
2943         (mmx_addv2sf3): Tag insn with UNSPEC_3DNOW tag.
2944         (*mmx_addv2sf3): Ditto.
2945         (mmx_sub2vsf3): Ditto.
2946         (mmx_subrv2sf3): Ditto.
2947         (*mmx_subv2sf3): Ditto.
2948         (mmx_mulv2sf3): Ditto.
2949         (mmx_<smaxmin:code>v2sf3): Ditto.
2950         (*mmx_<smaxmin:code>v2sf3): Ditto.
2951         (mmx_ieee_<ieee_maxmin>v2sf3): Ditto.
2952         (mmx_eqv2sf3): Ditto.
2953         (*mmx_eqv2sf3): Ditto.
2954         (mmx_gtv2sf3): Ditto.
2955         (mmx_gev2sf3): Ditto.
2956         (mmx_fix_truncv2sfv2si2): Ditto.
2957         (mmx_floatv2siv2sf2): Ditto.
2959 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
2961         * diagnostic.cc (diagnostic_context::override_urlifier): New.
2962         * diagnostic.h (diagnostic_context::override_urlifier): New decl.
2963         * doc/extend.texi (Nvidia PTX Function Attributes): Update
2964         @cindex to specify that "kernel" is a function attribute and
2965         "shared" is a variable attribute, so that these entries are
2966         recognized by the regex in regenerate-attr-urls.py.
2967         * doc/tm.texi: Regenerate.
2968         * doc/tm.texi.in (TARGET_DOCUMENTATION_NAME): New.
2969         * gcc-attribute-urlifier.cc: New file.
2970         * gcc-urlifier.cc: Include diagnostic.h.
2971         (gcc_urlifier::make_doc): Convert to...
2972         (make_doc_url): ...this.
2973         (auto_override_urlifier::auto_override_urlifier): New.
2974         (auto_override_urlifier::~auto_override_urlifier): New.
2975         (selftest::gcc_urlifier_cc_tests): Split out body into...
2976         (selftest::test_gcc_urlifier): ...this.
2977         * gcc-urlifier.h: Include "pretty-print-urlifier.h" and "label-text.h".
2978         (make_doc_url): New decl.
2979         (class auto_override_urlifier): New.
2980         (class attribute_urlifier): New.
2981         (class auto_urlify_attributes): New.
2982         * gimple-ssa-warn-access.cc: Include "gcc-urlifier.h".
2983         (pass_waccess::execute): Use auto_urlify_attributes.
2984         * gimplify.cc: Include "gcc-urlifier.h".
2985         (expand_FALLTHROUGH): Use auto_urlify_attributes.
2986         * internal-fn.cc: Define INCLUDE_MEMORY and include
2987         "gcc-urlifier.h.
2988         (expand_FALLTHROUGH): Use auto_urlify_attributes.
2989         * ipa-pure-const.cc: Include "gcc-urlifier.h.
2990         (suggest_attribute): Use auto_urlify_attributes.
2991         * ipa-strub.cc: Include "gcc-urlifier.h.
2992         (can_strub_p): Use auto_urlify_attributes.
2993         * regenerate-attr-urls.py: New file.
2994         * selftest-run-tests.cc (selftest::run_tests): Call
2995         gcc_attribute_urlifier_cc_tests.
2996         * selftest.h (selftest::gcc_attribute_urlifier_cc_tests): New
2997         decl.
2998         * target.def (documentation_name): New DEFHOOKPOD.
2999         * tree-cfg.cc: Include "gcc-urlifier.h.
3000         (do_warn_unused_result): Use auto_urlify_attributes.
3001         * tree-ssa-uninit.cc: Include "gcc-urlifier.h.
3002         (maybe_warn_read_write_only): Use auto_urlify_attributes.
3003         (maybe_warn_pass_by_reference): Likewise.
3005 2024-12-06  David Malcolm  <dmalcolm@redhat.com>
3007         * Makefile.in (OBJS): Add -attribute-urlifier.o.
3008         (ATTR_URLS_HTML_DEPS): New.
3009         (regenerate-attr-urls): New.
3010         (regenerate-attr-urls-unit-test): New.
3011         * attr-urls.def: New file.
3012         * attribs.cc: Include "gcc-urlifier.h".
3013         (decl_attributes): Use auto_urlify_attributes.
3014         * config/aarch64/aarch64.cc (TARGET_DOCUMENTATION_NAME): New.
3015         * config/arc/arc.cc (TARGET_DOCUMENTATION_NAME): New.
3016         * config/arm/arm.cc (TARGET_DOCUMENTATION_NAME): New.
3017         * config/bfin/bfin.cc (TARGET_DOCUMENTATION_NAME): New.
3018         * config/bpf/bpf.cc (TARGET_DOCUMENTATION_NAME): New.
3019         * config/epiphany/epiphany.cc (TARGET_DOCUMENTATION_NAME): New.
3020         * config/gcn/gcn.cc (TARGET_DOCUMENTATION_NAME): New.
3021         * config/h8300/h8300.cc (TARGET_DOCUMENTATION_NAME): New.
3022         * config/i386/i386.cc (TARGET_DOCUMENTATION_NAME): New.
3023         * config/ia64/ia64.cc (TARGET_DOCUMENTATION_NAME): New.
3024         * config/m32c/m32c.cc (TARGET_DOCUMENTATION_NAME): New.
3025         * config/m32r/m32r.cc (TARGET_DOCUMENTATION_NAME): New.
3026         * config/m68k/m68k.cc (TARGET_DOCUMENTATION_NAME): New.
3027         * config/mcore/mcore.cc (TARGET_DOCUMENTATION_NAME): New.
3028         * config/microblaze/microblaze.cc (TARGET_DOCUMENTATION_NAME):
3029         New.
3030         * config/mips/mips.cc (TARGET_DOCUMENTATION_NAME): New.
3031         * config/msp430/msp430.cc (TARGET_DOCUMENTATION_NAME): New.
3032         * config/nds32/nds32.cc (TARGET_DOCUMENTATION_NAME): New.
3033         * config/nvptx/nvptx.cc (TARGET_DOCUMENTATION_NAME): New.
3034         * config/riscv/riscv.cc (TARGET_DOCUMENTATION_NAME): New.
3035         * config/rl78/rl78.cc (TARGET_DOCUMENTATION_NAME): New.
3036         * config/rs6000/rs6000.cc (TARGET_DOCUMENTATION_NAME): New.
3037         * config/rx/rx.cc (TARGET_DOCUMENTATION_NAME): New.
3038         * config/s390/s390.cc (TARGET_DOCUMENTATION_NAME): New.
3039         * config/sh/sh.cc (TARGET_DOCUMENTATION_NAME): New.
3040         * config/stormy16/stormy16.cc (TARGET_DOCUMENTATION_NAME): New.
3041         * config/v850/v850.cc (TARGET_DOCUMENTATION_NAME): New.
3042         * config/visium/visium.cc (TARGET_DOCUMENTATION_NAME): New.
3044 2024-12-06  Georg-Johann Lay  <avr@gjlay.de>
3046         * config/avr/avr.opt.urls: Rebuild.
3048 2024-12-06  Georg-Johann Lay  <avr@gjlay.de>
3050         * common/config/avr/avr-common.cc
3051         (avr_option_optimization_table): Default to -fno-optimize-crc.
3053 2024-12-06  kelefth  <konstantinos.eleftheriou@vrull.eu>
3055         PR rtl-optimization/117816
3056         * avoid-store-forwarding.cc (store_forwarding_analyzer::avoid_store_forwarding):
3057         Reject the transformation when having instructions that may
3058         throw exceptions in the sequence.
3060 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3062         * config/nvptx/nvptx-sm.def: Add '89'.
3063         * config/nvptx/nvptx-gen.h: Regenerate.
3064         * config/nvptx/nvptx-gen.opt: Likewise.
3065         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
3066         * config/nvptx/nvptx.opt (-march-map=sm_89, -march-map=sm_90)
3067         (march-map=sm_90a): Likewise.
3068         * config.gcc: Likewise.
3069         * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_89'.
3070         * config/nvptx/gen-multilib-matches-tests: Extend.
3072 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3074         * config/nvptx/nvptx-opts.h (enum ptx_version): Add
3075         'PTX_VERSION_7_8'.
3076         * config/nvptx/nvptx.cc (ptx_version_to_string)
3077         (ptx_version_to_number): Adjust.
3078         * config/nvptx/nvptx.h (TARGET_PTX_7_8): New.
3079         * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
3080         '7.8' for 'PTX_VERSION_7_8'.
3081         * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=7.8'.
3083 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3085         * config/nvptx/nvptx-sm.def: Add '52'.
3086         * config/nvptx/nvptx-gen.h: Regenerate.
3087         * config/nvptx/nvptx-gen.opt: Likewise.
3088         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
3089         * config/nvptx/nvptx.opt (-march-map=sm_52): Likewise.
3090         * config.gcc: Likewise.
3091         * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_52'.
3092         * config/nvptx/gen-multilib-matches-tests: Extend.
3094 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3096         * config/nvptx/nvptx-sm.def: Add '37'.
3097         * config/nvptx/nvptx-gen.h: Regenerate.
3098         * config/nvptx/nvptx-gen.opt: Likewise.
3099         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm): Adjust.
3100         * config/nvptx/nvptx.opt (-march-map=sm_37, -march-map=sm_50):
3101         Likewise.
3102         * config.gcc: Likewise.
3103         * doc/invoke.texi (Nvidia PTX Options): Document '-march=sm_37'.
3104         * config/nvptx/gen-multilib-matches-tests: Extend.
3106 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3108         * config/nvptx/nvptx-opts.h (enum ptx_version): Add
3109         'PTX_VERSION_4_1'.
3110         * config/nvptx/nvptx.cc (ptx_version_to_string)
3111         (ptx_version_to_number): Adjust.
3112         * config/nvptx/nvptx.h (TARGET_PTX_4_1): New.
3113         * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
3114         '4.1' for 'PTX_VERSION_4_1'.
3115         * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.1'.
3117 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3119         * config/nvptx/nvptx.h (TARGET_PTX_4_2): New.
3120         * config/nvptx/nvptx.opt (Enum(ptx_version)): Add 'EnumValue'
3121         '4.2' for 'PTX_VERSION_4_2'.
3122         * doc/invoke.texi (Nvidia PTX Options): Document '-mptx=4.2'.
3124 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3126         * config/nvptx/nvptx-opts.h (enum ptx_version): Remove
3127         'PTX_VERSION_3_0'.
3128         * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
3129         (default_ptx_version_option, ptx_version_to_string)
3130         (ptx_version_to_number): Adjust.
3131         * config/nvptx/nvptx.h: Comment.
3133 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3135         * config.gcc: nvptx: Support '--with-multilib-list'.
3136         * config/nvptx/gen-multilib-matches.sh: Adjust.
3137         * configure.ac: Likewise.
3138         * configure: Regenerate.
3139         * doc/install.texi: Update.
3140         * doc/invoke.texi: Align.
3141         * config/nvptx/gen-multilib-matches-tests: Extend.
3143 2024-12-06  Jakub Jelinek  <jakub@redhat.com>
3145         * gimplify.cc (gimplify_init_ctor_eval): Use RAW_DATA_UCHAR_ELT
3146         macro.
3147         * gimple-fold.cc (fold_array_ctor_reference): Likewise.
3148         * tree-pretty-print.cc (dump_generic_node): Use RAW_DATA_UCHAR_ELT
3149         and RAW_DATA_SCHAR_ELT macros.
3150         * fold-const.cc (fold): Use RAW_DATA_UCHAR_ELT macro.
3152 2024-12-06  Richard Biener  <rguenther@suse.de>
3154         * match.pd: Remove redundant :c, reported by genmatch as
3155         duplicate patterns.
3157 2024-12-06  Richard Biener  <rguenther@suse.de>
3159         * match.pd (.SAT_ADD patterns using IFN_ADD_OVERFLOW): Remove :c that
3160         only causes duplicate patterns.
3162 2024-12-06  Hau Hsu  <hau.hsu@sifive.com>
3163             Kito Cheng  <kito.cheng@sifive.com>
3165         * config.gcc (riscv*-*-*): Add support for --with-cmodel configure option.
3166         (all_defaults): Add cmodel.
3167         * config/riscv/riscv.h (TARGET_DEFAULT_CMODEL): Remove.
3168         * doc/install.texi: Document --with-cmodel configure option.
3169         * doc/invoke.texi (-mcmodel): Mention --with-cmodel configure option.
3171 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3173         * config/nvptx/gen-multilib-matches.sh: Support '--selftest'.
3174         * config/nvptx/t-nvptx (t-nvptx-gen-multilib-matches:): Invoke it.
3175         * config/nvptx/gen-multilib-matches-tests: New.
3177 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3179         * config/nvptx/gen-h.sh: Don't pass in '$1'; compute it locally.
3180         * config/nvptx/gen-multilib-matches.sh: Likewise.
3181         * config/nvptx/gen-omp-device-properties.sh: Likewise.
3182         * config/nvptx/gen-opt.sh: Likewise.
3183         * config/nvptx/t-nvptx (s-nvptx-gen-h:, s-nvptx-gen-opt:)
3184         (t-nvptx-gen-multilib-matches:): Adjust.
3185         * config/nvptx/t-omp-device (omp-device-properties-nvptx):
3186         Likewise.
3188 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3190         * config/nvptx/gen-multilib-matches.sh: Encapsulate main logic.
3192 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3194         * config/nvptx/t-nvptx (multilib_matches): Don't use the 'shell'
3195         function of 'make'.
3196         * config/nvptx/gen-multilib-matches.sh: Adjust.
3198 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3200         PR target/117916
3201         * config/nvptx/nvptx.opt (misa=, mptx=): Tag as 'Negative' of
3202         themselves.
3204 2024-12-06  Thomas Schwinge  <tschwinge@baylibre.com>
3206         PR testsuite/82250
3207         * gimple-fold.cc (gimple_fold_builtin_acc_on_device): Revert last
3208         change.
3210 2024-12-06  Jakub Jelinek  <jakub@redhat.com>
3212         * tree.h (RAW_DATA_UCHAR_ELT, RAW_DATA_SCHAR_ELT): Define.
3214 2024-12-06  Jennifer Schmitz  <jschmitz@nvidia.com>
3216         PR target/106329
3217         * config/aarch64/aarch64-sve-builtins-base.cc
3218         (svac_impl::fold): Add folding if pfalse predicate.
3219         (svadda_impl::fold): Likewise.
3220         (class svaddv_impl): Likewise.
3221         (class svandv_impl): Likewise.
3222         (svclast_impl::fold): Likewise.
3223         (svcmp_impl::fold): Likewise.
3224         (svcmp_wide_impl::fold): Likewise.
3225         (svcmpuo_impl::fold): Likewise.
3226         (svcntp_impl::fold): Likewise.
3227         (class svcompact_impl): Likewise.
3228         (class svcvtnt_impl): Likewise.
3229         (class sveorv_impl): Likewise.
3230         (class svminv_impl): Likewise.
3231         (class svmaxnmv_impl): Likewise.
3232         (class svmaxv_impl): Likewise.
3233         (class svminnmv_impl): Likewise.
3234         (class svorv_impl): Likewise.
3235         (svpfirst_svpnext_impl::fold): Likewise.
3236         (svptest_impl::fold): Likewise.
3237         (class svsplice_impl): Likewise.
3238         * config/aarch64/aarch64-sve-builtins-sve2.cc
3239         (class svcvtxnt_impl): Likewise.
3240         (svmatch_svnmatch_impl::fold): Likewise.
3241         * config/aarch64/aarch64-sve-builtins.cc
3242         (is_pfalse): Return true if tree is pfalse.
3243         (gimple_folder::fold_pfalse): Fold calls with pfalse predicate.
3244         (gimple_folder::fold_call_to): Fold call to lhs = t for given tree t.
3245         (gimple_folder::fold_to_stmt_vops): Helper function that folds the
3246         call to given stmt and adjusts virtual operands.
3247         (gimple_folder::fold): Call fold_pfalse.
3248         * config/aarch64/aarch64-sve-builtins.h (is_pfalse): Declare is_pfalse.
3250 2024-12-06  Richard Biener  <rguenther@suse.de>
3252         PR rtl-optimization/117922
3253         * timevar.def (TV_FOLD_MEM_OFFSETS): New.
3254         * fold-mem-offsets.cc (pass_data_fold_mem): Use TV_FOLD_MEM_OFFSETS.
3256 2024-12-05  Uros Bizjak  <ubizjak@gmail.com>
3258         PR target/117860
3259         * config/i386/i386.cc (ix86_canonicalize_comparison): Swap
3260         operands of GTU comparison to canonicalize addcarry/subborrow
3261         comparison.
3262         (ix86_cc_mode): Return CCCmode for the comparison of
3263         addcarry/subborrow pattern.
3264         * config/i386/i386.md (addcarry<mode>): Swap operands of
3265         PLUS RTX to make it canonical.
3266         (*addcarry<mode>_1): Ditto.
3267         (addcarry peephole2s): Update RTXes for addcarry<mode>_1 change.
3268         (*add<dwi>3_doubleword_cc_overflow_1): Ditto.
3269         (*subborrow<mode>_1): New insn pattern.
3271 2024-12-05  Richard Earnshaw  <rearnsha@arm.com>
3273         * config/arm/mmintrin.h: Raise an error if this header is used.
3274         Remove other content.
3276 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
3278         * config/aarch64/aarch64-simd-pragma-builtins.def
3279         (ENTRY_TERNARY_VLUT8): Use FLAG_QUIET rather than FLAG_DEFAULT.
3280         (ENTRY_TERNARY_VLUT16): Likewise.
3282 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
3284         * config/aarch64/aarch64-builtins.cc (FLAG_QUIET): Redefine to 0,
3285         replacing the old flag with...
3286         (FLAG_AUTO_FP): ...this.
3287         (FLAG_DEFAULT): Redefine to FLAG_AUTO_FP.
3288         (aarch64_call_properties): Update accordingly.
3290 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
3292         * config/aarch64/aarch64-builtins.cc (FLAG_NONE): Rename to...
3293         (FLAG_DEFAULT): ...this and update all references.
3294         * config/aarch64/aarch64-simd-builtins.def: Update all references
3295         here too.
3296         * config/aarch64/aarch64-simd-pragma-builtins.def: Likewise.
3298 2024-12-05  Richard Sandiford  <richard.sandiford@arm.com>
3300         * config/aarch64/aarch64-builtins.cc (FLAG_AUTO_FP): Rename to...
3301         (FLAG_QUIET): ...this and update all references.
3302         * config/aarch64/aarch64-simd-builtins.def: Update all references
3303         here too.
3305 2024-12-05  Pan Li  <pan2.li@intel.com>
3307         * match.pd: Refactor sorts of unsigned SAT_TRUNC match patterns.
3309 2024-12-05  Richard Biener  <rguenther@suse.de>
3311         PR middle-end/117801
3312         * tree-outof-ssa.cc (ssa_is_replaceable_p): Make
3313         direct internal function calls replaceable.
3314         * expr.cc (get_def_for_expr): Handle replacements with calls.
3315         (get_def_for_expr_class): Likewise.
3316         (optimize_bitfield_assignment_op): Likewise.
3317         (expand_expr_real_1): Likewise.  Properly expand direct
3318         internal function defs.
3319         * cfgexpand.cc (expand_call_stmt): Handle replacements with calls.
3320         (avoid_deep_ter_for_debug): Likewise, always create a debug temp
3321         for calls.
3322         (expand_debug_expr): Likewise, give up for calls.
3323         (expand_gimple_basic_block): Likewise.
3324         * ccmp.cc (ccmp_candidate_p): Likewise.
3325         (get_compare_parts): Likewise.
3327 2024-12-05  Arvin Zhong  <Arvin.Zhong@armchina.com>
3329         * config/arm/arm-cpus.in (star-mc1): Add CDE options.
3330         * doc/invoke.texi (cdecp options): Document for star-mc1.
3332 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
3334         PR rtl-optimization/113994
3335         PR rtl-optimization/116799
3336         * loop-doloop.cc: Include targhooks.h.
3337         (doloop_optimize): Also punt on intersection of modified
3338         with df_get_live_in (desc->out_edge->dest).
3339         (doloop_optimize_loops): Call df_analyze.  Use
3340         LI_ONLY_INNERMOST or LI_FROM_INNERMOST instead of 0 as
3341         second loops_list argument.
3343 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
3345         PR c/107980
3346         * ginclude/stdarg.h (va_start): For C23+ change parameters from
3347         v, ... to just ... and define to __builtin_c23_va_start(__VA_ARGS__)
3348         rather than __builtin_va_start(v, 0).
3350 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
3352         PR target/107957
3353         * config/avr/avr-passes-fuse-move.h (bbinfo_t) <try_mem0_p>:
3354         Add static property.
3355         * config/avr/avr-passes.cc (bbinfo_t::try_mem0_p): Define it.
3356         (optimize_data_t::try_mem0): New method.
3357         (bbinfo_t::optimize_one_block) [bbinfo_t::try_mem0_p]: Run try_mem0.
3358         (bbinfo_t::optimize_one_function): Set bbinfo_t::try_mem0_p.
3359         * config/avr/avr.md (pushhi1_insn): Also allow zero as source.
3360         (define_split) [avropt_split_ldst]: Only run avr_split_ldst()
3361         when avr-fuse-move has been run at least once.
3362         * doc/invoke.texi (AVR Options) <-msplit-ldst>: Document it.
3364 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
3366         PR target/107957
3367         * config/avr/avr.opt (-msplit-ldst, avropt_split_ldst):
3368         New option and associated var.
3369         * common/config/avr/avr-common.cc (avr_option_optimization_table)
3370         [OPT_LEVELS_2_PLUS]: Turn on -msplit_ldst.
3371         * config/avr/avr-passes.cc (splittable_address_p)
3372         (avr_byte_maybe_mem, avr_split_ldst): New functions.
3373         * config/avr/avr-protos.h (avr_split_ldst): New proto.
3374         * config/avr/avr.md (define_split) [avropt_split_ldst]: Run
3375         avr_split_ldst().
3377 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
3379         PR target/64242
3380         * config/avr/avr.md (nonlocal_goto): Don't restore
3381         hard_frame_pointer_rtx directly, but copy it to local
3382         register, and only set hard_frame_pointer_rtx from it
3383         after emit_stack_restore().
3385 2024-12-05  Georg-Johann Lay  <avr@gjlay.de>
3387         * config/avr/avr-protos.h (avr_out_add_msb): New proto.
3388         * config/avr/avr.cc (avr_out_add_msb): New function.
3389         (avr_adjust_insn_length) [ADJUST_LEN_ADD_GE0,
3390         ADJUST_LEN_ADD_LT0]: Handle cases.
3391         * config/avr/avr.md (adjust_len) <add_lt0, add_ge0>: New attr values.
3392         (QISI2): New mode iterator.
3393         (C_MSB): New mode_attr.
3394         (*add<mode>3...msb_split, *add<mode>3.ge0, *add<mode>3.lt0)
3395         (*sub<mode>3...msb_split, *sub<mode>3.ge0, *sub<mode>3.lt0): New
3396         patterns replacing old ones, but with iterators and
3397         using avr_out_add_msb() for asm out.
3399 2024-12-05  Filip Kastl  <fkastl@suse.cz>
3401         * doc/invoke.texi: Add store-forwarding-max-distance.
3403 2024-12-05  Filip Kastl  <fkastl@suse.cz>
3405         * params.opt: Add missing '=' after -param=cycle-accurate-model.
3407 2024-12-05  Jakub Jelinek  <jakub@redhat.com>
3409         PR c/41045
3410         * output.h (insn_noperands): Declare.
3411         * final.cc (insn_noperands): No longer static.
3412         * varasm.cc (assemble_asm): Handle ASM_EXPR.
3413         * lto-streamer-out.cc (lto_output_toplevel_asms): Add sorry_at
3414         for non-STRING_CST toplevel asm for now.
3415         * doc/extend.texi (Basic @code{asm}, Extended @code{asm}): Document
3416         that extended asm is now allowed outside of functions with certain
3417         restrictions.
3419 2024-12-05  Kito Cheng  <kito.cheng@sifive.com>
3421         * config/riscv/riscv-vector-builtins-shapes.cc
3422         (vsetvl_def::get_name): Adjust return type.
3423         (loadstore_def::get_name): Ditto.
3424         (indexed_loadstore_def::get_name): Ditto.
3425         (th_loadstore_width_def::get_name): Ditto.
3426         (th_indexed_loadstore_width_def::get_name): Ditto.
3427         (alu_def::get_name): Ditto.
3428         (alu_frm_def::get_name): Ditto.
3429         (widen_alu_frm_def::get_name): Ditto.
3430         (narrow_alu_frm_def::get_name): Ditto.
3431         (reduc_alu_frm_def::get_name): Ditto.
3432         (widen_alu_def::get_name): Ditto.
3433         (no_mask_policy_def::get_name): Ditto.
3434         (return_mask_def::get_name): Ditto.
3435         (narrow_alu_def::get_name): Ditto.
3436         (move_def::get_name): Ditto.
3437         (mask_alu_def::get_name): Ditto.
3438         (reduc_alu_def::get_name): Ditto.
3439         (th_extract_def::get_name): Ditto.
3440         (scalar_move_def::get_name): Ditto.
3441         (vundefined_def::get_name): Ditto.
3442         (misc_def::get_name): Ditto.
3443         (vset_def::get_name): Ditto.
3444         (vcreate_def: Ditto.::get_name): Ditto.
3445         (read_vl_def::get_name): Ditto.
3446         (fault_load_def::get_name): Ditto.
3447         (vlenb_def::get_name): Ditto.
3448         (seg_loadstore_def::get_name): Ditto.
3449         (seg_indexed_loadstore_def::get_name): Ditto.
3450         (seg_fault_load_def::get_name): Ditto.
3451         (crypto_vv_def::get_name): Ditto.
3452         (crypto_vi_def::get_name): Ditto.
3453         (crypto_vv_no_op_type_def::get_name): Ditto.
3454         (sf_vqmacc_def::get_name): Ditto.
3455         (sf_vqmacc_def::get_name): Ditto.
3456         (sf_vfnrclip_def::get_name): Ditto.
3457         * config/riscv/riscv-vector-builtins.cc
3458         (function_builder::add_unique_function): Adjust the type for the
3459         function name holder.
3460         (function_builder::add_overloaded_function): Ditto.
3461         * config/riscv/riscv-vector-builtins.h (function_shape::get_name): Add
3462         const to the return type.
3464 2024-12-04  David Malcolm  <dmalcolm@redhat.com>
3466         * doc/libgdiagnostics/topics/execution-paths.rst: Add '§' before
3467         references to section of SARIF spec.
3468         * doc/libgdiagnostics/topics/fix-it-hints.rst: Likewise.
3469         * doc/libgdiagnostics/tutorial/01-hello-world.rst: Fix typo.
3470         * doc/libgdiagnostics/tutorial/02-physical-locations.rst: Likewise.
3471         * doc/libgdiagnostics/tutorial/04-notes.rst: Likewise.
3472         * doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: Add link to
3473         diagnostic_add_fix_it_hint_replace.
3474         * doc/libgdiagnostics/tutorial/07-execution-paths.rst: Add '§'.
3476 2024-12-04  Vineet Gupta  <vineetg@rivosinc.com>
3478         * haifa-sched.cc (model_choose_insn): Dump unscheduled_preds.
3479         (model_dump_pressure_summary): Dump bb->index.
3480         (model_start_schedule): Pass bb.
3481         * sched-rgn.cc (debug_dependencies): Dump SD_LIST_HARD_BACK deps.
3483 2024-12-04  Vineet Gupta  <vineetg@rivosinc.com>
3485         PR target/11472
3486         * params.opt (--param=cycle-accurate-model=): New opt.
3487         * doc/invoke.texi (cycle-accurate-model): Document.
3488         * haifa-sched.cc (model_excess_group_cost): Return negative
3489         delta if param_cycle_accurate_model is 0.
3490         (model_excess_cost): Ceil negative baseECC to 0 only if
3491         param_cycle_accurate_model is 1.
3492         Dump the actual ECC value.
3493         * config/riscv/riscv.cc (riscv_option_override): Set param
3494         to 0.
3496 2024-12-04  Georg-Johann Lay  <avr@gjlay.de>
3498         PR target/84211
3499         * config/avr/avr-passes.cc (insninfo_t) <m_insn>: Preset to 0.
3500         (run_find_plies) [hamm=0, dump_file]: Don't print INSN_UID
3501         for a null m_insn.
3503 2024-12-04  David Malcolm  <dmalcolm@redhat.com>
3505         PR translation/90160
3506         * config/arm/arm.cc (arm_option_check_internal): Use quotes in
3507         messages that refer to command-line options.  Tweak wording.
3509 2024-12-04  Andreas Schwab  <schwab@suse.de>
3511         PR bootstrap/117893
3512         * configure.ac: Use shell loop to remove -O flags.
3513         * configure: Regenerate.
3515 2024-12-04  Richard Biener  <rguenther@suse.de>
3517         PR tree-optimization/116083
3518         * tree-vect-slp.cc (vect_build_slp_tree_1): Compute vector
3519         type and max_nunits only once.  Remove check for matching
3520         vector type of each lane and replace it with matching check
3521         for LHS type.
3523 2024-12-04  Pan Li  <pan2.li@intel.com>
3525         PR target/117878
3526         * config/riscv/riscv-v.cc (vlmax_avl_type_p): Add assert for
3527         out of range access.
3528         (nonvlmax_avl_type_p): Ditto.
3530 2024-12-04  Andrew Pinski  <quic_apinski@quicinc.com>
3532         PR tree-optimization/117243
3533         PR tree-optimization/116749
3534         * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Reset loop
3535         estimates if the cond_block was an exit to a loop.
3537 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
3539         * config/avr/avr.cc (avr_insn_location): New variable.
3540         (avr_final_prescan_insn): Set avr_insn_location.
3541         (avr_asm_final_postscan_insn): Unset avr_insn_location after last insn.
3542         (avr_print_operand): Pass avr_insn_location to warning_at.
3544 2024-12-03  David Malcolm  <dmalcolm@redhat.com>
3546         * doc/libgdiagnostics/conf.py: Remove "author".  Change
3547         "copyright" field to the FSF.
3549 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
3551         PR target/117726
3552         * config/avr/avr-passes.cc (avr_split_shift_p)
3553         [ASHIFT, LSHIFTRT]: Allow offsets of bitsize - 1.
3554         (avr_split_shift4) [ASHIFT, LSHIFTRT]: Also split offset 31.
3555         (avr_split_shift3) [ASHIFT, LSHIFTRT]: Also split offset 23.
3556         (avr_split_shift2) [ASHIFT, LSHIFTRT]: Also split offset 15.
3558 2024-12-03  Richard Biener  <rguenther@suse.de>
3560         PR tree-optimization/117874
3561         * tree-vect-slp.cc (vect_build_slp_tree_2): Perform early
3562         reassoc checks before eating into discovery limit.
3564 2024-12-03  Richard Biener  <rguenther@suse.de>
3566         PR tree-optimization/117874
3567         * tree-vectorizer.h (vec_info_shared::n_stmts): Remove.
3568         (LOOP_VINFO_N_STMTS): Likewise.
3569         * tree-vectorizer.cc (vec_info_shared::vec_info_shared): Adjust.
3570         * tree-vect-loop.cc (vect_get_datarefs_in_loop): Do not
3571         count stmts.
3572         (vect_analyze_loop_2): Adjust.  Pass stmt_vec_info.length ()
3573         to vect_analyze_slp as SLP tree size limit.
3575 2024-12-03  Georg-Johann Lay  <avr@gjlay.de>
3577         PR target/117726
3578         * config/avr/avr-passes.cc (avr_emit_shift): All 8-bit shifts with
3579         an offset of 6 have 3-operand alternatives.
3580         * config/avr/avr.cc (ashlqi3_out, lshrqi3_out) [case 6]:
3581         Implement as 3-operand insn.
3582         (avr_rtx_costs_1) [QImode, ASHIFT + LSHIFTRT]: Adjust
3583         costs for offset of 6.
3584         * config/avr/avr.md (*ashlqi3_split, *ashlqi3)
3585         (*lshrqi3_split, *lshrqi3): Add "r,r,C06" alternative.
3587 2024-12-03  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
3589         * config/aarch64/aarch64-option-extensions.def: (fp8): fix FEATURE_STRING.
3590         (fp8fma, ssve-fp8fma): Likewise.
3591         (fp8dot4, ssve-fp8dot4, fp8dot2, ssve-fp8dot2): Likewise.
3593 2024-12-03  Jakub Jelinek  <jakub@redhat.com>
3595         PR tree-optimization/117420
3596         * tree-ssanames.h (get_known_nonzero_bits): Declare.
3597         * tree-ssanames.cc (get_nonzero_bits): New wrapper function.  Move old
3598         definition to ...
3599         (get_nonzero_bits_1): ... here, add static.  Change widest_int in
3600         function comment to wide_int.
3601         (get_known_nonzero_bits_1, get_known_nonzero_bits): New functions.
3602         * match.pd (with_possible_nonzero_bits2): Rename to ...
3603         (with_possible_nonzero_bits): ... this.  Guard the bit_and case with
3604         #if GENERIC.  Change to a normal match predicate without parameters.
3605         Rename the old with_possible_nonzero_bits match to ...
3606         (with_possible_nonzero_bits_1): ... this.
3607         (with_certain_nonzero_bits2): Remove.
3608         (with_known_nonzero_bits_1, with_known_nonzero_bits): New match
3609         predicates.
3610         (X == C (or X & Z == Y | C) is impossible if ~nonzero(X) & C != 0):
3611         Use with_known_nonzero_bits@0 instead of
3612         (with_certain_nonzero_bits2 @1), use with_possible_nonzero_bits@0
3613         instead of (with_possible_nonzero_bits2 @0) and
3614         get_known_nonzero_bits (@1) instead of wi::to_wide (@1).
3616 2024-12-03  Jakub Jelinek  <jakub@redhat.com>
3618         PR middle-end/117847
3619         * gimple-lower-bitint.cc (gimple_lower_bitint) <case LROTATE_EXPR>:
3620         Use m = (p - n) % p instead of m = p - n for the other shift count.
3622 2024-12-03  Tobias Burnus  <tburnus@baylibre.com>
3624         * cgraphunit.cc (varpool_node::finalize_decl): Set alignment
3625         based on OpenMP's 'omp allocate' attribute/directive.
3627 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
3629         * config/aarch64/aarch64-simd-pragma-builtins.def: Add a flags
3630         field to each entry.
3631         * config/aarch64/aarch64-builtins.cc: Update includes accordingly.
3632         (aarch64_pragma_builtins_data): Add a flags field.
3633         (aarch64_init_pragma_builtins): Use the flags field to add attributes
3634         to the function declaration.
3636 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
3637             Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
3638             Richard Sandiford  <richard.sandiford@arm.com>
3640         * config/aarch64/aarch64-builtins.cc
3641         (aarch64_builtin_signatures): Add binary_lane.
3642         (aarch64_fntype): Handle it.
3643         (simd_types): Add 16-bit x2 types.
3644         (aarch64_pragma_builtins_checker): New class.
3645         (aarch64_general_check_builtin_call): Use it.
3646         (aarch64_expand_pragma_builtin): Add support for lut unspecs.
3647         * config/aarch64/aarch64-option-extensions.def
3648         (AARCH64_OPT_EXTENSION): Add lut option.
3649         * config/aarch64/aarch64-simd-pragma-builtins.def
3650         (ENTRY_BINARY_LANE): Modify to use new ENTRY macro.
3651         (ENTRY_TERNARY_VLUT8): Macro to declare lut intrinsics.
3652         (ENTRY_TERNARY_VLUT16): Macro to declare lut intrinsics.
3653         (REQUIRED_EXTENSIONS): Declare lut intrinsics.
3654         * config/aarch64/aarch64-simd.md
3655         (@aarch64_<vluti_uns_op><VLUT:mode><VB:mode>): Instruction
3656         pattern for luti2 and luti4 intrinsics.
3657         (@aarch64_lutx2<VLUT:mode><VB:mode>): Instruction pattern for
3658         luti4x2 intrinsics.
3659         * config/aarch64/aarch64.h
3660         (TARGET_LUT): lut flag.
3661         * config/aarch64/iterators.md: Iterators and attributes for lut.
3662         * doc/invoke.texi: Document extension in AArch64 Options.
3664 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
3665             Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
3666             Richard Sandiford  <richard.sandiford@arm.com>
3668         * config/aarch64/aarch64-builtins.cc
3669         (ENTRY): Modify to add support of return and argument types.
3670         (struct simd_type): New struct to declare types using mode and
3671         qualifiers.
3672         (struct aarch64_pragma_builtins_data): Replace mode with
3673         the array of types to support return and argument types.
3674         (aarch64_fntype): Modify to handle different signatures.
3675         (aarch64_expand_pragma_builtin): Modify to handle different
3676         signatures.
3677         * config/aarch64/aarch64-simd-pragma-builtins.def
3678         (ENTRY_VHSDF): Rename to ENTRY_BINARY_VHSDF.
3679         (ENTRY_BINARY): New macro to declare binary intrinsics.
3680         (ENTRY_BINARY_VHSDF): Remove signature argument and use
3681         ENTRY_BINARY.
3683 2024-12-03  Saurabh Jha  <saurabh.jha@arm.com>
3684             Vladimir Miloserdov  <vladimir.miloserdov@arm.com>
3685             Richard Sandiford  <richard.sandiford@arm.com>
3687         * config/aarch64/iterators.md: Reorder some declarations,
3688         putting them under the associated heading comment.
3690 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
3692         * config/aarch64/aarch64-protos.h (aarch64_v64_mode): Declare.
3693         (aarch64_vq_mode): Rename to...
3694         (aarch64_v128_mode): ...this.
3695         * config/aarch64/aarch64.cc (aarch64_v64_mode): New function,
3696         split out from...
3697         (aarch64_simd_container_mode): ...here.
3698         (aarch64_vq_mode): Rename to...
3699         (aarch64_v128_mode): ...this and update callers.
3700         * config/aarch64/aarch64-sve-builtins-base.cc: Likewise update calls.
3702 2024-12-03  Richard Sandiford  <richard.sandiford@arm.com>
3704         * config/aarch64/aarch64-sve-builtins.cc (report_non_ice)
3705         (report_out_of_range, report_neither_nor, report_not_one_of)
3706         (report_not_enum): Move to...
3707         * config/aarch64/aarch64.cc: ...here, putting them in the aarch64
3708         namespace, and...
3709         * config/aarch64/aarch64-protos.h: ...declare them here.
3711 2024-12-03  Pan Li  <pan2.li@intel.com>
3713         * match.pd: Refactor sorts of unsigned SAT_SUB match patterns.
3715 2024-12-03  Heiko Eißfeldt  <heiko@hexco.de>
3716             Jakub Jelinek  <jakub@redhat.com>
3718         PR middle-end/114540
3719         * varasm.cc (decode_reg_name_and_count): Use strtoul instead of atoi
3720         and simplify verification that the whole asmspec contains just decimal
3721         digits.
3723 2024-12-03  Richard Biener  <rguenther@suse.de>
3725         PR tree-optimization/117874
3726         * tree-vect-loop.cc (vect_analyze_loop_2): When non-SLP
3727         analysis fails, try single-lane SLP.
3729 2024-12-02  David Malcolm  <dmalcolm@redhat.com>
3731         * doc/libgdiagnostics/tutorial/01-hello-world.rst: Update linker
3732         command for renaming.
3734 2024-12-02  Jeff Law  <jlaw@ventanamicro.com>
3736         * configure.ac: Add sym-exec subdirectory.
3738 2024-12-02  Andreas Schwab  <schwab@suse.de>
3740         * config/m68k/m68k.md (movdi+1, movdf+1, movxf+2): Split
3741         constraints so that the operands cannot both be "o".
3743 2024-12-02  Jakub Jelinek  <jakub@redhat.com>
3745         * config/mingw/mingw-stdint.h: Add newline at the end of the file.
3746         * config/mingw/winnt-dll.cc: Likewise.
3747         * sym-exec/sym-exec-expression.h: Likewise.
3748         * sym-exec/sym-exec-expression.cc: Likewise.
3749         * sym-exec/sym-exec-condition.cc: Likewise.
3750         * sym-exec/sym-exec-expr-is-a-helper.h: Likewise.
3751         * sym-exec/sym-exec-condition.h: Likewise.
3752         * hwint.cc: Likewise.
3753         * crc-verification.cc: Likewise.
3754         * sarif-spec-urls.def: Likewise.
3756 2024-12-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
3758         * config/arm/arm_mve.h: Add Runtime Library Exception.
3759         * config/arm/arm_mve_types.h: Likewise.
3761 2024-12-02  Richard Biener  <rguenther@suse.de>
3763         PR tree-optimization/116352
3764         PR tree-optimization/117876
3765         * tree-vect-slp.cc (vect_slp_can_convert_to_external): New.
3766         (vect_slp_convert_to_external): Call it.
3767         (vect_build_slp_tree_2): Likewise.
3769 2024-12-02  yulong  <shiyulong@iscas.ac.cn>
3771         * config/riscv/generic-vector-ooo.md: New reservation.
3772         * config/riscv/genrvv-type-indexer.cc (main): New type.
3773         * config/riscv/riscv-vector-builtins-bases.cc (enum frm_op_type): Delete it.
3774         * config/riscv/riscv-vector-builtins-bases.h (enum frm_op_type): Redefine in h file.
3775         * config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vfnrclip_def): New function.
3776         (SHAPE): Ditto.
3777         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3778         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE_INDEX): New builtins def.
3779         * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New base def.
3780         (signed_eew8_index): Ditto.
3781         * config/riscv/riscv-vector-builtins.h (enum required_ext): New extension.
3782         (required_ext_to_isa_name): Ditto.
3783         (required_extensions_specified): Ditto.
3784         (struct function_group_info): Ditto.
3785         * config/riscv/riscv.md: New attr.
3786         * config/riscv/sifive-vector-builtins-bases.cc (class sf_vfnrclip_x_f_qf): New function.
3787         (class sf_vfnrclip_xu_f_qf): Ditto.
3788         (BASE): New base_name.
3789         * config/riscv/sifive-vector-builtins-bases.h: New function_base.
3790         * config/riscv/sifive-vector-builtins-functions.def
3791         (REQUIRED_EXTENSIONS): New intrinsics def.
3792         (sf_vfnrclip_x_f_qf): Ditto.
3793         (sf_vfnrclip_xu_f_qf): Ditto.
3794         * config/riscv/sifive-vector.md (@pred_sf_vfnrclip<v_su><mode>_x_f_qf): New RTL mode.
3795         * config/riscv/vector-iterators.md: New iterator.
3797 2024-12-02  Andreas Schwab  <schwab@suse.de>
3799         * config/riscv/riscv.cc (fli_value_hf, fli_value_sf)
3800         (fli_value_df): Use integer constants.  Constify.
3801         (riscv_float_const_rtx_index_for_fli): Add const.
3803 2024-12-02  H.J. Lu  <hjl.tools@gmail.com>
3805         * config/i386/i386-features.cc (pass_apx_nf_convert): Change
3806         pass_rpad to pass_apx_nf_convert in comments.
3808 2024-12-01  Slava Barinov  <v.barinov@samsung.com>
3810         * configure.ac: Only remove -O[0-9] if not preceded with comma
3811         * configure: Regenerated
3813 2024-12-01  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
3815         * tree-ssa-phiopt.cc (rhs_is_fed_for_value_replacement): Add a new
3816         optimization opportunity for BIT_IOR_EXPR and a != b.
3817         (operand_equal_for_value_replacement): Ditto.
3819 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
3821         * gimple-crc-optimization.cc (optimize_crc_loop): New function.
3822         (execute): Add optimize_crc_loop function call.
3824 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
3826         * Makefile.in (OBJS): Add crc-verification.o.
3827         * crc-verification.cc: New file.
3828         * crc-verification.h: New file.
3829         * gimple-crc-optimization.cc (loop_calculates_crc): New function.
3830         (is_output_crc): Likewise.
3831         (swap_crc_and_data_if_needed): Likewise.
3832         (validate_crc_and_data): Likewise.
3833         (optimize_crc_loop): Likewise.
3834         (get_output_phi): Likewise.
3835         (execute): Add check whether potential CRC loop calculates CRC.
3836         * sym-exec/sym-exec-state.cc (create_reversed_lfsr): New function.
3837         (create_forward_lfsr): Likewise.
3838         (last_set_bit): Likewise.
3839         (create_lfsr): Likewise.
3840         * sym-exec/sym-exec-state.h (is_bit_vector): Reorder, make the function public and static.
3841         (create_reversed_lfsr) New static function declaration.
3842         (create_forward_lfsr) New static function declaration.
3844 2024-12-01  Matevos Mehrabyan  <matevosmehrabyan@gmail.com>
3846         * Makefile.in (OBJS): Add sym-exec/sym-exec-expression.o,
3847         sym-exec/sym-exec-state.o, sym-exec/sym-exec-condition.o.
3848         * configure (sym-exec): New subdir.
3849         * sym-exec/sym-exec-condition.cc: New file.
3850         * sym-exec/sym-exec-condition.h: New file.
3851         * sym-exec/sym-exec-expr-is-a-helper.h: New file.
3852         * sym-exec/sym-exec-expression.cc: New file.
3853         * sym-exec/sym-exec-expression.h: New file.
3854         * sym-exec/sym-exec-state.cc: New file.
3855         * sym-exec/sym-exec-state.h: New file.
3856         Co-authored-by: Mariam Arutunian <mariamarutunian@gmail.com>
3858 2024-12-01  Mariam Arutunian  <mariamarutunian@gmail.com>
3860         * Makefile.in (OBJS): Add gimple-crc-optimization.o.
3861         * common.opt (foptimize-crc): New option.
3862         * common.opt.urls: Regenerate to add foptimize-crc.
3863         * doc/invoke.texi (-foptimize-crc): Add documentation.
3864         * gimple-crc-optimization.cc: New file.
3865         * opts.cc (default_options_table): Add OPT_foptimize_crc.
3866         (enable_fdo_optimizations): Enable optimize_crc.
3867         * passes.def (pass_crc_optimization): Add new pass.
3868         * timevar.def (TV_GIMPLE_CRC_OPTIMIZATION): New timevar.
3869         * tree-pass.h (make_pass_crc_optimization): New extern function
3870         declaration.
3872 2024-12-01  Mark Harmstone  <mark@harmstone.com>
3874         * configure.ac (HAVE_GAS_CV_UCOMP): New check.
3875         * configure: Regenerate.
3876         * config.in: Regenerate.
3877         * dwarf2codeview.cc (enum binary_annotation_opcode): Define.
3878         (struct codeview_function): Add htab_next and inline_loc;
3879         (struct cv_func_hasher): Define.
3880         (cv_func_htab): New global variable.
3881         (new_codeview_function): Add new codeview_function to hash table.
3882         (codeview_begin_block): Record location of inline block.
3883         (codeview_end_block): Add dummy source line at end of inline block.
3884         (find_line_function): New function.
3885         (write_binary_annotations): New function.
3886         (write_s_inlinesite): Call write_binary_annotations.
3887         (codeview_debug_finish): Delete cv_func_htab.
3889 2024-12-01  Andrew Pinski  <quic_apinski@quicinc.com>
3891         PR tree-optimization/117859
3892         * tree-ssa-sccvn.cc (insert_predicates_for_cond): If the
3893         valueization for the new lhs for `lhs != 0`
3894         is the same as the old ones, don't recurse.
3896 2024-12-01  Andrew Pinski  <quic_apinski@quicinc.com>
3898         * tree-ssa-loop-im.cc (move_computations_worker): While moving
3899         phi, reuse the lhs of the conditional if it is a boolean type.
3901 2024-12-01  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
3903         PR rtl-optimization/112398
3904         PR rtl-optimization/117476
3905         * simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
3906         Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
3907         when X doesn't have any non-zero bits outside of SUBREG mode.
3909 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
3911         * diagnostic-show-locus.cc
3912         (test_one_liner_fixit_validation_adhoc_locations): Adapt so it can
3913         effectively test 7-bit ranges instead of 5-bit ranges.
3914         (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise.
3915         * input.cc (get_end_location): Adjust types to support 64-bit
3916         location_t.
3917         (write_digit_row): Likewise.
3918         (dump_location_range): Likewise.
3919         (dump_location_info): Likewise.
3920         (class line_table_case): Likewise.
3921         (test_accessing_ordinary_linemaps): Replace some hard-coded
3922         constants with the values defined in line-map.h.
3923         (for_each_line_table_case): Likewise.
3925 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
3927         * toplev.cc (general_init): Replace hard-coded constant with
3928         line_map_suggested_range_bits.
3930 2024-11-30  Lewis Hyatt  <lhyatt@gmail.com>
3932         * config/aarch64/aarch64-c.cc (aarch64_resolve_overloaded_builtin):
3933         Change "unsigned int" argument to "location_t".
3934         * config/avr/avr-c.cc (avr_resolve_overloaded_builtin): Likewise.
3935         * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Likewise.
3936         * target.def: Likewise.
3937         * doc/tm.texi: Regenerate.
3939 2024-11-30  Joseph Myers  <josmyers@redhat.com>
3940             Richard Biener  <rguenther@suse.de>
3942         PR c/100501
3943         PR c/100792
3944         * gimplify.cc (gimplify_asm_expr): Handle void expressions for
3945         memory inputs like other non-lvalues.
3947 2024-11-30  Mark Harmstone  <mark@harmstone.com>
3949         * dwarf2codeview.cc (enum cv_sym_type): Add S_INLINESITE and
3950         S_INLINESITE_END.
3951         (get_func_id): Add declaration.
3952         (write_s_inlinesite): New function.
3953         (write_inlinesite_records): New function.
3954         (write_function): Call write_inlinesite_records.
3956 2024-11-30  Mark Harmstone  <mark@harmstone.com>
3958         * dwarf2codeview.cc (DEBUG_S_INLINEELINES): Define.
3959         (CV_INLINEE_SOURCE_LINE_SIGNATURE): Define.
3960         (struct codeview_inlinee_lines): Define.
3961         (struct inlinee_lines_hasher): Define.
3962         (func_htab, inlinee_lines_htab): New global variables.
3963         (get_file_id): New function.
3964         (codeview_source_line): Move file_id logic to get_file_id.
3965         (write_inlinee_lines_entry): New function.
3966         (write_inlinee_lines): New function.
3967         (codeview_debug_finish): Call write_inlinee_lines, and free func_htab
3968         and inlinee_lines_htab.
3969         (get_func_id): New function.
3970         (add_function): Move func_id logic to get_func_id.
3971         (codeview_abstract_function): New function.
3972         * dwarf2codeview.h (codeview_abstract_function): Add declaration.
3973         * dwarf2out.cc (dwarf2out_abstract_function): Call
3974         codeview_abstract_function if outputting CodeView debug info.
3976 2024-11-30  Mark Harmstone  <mark@harmstone.com>
3978         * dwarf2codeview.cc (struct codeview_function): Add parent and
3979         inline_block fields.
3980         (cur_func): New global variable.
3981         (new_codeview_function): New function.
3982         (codeview_source_line): Call new_codeview_function, and use cur_func
3983         instead of last_func.
3984         (codeview_begin_block): New function.
3985         (codeview_end_block): New function.
3986         (write_line_numbers): No longer free data as we go along.
3987         (codeview_switch_text_section): Call new_codeview_function, and use
3988         cur_func instead of last_func.
3989         (codeview_end_epilogue): Use cur_func instead of last_func.
3990         (codeview_debug_finish): Free funcs list and its contents.
3991         * dwarf2codeview.h (codeview_begin_block): Add declaration.
3992         (codeview_end_block): Add declaration.
3993         * dwarf2out.cc (dwarf2out_begin_block): Call codeview_begin_block if
3994         outputting CodeView debug info.
3995         (dwarf2out_end_block): Call codeview_end_block if outputting CodeView
3996         debug info.
3998 2024-11-30  Mark Harmstone  <mark@harmstone.com>
4000         * debug.cc (do_nothing_debug_hooks): Change begin_block
4001         function pointer.
4002         (debug_nothing_int_int_tree): New function.
4003         * debug.h (struct gcc_debug_hooks): Add tree parameter to begin_block.
4004         (debug_nothing_int_int_tree): Add declaration.
4005         * dwarf2out.cc (dwarf2out_begin_block): Add tree parameter.
4006         (dwarf2_lineno_debug_hooks): Use new dummy function for begin_block.
4007         * final.cc (final_scan_insn_1): Pass insn block through to
4008         debug_hooks->begin_block.
4009         * vmsdbgout.cc (vmsdbgout_begin_block): Add tree parameter.
4011 2024-11-30  Georg-Johann Lay  <avr@gjlay.de>
4013         PR target/84211
4014         * config/avr/avr-passes.cc (try_split_any) [SET, MOVW]: Prefer
4015         reg=reg move over reg=const when splitting a reg=reg insn.
4017 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
4019         PR tree-optimization/117057
4020         * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes): Punt also
4021         when byte_size is equal to offset or nchars.  Punt if offset is bigger
4022         than INT_MAX.  Handle vector CONSTRUCTOR with some elements constant,
4023         possibly followed by non-constant.
4025 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
4027         PR libgomp/117851
4028         * lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument,
4029         search for crtoffloadtableS.o rather than crtoffloadtable.o if
4030         true.
4031         (run_gcc): Add pie_or_shared variable.  If OPT_pie or OPT_shared or
4032         OPT_static_pie is seen, set pie_or_shared to true, if OPT_no_pie is
4033         seen, set pie_or_shared to false.  Pass it to find_crtoffloadtable.
4035 2024-11-30  Jinyang He  <hejinyang@loongson.cn>
4037         * config/loongarch/constraints.md (Uuv6, Uuvx): Remove Uuv6,
4038         add Uuvx as replicated vector const with unsigned range [0,umax].
4039         * config/loongarch/lasx.md (xvsrl, xvsra, xvsll): Mask shift
4040         offset by its unit bits.
4041         * config/loongarch/lsx.md (vsrl, vsra, vsll): Likewise.
4042         * config/loongarch/loongarch-protos.h
4043         (loongarch_const_vector_same_int_p): Set default for low and high.
4044         * config/loongarch/predicates.md: Replace reg_or_vector_same_uimm6
4045         _operand to reg_or_vector_same_uimm_operand.
4047 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
4049         PR rtl-optimization/117360
4050         * ext-dce.cc (ext_dce_process_sets): Use HOST_WIDE_INT_UC
4051         macro instead of ULL suffixed constants.
4052         (carry_backpropagate): Likewise.  Use HOST_WIDE_INT_1U instead of
4053         1ULL.  Use GET_MODE_BITSIZE (smode) instead of
4054         GET_MODE_BITSIZE (mode) and with that avoid having to use
4055         known_lt instead of < or use .to_constant ().  Formatting fixes.
4056         (case SIGN_EXTEND): Set mode to GET_MODE_INNER (GET_MODE (XEXP (x, 0)))
4057         rather than GET_MODE (XEXP (x, 0)) and don't use GET_MODE_INNER (mode).
4058         (ext_dce_process_uses): Use HOST_WIDE_INT_UC macro instead of ULL
4059         suffixed constants.
4061 2024-11-30  Jakub Jelinek  <jakub@redhat.com>
4063         * doc/invoke.texi (-Wdeprecated-variadic-comma-omission): Document.
4065 2024-11-29  David Malcolm  <dmalcolm@redhat.com>
4067         * Makefile.in: Rename "libdiagnostics" to "libgdiagnostics".
4068         * configure.ac: Likewise.
4069         * configure: Regenerate.
4070         * doc/install.texi: Rename "libdiagnostics" to
4071         "libgdiagnostics".
4072         * doc/libdiagnostics/*: Rename to doc/libgdiagnostics, renaming
4073         "libdiagnostics" to "libgdiagnostics" throughout.
4074         * libdiagnostics++.h: Rename to...
4075         * libgdiagnostics++.h: ...this, renaming "libdiagnostics" to
4076         "libgdiagnostics" throughout.
4077         * libdiagnostics.cc: Rename to...
4078         * libgdiagnostics.cc: ...this, renaming "libdiagnostics" to
4079         "libgdiagnostics" throughout.
4080         * libdiagnostics.h: Rename to...
4081         * libgdiagnostics.h: ...this, renaming "libdiagnostics" to
4082         "libgdiagnostics" throughout.
4083         * libdiagnostics.map: Rename to...
4084         * libgdiagnostics.map: ...this, renaming "libdiagnostics" to
4085         "libgdiagnostics" throughout.
4086         * libsarifreplay.cc: Update for renaming of "libdiagnostics"
4087         to "libgdiagnostics".
4088         * libsarifreplay.h: Likewise.
4089         * sarif-replay.cc: Likewise.
4090         * doc/libgdiagnostics/Makefile: New file.
4091         * doc/libgdiagnostics/conf.py: New file.
4092         * doc/libgdiagnostics/index.rst: New file.
4093         * doc/libgdiagnostics/make.bat: New file.
4094         * doc/libgdiagnostics/topics/diagnostic-manager.rst: New file.
4095         * doc/libgdiagnostics/topics/diagnostics.rst: New file.
4096         * doc/libgdiagnostics/topics/execution-paths.rst: New file.
4097         * doc/libgdiagnostics/topics/fix-it-hints.rst: New file.
4098         * doc/libgdiagnostics/topics/index.rst: New file.
4099         * doc/libgdiagnostics/topics/logical-locations.rst: New file.
4100         * doc/libgdiagnostics/topics/message-formatting.rst: New file.
4101         * doc/libgdiagnostics/topics/metadata.rst: New file.
4102         * doc/libgdiagnostics/topics/physical-locations.rst: New file.
4103         * doc/libgdiagnostics/topics/retrofitting.rst: New file.
4104         * doc/libgdiagnostics/topics/sarif.rst: New file.
4105         * doc/libgdiagnostics/topics/text-output.rst: New file.
4106         * doc/libgdiagnostics/topics/ux.rst: New file.
4107         * doc/libgdiagnostics/tutorial/01-hello-world.rst: New file.
4108         * doc/libgdiagnostics/tutorial/02-physical-locations.rst: New file.
4109         * doc/libgdiagnostics/tutorial/03-logical-locations.rst: New file.
4110         * doc/libgdiagnostics/tutorial/04-notes.rst: New file.
4111         * doc/libgdiagnostics/tutorial/05-warnings.rst: New file.
4112         * doc/libgdiagnostics/tutorial/06-fix-it-hints.rst: New file.
4113         * doc/libgdiagnostics/tutorial/07-execution-paths.rst: New file.
4114         * doc/libgdiagnostics/tutorial/example-1.png: New file.
4115         * doc/libgdiagnostics/tutorial/index.rst: New file.
4117 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
4119         * config/avr/avr-c.cc: Fix some coding rule nits and typos.
4120         * config/avr/avr-passes.cc: Same
4121         * config/avr/avr.h: Same.
4122         * config/avr/avr.cc: Same.
4123         (avr_function_arg_regno_p, avr_hard_regno_rename_ok)
4124         (avr_epilogue_uses, extra_constraint_Q): Return bool instead of int.
4125         * config/avr/avr-protos.h (avr_function_arg_regno_p)
4126         (avr_hard_regno_rename_ok, avr_epilogue_uses)
4127         (extra_constraint_Q): Return bool instead of int.
4129 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
4131         * config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): Call
4132         aarch64_get_attributes and update calls to aarch64_general_add_builtin.
4134 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
4136         * config/aarch64/aarch64-builtins.cc (aarch64_init_prefetch_builtin):
4137         Updete call to aarch64_general_add_builtin in AARCH64_INIT_PREFETCH_BUILTIN.
4138         Add new variable prefetch_attrs.
4140 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
4142         * config/aarch64/aarch64-builtins.cc (VREINTERPRET_BUILTIN): Use
4143         FLAG_NONE instead of FLAG_AUTO_FP.
4144         (VGET_LOW_BUILTIN): Likewise.
4145         (VGET_HIGH_BUILTIN): Likewise.
4147 2024-11-29  Andrew Pinski  <quic_apinski@quicinc.com>
4149         PR target/117665
4150         * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_builtin_functions):
4151         Pass nothrow and leaf as attributes to aarch64_general_add_builtin for
4152         __builtin_aarch64_im_lane_boundsi.
4154 2024-11-29  Vladimir N. Makarov  <vmakarov@redhat.com>
4156         PR rtl-optimization/117770
4157         * lra-lives.cc: Include ira-int.h.
4158         (process_bb_lives): Check hard regs corresponding insn operands
4159         for dying hard wired reg clobbers.
4161 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
4163         PR target/117681
4164         * config/avr/avr.cc (TARGET_UNWIND_WORD_MODE): Define to...
4165         (avr_unwind_word_mode): ...this new static function.
4167 2024-11-29  Georg-Johann Lay  <avr@gjlay.de>
4169         PR target/117726
4170         * config/avr/avr-passes.cc (avr_shift_is_3op, avr_emit_shift):
4171         Also handle 2-byte and 3-byte shifts.
4172         (avr_split_shift4, avr_split_shift3, avr_split_shift2): New
4173         local helper functions.
4174         (avr_split_shift): Use them.
4175         * config/avr/avr-passes.def (avr_pass_split_after_peephole2):
4176         Adjust comments.
4177         * config/avr/avr.cc (avr_out_ashlpsi3, avr_out_ashrpsi3)
4178         (avr_out_lshrpsi3): Support offset 15.
4179         (ashrhi3_out): Support offset 7 as 3-op.
4180         (ashrsi3_out): Support offset 15.
4181         (avr_rtx_costs_1): Adjust shift costs.
4182         * config/avr/avr.md (2op): Remove attribute value and all such insn
4183         alternatives.
4184         (ashlhi3, *ashlhi3, *ashlhi3_const): Add 3-op alternatives like C2l.
4185         (ashrhi3, *ashrhi3, *ashrhi3_const): Add 3-op alternatives like C2a.
4186         (lshrhi3, *lshrhi3, *lshrhi3_const): Add 3-op alternatives like C2r.
4187         (*ashlpsi3_split, *ashlpsi3): Add 3-op alternatives C15 and C3l.
4188         (*ashrpsi3_split, *ashrpsi3): Add 3-op alternatives C15 and C3r.
4189         (*lshrpsi3_split, *lshrpsi3): Add 3-op alternatives C15 and C3r.
4190         (ashlsi3, *ashlsi3, *ashlsi3_const): Remove "2op" alternative.
4191         (ashrsi3, *ashrsi3, *ashrsi3_const): Same.
4192         (lshrsi3, *lshrsi3, *lshrsi3_const): Same.
4193         (constr_split_suffix): Code attr morphed from constr_split_shift4.
4194         * config/avr/constraints.md (C2a, C2r, C2l)
4195         (C3a, C3r, C3l): New constraints.
4196         * doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Adjust doc.
4198 2024-11-29  Andre Vieira  <andre.simoesdiasvieira@arm.com>
4200         PR target/117814
4201         * config/arm/arm.cc (arm_attempt_dlstp_transform): Use
4202         reg_overlap_mentioned_p instead of rtx_equal_p to detect uses of
4203         vctp_vpr_generated inside subregs.
4205 2024-11-29  Mariam Arutunian  <mariamarutunian@gmail.com>
4207         * expr.cc (gf2n_poly_long_div_quotient): New function.
4208         * expr.h (gf2n_poly_long_div_quotient):  New function declaration.
4209         * hwint.cc (reflect_hwi): New function.
4210         * hwint.h (reflect_hwi): New function declaration.
4211         * config/riscv/bitmanip.md (crc_rev<ANYI1:mode><ANYI:mode>4): New
4212         expander for reversed CRC.
4213         (crc<SUBX1:mode><SUBX:mode>4): New expander for bit-forward CRC.
4214         * config/riscv/iterators.md (SUBX1, ANYI1): New iterators.
4215         * config/riscv/riscv-protos.h (generate_reflecting_code_using_brev):
4216         New function declaration.
4217         (expand_crc_using_clmul): Likewise.
4218         (expand_reversed_crc_using_clmul): Likewise.
4219         * config/riscv/riscv.cc (generate_reflecting_code_using_brev): New
4220         function.
4221         (expand_crc_using_clmul): Likewise.
4222         (expand_reversed_crc_using_clmul): Likewise.
4223         * config/riscv/riscv.md (UNSPEC_CRC, UNSPEC_CRC_REV):  New unspecs.
4224         * doc/sourcebuild.texi: Document new target selectors.
4226 2024-11-29  yulong  <shiyulong@iscas.ac.cn>
4228         * config.gcc: Add new SiFive *.o files.
4229         * config/riscv/generic-vector-ooo.md: New reservation.
4230         * config/riscv/genrvv-type-indexer.cc (main): New type.
4231         * config/riscv/riscv-vector-builtins-shapes.cc (struct sf_vqmacc_def): New function.
4232         (SHAPE): Ditto.
4233         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4234         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_QMACC_OPS): New macros type.
4235         (vint32m1_t): Ditto.
4236         (vint32m2_t): Ditto.
4237         (vint32m4_t): Ditto.
4238         (vint32m8_t): Ditto.
4239         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_QMACC_OPS): New builtins def.
4240         (DEF_RVV_TYPE_INDEX): Ditto.
4241         (DEF_RVV_FUNCTION): Ditto.
4242         * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE_INDEX): New types def.
4243         (4x8x4): New op type.
4244         (2x8x2): Ditto.
4245         (quad_emul_vector): New base type.
4246         (quad_emul_signed_vector): Ditto.
4247         (quad_emul_unsigned_vector): Ditto.
4248         (quad_fixed_vector): Ditto.
4249         (quad_fixed_signed_vector): Ditto.
4250         (quad_fixed_unsigned_vector): Ditto.
4251         (quad_lmul1_vector): Ditto.
4252         (quad_lmul1_signed_vector): Ditto.
4253         (quad_lmul1_unsigned_vector): Ditto.
4254         * config/riscv/riscv-vector-builtins.h (enum required_ext): New extensions.
4255         (required_ext_to_isa_name): Ditto.
4256         (required_extensions_specified): Ditto.
4257         (struct function_group_info): Ditto.
4258         * config/riscv/riscv.md: New attr.
4259         * config/riscv/t-riscv: Add include for SiFive files.
4260         * config/riscv/vector-iterators.md: New iterator.
4261         * config/riscv/vector.md: New include for SiFive file.
4262         * config/riscv/sifive-vector-builtins-bases.cc: New file.
4263         * config/riscv/sifive-vector-builtins-bases.h: New file.
4264         * config/riscv/sifive-vector-builtins-functions.def: New file.
4265         * config/riscv/sifive-vector.md: New file.
4267 2024-11-29  Tamar Christina  <tamar.christina@arm.com>
4269         * config/aarch64/aarch64-errata.h (TARGET_SUPPRESS_OPT_SPEC,
4270         TARGET_TURN_OFF_OPT_SPEC, CA53_ERR_835769_COMPILE_SPEC,
4271         CA53_ERR_843419_COMPILE_SPEC): New.
4272         (CA53_ERR_835769_SPEC, CA53_ERR_843419_SPEC): Use them.
4273         * config/aarch64/aarch64-elf-raw.h (CC1_SPEC, CC1PLUS_SPEC): Add
4274         AARCH64_ERRATA_COMPILE_SPEC.
4275         * config/aarch64/aarch64-freebsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
4276         * config/aarch64/aarch64-gnu.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
4277         * config/aarch64/aarch64-linux.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
4278         * config/aarch64/aarch64-netbsd.h (CC1_SPEC, CC1PLUS_SPEC): Likewise.
4279         * common/config/aarch64/aarch64-common.cc
4280         (is_host_cpu_not_armv8_base): New.
4281         * config/aarch64/driver-aarch64.cc: Remove extra newline
4282         * config/aarch64/aarch64.h (is_host_cpu_not_armv8_base): New.
4283         (MCPU_TO_MARCH_SPEC_FUNCTIONS): Add is_local_not_armv8_base.
4284         (EXTRA_SPEC_FUNCTIONS): Add is_local_cpu_armv8_base.
4285         * doc/invoke.texi: Document it.
4287 2024-11-29  Richard Sandiford  <richard.sandiford@arm.com>
4289         * config/aarch64/aarch64-sme.md: In the section comments, add the
4290         architecture requirements alongside some mnemonics.
4291         * config/aarch64/aarch64-sve2.md: Likewise.
4293 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
4295         * config/aarch64/aarch64-option-extensions.def
4296         (fp8dot4, ssve-fp8dot4): Add new extensions.
4297         (fp8dot2, ssve-fp8dot2): Likewise.
4298         * config/aarch64/aarch64-sve-builtins-base.cc (svdot_impl): Support fp8.
4299         (svdotprod_lane_impl): Likewise.
4300         (svdot_lane): Provide an unspec for fp8 types.
4301         * config/aarch64/aarch64-sve-builtins-shapes.cc
4302         (ternary_mfloat8_def): Add new class.
4303         (ternary_mfloat8): Add new shape.
4304         (ternary_mfloat8_lane_group_selection_def): Add new class.
4305         (ternary_mfloat8_lane_group_selection): Add new shape.
4306         * config/aarch64/aarch64-sve-builtins-shapes.h
4307         (ternary_mfloat8, ternary_mfloat8_lane_group_selection): Declare.
4308         * config/aarch64/aarch64-sve-builtins-sve2.def
4309         (svdot, svdot_lane): Add new DEF_SVE_FUNCTION_GS_FPM, twice to deal
4310         with the combination of features providing support for 32 and 16 bit
4311         floating point.
4312         * config/aarch64/aarch64-sve2.md (@aarch64_sve_dot<mode>): Add new.
4313         (@aarch64_sve_dot_lane<mode>): Likewise.
4314         * config/aarch64/aarch64.h:
4315         (TARGET_FP8DOT4, TARGET_SSVE_FP8DOT4): Add new defines.
4316         (TARGET_FP8DOT2, TARGET_SSVE_FP8DOT2): Likewise.
4317         * config/aarch64/iterators.md
4318         (UNSPEC_DOT_FP8, UNSPEC_DOT_LANE_FP8): Add new unspecs.
4319         * doc/invoke.texi: Document fp8dot4, fp8dot2, ssve-fp8dot4, ssve-fp8dot2
4320         extensions.
4322 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
4324         * config/aarch64/aarch64-option-extensions.def
4325         (fp8fma, ssve-fp8fma): Add new options.
4326         * config/aarch64/aarch64-sve-builtins-functions.h
4327         (unspec_based_function_base): Add unspec_for_mfp8.
4328         (unspec_for): Return unspec_for_mfp8 on fpm-using cases.
4329         (sme_1mode_function): Fix call to parent ctor.
4330         (sme_2mode_function_t): Likewise.
4331         (unspec_based_mla_function, unspec_based_mla_lane_function): Handle
4332         fpm-using cases.
4333         * config/aarch64/aarch64-sve-builtins-shapes.cc
4334         (parse_element_type): Treat M as TYPE_SUFFIX_mf8
4335         (ternary_mfloat8_lane_def): Add new class.
4336         (ternary_mfloat8_opt_n_def): Likewise.
4337         (ternary_mfloat8_lane): Add new shape.
4338         (ternary_mfloat8_opt_n): Likewise.
4339         * config/aarch64/aarch64-sve-builtins-shapes.h
4340         (ternary_mfloat8_lane, ternary_mfloat8_opt_n): Declare.
4341         * config/aarch64/aarch64-sve-builtins-sve2.cc
4342         (svmlalb_lane, svmlalb, svmlalt_lane, svmlalt): Update definitions
4343         with mfloat8_t unspec in ctor.
4344         (svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane,
4345         svmlalltb, svmlalltt_lane, svmlalltt, svmlal_impl): Add new FUNCTIONs.
4346         (svqrshr, svqrshrn, svqrshru, svqrshrun): Update definitions with
4347         nop mfloat8 unspec in ctor.
4348         * config/aarch64/aarch64-sve-builtins-sve2.def
4349         (svmlalb, svmlalt, svmlalb_lane, svmlalt_lane, svmlallbb, svmlallbt,
4350         svmlalltb, svmlalltt, svmlalltt_lane, svmlallbb_lane, svmlallbt_lane,
4351         svmlalltb_lane): Add new DEF_SVE_FUNCTION_GS_FPMs.
4352         * config/aarch64/aarch64-sve-builtins-sve2.h
4353         (svmlallbb_lane, svmlallbb, svmlallbt_lane, svmlallbt, svmlalltb_lane,
4354         svmlalltb, svmlalltt_lane, svmlalltt): Declare.
4355         * config/aarch64/aarch64-sve-builtins.cc
4356         (TYPES_h_float_mf8, TYPES_s_float_mf8): Add new types.
4357         (h_float_mf8, s_float_mf8): Add new SVE_TYPES_ARRAY.
4358         * config/aarch64/aarch64-sve2.md
4359         (@aarch64_sve_add_<sve2_fp8_fma_op_vnx8hf><mode>): Add new.
4360         (@aarch64_sve_add_<sve2_fp8_fma_op_vnx4sf><mode>): Add new.
4361         (@aarch64_sve_add_lane_<sve2_fp8_fma_op_vnx8hf><mode>): Likewise.
4362         (@aarch64_sve_add_lane_<sve2_fp8_fma_op_vnx4sf><mode>): Likewise.
4363         * config/aarch64/aarch64.h
4364         (TARGET_FP8FMA, TARGET_SSVE_FP8FMA): Likewise.
4365         * config/aarch64/iterators.md
4366         (VNx8HF_ONLY): Add new.
4367         (UNSPEC_FMLALB_FP8, UNSPEC_FMLALLBB_FP8, UNSPEC_FMLALLBT_FP8,
4368         UNSPEC_FMLALLTB_FP8, UNSPEC_FMLALLTT_FP8, UNSPEC_FMLALT_FP8): Likewise.
4369         (SVE2_FP8_TERNARY_VNX8HF, SVE2_FP8_TERNARY_VNX4SF): Likewise.
4370         (SVE2_FP8_TERNARY_LANE_VNX8HF, SVE2_FP8_TERNARY_LANE_VNX4SF): Likewise.
4371         (sve2_fp8_fma_op_vnx8hf, sve2_fp8_fma_op_vnx4sf): Likewise.
4372         * doc/invoke.texi: Document fp8fma and sve-fp8fma extensions.
4374 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
4376         * config/aarch64/aarch64-sve-builtins-shapes.cc
4377         (parse_signature): Add an fpm_t (uint64_t) argument to functions that
4378         set the fpm register.
4379         (unary_convertxn_narrowt_def): New class.
4380         (unary_convertxn_narrowt): New shape.
4381         (unary_convertxn_narrow_def): New class.
4382         (unary_convertxn_narrow): New shape.
4383         * config/aarch64/aarch64-sve-builtins-shapes.h
4384         (unary_convertxn_narrowt): Declare.
4385         (unary_convertxn_narrow): Likewise.
4386         * config/aarch64/aarch64-sve-builtins-sve2.cc
4387         (svcvt_fp8_impl): New class.
4388         (svcvtn_impl): Handle fp8 cases.
4389         (svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new FUNCTION.
4390         (svcvtnb): Likewise.
4391         * config/aarch64/aarch64-sve-builtins-sve2.def
4392         (svcvt1, svcvt2, svcvtlt1, svcvtlt2): Add new DEF_SVE_FUNCTION_GS_FPM.
4393         (svcvtn): Likewise.
4394         (svcvtnb, svcvtnt): Likewise.
4395         * config/aarch64/aarch64-sve-builtins-sve2.h
4396         (svcvt1, svcvt2, svcvtlt1, svcvtlt2, svcvtnb, svcvtnt): Declare.
4397         * config/aarch64/aarch64-sve-builtins.cc
4398         (TYPES_cvt_mf8, TYPES_cvtn_mf8, TYPES_cvtnx_mf8): Add new types arrays.
4399         (function_builder::get_name): Append _fpm to functions that set fpmr.
4400         (function_resolver::check_gp_argument): Deal with the fpm_t argument.
4401         (function_expander::expand): Set the fpm register before
4402         calling the insn if the function warrants it.
4403         * config/aarch64/aarch64-sve2.md (@aarch64_sve2_fp8_cvt): Add new.
4404         (@aarch64_sve2_fp8_cvtn): Likewise.
4405         (@aarch64_sve2_fp8_cvtnb): Likewise.
4406         (@aarch64_sve_cvtnt): Likewise.
4407         * config/aarch64/aarch64.h (TARGET_SSVE_FP8): Add new.
4408         * config/aarch64/iterators.md
4409         (VNx8SF_ONLY, SVE_FULL_HFx2): New mode iterators.
4410         (UNSPEC_F1CVT, UNSPEC_F1CVTLT, UNSPEC_F2CVT, UNSPEC_F2CVTLT): Add new.
4411         (UNSPEC_FCVTNB, UNSPEC_FCVTNT): Likewise.
4412         (UNSPEC_FP8FCVTN): Likewise.
4413         (FP8CVT_UNS, fp8_cvt_uns_op): Likewise.
4415 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
4417         * config/aarch64/aarch64-sve-builtins-base.cc
4418         (svdiv_impl): Specify FPM_unused when folding.
4419         (svmul_impl): Likewise.
4420         * config/aarch64/aarch64-sve-builtins-shapes.cc
4421         (build_one): Use the group fpm_mode when creating function instances.
4422         * config/aarch64/aarch64-sve-builtins-sve2.cc
4423         (svaba_impl, svqrshl_impl, svqshl_impl,svrshl_impl, svsra_impl):
4424         Specify FPM_unused when folding.
4425         * config/aarch64/aarch64-sve-builtins.cc (function_groups): Set
4426         fpm_mode on all elements.
4427         (neon_sve_function_groups, sme_function_groups): Likewise.
4428         (function_instance::hash): Include fpm_mode in hash.
4429         (function_builder::add_overloaded_functions): Use the group fpm mode.
4430         (function_resolver::lookup_form): Use the function instance fpm_mode
4431         when looking up a function.
4432         * config/aarch64/aarch64-sve-builtins.def
4433         (DEF_SVE_FUNCTION_GS_FPM): add define.
4434         (DEF_SVE_FUNCTION_GS): redefine against DEF_SVE_FUNCTION_GS_FPM.
4435         * config/aarch64/aarch64-sve-builtins.h (fpm_mode_index): New.
4436         (function_group_info): Add fpm_mode.
4437         (function_instance): Likewise.
4438         (function_instance::operator==): Handle fpm_mode.
4440 2024-11-29  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
4442         * config/aarch64/aarch64-sve-builtins.cc (TYPES_b_data): Add mf8.
4443         (TYPES_reinterpret1, TYPES_reinterpret): Likewise.
4444         * config/aarch64/aarch64-sve-builtins.def (svmfloat8_t): New type.
4445         (mf8): New type suffix.
4446         * config/aarch64/aarch64-sve-builtins.h (TYPE_mfloat): New
4447         type_class_index.
4449 2024-11-29  Richard Biener  <rguenther@suse.de>
4451         PR tree-optimization/115438
4452         * tree-vect-loop.cc (vect_transform_cycle_phi): For SLP also
4453         try to do the reduction adjustment by the initial value
4454         in the epilogue.
4456 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
4458         * tree.cc (build_vector_from_ctor): Add support to construct VLA vector
4459         constants from init constructors.
4461 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
4463         * gimple-fold.cc (maybe_canonicalize_mem_ref_addr): Handle variable
4464         sized vector types in BIT_FIELD_REF canonicalization.
4465         * tree-cfg.cc (verify_types_in_gimple_reference): Change object-size-
4466         checking for BIT_FIELD_REF to error offsets that are known_gt to be
4467         outside object-size.  Out-of-range offsets can happen in the case of
4468         indices that reference VLA SVE vector elements that may be outside the
4469         minimum vector size range and therefore maybe_gt is not appropirate
4470         here.
4472 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
4474         * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): Flip
4475         TYPE_INDIVISBLE flag for SVE ACLE vector types.
4477 2024-11-29  Tejas Belagod  <tejas.belagod@arm.com>
4479         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
4480         __ARM_FEATURE_SVE_VECTOR_OPERATORS.
4482 2024-11-29  Yury Khrustalev  <yury.khrustalev@arm.com>
4484         * config/aarch64/arm_acle.h (_CHKFEAT_GCS): New.
4486 2024-11-29  Jakub Jelinek  <jakub@redhat.com>
4488         PR middle-end/117065
4489         * gimple-fold.cc (type_has_padding_at_level_p) <case UNION_TYPE>:
4490         Also continue if f has error_mark_node type.
4492 2024-11-29  Jakub Jelinek  <jakub@redhat.com>
4494         PR target/117608
4495         * doc/extend.texi (__builtin_prefetch): Document that second
4496         argument may be also 2 and its meaning.
4497         * config/i386/i386.md (prefetch): Remove unreachable code.
4498         Clear write set operands[1] to const0_rtx if !TARGET_MOVRS or
4499         of locality is not 1.  Formatting fixes.
4500         * config/i386/i386-expand.cc (ix86_expand_builtin): Use IN_RANGE.
4501         Call gen_prefetch even for TARGET_MOVRS.
4502         * config/alpha/alpha.md (prefetch): Treat read_or_write 2 like 0.
4503         * config/mips/mips.md (prefetch): Likewise.
4504         * config/arc/arc.md (prefetch_1, prefetch_2, prefetch_3): Likewise.
4505         * config/riscv/riscv.md (prefetch): Likewise.
4506         * config/loongarch/loongarch.md (prefetch): Likewise.
4507         * config/sparc/sparc.md (prefetch): Likewise.  Use IN_RANGE.
4508         * config/ia64/ia64.md (prefetch): Likewise.
4509         * config/pa/pa.md (prefetch): Likewise.
4510         * config/aarch64/aarch64.md (prefetch): Likewise.
4511         * config/rs6000/rs6000.md (prefetch): Likewise.
4513 2024-11-29  Alexandre Oliva  <oliva@adacore.com>
4515         PR tree-optimization/117723
4516         * tree-ssa-ifcombine.cc (tree_ssa_ifcombine_bb): Record
4517         forwarder blocks in path to exit, and stick to them.  Avoid
4518         computing the exit if obviously not needed, and if that
4519         enables additional optimizations.
4520         (tree_ssa_ifcombine_bb_1): Fix typos.
4522 2024-11-28  Uros Bizjak  <ubizjak@gmail.com>
4524         * config/i386/i386.md (*<any_shift:insn><mode>3_mask): Macroize
4525         pattern from *ashl<mode>3_mask and *<any_shiftrt:insn><mode>3_mask
4526         using any_shift code iterator.
4527         (*<any_shift:insn><mode>3_mask_1): Macroize pattern
4528         from *ashl<mode>3_mask_1 and *<any_shiftrt:insn><mode>3_mask_1
4529         using any_shift code iterator.
4530         (*<any_shift:insn><mode>3_add): Macroize pattern
4531         from *ashl<mode>3_add and *<any_shiftrt:insn><mode>3_add
4532         using any_shift code iterator.
4533         (*<any_shift:insn><mode>3_add_1): Macroize pattern
4534         from *ashl<mode>3_add_1 and *<any_shiftrt:insn><mode>3_add_1
4535         using any_shift code iterator.
4536         (*<insn><mode>3_sub): Macroize pattern
4537         from *ashl<mode>3_sub and *<any_shiftrt:insn><mode>3_sub
4538         using any_shift code iterator.
4539         (*<any_shift:insn><mode>3_sub_1): Macroize pattern
4540         from *ashl<mode>3_sub_1 and *<any_shiftrt:insn><mode>3_sub_1
4541         using any_shift code iterator.
4543 2024-11-28  Mariam Arutunian  <mariamarutunian@gmail.com>
4545         * builtin-types.def (BT_FN_UINT8_UINT8_UINT8_CONST_SIZE): Define.
4546         (BT_FN_UINT16_UINT16_UINT8_CONST_SIZE): Likewise.
4547         (BT_FN_UINT16_UINT16_UINT16_CONST_SIZE): Likewise.
4548         (BT_FN_UINT32_UINT32_UINT8_CONST_SIZE): Likewise.
4549         (BT_FN_UINT32_UINT32_UINT16_CONST_SIZE): Likewise.
4550         (BT_FN_UINT32_UINT32_UINT32_CONST_SIZE): Likewise.
4551         (BT_FN_UINT64_UINT64_UINT8_CONST_SIZE): Likewise.
4552         (BT_FN_UINT64_UINT64_UINT16_CONST_SIZE): Likewise.
4553         (BT_FN_UINT64_UINT64_UINT32_CONST_SIZE): Likewise.
4554         (BT_FN_UINT64_UINT64_UINT64_CONST_SIZE): Likewise.
4555         * builtins.cc (associated_internal_fn): Handle CRC related builtins.
4556         (expand_builtin_crc_table_based): New function.
4557         (expand_builtin): Handle CRC related builtins.
4558         * builtins.def (BUILT_IN_CRC8_DATA8): New builtin.
4559         (BUILT_IN_CRC16_DATA8): Likewise.
4560         (BUILT_IN_CRC16_DATA16): Likewise.
4561         (BUILT_IN_CRC32_DATA8): Likewise.
4562         (BUILT_IN_CRC32_DATA16): Likewise.
4563         (BUILT_IN_CRC32_DATA32): Likewise.
4564         (BUILT_IN_CRC64_DATA8): Likewise.
4565         (BUILT_IN_CRC64_DATA16): Likewise.
4566         (BUILT_IN_CRC64_DATA32): Likewise.
4567         (BUILT_IN_CRC64_DATA64): Likewise.
4568         (BUILT_IN_REV_CRC8_DATA8): New builtin.
4569         (BUILT_IN_REV_CRC16_DATA8): Likewise.
4570         (BUILT_IN_REV_CRC16_DATA16): Likewise.
4571         (BUILT_IN_REV_CRC32_DATA8): Likewise.
4572         (BUILT_IN_REV_CRC32_DATA16): Likewise.
4573         (BUILT_IN_REV_CRC32_DATA32): Likewise.
4574         (BUILT_IN_REV_CRC64_DATA8): Likewise.
4575         (BUILT_IN_REV_CRC64_DATA16): Likewise.
4576         (BUILT_IN_REV_CRC64_DATA32): Likewise.
4577         (BUILT_IN_REV_CRC64_DATA64): Likewise.
4578         * builtins.h (expand_builtin_crc_table_based): New function
4579         declaration.
4580         * doc/extend.texi: Add documentation for new CRC builtins.
4582 2024-11-28  Mariam Arutunian  <mariamarutunian@gmail.com>
4584         * doc/md.texi (crc@var{m}@var{n}4, crc_rev@var{m}@var{n}4): Document.
4585         * expr.cc (calculate_crc): New function.
4586         (assemble_crc_table): Likewise.
4587         (generate_crc_table): Likewise.
4588         (calculate_table_based_CRC): Likewise.
4589         (expand_crc_table_based): Likewise.
4590         (gen_common_operation_to_reflect): Likewise.
4591         (reflect_64_bit_value): Likewise.
4592         (reflect_32_bit_value): Likewise.
4593         (reflect_16_bit_value): Likewise.
4594         (reflect_8_bit_value): Likewise.
4595         (generate_reflecting_code_standard): Likewise.
4596         (expand_reversed_crc_table_based): Likewise.
4597         * expr.h (generate_reflecting_code_standard): New function declaration.
4598         (expand_crc_table_based): Likewise.
4599         (expand_reversed_crc_table_based): Likewise.
4600         * internal-fn.cc: (crc_direct): Define.
4601         (direct_crc_optab_supported_p): Likewise.
4602         (expand_crc_optab_fn): New function
4603         * internal-fn.def (CRC, CRC_REV): New internal functions.
4604         * optabs.def (crc_optab, crc_rev_optab): New optabs.
4605         Signed-off-by: Mariam Arutunian <mariamarutunian@gmail.com>
4606         Co-authored-by: Joern Rennecke <joern.rennecke@embecosm.com>
4607         Co-authored-by: Jeff Law <jlaw@ventanamicro.com>
4609 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4611         PR target/117642
4612         * doc/extend.texi: Remove documentation of warning for unimplemented
4613         __sync_* operations, such warning has never been implemented.
4615 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4617         PR c/117023
4618         * gimple-range-infer.cc (gimple_infer_range::gimple_infer_range):
4619         Handle also nonnull_if_nonzero attributes.
4621 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4623         PR c/117023
4624         * gimple.h (infer_nonnull_range_by_attribute): Add a tree *
4625         argument defaulted to NULL.
4626         * gimple.cc (infer_nonnull_range_by_attribute): Add op2 argument.
4627         Handle also nonnull_if_nonzero attributes.
4628         * tree.cc (get_nonnull_args): Fix comment typo.
4629         * builtins.cc (validate_arglist): Handle nonnull_if_nonzero attribute.
4630         * tree-ssa-ccp.cc (pass_post_ipa_warn::execute): Handle
4631         nonnull_if_nonzero attributes.
4632         * ubsan.cc (instrument_nonnull_arg): Adjust
4633         infer_nonnull_range_by_attribute caller.  If it returned true and
4634         filed in non-NULL arg2, check that arg2 is non-zero as another
4635         condition next to checking that arg is zero.
4636         * doc/extend.texi (nonnull_if_nonzero): Document new attribute.
4638 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4640         * config/rs6000/rs6000.h (struct machine_function): Add
4641         asm_redzone_clobber_seen member.
4642         * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Force
4643         info->push_p if cfun->machine->asm_redzone_clobber_seen.
4644         * config/rs6000/rs6000.cc (TARGET_REDZONE_CLOBBER): Redefine.
4645         (rs6000_redzone_clobber): New function.
4647 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4649         * target.def (redzone_clobber): New target hook.
4650         * varasm.cc (decode_reg_name_and_count): Return -5 for
4651         "redzone".
4652         * cfgexpand.cc (expand_asm_stmt): Handle redzone clobber.
4653         * config/i386/i386.h (struct machine_function): Add
4654         asm_redzone_clobber_seen member.
4655         * config/i386/i386.cc (ix86_compute_frame_layout): Don't
4656         use red zone if cfun->machine->asm_redzone_clobber_seen.
4657         (ix86_redzone_clobber): New function.
4658         (TARGET_REDZONE_CLOBBER): Redefine.
4659         * doc/extend.texi (Clobbers and Scratch Registers): Document
4660         the "redzone" clobber.
4661         * doc/tm.texi.in: Add @hook TARGET_REDZONE_CLOBBER.
4662         * doc/tm.texi: Regenerate.
4664 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4666         PR c++/116416
4667         * flag-types.h (enum zero_init_padding_bits_kind): New type.
4668         * tree.h (CONSTRUCTOR_ZERO_PADDING_BITS): Define.
4669         * common.opt (fzero-init-padding-bits=): New option.
4670         * expr.cc (categorize_ctor_elements_1): Handle
4671         CONSTRUCTOR_ZERO_PADDING_BITS or
4672         flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_ALL.  Fix
4673         up *p_complete = -1; setting for unions.
4674         (complete_ctor_at_level_p): Handle unions differently for
4675         flag_zero_init_padding_bits == ZERO_INIT_PADDING_BITS_STANDARD.
4676         * gimple-fold.cc (type_has_padding_at_level_p): Fix up UNION_TYPE
4677         handling, return also true for UNION_TYPE with no FIELD_DECLs
4678         and non-zero size, handle QUAL_UNION_TYPE like UNION_TYPE.
4679         * doc/invoke.texi (-fzero-init-padding-bits=@var{value}): Document.
4681 2024-11-28  Tamar Christina  <tamar.christina@arm.com>
4683         PR tree-optimization/117557
4684         * tree-vect-stmts.cc (vectorizable_store): Flatten the ncopies and
4685         vec_num loops.
4687 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4689         PR tree-optimization/117358
4690         * gimple-fold.cc (gimple_fold_builtin_memory_op): Punt if stmt has no
4691         vdef in ssa form.
4692         (gimple_fold_builtin_bcmp): Punt if stmt has no vuse in ssa form.
4693         (gimple_fold_builtin_bcopy): Punt if stmt has no vdef in ssa form.
4694         (gimple_fold_builtin_bzero): Likewise.
4695         (gimple_fold_builtin_memset): Likewise.  Use return false instead of
4696         return NULL_TREE.
4697         (gimple_fold_builtin_strcpy): Punt if stmt has no vdef in ssa form.
4698         (gimple_fold_builtin_strncpy): Likewise.
4699         (gimple_fold_builtin_strchr): Punt if stmt has no vuse in ssa form.
4700         (gimple_fold_builtin_strstr): Likewise.
4701         (gimple_fold_builtin_strcat): Punt if stmt has no vdef in ssa form.
4702         (gimple_fold_builtin_strcat_chk): Likewise.
4703         (gimple_fold_builtin_strncat): Likewise.
4704         (gimple_fold_builtin_strncat_chk): Likewise.
4705         (gimple_fold_builtin_string_compare): Likewise.
4706         (gimple_fold_builtin_fputs): Likewise.
4707         (gimple_fold_builtin_memory_chk): Likewise.
4708         (gimple_fold_builtin_stxcpy_chk): Likewise.
4709         (gimple_fold_builtin_stxncpy_chk): Likewise.
4710         (gimple_fold_builtin_stpcpy): Likewise.
4711         (gimple_fold_builtin_snprintf_chk): Likewise.
4712         (gimple_fold_builtin_sprintf_chk): Likewise.
4713         (gimple_fold_builtin_sprintf): Likewise.
4714         (gimple_fold_builtin_snprintf): Likewise.
4715         (gimple_fold_builtin_fprintf): Likewise.
4716         (gimple_fold_builtin_printf): Likewise.
4717         (gimple_fold_builtin_realloc): Likewise.
4719 2024-11-28  Jakub Jelinek  <jakub@redhat.com>
4721         PR c/117802
4722         * builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
4723         INTEGER_TYPE.
4725 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
4727         * timevar.cc: Include "make-unique.h".
4728         (timer::named_items::make_json): Convert return type to unique_ptr.
4729         Avoid naked "new".
4730         (make_json_for_timevar_time_def): Likewise.
4731         (timer::timevar_def::make_json): Likewise.
4732         (timer::make_json): Likewise.
4733         * timevar.h (timer::make_json): Likewise.
4734         (timer::timevar_def::make_json): Likewise.
4735         * tree-diagnostic-client-data-hooks.cc: Update for above changes.
4737 2024-11-28  David Malcolm  <dmalcolm@redhat.com>
4739         PR c/104896
4740         * common/config/ia64/ia64-common.cc (ia64_handle_option): Replace
4741         "%<%s%>" with "%qs" in message wording.
4742         * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
4743         Likewise.
4744         * config/aarch64/aarch64.cc (aarch64_validate_sls_mitigation):
4745         Likewise.
4746         (aarch64_override_options): Likewise.
4747         (aarch64_process_target_attr): Likewise.
4748         * config/arm/aarch-common.cc (aarch_validate_mbranch_protection):
4749         Likewise.
4750         * config/pru/pru.cc (pru_insert_attributes): Likewise.
4751         * config/riscv/riscv-target-attr.cc
4752         (riscv_target_attr_parser::parse_arch): Likewise.
4753         * omp-general.cc (oacc_verify_routine_clauses): Likewise.
4754         * tree-ssa-uninit.cc (maybe_warn_read_write_only): Likewise.
4755         (maybe_warn_pass_by_reference): Likewise.
4757 2024-11-27  Uros Bizjak  <ubizjak@gmail.com>
4759         PR target/36503
4760         * config/i386/i386.md (*ashl<mode>3_add):
4761         New define_insn_and_split pattern.
4762         (*ashl<mode>3_add_1): Ditto.
4763         (*<insn><mode>3_add): Ditto.
4764         (*<insn><mode>3_add_1): Ditto.
4765         (*ashl<mode>3_sub): Rename from *ashl<mode>3_negcnt.
4766         (*ashl<mode>3_sub_1): Rename from *ashl<mode>3_negcnt_1.
4767         (*<insn><mode>3_sub): Rename from *<insn><mode>3_negcnt.
4768         (*<insn><mode>3_sub_1): Rename from *<insn><mode>3_negcnt_1.
4770 2024-11-27  Andrew Pinski  <quic_apinski@quicinc.com>
4772         PR tree-optimization/117776
4773         * match.pd (nested int casts): Allow for the case
4774         where the final prec is greater than the original
4775         prec.
4777 2024-11-27  Pan Li  <pan2.li@intel.com>
4779         * match.pd: Refactor sorts of unsigned SAT_ADD match pattern for
4780         IFN ADD_OVERFLOW.
4782 2024-11-27  Jakub Jelinek  <jakub@redhat.com>
4784         PR target/117642
4785         * builtins.cc (expand_builtin_sync_lock_release): Change return type
4786         from void to rtx, return result of expand_atomic_store.
4787         (expand_builtin) <case BUILT_IN_SYNC_LOCK_RELEASE_16>: If
4788         expand_builtin_sync_lock_release returns NULL, do a break rather
4789         than return const0_rtx.
4791 2024-11-27  Jakub Jelinek  <jakub@redhat.com>
4793         PR tree-optimization/117692
4794         * tree.cc (get_range_pos_neg): Adjust function comment, use
4795         non-negative instead of positive.
4796         * match.pd
4797         (((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3)):
4798         Use casts to utype if type is signed, factor isn't 1 and
4799         C1 and C2 could have different sign for + or could have the
4800         same sign for -.
4802 2024-11-27  Alexandre Oliva  <oliva@adacore.com>
4804         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Avoid fallback
4805         conjunction of noncontiguous conditions.
4807 2024-11-27  Florian Weimer  <fweimer@redhat.com>
4809         * doc/invoke.texi: Document -Wfree-labels.
4811 2024-11-27  Jason Merrill  <jason@redhat.com>
4812             Andrew Pinski  <quic_apinski@quicinc.com>
4813             Andi Kleen  <ak@gcc.gnu.org>
4815         PR bootstrap/117350
4816         * tree.cc (need_assembler_name_p): Keep assembler name
4817         for abstract declarations when autofdo is used.
4819 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
4821         * selftest.cc (selftest::print_diff): New function.
4822         (selftest::assert_streq): Call it when we have non-equal
4823         non-null strings.
4825 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
4827         PR translation/90160
4828         * config/csky/csky.cc (csky_configure_build_target): Use %qs when
4829         referring to cpu and arch names.
4830         (csky_option_override): Likewise.
4832 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
4834         PR translation/80760
4835         * tree-ssa-loop-prefetch.cc (pass_loop_prefetch::execute): Add
4836         missing colon to not-a-power-of-two param warning.
4838 2024-11-26  David Malcolm  <dmalcolm@redhat.com>
4840         PR plugins/93746
4841         * plugin.cc (try_init_one_plugin): Add missing colon in error
4842         message.
4844 2024-11-26  Alex Coplan  <alex.coplan@arm.com>
4846         * gdbhooks.py (strip_ref): New. Use it ...
4847         (VecPrinter.to_string): ... here,
4848         (VecPrinter.children): ... and here.
4850 2024-11-26  Robin Dapp  <rdapp@ventanamicro.com>
4852         * config/riscv/riscv-avlprop.cc (pass_avlprop::get_vlmax_ta_preferred_avl):
4853         Check whether the use insn is valid for propagation.
4855 2024-11-26  Jakub Jelinek  <jakub@redhat.com>
4857         PR middle-end/102674
4858         * builtins.cc (fold_builtin_fpclassify): Use real_from_string3 rather
4859         than real_from_string.  Use "1E%d" format string rather than "0x1p%d"
4860         for decimal float minimum.  Formatting fixes.
4862 2024-11-26  Jakub Jelinek  <jakub@redhat.com>
4864         PR middle-end/43374
4865         * real.cc (get_max_float): Handle decimal float.
4866         * builtins.cc (fold_builtin_interclass_mathfn): Use
4867         real_from_string3 rather than real_from_string.  Use
4868         "1E%d" format string rather than "0x1p%d" for decimal
4869         float minimum.
4871 2024-11-26  Andrew Pinski  <quic_apinski@quicinc.com>
4873         * tree-affine.cc (wide_int_constant_multiple_p): Remove unused rem variable.
4875 2024-11-26  Cui, Lili  <lili.cui@intel.com>
4877         PR target/116675
4878         * config/i386/i386-expand.cc (expand_vec_perm_pand_pandn_por):
4879         New subroutine.
4880         (ix86_expand_vec_perm_const_1): Call expand_vec_perm_pand_pandn_por.
4882 2024-11-25  Andrew Pinski  <quic_apinski@quicinc.com>
4884         PR target/117771
4885         * system.h: Move the include of sstream above safe-ctype.h.
4887 2024-11-25  H.J. Lu  <hjl.tools@gmail.com>
4889         PR middle-end/117098
4890         * calls.cc (store_one_arg): Check partial != 0 for BLKmode argument
4891         passed on stack.
4893 2024-11-25  John David Anglin  <danglin@gcc.gnu.org>
4895         PR target/117645
4896         * config/pa/pa.md (addti3): Revise pattern to support
4897         arith11_operands.  Use "R" operand prefix to print least
4898         significant register of TImode register pair.
4899         (addvti3, subti3, subvti3): Likewise.
4900         (negti2, negvti2): Use "R" operand prefix.
4902 2024-11-25  Vladimir N. Makarov  <vmakarov@redhat.com>
4904         PR target/117105
4905         * lra-constraints.cc (get_reload_reg): Create unique value reload
4906         pseudos for early clobbered operands.
4908 2024-11-25  Uros Bizjak  <ubizjak@gmail.com>
4910         * config/i386/i386.md (*ashl<mode>3_negcnt):
4911         For SImode shifts allow multiples of 32 (or multiples
4912         of 64 for DImode shifts) for immediate operand 3.
4913         (*ashl<mode>3_negcnt_1): Ditto.
4914         (*<insn><mode>3_negcnt): Ditto.
4915         (*<insn><mode>3_negcnt_1): Ditto.
4917 2024-11-25  Andrew Pinski  <quic_apinski@quicinc.com>
4919         * config/g.opt.urls: Regenerate.
4920         * config/i386/i386.opt.urls: Regenerate.
4921         * config/i386/nto.opt.urls: Regenerate.
4922         * config/nvptx/nvptx.opt.urls: Regenerate.
4923         * config/riscv/riscv.opt.urls: Regenerate.
4924         * config/s390/s390.opt.urls: Regenerate.
4925         * config/sol2.opt.urls: Regenerate.
4927 2024-11-25  Sandra Loosemore  <sloosemore@baylibre.com>
4929         * common/config/nios2/*: Delete entire directory.
4930         * config/nios2/*: Delete entire directory.
4931         * config.gcc: Remove references to nios2.
4932         * configure.ac: Likewise.
4933         * doc/extend.texi: Likewise.
4934         * doc/install.texi: Likewise.
4935         * doc/invoke.texi: Likewise.
4936         * doc/md.texi: Likewise.
4937         * regenerate-opt-urls.py: Likewise.
4938         * config.in: Regenerated.
4939         * configure: Regenerated.
4941 2024-11-25  Robin Dapp  <rdapp@ventanamicro.com>
4943         PR target/117544
4944         * config/riscv/vector.md (*mov<mode>_whole): Split.
4945         (*mov<mode>_fract): Ditto.
4946         (*mov<mode>): Ditto.
4947         (*mov<mode>_vls): Ditto.
4948         (*mov<mode>_reg_whole_vtype): New pattern with vtype use.
4949         (*mov<mode>_fract_vtype): Ditto.
4950         (*mov<mode>_vtype): Ditto.
4951         (*mov<mode>_vls_vtype): Ditto.
4953 2024-11-25  Robin Dapp  <rdapp@ventanamicro.com>
4955         PR target/111600
4956         * genemit.cc (handle_arg): Use files instead of filenames.
4957         (main): Ditto.
4958         * gensupport.cc (SIZED_BASED_CHUNKS): Define.
4959         (choose_output): New function.
4960         * gensupport.h (choose_output): Declare.
4962 2024-11-25  Richard Biener  <rguenther@suse.de>
4964         PR target/116760
4965         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
4966         Scale vec_construct for single-lane VMAT_STRIDED_SLP the
4967         same as VMAT_ELEMENTWISE.
4968         * tree-vect-stmts.cc (vectorizable_store): Pass SLP node
4969         down to costing for vec_to_scalar for VMAT_STRIDED_SLP.
4971 2024-11-25  Richard Biener  <rguenther@suse.de>
4973         * config/i386/i386.cc (ix86_vector_costs::finish_cost): For an
4974         128bit SSE epilogue request a 64bit SSE epilogue if the 128bit
4975         SSE epilogue VF was 16 or higher.
4977 2024-11-25  Richard Biener  <rguenther@suse.de>
4979         PR tree-optimization/117767
4980         * tree-vect-stmts.cc (vectorizable_store): Check for supported
4981         alignment before using a an alternate store vector type.
4982         (vectorizable_load): Likewise for loads.
4984 2024-11-25  Richard Biener  <rguenther@suse.de>
4986         PR tree-optimization/115825
4987         * tree-ssa-loop-ivcanon.cc (loop_size::not_eliminatable_after_peeling):
4988         New.
4989         (loop_size::last_iteration_not_eliminatable_after_peeling): Likewise.
4990         (tree_estimate_loop_size): Count stmts with side-effects as
4991         not optimistically eliminatable.
4992         (estimated_unrolled_size): Compute the number of stmts that can
4993         be optimistically eliminated by followup transforms.
4994         (try_unroll_loop_completely): Adjust.
4996 2024-11-25  Kito Cheng  <kito.cheng@sifive.com>
4998         * config/riscv/riscv.cc (riscv_asan_shadow_offset): Use dynamic
4999         offset for RV64.
5000         (riscv_asan_dynamic_shadow_offset_p): New.
5001         (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New.
5003 2024-11-25  Kito Cheng  <kito.cheng@sifive.com>
5005         * asan.cc (asan_dynamic_shadow_offset_p): New.
5006         (asan_shadow_memory_dynamic_address): New.
5007         (asan_local_shadow_memory_dynamic_address): New.
5008         (get_asan_shadow_memory_dynamic_address_decl): New.
5009         (asan_maybe_insert_dynamic_shadow_at_function_entry): New.
5010         (asan_emit_stack_protection): Support dynamic shadow offset.
5011         (build_shadow_mem_access): Ditto.
5012         * asan.h (asan_maybe_insert_dynamic_shadow_at_function_entry): New.
5013         * doc/tm.texi (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): New.
5014         * doc/tm.texi.in (TARGET_ASAN_DYNAMIC_SHADOW_OFFSET_P): Ditto.
5015         * sanopt.cc (pass_sanopt::execute): Handle dynamic shadow offset.
5016         * target.def (asan_dynamic_shadow_offset_p): New.
5017         * toplev.cc (process_options): Handle dynamic shadow offset.
5019 2024-11-25  Dongyan Chen  <chendongyan@isrc.iscas.ac.cn>
5021         * common/config/riscv/riscv-common.cc: New extension.
5022         * common/config/riscv/riscv-ext-bitmask.def (RISCV_EXT_BITMASK): Ditto.
5023         * config/riscv/riscv.opt: New mask.
5025 2024-11-25  Xi Ruoyao  <xry111@xry111.site>
5027         * config/pa/pa.cc (pa_section_type_flags): Remove.
5028         (TARGET_SECTION_TYPE_FLAGS): Remove.
5030 2024-11-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
5031             Philipp Tomsich  <philipp.tomsich@vrull.eu>
5033         * Makefile.in (OBJS): Add avoid-store-forwarding.o.
5034         * common.opt (favoid-store-forwarding): New option.
5035         * common.opt.urls: Regenerate.
5036         * doc/invoke.texi: New param store-forwarding-max-distance.
5037         * doc/passes.texi: Document new pass.
5038         * doc/tm.texi: Regenerate.
5039         * doc/tm.texi.in: Document new pass.
5040         * params.opt (store-forwarding-max-distance): New param.
5041         * passes.def: Add pass_rtl_avoid_store_forwarding before
5042         pass_early_remat.
5043         * target.def (avoid_store_forwarding_p): New DEFHOOK.
5044         * target.h (struct store_fwd_info): Declare.
5045         * targhooks.cc (default_avoid_store_forwarding_p): New function.
5046         * targhooks.h (default_avoid_store_forwarding_p): Declare.
5047         * tree-pass.h (make_pass_rtl_avoid_store_forwarding): Declare.
5048         * avoid-store-forwarding.cc: New file.
5049         * avoid-store-forwarding.h: New file.
5050         * timevar.def (TV_AVOID_STORE_FORWARDING): New timevar.
5052 2024-11-25  liuhongt  <hongtao.liu@intel.com>
5054         PR target/117562
5055         * config/i386/sse.md (vec_unpacks_hi_v4sf): Initialize
5056         operands[2] with CONST0_RTX.
5058 2024-11-24  Martin Jambor  <mjambor@suse.cz>
5060         * ipa-prop.cc (ipa_duplicate_jump_function): New function.
5061         (ipa_edge_args_sum_t::duplicate): Move individual jump function
5062         copying to ipa_duplicate_jump_function.
5064 2024-11-24  Uros Bizjak  <ubizjak@gmail.com>
5066         PR target/36503
5067         * config/i386/i386.md (*ashl<mode>3_negcnt):
5068         New define_insn_and_split pattern.
5069         (*ashl<mode>3_negcnt_1): Ditto.
5070         (*<insn><mode>3_negcnt): Ditto.
5071         (*<insn><mode>3_negcnt_1): Ditto.
5073 2024-11-24  Andrew Pinski  <quic_apinski@quicinc.com>
5075         * config/avr/avr.opt.urls: Regenerate.
5076         * config/g.opt.urls: Regenerate.
5077         * config/i386/nto.opt.urls: Regenerate.
5078         * config/riscv/riscv.opt.urls: Regenerate.
5079         * config/rx/rx.opt.urls: Regenerate.
5080         * config/sol2.opt.urls: Regenerate.
5082 2024-11-24  Eric Botcazou  <ebotcazou@adacore.com>
5084         PR target/117715
5085         * config/sparc/sparc-protos.h (sparc_expand_vcond): Rename to...
5086         (sparc_expand_vcond_mask): ...this.
5087         * config/sparc/sparc.cc (TARGET_VECTORIZE_GET_MASK_MODE): Define.
5088         (sparc_vis_init_builtins): Adjust the CODE_FOR_* identifiers.
5089         (sparc_get_mask_mode): New function.
5090         (sparc_expand_vcond): Rename to...
5091         (sparc_expand_vcond_mask): ...this and adjust.
5092         * config/sparc/sparc.md (unspec): Remove UNSPEC_FCMP & UNSPEC_FUCMP
5093         and rename UNSPEC_FPUCMPSHL into UNSPEC_FPCMPUSHL.
5094         (fcmp<gcond:code><GCM:gcm_name><P:mode>_vis): Merge into...
5095         (fpcmp<gcond:code>8<P:mode>_vis): Merge into...
5096         (fpcmp<fpcmpcond:code><FPCMP:vbits><P:mode>_vis): ...this.
5097         (fucmp<gcond:code>8<P:mode>_vis): Merge into...
5098         (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Merge into...
5099         (fpcmpu<fpcmpucond:signed_code><FPCMP:vbits><P:mode>_vis): ...this.
5100         (vec_cmp<FPCMP:mode><P:mode>): New expander.
5101         (vec_cmpu<FPCMP:mode><P:mode>): Likewise.
5102         (vcond<GCM:mode><GCM:mode>): Delete.
5103         (vcondv8qiv8qi): Likewise.
5104         (vcondu<GCM:mode><GCM:mode>): Likewise.
5105         (vconduv8qiv8qi): Likewise.
5106         (vcond_mask_<FPCMP:mode><P:mode>): New expander.
5107         (fpcmp<fpcscond:code><FPCSMODE:vbits><P:mode>shl): Adjust.
5108         (fpcmpu<fpcsucond:code><FPCSMODE:vbits><P:mode>shl): Likewise.
5109         (fpcmpde<FPCSMODE:vbits><P:mode>shl): Likewise.
5110         (fpcmpur<FPCSMODE:vbits><P:mode>shl): Likewise.
5111         * doc/md.texi (vcond_mask_len_): Fix pasto.
5113 2024-11-24  Eric Botcazou  <ebotcazou@adacore.com>
5115         * doc/invoke.texi (-fno-zero-initialized-in-bss): Adjust for Ada.
5116         * varasm.cc (get_variable_section): Adjust the error message for an
5117         initialized variable in .bss to -fno-zero-initialized-in-bss.
5119 2024-11-23  Lewis Hyatt  <lhyatt@gmail.com>
5121         * gimple.cc (get_tail_padding_adjustment): New function.
5122         (DEFGSSTRUCT): Adjust the computation of gimple_ops_offset_ to be
5123         correct in the presence of tail padding.
5125 2024-11-23  Georg-Johann Lay  <avr@gjlay.de>
5127         PR target/117744
5128         * config/avr/avr.cc (out_movqi_r_mr): Fix code when a load
5129         only partially clobbers an address register due to
5130         changing the address register temporally to accomodate for
5131         faked addressing modes.
5133 2024-11-23  Andrew Pinski  <quic_apinski@quicinc.com>
5135         * doc/rtl.texi: Add a note about quotes in braced strings.
5137 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
5139         PR bootstrap/117737
5140         * asan.cc (INCLUDE_MEMORY): Remove.
5141         * attribs.cc (INCLUDE_MEMORY): Remove.
5142         * auto-profile.cc (INCLUDE_MEMORY): Remove.
5143         * calls.cc (INCLUDE_MEMORY): Remove.
5144         * cfganal.cc (INCLUDE_MEMORY): Remove.
5145         * cfgexpand.cc (INCLUDE_MEMORY): Remove.
5146         * cfghooks.cc (INCLUDE_MEMORY): Remove.
5147         * cfgloop.cc (INCLUDE_MEMORY): Remove.
5148         * cgraph.cc (INCLUDE_MEMORY): Remove.
5149         * cgraphclones.cc (INCLUDE_MEMORY): Remove.
5150         * cgraphunit.cc (INCLUDE_MEMORY): Remove.
5151         * collect-utils.cc (INCLUDE_MEMORY): Remove.
5152         * collect2.cc (INCLUDE_MEMORY): Remove.
5153         * common/config/aarch64/aarch64-common.cc (INCLUDE_MEMORY): Remove.
5154         * common/config/arm/arm-common.cc (INCLUDE_MEMORY): Remove.
5155         * common/config/avr/avr-common.cc (INCLUDE_MEMORY): Remove.
5156         * config/aarch64/aarch64-cc-fusion.cc (INCLUDE_MEMORY): Remove.
5157         * config/aarch64/aarch64-early-ra.cc (INCLUDE_MEMORY): Remove.
5158         * config/aarch64/aarch64-sve-builtins.cc (INCLUDE_MEMORY): Remove.
5159         * config/aarch64/aarch64.cc (INCLUDE_MEMORY): Remove.
5160         * config/arc/arc.cc (INCLUDE_MEMORY): Remove.
5161         * config/arm/aarch-common.cc (INCLUDE_MEMORY) Remove.:
5162         * config/arm/arm-mve-builtins.cc (INCLUDE_MEMORY): Remove.
5163         * config/arm/arm.cc (INCLUDE_MEMORY): Remove.
5164         * config/avr/avr-devices.cc (INCLUDE_MEMORY): Remove.
5165         * config/avr/driver-avr.cc (INCLUDE_MEMORY): Remove.
5166         * config/bpf/bpf.cc (INCLUDE_MEMORY): Remove.
5167         * config/bpf/btfext-out.cc (INCLUDE_MEMORY): Remove.
5168         * config/bpf/core-builtins.cc (INCLUDE_MEMORY): Remove.
5169         * config/darwin.cc (INCLUDE_MEMORY): Remove.
5170         * config/gcn/mkoffload.cc (INCLUDE_MEMORY): Remove.
5171         * config/i386/driver-i386.cc (INCLUDE_MEMORY): Remove.
5172         * config/i386/i386-builtins.cc (INCLUDE_MEMORY): Remove.
5173         * config/i386/i386-expand.cc (INCLUDE_MEMORY): Remove.
5174         * config/i386/i386-features.cc (INCLUDE_MEMORY): Remove.
5175         * config/i386/i386-options.cc (INCLUDE_MEMORY): Remove.
5176         * config/i386/i386.cc (INCLUDE_MEMORY): Remove.
5177         * config/loongarch/loongarch-builtins.cc (INCLUDE_MEMORY): Remove.
5178         * config/loongarch/loongarch.cc (INCLUDE_MEMORY): Remove.
5179         * config/mingw/winnt-cxx.cc (INCLUDE_MEMORY): Remove.
5180         * config/mingw/winnt.cc (INCLUDE_MEMORY): Remove.
5181         * config/mips/mips.cc (INCLUDE_MEMORY): Remove.
5182         * config/msp430/driver-msp430.cc (INCLUDE_MEMORY): Remove.
5183         * config/nvptx/mkoffload.cc (INCLUDE_MEMORY): Remove.
5184         * config/nvptx/nvptx.cc (INCLUDE_MEMORY): Remove.
5185         * config/riscv/riscv-avlprop.cc (INCLUDE_MEMORY): Remove.
5186         * config/riscv/riscv-target-attr.cc (INCLUDE_MEMORY): Remove.
5187         * config/riscv/riscv-vector-builtins.cc (INCLUDE_MEMORY): Remove.
5188         * config/riscv/riscv-vector-costs.cc (INCLUDE_MEMORY): Remove.
5189         * config/riscv/riscv-vsetvl.cc (INCLUDE_MEMORY): Remove.
5190         * config/riscv/riscv.cc (INCLUDE_MEMORY): Remove.
5191         * config/rs6000/driver-rs6000.cc (INCLUDE_MEMORY): Remove.
5192         * config/rs6000/host-darwin.cc (INCLUDE_MEMORY): Remove.
5193         * config/rs6000/rs6000-c.cc (INCLUDE_MEMORY): Remove.
5194         * config/rs6000/rs6000.cc (INCLUDE_MEMORY): Remove.
5195         * config/s390/s390-c.cc (INCLUDE_MEMORY): Remove.
5196         * config/s390/s390.cc (INCLUDE_MEMORY): Remove.
5197         * config/sol2-cxx.cc (INCLUDE_MEMORY): Remove.
5198         * config/vms/vms-c.cc (INCLUDE_MEMORY): Remove.
5199         * config/xtensa/xtensa-dynconfig.cc (INCLUDE_MEMORY): Remove.
5200         * coroutine-passes.cc (INCLUDE_MEMORY): Remove.
5201         * coverage.cc (INCLUDE_MEMORY): Remove.
5202         * data-streamer-in.cc (INCLUDE_MEMORY): Remove.
5203         * data-streamer-out.cc (INCLUDE_MEMORY): Remove.
5204         * data-streamer.cc (INCLUDE_MEMORY): Remove.
5205         * diagnostic-format-json.cc (INCLUDE_MEMORY): Remove.
5206         * diagnostic-format-sarif.cc (INCLUDE_MEMORY): Remove.
5207         * diagnostic-format-text.cc (INCLUDE_MEMORY): Remove.
5208         * diagnostic-global-context.cc (INCLUDE_MEMORY): Remove.
5209         * diagnostic-macro-unwinding.cc (INCLUDE_MEMORY): Remove.
5210         * diagnostic-path.cc (INCLUDE_MEMORY): Remove.
5211         * diagnostic-show-locus.cc (INCLUDE_MEMORY): Remove.
5212         * diagnostic-spec.cc (INCLUDE_MEMORY): Remove.
5213         * diagnostic.cc (INCLUDE_MEMORY): Remove.
5214         * diagnostic.h: Remove check for INCLUDE_MEMORY.
5215         * digraph.cc (INCLUDE_MEMORY): Remove.
5216         * dumpfile.cc (INCLUDE_MEMORY): Remove.
5217         * dwarf2out.cc (INCLUDE_MEMORY): Remove.
5218         * edit-context.cc (INCLUDE_MEMORY): Remove.
5219         * except.cc (INCLUDE_MEMORY): Remove.
5220         * expr.cc (INCLUDE_MEMORY): Remove.
5221         * file-prefix-map.cc (INCLUDE_MEMORY): Remove.
5222         * final.cc (INCLUDE_MEMORY): Remove.
5223         * fwprop.cc (INCLUDE_MEMORY): Remove.
5224         * gcc-plugin.h (INCLUDE_MEMORY): Remove.
5225         * gcc-rich-location.cc (INCLUDE_MEMORY): Remove.
5226         * gcc-urlifier.cc (INCLUDE_MEMORY): Remove.
5227         * gcc.cc (INCLUDE_MEMORY): Remove.
5228         * gcov-dump.cc (INCLUDE_MEMORY): Remove.
5229         * gcov-tool.cc (INCLUDE_MEMORY): Remove.
5230         * gcov.cc (INCLUDE_MEMORY): Remove.
5231         * gengtype.cc (open_base_files): Don't print `#define INCLUDE_MEMORY`.
5232         * genmatch.cc (INCLUDE_MEMORY): Remove.
5233         * gimple-fold.cc (INCLUDE_MEMORY): Remove.
5234         * gimple-harden-conditionals.cc (INCLUDE_MEMORY): Remove.
5235         * gimple-harden-control-flow.cc (INCLUDE_MEMORY): Remove.
5236         * gimple-if-to-switch.cc (INCLUDE_MEMORY): Remove.
5237         * gimple-loop-interchange.cc (INCLUDE_MEMORY): Remove.
5238         * gimple-loop-jam.cc (INCLUDE_MEMORY): Remove.
5239         * gimple-loop-versioning.cc (INCLUDE_MEMORY): Remove.
5240         * gimple-lower-bitint.cc (INCLUDE_MEMORY): Remove.
5241         * gimple-predicate-analysis.cc (INCLUDE_MEMORY): Remove.
5242         * gimple-pretty-print.cc (INCLUDE_MEMORY): Remove.
5243         * gimple-range-cache.cc (INCLUDE_MEMORY): Remove.
5244         * gimple-range-edge.cc (INCLUDE_MEMORY): Remove.
5245         * gimple-range-fold.cc (INCLUDE_MEMORY): Remove.
5246         * gimple-range-gori.cc (INCLUDE_MEMORY): Remove.
5247         * gimple-range-infer.cc (INCLUDE_MEMORY): Remove.
5248         * gimple-range-op.cc (INCLUDE_MEMORY): Remove.
5249         * gimple-range-path.cc (INCLUDE_MEMORY): Remove.
5250         * gimple-range-phi.cc (INCLUDE_MEMORY): Remove.
5251         * gimple-range-trace.cc (INCLUDE_MEMORY): Remove.
5252         * gimple-range.cc (INCLUDE_MEMORY): Remove.
5253         * gimple-ssa-backprop.cc (INCLUDE_MEMORY): Remove.
5254         * gimple-ssa-sprintf.cc (INCLUDE_MEMORY): Remove.
5255         * gimple-ssa-store-merging.cc (INCLUDE_MEMORY): Remove.
5256         * gimple-ssa-strength-reduction.cc (INCLUDE_MEMORY): Remove.
5257         * gimple-ssa-warn-access.cc (INCLUDE_MEMORY): Remove.
5258         * gimple-ssa-warn-alloca.cc (INCLUDE_MEMORY): Remove.
5259         * gimple-ssa-warn-restrict.cc (INCLUDE_MEMORY): Remove.
5260         * gimple-streamer-in.cc (INCLUDE_MEMORY): Remove.
5261         * gimple-streamer-out.cc (INCLUDE_MEMORY): Remove.
5262         * gimple.cc (INCLUDE_MEMORY): Remove.
5263         * gimplify.cc (INCLUDE_MEMORY): Remove.
5264         * graph.cc (INCLUDE_MEMORY): Remove.
5265         * graphite-dependences.cc (INCLUDE_MEMORY): Remove.
5266         * graphite-isl-ast-to-gimple.cc (INCLUDE_MEMORY): Remove.
5267         * graphite-optimize-isl.cc (INCLUDE_MEMORY): Remove.
5268         * graphite-poly.cc (INCLUDE_MEMORY): Remove.
5269         * graphite-scop-detection.cc (INCLUDE_MEMORY): Remove.
5270         * graphite-sese-to-poly.cc (INCLUDE_MEMORY): Remove.
5271         * graphite.cc (INCLUDE_MEMORY): Remove.
5272         * graphviz.cc (INCLUDE_MEMORY): Remove.
5273         * input.cc (INCLUDE_MEMORY): Remove.
5274         * ipa-cp.cc (INCLUDE_MEMORY): Remove.
5275         * ipa-devirt.cc (INCLUDE_MEMORY): Remove.
5276         * ipa-fnsummary.cc (INCLUDE_MEMORY): Remove.
5277         * ipa-free-lang-data.cc (INCLUDE_MEMORY): Remove.
5278         * ipa-icf-gimple.cc (INCLUDE_MEMORY): Remove.
5279         * ipa-icf.cc (INCLUDE_MEMORY): Remove.
5280         * ipa-inline-analysis.cc (INCLUDE_MEMORY): Remove.
5281         * ipa-inline.cc (INCLUDE_MEMORY): Remove.
5282         * ipa-modref-tree.cc (INCLUDE_MEMORY): Remove.
5283         * ipa-modref.cc (INCLUDE_MEMORY): Remove.
5284         * ipa-param-manipulation.cc (INCLUDE_MEMORY): Remove.
5285         * ipa-polymorphic-call.cc (INCLUDE_MEMORY): Remove.
5286         * ipa-predicate.cc (INCLUDE_MEMORY): Remove.
5287         * ipa-profile.cc (INCLUDE_MEMORY): Remove.
5288         * ipa-prop.cc (INCLUDE_MEMORY): Remove.
5289         * ipa-pure-const.cc (INCLUDE_MEMORY): Remove.
5290         * ipa-reference.cc (INCLUDE_MEMORY): Remove.
5291         * ipa-split.cc (INCLUDE_MEMORY): Remove.
5292         * ipa-sra.cc (INCLUDE_MEMORY): Remove.
5293         * ipa-strub.cc (INCLUDE_MEMORY): Remove.
5294         * ipa-utils.cc (INCLUDE_MEMORY): Remove.
5295         * json-parsing.cc (INCLUDE_MEMORY): Remove.
5296         * json.cc (INCLUDE_MEMORY): Remove.
5297         * json.h: Don't check INCLUDE_MEMORY.
5298         * langhooks.cc (INCLUDE_MEMORY): Remove.
5299         * late-combine.cc (INCLUDE_MEMORY): Remove.
5300         * lazy-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
5301         * libdiagnostics.cc (INCLUDE_MEMORY): Remove.
5302         * libsarifreplay.cc (INCLUDE_MEMORY): Remove.
5303         * lto-cgraph.cc (INCLUDE_MEMORY): Remove.
5304         * lto-compress.cc (INCLUDE_MEMORY): Remove.
5305         * lto-opts.cc (INCLUDE_MEMORY): Remove.
5306         * lto-section-in.cc (INCLUDE_MEMORY): Remove.
5307         * lto-section-out.cc (INCLUDE_MEMORY): Remove.
5308         * lto-streamer-in.cc (INCLUDE_MEMORY): Remove.
5309         * lto-streamer-out.cc (INCLUDE_MEMORY): Remove.
5310         * lto-streamer.cc (INCLUDE_MEMORY): Remove.
5311         * lto-wrapper.cc (INCLUDE_MEMORY): Remove.
5312         * make-unique.h (GCC_MAKE_UNIQUE): Remove.
5313         * multiple_target.cc (INCLUDE_MEMORY): Remove.
5314         * omp-expand.cc (INCLUDE_MEMORY): Remove.
5315         * omp-general.cc (INCLUDE_MEMORY): Remove.
5316         * omp-low.cc (INCLUDE_MEMORY): Remove.
5317         * omp-oacc-neuter-broadcast.cc (INCLUDE_MEMORY): Remove.
5318         * omp-offload.cc (INCLUDE_MEMORY): Remove.
5319         * omp-simd-clone.cc (INCLUDE_MEMORY): Remove.
5320         * opt-problem.cc (INCLUDE_MEMORY): Remove.
5321         * optinfo-emit-json.cc (INCLUDE_MEMORY): Remove.
5322         * optinfo.cc (INCLUDE_MEMORY): Remove.
5323         * optinfo.h: Don't check INCLUDE_MEMORY.
5324         * opts-common.cc (INCLUDE_MEMORY): Remove.
5325         * opts-diagnostic.cc (INCLUDE_MEMORY): Remove.
5326         * opts-global.cc (INCLUDE_MEMORY): Remove.
5327         * opts.cc (INCLUDE_MEMORY): Remove.
5328         * pair-fusion.cc (INCLUDE_MEMORY): Remove.
5329         * passes.cc (INCLUDE_MEMORY): Remove.
5330         * pointer-query.cc (INCLUDE_MEMORY): Remove.
5331         * predict.cc (INCLUDE_MEMORY): Remove.
5332         * pretty-print.cc (INCLUDE_MEMORY): Remove.
5333         * pretty-print.h: Don't check INCLUDE_MEMORY.
5334         * print-rtl.cc (INCLUDE_MEMORY): Remove.
5335         * print-tree.cc (INCLUDE_MEMORY): Remove.
5336         * profile-count.cc (INCLUDE_MEMORY): Remove.
5337         * range-op-float.cc (INCLUDE_MEMORY): Remove.
5338         * range-op-ptr.cc (INCLUDE_MEMORY): Remove.
5339         * range-op.cc (INCLUDE_MEMORY): Remove.
5340         * range.cc (INCLUDE_MEMORY): Remove.
5341         * read-rtl-function.cc (INCLUDE_MEMORY): Remove.
5342         * rtl-error.cc (INCLUDE_MEMORY): Remove.
5343         * rtl-ssa/accesses.cc (INCLUDE_MEMORY): Remove.
5344         * rtl-ssa/blocks.cc (INCLUDE_MEMORY): Remove.
5345         * rtl-ssa/changes.cc (INCLUDE_MEMORY): Remove.
5346         * rtl-ssa/functions.cc (INCLUDE_MEMORY): Remove.
5347         * rtl-ssa/insns.cc (INCLUDE_MEMORY): Remove.
5348         * rtl-ssa/movement.cc (INCLUDE_MEMORY): Remove.
5349         * rtl-tests.cc (INCLUDE_MEMORY): Remove.
5350         * sanopt.cc (INCLUDE_MEMORY): Remove.
5351         * sched-rgn.cc (INCLUDE_MEMORY): Remove.
5352         * selftest-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
5353         * selftest-diagnostic.cc (INCLUDE_MEMORY): Remove.
5354         * selftest-json.cc (INCLUDE_MEMORY): Remove.
5355         * sese.cc (INCLUDE_MEMORY): Remove.
5356         * simple-diagnostic-path.cc (INCLUDE_MEMORY): Remove.
5357         * splay-tree-utils.cc (INCLUDE_MEMORY): Remove.
5358         * sreal.cc (INCLUDE_MEMORY): Remove.
5359         * stmt.cc (INCLUDE_MEMORY): Remove.
5360         * substring-locations.cc (INCLUDE_MEMORY): Remove.
5361         * symtab-clones.cc (INCLUDE_MEMORY): Remove.
5362         * symtab-thunks.cc (INCLUDE_MEMORY): Remove.
5363         * symtab.cc (INCLUDE_MEMORY): Remove.
5364         * system.h: Include memory unconditionally for C++.
5365         Also remove support for INCLUDE_MEMORY.
5366         * targhooks.cc (INCLUDE_MEMORY): Remove.
5367         * text-art/box-drawing.cc (INCLUDE_MEMORY): Remove.
5368         * text-art/canvas.cc (INCLUDE_MEMORY): Remove.
5369         * text-art/ruler.cc (INCLUDE_MEMORY): Remove.
5370         * text-art/selftests.cc (INCLUDE_MEMORY): Remove.
5371         * text-art/style.cc (INCLUDE_MEMORY): Remove.
5372         * text-art/styled-string.cc (INCLUDE_MEMORY): Remove.
5373         * text-art/table.cc (INCLUDE_MEMORY): Remove.
5374         * text-art/theme.cc (INCLUDE_MEMORY): Remove.
5375         * text-art/tree-widget.cc (INCLUDE_MEMORY): Remove.
5376         * text-art/widget.cc (INCLUDE_MEMORY): Remove.
5377         * timevar.cc (INCLUDE_MEMORY): Remove.
5378         * toplev.cc (INCLUDE_MEMORY): Remove.
5379         * trans-mem.cc (INCLUDE_MEMORY): Remove.
5380         * tree-affine.cc (INCLUDE_MEMORY): Remove.
5381         * tree-assume.cc (INCLUDE_MEMORY): Remove.
5382         * tree-call-cdce.cc (INCLUDE_MEMORY): Remove.
5383         * tree-cfg.cc (INCLUDE_MEMORY): Remove.
5384         * tree-chrec.cc (INCLUDE_MEMORY): Remove.
5385         * tree-data-ref.cc (INCLUDE_MEMORY): Remove.
5386         * tree-dfa.cc (INCLUDE_MEMORY): Remove.
5387         * tree-diagnostic-client-data-hooks.cc (INCLUDE_MEMORY): Remove.
5388         * tree-diagnostic.cc (INCLUDE_MEMORY): Remove.
5389         * tree-dump.cc (INCLUDE_MEMORY): Remove.
5390         * tree-if-conv.cc (INCLUDE_MEMORY): Remove.
5391         * tree-inline.cc (INCLUDE_MEMORY): Remove.
5392         * tree-into-ssa.cc (INCLUDE_MEMORY): Remove.
5393         * tree-logical-location.cc (INCLUDE_MEMORY): Remove.
5394         * tree-loop-distribution.cc (INCLUDE_MEMORY): Remove.
5395         * tree-nested.cc (INCLUDE_MEMORY): Remove.
5396         * tree-nrv.cc (INCLUDE_MEMORY): Remove.
5397         * tree-object-size.cc (INCLUDE_MEMORY): Remove.
5398         * tree-outof-ssa.cc (INCLUDE_MEMORY): Remove.
5399         * tree-parloops.cc (INCLUDE_MEMORY): Remove.
5400         * tree-predcom.cc (INCLUDE_MEMORY): Remove.
5401         * tree-pretty-print.cc (INCLUDE_MEMORY): Remove.
5402         * tree-profile.cc (INCLUDE_MEMORY): Remove.
5403         * tree-scalar-evolution.cc (INCLUDE_MEMORY): Remove.
5404         * tree-sra.cc (INCLUDE_MEMORY): Remove.
5405         * tree-ssa-address.cc (INCLUDE_MEMORY): Remove.
5406         * tree-ssa-alias.cc (INCLUDE_MEMORY): Remove.
5407         * tree-ssa-ccp.cc (INCLUDE_MEMORY): Remove.
5408         * tree-ssa-coalesce.cc (INCLUDE_MEMORY): Remove.
5409         * tree-ssa-copy.cc (INCLUDE_MEMORY): Remove.
5410         * tree-ssa-dce.cc (INCLUDE_MEMORY): Remove.
5411         * tree-ssa-dom.cc (INCLUDE_MEMORY): Remove.
5412         * tree-ssa-dse.cc (INCLUDE_MEMORY): Remove.
5413         * tree-ssa-forwprop.cc (INCLUDE_MEMORY): Remove.
5414         * tree-ssa-ifcombine.cc (INCLUDE_MEMORY): Remove.
5415         * tree-ssa-live.cc (INCLUDE_MEMORY): Remove.
5416         * tree-ssa-loop-ch.cc (INCLUDE_MEMORY): Remove.
5417         * tree-ssa-loop-im.cc (INCLUDE_MEMORY): Remove.
5418         * tree-ssa-loop-ivcanon.cc (INCLUDE_MEMORY): Remove.
5419         * tree-ssa-loop-ivopts.cc (INCLUDE_MEMORY): Remove.
5420         * tree-ssa-loop-manip.cc (INCLUDE_MEMORY): Remove.
5421         * tree-ssa-loop-niter.cc (INCLUDE_MEMORY): Remove.
5422         * tree-ssa-loop-prefetch.cc (INCLUDE_MEMORY): Remove.
5423         * tree-ssa-loop-split.cc (INCLUDE_MEMORY): Remove.
5424         * tree-ssa-loop-unswitch.cc (INCLUDE_MEMORY): Remove.
5425         * tree-ssa-math-opts.cc (INCLUDE_MEMORY): Remove.
5426         * tree-ssa-operands.cc (INCLUDE_MEMORY): Remove.
5427         * tree-ssa-phiopt.cc (INCLUDE_MEMORY): Remove.
5428         * tree-ssa-phiprop.cc (INCLUDE_MEMORY): Remove.
5429         * tree-ssa-pre.cc (INCLUDE_MEMORY): Remove.
5430         * tree-ssa-propagate.cc (INCLUDE_MEMORY): Remove.
5431         * tree-ssa-reassoc.cc (INCLUDE_MEMORY): Remove.
5432         * tree-ssa-sccvn.cc (INCLUDE_MEMORY): Remove.
5433         * tree-ssa-scopedtables.cc (INCLUDE_MEMORY): Remove.
5434         * tree-ssa-sink.cc (INCLUDE_MEMORY): Remove.
5435         * tree-ssa-strlen.cc (INCLUDE_MEMORY): Remove.
5436         * tree-ssa-structalias.cc (INCLUDE_MEMORY): Remove.
5437         * tree-ssa-ter.cc (INCLUDE_MEMORY): Remove.
5438         * tree-ssa-threadbackward.cc (INCLUDE_MEMORY): Remove.
5439         * tree-ssa-threadupdate.cc (INCLUDE_MEMORY): Remove.
5440         * tree-ssa-uninit.cc (INCLUDE_MEMORY): Remove.
5441         * tree-ssa.cc (INCLUDE_MEMORY): Remove.
5442         * tree-ssanames.cc (INCLUDE_MEMORY): Remove.
5443         * tree-stdarg.cc (INCLUDE_MEMORY): Remove.
5444         * tree-streamer-in.cc (INCLUDE_MEMORY): Remove.
5445         * tree-streamer-out.cc (INCLUDE_MEMORY): Remove.
5446         * tree-streamer.cc (INCLUDE_MEMORY): Remove.
5447         * tree-switch-conversion.cc (INCLUDE_MEMORY): Remove.
5448         * tree-tailcall.cc (INCLUDE_MEMORY): Remove.
5449         * tree-vect-data-refs.cc (INCLUDE_MEMORY): Remove.
5450         * tree-vect-generic.cc (INCLUDE_MEMORY): Remove.
5451         * tree-vect-loop-manip.cc (INCLUDE_MEMORY): Remove.
5452         * tree-vect-loop.cc (INCLUDE_MEMORY): Remove.
5453         * tree-vect-patterns.cc (INCLUDE_MEMORY): Remove.
5454         * tree-vect-slp-patterns.cc (INCLUDE_MEMORY): Remove.
5455         * tree-vect-slp.cc (INCLUDE_MEMORY): Remove.
5456         * tree-vect-stmts.cc (INCLUDE_MEMORY): Remove.
5457         * tree-vectorizer.cc (INCLUDE_MEMORY): Remove.
5458         * tree-vrp.cc (INCLUDE_MEMORY): Remove.
5459         * tree.cc (INCLUDE_MEMORY): Remove.
5460         * ubsan.cc (INCLUDE_MEMORY): Remove.
5461         * value-pointer-equiv.cc (INCLUDE_MEMORY): Remove.
5462         * value-prof.cc (INCLUDE_MEMORY): Remove.
5463         * value-query.cc (INCLUDE_MEMORY): Remove.
5464         * value-range-pretty-print.cc (INCLUDE_MEMORY): Remove.
5465         * value-range-storage.cc (INCLUDE_MEMORY): Remove.
5466         * value-range.cc (INCLUDE_MEMORY): Remove.
5467         * value-relation.cc (INCLUDE_MEMORY): Remove.
5468         * var-tracking.cc (INCLUDE_MEMORY): Remove.
5469         * varpool.cc (INCLUDE_MEMORY): Remove.
5470         * vr-values.cc (INCLUDE_MEMORY): Remove.
5471         * wide-int-print.cc (INCLUDE_MEMORY): Remove.
5473 2024-11-22  Jeff Law  <jlaw@ventanamicro.com>
5475         PR target/109279
5476         * config/riscv/riscv.cc (riscv_build_integer): Handle another 64-bit
5477         synthesis where high half is one less than the low half and the 32-bit
5478         sign bit is on.
5480 2024-11-22  Andrew Pinski  <quic_apinski@quicinc.com>
5482         * text-art/types.h: Fix comment.
5484 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
5486         * common/config/avr/avr-common.cc: Tabify.
5488 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
5490         PR target/117726
5491         * config/avr/avr-passes.cc (avr_split_shift): Also handle
5492         ASHIFTRT and LSHIFTRT codes for 4-byte shifts.
5493         (constr_split_shift4): New code_attr.
5494         (avr_emit_shift): Adjust to new shift capabilities.
5495         * config/avr/predicates.md (scratch_or_d_register_operand):
5496         rename to scratch_or_dreg_operand.
5497         * config/avr/avr.md: Same.
5498         (define_peephole2): Write the RTL scratch peephole for 2-byte and
5499         4-byte shifts that generates *sh*<mode>3_const insns using code
5500         iterator any_shift.
5501         (*ashlhi3_const_split, *ashrhi3_const_split, *ashrhi3_const_split)
5502         (*lshrsi3_const_split, *lshrhi3_const_split): Remove useless
5503         split insns.
5504         (define_split) [avropt_split_bit_shift]: Add splitters
5505         for 4-byte ASHIFTRT and LSHIFTRT insns using avr_split_shift().
5506         (ashrsi3, *ashrsi3, *ashrsi3_const): Add "r,0,C4a" and "r,r,C4a"
5507         constraint alternatives depending on 2op, 3op.
5508         (lshrsi3, *lshrsi3, *lshrsi3_const): Add "r,0,C4r" and "r,r,C4r"
5509         constraint alternatives depending on 2op, 3op. Add "r,r,C15".
5510         (lshrhi3, *lshrhi3, *lshrhi3_const, ashlhi3, *ashlhi3)
5511         (*ashlhi3_const): Add "r,r,C7c" alternative.
5512         (ashrpsi, *ashrpsi3): Add "r,r,C22" alternative.
5513         (ashlqi, *ashlqi): Turn C06 alternative into "r,r,C06".
5514         * config/avr/constraints.md (C14, C22, C30, C7c): New constraints.
5515         * config/avr/avr.cc (ashlhi3_out, lshrhi3_out)
5516         [case 7, 9, 10, 11, 12]: Support as 3-operand insn.
5517         (lshrsi3_out) [case 15]: Same.
5518         (ashrsi3_out) [case 30]: Same.
5519         (ashrhi3_out) [case 14]: Same.
5520         (ashrqi3_out) [case 6]: Same.
5521         (avr_out_ashrpsi3) [case 22]: Same.
5522         * config/avr/avr.h: Fix comment typo.
5523         * doc/invoke.texi (AVR Options) <-msplit-bit-shift>: Document.
5525 2024-11-22  Siddhesh Poyarekar  <siddhesh@gotplt.org>
5527         PR tree-optimization/117355
5528         * tree-object-size.cc (size_for_offset): New argument STRICT,
5529         return SZ if it is set to false.
5530         (plus_stmt_object_size): Adjust call to SIZE_FOR_OFFSET.
5532 2024-11-22  Georg-Johann Lay  <avr@gjlay.de>
5534         * config/avr/avr.opt (avr_bits_e, avr_lra_p, avr_mmcu)
5535         (avr_gasisr_prologues, avr_n_flash, avr_log_details)
5536         (avr_branch_cost, avr_split_bit_shift, avr_strict_X)
5537         (avr_flmap, avr_rodata_in_ram, avr_sp8, avr_fuse_add)
5538         (avr_warn_addr_space_convert, avr_warn_misspelled_isr)
5539         (avr_fuse_move, avr_double, avr_long_double): Rename
5540         to respectively: avropt_bits_e, avropt_lra_p, avropt_mmcu,
5541         avropt_gasisr_prologues, avropt_n_flash, avropt_log_details,
5542         avropt_branch_cost, avropt_split_bit_shift, avropt_strict_X,
5543         avropt_flmap, avropt_rodata_in_ram, avropt_sp8, avropt_fuse_add,
5544         avropt_warn_addr_space_convert, avropt_warn_misspelled_isr,
5545         avropt_fuse_move, avropt_double, avropt_long_double.
5546         * config/avr/avr.h: Same.
5547         * config/avr/avr.cc: Same.
5548         * config/avr/avr.md: Same.
5549         * config/avr/avr-passes.cc
5550         * config/avr/avr-log.cc: Same.
5551         * common/config/avr/avr-common.cc: Same.
5553 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
5555         PR c++/110137
5556         PR middle-end/101480
5557         * doc/invoke.texi (-fassume-sane-operators-new-delete,
5558         -fno-assume-sane-operators-new-delete): Document.
5559         * gimple.cc (gimple_call_fnspec): Handle
5560         -f{,no-}assume-sane-operators-new-delete.
5561         * ipa-inline-transform.cc (inline_call): Also clear
5562         flag_assume_sane_operators_new_delete on caller when inlining
5563         -fno-assume-sane-operators-new-delete callee into
5564         -fassume-sane-operators-new-delete caller.
5566 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
5568         PR tree-optimization/117420
5569         * match.pd ((X >> C1) << (C1 + C2) -> X << C2,
5570         (X >> C1) * (C2 << C1) -> X * C2, X / (1 << C) -> X /[ex] (1 << C)):
5571         Use with_possible_nonzero_bits@0 rather than
5572         (with_possible_nonzero_bits2 @0).
5574 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
5576         * gimplify.cc (gimplify_call_expr): Add initial support for
5577         dispatch's 'interop' clause.
5578         (gimplify_scan_omp_clauses): Handle interop clause.
5579         * tree-pretty-print.cc (dump_omp_clause): Likewise.
5580         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INTEROP.
5581         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add interop.
5583 2024-11-22  Tobias Burnus  <tburnus@baylibre.com>
5585         * gimplify.cc (gimplify_expr): Handle OMP_INTEROP by printing
5586         "sorry, uninplemented".
5587         * omp-api.h (omp_get_fr_id_from_name): Change return type to
5588         'char'.
5589         * omp-general.cc (omp_get_fr_id_from_name): Likewise; return
5590         GOMP_INTEROP_IFR_UNKNOWN not 0 if not found.
5591         (omp_get_name_from_fr_id): Return "<unknown>" not NULL
5592         if not found (used for dumps).
5593         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DESTROY,
5594         OMP_CLAUSE_USE, and OMP_CLAUSE_INIT.
5595         * tree-pretty-print.cc (dump_omp_init_prefer_type): New.
5596         (dump_omp_clause): Handle init, use and destroy clauses.
5597         (dump_generic_node): Handle interop directive.
5598         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add new
5599         init/use/destroy clauses.
5600         * tree.def (OACC_LOOP): Fix comment.
5601         (OMP_INTEROP): Add.
5602         * tree.h (OMP_INTEROP_CLAUSES, OMP_CLAUSE_INIT_TARGET,
5603         OMP_CLAUSE_INIT_TARGETSYNC, OMP_CLAUSE_INIT_PREFER_TYPE): New.
5605 2024-11-22  Jakub Jelinek  <jakub@redhat.com>
5607         PR target/117165
5608         * config/i386/i386-builtin.def (IX86_BUILTIN_FNSTENV,
5609         IX86_BUILTIN_FLDENV, IX86_BUILTIN_FNSTSW, IX86_BUILTIN_FNCLEX): Add
5610         space to the end of the builtin name to make it really internal.
5612 2024-11-22  Tamar Christina  <tamar.christina@arm.com>
5614         PR tree-optimization/116463
5615         * tree-vect-slp-patterns.cc (complex_mul_pattern::matches,
5616         complex_fms_pattern::matches): Try swapping operands on multiply.
5618 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
5620         * doc/invoke.texi: Remove the non-existent option
5621         '-msmall-data-limit' and add a description of '-G'.
5623 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
5625         * config/loongarch/loongarch-builtins.cc
5626         (loongarch_builtin_vectorized_function): Delete.
5627         (LARCH_GET_BUILTIN): Delete.
5628         * config/loongarch/loongarch-protos.h
5629         (loongarch_builtin_vectorized_function): Delete.
5630         * config/loongarch/loongarch.cc
5631         (TARGET_ASM_ALIGNED_HI_OP): Delete.
5632         (TARGET_ASM_ALIGNED_SI_OP): Delete.
5633         (TARGET_ASM_ALIGNED_DI_OP): Delete.
5635 2024-11-22  Lulu Cheng  <chenglulu@loongson.cn>
5637         * config/loongarch/lasx.md: Fixed.
5638         * config/loongarch/lsx.md: Fixed.
5640 2024-11-22  Xi Ruoyao  <xry111@xry111.site>
5642         * config/loongarch/loongarch-builtins.cc (vorn_v, xvorn_v): Use
5643         unsigned vector modes.
5644         * config/loongarch/lsxintrin.h (__lsx_vorn_v): Cast arguments to
5645         v16u8.
5646         * config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments
5647         to v32u8.
5649 2024-11-21  Jeff Law  <jlaw@ventanamicro.com>
5651         PR target/117690
5652         * config/riscv/riscv.cc (riscv_build_integer): Add missing left
5653         shift when using shNadd to derive upper 32 bits from lower 32 bits.
5655 2024-11-21  Arsen Arsenović  <arsen@aarsen.me>
5657         * doc/cpp.texi (__has_include): Document __has_include_next
5658         also.
5659         (Conditional Syntax): Mention __has_include_next in the
5660         description for the __has_include menu entry.
5662 2024-11-21  David Malcolm  <dmalcolm@redhat.com>
5664         PR bootstrap/117677
5665         * json-parsing.cc (selftest::test_parse_number): Replace
5666         ASSERT_EQ of 'double' values with ASSERT_NEAR.  Eliminate
5667         ASSERT_PRINT_EQ for such values.
5668         * selftest.h (ASSERT_NEAR): New.
5669         (ASSERT_NEAR_AT): New.
5671 2024-11-21  Georg-Johann Lay  <avr@gjlay.de>
5673         PR target/117726
5674         * config/avr/avr.opt (-msplit-bit-shift): Add new optimization option.
5675         * common/config/avr/avr-common.cc (avr_option_optimization_table)
5676         [OPT_LEVELS_2_PLUS]: Turn on -msplit-bit-shift.
5677         * config/avr/avr.h (machine_function.n_avr_fuse_add_executed):
5678         New bool component.
5679         * config/avr/avr.md (attr "isa") <2op, 3op>: Add new values.
5680         (attr "enabled"): Handle them.
5681         (ashlsi3, *ashlsi3, *ashlsi3_const): Add "r,r,C15" alternative.
5682         Add "r,0,C4l" and "r,r,C4l" alternatives (depending on 2op / 3op).
5683         (define_split) [avr_split_bit_shift]: Add 2 new ashift:ALL4 splitters.
5684         (define_peephole2) [ashift:ALL4]: Add (match_dup 3) so that the scratch
5685         won't overlap with the output operand of the matched insn.
5686         (*ashl<mode>3_const_split): Remove unused ashift:ALL4 splitter.
5687         * config/avr/avr-passes.cc (emit_valid_insn)
5688         (emit_valid_move_clobbercc): Move out of anonymous namespace.
5689         (make_avr_pass_fuse_add) <gate>: Don't override.
5690         <execute>: Set n_avr_fuse_add_executed according to
5691         func->machine->n_avr_fuse_add_executed.
5692         (pass_data avr_pass_data_split_after_peephole2): New object.
5693         (avr_pass_split_after_peephole2): New rtl_opt_pass.
5694         (avr_emit_shift): New static function.
5695         (avr_shift_is_3op, avr_split_shift_p, avr_split_shift)
5696         (make_avr_pass_split_after_peephole2): New functions.
5697         * config/avr/avr-passes.def (avr_pass_split_after_peephole2):
5698         Insert new pass after pass_peephole2.
5699         * config/avr/avr-protos.h
5700         (n_avr_fuse_add_executed, avr_shift_is_3op, avr_split_shift_p)
5701         (avr_split_shift, avr_optimize_size_level)
5702         (make_avr_pass_split_after_peephole2): New prototypes.
5703         * config/avr/avr.cc (n_avr_fuse_add_executed): New global variable.
5704         (avr_optimize_size_level): New function.
5705         (avr_set_current_function): Set n_avr_fuse_add_executed
5706         according to cfun->machine->n_avr_fuse_add_executed.
5707         (ashlsi3_out) [case 15]: Output optimized code for this offset.
5708         (avr_rtx_costs_1) [ASHIFT, SImode]: Adjust costs of oggsets 15, 16.
5709         * config/avr/constraints.md (C4a, C4r, C4r): New constraints.
5710         * pass_manager.h (pass_manager): Adjust comments.
5712 2024-11-21  Georg-Johann Lay  <avr@gjlay.de>
5714         * config/avr/avr-passes.cc (absint_t::dump): Fix missing
5715         newline in dump.
5717 2024-11-21  Jeff Law  <jlaw@ventanamicro.com>
5719         PR target/116590
5720         * config/riscv/vector.md (pred_mul_<optab>mode_undef): Drop
5721         unnecessary alternatives.
5722         (pred_<madd_msub><mode>): Likewise.
5723         (pred_<macc_msac><mode>): Likewise.
5724         (pred_<madd_msub><mode>_scalar): Likewise.
5725         (pred_<macc_msac><mode>_scalar): Likewise.
5726         (pred_mul_neg_<optab><mode>_undef): Likewise.
5727         (pred_<nmsub_nmadd><mode>): Likewise.
5728         (pred_<nmsac_nmacc><mode>): Likewise.
5729         (pred_<nmsub_nmadd><mode>_scalar): Likewise.
5730         (pred_<nmsac_nmacc><mode>_scalar): Likewise.
5732 2024-11-21  Pan Li  <pan2.li@intel.com>
5734         * match.pd: Refactor sorts of unsigned SAT_ADD match pattern.
5736 2024-11-21  Tamar Christina  <tamar.christina@arm.com>
5738         * tree-vect-data-refs.cc (vect_get_data_access_cost): Pass NULL for SLP
5739         node.
5740         * tree-vect-stmts.cc (record_stmt_cost): Expose.
5741         (vect_get_store_cost, vect_get_load_cost): Extend with SLP node.
5742         (vectorizable_store, vectorizable_load): Pass SLP node to all costing.
5743         * tree-vectorizer.h (record_stmt_cost): Always pass both SLP node and
5744         stmt_vinfo to costing.
5745         (vect_get_load_cost, vect_get_store_cost): Extend with SLP node.
5747 2024-11-21  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5749         PR target/102296
5750         * config/i386/sol2.h (ASM_DECLARE_OBJECT_NAME): Use decl size
5751         instead of type size.
5752         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Likewise.
5754 2024-11-21  Christoph Müllner  <christoph.muellner@vrull.eu>
5756         * tree-ssa-forwprop.cc (struct _vec_perm_simplify_seq): New data
5757         structure to store analysis results of a vec perm simplify sequence.
5758         (get_vect_selector_index_map): Helper to get an index map from the
5759         provided vector permute selector.
5760         (recognise_vec_perm_simplify_seq): Helper to recognise a
5761         vec perm simplify sequence.
5762         (narrow_vec_perm_simplify_seq): Helper to pack the lanes more
5763         tight.
5764         (can_blend_vec_perm_simplify_seqs_p): Test if two vec perm
5765         sequences can be blended.
5766         (calc_perm_vec_perm_simplify_seqs): Helper to calculate the new
5767         permutation indices.
5768         (blend_vec_perm_simplify_seqs): Helper to blend two vec perm
5769         simplify sequences.
5770         (process_vec_perm_simplify_seq_list): Helper to process a list
5771         of vec perm simplify sequences.
5772         (append_vec_perm_simplify_seq_list): Helper to add a vec perm
5773         simplify sequence to the list.
5774         (pass_forwprop::execute): Integrate new functionality.
5776 2024-11-21  Richard Biener  <rguenther@suse.de>
5778         PR tree-optimization/117720
5779         * tree-vect-stmts.cc (vectorizable_load): For VMAT_STRIDED_SLP
5780         verify the choosen load type is OK with regard to alignment.
5782 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
5784         * doc/invoke.texi (-std=c23): Adjust documentation for
5785         publication of the ISO/IEC 9899:2024 standard.
5786         * doc/standards.texi: Likewise.  Document -std=gnu17 and
5787         -std=gnu23 options.  Mention that -std=gnu23 rather than
5788         -std=gnu17 is now the default for C.
5790 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
5792         PR tree-optimization/94589
5793         PR tree-optimization/117612
5794         * tree-ssa-phiopt.cc (spaceship_replacement): Handle
5795         HONOR_NANS (TREE_TYPE (lhs1)) case when possible.
5797 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
5799         PR tree-optimization/94589
5800         PR tree-optimization/117612
5801         * tree-ssa-phiopt.cc (spaceship_replacement): Fix up
5802         a pasto in check when arg1 is 2.
5804 2024-11-21  Jakub Jelinek  <jakub@redhat.com>
5806         PR c/117024
5807         * coretypes.h (enum function_class): Add function_c2y_misc
5808         enumerator.
5809         * builtin-types.def (BT_FN_UINTMAX_INTMAX, BT_FN_ULONG_LONG,
5810         BT_FN_ULONGLONG_LONGLONG): New DEF_FUNCTION_TYPE_1s.
5811         * builtins.def (DEF_C2Y_BUILTIN): Define.
5812         (BUILT_IN_UABS, BUILT_IN_UIMAXABS, BUILT_IN_ULABS,
5813         BUILT_IN_ULLABS): New builtins.
5814         * builtins.cc (fold_builtin_abs): Handle also folding of u*abs
5815         to ABSU_EXPR.
5816         (fold_builtin_1): Handle BUILT_IN_U{,L,LL,IMAX}ABS.
5818 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5820         PR target/114567
5821         * config/rs6000/rs6000.md (expander signbit<FLOAT128:mode>2): Adjust.
5822         (*signbit<mode>2_dm_mem): Rename to ...
5823         (signbit<mode>2_dm_mem): ... this.
5825 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5827         * config/rs6000/altivec.md (altivec_vadduqm): Rename to ...
5828         (addv1ti3): ... this.
5829         (altivec_vsubuqm): Rename to ...
5830         (subv1ti3): ... this.
5831         * config/rs6000/rs6000-builtins.def (__builtin_altivec_vadduqm):
5832         Replace bif expander altivec_vadduqm with addv1ti3.
5833         (__builtin_altivec_vsubuqm): Replace bif expander altivec_vsubuqm with
5834         subv1ti3.
5836 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5838         * config/rs6000/altivec.md (mode attr for V1TI in VI_unit): Remove.
5840 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5842         * config/rs6000/rs6000.md (*eqv<BOOL_128:mode>3_internal1): Generate
5843         insn veqv if TARGET_ALTIVEC and operands are altivec_register_operand.
5845 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5847         * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_IEEE): Remove.
5848         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
5849         ISA_3_0_MASKS_IEEE check with TARGET_P9_VECTOR.
5851 2024-11-21  Kewen Lin  <linkw@linux.ibm.com>
5853         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Simplify
5854         TARGET_P8_VECTOR && TARGET_DIRECT_MOVE as TARGET_P8_VECTOR.
5855         (rs6000_output_move_128bit): Simplify TARGET_VSX && TARGET_DIRECT_MOVE
5856         as TARGET_DIRECT_MOVE.
5857         * config/rs6000/rs6000.h (TARGET_XSCVDPSPN): Simplify conditions
5858         TARGET_DIRECT_MOVE || TARGET_P8_VECTOR as TARGET_P8_VECTOR.
5859         (TARGET_XSCVSPDPN): Likewise.
5860         (TARGET_DIRECT_MOVE_128): Simplify TARGET_DIRECT_MOVE &&
5861         TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT.
5862         (TARGET_VEXTRACTUB): Likewise.
5863         (TARGET_DIRECT_MOVE_64BIT): Simplify TARGET_P8_VECTOR &&
5864         TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE.
5865         * config/rs6000/rs6000.md (signbit<mode>2, @signbit<mode>2_dm,
5866         *signbit<mode>2_dm_mem, floatsi<mode>2_lfiwax,
5867         floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext,
5868         floatunssi<mode>2_lfiwzx, float<QHI:mode><SFDF:mode>2,
5869         *float<QHI:mode><SFDF:mode>2_internal, floatuns<QHI:mode><SFDF:mode>2,
5870         *floatuns<QHI:mode><SFDF:mode>2_internal, p8_mtvsrd_v16qidi2,
5871         p8_mtvsrd_df, p8_xxpermdi_<mode>, reload_vsx_from_gpr<mode>,
5872         p8_mtvsrd_sf, reload_vsx_from_gprsf, p8_mfvsrd_3_<mode>,
5873         reload_gpr_from_vsx<mode>, reload_gpr_from_vsxsf, unpack<mode>_dm):
5874         Simplify TARGET_DIRECT_MOVE && TARGET_POWERPC64 as
5875         TARGET_DIRECT_MOVE_64BIT.
5876         (unpack<mode>_nodm): Simplify !TARGET_DIRECT_MOVE || !TARGET_POWERPC64
5877         as !TARGET_DIRECT_MOVE_64BIT.
5878         (fix_trunc<mode>si2, fix_trunc<mode>si2_stfiwx,
5879         fix_trunc<mode>si2_internal): Simplify TARGET_P8_VECTOR &&
5880         TARGET_DIRECT_MOVE as TARGET_DIRECT_MOVE.
5881         (fix_trunc<mode>si2_stfiwx, fixuns_trunc<mode>si2_stfiwx): Remove some
5882         dead code as the guard TARGET_DIRECT_MOVE there never holds.
5883         (fixuns_trunc<mode>si2_stfiwx): Change TARGET_P8_VECTOR with
5884         TARGET_DIRECT_MOVE which is a better fit.
5885         * config/rs6000/vsx.md (define_peephole2 for SFmode in GPR): Simplify
5886         TARGET_DIRECT_MOVE && TARGET_POWERPC64 as TARGET_DIRECT_MOVE_64BIT.
5888 2024-11-20  Lewis Hyatt  <lhyatt@gmail.com>
5890         * tree-cfg.cc (assign_discriminators): Fix incorrect value passed to
5891         next_discriminator_for_locus().
5893 2024-11-20  Vladimir N. Makarov  <vmakarov@redhat.com>
5895         PR target/116587
5896         * lra-assigns.cc (find_all_spills_for): Consider all pseudos whose
5897         classes intersect given pseudo class.
5899 2024-11-20  Andrew Pinski  <quic_apinski@quicinc.com>
5901         * read-md.h (class rtx_reader): Don't include m_reuse_rtx_by_id
5902         when GENERATOR_FILE is defined.
5903         * read-rtl.cc (rtx_reader::read_rtx_code): Disable reuse_rtx
5904         support when GENERATOR_FILE is defined.
5906 2024-11-20  Richard Biener  <rguenther@suse.de>
5908         PR tree-optimization/117709
5909         * tree-vect-stmts.cc (get_group_load_store_type): Only
5910         set *poffset when we end up with VMAT_CONTIGUOUS_DOWN
5911         or VMAT_CONTIGUOUS_REVERSE.
5913 2024-11-20  Richard Biener  <rguenther@suse.de>
5915         PR tree-optimization/117698
5916         * tree-vect-stmts.cc (get_group_load_store_type): Properly
5917         disregard alignment for VMAT_STRIDED_SLP and VMAT_INVARIANT.
5918         (vectorizable_load): Adjust guard for dumping whether we
5919         vectorize and unaligned access.
5920         (vectorizable_store): Likewise.
5922 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
5924         * builtins.cc (builtin_fnspec): Handle BUILT_IN_OMP_GET_MAPPED_PTR.
5925         * gimple-low.cc (lower_stmt): Handle GIMPLE_OMP_DISPATCH.
5926         * gimple-pretty-print.cc (dump_gimple_omp_dispatch): New function.
5927         (pp_gimple_stmt_1): Handle GIMPLE_OMP_DISPATCH.
5928         * gimple-walk.cc (walk_gimple_stmt): Likewise.
5929         * gimple.cc (gimple_build_omp_dispatch): New function.
5930         (gimple_copy): Handle GIMPLE_OMP_DISPATCH.
5931         * gimple.def (GIMPLE_OMP_DISPATCH): Define.
5932         * gimple.h (gimple_build_omp_dispatch): Declare.
5933         (gimple_has_substatements): Handle GIMPLE_OMP_DISPATCH.
5934         (gimple_omp_dispatch_clauses): New function.
5935         (gimple_omp_dispatch_clauses_ptr): Likewise.
5936         (gimple_omp_dispatch_set_clauses): Likewise.
5937         (gimple_return_set_retval): Handle GIMPLE_OMP_DISPATCH.
5938         * gimplify.cc (enum omp_region_type): Add ORT_DISPATCH.
5939         (struct gimplify_omp_ctx): Add in_call_args.
5940         (gimplify_call_expr): Handle need_device_ptr arguments.
5941         (is_gimple_stmt): Handle OMP_DISPATCH.
5942         (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DEVICE in a dispatch
5943         construct. Handle OMP_CLAUSE_NOVARIANTS and OMP_CLAUSE_NOCONTEXT.
5944         (omp_has_novariants): New function.
5945         (omp_has_nocontext): Likewise.
5946         (omp_construct_selector_matches): Handle OMP_DISPATCH with nocontext
5947         clause.
5948         (find_ifn_gomp_dispatch): New function.
5949         (gimplify_omp_dispatch): Likewise.
5950         (gimplify_expr): Handle OMP_DISPATCH.
5951         * gimplify.h (omp_has_novariants): Declare.
5952         * internal-fn.cc (expand_GOMP_DISPATCH): New function.
5953         * internal-fn.def (GOMP_DISPATCH): Define.
5954         * omp-builtins.def (BUILT_IN_OMP_GET_MAPPED_PTR): Define.
5955         (BUILT_IN_OMP_GET_DEFAULT_DEVICE): Define.
5956         (BUILT_IN_OMP_SET_DEFAULT_DEVICE): Define.
5957         * omp-general.cc (omp_construct_traits_to_codes): Add OMP_DISPATCH.
5958         (struct omp_ts_info): Add dispatch.
5959         (omp_resolve_declare_variant): Handle novariants. Adjust
5960         DECL_ASSEMBLER_NAME.
5961         * omp-low.cc (scan_omp_1_stmt): Handle GIMPLE_OMP_DISPATCH.
5962         (lower_omp_dispatch): New function.
5963         (lower_omp_1): Call it.
5964         * tree-inline.cc (remap_gimple_stmt): Handle GIMPLE_OMP_DISPATCH.
5965         (estimate_num_insns): Handle GIMPLE_OMP_DISPATCH.
5967 2024-11-20  Paul-Antoine Arras  <parras@baylibre.com>
5969         * builtin-types.def (BT_FN_PTR_CONST_PTR_INT): New.
5970         * omp-selectors.h (enum omp_ts_code): Add OMP_TRAIT_CONSTRUCT_DISPATCH.
5971         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_NOVARIANTS and
5972         OMP_CLAUSE_NOCONTEXT.
5973         * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_NOVARIANTS
5974         and OMP_CLAUSE_NOCONTEXT.
5975         (dump_generic_node): Handle OMP_DISPATCH.
5976         * tree.cc (omp_clause_num_ops): Add OMP_CLAUSE_NOVARIANTS and
5977         OMP_CLAUSE_NOCONTEXT.
5978         (omp_clause_code_name): Add "novariants" and "nocontext".
5979         * tree.def (OMP_DISPATCH): New.
5980         * tree.h (OMP_DISPATCH_BODY): New macro.
5981         (OMP_DISPATCH_CLAUSES): New macro.
5982         (OMP_CLAUSE_NOVARIANTS_EXPR): New macro.
5983         (OMP_CLAUSE_NOCONTEXT_EXPR): New macro.
5985 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
5987         * config/aarch64/aarch64-option-extensions.def (sme2p1): New extension.
5988         * doc/invoke.texi: Document it.
5989         * config/aarch64/aarch64.h (TARGET_STREAMING_SME2p1): New macro.
5990         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
5991         Conditionally define __ARM_FEATURE_SME2p1.
5992         * config/aarch64/iterators.md (UNSPEC_SME_READZ, UNSPEC_SME_READZ_HOR)
5993         (UNSPEC_SME_READZ_VER): New unspecs.
5994         (optab, hv): Handle them.
5995         (SME_READZ_HV): New int iterator.
5996         * config/aarch64/aarch64-sme.md
5997         (UNSPEC_SME_ZERO_SLICES): New unspec.
5998         (@aarch64_sme_<SME_READZ_HV:optab><v_int_container><mode>)
5999         (*aarch64_sme_<SME_READZ_HV:optab><v_int_container><mode>_plus)
6000         (@aarch64_sme_<SME_READZ_HV:optab><VNx1TI_ONLY:mode><SVE_FULL:mode>)
6001         (@aarch64_sme_<SME_READZ_HV:optab><SVE_FULLx24:mode><mode>)
6002         (*aarch64_sme_<SME_READZ_HV:optab><SVE_FULLx24:mode><mode>_plus)
6003         (@aarch64_sme_readz<mode>, *aarch64_sme_readz<mode>_plus)
6004         (@aarch64_sme_zero_za_slices<mode>): New patterns.
6005         (*aarch64_sme_zero_za_slices<mode>_plus): Likewise.
6006         * config/aarch64/aarch64-sve-builtins-shapes.h
6007         (inherent_za_slice): Declare.
6008         * config/aarch64/aarch64-sve-builtins-shapes.cc
6009         (inherent_za_slice_def, inherent_za_slice): New shape.
6010         * config/aarch64/aarch64-sve-builtins-sme.h (svreadz_za)
6011         (svreadz_hor_za, svreadz_ver_za): Declare.
6012         * config/aarch64/aarch64-sve-builtins-sme.cc
6013         (svread_za_slice_base): New class, split out from...
6014         (svread_za_impl): ...here.
6015         (svreadz_za_impl, svreadz_za_tile_impl): New type aliases.
6016         (zero_slices_mode): New function.
6017         (svzero_za_impl::expand): Handle the slice forms.
6018         (svreadz_za, svreadz_hor_za, svreadz_ver_za): New functions.
6019         * config/aarch64/aarch64-sve-builtins-sme.def: Add the SME2p1
6020         instructions.
6022 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6024         * config/aarch64/aarch64-option-extensions.def
6025         (sme-b16b16): New extension.
6026         * doc/invoke.texi: Document it.
6027         * config/aarch64/aarch64.h (TARGET_STREAMING_SME_B16B16): New macro.
6028         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
6029         Conditionally define __ARM_FEATURE_SME_B16B16.
6030         * config/aarch64/aarch64-sve-builtins-sme.def: Add SME_B16B16 forms
6031         of existing intrinsics.
6032         * config/aarch64/aarch64-sme.md
6033         (@aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>)
6034         (*aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>_plus)
6035         (@aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6036         (*aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
6037         (@aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6038         (*aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
6039         (@aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6040         (*aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6041         (@aarch64_sme_<SME_FP_MOP:optab><mode><mode>): Extend to BF16 modes.
6042         * config/aarch64/aarch64-sve-builtins.cc (TYPES_za_h_bfloat): New
6043         type macro.
6044         * config/aarch64/iterators.md (SME_ZA_HSDFx24): Add BF16 modes.
6045         (SME_MOP_HSDF): Likewise.
6047 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6049         * config/aarch64/aarch64-option-extensions.def
6050         (sme-f16f16): New extension.
6051         * doc/invoke.texi: Document it.  Also document that sme-i16i64 and
6052         sme-f64f64 enable SME.
6053         * config/aarch64/aarch64.h (TARGET_STREAMING_SME_F16F16): New macro.
6054         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
6055         Conditionally define __ARM_FEATURE_SME_F16F16.
6056         * config/aarch64/aarch64-sve-builtins-sve2.def (svcvt, svcvtl): Add
6057         new SME_F16F16 intrinsics.
6058         * config/aarch64/aarch64-sve-builtins-sme.def: Add SME_F16F16 forms
6059         of existing intrinsics.
6060         * config/aarch64/aarch64-sve-builtins.cc (TYPES_h_float)
6061         (TYPES_cvt_f32_f16, TYPES_za_h_float): New type macros.
6062         * config/aarch64/aarch64-sve-builtins-base.cc
6063         (svcvt_impl::expand): Add sext_optab as another possibility.
6064         * config/aarch64/aarch64-sve-builtins-sve2.h (svcvtl): Declare.
6065         * config/aarch64/aarch64-sve-builtins-sve2.cc (svcvtl_impl): New class.
6066         (svcvtl): New function.
6067         * config/aarch64/iterators.md (VNx8SF_ONLY): New mode iterator.
6068         (SME_ZA_SDFx24): Replace with...
6069         (SME_ZA_HSDFx24): ...this.
6070         (SME_MOP_SDF): Replace with...
6071         (SME_MOP_HSDF): ...this.
6072         (SME_BINARY_SLICE_SDF): Replace with...
6073         (SME_BINARY_SLICE_HSDF): ...this.
6074         * config/aarch64/aarch64-sve2.md (extendvnx8hfvnx8sf2)
6075         (@aarch64_sve_cvtl<mode>): New patterns.
6076         * config/aarch64/aarch64-sme.md
6077         (@aarch64_sme_<SME_BINARY_SLICE_SDF:optab><mode>): Extend to...
6078         (@aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>): ...this.
6079         (*aarch64_sme_<SME_BINARY_SLICE_SDF:optab><mode>_plus): Extend to...
6080         (*aarch64_sme_<SME_BINARY_SLICE_HSDF:optab><mode>_plus): ...this.
6081         (@aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>): Extend to
6082         HF modes.
6083         (*aarch64_sme_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
6084         (@aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6085         (*aarch64_sme_single_<SME_FP_TERNARY_SLICE:optab><mode><mode>_plus)
6086         (@aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6087         (*aarch64_sme_lane_<SME_FP_TERNARY_SLICE:optab><mode><mode>)
6088         (@aarch64_sme_<SME_FP_MOP:optab><mode><mode>): Likewise.
6090 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6092         * config/aarch64/aarch64-option-extensions.def
6093         (sve-b16b16): New extension.
6094         * doc/invoke.texi: Document it.
6095         * config/aarch64/aarch64.h (TARGET_SME_B16B16, TARGET_SVE2_OR_SME2)
6096         (TARGET_SSVE_B16B16): New macros.
6097         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
6098         Conditionally define __ARM_FEATURE_SVE_B16B16
6099         * config/aarch64/aarch64-sve-builtins-sve2.def: Add AARCH64_FL_SVE2
6100         to the SVE2p1 requirements.  Add SVE_B16B16 forms of existing
6101         intrinsics.
6102         * config/aarch64/aarch64-sve-builtins.cc (type_suffixes): Treat
6103         bfloat as a floating-point type.
6104         (TYPES_h_bfloat): New macro.
6105         * config/aarch64/aarch64.md (is_bf16, is_rev, supports_bf16_rev)
6106         (mode_enabled): New attributes.
6107         (enabled): Test mode_enabled.
6108         * config/aarch64/iterators.md (SVE_FULL_F_BF): New mode iterator.
6109         (SVE_CLAMP_F): Likewise.
6110         (SVE_Fx24): Add BF16 modes when TARGET_SSVE_B16B16.
6111         (sve_lane_con): Handle BF16 modes.
6112         (b): Handle SF and DF modes.
6113         (is_bf16): New mode attribute.
6114         (supports_bf16, supports_bf16_rev): New int attributes.
6115         * config/aarch64/predicates.md
6116         (aarch64_sve_float_maxmin_immediate): Reject BF16 modes.
6117         * config/aarch64/aarch64-sve.md
6118         (*post_ra_<sve_fp_op><mode>3): Add BF16 support, and likewise
6119         for the associated define_split.
6120         (<optab:SVE_COND_FP_BINARY_OPTAB><mode>): Add BF16 support.
6121         (@cond_<optab:SVE_COND_FP_BINARY><mode>): Likewise.
6122         (*cond_<optab:SVE_COND_FP_BINARY><mode>_2_relaxed): Likewise.
6123         (*cond_<optab:SVE_COND_FP_BINARY><mode>_2_strict): Likewise.
6124         (*cond_<optab:SVE_COND_FP_BINARY><mode>_3_relaxed): Likewise.
6125         (*cond_<optab:SVE_COND_FP_BINARY><mode>_3_strict): Likewise.
6126         (*cond_<optab:SVE_COND_FP_BINARY><mode>_any_relaxed): Likewise.
6127         (*cond_<optab:SVE_COND_FP_BINARY><mode>_any_strict): Likewise.
6128         (@aarch64_mul_lane_<mode>): Likewise.
6129         (<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
6130         (@aarch64_pred_<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
6131         (@cond_<optab:SVE_COND_FP_TERNARY><mode>): Likewise.
6132         (*cond_<optab:SVE_COND_FP_TERNARY><mode>_4_relaxed): Likewise.
6133         (*cond_<optab:SVE_COND_FP_TERNARY><mode>_4_strict): Likewise.
6134         (*cond_<optab:SVE_COND_FP_TERNARY><mode>_any_relaxed): Likewise.
6135         (*cond_<optab:SVE_COND_FP_TERNARY><mode>_any_strict): Likewise.
6136         (@aarch64_<optab:SVE_FP_TERNARY_LANE>_lane_<mode>): Likewise.
6137         * config/aarch64/aarch64-sve2.md
6138         (@aarch64_pred_<optab:SVE_COND_FP_BINARY><mode>): Define BF16 version.
6139         (@aarch64_sve_fclamp<mode>): Add BF16 support.
6140         (*aarch64_sve_fclamp<mode>_x): Likewise.
6141         (*aarch64_sve_<maxmin_uns_op><SVE_Fx24:mode>): Likewise.
6142         (*aarch64_sve_single_<maxmin_uns_op><SVE_Fx24:mode>): Likewise.
6143         * config/aarch64/aarch64.cc (aarch64_sve_float_arith_immediate_p)
6144         (aarch64_sve_float_mul_immediate_p): Return false for BF16 modes.
6146 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6148         * config/aarch64/aarch64-sme.md (@aarch64_sme_write<mode>)
6149         (*aarch64_sme_write<mode>_plus): Use UNSPEC_SME_WRITE instead
6150         of UNSPEC_SME_READ.
6152 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6154         * config/aarch64/iterators.md (SME_READ): Rename to...
6155         (SME_READ_HV): ...this.
6156         (SME_WRITE): Rename to...
6157         (SME_WRITE_HV): ...this.
6158         * config/aarch64/aarch64-sme.md: Update accordingly.
6160 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6162         * config/aarch64/iterators.md (SVE_COND_FP): New code attribute.
6163         * config/aarch64/aarch64-sve.md: Use a single define_split to
6164         handle the conversion of predicated FADD, FSUB, and FMUL into
6165         unpredicated forms.
6167 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6169         * config/aarch64/iterators.md (SME_ZA_SDF_I): Delete.
6170         (SME_MOP_HSDF): Replace with...
6171         (SME_MOP_SDF): ...this.
6172         * config/aarch64/aarch64-sme.md: Change the non-widening FMLA and
6173         FMLS patterns so that both mode parameters are the same, rather than
6174         using both SME_ZA_SDF_I and SME_ZA_SDFx24 and checking that their
6175         element sizes are the same.  Split the FMOPA and FMOPS patterns
6176         into separate non-widening and widening forms, then update the
6177         non-widening forms in a similar way to FMLA and FMLS.
6178         * config/aarch64/aarch64-sve-builtins-functions.h
6179         (sme_2mode_function_t::expand): If the two type suffixes have the same
6180         element size, use the vector tuple mode for both mode parameters.
6182 2024-11-20  Uros Bizjak  <ubizjak@gmail.com>
6184         * config/i386/i386.cc (legitimize_tls_address)
6185         <TLS_MODEL_INITIAL_EXEC>: Remove 64-bit Solaris ld workaround.
6186         * config/i386/i386.md (UNSPEC_TLS_IE_SUN): Remove.
6187         (tls_initial_exec_64_sun): Remove.
6189 2024-11-20  Richard Biener  <rguenther@suse.de>
6191         PR tree-optimization/117574
6192         * tree-ssa-loop-niter.cc (number_of_iterations_lt_to_ne):
6193         Use the obvious may_be_zero condition.
6195 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6197         * machmode.h (opt_mode::opt_mode): New overload.
6198         * optabs-query.h (get_absneg_bit_mode): Declare.
6199         * optabs-query.cc (get_absneg_bit_mode): New function, split
6200         out from expand_absneg_bit.
6201         (can_open_code_p): Use get_absneg_bit_mode.
6202         * optabs.cc (expand_absneg_bit): Likewise.  Take an outer and inner
6203         mode, rather than just one.  Handle vector modes.
6204         (expand_unop, expand_abs_nojump): Update calls accordingly.
6205         Handle vector modes.
6207 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6209         * tree-vect-data-refs.cc (vect_supportable_dr_alignment): Use
6210         can_implement_p instead of optab_handler.
6211         * tree-vect-generic.cc (add_rshift, expand_vector_divmod): Likewise.
6212         (optimize_vector_constructor, type_for_widest_vector_mode): Likewise.
6213         (lower_vec_perm, expand_vector_operations_1): Likewise.
6214         * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
6215         * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
6216         (target_has_vecop_for_code, vect_recog_mult_pattern): Likewise.
6217         (vect_recog_divmod_pattern): Likewise.
6218         * tree-vect-stmts.cc (vect_supportable_shift, vectorizable_shift)
6219         (scan_store_can_perm_p, check_scan_store, vectorizable_store)
6220         (vectorizable_load, vectorizable_condition): Likewise.
6221         (vectorizable_comparison_1): Likewise.
6223 2024-11-20  Richard Sandiford  <richard.sandiford@arm.com>
6225         * optabs-query.cc (can_open_code_p, can_implement_p): Declare.
6226         * optabs-query.h (can_open_code_p, can_implement_p): New functions.
6227         * optabs-tree.cc (target_supports_op_p): Use can_implement_p.
6228         * tree-vect-stmts.cc (vectorizable_operation): Likewise.
6229         * tree-vect-generic.cc (get_compute_type): Likewise.  Remove code
6230         parameter.
6231         (expand_vector_scalar_condition, expand_vector_conversion)
6232         (expand_vector_operations_1): Update calls accordingly.
6234 2024-11-20  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6236         * config/arm/arm.cc (arm_mve_dlstp_check_dec_counter): Call
6237         single_pred_p to verify it's safe to call single_pred.
6239 2024-11-20  Feng Wang  <wangfeng@eswincomputing.com>
6241         PR target/117669
6242         * config/riscv/vector-iterators.md:
6244 2024-11-20  MayShao-oc  <MayShao-oc@zhaoxin.com>
6246         PR target/117438
6247         * config/i386/i386-features.cc (TARGET_ALIGN_TIGHT_LOOPS):
6248         default true in all processors except for m_ZHAOXIN, m_CASCADELAKE, and
6249         m_SKYLAKE_AVX512.
6250         * config/i386/i386.h (TARGET_ALIGN_TIGHT_LOOPS): New Macro.
6251         * config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS):
6252         New tune
6254 2024-11-20  yulong  <shiyulong@iscas.ac.cn>
6256         * common/config/riscv/riscv-common.cc: New.
6257         * config/riscv/riscv.opt: New.
6259 2024-11-20  Jeff Law  <jlaw@ventanamicro.com>
6261         PR target/117649
6262         * config/riscv/riscv.md (branch on masked/shifted operands): Use
6263         arithmetic rather than logical shift for operand 1.
6265 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
6267         PR target/54378
6268         * config/avr/avr.cc (avr_default_shift_costs): New static function.
6269         (avr_rtx_costs_1) [ASHIFT, LSHIFTRT, ASHIFTRT]: Use it
6270         to determine the default shift costs for shifts with a
6271         constant shift offset.
6273 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
6275         * config/avr/avr.md (ashlhi3, *ashlhi3_const_split, *ashlhi3_const)
6276         (*ashlpsi3_split, *ashlpsi3)
6277         (ashlsi3, *ashlsi3_const_split, *ashlsi3_const)
6278         (ashrhi3, *ashrhi3, ashrpsi3, *ashrpsi3, ashrsi3, *ashrsi3)
6279         (*ashrhi3_const_split, *ashrhi3_const, *ashrsi3_const_split, *ashrsi3_const):
6280         Add constraint alternatives that allow a 3-operand operation when the
6281         shift offset is one less than the mode's bitsize.
6282         * config/avr/avr.cc (ashl<mode>3_out, ashr<mode>3_out)
6283         (lshr<mode>3_out): Use avr_asm_len for asm_out and length tracking.
6284         (ashrhi3_out, ashlhi3_out): Support the new "r,r,C15" alternatives.
6285         (ashrsi3_out, ashlsi3_out): Support the new "r,r,C31" alternatives.
6286         (avr_out_ashrpsi3, avr_out_ashlpsi3): Support the new "r,r,C23" alternatives.
6288 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
6290         * config/avr/avr.h (avr_args.has_stack_args): Be a bool.
6291         (struct machine_function) <is_naked, is_noblock, is_OS_task,
6292         is_OS_task, sibcall_fails, attributes_checked_p, is_no_gccisr,
6293         use_L__stack_usage, gasisr.yes, gasisr.maybe>: Same.
6294         * config/avr/avr-protos.h (reg_unused_after)
6295         (test_hard_reg_class, jump_over_one_insn_p): Use bool as
6296         return type.
6297         * config/avr/avr.cc (reg_unused_after)
6298         (test_hard_reg_class, jump_over_one_insn_p): Same.
6299         (cfun->machine->attributes_checked_p, cum->has_stack_args)
6300         (cfun->machine->use_L__stack_usage, cfun->machine->gasisr.yes)
6301         (cfun->machine->sibcall_fails): Use like a bool.
6303 2024-11-19  Dimitar Dimitrov  <dimitar@dinux.eu>
6305         * config/riscv/riscv.cc (riscv_override_options_internal):
6306         Set division option's default to disabled if multiplication
6307         is not available.
6309 2024-11-19  Jason Merrill  <jason@redhat.com>
6311         * warning-control.cc (has_warning_spec): Fix handling of
6312         get_no_warning_bit.
6314 2024-11-19  Georg-Johann Lay  <avr@gjlay.de>
6316         PR target/84211
6317         * config/avr/avr-passes.cc (memento_t::apply_insn1): Don't
6318         use operator &= on memento_t.known but on memento_t itself.
6320 2024-11-19  Andrew Stubbs  <ams@baylibre.com>
6322         PR target/117657
6323         * config/gcn/gcn-valu.md (mask_gather_load<mode><vnsi>): Fix bug in
6324         maskload else patch.
6326 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6328         * config/aarch64/cygming.h (TARGET_ASM_LTO_START): New.
6329         (TARGET_ASM_LTO_END): Likewise.
6330         * config/i386/cygming.h (TARGET_ASM_LTO_START): Update.
6331         (TARGET_ASM_LTO_END): Likewise.
6332         * config/i386/i386-protos.h (i386_pe_asm_lto_start): Delete.
6333         (i386_pe_asm_lto_end): Likewise.
6334         * config/mingw/winnt.cc (i386_pe_asm_lto_start): Rename
6335         into ...
6336         (mingw_pe_asm_lto_start): ... this.
6337         (i386_pe_asm_lto_end): Rename into ...
6338         (mingw_pe_asm_lto_end): ... this.
6339         * config/mingw/winnt.h (mingw_pe_asm_lto_start): New.
6340         (mingw_pe_asm_lto_end): Likewise.
6342 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6344         * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately):
6345         Update.
6347 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6349         * config/aarch64/aarch64-coff.h (LOCAL_LABEL_PREFIX):
6350         Use "." as the local label prefix.
6351         (ASM_OUTPUT_ALIGNED_LOCAL): Remove.
6352         (ASM_OUTPUT_LOCAL): New.
6353         * config/aarch64/cygming.h (ASM_OUTPUT_EXTERNAL_LIBCALL):
6354         Update.
6355         (ASM_DECLARE_OBJECT_NAME): New.
6356         (ASM_DECLARE_FUNCTION_NAME): New.
6357         * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME):
6358         Update.
6359         (ASM_OUTPUT_EXTERNAL_LIBCALL): Update.
6360         * config/mingw/winnt.cc (mingw_pe_declare_function_type):
6361         Rename into ...
6362         (mingw_pe_declare_type): ... this.
6363         (i386_pe_start_function): Update.
6364         * config/mingw/winnt.h (mingw_pe_declare_function_type):
6365         Rename into ...
6366         (mingw_pe_declare_type): ... this.
6368 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6370         * config/aarch64/aarch64.cc (aarch64_classify_symbol):
6371         Disable GOT for PECOFF target.
6373 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6375         * config.gcc: Add missing dependencies.
6377 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6379         * config/aarch64/aarch64.cc (TARGET_ASM_UNALIGNED_HI_OP):
6380         Enable DWARF.
6381         (TARGET_ASM_UNALIGNED_SI_OP): Likewise.
6382         (TARGET_ASM_UNALIGNED_DI_OP): Likewise.
6383         * config/aarch64/cygming.h (DWARF2_DEBUGGING_INFO): Likewise.
6384         (PREFERRED_DEBUGGING_TYPE): Likewise.
6385         (DWARF2_UNWIND_INFO): Likewise.
6386         (ASM_OUTPUT_DWARF_OFFSET): Likewise.
6388 2024-11-19  Evgeny Karpov  <evgeny.karpov@microsoft.com>
6390         * config/aarch64/cygming.h (SUB_TARGET_RECORD_STUB): Request
6391         declaration for weak symbols.
6392         (PE_COFF_LEGITIMIZE_EXTERN_DECL): Legitimize external
6393         declaration for weak symbols.
6394         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Update
6395         declarations in ix86 with the same functionality.
6396         (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
6397         * config/mingw/winnt-dll.cc (legitimize_pe_coff_symbol):
6398         Support declaration for weak symbols if requested.
6399         * config/mingw/winnt.cc (struct stub_list): Likewise.
6400         (mingw_pe_record_stub): Likewise.
6401         (mingw_pe_file_end): Likewise.
6402         * config/mingw/winnt.h (mingw_pe_record_stub): Likewise.
6404 2024-11-19  Robin Dapp  <rdapp@ventanamicro.com>
6406         * config/riscv/riscv-v.cc (shuffle_merge_patterns): Load VLS
6407         indices directly.
6409 2024-11-19  Richard Sandiford  <richard.sandiford@arm.com>
6411         PR rtl-optimization/117297
6412         * recog.h (temporarily_undo_changes, redo_changes): Delete in
6413         favor of...
6414         (undo_recog_changes): ...this new RAII class.
6415         * fwprop.cc (should_replace_address): Update accordingly.
6416         (fwprop_propagation::check_mem): Likewise.
6417         (try_fwprop_subst_note): Likewise.
6418         (try_fwprop_subst_pattern): Likewise.
6419         * rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise.
6420         * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Temporarily
6421         undo all in-progress changes while computing the cost of the original
6422         sequence.
6423         * recog.cc (temporarily_undone_changes): Replace with...
6424         (undo_recog_changes::s_num_changes): ...this static member variable.
6425         (validate_change_1): Update check accordingly.
6426         (confirm_change_group): Likewise.
6427         (num_validated_changes): Likewise.
6428         (temporarily_undo_changes): Replace with...
6429         (undo_recog_changes::undo_recog_changes): ...this constructor.
6430         (redo_changes): Replace with...
6431         (undo_recog_changes::~undo_recog_changes): ...this destructor.
6433 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
6435         PR middle-end/117458
6436         * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Don't
6437         call extract_bit_field if op0 has complex mode and isn't a MEM,
6438         instead first force op0 into memory and then call extract_bit_field.
6440 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
6442         PR middle-end/117459
6443         * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt,
6444         bitint_large_huge::lower_stmt): Handle PAREN_EXPR.
6446 2024-11-19  Jakub Jelinek  <jakub@redhat.com>
6448         PR middle-end/117571
6449         * gimple-lower-bitint.cc (bitint_large_huge::lower_muldiv_stmt,
6450         bitint_large_huge::lower_stmt, stmt_needs_operand_addr,
6451         build_bitint_stmt_ssa_conflicts, gimple_lower_bitint): Handle
6452         EXACT_DIV_EXPR like TRUNC_DIV_EXPR.
6454 2024-11-19  David Malcolm  <dmalcolm@redhat.com>
6456         * config/avr/avr.opt.urls: Regenerate for
6457         r15-5415-gc3db52bb47913a.
6459 2024-11-19  Mark Harmstone  <mark@harmstone.com>
6461         * dwarf2codeview.cc (add_to_fieldlist): New function.
6462         (add_struct_member): Call recursively to flatten structs, and call
6463         add_to_fieldlist.
6464         (add_struct_static_member): Call add_to_fieldlist.
6465         (add_struct_function): Call add_to_fieldlist.
6466         (add_struct_inheritance): Call add_to_fieldlist.
6467         (add_struct_nested_type): Call add_to_fieldlist.
6468         (get_type_num_struct): Move code to add_to_fieldlist, and move
6469         responsibility for this to subfunctions.
6471 2024-11-19  Mark Harmstone  <mark@harmstone.com>
6473         * dwarf2codeview.cc (enum cv_leaf_type): Add LF_NESTTYPE.
6474         (struct codeview_subtype): Add lf_nesttype to union.
6475         (flush_deferred_types): Add declaration.
6476         (write_lf_fieldlist): Handle LF_NESTTYPE.
6477         (codeview_debug_finish): Call flush_deferred_types.
6478         (add_struct_nested_type): New function.
6479         (get_type_num_struct): Call add_struct_nested_type, and if nested make
6480         that parent is added.
6482 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
6484         PR other/96032
6485         * Makefile.in (lang_checks): If libdiagnostics is enabled, add
6486         check-sarif-replay.
6487         (SARIF_REPLAY_OBJS): New.
6488         (ALL_HOST_OBJS): If libdiagnostics is enabled, add
6489         $(SARIF_REPLAY_OBJS).
6490         (sarif-replay): New.
6491         (install-libdiagnostics): Add sarif-replay to deps, and install
6492         it.
6493         * configure: Regenerate.
6494         * configure.ac (check_languages): If libdiagnostics is enabled,
6495         add check-sarif-replay.
6496         (LIBDIAGNOSTICS): If libdiagnostics is enabled, add sarif-replay.
6497         * doc/install.texi (--enable-libdiagnostics): Note that it also
6498         enables sarif-replay.
6499         * libsarifreplay.cc: New file.
6500         * libsarifreplay.h: New file.
6501         * sarif-replay.cc: New file.
6502         * sarif-spec-urls.def: New file.
6504 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
6506         * Makefile.in (OBJS-libcommon): Add json-parsing.o.
6507         * json-parsing.cc: New file.
6508         * json-parsing.h: New file.
6509         * json.cc (selftest::assert_print_eq): Remove "static".
6510         * json.h (json::array::begin): New.
6511         (json::array::end): New.
6512         (json::array::length): New.
6513         (json::array::get): New.
6514         (is_a_helper <json::value *>::test): New.
6515         (is_a_helper <const json::value *>::test): New.
6516         (is_a_helper <json::object *>::test): New.
6517         (is_a_helper <const json::object *>::test): New.
6518         (is_a_helper <json::array *>::test): New.
6519         (is_a_helper <const json::array *>::test): New.
6520         (is_a_helper <json::float_number *>::test): New.
6521         (is_a_helper <const json::float_number *>::test): New.
6522         (is_a_helper <json::integer_number *>::test): New.
6523         (is_a_helper <const json::integer_number *>::test): New.
6524         (is_a_helper <json::string *>::test): New.
6525         (is_a_helper <const json::string *>::test): New.
6526         (selftest::assert_print_eq): New decl.
6527         * selftest-run-tests.cc (selftest::run_tests): Call
6528         selftest::json_parser_cc_tests.
6529         * selftest.h (selftest::json_parser_cc_tests): New decl.
6531 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
6533         * configure.ac (check_languages): Add check-libdiagnostics.
6534         (--enable-libdiagnostics): New.
6535         * configure: Regenerate.
6536         * Makefile.in (enable_libdiagnostics): New.
6537         (lang_checks): If libdiagnostics is enabled, add
6538         check-libdiagnostics.
6539         (ALL_HOST_OBJS): If libdiagnostics is enabled, add
6540         $(libdiagnostics_OBJS).
6541         (start.encap): Add LIBDIAGNOSTICS.
6542         (libdiagnostics_OBJS): New.
6543         (LIBDIAGNOSTICS_VERSION_NUM): New, adapted from code in
6544         jit/Make-lang.in.
6545         (LIBDIAGNOSTICS_MINOR_NUM): Likewise.
6546         (LIBDIAGNOSTICS_RELEASE_NUM): Likewise.
6547         (LIBDIAGNOSTICS_FILENAME): Likewise.
6548         (LIBDIAGNOSTICS_IMPORT_LIB): Likewise.
6549         (libdiagnostics): Likewise.
6550         (LIBDIAGNOSTICS_AGE): Likewise.
6551         (LIBDIAGNOSTICS_BASENAME): Likewise.
6552         (LIBDIAGNOSTICS_SONAME): Likewise.
6553         (LIBDIAGNOSTICS_LINKER_NAME): Likewise.
6554         (LIBDIAGNOSTICS_COMMA): Likewise.
6555         (LIBDIAGNOSTICS_VERSION_SCRIPT_OPTION): Likewise.
6556         (LIBDIAGNOSTICS_SONAME_OPTION): Likewise.
6557         (LIBDIAGNOSTICS_SONAME_SYMLINK): Likewise.
6558         (LIBDIAGNOSTICS_LINKER_NAME_SYMLINK): Likewise.
6559         (LIBDIAGNOSTICS_FILENAME): Likewise.
6560         (libdiagnostics.serial): Likewise.
6561         (LIBDIAGNOSTICS_EXTRA_OPTS): Likewise.
6562         (install): If libdiagnostics is enabled, add
6563         install-libdiagnostics.
6564         (libdiagnostics.install-headers): New.
6565         (libdiagnostics.install-common): New, adapted from code in
6566         jit/Make-lang.in.
6567         (install-libdiagnostics): New.
6568         * diagnostic-format-text.h
6569         (diagnostic_text_output_format::get_location_text): Make public.
6570         * doc/install.texi (--enable-libdiagnostics): New.
6571         * doc/libdiagnostics/Makefile: New file.
6572         * doc/libdiagnostics/conf.py: New file.
6573         * doc/libdiagnostics/index.rst: New file.
6574         * doc/libdiagnostics/make.bat: New file.
6575         * doc/libdiagnostics/topics/diagnostic-manager.rst: New file.
6576         * doc/libdiagnostics/topics/diagnostics.rst: New file.
6577         * doc/libdiagnostics/topics/execution-paths.rst: New file.
6578         * doc/libdiagnostics/topics/fix-it-hints.rst: New file.
6579         * doc/libdiagnostics/topics/index.rst: New file.
6580         * doc/libdiagnostics/topics/logical-locations.rst: New file.
6581         * doc/libdiagnostics/topics/message-formatting.rst: New file.
6582         * doc/libdiagnostics/topics/metadata.rst: New file.
6583         * doc/libdiagnostics/topics/physical-locations.rst: New file.
6584         * doc/libdiagnostics/topics/retrofitting.rst: New file.
6585         * doc/libdiagnostics/topics/sarif.rst: New file.
6586         * doc/libdiagnostics/topics/text-output.rst: New file.
6587         * doc/libdiagnostics/topics/ux.rst: New file.
6588         * doc/libdiagnostics/tutorial/01-hello-world.rst: New file.
6589         * doc/libdiagnostics/tutorial/02-physical-locations.rst: New file.
6590         * doc/libdiagnostics/tutorial/03-logical-locations.rst: New file.
6591         * doc/libdiagnostics/tutorial/04-notes.rst: New file.
6592         * doc/libdiagnostics/tutorial/05-warnings.rst: New file.
6593         * doc/libdiagnostics/tutorial/06-fix-it-hints.rst: New file.
6594         * doc/libdiagnostics/tutorial/07-execution-paths.rst: New file.
6595         * doc/libdiagnostics/tutorial/index.rst: New file.
6596         * libdiagnostics++.h: New file.
6597         * libdiagnostics.cc: New file.
6598         * libdiagnostics.h: New file.
6599         * libdiagnostics.map: New file.
6600         * doc/libdiagnostics/tutorial/example-1.png: New file.
6602 2024-11-18  Uros Bizjak  <ubizjak@gmail.com>
6604         PR target/117357
6605         * config/i386/i386.md (*rsqrtsf2_sse):
6606         Also enable for !TARGET_SSE_MATH.
6608 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6610         * timevar.def (TV_LATE_COMBINE): New timevar.
6611         * late-combine.cc (pass_data_late_combine): Use it.
6613 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6615         * config/aarch64/aarch64-early-ra.cc
6616         (early_ra::IGNORE_REG): New flag.
6617         (early_ra::fpr_preference): Handle it.
6618         (early_ra::record_constraints): Fail the allocation if an
6619         IGNORE_REG output operand is not independent of the inputs.
6620         (defines_multi_def_pseudo): New function.
6621         (early_ra::could_split_region_here): New member function, split
6622         out from...
6623         (early_ra::process_block): ...here.  Try splitting a block into
6624         multiple regions between the definition and use phases of an
6625         instruction.  Set IGNORE_REG on the output registers if we do so.
6627 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6629         * config/aarch64/aarch64-early-ra.cc
6630         (early_ra::process_block): Check m_accurate_live_ranges
6631         rather than m_allocation_successful when deciding whether
6632         to split a block into multiple regions.  Skip over subregions
6633         that we decide not to allocate.
6635 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6637         * config/aarch64/aarch64-early-ra.cc
6638         (early_ra::get_allocno_subgroup): Split can_change_mode_class test
6639         out from modes_tieable_p test and only invalidate the live range
6640         information for the former.
6642 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6644         * config/aarch64/aarch64-early-ra.cc
6645         (early_ra::record_allocation_failure): New member function.
6646         (early_ra::get_allocno_subgroup): Use it instead of setting
6647         m_allocation_successful directly.
6648         (early_ra::record_constraints): Likewise.
6649         (early_ra::allocate_colors): Likewise.
6651 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6653         * config/aarch64/aarch64-early-ra.cc
6654         (early_ra::record_live_range_failure): New member function.
6655         (early_ra::m_accurate_live_ranges): New member variable.
6656         (early_ra::start_new_region): Set m_accurate_live_ranges to true.
6657         (early_ra::get_allocno_subgroup): Use record_live_range_failure
6658         to abort the allocation on invalid subregs.
6660 2024-11-18  Richard Sandiford  <richard.sandiford@arm.com>
6662         * config/aarch64/aarch64-early-ra.cc
6663         (early_ra::record_insn_refs): Split into...
6664         (early_ra::record_insn_defs, early_ra::record_insn_call)
6665         (early_ra::record_insn_uses): ...this new functions.
6666         (early_ra::process_block): Update accordingly.
6668 2024-11-18  David Malcolm  <dmalcolm@redhat.com>
6670         PR other/116253
6671         * diagnostic-core.h (class auto_diagnostic_nesting_level): New.
6672         * diagnostic-format-sarif.cc (class sarif_builder): Update leading
6673         comment re nesting of diagnostics.
6674         (sarif_result::on_nested_diagnostic): Add nestingLevel property.
6675         * diagnostic-format-text.cc (on_report_diagnostic): If we're
6676         showing nested diagnostics, then print changes of location on a
6677         new line, indented, and update m_last_location.
6678         (diagnostic_text_output_format::build_prefix): If m_show_nesting,
6679         then potentially add indentation and a bullet point.
6680         (get_bullet_point_unichar): New.
6681         (use_unicode_p): New.
6682         (diagnostic_text_output_format::build_indent_prefix): New.
6683         * diagnostic-format-text.h
6684         (diagnostic_text_output_format::diagnostic_text_output_format):
6685         Initialize m_show_nesting and m_show_nesting_levels.
6686         (diagnostic_text_output_format::build_indent_prefix): New decl.
6687         (diagnostic_text_output_format::show_nesting_p): New accessor
6688         (diagnostic_text_output_format::show_locations_in_nesting_p):
6689         Likewise.
6690         (diagnostic_text_output_format::set_show_nesting): New.
6691         (diagnostic_text_output_format::set_show_locations_in_nesting):
6692         New.
6693         (diagnostic_text_output_format::set_show_nesting_levels): New.
6694         (diagnostic_text_output_format::m_show_nesting): New field.
6695         (diagnostic_text_output_format::m_show_locations_in_nesting): New
6696         field.
6697         (diagnostic_text_output_format::m_show_nesting_levels): New field.
6698         * diagnostic-global-context.cc
6699         (auto_diagnostic_nesting_level::auto_diagnostic_nesting_level):
6700         New.
6701         (auto_diagnostic_nesting_level::~auto_diagnostic_nesting_level):
6702         New.
6703         * diagnostic-show-locus.cc (layout_printer::print): Temporarily
6704         set DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE.
6705         * diagnostic.cc (diagnostic_context::initialize): Update for
6706         renaming of m_nesting_depth to m_group_nesting_depth and
6707         initialize m_diagnostic_nesting_level.
6708         (diagnostic_context::finish): Update for renaming of
6709         m_nesting_depth to m_group_nesting_depth.
6710         (diagnostic_context::report_diagnostic): Likewise.
6711         (diagnostic_context::begin_group): Likewise.
6712         (diagnostic_context::end_group): Likewise.
6713         (diagnostic_context::push_nesting_level): New.
6714         (diagnostic_context::pop_nesting_level): New.
6715         (diagnostic_context::set_diagnostic_buffer): Update for renaming
6716         of m_nesting_depth to m_group_nesting_depth.  Assert that we don't
6717         have nested diagnostics.
6718         * diagnostic.h (diagnostic_context::push_nesting_level): New decl.
6719         (diagnostic_context::pop_nesting_level): New decl.
6720         (diagnostic_context::get_diagnostic_nesting_level): New accessor.
6721         (diagnostic_context::build_indent_prefix): New decl.
6722         (diagnostic_context::m_diagnostic_groups): Rename m_nesting_depth
6723         to m_group_nesting_depth and add field m_diagnostic_nesting_level.
6724         * doc/invoke.texi (fdiagnostics-add-output): Add note about
6725         "experimental" schemes, keys, and values.  Add keys
6726         "experimental-nesting", "experimental-nesting-show-locations",
6727         and "experimental-nesting-show-levels" to text scheme.
6728         * opts-diagnostic.cc (text_scheme_handler::make_sink): Add keys
6729         "experimental-nesting", "experimental-nesting-show-locations",
6730         and "experimental-nesting-show-levels".
6732 2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
6734         PR target/84211
6735         * doc/invoke.texi (AVR Options) [-mfuse-move]: Document new option.
6736         * common/config/avr/avr-common.cc (avr_option_optimization_table):
6737         Set -mfuse-move= depending on optimization level.
6738         * config/avr/avr.opt (-mfuse-move, -mfuse-move=): New options.
6739         * config/avr/t-avr (avr-passes.o): Depend on avr-passes-fuse-move.h.
6740         * config/avr/avr-passes-fuse-move.h: New file, used by avr-passes.cc.
6741         * config/avr/avr-passes.def (avr_pass_fuse_move): Insert new pass.
6742         * config/avr/avr-passes.cc (INCLUDE_ARRAY): Define it.
6743         (insn-attr.h): Include it.
6744         (avr_pass_data_fuse_move): New const pass_data.
6745         (avr_pass_fuse_move): New public rtl_opt_pass class.
6746         (make_avr_pass_fuse_move): New function.
6747         (gprmask_t): New typedef.
6748         (next_nondebug_insn_bb, prev_nondebug_insn_bb)
6749         (single_set_with_scratch, size_to_mask, size_to_mode)
6750         (emit_valid_insn, emit_valid_move_clobbercc)
6751         (gpr_regno_p, regmask, has_bits_in)
6752         (find_arith, find_arith2, any_shift_p): New local functions.
6753         (AVRasm): New namespace.
6754         (FUSE_MOVE_MAX_MODESIZE): New define.
6755         (avr-passes-fuse-move.h): New include.
6756         (memento_t, absint_t, absins_byte_t, absint_val_t)
6757         (optimize_data_t, insn_optimizedata_t, find_plies_data_t)
6758         (insninfo_t, bbinfo_t, ply_t, plies_t): New structs / classes.
6759         * config/avr/avr-protos.h (avr_chunk, avr_byte, avr_word, avr_int8)
6760         (avr_uint8, avr_int16, avr_uint16)
6761         (avr_out_set_some, avr_set_some_operation)
6762         (output_reload_in_const, make_avr_pass_fuse_move): New protos.
6763         (avr_dump): Depend macro definition on GCC_DUMPFILE_H.
6764         * config/avr/avr.cc (avr_option_override): Insert after
6765         pass "avr-fuse-move" instead of after "peephole2".
6766         (avr_chunk, avr_byte, avr_word, avr_int8, avr_uint8, avr_int16)
6767         (avr_uint16, output_reload_in_const): Functions are no more static.
6768         (avr_out_set_some, avr_set_some_operation): New functions.
6769         (ashrqi3_out, ashlqi3_out) [offset=7]: Handle "r,r,C07" alternative.
6770         (avr_out_insert_notbit): Comment also allows QImode.
6771         (avr_adjust_insn_length) [ADJUST_LEN_SET_SOME]: Handle case.
6772         * config/avr/avr.md (adjust_len) <set_some>: New attribute value.
6773         (set_some): New insn.
6774         (andqi3, *andqi3): Add "r,r,Cb1" alternative.
6775         (ashrqi3, *ashrqi3 ashlqi3, *ashlqi3): Add a "r,r,C07" alternative.
6776         (gen_move_clobbercc_scratch): New emit helper.
6777         * config/avr/constraints.md (Cb1): New constraint.
6778         * config/avr/predicates.md (dreg_or_0_operand, set_some_operation): New.
6779         * config/avr/avr-log.cc (avr_forward_to_printf): New static func.
6780         (avr_log_vadump): Use it to recognize more formats.
6782 2024-11-18  Richard Biener  <rguenther@suse.de>
6784         PR tree-optimization/117594
6785         * tree-vect-loop.cc (vectorizable_live_operation_1): Pass
6786         factor == 1 to vect_get_loop_len, insert generated stmts.
6788 2024-11-18  Jeff Law  <jlaw@ventanamicro.com>
6790         PR target/117595
6791         * config/riscv/sync.md (atomic_compare_and_swap<mode>): Use gen_lowpart
6792         rather than simplify_gen_subreg.
6793         * config/riscv/riscv.cc (riscv_legitimize_move): Similarly.
6795 2024-11-18  Georg-Johann Lay  <avr@gjlay.de>
6797         PR target/117659
6798         * config/avr/avr.cc (avr_out_ashlpsi3) [case 16]: Use %A1 as
6799         input (instead of bogus %A0).
6801 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6803         * config/riscv/autovec.md: Add VLS modes.
6804         * config/riscv/vector-iterators.md: Ditto.
6805         * config/riscv/vector.md: Ditto.
6807 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6809         PR middle-end/115336
6810         PR middle-end/116059
6811         * config/riscv/autovec.md: Add else operand.
6812         * config/riscv/predicates.md (maskload_else_operand): New
6813         predicate.
6814         * config/riscv/riscv-v.cc (get_else_operand): Remove static.
6815         (expand_load_store): Use get_else_operand and adjust index.
6816         (expand_gather_scatter): Ditto.
6817         (expand_lanes_load_store): Ditto.
6819 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6821         * config/i386/sse.md (maskload<mode><sseintvecmodelower>):
6822         Call maskload<mode>..._1.
6823         (maskload<mode><sseintvecmodelower>_1): Rename.
6825 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6827         * config/gcn/predicates.md (maskload_else_operand): New
6828         predicate.
6829         * config/gcn/gcn-valu.md: Use new predicate.
6831 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6833         * config/aarch64/aarch64-sve-builtins-base.cc: Add else
6834         handling.
6835         * config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn):
6836         Ditto.
6837         * config/aarch64/aarch64-sve-builtins.h: Add else operand to
6838         contiguous load.
6839         * config/aarch64/aarch64-sve.md (@aarch64_load<SVE_PRED_LOAD:pred_load>
6840         _<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
6841         Split and add else operand.
6842         (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
6843         Ditto.
6844         (*aarch64_load_<ANY_EXTEND:optab>_mov<SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
6845         Ditto.
6846         * config/aarch64/aarch64-sve2.md: Ditto.
6847         * config/aarch64/iterators.md: Remove unused iterators.
6848         * config/aarch64/predicates.md (aarch64_maskload_else_operand):
6849         Add zero else operand.
6851 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6853         * optabs-query.cc (supports_vec_convert_optab_p): Return icode.
6854         (get_supported_else_val): Return supported else value for
6855         optab's operand at index.
6856         (supports_vec_gather_load_p): Add else argument.
6857         (supports_vec_scatter_store_p): Ditto.
6858         * optabs-query.h (supports_vec_gather_load_p): Ditto.
6859         (get_supported_else_val): Ditto.
6860         * optabs-tree.cc (target_supports_mask_load_store_p): Ditto.
6861         (can_vec_mask_load_store_p): Ditto.
6862         (target_supports_len_load_store_p): Ditto.
6863         (get_len_load_store_mode): Ditto.
6864         * optabs-tree.h (target_supports_mask_load_store_p): Ditto.
6865         (can_vec_mask_load_store_p): Ditto.
6866         * tree-vect-data-refs.cc (vect_lanes_optab_supported_p): Ditto.
6867         (vect_gather_scatter_fn_p): Ditto.
6868         (vect_check_gather_scatter): Ditto.
6869         (vect_load_lanes_supported): Ditto.
6870         * tree-vect-patterns.cc (vect_recog_gather_scatter_pattern):
6871         Ditto.
6872         * tree-vect-slp.cc (vect_get_operand_map): Adjust indices for
6873         else operand.
6874         (vect_slp_analyze_node_operations): Skip undefined else operand.
6875         * tree-vect-stmts.cc (exist_non_indexing_operands_for_use_p):
6876         Add else operand handling.
6877         (vect_get_vec_defs_for_operand): Handle undefined else operand.
6878         (check_load_store_for_partial_vectors): Add else argument.
6879         (vect_truncate_gather_scatter_offset): Ditto.
6880         (vect_use_strided_gather_scatters_p): Ditto.
6881         (get_group_load_store_type): Ditto.
6882         (get_load_store_type): Ditto.
6883         (vect_get_mask_load_else): Ditto.
6884         (vect_get_else_val_from_tree): Ditto.
6885         (vect_build_one_gather_load_call): Add zero else operand.
6886         (vectorizable_load): Use else operand.
6887         * tree-vectorizer.h (vect_gather_scatter_fn_p): Add else
6888         argument.
6889         (vect_load_lanes_supported): Ditto.
6890         (vect_get_mask_load_else): Ditto.
6891         (vect_get_else_val_from_tree): Ditto.
6893 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6895         * tree-if-conv.cc (predicate_load_or_store): Add zero else
6896         operand and comment.
6898 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6900         * internal-fn.cc (add_mask_and_len_args): Rename...
6901         (add_mask_else_and_len_args): ...to this and add else handling.
6902         (expand_partial_load_optab_fn): Use adjusted function.
6903         (expand_partial_store_optab_fn): Ditto.
6904         (expand_scatter_store_optab_fn): Ditto.
6905         (expand_gather_load_optab_fn): Ditto.
6906         (internal_fn_len_index): Add else handling.
6907         (internal_fn_else_index): Ditto.
6908         (internal_fn_mask_index): Ditto.
6909         (get_supported_else_vals): New function.
6910         (supported_else_val_p): New function.
6911         (internal_gather_scatter_fn_supported_p): Add else operand.
6912         * internal-fn.h (internal_gather_scatter_fn_supported_p): Define
6913         else constants.
6914         (MASK_LOAD_ELSE_ZERO): Ditto.
6915         (MASK_LOAD_ELSE_M1): Ditto.
6916         (MASK_LOAD_ELSE_UNDEFINED): Ditto.
6917         (get_supported_else_vals): Declare.
6918         (supported_else_val_p): Ditto.
6920 2024-11-18  Robin Dapp  <rdapp@ventanamicro.com>
6922         * doc/md.texi: Document masked load else operand.
6924 2024-11-18  Andrew Pinski  <quic_apinski@quicinc.com>
6926         PR tree-optimization/117646
6927         * match.pd (`max<a,b>==0`): Add casts to `unsigned type`.
6929 2024-11-18  Jeff Law  <jlaw@ventanamicro.com>
6931         * ext-dce.cc (maybe_clear_subreg_promoted_p): New function.
6932         (ext_dce_execute): Call it.
6934 2024-11-18  Maciej W. Rozycki  <macro@orcam.me.uk>
6936         * config/alpha/alpha.md (unaligned_store<mode>): Remove stray
6937         `;;'.
6939 2024-11-18  John David Anglin  <danglin@gcc.gnu.org>
6941         PR target/69374
6942         * doc/install.texi (Specific) <hppa*-hp-hpux11>: Update anchor
6943         and heading to reflect removal of 32-bit hppa support on HP-UX.
6944         Trim 32-bit related text.
6946 2024-11-17  Florian Weimer  <fweimer@redhat.com>
6948         PR c/95445
6949         * doc/invoke.texi: Document -Wdeprecated-non-prototype.
6951 2024-11-17  Jason Merrill  <jason@redhat.com>
6953         * doc/cppopts.texi: Document -fsearch-include-path.
6954         * doc/invoke.texi: Mention it for modules.
6956 2024-11-17  Jan Hubicka  <hubicka@ucw.cz>
6958         * ipa-fnsummary.cc (find_necessary_statements): ASM statements are
6959         necessary.
6961 2024-11-17  Jan Hubicka  <hubicka@ucw.cz>
6963         * ipa-modref.cc (modref_summary::useful_p): const/pure implies
6964         determinism.
6965         (modref_summary_lto::useful_p): Likewise.
6966         (ignore_nondeterminism_p): Add CALLEE_FNTYPE parameter; check for
6967         reproducible/unsequenced
6968         (modref_access_analysis::record_access_p): Use ignore_nondeterminism_p
6969         when handling volatile accesses.
6970         (modref_access_analysis::get_access_for_fnspec): Update.
6971         (modref_access_analysis::process_fnspec): Cleanup handling of NOVOPS.
6972         (modref_access_analysis::analyze_call): Use ignore_nondeterminism_p
6973         when handling asm statements.
6974         (modref_access_analysis::analyze_stmt): Update.
6975         (propagate_unknown_call): Update.
6976         (modref_propagate_in_scc): Update.
6977         (ipa_merge_modref_summary_after_inlining): Update.
6979 2024-11-16  Jan Hubicka  <hubicka@ucw.cz>
6981         * ipa-modref.cc (ipa_modref_callee_reads_no_memory_p): New function.
6982         * ipa-modref.h (ipa_modref_callee_reads_no_memory_p): Declare
6983         * tree-ssa-dce.cc (propagate_necessity): Use it.
6985 2024-11-16  Andrew Pinski  <quic_apinski@quicinc.com>
6987         PR tree-optimization/115275
6988         * match.pd (umax(a,b) ==/!= 0): New pattern.
6990 2024-11-16  Eikansh Gupta  <quic_eikagupt@quicinc.com>
6992         PR tree-optimization/109401
6993         * match.pd (min(a,b) op max(a,b) -> a op b): New pattern.
6995 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
6997         PR target/116781
6998         * config/avr/avr.md (*tablejump_split, *tablejump): Add
6999         operand 2 as a "scratch_operand" instead of a match_dup.
7000         (casesi): Adjust expander operands accordingly.  Use a scratch:HI
7001         when the jump address is not clobbered.  This is the case for a
7002         2-byte PC + has no JMP instruction.  In all the other cases, the
7003         affected operand is REG_Z (reg:HI 30).
7004         (casesi_<mode>_sequence): Adjust matcher to new anatomy.
7005         * config/avr/avr-passes.cc (avr_is_casesi_sequence)
7006         (avr_is_casesi_sequence, avr_optimize_casesi)
7007         (avr_casei_sequence_check_operands): Adjust to new anatomy.
7009 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
7011         PR target/117500
7012         * config/avr/avr.cc (avr_print_operand) [code = 'i']: Use
7013         output_operand_lossage on bad operands instead of fatal_insn.
7015 2024-11-16  Georg-Johann Lay  <avr@gjlay.de>
7017         * config/avr/avr.md: Add a peephole2 that improves bit operations
7018         with a lower register and a constant.
7020 2024-11-16  Gerald Pfeifer  <gerald@pfeifer.com>
7022         PR target/69374
7023         * doc/install.texi (Specific) <hppa*-hp-hpux11>: Remove references
7024         to HP/UX linker patch from 2004 and Binutils 2.14.
7026 2024-11-16  Richard Biener  <rguenther@suse.de>
7028         * params.opt (vect-force-slp): Default to 1.
7030 2024-11-16  Richard Biener  <rguenther@suse.de>
7032         PR tree-optimization/117606
7033         * tree-vect-stmts.cc (get_group_load_store_type): For single
7034         element interleaving also fall back to VMAT_ELEMENTWISE if
7035         a left-over permutation isn't supported.
7037 2024-11-16  Richard Biener  <rguenther@suse.de>
7039         PR tree-optimization/117605
7040         * tree-vect-stmts.cc (get_group_load_store_type): Also
7041         apply group size limit for single-element interleaving
7042         to VMAT_CONTIGUOUS_REVERSE.
7044 2024-11-16  Richard Biener  <rguenther@suse.de>
7046         PR tree-optimization/117558
7047         * tree-vectorizer.h (_loop_vec_info::must_use_partial_vectors_p): New.
7048         (LOOP_VINFO_MUST_USE_PARTIAL_VECTORS_P): Likewise.
7049         * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
7050         must_use_partial_vectors_p.
7051         (vect_determine_partial_vectors_and_peeling): Enforce it.
7052         (vect_analyze_loop_2): Reset before restarting.
7053         * tree-vect-stmts.cc (get_group_load_store_type): When peeling
7054         a single gap iteration cannot be determined safe statically
7055         enforce the use of partial vectors.
7057 2024-11-16  Jan Hubicka  <hubicka@ucw.cz>
7059         PR tree-optimization/109442
7060         * ipa-fnsummary.cc (builtin_unreachable_bb_p): New function.
7061         (guards_builtin_unreachable): New function.
7062         (STMT_NECESSARY): New macro.
7063         (mark_stmt_necessary): New function.
7064         (mark_operand_necessary): New function.
7065         (find_necessary_statements): New function.
7066         (analyze_function_body): Use it.
7068 2024-11-15  Joseph Myers  <josmyers@redhat.com>
7070         * doc/invoke.texi (-std=gnu17, -std=gnu23): Document -std=gnu23 as
7071         default for C code.
7073 2024-11-15  Jennifer Schmitz  <jschmitz@nvidia.com>
7074             Richard Biener  <rguenther@suse.de>
7076         PR tree-optimization/117093
7077         * match.pd: Extend
7078         (bit_insert @0 (BIT_FIELD_REF@2 @1 @rsize @rpos) @ipos) to allow
7079         type differences between @0 and @1 due to view converts.
7081 2024-11-15  John David Anglin  <danglin@gcc.gnu.org>
7083         PR target/117564
7084         * config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.
7086 2024-11-15  Joseph Myers  <josmyers@redhat.com>
7088         PR c/117164
7089         * tree-nested.cc: Include "attribs.h".
7090         (check_for_nested_with_variably_modified): Also return true for
7091         variably modified return type.
7092         (create_nesting_tree): If check_for_nested_with_variably_modified
7093         returns true, also add noclone attribute.
7095 2024-11-15  Richard Biener  <rguenther@suse.de>
7097         * optabs-query.h (get_vcond_icode): Remove.
7098         (get_vcond_eq_icode): Likewise.
7099         * optabs-tree.h (expand_vec_cond_expr_p): Remove code
7100         argument.
7101         * optabs-tree.cc (expand_vec_cond_expr_p): Likewise.
7102         (vcond_icode_p): Remove.
7103         (vcond_eq_icode_p): Likewise.
7104         * optabs.h (can_vcond_compare_p): Remove.
7105         * optabs.cc (can_vcond_compare_p): Likewise.
7107 2024-11-15  Richard Biener  <rguenther@suse.de>
7109         * gimple-isel.cc (gimple_expand_vec_cond_expr): If not
7110         simplifying or lowering, always expand to .VCOND_MASK.
7111         (pass_gimple_isel::execute): Simplify.
7113 2024-11-15  Richard Biener  <rguenther@suse.de>
7115         * tree-vect-generic.cc (expand_vector_comparison): Lower
7116         vector comparisons that we cannot trivially expand.  Remove
7117         code dealing with uses in VEC_COND_EXPRs.
7118         (expand_vector_condition): Lower vector conditions that we
7119         cannot trivially expand.  Remove code dealing with comparison
7120         mask definitions.
7121         (expand_vector_operation): Drop dce_ssa_names.
7122         (expand_vector_operations_1): Likewise.
7124 2024-11-15  Florian Weimer  <fweimer@redhat.com>
7126         * doc/invoke.texi: Document Wmissing-parameter-name.
7128 2024-11-15  Florian Weimer  <fweimer@redhat.com>
7130         * varasm.cc (get_section): Include name of section in
7131         diagnostic messages.
7133 2024-11-15  Jakub Jelinek  <jakub@redhat.com>
7135         * tree-core.h (enum tree_index): Add TI_DFLOAT64X_TYPE.
7136         * tree.h (dfloat64x_type_node): Define.
7137         * tree.cc (build_common_tree_nodes): Initialize dfloat64x_type_node.
7138         * builtin-types.def (BT_DFLOAT64X): New DEF_PRIMITIVE_TYPE.
7139         (BT_FN_DFLOAT64X): New DEF_FUNCTION_TYPE_0.
7140         (BT_FN_DFLOAT64X_CONST_STRING, BT_FN_DFLOAT64X_DFLOAT64X): New
7141         DEF_FUNCTION_TYPE_1.
7142         * builtins.def (BUILT_IN_FABSD64X, BUILT_IN_INFD64X, BUILT_IN_NAND64X,
7143         BUILT_IN_NANSD64X): New builtins.
7144         * builtins.cc (expand_builtin): Handle BUILT_IN_FABSD64X.
7145         (fold_builtin_0): Handle BUILT_IN_INFD64X.
7146         (fold_builtin_1): Handle BUILT_IN_FABSD64X.
7147         * fold-const-call.cc (fold_const_call): Handle CFN_BUILT_IN_NAND64X
7148         and CFN_BUILT_IN_NANSD64X.
7149         * ginclude/float.h (DEC64X_MANT_DIG, DEC64X_MIN_EXP, DEC64X_MAX_EXP,
7150         DEC64X_MAX, DEC64X_EPSILON, DEC64X_MIN, DEC64X_TRUE_MIN,
7151         DEC64X_SNAN): Redefine.
7153 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7155         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the
7156         handlings of vector integer comparison.
7158 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7160         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the
7161         handlings for operators GE/GEU/LE/LEU.
7163 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7165         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refactor the
7166         handlings for operator NE.
7168 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7170         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Refine the
7171         handlings for operators LT and LTU.
7173 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7175         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Remove.
7176         (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/
7177         GT/GTU directly.
7179 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7181         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Emit rtx
7182         comparison for operators LT/UNGE of MODE_VECTOR_FLOAT directly.
7183         (rs6000_emit_vector_compare): Move assertion of no MODE_VECTOR_FLOAT to
7184         function beginning.
7186 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7188         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx
7189         comparison for operators LE/UNGT of MODE_VECTOR_FLOAT directly.
7191 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7193         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare): Emit rtx
7194         comparison for operators NE/UNLE/UNLT of MODE_VECTOR_FLOAT directly.
7196 2024-11-15  Kewen Lin  <linkw@linux.ibm.com>
7198         * config/rs6000/rs6000.cc (rs6000_emit_vector_compare_inner): Move
7199         MODE_VECTOR_FLOAT handlings out.
7200         (rs6000_emit_vector_compare): Emit rtx comparison for operators EQ/GT/
7201         GE/UNORDERED/ORDERED/UNEQ/LTGT of MODE_VECTOR_FLOAT directly, and
7202         adjust one call site of rs6000_emit_vector_compare_inner to
7203         rs6000_emit_vector_compare.
7205 2024-11-14  Jeff Law  <jlaw@ventanamicro.com>
7207         * config/riscv/vector.md (mov<mode> pattern/splitter): Fix type and
7208         other attributes.
7209         (mov<VLS_AVL_REG:mode><P:mode>_lra): Likewise.
7211 2024-11-14  Sam James  <sam@gentoo.org>
7213         * configure: Regenerate.
7215 2024-11-14  Denis Chertykov  <chertykov@gmail.com>
7217         PR rtl-optimization/117191
7218         * lra-spills.cc (spill_pseudos): Mark a CLOBBER insn with pseudo
7219         spilled to memory for removing it later together with LRA temporary
7220         CLOBBER insns.
7222 2024-11-14  Martin Jambor  <mjambor@suse.cz>
7224         PR ipa/114985
7225         * ipa-cp.cc (ipa_vr_intersect_with_arith_jfunc): New function.
7226         (ipa_value_range_from_jfunc): Move the common functionality to the
7227         above new function, adjust the rest so that it works with it well.
7228         (propagate_vr_across_jump_function): Likewise.
7230 2024-11-14  Jan Hubicka  <hubicka@ucw.cz>
7232         * common.opt.urls: Fix.
7234 2024-11-14  Richard Ball  <richard.ball@arm.com>
7235             Yury Khrustalev  <yury.khrustalev@arm.com>
7237         * doc/extend.texi: Add AArch64 docs for indirect_return
7238         attribute.
7240 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7241             Yury Khrustalev  <yury.khrustalev@arm.com>
7243         * config/aarch64/aarch64.cc (aarch64_gnu_attributes): Add
7244         indirect_return.
7245         (aarch64_gen_callee_cookie): Use indirect_return attribute.
7246         (aarch64_callee_indirect_return): New.
7247         (aarch_fun_is_indirect_return): New.
7248         (aarch64_function_ok_for_sibcall): Disallow tail calls if caller
7249         is non-indirect_return but callee is indirect_return.
7250         (aarch64_function_arg): Add indirect_return to cookie.
7251         (aarch64_init_cumulative_args): Record indirect_return in
7252         CUMULATIVE_ARGS.
7253         (aarch64_comp_type_attributes): Check indirect_return attribute.
7254         (aarch64_output_mi_thunk): Add indirect_return to cookie.
7255         * config/aarch64/aarch64.h (CUMULATIVE_ARGS): Add new field
7256         indirect_return.
7257         * config/aarch64/aarch64.md (tlsdesc_small_<mode>): Update.
7258         * config/aarch64/aarch64-opts.h (AARCH64_NUM_ABI_ATTRIBUTES): New.
7259         * config/aarch64/aarch64-protos.h (aarch64_gen_callee_cookie): Update.
7260         * config/arm/aarch-bti-insert.cc (call_needs_bti_j): New.
7261         (rest_of_insert_bti): Use call_needs_bti_j.
7262         * config/arm/aarch-common-protos.h
7263         (aarch_fun_is_indirect_return): New.
7264         * config/arm/arm.cc
7265         (aarch_fun_is_indirect_return): New.
7267 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7269         * config/aarch64/aarch64.cc (GNU_PROPERTY_AARCH64_FEATURE_1_GCS):
7270         Define.
7271         (aarch64_file_end_indicate_exec_stack): Set GCS property bit.
7273 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7275         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Define
7276         macros for GCS.
7278 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7280         * config/aarch64/aarch64.h (STACK_SAVEAREA_MODE): Make space for gcs.
7281         * config/aarch64/aarch64.md (save_stack_nonlocal): New.
7282         (restore_stack_nonlocal): New.
7283         * tree-nested.cc (get_nl_goto_field): Updated.
7285 2024-11-14  Yury Khrustalev  <yury.khrustalev@arm.com>
7287         * config/aarch64/arm_acle.h (__gcspr): New.
7288         (__gcspopm): New.
7289         (__gcsss): New.
7291 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7292             Richard Sandiford  <richard.sandiford@arm.com>
7294         * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins): Add
7295         AARCH64_BUILTIN_GCSPR, AARCH64_BUILTIN_GCSPOPM, AARCH64_BUILTIN_GCSSS.
7296         (aarch64_init_gcs_builtins): New.
7297         (aarch64_general_init_builtins): Call aarch64_init_gcs_builtins.
7298         (aarch64_expand_gcs_builtin): New.
7299         (aarch64_general_expand_builtin): Call aarch64_expand_gcs_builtin.
7301 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7303         * config/aarch64/aarch64.md (aarch64_load_gcspr): New.
7304         (aarch64_gcspopm): New.
7305         (aarch64_gcspopm_xzr): New.
7306         (aarch64_gcsss1): New.
7307         (aarch64_gcsss2): New.
7308         Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
7310 2024-11-14  Yury Khrustalev  <yury.khrustalev@arm.com>
7312         * config/aarch64/arm_acle.h (__chkfeat): New.
7314 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7316         * config/aarch64/aarch64-builtins.cc (enum aarch64_builtins):
7317         Define AARCH64_BUILTIN_CHKFEAT.
7318         (aarch64_general_init_builtins): Handle chkfeat.
7319         (aarch64_general_expand_builtin): Handle chkfeat.
7320         Co-authored-by: Richard Sandiford <richard.sandiford@arm.com>
7322 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7324         * config/aarch64/aarch64.md (aarch64_chkfeat): New.
7326 2024-11-14  Szabolcs Nagy  <szabolcs.nagy@arm.com>
7328         * config/aarch64/aarch64-protos.h (aarch_gcs_enabled): Declare.
7329         * config/aarch64/aarch64.cc (aarch_gcs_enabled): Define.
7330         (aarch_handle_no_branch_protection): Handle gcs.
7331         (aarch_handle_standard_branch_protection): Handle gcs.
7332         (aarch_handle_gcs_protection): New.
7333         * config/aarch64/aarch64.opt: Add aarch_enable_gcs.
7334         * configure: Regenerate.
7335         * configure.ac: Handle gcs in --enable-standard-branch-protection.
7336         * doc/invoke.texi: Document -mbranch-protection=gcs.
7338 2024-11-14  Jan Hubicka  <hubicka@ucw.cz>
7340         PR tree-optimization/117370
7341         * common.opt: Add -fmalloc-dce.
7342         * common.opt.urls: Update.
7343         * doc/invoke.texi: Document it; also add missing -flifetime-dse entry.
7344         * tree-ssa-dce.cc (is_removable_allocation_p): Break out from
7345         ...
7346         (mark_stmt_if_obviously_necessary): ... here; also check that
7347         operator new satisfies gimple_call_from_new_or_delete.
7348         (checks_return_value_of_removable_allocation_p): New Function.
7349         (mark_all_reaching_defs_necessary_1): add missing case for
7350         STRDUP and STRNDUP
7351         (propagate_necessity): Use is_removable_allocation_p and
7352         checks_return_value_of_removable_allocation_p.
7353         (eliminate_unnecessary_stmts): Update conditionals that use
7354         removed allocation; use is_removable_allocation_p.
7356 2024-11-14  Richard Biener  <rguenther@suse.de>
7358         * tree-vect-stmts.cc (get_group_load_store_type): Do not
7359         exempt cpart_size == cnunits from failing.
7361 2024-11-14  Richard Biener  <rguenther@suse.de>
7363         * tree-vect-stmts.cc (get_group_load_store_type): Add missing
7364         braces.
7366 2024-11-14  Martin Jambor  <mjambor@suse.cz>
7368         * ipa-prop.h (ipa_dump_jump_function): Declare.
7369         * ipa-prop.cc (ipa_dump_jump_function): New function.
7370         (ipa_print_node_jump_functions_for_edge): Move printing of
7371         individual jump functions to the new function.
7373 2024-11-14  Martin Jambor  <mjambor@suse.cz>
7375         * ipa-prop.h (ipa_print_constant_value): Declare.
7376         * ipa-prop.cc (ipa_print_constant_value): Make public.
7377         * ipa-cp.cc (print_ipcp_constant_value): Re-add this overloaded
7378         function for printing tree constants.
7380 2024-11-14  Richard Biener  <rguenther@suse.de>
7382         * tree-vect-generic.cc (expand_vector_divmod): Query vector
7383         comparison and vec_cond_mask capability.
7385 2024-11-14  Richard Biener  <rguenther@suse.de>
7387         * tree-vect-stmts.cc (vectorizable_condition): Refactor
7388         target support check.
7390 2024-11-14  Richard Biener  <rguenther@suse.de>
7392         PR tree-optimization/117567
7393         * tree-vect-slp.cc (vect_build_slp_tree_2): Handle not present
7394         lanes when doing re-association.
7396 2024-11-14  Andrew Pinski  <quic_apinski@quicinc.com>
7398         * cfgexpand.cc (add_scope_conflicts): Return right away
7399         if there are only one stack variable.
7401 2024-11-14  Eikansh Gupta  <quic_eikagupt@quicinc.com>
7403         PR tree-optimization/109906
7404         * match.pd (a rrotate (32-b) -> a lrotate b): New pattern
7405         (a lrotate (32-b) -> a rrotate b): New pattern
7407 2024-11-14  Richard Biener  <rguenther@suse.de>
7409         * tree-vect-stmts.cc (get_group_load_store_type): For
7410         VMAT_ELEMENTWISE there's no overrun.
7412 2024-11-14  Richard Biener  <rguenther@suse.de>
7414         PR tree-optimization/117554
7415         * tree-vect-stmts.cc (get_group_load_store_type): We can
7416         use gather/scatter only for a single-lane single element group
7417         access.
7419 2024-11-14  Richard Biener  <rguenther@suse.de>
7421         PR tree-optimization/117559
7422         * tree-vect-slp.cc (vect_mark_slp_stmts): Pass in vinfo,
7423         mark all mask defs of a load/store-lane .MASK_LOAD/STORE
7424         as pure.
7425         (vect_make_slp_decision): Adjust.
7426         (vect_slp_analyze_bb_1): Likewise.
7428 2024-11-14  Richard Biener  <rguenther@suse.de>
7430         PR tree-optimization/117556
7431         PR tree-optimization/117553
7432         * tree-vect-stmts.cc (vect_analyze_stmt): Do not analyze
7433         the SLP load-lanes node for live lanes, but only the
7434         permute node.
7435         (vect_transform_stmt): Likewise for the transform.
7437 2024-11-14  Hongyu Wang  <hongyu.wang@intel.com>
7439         PR target/117495
7440         * config/i386/i386.md (cstorebf4): Use ix86_fp_comparison_operator
7441         and calls ix86_expand_setcc directly.
7443 2024-11-13  Jin Ma  <jinma@linux.alibaba.com>
7445         PR target/116591
7446         * config/riscv/vector.md: Add restriction to call pred_th_whole_mov.
7448 2024-11-13  Richard Sandiford  <richard.sandiford@arm.com>
7450         * config/aarch64/aarch64-protos.h
7451         (aarch64_required_extensions::common_denominator): New member
7452         function.
7453         * config/aarch64/aarch64-sve-builtins-base.def: Remove zero-variant
7454         entry for mmla.
7455         * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): Remove
7456         support for it.
7457         * config/aarch64/aarch64-sve-builtins.cc
7458         (function_builder::add_overloaded): Relax the assert for duplicate
7459         definitions and instead calculate the common denominator of all
7460         requirements.
7462 2024-11-13  Filip Kastl  <fkastl@suse.cz>
7464         PR target/56504
7465         * config/i386/i386-options.cc (ix86_option_override_internal):
7466         Add ix86_veclibabi_type_aocl case.
7467         * config/i386/i386-options.h (ix86_veclibabi_aocl): Add extern
7468         ix86_veclibabi_aocl().
7469         * config/i386/i386-opts.h (enum ix86_veclibabi): Add
7470         ix86_veclibabi_type_aocl into the ix86_veclibabi enum.
7471         * config/i386/i386.cc (ix86_veclibabi_aocl): New function.
7472         * config/i386/i386.opt: Add the 'aocl' type.
7473         * doc/invoke.texi: Document -mveclibabi=aocl.
7475 2024-11-13  John David Anglin  <danglin@gcc.gnu.org>
7477         PR target/117525
7478         * config/pa/pa.md (fix_truncsfsi2): Remove inner `fix:SF`.
7479         (fix_truncdfsi2, fix_truncsfdi2, fix_truncdfdi2,
7480         fixuns_truncsfsi2, fixuns_truncdfsi2, fixuns_truncsfdi2,
7481         fixuns_truncdfdi2): Likewise.
7483 2024-11-13  David Malcolm  <dmalcolm@redhat.com>
7485         * diagnostic-path.cc (diagnostic_event::get_desc): Add param
7486         "ref_pp" and use instead of global_dc.
7487         (class path_label): Likewise, adding field m_ref_pp.
7488         (event_range::event_range): Add param "ref_pp" and pass to
7489         m_path_label.
7490         (path_summary::path_summary): Add param "ref_pp" and pass to
7491         event_range ctor.
7492         (diagnostic_text_output_format::print_path): Pass *pp to
7493         path_summary ctor.
7494         (selftest::test_empty_path): Pass *event_pp to pass_summary ctor.
7495         (selftest::test_intraprocedural_path): Likewise.
7496         (selftest::test_interprocedural_path_1): Likewise.
7497         (selftest::test_interprocedural_path_2): Likewise.
7498         (selftest::test_recursion): Likewise.
7499         (selftest::test_control_flow_1): Likewise.
7500         (selftest::test_control_flow_2): Likewise.
7501         (selftest::test_control_flow_3): Likewise.
7502         (selftest::assert_cfg_edge_path_streq): Likewise.
7503         (selftest::test_control_flow_5): Likewise.
7504         (selftest::test_control_flow_6): Likewise.
7505         * diagnostic-path.h (diagnostic_event::get_desc): Add param
7506         "ref_pp".
7507         * lazy-diagnostic-path.cc (selftest::test_intraprocedural_path):
7508         Pass *event_pp to get_desc.
7509         * simple-diagnostic-path.cc (selftest::test_intraprocedural_path):
7510         Likewise.
7512 2024-11-13  Soumya AR  <soumyaa@nvidia.com>
7514         PR target/57492
7515         * match.pd: Added patterns to fold calls to pow to ldexp and optimize
7516         specific ldexp calls.
7518 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7520         * config/riscv/riscv.cc (add_condition_to_bb): New function.
7521         (dispatch_function_versions): New function.
7522         (get_suffixed_assembler_name): New function.
7523         (make_resolver_func): New function.
7524         (riscv_generate_version_dispatcher_body): New function.
7525         (riscv_get_function_versions_dispatcher): New function.
7526         (TARGET_GENERATE_VERSION_DISPATCHER_BODY): Implement it.
7527         (TARGET_GET_FUNCTION_VERSIONS_DISPATCHER): Implement it.
7529 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7531         * config/riscv/riscv.cc
7532         (riscv_mangle_decl_assembler_name): New function.
7533         (TARGET_MANGLE_DECL_ASSEMBLER_NAME): Define.
7535 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7537         * config/riscv/riscv.cc
7538         (parse_features_for_version): New function.
7539         (compare_fmv_features): New function.
7540         (riscv_compare_version_priority): New function.
7541         (riscv_common_function_versions): New function.
7542         (TARGET_COMPARE_VERSION_PRIORITY): Implement it.
7543         (TARGET_OPTION_FUNCTION_VERSIONS): Implement it.
7545 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7547         * config/riscv/riscv-protos.h
7548         (riscv_process_target_attr): Remove as it is not used.
7549         (riscv_option_valid_version_attribute_p): Declare.
7550         (riscv_process_target_version_attr): Declare.
7551         * config/riscv/riscv-target-attr.cc
7552         (riscv_target_attrs): Renamed from riscv_attributes.
7553         (riscv_target_version_attrs): New attributes for target_version.
7554         (riscv_process_one_target_attr): New arguments to select attrs.
7555         (riscv_process_target_attr): Likewise.
7556         (riscv_option_valid_attribute_p): Likewise.
7557         (riscv_process_target_version_attr): New function.
7558         (riscv_option_valid_version_attribute_p): New function.
7559         * config/riscv/riscv.cc
7560         (TARGET_OPTION_VALID_VERSION_ATTRIBUTE_P): Implement it.
7561         * config/riscv/riscv.h (TARGET_HAS_FMV_TARGET_ATTRIBUTE): Define
7562         it to 0 to use "target_version" for function versioning.
7564 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7566         * common/config/riscv/riscv-common.cc
7567         (RISCV_EXT_BITMASK): New macro.
7568         (struct riscv_ext_bitmask_table_t): New struct.
7569         (riscv_minimal_hwprobe_feature_bits): New function.
7570         * common/config/riscv/riscv-ext-bitmask.def: New file.
7571         * config/riscv/riscv-subset.h (GCC_RISCV_SUBSET_H): Include
7572         riscv-feature-bits.h.
7573         (riscv_minimal_hwprobe_feature_bits): Declare the function.
7574         * config/riscv/riscv-feature-bits.h: New file.
7576 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7578         * config/riscv/riscv-target-attr.cc
7579         (riscv_target_attr_parser::handle_priority): New function.
7580         (riscv_target_attr_parser::update_settings): Update priority
7581         attribute.
7582         * config/riscv/riscv.opt: Add TargetVariable riscv_fmv_priority.
7584 2024-11-13  Yangyu Chen  <cyy@cyyself.name>
7586         * defaults.h (TARGET_CLONES_ATTR_SEPARATOR): Define new macro.
7587         * multiple_target.cc (get_attr_str): Use
7588         TARGET_CLONES_ATTR_SEPARATOR to separate attributes.
7589         (separate_attrs): Likewise.
7590         (expand_target_clones): Likewise.
7591         * attribs.cc (attr_strcmp): Likewise.
7592         (sorted_attr_string): Likewise.
7593         * tree.cc (get_target_clone_attr_len): Likewise.
7594         * config/riscv/riscv.h (TARGET_CLONES_ATTR_SEPARATOR): Define
7595         TARGET_CLONES_ATTR_SEPARATOR for RISC-V.
7596         * doc/tm.texi: Document TARGET_CLONES_ATTR_SEPARATOR.
7597         * doc/tm.texi.in: Likewise.
7599 2024-11-13  Martin Uecker  <uecker@tugraz.at>
7601         PR c/117059
7602         * doc/invoke.texi (Wzero-as-null-pointer-constant): Adapt
7603         description.
7605 2024-11-13  Soumya AR  <soumyaa@nvidia.com>
7607         PR target/111733
7608         * config/aarch64/aarch64-sve.md
7609         (ldexp<mode>3): Added a new pattern to match ldexp calls with scalar
7610         floating modes and expand to the existing pattern for FSCALE.
7611         * config/aarch64/iterators.md:
7612         (SVE_FULL_F_SCALAR): Added an iterator to match all FP SVE modes as well
7613         as their scalar equivalents.
7614         (VPRED): Extended the attribute to handle GPF_HF modes.
7615         * internal-fn.def (LDEXP): Changed macro to incorporate ldexpf16.
7617 2024-11-13  xuli  <xuli1@eswincomputing.com>
7619         PR target/117483
7620         * config/riscv/riscv-vsetvl.cc: Fix bug.
7622 2024-11-13  Co-authored-by: Jeff Law  <jlaw@ventanamicro.com>
7624         * config/riscv/riscv.cc (riscv_rtx_costs): Correct costing of LO_SUM
7625         expressions.
7627 2024-11-13  Hu, Lin1  <lin1.hu@intel.com>
7629         PR target/117418
7630         * config/i386/i386-expand.cc (ix86_expand_builtin): Convert
7631         pointer's mode according to Pmode.
7633 2024-11-13  Jeff Law  <jlaw@ventanamicro.com>
7635         Revert:
7636         2024-11-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
7638         PR rtl-optimization/112398
7639         * simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
7640         Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
7641         when X doesn't have any non-zero bits outside of SUBREG mode.
7643 2024-11-12  Pan Li  <pan2.li@intel.com>
7645         Revert:
7646         2024-10-25  Pan Li  <pan2.li@intel.com>
7648         * match.pd: Remove unsigned branch form 3 for SAT_ADD, and
7649         add simplify to branchless instead.
7651 2024-11-12  David Malcolm  <dmalcolm@redhat.com>
7653         PR bootstrap/117503
7654         * Makefile.in (GCC_FOR_SELFTESTS): Set GCC_COLORS=.
7656 2024-11-12  John David Anglin  <danglin@gcc.gnu.org>
7658         * config/pa/pa.md (decrement_and_branch_until_zero): Fix
7659         constraint.
7661 2024-11-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
7663         * config/aarch64/tuning_models/cortexx925.h (cortexx925_addrcost_table): Remove.
7664         * config/aarch64/tuning_models/neoversen1.h: Use generic_armv8_a_addrcost_table.
7665         * config/aarch64/tuning_models/neoversen2.h (neoversen2_addrcost_table): Remove.
7666         * config/aarch64/tuning_models/neoversen3.h (neoversen3_addrcost_table): Remove.
7667         * config/aarch64/tuning_models/neoversev2.h (neoversev2_addrcost_table): Remove.
7668         * config/aarch64/tuning_models/neoversev3.h (neoversev3_addrcost_table): Remove.
7669         * config/aarch64/tuning_models/neoversev3ae.h (neoversev3ae_addrcost_table): Remove.
7671 2024-11-12  Wilco Dijkstra  <wilco.dijkstra@arm.com>
7673         * config/aarch64/aarch64-fusion-pairs.def (AARCH64_FUSE_BASE): New define.
7674         (AARCH64_FUSE_MOVK): Likewise.
7675         * config/aarch64/tuning_models/a64fx.h: Update.
7676         * config/aarch64/tuning_models/ampere1.h: Likewise.
7677         * config/aarch64/tuning_models/ampere1a.h: Likewise.
7678         * config/aarch64/tuning_models/ampere1b.h: Likewise.
7679         * config/aarch64/tuning_models/cortexa35.h: Likewise.
7680         * config/aarch64/tuning_models/cortexa53.h: Likewise.
7681         * config/aarch64/tuning_models/cortexa57.h: Likewise.
7682         * config/aarch64/tuning_models/cortexa72.h: Likewise.
7683         * config/aarch64/tuning_models/cortexa73.h: Likewise.
7684         * config/aarch64/tuning_models/cortexx925.h: Likewise.
7685         * config/aarch64/tuning_models/exynosm1.h: Likewise.
7686         * config/aarch64/tuning_models/fujitsu_monaka.h: Likewise.
7687         * config/aarch64/tuning_models/generic.h: Likewise.
7688         * config/aarch64/tuning_models/generic_armv8_a.h: Likewise.
7689         * config/aarch64/tuning_models/generic_armv9_a.h: Likewise.
7690         * config/aarch64/tuning_models/neoverse512tvb.h: Likewise.
7691         * config/aarch64/tuning_models/neoversen1.h: Likewise.
7692         * config/aarch64/tuning_models/neoversen2.h: Likewise.
7693         * config/aarch64/tuning_models/neoversen3.h: Likewise.
7694         * config/aarch64/tuning_models/neoversev1.h: Likewise.
7695         * config/aarch64/tuning_models/neoversev2.h: Likewise.
7696         * config/aarch64/tuning_models/neoversev3.h: Likewise.
7697         * config/aarch64/tuning_models/neoversev3ae.h: Likewise.
7698         * config/aarch64/tuning_models/qdf24xx.h: Likewise.
7699         * config/aarch64/tuning_models/saphira.h: Likewise.
7700         * config/aarch64/tuning_models/thunderx2t99.h: Likewise.
7701         * config/aarch64/tuning_models/thunderx3t110.h: Likewise.
7702         * config/aarch64/tuning_models/tsv110.h: Likewise.
7704 2024-11-12  yulong  <shiyulong@iscas.ac.cn>
7706         * config/riscv/riscv.cc (riscv_declare_function_name): Add new
7707         attribute.
7709 2024-11-12  Jeff Law  <jlaw@ventanamicro.com>
7711         * config/riscv/vector.md (pred_mul_plus<mode>_undef): Drop alternatives
7712         where output doesn't have to match input.
7713         (pred_madd<mode>, pred_macc<mode>): Likewise.
7714         (pred_madd<mode>_scalar, pred_macc<mode>_scalar): Likewise.
7715         (pred_madd<mode>_exended_scalar): Likewise.
7716         (pred_macc<mode>_exended_scalar): Likewise.
7717         (pred_minus_mul<mode>_undef): Likewise.
7718         (pred_nmsub<mode>, pred_nmsac<mode>): Likewise.
7719         (pred_nmsub<mode>_scalar, pred_nmsac<mode>_scalar): Likewise.
7720         (pred_nmsub<mode>_exended_scalar): Likewise.
7721         (pred_nmsac<mode>_exended_scalar): Likewise.
7723 2024-11-12  Richard Biener  <rguenther@suse.de>
7725         PR tree-optimization/116973
7726         * tree-vect-slp.cc (vect_lower_load_permutations): Add
7727         force_single_lane parameter.  Disable heuristic that keeps
7728         some load-permutations.
7729         (vect_analyze_slp): Pass force_single_lane to
7730         vect_lower_load_permutations.
7732 2024-11-12  Jeff Law  <jlaw@ventanamicro.com>
7734         * config/c6x/c6x.md (nop, nop_count): Add explicit
7735         "dest_regfile" attribute setting.
7737 2024-11-12  Richard Biener  <rguenther@suse.de>
7739         PR tree-optimization/117417
7740         * tree-ssa-forwprop.cc (pass_forwprop::execute): Avoid
7741         decomposing BIT_FIELD_REF complex load.
7743 2024-11-12  Tejas Belagod  <tejas.belagod@arm.com>
7745         * rtlanal.cc (set_noop_p): Validate subreg constraints before checking
7746         for overlapping regs using simplify_subreg_regno.
7748 2024-11-12  Richard Biener  <rguenther@suse.de>
7750         * config/i386/i386.cc (ix86_vector_costs::finish_cost): Set
7751         m_suggested_epilogue_mode according to X86_TUNE_AVX512_TWO_EPILOGUES.
7752         * config/i386/x86-tune.def (X86_TUNE_AVX512_TWO_EPILOGUES): Add.
7753         Enable for znver4 and znver5.
7755 2024-11-12  Richard Biener  <rguenther@suse.de>
7757         * tree-vectorizer.h (vector_costs::suggested_epilogue_mode): New.
7758         (vector_costs::m_suggested_epilogue_mode): Likewise.
7759         (vector_costs::vector_costs): Initialize m_suggested_epilogue_mode.
7760         * tree-vect-loop.cc (vect_analyze_loop): Honor the target
7761         suggested prefered epilogue mode and support vector epilogues
7762         of vector epilogues if requested.
7764 2024-11-12  Richard Biener  <rguenther@suse.de>
7766         PR tree-optimization/117484
7767         * tree-vect-slp.cc (vect_build_slp_tree_2): Handle gaps in
7768         mask discovery.  Fix condition to release the load permutation.
7769         (vect_lower_load_permutations): Assert we get no load
7770         permutation for the unpermuted node.
7771         * tree-vect-slp-patterns.cc (linear_loads_p): Properly identify
7772         loads (without permutation).
7773         (compatible_complex_nodes_p): Likewise.
7775 2024-11-12  Richard Biener  <rguenther@suse.de>
7777         PR tree-optimization/117502
7778         * tree-vect-stmts.cc (get_group_load_store_type): Also consider
7779         VMAT_STRIDED_SLP when checking to use gather/scatter for
7780         single-element interleaving access.
7781         * tree-vect-loop.cc (update_epilogue_loop_vinfo): STMT_VINFO_STRIDED_P
7782         can be classified as VMAT_GATHER_SCATTER, so update DR_REF for
7783         those as well.
7785 2024-11-12  Soumya AR  <soumyaa@nvidia.com>
7787         * match.pd: Fold logN(x) CMP CST -> x CMP expN(CST)
7788         and expN(x) CMP CST -> x CMP logN(CST)
7790 2024-11-11  Jason Merrill  <jason@redhat.com>
7792         * doc/invoke.texi: Rename -fmodules-ts to -fmodules.
7794 2024-11-11  Jason Merrill  <jason@redhat.com>
7796         * opts.h (cl_deferred_option::value): Change to HOST_WIDE_INT.
7797         (set_option): Change opt_index parm to size_t.
7798         * opts-common.cc (set_option): Likewise.
7800 2024-11-11  Jakub Jelinek  <jakub@redhat.com>
7802         * doc/extend.texi (New/Delete Builtins): Document
7803         __builtin_operator_new and __builtin_operator_delete.
7805 2024-11-11  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
7807         * config/aarch64/aarch64.cc
7808         (aarch64_vfp_is_call_or_return_candidate): use fp registers to
7809         return svmfloat8_t parameters.
7811 2024-11-11  Richard Biener  <rguenther@suse.de>
7813         * tree-vect-slp.cc (arg1_arg3_map): New.
7814         (arg1_arg3_arg4_map): Likewise.
7815         (vect_get_operand_map): Handle IFN_SCATTER_STORE,
7816         IFN_MASK_SCATTER_STORE and IFN_MASK_LEN_SCATTER_STORE.
7817         (vect_build_slp_tree_1): Likewise.
7818         * tree-vect-stmts.cc (vectorizable_store): For SLP masked
7819         gather/scatter record the mask with proper number of copies.
7820         * tree-vect-loop.cc (vectorizable_recurr): Avoid costing
7821         the initial value construction in the prologue twice with SLP.
7823 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7825         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Handle
7826         __ARM_FEATURE_SVE2p1.
7828 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7830         * config/aarch64/aarch64-modes.def (VNx1SI, VNx1DI): New modes.
7831         * config/aarch64/aarch64-sve-builtins-base.cc
7832         (svdup_lane_impl::expand): Update generation of TBL instruction.
7833         (svtbl_impl): Delete.
7834         (svtbl): Use unspec_based_uncond_function instead.
7835         * config/aarch64/aarch64-sve-builtins-functions.h
7836         (permute::fold_permute): Handle trailing immediate arguments.
7837         * config/aarch64/aarch64-sve-builtins-shapes.h (extq): Declare.
7838         (load_gather64_sv_index, load_gather64_sv_offset): Likewise.
7839         (load_gather64_vs_index, load_gather64_vs_offset): Likewise.
7840         (pmov_from_vector, pmov_from_vector_lane, pmov_to_vector_lane)
7841         (reduction_neonq, store_scatter64_index, store_scatter64_offset)
7842         (unary_lane): Likewise.
7843         * config/aarch64/aarch64-sve-builtins-shapes.cc
7844         (load_gather64_sv_base, store_scatter64_base): New classes.
7845         (extq_def, ext): New shape.
7846         (load_gather64_sv_index_def, load_gather64_sv_index): Likewise.
7847         (load_gather64_sv_offset_def, load_gather64_sv_offset): Likewise.
7848         (load_gather64_vs_index_def, load_gather64_vs_index): Likewise.
7849         (load_gather64_vs_offset_def, load_gather64_vs_offset): Likewise.
7850         (pmov_from_vector_def, pmov_from_vector): Likewise.
7851         (pmov_from_vector_lane_def, pmov_from_vector_lane): Likewise.
7852         (pmov_to_vector_lane_def, pmov_to_vector_lane): Likewise.
7853         (reduction_neonq_def, reduction_neonq): Likewise.
7854         (store_scatter64_index_def, store_scatter64_index): Likewise.
7855         (store_scatter64_offset_def, store_scatter64_offset): Likewise.
7856         (unary_lane_def, unary_lane): Likewise.
7857         * config/aarch64/aarch64-sve-builtins-sve2.h (svaddqv, svandqv)
7858         (svdup_laneq, sveorqv, svextq, svld1q_gather, svld1udq, svld1uwq)
7859         (svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv, svminnmqv, svminqv)
7860         (svorqv, svpmov, svpmov_lane, svst1qd, svst1q_scatter, svst1wq)
7861         (svst2q, svst3q, svst4q, svtblq, svtbx, svtbxq, svuzpq1, svuzpq2)
7862         (svzipq1, svzipq2): Declare.
7863         * config/aarch64/aarch64-sve-builtins-sve2.cc (ld1uxq_st1xq_base)
7864         (ld234q_st234q_base, svdup_laneq_impl, svextq_impl): New classes.
7865         (svld1q_gather_impl, svld1uxq_impl, svld234q_impl): Likewise.
7866         (svpmov_impl, svpmov_lane_impl, svst1q_scatter_impl): Likewise.
7867         (svst1xq_impl, svst234q_impl, svuzpq_impl, svzipq_impl): Likewise.
7868         (svaddqv, svandqv, svdup_laneq, sveorqv, svextq, svld1q_gather)
7869         (svld1udq, svld1uwq, svld2q, svld3q, svld4q, svmaxnmqv, svmaxqv)
7870         (svminnmqv, svminqv, svorqv, svpmov, svpmov_lane, svst1qd)
7871         (svst1q_scatter, svst1wq, svst2q, svst3q, svst4q, svtblq, svtbx)
7872         (svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2): New function entries.
7873         * config/aarch64/aarch64-sve-builtins-sve2.def (svaddqv, svandqv)
7874         (svdup_laneq, sveorqv, svextq, svld2q, svld3q, svld4q, svmaxnmqv)
7875         (svmaxqv, svminnmqv, svminqv, svorqv, svpmov, svpmov_lanes, vst2q)
7876         (svst3q, svst4q, svtblq, svtbxq, svuzpq1, svuzpq2, svzipq1, svzipq2)
7877         (svld1q_gather, svld1udq, svld1uwq, svst1dq, svst1q_scatter)
7878         (svst1wq): New function definitions.
7879         * config/aarch64/aarch64-sve-builtins.cc (TYPES_hsd_data)
7880         (hsd_data, s_data): New type lists.
7881         (function_resolver::infer_pointer_type): Give a specific error about
7882         passing a pointer to 8-bit elements to an _index function.
7883         (function_resolver::resolve_sv_displacement): Check whether the
7884         function allows 32-bit bases.
7885         * config/aarch64/iterators.md (UNSPEC_TBLQ, UNSPEC_TBXQ): New unspecs.
7886         (UNSPEC_ADDQV, UNSPEC_ANDQV, UNSPEC_DUPQ, UNSPEC_EORQV, UNSPEC_EXTQ)
7887         (UNSPEC_FADDQV, UNSPEC_FMAXQV, UNSPEC_FMAXNMQV, UNSPEC_FMINQV)
7888         (UNSPEC_FMINNMQV, UNSPEC_LD1_EXTENDQ, UNSPEC_LD1Q_GATHER): Likewise.
7889         (UNSPEC_LDNQ, UNSPEC_ORQV, UNSPEC_PMOV_PACK, UNSPEC_PMOV_PACK_LANE)
7890         (UNSPEC_PMOV_UNPACK, UNSPEC_PMOV_UNPACK_LANE, UNSPEC_SMAXQV): Likewise.
7891         (UNSPEC_SMINQV, UNSPEC_ST1_TRUNCQ, UNSPEC_ST1Q_SCATTER, UNSPEC_STNQ)
7892         (UNSPEC_UMAXQV, UNSPEC_UMINQV, UNSPEC_UZPQ1, UNSPEC_UZPQ2): Likewise.
7893         (UNSPEC_ZIPQ1, UNSPEC_ZIPQ2): Likewise.
7894         (Vtype): Handle single-vector SVE modes.
7895         (Vendreg): Handle SVE structure modes.
7896         (VNxTI, LD1_EXTENDQ_MEM): New mode attributes.
7897         (SVE_PERMUTE, SVE_TBL, SVE_TBX): New int iterators.
7898         (SVE_INT_REDUCTION_128, SVE_FP_REDUCTION_128): Likewise.
7899         (optab): Handle the new SVE2.1 reductions.
7900         (perm_insn): Handle the new SVE2.1 permutations.
7901         * config/aarch64/aarch64-sve.md
7902         (@aarch64_sve_tbl<mode>): Generalize to...
7903         (@aarch64_sve_<SVE_TBL:perm_insn><mode>): ...this.
7904         (@aarch64_sve_<PERMUTE:perm_insn><mode>): Generalize to...
7905         (@aarch64_sve_<SVE_PERMUTE:perm_insn><mode>): ...this.
7906         * config/aarch64/aarch64-sve2.md (@aarch64_pmov_to_<mode>)
7907         (@aarch64_pmov_lane_to_<mode>, @aarch64_pmov_from_<mode>)
7908         (@aarch64_pmov_lane_from_<mode>, @aarch64_sve_ld1_extendq<mode>)
7909         (@aarch64_sve_ldnq<mode>, aarch64_gather_ld1q): New patterns.
7910         (@aarch64_sve_st1_truncq<mode>, @aarch64_sve_stnq<mode>): Likewise.
7911         (aarch64_scatter_st1q, @aarch64_pred_reduc_<optab>_<mode>): Likewise.
7912         (@aarch64_sve_dupq<mode>, @aarch64_sve_extq<mode>): Likewise.
7913         (@aarch64_sve2_tbx<mode>): Generalize to...
7914         (@aarch64_sve_<SVE_TBX:perm_insn><mode>): ...this.
7915         * config/aarch64/aarch64.cc
7916         (aarch64_classify_vector_memory_mode): New function.
7917         (aarch64_regmode_natural_size): Use it.
7918         (aarch64_classify_index): Likewise.
7919         (aarch64_classify_address): Likewise.
7920         (aarch64_print_address_internal): Likewise.
7921         (aarch64_evpc_hvla): New function.
7922         (aarch64_expand_vec_perm_const_1): Use it.
7924 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7926         * config/aarch64/aarch64.h (TARGET_SVE2p1_OR_SME2): New macro.
7927         * config/aarch64/aarch64-early-ra.cc
7928         (is_stride_candidate): Require TARGET_STREAMING_SME2
7929         (early_ra::maybe_convert_to_strided_access): Likewise.
7930         * config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions
7931         that are common to both SVE2p1 and SME2.
7932         * config/aarch64/aarch64-sve.md
7933         (@aarch64_<sur>dot_prod_lane<SVE_FULL_SDI:mode><SVE_FULL_BHI:mode>):
7934         Test TARGET_SVE2p1_OR_SME2 instead of TARGET_STREAMING_SME2.
7935         (@aarch64_sve_<sve_fp_op>vnx4sf): Move TARGET_SVE_BF16 condition
7936         into SVE_BFLOAT_TERNARY_LONG.
7937         (@aarch64_sve_<sve_fp_op>_lanevnx4sf): Likewise
7938         SVE_BFLOAT_TERNARY_LONG_LANE.
7939         * config/aarch64/aarch64-sve2.md
7940         (@aarch64_<LD1_COUNT:optab><mode>): Require TARGET_SVE2p1_OR_SME2
7941         instead of TARGET_STREAMING_SME2.
7942         (@aarch64_<ST1_COUNT:optab><mode>): Likewise.
7943         (@aarch64_sve_ptrue_c<BHSD_BITS>): Likewise.
7944         (@aarch64_sve_pext<BHSD_BITS>): Likewise.
7945         (@aarch64_sve_pext<BHSD_BITS>x2): Likewise.
7946         (@aarch64_sve_cntp_c<BHSD_BITS>): Likewise.
7947         (@aarch64_sve_fclamp<mode>): Likewise.
7948         (*aarch64_sve_fclamp<mode>_x): Likewise.
7949         (<sur>dot_prodvnx4sivnx8hi): Likewise.
7950         (aarch64_sve_fdotvnx4sfvnx8hf): Likewise.
7951         (aarch64_fdot_prod_lanevnx4sfvnx8hf): Likewise.
7952         (@aarch64_sve_while<while_optab_cmp>_b<BHSD_BITS>_x2): Likewise.
7953         (@aarch64_sve_while<while_optab_cmp>_c<BHSD_BITS>): Likewise.
7954         (@aarch64_sve_<optab><VNx8HI_ONLY:mode><VNx8SI_ONLY:mode>): Move
7955         TARGET_STREAMING_SME2 condition into SVE_QCVTxN.
7956         (@aarch64_sve_<sve_int_op><mode>): Likewise
7957         SVE2_INT_SHIFT_IMM_NARROWxN, but also require TARGET_STREAMING_SME2
7958         for the 4-register forms.
7959         * config/aarch64/iterators.md (SVE_BFLOAT_TERNARY_LONG): Require
7960         TARGET_SVE2p1_OR_SME2 rather than TARGET_STREAMING_SME2 for
7961         UNSPEC_BFMLSLB and UNSPEC_BFMLSLT.  Require TARGET_SVE_BF16
7962         for the others.
7963         (SVE_BFLOAT_TERNARY_LONG_LANE): Likewise.
7964         (SVE2_INT_SHIFT_IMM_NARROWxN): Require TARGET_SVE2p1_OR_SME2 for
7965         the interleaving forms and TARGET_STREAMING_SME2 for the rest.
7966         (SVE_QCVTxN): Likewise.
7968 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7970         * config/aarch64/aarch64-option-extensions.def (sve2p1): New extension.
7971         * doc/invoke.texi (sve2p1): Document it.
7972         * config/aarch64/aarch64-sve-builtins-sve2.def: Mark instructions
7973         that are common to both SVE2p1 and SME.
7974         * config/aarch64/aarch64.h (TARGET_SVE2p1): New macro.
7975         (TARGET_SVE2p1_OR_SME): Likewise.
7976         * config/aarch64/aarch64-sve2.md
7977         (@aarch64_sve_psel<BHSD_BITS>): Require TARGET_SVE2p1_OR_SME
7978         instead of TARGET_STREAMING.
7979         (*aarch64_sve_psel<BHSD_BITS>_plus): Likewise.
7980         (@aarch64_sve_<su>clamp<mode>): Likewise.
7981         (*aarch64_sve_<su>clamp<mode>_x): Likewise.
7982         (@aarch64_pred_<optab><mode>): Likewise.
7983         (@cond_<optab><mode>): Likewise.
7985 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7987         * config.gcc (extra_headers): Add arm_private_neon_types.h.
7988         * config/aarch64/arm_private_neon_types.h: New file, split out
7989         from...
7990         * config/aarch64/arm_neon.h: ...here.
7991         * config/aarch64/arm_sve.h: Include arm_private_neon_types.h
7993 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
7995         * config/aarch64/aarch64-modes.def (VNx64BI): New mode.
7996         * config/aarch64/aarch64-protos.h
7997         (aarch64_split_double_move): Generalize to...
7998         (aarch64_split_move): ...this.
7999         * config/aarch64/aarch64-sve-builtins-base.def (svcreate4, svget4)
8000         (svset4, svundef4): Add bool variants.
8001         * config/aarch64/aarch64-sve-builtins.cc (handle_arm_sve_h): Add
8002         svboolx4_t.
8003         * config/aarch64/iterators.md (SVE_STRUCT_BI): New mode iterator.
8004         * config/aarch64/aarch64-sve.md (movvnx32bi): Generalize to...
8005         (mov<SVE_STRUCT_BI:mode>): ...this.
8006         * config/aarch64/aarch64.cc
8007         (pure_scalable_type_info::piece::get_rtx): Allow num_prs to be 4.
8008         (aarch64_classify_vector_mode): Handle VNx64BI.
8009         (aarch64_hard_regno_nregs): Likewise.
8010         (aarch64_class_max_nregs): Likewise.
8011         (aarch64_array_mode): Use VNx64BI for arrays of 4 svbool_ts.
8012         (aarch64_split_double_move): Generalize to...
8013         (aarch64_split_move): ...this.
8014         (aarch64_split_128bit_move): Update call accordingly.
8016 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8018         * config/aarch64/aarch64-sve-builtins-sve2.def: Sort entries
8019         alphabetically.
8020         * config/aarch64/aarch64-sve-builtins-sve2.h: Likewise.
8021         * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
8023 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8025         * config/aarch64/aarch64-sve-builtins-shapes.cc (ext_base): New base
8026         class, extracted from...
8027         (ext_def): ...here.
8029 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8031         * config/aarch64/aarch64-sve-builtins.h
8032         (function_resolver::target_type_restrictions): New enum.
8033         (function_resolver::infer_pointer_type): Add an extra argument
8034         that specifies what the target type can be.
8035         * config/aarch64/aarch64-sve-builtins.cc
8036         (function_resolver::infer_pointer_type): Likewise.
8037         * config/aarch64/aarch64-sve-builtins-shapes.cc
8038         (load_gather_sv_base::get_target_type_restrictions): New virtual
8039         member function.
8040         (load_gather_sv_base::resolve): Use it.  Update call to
8041         infer_pointer_type.
8043 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8045         * config/aarch64/aarch64-sve-builtins-shapes.cc
8046         (store_scatter_base::infer_vector_type): New virtual member function.
8047         (store_scatter_base::resolve): Use it.
8049 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8051         * config/aarch64/aarch64-sve-builtins.h
8052         (function_shape::vector_base_type): New member function.
8053         * config/aarch64/aarch64-sve-builtins.cc
8054         (function_shape::vector_base_type): Likewise.
8055         (function_resolver::resolve_sv_displacement): Use it.
8056         (function_resolver::resolve_gather_address): Likewise.
8058 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8060         * config/aarch64/aarch64-sve.md (@aarch64_sve_tbl<mode>): Wrap
8061         the second operand in braces.
8063 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8065         * config/aarch64/aarch64-sve-builtins.cc (TYPES_all_data): Redefine
8066         in terms of single-size *_data definitions.
8067         (TYPES_bhs_data, TYPES_hs_data, TYPES_sd_data): Likewise.
8068         (TYPES_b_data, TYPES_h_data, TYPES_s_data): New macros.
8070 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8072         * config/aarch64/aarch64.h (TARGET_SME): Expand comment.
8073         (TARGET_STREAMING_SME): Delete.
8074         * config/aarch64/aarch64-sme.md: Use TARGET_STREAMING instead of
8075         TARGET_STREAMING_SME.
8076         * config/aarch64/aarch64-sve2.md: Likewise.
8078 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8080         * config/aarch64/aarch64-sme.md: Use TARGET_STREAMING_SME2
8081         instead of separate TARGET_STREAMING and TARGET_SME2 tests.
8082         * config/aarch64/aarch64-sve2.md: Likewise.
8083         * config/aarch64/iterators.md: Likewise.
8085 2024-11-11  Richard Sandiford  <richard.sandiford@arm.com>
8087         * function.h (push_function_decl, pop_function_decl): Declare.
8088         * function.cc (set_function_decl): New function, extracted from...
8089         (set_cfun): ...here.
8090         (push_function_decl): New function, extracted from...
8091         (push_cfun): ...here.
8092         (pop_cfun_1): New function, extracted from...
8093         (pop_cfun): ...here.
8094         (pop_function_decl): New function.
8096 2024-11-11  Richard Biener  <rguenther@suse.de>
8098         PR tree-optimization/117510
8099         * tree-ssa-loop-unswitch.cc (find_loop_guard): Only check
8100         not skipped blocks for side-effects.
8102 2024-11-11  Pan Li  <pan2.li@intel.com>
8104         * config/riscv/autovec.md: Fix indent format issue.
8106 2024-11-11  Sam James  <sam@gentoo.org>
8108         PR other/116948
8109         * doc/install.texi (Building a native compiler): Document UBSAN_OPTIONS.
8111 2024-11-11  Sam James  <sam@gentoo.org>
8113         PR other/116948
8114         * doc/install.texi (Building a native compiler): Mention bootstrap-ubsan.
8116 2024-11-11  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
8118         * config/xtensa/xtensa.md (*extzvsi-1bit_addsubx):
8119         Add '&' to the destination register constraint to indicate that
8120         it is 'earlyclobber', append '0' to the first source register
8121         constraint to indicate that it can be the same as the destination
8122         register, and change the split condition from 1 to reload_completed
8123         so that the insn will be split only after RA in order to obtain
8124         allocated registers that satisfy the above constraints.
8126 2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
8128         * common/config/i386/cpuinfo.h
8129         (get_intel_cpu): Handle Diamond Rapids.
8130         * common/config/i386/i386-common.cc (processor_name):
8131         Add Diamond Rapids.
8132         (processor_alias_table): Ditto.
8133         * common/config/i386/i386-cpuinfo.h (enum processor_types):
8134         Add INTEL_COREI7_DIAMONDRAPIDS.
8135         * config.gcc: Add -march=diamondrapids.
8136         * config/i386/driver-i386.cc (host_detect_local_cpu): Handle
8137         diamondrapids.
8138         * config/i386/i386-c.cc (ix86_target_macros_internal): Ditto.
8139         * config/i386/i386-options.cc (processor_cost_table): Ditto.
8140         (m_DIAMONDRAPIDS): New.
8141         (m_CORE_AVX512): Add diamondrapids.
8142         * config/i386/i386.h (enum processor_type): Ditto.
8143         * doc/extend.texi: Ditto.
8144         * doc/invoke.texi: Ditto.
8146 2024-11-11  Haochen Jiang  <haochen.jiang@intel.com>
8148         * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model
8149         number for Arrow Lake.
8151 2024-11-11  liuhongt  <hongtao.liu@intel.com>
8153         * config/i386/i386.md (truncsf2bf2): Add !flag_rounding_math
8154         to the condition, require flag_unsafe_math_optimizations when
8155         native instruction is not available.
8156         * config/i386/mmx.md: (truncv2sfv2bf2): Ditto.
8157         (extendv2bfv2sf2): Add !HONOR_NANS (BFmode) to the condition.
8158         * config/i386/sse.md: (truncv4sfv4sf2): Add
8159         !flag_rounding_math to the condition, require
8160         flag_unsafe_math_optimizations when native instruction is not
8161         available.
8162         (truncv8sfv8bf2): Ditto.
8163         (truncv16sfv16bf2): Ditto.
8164         (extendv4bfv4sf2): Add !HONOR_NANS (BFmode) to the condition.
8165         (extendv8bfv8sf2): Ditto.
8166         (extendv16bfv16sf2): Ditto.
8168 2024-11-10  Richard Biener  <rguenther@suse.de>
8170         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Return
8171         zero for the permute nodes part of load-lanes.
8173 2024-11-09  Iain Sandoe  <iain@sandoe.co.uk>
8175         PR target/117478
8176         * config/darwin-driver.cc (darwin_driver_init): Handle ObjC/ObjC++
8177         * config/darwin.opt: Add ObjC/ObjC++ as driver-only options.
8179 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
8181         PR middle-end/117492
8182         * fold-const.cc (fold_binary_loc): Remove `Two consecutive rotates adding up
8183         to the some integer` simplifcation.
8185 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
8187         PR tree-optimization/117496
8188         * tree-ssa-sccvn.cc (insert_predicates_for_cond): If the
8189         valueization for the new lhs is the same as the old one,
8190         don't recurse.
8192 2024-11-09  Andrew Pinski  <quic_apinski@quicinc.com>
8194         * tree-ssa-sccvn.cc (visit_phi): Swap the operands
8195         before calling vn_nary_op_lookup_pieces if
8196         tree_swap_operands_p returns true.
8197         (insert_predicates_for_cond): Use tree_swap_operands_p
8198         instead of checking for CONSTANT_CLASS_P.
8199         (process_bb): Swap the comparison and operands
8200         if tree_swap_operands_p returns true.
8202 2024-11-09  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
8204         PR target/117408
8205         * config/arm/arm-mve-builtins.cc(handle_arm_mve_h): Detect if MVE
8206         types is missing and if so, return error.
8208 2024-11-09  Jakub Jelinek  <jakub@redhat.com>
8210         * trans-mem.cc (expand_assign_tm): Don't take address
8211         of empty CONSTRUCTOR, instead use BUILT_IN_TM_MEMSET
8212         to clear lhs in that case.  Formatting fixes.
8214 2024-11-09  Andi Kleen  <ak@gcc.gnu.org>
8216         * config/i386/gcc-auto-profile: Regenerate.
8218 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
8220         PR target/117238
8221         * config/pa/pa64-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
8222         mode size 32.
8224 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
8226         * config/pa/predicates.md (base14_operand): Use '&' operator
8227         instead of '%' to check displacement alignment.
8229 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
8231         PR target/117238
8232         * config/pa/pa32-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
8233         mode size 32.  Limit mode size 16 in general registers to
8234         complex modes.
8236 2024-11-08  John David Anglin  <danglin@gcc.gnu.org>
8238         PR target/117443
8239         * config/pa/pa.cc (pa_legitimate_address_p): Allow any
8240         14-bit displacement when reload is in progress and strict
8241         is false.
8243 2024-11-08  Andre Simoes Dias Vieira  <andre.simoesdiasvieira@arm.com>
8245         PR target/116444
8246         * config/arm/arm.cc (arm_noce_conversion_profitable_p): Call
8247         default_noce_conversion_profitable_p when not dealing with the
8248         armv8.1-m.main special case.
8249         (arm_is_vsel_fp_insn): New function.
8251 2024-11-08  Victor Do Nascimento  <victor.donascimento@arm.com>
8253         * config/aarch64/aarch64-cores.def (cortex-a520ae,
8254         cortex-a720ae, cortex-r82ae): Define new entries.
8255         * config/aarch64/aarch64-tune.md: Regenerate.
8256         * doc/invoke.texi: Document A520AE, A720AE and R82AE CPUs.
8258 2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
8260         * config/aarch64/aarch64-sve2.md (@aarch64_sve_psel<BHSD_BITS>)
8261         (*aarch64_sve_psel<BHSD_BITS>_plus): Require TARGET_STREAMING
8262         rather than TARGET_STREAMING_SME2.
8264 2024-11-07  Richard Sandiford  <richard.sandiford@arm.com>
8266         * config/aarch64/aarch64-sve2.md (@aarch64_sve_fclamp<mode>)
8267         (*aarch64_sve_fclamp<mode>_x): Require TARGET_STREAMING_SME2
8268         rather than TARGET_STREAMING_SME.
8270 2024-11-07  David Faust  <david.faust@oracle.com>
8272         PR target/117447
8273         * config/bpf/btfext-out.cc (btf_ext_output): Bail if TU CTFC is null.
8275 2024-11-07  David Faust  <david.faust@oracle.com>
8277         * btfout.cc (btf_finalize): Check that hash maps are non-null before
8278         emptying them.
8280 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
8282         PR tree-optimization/85605
8283         * tree-ssa-ifcombine.cc (can_combine_bbs_with_short_circuit): New function.
8284         (ifcombine_ifandif): Use can_combine_bbs_with_short_circuit
8285         instead of checking if iterator is one before the last statement.
8287 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
8289         PR tree-optimization/117414
8290         * tree-ssa-sccvn.cc (process_bb): Lookup
8291         `val != 0` if got back a ssa name when looking the comparison.
8293 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
8295         PR tree-optimization/117414
8296         * tree-ssa-sccvn.cc (insert_predicates_for_cond): Handle `(A CMP B) !=/== 0`.
8298 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
8300         PR tree-optimization/117414
8301         * tree-ssa-sccvn.cc (insert_predicates_for_cond): Canonicalize the comparison.
8302         Don't insert anything if lhs is not a SSA_NAME. Handle `(a | b) !=/== 0`.
8304 2024-11-07  Andrew Pinski  <quic_apinski@quicinc.com>
8306         * tree-ssa-sccvn.cc (insert_predicates_for_cond): New function, factored out from ...
8307         (process_bb): Here.
8309 2024-11-07  Richard Biener  <rguenther@suse.de>
8311         * tree-vect-data-refs.cc (vect_check_gather_scatter): Refuse
8312         to analyze DR_REF if from an epilogue that's not first.
8313         * tree-vect-loop.cc (update_epilogue_loop_vinfo): Add comment
8314         how the substitution in DR_REF is broken.
8316 2024-11-07  Richard Biener  <rguenther@suse.de>
8318         * tree-vectorizer.h (_loop_vec_info::main_loop_info): New.
8319         (LOOP_VINFO_MAIN_LOOP_INFO): Likewise.
8320         (_loop_vec_info::epilogue_vinfo): Change from epilogue_vinfos
8321         from array to single element.
8322         * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
8323         main_loop_info and epilogue_vinfo.  Remove epilogue_vinfos
8324         allocation.
8325         (_loop_vec_info::~_loop_vec_info): Do not release epilogue_vinfos.
8326         (vect_create_loop_vinfo): Rename parameter, set
8327         LOOP_VINFO_MAIN_LOOP_INFO.
8328         (vect_analyze_loop_1): Rename parameter.
8329         (vect_analyze_loop_costing): Properly distinguish between
8330         the main vector loop and the preceeding epilogue.
8331         (vect_analyze_loop): Change for epilogue_vinfos no longer
8332         being a vector.
8333         * tree-vect-loop-manip.cc (vect_do_peeling): Simplify and
8334         thereby handle a vector epilogue of a vector epilogue.
8336 2024-11-07  Richard Biener  <rguenther@suse.de>
8338         * tree-vectorizer.h (_loop_vec_info::drs_advanced_by): New.
8339         (LOOP_VINFO_DRS_ADVANCED_BY): Likewise.
8340         * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Initialize
8341         drs_advanced_by.
8342         (update_epilogue_loop_vinfo): Remember the DR advancement made.
8343         (vect_transform_loop): Accumulate past advancements.
8345 2024-11-07  Richard Biener  <rguenther@suse.de>
8347         * tree-vect-loop.cc (vect_analyze_loop_2): Move
8348         vect_analyze_loop_costing after check whether we can do
8349         peeling.  Add check on LOOP_VINFO_PEELING_FOR_GAPS for
8350         epilogues.
8352 2024-11-07  Pan Li  <pan2.li@intel.com>
8353             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
8355         * doc/md.texi: Add doc for mask_len_stried_load{store}.
8357 2024-11-07  Richard Biener  <rguenther@suse.de>
8359         PR rtl-optimization/117467
8360         * timevar.def (TV_EXT_DCE): New.
8361         * ext-dce.cc (pass_data_ext_dce): Use TV_EXT_DCE.
8363 2024-11-07  Hongyu Wang  <hongyu.wang@intel.com>
8365         * config/i386/i386.md (cstorebf4): Use vcomsbf16 under
8366         TARGET_AVX10_2_256 and -fno-trapping-math.
8367         (cbranchbf4): Adjust formatting.
8369 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8371         * tree-ssa-ifcombine.cc
8372         (ifcombine_rewrite_to_defined_overflow): New.
8373         (ifcombine_replace_cond): Reject conds that would require
8374         moving too many stmts.  Reset flow sensitive info and avoid
8375         undefined behavior in moved stmts.  Reset flow sensitive info
8376         in all inner blocks when the outer condition changes, and
8377         avoid undefined behavior whenever the outer condition becomes
8378         laxer, adapted and moved from...
8379         (pass_tree_ifcombine::execute): ... here.
8381 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8383         * tree-ssa-ifcombine.cc (ifcombine_replace_cond): Support
8384         TRUTH_ANDIF cond exprs.
8386 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8388         * tree-ssa-ifcombine.cc (recognize_if_then_else): Support
8389         relaxed then/else testing; require nondegenerate condition
8390         otherwise.
8391         (tree_ssa_ifcombine_bb_1): Add outer_succ_bb parm, use it
8392         instead of inner_cond_bb.  Adjust callers.
8393         (tree_ssa_ifcombine_bb): Loop over dominating outer blocks
8394         eligible for ifcombine.
8395         (pass_tree_ifcombine::execute): Noted potential need for
8396         changes to the post-combine logic.
8398 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8400         * tree-ssa-ifcombine.cc: Include bitmap.h.
8401         (ifcombine_mark_ssa_name): New.
8402         (struct ifcombine_mark_ssa_name_t): New.
8403         (ifcombine_mark_ssa_name_walk): New.
8404         (ifcombine_replace_cond): Prepare to handle noncontiguous and
8405         split-condition ifcombine.
8407 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8409         * tree-ssa-ifcombine.cc (known_succ_p): New.
8410         (update_profile_after_ifcombine): Handle noncontiguous blocks.
8412 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8414         * tree-ssa-ifcombine.cc (ifcombine_replace_cond): Factor out
8415         of...
8416         (ifcombine_ifandif): ... this.  Leave it for the above to
8417         gimplify and invert the condition.
8419 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8421         * tree-ssa-ifcombine.cc (ifcombine_ifandif): Drop redundant
8422         result_inv parm.  Adjust all callers.
8424 2024-11-07  Alexandre Oliva  <oliva@adacore.com>
8426         * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Allow vuses,
8427         but not vdefs.
8429 2024-11-07  xuli  <xuli1@eswincomputing.com>
8431         * match.pd: Add the form1 of signed imm .SAT_ADD matching.
8432         * tree-ssa-math-opts.cc (match_saturation_add): Add fold
8433         convert for const_int to the type of operand 0.
8435 2024-11-06  Alexey Merzlyakov  <alexey.merzlyakov@samsung.com>
8437         PR rtl-optimization/112398
8438         * simplify-rtx.cc (simplify_context::simplify_unary_operation_1):
8439         Simplify ZERO_EXTEND (SUBREG (NOT X)) to XOR (X, GET_MODE_MASK(SUBREG))
8440         when X doesn't have any non-zero bits outside of SUBREG mode.
8442 2024-11-06  Iain Sandoe  <iain@sandoe.co.uk>
8444         * config/darwin.cc (cdtor_record): Make position unsigned.
8446 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
8448         * omp-general.cc (omp_max_vf): Cast the constant to poly_uint64.
8450 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
8452         * internal-fn.cc (expand_GOMP_MAX_VF): New function.
8453         * internal-fn.def (GOMP_MAX_VF): New internal function.
8454         * omp-expand.cc (omp_adjust_chunk_size): Emit IFN_GOMP_MAX_VF when
8455         called in offload context, otherwise assume host context.
8456         * omp-offload.cc (execute_omp_device_lower): Expand IFN_GOMP_MAX_VF.
8458 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
8460         * omp-expand.cc (is_in_offload_region): New function.
8461         (omp_adjust_chunk_size): Add pass-through "offload" parameter.
8462         (get_ws_args_for): Likewise.
8463         (determine_parallel_type): Use is_in_offload_region to adjust call to
8464         get_ws_args_for.
8465         (expand_omp_for_generic): Likewise.
8466         (expand_omp_for_static_chunk): Likewise.
8468 2024-11-06  Andrew Stubbs  <ams@baylibre.com>
8470         * gimple-loop-versioning.cc (loop_versioning::loop_versioning): Set
8471         omp_max_vf to offload == false.
8472         * omp-expand.cc (omp_adjust_chunk_size): Likewise.
8473         * omp-general.cc (omp_max_vf): Add "offload" parameter, and detect
8474         amdgcn offload devices.
8475         * omp-general.h (omp_max_vf): Likewise.
8476         * omp-low.cc (lower_rec_simd_input_clauses): Pass offload state to
8477         omp_max_vf.
8479 2024-11-06  Andrew MacLeod  <amacleod@redhat.com>
8481         * tree-assume.cc (assume_query::assume_query): Add debug output.
8482         (assume_query::update_parms): Likewise.
8483         (assume_query::calculate_phi): Likewise.
8484         (assume_query::calculate_op): Likewise.  Also pick up any
8485         merged path values.
8486         (assume_query::calculate_stmt): Likewise.
8488 2024-11-06  David Malcolm  <dmalcolm@redhat.com>
8490         * diagnostic.h (class diagnostic_context): Fix typo in leading
8491         comment.
8493 2024-11-06  Michal Jires  <mjires@suse.cz>
8495         * ipa-prop.cc (write_ipcp_transformation_info): Disable
8496         uneeded value propagation.
8497         * lto-cgraph.cc (lto_symtab_encoder_encode): Default values.
8498         (lto_symtab_encoder_always_inlined_p): New.
8499         (lto_set_symtab_encoder_not_always_inlined): New.
8500         (add_node_to): Set always inlined.
8501         * lto-streamer.h (struct lto_encoder_entry): New field.
8502         (lto_symtab_encoder_always_inlined_p): New.
8504 2024-11-06  Jakub Jelinek  <jakub@redhat.com>
8506         PR tree-optimization/117439
8507         * gimple-ssa-store-merging.cc
8508         (imm_store_chain_info::coalesce_immediate_stores): Punt if merging of
8509         any of the additional overlapping stores would result in growing the
8510         bitregion size over param_store_merging_max_size.
8511         (pass_store_merging::process_store): Terminate all aliasing chains
8512         for stores with bitregion larger than param_store_merging_max_size.
8514 2024-11-06  Jakub Jelinek  <jakub@redhat.com>
8516         PR tree-optimization/117439
8517         * gimple-ssa-store-merging.cc (encode_tree_to_bitpos): For
8518         empty_ctor_p use !sub_byte_op_p even if bitlen doesn't have an
8519         integral mode.
8521 2024-11-06  Hu, Lin1  <lin1.hu@intel.com>
8523         PR target/117304
8524         * config/i386/i386-builtin.def: Add OPTION_MASK_ISA2_EVEX512 for some
8525         AVX512 512-bits instructions.
8527 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
8529         * match.pd (X != 0 ? X + ~0 : 0): Fix comment.
8531 2024-11-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
8533         PR target/117449
8534         * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
8535         Match only when can_create_pseudo_p ().
8536         * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Assume
8537         can_create_pseudo_p ().
8539 2024-11-05  liuhongt  <hongtao.liu@intel.com>
8541         * config/i386/i386-expand.cc
8542         (ix86_expand_vector_bf2sf_with_vec_perm): New function.
8543         * config/i386/i386-protos.h
8544         (ix86_expand_vector_bf2sf_with_vec_perm): New Declare.
8545         * config/i386/mmx.md (extendv2bfv2sf2): New expander.
8546         * config/i386/sse.md (extend<sf_cvt_bf16_lower><mode>2):
8547         Ditto.
8548         (VF1_AVX512BW): New mode iterator.
8549         (sf_cvt_bf16): Add V4SF.
8550         (sf_cvt_bf16_lower): New mode attr.
8552 2024-11-05  liuhongt  <hongtao.liu@intel.com>
8554         * config/i386/i386-expand.cc
8555         (ix86_expand_vector_sf2bf_with_vec_perm): New function.
8556         * config/i386/i386-protos.h
8557         (ix86_expand_vector_sf2bf_with_vec_perm): New declare.
8558         * config/i386/mmx.md (truncv2sfv2bf2): New expander.
8559         * config/i386/sse.md (truncv4sfv4bf2): Ditto.
8560         (truncv8sfv8bf2): Ditto.
8561         (truncv16sfv16bf2): Ditto.
8563 2024-11-05  Hu, Lin1  <lin1.hu@intel.com>
8565         PR target/117416
8566         * config/i386/i386-expand.cc (ix86_expand_builtin): Raise warning when
8567         op1 isn't in range of [0, 2] and set op1 as const0_rtx, and raise
8568         warning when op3 isn't in range of [0, 1].
8570 2024-11-05  Richard Biener  <rguenther@suse.de>
8572         PR middle-end/117433
8573         * cfgexpand.cc (expand_gimple_stmt_1): Use emit_block_move
8574         when moving temp to BLKmode target.
8576 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
8578         * config/aarch64/aarch64-passes.def: Don't add pass_tag_collision_avoidance.
8579         * config/aarch64/aarch64-protos.h (make_pass_tag_collision_avoidance): Remove.
8580         * config/aarch64/aarch64-tuning-flags.def (RENAME_LOAD_REGS): Remove.
8581         * config/aarch64/tuning_models/qdf24xx.h (qdf24xx_tunings): Set tuning flags to
8582         AARCH64_EXTRA_TUNE_NONE.
8583         * config/aarch64/falkor-tag-collision-avoidance.cc: Removed.
8584         * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): Remove.
8585         * config.gcc (aarch64*-*-*): Remove falkor-tag-collision-avoidance.o from extra_objs.
8587 2024-11-05  Andrew Pinski  <quic_apinski@quicinc.com>
8589         * config/aarch64/aarch64-cores.def (falkor): Use cortex-a57 scheduler.
8590         (saphira): Likewise.
8591         * config/aarch64/aarch64.md: Don't include falkor.md and saphira.md.
8592         * config/aarch64/falkor.md: Removed.
8593         * config/aarch64/saphira.md: Removed.
8595 2024-11-05  Levy Hsu  <admin@levyhsu.com>
8597         * config/i386/i386-expand.cc (ix86_expand_branch): Handle BFmode
8598         when TARGET_AVX10_2_256 is enabled.
8599         (ix86_prepare_fp_compare_args): Use SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P.
8600         (ix86_expand_fp_movcc): Ditto.
8601         (ix86_expand_fp_compare): Handle BFmode under IX86_FPCMP_COMI.
8602         * config/i386/i386.cc (ix86_multiplication_cost): Use
8603         SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P.
8604         (ix86_division_cost): Ditto.
8605         (ix86_rtx_costs): Ditto.
8606         (ix86_vector_costs::add_stmt_cost): Ditto.
8607         * config/i386/i386.h (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Rename to ...
8608         (SSE_FLOAT_MODE_SSEMATH_OR_HFBF_P): ...this, and add BFmode.
8609         * config/i386/i386.md (*cmpibf): New define_insn.
8611 2024-11-05  Mark Harmstone  <mark@harmstone.com>
8613         * dwarf2codeview.cc (get_type_num_typedef): New function.
8614         (get_type_num): Call get_type_num_typedef.
8615         * dwarf2codeview.h (T_HRESULT): Define.
8617 2024-11-05  Mark Harmstone  <mark@harmstone.com>
8619         * dwarf2codeview.cc (struct codeview_custom_type): Add new fields to
8620         lf_pointer struct in union.
8621         (write_lf_pointer): Write containing_class and ptr_to_mem_type if
8622         applicable.
8623         (get_type_num_subroutine_type): Write correct containing_class_type if
8624         this is a pointer to a member function.
8625         (get_type_num_ptr_to_member_type): New function.
8626         (get_type_num): Call get_type_num_ptr_to_member_type.
8627         * dwarf2codeview.h (CV_PTR_MODE_MASK, CV_PTR_MODE_PMEM): Define.
8628         (CV_PTR_MODE_PMFUNC, CV_PMTYPE_D_Single, CV_PMTYPE_F_Single): Likewise.
8630 2024-11-05  Mark Harmstone  <mark@harmstone.com>
8632         * dwarf2codeview.cc (enum cv_leaf_type): Add LF_BCLASS.
8633         (struct codeview_subtype): Add lf_bclass to union.
8634         (write_cv_padding): Add declaration.
8635         (write_lf_fieldlist): Handle LF_BCLASS records.
8636         (add_struct_inheritance): New function.
8637         (get_type_num_struct): Call add_struct_inheritance.
8639 2024-11-04  Craig Blackmore  <craig.blackmore@embecosm.com>
8641         * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
8642         New function.
8643         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
8645 2024-11-04  Craig Blackmore  <craig.blackmore@embecosm.com>
8647         * config/riscv/riscv-string.cc
8648         (use_vector_stringop_p): Add comment.
8649         (expand_vec_setmem): Use use_vector_stringop_p instead of
8650         check_vectorise_memory_operation.
8652 2024-11-04  David Malcolm  <dmalcolm@redhat.com>
8654         * diagnostic.h (class diagnostic_context): Update leading comment.
8656 2024-11-04  David Malcolm  <dmalcolm@redhat.com>
8658         * opts-diagnostic.cc: Apply renamings throughout for clarity: from
8659         "name" and "format_name" to "scheme_name", from "m_format" to
8660         "m_scheme_name", and from "handler" to "scheme_handler".
8661         (output_factory::scheme_handler::get_handler): Pass name by const
8662         reference.
8664 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8666         PR target/117048
8667         * simplify-rtx.cc (extract_ashift_operands_p): Define.
8668         (simplify_rotate_op): Likewise.
8669         (simplify_context::simplify_binary_operation_1): Use the above in
8670         the PLUS, IOR, XOR cases.
8671         (test_vector_rotate): Define.
8672         (test_vector_ops): Use the above.
8674 2024-11-04  Antoni Boucher  <bouanto@zoho.com>
8676         PR target/116725
8677         * config/i386/sse.md: Fix asm generation.
8679 2024-11-04  Andrew MacLeod  <amacleod@redhat.com>
8681         PR tree-optimization/117398
8682         * gimple-range-edge.cc (gimple_outgoing_range::calc_switch_ranges):
8683         Check for VARYING and don't call invert () on it.
8685 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8687         Revert:
8688         2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8690         PR target/117048
8691         * simplify-rtx.cc (extract_ashift_operands_p): Define.
8692         (simplify_rotate_op): Likewise.
8693         (simplify_context::simplify_binary_operation_1): Use the above in
8694         the PLUS, IOR, XOR cases.
8695         (test_vector_rotate): Define.
8696         (test_vector_ops): Use the above.
8698 2024-11-04  Richard Sandiford  <richard.sandiford@arm.com>
8700         * doc/invoke.texi: Fix documentation of LS64 so that it's
8701         not implied by Armv8.7-A or Armv9.2-A.
8703 2024-11-04  Yuta Mukai  <mukai.yuta@fujitsu.com>
8705         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add fujitsu-monaka.
8706         * config/aarch64/aarch64-tune.md: Regenerate.
8707         * config/aarch64/aarch64.cc: Include fujitsu-monaka tuning model.
8708         * doc/invoke.texi: Document -mcpu=fujitsu-monaka.
8709         * config/aarch64/tuning_models/fujitsu_monaka.h: New file.
8711 2024-11-04  Richard Biener  <rguenther@suse.de>
8713         * tree-vect-loop.cc (update_epilogue_loop_vinfo): Update
8714         DR inits after adjusting the epilog metadata.
8716 2024-11-04  Richard Biener  <rguenther@suse.de>
8718         * tree-vect-loop.cc (update_epilogue_loop_vinfo): A DRs
8719         main stmt vinfo dr_aux should refer to a pattern stmt
8720         which is how move_dr sets this up.  We shouldn't undo this.
8722 2024-11-04  Richard Biener  <rguenther@suse.de>
8724         * tree-vect-loop.cc (vect_analyze_loop): Move lowest_th
8725         compute until after epilogue_vinfos is final.
8727 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8729         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
8730         Simplify (rotate:HI x:HI, 8) -> (bswap:HI x:HI).
8732 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8734         * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Add
8735         generation of XAR sequences when possible.
8737 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8739         * expmed.h (expand_rotate_as_vec_perm): Declare.
8740         * expmed.cc (expand_rotate_as_vec_perm): Define.
8741         * config/aarch64/aarch64-protos.h (aarch64_emit_opt_vec_rotate):
8742         Declare prototype.
8743         * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Implement.
8744         * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
8745         Call the above.
8747 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8749         PR target/117048
8750         * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
8751         New define_insn_and_split.
8753 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8755         * config/aarch64/iterators.md (SVE_ASIMD_FULL_I): New mode iterator.
8756         * config/aarch64/aarch64-sve2.md (@aarch64_sve2_xar<mode>):
8757         Use SVE_ASIMD_FULL_I modes.  Use ROTATE code for the rotate step.
8758         Adjust output logic.
8759         * config/aarch64/aarch64-sve-builtins-sve2.cc (svxar_impl): Define.
8760         (svxar): Use the above.
8762 2024-11-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
8764         PR target/117048
8765         * simplify-rtx.cc (extract_ashift_operands_p): Define.
8766         (simplify_rotate_op): Likewise.
8767         (simplify_context::simplify_binary_operation_1): Use the above in
8768         the PLUS, IOR, XOR cases.
8769         (test_vector_rotate): Define.
8770         (test_vector_ops): Use the above.
8772 2024-11-03  Andrew Pinski  <quic_apinski@quicinc.com>
8774         PR middle-end/115023
8775         * doc/extend.texi (__builtin_assoc_barrier): Document ffp-contract=fast
8776         and FMA usage.
8778 2024-11-03  Andrew Pinski  <quic_apinski@quicinc.com>
8780         PR tree-optimization/117363
8781         * match.pd (`a != 0 ? a - 1 : 0`): Fix type handling
8782         and nop_convert handling.
8784 2024-11-02  Jakub Jelinek  <jakub@redhat.com>
8786         PR middle-end/117384
8787         * gimplify.cc (gimplify_init_ctor_eval): Add VIEW_CONVERT_EXPR around
8788         rctor if it doesn't have expected type.
8790 2024-11-02  Jeff Law  <jlaw@ventanamicro.com>
8792         * config/ft32/ft32.cc (ft32_lra_p): Remove.
8793         (TARGET_LRA_P): Likewise.
8794         * config/ft32/ft32.opt: Make -mlra ignored.
8795         * doc/invoke.texi: Adjust documentation for -mlra on ft32.
8797 2024-11-01  Jakub Jelinek  <jakub@redhat.com>
8799         PR bootstrap/117407
8800         * builtins.cc (expand_builtin_prefetch): Use !IN_RANGE rather
8801         than IN_RANGE.
8803 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
8805         * range-op.cc (operator_bitwise_or::op1_range): If LHS is signed
8806         positive, so are both operands.
8808 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
8810         PR tree-optimization/117287
8811         * Makefile.in (IBJS): Add tree-assume.o
8812         * gimple-range.cc (assume_query::assume_range_p): Remove.
8813         (assume_query::range_of_expr): Remove.
8814         (assume_query::assume_query): Move to tree-assume.cc.
8815         (assume_query::~assume_query): Remove.
8816         (assume_query::calculate_op): Move to tree-assume.cc.
8817         (assume_query::calculate_phi): Likewise.
8818         (assume_query::check_taken_edge): Remove.
8819         (assume_query::calculate_stmt): Move to tree-assume.cc.
8820         (assume_query::dump): Remove.
8821         * gimple-range.h (class assume_query): Move to tree-assume.cc
8822         * tree-assume.cc: New
8823         * tree-vrp.cc (struct pass_data_assumptions): Move to tree-assume.cc.
8824         (class pass_assumptions): Likewise.
8825         (make_pass_assumptions): Likewise.
8827 2024-11-01  Andrew MacLeod  <amacleod@redhat.com>
8829         * gimple-range-fold.cc (class fur_edge): Relocate from here.
8830         (fur_edge::fur_edge): Also move to:
8831         * gimple-range-fold.h (class fur_edge): Relocate to here.
8832         (fur_edge::fur_edge): Likewise.
8834 2024-11-01  Jakub Jelinek  <jakub@redhat.com>
8836         * doc/standards.texi (C++ Language): Mention also the 2024
8837         revision and -std=gnu++23 option.
8838         * doc/invoke.texi (-std=): Adjust description of c++23, c++2b,
8839         gnu++23 and gnu++2b now that ISO C++ 14882:2024 is published.
8841 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
8843         * builtins.cc (expand_builtin_prefetch): Use IN_RANGE to
8844         avoid second usage of INTVAL.
8846 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
8848         * config/i386/cmpccxaddintrin.h (_cmpccxadd_epi32): Do not do
8849         type conversion for pointer.
8850         (_cmpccxadd_epi64): Ditto.
8852 2024-11-01  Xi Ruoyao  <xry111@xry111.site>
8854         PR target/116887
8855         * varasm.cc (default_section_type_flags): Always set
8856         SECTION_RELRO if name is .data.rel.ro{,.local}.
8858 2024-11-01  David Malcolm  <dmalcolm@redhat.com>
8860         PR bootstrap/117361
8861         * Makefile.in (GCC_FOR_SELFTESTS): New.
8863 2024-11-01  Hu, Lin1  <lin1.hu@intel.com>
8865         * common/config/i386/cpuinfo.h (get_available_features):
8866         Detect AMX-MOVRS.
8867         * common/config/i386/i386-common.cc
8868         (OPTION_MASK_ISA2_AMX_MOVRS_SET): New.
8869         (OPTION_MASK_ISA2_AMX_MOVRS_UNSET): Ditto.
8870         (ix86_handle_option): Handle -mamx-movrs.
8871         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8872         Add FEATURE_AMX_MOVRS.
8873         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8874         amx-movrs.
8875         * config.gcc: Add amxmovrsintrin.h.
8876         * config/i386/cpuid.h (bit_AMX_MOVRS): New.
8877         * config/i386/i386-c.cc (ix86_target_macros_internal):
8878         Define __AMX_MOVRS__.
8879         * config/i386/i386-isa.def (AMX_MOVRS): Add DEF_PTA(AMX_MOVRS).
8880         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
8881         Handle amx-movrs.
8882         * config/i386/i386.opt: Add option -mamx-movrs.
8883         * config/i386/i386.opt.urls: Regenerated.
8884         * config/i386/immintrin.h: Include amxmovrsintrin.h
8885         * doc/extend.texi: Document amx-movrs.
8886         * doc/invoke.texi: Document -mamx-movrs.
8887         * doc/sourcebuild.texi: Document target amx-movrs.
8888         * config/i386/amxmovrsintrin.h: New file.
8890 2024-11-01  Hu, Lin1  <lin1.hu@intel.com>
8891             Haochen Jiang  <haochen.jiang@intel.com>
8893         * builtins.cc (expand_builtin_prefetch): Expand for
8894         prefetchrst2.
8895         * common/config/i386/cpuinfo.h (get_available_features): Detect movrs.
8896         * common/config/i386/i386-common.cc
8897         (OPTION_MASK_ISA2_MOVRS_SET): New.
8898         (OPTION_MASK_ISA2_MOVRS_UNSET): Ditto.
8899         (ix86_handle_option): Handle -mmovrs.
8900         * common/config/i386/i386-cpuinfo.h
8901         (enum processor_features): Add FEATURE_MOVRS.
8902         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for movrs.
8903         * config.gcc: Add movrsintrin.h
8904         * config/i386/cpuid.h (bit_MOVRS): New.
8905         * config/i386/i386-builtin-types.def:
8906         Add DEF_FUNCTION_TYPE (CHAR, PCCHAR), (SHORT, PCSHORT), (INT, PCINT),
8907         (INT64, PCINT64).
8908         * config/i386/i386-builtin.def (BDESC): Add new builtins.
8909         * config/i386/i386-c.cc (ix86_target_macros_internal): Add
8910         __MOVRS__.
8911         * config/i386/i386-expand.cc (ix86_expand_special_args_builtin): Define
8912         __MOVRS__.
8913         * config/i386/i386-isa.def (MOVRS): Add DEF_PTA(MOVRS)
8914         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
8915         Handle movrs.
8916         * config/i386/i386.md (movrs<mode>): New.
8917         * config/i386/i386.opt: Add option -mmovrs.
8918         * config/i386/i386.opt.urls: Regenerated.
8919         * config/i386/immintrin.h: Include movrsintrin.h
8920         * config/i386/sse.md (unspecv): Add UNSPEC_VMOVRS.
8921         (VI1248_AVX10_2): New.
8922         (avx10_2_movrs_vmovrs<ssemodesuffix><mode><mask_name>): New define_insn.
8923         * config/i386/xmmintrin.h: Add prefetchrst2.
8924         * doc/extend.texi: Document movrs.
8925         * doc/invoke.texi: Document -mmovrs.
8926         * doc/rtl.texi: Document extension of prefetchrst2.
8927         * doc/sourcebuild.texi: Document target movrs.
8928         * config/i386/movrsintrin.h: New.
8930 2024-11-01  Liwei Xu  <liwei.xu@intel.com>
8931             Hu, Lin1  <lin1.hu@intel.com>
8933         * common/config/i386/cpuinfo.h
8934         (get_available_features): Detect amx-fp8.
8935         * common/config/i386/i386-common.cc
8936         (OPTION_MASK_ISA2_AMX_FP8_SET): New macros.
8937         (OPTION_MASK_ISA2_AMX_FP8_UNSET): Ditto.
8938         (ix86_handle_option): Handle -mamx-fp8.
8939         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8940         Add FEATURE_AMX_FP8.
8941         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for amx-fp8.
8942         * config.gcc: Add amxfp8intrin.h.
8943         * config/i386/cpuid.h (bit_AMX_FP8): New.
8944         * config/i386/i386-c.cc (ix86_target_macros_internal):
8945         Define __AMX_FP8__.
8946         * config/i386/i386-isa.def (AMX_FP8): Add DEF_PTA for AMX_FP8.
8947         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
8948         Add new ATTR.
8949         * config/i386/i386.opt: Add -mamx-fp8.
8950         * config/i386/i386.opt.urls: Regenerated.
8951         * config/i386/immintrin.h: Include amxfp8intrin.h.
8952         * doc/extend.texi: Document -mamx-fp8.
8953         * doc/invoke.texi: Document -mamx-fp8.
8954         * doc/sourcebuild.texi: Document -mamx-fp8.
8955         * config/i386/amxfp8intrin.h: New file.
8957 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
8959         * common/config/i386/cpuinfo.h (get_available_features):
8960         Detect AMX-TRANSPOSE.
8961         * common/config/i386/i386-common.cc
8962         (OPTION_MASK_ISA2_AMX_TRANSPOSE_SET,
8963         OPTION_MASK_ISA2_AMX_TRANSPOSE_UNSET): New.
8964         (ix86_handle_option): Handle -mamx-transpose.
8965         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8966         Add FEATURE_AMX_TRANSPOSE.
8967         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8968         amx-transpose.
8969         * config.gcc: Add amxtransposeintrin.h.
8970         * config/i386/cpuid.h (bit_AMX_TRANSPOSE): New.
8971         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
8972         __AMX_TRANSPOSE__.
8973         * config/i386/i386-isa.def (AMX_TRANSPOSE): Add
8974         DEF_PTA(AMX_TRANSPOSE).
8975         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
8976         Handle amx-transpose.
8977         * config/i386/i386.opt: Add option -mamx-transpose.
8978         * config/i386/i386.opt.urls: Regenerated.
8979         * config/i386/immintrin.h: Include amxtransposeintrin.h.
8980         * doc/extend.texi: Document amx-transpose.
8981         * doc/invoke.texi: Document -mamx-transpose.
8982         * doc/sourcebuild.texi: Document target amx-transpose.
8983         * config/i386/amxtransposeintrin.h: New file.
8985 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
8987         * common/config/i386/cpuinfo.h (get_available_features):
8988         Detect AMX-TF32.
8989         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_TF32_SET,
8990         OPTION_MASK_ISA2_AMX_TF32_UNSET): New.
8991         (ix86_handle_option): Handle -mamx-tf32.
8992         * common/config/i386/i386-cpuinfo.h (enum processor_features):
8993         Add FEATURE_AMX_TF32.
8994         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
8995         amx-tf32.
8996         * config.gcc: Add amxtf32intrin.h
8997         * config/i386/cpuid.h (bit_AMX_TF32): New.
8998         * config/i386/i386-c.cc (ix86_target_macros_internal): Handle amx-tf32.
8999         * config/i386/i386-isa.def (AMX_TF32): Add DEF_PTA(AMX_TF32).
9000         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
9001         Handle amx-tf32.
9002         * config/i386/i386.opt: Add option -mamx-tf32.
9003         * config/i386/i386.opt.urls: Regenerated.
9004         * config/i386/immintrin.h: Include amxtf32intrin.h.
9005         * doc/extend.texi: Document amx-tf32.
9006         * doc/invoke.texi: Document -mamx-tf32.
9007         * doc/sourcebuild.texi: Document target amx-tf32.
9008         * config/i386/amxtf32intrin.h: New file.
9010 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
9011             Yu, Bing  <bing1.yu@intel.com>
9013         * common/config/i386/cpuinfo.h (get_available_features):
9014         Detect AMX-AVX512.
9015         * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AMX_AVX512_SET,
9016         OPTION_MASK_ISA2_AMX_AVX512_UNSET): New.
9017         (ix86_handle_option): Handle -mamx-avx512.
9018         * common/config/i386/i386-cpuinfo.h (enum processor_features):
9019         Add FEATURE_AMX_AVX512.
9020         * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
9021         amx-avx512.
9022         * config.gcc: Add amxavx512intrin.h
9023         * config/i386/cpuid.h (bit_AMX_AVX512): New.
9024         * config/i386/i386-c.cc (ix86_target_macros_internal):
9025         Handle amx-avx512.
9026         * config/i386/i386-isa.def (AMX_AVX512): Add DEF_PTA(AMX_AVX512).
9027         * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
9028         Handle amx-avx512.
9029         * config/i386/i386.opt: Add option -mamx-avx512.
9030         * config/i386/i386.opt.urls: Regenerated.
9031         * config/i386/immintrin.h: Include amxavx512intrin.h
9032         * doc/extend.texi: Document amx-avx512.
9033         * doc/invoke.texi: Document -mamx-avx512.
9034         * doc/sourcebuild.texi: Document target amx-avx512.
9035         * config/i386/amxavx512intrin.h: New file.
9037 2024-11-01  Haochen Jiang  <haochen.jiang@intel.com>
9039         * config/i386/i386-builtin-types.def:
9040         Add DEF_FUNCTION_TYPE (V16SI, V16SI, V16SI).
9041         * config/i386/i386-builtin.def (BDESC): Add new builtins.
9042         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
9043         V16SI_FTYPE_V16SI_V16SI.
9044         * config/i386/sm4intrin.h: Add zmm insns.
9045         * config/i386/sse.md (vsm4key4_<mode>): Add EVEX pattern.
9046         (vsm4rnds4_<mode>): Ditto.
9048 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
9050         * config/aarch64/aarch64-sve-builtins-base.cc (svmax, svamin): Move
9051         definitions to...
9052         * config/aarch64/aarch64-sve-builtins-sve2.cc: ...here.
9053         * config/aarch64/aarch64-sve-builtins-base.def (svmax, svamin): Move
9054         definitions to...
9055         * config/aarch64/aarch64-sve-builtins-sve2.def: ...here.  Require
9056         SME2 in streaming mode.
9058 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
9060         * config.gcc (aarch64*-*-*): Add aarch64-protos.h to target_gtfiles.
9061         * config/aarch64/aarch64-protos.h
9062         (aarch64_required_extensions): New structure.
9063         (aarch64_check_required_extensions): Change the type of the
9064         required_extensions parameter from aarch64_feature_flags to
9065         aarch64_required_extensions.
9066         * config/aarch64/aarch64-sve-builtins.h
9067         (function_builder::add_unique_function): Likewise.
9068         (function_builder::add_overloaded_function): Likewise.
9069         (function_builder::get_attributes): Likewise.
9070         (function_builder::add_function): Likewise.
9071         (function_group_info): Change the type of required_extensions
9072         in the same way.
9073         * config/aarch64/aarch64-builtins.cc
9074         (aarch64_pragma_builtins_data::required_extensions): Change the type
9075         from aarch64_feature_flags to aarch64_required_extensions.
9076         (aarch64_check_required_extensions): Likewise change the type
9077         of the required_extensions parameter.  Separate the requirements
9078         for non-streaming mode and streaming mode, ORing them together
9079         for streaming-compatible mode.
9080         (aarch64_general_required_extensions): New function.
9081         (aarch64_general_check_builtin_call): Use it.
9082         * config/aarch64/aarch64-sve-builtins.cc
9083         (registered_function::required_extensions): Change the type
9084         from aarch64_feature_flags to aarch64_required_extensions.
9085         (DEF_NEON_SVE_FUNCTION, DEF_SME_ZA_FUNCTION_GS): Update accordingly.
9086         (function_builder::get_attributes): Change the type of the
9087         required_extensions parameter from aarch64_feature_flags to
9088         aarch64_required_extensions.
9089         (function_builder::add_function): Likewise.
9090         (function_builder::add_unique_function): Likewise.
9091         (function_builder::add_overloaded_function): Likewise.
9092         * config/aarch64/aarch64-simd-pragma-builtins.def: Update
9093         REQUIRED_EXTENSIONS definitions to use aarch64_required_extensions.
9094         * config/aarch64/aarch64-sve-builtins-base.def: Likewise.
9095         * config/aarch64/aarch64-sve-builtins-sme.def: Likewise.
9096         * config/aarch64/aarch64-sve-builtins-sve2.def: Likewise.
9098 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
9100         * config/aarch64/aarch64-builtins.cc (ENTRY): Remove the features
9101         argument and get the features from REQUIRED_EXTENSIONS instead.
9102         (ENTRY_VHSDF): Move definition to...
9103         * config/aarch64/aarch64-simd-pragma-builtins.def: ...here.
9104         Move the architecture requirements to REQUIRED_EXTENSIONS.
9106 2024-10-31  Richard Sandiford  <richard.sandiford@arm.com>
9108         * config/aarch64/aarch64-sve-builtins-base.def (svtrn1q, svtrn2q)
9109         (svuzp1q, svuzp2q, svzip1q, svzip2q): Require SM_OFF.
9111 2024-10-31  Andi Kleen  <ak@gcc.gnu.org>
9113         * config.in: Regenerate.
9114         * configure: Regenerate.
9115         * configure.ac: Check for HAVE_CLOCK_GETTIME.
9116         * timevar.cc (get_time): Use HAVE_CLOCK_GETTIME.
9118 2024-10-31  Vineet Gupta  <vineetg@rivosinc.com>
9120         * config/riscv/riscv-v.cc (expand_const_vector): Use IOR op.
9122 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
9124         * Makefile.in (OBJS): Add lazy-diagnostic-path.o.
9125         * lazy-diagnostic-path.cc: New file.
9126         * lazy-diagnostic-path.h: New file.
9127         * selftest-diagnostic.cc: Include "diagnostic-format.h".
9128         (test_diagnostic_context::test_diagnostic_context): Turn off
9129         flushing for the output format's printer.
9130         * selftest-run-tests.cc (selftest::run_tests): Call
9131         selftest::lazy_diagnostic_path_cc_tests.
9132         * selftest.h (selftest::lazy_diagnostic_path_cc_tests): New decl.
9134 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
9136         * opts-diagnostic.cc (output_factory::handler::handler): Use
9137         std::move on name.
9139 2024-10-31  David Malcolm  <dmalcolm@redhat.com>
9141         * diagnostic.cc (diagnostic_context::finish): Delete and reset
9142         m_option_mgr.
9144 2024-10-31  Tamar Christina  <tamar.christina@arm.com>
9146         PR tree-optimization/117176
9147         * tree-vect-patterns.cc (vect_recog_gcond_pattern): Lower all gconds.
9148         * tree-vect-slp.cc (vect_analyze_slp): No longer check for in vect def.
9150 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
9152         * config/riscv/riscv.cc (riscv_can_inline_p): Refuse to inline
9153         when callee is versioned but caller is not.
9155 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
9157         * config/riscv/riscv-protos.h (riscv_process_target_attr): New.
9158         * config/riscv/riscv-target-attr.cc (riscv_process_target_attr):
9159         Split into two functions with const char *args argument
9161 2024-10-31  Jakub Jelinek  <jakub@redhat.com>
9163         PR middle-end/117354
9164         * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Pass
9165         true as inner_reference_p argument to expand_expr_real if
9166         mode is BLKmode.  Don't call extract_bit_field if mode is BLKmode.
9168 2024-10-31  Yangyu Chen  <cyy@cyyself.name>
9170         * config/riscv/predicates.md: Use flag_plt instead of TARGET_PLT.
9171         * config/riscv/riscv.opt: alias common option fplt to mplt.
9173 2024-10-31  Jakub Jelinek  <jakub@redhat.com>
9175         * tree.cc (valid_new_delete_pair_p): Fix up duplicate "or  or"
9176         in comment.
9178 2024-10-31  Andrew Pinski  <quic_apinski@quicinc.com>
9180         PR middle-end/114785
9181         PR middle-end/116949
9182         * gimple-match-exports.cc (maybe_push_res_to_seq): Remove special
9183         handling of COMPARISON_CLASS_P in COND_EXPR/VEC_COND_EXPR.
9184         (gimple_extract): Likewise.
9185         * gimple-walk.cc (walk_stmt_load_store_addr_ops): Likewise.
9186         * gimple.cc (gimple_build_assign_1): Add assert for COND_EXPR
9187         so its 1st operand is not a comparison.
9189 2024-10-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
9191         * tree-vectorizer.cc (pass_vectorize::execute): Reset dont_vectorize
9192         to scalar loop when setting IFN_LOOP_VECTORIZED to false.
9194 2024-10-30  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
9196         * params.opt: Adjust param_vect_max_version_for_alias_checks
9198 2024-10-30  Joseph Myers  <josmyers@redhat.com>
9200         * doc/cpp.texi (__STDC_VERSION__): Do not refer to C23 support as
9201         experimental.
9202         * doc/invoke.texi (std=c23, std=gnu23): Do not document as
9203         experimental and incomplete.
9204         * doc/standards.texi: Do not refer to C23 support as experimental
9205         and incomplete.
9207 2024-10-30  Andi Kleen  <ak@gcc.gnu.org>
9209         * timevar.cc (struct tms): Remove.
9210         (RUSAGE_SELF): Remove.
9211         (TICKS_PER_SECOND): Remove.
9212         (USE_TIMES): Remove.
9213         (HAVE_USER_TIME): Remove.
9214         (HAVE_SYS_TIME): Remove.
9215         (HAVE_WALL_TIME): Remove.
9216         (USE_GETRUSAGE): Remove.
9217         (USE_CLOCK): Remove.
9218         (NANOSEC_PER_SEC): Remove.
9219         (TICKS_TO_NANOSEC): Remove.
9220         (CLOCKS_TO_NANOSEC): Remove.
9221         (timer::named_items::push): Remove sys/user.
9222         (get_time): Remove clock and times and getruage code.
9223         (timevar_accumulate): Remove sys/user.
9224         (timevar_diff): Dito.
9225         (timer::validate_phases): Dito.
9226         (timer::print_row): Dito.
9227         (timer::all_zero): Dito.
9228         (timer::print): Dito.
9229         (make_json_for_timevar_time_def): Dito.
9230         * timevar.h (struct timevar_time_def): Dito.
9232 2024-10-30  Richard Biener  <rguenther@suse.de>
9234         * tree-vectorizer.h (finish_cost): Inline everywhere and remove.
9235         * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
9236         Inline finish_cost.
9237         * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Likewise.
9239 2024-10-30  Yangyu Chen  <cyy@cyyself.name>
9241         * config/aarch64/aarch64.cc (dispatch_function_versions): Adding
9242         DECL_EXTERNAL, TREE_PUBLIC and hidden DECL_VISIBILITY to
9243         __init_cpu_features_resolver and __aarch64_cpu_features.
9245 2024-10-30  Jeff Law  <jlaw@ventanamicro.com>
9247         * config/riscv/riscv.cc (singleton_vxrm_need): New function.
9248         (riscv_mode_needed): See if there is a singleton need and if so,
9249         claim it happens on the first insn in the chain.
9251 2024-10-30  liuhongt  <hongtao.liu@intel.com>
9253         PR target/117318
9254         * config/i386/sse.md (*avx512vl_<code>v2div2qi2_mask_store_1):
9255         Rename to ..
9256         (avx512vl_<code>v2div2qi2_mask_store_1): .. this.
9257         (avx512vl_<code>v2div2qi2_mask_store_2): Change to
9258         define_expand.
9259         (*avx512vl_<code><mode>v4qi2_mask_store_1): Rename to ..
9260         (avx512vl_<code><mode>v4qi2_mask_store_1): .. this.
9261         (avx512vl_<code><mode>v4qi2_mask_store_2): Change to
9262         define_expand.
9263         (*avx512vl_<code><mode>v8qi2_mask_store_1): Rename to ..
9264         (avx512vl_<code><mode>v8qi2_mask_store_1): .. this.
9265         (avx512vl_<code><mode>v8qi2_mask_store_2): Change to
9266         define_expand.
9267         (*avx512vl_<code><mode>v4hi2_mask_store_1): Rename to ..
9268         (avx512vl_<code><mode>v4hi2_mask_store_1): .. this.
9269         (avx512vl_<code><mode>v4hi2_mask_store_2): Change to
9270         define_expand.
9271         (*avx512vl_<code>v2div2hi2_mask_store_1): Rename to ..
9272         (avx512vl_<code>v2div2hi2_mask_store_1): .. this.
9273         (avx512vl_<code>v2div2hi2_mask_store_2): Change to
9274         define_expand.
9275         (*avx512vl_<code>v2div2si2_mask_store_1): Rename to ..
9276         (avx512vl_<code>v2div2si2_mask_store_1): .. this.
9277         (avx512vl_<code>v2div2si2_mask_store_2): Change to
9278         define_expand.
9279         (*avx512f_<code>v8div16qi2_mask_store_1): Rename to ..
9280         (avx512f_<code>v8div16qi2_mask_store_1): .. this.
9281         (avx512f_<code>v8div16qi2_mask_store_2): Change to
9282         define_expand.
9284 2024-10-30  Christophe Lyon  <christophe.lyon@linaro.org>
9286         * config/arm/arm-builtins.cc (STRS_QUALIFIERS): Delete.
9287         (STRU_QUALIFIERS): Delete.
9288         (STRS_P_QUALIFIERS): Delete.
9289         (STRU_P_QUALIFIERS): Delete.
9290         (LDRS_QUALIFIERS): Delete.
9291         (LDRU_QUALIFIERS): Delete.
9292         (LDRS_Z_QUALIFIERS): Delete.
9293         (LDRU_Z_QUALIFIERS): Delete.
9295 2024-10-30  Richard Biener  <rguenther@suse.de>
9297         * tree-vect-patterns.cc (check_bool_pattern): Remove.
9298         (adjust_bool_pattern_cast): Likewise.
9299         (adjust_bool_pattern): Likewise.
9300         (sort_after_uid): Likewise.
9301         (adjust_bool_stmts): Likewise.
9302         (vect_recog_bool_pattern): Remove calls to check_bool_pattern
9303         and fold as if it returns false.
9305 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
9307         PR target/117296
9308         * function.cc (assign_parms): Call do_pending_stack_adjust.
9310 2024-10-30  Jakub Jelinek  <jakub@redhat.com>
9312         PR middle-end/117348
9313         * genmatch.cc: Replace defined(HAVE_DECL_FMEMOPEN)
9314         test with HAVE_DECL_FMEMOPEN.
9316 2024-10-30  Uros Bizjak  <ubizjak@gmail.com>
9318         * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_TEMP.
9319         * config/i386/i386-expand.cc (ix86_expand_builtin)
9320         <case IX86_BUILTIN_LDMXCSR>: Use assign_stack_temp instead of
9321         assign_386_stack_local with SLOT_TEMP.
9322         <case IX86_BUILTIN_LDMXCSR>: Ditto.
9323         (ix86_expand_divmod_libfunc): Ditto.
9324         * config/i386/i386.md (floatunssi<mode>2): Ditto.
9325         * config/i386/sync.md (atomic_load<mode>): Ditto.
9326         (atomic_store<mode>): Ditto.
9328 2024-10-30  xuli  <xuli1@eswincomputing.com>
9330         * match.pd: Simplify (x != 0 ? x + ~0 : 0) to (x - x != 0).
9332 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
9334         Revert:
9335         2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
9337         PR middle-end/117091
9338         * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
9339         Change clustering algorithm to simple greedy.
9341 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
9343         PR other/116613
9344         * Makefile.in (OBJS-libcommon-target): Add opts-diagnostic.o.
9345         * common.opt (fdiagnostics-add-output=): New.
9346         (fdiagnostics-set-output=): New.
9347         (diagnostics_output_format): Drop sarif-file-2.2-prerelease from
9348         enum.
9349         * common.opt.urls: Regenerate.
9350         * diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer): New.
9351         (diagnostic_buffer::ensure_per_format_buffer): Rename to...
9352         (diagnostic_buffer::ensure_per_format_buffers): ...this.
9353         (diagnostic_buffer::m_per_format_buffer): Replace with...
9354         (diagnostic_buffer::m_per_format_buffers): ...this, updating type.
9355         * diagnostic-format-json.cc (json_output_format::update_printer):
9356         New.
9357         (json_output_format::follows_reference_printer_p): New.
9358         (diagnostic_output_format_init_json): Drop redundant call to
9359         set_path_format, as this is not a text output format.
9360         * diagnostic-format-sarif.cc: Include "diagnostic-format-text.h".
9361         (sarif_builder::set_printer): New.
9362         (sarif_builder::sarif_builder): Add "printer" param and use it for
9363         m_printer.
9364         (sarif_builder::make_location_object::escape_nonascii_renderer::render):
9365         Rather than using dc.m_printer, create a
9366         diagnostic_text_output_format instance and use its printer.
9367         (sarif_output_format::follows_reference_printer_p): New.
9368         (sarif_output_format::update_printer): New.
9369         (sarif_output_format::sarif_output_format): Pass in correct
9370         printer to m_builder's ctor.
9371         (diagnostic_output_format_init_sarif): Drop redundant call to
9372         set_path_format, as this is not a text output format.  Replace
9373         calls to pp_show_color and set_token_printer with call to
9374         update_printer.  Drop redundant call to set_show_highlight_colors,
9375         as this printer does not show colors.
9376         (diagnostic_output_format_init_sarif_file): Split out file opening
9377         into...
9378         (diagnostic_output_format_open_sarif_file): ...this new function.
9379         (make_sarif_sink): New.
9380         (selftest::test_make_location_object): Provide a pp for the
9381         builder.
9382         * diagnostic-format-sarif.h
9383         (diagnostic_output_format_open_sarif_file): New decl.
9384         (make_sarif_sink): New decl.
9385         * diagnostic-format-text.cc (diagnostic_text_output_format::dump):
9386         Dump sm_follows_reference_printer.
9387         (diagnostic_text_output_format::on_report_verbatim): New.
9388         (diagnostic_text_output_format::follows_reference_printer_p): New.
9389         (diagnostic_text_output_format::update_printer): New.
9390         * diagnostic-format-text.h
9391         (diagnostic_text_output_format::diagnostic_text_output_format):
9392         Add optional "follows_reference_printer" param.
9393         (diagnostic_text_output_format::on_report_verbatim): New decl.
9394         (diagnostic_text_output_format::after_diagnostic): Drop "final".
9395         (diagnostic_text_output_format::follows_reference_printer_p): New
9396         decl.
9397         (class diagnostic_text_output_format): Convert private members to
9398         protected.
9399         (diagnostic_text_output_format::m_follows_reference_printer): New
9400         field.
9401         * diagnostic-format.h
9402         (diagnostic_output_format::on_report_verbatim): New vfunc.
9403         (diagnostic_output_format::follows_reference_printer_p): New vfunc.
9404         (diagnostic_output_format::update_printer): New vfunc.
9405         (diagnostic_output_format::get_printer): Use m_printer rather than
9406         a printer from m_context.
9407         (diagnostic_output_format::diagnostic_output_format): Initialize
9408         m_printer by cloning the context's printer.
9409         (diagnostic_output_format::m_printer): New field.
9410         * diagnostic-global-context.cc (verbatim): Reimplement in terms of
9411         global_dc->report_verbatim, moving existing implementation to
9412         diagnostic_text_output_format::on_report_verbatim.
9413         (fnotice): Support multiple output sinks by using a new
9414         global_dc->supports_fnotice_on_stderr_p.
9415         * diagnostic-output-file.h
9416         (diagnostic_output_file::diagnostic_output_file): New default ctor.
9417         (diagnostic_output_file::operator=): Implement move assignment.
9418         * diagnostic-path.cc (selftest::test_interprocedural_path_1): Pass
9419         false for new param of text_output's ctor.
9420         * diagnostic-show-locus.cc
9421         (selftest::test_layout_x_offset_display_utf8): Use reference
9422         printer.
9423         (selftest::test_layout_x_offset_display_tab): Likewise.
9424         (selftest::test_one_liner_fixit_remove): Likewise.
9425         * diagnostic.cc: Include "pretty-print-urlifier.h".
9426         (diagnostic_set_caret_max_width): Update for global_dc's m_printer
9427         becoming reference printer.
9428         (diagnostic_context::initialize): Update for m_printer becoming
9429         m_reference_printer.  Use ::make_unique to create it.  Update for
9430         m_output_format becoming m_output_sinks.
9431         (diagnostic_context::color_init): Update the reference printer,
9432         then update the printers for any output sinks that follow it.
9433         (diagnostic_context::urls_init): Likewise.
9434         (diagnostic_context::finish): Update comment.  Update for
9435         m_output_format becoming m_output_sinks.  Update for m_printer
9436         becoming m_reference_printer and use "delete" on it rather than
9437         XDELETE.
9438         (diagnostic_context::dump): Update for m_printer becoming
9439         reference printer, and for multiple output sinks.
9440         (diagnostic_context::set_output_format): Reimplement for
9441         supporting multiple output sinks.
9442         (diagnostic_context::get_output_format): Likewise.
9443         (diagnostic_context::add_sink): New.
9444         (diagnostic_context::supports_fnotice_on_stderr_p): New.
9445         (diagnostic_context::set_pretty_printer): New.
9446         (diagnostic_context::refresh_output_sinks): New.
9447         (diagnostic_context::set_format_decoder): New.
9448         (diagnostic_context::set_show_highlight_colors): New.
9449         (diagnostic_context::set_prefixing_rule): New.
9450         (diagnostic_context::report_diagnostic): Update to support
9451         multiple output sinks.
9452         (diagnostic_context::report_verbatim): New.
9453         (diagnostic_context::emit_diagram): Update to support multiple
9454         output sinks.
9455         (diagnostic_context::error_recursion): Update to use
9456         m_reference_printer.
9457         (fancy_abort): Likewise.
9458         (diagnostic_context::end_group): Update to support multiple
9459         output sinks.
9460         (diagnostic_output_format::dump): Implement.
9461         (diagnostic_output_format::on_report_verbatim): Likewise.
9462         (diagnostic_output_format_init): Drop
9463         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
9464         (diagnostic_context::set_diagnostic_buffer): Reimplement to
9465         support multiple output sinks.
9466         (diagnostic_context::clear_diagnostic_buffer): Likewise.
9467         (diagnostic_context::flush_diagnostic_buffer): Likewise.
9468         (diagnostic_buffer::diagnostic_buffer): Initialize
9469         m_per_format_buffers.
9470         (diagnostic_buffer::~diagnostic_buffer): New dtor.
9471         (diagnostic_buffer::dump): Reimplement to support multiple output
9472         sinks.
9473         (diagnostic_buffer::empty_p): Likewise.
9474         (diagnostic_buffer::move_to): Likewise.
9475         (diagnostic_buffer::ensure_per_format_buffer): Likewise, renaming
9476         to...
9477         (diagnostic_buffer::ensure_per_format_buffers): ...this.
9478         * diagnostic.h
9479         (DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE): Delete.
9480         (class diagnostic_context): Add friend class diagnostic_buffer.
9481         (diagnostic_context::set_pretty_printer): New decl.
9482         (diagnostic_context::refresh_output_sinks): New decl.
9483         (diagnostic_context::report_verbatim): New decl.
9484         (diagnostic_context::get_output_format): Drop.
9485         (diagnostic_context::set_show_highlight_colors): Drop body.
9486         (diagnostic_context::set_format_decoder): New decl.
9487         (diagnostic_context::set_prefixing_rule): New decl.
9488         (diagnostic_context::clone_printer): Reimplement.
9489         (diagnostic_context::get_reference_printer): New accessor.
9490         (diagnostic_context::add_sink): New decl.
9491         (diagnostic_context::supports_fnotice_on_stderr_p): New decl.
9492         (diagnostic_context::m_printer): Replace with...
9493         (diagnostic_context::m_reference_printer): ...this, and make
9494         private.
9495         (diagnostic_context::m_output_format): Replace with...
9496         (diagnostic_context::m_output_sinks): ...this.
9497         (diagnostic_format_decoder): Delete.
9498         (diagnostic_prefixing_rule): Delete.
9499         (diagnostic_ready_p): Delete.
9500         * doc/invoke.texi: Document -fdiagnostics-add-output= and
9501         -fdiagnostics-set-output=.
9502         * gcc.cc: Include "opts-diagnostic.h".
9503         (driver_handle_option): Handle cases OPT_fdiagnostics_add_output_
9504         and OPT_fdiagnostics_set_output_.
9505         * opts-diagnostic.cc: New file.
9506         * opts-diagnostic.h (handle_OPT_fdiagnostics_add_output_): New decl.
9507         (handle_OPT_fdiagnostics_set_output_): New decl.
9508         * opts-global.cc (init_options_once): Update for global_dc's
9509         m_printer becoming reference printer.  Call
9510         global_dc->refresh_output_sinks.
9511         * opts.cc (common_handle_option): Replace use of
9512         diagnostic_prefixing_rule with dc->set_prefixing_rule.  Handle
9513         cases OPT_fdiagnostics_add_output_ and
9514         OPT_fdiagnostics_set_output_.  Update for m_printer becoming
9515         reference printer.
9516         * selftest-diagnostic.cc
9517         (selftest::test_diagnostic_context::test_diagnostic_context):
9518         Update for m_printer becoming reference printer.
9519         (test_diagnostic_context::test_show_locus): Likewise.
9520         * selftest-run-tests.cc (selftest::run_tests): Call
9521         selftest::opts_diagnostic_cc_tests.
9522         * selftest.h (selftest::opts_diagnostic_cc_tests): New decl.
9523         * simple-diagnostic-path.cc
9524         (selftest::simple_diagnostic_path_cc_tests): Use reference
9525         printer.
9526         * toplev.cc (announce_function): Update for global_dc's m_printer
9527         becoming reference printer.
9528         (toplev::main): Likewise.
9529         * tree-diagnostic.cc (tree_diagnostics_defaults): Replace use of
9530         diagnostic_format_decoder with context->set_format_decoder.
9531         * tree-diagnostic.h
9532         (tree_dump_pretty_printer::tree_dump_pretty_printer): Update for
9533         global_dc's m_printer becoming reference printer.
9534         * tree.cc (escaped_string::escape): Likewise.
9535         (selftest::test_escaped_strings): Likewise.
9537 2024-10-29  Andrew Pinski  <quic_apinski@quicinc.com>
9539         PR target/117346
9540         * config/aarch64/aarch64.cc (aarch64_gen_ccmp_first): Call
9541         canonicalize_comparison before figuring out the cmp_mode/cc_mode.
9542         (aarch64_gen_ccmp_next): Likewise.
9544 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
9546         PR middle-end/117091
9547         * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
9548         Change clustering algorithm to simple greedy.
9550 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
9552         PR middle-end/117091
9553         * gimple-if-to-switch.cc (if_chain::is_beneficial): Update
9554         find_bit_test call.
9555         * tree-switch-conversion.cc (bit_test_cluster::find_bit_tests):
9556         Get max_c argument and bail out early if all case labels are
9557         unique.
9558         (switch_decision_tree::compute_cases_per_edge): Record number of
9559         targets per label and return.
9560         (switch_decision_tree::analyze_switch_statement): ... pass to
9561         find_bit_tests.
9562         * tree-switch-conversion.h: Update prototypes.
9564 2024-10-29  Andi Kleen  <ak@gcc.gnu.org>
9566         * common.opt: Enable -fbit-tests and -fjump-tables only at -O1.
9567         * opts.cc (default_options_table): Dito.
9569 2024-10-29  Eric Botcazou  <ebotcazou@adacore.com>
9571         PR rtl-optimization/117327
9572         * reorg.cc (find_end_label): Do not return a dangling label at the
9573         end of the function and adjust commentary.
9575 2024-10-29  Andrew Pinski  <quic_apinski@quicinc.com>
9577         PR target/117349
9578         * config/aarch64/aarch64.cc (aarch64_rtx_costs): Remove
9579         unnecessary casts to rtx_code.
9580         (aarch64_gen_ccmp_first): Likewise.
9581         (aarch64_gen_ccmp_next): Likewise.
9583 2024-10-29  Tsung Chun Lin  <tclin914@gmail.com>
9585         * common/config/riscv/riscv-common.cc: M implies Zmmul.
9587 2024-10-29  yulong  <shiyulong@iscas.ac.cn>
9589         * config.gcc: Add riscv_cmo.h.
9590         * config/riscv/riscv_cmo.h: New file.
9592 2024-10-29  Pan Li  <pan2.li@intel.com>
9593             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
9595         * config/riscv/autovec.md (mask_len_strided_load_<mode>): Add
9596         new pattern for MASK_LEN_STRIDED_LOAD.
9597         (mask_len_strided_store_<mode>): Ditto but for store.
9598         * config/riscv/riscv-protos.h (expand_strided_load): Add new
9599         func decl to expand strided load.
9600         (expand_strided_store): Ditto but for store.
9601         * config/riscv/riscv-v.cc (expand_strided_load): Add new
9602         func impl to expand strided load.
9603         (expand_strided_store): Ditto but for store.
9605 2024-10-29  Pan Li  <pan2.li@intel.com>
9606             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
9608         * tree-vect-stmts.cc (vect_get_strided_load_store_ops): Handle
9609         MASK_LEN_STRIDED_LOAD{STORE} after supported check.
9610         (vectorizable_store): Generate MASK_LEN_STRIDED_LOAD when the offset
9611         of gater is not vector type.
9612         (vectorizable_load): Ditto but for store.
9614 2024-10-29  Pan Li  <pan2.li@intel.com>
9615             Juzhe-Zhong  <juzhe.zhong@rivai.ai>
9617         * internal-fn.cc (strided_load_direct): Add new define direct
9618         for strided load.
9619         (strided_store_direct): Ditto but for store.
9620         (expand_strided_load_optab_fn): Add new func to expand the IFN
9621         MASK_LEN_STRIDED_LOAD in middle-end.
9622         (expand_strided_store_optab_fn): Ditto but for store.
9623         (direct_strided_load_optab_supported_p): Add define for stride
9624         load optab supported.
9625         (direct_strided_store_optab_supported_p): Ditto but for store.
9626         (internal_fn_len_index): Add strided load/store len index.
9627         (internal_fn_mask_index): Ditto but for mask.
9628         (internal_fn_stored_value_index): Add strided store value index.
9629         * internal-fn.def (MASK_LEN_STRIDED_LOAD): Add new IFN for
9630         strided load.
9631         (MASK_LEN_STRIDED_STORE): Ditto but for store.
9632         * optabs.def (mask_len_strided_load_optab): Add strided load optab.
9633         (mask_len_strided_store_optab): Add strided store optab.
9635 2024-10-29  Richard Biener  <rguenther@suse.de>
9637         * tree-vect-patterns.cc (type_conversion_p): Remove.
9638         (vect_recog_mixed_size_cond_pattern): Likewise.
9639         (vect_vect_recog_func_ptrs): Remove vect_recog_mixed_size_cond_pattern
9640         entry.
9642 2024-10-29  Richard Biener  <rguenther@suse.de>
9644         * tree-vect-patterns.cc (vect_recog_mask_conversion_pattern):
9645         Remove COMPARISON_CLASS_P rhs1 of COND_EXPR case and assert
9646         it doesn't happen.
9648 2024-10-29  David Malcolm  <dmalcolm@redhat.com>
9650         PR jit/117275
9651         * varasm.cc (process_pending_assemble_externals): Reset
9652         pending_assemble_externals_set to nullptr after deleting it.
9653         (varasm_cc_finalize): Delete pending_assemble_externals_set.
9655 2024-10-29  Richard Biener  <rguenther@suse.de>
9657         PR tree-optimization/117343
9658         * tree-vect-slp.cc (vect_optimize_slp_pass::build_vertices):
9659         Support re-building the SLP graph.
9660         (vect_optimize_slp_pass::run): Re-build the SLP graph before
9661         decide_masked_load_lanes.
9663 2024-10-29  Richard Biener  <rguenther@suse.de>
9665         PR tree-optimization/117333
9666         * tree-data-ref.cc (dr_may_alias_p): Guard against NULL
9667         access size.
9669 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
9670             Christophe Lyon  <christophe.lyon@arm.com>
9672         * config/arm/arm-mve-builtins-base.cc (vld1q_impl): Add support
9673         for predicated version.
9674         (vst1q_impl): Likewise.
9675         (vstrq_impl): New class.
9676         (vldrq_impl): New class.
9677         (vldrbq): New.
9678         (vldrhq): New.
9679         (vldrwq): New.
9680         (vstrbq): New.
9681         (vstrhq): New.
9682         (vstrwq): New.
9683         * config/arm/arm-mve-builtins-base.def (vld1q): Add predicated
9684         version.
9685         (vldrbq): New.
9686         (vldrhq): New.
9687         (vldrwq): New.
9688         (vst1q): Add predicated version.
9689         (vstrbq): New.
9690         (vstrhq): New.
9691         (vstrwq): New.
9692         (vrev32q): Update types to float_16.
9693         * config/arm/arm-mve-builtins-base.h (vldrbq): New.
9694         (vldrhq): New.
9695         (vldrwq): New.
9696         (vstrbq): New.
9697         (vstrhq): New.
9698         (vstrwq): New.
9699         * config/arm/arm-mve-builtins-functions.h (memory_vector_mode):
9700         Remove conversion of floating point vectors to integer.
9701         * config/arm/arm-mve-builtins.cc (TYPES_float16): Change to...
9702         (TYPES_float_16): ...this.
9703         (TYPES_float_32): New.
9704         (float16): Change to...
9705         (float_16): ...this.
9706         (float_32): New.
9707         (preds_z_or_none): New.
9708         (function_resolver::check_gp_argument): Add support for _z
9709         predicate.
9710         * config/arm/arm_mve.h (vstrbq): Remove.
9711         (vstrbq_p): Likewise.
9712         (vstrhq): Likewise.
9713         (vstrhq_p): Likewise.
9714         (vstrwq): Likewise.
9715         (vstrwq_p): Likewise.
9716         (vst1q_p): Likewise.
9717         (vld1q_z): Likewise.
9718         (vldrbq_s8): Likewise.
9719         (vldrbq_u8): Likewise.
9720         (vldrbq_s16): Likewise.
9721         (vldrbq_u16): Likewise.
9722         (vldrbq_s32): Likewise.
9723         (vldrbq_u32): Likewise.
9724         (vstrbq_s8): Likewise.
9725         (vstrbq_s32): Likewise.
9726         (vstrbq_s16): Likewise.
9727         (vstrbq_u8): Likewise.
9728         (vstrbq_u32): Likewise.
9729         (vstrbq_u16): Likewise.
9730         (vstrbq_p_s8): Likewise.
9731         (vstrbq_p_s32): Likewise.
9732         (vstrbq_p_s16): Likewise.
9733         (vstrbq_p_u8): Likewise.
9734         (vstrbq_p_u32): Likewise.
9735         (vstrbq_p_u16): Likewise.
9736         (vldrbq_z_s16): Likewise.
9737         (vldrbq_z_u8): Likewise.
9738         (vldrbq_z_s8): Likewise.
9739         (vldrbq_z_s32): Likewise.
9740         (vldrbq_z_u16): Likewise.
9741         (vldrbq_z_u32): Likewise.
9742         (vldrhq_s32): Likewise.
9743         (vldrhq_s16): Likewise.
9744         (vldrhq_u32): Likewise.
9745         (vldrhq_u16): Likewise.
9746         (vldrhq_z_s32): Likewise.
9747         (vldrhq_z_s16): Likewise.
9748         (vldrhq_z_u32): Likewise.
9749         (vldrhq_z_u16): Likewise.
9750         (vldrwq_s32): Likewise.
9751         (vldrwq_u32): Likewise.
9752         (vldrwq_z_s32): Likewise.
9753         (vldrwq_z_u32): Likewise.
9754         (vldrhq_f16): Likewise.
9755         (vldrhq_z_f16): Likewise.
9756         (vldrwq_f32): Likewise.
9757         (vldrwq_z_f32): Likewise.
9758         (vstrhq_f16): Likewise.
9759         (vstrhq_s32): Likewise.
9760         (vstrhq_s16): Likewise.
9761         (vstrhq_u32): Likewise.
9762         (vstrhq_u16): Likewise.
9763         (vstrhq_p_f16): Likewise.
9764         (vstrhq_p_s32): Likewise.
9765         (vstrhq_p_s16): Likewise.
9766         (vstrhq_p_u32): Likewise.
9767         (vstrhq_p_u16): Likewise.
9768         (vstrwq_f32): Likewise.
9769         (vstrwq_s32): Likewise.
9770         (vstrwq_u32): Likewise.
9771         (vstrwq_p_f32): Likewise.
9772         (vstrwq_p_s32): Likewise.
9773         (vstrwq_p_u32): Likewise.
9774         (vst1q_p_u8): Likewise.
9775         (vst1q_p_s8): Likewise.
9776         (vld1q_z_u8): Likewise.
9777         (vld1q_z_s8): Likewise.
9778         (vst1q_p_u16): Likewise.
9779         (vst1q_p_s16): Likewise.
9780         (vld1q_z_u16): Likewise.
9781         (vld1q_z_s16): Likewise.
9782         (vst1q_p_u32): Likewise.
9783         (vst1q_p_s32): Likewise.
9784         (vld1q_z_u32): Likewise.
9785         (vld1q_z_s32): Likewise.
9786         (vld1q_z_f16): Likewise.
9787         (vst1q_p_f16): Likewise.
9788         (vld1q_z_f32): Likewise.
9789         (vst1q_p_f32): Likewise.
9790         (__arm_vstrbq_s8): Likewise.
9791         (__arm_vstrbq_s32): Likewise.
9792         (__arm_vstrbq_s16): Likewise.
9793         (__arm_vstrbq_u8): Likewise.
9794         (__arm_vstrbq_u32): Likewise.
9795         (__arm_vstrbq_u16): Likewise.
9796         (__arm_vldrbq_s8): Likewise.
9797         (__arm_vldrbq_u8): Likewise.
9798         (__arm_vldrbq_s16): Likewise.
9799         (__arm_vldrbq_u16): Likewise.
9800         (__arm_vldrbq_s32): Likewise.
9801         (__arm_vldrbq_u32): Likewise.
9802         (__arm_vstrbq_p_s8): Likewise.
9803         (__arm_vstrbq_p_s32): Likewise.
9804         (__arm_vstrbq_p_s16): Likewise.
9805         (__arm_vstrbq_p_u8): Likewise.
9806         (__arm_vstrbq_p_u32): Likewise.
9807         (__arm_vstrbq_p_u16): Likewise.
9808         (__arm_vldrbq_z_s8): Likewise.
9809         (__arm_vldrbq_z_s32): Likewise.
9810         (__arm_vldrbq_z_s16): Likewise.
9811         (__arm_vldrbq_z_u8): Likewise.
9812         (__arm_vldrbq_z_u32): Likewise.
9813         (__arm_vldrbq_z_u16): Likewise.
9814         (__arm_vldrhq_s32): Likewise.
9815         (__arm_vldrhq_s16): Likewise.
9816         (__arm_vldrhq_u32): Likewise.
9817         (__arm_vldrhq_u16): Likewise.
9818         (__arm_vldrhq_z_s32): Likewise.
9819         (__arm_vldrhq_z_s16): Likewise.
9820         (__arm_vldrhq_z_u32): Likewise.
9821         (__arm_vldrhq_z_u16): Likewise.
9822         (__arm_vldrwq_s32): Likewise.
9823         (__arm_vldrwq_u32): Likewise.
9824         (__arm_vldrwq_z_s32): Likewise.
9825         (__arm_vldrwq_z_u32): Likewise.
9826         (__arm_vstrhq_s32): Likewise.
9827         (__arm_vstrhq_s16): Likewise.
9828         (__arm_vstrhq_u32): Likewise.
9829         (__arm_vstrhq_u16): Likewise.
9830         (__arm_vstrhq_p_s32): Likewise.
9831         (__arm_vstrhq_p_s16): Likewise.
9832         (__arm_vstrhq_p_u32): Likewise.
9833         (__arm_vstrhq_p_u16): Likewise.
9834         (__arm_vstrwq_s32): Likewise.
9835         (__arm_vstrwq_u32): Likewise.
9836         (__arm_vstrwq_p_s32): Likewise.
9837         (__arm_vstrwq_p_u32): Likewise.
9838         (__arm_vst1q_p_u8): Likewise.
9839         (__arm_vst1q_p_s8): Likewise.
9840         (__arm_vld1q_z_u8): Likewise.
9841         (__arm_vld1q_z_s8): Likewise.
9842         (__arm_vst1q_p_u16): Likewise.
9843         (__arm_vst1q_p_s16): Likewise.
9844         (__arm_vld1q_z_u16): Likewise.
9845         (__arm_vld1q_z_s16): Likewise.
9846         (__arm_vst1q_p_u32): Likewise.
9847         (__arm_vst1q_p_s32): Likewise.
9848         (__arm_vld1q_z_u32): Likewise.
9849         (__arm_vld1q_z_s32): Likewise.
9850         (__arm_vldrwq_f32): Likewise.
9851         (__arm_vldrwq_z_f32): Likewise.
9852         (__arm_vldrhq_z_f16): Likewise.
9853         (__arm_vldrhq_f16): Likewise.
9854         (__arm_vstrwq_p_f32): Likewise.
9855         (__arm_vstrwq_f32): Likewise.
9856         (__arm_vstrhq_f16): Likewise.
9857         (__arm_vstrhq_p_f16): Likewise.
9858         (__arm_vld1q_z_f16): Likewise.
9859         (__arm_vst1q_p_f16): Likewise.
9860         (__arm_vld1q_z_f32): Likewise.
9861         (__arm_vst2q_f32): Likewise.
9862         (__arm_vst1q_p_f32): Likewise.
9863         (__arm_vstrbq): Likewise.
9864         (__arm_vstrbq_p): Likewise.
9865         (__arm_vstrhq): Likewise.
9866         (__arm_vstrhq_p): Likewise.
9867         (__arm_vstrwq): Likewise.
9868         (__arm_vstrwq_p): Likewise.
9869         (__arm_vst1q_p): Likewise.
9870         (__arm_vld1q_z): Likewise.
9871         * config/arm/arm_mve_builtins.def:
9872         (vstrbq_s): Delete.
9873         (vstrbq_u): Likewise.
9874         (vldrbq_s): Likewise.
9875         (vldrbq_u): Likewise.
9876         (vstrbq_p_s): Likewise.
9877         (vstrbq_p_u): Likewise.
9878         (vldrbq_z_s): Likewise.
9879         (vldrbq_z_u): Likewise.
9880         (vld1q_u): Likewise.
9881         (vld1q_s): Likewise.
9882         (vldrhq_z_u): Likewise.
9883         (vldrhq_u): Likewise.
9884         (vldrhq_z_s): Likewise.
9885         (vldrhq_s): Likewise.
9886         (vld1q_f): Likewise.
9887         (vldrhq_f): Likewise.
9888         (vldrhq_z_f): Likewise.
9889         (vldrwq_f): Likewise.
9890         (vldrwq_s): Likewise.
9891         (vldrwq_u): Likewise.
9892         (vldrwq_z_f): Likewise.
9893         (vldrwq_z_s): Likewise.
9894         (vldrwq_z_u): Likewise.
9895         (vst1q_u): Likewise.
9896         (vst1q_s): Likewise.
9897         (vstrhq_p_u): Likewise.
9898         (vstrhq_u): Likewise.
9899         (vstrhq_p_s): Likewise.
9900         (vstrhq_s): Likewise.
9901         (vst1q_f): Likewise.
9902         (vstrhq_f): Likewise.
9903         (vstrhq_p_f): Likewise.
9904         (vstrwq_f): Likewise.
9905         (vstrwq_s): Likewise.
9906         (vstrwq_u): Likewise.
9907         (vstrwq_p_f): Likewise.
9908         (vstrwq_p_s): Likewise.
9909         (vstrwq_p_u): Likewise.
9910         * config/arm/iterators.md (MVE_w_narrow_TYPE): New iterator.
9911         (MVE_w_narrow_type): New iterator.
9912         (MVE_wide_n_TYPE): New attribute.
9913         (MVE_wide_n_type): New attribute.
9914         (MVE_wide_n_sz_elem): New attribute.
9915         (MVE_wide_n_VPRED): New attribute.
9916         (MVE_elem_ch): New attribute.
9917         (supf): Remove VSTRBQ_S, VSTRBQ_U, VLDRBQ_S, VLDRBQ_U, VLD1Q_S,
9918         VLD1Q_U, VLDRHQ_S, VLDRHQ_U, VLDRWQ_S, VLDRWQ_U, VST1Q_S, VST1Q_U,
9919         VSTRHQ_S, VSTRHQ_U, VSTRWQ_S, VSTRWQ_U.
9920         (VSTRBQ, VLDRBQ, VLD1Q, VLDRHQ, VLDRWQ, VST1Q, VSTRHQ, VSTRWQ):
9921         Delete.
9922         * config/arm/mve.md (mve_vstrbq_<supf><mode>): Remove.
9923         (mve_vldrbq_<supf><mode>): Likewise.
9924         (mve_vstrbq_p_<supf><mode>): Likewise.
9925         (mve_vldrbq_z_<supf><mode>): Likewise.
9926         (mve_vldrhq_fv8hf): Likewise.
9927         (mve_vldrhq_<supf><mode>): Likewise.
9928         (mve_vldrhq_z_fv8hf): Likewise.
9929         (mve_vldrhq_z_<supf><mode>): Likewise.
9930         (mve_vldrwq_fv4sf): Likewise.
9931         (mve_vldrwq_<supf>v4si): Likewise.
9932         (mve_vldrwq_z_fv4sf): Likewise.
9933         (mve_vldrwq_z_<supf>v4si): Likewise.
9934         (@mve_vld1q_f<mode>): Likewise.
9935         (@mve_vld1q_<supf><mode>): Likewise.
9936         (mve_vstrhq_fv8hf): Likewise.
9937         (mve_vstrhq_p_fv8hf): Likewise.
9938         (mve_vstrhq_p_<supf><mode>): Likewise.
9939         (mve_vstrhq_<supf><mode>): Likewise.
9940         (mve_vstrwq_fv4sf): Likewise.
9941         (mve_vstrwq_p_fv4sf): Likewise.
9942         (mve_vstrwq_p_<supf>v4si): Likewise.
9943         (mve_vstrwq_<supf>v4si): Likewise.
9944         (@mve_vst1q_f<mode>): Likewise.
9945         (@mve_vst1q_<supf><mode>): Likewise.
9946         (@mve_vstrq_<mode>): New.
9947         (@mve_vstrq_p_<mode>): New.
9948         (@mve_vstrq_truncate_<mode>): New.
9949         (@mve_vstrq_p_truncate_<mode>): New.
9950         (@mve_vldrq_<mode>): New.
9951         (@mve_vldrq_z_<mode>): New.
9952         (@mve_vldrq_extend_<mode><US>): New.
9953         (@mve_vldrq_z_extend_<mode><US>): New.
9954         * config/arm/unspecs.md:
9955         (VSTRBQ_S): Remove.
9956         (VSTRBQ_U): Likewise.
9957         (VLDRBQ_S): Likewise.
9958         (VLDRBQ_U): Likewise.
9959         (VLD1Q_F): Likewise.
9960         (VLD1Q_S): Likewise.
9961         (VLD1Q_U): Likewise.
9962         (VLDRHQ_F): Likewise.
9963         (VLDRHQ_U): Likewise.
9964         (VLDRHQ_S): Likewise.
9965         (VLDRWQ_F): Likewise.
9966         (VLDRWQ_S): Likewise.
9967         (VLDRWQ_U): Likewise.
9968         (VSTRHQ_F): Likewise.
9969         (VST1Q_S): Likewise.
9970         (VST1Q_U): Likewise.
9971         (VSTRHQ_U): Likewise.
9972         (VSTRWQ_S): Likewise.
9973         (VSTRWQ_U): Likewise.
9974         (VSTRWQ_F): Likewise.
9975         (VST1Q_F): Likewise.
9976         (VLDRQ): New.
9977         (VLDRQ_Z): Likewise.
9978         (VLDRQ_EXT): Likewise.
9979         (VLDRQ_EXT_Z): Likewise.
9980         (VSTRQ): Likewise.
9981         (VSTRQ_P): Likewise.
9982         (VSTRQ_TRUNC): Likewise.
9983         (VSTRQ_TRUNC_P): Likewise.
9985 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
9986             Christophe Lyon  <christophe.lyon@arm.com>
9988         * config/arm/arm-mve-builtins.cc
9989         (function_expander::use_contiguous_load_insn): Add support for
9990         PRED_z.
9991         (function_expander::use_contiguous_store_insn): Add support for
9992         PRED_p.
9994 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
9996         * config/arm/arm-mve-builtins-functions.h
9997         (load_extending): New class.
9998         (store_truncating): New class.
9999         * config/arm/arm-protos.h (arm_mve_data_mode): New helper function.
10000         * config/arm/arm.cc (arm_mve_data_mode): New helper function.
10002 2024-10-29  Alfie Richards  <Alfie.Richards@arm.com>
10004         * config/arm/arm-mve-builtins-shapes.cc:
10005         (load_ext): New.
10006         * config/arm/arm-mve-builtins-shapes.h:
10007         (load_ext): New.
10009 2024-10-29  Jakub Jelinek  <jakub@redhat.com>
10011         PR c/117030
10012         * doc/extend.texi (__builtin_stdc_rotate_left,
10013         __builtin_stdc_rotate_right): Document.
10015 2024-10-28  Sam James  <sam@gentoo.org>
10017         * opts-common.cc (prune_options): Fix typo.
10019 2024-10-28  Andrew MacLeod  <amacleod@redhat.com>
10021         * range-op-ptr.cc (operator_bitwise_or::fold_range): Fix logic
10022         for setting nonzero.
10024 2024-10-28  Kyrylo Tkachov  <ktkachov@nvidia.com>
10026         * config/aarch64/arm_neon.h (vxarq_u64): Rename imm6 to __imm6.
10028 2024-10-28  Jason Merrill  <jason@redhat.com>
10030         * doc/install.texi (Prerequisites): Update to C++14.
10032 2024-10-28  Jeff Law  <jlaw@ventanamicro.com>
10034         PR target/117316
10035         * config/riscv/riscv.cc (riscv_tune_param): Drop initializer.
10036         (*_tune_info): Add initializers for code alignments.
10038 2024-10-28  Richard Biener  <rguenther@suse.de>
10040         PR tree-optimization/117307
10041         * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses):
10042         Properly compute STMT_VINFO_SLP_VECT_ONLY.  Set it on all
10043         parts of a split group.
10045 2024-10-28  Tobias Burnus  <tburnus@baylibre.com>
10047         * tree-core.h (enum omp_clause_code): Add comments to cross ref to
10048         OMP_CLAUSE_DECL etc. and mark the ranges used in the range checks.
10050 2024-10-28  Andrew Pinski  <quic_apinski@quicinc.com>
10052         PR middle-end/111285
10053         * tree-vect-generic.cc (do_unop): Use a signed type for the
10054         operand if the operation was ABSU_EXPR.
10056 2024-10-28  Andrew Pinski  <quic_apinski@quicinc.com>
10058         * tree-ssa-phiopt.cc (match_simplify_replacement): Move
10059         check for maybe_undef_p earlier.
10061 2024-10-28  Richard Biener  <rguenther@suse.de>
10063         * tree-vect-patterns.cc (check_bool_pattern): For comparisons
10064         we do nothing if we can expand them or we can't replace them
10065         with a ? -1 : 0 condition - but the latter would require
10066         expanding the comparison which we proved we can't.  So do
10067         nothing, aka not think vec_cond{u,eq,} will save us.
10069 2024-10-28  xuli  <xuli1@eswincomputing.com>
10071         PR target/117286
10072         * config/riscv/riscv-vector-builtins-bases.cc: Do not expand NULL return.
10074 2024-10-27  Fangrui Song  <maskray@gcc.gnu.org>
10076         * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): Transform -mfdpic.
10077         * config/arm/linux-eabi.h (TARGET_FDPIC_LINKER_EMULATION): Define.
10078         (SUBTARGET_EXTRA_LINK_SPEC): Use TARGET_FDPIC_LINKER_EMULATION
10079         if -mfdpic.
10081 2024-10-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
10083         * config/xtensa/xtensa.cc (TARGET_DIFFERENT_ADDR_DISPLACEMENT_P):
10084         Add new target hook to always return true.
10085         * config/xtensa/xtensa.md (movsi_internal):
10086         Revert the previous changes.
10088 2024-10-27  Jakub Jelinek  <jakub@redhat.com>
10090         * configure.ac (gcc_AC_CHECK_DECLS): Add fmemopen.
10091         * configure: Regenerate.
10092         * config.in: Regenerate.
10093         * Makefile.in (build/genmatch.o): Add -DGENMATCH_SELFTESTS to
10094         BUILD_CPPFLAGS for stage2+ genmatch.
10095         * genmatch.cc (test_diag_vfprintf, genmatch_diag_selftests): New
10096         functions.
10097         (main): Call genmatch_diag_selftests.
10098         * pretty-print.cc (test_pp_format): Add two tests, one for %M$.*N$s
10099         and one for %M$.Ns.
10101 2024-10-27  Jakub Jelinek  <jakub@redhat.com>
10103         * doc/invoke.texi (Wtrailing-whitespace=): Change
10104         blank argument to blanks and space argument to any.
10106 2024-10-26  Andrew Pinski  <quic_apinski@quicinc.com>
10108         PR tree-optimization/117234
10109         * tree-eh.cc (operation_could_trap_helper_p): Treat
10110         PAREN_EXPR and VEC_DUPLICATE_EXPR like constructing
10111         expressions.
10113 2024-10-26  Richard Biener  <rguenther@suse.de>
10115         * tree-vect-slp.cc (vect_get_operand_map): Mark
10116         COMPARISON_CLASS_P COND_EXPR condition path unreachable.
10117         * tree-vect-stmts.cc (vect_is_simple_use): Likewise.
10118         (vectorizable_condition): Assert the COND_EXPR condition isn't
10119         COMPARISON_CLASS_P.
10121 2024-10-26  Richard Biener  <rguenther@suse.de>
10123         * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Create
10124         a separate pattern stmt for the comparison in the generated
10125         COND_EXPR.
10127 2024-10-26  Richard Biener  <rguenther@suse.de>
10129         * tree-vect-patterns.cc (vect_recog_divmod_pattern): Build
10130         separate comparion pattern for the condition of a COND_EXPR
10131         pattern.
10133 2024-10-25  Andrew Pinski  <quic_apinski@quicinc.com>
10135         PR rtl-optimization/58195
10136         * simplify-rtx.cc (simplify_context::simplify_ternary_operation): Handle
10137         `a != 0 ? -a : 0` and `a == 0 ? 0 : -a`.
10139 2024-10-25  Andrew Pinski  <quic_apinski@quicinc.com>
10141         * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Support
10142         3 cores and 3 variants. If there is one core but multiple variant,
10143         then treat the variant as being all.
10145 2024-10-25  Wilco Dijkstra  <wilco.dijkstra@arm.com>
10147         PR target/117292
10148         * config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>): Use
10149         'De' constraint.
10150         * config/aarch64/constraints.md (De): Add new constraint.
10152 2024-10-25  Andrew Carlotti  <andrew.carlotti@arm.com>
10154         * config/aarch64/aarch64-builtins.cc (MODE_d_mf8): New.
10155         (MODE_q_mf8): New.
10156         (QUAL_mf8): New.
10157         (VREINTERPRET_BUILTINS1): Add mf8 entry.
10158         (VREINTERPRET_BUILTINS): Ditto.
10159         (VREINTERPRETQ_BUILTINS1): Ditto.
10160         (VREINTERPRETQ_BUILTINS): Ditto.
10161         (aarch64_lookup_simd_type_in_table): Match modal_float bit
10163 2024-10-25  Andrew Carlotti  <andrew.carlotti@arm.com>
10165         * config/aarch64/aarch64-builtins.cc
10166         (aarch64_init_simd_builtin_types): Initialise FP8 simd types.
10167         * config/aarch64/aarch64-builtins.h
10168         (enum aarch64_type_qualifiers): Add qualifier_modal_float bit.
10169         * config/aarch64/aarch64-simd-builtin-types.def:
10170         Add Mfloat8x{8|16}_t types.
10171         * config/aarch64/arm_neon.h: Add mfloat8x{8|16}_t typedefs.
10173 2024-10-25  Jennifer Schmitz  <jschmitz@nvidia.com>
10175         * match.pd: Fold pow (1.0/x, y) -> pow (x, -y) and
10176         pow (0.0, x) -> 0.0.
10178 2024-10-25  Pan Li  <pan2.li@intel.com>
10180         * match.pd: Remove unsigned branch form 3 for SAT_ADD, and
10181         add simplify to branchless instead.
10183 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
10185         PR middle-end/117249
10186         * tree-ssa-structalias.cc (insert_vi_for_tree): Move put calls out of
10187         gcc_assert.
10188         * lto-cgraph.cc (lto_symtab_encoder_delete_node): Likewise.
10189         * gimple-ssa-strength-reduction.cc (get_alternative_base,
10190         add_cand_for_stmt): Likewise.
10191         * tree-eh.cc (add_stmt_to_eh_lp_fn): Likewise.
10192         * except.cc (duplicate_eh_regions_1): Likewise.
10193         * tree-ssa-reassoc.cc (insert_operand_rank): Likewise.
10194         * config/nvptx/nvptx.cc (nvptx_expand_call): Use == rather than = in
10195         gcc_assert.
10196         * opts-common.cc (jobserver_info::disconnect): Call close outside of
10197         gcc_assert and only check result in it.
10198         (jobserver_info::return_token): Call write outside of gcc_assert and
10199         only check result in it.
10200         * genautomata.cc (output_default_latencies): Move j++ side-effect
10201         outside of gcc_assert.
10202         * tree-ssa-loop-ivopts.cc (get_alias_ptr_type_for_ptr_address): Use
10203         == rather than = in gcc_assert.
10204         * cgraph.cc (symbol_table::create_edge): Move ++edges_max_uid
10205         side-effect outside of gcc_assert.
10207 2024-10-25  Richard Biener  <rguenther@suse.de>
10209         * optabs-tree.h (expand_vec_cond_expr_p): Default the
10210         comparison code to ERROR_MARK.
10211         * match.pd: Remove unneded expand_vec_cond_expr_p args.
10212         * tree-vect-generic.cc (expand_vector_condition): Likewise.
10213         * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
10214         Likewise.
10215         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Likewise.
10216         (scan_store_can_perm_p): Likewise.
10217         (vectorizable_condition): Likewise.
10219 2024-10-25  Richard Biener  <rguenther@suse.de>
10221         * genmatch.cc (commutative_op): Add paramter to indicate whether
10222         all compares should be considered commutative.  Handle
10223         hypot, add_overflow and mul_overflow.
10224         (parser::parse_expr): Simplify 'c' handling by using
10225         commutative_op and error out when the operation is not.
10226         * match.pd ((minmax:c @0 NaN@1) -> @0): Use :C, we know
10227         what we are doing.
10229 2024-10-25  Richard Biener  <rguenther@suse.de>
10231         PR tree-optimization/117277
10232         * tree-vect-loop.cc (vect_transform_loop): Remove CLOBBERs
10233         and prefetches before doing any code generation.
10235 2024-10-25  Richard Biener  <rguenther@suse.de>
10237         PR tree-optimization/116575
10238         * tree-vect-slp.cc (vect_get_and_check_slp_defs): Handle
10239         gaps, aka NULL scalar stmt.
10240         (vect_build_slp_tree_2): Allow gaps in the middle of a
10241         grouped mask load.  When the mask of a grouped mask load
10242         is uniform do single-lane discovery for the mask and
10243         insert a splat VEC_PERM_EXPR node.
10244         (vect_optimize_slp_pass::decide_masked_load_lanes): New
10245         function.
10246         (vect_optimize_slp_pass::run): Call it.
10248 2024-10-25  Richard Biener  <rguenther@suse.de>
10250         * tree-vect-stmts.cc (vect_check_scalar_mask): Only check
10251         the scalar type for constant or extern defs.
10253 2024-10-25  Jakub Jelinek  <jakub@redhat.com>
10255         * lra-assigns.cc: Remove trailing whitespace.
10256         * symtab.cc: Likewise.
10257         * stmt.cc: Likewise.
10258         * cgraphbuild.cc: Likewise.
10259         * cfgcleanup.cc: Likewise.
10260         * loop-init.cc: Likewise.
10261         * df-problems.cc: Likewise.
10262         * diagnostic-macro-unwinding.cc: Likewise.
10263         * langhooks.h: Likewise.
10264         * except.cc: Likewise.
10265         * tree-vect-loop.cc: Likewise.
10266         * coverage.cc: Likewise.
10267         * hash-table.cc: Likewise.
10268         * ggc-page.cc: Likewise.
10269         * gimple-ssa-strength-reduction.cc: Likewise.
10270         * tree-parloops.cc: Likewise.
10271         * internal-fn.cc: Likewise.
10272         * ipa-split.cc: Likewise.
10273         * calls.cc: Likewise.
10274         * reorg.cc: Likewise.
10275         * sbitmap.h: Likewise.
10276         * omp-offload.cc: Likewise.
10277         * cfgrtl.cc: Likewise.
10278         * reginfo.cc: Likewise.
10279         * gengtype.h: Likewise.
10280         * omp-general.h: Likewise.
10281         * ipa-comdats.cc: Likewise.
10282         * gimple-range-edge.h: Likewise.
10283         * tree-ssa-structalias.cc: Likewise.
10284         * target.def: Likewise.
10285         * basic-block.h: Likewise.
10286         * graphite-isl-ast-to-gimple.cc: Likewise.
10287         * auto-profile.cc: Likewise.
10288         * optabs.cc: Likewise.
10289         * gengtype-lex.l: Likewise.
10290         * optabs.def: Likewise.
10291         * ira-build.cc: Likewise.
10292         * ira.cc: Likewise.
10293         * function.h: Likewise.
10294         * tree-ssa-propagate.cc: Likewise.
10295         * gcov-io.cc: Likewise.
10296         * builtin-types.def: Likewise.
10297         * ddg.cc: Likewise.
10298         * lra-spills.cc: Likewise.
10299         * cfg.cc: Likewise.
10300         * bitmap.cc: Likewise.
10301         * gimple-range-gori.h: Likewise.
10302         * tree-ssa-loop-im.cc: Likewise.
10303         * cfghooks.h: Likewise.
10304         * genmatch.cc: Likewise.
10305         * explow.cc: Likewise.
10306         * lto-streamer-in.cc: Likewise.
10307         * graphite-scop-detection.cc: Likewise.
10308         * ipa-prop.cc: Likewise.
10309         * gcc.cc: Likewise.
10310         * vec.h: Likewise.
10311         * cfgexpand.cc: Likewise.
10312         * config/alpha/vms.h: Likewise.
10313         * config/alpha/alpha.cc: Likewise.
10314         * config/alpha/driver-alpha.cc: Likewise.
10315         * config/alpha/elf.h: Likewise.
10316         * config/iq2000/iq2000.h: Likewise.
10317         * config/iq2000/iq2000.cc: Likewise.
10318         * config/pa/pa-64.h: Likewise.
10319         * config/pa/som.h: Likewise.
10320         * config/pa/pa.cc: Likewise.
10321         * config/pa/pa.h: Likewise.
10322         * config/pa/pa32-regs.h: Likewise.
10323         * config/c6x/c6x.cc: Likewise.
10324         * config/openbsd-stdint.h: Likewise.
10325         * config/elfos.h: Likewise.
10326         * config/lm32/lm32.cc: Likewise.
10327         * config/lm32/lm32.h: Likewise.
10328         * config/lm32/lm32-protos.h: Likewise.
10329         * config/darwin-c.cc: Likewise.
10330         * config/rx/rx.cc: Likewise.
10331         * config/host-darwin.h: Likewise.
10332         * config/netbsd.h: Likewise.
10333         * config/ia64/ia64.cc: Likewise.
10334         * config/ia64/freebsd.h: Likewise.
10335         * config/avr/avr-c.cc: Likewise.
10336         * config/avr/avr.cc: Likewise.
10337         * config/avr/avr-arch.h: Likewise.
10338         * config/avr/avr.h: Likewise.
10339         * config/avr/stdfix.h: Likewise.
10340         * config/avr/gen-avr-mmcu-specs.cc: Likewise.
10341         * config/avr/avr-log.cc: Likewise.
10342         * config/avr/elf.h: Likewise.
10343         * config/avr/gen-avr-mmcu-texi.cc: Likewise.
10344         * config/avr/avr-devices.cc: Likewise.
10345         * config/nvptx/nvptx.cc: Likewise.
10346         * config/vx-common.h: Likewise.
10347         * config/sol2.cc: Likewise.
10348         * config/rl78/rl78.cc: Likewise.
10349         * config/cris/cris.cc: Likewise.
10350         * config/arm/symbian.h: Likewise.
10351         * config/arm/unknown-elf.h: Likewise.
10352         * config/arm/linux-eabi.h: Likewise.
10353         * config/arm/arm.cc: Likewise.
10354         * config/arm/arm-mve-builtins.h: Likewise.
10355         * config/arm/bpabi.h: Likewise.
10356         * config/arm/vxworks.h: Likewise.
10357         * config/arm/arm.h: Likewise.
10358         * config/arm/aout.h: Likewise.
10359         * config/arm/elf.h: Likewise.
10360         * config/host-linux.cc: Likewise.
10361         * config/sh/sh_treg_combine.cc: Likewise.
10362         * config/sh/vxworks.h: Likewise.
10363         * config/sh/elf.h: Likewise.
10364         * config/sh/netbsd-elf.h: Likewise.
10365         * config/sh/sh.cc: Likewise.
10366         * config/sh/embed-elf.h: Likewise.
10367         * config/sh/sh.h: Likewise.
10368         * config/darwin-driver.cc: Likewise.
10369         * config/m32c/m32c.cc: Likewise.
10370         * config/frv/frv.cc: Likewise.
10371         * config/openbsd.h: Likewise.
10372         * config/aarch64/aarch64-protos.h: Likewise.
10373         * config/aarch64/aarch64-builtins.cc: Likewise.
10374         * config/aarch64/aarch64-cost-tables.h: Likewise.
10375         * config/aarch64/aarch64.cc: Likewise.
10376         * config/bfin/bfin.cc: Likewise.
10377         * config/bfin/bfin.h: Likewise.
10378         * config/bfin/bfin-protos.h: Likewise.
10379         * config/i386/gmm_malloc.h: Likewise.
10380         * config/i386/djgpp.h: Likewise.
10381         * config/i386/sol2.h: Likewise.
10382         * config/i386/stringop.def: Likewise.
10383         * config/i386/i386-features.cc: Likewise.
10384         * config/i386/openbsdelf.h: Likewise.
10385         * config/i386/cpuid.h: Likewise.
10386         * config/i386/i386.h: Likewise.
10387         * config/i386/smmintrin.h: Likewise.
10388         * config/i386/avx10_2-512convertintrin.h: Likewise.
10389         * config/i386/i386-options.cc: Likewise.
10390         * config/i386/i386-opts.h: Likewise.
10391         * config/i386/i386-expand.cc: Likewise.
10392         * config/i386/avx512dqintrin.h: Likewise.
10393         * config/i386/wmmintrin.h: Likewise.
10394         * config/i386/gnu-user.h: Likewise.
10395         * config/i386/host-mingw32.cc: Likewise.
10396         * config/i386/avx10_2bf16intrin.h: Likewise.
10397         * config/i386/cygwin.h: Likewise.
10398         * config/i386/driver-i386.cc: Likewise.
10399         * config/i386/biarch64.h: Likewise.
10400         * config/i386/host-cygwin.cc: Likewise.
10401         * config/i386/cygming.h: Likewise.
10402         * config/i386/i386-builtins.cc: Likewise.
10403         * config/i386/avx10_2convertintrin.h: Likewise.
10404         * config/i386/i386.cc: Likewise.
10405         * config/i386/gas.h: Likewise.
10406         * config/i386/freebsd.h: Likewise.
10407         * config/mingw/winnt-cxx.cc: Likewise.
10408         * config/mingw/winnt.cc: Likewise.
10409         * config/h8300/h8300.cc: Likewise.
10410         * config/host-solaris.cc: Likewise.
10411         * config/m32r/m32r.h: Likewise.
10412         * config/m32r/m32r.cc: Likewise.
10413         * config/darwin.h: Likewise.
10414         * config/sparc/linux64.h: Likewise.
10415         * config/sparc/sparc-protos.h: Likewise.
10416         * config/sparc/sysv4.h: Likewise.
10417         * config/sparc/sparc.h: Likewise.
10418         * config/sparc/linux.h: Likewise.
10419         * config/sparc/freebsd.h: Likewise.
10420         * config/sparc/sparc.cc: Likewise.
10421         * config/gcn/gcn-run.cc: Likewise.
10422         * config/gcn/gcn.cc: Likewise.
10423         * config/gcn/gcn-tree.cc: Likewise.
10424         * config/kopensolaris-gnu.h: Likewise.
10425         * config/nios2/nios2.h: Likewise.
10426         * config/nios2/elf.h: Likewise.
10427         * config/nios2/nios2.cc: Likewise.
10428         * config/host-netbsd.cc: Likewise.
10429         * config/rtems.h: Likewise.
10430         * config/pdp11/pdp11.cc: Likewise.
10431         * config/pdp11/pdp11.h: Likewise.
10432         * config/mn10300/mn10300.cc: Likewise.
10433         * config/mn10300/linux.h: Likewise.
10434         * config/moxie/moxie.h: Likewise.
10435         * config/moxie/moxie.cc: Likewise.
10436         * config/rs6000/aix71.h: Likewise.
10437         * config/rs6000/vec_types.h: Likewise.
10438         * config/rs6000/xcoff.h: Likewise.
10439         * config/rs6000/rs6000.cc: Likewise.
10440         * config/rs6000/rs6000-internal.h: Likewise.
10441         * config/rs6000/rs6000-p8swap.cc: Likewise.
10442         * config/rs6000/rs6000-c.cc: Likewise.
10443         * config/rs6000/aix.h: Likewise.
10444         * config/rs6000/rs6000-logue.cc: Likewise.
10445         * config/rs6000/rs6000-string.cc: Likewise.
10446         * config/rs6000/rs6000-call.cc: Likewise.
10447         * config/rs6000/ppu_intrinsics.h: Likewise.
10448         * config/rs6000/altivec.h: Likewise.
10449         * config/rs6000/darwin.h: Likewise.
10450         * config/rs6000/host-darwin.cc: Likewise.
10451         * config/rs6000/freebsd64.h: Likewise.
10452         * config/rs6000/spu2vmx.h: Likewise.
10453         * config/rs6000/linux.h: Likewise.
10454         * config/rs6000/si2vmx.h: Likewise.
10455         * config/rs6000/driver-rs6000.cc: Likewise.
10456         * config/rs6000/freebsd.h: Likewise.
10457         * config/vxworksae.h: Likewise.
10458         * config/mips/frame-header-opt.cc: Likewise.
10459         * config/mips/mips.h: Likewise.
10460         * config/mips/mips.cc: Likewise.
10461         * config/mips/sde.h: Likewise.
10462         * config/darwin-protos.h: Likewise.
10463         * config/mcore/mcore-elf.h: Likewise.
10464         * config/mcore/mcore.h: Likewise.
10465         * config/mcore/mcore.cc: Likewise.
10466         * config/epiphany/epiphany.cc: Likewise.
10467         * config/fr30/fr30.h: Likewise.
10468         * config/fr30/fr30.cc: Likewise.
10469         * config/riscv/riscv-vector-builtins-shapes.cc: Likewise.
10470         * config/riscv/riscv-vector-builtins-bases.cc: Likewise.
10471         * config/visium/visium.h: Likewise.
10472         * config/mmix/mmix.cc: Likewise.
10473         * config/v850/v850.cc: Likewise.
10474         * config/v850/v850-c.cc: Likewise.
10475         * config/v850/v850.h: Likewise.
10476         * config/stormy16/stormy16.cc: Likewise.
10477         * config/stormy16/stormy16-protos.h: Likewise.
10478         * config/stormy16/stormy16.h: Likewise.
10479         * config/arc/arc.cc: Likewise.
10480         * config/vxworks.cc: Likewise.
10481         * config/microblaze/microblaze-c.cc: Likewise.
10482         * config/microblaze/microblaze-protos.h: Likewise.
10483         * config/microblaze/microblaze.h: Likewise.
10484         * config/microblaze/microblaze.cc: Likewise.
10485         * config/freebsd-spec.h: Likewise.
10486         * config/m68k/m68kelf.h: Likewise.
10487         * config/m68k/m68k.cc: Likewise.
10488         * config/m68k/netbsd-elf.h: Likewise.
10489         * config/m68k/linux.h: Likewise.
10490         * config/freebsd.h: Likewise.
10491         * config/host-openbsd.cc: Likewise.
10492         * regcprop.cc: Likewise.
10493         * dumpfile.cc: Likewise.
10494         * combine.cc: Likewise.
10495         * tree-ssa-forwprop.cc: Likewise.
10496         * ipa-profile.cc: Likewise.
10497         * hw-doloop.cc: Likewise.
10498         * opts.cc: Likewise.
10499         * gcc-ar.cc: Likewise.
10500         * tree-cfg.cc: Likewise.
10501         * incpath.cc: Likewise.
10502         * tree-ssa-sccvn.cc: Likewise.
10503         * function.cc: Likewise.
10504         * genattrtab.cc: Likewise.
10505         * rtl.def: Likewise.
10506         * genchecksum.cc: Likewise.
10507         * profile.cc: Likewise.
10508         * df-core.cc: Likewise.
10509         * tree-pretty-print.cc: Likewise.
10510         * tree.h: Likewise.
10511         * plugin.cc: Likewise.
10512         * tree-ssa-loop-ch.cc: Likewise.
10513         * emit-rtl.cc: Likewise.
10514         * haifa-sched.cc: Likewise.
10515         * gimple-range-edge.cc: Likewise.
10516         * range-op.cc: Likewise.
10517         * tree-ssa-ccp.cc: Likewise.
10518         * dwarf2cfi.cc: Likewise.
10519         * recog.cc: Likewise.
10520         * vtable-verify.cc: Likewise.
10521         * system.h: Likewise.
10522         * regrename.cc: Likewise.
10523         * tree-ssa-dom.cc: Likewise.
10524         * loop-unroll.cc: Likewise.
10525         * lra-constraints.cc: Likewise.
10526         * pretty-print.cc: Likewise.
10527         * ifcvt.cc: Likewise.
10528         * ipa.cc: Likewise.
10529         * alloc-pool.h: Likewise.
10530         * collect2.cc: Likewise.
10531         * pointer-query.cc: Likewise.
10532         * cfgloop.cc: Likewise.
10533         * toplev.cc: Likewise.
10534         * sese.cc: Likewise.
10535         * gengtype.cc: Likewise.
10536         * gimplify-me.cc: Likewise.
10537         * double-int.cc: Likewise.
10538         * bb-reorder.cc: Likewise.
10539         * dwarf2out.cc: Likewise.
10540         * tree-ssa-loop-ivcanon.cc: Likewise.
10541         * tree-ssa-reassoc.cc: Likewise.
10542         * cgraph.cc: Likewise.
10543         * sel-sched.cc: Likewise.
10544         * attribs.cc: Likewise.
10545         * expr.cc: Likewise.
10546         * tree-ssa-scopedtables.h: Likewise.
10547         * gimple-range-cache.cc: Likewise.
10548         * ipa-pure-const.cc: Likewise.
10549         * tree-inline.cc: Likewise.
10550         * genhooks.cc: Likewise.
10551         * gimple-range-phi.h: Likewise.
10552         * shrink-wrap.cc: Likewise.
10553         * tree.cc: Likewise.
10554         * gimple.cc: Likewise.
10555         * backend.h: Likewise.
10556         * opts-common.cc: Likewise.
10557         * cfg-flags.def: Likewise.
10558         * gcse-common.cc: Likewise.
10559         * tree-ssa-scopedtables.cc: Likewise.
10560         * ccmp.cc: Likewise.
10561         * builtins.def: Likewise.
10562         * builtin-attrs.def: Likewise.
10563         * postreload.cc: Likewise.
10564         * sched-deps.cc: Likewise.
10565         * ipa-inline-transform.cc: Likewise.
10566         * tree-vect-generic.cc: Likewise.
10567         * ipa-polymorphic-call.cc: Likewise.
10568         * builtins.cc: Likewise.
10569         * sel-sched-ir.cc: Likewise.
10570         * trans-mem.cc: Likewise.
10571         * ipa-visibility.cc: Likewise.
10572         * cgraph.h: Likewise.
10573         * tree-ssa-phiopt.cc: Likewise.
10574         * genopinit.cc: Likewise.
10575         * ipa-inline.cc: Likewise.
10576         * omp-low.cc: Likewise.
10577         * ipa-utils.cc: Likewise.
10578         * tree-ssa-math-opts.cc: Likewise.
10579         * tree-ssa-ifcombine.cc: Likewise.
10580         * gimple-range.cc: Likewise.
10581         * ipa-fnsummary.cc: Likewise.
10582         * ira-color.cc: Likewise.
10583         * value-prof.cc: Likewise.
10584         * varasm.cc: Likewise.
10585         * ipa-icf.cc: Likewise.
10586         * ira-emit.cc: Likewise.
10587         * lto-streamer.h: Likewise.
10588         * lto-wrapper.cc: Likewise.
10589         * regs.h: Likewise.
10590         * gengtype-parse.cc: Likewise.
10591         * alias.cc: Likewise.
10592         * lto-streamer.cc: Likewise.
10593         * real.h: Likewise.
10594         * wide-int.h: Likewise.
10595         * targhooks.cc: Likewise.
10596         * gimple-ssa-warn-access.cc: Likewise.
10597         * real.cc: Likewise.
10598         * ipa-reference.cc: Likewise.
10599         * bitmap.h: Likewise.
10600         * ginclude/float.h: Likewise.
10601         * ginclude/stddef.h: Likewise.
10602         * ginclude/stdarg.h: Likewise.
10603         * ginclude/stdatomic.h: Likewise.
10604         * optabs.h: Likewise.
10605         * sel-sched-ir.h: Likewise.
10606         * convert.cc: Likewise.
10607         * cgraphunit.cc: Likewise.
10608         * lra-remat.cc: Likewise.
10609         * tree-if-conv.cc: Likewise.
10610         * gcov-dump.cc: Likewise.
10611         * tree-predcom.cc: Likewise.
10612         * dominance.cc: Likewise.
10613         * gimple-range-cache.h: Likewise.
10614         * ipa-devirt.cc: Likewise.
10615         * rtl.h: Likewise.
10616         * ubsan.cc: Likewise.
10617         * tree-ssa.cc: Likewise.
10618         * ssa.h: Likewise.
10619         * cse.cc: Likewise.
10620         * jump.cc: Likewise.
10621         * hwint.h: Likewise.
10622         * caller-save.cc: Likewise.
10623         * coretypes.h: Likewise.
10624         * ipa-fnsummary.h: Likewise.
10625         * tree-ssa-strlen.cc: Likewise.
10626         * modulo-sched.cc: Likewise.
10627         * cgraphclones.cc: Likewise.
10628         * lto-cgraph.cc: Likewise.
10629         * hw-doloop.h: Likewise.
10630         * data-streamer.h: Likewise.
10631         * compare-elim.cc: Likewise.
10632         * profile-count.h: Likewise.
10633         * tree-vect-loop-manip.cc: Likewise.
10634         * ree.cc: Likewise.
10635         * reload.cc: Likewise.
10636         * tree-ssa-loop-split.cc: Likewise.
10637         * tree-into-ssa.cc: Likewise.
10638         * gcse.cc: Likewise.
10639         * cfgloopmanip.cc: Likewise.
10640         * df.h: Likewise.
10641         * fold-const.cc: Likewise.
10642         * wide-int.cc: Likewise.
10643         * gengtype-state.cc: Likewise.
10644         * sanitizer.def: Likewise.
10645         * tree-ssa-sink.cc: Likewise.
10646         * target-hooks-macros.h: Likewise.
10647         * tree-ssa-pre.cc: Likewise.
10648         * gimple-pretty-print.cc: Likewise.
10649         * ipa-utils.h: Likewise.
10650         * tree-outof-ssa.cc: Likewise.
10651         * tree-ssa-coalesce.cc: Likewise.
10652         * gimple-match.h: Likewise.
10653         * tree-ssa-loop-niter.cc: Likewise.
10654         * tree-loop-distribution.cc: Likewise.
10655         * tree-emutls.cc: Likewise.
10656         * tree-eh.cc: Likewise.
10657         * varpool.cc: Likewise.
10658         * ssa-iterators.h: Likewise.
10659         * asan.cc: Likewise.
10660         * reload1.cc: Likewise.
10661         * cfgloopanal.cc: Likewise.
10662         * tree-vectorizer.cc: Likewise.
10663         * simplify-rtx.cc: Likewise.
10664         * opts-global.cc: Likewise.
10665         * gimple-ssa-store-merging.cc: Likewise.
10666         * expmed.cc: Likewise.
10667         * tree-ssa-loop-prefetch.cc: Likewise.
10668         * tree-ssa-dse.h: Likewise.
10669         * tree-vect-stmts.cc: Likewise.
10670         * gimple-fold.cc: Likewise.
10671         * lra-coalesce.cc: Likewise.
10672         * data-streamer-out.cc: Likewise.
10673         * diagnostic.cc: Likewise.
10674         * tree-ssa-alias.cc: Likewise.
10675         * tree-vect-patterns.cc: Likewise.
10676         * common/common-target.def: Likewise.
10677         * common/config/rx/rx-common.cc: Likewise.
10678         * common/config/msp430/msp430-common.cc: Likewise.
10679         * common/config/avr/avr-common.cc: Likewise.
10680         * common/config/i386/i386-common.cc: Likewise.
10681         * common/config/pdp11/pdp11-common.cc: Likewise.
10682         * common/config/rs6000/rs6000-common.cc: Likewise.
10683         * common/config/mcore/mcore-common.cc: Likewise.
10684         * graphite.cc: Likewise.
10685         * gimple-low.cc: Likewise.
10686         * genmodes.cc: Likewise.
10687         * gimple-loop-jam.cc: Likewise.
10688         * lto-streamer-out.cc: Likewise.
10689         * predict.cc: Likewise.
10690         * omp-expand.cc: Likewise.
10691         * gimple-array-bounds.cc: Likewise.
10692         * predict.def: Likewise.
10693         * opts.h: Likewise.
10694         * tree-stdarg.cc: Likewise.
10695         * gimplify.cc: Likewise.
10696         * ira-lives.cc: Likewise.
10697         * loop-doloop.cc: Likewise.
10698         * lra.cc: Likewise.
10699         * gimple-iterator.h: Likewise.
10700         * tree-sra.cc: Likewise.
10702 2024-10-25  Jennifer Schmitz  <jschmitz@nvidia.com>
10704         * config/aarch64/aarch64-sve-builtins-sve2.cc
10705         (svaba_impl::fold): Fold svaba to svabd if op1 is all zeros.
10707 2024-10-24  Nathaniel Shead  <nathanieloshead@gmail.com>
10709         * tree.h (TYPE_WARN_IF_NOT_ALIGN_RAW): New accessor.
10710         (TYPE_WARN_IF_NOT_ALIGN): Use it.
10711         (SET_TYPE_WARN_IF_NOT_ALIGN): Likewise.
10713 2024-10-24  Georg-Johann Lay  <avr@gjlay.de>
10715         PR target/116953
10716         * config/avr/avr.cc (avr_out_sbxx_branch): Revert previous fix
10717         for PR116953 (r15-4078).  Run extract_constrain_insn_cached
10718         on the current insn after calling jump_over_one_insn_p.
10720 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
10722         PR other/116613
10723         * diagnostic-format-json.cc (make_json_for_path): Add "ref_pp"
10724         param and use when obtaining event descriptions.
10725         (json_output_format::on_report_diagnostic): Pass this format's
10726         printer as the above.
10727         * diagnostic-format-sarif.cc
10728         (sarif_builder::make_location_object): Clone this format's printer
10729         and use it to obtain the text of the message.
10730         * diagnostic-path.cc: Include "pretty-print-markup.h".
10731         (diagnostic_event::get_desc): New.
10732         (path_label::get_text): Update for changes to diagnostic_event.
10733         (event_range::print): Likewise.
10734         (class element_event_desc): New.
10735         (diagnostic_text_output_format::print_path): Update for changes to
10736         diagnostic_event.
10737         * diagnostic-path.h (diagnostic_event::get_desc): Replace with...
10738         (diagnostic_event::print_desc): ...this.
10739         (diagnostic_event::get_desc): Add this back for debugging, without
10740         the bool param.
10741         * pretty-print.cc (pp_printf_n): New.
10742         * pretty-print.h (pp_printf_n): New decl.
10743         * selftest-diagnostic-path.h (test_diagnostic_event::get_desc):
10744         Convert to...
10745         (test_diagnostic_event::print_desc): ...this.
10746         * simple-diagnostic-path.cc (simple_diagnostic_event::print_desc):
10747         New.
10748         (selftest::test_intraprocedural_path): Use debug form of get_desc.
10749         * simple-diagnostic-path.h (simple_diagnostic_event::get_desc):
10750         Convert to...
10751         (simple_diagnostic_event::print_desc): ...this, moving
10752         implementation to test_diagnostic_event.
10754 2024-10-24  Thomas Schwinge  <tschwinge@baylibre.com>
10756         PR other/116613
10757         * config/gcn/mkoffload.cc: Add '#define INCLUDE_MEMORY'.
10759 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
10760             Gaius Mulley  <gaiusmod2@gmail.com>
10762         PR other/116613
10763         * asan.cc: Add #define INCLUDE_MEMORY.
10764         * attribs.cc: Likewise.
10765         (attr_access::array_as_string): Use
10766         diagnostic_context::clone_printer and use unique_ptr.
10767         * auto-profile.cc: Add #define INCLUDE_MEMORY.
10768         * calls.cc: Likewise.
10769         * cfganal.cc: Likewise.
10770         * cfgexpand.cc: Likewise.
10771         * cfghooks.cc: Likewise.
10772         * cfgloop.cc: Likewise.
10773         * cgraph.cc: Likewise.
10774         * cgraphclones.cc: Likewise.
10775         * cgraphunit.cc: Likewise.
10776         * collect-utils.cc: Likewise.
10777         * collect2.cc: Likewise.
10778         * common/config/aarch64/aarch64-common.cc: Likewise.
10779         * common/config/arm/arm-common.cc: Likewise.
10780         * common/config/avr/avr-common.cc: Likewise.
10781         * config/aarch64/aarch64-cc-fusion.cc: Likewise.
10782         * config/aarch64/aarch64-early-ra.cc: Likewise.
10783         * config/aarch64/aarch64-sve-builtins.cc: Likewise.
10784         * config/arc/arc.cc: Likewise.
10785         * config/arm/aarch-common.cc: Likewise.
10786         * config/arm/arm-mve-builtins.cc: Likewise.
10787         * config/avr/avr-devices.cc: Likewise.
10788         * config/avr/driver-avr.cc: Likewise.
10789         * config/bpf/bpf.cc: Likewise.
10790         * config/bpf/btfext-out.cc: Likewise.
10791         * config/bpf/core-builtins.cc: Likewise.
10792         * config/darwin.cc: Likewise.
10793         * config/i386/driver-i386.cc: Likewise.
10794         * config/i386/i386-builtins.cc: Likewise.
10795         * config/i386/i386-expand.cc: Likewise.
10796         * config/i386/i386-features.cc: Likewise.
10797         * config/i386/i386-options.cc: Likewise.
10798         * config/loongarch/loongarch-builtins.cc: Likewise.
10799         * config/mingw/winnt-cxx.cc: Likewise.
10800         * config/mingw/winnt.cc: Likewise.
10801         * config/mips/mips.cc: Likewise.
10802         * config/msp430/driver-msp430.cc: Likewise.
10803         * config/nvptx/mkoffload.cc: Likewise.
10804         * config/nvptx/nvptx.cc: Likewise.
10805         * config/riscv/riscv-avlprop.cc: Likewise.
10806         * config/riscv/riscv-vector-builtins.cc: Likewise.
10807         * config/riscv/riscv-vsetvl.cc: Likewise.
10808         * config/rs6000/driver-rs6000.cc: Likewise.
10809         * config/rs6000/host-darwin.cc: Likewise.
10810         * config/rs6000/rs6000-c.cc: Likewise.
10811         * config/s390/s390-c.cc: Likewise.
10812         * config/s390/s390.cc: Likewise.
10813         * config/sol2-cxx.cc: Likewise.
10814         * config/vms/vms-c.cc: Likewise.
10815         * config/xtensa/xtensa-dynconfig.cc: Likewise.
10816         * coroutine-passes.cc: Likewise.
10817         * coverage.cc: Likewise.
10818         * data-streamer-in.cc: Likewise.
10819         * data-streamer-out.cc: Likewise.
10820         * data-streamer.cc: Likewise.
10821         * diagnostic-buffer.h (diagnostic_buffer::~diagnostic_buffer):
10822         Delete.
10823         (diagnostic_buffer::m_per_format_buffer): Use std::unique_ptr.
10824         * diagnostic-client-data-hooks.h (make_compiler_data_hooks): Use
10825         std::unique_ptr for return type.
10826         * diagnostic-format-json.cc
10827         (json_output_format::make_per_format_buffer): Likewise.
10828         (diagnostic_output_format_init_json): Update for usage of
10829         std::unique_ptr in set_output_format.
10830         * diagnostic-format-sarif.cc
10831         (sarif_output_format::make_per_format_buffer): Use std::unique_ptr
10832         for return type.
10833         (diagnostic_output_format_init_sarif): Update for usage of
10834         std::unique_ptr.
10835         (test_message_with_embedded_link): Likewise for set_urlifier.
10836         * diagnostic-format-text.cc: Add #define INCLUDE_MEMORY.  Include
10837         "make-unique.h".
10838         (diagnostic_text_output_format::set_buffer): Use std::unique_ptr.
10839         * diagnostic-format-text.h
10840         (diagnostic_text_output_format::set_buffer): Likewise.
10841         * diagnostic-format.h
10842         (diagnostic_output_format::make_per_format_buffer): Likewise.
10843         * diagnostic-global-context.cc:
10844         * diagnostic-macro-unwinding.cc: Likewise.
10845         * diagnostic-show-locus.cc: Likewise.
10846         * diagnostic-spec.cc: Likewise.
10847         * diagnostic.cc (diagnostic_context::set_output_format): Use
10848         std::unique_ptr for input.
10849         (diagnostic_context::set_client_data_hooks): Likewise.
10850         (diagnostic_context::set_option_manager): Likewise.
10851         (diagnostic_context::set_urlifier): Likewise.
10852         (diagnostic_context::set_diagnostic_buffer): Update for use of
10853         std::unique_ptr.
10854         (diagnostic_buffer::diagnostic_buffer): Likewise.
10855         (diagnostic_buffer::~diagnostic_buffer): Delete.
10856         * diagnostic.h: Complain if INCLUDE_MEMORY was not defined.
10857         (diagnostic_context::set_output_format): Use std::unique_ptr for
10858         input.
10859         (diagnostic_context::set_client_data_hooks): Likewise.
10860         (diagnostic_context::set_option_manager): Likewise.
10861         (diagnostic_context::set_urlifier): Likewise.
10862         (diagnostic_context::clone_printer): New.
10863         (diagnostic_context::m_printer): Update comment.
10864         (diagnostic_context::m_option_mgr): Likewise.
10865         (diagnostic_context::m_urlifier): Likewise.
10866         (diagnostic_context::m_edit_context_ptr): Likewise.
10867         (diagnostic_context::m_output_format): Likewise.
10868         (diagnostic_context::m_client_data_hooks): Likewise.
10869         (diagnostic_context::m_theme): Likewise.
10870         * digraph.cc: Add #define INCLUDE_MEMORY.
10871         * dwarf2out.cc: Likewise.
10872         * edit-context.cc: Likewise.
10873         * except.cc: Likewise.
10874         * expr.cc: Likewise.
10875         * file-prefix-map.cc: Likewise.
10876         * final.cc: Likewise.
10877         * fwprop.cc: Likewise.
10878         * gcc-plugin.h: Likewise.
10879         * gcc-rich-location.cc: Likewise.
10880         * gcc-urlifier.cc: Likewise.  Add #include "make-unique.h".
10881         (make_gcc_urlifier): Use std::unique_ptr and ::make_unique.
10882         * gcc-urlifier.h (make_gcc_urlifier): Use std::unique_ptr.
10883         * gcc.cc: Add #define INCLUDE_MEMORY.  Include
10884         "pretty-print-urlifier.h".
10885         * gcov-dump.cc: Add #define INCLUDE_MEMORY.
10886         * gcov-tool.cc: Likewise.
10887         * gengtype.cc (open_base_files): Likewise to output.
10888         * genmatch.cc: Likewise.
10889         * gimple-fold.cc: Likewise.
10890         * gimple-harden-conditionals.cc: Likewise.
10891         * gimple-harden-control-flow.cc: Likewise.
10892         * gimple-if-to-switch.cc: Likewise.
10893         * gimple-lower-bitint.cc: Likewise.
10894         * gimple-predicate-analysis.cc: Likewise.
10895         * gimple-pretty-print.cc: Likewise.
10896         * gimple-range-cache.cc: Likewise.
10897         * gimple-range-edge.cc: Likewise.
10898         * gimple-range-fold.cc: Likewise.
10899         * gimple-range-gori.cc: Likewise.
10900         * gimple-range-infer.cc: Likewise.
10901         * gimple-range-op.cc: Likewise.
10902         * gimple-range-path.cc: Likewise.
10903         * gimple-range-phi.cc: Likewise.
10904         * gimple-range-trace.cc: Likewise.
10905         * gimple-range.cc: Likewise.
10906         * gimple-ssa-backprop.cc: Likewise.
10907         * gimple-ssa-sprintf.cc: Likewise.
10908         * gimple-ssa-store-merging.cc: Likewise.
10909         * gimple-ssa-strength-reduction.cc: Likewise.
10910         * gimple-ssa-warn-access.cc: Likewise.
10911         * gimple-ssa-warn-alloca.cc: Likewise.
10912         * gimple-ssa-warn-restrict.cc: Likewise.
10913         * gimple-streamer-in.cc: Likewise.
10914         * gimple-streamer-out.cc: Likewise.
10915         * gimple.cc: Likewise.
10916         * gimplify.cc: Likewise.
10917         * graph.cc: Likewise.
10918         * graphviz.cc: Likewise.
10919         * input.cc: Likewise.
10920         * ipa-cp.cc: Likewise.
10921         * ipa-devirt.cc: Likewise.
10922         * ipa-fnsummary.cc: Likewise.
10923         * ipa-free-lang-data.cc: Likewise.
10924         * ipa-icf-gimple.cc: Likewise.
10925         * ipa-icf.cc: Likewise.
10926         * ipa-inline-analysis.cc: Likewise.
10927         * ipa-inline.cc: Likewise.
10928         * ipa-modref-tree.cc: Likewise.
10929         * ipa-modref.cc: Likewise.
10930         * ipa-param-manipulation.cc: Likewise.
10931         * ipa-polymorphic-call.cc: Likewise.
10932         * ipa-predicate.cc: Likewise.
10933         * ipa-profile.cc: Likewise.
10934         * ipa-prop.cc: Likewise.
10935         * ipa-pure-const.cc: Likewise.
10936         * ipa-reference.cc: Likewise.
10937         * ipa-split.cc: Likewise.
10938         * ipa-sra.cc: Likewise.
10939         * ipa-strub.cc: Likewise.
10940         * ipa-utils.cc: Likewise.
10941         * langhooks.cc: Likewise.
10942         * late-combine.cc: Likewise.
10943         * lto-cgraph.cc: Likewise.
10944         * lto-compress.cc: Likewise.
10945         * lto-opts.cc: Likewise.
10946         * lto-section-in.cc: Likewise.
10947         * lto-section-out.cc: Likewise.
10948         * lto-streamer-in.cc: Likewise.
10949         * lto-streamer-out.cc: Likewise.
10950         * lto-streamer.cc: Likewise.
10951         * lto-wrapper.cc: Likewise.  Include "make-unique.h".
10952         (main): Use ::make_unique when creating option manager.
10953         * multiple_target.cc: Likewise.
10954         * omp-expand.cc: Likewise.
10955         * omp-general.cc: Likewise.
10956         * omp-low.cc: Likewise.
10957         * omp-oacc-neuter-broadcast.cc: Likewise.
10958         * omp-offload.cc: Likewise.
10959         * omp-simd-clone.cc: Likewise.
10960         * optc-gen.awk: Likewise in output.
10961         * optc-save-gen.awk: Likewise in output.
10962         * options-urls-cc-gen.awk: Likewise in output.
10963         * opts-common.cc: Likewise.
10964         * opts-global.cc: Likewise.
10965         * opts.cc: Likewise.
10966         * pair-fusion.cc: Likewise.
10967         * passes.cc: Likewise.
10968         * pointer-query.cc: Likewise.
10969         * predict.cc: Likewise.
10970         * pretty-print.cc (pretty_printer::clone): Use std::unique_ptr and
10971         ::make_unique.
10972         * pretty-print.h: Complain if INCLUDE_MEMORY is not defined.
10973         (pretty_printer::clone): Use std::unique_ptr.
10974         * print-rtl.cc: Add #define INCLUDE_MEMORY.
10975         * print-tree.cc: Likewise.
10976         * profile-count.cc: Likewise.
10977         * range-op-float.cc: Likewise.
10978         * range-op-ptr.cc: Likewise.
10979         * range-op.cc: Likewise.
10980         * range.cc: Likewise.
10981         * read-rtl-function.cc: Likewise.
10982         * rtl-error.cc: Likewise.
10983         * rtl-ssa/accesses.cc: Likewise.
10984         * rtl-ssa/blocks.cc: Likewise.
10985         * rtl-ssa/changes.cc: Likewise.
10986         * rtl-ssa/functions.cc: Likewise.
10987         * rtl-ssa/insns.cc: Likewise.
10988         * rtl-ssa/movement.cc: Likewise.
10989         * rtl-tests.cc: Likewise.
10990         * sanopt.cc: Likewise.
10991         * sched-rgn.cc: Likewise.
10992         * selftest-diagnostic-path.cc: Likewise.
10993         * selftest-diagnostic.cc: Likewise.
10994         * splay-tree-utils.cc: Likewise.
10995         * sreal.cc: Likewise.
10996         * stmt.cc: Likewise.
10997         * substring-locations.cc: Likewise.
10998         * symtab-clones.cc: Likewise.
10999         * symtab-thunks.cc: Likewise.
11000         * symtab.cc: Likewise.
11001         * text-art/box-drawing.cc: Likewise.
11002         * text-art/canvas.cc: Likewise.
11003         * text-art/ruler.cc: Likewise.
11004         * text-art/selftests.cc: Likewise.
11005         * text-art/theme.cc: Likewise.
11006         * toplev.cc: Likewise.  Include "make-unique.h".
11007         (general_init): Use ::make_unique when setting option_manager.
11008         * trans-mem.cc: Add #define INCLUDE_MEMORY.
11009         * tree-affine.cc: Likewise.
11010         * tree-call-cdce.cc: Likewise.
11011         * tree-cfg.cc: Likewise.
11012         * tree-chrec.cc: Likewise.
11013         * tree-dfa.cc: Likewise.
11014         * tree-diagnostic-client-data-hooks.cc: Include "make-unique.h".
11015         (make_compiler_data_hooks): Use std::unique_ptr and ::make_unique.
11016         * tree-diagnostic.cc: Add #define INCLUDE_MEMORY.
11017         * tree-dump.cc: Likewise.
11018         * tree-inline.cc: Likewise.
11019         * tree-into-ssa.cc: Likewise.
11020         * tree-logical-location.cc: Likewise.
11021         * tree-nested.cc: Likewise.
11022         * tree-nrv.cc: Likewise.
11023         * tree-object-size.cc: Likewise.
11024         * tree-outof-ssa.cc: Likewise.
11025         * tree-pretty-print.cc: Likewise.
11026         * tree-profile.cc: Likewise.
11027         * tree-scalar-evolution.cc: Likewise.
11028         * tree-sra.cc: Likewise.
11029         * tree-ssa-address.cc: Likewise.
11030         * tree-ssa-alias.cc: Likewise.
11031         * tree-ssa-ccp.cc: Likewise.
11032         * tree-ssa-coalesce.cc: Likewise.
11033         * tree-ssa-copy.cc: Likewise.
11034         * tree-ssa-dce.cc: Likewise.
11035         * tree-ssa-dom.cc: Likewise.
11036         * tree-ssa-forwprop.cc: Likewise.
11037         * tree-ssa-ifcombine.cc: Likewise.
11038         * tree-ssa-loop-ch.cc: Likewise.
11039         * tree-ssa-loop-im.cc: Likewise.
11040         * tree-ssa-loop-manip.cc: Likewise.
11041         * tree-ssa-loop-niter.cc: Likewise.
11042         * tree-ssa-loop-split.cc: Likewise.
11043         * tree-ssa-math-opts.cc: Likewise.
11044         * tree-ssa-operands.cc: Likewise.
11045         * tree-ssa-phiprop.cc: Likewise.
11046         * tree-ssa-pre.cc: Likewise.
11047         * tree-ssa-propagate.cc: Likewise.
11048         * tree-ssa-reassoc.cc: Likewise.
11049         * tree-ssa-sccvn.cc: Likewise.
11050         * tree-ssa-scopedtables.cc: Likewise.
11051         * tree-ssa-sink.cc: Likewise.
11052         * tree-ssa-strlen.cc: Likewise.
11053         * tree-ssa-structalias.cc: Likewise.
11054         * tree-ssa-ter.cc: Likewise.
11055         * tree-ssa-uninit.cc: Likewise.
11056         * tree-ssa.cc: Likewise.
11057         * tree-ssanames.cc: Likewise.
11058         * tree-stdarg.cc: Likewise.
11059         * tree-streamer-in.cc: Likewise.
11060         * tree-streamer-out.cc: Likewise.
11061         * tree-streamer.cc: Likewise.
11062         * tree-switch-conversion.cc: Likewise.
11063         * tree-tailcall.cc: Likewise.
11064         * tree-vrp.cc: Likewise.
11065         * tree.cc: Likewise.
11066         * ubsan.cc: Likewise.
11067         * value-pointer-equiv.cc: Likewise.
11068         * value-prof.cc: Likewise.
11069         * value-query.cc: Likewise.
11070         * value-range-pretty-print.cc: Likewise.
11071         * value-range-storage.cc: Likewise.
11072         * value-range.cc: Likewise.
11073         * value-relation.cc: Likewise.
11074         * var-tracking.cc: Likewise.
11075         * varpool.cc: Likewise.
11076         * vr-values.cc: Likewise.
11077         * wide-int-print.cc: Likewise.
11079 2024-10-24  David Malcolm  <dmalcolm@redhat.com>
11081         * diagnostic.cc (diagnostic_context::report_diagnostic): Add
11082         comment about interaction of this code with pretty-print
11083         formatting phaes.
11085 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11087         * value-query.cc (range_query::get_tree_range): Use get_nonzero_bits
11088         to populate the irange_bitmask of a POLY_INT_CST.
11090 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11092         * match.pd: Simplify (X >> C1) * (C2 << C1) -> X * C2 if the
11093         low C1 bits of X are zero.
11095 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11097         * tree-ssanames.cc (get_nonzero_bits): Handle POLY_INT_CSTs.
11098         * match.pd (with_possible_nonzero_bits): Likewise.
11100 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11102         * match.pd: Simplify (X >> C1) << (C1 + C2) -> X << C2 if the
11103         low C1 bits of X are zero.
11105 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11107         * match.pd: Generalise ((X /[ex] A) +- B) * A -> X +- A * B rule
11108         to ((X /[ex] C1) +- C2) * (C1 * C3) -> (X * C3) +- (C1 * C2 * C3).
11110 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11112         * match.pd: Simplify (X /[ex] C1) * (C1 * C2) -> X * C2.
11114 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11116         * match.pd: Simplify X / (1 << C) to X /[ex] (1 << C) if the
11117         low C bits of X are clear
11119 2024-10-24  Richard Sandiford  <richard.sandiford@arm.com>
11121         * match.pd: Extend some rules to handle exact_div like trunc_div.
11122         * tree.h (trunc_or_exact_div_p): New function.
11123         * tree-ssa-loop-niter.cc (is_rshift_by_1): Use it.
11124         * tree-ssa-loop-ivopts.cc (force_expr_to_var_cost): Handle
11125         EXACT_DIV_EXPR.
11127 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
11129         * range-op-mixed.h (operator_bitwise_or::fold_range): Add prange
11130         variant.
11131         * range-op-ptr.cc (class pointer_or_operator): Remove.
11132         (pointer_or_operator::op1_range): Remove.
11133         (pointer_or_operator::op2_range): Remove.
11134         (pointer_or_operator::wi_fold): Remove.
11135         (operator_bitwise_or::fold_range): New prange variant.
11137 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
11139         * range-op-ptr.cc (class pointer_and_operator): Remove.
11140         (pointer_and_operator::wi_fold): Remove.
11142 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
11144         * range-op-ptr.cc (class pointer_min_max_operator): Remove.
11145         (pointer_min_max_operator::wi_fold): Remove.
11147 2024-10-24  Andrew MacLeod  <amacleod@redhat.com>
11149         * range-op-ptr.cc (pointer_plus_operator::wi_fold): Remove.
11150         (pointer_plus_operator::op2_range): Remove irange variant.
11151         (pointer_plus_operator::update_bitmask): Likewise.
11153 2024-10-24  Jakub Jelinek  <jakub@redhat.com>
11155         PR sanitizer/117209
11156         * asan.cc (maybe_cast_to_ptrmode): Formatting fix.
11157         (build_check_stmt): Don't copy *iter into gsi, perform all
11158         the updates on iter directly.
11160 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
11162         * config/aarch64/aarch64-sve-builtins-sve2.cc
11163         (svsra_impl::fold): Fold svsra to svlsr/svasr if op1 is all zeros.
11165 2024-10-24  Soumya AR  <soumyaa@nvidia.com>
11167         * config/aarch64/aarch64-sve-builtins-base.cc (svlsl_impl::fold):
11168         Try constant folding.
11169         * config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop):
11170         Return 0 if shift is out of range.
11172 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
11174         * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
11175         Fold division by -1 to svneg.
11176         (svmul_impl::fold): Fold multiplication by -1 to svneg.
11178 2024-10-24  Jennifer Schmitz  <jschmitz@nvidia.com>
11180         * config/aarch64/aarch64-sve-builtins-base.cc
11181         (svindex_impl::fold): Add constant folding.
11183 2024-10-24  Wang Pengcheng  <wangpengcheng.pp@bytedance.com>
11185         * config/riscv/riscv.cc (struct riscv_tune_param): Add new
11186         tune options.
11187         (riscv_override_options_internal): Override the default alignment
11188         when not optimizing for size.
11190 2024-10-23  Andrew Pinski  <quic_apinski@quicinc.com>
11192         * config/aarch64/aarch64.cc (aarch64_ptrue_reg): Fix type
11193         of induction variable i.
11195 2024-10-23  Andrew Pinski  <quic_apinski@quicinc.com>
11197         PR tree-optimization/117260
11198         * gimple-match-exports.cc (maybe_push_res_to_seq): Reject non-const
11199         internal functions.
11201 2024-10-23  Jonathan Wakely  <jwakely@redhat.com>
11203         * ginclude/stdalign.h (__alignas_is_defined): Define for C++.
11204         (__alignof_is_defined): Likewise.
11206 2024-10-23  David Malcolm  <dmalcolm@redhat.com>
11208         PR jit/117275
11209         * toplev.cc (toplev::finalize): Call varasm_cc_finalize.
11210         * varasm.cc (varasm_cc_finalize): New.
11211         * varasm.h (varasm_cc_finalize): New decl.
11213 2024-10-23  Pengxuan Zheng  <quic_pzheng@quicinc.com>
11215         PR target/113860
11216         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): New function.
11217         * config/aarch64/aarch64-simd.md (popcount<mode>2): Update pattern to
11218         also support V1DI mode.
11219         * config/aarch64/aarch64.cc (aarch64_ptrue_reg): New function.
11220         * config/aarch64/aarch64.md (popcount<mode>2): Add TARGET_SVE support.
11221         * config/aarch64/iterators.md (VDQHSD_V1DI): New mode iterator.
11222         (SVE_VDQ_I): Add V1DI.
11223         (bitsize): Likewise.
11224         (VPRED): Likewise.
11225         (VEC_POP_MODE): New mode attribute.
11226         (vec_pop_mode): Likewise.
11228 2024-10-23  Andrew MacLeod  <amacleod@redhat.com>
11230         PR tree-optimization/117222
11231         * range-op-ptr.cc (operator_pointer_diff::fold_range): New.
11232         (operator_pointer_diff::op1_op2_relation_effect): Remove irange
11233         variant.
11234         (operator_pointer_diff::update_bitmask): Likewise.
11236 2024-10-23  David Malcolm  <dmalcolm@redhat.com>
11238         PR fortran/105916
11239         * diagnostic-buffer.h: New file.
11240         * diagnostic-format-json.cc: Define INCLUDE_VECTOR.  Include
11241         "diagnostic-buffer.h".
11242         (class diagnostic_json_format_buffer): New subclass.
11243         (class json_output_format): Add friend class
11244         diagnostic_json_format_buffer.
11245         (json_output_format::make_per_format_buffer): New vfunc
11246         implementation.
11247         (json_output_format::set_buffer): New vfunc implementation.
11248         (json_output_format::json_output_format): Initialize m_buffer.
11249         (json_output_format::m_buffer): New field.
11250         (diagnostic_json_format_buffer::dump): New.
11251         (diagnostic_json_format_buffer::empty_p): New.
11252         (diagnostic_json_format_buffer::move_to): New.
11253         (diagnostic_json_format_buffer::clear): New.
11254         (diagnostic_json_format_buffer::flush): New.
11255         (json_output_format::on_report_diagnostic): Implement optional
11256         buffering.
11257         * diagnostic-format-sarif.cc: Include "diagnostic-buffer.h".
11258         (class diagnostic_sarif_format_buffer): New subclass.
11259         (class sarif_builder): Add friend
11260         class diagnostic_sarif_format_buffer.
11261         (sarif_builder::num_results): New accessor.
11262         (sarif_builder::get_result): New accessor.
11263         (sarif_builder::on_report_diagnostic): Add param "buffer"; use it
11264         to implement optional buffering.
11265         (diagnostic_sarif_format_buffer::dump): New.
11266         (diagnostic_sarif_format_buffer::empty_p): New.
11267         (diagnostic_sarif_format_buffer::move_to): New.
11268         (diagnostic_sarif_format_buffer::clear): New.
11269         (diagnostic_sarif_format_buffer::flush): New.
11270         (sarif_output_format::make_per_format_buffer): New vfunc
11271         implementation.
11272         (sarif_output_format::set_buffer): New vfunc implementation.
11273         (sarif_output_format::on_report_diagnostic): Pass m_buffer to
11274         sarif_builder::on_report_diagnostic.
11275         (sarif_output_format::num_results): New accessor.
11276         (sarif_output_format::get_result): New accessor.
11277         (diagnostic_output_format::diagnostic_output_format): Initialize
11278         m_buffer.
11279         (diagnostic_output_format::m_buffer): New field.
11280         (diagnostic_output_format::num_results): Get accessor.
11281         (diagnostic_output_format::get_result): Get accessor.
11282         (selftest::get_message_from_result): New.
11283         (selftest::test_buffering): New.
11284         (selftest::diagnostic_format_sarif_cc_tests): Call it.
11285         * diagnostic-format-text.cc: Include
11286         "diagnostic-client-data-hooks.h".
11287         (class diagnostic_text_format_buffer): New subclass.
11288         (diagnostic_text_format_buffer::diagnostic_text_format_buffer):
11289         New.
11290         (diagnostic_text_format_buffer::dump): New.
11291         (diagnostic_text_format_buffer::empty_p): New.
11292         (diagnostic_text_format_buffer::move_to): New.
11293         (diagnostic_text_format_buffer::clear): New.
11294         (diagnostic_text_format_buffer::flush): New.
11295         (diagnostic_text_output_format::dump): Dump m_saved_output_buffer.
11296         (diagnostic_text_output_format::set_buffer): New.
11297         (diagnostic_text_output_format::make_per_format_buffer): New.
11298         * diagnostic-format-text.h
11299         (diagnostic_text_output_format::diagnostic_text_output_format):
11300         Initialize m_saved_output_buffer.
11301         (diagnostic_text_output_format::set_buffer): New decl.
11302         (diagnostic_text_output_format::make_per_format_buffer): New decl.
11303         (diagnostic_text_output_format::m_saved_output_buffer): New field.
11304         * diagnostic-format.h (class diagnostic_per_format_buffer): New
11305         forward decl.
11306         (diagnostic_output_format::make_per_format_buffer): New vfunc.
11307         (diagnostic_output_format::set_buffer): New vfunc.
11308         * diagnostic.cc: Include "diagnostic-buffer.h".
11309         (diagnostic_context::initialize): Replace memset with call to
11310         "clear" on m_diagnostic_counters.  Initializer
11311         m_diagnostic_buffer.
11312         (diagnostic_context::finish): Call set_diagnostic_buffer with
11313         nullptr.
11314         (diagnostic_context::dump): Update for encapsulation of counts
11315         into m_diagnostic_counters.  Dump m_diagnostic_buffer.
11316         (diagnostic_context::execution_failed_p): Update for encapsulation of
11317         counts into m_diagnostic_counters.
11318         (diagnostic_context::check_max_errors): Likewise.
11319         (diagnostic_context::report_diagnostic): Likewise.  Eliminate
11320         diagnostic_check_max_errors in favor of check_max_errors.
11321         Update increment of counter to support buffering.  Eliminate
11322         diagnostic_action_after_output in favor of action_after_output.
11323         Only add fixits to m_edit_context_ptr if buffering is disabled.
11324         Only call diagnostic_output_format::after_diagnostic if buffering
11325         is disabled.
11326         (diagnostic_context::error_recursion):  Eliminate
11327         diagnostic_action_after_output in favor of action_after_output.
11328         (diagnostic_context::set_diagnostic_buffer): New.
11329         (diagnostic_context::clear_diagnostic_buffer): New.
11330         (diagnostic_context::flush_diagnostic_buffer): New.
11331         (diagnostic_counters::diagnostic_counters): New.
11332         (diagnostic_counters::dump): New.
11333         (diagnostic_counters::move_to): New.
11334         (diagnostic_counters::clear): New.
11335         (diagnostic_buffer::diagnostic_buffer): New.
11336         (diagnostic_buffer::~diagnostic_buffer): New.
11337         (diagnostic_buffer::dump): New.
11338         (diagnostic_buffer::empty_p): New.
11339         (diagnostic_buffer::move_to): New.
11340         (diagnostic_buffer::ensure_per_format_buffer): New.
11341         (c_diagnostic_cc_tests): Remove stray newline.
11342         * diagnostic.h (class diagnostic_buffer): New forward decl.
11343         (struct diagnostic_counters): New.
11344         (diagnostic_context::check_max_errors): Make private.
11345         (diagnostic_context::action_after_output): Make private.
11346         (diagnostic_context::get_output_format): Make non-const.
11347         (diagnostic_context::diagnostic_count): Update for change
11348         to m_diagnostic_counters.
11349         (diagnostic_context::set_diagnostic_buffer): New decl.
11350         (diagnostic_context::get_diagnostic_buffer): New decl.
11351         (diagnostic_context::clear_diagnostic_buffer): New decl.
11352         (diagnostic_context::flush_diagnostic_buffer): New decl.
11353         (diagnostic_context::m_diagnostic_count): Replace array with...
11354         (diagnostic_context::m_diagnostic_counters): ...this.
11355         (diagnostic_context::m_diagnostic_buffer): New field.
11356         (diagnostic_action_after_output): Delete.
11357         (diagnostic_check_max_errors): Delete.
11359 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
11361         * config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQMOV:mode>):
11362         Remove redundant mode check.
11364 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
11366         * config/aarch64/aarch64.md (copysign<GPF:mode>3): Widen immediate to
11367         vector.
11368         (copysign<GPF:mode>3_insn): Use VQ_INT_EQUIV in operand 3.
11369         * config/aarch64/iterators.md (VQ_INT_EQUIV): New iterator.
11370         (vq_int_equiv): Likewise.
11372 2024-10-23  Jason Merrill  <jason@redhat.com>
11374         * doc/extend.texi (Deprecated Features): Remove text about some
11375         no-longer-deprecated features.
11377 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
11379         * config/aarch64/aarch64.cc (enum simd_immediate_check): Add
11380         AARCH64_CHECK_XOR.
11381         (aarch64_simd_valid_xor_imm): New function.
11382         (aarch64_output_simd_imm): Add AARCH64_CHECK_XOR support.
11383         (aarch64_output_simd_xor_imm): New function.
11384         * config/aarch64/aarch64-protos.h (aarch64_output_simd_xor_imm): New
11385         prototype.
11386         (aarch64_simd_valid_xor_imm): New prototype.
11387         * config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>):
11388         Use aarch64_reg_or_xor_imm predicate and add an immediate alternative.
11389         * config/aarch64/predicates.md (aarch64_reg_or_xor_imm): Add new
11390         predicate.
11392 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
11394         * config/aarch64/aarch64-simd.md (ior<mode>3<vczle><vczbe>):
11395         Use aarch64_reg_or_orr_imm predicate.  Combine SVE/AdvSIMD immediates
11396         and use aarch64_output_simd_orr_imm.
11397         * config/aarch64/aarch64.cc (struct simd_immediate_info): Add SVE_MOV.
11398         (aarch64_sve_valid_immediate): Use SVE_MOV for SVE move immediates.
11399         (aarch64_simd_valid_imm): Enable SVE SIMD immediates when possible.
11400         (aarch64_output_simd_imm): Support emitting SVE SIMD immediates.
11401         * config/aarch64/predicates.md (aarch64_orr_imm_sve_advsimd): Remove.
11403 2024-10-23  Wilco Dijkstra  <wilco.dijkstra@arm.com>
11405         * config/aarch64/aarch64-protos.h (enum simd_immediate_check): Move to aarch64.cc.
11406         (aarch64_output_simd_mov_immediate): Remove.
11407         (aarch64_output_simd_mov_imm): New prototype.
11408         (aarch64_output_simd_orr_imm): Likewise.
11409         (aarch64_output_simd_and_imm): Likewise.
11410         (aarch64_simd_valid_immediate): Remove.
11411         (aarch64_simd_valid_and_imm): New prototype.
11412         (aarch64_simd_valid_mov_imm): Likewise.
11413         (aarch64_simd_valid_orr_imm): Likewise.
11414         * config/aarch64/aarch64-simd.md: Use aarch64_output_simd_mov_imm.
11415         * config/aarch64/aarch64.cc (enum simd_immediate_check): Moved from aarch64-protos.h.
11416         Use AARCH64_CHECK_AND rather than AARCH64_CHECk_BIC.
11417         (aarch64_expand_sve_const_vector): Use aarch64_simd_valid_mov_imm.
11418         (aarch64_expand_mov_immediate): Likewise.
11419         (aarch64_can_const_movi_rtx_p): Likewise.
11420         (aarch64_secondary_reload): Likewise.
11421         (aarch64_legitimate_constant_p): Likewise.
11422         (aarch64_advsimd_valid_immediate): Simplify checks on 'which' param.
11423         (aarch64_sve_valid_immediate): Add extra param for move vs logical.
11424         (aarch64_simd_valid_immediate): Rename to aarch64_simd_valid_imm.
11425         (aarch64_simd_valid_mov_imm): New function.
11426         (aarch64_simd_valid_orr_imm): Likewise.
11427         (aarch64_simd_valid_and_imm): Likewise.
11428         (aarch64_mov_operand_p): Use aarch64_simd_valid_mov_imm.
11429         (aarch64_simd_scalar_immediate_valid_for_move): Likewise.
11430         (aarch64_simd_make_constant): Likewise.
11431         (aarch64_expand_vector_init_fallback): Likewise.
11432         (aarch64_output_simd_mov_immediate): Rename to aarch64_output_simd_imm.
11433         (aarch64_output_simd_orr_imm): New function.
11434         (aarch64_output_simd_and_imm): Likewise.
11435         (aarch64_output_simd_mov_imm): Likewise.
11436         (aarch64_output_scalar_simd_mov_immediate): Use aarch64_output_simd_mov_imm.
11437         (aarch64_output_sve_mov_immediate): Use aarch64_simd_valid_imm.
11438         (aarch64_output_sve_ptrues): Likewise.
11439         * config/aarch64/constraints.md (Do): Use aarch64_simd_valid_orr_imm.
11440         (Db): Use aarch64_simd_valid_and_imm.
11441         * config/aarch64/predicates.md (aarch64_reg_or_bic_imm): Use aarch64_simd_valid_orr_imm.
11442         (aarch64_reg_or_and_imm): Use aarch64_simd_valid_and_imm.
11444 2024-10-23  liuhongt  <hongtao.liu@intel.com>
11446         PR target/117240
11447         * config/i386/i386-builtin.def: Add avx/avx512f to vaes
11448         ymm/zmm builtins.
11450 2024-10-23  Martin Jambor  <mjambor@suse.cz>
11452         PR tree-optimization/117142
11453         * tree-sra.cc (build_access_from_call_arg): Disqualify any
11454         candidate passed to a function returning twice.
11456 2024-10-23  Jakub Jelinek  <jakub@redhat.com>
11458         * doc/invoke.texi (Wleading-whitespace=): Document.
11460 2024-10-23  liuhongt  <hongtao.liu@intel.com>
11462         PR target/117232
11463         * config/i386/sse.md (*kortest_cmp<SWI1248_AVX512BWDQ_64:mode>_movqicc):
11464         New define_insn_and_split.
11465         (*kortest_cmp<SWI1248_AVX512BWDQ_64:mode>_mov<SWI248:mode>cc):
11466         Ditto.
11468 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
11470         PR middle-end/117199
11471         * varasm.cc (compare_constant): Handle RAW_DATA_CST.  Formatting fix
11472         in the STRING_CST case.
11474 2024-10-22  Jakub Jelinek  <jakub@redhat.com>
11476         PR c/117190
11477         * varasm.cc (array_size_for_constructor): For RAW_DATA_CST,
11478         use bitsize_int rather than size_int.
11480 2024-10-22  Tobias Burnus  <tburnus@baylibre.com>
11482         * config/gcn/gcn-devices.def: Add generic version/flag as additional
11483         value and architecture family entry; update; add gfx-10-3-generic
11484         and gfx11-generic.
11485         * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove
11486         (ASM_SPEC): Use generated ABI_VERSION_OPT instead.
11487         * config/gcn/gcn-tables.opt: Regenerate
11488         * config/gcn/gcn.h (gcn_device_def): Add generic_version and
11489         arch_family members.
11490         (TARGET_CPU_CPP_BUILTINS): Fix allocation bug, handle '-' in the
11491         name and add additional macro defines.
11492         * config/gcn/gcn.cc (gcn_devices): Handle it.
11493         * config/gcn/gen-gcn-device-macros.awk: Likewise; use ELF name
11494         for the macro name; generate ABI_VERSION_OPT.
11495         * config/gcn/mkoffload.cc (ELFABIVERSION_AMDGPU_HSA_V6,
11496         EF_AMDGPU_GENERIC_VERSION_V, EF_AMDGPU_GENERIC_VERSION_OFFSET,
11497         GET_GENERIC_VERSION, SET_GENERIC_VERSION): Define.
11498         (get_arch): Call SET_GENERIC_VERSION flag on elf_flags.
11499         (copy_early_debug_info): If the arch sets the generic version,
11500         use ELFABIVERSION_AMDGPU_HSA_V6.
11502 2024-10-22  Richard Biener  <rguenther@suse.de>
11504         PR tree-optimization/117254
11505         * gimple-ssa-warn-access.cc (maybe_warn_nonstring_arg):
11506         Check the array domain max is constant before using it.
11508 2024-10-22  Andrew Stubbs  <ams@baylibre.com>
11509             Tobias Burnus  <tburnus@baylibre.com>
11511         * config.gcc (amdgcn): Add gcn-device-macros.h to tm_file.
11512         Add gcn-tables.opt to extra_options.
11513         * config/gcn/gcn-hsa.h (NO_XNACK): Delete.
11514         (NO_SRAM_ECC): Delete.
11515         (SRAMOPT): Move definition to generated file gcn-device-macros.h.
11516         (XNACKOPT): Likewise.
11517         (ASM_SPEC): Redefine using generated values from gcn-device-macros.h.
11518         * config/gcn/gcn-opts.h
11519         (enum processor_type): Generate from gcn-devices.def.
11520         (TARGET_VEGA10): Delete.
11521         (TARGET_VEGA20): Delete.
11522         (TARGET_GFX908): Delete.
11523         (TARGET_GFX90a): Delete.
11524         (TARGET_GFX90c): Delete.
11525         (TARGET_GFX1030): Delete.
11526         (TARGET_GFX1036): Delete.
11527         (TARGET_GFX1100): Delete.
11528         (TARGET_GFX1103): Delete.
11529         (TARGET_XNACK): Redefine to allow for HSACO_ATTR_UNSUPPORTED.
11530         (enum hsaco_attr_type): Add HSACO_ATTR_UNSUPPORTED.
11531         (TARGET_TGSPLIT): New define.
11532         * config/gcn/gcn.cc (gcn_devices): New constant table.
11533         (gcn_option_override): Rework to use gcn_devices table.
11534         (gcn_omp_device_kind_arch_isa): Likewise.
11535         (output_file_start): Likewise.
11536         (gcn_hsa_declare_function_name): Rework using TARGET_* macros.
11537         * config/gcn/gcn.h (gcn_devices): Declare struct and table.
11538         (TARGET_CPU_CPP_BUILTINS): Rework using gcn_devices.
11539         * config/gcn/gcn.opt: Move enum data to generated file gcn-tables.opt.
11540         Use new names for the default values.
11541         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX900): Delete.
11542         (EF_AMDGPU_MACH_AMDGCN_GFX906): Delete.
11543         (EF_AMDGPU_MACH_AMDGCN_GFX908): Delete.
11544         (EF_AMDGPU_MACH_AMDGCN_GFX90a): Delete.
11545         (EF_AMDGPU_MACH_AMDGCN_GFX90c): Delete.
11546         (EF_AMDGPU_MACH_AMDGCN_GFX1030): Delete.
11547         (EF_AMDGPU_MACH_AMDGCN_GFX1036): Delete.
11548         (EF_AMDGPU_MACH_AMDGCN_GFX1100): Delete.
11549         (EF_AMDGPU_MACH_AMDGCN_GFX1103): Delete.
11550         (enum elf_arch_code): Define using gcn-devices.def.
11551         (get_arch): Rework using gcn-devices.def.
11552         (main): Rework using gcn-devices.def
11553         * config/gcn/t-gcn-hsa (gcn-tables.opt): Generate file.
11554         (gcn-device-macros.h): Generate file.
11555         * config/gcn/t-omp-device: Generate isa list from gcn-devices.def.
11556         * config/gcn/gcn-devices.def: New file.
11557         * config/gcn/gcn-tables.opt: New file.
11558         * config/gcn/gcn-tables.opt.urls: New file.
11559         * config/gcn/gen-gcn-device-macros.awk: New file.
11560         * config/gcn/gen-opt-tables.awk: New file.
11562 2024-10-22  Richard Biener  <rguenther@suse.de>
11564         PR tree-optimization/117123
11565         * tree-ssa-sccvn.cc (visit_phi): First process a non-constant
11566         argument edge to handle more equivalences.  Remove the
11567         two-arg special case.
11569 2024-10-22  xuli  <xuli1@eswincomputing.com>
11571         * match.pd: Support IMM=1.
11573 2024-10-22  xuli  <xuli1@eswincomputing.com>
11575         * match.pd: Support IMM=max-1.
11577 2024-10-21  Jeff Law  <jlaw@ventanamicro.com>
11579         PR rtl-optimization/116488
11580         PR rtl-optimization/116579
11581         PR rtl-optimization/116915
11582         PR rtl-optimization/117226
11583         * ext-dce.cc (carry_backpropagate): Properly handle SIGN_EXTEND, add
11584         ZERO_EXTEND handling as well.
11585         (ext_dce_process_uses): Call carry_backpropagate before the optimization
11586         step.
11588 2024-10-21  Pan Li  <pan2.li@intel.com>
11590         * config/riscv/autovec.md (sstrunc<mode><v_double_trunc>2): Add
11591         new pattern sstrunc for double trunc.
11592         (sstrunc<mode><v_quad_trunc>2): Ditto but for quad trunc.
11593         (sstrunc<mode><v_oct_trunc>2): Ditto but for oct trunc.
11594         * config/riscv/riscv-protos.h (expand_vec_double_sstrunc): Add
11595         new func decl to expand double trunc.
11596         (expand_vec_quad_sstrunc): Ditto but for quad trunc.
11597         (expand_vec_oct_sstrunc): Ditto but for oct trunc.
11598         * config/riscv/riscv-v.cc (expand_vec_double_sstrunc): Add new
11599         func to expand double trunc.
11600         (expand_vec_quad_sstrunc): Ditto but for quad trunc.
11601         (expand_vec_oct_sstrunc): Ditto but for oct trunc.
11603 2024-10-21  Pan Li  <pan2.li@intel.com>
11605         * tree-vect-patterns.cc (gimple_signed_integer_sat_trunc): Add
11606         new func decl for signed SAT_TRUNC.
11607         (vect_recog_sat_trunc_pattern): Try signed match pattern for
11608         the SAT_TRUNC.
11610 2024-10-21  Pan Li  <pan2.li@intel.com>
11612         * match.pd: Refine matching for vector signed SAT_TRUNC form 1.
11614 2024-10-21  Andrew Carlotti  <andrew.carlotti@arm.com>
11616         * config/aarch64/aarch64.cc (aarch64_register_move_cost):
11617         Increase costs involving MOVEABLE_SYSREGS.
11619 2024-10-21  Andrew Stubbs  <ams@baylibre.com>
11621         * config/gcn/gcn.h (SGPR_REGNO_P): Silence warning.
11623 2024-10-21  Alex Coplan  <alex.coplan@arm.com>
11625         PR rtl-optimization/116783
11626         * pair-fusion.cc (def_walker::cand_addr_uses): New.
11627         (def_walker::def_walker): Add parameter for candidate address
11628         uses.
11629         (def_walker::alias_conflict_p): Declare.
11630         (def_walker::addr_reg_conflict_p): New.
11631         (def_walker::conflict_p): New.
11632         (store_walker::store_walker): Add parameter for candidate
11633         address uses and pass to base ctor.
11634         (store_walker::conflict_p): Rename to ...
11635         (store_walker::alias_conflict_p): ... this.
11636         (load_walker::load_walker): Add parameter for candidate
11637         address uses and pass to base ctor.
11638         (load_walker::conflict_p): Rename to ...
11639         (load_walker::alias_conflict_p): ... this.
11640         (pair_fusion_bb_info::try_fuse_pair): Collect address register
11641         uses for candidate insns and pass down to alias walkers.
11643 2024-10-21  Jeevitha  <jeevitha@linux.ibm.com>
11645         * config/rs6000/amo.h (enum _AMO_LD): Correct the function code for
11646         _AMO_LD_DEC_BOUNDED.
11648 2024-10-21  Haochen Jiang  <haochen.jiang@intel.com>
11650         * common/config/i386/cpuinfo.h (get_intel_cpu): Refactor the
11651         function for future expansion on different family.
11653 2024-10-21  liuhongt  <hongtao.liu@intel.com>
11655         PR target/117159
11656         * config/i386/sse.md
11657         (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
11658         Change from define_insn_and_split to define_insn.
11659         (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
11660         Ditto.
11661         (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
11662         Ditto.
11663         (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
11664         Ditto.
11665         (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11666         Split to the zero_extend pattern.
11667         (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11668         Ditto.
11669         (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11670         Ditto.
11671         (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11672         Ditto.
11674 2024-10-20  Jeff Law  <jlaw@ventanamicro.com>
11676         Revert:
11677         2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
11679         * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
11680         New function.
11681         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
11683 2024-10-19  Andrew Pinski  <quic_apinski@quicinc.com>
11685         PR tree-optimization/112418
11686         * tree-ssa-phiopt.cc (is_factor_profitable): New function.
11687         (factor_out_conditional_operation): Add merge argument. Remove
11688         arg0/arg1 arguments. Return bool instead of the new phi.
11689         Early return for virtual ops. Call is_factor_profitable to
11690         check if the factoring would be profitable.
11691         (pass_phiopt::execute): Call factor_out_conditional_operation
11692         on all phis instead of just singleton phi.
11693         * doc/invoke.texi (--param phiopt-factor-max-stmts-live=): Document.
11694         * params.opt (--param=phiopt-factor-max-stmts-live=): New opt.
11696 2024-10-19  Greg McGary  <gkm@rivosinc.com>
11698         * config/riscv/autovec.md (vec_mask_len_load_lanes, vec_mask_len_store_lanes):
11699         Predicate with TARGET_VECTOR_AUTOVEC_SEGMENT
11700         * config/riscv/riscv-opts.h (TARGET_VECTOR_AUTOVEC_SEGMENT): New macro.
11701         * config/riscv/riscv.opt (-m(no-)autovec-segment): New option.
11703 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
11705         * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
11706         New function.
11707         (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Define.
11709 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
11711         * config/riscv/riscv-string.cc (struct stringop_info): New.
11712         (expand_block_move): Move decision making code to...
11713         (use_vector_stringop_p): ...here.
11715 2024-10-19  Craig Blackmore  <craig.blackmore@embecosm.com>
11717         * config/riscv/riscv-protos.h (get_lmul_mode): New prototype.
11718         (expand_block_move): Add bool parameter for movmem_p.
11719         * config/riscv/riscv-string.cc (riscv_expand_block_move_scalar):
11720         Pass movmem_p as false to riscv_vector::expand_block_move.
11721         (expand_block_move): Add movmem_p parameter.  Return false if
11722         loop needed and movmem_p is true.  Respect TARGET_MAX_LMUL.
11723         * config/riscv/riscv-v.cc (get_lmul_mode): New function.
11724         * config/riscv/riscv.md (movmem<mode>): Move checking for
11725         whether to generate inline vector code to
11726         riscv_vector::expand_block_move by passing movmem_p as true.
11728 2024-10-19  David Malcolm  <dmalcolm@redhat.com>
11730         * diagnostic.h (json::value): Remove forward decl.
11732 2024-10-19  David Malcolm  <dmalcolm@redhat.com>
11734         * diagnostic-format-json.cc (json_output_format::dump): New.
11735         * diagnostic-format-sarif.cc (sarif_output_format::dump): New.
11736         (sarif_file_output_format::dump): New.
11737         * diagnostic-format-text.cc (diagnostic_text_output_format::dump):
11738         New.
11739         * diagnostic-format-text.h (diagnostic_text_output_format::dump):
11740         New decl.
11741         * diagnostic-format.h (diagnostic_output_format::dump): New decls.
11742         * diagnostic.cc (diagnostic_context::dump): New.
11743         (diagnostic_output_format::dump): New.
11744         * diagnostic.h (diagnostic_context::dump): New decls.
11745         * pretty-print-format-impl.h (pp_formatted_chunks::dump): Add
11746         "indent" param.
11747         * pretty-print.cc (bytes_per_hexdump_line): New constant.
11748         (print_hexdump_line): New.
11749         (print_hexdump): New.
11750         (output_buffer::dump): Add "indent" param and use it.  Add
11751         hexdump of current object in m_formatted_obstack and
11752         m_chunk_obstack.
11753         (pp_formatted_chunks::dump): Add "indent" param and use it.
11754         (pretty_printer::dump): Likewise.  Add dumping of m_show_color
11755         and m_url_format.
11756         * pretty-print.h (output_buffer::dump): Add "indent" param.
11757         (pretty_printer::dump): Likewise.
11759 2024-10-18  Alejandro Colomar  <alx@kernel.org>
11761         * tree.h (array_type_nelts_top)
11762         * tree.cc (array_type_nelts_top):
11763         Define function (moved from gcc/cp/).
11765 2024-10-18  Alejandro Colomar  <alx@kernel.org>
11767         * tree.cc (array_type_nelts, array_type_nelts_minus_one)
11768         * tree.h (array_type_nelts, array_type_nelts_minus_one)
11769         * expr.cc (count_type_elements)
11770         * config/aarch64/aarch64.cc
11771         (pure_scalable_type_info::analyze_array)
11772         * config/i386/i386.cc (ix86_canonical_va_list_type):
11773         Rename array_type_nelts => array_type_nelts_minus_one
11774         The old name was misleading.
11776 2024-10-18  John David Anglin  <danglin@gcc.gnu.org>
11778         * config/pa/pa.opt.urls: Fix for -mlra.
11780 2024-10-18  John David Anglin  <danglin@gcc.gnu.org>
11782         PR target/113933
11783         * config/pa/pa.cc (pa_use_lra_p): Declare.
11784         (TARGET_LRA_P): Change define to pa_use_lra_p.
11785         (pa_use_lra_p): New function.
11786         (legitimize_pic_address): Also check lra_in_progress.
11787         (pa_emit_move_sequence): Likewise.
11788         (pa_legitimate_constant_p): Likewise.
11789         (pa_legitimate_address_p): Likewise.
11790         (pa_secondary_reload): For floating-point loads and stores,
11791         return NO_REGS for REG and SUBREG operands.  Return
11792         GENERAL_REGS for some shift register spills.
11793         * config/pa/pa.opt: Add mlra option.
11794         * config/pa/predicates.md (integer_store_memory_operand):
11795         Also check lra_in_progress.
11796         (floating_point_store_memory_operand): Likewise.
11797         (reg_before_reload_operand): Likewise.
11799 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
11801         * config/riscv/riscv-string.cc (expand_block_move): Fix
11802         condition for using smaller LMUL.  Break outer loop if a
11803         suitable vmode has been found.
11805 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
11807         * config/riscv/riscv-string.cc (expand_block_move): Replace
11808         `end` with `length_rtx` in gen_rtx_NE.
11810 2024-10-18  Craig Blackmore  <craig.blackmore@embecosm.com>
11812         * config/riscv/riscv-string.cc (expand_block_move): Fix
11813         indentation.
11815 2024-10-18  Uros Bizjak  <ubizjak@gmail.com>
11817         PR target/117192
11818         * config/i386/mmx.md (andn<MMXMODEI:mode>3): Swap operand
11819         indexes 1 and 2 to comply with andn specification.
11821 2024-10-18  Jennifer Schmitz  <jschmitz@nvidia.com>
11823         * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
11824         Refactor using fold_active_lanes_to and fold to dividend, is the
11825         divisor is all ones.
11826         (svmul_impl::fold): Refactor using fold_active_lanes_to and fold
11827         to the other operand, if one of the operands is all ones.
11828         * config/aarch64/aarch64-sve-builtins.h: Declare
11829         gimple_folder::fold_active_lanes_to (tree).
11830         * config/aarch64/aarch64-sve-builtins.cc
11831         (gimple_folder::fold_actives_lanes_to): Add new method to fold
11832         actives lanes to given argument and setting inactives lanes
11833         according to the predication.
11835 2024-10-18  Richard Biener  <rguenther@suse.de>
11837         * tree-vect-slp.cc (vect_build_slp_tree_2): Only expect
11838         IFN_MASK_LOAD for masked loads that are not
11839         STMT_VINFO_GATHER_SCATTER_P.
11841 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
11843         PR tree-optimization/117140
11844         * tree-vect-slp.cc (vectorize_slp_instance_root_stmt): Use gsi from
11845         original statement.
11847 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
11849         * tree-vect-generic.cc (lower_vec_perm): Use output vector size instead
11850         of input vector when determining output nunits.
11852 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
11854         * config/aarch64/aarch64.cc (aarch64_output_sve_mov_immediate): Use
11855         fmov for SVE zeros.
11857 2024-10-18  Tamar Christina  <tamar.christina@arm.com>
11859         * config/aarch64/aarch64.cc (aarch64_sve_valid_immediate,
11860         aarch64_simd_valid_immediate): Refactor accepting modes and values.
11861         (aarch64_float_const_representable_p): Refactor and extract FP checks
11862         into ...
11863         (aarch64_real_float_const_representable_p): ...This and fix fail
11864         fallback from real_to_integer.
11865         (aarch64_advsimd_valid_immediate): Use it.
11867 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11869         * config/arm/arm-mve-builtins-shapes.cc (long_type_suffix): New.
11870         (half_type_suffix): New.
11871         (struct binary_move_narrow_def): Use new helper.
11872         (struct binary_move_narrow_unsigned_def): Likewise.
11873         (struct binary_rshift_narrow_def): Likewise.
11874         (struct binary_rshift_narrow_unsigned_def): Likewise.
11875         (struct binary_widen_def): Likewise.
11876         (struct binary_widen_n_def): Likewise.
11877         (struct binary_widen_opt_n_def): Likewise.
11878         (struct unary_widen_def): Likewise.
11880 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11882         * config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): Add
11883         support for vsbciq and vsbcq.
11884         (vadciq, vadcq): Add new parameter.
11885         (vsbciq): New.
11886         (vsbcq): New.
11887         * config/arm/arm-mve-builtins-base.def (vsbciq): New.
11888         (vsbcq): New.
11889         * config/arm/arm-mve-builtins-base.h (vsbciq): New.
11890         (vsbcq): New.
11891         * config/arm/arm_mve.h (vsbciq): Delete.
11892         (vsbciq_m): Delete.
11893         (vsbcq): Delete.
11894         (vsbcq_m): Delete.
11895         (vsbciq_s32): Delete.
11896         (vsbciq_u32): Delete.
11897         (vsbciq_m_s32): Delete.
11898         (vsbciq_m_u32): Delete.
11899         (vsbcq_s32): Delete.
11900         (vsbcq_u32): Delete.
11901         (vsbcq_m_s32): Delete.
11902         (vsbcq_m_u32): Delete.
11903         (__arm_vsbciq_s32): Delete.
11904         (__arm_vsbciq_u32): Delete.
11905         (__arm_vsbciq_m_s32): Delete.
11906         (__arm_vsbciq_m_u32): Delete.
11907         (__arm_vsbcq_s32): Delete.
11908         (__arm_vsbcq_u32): Delete.
11909         (__arm_vsbcq_m_s32): Delete.
11910         (__arm_vsbcq_m_u32): Delete.
11911         (__arm_vsbciq): Delete.
11912         (__arm_vsbciq_m): Delete.
11913         (__arm_vsbcq): Delete.
11914         (__arm_vsbcq_m): Delete.
11916 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11918         * config/arm/arm-mve-builtins-base.cc (vadcq_vsbc): Add support
11919         for vadcq.
11920         * config/arm/arm-mve-builtins-base.def (vadcq): New.
11921         * config/arm/arm-mve-builtins-base.h (vadcq): New.
11922         * config/arm/arm_mve.h (vadcq): Delete.
11923         (vadcq_m): Delete.
11924         (vadcq_s32): Delete.
11925         (vadcq_u32): Delete.
11926         (vadcq_m_s32): Delete.
11927         (vadcq_m_u32): Delete.
11928         (__arm_vadcq_s32): Delete.
11929         (__arm_vadcq_u32): Delete.
11930         (__arm_vadcq_m_s32): Delete.
11931         (__arm_vadcq_m_u32): Delete.
11932         (__arm_vadcq): Delete.
11933         (__arm_vadcq_m): Delete.
11935 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11937         * config/arm/arm-mve-builtins-base.cc (class vadc_vsbc_impl): New.
11938         (vadciq): New.
11939         * config/arm/arm-mve-builtins-base.def (vadciq): New.
11940         * config/arm/arm-mve-builtins-base.h (vadciq): New.
11941         * config/arm/arm_mve.h (vadciq): Delete.
11942         (vadciq_m): Delete.
11943         (vadciq_s32): Delete.
11944         (vadciq_u32): Delete.
11945         (vadciq_m_s32): Delete.
11946         (vadciq_m_u32): Delete.
11947         (__arm_vadciq_s32): Delete.
11948         (__arm_vadciq_u32): Delete.
11949         (__arm_vadciq_m_s32): Delete.
11950         (__arm_vadciq_m_u32): Delete.
11951         (__arm_vadciq): Delete.
11952         (__arm_vadciq_m): Delete.
11954 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11956         * config/arm/iterators.md (mve_insn): Add VADCIQ_M_S, VADCIQ_M_U,
11957         VADCIQ_U, VADCIQ_S, VADCQ_M_S, VADCQ_M_U, VADCQ_S, VADCQ_U,
11958         VSBCIQ_M_S, VSBCIQ_M_U, VSBCIQ_S, VSBCIQ_U, VSBCQ_M_S, VSBCQ_M_U,
11959         VSBCQ_S, VSBCQ_U.
11960         (VADCIQ, VSBCIQ): Merge into ...
11961         (VxCIQ): ... this.
11962         (VADCIQ_M, VSBCIQ_M): Merge into ...
11963         (VxCIQ_M): ... this.
11964         (VSBCQ, VADCQ): Merge into ...
11965         (VxCQ): ... this.
11966         (VSBCQ_M, VADCQ_M): Merge into ...
11967         (VxCQ_M): ... this.
11968         * config/arm/mve.md
11969         (mve_vadciq_<supf>v4si, mve_vsbciq_<supf>v4si): Merge into ...
11970         (@mve_<mve_insn>q_<supf>v4si): ... this.
11971         (mve_vadciq_m_<supf>v4si, mve_vsbciq_m_<supf>v4si): Merge into ...
11972         (@mve_<mve_insn>q_m_<supf>v4si): ... this.
11973         (mve_vadcq_<supf>v4si, mve_vsbcq_<supf>v4si): Merge into ...
11974         (@mve_<mve_insn>q_<supf>v4si): ... this.
11975         (mve_vadcq_m_<supf>v4si, mve_vsbcq_m_<supf>v4si): Merge into ...
11976         (@mve_<mve_insn>q_m_<supf>v4si): ... this.
11978 2024-10-18  Christophe Lyon  <chrirstophe.lyon@linaro.org>
11980         * config/arm/arm-mve-builtins-shapes.cc (vadc_vsbc): New.
11981         * config/arm/arm-mve-builtins-shapes.h (vadc_vsbc): New.
11983 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11985         * config/arm/arm-builtins.cc
11986         (arm_ternop_unone_none_unone_imm_qualifiers)
11987         (-arm_ternop_none_none_unone_imm_qualifiers): Delete.
11988         * config/arm/arm_mve_builtins.def (vshlcq_m_vec_s)
11989         (vshlcq_m_carry_s, vshlcq_m_vec_u, vshlcq_m_carry_u): Delete.
11990         * config/arm/mve.md (mve_vshlcq_vec_<supf><mode>): Delete.
11991         (mve_vshlcq_carry_<supf><mode>): Delete.
11992         (mve_vshlcq_m_vec_<supf><mode>): Delete.
11993         (mve_vshlcq_m_carry_<supf><mode>): Delete.
11995 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
11997         * config/arm/arm-mve-builtins-base.cc (class vshlc_impl): New.
11998         (vshlc): New.
11999         * config/arm/arm-mve-builtins-base.def (vshlcq): New.
12000         * config/arm/arm-mve-builtins-base.h (vshlcq): New.
12001         * config/arm/arm-mve-builtins.cc
12002         (function_instance::has_inactive_argument): Handle vshlc.
12003         * config/arm/arm_mve.h (vshlcq): Delete.
12004         (vshlcq_m): Delete.
12005         (vshlcq_s8): Delete.
12006         (vshlcq_u8): Delete.
12007         (vshlcq_s16): Delete.
12008         (vshlcq_u16): Delete.
12009         (vshlcq_s32): Delete.
12010         (vshlcq_u32): Delete.
12011         (vshlcq_m_s8): Delete.
12012         (vshlcq_m_u8): Delete.
12013         (vshlcq_m_s16): Delete.
12014         (vshlcq_m_u16): Delete.
12015         (vshlcq_m_s32): Delete.
12016         (vshlcq_m_u32): Delete.
12017         (__arm_vshlcq_s8): Delete.
12018         (__arm_vshlcq_u8): Delete.
12019         (__arm_vshlcq_s16): Delete.
12020         (__arm_vshlcq_u16): Delete.
12021         (__arm_vshlcq_s32): Delete.
12022         (__arm_vshlcq_u32): Delete.
12023         (__arm_vshlcq_m_s8): Delete.
12024         (__arm_vshlcq_m_u8): Delete.
12025         (__arm_vshlcq_m_s16): Delete.
12026         (__arm_vshlcq_m_u16): Delete.
12027         (__arm_vshlcq_m_s32): Delete.
12028         (__arm_vshlcq_m_u32): Delete.
12029         (__arm_vshlcq): Delete.
12030         (__arm_vshlcq_m): Delete.
12031         * config/arm/mve.md (mve_vshlcq_<supf><mode>): Add '@' prefix.
12032         (mve_vshlcq_m_<supf><mode>): Likewise.
12034 2024-10-18  Christophe Lyon  <chrirstophe.lyon@linaro.org>
12036         * config/arm/arm-mve-builtins-shapes.cc (vshlc): New.
12037         * config/arm/arm-mve-builtins-shapes.h (vshlc): New.
12039 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12041         * config/arm/arm-builtins.cc
12042         (arm_quinop_unone_unone_unone_unone_imm_pred_qualifiers): Delete.
12043         * config/arm/arm_mve_builtins.def (viwdupq_wb_u, vdwdupq_wb_u)
12044         (viwdupq_m_wb_u, vdwdupq_m_wb_u, viwdupq_m_n_u, vdwdupq_m_n_u)
12045         (vdwdupq_n_u, viwdupq_n_u): Delete.
12046         * config/arm/mve.md (mve_vdwdupq_n_u<mode>): Delete.
12047         (mve_vdwdupq_wb_u<mode>): Delete.
12048         (mve_vdwdupq_m_n_u<mode>): Delete.
12049         (mve_vdwdupq_m_wb_u<mode>): Delete.
12051 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12053         * config/arm/arm-mve-builtins-base.cc (viddup_impl): Add support
12054         for wrapping versions.
12055         (vdwdupq): New.
12056         (viwdupq): New.
12057         * config/arm/arm-mve-builtins-base.def (vdwdupq): New.
12058         (viwdupq): New.
12059         * config/arm/arm-mve-builtins-base.h (vdwdupq): New.
12060         (viwdupq): New.
12061         * config/arm/arm_mve.h (vdwdupq_m): Delete.
12062         (vdwdupq_u8): Delete.
12063         (vdwdupq_u32): Delete.
12064         (vdwdupq_u16): Delete.
12065         (viwdupq_m): Delete.
12066         (viwdupq_u8): Delete.
12067         (viwdupq_u32): Delete.
12068         (viwdupq_u16): Delete.
12069         (vdwdupq_x_u8): Delete.
12070         (vdwdupq_x_u16): Delete.
12071         (vdwdupq_x_u32): Delete.
12072         (viwdupq_x_u8): Delete.
12073         (viwdupq_x_u16): Delete.
12074         (viwdupq_x_u32): Delete.
12075         (vdwdupq_m_n_u8): Delete.
12076         (vdwdupq_m_n_u32): Delete.
12077         (vdwdupq_m_n_u16): Delete.
12078         (vdwdupq_m_wb_u8): Delete.
12079         (vdwdupq_m_wb_u32): Delete.
12080         (vdwdupq_m_wb_u16): Delete.
12081         (vdwdupq_n_u8): Delete.
12082         (vdwdupq_n_u32): Delete.
12083         (vdwdupq_n_u16): Delete.
12084         (vdwdupq_wb_u8): Delete.
12085         (vdwdupq_wb_u32): Delete.
12086         (vdwdupq_wb_u16): Delete.
12087         (viwdupq_m_n_u8): Delete.
12088         (viwdupq_m_n_u32): Delete.
12089         (viwdupq_m_n_u16): Delete.
12090         (viwdupq_m_wb_u8): Delete.
12091         (viwdupq_m_wb_u32): Delete.
12092         (viwdupq_m_wb_u16): Delete.
12093         (viwdupq_n_u8): Delete.
12094         (viwdupq_n_u32): Delete.
12095         (viwdupq_n_u16): Delete.
12096         (viwdupq_wb_u8): Delete.
12097         (viwdupq_wb_u32): Delete.
12098         (viwdupq_wb_u16): Delete.
12099         (vdwdupq_x_n_u8): Delete.
12100         (vdwdupq_x_n_u16): Delete.
12101         (vdwdupq_x_n_u32): Delete.
12102         (vdwdupq_x_wb_u8): Delete.
12103         (vdwdupq_x_wb_u16): Delete.
12104         (vdwdupq_x_wb_u32): Delete.
12105         (viwdupq_x_n_u8): Delete.
12106         (viwdupq_x_n_u16): Delete.
12107         (viwdupq_x_n_u32): Delete.
12108         (viwdupq_x_wb_u8): Delete.
12109         (viwdupq_x_wb_u16): Delete.
12110         (viwdupq_x_wb_u32): Delete.
12111         (__arm_vdwdupq_m_n_u8): Delete.
12112         (__arm_vdwdupq_m_n_u32): Delete.
12113         (__arm_vdwdupq_m_n_u16): Delete.
12114         (__arm_vdwdupq_m_wb_u8): Delete.
12115         (__arm_vdwdupq_m_wb_u32): Delete.
12116         (__arm_vdwdupq_m_wb_u16): Delete.
12117         (__arm_vdwdupq_n_u8): Delete.
12118         (__arm_vdwdupq_n_u32): Delete.
12119         (__arm_vdwdupq_n_u16): Delete.
12120         (__arm_vdwdupq_wb_u8): Delete.
12121         (__arm_vdwdupq_wb_u32): Delete.
12122         (__arm_vdwdupq_wb_u16): Delete.
12123         (__arm_viwdupq_m_n_u8): Delete.
12124         (__arm_viwdupq_m_n_u32): Delete.
12125         (__arm_viwdupq_m_n_u16): Delete.
12126         (__arm_viwdupq_m_wb_u8): Delete.
12127         (__arm_viwdupq_m_wb_u32): Delete.
12128         (__arm_viwdupq_m_wb_u16): Delete.
12129         (__arm_viwdupq_n_u8): Delete.
12130         (__arm_viwdupq_n_u32): Delete.
12131         (__arm_viwdupq_n_u16): Delete.
12132         (__arm_viwdupq_wb_u8): Delete.
12133         (__arm_viwdupq_wb_u32): Delete.
12134         (__arm_viwdupq_wb_u16): Delete.
12135         (__arm_vdwdupq_x_n_u8): Delete.
12136         (__arm_vdwdupq_x_n_u16): Delete.
12137         (__arm_vdwdupq_x_n_u32): Delete.
12138         (__arm_vdwdupq_x_wb_u8): Delete.
12139         (__arm_vdwdupq_x_wb_u16): Delete.
12140         (__arm_vdwdupq_x_wb_u32): Delete.
12141         (__arm_viwdupq_x_n_u8): Delete.
12142         (__arm_viwdupq_x_n_u16): Delete.
12143         (__arm_viwdupq_x_n_u32): Delete.
12144         (__arm_viwdupq_x_wb_u8): Delete.
12145         (__arm_viwdupq_x_wb_u16): Delete.
12146         (__arm_viwdupq_x_wb_u32): Delete.
12147         (__arm_vdwdupq_m): Delete.
12148         (__arm_vdwdupq_u8): Delete.
12149         (__arm_vdwdupq_u32): Delete.
12150         (__arm_vdwdupq_u16): Delete.
12151         (__arm_viwdupq_m): Delete.
12152         (__arm_viwdupq_u8): Delete.
12153         (__arm_viwdupq_u32): Delete.
12154         (__arm_viwdupq_u16): Delete.
12155         (__arm_vdwdupq_x_u8): Delete.
12156         (__arm_vdwdupq_x_u16): Delete.
12157         (__arm_vdwdupq_x_u32): Delete.
12158         (__arm_viwdupq_x_u8): Delete.
12159         (__arm_viwdupq_x_u16): Delete.
12160         (__arm_viwdupq_x_u32): Delete.
12161         * config/arm/mve.md (@mve_<mve_insn>q_m_wb_u<mode>_insn): Swap
12162         operands 1 and 2.
12164 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12166         * config/arm/arm-mve-builtins-shapes.cc (vidwdup): New.
12167         * config/arm/arm-mve-builtins-shapes.h (vidwdup): New.
12169 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12171         * config/arm/iterators.md (mve_insn): Add VIWDUPQ, VDWDUPQ,
12172         VIWDUPQ_M, VDWDUPQ_M.
12173         (VIDWDUPQ): New iterator.
12174         (VIDWDUPQ_M): New iterator.
12175         * config/arm/mve.md (mve_vdwdupq_wb_u<mode>_insn)
12176         (mve_viwdupq_wb_u<mode>_insn): Merge into ...
12177         (@mve_<mve_insn>q_wb_u<mode>_insn): ... this. Add missing
12178         mve_unpredicated_insn and mve_move attributes.
12179         (mve_vdwdupq_m_wb_u<mode>_insn, mve_viwdupq_m_wb_u<mode>_insn):
12180         Merge into ...
12181         (@mve_<mve_insn>q_m_wb_u<mode>_insn): ... this.
12183 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12185         * config/arm/arm-mve-builtins-shapes.cc (binary_acca_int32): Fix
12186         check of scalar argument.
12187         (binary_acca_int64): Likewise.
12188         (binary_lshift_unsigned): Likewise.
12189         (binary_rshift_narrow): Likewise.
12190         (binary_rshift_narrow_unsigned): Likewise.
12191         (ternary_lshift): Likewise.
12192         (ternary_rshift): Likewise.
12193         (unary_int32_acc): Likewise.
12195 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12197         * config/arm/arm_mve_builtins.def (vddupq_n_u, vidupq_n_u)
12198         (vddupq_m_n_u, vidupq_m_n_u): Delete.
12199         * config/arm/mve.md (mve_vidupq_n_u<mode>, mve_vidupq_m_n_u<mode>)
12200         (mve_vddupq_n_u<mode>, mve_vddupq_m_n_u<mode>): Delete.
12202 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12204         * config/arm/arm-mve-builtins-base.cc (class viddup_impl): New.
12205         (vddup): New.
12206         (vidup): New.
12207         * config/arm/arm-mve-builtins-base.def (vddupq): New.
12208         (vidupq): New.
12209         * config/arm/arm-mve-builtins-base.h (vddupq): New.
12210         (vidupq): New.
12211         * config/arm/arm_mve.h (vddupq_m): Delete.
12212         (vddupq_u8): Delete.
12213         (vddupq_u32): Delete.
12214         (vddupq_u16): Delete.
12215         (vidupq_m): Delete.
12216         (vidupq_u8): Delete.
12217         (vidupq_u32): Delete.
12218         (vidupq_u16): Delete.
12219         (vddupq_x_u8): Delete.
12220         (vddupq_x_u16): Delete.
12221         (vddupq_x_u32): Delete.
12222         (vidupq_x_u8): Delete.
12223         (vidupq_x_u16): Delete.
12224         (vidupq_x_u32): Delete.
12225         (vddupq_m_n_u8): Delete.
12226         (vddupq_m_n_u32): Delete.
12227         (vddupq_m_n_u16): Delete.
12228         (vddupq_m_wb_u8): Delete.
12229         (vddupq_m_wb_u16): Delete.
12230         (vddupq_m_wb_u32): Delete.
12231         (vddupq_n_u8): Delete.
12232         (vddupq_n_u32): Delete.
12233         (vddupq_n_u16): Delete.
12234         (vddupq_wb_u8): Delete.
12235         (vddupq_wb_u16): Delete.
12236         (vddupq_wb_u32): Delete.
12237         (vidupq_m_n_u8): Delete.
12238         (vidupq_m_n_u32): Delete.
12239         (vidupq_m_n_u16): Delete.
12240         (vidupq_m_wb_u8): Delete.
12241         (vidupq_m_wb_u16): Delete.
12242         (vidupq_m_wb_u32): Delete.
12243         (vidupq_n_u8): Delete.
12244         (vidupq_n_u32): Delete.
12245         (vidupq_n_u16): Delete.
12246         (vidupq_wb_u8): Delete.
12247         (vidupq_wb_u16): Delete.
12248         (vidupq_wb_u32): Delete.
12249         (vddupq_x_n_u8): Delete.
12250         (vddupq_x_n_u16): Delete.
12251         (vddupq_x_n_u32): Delete.
12252         (vddupq_x_wb_u8): Delete.
12253         (vddupq_x_wb_u16): Delete.
12254         (vddupq_x_wb_u32): Delete.
12255         (vidupq_x_n_u8): Delete.
12256         (vidupq_x_n_u16): Delete.
12257         (vidupq_x_n_u32): Delete.
12258         (vidupq_x_wb_u8): Delete.
12259         (vidupq_x_wb_u16): Delete.
12260         (vidupq_x_wb_u32): Delete.
12261         (__arm_vddupq_m_n_u8): Delete.
12262         (__arm_vddupq_m_n_u32): Delete.
12263         (__arm_vddupq_m_n_u16): Delete.
12264         (__arm_vddupq_m_wb_u8): Delete.
12265         (__arm_vddupq_m_wb_u16): Delete.
12266         (__arm_vddupq_m_wb_u32): Delete.
12267         (__arm_vddupq_n_u8): Delete.
12268         (__arm_vddupq_n_u32): Delete.
12269         (__arm_vddupq_n_u16): Delete.
12270         (__arm_vidupq_m_n_u8): Delete.
12271         (__arm_vidupq_m_n_u32): Delete.
12272         (__arm_vidupq_m_n_u16): Delete.
12273         (__arm_vidupq_n_u8): Delete.
12274         (__arm_vidupq_m_wb_u8): Delete.
12275         (__arm_vidupq_m_wb_u16): Delete.
12276         (__arm_vidupq_m_wb_u32): Delete.
12277         (__arm_vidupq_n_u32): Delete.
12278         (__arm_vidupq_n_u16): Delete.
12279         (__arm_vidupq_wb_u8): Delete.
12280         (__arm_vidupq_wb_u16): Delete.
12281         (__arm_vidupq_wb_u32): Delete.
12282         (__arm_vddupq_wb_u8): Delete.
12283         (__arm_vddupq_wb_u16): Delete.
12284         (__arm_vddupq_wb_u32): Delete.
12285         (__arm_vddupq_x_n_u8): Delete.
12286         (__arm_vddupq_x_n_u16): Delete.
12287         (__arm_vddupq_x_n_u32): Delete.
12288         (__arm_vddupq_x_wb_u8): Delete.
12289         (__arm_vddupq_x_wb_u16): Delete.
12290         (__arm_vddupq_x_wb_u32): Delete.
12291         (__arm_vidupq_x_n_u8): Delete.
12292         (__arm_vidupq_x_n_u16): Delete.
12293         (__arm_vidupq_x_n_u32): Delete.
12294         (__arm_vidupq_x_wb_u8): Delete.
12295         (__arm_vidupq_x_wb_u16): Delete.
12296         (__arm_vidupq_x_wb_u32): Delete.
12297         (__arm_vddupq_m): Delete.
12298         (__arm_vddupq_u8): Delete.
12299         (__arm_vddupq_u32): Delete.
12300         (__arm_vddupq_u16): Delete.
12301         (__arm_vidupq_m): Delete.
12302         (__arm_vidupq_u8): Delete.
12303         (__arm_vidupq_u32): Delete.
12304         (__arm_vidupq_u16): Delete.
12305         (__arm_vddupq_x_u8): Delete.
12306         (__arm_vddupq_x_u16): Delete.
12307         (__arm_vddupq_x_u32): Delete.
12308         (__arm_vidupq_x_u8): Delete.
12309         (__arm_vidupq_x_u16): Delete.
12310         (__arm_vidupq_x_u32): Delete.
12312 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12314         * config/arm/arm-mve-builtins-shapes.cc (viddup): New.
12315         * config/arm/arm-mve-builtins-shapes.h (viddup): New.
12316         * config/arm/arm-mve-builtins.cc (report_not_one_of): New.
12317         (function_checker::require_immediate_one_of): New.
12318         * config/arm/arm-mve-builtins.def (wb): New mode.
12319         * config/arm/arm-mve-builtins.h (function_checker) Add
12320         require_immediate_one_of.
12322 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12324         * config/arm/iterators.md (mve_insn): Add VIDUPQ, VDDUPQ,
12325         VIDUPQ_M, VDDUPQ_M.
12326         (viddupq_op): New.
12327         (viddupq_m_op): New.
12328         (VIDDUPQ): New.
12329         (VIDDUPQ_M): New.
12330         * config/arm/mve.md (mve_vddupq_u<mode>_insn)
12331         (mve_vidupq_u<mode>_insn): Merge into ...
12332         (mve_<mve_insn>q_u<mode>_insn): ... this.
12333         (mve_vddupq_m_wb_u<mode>_insn, mve_vidupq_m_wb_u<mode>_insn):
12334         Merge into ...
12335         (mve_<mve_insn>q_m_wb_u<mode>_insn): ... this.
12337 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12339         * config/arm/arm-mve-builtins-base.cc (class vctpq_impl): New.
12340         (vctp16q): New.
12341         (vctp32q): New.
12342         (vctp64q): New.
12343         (vctp8q): New.
12344         * config/arm/arm-mve-builtins-base.def (vctp16q): New.
12345         (vctp32q): New.
12346         (vctp64q): New.
12347         (vctp8q): New.
12348         * config/arm/arm-mve-builtins-base.h (vctp16q): New.
12349         (vctp32q): New.
12350         (vctp64q): New.
12351         (vctp8q): New.
12352         * config/arm/arm-mve-builtins-shapes.cc (vctp): New.
12353         * config/arm/arm-mve-builtins-shapes.h (vctp): New.
12354         * config/arm/arm-mve-builtins.cc
12355         (function_instance::has_inactive_argument): Add support for vctp.
12356         * config/arm/arm_mve.h (vctp16q): Delete.
12357         (vctp32q): Delete.
12358         (vctp64q): Delete.
12359         (vctp8q): Delete.
12360         (vctp8q_m): Delete.
12361         (vctp64q_m): Delete.
12362         (vctp32q_m): Delete.
12363         (vctp16q_m): Delete.
12364         (__arm_vctp16q): Delete.
12365         (__arm_vctp32q): Delete.
12366         (__arm_vctp64q): Delete.
12367         (__arm_vctp8q): Delete.
12368         (__arm_vctp8q_m): Delete.
12369         (__arm_vctp64q_m): Delete.
12370         (__arm_vctp32q_m): Delete.
12371         (__arm_vctp16q_m): Delete.
12372         * config/arm/mve.md (mve_vctp<MVE_vctp>q<MVE_vpred>): Add '@'
12373         prefix.
12374         (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
12376 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12378         * config/arm/arm-mve-builtins-base.cc (vornq): New.
12379         * config/arm/arm-mve-builtins-base.def (vornq): New.
12380         * config/arm/arm-mve-builtins-base.h (vornq): New.
12381         * config/arm/arm-mve-builtins-functions.h (class
12382         unspec_based_mve_function_exact_insn_vorn): New.
12383         * config/arm/arm_mve.h (vornq): Delete.
12384         (vornq_m): Delete.
12385         (vornq_x): Delete.
12386         (vornq_u8): Delete.
12387         (vornq_s8): Delete.
12388         (vornq_u16): Delete.
12389         (vornq_s16): Delete.
12390         (vornq_u32): Delete.
12391         (vornq_s32): Delete.
12392         (vornq_f16): Delete.
12393         (vornq_f32): Delete.
12394         (vornq_m_s8): Delete.
12395         (vornq_m_s32): Delete.
12396         (vornq_m_s16): Delete.
12397         (vornq_m_u8): Delete.
12398         (vornq_m_u32): Delete.
12399         (vornq_m_u16): Delete.
12400         (vornq_m_f32): Delete.
12401         (vornq_m_f16): Delete.
12402         (vornq_x_s8): Delete.
12403         (vornq_x_s16): Delete.
12404         (vornq_x_s32): Delete.
12405         (vornq_x_u8): Delete.
12406         (vornq_x_u16): Delete.
12407         (vornq_x_u32): Delete.
12408         (vornq_x_f16): Delete.
12409         (vornq_x_f32): Delete.
12410         (__arm_vornq_u8): Delete.
12411         (__arm_vornq_s8): Delete.
12412         (__arm_vornq_u16): Delete.
12413         (__arm_vornq_s16): Delete.
12414         (__arm_vornq_u32): Delete.
12415         (__arm_vornq_s32): Delete.
12416         (__arm_vornq_m_s8): Delete.
12417         (__arm_vornq_m_s32): Delete.
12418         (__arm_vornq_m_s16): Delete.
12419         (__arm_vornq_m_u8): Delete.
12420         (__arm_vornq_m_u32): Delete.
12421         (__arm_vornq_m_u16): Delete.
12422         (__arm_vornq_x_s8): Delete.
12423         (__arm_vornq_x_s16): Delete.
12424         (__arm_vornq_x_s32): Delete.
12425         (__arm_vornq_x_u8): Delete.
12426         (__arm_vornq_x_u16): Delete.
12427         (__arm_vornq_x_u32): Delete.
12428         (__arm_vornq_f16): Delete.
12429         (__arm_vornq_f32): Delete.
12430         (__arm_vornq_m_f32): Delete.
12431         (__arm_vornq_m_f16): Delete.
12432         (__arm_vornq_x_f16): Delete.
12433         (__arm_vornq_x_f32): Delete.
12434         (__arm_vornq): Delete.
12435         (__arm_vornq_m): Delete.
12436         (__arm_vornq_x): Delete.
12438 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12440         * config/arm/iterators.md (MVE_INT_M_BINARY_LOGIC): Add VORNQ_M_S,
12441         VORNQ_M_U.
12442         (MVE_FP_M_BINARY_LOGIC): Add VORNQ_M_F.
12443         (mve_insn): Add VORNQ_M_S, VORNQ_M_U, VORNQ_M_F.
12444         * config/arm/mve.md (mve_vornq_s<mode>): Rename into ...
12445         (@mve_vornq_s<mode>): ... this.
12446         (mve_vornq_u<mode>): Rename into ...
12447         (@mve_vornq_u<mode>): ... this.
12448         (mve_vornq_f<mode>): Rename into ...
12449         (@mve_vornq_f<mode>): ... this.
12450         (mve_vornq_m_<supf><mode>): Merge into vand/vbic pattern.
12451         (mve_vornq_m_f<mode>): Likewise.
12453 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12455         * config/arm/arm-mve-builtins-base.cc (vbicq): New.
12456         * config/arm/arm-mve-builtins-base.def (vbicq): New.
12457         * config/arm/arm-mve-builtins-base.h (vbicq): New.
12458         * config/arm/arm-mve-builtins-functions.h (class
12459         unspec_based_mve_function_exact_insn_vbic): New.
12460         * config/arm/arm-mve-builtins.cc
12461         (function_instance::has_inactive_argument): Add support for vbicq.
12462         * config/arm/arm_mve.h (vbicq): Delete.
12463         (vbicq_m_n): Delete.
12464         (vbicq_m): Delete.
12465         (vbicq_x): Delete.
12466         (vbicq_u8): Delete.
12467         (vbicq_s8): Delete.
12468         (vbicq_u16): Delete.
12469         (vbicq_s16): Delete.
12470         (vbicq_u32): Delete.
12471         (vbicq_s32): Delete.
12472         (vbicq_n_u16): Delete.
12473         (vbicq_f16): Delete.
12474         (vbicq_n_s16): Delete.
12475         (vbicq_n_u32): Delete.
12476         (vbicq_f32): Delete.
12477         (vbicq_n_s32): Delete.
12478         (vbicq_m_n_s16): Delete.
12479         (vbicq_m_n_s32): Delete.
12480         (vbicq_m_n_u16): Delete.
12481         (vbicq_m_n_u32): Delete.
12482         (vbicq_m_s8): Delete.
12483         (vbicq_m_s32): Delete.
12484         (vbicq_m_s16): Delete.
12485         (vbicq_m_u8): Delete.
12486         (vbicq_m_u32): Delete.
12487         (vbicq_m_u16): Delete.
12488         (vbicq_m_f32): Delete.
12489         (vbicq_m_f16): Delete.
12490         (vbicq_x_s8): Delete.
12491         (vbicq_x_s16): Delete.
12492         (vbicq_x_s32): Delete.
12493         (vbicq_x_u8): Delete.
12494         (vbicq_x_u16): Delete.
12495         (vbicq_x_u32): Delete.
12496         (vbicq_x_f16): Delete.
12497         (vbicq_x_f32): Delete.
12498         (__arm_vbicq_u8): Delete.
12499         (__arm_vbicq_s8): Delete.
12500         (__arm_vbicq_u16): Delete.
12501         (__arm_vbicq_s16): Delete.
12502         (__arm_vbicq_u32): Delete.
12503         (__arm_vbicq_s32): Delete.
12504         (__arm_vbicq_n_u16): Delete.
12505         (__arm_vbicq_n_s16): Delete.
12506         (__arm_vbicq_n_u32): Delete.
12507         (__arm_vbicq_n_s32): Delete.
12508         (__arm_vbicq_m_n_s16): Delete.
12509         (__arm_vbicq_m_n_s32): Delete.
12510         (__arm_vbicq_m_n_u16): Delete.
12511         (__arm_vbicq_m_n_u32): Delete.
12512         (__arm_vbicq_m_s8): Delete.
12513         (__arm_vbicq_m_s32): Delete.
12514         (__arm_vbicq_m_s16): Delete.
12515         (__arm_vbicq_m_u8): Delete.
12516         (__arm_vbicq_m_u32): Delete.
12517         (__arm_vbicq_m_u16): Delete.
12518         (__arm_vbicq_x_s8): Delete.
12519         (__arm_vbicq_x_s16): Delete.
12520         (__arm_vbicq_x_s32): Delete.
12521         (__arm_vbicq_x_u8): Delete.
12522         (__arm_vbicq_x_u16): Delete.
12523         (__arm_vbicq_x_u32): Delete.
12524         (__arm_vbicq_f16): Delete.
12525         (__arm_vbicq_f32): Delete.
12526         (__arm_vbicq_m_f32): Delete.
12527         (__arm_vbicq_m_f16): Delete.
12528         (__arm_vbicq_x_f16): Delete.
12529         (__arm_vbicq_x_f32): Delete.
12530         (__arm_vbicq): Delete.
12531         (__arm_vbicq_m_n): Delete.
12532         (__arm_vbicq_m): Delete.
12533         (__arm_vbicq_x): Delete.
12534         * config/arm/mve.md (mve_vbicq_u<mode>): Rename into ...
12535         (@mve_vbicq_u<mode>): ... this.
12536         (mve_vbicq_s<mode>): Rename into ...
12537         (@mve_vbicq_s<mode>): ... this.
12538         (mve_vbicq_f<mode>): Rename into ...
12539         (@mve_vbicq_f<mode>): ... this.
12541 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12543         * config/arm/arm-mve-builtins-base.cc (vcvtaq): New.
12544         (vcvtmq): New.
12545         (vcvtnq): New.
12546         (vcvtpq): New.
12547         * config/arm/arm-mve-builtins-base.def (vcvtaq): New.
12548         (vcvtmq): New.
12549         (vcvtnq): New.
12550         (vcvtpq): New.
12551         * config/arm/arm-mve-builtins-base.h: (vcvtaq): New.
12552         (vcvtmq): New.
12553         (vcvtnq): New.
12554         (vcvtpq): New.
12555         * config/arm/arm-mve-builtins.cc (cvtx): New type.
12556         * config/arm/arm_mve.h (vcvtaq_m): Delete.
12557         (vcvtmq_m): Delete.
12558         (vcvtnq_m): Delete.
12559         (vcvtpq_m): Delete.
12560         (vcvtaq_s16_f16): Delete.
12561         (vcvtaq_s32_f32): Delete.
12562         (vcvtnq_s16_f16): Delete.
12563         (vcvtnq_s32_f32): Delete.
12564         (vcvtpq_s16_f16): Delete.
12565         (vcvtpq_s32_f32): Delete.
12566         (vcvtmq_s16_f16): Delete.
12567         (vcvtmq_s32_f32): Delete.
12568         (vcvtpq_u16_f16): Delete.
12569         (vcvtpq_u32_f32): Delete.
12570         (vcvtnq_u16_f16): Delete.
12571         (vcvtnq_u32_f32): Delete.
12572         (vcvtmq_u16_f16): Delete.
12573         (vcvtmq_u32_f32): Delete.
12574         (vcvtaq_u16_f16): Delete.
12575         (vcvtaq_u32_f32): Delete.
12576         (vcvtaq_m_s16_f16): Delete.
12577         (vcvtaq_m_u16_f16): Delete.
12578         (vcvtaq_m_s32_f32): Delete.
12579         (vcvtaq_m_u32_f32): Delete.
12580         (vcvtmq_m_s16_f16): Delete.
12581         (vcvtnq_m_s16_f16): Delete.
12582         (vcvtpq_m_s16_f16): Delete.
12583         (vcvtmq_m_u16_f16): Delete.
12584         (vcvtnq_m_u16_f16): Delete.
12585         (vcvtpq_m_u16_f16): Delete.
12586         (vcvtmq_m_s32_f32): Delete.
12587         (vcvtnq_m_s32_f32): Delete.
12588         (vcvtpq_m_s32_f32): Delete.
12589         (vcvtmq_m_u32_f32): Delete.
12590         (vcvtnq_m_u32_f32): Delete.
12591         (vcvtpq_m_u32_f32): Delete.
12592         (vcvtaq_x_s16_f16): Delete.
12593         (vcvtaq_x_s32_f32): Delete.
12594         (vcvtaq_x_u16_f16): Delete.
12595         (vcvtaq_x_u32_f32): Delete.
12596         (vcvtnq_x_s16_f16): Delete.
12597         (vcvtnq_x_s32_f32): Delete.
12598         (vcvtnq_x_u16_f16): Delete.
12599         (vcvtnq_x_u32_f32): Delete.
12600         (vcvtpq_x_s16_f16): Delete.
12601         (vcvtpq_x_s32_f32): Delete.
12602         (vcvtpq_x_u16_f16): Delete.
12603         (vcvtpq_x_u32_f32): Delete.
12604         (vcvtmq_x_s16_f16): Delete.
12605         (vcvtmq_x_s32_f32): Delete.
12606         (vcvtmq_x_u16_f16): Delete.
12607         (vcvtmq_x_u32_f32): Delete.
12608         (__arm_vcvtpq_u16_f16): Delete.
12609         (__arm_vcvtpq_u32_f32): Delete.
12610         (__arm_vcvtnq_u16_f16): Delete.
12611         (__arm_vcvtnq_u32_f32): Delete.
12612         (__arm_vcvtmq_u16_f16): Delete.
12613         (__arm_vcvtmq_u32_f32): Delete.
12614         (__arm_vcvtaq_u16_f16): Delete.
12615         (__arm_vcvtaq_u32_f32): Delete.
12616         (__arm_vcvtaq_s16_f16): Delete.
12617         (__arm_vcvtaq_s32_f32): Delete.
12618         (__arm_vcvtnq_s16_f16): Delete.
12619         (__arm_vcvtnq_s32_f32): Delete.
12620         (__arm_vcvtpq_s16_f16): Delete.
12621         (__arm_vcvtpq_s32_f32): Delete.
12622         (__arm_vcvtmq_s16_f16): Delete.
12623         (__arm_vcvtmq_s32_f32): Delete.
12624         (__arm_vcvtaq_m_s16_f16): Delete.
12625         (__arm_vcvtaq_m_u16_f16): Delete.
12626         (__arm_vcvtaq_m_s32_f32): Delete.
12627         (__arm_vcvtaq_m_u32_f32): Delete.
12628         (__arm_vcvtmq_m_s16_f16): Delete.
12629         (__arm_vcvtnq_m_s16_f16): Delete.
12630         (__arm_vcvtpq_m_s16_f16): Delete.
12631         (__arm_vcvtmq_m_u16_f16): Delete.
12632         (__arm_vcvtnq_m_u16_f16): Delete.
12633         (__arm_vcvtpq_m_u16_f16): Delete.
12634         (__arm_vcvtmq_m_s32_f32): Delete.
12635         (__arm_vcvtnq_m_s32_f32): Delete.
12636         (__arm_vcvtpq_m_s32_f32): Delete.
12637         (__arm_vcvtmq_m_u32_f32): Delete.
12638         (__arm_vcvtnq_m_u32_f32): Delete.
12639         (__arm_vcvtpq_m_u32_f32): Delete.
12640         (__arm_vcvtaq_x_s16_f16): Delete.
12641         (__arm_vcvtaq_x_s32_f32): Delete.
12642         (__arm_vcvtaq_x_u16_f16): Delete.
12643         (__arm_vcvtaq_x_u32_f32): Delete.
12644         (__arm_vcvtnq_x_s16_f16): Delete.
12645         (__arm_vcvtnq_x_s32_f32): Delete.
12646         (__arm_vcvtnq_x_u16_f16): Delete.
12647         (__arm_vcvtnq_x_u32_f32): Delete.
12648         (__arm_vcvtpq_x_s16_f16): Delete.
12649         (__arm_vcvtpq_x_s32_f32): Delete.
12650         (__arm_vcvtpq_x_u16_f16): Delete.
12651         (__arm_vcvtpq_x_u32_f32): Delete.
12652         (__arm_vcvtmq_x_s16_f16): Delete.
12653         (__arm_vcvtmq_x_s32_f32): Delete.
12654         (__arm_vcvtmq_x_u16_f16): Delete.
12655         (__arm_vcvtmq_x_u32_f32): Delete.
12656         (__arm_vcvtaq_m): Delete.
12657         (__arm_vcvtmq_m): Delete.
12658         (__arm_vcvtnq_m): Delete.
12659         (__arm_vcvtpq_m): Delete.
12661 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12663         * config/arm/arm-mve-builtins-shapes.cc (vcvtx): New.
12664         * config/arm/arm-mve-builtins-shapes.h (vcvtx): New.
12666 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12668         * config/arm/iterators.md (mve_insn): Add VCVTAQ_M_S, VCVTAQ_M_U,
12669         VCVTAQ_S, VCVTAQ_U, VCVTMQ_M_S, VCVTMQ_M_U, VCVTMQ_S, VCVTMQ_U,
12670         VCVTNQ_M_S, VCVTNQ_M_U, VCVTNQ_S, VCVTNQ_U, VCVTPQ_M_S,
12671         VCVTPQ_M_U, VCVTPQ_S, VCVTPQ_U.
12672         (VCVTAQ, VCVTPQ, VCVTNQ, VCVTMQ, VCVTAQ_M, VCVTMQ_M, VCVTNQ_M)
12673         (VCVTPQ_M): Delete.
12674         (VCVTxQ, VCVTxQ_M): New.
12675         * config/arm/mve.md (mve_vcvtpq_<supf><mode>)
12676         (mve_vcvtnq_<supf><mode>, mve_vcvtmq_<supf><mode>)
12677         (mve_vcvtaq_<supf><mode>): Merge into ...
12678         (@mve_<mve_insn>q_<supf><mode>): ... this.
12679         (mve_vcvtaq_m_<supf><mode>, mve_vcvtmq_m_<supf><mode>)
12680         (mve_vcvtpq_m_<supf><mode>, mve_vcvtnq_m_<supf><mode>): Merge into
12681         ...
12682         (@mve_<mve_insn>q_m_<supf><mode>): ... this.
12684 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12686         * config/arm/arm-mve-builtins-base.cc (class vcvtxq_impl): New.
12687         (vcvtbq, vcvttq): New.
12688         * config/arm/arm-mve-builtins-base.def (vcvtbq, vcvttq): New.
12689         * config/arm/arm-mve-builtins-base.h (vcvtbq, vcvttq): New.
12690         * config/arm/arm-mve-builtins.cc (cvt_f16_f32, cvt_f32_f16): New
12691         types.
12692         (function_instance::has_inactive_argument): Support vcvtbq and
12693         vcvttq.
12694         * config/arm/arm_mve.h (vcvttq_f32): Delete.
12695         (vcvtbq_f32): Delete.
12696         (vcvtbq_m): Delete.
12697         (vcvttq_m): Delete.
12698         (vcvttq_f32_f16): Delete.
12699         (vcvtbq_f32_f16): Delete.
12700         (vcvttq_f16_f32): Delete.
12701         (vcvtbq_f16_f32): Delete.
12702         (vcvtbq_m_f16_f32): Delete.
12703         (vcvtbq_m_f32_f16): Delete.
12704         (vcvttq_m_f16_f32): Delete.
12705         (vcvttq_m_f32_f16): Delete.
12706         (vcvtbq_x_f32_f16): Delete.
12707         (vcvttq_x_f32_f16): Delete.
12708         (__arm_vcvttq_f32_f16): Delete.
12709         (__arm_vcvtbq_f32_f16): Delete.
12710         (__arm_vcvttq_f16_f32): Delete.
12711         (__arm_vcvtbq_f16_f32): Delete.
12712         (__arm_vcvtbq_m_f16_f32): Delete.
12713         (__arm_vcvtbq_m_f32_f16): Delete.
12714         (__arm_vcvttq_m_f16_f32): Delete.
12715         (__arm_vcvttq_m_f32_f16): Delete.
12716         (__arm_vcvtbq_x_f32_f16): Delete.
12717         (__arm_vcvttq_x_f32_f16): Delete.
12718         (__arm_vcvttq_f32): Delete.
12719         (__arm_vcvtbq_f32): Delete.
12720         (__arm_vcvtbq_m): Delete.
12721         (__arm_vcvttq_m): Delete.
12723 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12725         * config/arm/arm-mve-builtins-shapes.cc (vcvt_f16_f32)
12726         (vcvt_f32_f16): New.
12727         * config/arm/arm-mve-builtins-shapes.h (vcvt_f16_f32)
12728         (vcvt_f32_f16): New.
12730 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12732         * config/arm/iterators.md (mve_insn): Add VCVTBQ_F16_F32,
12733         VCVTTQ_F16_F32, VCVTBQ_F32_F16, VCVTTQ_F32_F16, VCVTBQ_M_F16_F32,
12734         VCVTTQ_M_F16_F32, VCVTBQ_M_F32_F16, VCVTTQ_M_F32_F16.
12735         (VCVTxQ_F16_F32): New iterator.
12736         (VCVTxQ_F32_F16): Likewise.
12737         (VCVTxQ_M_F16_F32): Likewise.
12738         (VCVTxQ_M_F32_F16): Likewise.
12739         * config/arm/mve.md (mve_vcvttq_f32_f16v4sf)
12740         (mve_vcvtbq_f32_f16v4sf): Merge into ...
12741         (@mve_<mve_insn>q_f32_f16v4sf): ... this.
12742         (mve_vcvtbq_f16_f32v8hf, mve_vcvttq_f16_f32v8hf): Merge into ...
12743         (@mve_<mve_insn>q_f16_f32v8hf): ... this.
12744         (mve_vcvtbq_m_f16_f32v8hf, mve_vcvttq_m_f16_f32v8hf): Merge into
12745         ...
12746         (@mve_<mve_insn>q_m_f16_f32v8hf): ... this.
12747         (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f32_f16v4sf): Merge into
12748         ...
12749         (@mve_<mve_insn>q_m_f32_f16v4sf): ... this.
12751 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12753         * config/arm/arm-mve-builtins-base.cc (class vcvtq_impl): New.
12754         (vcvtq): New.
12755         * config/arm/arm-mve-builtins-base.def (vcvtq): New.
12756         * config/arm/arm-mve-builtins-base.h (vcvtq): New.
12757         * config/arm/arm-mve-builtins.cc (cvt): New type.
12758         * config/arm/arm_mve.h (vcvtq): Delete.
12759         (vcvtq_n): Delete.
12760         (vcvtq_m): Delete.
12761         (vcvtq_m_n): Delete.
12762         (vcvtq_x): Delete.
12763         (vcvtq_x_n): Delete.
12764         (vcvtq_f16_s16): Delete.
12765         (vcvtq_f32_s32): Delete.
12766         (vcvtq_f16_u16): Delete.
12767         (vcvtq_f32_u32): Delete.
12768         (vcvtq_s16_f16): Delete.
12769         (vcvtq_s32_f32): Delete.
12770         (vcvtq_u16_f16): Delete.
12771         (vcvtq_u32_f32): Delete.
12772         (vcvtq_n_f16_s16): Delete.
12773         (vcvtq_n_f32_s32): Delete.
12774         (vcvtq_n_f16_u16): Delete.
12775         (vcvtq_n_f32_u32): Delete.
12776         (vcvtq_n_s16_f16): Delete.
12777         (vcvtq_n_s32_f32): Delete.
12778         (vcvtq_n_u16_f16): Delete.
12779         (vcvtq_n_u32_f32): Delete.
12780         (vcvtq_m_f16_s16): Delete.
12781         (vcvtq_m_f16_u16): Delete.
12782         (vcvtq_m_f32_s32): Delete.
12783         (vcvtq_m_f32_u32): Delete.
12784         (vcvtq_m_s16_f16): Delete.
12785         (vcvtq_m_u16_f16): Delete.
12786         (vcvtq_m_s32_f32): Delete.
12787         (vcvtq_m_u32_f32): Delete.
12788         (vcvtq_m_n_f16_u16): Delete.
12789         (vcvtq_m_n_f16_s16): Delete.
12790         (vcvtq_m_n_f32_u32): Delete.
12791         (vcvtq_m_n_f32_s32): Delete.
12792         (vcvtq_m_n_s32_f32): Delete.
12793         (vcvtq_m_n_s16_f16): Delete.
12794         (vcvtq_m_n_u32_f32): Delete.
12795         (vcvtq_m_n_u16_f16): Delete.
12796         (vcvtq_x_f16_u16): Delete.
12797         (vcvtq_x_f16_s16): Delete.
12798         (vcvtq_x_f32_s32): Delete.
12799         (vcvtq_x_f32_u32): Delete.
12800         (vcvtq_x_n_f16_s16): Delete.
12801         (vcvtq_x_n_f16_u16): Delete.
12802         (vcvtq_x_n_f32_s32): Delete.
12803         (vcvtq_x_n_f32_u32): Delete.
12804         (vcvtq_x_s16_f16): Delete.
12805         (vcvtq_x_s32_f32): Delete.
12806         (vcvtq_x_u16_f16): Delete.
12807         (vcvtq_x_u32_f32): Delete.
12808         (vcvtq_x_n_s16_f16): Delete.
12809         (vcvtq_x_n_s32_f32): Delete.
12810         (vcvtq_x_n_u16_f16): Delete.
12811         (vcvtq_x_n_u32_f32): Delete.
12812         (__arm_vcvtq_f16_s16): Delete.
12813         (__arm_vcvtq_f32_s32): Delete.
12814         (__arm_vcvtq_f16_u16): Delete.
12815         (__arm_vcvtq_f32_u32): Delete.
12816         (__arm_vcvtq_s16_f16): Delete.
12817         (__arm_vcvtq_s32_f32): Delete.
12818         (__arm_vcvtq_u16_f16): Delete.
12819         (__arm_vcvtq_u32_f32): Delete.
12820         (__arm_vcvtq_n_f16_s16): Delete.
12821         (__arm_vcvtq_n_f32_s32): Delete.
12822         (__arm_vcvtq_n_f16_u16): Delete.
12823         (__arm_vcvtq_n_f32_u32): Delete.
12824         (__arm_vcvtq_n_s16_f16): Delete.
12825         (__arm_vcvtq_n_s32_f32): Delete.
12826         (__arm_vcvtq_n_u16_f16): Delete.
12827         (__arm_vcvtq_n_u32_f32): Delete.
12828         (__arm_vcvtq_m_f16_s16): Delete.
12829         (__arm_vcvtq_m_f16_u16): Delete.
12830         (__arm_vcvtq_m_f32_s32): Delete.
12831         (__arm_vcvtq_m_f32_u32): Delete.
12832         (__arm_vcvtq_m_s16_f16): Delete.
12833         (__arm_vcvtq_m_u16_f16): Delete.
12834         (__arm_vcvtq_m_s32_f32): Delete.
12835         (__arm_vcvtq_m_u32_f32): Delete.
12836         (__arm_vcvtq_m_n_f16_u16): Delete.
12837         (__arm_vcvtq_m_n_f16_s16): Delete.
12838         (__arm_vcvtq_m_n_f32_u32): Delete.
12839         (__arm_vcvtq_m_n_f32_s32): Delete.
12840         (__arm_vcvtq_m_n_s32_f32): Delete.
12841         (__arm_vcvtq_m_n_s16_f16): Delete.
12842         (__arm_vcvtq_m_n_u32_f32): Delete.
12843         (__arm_vcvtq_m_n_u16_f16): Delete.
12844         (__arm_vcvtq_x_f16_u16): Delete.
12845         (__arm_vcvtq_x_f16_s16): Delete.
12846         (__arm_vcvtq_x_f32_s32): Delete.
12847         (__arm_vcvtq_x_f32_u32): Delete.
12848         (__arm_vcvtq_x_n_f16_s16): Delete.
12849         (__arm_vcvtq_x_n_f16_u16): Delete.
12850         (__arm_vcvtq_x_n_f32_s32): Delete.
12851         (__arm_vcvtq_x_n_f32_u32): Delete.
12852         (__arm_vcvtq_x_s16_f16): Delete.
12853         (__arm_vcvtq_x_s32_f32): Delete.
12854         (__arm_vcvtq_x_u16_f16): Delete.
12855         (__arm_vcvtq_x_u32_f32): Delete.
12856         (__arm_vcvtq_x_n_s16_f16): Delete.
12857         (__arm_vcvtq_x_n_s32_f32): Delete.
12858         (__arm_vcvtq_x_n_u16_f16): Delete.
12859         (__arm_vcvtq_x_n_u32_f32): Delete.
12860         (__arm_vcvtq): Delete.
12861         (__arm_vcvtq_n): Delete.
12862         (__arm_vcvtq_m): Delete.
12863         (__arm_vcvtq_m_n): Delete.
12864         (__arm_vcvtq_x): Delete.
12865         (__arm_vcvtq_x_n): Delete.
12867 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12869         * config/arm/arm-mve-builtins-shapes.cc
12870         (nonoverloaded_base::explicit_type_suffix_p): Add unused
12871         type_suffix_info parameter.
12872         (overloaded_base::explicit_type_suffix_p): Likewise.
12873         (unary_n_def::explicit_type_suffix_p): Likewise.
12874         (vcvt): New.
12875         * config/arm/arm-mve-builtins-shapes.h (vcvt): New.
12876         * config/arm/arm-mve-builtins.cc (function_builder::get_name): Add
12877         new type_suffix parameter.
12878         (function_builder::add_overloaded_functions): Likewise.
12879         * config/arm/arm-mve-builtins.h
12880         (function_shape::explicit_type_suffix_p): Likewise.
12882 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12884         * config/arm/iterators.md (mve_insn): Add VCVTQ_FROM_F_S,
12885         VCVTQ_FROM_F_U, VCVTQ_M_FROM_F_S, VCVTQ_M_FROM_F_U,
12886         VCVTQ_M_N_FROM_F_S, VCVTQ_M_N_FROM_F_U, VCVTQ_M_N_TO_F_S,
12887         VCVTQ_M_N_TO_F_U, VCVTQ_M_TO_F_S, VCVTQ_M_TO_F_U,
12888         VCVTQ_N_FROM_F_S, VCVTQ_N_FROM_F_U, VCVTQ_N_TO_F_S,
12889         VCVTQ_N_TO_F_U, VCVTQ_TO_F_S, VCVTQ_TO_F_U.
12890         * config/arm/mve.md (mve_vcvtq_to_f_<supf><mode>): Rename into
12891         @mve_<mve_insn>q_to_f_<supf><mode>.
12892         (mve_vcvtq_from_f_<supf><mode>): Rename into
12893         @mve_<mve_insn>q_from_f_<supf><mode>.
12894         (mve_vcvtq_n_to_f_<supf><mode>): Rename into
12895         @mve_<mve_insn>q_n_to_f_<supf><mode>.
12896         (mve_vcvtq_n_from_f_<supf><mode>): Rename into
12897         @mve_<mve_insn>q_n_from_f_<supf><mode>.
12898         (mve_vcvtq_m_to_f_<supf><mode>): Rename into
12899         @mve_<mve_insn>q_m_to_f_<supf><mode>.
12900         (mve_vcvtq_m_n_from_f_<supf><mode>): Rename into
12901         @mve_<mve_insn>q_m_n_from_f_<supf><mode>.
12902         (mve_vcvtq_m_from_f_<supf><mode>): Rename into
12903         @mve_<mve_insn>q_m_from_f_<supf><mode>.
12904         (mve_vcvtq_m_n_to_f_<supf><mode>): Rename into
12905         @mve_<mve_insn>q_m_n_to_f_<supf><mode>.
12907 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12909         * config/arm/arm-mve-builtins-functions.h
12910         (unspec_based_mve_function_base): Add m_unspec_for_sint,
12911         m_unspec_for_uint, m_unspec_for_fp and expand_unspec members.
12912         (unspec_based_mve_function_exact_insn): Inherit from
12913         unspec_based_mve_function_base and use expand_unspec.
12914         (unspec_mve_function_exact_insn): Likewise.
12915         (unspec_mve_function_exact_insn_pred_p): Likewise.  Use
12916         conditionals.
12917         (unspec_mve_function_exact_insn_vshl): Likewise.
12918         (unspec_based_mve_function_exact_insn_vcmp): Initialize new
12919         inherited members.  Use conditionals.
12920         (unspec_mve_function_exact_insn_rot): Merge PRED_m and PRED_x
12921         handling.  Use conditionals.
12922         (unspec_mve_function_exact_insn_vmull): Likewise.
12923         (unspec_mve_function_exact_insn_vmull_poly): Likewise.
12925 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12927         * config/arm/arm-mve-builtins-shapes.cc (create_def::resolve):
12928         Delete function.
12930 2024-10-18  Christophe Lyon  <christophe.lyon@linaro.org>
12932         * config/arm/arm-mve-builtins-shapes.cc (binary_orrq_def): Improve comment.
12934 2024-10-18  Richard Biener  <rguenther@suse.de>
12936         PR tree-optimization/117171
12937         * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype):
12938         Relax vect_external_def VECTOR_BOOLEAN_TYPE_P constraint.
12940 2024-10-17  Siddhesh Poyarekar  <siddhesh@gotplt.org>
12942         PR middle-end/77608
12943         * tree-object-size.cc (plus_stmt_object_size): Drop check for
12944         constant offset.
12946 2024-10-17  Patrick Palka  <ppalka@redhat.com>
12948         * doc/extend.texi (C++ Concepts): Remove section.  Move
12949         __is_same documentation to the previous Type Traits section.
12951 2024-10-17  Oleg Endo  <olegendo@gcc.gnu.org>
12953         PR target/113533
12954         * config/sh/sh.cc (sh_rtx_costs): Delete wrong semicolon.
12956 2024-10-17  Richard Biener  <rguenther@suse.de>
12958         PR tree-optimization/117172
12959         * tree-vect-loop.cc (vectorizable_nonlinear_induction): Add
12960         single-lane SLP support.
12962 2024-10-17  Denis Chertykov  <chertykov@gmail.com>
12964         PR target/116550
12965         * lra-constraints.cc (get_reload_reg): Reuse scratch registers
12966         generated by LRA.
12968 2024-10-17  Richard Biener  <rguenther@suse.de>
12970         * tree-vect-slp.cc (vect_lower_load_permutations): Avoid
12971         exempting non-power-of-two group sizes from lowering.
12973 2024-10-17  Lingling Kong  <lingling.kong@intel.com>
12975         * config/i386/sse.md(avx10_2_comsbf16_v8bf): Fixed scalar
12976         operands.
12978 2024-10-17  liuhongt  <hongtao.liu@intel.com>
12980         PR target/116940
12981         * config/i386/sse.md (*avx2_pcmp<mode>3_7): Change
12982         UNSPEC_PCMP_ITER to UNSPEC_PCMP.
12983         (*avx2_pcmp<mode>3_8): New pre_reload
12984         define_insn_and_splitter.
12986 2024-10-17  liuhongt  <hongtao.liu@intel.com>
12988         PR target/117072
12989         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>):
12990         Relax predicates of fma operands from register_operand to
12991         nonimmediate_operand.
12992         (<avx512>_fmadd_<mode>_mask3<round_name>): Ditto.
12993         (<avx512>_fmsub_<mode>_mask<round_name>): Ditto.
12994         (<avx512>_fmsub_<mode>_mask3<round_name>): Ditto.
12995         (<avx512>_fnmadd_<mode>_mask<round_name>): Ditto.
12996         (<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto.
12997         (<avx512>_fnmsub_<mode>_mask<round_name>): Ditto.
12998         (<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto.
12999         (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.
13000         (<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto.
13001         (<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto.
13002         (avx512f_vmfmadd_<mode>_mask<round_name>): Ditto.
13003         (avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto.
13004         (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto.
13005         (*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto.
13006         (avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto.
13007         (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto.
13008         (avx512f_vmfnmadd_<mode>_mask<round_name>): Ditto.
13009         (avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto.
13010         (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto.
13011         (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto.
13012         (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto.
13013         (*avx512f_vmfnmsub_<mode>_maskz_1<round_name>): Ditto.
13014         (avx10_2_fmaddnepbf16_<mode>_mask3): Ditto.
13015         (avx10_2_fnmaddnepbf16_<mode>_mask3): Ditto.
13016         (avx10_2_fmsubnepbf16_<mode>_mask3): Ditto.
13017         (avx10_2_fnmsubnepbf16_<mode>_mask3): Ditto.
13018         (fmai_vmfmadd_<mode><round_name>): Swap operands[1] and operands[2].
13019         (fmai_vmfmsub_<mode><round_name>): Ditto.
13020         (fmai_vmfnmadd_<mode><round_name>): Ditto.
13021         (fmai_vmfnmsub_<mode><round_name>): Ditto.
13022         (*fmai_fmadd_<mode>): Swap operands[1] and operands[2] adjust
13023         operands[1] predicates from register_operand to
13024         nonimmediate_operand.
13025         (*fmai_fmsub_<mode>): Ditto.
13026         (*fmai_fnmadd_<mode><round_name>): Ditto.
13027         (*fmai_fnmsub_<mode><round_name>): Ditto.
13029 2024-10-17  liuhongt  <hongtao.liu@intel.com>
13031         PR middle-end/117072
13032         * combine.cc (maybe_swap_commutative_operands):
13033         Canonicalize (vec_merge (fma op2 op1 op3) op1 mask)
13034         to (vec_merge (fma op1 op2 op3) op1 mask).
13036 2024-10-17  Cui, Lili  <lili.cui@intel.com>
13038         * config/i386/sse.md (andn<mode>3): New.
13039         * config/i386/mmx.md (andn<mode>3): New.
13041 2024-10-16  Siddhesh Poyarekar  <siddhesh@gotplt.org>
13043         * tree-object-size.cc (plus_stmt_object_size): Call
13044         SIZE_FOR_OFFSET for some negative offset cases.
13046 2024-10-16  Jolen Li  <jolen.li@arm.com>
13047             Christophe Lyon  <christophe.lyon@arm.com>
13049         * config/arm/arm-mve-builtins-base.cc (vdupq_impl): New class.
13050         (vdupq): Use new implementation.
13051         * config/arm/arm.cc (arm_rtx_costs_internal): Handle HFmode
13052         for COST_DOUBLE. Update costing for CONST_VECTOR.
13053         * config/arm/arm_mve_builtins.def: Merge vdupq_n_f, vdupq_n_s
13054         and vdupq_n_u into vdupq_n.
13055         * config/arm/mve.md (mve_vdup<mode>): Rename into ...
13056         (@mve_vdup_n<mode>): ... this.
13057         (@mve_<mve_insn>q_n_f<mode>): Delete.
13058         (@mve_<mve_insn>q_n_<supf><mode>): Delete..
13059         (@mve_<mve_insn>q_m_n_<supf><mode>): Update mve_unpredicated_insn
13060         attribute.
13061         (@mve_<mve_insn>q_m_n_f<mode>): Likewise.
13063 2024-10-16  Jolen Li  <jolen.li@arm.com>
13064             Christophe Lyon  <christophe.lyon@arm.com>
13066         * config/arm/mve.md (mve_vdup<mode>): Fix mode iterator.
13068 2024-10-16  David Malcolm  <dmalcolm@redhat.com>
13070         PR other/116602
13071         * diagnostic-format-sarif.cc: Include "demangle.h" and
13072         "backtrace.h".
13073         (sarif_invocation::add_notification_for_ice): Add "backtrace"
13074         param and pass it to ctor.
13075         (sarif_ice_notification::sarif_ice_notification): Add "backtrace"
13076         param and add it to property bag.
13077         (bt_stop): New, taken from diagnostic.cc.
13078         (struct bt_closure): New.
13079         (bt_callback): New, adapted from diagnostic.cc.
13080         (sarif_builder::make_stack_from_backtrace): New.
13081         (sarif_builder::on_report_diagnostic): Attempt to get backtrace
13082         and pass it to add_notification_for_ice.
13084 2024-10-16  David Malcolm  <dmalcolm@redhat.com>
13086         PR other/116613
13087         * diagnostic-format-sarif.cc
13088         (sarif_builder::on_report_diagnostic): Move the fnotice here from
13089         sarif_ice_handler.
13090         (sarif_ice_handler): Delete.
13091         (diagnostic_output_format_init_sarif): Drop setting of ice handler
13092         callback.
13093         * diagnostic.cc (diagnostic_context::initialize): Likewise.
13094         (diagnostic_context::action_after_output): Rather than call
13095         m_ice_handler_cb, instead call finish on this context.
13096         * diagnostic.h (ice_handler_callback_t): Delete typedef.
13097         (diagnostic_context::set_ice_handler_callback): Delete.
13098         (diagnostic_context::m_ice_handler_cb): Delete.
13100 2024-10-16  Andi Kleen  <ak@gcc.gnu.org>
13102         PR middle-end/116510
13103         * tree-if-conv.cc (predicate_bbs): Add missing fold_converts.
13105 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
13107         * attribs.cc (lookup_scoped_attribute_spec): ?: operator formatting
13108         fixes.
13109         * basic-block.h (FOR_BB_INSNS_SAFE): Likewise.
13110         * cfgcleanup.cc (outgoing_edges_match): Likewise.
13111         * cgraph.cc (cgraph_node::dump): Likewise.
13112         * config/arc/arc.cc (gen_acc1, gen_acc2): Likewise.
13113         * config/arc/arc.h (CLASS_MAX_NREGS, CONSTANT_ADDRESS_P): Likewise.
13114         * config/arm/arm.cc (arm_print_operand): Likewise.
13115         * config/cris/cris.md (*b<rnzcond:code><mode>): Likewise.
13116         * config/darwin.cc (darwin_asm_declare_object_name,
13117         darwin_emit_common): Likewise.
13118         * config/darwin-driver.cc (darwin_driver_init): Likewise.
13119         * config/epiphany/epiphany.md (call, sibcall, call_value,
13120         sibcall_value): Likewise.
13121         * config/i386/i386.cc (gen_push2): Likewise.
13122         * config/i386/i386.h (ix86_cur_cost): Likewise.
13123         * config/i386/openbsdelf.h (FUNCTION_PROFILER): Likewise.
13124         * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
13125         Likewise.
13126         * config/loongarch/loongarch-cpu.cc (fill_native_cpu_config):
13127         Likewise.
13128         * config/riscv/riscv.cc (riscv_union_memmodels): Likewise.
13129         * config/riscv/zc.md (*mva01s<X:mode>, *mvsa01<X:mode>): Likewise.
13130         * config/rs6000/mmintrin.h (_mm_cmpeq_pi8, _mm_cmpgt_pi8,
13131         _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, _mm_cmpgt_pi32):
13132         Likewise.
13133         * config/v850/predicates.md (pattern_is_ok_for_prologue): Likewise.
13134         * config/xtensa/constraints.md (d, C, W): Likewise.
13135         * coverage.cc (coverage_begin_function, build_init_ctor,
13136         build_gcov_exit_decl): Likewise.
13137         * df-problems.cc (df_create_unused_note): Likewise.
13138         * diagnostic.cc (diagnostic_set_caret_max_width): Likewise.
13139         * diagnostic-path.cc (path_summary::path_summary): Likewise.
13140         * expr.cc (expand_expr_divmod): Likewise.
13141         * gcov.cc (format_gcov): Likewise.
13142         * gcov-dump.cc (dump_gcov_file): Likewise.
13143         * genmatch.cc (main): Likewise.
13144         * incpath.cc (remove_duplicates, register_include_chains): Likewise.
13145         * ipa-devirt.cc (dump_odr_type): Likewise.
13146         * ipa-icf.cc (sem_item_optimizer::merge_classes): Likewise.
13147         * ipa-inline.cc (inline_small_functions): Likewise.
13148         * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::dump):
13149         Likewise.
13150         * ipa-sra.cc (create_parameter_descriptors): Likewise.
13151         * ipa-utils.cc (find_always_executed_bbs): Likewise.
13152         * predict.cc (predict_loops): Likewise.
13153         * selftest.cc (read_file): Likewise.
13154         * sreal.h (SREAL_SIGN, SREAL_ABS): Likewise.
13155         * tree-dump.cc (dequeue_and_dump): Likewise.
13156         * tree-ssa-ccp.cc (bit_value_binop): Likewise.
13158 2024-10-16  Eric Botcazou  <ebotcazou@adacore.com>
13160         PR target/113952
13161         PR target/117168
13162         * config/sparc/constraints.md ('U'): Delete.
13163         * config/sparc/sparc.md (*movdi_insn_sp32): Remove U alternatives.
13164         (*movdf_insn_sp32): Likewise.
13165         (*mov<VM64:mode>_insn_sp32): Likewise.
13166         * doc/md.texi (SPARC constraints): Remove entry for 'U'.
13168 2024-10-16  Richard Biener  <rguenther@suse.de>
13170         * tree-vect-stmts.cc (get_group_load_store_type): Move
13171         VMAT_ELEMENTWISE fallback for single-element interleaving
13172         of too large groups before overrun checking.
13174 2024-10-16  Richard Biener  <rguenther@suse.de>
13176         PR tree-optimization/117050
13177         * tree-vect-slp.cc (vect_build_slp_tree_2): Properly handle
13178         non-grouped masked loads when handling permutations.
13180 2024-10-16  Richard Biener  <rguenther@suse.de>
13182         * tree-vectorizer.h (SLP_INSTANCE_UNROLLING_FACTOR): Remove.
13183         (slp_instance::unrolling_factor): Likewise.
13184         * tree-vect-slp.cc (vect_build_slp_instance): Do not set
13185         SLP_INSTANCE_UNROLLING_FACTOR.  Remove then dead code.
13186         Compute and set max_nunits from the RHS nodes merged.
13187         (vect_update_slp_vf_for_node): New function.
13188         (vect_make_slp_decision): Use vect_update_slp_vf_for_node
13189         to compute VF recursively.
13190         (vect_build_slp_store_interleaving): Get max_nunits and
13191         properly set that on the permute nodes built.
13192         (vect_analyze_slp): Do not set SLP_INSTANCE_UNROLLING_FACTOR.
13194 2024-10-16  Robin Dapp  <rdapp@ventanamicro.com>
13196         PR target/116655
13197         * config/riscv/riscv-vector-costs.cc (max_number_of_live_regs):
13198         Use biggest mode instead of constant's saved mode.
13200 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
13202         * gimplify.cc (gimplify_init_ctor_eval): For larger RAW_DATA_CST,
13203         just gimplify cref as lvalue and add gimple assignment of rctor
13204         to cref instead of going through gimplification of INIT_EXPR, as
13205         the latter can suffer from infinite recursion.
13207 2024-10-16  Jakub Jelinek  <jakub@redhat.com>
13209         * treestruct.def (TS_RAW_DATA_CST): New.
13210         * tree.def (RAW_DATA_CST): New tree code.
13211         * tree-core.h (struct tree_raw_data): New type.
13212         (union tree_node): Add raw_data_cst member.
13213         * tree.h (RAW_DATA_LENGTH, RAW_DATA_POINTER, RAW_DATA_OWNER): Define.
13214         (gt_ggc_mx, gt_pch_nx): Declare overloads for tree_raw_data *.
13215         * tree.cc (tree_node_structure_for_code): Handle RAW_DATA_CST.
13216         (initialize_tree_contains_struct): Handle TS_RAW_DATA_CST.
13217         (tree_code_size): Handle RAW_DATA_CST.
13218         (initializer_zerop): Likewise.
13219         (gt_ggc_mx, gt_pch_nx): Define overloads for tree_raw_data *.
13220         * gimplify.cc (gimplify_init_ctor_eval): Handle RAW_DATA_CST.
13221         * fold-const.cc (operand_compare::operand_equal_p): Handle
13222         RAW_DATA_CST.  Formatting fix.
13223         (operand_compare::hash_operand): Handle RAW_DATA_CST.
13224         (native_encode_initializer): Likewise.
13225         (get_array_ctor_element_at_index): Likewise.
13226         (fold): Likewise.
13227         * gimple-fold.cc (fold_array_ctor_reference): Likewise.  Formatting
13228         fix.
13229         * varasm.cc (const_hash_1): Handle RAW_DATA_CST.
13230         (initializer_constant_valid_p_1): Likewise.
13231         (array_size_for_constructor): Likewise.
13232         (output_constructor_regular_field): Likewise.
13233         * expr.cc (categorize_ctor_elements_1): Likewise.
13234         (expand_expr_real_1) <case ARRAY_REF>: Punt for RAW_DATA_CST.
13235         * tree-streamer.cc (streamer_check_handled_ts_structures): Mark
13236         TS_RAW_DATA_CST as handled.
13237         * tree-streamer-in.cc (streamer_alloc_tree): Handle RAW_DATA_CST.
13238         (lto_input_ts_raw_data_cst_tree_pointers): New function.
13239         (streamer_read_tree_body): Call it for RAW_DATA_CST.
13240         * tree-streamer-out.cc (write_ts_raw_data_cst_tree_pointers): New
13241         function.
13242         (streamer_write_tree_body): Call it for RAW_DATA_CST.
13243         (streamer_write_tree_header): Handle RAW_DATA_CST.
13244         * lto-streamer-out.cc (DFS::DFS_write_tree_body): Handle RAW_DATA_CST.
13245         * tree-pretty-print.cc (dump_generic_node): Likewise.
13247 2024-10-16  Sam James  <sam@gentoo.org>
13249         * config/vax/vax.opt.urls: Adjust index for -mlra.
13251 2024-10-16  Sam James  <sam@gentoo.org>
13253         PR target/113952
13254         * config/sparc/sparc.cc (sparc_lra_p): Delete.
13255         (TARGET_LRA_P): Ditto.
13256         (sparc_option_override): Don't use MASK_LRA.
13257         * config/sparc/sparc.md (disabled,enabled): Drop lra attribute.
13258         * config/sparc/sparc.opt: Delete -mlra.
13259         * config/sparc/sparc.opt.urls: Ditto.
13260         * doc/invoke.texi (SPARC options): Drop -mlra and -mno-lra.
13262 2024-10-15  Qing Zhao  <qing.zhao@oracle.com>
13264         PR c/116016
13265         * doc/extend.texi: Add documentation for __builtin_counted_by_ref.
13267 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
13269         PR middle-end/116891
13270         * match.pd ((negate (fmas@3 @0 @1 @2)) -> (IFN_FNMS @0 @1 @2)):
13271         Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
13272         ((negate (IFN_FMS@3 @0 @1 @2)) -> (IFN_FNMA @0 @1 @2)): Likewise.
13273         ((negate (IFN_FNMA@3 @0 @1 @2)) -> (IFN_FMS @0 @1 @2)): Likewise.
13275 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
13277         PR c++/117157
13278         * doc/invoke.texi (Wno-changes-meaning): Add opindex.
13280 2024-10-15  Uros Bizjak  <ubizjak@gmail.com>
13282         PR target/117116
13283         * config/i386/i386-expand.cc (expand_vector_set): Force "val"
13284         into a register before VEC_MERGE/VEC_DUPLICATE RTX is generated
13285         if it doesn't satisfy nonimmediate_operand predicate.
13287 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
13289         * tree-ssa-dce.cc (perform_tree_ssa_dce): Remove FIXME note.
13291 2024-10-15  Andrew Pinski  <quic_apinski@quicinc.com>
13293         * gen-pass-instances.awk: Remove the limit of the params.
13294         * pass_manager.h (NEXT_PASS_WITH_ARG2): Rename to ...
13295         (NEXT_PASS_WITH_ARGS): This.
13296         * passes.cc (NEXT_PASS_WITH_ARG2): Rename to ...
13297         (NEXT_PASS_WITH_ARGS): This and support more than 2 params by using
13298         a constexpr array.
13300 2024-10-15  Richard Biener  <rguenther@suse.de>
13302         PR tree-optimization/116907
13303         * tree-ssa-live.cc (clear_unused_block_pointer_in_block): New
13304         helper.
13305         (clear_unused_block_pointer): Call it.
13307 2024-10-15  Pan Li  <pan2.li@intel.com>
13309         PR middle-end/117141
13310         * match.pd: Remove the dup pattern for signed SAT_SUB.
13312 2024-10-15  Tamar Christina  <tamar.christina@arm.com>
13314         * tree-vectorizer.h (vect_mem_access_type): New.
13315         * config/aarch64/aarch64.cc (aarch64_ld234_st234_vectors): Use it.
13316         (aarch64_detect_vector_stmt_subtype): Likewise.
13317         (aarch64_adjust_stmt_cost): Likewise.
13318         (aarch64_vector_costs::count_ops): Likewise.
13319         (aarch64_vector_costs::add_stmt_cost): Make SLP node named.
13321 2024-10-15  Richard Biener  <rguenther@suse.de>
13323         PR tree-optimization/117138
13324         * gimple-range-fold.cc (fold_using_range::condexpr_adjust):
13325         Check if the comparison operand type is supported.
13327 2024-10-15  Richard Biener  <rguenther@suse.de>
13329         PR middle-end/117137
13330         * expr.cc (expand_cond_expr_using_cmove): Make sure to
13331         expand vector comparisons separately.
13333 2024-10-15  Richard Biener  <rguenther@suse.de>
13335         PR tree-optimization/117147
13336         * tree-vect-slp.cc (vect_build_slp_tree_1): Put vars and
13337         initialization of per-lane data into the per-lane processing
13338         loop to avoid re-using previous lane state.
13340 2024-10-15  Jennifer Schmitz  <jschmitz@nvidia.com>
13342         * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
13343         Implement fold to svlsl for power-of-2 operands.
13345 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
13347         * doc/invoke.texi (Wtrailing-whitespace): Document.
13349 2024-10-15  Jakub Jelinek  <jakub@redhat.com>
13351         PR bootstrap/117110
13352         * Makefile.in (generated_files, generated_match_files,
13353         build/genmatch$(build_exeext), LINKER_FOR_BUILD): Revert
13354         2024-10-12 changes.
13355         * genmatch.cc: Don't include pretty-print.h and input.h.
13356         (fatal, ggc_internal_cleared_alloc, ggc_free, line_table,
13357         linemap_client_expand_location_to_spelling_point): Revert
13358         2024-10-12 changes.
13359         (DIAG_ARGMAX): Define.
13360         (diag_integer_with_precision): Define.
13361         (diag_vfprintf): New function.
13362         (diagnostic_cb): Use diag_vfprintf instead of pp_format_verbatim.
13363         (output_line_directive): Revert 2024-10-12 changes.
13365 2024-10-14  David Malcolm  <dmalcolm@redhat.com>
13367         PR bootstrap/117109
13368         * diagnostic-format-sarif.cc
13369         (diagnostic_output_format_init_sarif_file): Rename
13370         diagnostic_context::emit_diagnostic to
13371         diagnostic_context::emit_diagnostic_with_group.
13372         * diagnostic.cc (diagnostic_context::emit_diagnostic): Rename
13373         to...
13374         (diagnostic_context::emit_diagnostic_with_group): ...this.
13375         (diagnostic_context::emit_diagnostic_va): Rename to...
13376         (diagnostic_context::emit_diagnostic_with_group_va): ...this.
13377         * diagnostic.h (diagnostic_context::emit_diagnostic): Rename to...
13378         (diagnostic_context::emit_diagnostic_with_group): ...this.
13379         (diagnostic_context::emit_diagnostic_va): Rename to...
13380         (diagnostic_context::emit_diagnostic_with_group_va): ...this.
13382 2024-10-14  Andre Vieira  <andre.simoesdiasvieira@arm.com>
13383             Andrew Pinski  <quic_apinski@quicinc.com>
13385         PR middle-end/116997
13386         * fold-const.cc (fold_ternary_loc): Fix BIT_INSERT_EXPR constant folding
13387         for BYTES_BIG_ENDIAN targets.
13389 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
13391         * tree-ssa-dce.cc (tree_ssa_dce): Remove.
13392         (tree_ssa_cd_dce): Remove.
13393         (class pass_dce_base): New class.
13394         (class pass_dce): Use pass_dce_base as the base class.
13395         (class pass_cd_dce): Likewise.
13397 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
13399         PR tree-optimization/117096
13400         * passes.def: Update some of the dce/cd-cde passes setting
13401         the 2nd arg to true.
13402         Also remove comment about stdarg since dce does it.
13403         * tree-ssa-dce.cc (pass_dce): Add remove_unused_locals_p field.
13404         Update set_pass_param to allow for 2nd param.
13405         Use remove_unused_locals_p in execute to return TODO_remove_unused_locals.
13406         (pass_cd_dce): Likewise.
13407         * tree-stdarg.cc (pass_data_stdarg): Remove TODO_remove_unused_locals.
13409 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
13411         * gen-pass-instances.awk (END): Handle processing
13412         of multiple arguments to NEXT_PASS. Also error out
13413         if using more than max_number_args (2).
13414         * pass_manager.h (NEXT_PASS_WITH_ARG2): New define.
13415         * passes.cc (NEXT_PASS_WITH_ARG2): New define.
13417 2024-10-14  Andrew Pinski  <quic_apinski@quicinc.com>
13419         * gen-pass-instances.awk: Print out the #undefs.
13420         * pass_manager.h: Don't #undef INSERT_PASSES_AFTER,
13421         PUSH_INSERT_PASSES_WITHIN, POP_INSERT_PASSES, NEXT_PASS,
13422         NEXT_PASS_WITH_ARG, and TERMINATE_PASS_LIST.
13423         * passes.cc: Likewise.
13425 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
13427         PR tree-optimization/116956
13428         * tree-vectorizer.cc (vec_info::move_dr): Copy STMT_VINFO_STRIDED_P.
13430 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
13432         PR rtl-optimization/117012
13433         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Use
13434         const_vec_duplicate_p instead of CONST_VECTOR_DUPLICATE_P.
13436 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
13438         PR target/116371
13439         * config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl):
13440         Renamed to ...
13441         (class svpsel_lane_impl): ... This and adjust initialization.
13442         * config/aarch64/aarch64-sve-builtins-sve2.def (svpsel): Renamed to ...
13443         (svpsel_lane): ... This.
13444         * config/aarch64/aarch64-sve-builtins-sve2.h (svpsel): Renamed to
13445         svpsel_lane.
13447 2024-10-14  Tamar Christina  <tamar.christina@arm.com>
13449         * tree-vect-loop.cc (vect_analyze_loop_2): Handle SLP trees with no
13450         children.
13451         * tree-vectorizer.h (enum slp_instance_kind): Add slp_inst_kind_gcond.
13452         (LOOP_VINFO_EARLY_BREAKS_LIVE_IVS): New.
13453         (vectorizable_early_exit): Expose.
13454         (class _loop_vec_info): Add early_break_live_stmts.
13455         * tree-vect-slp.cc (vect_build_slp_instance, vect_analyze_slp_instance):
13456         Support gcond instances.
13457         (vect_analyze_slp): Analyze gcond roots and early break live statements.
13458         (maybe_push_to_hybrid_worklist): Don't sink gconds.
13459         (vect_slp_analyze_operations): Support gconds.
13460         (vect_slp_check_for_roots): Update comments.
13461         (vectorize_slp_instance_root_stmt): Support gconds.
13462         (vect_schedule_slp): Pass vinfo to vectorize_slp_instance_root_stmt.
13463         * tree-vect-stmts.cc (vect_stmt_relevant_p): Record early break live
13464         statements.
13465         (vectorizable_early_exit): Support SLP.
13467 2024-10-14  Victor Do Nascimento  <victor.donascimento@arm.com>
13469         PR middle-end/116926
13470         * optabs-query.cc (find_widening_optab_handler_and_mode): Add
13471         handling of vector -> scalar optab handling.
13473 2024-10-14  Richard Sandiford  <richard.sandiford@arm.com>
13475         PR target/116999
13476         PR target/117045
13477         * config/aarch64/aarch64-sve-builtins-base.cc
13478         (svwhilelx_impl::fold): Check for WHILELTs of the minimum value
13479         and WHILELEs of the maximum value.  Fold them to all-false and
13480         all-true respectively.
13482 2024-10-14  Richard Biener  <rguenther@suse.de>
13484         PR middle-end/116891
13485         * match.pd ((negate (IFN_FNMS@3 @0 @1 @2)) -> (IFN_FMA @0 @1 @2)):
13486         Only enable for !HONOR_SIGN_DEPENDENT_ROUNDING.
13488 2024-10-14  Pan Li  <pan2.li@intel.com>
13490         * match.pd: Add matching pattern for vector signed SAT_SUB form 3.
13492 2024-10-14  Richard Biener  <rguenther@suse.de>
13494         PR tree-optimization/116290
13495         * tree-loop-distribution.cc (determine_reduction_stmt_1): PHIs
13496         have no debug variants.  Start with first non-debug real stmt.
13497         * tree-ssa-loop-ivopts.cc (find_givs_in_bb): Do not analyze
13498         debug stmts.
13500 2024-10-14  Oleg Endo  <olegendo@gcc.gnu.org>
13501             Roger Sayle  <roger@nextmovesoftware.com>
13503         PR target/113533
13504         * config/sh/sh.cc (sh_rtx_costs): Adjust cost estimation of MEM rtx
13505         to be always at least COST_N_INSNS (1).  Forward speed argument to
13506         sh_address_cost.
13508 2024-10-13  Andreas Schwab  <schwab@linux-m68k.org>
13510         * config/m68k/m68k.md ("movsi", "movxf"): Replace
13511         reload_in_progress by reload_in_progress || lra_in_progress.
13512         * config/m68k/m68k.cc (m68k_legitimate_mem_p)
13513         (emit_move_sequence): Likewise.
13514         * config/m68k/predicates.md ("fp_src_operand"): Likewise.
13516 2024-10-13  Richard Biener  <rguenther@suse.de>
13518         PR tree-optimization/116481
13519         * pointer-query.cc (build_printable_array_type):
13520         Build an array types with function or method element type
13521         manually to avoid bogus diagnostic.
13523 2024-10-13  Tobias Burnus  <tburnus@baylibre.com>
13525         * gimple-fold.cc (gimple_fold_builtin_acc_on_device): Also fold
13526         when offloading is not configured.
13528 2024-10-13  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
13530         * config/riscv/riscv.md (zero_extendsidi2): If RHS is already
13531         zero extended, then this is just a copy.
13532         (extendsidi2): Similarly, but for sign extension.
13534 2024-10-12  Feng Xue  <fxue@os.amperecomputing.com>
13536         PR tree-optimization/116985
13537         * tree-vect-loop.cc (vect_transform_reduction): Compute loop mask
13538         index based on effective vector copies for reduction op.
13540 2024-10-12  Richard Biener  <rguenther@suse.de>
13542         PR tree-optimization/117104
13543         * match.pd ((cmp:c (minmax:c @0 @1) @0) -> (out @0 @1)): Properly
13544         guard the vector case.
13546 2024-10-12  Jeff Law  <jlaw@ventanamicro.com>
13548         * config/riscv/constraints.md (P): New constraint.
13549         * config/riscv/vector.md (pred_broadcast<mode> expander): Do
13550         not force small integers into GPRs so aggressively.
13551         (pred_broadcast<mode> insn & splitter): Allow splatting small
13552         constants across the vector register directly.  Allow splatting
13553         (const_int 0) into element 0 directly.
13555 2024-10-12  Jakub Jelinek  <jakub@redhat.com>
13557         * Makefile.in (LINKER_FOR_BUILD): Append -no-pie if it is in
13558         $(LD_PICFLAG) when building build/genmatch.
13560 2024-10-12  Jakub Jelinek  <jakub@redhat.com>
13562         * Makefile.in (generated_files): Remove {gimple,generic}-match*.
13563         (generated_match_files): New variable.  Add a dependency of
13564         $(filter-out $(OBJS-libcommon),$(ALL_HOST_OBJS)) files on those.
13565         (build/genmatch$(build_exeext)): Depend on and link against
13566         libcommon.a and $(LIBBACKTRACE).
13567         * genmatch.cc: Include pretty-print.h and input.h.
13568         (ggc_internal_cleared_alloc, ggc_free): Remove.
13569         (fatal): New function.
13570         (line_table): Remove.
13571         (linemap_client_expand_location_to_spelling_point): Remove.
13572         (diagnostic_cb): Use gcc_diag rather than printf format.  Use
13573         pp_format_verbatim on a temporary pretty_printer instead of
13574         vfprintf.
13575         (fatal_at, warning_at): Use gcc_diag rather than printf format.
13576         (output_line_directive): Rename location_hash to loc_hash.
13577         (parser::eat_ident, parser::parse_operation, parser::parse_expr,
13578         parser::parse_pattern, parser::finish_match_operand): Fix up
13579         -Wformat-diag warnings.
13581 2024-10-12  Pan Li  <pan2.li@intel.com>
13583         * config/riscv/autovec.md (sssub<mode>3): Add new pattern for
13584         signed SAT_SUB.
13585         * config/riscv/riscv-protos.h (expand_vec_sssub): Add new func
13586         decl to expand sssub to vssub.
13587         * config/riscv/riscv-v.cc (expand_vec_sssub): Add new func
13588         impl to expand sssub to vssub.
13590 2024-10-12  Pan Li  <pan2.li@intel.com>
13592         * tree-vect-patterns.cc (gimple_signed_integer_sat_sub): Add new
13593         func decl for signed SAT_SUB.
13594         (vect_recog_sat_sub_pattern_transform): Update comments.
13595         (vect_recog_sat_sub_pattern): Try the vector signed SAT_SUB
13596         pattern.
13598 2024-10-12  Pan Li  <pan2.li@intel.com>
13600         * match.pd: Add case 1 matching pattern for vector signed SAT_SUB.
13602 2024-10-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
13604         PR target/117048
13605         * config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Redefine into a
13606         define_expand.
13607         (*aarch64_xarqv2di_insn): Define.
13609 2024-10-11  Kyrylo Tkachov  <ktkachov@nvidia.com>
13611         PR target/117048
13612         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
13613         Handle vector constants in (x << C1) | (x >> C2) -> ROTATE
13614         simplification.
13616 2024-10-11  Jennifer Schmitz  <jschmitz@nvidia.com>
13618         PR tree-optimization/116826
13619         PR tree-optimization/86710
13620         * match.pd: Fold logN(1.0/a) -> -logN(a),
13621         logN(C/a) -> logN(C) - logN(a), logN(a) + logN(b) -> logN(a*b),
13622         and logN(a) - logN(b) -> logN(a/b).
13624 2024-10-11  Richard Biener  <rguenther@suse.de>
13626         PR tree-optimization/117080
13627         * tree-vectorizer.h (_slp_tree::memory_access_type): Add.
13628         (SLP_TREE_MEMORY_ACCESS_TYPE): New.
13629         (record_stmt_cost): Add another overload.
13630         * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize
13631         memory_access_type.
13632         * tree-vect-stmts.cc (vectorizable_store): Set
13633         SLP_TREE_MEMORY_ACCESS_TYPE.
13634         (vectorizable_load): Likewise.  Also record the SLP node
13635         when costing emulated gather offset decompose and vector
13636         composition.
13637         * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost): Also
13638         recognize SLP emulated gather/scatter.
13640 2024-10-11  Saurabh Jha  <saurabh.jha@arm.com>
13642         * config/aarch64/aarch64-sve2.md
13643         (*aarch64_pred_faminmax_fused): Instruction pattern for faminmax
13644         codegen.
13645         * config/aarch64/iterators.md: Iterator and attribute for
13646         faminmax codegen.
13648 2024-10-11  Saurabh Jha  <saurabh.jha@arm.com>
13650         * config/aarch64/aarch64-sve-builtins-base.cc
13651         (svamax): Absolute maximum declaration.
13652         (svamin): Absolute minimum declaration.
13653         * config/aarch64/aarch64-sve-builtins-base.def
13654         (REQUIRED_EXTENSIONS): Add faminmax intrinsics behind a flag.
13655         (svamax): Absolute maximum declaration.
13656         (svamin): Absolute minimum declaration.
13657         * config/aarch64/aarch64-sve-builtins-base.h: Declaring function
13658         bases for the new intrinsics.
13659         * config/aarch64/aarch64.h
13660         (TARGET_SVE_FAMINMAX): New flag for SVE2 faminmax.
13661         * config/aarch64/iterators.md: New unspecs, iterators, and attrs
13662         for the new intrinsics.
13664 2024-10-11  Richard Biener  <rguenther@suse.de>
13666         PR middle-end/117086
13667         * match.pd ((op (vec_cond ...) ..) -> (vec_cond ...)): Add
13668         missing checks for VECTOR_TYPE_P (type).
13670 2024-10-11  Pan Li  <pan2.li@intel.com>
13672         * match.pd: Add case 4 matching pattern for signed SAT_TRUNC.
13674 2024-10-11  Pan Li  <pan2.li@intel.com>
13676         * match.pd: Add case 3 matching pattern for signed SAT_TRUNC.
13678 2024-10-11  Pan Li  <pan2.li@intel.com>
13680         * match.pd: Add case 2 matching pattern for signed SAT_TRUNC.
13682 2024-10-11  Jakub Jelinek  <jakub@redhat.com>
13684         PR target/117053
13685         * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Handle
13686         TARGET_ZERO_EXTEND_WITH_AND differently.
13687         (ix86_expand_int_spaceship): Likewise.
13689 2024-10-11  Richard Biener  <rguenther@suse.de>
13691         PR tree-optimization/117050
13692         * tree-vect-slp.cc (vect_build_slp_tree_2): Do not support
13693         permutes of non-grouped .MASK_LOAD.
13695 2024-10-11  Richard Biener  <rguenther@suse.de>
13697         * tree-vect-slp.cc (vect_slp_prefer_store_lanes_p): Allow
13698         passing in of vectype, pass in whether the stores are masked
13699         and query the correct optab.
13700         (vect_build_slp_instance): Guard store-lanes query with
13701         ! STMT_VINFO_SLP_VECT_ONLY, guaranteeing an uniform mask.
13703 2024-10-11  Hu, Lin1  <lin1.hu@intel.com>
13705         * config/i386/sse.md
13706         (sse_movhlps): Change type attr from ssemov to ssemov2.
13707         (sse_loadhps): Ditto.
13708         (*vec_concat<mode>): Ditto.
13709         (vec_setv2df_0): Ditto.
13710         (sse_loadlps): Change attr from ssemov to ssemov2 except for 2, 3.
13711         (sse2_loadhps): Change attr from ssemov to ssemov2 except for 0, 1.
13712         (sse2_loadlpd): Change attr from ssemov to ssemov2 except for 0, 1,
13713         2.
13714         (sse2_movsd_<mode>): Change attr from ssemov to ssemov2 except for 5.
13715         (vec_concatv2df): Change attr from ssemov to ssemov2 except for 0, 1,
13716         2.
13717         (*vec_concat<mode>): Change attr from ssemov to ssemov2 for 3, 4.
13718         (vec_concatv2di): Change attr from ssemov to ssemov2 except for 0, 1,
13719         2, 3, 4, 5.
13721 2024-10-10  Michael Matz  <matz@suse.de>
13723         PR rtl-optimization/116650
13724         * regrename.cc (check_new_reg_p): Calculate nregs in terms of
13725         the new candidate register.
13727 2024-10-10  Andrew Pinski  <quic_apinski@quicinc.com>
13729         * tree-ssa-phiopt.cc (pass_phiopt::execute): Remove candorest
13730         and return instead of setting candorest.
13732 2024-10-10  Li Xu  <xuli1@eswincomputing.com>
13734         PR target/116883
13735         * config/riscv/riscv-c.cc (riscv_pragma_intrinsic_flags_pollute): Choose zvl4096b
13736         to initialize null type.
13738 2024-10-10  Richard Sandiford  <richard.sandiford@arm.com>
13740         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Set repeating_p
13741         to false if we have an external node for a pre-existing vector.
13743 2024-10-10  Richard Biener  <rguenther@suse.de>
13745         PR tree-optimization/117060
13746         * tree-vect-slp.cc (vect_build_slp_tree_1): When comparing
13747         calls also fail if the first isn't a call.
13749 2024-10-10  Jennifer Schmitz  <jschmitz@nvidia.com>
13751         PR tree-optimization/116831
13752         * match.pd: Guard simplification to trunc_mod with check for
13753         mod optab support.
13755 2024-10-10  Richard Biener  <rguenther@suse.de>
13757         * tree-vect-slp.cc (vect_build_slp_tree_1): Do not compare
13758         RHS codes for loads or stores.
13759         (vect_get_and_check_slp_defs): Only demote operand to external
13760         in case there is more than one operand.
13762 2024-10-10  liuhongt  <hongtao.liu@intel.com>
13764         * config/i386/i386.cc (ix86_vector_costs::ix86_vector_costs):
13765         Add new member m_num_avx256_vec_perm.
13766         (ix86_vector_costs::add_stmt_cost): Record 256-bit vec_perm.
13767         (ix86_vector_costs::finish_cost): Prevent vectorization for
13768         TAREGT_AVX256_AVOID_VEC_PERM when there's 256-bit vec_perm
13769         instruction.
13770         * config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New
13771         Macro.
13772         * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add
13773         m_CORE_ATOM.
13774         (X86_TUNE_AVX256_AVOID_VEC_PERM): New tune.
13776 2024-10-10  liuhongt  <hongtao.liu@intel.com>
13778         * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Guard
13779         instruction blendv generation under new tune.
13780         * config/i386/i386.h (TARGET_SSE_MOVCC_USE_BLENDV): New Macro.
13781         * config/i386/x86-tune.def (X86_TUNE_SSE_MOVCC_USE_BLENDV):
13782         New tune.
13784 2024-10-10  Levy Hsu  <admin@levyhsu.com>
13786         * config/i386/i386.md: Rewrite insn truncsfbf2.
13788 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
13790         * diagnostic-format-text.cc
13791         (diagnostic_text_output_format::after_diagnostic): Replace call to
13792         show_any_path with body, taken from diagnostic.cc.
13793         (diagnostic_text_output_format::build_prefix): Move here from
13794         diagnostic.cc, updating to use get_diagnostic_kind_text and
13795         diagnostic_get_color_for_kind.
13796         (diagnostic_text_output_format::file_name_as_prefix): Move here
13797         from diagnostic.cc
13798         (diagnostic_text_output_format::append_note): Likewise.
13799         * diagnostic-format-text.h
13800         (diagnostic_text_output_format::show_any_path): Drop decl.
13801         * diagnostic.cc
13802         (diagnostic_text_output_format::file_name_as_prefix): Move to
13803         diagnostic-format-text.cc.
13804         (diagnostic_text_output_format::build_prefix): Likewise.
13805         (diagnostic_text_output_format::show_any_path): Move to body of
13806         diagnostic_text_output_format::after_diagnostic.
13807         (diagnostic_text_output_format::append_note): Move to
13808         diagnostic-format-text.cc.
13810 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
13812         * doc/invoke.texi (fdiagnostics-format): Describe "json" et al as
13813         deprecated, and remove the long description of the output format.
13815 2024-10-10  David Malcolm  <dmalcolm@redhat.com>
13817         PR other/116613
13818         * lto-wrapper.cc (print_lto_docs_link): Use a format string rather
13819         than building the string manually.  Fix memory leak of "url" by
13820         using label_text.
13822 2024-10-09  liuhongt  <hongtao.liu@intel.com>
13824         * tree-vect-loop.cc (vect_analyze_loop_costing): Enable
13825         vectorization for LOOP_VINFO_PEELING_FOR_NITER in very cheap
13826         cost model.
13827         (vect_analyze_loop): Disable epilogue vectorization in very
13828         cheap cost model.
13829         * doc/invoke.texi: Adjust documents for very-cheap cost model.
13831 2024-10-09  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
13833         PR target/115921
13834         * config/riscv/iterators.md (any_eq): New code iterator.
13835         * config/riscv/riscv.h (COMMON_TRAILING_ZEROS): New macro.
13836         (SMALL_AFTER_COMMON_TRAILING_SHIFT): Ditto.
13837         * config/riscv/riscv.md (*branch<ANYI:mode>_shiftedarith_<optab>_shifted):
13838         New pattern.
13840 2024-10-09  Jeff Law  <jlaw@ventanamicro.com>
13842         Revert:
13843         2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
13845         * common/config/riscv/riscv-common.cc: M implies Zmmul.
13847 2024-10-09  Jeff Law  <jlaw@ventanamicro.com>
13849         Revert:
13850         2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
13852         * config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins):
13853         Enable builtin __riscv_mul with Zmmul extension.
13855 2024-10-09  Richard Sandiford  <richard.sandiford@arm.com>
13857         PR target/116629
13858         * config/aarch64/aarch64-sve-builtins.cc
13859         (function_builder::function_builder): Use direct overloads for LTO.
13861 2024-10-09  Richard Biener  <rguenther@suse.de>
13863         * tree-vect-data-refs.cc (vect_analyze_data_ref_access): When
13864         cancelling a DR group also clear DR_GROUP_NEXT_ELEMENT.
13866 2024-10-09  Richard Biener  <rguenther@suse.de>
13868         PR tree-optimization/117041
13869         * tree-vect-stmts.cc (get_group_load_store_type): Only
13870         check DR_GROUP_NEXT_ELEMENT for STMT_VINFO_GROUPED_ACCESS.
13872 2024-10-09  René Rebe  <rene@exactcode.de>
13874         * config/ia64/ia64.cc: Enable LRA for ia64.
13875         * config/ia64/ia64.md: Likewise.
13876         * config/ia64/predicates.md: Likewise.
13878 2024-10-09  René Rebe  <rene@exactcode.de>
13880         * config.gcc: Only list ia64*-*-(hpux|vms|elf) in the list of
13881         obsoleted targets.
13883 2024-10-09  Richard Biener  <rguenther@suse.de>
13885         PR tree-optimization/116974
13886         * tree-vect-stmts.cc (check_scan_store): Pass in the SLP node
13887         instead of just a flag.  Allow single-lane scan stores.
13888         (vectorizable_store): Adjust.
13889         * tree-vect-loop.cc (vect_analyze_loop_2): Empty scan_map
13890         before re-trying.
13892 2024-10-09  Richard Biener  <rguenther@suse.de>
13894         PR tree-optimization/116575
13895         PR tree-optimization/114375
13896         * tree-vect-slp.cc (vect_build_slp_tree_2): Do not reject
13897         permuted mask loads without gaps but instead discover a
13898         node for the full unpermuted load and permute that with
13899         a VEC_PERM node.
13901 2024-10-09  Richard Biener  <rguenther@suse.de>
13903         PR tree-optimization/117000
13904         * match.pd (.REDUC_IOR !=/== 0): New pattern.
13905         * gimple-match-head.cc: Include memmodel.h and optabs.h.
13906         * generic-match-head.cc: Likewise.
13908 2024-10-09  Richard Biener  <rguenther@suse.de>
13910         * tree-vect-slp.cc (vect_cse_slp_nodes): Fix memory leak.
13912 2024-10-09  Jan Beulich  <jbeulich@suse.com>
13914         * doc/extend.texi: Clarify __builtin_choose_expr()
13915         (dis)similarity to the ?: operator.
13917 2024-10-09  Ken Matsui  <kmatsui@gcc.gnu.org>
13919         PR preprocessor/89808
13920         * doc/invoke.texi (Warning Options): Document
13921         -Wno-pragma-once-outside-header.
13923 2024-10-09  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
13925         PR tree-optimization/116024
13926         * match.pd: New transformation around integer comparison.
13928 2024-10-09  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
13930         PR tree-optimization/116024
13931         * match.pd: New transformation around integer comparison.
13933 2024-10-08  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
13935         PR tree-optimization/116024
13936         * match.pd: New transformation around integer comparison.
13938 2024-10-08  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
13940         PR tree-optimization/116024
13941         * match.pd: New transformation around integer comparison.
13943 2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
13945         * config/riscv/riscv-c.cc: (riscv_cpu_cpp_builtins):
13946         Enable builtin __riscv_mul with Zmmul extension.
13948 2024-10-08  Tsung Chun Lin  <tclin914@gmail.com>
13950         * common/config/riscv/riscv-common.cc: M implies Zmmul.
13952 2024-10-08  Yangyu Chen  <chenyangyu@isrc.iscas.ac.cn>
13954         * common/config/riscv/riscv-common.cc (cl_opt_var_ref_t): Add
13955         cl_opt_var_ref_t pointer to member of cl_target_option.
13956         (struct riscv_ext_flag_table_t): Add new cl_opt_var_ref_t field.
13957         (RISCV_EXT_FLAG_ENTRY): New macro to simplify the definition of
13958         riscv_ext_flag_table.
13959         (riscv_ext_is_subset): New function to check if the callee's ISA
13960         is a subset of the caller's.
13961         (riscv_x_target_flags_isa_mask): New function to get the mask of
13962         ISA extension in x_target_flags of gcc_options.
13963         * config/riscv/riscv-subset.h (riscv_ext_is_subset): Declare
13964         riscv_ext_is_subset function.
13965         (riscv_x_target_flags_isa_mask): Declare
13966         riscv_x_target_flags_isa_mask function.
13967         * config/riscv/riscv.cc (riscv_can_inline_p): New function.
13968         (TARGET_CAN_INLINE_P): Implement TARGET_CAN_INLINE_P.
13970 2024-10-08  Pan Li  <pan2.li@intel.com>
13972         * config/riscv/riscv-protos.h (riscv_expand_sstrunc): Add new
13973         func decl to expand SAT_TRUNC.
13974         * config/riscv/riscv.cc (riscv_expand_sstrunc): Add new func
13975         impl to expand SAT_TRUNC.
13976         * config/riscv/riscv.md (sstrunc<mode><anyi_double_truncated>2):
13977         Add new pattern for double truncation.
13978         (sstrunc<mode><anyi_quad_truncated>2): Ditto but for quad.
13979         (sstrunc<mode><anyi_oct_truncated>2): Ditto but for oct.
13981 2024-10-08  Pan Li  <pan2.li@intel.com>
13983         * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Rename
13984         to...
13985         (build_saturation_binary_arith_call_and_replace): ...this.
13986         (build_saturation_binary_arith_call_and_insert): ...this.
13987         (match_unsigned_saturation_add): Leverage renamed func.
13988         (match_unsigned_saturation_sub): Ditto.
13989         (match_saturation_add): Return bool on matched and leverage
13990         renamed func.
13991         (match_saturation_sub): Ditto.
13992         (match_saturation_trunc): Ditto.
13993         (math_opts_dom_walker::after_dom_children): Ensure at most one
13994         pattern will be matched for each phi node.
13996 2024-10-08  Pan Li  <pan2.li@intel.com>
13998         * match.pd: Add case 1 matching pattern for signed SAT_TRUNC.
13999         * tree-ssa-math-opts.cc (gimple_signed_integer_sat_trunc): Add
14000         new decl for signed SAT_TRUNC.
14001         (match_saturation_trunc): Add new func impl to try SAT_TRUNC
14002         pattern on phi node.
14003         (math_opts_dom_walker::after_dom_children): Add
14004         match_saturation_trunc for phi node iteration.
14006 2024-10-08  Jan Beulich  <jbeulich@suse.com>
14008         * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>,
14009         vaesenc_<mode>, vaesenclast_<mode>): Replace which_alternative
14010         check by TARGET_AES one.
14012 2024-10-08  Soumya AR  <soumyaa@nvidia.com>
14014         PR target/109498
14015         * config/aarch64/aarch64-sve.md (ctz<mode>2): Added pattern to expand
14016         CTZ to RBIT + CLZ for SVE.
14018 2024-10-08  Palmer Dabbelt  <palmer@rivosinc.com>
14020         PR target/116615
14021         * config/riscv/riscv.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove.
14023 2024-10-08  Xi Ruoyao  <xry111@xry111.site>
14025         * config/loongarch/loongarch.opt: Regenerate.
14026         * config/loongarch/loongarch.opt.urls: Regenerate.
14028 2024-10-08  Pan Li  <pan2.li@intel.com>
14030         * match.pd: Add case 3 matching pattern for signed SAT_SUB.
14032 2024-10-08  Jakub Jelinek  <jakub@redhat.com>
14034         PR middle-end/116896
14035         * tree-ssa-math-opts.cc (optimize_spaceship): Handle unordered values
14036         other than 2, but they still need to be signed char range possibly
14037         converted to the PHI result and can't be in [-1, 1] range.  Use
14038         last .SPACESHIP argument of 1 for unsigned int comparisons, -1 for
14039         signed int, 0 for floating point branches and any other for floating
14040         point with that value as unordered.
14041         * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Use op2 rather
14042         const2_rtx if op2 is not const0_rtx for unordered result.
14043         (ix86_expand_int_spaceship): Change INTVAL (op2) == 1 tests to
14044         INTVAL (op2) != -1.
14045         * doc/md.texi (spaceship@var{m}4): Document the above changes.
14047 2024-10-08  Prathamesh Kulkarni  <prathameshk@nvidia.com>
14049         PR ipa/96265
14050         * lto-streamer-in.cc (lto_read_tree_1): Set TYPE_MODE and DECL_MODE
14051         for vector_type if offloading is enabled.
14052         (lto_input_mode_table): Remove handling of vector modes.
14053         * tree-streamer-out.cc (pack_ts_decl_common_value_fields): Stream out
14054         VOIDmode for vector_type if offloading is enabled.
14055         (pack_ts_decl_common_value_fields): Likewise.
14057 2024-10-08  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
14059         * diagnostic-color.cc: Conditionally enable terminal processing
14060         based on define availability.
14061         * pretty-print.cc: Likewise.
14063 2024-10-08  Xi Ruoyao  <xry111@xry111.site>
14065         * config/loongarch/genopts/loongarch.opt.in
14066         (mannotate-tablejump): New option.
14067         * config/loongarch/loongarch.opt: Regenerate.
14068         * config/loongarch/loongarch.md (tablejump<mode>): Emit
14069         additional correlation info between the jump instruction and the
14070         jump table, if -mannotate-tablejump.
14071         * doc/invoke.texi: Document -mannotate-tablejump.
14073 2024-10-08  Xiao Zeng  <zengxiao@eswincomputing.com>
14075         * common/config/riscv/riscv-common.cc: zawrs -> zalrsc.
14077 2024-10-07  Jeff Law  <jlaw@ventanamicro.com>
14079         * config/riscv/iterators.md (scc_0): New code iterator.
14080         * config/riscv/zicond.md: New splitters to improve code generated for
14081         cases like (and (scc) (scc)) for zicond, xventanacondops, xtheadcondmov.
14083 2024-10-07  Jason Merrill  <jason@redhat.com>
14085         * doc/invoke.texi (C++ Module Preprocessing): Allow -M,
14086         refer to -fdeps.
14088 2024-10-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14090         * config/arm/arm.cc (arm_noce_oncersion_profitable_p): Remove unused
14091         argument name.
14092         (arm_is_v81m_cond_insn): Initialize variable.
14094 2024-10-07  Jakub Jelinek  <jakub@redhat.com>
14096         * config/riscv/vector-crypto.md: Remove executable permissions.
14098 2024-10-07  Victor Do Nascimento  <victor.donascimento@arm.com>
14100         * tree-if-conv.cc (if_convertible_stmt_p): Check for explicit
14101         function declaration before IFN fallback.
14103 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14105         PR tree-optimization/116583
14106         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Add more
14107         dump messages.
14109 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14111         PR tree-optimization/116583
14112         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Handle
14113         variable-length pack and unpack permutations.
14115 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14117         PR tree-optimization/116583
14118         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
14119         the noutputs_per_mask inner loop and instead generate a
14120         separate permute vector for each output.
14122 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14124         PR tree-optimization/116583
14125         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Using
14126         poly_uint64 for scalar lane indices.
14128 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14130         * config/aarch64/iterators.md (SVE_I): Move further up file.
14131         (SVE_F): New mode iterator.
14132         (SVE_ALL): Redefine in terms of SVE_I and SVE_F.
14133         * config/aarch64/aarch64-sve.md (*<LOGICALF:optab><mode>3): Extend
14134         to all SVE_F.
14136 2024-10-07  Richard Sandiford  <richard.sandiford@arm.com>
14138         PR target/116583
14139         * config/aarch64/aarch64.cc (aarch64_coalesce_units): New function,
14140         extending the Advanced SIMD handling from...
14141         (aarch64_evpc_reencode): ...here to SVE data and predicate modes.
14143 2024-10-07  Richard Biener  <rguenther@suse.de>
14145         PR tree-optimization/116990
14146         * tree-vect-loop.cc (vect_analyze_loop_form): Check the current
14147         loop body for control flow.
14149 2024-10-07  Richard Biener  <rguenther@suse.de>
14151         PR tree-optimization/116982
14152         * tree-vectorizer.h (vect_analyze_loop): Pass in .LOOP_VECTORIZED
14153         call.
14154         (vect_analyze_loop_form): Likewise.
14155         * tree-vect-loop.cc (vect_analyze_loop_form): Reject loops where we
14156         cannot determine a IV exit for the scalar loop.
14157         (vect_analyze_loop): Adjust.
14158         * tree-vectorizer.cc (try_vectorize_loop_1): Likewise.
14159         * tree-parloops.cc (gather_scalar_reductions): Likewise.
14161 2024-10-07  Jakub Jelinek  <jakub@redhat.com>
14163         PR middle-end/116896
14164         * optabs.def (spaceship_optab): Use spaceship$a4 rather than
14165         spaceship$a3.
14166         * internal-fn.cc (expand_SPACESHIP): Expect 3 call arguments
14167         rather than 2, expand the last one, expect 4 operands of
14168         spaceship_optab.
14169         * tree-ssa-math-opts.cc: Include cfghooks.h.
14170         (optimize_spaceship): Check if a single PHI is initialized to
14171         -1, 0, 1, 2 or -1, 0, 1 values, in that case pass 1 as last (new)
14172         argument to .SPACESHIP and optimize away the comparisons,
14173         otherwise pass 0.  Also check for integer comparisons rather than
14174         floating point, in that case do it only if there is a single PHI
14175         with -1, 0, 1 values and pass 1 to last argument of .SPACESHIP
14176         if the <=> is signed, 2 if unsigned.
14177         * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Add
14178         another rtx argument.
14179         (ix86_expand_int_spaceship): Declare.
14180         * config/i386/i386-expand.cc (ix86_expand_fp_spaceship): Add
14181         arg3 argument, if it is const0_rtx, expand like before, otherwise
14182         emit optimized sequence for setting the result into a GPR.
14183         (ix86_expand_int_spaceship): New function.
14184         * config/i386/i386.md (UNSPEC_SETCC_SI_SLP): New UNSPEC code.
14185         (setcc_si_slp): New define_expand.
14186         (*setcc_si_slp): New define_insn_and_split.
14187         (setcc + setcc + movzbl): New define_peephole2.
14188         (spaceship<mode>3): Renamed to ...
14189         (spaceship<mode>4): ... this.  Add an extra operand, pass it
14190         to ix86_expand_fp_spaceship.
14191         (spaceshipxf3): Renamed to ...
14192         (spaceshipxf4): ... this.  Add an extra operand, pass it
14193         to ix86_expand_fp_spaceship.
14194         (spaceship<mode>4): New define_expand for SWI modes.
14195         * doc/md.texi (spaceship@var{m}3): Renamed to ...
14196         (spaceship@var{m}4): ... this.  Document the meaning of last
14197         operand.
14199 2024-10-07  Tobias Burnus  <tburnus@baylibre.com>
14201         * gimplify.cc (gimplify_bind_expr): Fix corner case for OpenMP
14202         allocate directive.
14203         (gimplify_scan_omp_clauses): Warn if omp_thread_mem_alloc is used
14204         as allocator with the target/task/taskloop directive.
14206 2024-10-06  John David Anglin  <danglin@gcc.gnu.org>
14208         * config/pa/pa-64.h (PA_SECONDARY_MEMORY_NEEDED): Define
14209         to false.  Update comment.
14210         * config/pa/pa.md: Modify 64-bit move patterns to support
14211         copying between integer and floating-point registers using
14212         stack slot SP-40.
14214 2024-10-06  Richard Biener  <rguenther@suse.de>
14216         * tree-vect-slp.cc (no_arg_map): New.
14217         (vect_get_operand_map): Handle IFN_GOMP_SIMD_LANE.
14218         (vect_build_slp_tree_1): Likewise.
14219         * tree-vect-stmts.cc (vectorizable_call): Handle single-lane SLP
14220         for .GOMP_SIMD_LANE calls.
14222 2024-10-06  Gerald Pfeifer  <gerald@pfeifer.com>
14224         PR target/69374
14225         * doc/install.texi (Specific) <*-*-freebsd*>: Focus on DWARF
14226         only.
14228 2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
14230         * config/pa/pa.md (nonlocal_goto): Don't clobber
14231         frame_pointer_rtx.
14232         (builtin_longjmp): Likewise.
14234 2024-10-05  John David Anglin  <danglin@gcc.gnu.org>
14236         * config/pa/pa.md: Fix indirect_got constraint.
14238 2024-10-05  Eric Botcazou  <ebotcazou@adacore.com>
14240         PR middle-end/116933
14241         * gimplify.cc (gimple_add_init_for_auto_var): Use the correct macro
14242         to fetch the source location of the variable.
14243         * tree.cc (common_builtin_nodes): Remove the 3rd parameter in the
14244         type of BUILT_IN_CLEAR_PADDING.
14246 2024-10-05  Richard Biener  <rguenther@suse.de>
14248         * tree-vect-slp.cc (vect_lower_load_permutations): Prefer
14249         level 1 even/odd extracts.
14251 2024-10-04  David Malcolm  <dmalcolm@redhat.com>
14253         PR other/116978
14254         * diagnostic-format-sarif.cc (sarif_builder::sarif_builder):
14255         Gracefully handle "main_input_filename_" being NULL.
14256         (sarif_output_format::sarif_output_format): Replace param
14257         "base_file_name" with "output_file" and assert that the file
14258         was opened successfully and has a non-NULL filename.
14259         (sarif_output_format::~sarif_file_output_format): Move
14260         responsibility for building the filename and opening the file from
14261         here to the creator of the instance.
14262         (sarif_output_format::m_base_file_name): Replace with...
14263         (sarif_output_format::m_output_file): ...this.
14264         (diagnostic_output_format_init_sarif_file): Make "line_maps" param
14265         non-const.  Gracefully handle "base_file_name" being NULL.
14266         Construct the filename and open the file here, rather than in
14267         ~sarif_file_output_format, and handle failures immediately here,
14268         rather than at the end of the compile.
14269         * diagnostic-format-sarif.h: Include "diagnostic-output-file.h".
14270         (diagnostic_output_format_init_sarif_file): Make "line_maps" param
14271         non-const.
14272         * diagnostic-output-file.h: New file.
14273         * diagnostic.cc (diagnostic_context::emit_diagnostic): New.
14274         (diagnostic_context::emit_diagnostic_va): New.
14275         * diagnostic.h (diagnostic_context::emit_diagnostic): New decl.
14276         (diagnostic_context::emit_diagnostic_va): New decl.
14278 2024-10-04  H.J. Lu  <hjl.tools@gmail.com>
14280         PR target/116962
14281         * config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New
14282         function.
14283         (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New.
14285 2024-10-04  Saurabh Jha  <saurabh.jha@arm.com>
14287         PR target/116934
14288         * config/aarch64/iterators.md: Move UNSPEC_COND_SMAX and
14289         UNSPEC_COND_SMIN to correct iterators.
14291 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
14293         PR target/116953
14294         * config/avr/avr.cc (avr_out_sbxx_branch): Work on a copy of
14295         the operands rather than on operands itself, which is just
14296         recog_data.operand and may be clobbered by jump_over_one_insn_p.
14298 2024-10-04  Andrew Pinski  <quic_apinski@quicinc.com>
14300         * cfgexpand.cc (add_scope_conflicts_1): Expand comment
14301         on when non-var clobbers show up.
14303 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
14305         * config/avr/avr.cc (avr_floatn_mode): Remove.
14306         (TARGET_FLOATN_MODE): Remove.
14308 2024-10-04  Georg-Johann Lay  <avr@gjlay.de>
14310         * config/avr/avr.cc (avr_floatn_mode): New static function.
14311         (TARGET_FLOATN_MODE): New define.
14313 2024-10-04  Kyrylo Tkachov  <ktkachov@nvidia.com>
14315         * config/aarch64/tuning_models/generic_armv9_a.h
14316         (generic_armv9a_prefetch_tune): Define.
14317         (generic_armv9_a_tunings): Use the above.
14319 2024-10-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14321         PR target/116444
14322         * config/arm/arm-protos.h (arm_noce_conversion_profitable_p): New
14323         declaration.
14324         * config/arm/arm.cc (arm_is_v81m_cond_insn): New helper function used
14325         in ...
14326         (arm_noce_conversion_profitable_p): ... here. New function to implement
14327         ...
14328         (TARGET_NOCE_PROFITABLE_P): ... this target hook.  New define.
14330 2024-10-04  Richard Biener  <rguenther@suse.de>
14332         * tree-vect-loop.cc (vect_analyze_loop_2): Derement 'slp'
14333         before dumping which stage we're starting.
14335 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
14337         PR pch/116936
14338         * diagnostic.cc (diagnostic_option_classifier::pch_save): Only call
14339         fwrite if corresponding length is non-zero.
14340         (diagnostic_option_classifier::pch_restore): Only call fread if
14341         corresponding length is non-zero.
14343 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
14345         PR target/116921
14346         * config/i386/i386-expand.cc (ix86_expand_int_compare): Add a SUBREG
14347         to V8HImode from V8HFmode or V8BFmode before generating a ptest.
14349 2024-10-04  Jakub Jelinek  <jakub@redhat.com>
14351         PR target/116925
14352         * config/i386/sse.md (*minmax<mode>3_2): Assign force_reg result
14353         back to operands[2] instead of throwing it away.
14355 2024-10-04  Gerald Pfeifer  <gerald@pfeifer.com>
14357         PR target/69374
14358         * doc/install.texi (Specific) <h8300-hms>: Drop GCC 2.6
14359         ABI change note.
14361 2024-10-04  Sam James  <sam@gentoo.org>
14363         * gimplify.cc (gimple_add_init_for_auto_var): Fix 'variable' typo.
14365 2024-10-03  Eric Botcazou  <ebotcazou@adacore.com>
14367         * config/aarch64/aarch64.h (WIDEST_HARDWARE_FP_SIZE): Define to 64.
14369 2024-10-03  Jason Merrill  <jason@redhat.com>
14371         * doc/invoke.texi: Explicit -Wdeprecated enables more warnings.
14373 2024-10-03  Jason Merrill  <jason@redhat.com>
14375         * doc/invoke.texi: Document -Wdeprecated-literal-operator.
14377 2024-10-03  Richard Biener  <rguenther@suse.de>
14379         * tree-vect-loop.cc (vectorizable_induction): Initialize
14380         vec_init.
14382 2024-10-03  Andrew Pinski  <quic_apinski@quicinc.com>
14384         PR target/116927
14385         * config/aarch64/aarch64-early-ra.cc (early_ra::is_dead_insn): Insns
14386         that throw are not dead with -fno-delete-dead-exceptions.
14388 2024-10-03  David Malcolm  <dmalcolm@redhat.com>
14390         PR other/116301
14391         * common.opt (sarif-file-2.2-prerelease): New value for
14392         -fdiagnostics-format=.
14393         * diagnostic-format-sarif.cc
14394         (sarif_location_manager::sarif_location_manager): Move
14395         initialization of m_related_locations_arr here from sarif_result's
14396         ctor.
14397         (sarif_location_manager::add_related_location): Implement for
14398         base class, taking sarif_result's implementation.  Add "builder"
14399         param.
14400         (sarif_location_manager::m_related_locations_arr): Move here from
14401         class sarif_result.
14402         (class sarif_result): Move m_related_locations_arr field and
14403         add_related_location vfunc to class sarif_location_manager.
14404         (sarif_builder::get_version): New accessor.
14405         (sarif_builder::m_version): New field.
14406         (sarif_invocation::add_notification_for_ice): Call
14407         process_worklist on the notification for SARIF 2.2 and later.
14408         (sarif_location_manager::process_worklist_item): Pass builder to
14409         calls to add_related_location.
14410         (sarif_result::on_nested_diagnostic): Likewise.
14411         (sarif_result::on_diagram): Likewise.
14412         (sarif_ice_notification::add_related_location): Add builder param.
14413         For SARIF 2.2 and later chain up to base class impl so that
14414         notifications get related locations.
14415         (sarif_builder::sarif_builder): Add "version" param.
14416         (SARIF_SCHEMA): Delete in favor of...
14417         (sarif_version_to_url): New function.
14418         (SARIF_VERSION): Delete in favor of...
14419         (sarif_version_to_property): New function.
14420         (make_top_level_object): Update to use m_version for "$schema" and
14421         "version".
14422         (sarif_output_format::sarif_output_format): Add "version" param.
14423         (sarif_stream_output_format::sarif_stream_output_format):
14424         Likewise.
14425         (sarif_file_output_format::sarif_file_output_format): Likewise.
14426         (diagnostic_output_format_init_sarif_stderr): Likewise.
14427         (diagnostic_output_format_init_sarif_file): Likewise.
14428         (diagnostic_output_format_init_sarif_stream): Likewise.
14429         (selftest::test_sarif_diagnostic_context): Likewise.
14430         (selftest::test_make_location_object): Likewise.
14431         (selftest::test_simple_log): Likewise.  Update schema and version
14432         tests accordingly.
14433         (selftest::test_simple_log_2): Add "version" param.
14434         (selftest::test_message_with_embedded_link): Likewise.
14435         (selftest::run_tests_per_version): New, based on the
14436         for_each_line_table_case calls in...
14437         (selftest::diagnostic_format_sarif_cc_tests): Add loop over sarif
14438         versions.  Replace for_each_line_table_case calls with one
14439         call to run_tests_per_version.
14440         * diagnostic-format-sarif.h: Include "diagnostic-format.h".
14441         (enum class sarif_version): New.
14442         (diagnostic_output_format_init_sarif_stderr): Move to here from
14443         diagnostic-format.h.  Add "version" param.
14444         (diagnostic_output_format_init_sarif_file): Likewise.
14445         (diagnostic_output_format_init_sarif_stream): Likewise.
14446         * diagnostic-format.h: Include "diagnostic.h".
14447         (diagnostic_output_format_init_sarif_stderr): Move from here to
14448         diagnostic-format-sarif.h.
14449         * diagnostic.cc: Define INCLUDE_MEMORY.
14450         Include "diagnostic-format-sarif.h".
14451         (diagnostic_output_format_init): Pass sarif_version::v2_1_0 to
14452         existing SARIF options.
14453         Add case DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
14454         * diagnostic.h (enum diagnostics_output_format): Add
14455         DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE_2_2_PRERELEASE.
14457 2024-10-02  Andrew Pinski  <quic_apinski@quicinc.com>
14459         PR tree-optimization/116098
14460         * tree-ssa-phiopt.cc (move_stmt): Rewrite VCEs from integer to integer
14461         types to case.
14463 2024-10-02  Victor Do Nascimento  <victor.donascimento@arm.com>
14465         * tree-if-conv.cc (predicate_statements): Fix handling of
14466         predicated function calls.
14468 2024-10-02  Andre Vieira  <andre.simoesdiasvieira@arm.com>
14470         * config/arm/arm.cc (check_dec_insn): New helper function containing
14471         code hoisted from...
14472         (arm_mve_dlstp_check_dec_counter): ... here. Use check_dec_insn to
14473         check the validity of the candidate dec_insn.
14475 2024-10-02  Filip Kastl  <fkastl@suse.cz>
14477         PR tree-optimization/116616
14478         * tree-switch-conversion.cc (can_pow2p): Remove this function.
14479         (gen_pow2p): Generate bitmagic instead of a builtin.  Remove the
14480         TYPE parameter.
14481         (switch_conversion::is_exp_index_transform_viable): Don't call
14482         can_pow2p.
14483         (switch_conversion::exp_index_transform): Call gen_pow2p without
14484         the TYPE parameter.
14485         * tree-switch-conversion.h: Remove
14486         m_exp_index_transform_pow2p_type.
14488 2024-10-02  Richard Biener  <rguenther@suse.de>
14490         PR tree-optimization/113197
14491         * tree-ssa-structalias.cc (handle_call_arg): Remove bougs
14492         assert.
14494 2024-10-02  Richard Biener  <rguenther@suse.de>
14496         PR tree-optimization/114855
14497         * predict.cc (ssa_expected_value): New global.
14498         (expr_expected_value): Do not take bitmap.
14499         (expr_expected_value_1): Likewise.  Use ssa_expected_value
14500         to cache results for a SSA def.
14501         (tree_predict_by_opcode): Adjust.
14502         (tree_estimate_probability): Manage ssa_expected_value.
14503         (tree_guess_outgoing_edge_probabilities): Likewise.
14505 2024-10-02  Richard Biener  <rguenther@suse.de>
14507         PR tree-optimization/116566
14508         * tree-vect-loop.cc (vectorizable_induction): Handle single-lane
14509         SLP for VLA vectors.
14511 2024-10-02  Gerald Pfeifer  <gerald@pfeifer.com>
14513         PR target/69374
14514         * doc/install.texi (Specific) <h8300-hms>: Drop obsolete
14515         reference to binaries download docs.
14517 2024-10-02  Jakub Jelinek  <jakub@redhat.com>
14519         PR preprocessor/96842
14520         * doc/invoke.texi (Wheader-guard): Document.
14522 2024-10-02  Jakub Jelinek  <jakub@redhat.com>
14524         * Makefile.in ($(OPT_URLS_HTML_DEPS)): Add dependencies of the
14525         Option-Index.html files on the corresponding index.html files.
14526         Don't mention the requirement that all languages that have their own
14527         HTML manuals to be enabled.
14529 2024-10-02  Andrew Pinski  <quic_apinski@quicinc.com>
14531         PR tree-optimization/116922
14532         * gimple-ssa-backprop.cc (remove_unused_var): Handle phi
14533         nodes correctly.
14535 2024-10-02  Richard Biener  <rguenther@suse.de>
14537         PR tree-optimization/116654
14538         * tree-vect-data-refs.cc (vect_supportable_dr_alignment):
14539         Treat non-grouped accesses like non-SLP.
14541 2024-10-02  Pan Li  <pan2.li@intel.com>
14543         * match.pd: Add case 2 matching pattern for signed SAT_SUB.
14545 2024-10-01  Georg-Johann Lay  <avr@gjlay.de>
14547         * config/avr/avr.cc (avr_out_compare): Drop superfluous sub-condition.
14549 2024-10-01  Georg-Johann Lay  <avr@gjlay.de>
14551         * config/avr/avr-passes.cc (avr_split_fake_addressing_move): Fix
14552         a build warning.
14554 2024-10-01  Saurabh Jha  <saurabh.jha@arm.com>
14556         * config/aarch64/aarch64-sve.md
14557         (<fmaxmin><mode>3): Remove this instruction pattern.
14558         (cond_<fmaxmin><mode>): Remove this instruction pattern.
14559         * config/aarch64/iterators.md: New unspecs and changes to
14560         iterators and attrs to use the new unspecs
14562 2024-10-01  Eric Botcazou  <ebotcazou@adacore.com>
14564         * tree-inline.cc (expand_call_inline): Remove the store to the
14565         return slot if it is a global variable that is only written to.
14567 2024-10-01  Giuseppe D'Angelo  <giuseppe.dangelo@kdab.com>
14569         * doc/extend.texi: Document the new
14570         __builtin_is_virtual_base_of builtin; amend the docs for
14571         __is_base_of.
14573 2024-10-01  Andrew Pinski  <quic_apinski@quicinc.com>
14575         PR tree-optimization/116890
14576         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Conversions
14577         from bool is also should be considered as wanting to happen.
14579 2024-10-01  Claudio Bantaloukas  <Claudio.Bantaloukas@arm.com>
14581         * config/aarch64/aarch64-builtins.cc (aarch64_mfp8_type_node): Add node
14582         for __mfp8 type.
14583         (aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type.
14584         (aarch64_init_fp8_types): New function to initialise fp8 types and
14585         register with language backends.
14586         * config/aarch64/aarch64.cc (aarch64_mangle_type): Add ABI mangling for
14587         new type.
14588         (aarch64_invalid_conversion): Add function implementing
14589         TARGET_INVALID_CONVERSION hook that blocks conversion to and from the
14590         __mfp8 type.
14591         (aarch64_invalid_unary_op): Add function implementing TARGET_UNARY_OP
14592         hook that blocks operations on __mfp8 other than &.
14593         (aarch64_invalid_binary_op): Extend TARGET_BINARY_OP hook to disallow
14594         operations on __mfp8 type.
14595         (TARGET_INVALID_CONVERSION): Add define.
14596         (TARGET_INVALID_UNARY_OP): Likewise.
14597         * config/aarch64/aarch64.h (aarch64_mfp8_type_node): Add node for __mfp8
14598         type.
14599         (aarch64_mfp8_ptr_type_node): Add node for __mfp8 pointer type.
14600         * config/aarch64/arm_private_fp8.h (mfloat8_t): Add typedef.
14602 2024-10-01  Richard Biener  <rguenther@suse.de>
14604         PR tree-optimization/116902
14605         PR tree-optimization/116842
14606         * tree-vect-stmts.cc (sort_after_uid): Remove again.
14607         (hoist_defs_of_uses): Copy defs instead of hoisting them so
14608         we can zero their UID.
14609         (vectorizable_load): Separate analysis and transform call,
14610         do transform on the stmt copy.
14612 2024-10-01  Richard Biener  <rguenther@suse.de>
14614         PR tree-optimization/116905
14615         * tree-vect-stmts.cc (supportable_indirect_convert_operation):
14616         Fix guard for vect_get_range_info.
14618 2024-10-01  Richard Biener  <rguenther@suse.de>
14620         PR tree-optimization/116906
14621         * tree-ssa-pre.cc (prune_clobbered_mems): Add clean_traps
14622         argument.
14623         (compute_antic_aux): Direct prune_clobbered_mems to prune
14624         all traps when any MAX solution was involved in the ANTIC
14625         computation.
14626         (compute_partial_antic_aux): Adjust.
14628 2024-10-01  Jakub Jelinek  <jakub@redhat.com>
14630         PR middle-end/116899
14631         * gimple-range-cache.cc (ranger_cache::ranger_cache): Set m_workback
14632         to vNULL instead of creating it, growing and then truncating.
14633         (ranger_cache::fill_block_cache): Use safe_push rather than quick_push
14634         on m_workback.
14635         (ranger_cache::range_from_dom): Likewise.
14637 2024-10-01  Jakub Jelinek  <jakub@redhat.com>
14639         PR middle-end/116898
14640         * gimple-range-cache.cc (ranger_cache::block_range): If a SSA_NAME
14641         with NULL def_bb isn't SSA_NAME_IS_DEFAULT_DEF, return false instead
14642         of failing assertion.  Formatting fix.
14644 2024-09-30  Eric Botcazou  <ebotcazou@adacore.com>
14646         PR ipa/113996
14647         * ipa-icf.cc (sem_function::get_hash): Hash DECL_STATIC_CHAIN.
14648         (sem_function::equals_wpa): Compare it.
14649         (sem_function::equals_private): Likewise.
14651 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14653         PR other/116613
14654         * diagnostic-show-locus.cc
14655         (selftest::test_diagnostic_show_locus_unknown_location): Move call
14656         to dc.test_show_locus into ASSERT_STREQ, and compare against its
14657         result, rather than explicitly using dc.m_printer.
14658         (selftest::test_one_liner_simple_caret): Likewise.
14659         (selftest::test_one_liner_no_column): Likewise.
14660         (selftest::test_one_liner_caret_and_range): Likewise.
14661         (selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
14662         (selftest::test_one_liner_fixit_insert_before): Likewise.
14663         (selftest::test_one_liner_fixit_insert_after): Likewise.
14664         (selftest::test_one_liner_fixit_remove): Likewise.
14665         (selftest::test_one_liner_fixit_replace): Likewise.
14666         (selftest::test_one_liner_fixit_replace_non_equal_range):
14667         Likewise.
14668         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
14669         Likewise.
14670         (selftest::test_one_liner_fixit_validation_adhoc_locations):
14671         Likewise.
14672         (selftest::test_one_liner_many_fixits_1): Likewise.
14673         (selftest::test_one_liner_many_fixits_2): Likewise.
14674         (selftest::test_one_liner_labels): Likewise.
14675         (selftest::test_one_liner_simple_caret_utf8): Likewise.
14676         (selftest::test_one_liner_multiple_carets_and_ranges_utf8):
14677         Likewise.
14678         (selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
14679         (selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
14680         (selftest::test_one_liner_fixit_remove_utf8): Likewise.
14681         (selftest::test_one_liner_fixit_replace_utf8): Likewise.
14682         (selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
14683         Likewise.
14684         (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
14685         Likewise.
14686         (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
14687         Likewise.
14688         (selftest::test_one_liner_many_fixits_1_utf8): Likewise.
14689         (selftest::test_one_liner_many_fixits_2_utf8): Likewise.
14690         (selftest::test_one_liner_labels_utf8): Likewise.
14691         (selftest::test_one_liner_colorized_utf8): Likewise.
14692         (selftest::test_add_location_if_nearby): Likewise.
14693         (selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
14694         (selftest::test_overlapped_fixit_printing): Likewise.
14695         (selftest::test_overlapped_fixit_printing_utf8): Likewise.
14696         (selftest::test_overlapped_fixit_printing_utf8): Likewise.
14697         (selftest::test_overlapped_fixit_printing_2): Likewise.
14698         (selftest::test_fixit_insert_containing_newline): Likewise.
14699         (selftest::test_fixit_insert_containing_newline_2): Likewise.
14700         (selftest::test_fixit_replace_containing_newline): Likewise.
14701         (selftest::test_fixit_deletion_affecting_newline): Likewise.
14702         (selftest::test_tab_expansion): Likewise.
14703         (selftest::test_escaping_bytes_1): Likewise.
14704         (selftest::test_escaping_bytes_2): Likewise.
14705         (selftest::test_line_numbers_multiline_range): Likewise.
14706         * selftest-diagnostic.cc
14707         (selftest::test_diagnostic_context::test_show_locus): Return the
14708         formatted text of m_printer.
14709         * selftest-diagnostic.h
14710         (selftest::test_diagnostic_context::test_show_locus): Convert
14711         return type from void to const char *.
14713 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14715         PR other/116613
14716         * diagnostic-show-locus.cc (diagnostic_context::maybe_show_locus):
14717         Convert param "pp" from * to &.  Drop logic for using the
14718         context's m_printer when the param is null.
14719         * diagnostic.h (diagnostic_context::maybe_show_locus): Convert
14720         param "pp" from * to &.
14721         (diagnostic_show_locus): Drop default "nullptr" value for pp
14722         param.  Assert that it and context are nonnull.  Pass pp by
14723         reference to maybe_show_locus.
14725 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14727         PR other/116613
14728         * diagnostic-format-json.cc (json_from_expanded_location): Replace
14729         call to diagnostic_context::converted_column with call to
14730         diagnostic_column_policy::converted_column.
14731         * diagnostic-format-sarif.cc
14732         (sarif_builder::make_location_object): Replace call to
14733         diagnostic_show_locus with call to
14734         diagnostic_source_print_policy::print.
14735         * diagnostic-format-text.cc (get_location_text): Replace call to
14736         diagnostic_context::get_location_text with call to
14737         diagnostic_column_policy::get_location_text.
14738         (diagnostic_text_output_format::report_current_module): Replace call
14739         to diagnostic_context::converted_column with call to
14740         diagnostic_column_policy::converted_column.
14741         * diagnostic-format-text.h
14742         (diagnostic_text_output_format::diagnostic_output_format):
14743         Initialize m_column_policy.
14744         (diagnostic_text_output_format::get_column_policy): New.
14745         (diagnostic_text_output_format::m_column_policy): New.
14746         * diagnostic-path.cc (class path_print_policy): New.
14747         (event_range::maybe_add_event): Replace diagnostic_context param
14748         with path_print_policy.
14749         (event_range::print): Convert "pp" from * to &.  Convert first
14750         param of start_span callback from diagnostic_context to
14751         diagnostic_location_print_policy.
14752         (path_summary::path_summary): Convert first param from
14753         diagnostic_text_output_format to path_print_policy.  Add
14754         colorize param.  Update for changes to
14755         event_range::maybe_add_event.
14756         (thread_event_printer::print_swimlane_for_event_range): Assert
14757         that pp is non-null.  Update for change to event_range::print.
14758         (diagnostic_text_output_format::print_path): Pass
14759         path_print_policy to path_summary's ctor.
14760         (selftest::test_empty_path): Likewise.
14761         (selftest::test_intraprocedural_path): Likewise.
14762         (selftest::test_interprocedural_path_1): Likewise.
14763         (selftest::test_interprocedural_path_2): Likewise.
14764         (selftest::test_recursion): Likewise.
14765         (selftest::test_control_flow_1): Likewise.
14766         (selftest::test_control_flow_2): Likewise.
14767         (selftest::test_control_flow_3): Likewise.
14768         (selftest::assert_cfg_edge_path_streq): Likewise.
14769         (selftest::test_control_flow_5): Likewise.
14770         (selftest::test_control_flow_6): Likewise.
14771         * diagnostic-show-locus.cc (colorizer::set_range): Update for
14772         change to m_pp.
14773         (colorizer::m_pp): Convert from * to &.
14774         (class layout): Add friend class layout_printer and move various
14775         decls to it.
14776         (layout::m_pp): Drop field.
14777         (layout::m_policy): Rename to...
14778         (layout::m_char_policy): ...this.
14779         (layout::m_colorizer): Move field to class layout_printer.
14780         (layout::m_diagnostic_path_p): Drop field.
14781         (class layout_printer): New class, by refactoring class layout.
14782         (colorizer::colorizer): Convert "pp" param from * to &.
14783         (colorizer::set_named_color): Update for above change.
14784         (colorizer::begin_state): Likewise.
14785         (colorizer::finish_state): Likewise.
14786         (make_policy): Rename to...
14787         (make_char_policy): ...this, and update param from
14788         diagnostic_context to diagnostic_source_print_policy.
14789         (layout::layout): Update param from diagnostic_context to
14790         diagnostic_source_print_policy.  Drop params "diagnostic_kind" and
14791         "pp", moving these and other material to class layout_printer.
14792         (layout::maybe_add_location_range): Update for renamed field.
14793         (layout::print_gap_in_line_numbering): Convert to...
14794         (layout_printer::print_gap_in_line_numbering): ...this.
14795         (layout::calculate_x_offset_display): Update for renamed field.
14796         (layout::print_source_line): Convert to...
14797         (layout_printer::print_source_line): ...this.
14798         (layout::print_leftmost_column): Convert to...
14799         (layout_printer::print_leftmost_column): ...this.
14800         (layout::start_annotation_line): Convert to...
14801         (layout_printer::start_annotation_line): ...this.
14802         (layout::print_annotation_line): Convert to...
14803         (layout_printer::print_annotation_line): ...this.
14804         (layout::print_any_labels): Convert to...
14805         (layout_printer::print_any_labels): ...this.
14806         (layout::print_leading_fixits): Convert to...
14807         (layout_printer::print_leading_fixits): ...this.
14808         (layout::print_trailing_fixits): Convert to...
14809         (layout_printer::print_trailing_fixits): ...this.
14810         (layout::print_newline): Convert to...
14811         (layout_printer::print_newline): ...this.
14812         (layout::get_state_at_point): Make const.
14813         (layout::get_x_bound_for_row): Make const.
14814         (layout::move_to_column): Convert to...
14815         (layout_printer::move_to_column): ...this.
14816         (layout::show_ruler): Convert to...
14817         (layout_printer::show_ruler): ...this.
14818         (layout::print_line): Convert to...
14819         (layout_printer::print_line): ...this.
14820         (layout::print_any_right_to_left_edge_lines): Convert to...
14821         (layout_printer::print_any_right_to_left_edge_lines): ...this.
14822         (layout::print_any_right_to_left_edge_lines): Likewise.
14823         (layout_printer::layout_printer): New.
14824         (layout::update_any_effects): Delete, moving logic to
14825         layout_printer::print.
14826         (gcc_rich_location::add_location_if_nearby): Update param from
14827         diagnostic_context to diagnostic_source_print_policy.  Add
14828         overload taking a diagnostic_context.
14829         (diagnostic_context::maybe_show_locus): Move handling of null
14830         pretty_printer here, from layout ctor.  Convert call to
14831         diagnostic_context::show_locus to
14832         diagnostic_source_print_policy::print.
14833         (diagnostic_source_print_policy::diagnostic_source_print_policy):
14834         New.
14835         (diagnostic_context::show_locus): Convert to...
14836         (diagnostic_source_print_policy::print): ...this.  Convert pp
14837         from * to &.
14838         (layout_printer::print): New, based on material in
14839         diagnostic_context::show_locus.
14840         (selftest::make_char_policy): New.
14841         (selftest::test_display_widths): Update for above changes.
14842         (selftest::test_offset_impl): Likewise.
14843         (selftest::test_layout_x_offset_display_utf8): Likewise.
14844         (selftest::test_layout_x_offset_display_tab): Likewise.
14845         (selftest::test_diagnostic_show_locus_unknown_location): Use
14846         test_diagnostic_context::test_show_locus rather than
14847         diagnostic_show_locus.
14848         (selftest::test_one_liner_no_column): Likewise.
14849         (selftest::test_one_liner_caret_and_range): Likewise.
14850         (selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
14851         (selftest::test_one_liner_fixit_insert_before): Likewise.
14852         (selftest::test_one_liner_fixit_insert_after): Likewise.
14853         (selftest::test_one_liner_fixit_remove): Likewise.
14854         (selftest::test_one_liner_fixit_replace): Likewise.
14855         (selftest::test_one_liner_fixit_replace_non_equal_range):
14856         Likewise.
14857         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
14858         Likewise.
14859         (selftest::test_one_liner_fixit_validation_adhoc_locations):
14860         Likewise.
14861         (selftest::test_one_liner_many_fixits_1): Likewise.
14862         (selftest::test_one_liner_many_fixits_2): Likewise.
14863         (selftest::test_one_liner_labels): Likewise.
14864         (selftest::test_one_liner_simple_caret_utf8): Likewise.
14865         (selftest::test_one_liner_caret_and_range_utf8): Likewise.
14866         (selftest::test_one_liner_multiple_carets_and_ranges_utf8):
14867         Likewise.
14868         (selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
14869         (selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
14870         (selftest::test_one_liner_fixit_remove_utf8): Likewise.
14871         (selftest::test_one_liner_fixit_replace_utf8): Likewise.
14872         (selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
14873         Likewise.
14874         (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
14875         Likewise.
14876         (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
14877         Likewise.
14878         (selftest::test_one_liner_many_fixits_1_utf8): Likewise.
14879         (selftest::test_one_liner_many_fixits_2_utf8): Likewise.
14880         (selftest::test_one_liner_labels_utf8): Likewise.
14881         (selftest::test_one_liner_colorized_utf8): Likewise.
14882         (selftest::test_add_location_if_nearby): Likewise.
14883         (selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
14884         (selftest::test_overlapped_fixit_printing): Likewise.
14885         (selftest::test_overlapped_fixit_printing_utf8): Likewise.
14886         (selftest::test_overlapped_fixit_printing_2): Likewise.
14887         (selftest::test_fixit_insert_containing_newline): Likewise.
14888         (selftest::test_fixit_insert_containing_newline_2): Likewise.
14889         (selftest::test_fixit_replace_containing_newline): Likewise.
14890         (selftest::test_fixit_deletion_affecting_newline): Likewise.
14891         (selftest::test_tab_expansion): Likewise.
14892         (selftest::test_escaping_bytes_1): Likewise.
14893         (selftest::test_escaping_bytes_2): Likewise.
14894         (selftest::test_line_numbers_multiline_range): Likewise.
14895         * diagnostic.cc
14896         (diagnostic_column_policy::diagnostic_column_policy): New.
14897         (diagnostic_context::converted_column): Convert to...
14898         (diagnostic_column_policy::converted_column): ...this.
14899         (diagnostic_context::get_location_text): Convert to...
14900         (diagnostic_column_policy::get_location_text): ...this, adding
14901         "show_column" param.
14902         (diagnostic_location_print_policy::diagnostic_location_print_policy):
14903         New ctors.
14904         (default_diagnostic_start_span_fn): Convert param from
14905         diagnostic_context * to const diagnostic_location_print_policy &.
14906         Add "pp" param.
14907         (selftest::assert_location_text): Update for above changes.
14908         (selftest::test_diagnostic_get_location_text): Rename to...
14909         (selftest::test_get_location_text): ...this.
14910         (selftest::c_diagnostic_cc_tests): Update for renaming.
14911         * diagnostic.h (class diagnostic_location_print_policy): New
14912         forward decl.
14913         (class diagnostic_source_print_policy): New forward decl.
14914         (diagnostic_start_span_fn): Convert first param from
14915         diagnostic_context * to const diagnostic_location_print_policy &
14916         and add pretty_printer * param.
14917         (class diagnostic_column_policy): New.
14918         (class diagnostic_location_print_policy): New.
14919         (class diagnostic_source_print_policy): New.
14920         (class diagnostic_context): Add friend class
14921         diagnostic_source_print_policy.
14922         (diagnostic_context::converted_column): Drop decl in favor of
14923         diagnostic_column_policy::converted_column.
14924         (diagnostic_context::get_location_text): Drop decl in favor of
14925         diagnostic_column_policy::get_location_text.
14926         (diagnostic_context::show_locus): Drop decl in favor of
14927         diagnostic_source_print_policy::print.
14928         (default_diagnostic_start_span_fn): Update for change to
14929         diagnostic_start_span_fn.
14930         * gcc-rich-location.h (class diagnostic_source_print_policy): New
14931         forward decl.
14932         (gcc_rich_location::add_location_if_nearby): Convert first param
14933         from diagnostic_context to diagnostic_source_print_policy.  Add
14934         overload taking diagnostic_context.
14935         * selftest-diagnostic.cc
14936         (selftest::test_diagnostic_context::test_diagnostic_context): Turn
14937         off colorization.
14938         (selftest::test_diagnostic_context::start_span_cb): Update for
14939         change to callback type.
14940         (test_diagnostic_context::test_show_locus): New.
14941         * selftest-diagnostic.h
14942         (selftest::test_diagnostic_context::start_span_cb): Update for
14943         change to callback type.
14944         (test_diagnostic_context::test_show_locus): New decl.
14946 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14948         PR other/116613
14949         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
14950         Pass in the format.  Use the format's printer when disabling
14951         colorization.  Move the call to set_output_format into here.
14952         (diagnostic_output_format_init_json_stderr): Update for above
14953         change.
14954         (diagnostic_output_format_init_json_file): Likewise.
14955         * diagnostic-format-sarif.cc
14956         (diagnostic_output_format_init_sarif): Use the format's printer
14957         when disabling colorization.
14958         * diagnostic-path.cc (selftest::test_empty_path): Use the
14959         text_output's printer.
14960         (selftest::test_intraprocedural_path): Likewise.
14961         (selftest::test_interprocedural_path_1): Likewise.
14962         (selftest::test_interprocedural_path_2): Likewise.
14963         (selftest::test_recursion): Likewise.
14964         (selftest::test_control_flow_1): Likewise.
14965         (selftest::test_control_flow_2): Likewise.
14966         (selftest::test_control_flow_3): Likewise.
14967         (selftest::assert_cfg_edge_path_streq): Likewise.
14968         (selftest::test_control_flow_5): Likewise.
14969         (selftest::test_control_flow_6): Likewise.
14971 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14973         PR other/116613
14974         * attribs.cc: Include "pretty-print-markup.h".
14975         (decls_mismatched_attributes): Defer colorization choices by
14976         replacing printing to a pretty_printer * param with appending
14977         to a vec of strings.
14978         (maybe_diag_alias_attributes): As above, replacing pretty_printer
14979         with usage of pp_markup::comma_separated_quoted_strings and "%e"
14980         in two places.
14981         * attribs.h (decls_mismatched_attributes): Update decl.
14982         * gimple-ssa-warn-access.cc: Include "pretty-print-markup.h".
14983         (pass_waccess::maybe_warn_memmodel): Defer colorization choices by
14984         replacing printing to a pretty_printer * param with use of
14985         pp_markup::comma_separated_quoted_strings and "%e".
14986         (pass_waccess::maybe_warn_memmodel): Likewise, replacing printing
14987         to a temporary buffer.
14988         * pretty-print-markup.h
14989         (class pp_markup::comma_separated_quoted_strings): New.
14990         * pretty-print.cc
14991         (pp_markup::comma_separated_quoted_strings::add_to_phase_2): New.
14992         (selftest::test_pp_printf_within_pp_element): New.
14993         (selftest::test_comma_separated_quoted_strings): New.
14994         (selftest::pretty_print_cc_tests): Call the new tests.
14996 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
14998         * pretty-print.cc (output_buffer::dump): New.
14999         (pretty_printer::dump): New.
15000         * pretty-print.h (output_buffer::dump): New decls.
15001         (pretty_printer::dump): New decls.
15003 2024-09-30  David Malcolm  <dmalcolm@redhat.com>
15005         * diagnostic-format-sarif.cc (sarif_builder::~sarif_builder): New,
15006         deleting any remaining artifact objects.
15007         (sarif_builder::make_run_object): Empty the artifact map.
15008         * ordered-hash-map.h (ordered_hash_map::empty): New.
15010 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15012         * config/c6x/c6x.md (sdot_prodv2hi): Renamed to...
15013         (sdot_prodsiv2hi): ...this.
15015 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15017         * config/rs6000/altivec.md (udot_prod<mode>): Renamed to...
15018         (udot_prodv4si<mode>): ...this.
15019         (sdot_prodv8hi): Renamed to...
15020         (sdot_prodv4siv8hi): ...this.
15022 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15024         * config/mips/loongson-mmi.md (sdot_prodv4hi): Renamed to...
15025         (sdot_prodv2siv4hi): ...this.
15027 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15029         * config/arc/simdext.md (sdot_prodv2hi): Renamed to...
15030         (sdot_prodsiv2hi): ...this.
15031         (udot_prodv2hi): Renamed to...
15032         (udot_prodsiv2hi): ...this.
15033         (sdot_prodv4hi): Renamed to...
15034         (sdot_prodv2siv4hi): ...this.
15035         (udot_prodv4hi): Renamed to...
15036         (udot_prodv2siv4hi): ...this.
15038 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15040         * config/i386/mmx.md (usdot_prodv8qi): Renamed to...
15041         (usdot_prodv2siv8qi): ...this.
15042         (sdot_prodv8qi): Renamed to...
15043         (sdot_prodv2siv8qi): ...this.
15044         (udot_prodv8qi): Renamed to...
15045         (udot_prodv2siv8qi): ...this.
15046         (usdot_prodv4hi): Renamed to...
15047         (usdot_prodv2siv4hi): ...this.
15048         (udot_prodv4hi): Renamed to...
15049         (udot_prodv2siv4hi): ...this.
15050         (sdot_prodv4hi): Renamed to...
15051         (sdot_prodv2siv4hi): ...this.
15052         * config/i386/sse.md (sdot_prod<mode>): Renamed to...
15053         (sdot_prod<sseunpackmodelower><mode>): ...this.
15054         (sdot_prodv4si): Renamed to...
15055         (sdot_prodv2div4si): ...this.
15056         (usdot_prod<mode>): Renamed to...
15057         (usdot_prod<ssedvecmodelower><mode>): ...this.
15058         (sdot_prod<mode>): Renamed to...
15059         (sdot_prod<ssedvecmodelower><mode>): ...this.
15060         (sdot_prodv64qi): Renamed to...
15061         (sdot_prodv16siv64qi): ...this.
15062         (udot_prod<mode>): Renamed to...
15063         (udot_prod<ssedvecmodelower><mode>): ...this.
15064         (udot_prodv64qi): Renamed to...
15065         (udot_prodv16qiv64qi): ...this.
15066         (usdot_prod<mode>): Renamed to...
15067         (usdot_prod<sseunpackmodelower><mode>): ...this.
15068         (udot_prod<mode>): Renamed to...
15069         (udot_prod<sseunpackmodelower><mode>): ...this.
15071 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15073         * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Renamed to...
15074         (<sup>dot_prod<mode><vsi2qi>): ...this.
15075         (neon_<sup>dot<vsi2qi>): Renamed to...
15076         (neon_<sup>dot<mode><vsi2qi>): ...this.
15077         (neon_usdot<vsi2qi>): Renamed to...
15078         (neon_usdot<mode><vsi2qi>): ...this.
15079         (usdot_prod<vsi2qi>): Renamed to...
15080         (usdot_prod<mode><vsi2qi>): ...this.
15081         * config/arm/arm-builtins.cc
15082         (CODE_FOR_neon_sdotv8qi): Definie as alias to
15083         new CODE_FOR_neon_sdotv2siv8qi.
15084         (CODE_FOR_neon_udotv8qi): Definie as alias to
15085         new CODE_FOR_neon_udotv2siv8qi.
15086         (CODE_FOR_neon_usdotv8qi): Definie as alias to
15087         new CODE_FOR_neon_usdotv2siv8qi.
15088         (CODE_FOR_neon_sdotv16qi): Definie as alias to
15089         new CODE_FOR_neon_sdotv4siv16qi.
15090         (CODE_FOR_neon_udotv16qi): Definie as alias to
15091         new CODE_FOR_neon_udotv4siv16qi.
15092         (CODE_FOR_neon_usdotv16qi): Definie as alias to
15093         new CODE_FOR_neon_usdotv4siv16qi.
15095 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15097         * config/aarch64/aarch64-simd.md
15098         (<sur>dot_prod<vsi2qi><vczle><vczbe>): Renamed to...
15099         (<sur>dot_prod<mode><vsi2qi><vczle><vczbe>): ...this.
15100         (usdot_prod<vsi2qi><vczle><vczbe>): Renamed to...
15101         (usdot_prod<mode><vsi2qi><vczle><vczbe>): ...this.
15102         (<su>sadv16qi): Adjust call to gen_udot_prod take second mode.
15103         (popcount<mode2>): fix use of `udot_prod_optab'.
15104         * config/aarch64/aarch64-sve.md
15105         (<sur>dot_prod<vsi2qi>): Renamed to...
15106         (<sur>dot_prod<mode><vsi2qi>): ...this.
15107         (@<sur>dot_prod<vsi2qi>): Renamed to...
15108         (@<sur>dot_prod<mode><vsi2qi>): ...this.
15109         (<su>sad<vsi2qi>): Adjust call to gen_udot_prod take second mode.
15110         * config/aarch64/aarch64-sve2.md
15111         (@aarch64_sve_<sur>dotvnx4sivnx8hi): Renamed to...
15112         (<sur>dot_prodvnx4sivnx8hi): ...this.
15113         * config/aarch64/aarch64-simd-builtins.def: Modify macro
15114         expansion-based initialization and expansion
15115         of (u|s|us)dot_prod builtins.
15116         * config/aarch64/aarch64-builtins.cc
15117         (CODE_FOR_aarch64_sdot_prodv8qi): Define as alias to
15118         new CODE_FOR_sdot_prodv2siv8qi.
15119         (CODE_FOR_aarch64_udot_prodv8qi): Define as alias to
15120         new CODE_FOR_udot_prodv2siv8qi.
15121         (CODE_FOR_aarch64_usdot_prodv8qi): Define as alias to
15122         new CODE_FOR_usdot_prodv2siv8qi.
15123         (CODE_FOR_aarch64_sdot_prodv16qi): Define as alias to
15124         new CODE_FOR_sdot_prodv4siv16qi.
15125         (CODE_FOR_aarch64_udot_prodv16qi): Define as alias to
15126         new CODE_FOR_udot_prodv4siv16qi.
15127         (CODE_FOR_aarch64_usdot_prodv16qi): Define as alias to
15128         new CODE_FOR_usdot_prodv4siv16qi.
15129         * config/aarch64/aarch64-sve-builtins-base.cc
15130         (svdot_impl::expand): s/direct/convert/ in
15131         `convert_optab_handler_for_sign' function call.
15132         (svusdot_impl::expand): add second mode argument in call to
15133         `code_for_dot_prod'.
15134         * config/aarch64/aarch64-sve-builtins.cc
15135         (function_expander::convert_optab_handler_for_sign): New class
15136         method.
15137         * config/aarch64/aarch64-sve-builtins.h
15138         (class function_expander): Add prototype for new
15139         `convert_optab_handler_for_sign' method.
15141 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15143         * gimple-match-exports.cc (directly_supported_p): Add overload
15144         for conversion-type optabs.
15145         * gimple-match.h (directly_supported_p): Add new function
15146         prototype.
15147         * optabs.cc (expand_widen_pattern_expr): Make the
15148         DOT_PROD_EXPR tree code use `find_widening_optab_handler' to
15149         retrieve icode.
15150         * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): make it
15151         call conversion-type overloaded `directly_supported_p'.
15152         * tree-vect-patterns.cc (vect_supportable_conv_optab_p): New.
15153         (vect_recog_dot_prod_pattern): s/direct/conv/ in call to
15154         `vect_supportable_direct_optab_p'.
15156 2024-09-30  Victor Do Nascimento  <victor.donascimento@arm.com>
15158         * optabs.def (sdot_prod_optab): Convert from OPTAB_D to
15159         OPTAB_CD.
15160         (udot_prod_optab): Likewise.
15161         (usdot_prod_optab): Likewise.
15162         * doc/md.texi (Standard Names): update entries for u,s and us
15163         dot_prod names.
15165 2024-09-30  Richard Biener  <rguenther@suse.de>
15167         PR tree-optimization/116879
15168         * tree-vect-loop.cc (vect_analyze_loop_form): Scan all
15169         blocks that form the latch.
15171 2024-09-30  Tamar Christina  <tamar.christina@arm.com>
15173         PR tree-optimization/116817
15174         * tree-vect-patterns.cc (vect_recog_bool_pattern): Check for const or
15175         externals.
15177 2024-09-30  Richard Biener  <rguenther@suse.de>
15179         PR tree-optimization/116842
15180         * tree-vect-stmts.cc (hoist_defs_of_uses): Sort stmts to hoist
15181         after UID to avoid breaking vect_stmt_dominates_stmt_p.
15183 2024-09-30  Richard Biener  <rguenther@suse.de>
15185         PR tree-optimization/116785
15186         * tree-ssa-structalias.cc (get_constraint_for_1): Only
15187         volatile qualified reads produce ANYTHING.
15189 2024-09-30  Richard Biener  <rguenther@suse.de>
15191         PR tree-optimization/116850
15192         * gimple-ssa-isolate-paths.cc (bb_split_points): New global.
15193         (insert_trap): Delay BB splitting if post-doms are computed.
15194         (find_explicit_erroneous_behavior): Process delayed BB
15195         splitting after releasing post dominators.
15196         (gimple_ssa_isolate_erroneous_paths): Do not free post-dom
15197         info here.
15199 2024-09-30  Pan Li  <pan2.li@intel.com>
15201         * match.pd: Add case 1 matching pattern for signed SAT_SUB.
15202         * tree-ssa-math-opts.cc (gimple_signed_integer_sat_sub): Add new
15203         decl for generated SAT_SUB matching func.
15204         (match_unsigned_saturation_sub): Rename from...
15205         (match_saturation_sub): ...Rename to and add signed SAT_SUB matching.
15206         (math_opts_dom_walker::after_dom_children): Leverage the named
15207         match func for both the unsigned and signed SAT_SUB.
15209 2024-09-29  Pan Li  <pan2.li@intel.com>
15211         * config/riscv/riscv-protos.h (riscv_expand_sssub): Add new func
15212         decl for expanding signed SAT_SUB.
15213         * config/riscv/riscv.cc (riscv_expand_sssub): Add new func impl
15214         for expanding signed SAT_SUB.
15215         * config/riscv/riscv.md (sssub<mode>3): Add new pattern sssub
15216         for scalar signed integer.
15218 2024-09-29  Jakub Jelinek  <jakub@redhat.com>
15220         PR target/116627
15221         * cselib.cc (remove_useless_values): Discard useless locs
15222         even from preserved cselib_vals in cselib_preserved_hash_table
15223         hash table.
15225 2024-09-29  Pietro Monteiro  <pietro@sociotechnical.xyz>
15227         * doc/extend.texi (SH Operand Modifiers): New.
15229 2024-09-29  Jovan Vukic  <Jovan.Vukic@rt-rk.com>
15231         PR target/108038
15232         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): New
15233         simplification.
15235 2024-09-29  Dimitar Dimitrov  <dimitar@dinux.eu>
15237         * doc/sourcebuild.texi: Document struct-layout-1.exp.
15239 2024-09-28  Gerald Pfeifer  <gerald@pfeifer.com>
15241         PR target/69374
15242         * doc/install.texi (Specific) <i?86-*-linux*>: Remove note
15243         from 2003.
15245 2024-09-27  Jakub Jelinek  <jakub@redhat.com>
15247         PR libstdc++/116847
15248         * diagnostic.h (diagnostic_option_classifier): Add pch_save and
15249         pch_restore method declarations.
15250         (diagnostic_context): Add pch_save and pch_restore inline method
15251         definitions.
15252         * diagnostic.cc (diagnostic_option_classifier::pch_save): New method.
15253         (diagnostic_option_classifier::pch_restore): Likewise.
15255 2024-09-27  Jakub Jelinek  <jakub@redhat.com>
15257         PR libstdc++/116847
15258         * diagnostic.h (diagnostic_option_classifier): Change type
15259         of m_classification_history from diagnostic_classification_change_t *
15260         to vec<diagnostic_classification_change_t>.  Change type of
15261         m_push_list from int * to vec<int>.  Remove m_n_classification_history
15262         and m_n_push members.
15263         * diagnostic.cc (diagnostic_option_classifier::init): Set m_push_list
15264         to vNULL rather than nullptr.  Don't initialize m_n_push.  Initialize
15265         m_classification_history to vNULL.
15266         (diagnostic_option_classifier::fini): Call release () method on
15267         m_push_list instead of free on it.  Call release () on
15268         m_classification_history.  Don't clear m_n_push.
15269         (diagnostic_option_classifier::push): Adjust for m_push_list and
15270         m_classification_history being vectors rather than custom allocated
15271         arrays with counter.
15272         (diagnostic_option_classifier::pop): Likewise.
15273         (classify_diagnostic): Adjust for m_classification_history being
15274         vector rather than custom allocated array with counter.
15275         (update_effective_level_from_pragmas): Likewise.
15277 2024-09-27  Uros Bizjak  <ubizjak@gmail.com>
15279         * config/i386/i386.h: Add PTA_BDVER1, PTA_BDVER2, PTA_BDVER3,
15280         PTA_BDVER4, PTA_BTVER1 and PTA_BTVER2.
15281         * common/config/i386/i386-common.cc (processor_alias_table)
15282         <"bdver1">: Use PTA_BDVER1.
15283         <"bdver2">: Use PTA_BDVER2.
15284         <"bdver3">: Use PTA_BDVER3.
15285         <"bdver4">: Use PTA_BDVER4.
15286         <"btver1">: Use PTA_BTVER1.  Use M_CPU_TYPE (AMD_BTVER1).
15287         <"btver2">: Use PTA_BTVER2.
15288         <"shanghai>: Use M_CPU_SUBTYPE (AMDFAM10H_SHANGHAI).
15289         <"istanbul>: Use M_CPU_SUBTYPE (AMDFAM10H_ISTANBUL).
15291 2024-09-27  Pan Li  <pan2.li@intel.com>
15293         PR middle-end/116861
15294         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Backup
15295         the next psi iterator before remove the phi node.
15297 2024-09-27  Richard Biener  <rguenther@suse.de>
15299         * doc/contrib.texi (Richard Biener): Move entry.
15301 2024-09-27  Richard Biener  <rguenther@suse.de>
15303         PR tree-optimization/116818
15304         * tree-vect-stmts.cc (get_group_load_store_type): Consider
15305         VMAT_GATHER_SCATTER instead of VMAT_ELEMENTWISE also for SLP.
15306         (vectorizable_load): For single-lane VMAT_GATHER_SCATTER also
15307         ignore permutations.
15309 2024-09-27  Richard Biener  <rguenther@suse.de>
15311         * tree-vect-stmts.cc (check_load_store_for_partial_vectors):
15312         Use the new vect_get_num_copies overload.  Only divide by
15313         group_size for SLP for load-store lanes.
15315 2024-09-27  Andrew Pinski  <quic_apinski@quicinc.com>
15317         PR tree-optimization/116848
15318         * tree-ssa-loop-unswitch.cc (tree_ssa_unswitch_loops): Call mark_ssa_maybe_undefs.
15319         (is_maybe_undefined): Call ssa_name_maybe_undef_p instead of ondemand undef.
15321 2024-09-26  Richard Biener  <rguenther@suse.de>
15323         PR tree-optimization/114855
15324         * params.opt (--param transitive-relations-work-bound): New.
15325         * doc/invoke.texi (--param transitive-relations-work-bound):
15326         Document.
15327         * value-relation.cc (dom_oracle::register_transitives):
15328         Assing an overall work budget, bounding the dominator walk and
15329         the number of relations processed.
15330         (dom_oracle::record): Only register_transitives when the
15331         number of already registered relations does not yet exceed
15332         the per-BB limit.
15334 2024-09-26  Tobias Burnus  <tburnus@baylibre.com>
15336         * langhooks-def.h (lhd_omp_deep_mapping_p,
15337         lhd_omp_deep_mapping_cnt, lhd_omp_deep_mapping): New.
15338         (LANG_HOOKS_OMP_DEEP_MAPPING_P, LANG_HOOKS_OMP_DEEP_MAPPING_CNT,
15339         LANG_HOOKS_OMP_DEEP_MAPPING): Define.
15340         (LANG_HOOKS_DECLS): Use it.
15341         * langhooks.cc (lhd_omp_deep_mapping_p, lhd_omp_deep_mapping_cnt,
15342         lhd_omp_deep_mapping): New stubs.
15343         * langhooks.h (struct lang_hooks_for_decls): Add new hooks
15344         * omp-expand.cc (expand_omp_target): Handle dynamic-size
15345         addr/sizes/kinds arrays.
15346         * omp-low.cc (build_sender_ref, fixup_child_record_type,
15347         scan_sharing_clauses, lower_omp_target): Update to handle
15348         new hooks and dynamic-size addr/sizes/kinds arrays.
15350 2024-09-26  Jakub Jelinek  <jakub@redhat.com>
15352         * pretty-print.cc (allocate_object): Use obstack_blank rather than
15353         obstack_grow.
15355 2024-09-26  Gerald Pfeifer  <gerald@pfeifer.com>
15357         PR target/69374
15358         * doc/install.texi (Specific) <*-*-mingw32>: Remove note regarding
15359         binutils 2.16.
15361 2024-09-26  Kugan Vivekanandarajah  <kvivekananda@nvidia.com>
15363         * match.pd: Extend A CMP 0 ? A : -A into (type)A CMP 0 ? A : -A.
15364         Extend A CMP 0 ? A : -A into (type) A CMP 0 ? A : -A.
15366 2024-09-26  Levy Hsu  <admin@levyhsu.com>
15368         * config/i386/mmx.md:
15369         (VQI_16_32_64): New mode iterator for 8-byte, 4-byte, and 2-byte QImode.
15370         (popcount<mode>2): New pattern for popcount of V2QI/V4QI/V8QI mode.
15371         (popcount<mode>2): New pattern for popcount of V2HI/V4HI mode.
15372         (popcountv2si2): New pattern for popcount of V2SI mode.
15374 2024-09-26  liuhongt  <hongtao.liu@intel.com>
15376         * config/i386/i386.h (VECTOR_STORE_FLAG_VALUE): New macro.
15378 2024-09-26  Pan Li  <pan2.li@intel.com>
15380         * match.pd: Add optional nop_convert for signed SAT_ADD case 4.
15382 2024-09-25  Mikael Morin  <mikael@gcc.gnu.org>
15384         PR other/116801
15385         * common.opt.urls: Regenerate.
15387 2024-09-25  Jakub Jelinek  <jakub@redhat.com>
15389         PR target/116738
15390         * config/i386/i386.cc (ix86_fold_builtin): Handle
15391         IX86_BUILTIN_M{IN,AX}{S,P}{S,H,D}*.
15392         (ix86_gimple_fold_builtin): Handle IX86_BUILTIN_M{IN,AX}P{S,H,D}*.
15394 2024-09-25  H.J. Lu  <hjl.tools@gmail.com>
15396         PR target/116839
15397         * config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it
15398         static.  Return if TLS address is thread register plus an integer
15399         register.
15401 2024-09-25  Andrew Pinski  <quic_apinski@quicinc.com>
15403         PR middle-end/116772
15404         * generic-match-head.cc (expr_no_side_effects_p): New function
15405         * gimple-match-head.cc (expr_no_side_effects_p): New function
15406         * match.pd (`a != 0 ? a / b : 0`): Check expr_no_side_effects_p.
15407         (`a != 0 ? a * b : 0`, `a != 0 ? a & b : 0`): Likewise.
15409 2024-09-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
15411         PR tree-optimization/114326
15412         * match.pd: Add two patterns to fold a ^ b to 0, when a == b.
15414 2024-09-25  Richard Biener  <rguenther@suse.de>
15416         * value-range.cc (get_bitmask_from_range): Remove redundant
15417         compare of xorv with zero.
15419 2024-09-25  Richard Biener  <rguenther@suse.de>
15421         * wide-int.h (wide_int_storage::wide_int_storage): Branch
15422         on source precision to avoid data dependence on memcpy
15423         destination.
15424         (wide_int_storage::operator=): Likewise.
15426 2024-09-25  Konstantinos Eleftheriou  <konstantinos.eleftheriou@vrull.eu>
15428         PR tree-optimization/109393
15429         * match.pd: (A * B) + (-C) -> (B - C/A) * A, if C a multiple of A.
15431 2024-09-25  Richard Biener  <rguenther@suse.de>
15433         * tree-ssa-reassoc.cc (break_up_subtract_bb): Remove recursion.
15434         (reassociate_bb): Likewise.
15435         (do_reassoc): Implement worklist based dominator walks for
15436         both break_up_subtract_bb and reassociate_bb.
15438 2024-09-25  Aldy Hernandez  <aldyh@redhat.com>
15440         PR tree-optimization/114855
15441         * tree-ssa-threadedge.cc: Remove unneeded recursion.
15443 2024-09-25  Richard Biener  <rguenther@suse.de>
15445         * ipa-utils.cc (find_always_executed_bbs): Switch result
15446         bitmap to tree view.
15448 2024-09-25  Richard Biener  <rguenther@suse.de>
15450         PR rtl-optimization/114855
15451         * ira.cc (add_store_equivs): Use sbitmap for tracking
15452         visited insns.
15454 2024-09-25  Richard Biener  <rguenther@suse.de>
15456         * ira.cc (ira): Gate add_store_equivs on flag_expensive_optimizations.
15458 2024-09-25  Richard Biener  <rguenther@suse.de>
15460         PR tree-optimization/114855
15461         * value-relation.cc (equiv_oracle::equiv_oracle): Switch
15462         m_equiv_set to tree view.
15464 2024-09-25  Lingling Kong  <lingling.kong@intel.com>
15466         * config/i386/i386.opt: Update the features included in apxf.
15468 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
15470         PR c++/107637
15471         * omp-general.cc (find_combined_omp_for, find_nested_loop_xform):
15472         Handle CLEANUP_POINT_EXPR like TRY_FINALLY_EXPR.
15473         * doc/invoke.texi (frange-for-ext-temps): Document.  Add
15474         -fconcepts to the C++ option list.
15476 2024-09-24  Jakub Jelinek  <jakub@redhat.com>
15478         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Fix comment
15479         typo, insead -> instead.
15481 2024-09-24  Yixuan Chen  <chenyixuan@iscas.ac.cn>
15483         * config/riscv/riscv.h: Fix FIXED_REGISTERS comment missing return
15484         address register.
15486 2024-09-24  Sandra Loosemore  <sloosemore@baylibre.com>
15488         * omp-general.cc (omp_check_context_selector): Reject other
15489         properties in the same selector set with kind(any).  Also reject
15490         duplicate name-list properties.
15492 2024-09-24  Richard Biener  <rguenther@suse.de>
15494         * range-op.cc (operator_rshift::op1_range): Use wi::mask instead
15495         of shift and not.
15497 2024-09-24  Pan Li  <pan2.li@intel.com>
15499         PR middle-end/116814
15500         * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Make
15501         ifn is_supported type check based on operand instead of lhs.
15503 2024-09-24  Richard Biener  <rguenther@suse.de>
15505         PR tree-optimization/116819
15506         * tree-vect-stmts.cc (vect_analyze_stmt): When the SLP
15507         representative isn't relevant signal failure instead of
15508         success.
15510 2024-09-24  Robin Dapp  <rdapp@ventanamicro.com>
15512         * config/riscv/autovec.md (vec_extract<mode><vls_quarter>):
15513         Add quarter vec-vec extract.
15514         * config/riscv/vector-iterators.md: New iterators.
15516 2024-09-24  Jason Merrill  <jason@redhat.com>
15518         * configure.ac (CXX_WARNING_OPTS): Change -Wno-narrowing
15519         to -Wno-error=narrowing.
15520         * configure: Regenerate.
15521         * config/i386/i386.h (debugger_register_map)
15522         (debugger64_register_map)
15523         (svr4_debugger_register_map): Make unsigned.
15524         * config/i386/i386.cc: Likewise.
15525         * diagnostic-event-id.h (diagnostic_thread_id_t): Make int.
15526         * vec.h (vec::size): Make unsigned int.
15527         * ipa-modref.cc (escape_point::arg): Make unsigned.
15528         (modref_lattice::add_escape_point): Use eaf_flags_t.
15529         (update_escape_summary_1): Use eaf_flags_t, && for bool.
15530         * pair-fusion.cc (pair_fusion_bb_info::track_access):
15531         Make mem_size unsigned int.
15532         * pretty-print.cc (format_phase_2): Cast va_arg to char.
15533         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Make nheaders
15534         unsigned, remove cast.
15535         * tree-ssa-structalias.cc (bitpos_of_field): Return unsigned.
15536         (push_fields_onto_fieldstack):Make offset unsigned, remove cast.
15537         * tree-vect-slp.cc (vect_prologue_cost_for_slp): Use nelt_limit.
15538         * tree-vect-stmts.cc (vect_truncate_gather_scatter_offset):
15539         Make scale unsigned.
15540         (vectorizable_operation): Make ncopies unsigned.
15541         * rtl-ssa/member-fns.inl: Make num_accesses unsigned int.
15543 2024-09-24  Richard Biener  <rguenther@suse.de>
15545         PR tree-optimization/114855
15546         * tree-into-ssa.cc (update_ssa): Use tree view for the
15547         initial population of blocks_to_update.
15549 2024-09-24  Tobias Burnus  <tburnus@baylibre.com>
15551         * lto-cgraph.cc (output_offload_tables, omp_requires_to_name): Handle
15552         self_maps clause.
15553         * omp-general.cc (struct omp_ts_info, omp_context_selector_matches):
15554         Likewise for the associated trait.
15555         * omp-general.h (enum omp_requires): Add OMP_REQUIRES_SELF_MAPS.
15556         * omp-selectors.h (enum omp_ts_code): Add
15557         OMP_TRAIT_IMPLEMENTATION_SELF_MAPS.
15559 2024-09-24  Richard Biener  <rguenther@suse.de>
15561         PR tree-optimization/115372
15562         * tree-vect-slp.cc (vect_build_slp_instance): Compute the
15563         uniform, if, number of lanes of the RHS sub-graphs feeding
15564         the store and if uniformly one, use store-lanes if the target
15565         supports that.
15567 2024-09-24  Richard Biener  <rguenther@suse.de>
15569         PR tree-optimization/114855
15570         * tree-into-ssa.cc (phis_to_rewrite): Remove global var.
15571         (mark_phi_for_rewrite): Simplify.
15572         (rewrite_update_phi_arguments): Walk all PHIs, process
15573         those satisfying rewrite_uses_p.
15574         (delete_update_ssa): Simplify.
15575         (update_ssa): Likewise.  Switch blocks_with_phis_to_rewrite
15576         to tree view.
15578 2024-09-24  Yangyu Chen  <chenyangyu@isrc.iscas.ac.cn>
15580         * hosthooks.h (struct host_hooks): Fix GCC_HOST_HOOKS_H typo.
15582 2024-09-24  Prathamesh Kulkarni  <prathameshk@nvidia.com>
15583             Thomas Schwinge  <tschwinge@baylibre.com>
15585         PR target/104957
15586         * config/nvptx/nvptx.cc (nvptx_asm_output_def_from_decls): Use
15587         cgraph_node::get(name)->ultimate_alias_target instead of value.
15589 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
15591         * config/aarch64/aarch64-simd.md
15592         (*aarch64_faminmax_fused): Instruction pattern for faminmax
15593         codegen.
15594         * config/aarch64/iterators.md: Attribute for faminmax codegen.
15596 2024-09-23  Saurabh Jha  <saurabh.jha@arm.com>
15598         * config/aarch64/aarch64-builtins.cc
15599         (ENTRY): Macro to parse the contents of
15600         aarch64-simd-pragma-builtins.def.
15601         (ENTRY_VHSDF): Macro to parse the contents of
15602         aarch64-simd-pragma-builtins.def.
15603         (enum aarch64_builtins): New enum values for faminmax builtins
15604         via aarch64-simd-pragma-builtins.def.
15605         (enum class aarch64_builtin_signatures): Enum class to specify
15606         the number of operands a builtin will take.
15607         (struct aarch64_pragma_builtins_data): Struct to hold data from
15608         aarch64-simd-pragma-builtins.def.
15609         (aarch64_fntype): New function to define function types of
15610         intrinsics given an object of type aarch64_pragma_builtins_data.
15611         (aarch64_init_pragma_builtins): New function to define pragma
15612         builtins.
15613         (aarch64_get_pragma_builtin): New function to get a row of
15614         aarch64_pragma_builtins, given code.
15615         (handle_arm_neon_h): Modify to call
15616         aarch64_init_pragma_builtins.
15617         (aarch64_general_check_builtin_call): Modify to check whether
15618         required flag is being used for pragma builtins.
15619         (aarch64_expand_pragma_builtin): New function to emit
15620         instructions of pragma_builtin.
15621         (aarch64_general_expand_builtin): Modify to call
15622         aarch64_expand_pragma_builtin.
15623         * config/aarch64/aarch64-option-extensions.def
15624         (AARCH64_OPT_EXTENSION): Introduce new flag for this extension.
15625         * config/aarch64/aarch64-simd.md
15626         (@aarch64_<faminmax_uns_op><mode>): Instruction pattern for
15627         faminmax intrinsics.
15628         * config/aarch64/aarch64.h
15629         (TARGET_FAMINMAX): Introduce new flag for this extension.
15630         * config/aarch64/iterators.md: New iterators and unspecs.
15631         * doc/invoke.texi: Document extension in AArch64 Options.
15632         * config/aarch64/aarch64-simd-pragma-builtins.def: New file to
15633         list pragma builtins.
15635 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
15637         * dwarf2cfi.cc
15638         (struct dw_cfi_row): Declare a new enum type to replace ra_mangled.
15639         (cfi_row_equal_p): Use ra_state instead of ra_mangled.
15640         (dwarf2out_frame_debug_cfa_negate_ra_state): Same.
15641         (change_cfi_row): Same.
15643 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
15645         * config/aarch64/aarch64.cc
15646         (aarch64_output_cfi_directive): New hook for CFI directives.
15647         (aarch64_dw_cfi_oprnd1_desc): Same.
15648         (TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive.
15649         (TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc.
15650         * config/sparc/sparc.cc
15651         (sparc_output_cfi_directive): New hook for CFI directives.
15652         (sparc_dw_cfi_oprnd1_desc): Same.
15653         (TARGET_OUTPUT_CFI_DIRECTIVE): Hook for output_cfi_directive.
15654         (TARGET_DW_CFI_OPRND1_DESC): Hook for dw_cfi_oprnd1_desc.
15655         * coretypes.h
15656         (struct dw_cfi_node): Forward declaration of CFI type from
15657         gcc/dwarf2out.h.
15658         (enum dw_cfi_oprnd_type): Same.
15659         (enum dwarf_call_frame_info): Same.
15660         * doc/tm.texi: Regenerated from doc/tm.texi.in.
15661         * doc/tm.texi.in: Add doc for new target hooks.
15662         type of enum to allow forward declaration.
15663         * dwarf2cfi.cc
15664         (struct dw_cfi_row): Update the description for window_save
15665         and ra_mangled.
15666         (dwarf2out_frame_debug_cfa_negate_ra_state): Use AArch64 CFI
15667         directive instead of the SPARC one.
15668         (change_cfi_row): Use the right CFI directive's name for RA
15669         mangling.
15670         (output_cfi): Remove explicit architecture-specific CFI
15671         directive DW_CFA_GNU_window_save that falls into default case.
15672         (output_cfi_directive): Use target hook as default.
15673         * dwarf2out.cc (dw_cfi_oprnd1_desc): Use target hook as default.
15674         * dwarf2out.h (enum dw_cfi_oprnd_type): specify underlying type
15675         of enum to allow forward declaration.
15676         (dw_cfi_oprnd1_desc): Call target hook.
15677         (output_cfi_directive): Use dw_cfi_ref instead of struct
15678         dw_cfi_node *.
15679         * hooks.cc
15680         (hook_bool_dwcfi_dwcfioprndtyperef_false): New.
15681         (hook_bool_FILEptr_dwcfiptr_false): New.
15682         * hooks.h
15683         (hook_bool_dwcfi_dwcfioprndtyperef_false): New.
15684         (hook_bool_FILEptr_dwcfiptr_false): New.
15685         * target.def: Documentation for new hooks.
15687 2024-09-23  Matthieu Longo  <matthieu.longo@arm.com>
15689         * combine-stack-adj.cc
15690         (no_unhandled_cfa): Rename.
15691         * config/aarch64/aarch64.cc
15692         (aarch64_expand_prologue): Rename.
15693         (aarch64_expand_epilogue): Rename.
15694         * dwarf2cfi.cc
15695         (dwarf2out_frame_debug_cfa_toggle_ra_mangle): Rename this...
15696         (dwarf2out_frame_debug_cfa_negate_ra_state): To this.
15697         (dwarf2out_frame_debug): Rename.
15698         * reg-notes.def (REG_CFA_NOTE): Rename REG_CFA_TOGGLE_RA_MANGLE.
15700 2024-09-23  Tobias Burnus  <tburnus@baylibre.com>
15702         * omp-general.cc (omp_runtime_api_procname): Strip "omp_" from
15703         string; move get_device_from_uid as now a '_' suffix exists.
15705 2024-09-23  Claudiu Zissulescu  <claziss@gmail.com>
15707         PR target/113954
15708         * config/arc/arc.cc (TARGET_LRA_P): Always return true.
15709         (arc_lra_p): Remove.
15710         * config/arc/arc.h (TARGET_LRA): Remove.
15711         * config/arc/arc.opt (mlra): Change it to do nothing.
15712         * doc/invoke.texi (mlra): Update option description.
15714 2024-09-23  Richard Biener  <rguenther@suse.de>
15716         PR tree-optimization/116810
15717         * tree-vect-slp.cc (vect_build_slp_instance): Onlu force
15718         splitting for group_size > 1.
15720 2024-09-23  Richard Biener  <rguenther@suse.de>
15722         PR tree-optimization/116796
15723         * cfgloopmanip.cc (fix_loop_placements): Get LC-SSA-invalidated
15724         bitmap and pass it on.
15725         (remove_path): Pass LC-SSA-invalidated to fix_loop_placements.
15727 2024-09-23  Tamar Christina  <tamar.christina@arm.com>
15729         PR tree-optimization/116812
15730         * tree-vect-slp.cc (vect_slp_region): Fix insertion.
15732 2024-09-23  Richard Biener  <rguenther@suse.de>
15734         PR tree-optimization/116791
15735         * tree-vect-stmts.cc (get_group_load_store_type): Only
15736         fall back to elementwise access for single-lane SLP, restore
15737         hard failure mode for other cases.
15739 2024-09-23  Tobias Burnus  <tburnus@baylibre.com>
15741         * config/gcn/mkoffload.cc (process_asm): (Re)add the fprintf
15742         lines for stdlib.h/stdbool.h inclusion if gcn_stack_size is used.
15744 2024-09-23  Pan Li  <pan2.li@intel.com>
15746         PR target/116795
15747         * gimple-match-head.cc (match_cond_with_binary_phi): Fix the
15748         incorrect cfg check as b0->b1 in above example.
15750 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
15752         * gimple-iterator.h (gimple_seq_nondebug_singleton_p):
15753         Rewrite to be simplely, gsi_start_nondebug/gsi_one_nondebug_before_end_p.
15755 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
15757         * gimple.h (remove_pointer): Remove.
15758         (GIMPLE_CHECK2): Use std::remove_pointer instead of custom one.
15760 2024-09-23  Andrew Pinski  <quic_apinski@quicinc.com>
15762         * tree-ssa-operands.h (PHI_ARG_DEF): Remove definition.
15764 2024-09-23  Pan Li  <pan2.li@intel.com>
15766         * match.pd: Add the case 3 for signed .SAT_ADD matching.
15768 2024-09-22  Tamar Christina  <tamar.christina@arm.com>
15770         * tree-vect-patterns.cc (append_inv_pattern_def_seq): New.
15771         (vect_recog_bool_pattern): Lower COND_EXPRs.
15772         * tree-vect-slp.cc (vect_slp_region): Materialize loop invariant
15773         statements.
15774         * tree-vect-loop.cc (vect_transform_loop): Likewise.
15775         * tree-vect-stmts.cc (vectorizable_comparison_1): Remove
15776         VECT_SCALAR_BOOLEAN_TYPE_P handling for vectype.
15777         * tree-vectorizer.cc (vec_info::vec_info): Initialize
15778         inv_pattern_def_seq.
15779         * tree-vectorizer.h (LOOP_VINFO_INV_PATTERN_DEF_SEQ): New.
15780         (class vec_info): Add inv_pattern_def_seq.
15782 2024-09-22  Tamar Christina  <tamar.christina@arm.com>
15784         * config/aarch64/aarch64.cc (adjust_body_cost):
15785         Cap VF for low iteration loops.
15787 2024-09-21  Mikael Morin  <mikael@gcc.gnu.org>
15789         PR fortran/90608
15790         * flag-types.h (enum gfc_inlineable_intrinsics): New type.
15792 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
15794         PR other/116613
15795         * text-art/dump.h (dump_to_file): Simplify using
15796         tree_dump_pretty_printer.
15797         * tree-diagnostic.h (class tree_dump_pretty_printer): New.
15799 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
15801         PR other/116613
15802         * diagnostic-format-sarif.cc (sarif_builder::m_printer): New
15803         field.
15804         (sarif_invocation::add_notification_for_ice): Drop context param.
15805         (sarif_invocation::prepare_to_flush): Convert param from context
15806         to builder.
15807         (sarif_result::on_nested_diagnostic): Drop context param.  Use
15808         builder's printer.
15809         (sarif_result::on_diagram): Drop context param.
15810         (sarif_ice_notification::sarif_ice_notification): Drop context
15811         param.  Use builder's printer.
15812         (sarif_builder::sarif_builder): Initialize m_printer.
15813         (sarif_builder::on_report_diagnostic): Drop context param.  Use
15814         builder's printer.
15815         (sarif_builder::emit_diagram): Drop context param.
15816         (sarif_builder::flush_to_object): Use this rather than context
15817         for call to prepare_to_flush.
15818         (sarif_builder::make_result_object): Drop context param.  Use
15819         builder's printer.
15820         (sarif_builder::make_reporting_descriptor_object_for_warning):
15821         Drop context param.
15822         (sarif_builder::make_message_object_for_diagram): Likewise.
15823         Use builder's printer.
15824         (sarif_output_format::on_report_diagnostic): Drop context param
15825         from call to sarif_builder::on_report_diagnostic.
15826         (sarif_output_format::on_diagram): Drop context param from call to
15827         sarif_builder::emit_diagram.
15828         * diagnostic.h (diagnostic_conetxt::get_client_data_hooks): Make const.
15830 2024-09-20  David Malcolm  <dmalcolm@redhat.com>
15832         PR other/116613
15833         * coretypes.h (class diagnostic_text_output_format): Add forward
15834         decl.
15835         * diagnostic-format-json.cc
15836         (json_output_format::after_diagnostic): New.
15837         * diagnostic-format-sarif.cc
15838         (sarif_output_format::after_diagnostic): New.
15839         * diagnostic-format-text.cc: Use pragmas to ignore -Wformat-diag.
15840         (diagnostic_text_output_format::~diagnostic_text_output_format):
15841         Use get_printer.  Clean up m_includes_seen here, rather than
15842         in ~diagnostic_context.
15843         (diagnostic_text_output_format::on_report_diagnostic):  Use
15844         get_printer.  Update for callback renamings and pass *this
15845         to them, rather than &m_context.
15846         (diagnostic_text_output_format::after_diagnostic): New.
15847         (diagnostic_text_output_format::includes_seen_p): Move here
15848         from diagnostic_context/diagnostic.cc.
15849         (diagnostic_text_output_format::get_location_text): New.
15850         (maybe_line_and_column): Move here from diagnostic.cc and make
15851         non-static.
15852         (diagnostic_text_output_format::report_current_module): Move
15853         here from diagnostic_context/diagnostic.cc.
15854         (default_diagnostic_text_starter): Move here from diagnostic.cc,
15855         renaming from default_diagnostic_starter.
15856         (default_diagnostic_text_finalizer): Likewise, renaming from
15857         default_diagnostic_finalizer.
15858         * diagnostic-format-text.h
15859         (diagnostic_text_output_format::diagnostic_text_output_format):
15860         Initialize m_last_module and m_includes_seen.
15861         (diagnostic_text_output_format::after_diagnostic): New decl.
15862         (diagnostic_text_output_format::build_prefix): New decl.
15863         (diagnostic_text_output_format::report_current_module): New decl.
15864         (diagnostic_text_output_format::append_note): New decl.
15865         (diagnostic_text_output_format::file_name_as_prefix): New decl.
15866         (diagnostic_text_output_format::print_path): New decl.
15867         (diagnostic_text_output_format::show_column_p): New decl.
15868         (diagnostic_text_output_format::get_location_text): New decl.
15869         (diagnostic_text_output_format::includes_seen_p): New decl.
15870         (diagnostic_text_output_format::show_any_path): New decl.
15871         (diagnostic_text_output_format::m_last_module): New field.
15872         (diagnostic_text_output_format::m_includes_seen): New field.
15873         * diagnostic-format.h
15874         (diagnostic_output_format::after_diagnostic): New vfunc.
15875         (diagnostic_output_format::get_context): New.
15876         (diagnostic_output_format::get_diagram_theme): New.
15877         * diagnostic-macro-unwinding.cc: Include
15878         "diagnostic-format-text.h".
15879         (maybe_unwind_expanded_macro_loc): Convert first param from
15880         diagnostic_context * to diagnostic_text_output_format & and update
15881         accordingly.
15882         (virt_loc_aware_diagnostic_finalizer): Likewise.
15883         * diagnostic-macro-unwinding.h
15884         (virt_loc_aware_diagnostic_finalizer): Likewise.
15885         (maybe_unwind_expanded_macro_loc): Likewise.
15886         * diagnostic-path.cc: Include "diagnostic-format-text.h".
15887         (path_label::path_label): Drop "ctxt" param and add "colorize"
15888         and "allow_emojis" params.  Update initializations.
15889         (path_label::get_text): Use m_colorize rather than querying
15890         m_ctxt.m_printer.  Use m_allow_emojis rather than querying
15891         m_ctxt's diagram theme.
15892         (path_label::m_ctxt): Drop field.
15893         (path_label::m_colorize): Drop field.
15894         (path_label::m_allow_emojis): Drop field.
15895         (event_range::event_range): Drop param "ctxt".  Add params
15896         "colorize_labels" and "allow_emojis".
15897         (event_range::print): Convert first param from
15898         diagnostic_context & to diagnostic_text_output_format & and update
15899         accordingly.
15900         (path_summary::path_summary): Likewise.
15901         (path_summary::print_swimlane_for_event_range): Likewise.
15902         (print_path_summary_as_text): Likewise for 3rd param.
15903         (diagnostic_context::print_path): Convert to...
15904         (diagnostic_text_output_format::print_path): ...this.
15905         (selftest::test_empty_path): Update to use a
15906         diagnostic_text_output_format.
15907         (selftest::test_intraprocedural_path): Likewise.
15908         (selftest::test_interprocedural_path_1): Likewise.
15909         (selftest::test_interprocedural_path_2): Likewise.
15910         (selftest::test_recursion): Likewise.
15911         (selftest::test_control_flow_1): Likewise.
15912         (selftest::test_control_flow_2): Likewise.
15913         (selftest::test_control_flow_3): Likewise.
15914         (selftest::assert_cfg_edge_path_streq): Likewise.
15915         (selftest::test_control_flow_5): Likewise.
15916         (selftest::test_control_flow_6): Likewise.
15917         * diagnostic.cc (file_name_as_prefix): Convert to...
15918         (diagnostic_text_output_format::file_name_as_prefix): ...this.
15919         (diagnostic_context::initialize): Update for renamings.
15920         Move m_last_module and m_includes_seen into text output.
15921         (diagnostic_context::finish): Likewise.
15922         (diagnostic_context::get_location_text): Add "colorize" param.
15923         (diagnostic_build_prefix): Convert to...
15924         (diagnostic_text_output_format::build_prefix): ...this.
15925         (diagnostic_context::includes_seen_p): Move from here to
15926         diagnostic_text_output_format/diagnostic-format-text.cc.
15927         (diagnostic_context::report_current_module): Likewise.
15928         (diagnostic_context::show_any_path): Convert to...
15929         (diagnostic_text_output_format::show_any_path): ...this.
15930         (default_diagnostic_starter): Rename and move to
15931         diagnostic-format-text.cc.
15932         (default_diagnostic_start_span_fn): Pass colorize bool
15933         to get_location_text.
15934         (default_diagnostic_finalizer): Rename and move to
15935         diagnostic-format-text.cc.
15936         (diagnostic_context::report_diagnostic): Replace call to
15937         show_any_path with call to new output format "after_diagnostic"
15938         vfunc, moving show_any_path call to the text output format.
15939         (diagnostic_append_note): Convert to...
15940         (diagnostic_text_output_format::append_note): ...this.
15941         (selftest::assert_location_text): Pass in false for colorization.
15942         * diagnostic.h (diagnostic_starter_fn): Rename to...
15943         (diagnostic_text_starter_fn): ...this.  Convert first param from
15944         diagnostic_context * to diagnostic_text_output_format &.
15945         (diagnostic_finalizer_fn, diagnostic_text_finalizer_fn): Likewise.
15946         (diagnostic_context): Update friends for renamings.
15947         (diagnostic_context::report_current_module): Move to text output
15948         format.
15949         (diagnostic_context::get_location_text): Add "colorize" bool.
15950         (diagnostic_context::includes_seen_p): Move to text output format.
15951         (diagnostic_context::show_any_path): Likewise.
15952         (diagnostic_context::print_path): Likewise.
15953         (diagnostic_context::m_text_callbacks): Update for renamings.
15954         (diagnostic_context::m_last_module): Move to text output format.
15955         (diagnostic_context::m_includes_seen): Likewise.
15956         (diagnostic_starter): Rename to...
15957         (diagnostic_text_starter): ...this and update return type.
15958         (diagnostic_finalizer): Rename to...
15959         (diagnostic_text_finalizer): ...this and update return type.
15960         (diagnostic_report_current_module): Drop decl in favor of a member
15961         function of diagnostic_text_output_format.
15962         (diagnostic_append_note): Likewise.
15963         (default_diagnostic_starter): Rename to...
15964         (default_diagnostic_text_starter): ...this, updating type.
15965         (default_diagnostic_finalizer): Rename to...
15966         (default_diagnostic_text_finalizer): ...this, updating type.
15967         (file_name_as_prefix): Drop decl.
15968         * langhooks-def.h (lhd_print_error_function): Convert first param
15969         from diagnostic_context * to diagnostic_text_output_format &.
15970         * langhooks.cc: Include "diagnostic-format-text.h".
15971         (lhd_print_error_function): Likewise.  Update accordingly
15972         * langhooks.h (lang_hooks::print_error_function): Convert first
15973         param from diagnostic_context * to
15974         diagnostic_text_output_format &.
15975         * tree-diagnostic.cc: Include "diagnostic-format-text.h".
15976         (diagnostic_report_current_function): Convert first param from
15977         diagnostic_context * to diagnostic_text_output_format & and update
15978         accordingly.
15979         (default_tree_diagnostic_starter): Rename to...
15980         (default_tree_diagnostic_text_starter): ...this.  Convert first
15981         param from diagnostic_context * to diagnostic_text_output_format &
15982         and update accordingly.
15983         (tree_diagnostics_defaults): Update for renamings.
15985 2024-09-20  Tamar Christina  <tamar.christina@arm.com>
15987         * config/aarch64/aarch64.h (VECTOR_STORE_FLAG_VALUE): New.
15989 2024-09-20  Iain Sandoe  <iain@sandoe.co.uk>
15991         * config/darwin.h (AS_NEEDS_DASH_FOR_PIPED_INPUT): New.
15993 2024-09-20  Richard Biener  <rguenther@suse.de>
15995         * tree-vect-stmts.cc (get_group_load_store_type): Fall back
15996         to VMAT_ELEMENTWISE when single element interleaving of
15997         a too large group.
15998         (vectorizable_load): Do not try to verify load permutations
15999         when using VMAT_ELEMENTWISE for single-lane SLP and fix code
16000         generation for this case.
16002 2024-09-20  Richard Biener  <rguenther@suse.de>
16004         * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
16005         discovering from only-live roots.
16007 2024-09-20  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
16009         * config/s390/s390.cc (s390_lra_p): Remove.
16010         (TARGET_LRA_P): Remove.
16011         * config/s390/s390.opt (mlra): Remove.
16012         * config/s390/s390.opt.urls (mlra): Remove.
16014 2024-09-20  Eric Botcazou  <ebotcazou@adacore.com>
16016         * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Always
16017         process both the load and the store of a memory copy operation.
16019 2024-09-20  Tobias Burnus  <tburnus@baylibre.com>
16021         * omp-general.cc (omp_runtime_api_procname): Add
16022         get_device_from_uid and omp_get_uid_from_device routines.
16024 2024-09-20  Uros Bizjak  <ubizjak@gmail.com>
16025             Jakub Jelinek  <jakub@redhat.com>
16027         PR target/116738
16028         * config/i386/subst.md (mask_scalar_operand_arg34,
16029         mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
16030         subst attributes.
16031         * config/i386/sse.md
16032         (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
16033         Change from define_insn to define_expand, rename the old define_insn
16034         to ...
16035         (*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
16036         ... this.
16037         (<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
16038         New define_insn.
16040 2024-09-20  Andrew Pinski  <quic_apinski@quicinc.com>
16042         PR middle-end/116643
16043         * ssa-iterators.h (single_phi_def): Use gimple_phi_result
16044         instead of PHI_RESULT.
16045         (op_iter_init_phidef): Use gimple_phi_result/gimple_phi_result_ptr
16046         instead of PHI_RESULT/PHI_RESULT_PTR.
16047         * tree-ssa-operands.h (PHI_RESULT_PTR): Remove.
16048         (PHI_RESULT): Use gimple_phi_result directly.
16049         (SET_PHI_RESULT): Use gimple_phi_result_ptr directly.
16051 2024-09-19  Marek Polacek  <polacek@redhat.com>
16053         PR c++/116162
16054         * doc/invoke.texi: Document -Wdefaulted-function-deleted.
16056 2024-09-19  Jakub Jelinek  <jakub@redhat.com>
16058         * dwarf2asm.cc (eh_data_format_name): Use constexpr initialization
16059         of format_names table for C++14 instead of a large switch.
16061 2024-09-19  Richard Biener  <rguenther@suse.de>
16063         PR tree-optimization/116768
16064         * tree-data-ref.cc (build_classic_dist_vector_1): Revert
16065         PR101009 change.
16066         * tree-chrec.cc (eq_evolutions_p): Make sure (sizetype)1
16067         and (int)1 compare equal.
16069 2024-09-19  Richard Biener  <rguenther@suse.de>
16071         * tree-vectorizer.h (vect_analyze_slp): Add force_single_lane
16072         parameter.
16073         * tree-vect-slp.cc (vect_analyze_slp_instance): Remove
16074         defaulting of force_single_lane.
16075         (vect_build_slp_instance): Likewise.  Pass down appropriate
16076         force_single_lane.
16077         (vect_analyze_slp): Add force_sigle_lane parameter and pass
16078         it down appropriately.
16079         (vect_slp_analyze_bb_1): Always do multi-lane SLP.
16080         * tree-vect-loop.cc (vect_analyze_loop_2): Track two SLP
16081         modes and adjust accordingly.
16082         (vect_analyze_loop_1): Save the SLP mode when unrolling.
16084 2024-09-19  Jason Merrill  <jason@redhat.com>
16086         * ginclude/stdint-wrap.h: Add #pragma GCC diagnostic to suppress
16087         undesired warnings.
16088         * gsyslimits.h: Likewise.
16090 2024-09-19  Richard Biener  <rguenther@suse.de>
16092         * tree-data-ref.cc (build_classic_dist_vector): Move
16093         distance vector dumping to single caller ...
16094         (subscript_dependence_tester): ... here, dumping always
16095         when we succeed computing it.
16097 2024-09-19  Richard Biener  <rguenther@suse.de>
16099         PR tree-optimization/116573
16100         * tree-vect-loop.cc (vect_analyze_loop_2): Allow .SELECV_VL
16101         for SLP but disable it when there's multi-lane instances.
16102         * tree-vect-stmts.cc (vectorizable_store): Only compute the
16103         ptr increment when generating code.
16104         (vectorizable_load): Likewise.
16106 2024-09-19  Pan Li  <pan2.li@intel.com>
16108         * match.pd: Add the form 3 of signed .SAT_ADD matching.
16110 2024-09-19  Pan Li  <pan2.li@intel.com>
16112         * genmatch.cc (dt_operand::gen_phi_on_cond): Leverage the
16113         match_cond_with_binary_phi API to get cond gimple, true and
16114         false TREE arg.
16116 2024-09-19  Jennifer Schmitz  <jschmitz@nvidia.com>
16118         * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
16119         Add folding of all-zero operands to zero vector.
16121 2024-09-19  Kyrylo Tkachov  <ktkachov@nvidia.com>
16123         * config/aarch64/tuning_models/neoversev2.h (neoversev2_prefetch_tune):
16124         Define.
16125         (neoversev2_tunings): Use it.
16127 2024-09-19  Hu, Lin1  <lin1.hu@intel.com>
16129         * config/i386/i386.md: Add ssemov2, sseicvt2.
16130         * config/i386/sse.md (sse2_cvtsi2sd): Apply sseicvt2.
16131         (sse2_cvtsi2sdq<round_name>): Ditto.
16132         (vec_set<mode>_0): Apply ssemov2 for 4, 6.
16134 2024-09-19  Pan Li  <pan2.li@intel.com>
16136         * gimple-match-head.cc (match_cond_with_binary_phi): Add new func
16137         impl to match binary phi for true and false arg.
16139 2024-09-19  Haochen Jiang  <haochen.jiang@intel.com>
16141         * doc/invoke.texi: Add corei7, corei7-avx, core-avx-i,
16142         core-avx2, atom, slm, gracemont and emerarldrapids. Reorder
16143         the -march documentation by splitting them into date-to-now
16144         products, P-core and E-core. Refine the product names in
16145         documentation.
16147 2024-09-18  John David Anglin  <danglin@gcc.gnu.org>
16149         * config/pa/pa.h (GENERAL_REGNO_P): Define.
16150         * config/pa/pa.md: Add SImode and SFmode peephole2
16151         patterns to generate loads and stores with long
16152         displacements.
16154 2024-09-18  Jin Ma  <jinma@linux.alibaba.com>
16156         * config/riscv/riscv.md: Change "truncate" to unspec for the Zfa extension on rv32.
16158 2024-09-18  Richard Biener  <rguenther@suse.de>
16160         * params.opt (vect-force-slp): New param, default 0.
16161         * doc/invoke.texi (--param vect-force-slp): Document.
16162         * tree-vect-loop.cc (vect_analyze_loop_2): When analyzing
16163         without SLP but --param vect-force-slp is 1 fail.
16164         * tree-vect-stmts.cc (vect_analyze_stmt): Fail vectorization
16165         for non-SLP stmts when --param vect-force-slp is 1.
16167 2024-09-18  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
16169         * config/riscv/riscv.cc (riscv_rtx_costs): Fix the outer_code
16170         when calculating the cost of SET expression.
16172 2024-09-18  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
16174         * config/riscv/thead.md (*th_extu<mode>4): Fix th.extu
16175         operands exceeding range on rv32.
16177 2024-09-18  Bohan Lei  <garthlei@linux.alibaba.com>
16179         * config/riscv/vector.md: Allow zero operand for DI variants of
16180         vssubu.vx
16182 2024-09-18  Jennifer Schmitz  <jschmitz@nvidia.com>
16184         PR tree-optimization/116569
16185         * match.pd: Guard simplification to trunc_mod with check for
16186         mod optab support.
16188 2024-09-18  Georg-Johann Lay  <avr@gjlay.de>
16190         PR rtl-optimization/116326
16191         * reload1.cc (reg_eliminate_1): Initialize from
16192         RELOAD_ELIMINABLE_REGS if defined.
16193         * config/avr/avr.h (RELOAD_ELIMINABLE_REGS): Copy from ELIMINABLE_REGS.
16194         (ELIMINABLE_REGS): Don't mention sub-regnos of the frame pointer.
16195         * doc/tm.texi.in (Eliminating Frame Pointer and Arg Pointer)
16196         <RELOAD_ELIMINABLE_REGS>: Add documentation.
16197         * doc/tm.texi: Rebuild.
16199 2024-09-18  Georg-Johann Lay  <avr@gjlay.de>
16201         * doc/install.texi (Host/Target specific installation notes for GCC)
16202         [avr]: Update web links to AVR-LibC and AVR Options.
16203         Remove outdated note about Binutils.
16205 2024-09-18  Richard Biener  <rguenther@suse.de>
16207         PR tree-optimization/116585
16208         * tree-data-ref.cc (split_constant_offset_1): When either
16209         operand is subject to abnormal coalescing do no further
16210         processing.
16212 2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
16214         * tree-ssa-phiopt.cc (cond_if_else_store_replacement): Use
16215         range fors and use one vec for then/else stores instead of 2.
16217 2024-09-18  Andrew Pinski  <quic_apinski@quicinc.com>
16219         * tree-ssa-phiopt.cc (cond_if_else_store_replacement_1): Add debug dump.
16221 2024-09-18  Pan Li  <pan2.li@intel.com>
16223         * config/riscv/autovec.md (ssadd<mode>3): Add new pattern for
16224         signed integer vector SAT_ADD.
16225         * config/riscv/riscv-protos.h (expand_vec_ssadd): Add new func
16226         decl for vector ssadd expanding.
16227         * config/riscv/riscv-v.cc (expand_vec_ssadd): Add new func impl
16228         to expand vector ssadd pattern.
16230 2024-09-18  Michael Meissner  <meissner@linux.ibm.com>
16232         PR target/89213
16233         * config/rs6000/altivec.md (UNSPEC_VECTOR_SHIFT): New unspec.
16234         (VSHIFT_MODE): New mode iterator.
16235         (vshift_code): New code iterator.
16236         (vshift_attr): New code attribute.
16237         (altivec_<mode>_<vshift_attr>_const): New pattern to optimize
16238         vector long long/int shifts by a constant.
16239         (altivec_<mode>_shift_const): New helper insn to load up a
16240         constant used by the shift operation.
16241         * config/rs6000/predicates.md (vector_shift_constant): New
16242         predicate.
16244 2024-09-17  Marek Polacek  <polacek@redhat.com>
16246         PR c++/116534
16247         * fold-const.cc (operand_compare::operand_equal_p): If either
16248         field's DECL_FIELD_OFFSET is null, compare the fields with ==.
16250 2024-09-17  Jennifer Schmitz  <jschmitz@nvidia.com>
16252         * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
16253         Add folding of all-zero operands to zero vector.
16255 2024-09-16  Pengxuan Zheng  <quic_pzheng@quicinc.com>
16257         PR target/113328
16258         * config/aarch64/aarch64.cc (aarch64_simd_valid_immediate): Improve
16259         handling of some ADVSIMD vectors by using SVE's INDEX if TARGET_SVE is
16260         available.
16261         (aarch64_output_simd_mov_immediate): Likewise.
16263 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
16265         * doc/invoke.texi (AVR Options): Update AVR-LibC weblink from
16266         nongnu.org to https://github.com/avrdudes/avr-libc
16267         * doc/extend.texi (AVR Named Address Spaces): Same.
16268         (AVR Function Attributes): Same.
16269         * doc/install.texi (Cross-Compiler-Specific Options, AVR): Same.
16271 2024-09-16  Soumya AR  <soumyaa@nvidia.com>
16273         * config/aarch64/aarch64-sve.md (*post_ra_v<optab><mode>3): Split pattern
16274         to accomodate left and right shifts separately.
16275         (*post_ra_v_ashl<mode>3): Matches left shifts with additional
16276         constraint to check for shifts by 1.
16277         (*post_ra_v_<optab><mode>3): Matches right shifts.
16279 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
16281         * config/avr/avr-protos.h (avr_out_cmp_lsr, avr_maybe_cmp_lsr): New.
16282         * config/avr/avr.cc (avr_maybe_cmp_lsr, avr_out_cmp_lsr): New functions.
16283         (avr_out_compare) [GEU, LTU]: Start output at byte CTZ(xval) / 8.
16284         (avr_adjust_insn_length) [ADJUST_LEN_CMP_LSR]: Handle case.
16285         * config/avr/avr.md (adjust_len) <cmp_lsr>: New attr value.
16286         (*cmp<mode>_lsr): New define_insn_and_split.
16287         (cbranch<mode>4_insn): When splitting, run avr_maybe_cmp_lsr()
16288         which may map the operands to *cmp<mode>_lsr.
16290 2024-09-16  Andreas Schwab  <schwab@suse.de>
16292         PR target/116693
16293         * config/riscv/riscv.cc (riscv_legitimize_tls_address): Don't pass
16294         seqno to gen_tlsdesc and remove it.
16295         * config/riscv/riscv.md (@tlsdesc<mode>): Remove operand 1.  Use
16296         %= instead of %1 in template.
16298 2024-09-16  Andrew Pinski  <quic_apinski@quicinc.com>
16300         * tree-vectorizer.cc (vec_info::add_pattern_stmt): Set pattern_stmt_p.
16302 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
16304         * config/avr/avr.cc: Use rtx_code for RTX codes.
16305         Drop enum and struct tags.
16306         * config/avr/avr.md: Same.
16307         * config/avr/avr-c.cc: Same.
16308         * config/avr/avr-dimode.md: Same.
16309         * config/avr/avr-passes.cc: Same.
16310         * config/avr/avr-protos.h: Same.
16312 2024-09-16  Georg-Johann Lay  <avr@gjlay.de>
16314         * config/avr/avr.cc (avr_out_compare): Don't mix ADIW with SBCI / CPC.
16316 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
16318         PR tree-optimization/116699
16319         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Skip over nop/predicates
16320         for seeing the assignment is the last statement.
16322 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
16324         * tree-vect-loop.cc (optimize_mask_stores): Call release_defs
16325         after the call to gsi_remove with last argument of true.
16327 2024-09-15  Andrew Pinski  <quic_apinski@quicinc.com>
16329         * bitmap.h (class auto_bitmap): Mark copy/move constructor/operator=
16330         as deleted.
16332 2024-09-14  Georg-Johann Lay  <avr@gjlay.de>
16334         * config/avr/avr.md (UNSPEC_COPYSIGN): Remove define_enum.
16335         (copysignsf3): Use copysign instead of UNSPEC_COPYSIGN.
16336         Allow const_double for operand 2.
16338 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
16340         * config/avr/avr.cc (avr_2word_insn_p): Return true for
16341         transparent calls: When insn attribute "type" is "xcall"
16342         or when "adjust_len" is "call".
16344 2024-09-13  Andrew Pinski  <quic_apinski@quicinc.com>
16346         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Instead
16347         of just ignorning a NOP/PREDICT, skip over them before checking
16348         the heuristics.
16350 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
16352         * config/avr/avr.cc: Use functions like avr_byte,
16353         avr_word, avr_[u]int8/16 if convenient.
16354         (avr_uint16): New function.
16356 2024-09-13  Tobias Burnus  <tburnus@baylibre.com>
16358         PR fortran/116661
16359         * omp-api.h (omp_get_fr_id_from_name, omp_get_name_from_fr_id): New
16360         prototypes.
16361         * omp-general.cc (omp_get_fr_id_from_name, omp_get_name_from_fr_id):
16362         New.
16364 2024-09-13  Tobias Burnus  <tburnus@baylibre.com>
16366         * config/gcn/mkoffload.cc (read_file): Remove.
16367         (process_asm): Do not add '#include' to generated C file.
16368         (process_obj): Generate C file that uses #embed and use
16369         __SIZE_TYPE__ and __UINTPTR_TYPE__ instead the #include-defined
16370         size_t and uintptr.
16371         (main): Update call to it; remove no longer needed file I/O.
16373 2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
16375         PR target/115860
16376         * config/s390/s390.cc (print_operand): Remove operand specifier
16377         %V.
16378         * config/s390/s390.md (UNSPEC_TF_TO_FPRX2): New.
16379         * config/s390/vector.md (*tf_to_fprx2_0): Remove.
16380         (*tf_to_fprx2_1): Remove.
16381         (tf_to_fprx2): New.
16383 2024-09-13  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
16385         * config/s390/s390.cc (s390_mem_constraint): Check displacement
16386         for AQ and AR constraints.
16388 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
16390         * config/avr/avr.cc (avr_chunk, avr_byte, avr_word)
16391         (avr_int8, avr_uint8, avr_int16): New helper functions.
16392         (avr_out_compare): Overhaul.
16394 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
16396         * config/avr/avr.cc (avr_out_compare): Tweak 32-bit EQ and NE
16397         comparisons that can use SBIW for the hi16 part.
16399 2024-09-13  Georg-Johann Lay  <avr@gjlay.de>
16401         * config/avr/avr.cc (avr_init_machine_status): Move code to...
16402         (avr_option_override) <init_machine_status>: ...lambda.
16403         (avr_insn_has_reg_unused_note_p): Move up.
16404         (_reg_unused_after, reg_unused_after): Move up.
16405         (output_reload_in_const): Move up.
16406         (avr_c_mode_for_floating_type): Move down.
16408 2024-09-13  Pan Li  <pan2.li@intel.com>
16410         * match.pd: Remove the types_match check for signed SAT_ADD
16411         case 1.
16413 2024-09-12  Alexandre Oliva  <oliva@adacore.com>
16414             Olivier Hainque  <hainque@adacore.com>
16416         * doc/sourcebuild.texi (hostedlib): New effective target.
16418 2024-09-12  Uros Bizjak  <ubizjak@gmail.com>
16420         PR target/112600
16421         * config/i386/mmx.md (<sat_plusminus:insn><mode>3): Rename
16422         from *<sat_plusminus:insn><mode>3.
16424 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
16426         * doc/cpp.texi (Binary Resource Inclusion): Document gnu::base64
16427         parameter.
16429 2024-09-12  Richard Earnshaw  <rearnsha@arm.com>
16431         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Allow -mcpu and -march
16432         to be unset.
16433         (ARCH_CPU_CLEANUP_SPECS): Likewise
16434         (DRIVER_SELF_SPECS): Add ARCH_CPU_CLEANUP_SPECS
16435         * doc/invoke.texi (arm: -mcpu= and -march=): Document use of 'unset'.
16437 2024-09-12  Uros Bizjak  <ubizjak@gmail.com>
16439         * config/i386/i386.md (*insvti_lowpart_1): Use "o" constraint
16440         instead of "m" for double-word mode memory operands.
16442 2024-09-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
16444         * config/s390/s390-protos.h (s390_gen_lowpart_subreg): Remove.
16445         * config/s390/s390.cc (s390_gen_lowpart_subreg): Remove.
16446         (s390_expand_insv): Use adjust_address() and emit a
16447         strict_low_part only in case of a natural subreg.
16448         * config/s390/s390.md: Use gen_lowpart() instead of
16449         s390_gen_lowpart_subreg().
16451 2024-09-12  Richard Biener  <rguenther@suse.de>
16453         * tree-vect-slp.cc (vect_slp_analyze_operations): When
16454         doing loop analysis fail after the first failed SLP
16455         instance.  Only remove instances when doing BB vectorization.
16456         * tree-vect-loop.cc (vect_analyze_loop_2): Check whether
16457         vect_slp_analyze_operations failed instead of checking
16458         the number of SLP instances remaining.
16460 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
16462         * doc/cpp.texi (Binary Resource Inclusion): Document gnu::offset
16463         #embed parameter.
16465 2024-09-12  Jakub Jelinek  <jakub@redhat.com>
16467         PR c/105863
16468         * doc/cppdiropts.texi (--embed-dir=): Document.
16469         * doc/cpp.texi (Binary Resource Inclusion): New chapter.
16470         (__has_embed): Document.
16471         * doc/invoke.texi (Directory Options): Mention --embed-dir=.
16472         * gcc.cc (cpp_unique_options): Add %{-embed*}.
16473         * genmatch.cc (main): Adjust cpp_set_include_chains caller.
16474         * incpath.h (enum incpath_kind): Add INC_EMBED.
16475         * incpath.cc (merge_include_chains): Handle INC_EMBED.
16476         (register_include_chains): Adjust cpp_set_include_chains caller.
16478 2024-09-12  Richard Biener  <rguenther@suse.de>
16480         * tree-vect-slp.cc (vect_build_slp_tree_2): On reassociation
16481         chain length mismatch do not fail discovery of the node
16482         but try without re-associating to compute a better matches[].
16483         Provide a reassociation failure hint in the dump.
16484         (vect_slp_analyze_node_operations): Avoid stray failure
16485         dumping.
16486         (vectorizable_slp_permutation_1): Dump the address of the
16487         SLP node representing the permutation.
16489 2024-09-12  Levy Hsu  <admin@levyhsu.com>
16491         * config/i386/i386.cc (ix86_get_mask_mode):
16492         Enable BFmode for targetm.vectorize.get_mask_mode with AVX10.2.
16493         * config/i386/mmx.md (vec_cmp<mode>qi):
16494         Implement vec_cmpv2bfqi and vec_cmpv4bfqi.
16496 2024-09-12  Bohan Lei  <garthlei@linux.alibaba.com>
16498         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
16499         Delete vsetvl insn when `prev_info` is compatible
16501 2024-09-12  garthlei  <garthlei@linux.alibaba.com>
16503         * config/riscv/riscv-vsetvl.cc: Use `dest_vl` for dest VL operand
16505 2024-09-11  Martin Jambor  <mjambor@suse.cz>
16507         * ipa-cp.cc (propagate_vr_across_jump_function): Use
16508         ipa_vr_supported_type_p instead of explicit check for integral and
16509         pointer types.
16511 2024-09-11  Martin Jambor  <mjambor@suse.cz>
16513         * ipa-cp.h (ipa_supports_p): Rename to ipa_vr_supported_type_p.
16514         * ipa-cp.cc (ipa_vr_operation_and_type_effects): Adjust called
16515         function name.
16516         (propagate_vr_across_jump_function): Likewise.
16517         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Likewise.
16518         (ipcp_get_parm_bits): Likewise.
16520 2024-09-11  Richard Earnshaw  <rearnsha@arm.com>
16522         PR target/116597
16523         * config/arm/arm.cc (arm_function_ok_for_sibcall): Use the list of
16524         actuals for the call, not the list of formals.
16526 2024-09-11  Richard Biener  <rguenther@suse.de>
16528         PR tree-optimization/116674
16529         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Support
16530         re-analysis.
16532 2024-09-11  Alex Coplan  <alex.coplan@arm.com>
16534         PR libstdc++/116140
16535         * lto-streamer-in.cc (input_struct_function_base): Stream in
16536         fn->has_unroll.
16537         * lto-streamer-out.cc (output_struct_function_base): Stream out
16538         fn->has_unroll.
16540 2024-09-11  Tobias Burnus  <tburnus@baylibre.com>
16542         * omp-general.cc (omp_runtime_api_procname): Add
16543         omp_get_interop_{int,name,ptr,rc_desc,str,type_desc}
16544         and omp_get_num_interop_properties.
16546 2024-09-11  Pan Li  <pan2.li@intel.com>
16548         * match.pd: Add case 2 for the signed .SAT_ADD consumed by
16549         vect pattern.
16550         * tree-vect-patterns.cc (gimple_signed_integer_sat_add): Add new
16551         matching func decl for signed .SAT_ADD.
16552         (vect_recog_sat_add_pattern): Add signed .SAT_ADD pattern match.
16554 2024-09-11  liuhongt  <hongtao.liu@intel.com>
16556         * config/i386/x86-tune.def (X86_TUNE_FUSE_MOV_AND_ALU): Enable
16557         for GNR and GNR-D.
16559 2024-09-10  Prathamesh Kulkarni  <prathameshk@nvidia.com>
16561         PR target/96265
16562         * common.opt (foffload-abi-host-opts): New option.
16563         * config/aarch64/aarch64.cc (aarch64_offload_options): Pass
16564         -foffload-abi-host-opts.
16565         * config/i386/i386-options.cc (ix86_offload_options): Likewise.
16566         * config/rs6000/rs6000.cc (rs6000_offload_options): Likewise.
16567         * config/nvptx/mkoffload.cc (offload_abi_host_opts): Define.
16568         (compile_native): Append offload_abi_host_opts to argv_obstack.
16569         (main): Handle option -foffload-abi-host-opts.
16570         * config/gcn/mkoffload.cc (offload_abi_host_opts): Define.
16571         (compile_native): Append offload_abi_host_opts to argv_obstack.
16572         (main): Handle option -foffload-abi-host-opts.
16573         * lto-wrapper.cc (merge_and_complain): Handle
16574         -foffload-abi-host-opts.
16575         (append_compiler_options): Likewise.
16576         * opts.cc (common_handle_option): Likewise.
16578 2024-09-10  Richard Biener  <rguenther@suse.de>
16580         PR tree-optimization/116658
16581         * tree-vect-slp.cc (vect_is_slp_load_node): Make sure
16582         node isn't a permute.
16584 2024-09-10  Pan Li  <pan2.li@intel.com>
16586         * match.pd: Add the form 2 of signed .SAT_ADD matching.
16588 2024-09-10  Andrew Pinski  <quic_apinski@quicinc.com>
16590         * tree-ssa-phiopt.cc (execute_over_cond_phis): New template function,
16591         moved the common parts from pass_phiopt::execute/pass_cselim::execute.
16592         (pass_phiopt::execute): Move the functon specific parts of the loop
16593         into an lamdba.
16594         (pass_cselim::execute): Likewise.
16596 2024-09-10  Andrew Pinski  <quic_apinski@quicinc.com>
16598         PR tree-optimization/116643
16599         * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): s/PHI_RESULT/gimple_phi_result/.
16600         (factor_out_conditional_operation): Likewise.
16601         (minmax_replacement): Likewise.
16602         (spaceship_replacement): Likewise.
16603         (cond_store_replacement): Likewise.
16604         (cond_if_else_store_replacement_1): Likewise.
16606 2024-09-10  liuhongt  <hongtao.liu@intel.com>
16608         * config/i386/sse.md (*avx2_pcmp<mode>3_1): Don't force_reg
16609         operands[3] when it's not const0_rtx.
16611 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
16613         * ipa-pure-const.cc: Replace include of "opts.h" with
16614         "opts-diagnostic.h".
16615         (suggest_attribute): Convert param from int to
16616         diagnostic_option_id.
16617         * lto-wrapper.cc (class lto_diagnostic_option_manager): Use
16618         diagnostic_option_id rather than "int".
16619         * opts-common.cc
16620         (compiler_diagnostic_option_manager::option_enabled_p): Likewise.
16621         * opts-diagnostic.h (class gcc_diagnostic_option_manager):
16622         Likewise.
16623         (class compiler_diagnostic_option_manager): Likewise.
16624         * opts.cc (compiler_diagnostic_option_manager::make_option_name):
16625         Likewise.
16626         (gcc_diagnostic_option_manager::make_option_url): Likewise.
16627         * substring-locations.cc
16628         (format_string_diagnostic_t::emit_warning_n_va): Likewise.
16629         (format_string_diagnostic_t::emit_warning_va): Likewise.
16630         (format_string_diagnostic_t::emit_warning): Likewise.
16631         (format_string_diagnostic_t::emit_warning_n): Likewise.
16632         * substring-locations.h
16633         (format_string_diagnostic_t::emit_warning_va): Likewise.
16634         (format_string_diagnostic_t::emit_warning_n_va): Likewise.
16635         (format_string_diagnostic_t::emit_warning): Likewise.
16636         (format_string_diagnostic_t::emit_warning_n): Likewise.
16638 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
16640         * diagnostic-core.h (struct diagnostic_option_id): New.
16641         (warning): Use it rather than "int" for param.
16642         (warning_n): Likewise.
16643         (warning_at): Likewise.
16644         (warning_meta): Likewise.
16645         (pedwarn): Likewise.
16646         (permerror_opt): Likewise.
16647         (emit_diagnostic): Likewise.
16648         (emit_diagnostic_valist): Likewise.
16649         (emit_diagnostic_valist_meta): Likewise.
16650         * diagnostic-format-json.cc
16651         (json_output_format::on_report_diagnostic): Update for renaming of
16652         diagnostic_info field.
16653         * diagnostic-format-sarif.cc (sarif_builder::make_result_object):
16654         Likewise.
16655         (make_reporting_descriptor_object_for_warning): Likewise.
16656         * diagnostic-format-text.cc (print_option_information): Likewise.
16657         * diagnostic-global-context.cc (emit_diagnostic): Use
16658         "diagnostic_option_id option_id" rather than "int opt".
16659         (emit_diagnostic_valist): Likewise.
16660         (emit_diagnostic_valist_meta): Likewise.
16661         (warning): Likewise.
16662         (warning_at): Likewise.
16663         (warning_meta): Likewise.
16664         (warning_n): Likewise.
16665         (pedwarn): Likewise.
16666         (permerror_opt): Likewise.
16667         * diagnostic.cc (diagnostic_set_info_translated): Update for
16668         renaming of diagnostic_info field.
16669         (diagnostic_option_classifier::classify_diagnostic): Use
16670         "diagnostic_option_id option_id" rather than "int opt".
16671         (update_effective_level_from_pragmas): Update for renaming of
16672         diagnostic_info field.
16673         (diagnostic_context::diagnostic_enabled): Likewise.
16674         (diagnostic_context::warning_enabled_at): Use
16675         "diagnostic_option_id option_id" rather than "int opt".
16676         (diagnostic_context::diagnostic_impl): Likewise.
16677         (diagnostic_context::diagnostic_n_impl): Likewise.
16678         * diagnostic.h (diagnostic_info::diagnostic_info): Update for...
16679         (diagnostic_info::option_index): Rename...
16680         (diagnostic_info::option_id): ...to this.
16681         (class diagnostic_option_manager): Use
16682         "diagnostic_option_id option_id" rather than "int opt" for vfuncs.
16683         (diagnostic_option_classifier): Likewise for member funcs.
16684         (diagnostic_classification_change_t::option): Add comment.
16685         (diagnostic_context::warning_enabled_at): Use
16686         "diagnostic_option_id option_id" rather than "int option_index".
16687         (diagnostic_context::option_unspecified_p): Likewise.
16688         (diagnostic_context::classify_diagnostic): Likewise.
16689         (diagnostic_context::option_enabled_p): Likewise.
16690         (diagnostic_context::make_option_name): Likewise.
16691         (diagnostic_context::make_option_url): Likewise.
16692         (diagnostic_context::diagnostic_impl): Likewise.
16693         (diagnostic_context::diagnostic_n_impl): Likewise.
16694         (diagnostic_override_option_index): Rename...
16695         (diagnostic_set_option_id): ...to this, and update for
16696         diagnostic_info field renaming.
16697         (diagnostic_classify_diagnostic): Use "diagnostic_option_id"
16698         rather than "int".
16699         (warning_enabled_at): Likewise.
16700         (option_unspecified_p): Likewise.
16702 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
16704         * diagnostic.cc (diagnostic_context::initialize): Replace
16705         m_options_callbacks with m_option_mgr.
16706         (diagnostic_context::set_option_hooks): Replace with...
16707         (diagnostic_context::set_option_manager): ...this.
16708         * diagnostic.h (diagnostic_option_enabled_cb): Delete.
16709         (diagnostic_make_option_name_cb): Delete.
16710         (diagnostic_make_option_url_cb): Delete.
16711         (class diagnostic_option_manager): New.
16712         (diagnostic_manager::option_enabled_p): Convert from using
16713         m_option_callbacks to m_option_mgr.
16714         (diagnostic_manager::make_option_name): Likewise.
16715         (diagnostic_manager::make_option_url): Likewise.
16716         (diagnostic_manager::set_option_hooks): Replace with...
16717         (diagnostic_manager::set_option_manager): ...this.
16718         (diagnostic_manager::get_lang_mask): Update for field changes.
16719         (diagnostic_manager::m_option_callbacks): Replace with...
16720         (diagnostic_manager::m_option_mgr): ...this and...
16721         (diagnostic_manager::m_lang_mask): ...this.
16722         * lto-wrapper.cc (class lto_diagnostic_option_manager): New.
16723         (main): Port from option hooks to diagnostic_option_manager.
16724         * opts-common.cc: Include "opts-diagnostic.h".
16725         (compiler_diagnostic_option_manager::option_enabled_p): New.
16726         * opts-diagnostic.h (option_name): Drop decl.
16727         (get_option_url): Drop decl.
16728         (class gcc_diagnostic_option_manager): New.
16729         (class compiler_diagnostic_option_manager): New.
16730         * opts.cc (option_name): Convert to...
16731         (compiler_diagnostic_option_manager::make_option_name): ...this.
16732         (get_option_url): Convert to...
16733         (gcc_diagnostic_option_manager::make_option_url): ...this.
16734         * toplev.cc (general_init): Port from option hooks to
16735         diagnostic_option_manager.
16737 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
16739         PR other/116613
16740         * attribs.cc (decls_mismatched_attributes): Rename
16741         diagnostic_context's "printer" field to "m_printer".
16742         (attr_access::array_as_string): Likewise.
16743         * diagnostic-format-json.cc
16744         (json_output_format::on_report_diagnostic): Likewise.
16745         (diagnostic_output_format_init_json): Likewise.
16746         * diagnostic-format-sarif.cc
16747         (sarif_result::on_nested_diagnostic): Likewise.
16748         (sarif_ice_notification): Likewise.
16749         (sarif_builder::on_report_diagnostic): Likewise.
16750         (sarif_builder::make_result_object): Likewise.
16751         (sarif_builder::make_location_object): Likewise.
16752         (sarif_builder::make_message_object_for_diagram): Likewise.
16753         (diagnostic_output_format_init_sarif): Likewise.
16754         * diagnostic-format-text.cc
16755         (diagnostic_text_output_format::~diagnostic_text_output_format):
16756         Likewise.
16757         (diagnostic_text_output_format::on_report_diagnostic): Likewise.
16758         (diagnostic_text_output_format::on_diagram): Likewise.
16759         (diagnostic_text_output_format::print_any_cwe): Likewise.
16760         (diagnostic_text_output_format::print_any_rules): Likewise.
16761         (diagnostic_text_output_format::print_option_information):
16762         Likewise.
16763         * diagnostic-format.h (diagnostic_output_format::get_printer):
16764         New.
16765         * diagnostic-global-context.cc (verbatim): Rename
16766         diagnostic_context's "printer" field to "m_printer".
16767         * diagnostic-path.cc (path_label::get_text): Likewise.
16768         (print_path_summary_as_text): Likewise.
16769         (diagnostic_context::print_path): Likewise.
16770         (selftest::test_empty_path): Likewise.
16771         (selftest::test_intraprocedural_path): Likewise.
16772         (selftest::test_interprocedural_path_1): Likewise.
16773         (selftest::test_interprocedural_path_2): Likewise.
16774         (selftest::test_recursion): Likewise.
16775         (selftest::test_control_flow_1): Likewise.
16776         (selftest::test_control_flow_2): Likewise.
16777         (selftest::test_control_flow_3): Likewise.
16778         (assert_cfg_edge_path_streq): Likewise.
16779         (selftest::test_control_flow_5): Likewise.
16780         (selftest::test_control_flow_6): Likewise.
16781         * diagnostic-show-locus.cc (layout::layout): Likewise.
16782         (selftest::test_layout_x_offset_display_utf8): Likewise.
16783         (selftest::test_layout_x_offset_display_tab): Likewise.
16784         (selftest::test_diagnostic_show_locus_unknown_location): Likewise.
16785         (selftest::test_one_liner_simple_caret): Likewise.
16786         (selftest::test_one_liner_no_column): Likewise.
16787         (selftest::test_one_liner_caret_and_range): Likewise.
16788         (selftest::test_one_liner_multiple_carets_and_ranges): Likewise.
16789         (selftest::test_one_liner_fixit_insert_before): Likewise.
16790         (selftest::test_one_liner_fixit_insert_after): Likewise.
16791         (selftest::test_one_liner_fixit_remove): Likewise.
16792         (selftest::test_one_liner_fixit_replace): Likewise.
16793         (selftest::test_one_liner_fixit_replace_non_equal_range):
16794         Likewise.
16795         (selftest::test_one_liner_fixit_replace_equal_secondary_range):
16796         Likewise.
16797         (selftest::test_one_liner_fixit_validation_adhoc_locations):
16798         Likewise.
16799         (selftest::test_one_liner_many_fixits_1): Likewise.
16800         (selftest::test_one_liner_many_fixits_2): Likewise.
16801         (selftest::test_one_liner_labels): Likewise.
16802         (selftest::test_one_liner_simple_caret_utf8): Likewise.
16803         (selftest::test_one_liner_caret_and_range_utf8): Likewise.
16804         (selftest::test_one_liner_multiple_carets_and_ranges_utf8):
16805         Likewise.
16806         (selftest::test_one_liner_fixit_insert_before_utf8): Likewise.
16807         (selftest::test_one_liner_fixit_insert_after_utf8): Likewise.
16808         (selftest::test_one_liner_fixit_remove_utf8): Likewise.
16809         (selftest::test_one_liner_fixit_replace_utf8): Likewise.
16810         (selftest::test_one_liner_fixit_replace_non_equal_range_utf8):
16811         Likewise.
16812         (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
16813         Likewise.
16814         (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
16815         Likewise.
16816         (selftest::test_one_liner_many_fixits_1_utf8): Likewise.
16817         (selftest::test_one_liner_many_fixits_2_utf8): Likewise.
16818         (selftest::test_one_liner_labels_utf8): Likewise.
16819         (selftest::test_one_liner_colorized_utf8): Likewise.
16820         (selftest::test_add_location_if_nearby): Likewise.
16821         (selftest::test_diagnostic_show_locus_fixit_lines): Likewise.
16822         (selftest::test_overlapped_fixit_printing): Likewise.
16823         (selftest::test_overlapped_fixit_printing_utf8): Likewise.
16824         (selftest::test_overlapped_fixit_printing_2): Likewise.
16825         (selftest::test_fixit_insert_containing_newline): Likewise.
16826         (selftest::test_fixit_insert_containing_newline_2): Likewise.
16827         (selftest::test_fixit_replace_containing_newline): Likewise.
16828         (selftest::test_fixit_deletion_affecting_newline): Likewise.
16829         (selftest::test_tab_expansion): Likewise.
16830         (selftest::test_escaping_bytes_1): Likewise.
16831         (selftest::test_escaping_bytes_2): Likewise.
16832         (selftest::test_line_numbers_multiline_range): Likewise.
16833         * diagnostic.cc (file_name_as_prefix): Likewise.
16834         (diagnostic_set_caret_max_width): Likewise.
16835         (diagnostic_context::initialize): Likewise.
16836         (diagnostic_context::color_init): Likewise.
16837         (diagnostic_context::urls_init): Likewise.
16838         (diagnostic_context::finish): Likewise.
16839         (diagnostic_context::get_location_text): Likewise.
16840         (diagnostic_build_prefix): Likewise.
16841         (diagnostic_context::report_current_module): Likewise.
16842         (default_diagnostic_starter): Likewise.
16843         (default_diagnostic_start_span_fn): Likewise.
16844         (default_diagnostic_finalizer): Likewise.
16845         (diagnostic_context::report_diagnostic): Likewise.
16846         (diagnostic_append_note): Likewise.
16847         (diagnostic_context::error_recursion): Likewise.
16848         (fancy_abort): Likewise.
16849         * diagnostic.h (diagnostic_context::set_show_highlight_colors):
16850         Likewise.
16851         (diagnostic_context::printer): Rename to...
16852         (diagnostic_context::m_printer): ...this.
16853         (diagnostic_format_decoder): Rename diagnostic_context's "printer"
16854         field to "m_printer".
16855         (diagnostic_prefixing_rule): Likewise.
16856         (diagnostic_ready_p): Likewise.
16857         * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel):
16858         Likewise.
16859         * langhooks.cc (lhd_print_error_function): Likewise.
16860         * lto-wrapper.cc (print_lto_docs_link): Likewise.
16861         * opts-global.cc (init_options_once): Likewise.
16862         * opts.cc (common_handle_option): Likewise.
16863         * simple-diagnostic-path.cc (simple_diagnostic_path_cc_tests):
16864         Likewise.
16865         * text-art/dump.h (dump_to_file<T>): Likewise.
16866         * toplev.cc (announce_function): Likewise.
16867         (toplev::main): Likewise.
16868         * tree-diagnostic.cc (default_tree_diagnostic_starter): Likewise.
16869         * tree.cc (escaped_string::escape): Likewise.
16870         (selftest::test_escaped_strings): Likewise.
16872 2024-09-09  David Malcolm  <dmalcolm@redhat.com>
16874         PR other/116603
16875         * diagnostic-format-sarif.cc (SARIF_SCHEMA): Update URL.
16876         (sarif_builder::maybe_make_region_object): Don't create regions
16877         with startLine <= 0.
16878         (sarif_builder::maybe_make_region_object_for_context): Likewise.
16880 2024-09-09  Uros Bizjak  <ubizjak@gmail.com>
16882         * config/i386/i386.md (*insvdi_lowpart_1): Use "o" constraint
16883         instead of "m" for double-word mode memory operands.
16884         (*add<dwi>3_doubleword_zext): Ditto.
16885         (*addv<dwi>4_doubleword_1): Use "jO" constraint instead of "jM"
16886         for double-word mode memory operands.
16888 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
16890         PR middle-end/90693
16891         * internal-fn.cc (expand_POPCOUNT): Handle the second argument
16892         being `-1` for `<= 1`.
16893         * tree-ssa-math-opts.cc (match_single_bit_test): Handle LE/GT
16894         cases.
16895         (math_opts_dom_walker::after_dom_children): Call match_single_bit_test
16896         for LE_EXPR/GT_EXPR also.
16898 2024-09-09  John David Anglin  <danglin@gcc.gnu.org>
16900         * config/pa/pa.cc (pa_legitimate_address_p): Don't
16901         canonicalize operand order of scaled index addresses.
16903 2024-09-09  Richard Biener  <rguenther@suse.de>
16905         PR tree-optimization/116514
16906         * tree-ssa-ccp.cc (bit_value_binop): Handle EXACT_DIV_EXPR
16907         like TRUNC_DIV_EXPR.  Handle exact division of a signed value
16908         by a power-of-two like a shift.  Handle unsigned division by
16909         a power-of-two like a shift.
16910         Handle unsigned TRUNC_MOD_EXPR by power-of-two, handle signed
16911         TRUNC_MOD_EXPR by power-of-two if the result is zero.
16913 2024-09-09  Richard Biener  <rguenther@suse.de>
16915         PR tree-optimization/116647
16916         * tree-vect-loop.cc (vect_is_simple_reduction): Add missing
16917         check to double reduction detection.
16919 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
16921         PR tree-optimization/116601
16922         * gimple-fold.cc (optimize_memcpy_to_memset): Move
16923         from tree-ssa-ccp.cc and rename. Also return true
16924         if the optimization happened.
16925         (gimple_fold_builtin_memory_op): Call
16926         optimize_memcpy_to_memset.
16927         (fold_stmt_1): Call optimize_memcpy_to_memset for
16928         load/store copies.
16929         * tree-ssa-ccp.cc (optimize_memcpy): Delete.
16930         (pass_fold_builtins::execute): Remove code that
16931         calls optimize_memcpy.
16933 2024-09-09  Andrew Pinski  <quic_apinski@quicinc.com>
16935         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Move the has_single_use
16936         checks much earlier. Remove redundant check for gimple_assign_cast_p.
16937         Change around the check if the integral consts fits into the new type.
16939 2024-09-09  Haochen Jiang  <haochen.jiang@intel.com>
16941         PR target/116617
16942         * doc/invoke.texi: Add meteorlake, raptorlake and lunarlake.
16944 2024-09-08  H.J. Lu  <hjl.tools@gmail.com>
16946         PR target/116621
16947         * config/i386/i386.cc (ix86_gimplify_va_arg): Don't use temp for
16948         a PARALLEL BLKmode container of an EXPR_LIST expression in a
16949         TImode register.
16951 2024-09-08  Jørgen Kvalsvik  <j@lambda.is>
16953         * gcov.cc (release_structures): Release source_lines.
16954         (slurp): New function.
16955         (output_lines): Read sources with slurp.
16957 2024-09-07  Andrew Pinski  <quic_apinski@quicinc.com>
16959         * gimple-ssa-split-paths.cc (is_feasible_trace): Fix wording
16960         on the print.
16962 2024-09-07  Andrew MacLeod  <amacleod@redhat.com>
16964         PR tree-optimization/116588
16965         * tree-vrp.cc (execute_fast_vrp): Start with all edges executable.
16967 2024-09-07  Zhao Dingyi  <dingyizhao.zdy@outlook.com>
16969         * config/riscv/xiangshan.md: Add atomic, trap, fcvt_i2f, fcvt_f2i.
16971 2024-09-07  Jin Ma  <jinma@linux.alibaba.com>
16973         PR target/116592
16974         * config/riscv/thead.cc (th_asm_output_opcode): Change '0' to
16975         "zero"
16977 2024-09-06  Carl Love  <cel@linux.ibm.com>
16979         * config/rs6000/rs6000-overload.def (vec_test_lsbb_all_ones,
16980         vec_test_lsbb_all_zeros): Add built-in instances for vector signed
16981         char and vector bool char.
16982         * doc/extend.texi (vec_test_lsbb_all_ones,
16983         vec_test_lsbb_all_zeros): Add documentation for the
16984         existing built-ins.
16986 2024-09-06  Tamar Christina  <tamar.christina@arm.com>
16988         PR tree-optimization/116628
16989         * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Add SSA_NAME
16990         check on expression.
16992 2024-09-06  Andrew Pinski  <quic_apinski@quicinc.com>
16994         PR target/116598
16995         * config/aarch64/aarch64.cc (aarch64_lookup_shared_state_flags): Use
16996         is_attribute_namespace_p and get_attribute_name instead of manually grabbing
16997         the namespace and name of the attribute.
16999 2024-09-06  Martin Jambor  <mjambor@suse.cz>
17001         * passes.def: Move pass_ipa_cdtor_merge before pass_ipa_cp and
17002         pass_ipa_sra.
17004 2024-09-06  Martin Jambor  <mjambor@suse.cz>
17006         PR ipa/115815
17007         * cgraph.cc (cgraph_node_cannot_be_local_p_1): Also check
17008         DECL_STATIC_CONSTRUCTOR and DECL_STATIC_DESTRUCTOR.
17009         * ipa-visibility.cc (non_local_p): Likewise.
17010         (cgraph_node::local_p): Delete extraneous line of tabs.
17012 2024-09-06  Richard Biener  <rguenther@suse.de>
17014         * tree-vect-slp.cc (vect_analyze_slp): Also handle discovery
17015         for double reductions.
17017 2024-09-06  Richard Biener  <rguenther@suse.de>
17019         * tree-vect-slp.cc (vect_analyze_slp): Perform single-lane
17020         loop SLP discovery for non-grouped stores.  Move check on the root
17021         for re-doing SLP analysis with a single lane for load/store-lanes
17022         earlier and make sure we are dealing with a grouped access.
17023         * tree-vect-stmts.cc (vectorizable_store): Always set
17024         vec_num for SLP.
17026 2024-09-06  Georg-Johann Lay  <avr@gjlay.de>
17028         * config/avr/avr.h: Remove "Atmel" from header comment.
17029         * config/avr/avr.cc: Same.
17030         * config/avr/avr.md: Same.
17031         * config/avr/avr.opt: Same.
17032         * config/avr/avr-dimode.md: Same.
17033         * config/avr/avr-fixed.md: Same.
17034         * config/avr/constraints.md: Same.
17035         * config/avr/predicates.md: Same.
17036         * config/avr/avr-log.cc: Same.
17037         * config/avr/avrlibc.h: Same.
17038         * config/avr/specs.h: Same.
17039         * common/config/avr/avr-common.cc: Same.
17040         * doc/install.texi: Same.
17041         * config/avr/avr-arch.h: Adjust header comment.
17042         * config/avr/avr-c.cc: Same.
17043         * config/avr/avr-mcus.def: Same.
17044         * config/avr/avr-modes.def: Same.
17045         * config/avr/avr-passes.cc: Same.
17046         * config/avr/avr-passes.def: Same.
17047         * config/avr/avr-protos.h: Same.
17048         * config/avr/driver-avr.cc: Same.
17049         * config/avr/elf.h: Same.
17050         * config/avr/gen-avr-mmcu-specs.cc: Same.
17051         * config/avr/gen-avr-mmcu-texi.cc: Same.
17053 2024-09-06  Richard Biener  <rguenther@suse.de>
17055         PR tree-optimization/116610
17056         * tree-vect-loop.cc (vectorizable_induction): Use MINUS_EXPR
17057         to apply a mask peeling adjustment.
17059 2024-09-06  Richard Biener  <rguenther@suse.de>
17061         PR tree-optimization/116609
17062         * tree-vect-loop.cc (vectorizable_live_operation_1): Support
17063         partial vectors for single-lane SLP.
17065 2024-09-06  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
17067         * config/riscv/riscv.cc (riscv_build_integer): Detect constants
17068         were the higher half is the lower half inverted.
17070 2024-09-06  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
17072         * config/riscv/riscv.cc (riscv_build_integer): Detect new case
17073         of constants that can be improved.
17074         (riscv_move_integer): Add synthesys for concatening constants
17075         without Zbkb.
17077 2024-09-06  Pan Li  <pan2.li@intel.com>
17079         * match.pd: Add int_fits_type_p check for .SAT_SUB imm operand.
17081 2024-09-06  Pan Li  <pan2.li@intel.com>
17083         * match.pd: Add int_fits_type_p check for .SAT_SUB imm operand.
17085 2024-09-06  YunQiang Su  <syq@gcc.gnu.org>
17087         * common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi):
17088         Fix out of index problem.
17090 2024-09-06  Jason Merrill  <jason@redhat.com>
17092         PR c++/46457
17093         PR c++/81665
17094         * doc/extend.texi: Document flag_enum attribute.
17095         * doc/invoke.texi: Mention flag_enum in -Wswitch.
17097 2024-09-06  liuhongt  <hongtao.liu@intel.com>
17099         PR target/115517
17100         * config/i386/sse.md (*avx2_pcmp<mode>3_1): Change predicate
17101         of operands[1] and operands[2] from nonimmdiate_operand to
17102         nonimm_or_0_operand.
17104 2024-09-05  Jeff Law  <jlaw@ventanamicro.com>
17106         * config/riscv/riscv.cc (riscv_expand_int_scc): For rv64, use a DI
17107         temporary for the output and a promoted subreg to extract it into SI
17108         arget.
17109         (riscv_noce_conversion_profitable_p): Recognize new output from
17110         sCC expansion too.
17112 2024-09-05  Marek Polacek  <polacek@redhat.com>
17114         * doc/invoke.texi: Remove an extra char in @item sme2.
17116 2024-09-05  Prathamesh Kulkarni  <prathameshk@nvidia.com>
17118         * gimplify.cc (omp_add_variable): Check if decl size is not poly_int_tree_p.
17119         (gimplify_adjust_omp_clauses): Likewise.
17120         * omp-low.cc (scan_sharing_clauses): Likewise.
17121         (lower_omp_target): Likewise.
17123 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
17125         PR target/104957
17126         * config/nvptx/nvptx.cc (write_fn_proto_1): Revert 2022-03-22
17127         change; 'write_fn_marker' also for alias DECL.
17128         (nvptx_asm_output_def_from_decls): 'write_fn_marker' for alias
17129         DEF.
17131 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
17133         * doc/sourcebuild.texi (Effective-Target Keywords): Document
17134         'nvptx_default_ptx_isa_version_at_least_6_0',
17135         'nvptx_runtime_alias_ptx'.
17136         (Add Options): Document 'nvptx_alias_ptx'.
17138 2024-09-05  Tamar Christina  <tamar.christina@arm.com>
17140         * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Use pattern
17141         statement.
17143 2024-09-05  Tamar Christina  <tamar.christina@arm.com>
17145         * doc/invoke.texi: Remove duplicate armv9-a mention.
17147 2024-09-05  Jakub Jelinek  <jakub@redhat.com>
17149         * tree-vrp.cc (pass_vrp::execute): Start diagnostics with
17150         lowercase u rather than capital U, use semicolon instead of dot.
17152 2024-09-05  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
17154         * common/config/riscv/riscv-common.cc(riscv_select_multilib_by_abi):
17155         look up reversely as the fallback path is listed as the 1st one.
17157 2024-09-05  Richard Biener  <rguenther@suse.de>
17159         * tree-vect-slp.cc (vect_analyze_slp): Analyze SLP for live
17160         but otherwise unused defs.
17162 2024-09-05  Thomas Schwinge  <tschwinge@baylibre.com>
17164         * gen-pass-instances.awk: Handle 'PUSH_INSERT_PASSES_WITHIN'.
17165         * pass_manager.h (PUSH_INSERT_PASSES_WITHIN): Adjust.
17166         * passes.cc (PUSH_INSERT_PASSES_WITHIN): Likewise.
17168 2024-09-05  Levy Hsu  <admin@levyhsu.com>
17170         * config/i386/mmx.md (TARGET_MMX_WITH_SSE): New mode iterator VBF_32_64
17171         (fma<mode>4): define_expand for V2BF/V4BF fma<mode>4.
17172         (fnma<mode>4): define_expand for V2BF/V4BF fnma<mode>4.
17173         (fms<mode>4): define_expand for V2BF/V4BF fms<mode>4.
17174         (fnms<mode>4): define_expand for V2BF/V4BF fnms<mode>4.
17176 2024-09-05  Hu, Lin1  <lin1.hu@intel.com>
17178         * match.pd: Fix match for (bit_and (ordered @0 @1) (ne @0 @1)).
17180 2024-09-05  Levy Hsu  <admin@levyhsu.com>
17182         * config/i386/i386.cc (ix86_build_const_vector): Add V2BF/V4BF.
17183         (ix86_build_signbit_mask): Add V2BF/V4BF.
17184         * config/i386/mmx.md: Modified supported logic op to use VHBF_32_64.
17186 2024-09-05  Levy Hsu  <admin@levyhsu.com>
17188         * config/i386/i386.cc (ix86_preferred_simd_mode): Add BFmode Support.
17190 2024-09-04  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
17192         * config/riscv/riscv.cc (riscv_split_integer_cost): Adjust the
17193         cost of negative repeating constants.
17194         (riscv_split_integer): Handle negative repeating constants.
17196 2024-09-04  Tom Tromey  <tromey@adacore.com>
17198         * dwarf2out.cc (modified_type_die): Check DECL_NAMELESS.
17200 2024-09-04  Arsen Arsenović  <arsen@aarsen.me>
17202         PR c++/106973
17203         * internal-fn.def (CO_YIELD): Mark as ECF_LEAF.
17205 2024-09-04  Andrew Pinski  <quic_apinski@quicinc.com>
17207         * tree-object-size.cc (object_sizes_execute): Mark lhs for maybe dceing
17208         if doing a propagate. Call simple_dce_from_worklist.
17210 2024-09-04  Thomas Schwinge  <tschwinge@baylibre.com>
17212         * config/nvptx/gen-opt.sh: Use 'enum ptx_isa' instead of 'int'.
17213         * config/nvptx/nvptx-gen.opt: Regenerate.
17214         * config/nvptx/nvptx.opt: Use 'enum ptx_version' instead of 'int'.
17215         * config/nvptx/nvptx-opts.h (enum ptx_isa): Add 'PTX_ISA_unset'.
17216         (enum ptx_version): Add 'PTX_VERSION_unset'.
17217         * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Adjust.
17218         * config/nvptx/nvptx.cc (default_ptx_version_option)
17219         (handle_ptx_version_option, nvptx_option_override)
17220         (nvptx_file_start): Likewise.
17222 2024-09-04  Frederik Harwath  <frederik@codesourcery.com>
17223             Thomas Schwinge  <tschwinge@baylibre.com>
17225         * predict.cc (pass_profile::execute): Fix dump message.
17227 2024-09-04  Frederik Harwath  <frederik@codesourcery.com>
17229         * tree-cfg.h (gimple_debug_cfg): Change argument type from int
17230         to dump_flags_t.
17232 2024-09-04  Thomas Schwinge  <tschwinge@baylibre.com>
17234         * passes.cc: Document 'pass_postreload' vs. 'pass_late_compilation'.
17235         * passes.def: Likewise.
17237 2024-09-04  Richard Biener  <rguenther@suse.de>
17239         * tree-vect-slp.cc (vect_lower_load_permutations): Also
17240         process single-use grouped loads.
17241         Avoid lowering contiguous aligned power-of-two sized
17242         chunks, those are better handled by the vector size
17243         specific SLP code generation.
17244         * tree-vect-stmts.cc (get_group_load_store_type): Drop
17245         the unrelated requirement of a load permutation for the
17246         single-element interleaving limit.
17248 2024-09-04  Jan Hubicka  <jh@suse.cz>
17250         * config/i386/x86-tune-costs.h (znver5_cost): Update instruction
17251         costs.
17253 2024-09-04  Andrew Pinski  <quic_apinski@quicinc.com>
17255         * expr.cc (expand_expr_divmod): Add dump of the two costs for
17256         positive division.
17258 2024-09-04  Hans-Peter Nilsson  <hp@axis.com>
17260         * config/cris/cris.md (lra_szext_decomposed_indir_plus): New
17261         peephole2 pattern.
17263 2024-09-04  Pan Li  <pan2.li@intel.com>
17265         * config/riscv/riscv.cc (riscv_expand_usadd): Zero extend
17266         the second operand of usadd as the first operand does.
17267         * config/riscv/riscv.md (usadd<m>3): Allow imm operand for
17268         scalar usadd pattern.
17270 2024-09-03  Andrew Pinski  <quic_apinski@quicinc.com>
17272         PR tree-optimization/112402
17273         * gimple-ssa-split-paths.cc (poor_ifcvt_pred): New function.
17274         (is_feasible_trace): Remove old heurstics for ifcvt cases.
17275         For num_stmts <=1 for both pred check poor_ifcvt_pred on both
17276         pred.
17278 2024-09-03  Andrew Pinski  <quic_apinski@quicinc.com>
17280         * gimple-ssa-split-paths.cc (is_feasible_trace): Move
17281         check for # of statments in join earlier and add a
17282         debug print.
17284 2024-09-03  Qing Zhao  <qing.zhao@oracle.com>
17286         * doc/extend.texi: Explicitly mentions counted_by is available
17287         only in C for now.
17289 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
17291         * pretty-print-markup.h (pp_markup::context::context): Drop
17292         params "buf" and "chunk_idx", initializing m_buf from pp.
17293         (pp_markup::context::m_chunk_idx): Drop field.
17294         * pretty-print.cc (pretty_printer::format): Convert param
17295         from a text_info * to a text_info &.  Split out phase 1
17296         and phase 2 into subroutines...
17297         (format_phase_1): New, from pretty_printer::format.
17298         (format_phase_2): Likewise.
17299         * pretty-print.h (pretty_printer::format): Convert param
17300         from a text_info * to a text_info &.
17301         (pp_format): Update for above change.  Assert that text_info is
17302         non-null.
17304 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
17306         * pretty-print-format-impl.h (pp_formatted_chunks::get_prev): New
17307         accessor.
17308         * pretty-print.cc (selftest::push_pp_format): New.
17309         (ASSERT_TEXT_TOKEN): New macro.
17310         (selftest::test_pp_format_stack): New test.
17311         (selftest::pretty_print_cc_tests): New.
17313 2024-09-03  David Malcolm  <dmalcolm@redhat.com>
17315         * diagnostic.cc (diagnostic_set_caret_max_width): Prefix all
17316         output_buffer fields with "m_".
17317         * dumpfile.cc (emit_any_pending_textual_chunks): Likewise.
17318         (emit_any_pending_textual_chunks): Likewise.
17319         * gimple-pretty-print.cc (gimple_dump_bb_buff): Likewise.
17320         * json.cc (value::dump): Likewise.
17321         * pretty-print-format-impl.h (class chunk_info): Rename to...
17322         (class pp_formatted_chunks): ...this.  Add friend
17323         class output_buffer.  Update comment near end of decl to show
17324         the pp_formatted_chunks instance on the chunk_obstack.
17325         (pp_formatted_chunks::pop_from_output_buffer): Delete decl.
17326         (pp_formatted_chunks::on_begin_quote): Delete decl that should
17327         have been removed in r15-3311-ge31b6176996567.
17328         (pp_formatted_chunks::on_end_quote): Likewise.
17329         (pp_formatted_chunks::m_prev): Update for renaming.
17330         * pretty-print.cc (output_buffer::output_buffer): Prefix all
17331         fields with "m_".  Rename "cur_chunk_array" to
17332         "m_cur_formatted_chunks".
17333         (output_buffer::~output_buffer): Prefix all fields with "m_".
17334         (output_buffer::push_formatted_chunks): New.
17335         (output_buffer::pop_formatted_chunks): New.
17336         (pp_write_text_to_stream): Prefix all output_buffer fields with
17337         "m_".
17338         (pp_write_text_as_dot_label_to_stream): Likewise.
17339         (pp_write_text_as_html_like_dot_to_stream): Likewise.
17340         (chunk_info::append_formatted_chunk): Rename to...
17341         (pp_formatted_chunks::append_formatted_chunk): ...this.
17342         (chunk_info::pop_from_output_buffer): Delete.
17343         (pretty_printer::format): Update leading comment to mention
17344         pushing pp_formatted_chunks, and to reflect changes in
17345         r15-3311-ge31b6176996567.  Prefix all output_buffer fields with
17346         "m_".
17347         (pp_output_formatted_text): Update leading comment to mention
17348         popping a pp_formatted_chunks, and to reflect the changes in
17349         r15-3311-ge31b6176996567.  Prefix all output_buffer fields with
17350         "m_" and rename "cur_chunk_array" to "m_cur_formatted_chunks".
17351         Replace call to chunk_info::pop_from_output_buffer with a call to
17352         output_buffer::pop_formatted_chunks.
17353         (pp_flush): Prefix all output_buffer fields with "m_".
17354         (pp_really_flush): Likewise.
17355         (pp_clear_output_area): Likewise.
17356         (pp_append_text): Likewise.
17357         (pretty_printer::remaining_character_count_for_line): Likewise.
17358         (pp_newline): Likewise.
17359         (pp_character): Likewise.
17360         (pp_markup::context::push_back_any_text): Likewise.
17361         * pretty-print.h (class chunk_info): Rename to...
17362         (class pp_formatted_chunks): ...this.
17363         (class output_buffer): Delete unimplemented rule-of-5 members.
17364         (output_buffer::push_formatted_chunks): New decl.
17365         (output_buffer::pop_formatted_chunks): New decl.
17366         (output_buffer::formatted_obstack): Rename to...
17367         (output_buffer::m_formatted_obstack): ...this.
17368         (output_buffer::chunk_obstack): Rename to...
17369         (output_buffer::m_chunk_obstack): ...this.
17370         (output_buffer::obstack): Rename to...
17371         (output_buffer::m_obstack): ...this.
17372         (output_buffer::cur_chunk_array): Rename to...
17373         (output_buffer::m_cur_formatted_chunks): ...this.
17374         (output_buffer::stream): Rename to...
17375         (output_buffer::m_stream): ...this.
17376         (output_buffer::line_length): Rename to...
17377         (output_buffer::m_line_length): ...this.
17378         (output_buffer::digit_buffer): Rename to...
17379         (output_buffer::m_digit_buffer): ...this.
17380         (output_buffer::flush_p): Rename to...
17381         (output_buffer::m_flush_p): ...this.
17382         (output_buffer_formatted_text): Prefix all output_buffer fields
17383         with "m_".
17384         (output_buffer_append_r): Likewise.
17385         (output_buffer_last_position_in_text): Likewise.
17386         (pretty_printer::set_output_stream): Likewise.
17387         (pp_scalar): Likewise.
17388         (pp_wide_int): Likewise.
17389         * tree-pretty-print.cc (dump_generic_node): Likewise.
17390         (dump_generic_node): Likewise.
17391         (pp_double_int): Likewise.
17393 2024-09-03  Jan Hubicka  <jh@suse.cz>
17395         * config/i386/i386.cc (ix86_reassociation_width): Update for Znver5.
17396         * config/i386/x86-tune-costs.h (znver5_costs): Update reassociation
17397         widths.
17399 2024-09-03  Jeff Law  <jlaw@ventanamicro.com>
17401         * J: Drop file that should not have been committed
17403 2024-09-03  Jan Hubicka  <jh@suse.cz>
17405         * config/i386/x86-tune-sched.cc (ix86_fuse_mov_alu_p): Fix
17406         typo.
17408 2024-09-03  Richard Biener  <rguenther@suse.de>
17410         * tree-vect-slp.cc (vect_print_slp_tree): Annotate load
17411         and store-lanes nodes.
17413 2024-09-03  Richard Biener  <rguenther@suse.de>
17415         * tree-vect-stmts.cc (get_group_load_store_type): Only disable
17416         peeling for gaps by using smaller vectors when not using
17417         load-lanes.
17419 2024-09-03  Jan Hubicka  <jh@suse.cz>
17421         * config/i386/i386.h (TARGET_FUSE_MOV_AND_ALU): New tune.
17422         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Updat for znver5.
17423         (ix86_adjust_cost): Add TODO about znver5 memory latency.
17424         (ix86_fuse_mov_alu_p): New.
17425         (ix86_macro_fusion_pair_p): Use it.
17426         * config/i386/x86-tune.def (X86_TUNE_FUSE_ALU_AND_BRANCH): Add ZNVER5.
17427         (X86_TUNE_FUSE_MOV_AND_ALU): New tune;
17429 2024-09-03  Jan Hubicka  <jh@suse.cz>
17431         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Disable for
17432         ZNVER5.
17433         (X86_TUNE_USE_SCATTER_2PARTS): Disable for ZNVER5.
17434         (X86_TUNE_USE_GATHER_4PARTS): Disable for ZNVER5.
17435         (X86_TUNE_USE_SCATTER_4PARTS): Disable for ZNVER5.
17436         (X86_TUNE_USE_GATHER_8PARTS): Disable for ZNVER5.
17437         (X86_TUNE_USE_SCATTER_8PARTS): Disable for ZNVER5.
17439 2024-09-03  H.J. Lu  <hjl.tools@gmail.com>
17441         PR ipa/116410
17442         * ipa-modref.cc (analyze_parms): Always analyze function parameter
17443         for LTO.
17445 2024-09-03  Jeff Law  <jlaw@ventanamicro.com>
17447         PR target/115921
17448         * config/riscv/riscv.md (reassociate bitwise ops): Tighten test for
17449         cases we do not want reassociate.
17450         * J: New file.
17452 2024-09-03  Jan Hubicka  <jh@suse.cz>
17454         * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for
17455         znver5.
17456         (X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
17457         (X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
17459 2024-09-03  Tobias Burnus  <tburnus@baylibre.com>
17461         PR lto/116535
17462         * lto-cgraph.cc (output_offload_tables): Remove offload_ frees.
17463         * lto-streamer-out.cc (lto_output): Make call to it depend on
17464         lto_get_out_decl_state ()->output_offload_tables_p.
17465         * lto-streamer.h (struct lto_out_decl_state): Add
17466         output_offload_tables_p field.
17467         * tree-pass.h (ipa_write_optimization_summaries): Add bool argument.
17468         * passes.cc (ipa_write_summaries_1): Add bool
17469         output_offload_tables_p arg.
17470         (ipa_write_summaries): Update call.
17471         (ipa_write_optimization_summaries): Accept output_offload_tables_p.
17473 2024-09-03  Richard Biener  <rguenther@suse.de>
17475         PR tree-optimization/116575
17476         * tree-vect-slp.cc (vect_analyze_slp): Properly compute
17477         the mask argument for vect_load/store_lanes_supported.
17478         When the load is masked for now avoid rediscovery.
17480 2024-09-03  Haochen Jiang  <haochen.jiang@intel.com>
17482         * config/i386/avx512fp16intrin.h
17483         (_mm512_mask_fpclass_ph_mask): Correct mask type to __mmask32.
17484         (_mm512_fpclass_ph_mask): Ditto.
17486 2024-09-03  Richard Biener  <rguenther@suse.de>
17488         * fold-const.cc (poly_int_binop): Move assert on
17489         NUM_POLY_INT_COEFFS after INTEGER_CST processing.
17491 2024-09-03  Jakub Jelinek  <jakub@redhat.com>
17493         PR tree-optimization/116501
17494         * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
17495         In the last_ovf case, use build_zero_cst operand not just when
17496         TYPE_UNSIGNED (typeN), but also when precN >= 0.
17498 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
17500         * config/aarch64/aarch64-sve-builtins-base.cc (svmul_impl::fold):
17501         Try constant folding.
17503 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
17505         * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
17506         Try constant folding.
17507         * config/aarch64/aarch64-sve-builtins.h: Declare
17508         gimple_folder::fold_const_binary.
17509         * config/aarch64/aarch64-sve-builtins.cc (aarch64_const_binop):
17510         New function to fold binary SVE intrinsics without overflow.
17511         (gimple_folder::fold_const_binary): New helper function for
17512         constant folding of SVE intrinsics.
17514 2024-09-03  Jennifer Schmitz  <jschmitz@nvidia.com>
17516         * fold-const.h: Declare vector_const_binop.
17517         * fold-const.cc (const_binop): Remove cases for vector constants.
17518         (vector_const_binop): New function that folds vector constants
17519         element-wise.
17520         (int_const_binop): Remove call to wide_int_binop.
17521         (poly_int_binop): Add call to wide_int_binop.
17523 2024-09-03  Richard Biener  <rguenther@suse.de>
17525         * tree-vect-slp.cc (vect_build_slp_tree_1): Handle mixing
17526         all of handled components besides ARRAY_RANGE_REF, drop
17527         handling of INDIRECT_REF.
17529 2024-09-03  Richard Biener  <rguenther@suse.de>
17531         * tree-vect-stmts.cc (vect_get_vector_types_for_stmt):
17532         Handle all internal_store_fn_p the same.  Remove special-casing
17533         for the scalar_type of IFN_MASK_STORE.
17535 2024-09-03  Levy Hsu  <admin@levyhsu.com>
17537         * config/i386/mmx.md (<code><mode>3): New define_expand for V2BF/V4BFsmaxmin
17539 2024-09-03  Levy Hsu  <admin@levyhsu.com>
17541         * config/i386/mmx.md (VBF_32_64): New mode iterator for partial vectorized V2BF/V4BF.
17542         (<insn><mode>3): New define_expand for plusminusmultdiv.
17543         (sqrt<mode>2): New define_expand for sqrt.
17545 2024-09-03  Pan Li  <pan2.li@intel.com>
17547         * config/riscv/riscv-protos.h (riscv_expand_ssadd): Add new func
17548         decl for expanding ssadd.
17549         * config/riscv/riscv.cc (riscv_gen_sign_max_cst): Add new func
17550         impl to gen the max int rtx.
17551         (riscv_expand_ssadd): Add new func impl to expand the ssadd.
17552         * config/riscv/riscv.md (ssadd<mode>3): Add new pattern for
17553         signed integer .SAT_ADD.
17555 2024-09-03  YunQiang Su  <syq@gcc.gnu.org>
17557         * config/mips/mips-msa.md: (MSA_NO_HADD): we have HADD for
17558         S8/U8/S16/U16/S32/U32 only.
17559         (reduc_smin_scal_<mode>): New define pattern.
17560         (reduc_smax_scal_<mode>): Ditto.
17561         (reduc_umin_scal_<mode>): Ditto.
17562         (reduc_umax_scal_<mode>): Ditto.
17563         (reduc_plus_scal_<mode>): Ditto.
17564         (reduc_plus_scal_v4si): Ditto.
17565         (reduc_plus_scal_v8hi): Ditto.
17566         (reduc_plus_scal_v16qi): Ditto.
17567         (reduc_<optab>_scal_<mode>): Ditto.
17568         * config/mips/mips-protos.h: New function mips_expand_msa_reduc.
17569         * config/mips/mips.cc: New function mips_expand_msa_reduc.
17570         * config/mips/mips.md: Define any_bitwise iterator.
17572 2024-09-02  Alexandre Oliva  <oliva@adacore.com>
17574         PR d/115295
17575         * doc/sourcebuild.texi (dg-additional-sources): Add linkonly.
17577 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
17579         * config/gcn/gcn-opts.h (TARGET_GCN5_PLUS): Delete.
17580         (TARGET_GLOBAL_ADDRSPACE): Delete.
17581         (TARGET_FLAT_OFFSETS): Delete.
17582         (TARGET_EXPLICIT_CARRY): Delete.
17583         (TARGET_MULTIPLY_IMMEDIATE): Delete.
17584         * config/gcn/gcn-valu.md (*mov<mode>): Rename "gcn_version" to "cdna".
17585         (*mov<mode>_4reg): Likewise.
17586         (@mov<mode>_sgprbase): Likwise.
17587         (gather<mode>_insn_1offset<exec>): Likewise.
17588         (gather<mode>_insn_1offset_ds<exec>): Likewise.
17589         (gather<mode>_insn_2offsets<exec>): Likewise.
17590         (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
17591         (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
17592         (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
17593         (gather<mode>_insn_1offset<exec>): Remove TARGET_FLAT_OFFSETS
17594         conditionals.
17595         (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
17596         (scatter<mode>_insn_1offset<exec_scatter>): Likewise.
17597         (add<mode>3<exec_clobber>): Use "_co" instead of "%^".
17598         (add<mode>3_dup<exec_clobber>): Likewise.
17599         (add<mode>3_vcc<exec_vcc>): Likewise.
17600         (add<mode>3_vcc_dup<exec_vcc>): Likewise.
17601         (addc<mode>3<exec_vcc>): Likewise.
17602         (sub<mode>3<exec_clobber>): Likewise.
17603         (sub<mode>3_vcc<exec_vcc>): Likewise.
17604         (subc<mode>3<exec_vcc>): Likewise.
17605         (*plus_carry_dpp_shr_<mode>): Likewise.
17606         (*plus_carry_in_dpp_shr_<mode>): Likewise.
17607         * config/gcn/gcn.cc (gcn_flat_address_p): Remove TARGET_FLAT_OFFSETS
17608         conditionals.
17609         (gcn_addr_space_legitimate_address_p): Likewise.
17610         (gcn_addr_space_legitimize_address): Likewise.
17611         (gcn_expand_scalar_to_vector_address): Likewise.
17612         (print_operand_address): Likewise, and TARGET_GLOBAL_ADDRSPACE also.
17613         (print_operand): Remove "%^" operand code.
17614         Remove TARGET_GLOBAL_ADDRSPACE assertion.
17615         * config/gcn/gcn.h (STACK_ADDR_SPACE): Remove GCN5 conditional.
17616         * config/gcn/gcn.md (gcn_version): Rename attribute ...
17617         (cdna): ... to this, and remove the gcn3 and gcn5 values.
17618         (enabled): Replace old "gcn_version" logic with new "cdna" logic.
17619         (*mov<mode>_insn): Rename "gcn_version" to "cdna".
17620         (*movti_insn): Likewise.
17621         (addsi3): Use "_co" instead of "%^".
17622         (addsi3_scalar_carry): Likewise.
17623         (addsi3_scalar_carry_cst): Likewise.
17624         (addcsi3_scalar): Likewise.
17625         (addcsi3_scalar_zero): Likewise.
17626         (addptrdi3): Likewise.
17627         (subsi3): Likewise.
17628         (<su>mulsi3_highpart): Remove TARGET_MULTIPLY_IMMEDIATE conditions.
17629         (<su>mulsi3_highpart_reg): Remove "gcn_version" attribute.
17630         (muldi3): Likewise.
17631         (atomic_fetch_<bare_mnemonic><mode>): Likewise.
17632         (atomic_<bare_mnemonic><mode>): Likewise.
17633         (sync_compare_and_swap<mode>_insn): Likewise.
17634         (atomic_load<mode>): Likewise.
17635         (atomic_store<mode>): Likewise.
17636         (atomic_exchange<mode>): Likewise.
17637         (<su>mulsi3_highpart_imm): Remove both TARGET_MULTIPLY_IMMEDIATE and
17638         "gcn_version".
17639         (<su>mulsidi3): Likewise.
17640         (<su>mulsidi3_imm): Likewise.
17642 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
17644         * config/gcn/gcn-opts.h (enum gcn_isa): Delete ISA_GCN3.
17645         (TARGET_GCN3): Delete.
17646         (TARGET_GCN3_PLUS): Delete.
17647         (TARGET_M0_LDS_LIMIT): Delete.
17648         * config/gcn/gcn-valu.md
17649         (gather<mode>_insn_1offset<exec>): Remove TARGET_GCN3 from conditions.
17650         (*<reduc_op>_dpp_shr_<mode>): Likewise.
17651         * config/gcn/gcn.cc (enum gcn_isa): Change default to ISA_GCN5.
17652         (gcn_expand_prologue): Remove TARGET_M0_LDS_LIMIT feature.
17653         (gcn_expand_reduc_scalar): Remove TARGET_GCN3 conditions.
17654         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Remove TARGET_GCN3.
17656 2024-09-02  Andrew Stubbs  <ams@baylibre.com>
17658         * config.gcc (amdgcn-*-*): Remove "fiji" from with_arch checks.
17659         * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Remove fiji alternative.
17660         (NO_XNACK): Likewise.
17661         (NO_SRAM_ECC): Likewise.
17662         (ASM_SPEC): Remove "%{}" around ABI_VERSION_SPEC.
17663         * config/gcn/gcn-opts.h (enum processor_type): Remove PROCESSOR_FIJI.
17664         (TARGET_FIJI): Delete.
17665         * config/gcn/gcn.cc (gcn_option_override): Remove Fiji.
17666         (gcn_omp_device_kind_arch_isa): Likewise.
17667         (output_file_start): Likewise.
17668         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Likewise.
17669         * config/gcn/gcn.opt (gpu_type): Likewise.
17670         (march, mtune): Change default to PROCESSOR_VEGA10.
17671         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX803): Delete.
17672         (copy_early_debug_info): Remove elf_flags_actual.
17673         Use ELFABIVERSION_AMDGPU_HSA_V4 unconditionally.
17674         (get_arch): Remove Fiji.
17675         (main): Remove gfx803.
17676         * config/gcn/t-omp-device
17677         (omp-device-properties-gcn): Remove fiji and gfx803.
17678         * doc/install.texi (amdgcn*-*-*): Remove fiji and special instructions.
17679         * doc/invoke.texi: Remove fiji.
17681 2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>
17683         * doc/gimple.texi (gimple_asm_basic_p): Document.
17684         (gimple_asm_set_basic): Likewise.
17685         * gimple.h (GF_ASM_INPUT): Rename to...
17686         (GF_ASM_BASIC): ...this.
17687         (gimple_asm_set_input): Rename to...
17688         (gimple_asm_set_basic): ...this.
17689         (gimple_asm_input_p): Rename to...
17690         (gimple_asm_basic_p): ...this.
17691         * cfgexpand.cc (expand_asm_stmt): Update after above renaming.
17692         * gimple.cc (gimple_asm_clobbers_memory_p): Likewise.
17693         * gimplify.cc (gimplify_asm_expr): Likewise.
17694         * ipa-icf-gimple.cc (func_checker::compare_gimple_asm): Likewise.
17695         * tree-cfg.cc (stmt_can_terminate_bb_p): Likewise.
17697 2024-09-02  Richard Sandiford  <richard.sandiford@arm.com>
17699         * doc/generic.texi (ASM_BASIC_P): Document.
17700         * tree.h (ASM_INPUT_P): Rename to...
17701         (ASM_BASIC_P): ...this.
17702         (ASM_VOLATILE_P, ASM_INLINE_P): Reindent.
17703         * gimplify.cc (gimplify_asm_expr): Update after above renaming.
17704         * tree-core.h (tree_base): Likewise.
17706 2024-09-02  Tobias Burnus  <tburnus@baylibre.com>
17708         * lto-wrapper.cc (run_gcc): Honor -save-temps for
17709         makefile name.
17711 2024-09-02  Jakub Jelinek  <jakub@redhat.com>
17713         PR middle-end/116486
17714         * gimple-range-op.cc (cfn_clz::fold_range): If lh is [0,0]
17715         and mini is -1, return [-1,-1] range rather than [prec-1,prec-1].
17717 2024-09-02  Richard Biener  <rguenther@suse.de>
17719         * tree-vectorizer.h (_slp_tree::ldst_lanes): New flag to mark
17720         load, store and permute nodes.
17721         * tree-vect-slp.cc (_slp_tree::_slp_tree): Initialize ldst_lanes.
17722         (vect_build_slp_instance): For stores iff the target prefers
17723         store-lanes discover single-lane sub-groups, do not perform
17724         interleaving lowering but mark the node with ldst_lanes.
17725         Also allow i == 0 - fatal failure - for splitting up a store group
17726         when we're not doing single-lane discovery already.
17727         (vect_lower_load_permutations): When the target supports
17728         load lanes and the loads all fit the pattern split out
17729         a single level of permutes only and mark the load and
17730         permute nodes with ldst_lanes.
17731         (vectorizable_slp_permutation_1): Handle the load-lane permute
17732         forwarding of vector defs.
17733         (vect_analyze_slp): After SLP pattern recog is finished see if
17734         there are any SLP instances that would benefit from using
17735         load/store-lanes and re-discover those with forced single lanes.
17736         * tree-vect-stmts.cc (get_group_load_store_type): Support
17737         load/store-lanes for SLP.
17738         (vectorizable_store): Support SLP code generation for store-lanes.
17739         (vectorizable_load): Support SLP code generation for load-lanes.
17740         * tree-vect-loop.cc (vect_analyze_loop_2): Do not cancel SLP
17741         when store-lanes can be used.
17743 2024-09-02  Richard Biener  <rguenther@suse.de>
17745         * tree-vect-slp.cc (vect_build_slp_tree_1): Handle NULL stmt.
17746         (vect_build_slp_tree_2): Likewise.  Release load permutation
17747         when there's a NULL in SLP_TREE_SCALAR_STMTS and assert there's
17748         no actual permutation in that case.
17749         (vllp_cmp): New function.
17750         (vect_lower_load_permutations): Likewise.
17751         (vect_analyze_slp): Call it.
17753 2024-09-02  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
17755         * config/riscv/riscv.cc (riscv_rtx_costs): Optimize the cost of the
17756         DFmode register move for RV32.
17758 2024-09-02  Jeff Law  <jlaw@ventanamicro.com>
17760         PR rtl-optimization/116544
17761         * ext-dce.cc (ext_dce_process_uses): Fix thinko in promoted subreg
17762         handling.
17764 2024-09-02  Levy Hsu  <admin@levyhsu.com>
17766         * config/i386/i386-expand.cc (ix86_use_mask_cmp_p): Add BFmode
17767         for int mask cmp.
17768         * config/i386/sse.md (vec_cmp<mode><avx512fmaskmodelower>): New
17769         vec_cmp expand for VBF modes.
17771 2024-09-02  Levy Hsu  <admin@levyhsu.com>
17773         * config/i386/sse.md: Expand VF2H to VF2HB with VBF modes.
17775 2024-09-02  Levy Hsu  <admin@levyhsu.com>
17777         * config/i386/sse.md
17778         (<code><mode>3): New define expand pattern for BF smaxmin.
17780 2024-09-02  Levy Hsu  <admin@levyhsu.com>
17782         * config/i386/sse.md: Add V8BF/V16BF/V32BF to mode iterator FMAMODEM.
17784 2024-09-02  Levy Hsu  <admin@levyhsu.com>
17786         * config/i386/sse.md (div<mode>3): New expander for BFmode div.
17787         (VF_BHSD): New mode iterator with vector BFmodes.
17788         (<insn><mode>3<mask_name><round_name>): Change mode to VF_BHSD.
17789         (mul<mode>3<mask_name><round_name>): Likewise.
17791 2024-09-02  Hu, Lin1  <lin1.hu@intel.com>
17793         * config/i386/i386-expand.cc (ix86_expand_fp_compare): Add UNSPEC to
17794         support the optimization.
17795         * config/i386/i386.cc (ix86_fp_compare_code_to_integer): Add NE/EQ.
17796         * config/i386/i386.md (*cmpx<unord><MODEF:mode>): New define_insn.
17797         (*cmpx<unord>hf): Ditto.
17798         * config/i386/predicates.md (ix86_trivial_fp_comparison_operator):
17799         Add ne/eq.
17801 2024-09-02  Hu, Lin1  <lin1.hu@intel.com>
17803         * match.pd: Optimize (and ordered non-equal) to
17804         (not (or unordered  equal))
17806 2024-09-02  Haochen Jiang  <haochen.jiang@intel.com>
17808         * config/i386/sse.md (VI1_AVX512VNNIBW): New.
17809         (VI2_AVX10_2): Ditto.
17810         (sdot_prod<mode>): Add AVX10.2
17811         to auto vectorize and combine 512 bit part.
17812         (udot_prod<mode>): Ditto.
17813         (sdot_prodv64qi): Removed.
17814         (udot_prodv64qi): Ditto.
17815         (usdot_prod<mode>): Add AVX10.2 to auto vectorize.
17816         (udot_prod<mode>): Ditto.
17818 2024-09-02  Pan Li  <pan2.li@intel.com>
17820         * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Merge
17821         the zero_extend handing from func riscv_gen_unsigned_xmode_reg.
17822         (riscv_gen_unsigned_xmode_reg): Remove.
17823         (riscv_expand_ussub): Leverage riscv_gen_zero_extend_rtx
17824         instead of riscv_gen_unsigned_xmode_reg.
17826 2024-09-01  Andrew Pinski  <quic_apinski@quicinc.com>
17828         PR tree-optimization/116554
17829         * gimple-ssa-strength-reduction.cc: Include tree-ssa-dce.h.
17830         (replace_mult_candidate): Add sdce_worklist argument, mark
17831         the rhs1/rhs2 for maybe dceing.
17832         (replace_unconditional_candidate): Add sdce_worklist argument,
17833         Update call to replace_mult_candidate.
17834         (replace_conditional_candidate): Add sdce_worklist argument,
17835         update call to replace_mult_candidate.
17836         (replace_uncond_cands_and_profitable_phis): Add sdce_worklist argument,
17837         update call to replace_conditional_candidate,
17838         replace_unconditional_candidate, and replace_uncond_cands_and_profitable_phis.
17839         (replace_one_candidate): Add sdce_worklist argument, mark
17840         the orig_rhs1/orig_rhs2 for maybe dceing.
17841         (replace_profitable_candidates): Add sdce_worklist argument,
17842         update call to replace_one_candidate and replace_profitable_candidates.
17843         (analyze_candidates_and_replace): Call simple_dce_from_worklist and
17844         update calls to replace_profitable_candidates, and
17845         replace_uncond_cands_and_profitable_phis.
17847 2024-08-31  Roger Sayle  <roger@nextmovesoftware.com>
17849         * config/i386/i386-features.cc (timode_scalar_to_vector_candidate_p):
17850         Support the first operand of AND, IOR and XOR being MEM_P, i.e. a
17851         read-modify-write insn.
17853 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
17855         * config/avr/avr-passes.cc (avr_pass_fuse_add) <clone>: Override.
17856         * config/avr/avr-passes.def (avr_pass_fuse_add): Run again
17857         after pass_cprop_hardreg.
17859 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
17861         * config/avr/avr-protos.h (avr_split_tiny_move): Rename to
17862         avr_split_fake_addressing_move.
17863         * config/avr/avr-passes.def: Same.
17864         * config/avr/avr-passes.cc: Same.
17865         (avr_pass_data_fuse_add) <tv_id>: Set to TV_MACH_DEP.
17866         * config/avr/avr.md (split-lpmx): Remove a define_split.  Such
17867         splits are performed by avr_split_fake_addressing_move.
17869 2024-08-31  John David Anglin  <danglin@gcc.gnu.org>
17871         * config/pa/pa.cc (pa_emit_move_sequence): Remove symbolic
17872         memory work arounds for TARGET_ELF32.
17873         (pa_legitimate_address_p): Likewise.  Allow symbolic
17874         operands.  Adjust comment.
17875         * config/pa/pa.md: Replace reg_or_0_or_nonsymb_mem_operand
17876         with reg_or_0_or_mem_operand predicate in various unnamed
17877         move insns.
17878         * config/pa/predicates.md (floating_point_store_memory_operand):
17879         Update comment.  Remove symbolic memory work arounds for
17880         TARGET_ELF32.
17881         (nonsymb_mem_operand): Rename to mem_operand.  Allow
17882         symbolic memory operands.
17883         (reg_or_0_or_nonsymb_mem_operand): Rename to
17884         reg_or_0_or_mem_operand.  Allow symbolic memory operands.
17886 2024-08-31  Andrew Pinski  <quic_apinski@quicinc.com>
17888         PR tree-optimization/116098
17889         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Ignore
17890         nops, labels and predicts for heuristic for conversion with a constant.
17892 2024-08-31  Jakub Jelinek  <jakub@redhat.com>
17894         PR c/116130
17895         * doc/extend.texi (unsequenced, reproducible): Document new function
17896         type attributes.
17897         * calls.cc (flags_from_decl_or_type): Handle "unsequenced noptr" and
17898         "reproducible noptr" attributes.
17900 2024-08-31  Georg-Johann Lay  <avr@gjlay.de>
17902         * config/avr/avr.cc: Follow the convention to not add a space
17903         after comma when printing instructions.
17905 2024-08-31  Alexandre Oliva  <oliva@adacore.com>
17907         * expr.cc (categorize_ctor_elements_1): Change p_complete to
17908         int, to distinguish complete initialization in presence or
17909         absence of uninitialized padding bits.
17910         (categorize_ctor_elements): Likewise.  Adjust all callers...
17911         * expr.h (categorize_ctor_elements): ... and declaration.
17912         (type_has_padding_at_level_p): New.
17913         * gimple-fold.cc (type_has_padding_at_level_p): New.
17914         * fold-const.cc (native_encode_constructor): New.
17915         (native_encode_expr): Call it.
17916         * gimplify.cc (gimplify_init_constructor): Clear small
17917         non-addressable non-volatile objects with padding or
17918         other uninitialized fields as an optimization.
17920 2024-08-30  Alex Coplan  <alex.coplan@arm.com>
17922         * gdbhooks.py (VEC_KIND_EMBED): New.
17923         (VEC_KIND_PTR): New.
17924         (get_vec_kind): New.
17925         (VecPrinter.children): Also handle vectors with vl_ptr layout.
17927 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
17929         PR driver/104707
17930         PR driver/97304
17931         * gcc.cc (is_directory): Don't not include /usr/lib and /lib
17932         for library directory pathes. Remove library argument.
17933         (add_to_obstack): Update call to is_directory.
17934         (driver_handle_option): Likewise.
17935         (spec_path): Likewise.
17937 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
17939         PR middle-end/116537
17940         * tree-core.h (enum tree_index): Remove TI_INTEGER_THREE
17941         * tree-ssa-loop-prefetch.cc (issue_prefetch_ref): Call build_int_cst
17942         instead of using integer_three_node.
17943         * tree.cc (build_common_tree_nodes): Remove initialization
17944         of integer_three_node.
17945         * tree.h (integer_three_node): Delete.
17947 2024-08-30  Andrew Pinski  <quic_apinski@quicinc.com>
17949         * builtins.cc (expand_builtin_prefetch): Rewrite expansion of the optional
17950         arguments to not expand known constants.
17952 2024-08-30  Richard Biener  <rguenther@suse.de>
17954         * tree-vect-stmts.cc (get_group_load_store_type): Check
17955         known_ne (remain, 0u) before doing constant_multiple_p.
17956         (vectorizable_load): Likewise.
17958 2024-08-30  Richard Biener  <rguenther@suse.de>
17960         * tree-vect-slp.cc (vect_build_slp_tree_2): Disable SLP
17961         reassociation for single-lane.
17963 2024-08-30  liuhongt  <hongtao.liu@intel.com>
17965         PR target/116512
17966         * config/i386/i386.cc (ix86_check_avx_upper_register): Iterate
17967         subrtx to scan for avx upper register.
17968         (ix86_check_avx_upper_stores): Inline old
17969         ix86_check_avx_upper_register.
17970         (ix86_avx_u128_mode_needed): Ditto, and replace
17971         FOR_EACH_SUBRTX with call to new
17972         ix86_check_avx_upper_register.
17974 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
17976         PR other/116419
17977         * diagnostic-event-id.h (diagnostic_event_id_t::zero_based): New.
17978         * diagnostic-format-sarif.cc: Include "pretty-print-format-impl.h"
17979         and "pretty-print-urlifier.h".
17980         (sarif_result::sarif_result): Add param "idx_within_parent".
17981         (sarif_result::get_index_within_parent): New accessor.
17982         (sarif_result::m_idx_within_parent): New field.
17983         (sarif_code_flow::sarif_code_flow): New ctor.
17984         (sarif_code_flow::get_parent): New accessor.
17985         (sarif_code_flow::get_index_within_parent): New accessor.
17986         (sarif_code_flow::m_parent): New field.
17987         (sarif_code_flow::m_thread_id_map): New field.
17988         (sarif_code_flow::m_thread_flows_arr): New field.
17989         (sarif_code_flow::m_all_tfl_objs): New field.
17990         (sarif_thread_flow::sarif_thread_flow): Add "parent" and
17991         "idx_within_parent" params.
17992         (sarif_thread_flow::get_parent): New accessor.
17993         (sarif_thread_flow::get_index_within_parent): New accessor.
17994         (sarif_thread_flow::m_parent): New field.
17995         (sarif_thread_flow::m_idx_within_parent): New field.
17996         (sarif_thread_flow_location::sarif_thread_flow_location): New
17997         ctor.
17998         (sarif_thread_flow_location::get_parent): New accessor.
17999         (sarif_thread_flow_location::get_index_within_parent): New
18000         accessor.
18001         (sarif_thread_flow_location::m_parent): New field.
18002         (sarif_thread_flow_location::m_idx_within_parent): New field.
18003         (sarif_builder::get_code_flow_for_event_ids): New accessor.
18004         (class sarif_builder::sarif_token_printer): New.
18005         (sarif_builder::m_token_printer): New member.
18006         (sarif_builder::m_next_result_idx): New field.
18007         (sarif_builder::m_current_code_flow): New field.
18008         (sarif_code_flow::get_or_append_thread_flow): New.
18009         (sarif_code_flow::get_thread_flow): New.
18010         (sarif_code_flow::add_location): New.
18011         (sarif_code_flow::get_thread_flow_loc_obj): New.
18012         (sarif_thread_flow::add_location): Create the new
18013         sarif_thread_flow_location internally, rather than passing
18014         it in as a parm so that we can keep track of its index in
18015         the array.  Return a reference to it.
18016         (sarif_builder::sarif_builder): Initialize m_token_printer,
18017         m_next_result_idx, and m_current_code_flow.
18018         (sarif_builder::on_report_diagnostic): Pass index to
18019         make_result_object.
18020         (sarif_builder::make_result_object): Add "idx_within_parent" param
18021         and pass to sarif_result ctor.  Pass code flow index to call to
18022         make_code_flow_object.
18023         (make_sarif_url_for_event): New.
18024         (sarif_builder::make_code_flow_object): Add "idx_within_parent"
18025         param and pass it to sarif_code_flow ctor.  Reimplement walking
18026         of events so that we first create threadFlow objects for each
18027         thread, then populate them with threadFlowLocation objects, so
18028         that the IDs work.  Set m_current_code_flow whilst creating the
18029         latter, so that we can create correct URIs for "%@".
18030         (sarif_builder::make_thread_flow_location_object): Replace with...
18031         (sarif_builder::populate_thread_flow_location_object): ...this.
18032         (sarif_output_format::get_builder): New accessor.
18033         (sarif_begin_embedded_link): New.
18034         (sarif_end_embedded_link): New.
18035         (sarif_builder::sarif_token_printer::print_tokens): New.
18036         (diagnostic_output_format_init_sarif): Add "fmt" param; use it to
18037         set the token printer and output format for the context.
18038         (diagnostic_output_format_init_sarif_stderr): Move responsibility
18039         for setting the context's output format to within
18040         diagnostic_output_format_init_sarif.
18041         (diagnostic_output_format_init_sarif_file): Likewise.
18042         (diagnostic_output_format_init_sarif_stream): Likewise.
18043         (test_sarif_diagnostic_context::test_sarif_diagnostic_context):
18044         Likewise.
18045         (selftest::test_make_location_object): Provide an idx for the
18046         result.
18047         (selftest::get_result_from_log): New.
18048         (selftest::get_message_from_log): New.
18049         (selftest::test_message_with_embedded_link): New test.
18050         (selftest::diagnostic_format_sarif_cc_tests): Call it.
18051         * pretty-print-format-impl.h: Include "diagnostic-event-id.h".
18052         (pp_token::kind): Add "event_id".
18053         (struct pp_token_event_id): New.
18054         (is_a_helper <pp_token_event_id *>::test): New.
18055         (is_a_helper <const pp_token_event_id *>::test): New.
18056         * pretty-print.cc (pp_token::dump): Handle kind::event_id.
18057         (pretty_printer::format): Update handling of "%@" in phase 2
18058         so that we add a pp_token_event_id, rather that the text "(N)".
18059         (default_token_printer): Handle pp_token::kind::event_id by
18060         printing the text "(N)".
18062 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
18064         * diagnostic.cc (diagnostic_context::report_diagnostic): Don't
18065         pass m_urlifier to pp_format, as urlification now happens in
18066         phase 3.
18067         * dump-context.h (class dump_pretty_printer): Update leading
18068         comment.
18069         (dump_pretty_printer::emit_items): Drop decl.
18070         (dump_pretty_printer::set_optinfo): New.
18071         (class dump_pretty_printer::stashed_item): Delete class.
18072         (class dump_pretty_printer::custom_token_printer): New class.
18073         (dump_pretty_printer::format_decoder_cb): Convert param from
18074         const char ** to pp_token_list &.
18075         (dump_pretty_printer::decode_format): Likewise.
18076         (dump_pretty_printer::stash_item): Likewise.
18077         (dump_pretty_printer::emit_any_pending_textual_chunks): Drop decl.
18078         (dump_pretty_printer::m_stashed_items): Delete field.
18079         (dump_pretty_printer::m_token_printer): New member data.
18080         * dumpfile.cc (struct wrapped_optinfo_item): New.
18081         (dump_pretty_printer::dump_pretty_printer): Update for dropping
18082         of field m_stashed_items and new field m_token_printer.
18083         (dump_pretty_printer::emit_items): Delete; we now use
18084         pp_output_formatted_text..
18085         (dump_pretty_printer::emit_any_pending_textual_chunks): Delete.
18086         (dump_pretty_printer::stash_item): Convert param from
18087         const char ** to pp_token_list &.
18088         (dump_pretty_printer::format_decoder_cb): Likewise.
18089         (dump_pretty_printer::decode_format): Likewise.
18090         (dump_pretty_printer::custom_token_printer::print_tokens): New.
18091         (dump_pretty_printer::custom_token_printer::emit_any_pending_textual_chunks):
18092         New.
18093         (dump_context::dump_printf_va): Call set_optinfo on the
18094         dump_pretty_printer.  Replace call to emit_items with a call to
18095         pp_output_formatted_text.
18096         * opt-problem.cc (opt_problem::opt_problem): Replace call to
18097         emit_items with call to set_optinfo and call to
18098         pp_output_formatted_text.
18099         * pretty-print-format-impl.h (struct pp_token): New.
18100         (struct pp_token_text): New.
18101         (is_a_helper <pp_token_text *>::test): New.
18102         (is_a_helper <const pp_token_text *>::test): New.
18103         (struct pp_token_begin_color): New.
18104         (is_a_helper <pp_token_begin_color *>::test): New.
18105         (is_a_helper <const pp_token_begin_color *>::test): New.
18106         (struct pp_token_end_color): New.
18107         (struct pp_token_begin_quote): New.
18108         (struct pp_token_end_quote): New.
18109         (struct pp_token_begin_url): New.
18110         (is_a_helper <pp_token_begin_url*>::test): New.
18111         (is_a_helper <const pp_token_begin_url*>::test): New.
18112         (struct pp_token_end_url): New.
18113         (struct pp_token_custom_data): New.
18114         (is_a_helper <pp_token_custom_data *>::test): New.
18115         (is_a_helper <const pp_token_custom_data *>::test): New.
18116         (class pp_token_list): New.
18117         (chunk_info::get_args): Drop.
18118         (chunk_info::get_quoting_info): Drop.
18119         (chunk_info::get_token_lists): New accessor.
18120         (chunk_info::append_formatted_chunk): Add obstack & param.
18121         (chunk_info::dump): New decls.
18122         (chunk_info::m_args): Convert element type from const char * to
18123         pp_token_list *.  Rewrite/update comment.
18124         (chunk_info::m_quotes): Drop field.
18125         * pretty-print-markup.h (class pp_token_list): New forward decl.
18126         (pp_markup::context::context): Drop urlifier param; add
18127         formatted_token_list param.
18128         (pp_markup::context::push_back_any_text): New decl.
18129         (pp_markup::context::m_urlifier): Drop field.
18130         (pp_markup::context::m_formatted_token_list): New field.
18131         * pretty-print-urlifier.h: Update comment.
18132         * pretty-print.cc: Define INCLUDE_MEMORY.  Include
18133         "make-unique.h".
18134         (default_token_printer): New forward decl.
18135         (obstack_append_string): Delete.
18136         (urlify_quoted_string): Delete.
18137         (pp_token::pp_token): New.
18138         (pp_token::dump): New.
18139         (allocate_object): New.
18140         (class quoting_info): Delete.
18141         (pp_token::operator new): New.
18142         (pp_token::operator delete): New.
18143         (pp_token_list::operator new): New.
18144         (pp_token_list::operator delete): New.
18145         (pp_token_list::pp_token_list): New.
18146         (pp_token_list::~pp_token_list): New.
18147         (pp_token_list::push_back_text): New.
18148         (pp_token_list::push_back): New.
18149         (pp_token_list::push_back_list): New.
18150         (pp_token_list::pop_front): New.
18151         (pp_token_list::remove_token): New.
18152         (pp_token_list::insert_after): New.
18153         (pp_token_list::replace_custom_tokens): New.
18154         (pp_token_list::merge_consecutive_text_tokens): New.
18155         (pp_token_list::apply_urlifier): New.
18156         (pp_token_list::dump): New.
18157         (chunk_info::append_formatted_chunk): Add obstack & param and use
18158         it to reimplement in terms of token lists.
18159         (chunk_info::pop_from_output_buffer): Drop m_quotes.
18160         (chunk_info::on_begin_quote): Delete.
18161         (chunk_info::dump): New.
18162         (chunk_info::on_end_quote): Delete.
18163         (push_back_any_text): New.
18164         (pretty_printer::format): Drop "urlifier" param and quoting_info
18165         logic.  Convert "formatters" and "args" from const ** to
18166         pp_token_list **.  Reimplement so that rather than just
18167         accumulating a text buffer in the chunk_obstack for each arg,
18168         instead also accumulate a pp_token_list and pp_tokens for each
18169         arg.
18170         (auto_obstack::operator obstack &): New.
18171         (quoting_info::handle_phase_3): Delete.
18172         (pp_output_formatted_text): Reimplement in terms of manipulations
18173         of pp_token_lists, rather than char buffers.  Call
18174         default_token_printer, or m_token_printer's print_tokens vfunc.
18175         (default_token_printer): New.
18176         (pretty_printer::pretty_printer): Initialize m_token_printer in
18177         both ctors.
18178         (pp_markup::context::begin_quote): Reimplement to use token list.
18179         (pp_markup::context::end_quote): Likewise.
18180         (pp_markup::context::begin_highlight_color): Likewise.
18181         (pp_markup::context::end_highlight_color): Likewise.
18182         (pp_markup::context::push_back_any_text): New.
18183         (selftest::test_merge_consecutive_text_tokens): New.
18184         (selftest::test_custom_tokens_1): New.
18185         (selftest::test_custom_tokens_2): New.
18186         (selftest::pp_printf_with_urlifier): Drop "urlifier" param from
18187         call to pp_format.
18188         (selftest::test_urlification): Add test of the example from
18189         pretty-print-format-impl.h.
18190         (selftest::pretty_print_cc_tests): Call the new selftest
18191         functions.
18192         * pretty-print.h (class quoting_info): Drop forward decl.
18193         (class pp_token_list): New forward decl.
18194         (printer_fn): Convert final param from const char ** to
18195         pp_token_list &.
18196         (class token_printer): New.
18197         (class pretty_printer): Add pp_output_formatted_text as friend.
18198         (pretty_printer::set_token_printer): New.
18199         (pretty_printer::format): Drop urlifier param as this now happens
18200         in phase 3.
18201         (pretty_printer::m_format_decoder): Update comment.
18202         (pretty_printer::m_token_printer): New field.
18203         (pp_format): Drop urlifier param.
18204         * tree-diagnostic.cc (default_tree_printer): Convert final param
18205         from const char ** to pp_token_list &.
18206         * tree-diagnostic.h: Likewise for decl.
18208 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
18210         * dumpfile.cc: Include "pretty-print-format-impl.h".
18211         * pretty-print-format-impl.h: New file, based on material from
18212         pretty-print.h.
18213         * pretty-print.cc: Include "pretty-print-format-impl.h".
18214         * pretty-print.h (chunk_info): Replace full declaration with
18215         a forward decl, moving full decl to pretty-print-format-impl.h.
18217 2024-08-29  David Malcolm  <dmalcolm@redhat.com>
18219         * config/aarch64/aarch64.cc: Define INCLUDE_MEMORY.
18220         * config/arm/arm.cc: Likewise.
18221         * config/i386/i386.cc: Likewise.
18222         * config/loongarch/loongarch.cc: Likewise.
18223         * config/riscv/riscv-vector-costs.cc: Likewise.
18224         * config/riscv/riscv.cc: Likewise.
18225         * config/rs6000/rs6000.cc: Likewise.
18226         * dump-context.h (dump_context::emit_item): Convert "item" param
18227         from * to const &.
18228         (dump_pretty_printer::stash_item): Convert "item" param from
18229         optinfo_ * to std::unique_ptr<optinfo_item>.
18230         (dump_pretty_printer::emit_item): Likewise.
18231         * dumpfile.cc: Include "make-unique.h".
18232         (make_item_for_dump_gimple_stmt): Replace uses of optinfo_item *
18233         with std::unique_ptr<optinfo_item>.
18234         (dump_context::dump_gimple_stmt): Likewise.
18235         (make_item_for_dump_gimple_expr): Likewise.
18236         (dump_context::dump_gimple_expr): Likewise.
18237         (make_item_for_dump_generic_expr): Likewise.
18238         (dump_context::dump_generic_expr): Likewise.
18239         (make_item_for_dump_symtab_node): Likewise.
18240         (dump_pretty_printer::emit_items): Likewise.
18241         (dump_pretty_printer::emit_any_pending_textual_chunks): Likewise.
18242         (dump_pretty_printer::emit_item): Likewise.
18243         (dump_pretty_printer::stash_item): Likewise.
18244         (dump_pretty_printer::decode_format): Likewise.
18245         (dump_context::dump_printf_va): Fix overlong line.
18246         (make_item_for_dump_dec): Replace uses of optinfo_item * with
18247         std::unique_ptr<optinfo_item>.
18248         (dump_context::dump_dec): Likewise.
18249         (dump_context::dump_symtab_node): Likewise.
18250         (dump_context::begin_scope): Likewise.
18251         (dump_context::emit_item): Likewise.
18252         * gimple-loop-interchange.cc: Define INCLUDE_MEMORY.
18253         * gimple-loop-jam.cc: Likewise.
18254         * gimple-loop-versioning.cc: Likewise.
18255         * graphite-dependences.cc: Likewise.
18256         * graphite-isl-ast-to-gimple.cc: Likewise.
18257         * graphite-optimize-isl.cc: Likewise.
18258         * graphite-poly.cc: Likewise.
18259         * graphite-scop-detection.cc: Likewise.
18260         * graphite-sese-to-poly.cc: Likewise.
18261         * graphite.cc: Likewise.
18262         * opt-problem.cc: Likewise.
18263         * optinfo.cc (optinfo::add_item): Convert "item" param from
18264         optinfo_ * to std::unique_ptr<optinfo_item>.
18265         (optinfo::emit_for_opt_problem): Update for change to
18266         dump_context::emit_item.
18267         * optinfo.h: Add #error to fail immediately if INCLUDE_MEMORY
18268         wasn't defined, rather than fail to find std::unique_ptr.
18269         (optinfo::add_item): Convert "item" param from optinfo_ * to
18270         std::unique_ptr<optinfo_item>.
18271         * sese.cc: Define INCLUDE_MEMORY.
18272         * targhooks.cc: Likewise.
18273         * tree-data-ref.cc: Likewise.
18274         * tree-if-conv.cc: Likewise.
18275         * tree-loop-distribution.cc: Likewise.
18276         * tree-parloops.cc: Likewise.
18277         * tree-predcom.cc: Likewise.
18278         * tree-ssa-live.cc: Likewise.
18279         * tree-ssa-loop-ivcanon.cc: Likewise.
18280         * tree-ssa-loop-ivopts.cc: Likewise.
18281         * tree-ssa-loop-prefetch.cc: Likewise.
18282         * tree-ssa-loop-unswitch.cc: Likewise.
18283         * tree-ssa-phiopt.cc: Likewise.
18284         * tree-ssa-threadbackward.cc: Likewise.
18285         * tree-ssa-threadupdate.cc: Likewise.
18286         * tree-vect-data-refs.cc: Likewise.
18287         * tree-vect-generic.cc: Likewise.
18288         * tree-vect-loop-manip.cc: Likewise.
18289         * tree-vect-loop.cc: Likewise.
18290         * tree-vect-patterns.cc: Likewise.
18291         * tree-vect-slp-patterns.cc: Likewise.
18292         * tree-vect-slp.cc: Likewise.
18293         * tree-vect-stmts.cc: Likewise.
18294         * tree-vectorizer.cc: Likewise.
18296 2024-08-29  John David Anglin  <danglin@gcc.gnu.org>
18298         * config/pa/pa.cc (load_reg): Don't generate load with
18299         unscaled index address when !TARGET_NO_SPACE_REGS.
18300         (pa_legitimate_address_p): Only allow unscaled index
18301         addresses when TARGET_NO_SPACE_REGS.
18303 2024-08-29  Andrew Pinski  <quic_apinski@quicinc.com>
18305         PR middle-end/116508
18306         * internal-fn.cc (expand_POPCOUNT): Use OPTAB_WIDEN for PLUS and
18307         XOR/AND expansion.
18309 2024-08-29  Richard Sandiford  <richard.sandiford@arm.com>
18311         PR middle-end/116516
18312         * rtlanal.cc (strip_address_mutations): Allow subregs around
18313         constant displacements.
18315 2024-08-29  Richard Sandiford  <richard.sandiford@arm.com>
18317         * dse.cc (find_shift_sequence): Allow smallest_int_mode_for_size
18318         to failure.
18319         * optabs.cc (expand_twoval_binop_libfunc): Likewise.
18321 2024-08-29  Georg-Johann Lay  <avr@gjlay.de>
18323         PR target/115830
18324         * config/avr/avr-modes.def (CCN, CCZN): New CC_MODEs.
18325         * config/avr/avr-protos.h (avr_cond_branch): New from
18326         ret_cond_branch.
18327         (avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code)
18328         (avr_out_op8_set_ZN, avr_len_op8_set_ZN): New protos.
18329         (ccn_reg_rtx, cczn_reg_rtx): New declarations.
18330         * config/avr/avr.cc (avr_cond_branch): New from ret_cond_branch.
18331         (avr_cond_string): Add bool cc_overflow_unusable argument.
18332         (avr_print_operand) ['L']: Like 'j' but overflow unusable.
18333         ['K']: Like 'k' but overflow unusable.
18334         (avr_out_plus_set_ZN): Remove handling of QImode.
18335         (avr_out_plus_set_N, avr_op8_ZN_operator, avr_cmp0_code)
18336         (avr_out_op8_set_ZN, avr_len_op8_set_ZN): New functions.
18337         (avr_adjust_insn_length) [ADJUST_LEN_ADD_SET_N]: Hande case.
18338         (avr_class_max_nregs): All MODE_CCs occupy one hard reg.
18339         (avr_hard_regno_nregs): Same.
18340         (avr_hard_regno_mode_ok) [REG_CC]: Allow all MODE_CC.
18341         (pass_manager.h, context.h, tree-pass.h): Include them.
18342         (ccn_reg_rtx, cczn_reg_rtx): New GTY variables.
18343         (avr_init_expanders): Initialize them.
18344         (avr_option_override): Run peephole2 a second time.
18345         * config/avr/avr.md (adjust_len) [add_set_N]: New attr value.
18346         (ALLCC, HI_SI): New mode iterators.
18347         (CCname): New mode attribute.
18348         (eqnegtle, cmp_signed, op8_ZN): New code iterators.
18349         (swap, SWAP): New code attributes.
18350         (branch): Handle CCNmode and CCZNmode.  Assimilate...
18351         (difficult_branch): ...this insn.
18352         (p1m1): Remove.
18353         (gen_add_for_<code>_<mode>): Adjust to CCNmode and CCZNmode. Use
18354         HISI as mode iterator.  Extend peephole2s that produce them.
18355         (*add.for.eqne.<mode>): Extend to *add.for.cc[z]n.<mode>.
18356         (*ashift.for.ccn.<mode>): New insn and peephole2 to make them.
18357         (*sub.for.cczn.<mode>, *sub-extend<mode>.for.cczn.<mode>):
18358         New insns and peephole2s to make them.
18359         (*op8.for.cczn.<code>): New insn and peephole2 to make them.
18360         * config/avr/predicates.md (const_1_to_3_operand)
18361         (abs1_abs2_operand, signed_comparison_operator)
18362         (op8_ZN_operator): New predicates.
18364 2024-08-29  Arsen Arsenović  <arsen@aarsen.me>
18366         PR c++/105104
18367         * coroutine-passes.cc (execute_early_expand_coro_ifns): Don't
18368         remove any labels.
18370 2024-08-29  Georg-Johann Lay  <avr@gjlay.de>
18372         * config.gcc (extra_objs) [target=avr]: Add avr-passes.o.
18373         * config/avr/t-avr (avr-passes.o): New rule to make it.
18374         * config/avr/avr.cc (#define INCLUDE_VECTOR): Remove.
18375         (cfganal.h, cfgrtl.h, context.h, tree-pass.h, print-rtl.h): Don't
18376         include them.
18377         (avr_strict_signed_p, avr_strict_unsigned_p, avr_2comparisons_rhs)
18378         (make_avr_pass_recompute_notes, make_avr_pass_casesi)
18379         (make_avr_pass_ifelse, make_avr_pass_pre_proep, avr_split_tiny_move)
18380         (emit_move_ccc, emit_move_ccc_after, reg_seen_between_p)
18381         (avr_maybe_adjust_cfa, avr_redundant_compare_regs)
18382         (avr_parallel_insn_from_insns, avr_is_casesi_sequence)
18383         (avr_optimize_casesi, avr_redundant_compare, make_avr_pass_fuse_add)
18384         (avr_optimize_2ifelse, avr_rest_of_handle_ifelse)
18385         (avr_casei_sequence_check_operands)
18386         Move functions...
18387         (avr_pass_data_fuse_add, avr_pass_data_ifelse)
18388         (avr_pass_data_casesi, avr_pass_data_recompute_notes)
18389         (avr_pass_data_pre_proep): Move objects...
18390         (avr_pass_fuse_add, avr_pass_pre_proep, avr_pass_recompute_notes)
18391         (avr_pass_ifelse, avr_pass_casesi, AVR_LdSt_Props): Move classes...
18392         * config/avr/avr-passes.cc: ... to this new C++ module.
18393         (struct Ranges): Move to...
18394         * config/avr/ranges.h: ...this new file.
18395         * config/avr/avr-protos.h: Adjust comments.
18397 2024-08-29  Robin Dapp  <rdapp@ventanamicro.com>
18399         PR target/116086
18400         * config/riscv/autovec.md (vec_extract<mode><v_half>): Add
18401         vector-vector extract for VLS modes.
18402         * config/riscv/riscv.cc (riscv_can_change_mode_class): Forbid
18403         VLS modes larger than one vector.
18404         * config/riscv/vector-iterators.md: Add vector-vector extract
18405         iterators.
18407 2024-08-29  Roger Sayle  <roger@nextmovesoftware.com>
18409         * config/i386/i386-features.cc (timode_immed_const_gain): New
18410         function to determine the gain/cost on a CONST_WIDE_INT.
18411         (timode_scalar_chain::compute_convert_gain): Fix whitespace.
18412         <case CONST_WIDE_INT>: Provide more accurate estimates using
18413         timode_immed_const_gain.
18414         <case AND>: Handle CONSTANT_SCALAR_INT_P (src).
18416 2024-08-29  Mark Harmstone  <mark@harmstone.com>
18418         * dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNC_ID.
18419         (write_lf_mfunc_id): New function.
18420         (add_lf_func_id): New function.
18421         (add_lf_mfunc_id): New function.
18422         (add_function): Call add_lf_func_id or add_lf_mfunc_id.
18424 2024-08-29  Mark Harmstone  <mark@harmstone.com>
18426         * dwarf2codeview.cc (enum cv_leaf_type): Add LF_MFUNCTION,
18427         LF_METHODLIST, LF_METHOD, and LF_ONEMETHOD.
18428         (struct codeview_subtype): Add lf_onemethod and lf_method to union.
18429         (struct lf_methodlist_entry): New type.
18430         (struct codeview_custom_type): Add lf_mfunc_id, lf_mfunction, and
18431         lf_methodlist to union.
18432         (struct codeview_method): New type.
18433         (struct method_hasher): New type.
18434         (get_type_num_subroutine_type): Add forward declaration.
18435         (write_lf_fieldlist): Handle LF_ONEMETHOD and LF_METHOD.
18436         (write_lf_mfunction): New function.
18437         (write_lf_methodlist): New function.
18438         (write_custom_types): Handle LF_MFUNCTION and LF_METHODLIST.
18439         (add_struct_function): New function.
18440         (get_mfunction_type): New function.
18441         (is_templated_func): New function.
18442         (get_type_num_struct): Handle DW_TAG_subprogram child DIEs.
18443         (get_type_num_subroutine_type): Add containing_class_type, this_type,
18444         and this_adjustment params, and handle creating LF_MFUNCTION types as
18445         well as LF_PROCEDURE.
18446         (get_type_num): New params for get_type_num_subroutine_type.
18447         (add_function): New params for get_type_num_subroutine_type.
18448         * dwarf2codeview.h (CV_METHOD_VANILLA, CV_METHOD_VIRTUAL): Define.
18449         (CV_METHOD_STATIC, CV_METHOD_FRIEND, CV_METHOD_INTRO): Likewise.
18450         (CV_METHOD_PUREVIRT, CV_METHOD_PUREINTRO): Likewise.
18452 2024-08-29  Mark Harmstone  <mark@harmstone.com>
18454         * dwarf2codeview.cc (enum cv_leaf_type): Add LF_STMEMBER.
18455         (struct codeview_subtype): Add lf_static_member to union.
18456         (write_lf_fieldlist): Handle LF_STMEMBER.
18457         (add_struct_member): New function.
18458         (add_struct_static_member): New function.
18459         (get_accessibility): New function.
18460         (get_type_num_struct): Split out into add_struct_member and
18461         get_accessibility, and handle static members.
18463 2024-08-29  Mark Harmstone  <mark@harmstone.com>
18465         * dwarf2codeview.cc (enum cf_leaf_type): Add LF_STRING_ID.
18466         (struct codeview_custom_type): Add lf_string_id to union.
18467         (struct string_id_hasher): New type.
18468         (string_id_htab): New global variable.
18469         (write_lf_string_id): New function.
18470         (write_custom_types): Call write_lf_string_id.
18471         (codeview_debug_finish): Free string_id_htab.
18472         (add_string_id): New function.
18473         (get_scope_string_id): New function.
18474         (add_function): Call get_scope_string_id and set scope.
18476 2024-08-29  Mark Harmstone  <mark@harmstone.com>
18478         * dwarf2codeview.cc (get_name): New function.
18479         (add_enum_forward_def): Call get_name.
18480         (get_type_num_enumeration_type): Call get_name.
18481         (add_struct_forward_def): Call get_name.
18482         (get_type_num_struct): Call get_name.
18483         (add_variable): Call get_name.
18484         (add function): Call get_name.
18485         * dwarf2out.cc (get_die_parent): Rename to dw_get_die_parent and make
18486         non-static.
18487         (generate_type_signature): Handle renamed get_die_parent.
18488         * dwarf2out.h (dw_get_die_parent): Add declaration.
18490 2024-08-28  Andrew Pinski  <quic_apinski@quicinc.com>
18492         * internal-fn.cc (expand_POPCOUNT): Dump the costs for
18493         the two choices.
18495 2024-08-28  Jonathan Wakely  <jwakely@redhat.com>
18497         * doc/contrib.texi (Contributors): Add Dhruv Matani.
18499 2024-08-28  Georg-Johann Lay  <avr@gjlay.de>
18501         * config/avr/avr.cc (INCLUDE_VECTOR): Define it.
18502         (cfganal.h): Include it.
18503         (Ranges): New struct.
18504         (avr_2comparisons_rhs, avr_redundant_compare_regs)
18505         (avr_strict_signed_p, avr_strict_unsigned_p): New static functions.
18506         (avr_redundant_compare): Overhaul: Allow more cases.
18507         (avr_optimize_2ifelse): New static function, outsourced from...
18508         (avr_rest_of_handle_ifelse): ...this method.
18510 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
18512         * config/aarch64/tuning_models/generic.h (generic_sve_vector_cost):
18513         Set gather_load_x32_init_cost and gather_load_x64_init_cost to 0.
18515 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
18517         * config/aarch64/aarch64.cc (aarch64_detect_vector_stmt_subtype)
18518         (aarch64_vector_costs::add_stmt_cost): Use the x64 cost rather
18519         than x32 cost for all VNx2 modes.
18521 2024-08-28  Richard Sandiford  <richard.sandiford@arm.com>
18523         * tree.h (ASM_INPUT_P): Fix documentation.
18525 2024-08-28  Filip Kastl  <fkastl@suse.cz>
18527         PR tree-optimization/116355
18528         * tree-switch-conversion.cc (can_log2): Add capability to
18529         suggest converting the operand to a different type.
18530         (gen_log2): Add capability to generate a conversion in case the
18531         operand is of a type incompatible with the logarithm operation.
18532         (can_pow2p): New function.
18533         (gen_pow2p): Rewrite to use __builtin_popcount instead of
18534         manually inserting an internal fn call or bitmagic.  Also add
18535         capability to generate a conversion.
18536         (switch_conversion::is_exp_index_transform_viable): Call
18537         can_pow2p.  Store types suggested by can_log2 and gen_log2.
18538         (switch_conversion::exp_index_transform): Params of gen_pow2p
18539         and gen_log2 changed so update their calls.
18540         * tree-switch-conversion.h: Add m_exp_index_transform_log2_type
18541         and m_exp_index_transform_pow2p_type to switch_conversion class
18542         to track type conversions needed to generate the "is power of 2"
18543         and logarithm operations.
18545 2024-08-28  Alex Coplan  <alex.coplan@arm.com>
18547         PR libstdc++/116140
18548         * doc/sourcebuild.texi: Document ltrans-rtl value of kind for
18549         scan-<kind>-dump*.
18551 2024-08-28  Richard Biener  <rguenther@suse.de>
18553         * tree-vect-slp.cc (debug): Add overload for slp_instance.
18555 2024-08-28  Richard Biener  <rguenther@suse.de>
18557         * tree-vect-slp.cc (vect_build_slp_store_interleaving):
18558         Fix reference counting.
18559         (vect_build_slp_instance): Release rhs_nodes.
18561 2024-08-28  Richard Biener  <rguenther@suse.de>
18563         * tree-vect-slp.cc (vect_build_slp_store_interleaving): Split
18564         out from ...
18565         (vect_build_slp_instance): Here.
18567 2024-08-28  Pan Li  <pan2.li@intel.com>
18569         * tree-vect-patterns.cc (vect_recog_sat_add_pattern): Add fold
18570         convert for const_int to the type of operand 0.
18572 2024-08-28  Kito Cheng  <kito.cheng@sifive.com>
18574         * config/riscv/vector.md (mode_idx): Add vrol and vror.
18576 2024-08-28  Pan Li  <pan2.li@intel.com>
18578         * match.pd: Add the matching for signed .SAT_ADD.
18579         * tree-ssa-math-opts.cc (gimple_signed_integer_sat_add): Add new
18580         matching func decl.
18581         (match_unsigned_saturation_add): Try signed .SAT_ADD and rename
18582         to ...
18583         (match_saturation_add): ... here.
18584         (math_opts_dom_walker::after_dom_children): Update the above renamed
18585         func from caller.
18587 2024-08-27  Andreas Schwab  <schwab@linux-m68k.org>
18589         PR target/116413
18590         * config/m68k/m68k.cc (m68k_decompose_index): Accept ASHIFT like
18591         MULT.
18592         (m68k_rtx_costs) [PLUS]: Likewise.
18593         (m68k_legitimize_address): Likewise.
18595 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18597         * config/riscv/riscv-v.cc (expand_vector_init_insert_elems): Relocate.
18598         (expand_vector_init_trailing_same_elem): Ditto.
18600 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18602         * config/riscv/riscv-v.cc (expand_const_vector): Allow non-duplicate
18603         to fall through other patterns before asserting.
18605 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18607         * config/riscv/riscv-v.h (valid_vec_immediate_p): Add new helper.
18608         * config/riscv/riscv-v.cc (valid_vec_immediate_p): Ditto.
18609         (expand_const_vector): Use new helper.
18610         * config/riscv/riscv.cc (riscv_const_insns): Handle 0.0 floating-point
18611         case.
18613 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18615         * config/riscv/riscv-v.cc (class rvv_builder): Move to riscv-v.h.
18616         * config/riscv/riscv.cc (riscv_const_insns): Emit placeholder costs for
18617         bool/stepped const vectors.
18618         * config/riscv/riscv-v.h: New file.
18620 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18622         * config/riscv/riscv-v.cc (expand_const_vector): Use tmp register if
18623         needed.
18625 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18627         * config/riscv/riscv.cc (riscv_const_insns): Relocate.
18629 2024-08-27  Patrick O'Neill  <patrick@rivosinc.com>
18631         * config/riscv/riscv-v.cc (expand_const_vector): Fix STEP size in
18632         expander.
18634 2024-08-27  Christophe Lyon  <christophe.lyon@linaro.org>
18636         * config/arm/vfp.md (movdi_vfp, thumb2_movdf_vfp): Handle MVE
18637         case.
18639 2024-08-27  H.J. Lu  <hjl.tools@gmail.com>
18641         * doc/sourcebuild.texi (check-function-bodies): Add an optional
18642         argument for matched output lines.
18644 2024-08-27  Michael Matz  <matz@suse.de>
18646         PR target/116429
18647         * lra.cc (setup_sp_offset): Start with sp_offset from
18648         before the new sequence, not from after.
18650 2024-08-27  Michael Matz  <matz@suse.de>
18652         PR target/116374
18653         * lra-eliminations.cc (init_elim_table): Use -1 as initializer.
18654         (update_reg_eliminate): Accept -1 as not-yet-used marker.
18655         (eliminate_regs_in_insn): Use previous_sp_offset only when
18656         not first_p.
18658 2024-08-27  Michael Matz  <matz@suse.de>
18660         PR target/116413
18661         * final.cc (walk_alter_subreg): Recurse on AHIFT.
18663 2024-08-27  Richard Sandiford  <richard.sandiford@arm.com>
18665         PR middle-end/116413
18666         * rtl.h (address_info): Update commentary.
18667         * rtlanal.cc (valid_base_or_index_term_p): New function, split
18668         out from...
18669         (get_base_term, get_index_term): ...here.  Handle elimination PLUSes.
18671 2024-08-27  Richard Sandiford  <richard.sandiford@arm.com>
18673         PR middle-end/116321
18674         * lra-constraints.cc (get_hard_regno): Only apply eliminations
18675         to existing hard registers.
18676         (get_reg_class): Likewise.
18678 2024-08-27  Richard Biener  <rguenther@suse.de>
18680         PR tree-optimization/116460
18681         * tree-ssa-forwprop.cc (pass_forwprop::execute): First do
18682         simple_dce_from_worklist and then remove stmts in to_remove.
18683         Track defs to be removed in to_remove_defs.
18685 2024-08-27  Pan Li  <pan2.li@intel.com>
18687         * config/riscv/riscv.cc (riscv_expand_ussub): Gen xmode for the
18688         second operand, aka y in parameter.
18689         * config/riscv/riscv.md (ussub<mode>3): Allow const_int for operand 2.
18691 2024-08-26  Hans-Peter Nilsson  <hp@axis.com>
18693         PR middle-end/115883
18694         * combine.cc (make_more_copies): Copy attributes from the original
18695         pseudo to the new copy.
18697 2024-08-26  Arsen Arsenović  <arsen@aarsen.me>
18699         * coroutine-passes.cc (execute_early_expand_coro_ifns): Emit a
18700         sorry if a statement is an alloca call.
18702 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
18704         * Makefile.in (OBJS-libcommon): Add diagnostic-format-text.o.
18705         * diagnostic-format-json.cc: Include "diagnostic-format.h".
18706         * diagnostic-format-sarif.cc: Likewise.
18707         * diagnostic-format-text.cc: New file, using material from
18708         diagnostics.cc.
18709         * diagnostic-global-context.cc: Include
18710         "diagnostic-format.h".
18711         * diagnostic-format-text.h: New file, using material from
18712         diagnostics.h.
18713         * diagnostic-format.h: New file, using material from
18714         diagnostics.h.
18715         * diagnostic.cc: Include "diagnostic-format.h" and
18716         "diagnostic-format-text.h".
18717         (diagnostic_text_output_format::~diagnostic_text_output_format):
18718         Move to diagnostic-format-text.cc.
18719         (diagnostic_text_output_format::on_report_diagnostic): Likewise.
18720         (diagnostic_text_output_format::on_diagram): Likewise.
18721         (diagnostic_text_output_format::print_any_cwe): Likewise.
18722         (diagnostic_text_output_format::print_any_rules): Likewise.
18723         (diagnostic_text_output_format::print_option_information):
18724         Likewise.
18725         * diagnostic.h (class diagnostic_output_format): Move to
18726         diagnostic-format.h.
18727         (class diagnostic_text_output_format): Move to
18728         diagnostic-format-text.h.
18729         (diagnostic_output_format_init): Move to
18730         diagnostic-format.h.
18731         (diagnostic_output_format_init_json_stderr): Likewise.
18732         (diagnostic_output_format_init_json_file): Likewise.
18733         (diagnostic_output_format_init_sarif_stderr): Likewise.
18734         (diagnostic_output_format_init_sarif_file): Likewise.
18735         (diagnostic_output_format_init_sarif_stream): Likewise.
18736         * gcc.cc: Include "diagnostic-format.h".
18737         * opts.cc: Include "diagnostic-format.h".
18739 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
18741         * diagnostic-format-json.cc
18742         (json_output_format::on_begin_diagnostic): Delete.
18743         (json_output_format::on_end_diagnostic): Rename to...
18744         (json_output_format::on_report_diagnostic): ...this and add call
18745         to pp_output_formatted_text.
18746         (diagnostic_output_format_init_json): Drop unnecessary calls
18747         to disable textual printing of CWEs, rules, and options.
18748         * diagnostic-format-sarif.cc (sarif_builder::end_diagnostic):
18749         Rename to...
18750         (sarif_builder::on_report_diagnostic): ...this and add call to
18751         pp_output_formatted_text.
18752         (sarif_output_format::on_begin_diagnostic): Delete.
18753         (sarif_output_format::on_end_diagnostic): Rename to...
18754         (sarif_output_format::on_report_diagnostic): ...this and update
18755         call to m_builder accordingly.
18756         (diagnostic_output_format_init_sarif): Drop unnecessary calls
18757         to disable textual printing of CWEs, rules, and options.
18758         * diagnostic.cc (diagnostic_context::print_any_cwe): Convert to...
18759         (diagnostic_text_output_format::print_any_cwe): ...this.
18760         (diagnostic_context::print_any_rules): Convert to...
18761         (diagnostic_text_output_format::print_any_rules): ...this.
18762         (diagnostic_context::print_option_information): Convert to...
18763         (diagnostic_text_output_format::print_option_information):
18764         ...this.
18765         (diagnostic_context::report_diagnostic): Replace calls to the
18766         output format's on_begin_diagnostic, to pp_output_formatted_text,
18767         printing CWE, rules, option info, and the call to the format's
18768         on_end_diagnostic with a call to the format's
18769         on_report_diagnostic.
18770         (diagnostic_text_output_format::on_begin_diagnostic): Delete.
18771         (diagnostic_text_output_format::on_end_diagnostic): Delete.
18772         (diagnostic_text_output_format::on_report_diagnostic): New vfunc,
18773         which effectively does the on_begin_diagnostic, the call to
18774         pp_output_formatted_text, the calls for printing CWE, rules,
18775         option info, and the call to the diagnostic_finalizer.
18776         * diagnostic.h (diagnostic_output_format::on_begin_diagnostic):
18777         Delete.
18778         (diagnostic_output_format::on_end_diagnostic): Delete.
18779         (diagnostic_output_format::on_report_diagnostic): New.
18780         (diagnostic_text_output_format::on_begin_diagnostic): Delete.
18781         (diagnostic_text_output_format::on_end_diagnostic): Delete.
18782         (diagnostic_text_output_format::on_report_diagnostic): New.
18783         (class diagnostic_context): Add friend class
18784         diagnostic_text_output_format.
18785         (diagnostic_context::get_urlifier): New accessor.
18786         (diagnostic_context::print_any_cwe): Move decl...
18787         (diagnostic_text_output_format::print_any_cwe): ...to here.
18788         (diagnostic_context::print_any_rules): Move decl...
18789         (diagnostic_text_output_format::print_any_rules): ...to here.
18790         (diagnostic_context::print_option_information): Move decl...
18791         (diagnostic_text_output_format::print_option_information): ...to
18792         here.
18794 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
18796         * diagnostic-format-sarif.cc: Add comments noting that we don't
18797         yet capture any diagnostic_metadata::rules associated with a
18798         diagnostic.
18800 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
18802         * pretty-print.cc (selftest::test_urls): Make static.
18803         (selftest::test_urls_from_braces): New.
18804         (selftest::test_null_urls): Make static.
18805         (selftest::test_urlification): Likewise.
18806         (selftest::pretty_print_cc_tests): Call test_urls_from_braces.
18808 2024-08-26  David Malcolm  <dmalcolm@redhat.com>
18810         * json.h: Fix typo in comment about missing INCLUDE_MEMORY.
18812 2024-08-26  Andi Kleen  <ak@gcc.gnu.org>
18814         * tree-if-conv.cc: Remove unneeded include from last change.
18816 2024-08-26  Bernd Edlinger  <bernd.edlinger@hotmail.de>
18818         PR debug/116470
18819         * configure.ac: Add the "nop" instruction for cpu type ft32.
18820         * configure: Regenerate.
18821         * dwarf2out.cc (dwarf2out_set_ignored_loc): Use the correct
18822         line info section.
18824 2024-08-26  Richard Biener  <rguenther@suse.de>
18826         PR tree-optimization/116460
18827         * tree-ssa-forwprop.cc (pass_forwprop::execute): Do not
18828         process blocks in unreachable natural loops.
18830 2024-08-26  Richard Biener  <rguenther@suse.de>
18832         * tree-ssa-forwprop.cc (simplify_gimple_switch_label_vec):
18833         Delay removing edges and releasing dominator info, instead
18834         record into edges_to_remove vector.
18835         (simplify_gimple_switch): Pass through vector of to remove
18836         edges.
18837         (pass_forwprop::execute): Likewise.  Remove queued edges.
18839 2024-08-26  Xi Ruoyao  <xry111@xry111.site>
18840             Richard Biener  <rguenther@suse.de>
18842         PR tree-optimization/116348
18843         * tree-vect-stmts.cc (supportable_widening_operation): Use
18844         STMT_VINFO_REDUC_DEF (x) instead of
18845         STMT_VINFO_DEF_TYPE (x) == vect_reduction_def.
18847 2024-08-26  Pan Li  <pan2.li@intel.com>
18849         * match.pd: Add int_fits_type_p check for .SAT_ADD imm operand.
18851 2024-08-26  Andrew Pinski  <quic_apinski@quicinc.com>
18853         PR middle-end/116480
18854         * internal-fn.cc (expand_POPCOUNT): Use the correct mode
18855         for store flags.
18857 2024-08-26  Haochen Jiang  <haochen.jiang@intel.com>
18859         * config/i386/avx10_2-512convertintrin.h
18860         (_mm512_cvtpbf8_ph): New.
18861         (_mm512_mask_cvtpbf8_ph): Ditto.
18862         (_mm512_maskz_cvtpbf8_ph): Ditto.
18863         * config/i386/avx10_2convertintrin.h
18864         (_mm_cvtpbf8_ph): Ditto.
18865         (_mm_mask_cvtpbf8_ph): Ditto.
18866         (_mm_maskz_cvtpbf8_ph): Ditto.
18867         (_mm256_cvtpbf8_ph): Ditto.
18868         (_mm256_mask_cvtpbf8_ph): Ditto.
18869         (_mm256_maskz_cvtpbf8_ph): Ditto.
18871 2024-08-26  Zhang, Jun  <jun.zhang@intel.com>
18872             Haochen Jiang  <haochen.jiang@intel.com>
18873             Hongtao Liu  <hongtao.liu@intel.com>
18875         * config/i386/i386-expand.cc
18876         (ix86_ssecom_setcc): Mention behavior change on flags.
18877         (ix86_expand_sse_comi): Handle AVX10.2 behavior.
18878         (ix86_expand_sse_comi_round): Ditto.
18879         (ix86_expand_round_builtin): Ditto.
18880         (ix86_expand_builtin): Change function call.
18881         * config/i386/i386.md (UNSPEC_COMX): New unspec.
18882         * config/i386/sse.md
18883         (avx10_2_v<unord>comx<ssemodesuffix><round_saeonly_name>): New.
18884         (<sse>_<unord>comi<round_saeonly_name>): Add HFmode.
18886 2024-08-26  Zhang, Jun  <jun.zhang@intel.com>
18888         * config.gcc: Add avx10_2copyintrin.h.
18889         * config/i386/i386.md (avx10_2): New isa attribute.
18890         * config/i386/immintrin.h: Include avx10_2copyintrin.h.
18891         * config/i386/sse.md
18892         (sse_movss_<mode>): Add new constraints to handle AVX10.2.
18893         (vec_set<mode>_0): Ditto.
18894         (@vec_set<mode>_0): Ditto.
18895         (vec_set<mode>_0): Ditto.
18896         (avx512fp16_mov<mode>): Ditto.
18897         (*vec_set<mode>_0_1): New split.
18898         * config/i386/avx10_2copyintrin.h: New file.
18900 2024-08-26  Mo, Zewei  <zewei.mo@intel.com>
18901             Hu, Lin1  <lin1.hu@intel.com>
18902             Haochen Jiang  <haochen.jiang@intel.com>
18904         * config.gcc: Add avx10_2-512minmaxintrin.h and
18905         avx10_2minmaxintrin.h.
18906         * config/i386/i386-builtin-types.def:
18907         Add DEF_FUNCTION_TYPE (V8BF, V8BF, V8BF, INT, V8BF, UQI),
18908         (V16BF, V16BF, V16BF, INT, V16BF, UHI),
18909         (V32BF, V32BF, V32BF, INT, V32BF, USI),
18910         (V8HF, V8HF, V8HF, INT, V8HF, UQI),
18911         (V8DF, V8DF, V8DF, INT, V8DF, UQI, INT),
18912         (V32HF, V32HF, V32HF, INT, V32HF, USI, INT),
18913         (V16HF, V16HF, V16HF, INT, V16HF, UHI, INT),
18914         (V16SF, V16SF, V16SF, INT, V16SF, UHI, INT).
18915         * config/i386/i386-builtin.def (BDESC): Add new builtins.
18916         * config/i386/i386-expand.cc
18917         (ix86_expand_args_builtin): Handle V8BF_FTYPE_V8BF_V8BF_INT_V8BF_UQI,
18918         V16BF_FTYPE_V16BF_V16BF_INT_V16BF_UHI,
18919         V32BF_FTYPE_V32BF_V32BF_INT_V32BF_USI,
18920         V8HF_FTYPE_V8HF_V8HF_INT_V8HF_UQI,
18921         (ix86_expand_round_builtin): Handle V8DF_FTYPE_V8DF_V8DF_INT_V8DF_UQI_INT,
18922         V32HF_FTYPE_V32HF_V32HF_INT_V32HF_USI_INT,
18923         V16HF_FTYPE_V16HF_V16HF_INT_V16HF_UHI_INT.
18924         V16SF_FTYPE_V16SF_V16SF_INT_V16SF_UHI_INT.
18925         * config/i386/immintrin.h: Include avx10_2-512mixmaxintrin.h and
18926         avx10_2minmaxintrin.h.
18927         * config/i386/sse.md (VFH_AVX10_2): New.
18928         (avx10_2_vminmaxnepbf16_<mode><mask_name>): New define_insn.
18929         (avx10_2_minmaxp<mode><mask_name><round_saeonly_name>): Ditto.
18930         (avx10_2_minmaxs<mode><mask_scalar_name><round_saeonly_scalar_name>): Ditto.
18931         * config/i386/avx10_2-512minmaxintrin.h: New file.
18932         * config/i386/avx10_2minmaxintrin.h: Ditto.
18934 2024-08-26  Hu, Lin1  <lin1.hu@intel.com>
18936         * config/i386/avx10_2-512satcvtintrin.h: Add new intrin.
18937         * config/i386/avx10_2satcvtintrin.h: Ditto.
18938         * config/i386/i386-builtin.def (BDESC): Add new builtins.
18939         * config/i386/sse.md (VF1_VF2_AVX10_2): New iterator.
18940         (VF2_AVX10_2): Ditto.
18941         (VI8_AVX10_2): Ditto.
18942         (sat_cvt_sign_prefix): Add new UNSPEC.
18943         (UNSPEC_SAT_CVT_DS_SIGN_ITER): New iterator.
18944         (pd2dqssuff): Ditto.
18945         (avx10_2_vcvtt<castmode>2<sat_cvt_sign_prefix>dqs<mode><mask_name><round_saeonly_name>):
18946         New.
18947         (avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
18948         Ditto.
18949         (avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
18950         Ditto.
18951         (avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
18952         Ditto.
18953         (avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
18954         Ditto.
18956 2024-08-26  Hu, Lin1  <lin1.hu@intel.com>
18958         * config.gcc: Add avx10_2satcvtintrin.h and
18959         avx10_2-512satcvtintrin.h.
18960         * config/i386/i386-builtin-types.def:
18961         Add DEF_FUNCTION_TYPE (V8HI, V8BF, V8HI, UQI),
18962         (V16HI, V16BF, V16HI, UHI), (V32HI, V32BF, V32HI, USI),
18963         (V16SI, V16SF, V16SI, UHI, INT), (V16HI, V16BF, V16HI, UHI, INT),
18964         (V32HI, V32BF, V32HI, USI, INT).
18965         * config/i386/i386-builtin.def (BDESC): Add new builtins.
18966         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
18967         V32HI_FTYPE_V32BF_V32HI_USI, V16HI_FTYPE_V16BF_V16HI_UHI,
18968         V8HI_FTYPE_V8BF_V8HI_UQI.
18969         (ix86_expand_round_builtin): Handle V32HI_FTYPE_V32BF_V32HI_USI_INT,
18970         V16SI_FTYPE_V16SF_V16SI_UHI_INT, V16HI_FTYPE_V16BF_V16HI_UHI_INT.
18971         * config/i386/immintrin.h: Include avx10_2satcvtintrin.h and
18972         avx10_2-512savcvtintrin.h.
18973         * config/i386/sse.md:
18974         (UNSPEC_CVTNE_BF16_IBS_ITER): New iterator.
18975         (sat_cvt_sign_prefix): Ditto.
18976         (sat_cvt_trunc_prefix): Ditto.
18977         (UNSPEC_CVT_PH_IBS_ITER): Ditto.
18978         (UNSPEC_CVTT_PH_IBS_ITER): Ditto.
18979         (UNSPEC_CVT_PS_IBS_ITER): Ditto.
18980         (UNSPEC_CVTT_PS_IBS_ITER): Ditto.
18981         (avx10_2_cvt<sat_cvt_trunc_prefix>nebf162i<sat_cvt_sign_prefix>bs<mode><mask_name>):
18982         New define_insn.
18983         (avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
18984         Ditto.
18985         (avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
18986         Ditto.
18987         (avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
18988         Ditto.
18989         (avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
18990         Ditto.
18991         * config/i386/avx10_2-512satcvtintrin.h: New file.
18992         * config/i386/avx10_2satcvtintrin.h: Ditto.
18994 2024-08-26  konglin1  <lingling.kong@intel.com>
18995             Levy Hsu  <admin@levyhsu.com>
18997         * config/i386/avx10_2-512bf16intrin.h: Add new intrinsics.
18998         * config/i386/avx10_2bf16intrin.h: Diito.
18999         * config/i386/i386-builtin-types.def : Add new DEF_FUNCTION_TYPE
19000         for new type.
19001         * config/i386/i386-builtin.def (BDESC): Add new buildin.
19002         * config/i386/i386-expand.cc (ix86_expand_args_builtin):
19003         Handle new type.
19004         * config/i386/sse.md (vecmemsuffix): Add vector BF mode.
19005         (avx10_2_rsqrtpbf16_<mode><mask_name>): New define_insn.
19006         (avx10_2_sqrtnepbf16_<mode><mask_name>): Ditto.
19007         (avx10_2_rcppbf16_<mode><mask_name>): Ditto.
19008         (avx10_2_getexppbf16_<mode><mask_name>): Ditto.
19009         (BF16IMMOP): New iterator.
19010         (bf16immop): Ditto.
19011         (avx10_2_<bf16immop>pbf16_<mode><mask_name>): New define_insn.
19012         (avx10_2_fpclasspbf16_<mode><mask_scalar_merge_name>): Ditto.
19013         (avx10_2_cmppbf16_<mode><mask_scalar_merge_name>): Ditto.
19014         (avx10_2_comsbf16_v8bf): Ditto.
19016 2024-08-26  konglin1  <lingling.kong@intel.com>
19017             Levy Hsu  <admin@levyhsu.com>
19019         * config.gcc: Add avx10_2-512bf16intrin.h and avx10_2bf16intrin.h.
19020         * config/i386/i386-builtin-types.def : Add new
19021         DEF_FUNCTION_TYPE for V32BF_FTYPE_V32BF_V32BF,
19022         V16BF_FTYPE_V16BF_V16BF, V8BF_FTYPE_V8BF_V8BF,
19023         V8BF_FTYPE_V8BF_V8BF_UQI, V16BF_FTYPE_V16BF_V16BF_UHI,
19024         V32BF_FTYPE_V32BF_V32BF_USI, V32BF_FTYPE_V32BF_V32BF_V32BF_USI,
19025         V8BF_FTYPE_V8BF_V8BF_V8BF_UQI and V16BF_FTYPE_V16BF_V16BF_V16BF_UHI.
19026         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19027         * config/i386/i386-expand.cc (ix86_expand_args_builtin):
19028         Handle new DEF_FUNCTION_TYPE.
19029         * config/i386/immintrin.h: Include avx10_2-512bf16intrin.h and
19030         avx10_2bf16intrin.h.
19031         * config/i386/sse.md
19032         (VBF_AVX10_2): New iterator.
19033         (avx10_2_scalefpbf16_<mode><mask_name>): New define_insn.
19034         (avx10_2_<code>nepbf16_<mode><mask_name>): Ditto.
19035         (avx10_2_<insn>nepbf16_<mode><mask_name>): Ditto.
19036         (avx10_2_fmaddnepbf16_<mode>_maskz): New expander.
19037         (avx10_2_fnmaddnepbf16_<mode>_maskz): Ditto.
19038         (avx10_2_fmsubnepbf16_<mode>_maskz): Ditto.
19039         (avx10_2_fnmsubnepbf16_<mode>_maskz): Ditto.
19040         (avx10_2_fmaddnepbf16_<mode><sd_maskz_name>): New define_insn.
19041         (avx10_2_fmaddnepbf16_<mode>_mask): Ditto.
19042         (avx10_2_fmaddnepbf16_<mode>_mask3): Ditto.
19043         (avx10_2_fnmaddnepbf16_<mode><sd_maskz_name>): Ditto.
19044         (avx10_2_fnmaddnepbf16_<mode>_mask): Ditto.
19045         (avx10_2_fnmaddnepbf16_<mode>_mask3): Ditto.
19046         (avx10_2_fmsubnepbf16_<mode><sd_maskz_name>): Ditto.
19047         (avx10_2_fmsubnepbf16_<mode>_mask): Ditto.
19048         (avx10_2_fmsubnepbf16_<mode>_mask3): Ditto.
19049         (avx10_2_fnmsubnepbf16_<mode><sd_maskz_name>): Ditto.
19050         (avx10_2_fnmsubnepbf16_<mode>_mask): Ditto.
19051         (avx10_2_fnmsubnepbf16_<mode>_mask3): Ditto.
19052         * config/i386/avx10_2-512bf16intrin.h: New file.
19053         * config/i386/avx10_2bf16intrin.h: Ditto.
19055 2024-08-26  Levy Hsu  <admin@levyhsu.com>
19056             Kong Lingling  <lingling.kong@intel.com>
19058         * config.gcc: Add avx10_2-512convertintrin.h and
19059         avx10_2convertintrin.h.
19060         * config/i386/i386-builtin-types.def: Add new DEF_POINTER_TYPE
19061         and DEF_FUNCTION_TYPE.
19062         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19063         * config/i386/i386-expand.cc (ix86_expand_args_builtin):
19064         Handle AVX10.2.
19065         (ix86_expand_round_builtin): Ditto.
19066         * config/i386/immintrin.h: Include avx10_2-512convertintrin.h,
19067         avx10_2convertintrin.h.
19068         * config/i386/sse.md (VHF_AVX10_2): New iterator.
19069         (bf16_ph): Add 512 bit mode.
19070         (avx10_2_cvt2ps2phx_<mode><mask_name<round_name>): New define_insn.
19071         (ssebvecmode): New iterator.
19072         (UNSPEC_NECONVERTFP8_PACK): Ditto.
19073         (neconvertfp8_pack): Ditto.
19074         (vcvt<neconvertfp8_pack><mode><mask_name>): New define_insn.
19075         (ssebvecmode_2): New iterator.
19076         (UNSPEC_VCVTBIASPH2FP8_PACK): Ditto.
19077         (biasph2fp8_pack): Ditto.
19078         (vcvt<biasph2fp8_pack>v8hf): New expander.
19079         (vcvt<biasph2fp8_pack>v8hf_mask): Ditto.
19080         (*vcvt<biasph2bf8_pack>v8hf): New define_insn.
19081         (*vcvt<biasph2fp8_pack>v8hf_mask): Ditto.
19082         (VHF_AVX10_2_2): New iterator.
19083         (vcvt<biasph2fp8_pack><mode><mask_name>): New define_insn.
19084         (VHF_256_512): New iterator.
19085         (ph2fp8suff): Ditto.
19086         (UNSPEC_NECONVERTPH2FP8_PACK): Ditto.
19087         (neconvertph2fp8): Ditto.
19088         (vcvt<neconvertph2fp8>v8hf_mask): New expander.
19089         (*vcvt<neconvertph2fp8>v8hf): New define_insn.
19090         (*vcvt<neconvertph2fp8>v8hf_mask): Ditto.
19091         (vcvt<neconvertph2fp8><mode><mask_name>): Ditto.
19092         (vcvthf82ph<mode><mask_name>): Ditto.
19093         * config/i386/avx10_2-512convertintrin.h: New file.
19094         * config/i386/avx10_2convertintrin.h: Ditto.
19096 2024-08-26  Haochen Jiang  <haochen.jiang@intel.com>
19097             Hongyu Wang  <hongyu.wang@intel.com>
19099         * config/i386/avx10_2-512mediaintrin.h: Add new intrins.
19100         * config/i386/avx10_2mediaintrin.h: Ditto.
19101         * config/i386/i386-builtin.def: Add new builtins.
19102         * config/i386/i386-builtins.cc (def_builtin): Handle shared
19103         builtins between AVXVNNIINT16 and AVX10.2.
19104         * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
19105         Ditto.
19106         * config/i386/sse.md (unspec): Add UNSPEC_VDPPHPS.
19107         (avx10_2_mpsadbw<mask_name>): New define_insn.
19108         (<mask_codefor><sse4_1_avx2>_mpsadbw<mask_name>): Ditto.
19109         (vpdp<vpdpwprodtype>_<mode>): Add AVX10_2_256.
19110         (vpdp<vpdpwprodtype>_v16si): New defin_insn.
19111         (vpdp<vpdpwprodtype>_<mode>_mask): Ditto.
19112         (*vpdp<vpdpwprodtype>_<mode>_maskz): Ditto.
19113         (vpdp<vpdpwprodtype>_<mode>_maskz): New expander.
19114         (vdpphps_<mode>): New define_insn.
19115         (vdpphps_<mode>_mask): Ditto.
19116         (*vdpphps_<mode>_maskz): Ditto.
19117         (vdpphps_<mode>_maskz): New expander.
19119 2024-08-26  Hongyu Wang  <hongyu.wang@intel.com>
19120             Haochen Jiang  <haochen.jiang@intel.com>
19122         * config.gcc: Add avx10_2mediaintrin.h and
19123         avx10_2-512mediaintrin.h.
19124         * config/i386/i386-builtin.def: Add new builtins.
19125         * config/i386/i386-builtins.cc (def_builtin): Handle shared
19126         builtins between AVXVNNIINT8 and AVX10.2.
19127         * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
19128         Ditto.
19129         * config/i386/immintrin.h: Include avx10_2mediaintrin.h and
19130         avx10_2-512mediaintrin.h
19131         * config/i386/sse.md: (VI4_AVX10_2): New.
19132         (vpdp<vpdotprodtype>_<mode>): Add AVX10_2_256.
19133         (vpdp<vpdotprodtype>_v16si): New define_insn.
19134         (vpdp<vpdotprodtype>_<mode>_mask): Ditto.
19135         (*vpdp<vpdotprodtype>_<mode>_maskz): Ditto.
19136         (vpdp<vpdotprodtype>_<mode>_maskz): New expander.
19137         * config/i386/avx10_2-512mediaintrin.h: New file.
19138         * config/i386/avx10_2mediaintrin.h: Ditto.
19140 2024-08-26  Pan Li  <pan2.li@intel.com>
19142         * config/riscv/riscv.cc (riscv_gen_unsigned_xmode_reg): Add new
19143         func impl to gen xmode rtx reg from operand rtx.
19144         (riscv_expand_ussub): Gen xmode reg for operand 1.
19145         * config/riscv/riscv.md: Allow const_int for operand 1.
19147 2024-08-25  demin.han  <demin.han@starfivetech.com>
19149         * config/riscv/vector.md: Add !FLOAT_MODE_P constraint.
19151 2024-08-25  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
19153         * lower-subreg.cc (resolve_simple_move): Re-add calling emit_clobber
19154         immediately before moving a multi-word register by parts.
19156 2024-08-25  Andi Kleen  <ak@gcc.gnu.org>
19158         PR tree-optimization/115866
19159         * tree-if-conv.cc (if_convertible_switch_p): New function.
19160         (if_convertible_stmt_p): Check for switch.
19161         (get_loop_body_in_if_conv_order): Handle switch.
19162         (predicate_bbs): Likewise.
19163         (predicate_statements): Likewise.
19164         (remove_conditions_and_labels): Likewise.
19165         (ifcvt_split_critical_edges): Likewise.
19166         (ifcvt_local_dce): Likewise.
19168 2024-08-25  Mark Harmstone  <mark@harmstone.com>
19170         * dwarf2codeview.cc (write_optimized_static_local_vars): New function.
19171         (write_function): Call write_optimized_static_local_vars.
19173 2024-08-25  Mark Harmstone  <mark@harmstone.com>
19175         * dwarf2codeview.cc (enum cv_sym_type): Add S_FRAMEPROC.
19176         (write_s_frameproc): New function.
19177         (write_function): Call write_s_frameproc.
19179 2024-08-25  Mark Harmstone  <mark@harmstone.com>
19181         * dwarf2codeview.cc (enum cv_sym_type): Add S_DEFRANGE_REGISTER_REL.
19182         (write_defrange_register_rel): New function.
19183         (write_optimized_local_variable_loc): Add fbloc param, and call
19184         write_defrange_register_rel.
19185         (write_optimized_local_variable): Add fbloc param.
19186         (write_optimized_function_vars): Add fbloc param.
19188 2024-08-25  Mark Harmstone  <mark@harmstone.com>
19190         * dwarf2codeview.cc (enum cv_sym_type): Add S_LOCAL and
19191         S_DEFRANGE_REGISTER.
19192         (write_s_local): New function.
19193         (write_defrange_register): New function.
19194         (write_optimized_local_variable_loc): New function.
19195         (write_optimized_local_variable): New function.
19196         (write_optimized_function_vars): New function.
19197         (write_function): Call write_optimized_function_vars if variable
19198         tracking enabled.
19199         * dwarf2out.cc (typedef var_loc_view): Move to dwarf2out.h.
19200         (struct dw_loc_list_struct): Likewise.
19201         * dwarf2out.h (typedef var_loc_view): Move from dwarf2out.h.
19202         (struct dw_loc_list_struct): Likewise.
19203         * opts.cc (finish_options): Enable variable tracking for CodeView.
19205 2024-08-25  Roger Sayle  <roger@nextmovesoftware.com>
19206             Uros Bizjak  <ubizjak@gmail.com>
19208         * config/i386/i386-features.cc (compute_convert_gain)
19209         <case ASHIFTRT>: Update to match ix86_expand_v1ti_ashiftrt.
19211 2024-08-23  Patrick O'Neill  <patrick@rivosinc.com>
19213         * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
19214         Use encoded_nelts when calling repeating_sequence_p.
19215         (rvv_builder::is_repeating_sequence): Ditto.
19216         (rvv_builder::repeating_sequence_use_merge_profitable_p): Ditto.
19218 2024-08-23  Manolis Tsamis  <manolis.tsamis@vrull.eu>
19220         PR rtl-optimization/116372
19221         PR rtl-optimization/116405
19222         * ifcvt.cc (noce_convert_multiple_sets): Iterate backwards and track
19223         target registers.
19225 2024-08-23  Manolis Tsamis  <manolis.tsamis@vrull.eu>
19227         PR middle-end/116358
19228         * ifcvt.cc (noce_convert_multiple_sets): Disallow call insns.
19230 2024-08-23  Peter Bergner  <bergner@linux.ibm.com>
19232         PR target/116415
19233         * config/rs6000/rs6000.h (TI_OR_PTI_MODE): New define.
19234         * config/rs6000/rs6000-p8swap.cc (rs6000_analyze_swaps): Use it to
19235         handle PTImode identically to TImode.
19237 2024-08-23  Richard Biener  <rguenther@suse.de>
19239         PR tree-optimization/116463
19240         * tree-complex.cc: Include tree-ssa-dce.h.
19241         (dce_worklist): New global.
19242         (update_complex_assignment): Add SSA def to the DCE worklist.
19243         (tree_lower_complex): Perform DCE.
19245 2024-08-23  Pan Li  <pan2.li@intel.com>
19247         * match.pd: Add form 4 for unsigned .SAT_TRUNC matching.
19249 2024-08-23  Robin Dapp  <rdapp@ventanamicro.com>
19251         PR middle-end/115495
19252         * cfgexpand.cc (expand_debug_expr): Require mode.
19253         * combine.cc (make_extraction): Ditto.
19254         * config/aarch64/aarch64.cc (aarch64_expand_cpymem): Ditto.
19255         (aarch64_expand_setmem): Ditto.
19256         * config/arc/arc.cc (arc_expand_cpymem): Ditto.
19257         * config/arm/arm.cc (arm_expand_divmod_libfunc): Ditto.
19258         * config/i386/i386.cc (ix86_get_mask_mode): Ditto.
19259         * config/rs6000/predicates.md: Ditto.
19260         * config/rs6000/rs6000.cc (vspltis_constant): Ditto.
19261         * config/s390/s390.cc (s390_expand_insv): Ditto.
19262         * config/sparc/sparc.cc (assign_int_registers): Ditto.
19263         * coverage.cc (get_gcov_type): Ditto.
19264         (get_gcov_unsigned_t): Ditto.
19265         * dse.cc (find_shift_sequence): Ditto.
19266         * expmed.cc (store_integral_bit_field): Ditto.
19267         * expr.cc (convert_mode_scalar): Ditto.
19268         (op_by_pieces_d::smallest_fixed_size_mode_for_size): Ditto.
19269         (emit_block_move_via_oriented_loop): Ditto.
19270         (copy_blkmode_to_reg): Ditto.
19271         (store_field): Ditto.
19272         * internal-fn.cc (expand_arith_overflow): Ditto.
19273         * machmode.h (HAVE_MACHINE_MODES): Ditto.
19274         (smallest_mode_for_size): Use opt_machine_mode.
19275         (smallest_int_mode_for_size): Use opt_scalar_int_mode.
19276         * optabs-query.cc (get_best_extraction_insn): Require mode.
19277         * optabs.cc (expand_twoval_binop_libfunc): Ditto.
19278         * stor-layout.cc (smallest_mode_for_size): Return
19279         opt_machine_mode.
19280         (layout_type): Require mode.
19281         (initialize_sizetypes): Ditto.
19282         * tree-ssa-loop-manip.cc (canonicalize_loop_ivs): Ditto.
19284 2024-08-23  Robin Dapp  <rdapp@ventanamicro.com>
19286         * config/riscv/autovec.md (abs<mode>2): Expand via max (a, -a).
19288 2024-08-23  Gerald Pfeifer  <gerald@pfeifer.com>
19290         * doc/gm2.texi (License): Specifically link to GPL v3.0
19292 2024-08-22  Jeff Law  <jlaw@ventanamicro.com>
19294         PR rtl-optimization/116420
19295         * ext-dce.cc (ext_dce_init): Fix loop iteration when setting up the
19296         interesting block for DF to analyze.
19298 2024-08-22  Prathamesh Kulkarni  <prathameshk@nvidia.com>
19300         * lto-streamer-in.cc: (lto_read_tree_1): Set DECL_MODE (expr) to
19301         TREE_TYPE (TYPE_MODE (expr)) if TREE_TYPE (expr) is aggregate type and
19302         offloading is enabled.
19303         * stor-layout.cc (layout_type): Move computation of mode for
19304         ARRAY_TYPE from ...
19305         (compute_array_mode): ... to here.
19306         * stor-layout.h (compute_array_mode): Declare.
19307         * tree-streamer-in.cc: Include stor-layout.h.
19308         (unpack_ts_common_value_fields): Call compute_array_mode if offloading
19309         is enabled.
19310         * tree-streamer-out.cc (pack_ts_fixed_cst_value_fields): Stream out
19311         VOIDmode if decl has aggregate type and offloading is enabled.
19312         (pack_ts_type_common_value_fields): Stream out VOIDmode for aggregate
19313         type if offloading is enabled.
19315 2024-08-22  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
19317         * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Add
19318         epilogue code for stack-clash and fix prologue cfi note.
19320 2024-08-22  Andrew Pinski  <quic_apinski@quicinc.com>
19321             Richard Biener   <rguenther@suse.de>
19323         PR middle-end/116454
19324         * fold-const.cc (fold_binary_loc): Fix `a * +-1i`
19325         by wrapping arg0 with save_expr when it is not COMPLEX_EXPR.
19327 2024-08-22  Jennifer Schmitz  <jschmitz@nvidia.com>
19329         PR target/116365
19330         * config/aarch64/aarch64-opts.h
19331         (enum aarch64_autovec_preference_enum): New enum.
19332         * config/aarch64/aarch64.cc (aarch64_cmp_autovec_modes):
19333         Change numerical to enum values.
19334         (aarch64_autovectorize_vector_modes): Change numerical to enum
19335         values.
19336         (aarch64_vector_costs::record_potential_advsimd_unrolling):
19337         Change numerical to enum values.
19338         * config/aarch64/aarch64.opt: Change param type to enum.
19339         * doc/invoke.texi: Update documentation.
19341 2024-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19343         * dwarf2out.cc (dwarf2out_maybe_output_loclist_view_pair,
19344         output_loc_list): Correct handling of -gno-as-loc-support,
19345         use ZERO_VIEW_P to output view number as zero value.
19346         * toplev.cc (process_options): Do not automatically disable
19347         -gvariable-location-views when -gno-as-loc-support or
19348         -gno-as-locview-support is used, instead do automatically
19349         disable -gas-locview-support if -gno-as-loc-support is used.
19351 2024-08-22  Bernd Edlinger  <bernd.edlinger@hotmail.de>
19353         PR debug/87440
19354         * dwarf2out.cc (gen_inlined_subroutine_die): Handle the case
19355         of multiple subranges correctly.
19357 2024-08-22  Jennifer Schmitz  <jschmitz@nvidia.com>
19359         PR tree-optimization/101390
19360         * tree-vect-patterns.cc (vect_recog_mod_var_pattern): Add new pattern.
19362 2024-08-22  Alexandre Oliva  <oliva@adacore.com>
19364         * toplev.cc (dump_final_alias_vcg): New.
19365         (dump_final_node_vcg): Dump aliases along with node.
19367 2024-08-22  liuhongt  <hongtao.liu@intel.com>
19369         * config/i386/i386-options.cc (ix86_option_override_internal):
19370         set ix86_{move_max,store_max} to PVW_AVX256 when TARGET_AVX
19371         instead of PVW_AVX128.
19373 2024-08-21  Jeff Law  <jlaw@ventanamicro.com>
19375         PR rtl-optimization/116437
19376         * ext-dce.cc (ext_dce_try_optimize_insn): Handle SUBREG and
19377         ZERO_EXTRACT destinations.
19379 2024-08-21  Richard Sandiford  <richard.sandiford@arm.com>
19381         PR testsuite/116238
19382         * config/aarch64/aarch64.cc (aarch64_hard_regno_caller_save_mode):
19383         Only return SImode if we can convert to and from it.
19385 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
19387         PR target/113042
19388         * config/aarch64/aarch64.md (popcountti2): New define_expand.
19390 2024-08-21  Richard Biener  <rguenther@suse.de>
19392         PR tree-optimization/116406
19393         * tree-ssa-sccvn.cc (vn_reference_eq): Never equate
19394         float and int when the float mode cannot transfer bits.
19395         Do not try to anticipate which is the mode we actually load
19396         from.
19398 2024-08-21  Martin Jambor  <mjambor@suse.cz>
19400         PR target/58416
19401         * tree-sra.cc (types_risk_mangled_binary_repr_p): New function.
19402         (sort_and_splice_var_accesses): Use it.
19403         (propagate_subaccesses_from_rhs): Likewise.
19405 2024-08-21  Richard Biener  <rguenther@suse.de>
19407         PR tree-optimization/116380
19408         * tree-loop-distribution.cc (copy_loop_before): Handle
19409         out-of-loop defs appropriately.
19411 2024-08-21  Kewen Lin  <linkw@linux.ibm.com>
19413         * config/rs6000/vsx.md (define_insn *vsx_le_perm_store_{<VSX_D:mode>,
19414         <VSX_W:mode>,v8hi,v16qi,<VSX_LE_128:mode>}): Remove constraint modifier
19415         "+" from operand 1.
19417 2024-08-21  Kewen Lin  <linkw@linux.ibm.com>
19419         * config/rs6000/vsx.md (*vsx_le_perm_store_{<VSX_D:mode>,<VSX_W:mode>,
19420         v8hi,v16qi,<VSX_LE_128:mode>} !reload_completed splitters): Assert
19421         can_create_pseudo_p and always generate one new pseudo for operand 1.
19423 2024-08-21  liuhongt  <hongtao.liu@intel.com>
19425         * config/i386/sse.md (mov<mode>): Align predicates for
19426         operands[1] between mov<mode> and *mov<mode>_internal.
19427         * config/i386/mmx.md (mov<mode>): Ditto.
19429 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
19431         * builtins.cc (fold_builtin_bit_query): Don't expand double
19432         `unsigned long long` typess if there is an optab entry for that
19433         type.
19435 2024-08-21  Andrew Pinski  <quic_apinski@quicinc.com>
19437         PR sanitizer/115205
19438         * asan.cc (asan_instrument): Call initialize_sanitizer_builtins
19439         for hwasan.
19440         (hwasan_finish_file): Likewise.
19442 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
19444         PR tree-optimization/116412
19445         * gimple-match-exports.cc (gimple_extract): Return false if op0
19446         was not a SSA name nor a min invariant for REALPART_EXPR/IMAGPART_EXPR/VCE
19447         and BIT_FIELD_REF.
19449 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
19451         PR tree-optimization/116409
19452         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Move
19453         maybe_push_res_to_seq before creating the phi node and the debug dump.
19454         Return false if maybe_push_res_to_seq fails.
19456 2024-08-20  Gerald Pfeifer  <gerald@pfeifer.com>
19458         * doc/install.texi (Specific) <c6x-*-*>: Normalize reference to
19459         binutils.
19461 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
19463         PR tree-optimization/103660
19464         * match.pd (`(a ? b : 0) | (a ? 0 : c)`): New pattern.
19466 2024-08-20  Andrew Pinski  <quic_apinski@quicinc.com>
19468         PR tree-optimization/103660
19469         * match.pd (`((a CMP b) ? c : 0) | ((a CMP' b) ? d : 0)`): Extend to support
19470         XOR and PLUS.
19472 2024-08-20  Richard Biener  <rguenther@suse.de>
19474         PR tree-optimization/116274
19475         * tree-vect-slp.cc (vect_bb_slp_scalar_cost): Cost scalar loads
19476         and stores as simple scalar stmts when they access a non-global,
19477         not address-taken variable that doesn't have BLKmode assigned.
19479 2024-08-20  Prathamesh Kulkarni  <prathameshk@nvidia.com>
19481         * optc-save-gen.awk: New array var_target_opt. Use it to generate
19482         if (!lto_stream_offload_p) check in cl_optimization_stream_out,
19483         and generate a diagnostic with #error if accelerator backend uses
19484         Optimization for target-specifc options in cl_optimization_stream_in.
19486 2024-08-19  Andreas Schwab  <schwab@linux-m68k.org>
19488         PR target/113939
19489         * config/m68k/m68k.opt (mlra): New target option.
19490         * config/m68k/m68k.cc (m68k_use_lra_p): New function.
19491         (TARGET_LRA_P): Use it.
19492         * config/m68k/m68k.opt.urls: Regenerate.
19494 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
19496         PR target/112108
19497         * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): Remove
19498         feature check at initialisation.
19499         (aarch64_general_check_builtin_call): Check ls64 intrinsics.
19500         * config/aarch64/arm_acle.h: (data512_t) Make always available.
19502 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
19504         PR target/112108
19505         * config/aarch64/aarch64-builtins.cc (aarch64_init_memtag_builtins):
19506         Define intrinsic names directly.
19507         (aarch64_general_init_builtins): Move memtag intialisation...
19508         (handle_arm_acle_h): ...to here, and remove feature check.
19509         (aarch64_general_check_builtin_call): Check memtag intrinsics.
19510         * config/aarch64/arm_acle.h (__arm_mte_create_random_tag)
19511         (__arm_mte_exclude_tag, __arm_mte_ptrdiff)
19512         (__arm_mte_increment_tag, __arm_mte_set_tag, __arm_mte_get_tag):
19513         Remove.
19515 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
19517         PR target/112108
19518         * config/aarch64/aarch64-builtins.cc (aarch64_init_tme_builtins):
19519         Define intrinsic names directly.
19520         (aarch64_general_init_builtins): Move tme initialisation...
19521         (handle_arm_acle_h): ...to here, and remove feature check.
19522         (aarch64_general_check_builtin_call): Check tme intrinsics.
19523         * config/aarch64/arm_acle.h (__tstart, __tcommit, __tcancel)
19524         (__ttest): Remove.
19525         (_TMFAILURE_*): Define unconditionally.
19527 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
19529         * config/aarch64/aarch64-sve-builtins.cc (check_builtin_call)
19530         (expand_builtin): Update calls to the below.
19531         (report_missing_extension, report_missing_registers)
19532         (check_required_extensions): Move out of aarch64_sve namespace,
19533         rename, and move into...
19534         * config/aarch64/aarch64-builtins.cc (aarch64_report_missing_extension)
19535         (aarch64_report_missing_registers)
19536         (aarch64_check_required_extensions) ...here.
19537         * config/aarch64/aarch64-protos.h (aarch64_check_required_extensions):
19538         Add prototype.
19540 2024-08-19  Andrew Carlotti  <andrew.carlotti@arm.com>
19542         * config/aarch64/aarch64-sve-builtins.cc
19543         (check_required_registers): Remove target check and rename to...
19544         (report_missing_registers): ...this.
19545         (check_required_extensions): Refactor.
19547 2024-08-19  Kyrylo Tkachov  <ktkachov@nvidia.com>
19549         * config/aarch64/tuning_models/neoversev2.h (fp_reassoc_width):
19550         Set to 4.
19551         (tune_flags): Add AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
19553 2024-08-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
19555         * read-rtl.cc (rtx_reader::rtx_alloc_for_name): Allow all attribute
19556         types to produce code 'values'.
19557         (check_code_attribute): Rename ...
19558         (check_attribute_codes): ... to this.  And change comments to refer to
19559         * doc/md.texi: Add paragraph to document that you can use int and mode
19560         attributes to produce codes.
19562 2024-08-19  Haochen Gui  <guihaoc@gcc.gnu.org>
19564         * config/aarch64/aarch64-simd.md (mov<mode> for VSTRUCT_QD):
19565         Expand 16-byte vector mode const0 store by TImode.
19567 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19569         * config/i386/avx10_2roundingintrin.h: New intrins.
19570         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19572 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19574         * config/i386/avx10_2roundingintrin.h: New intrins.
19575         * config/i386/i386-builtin.def: Add new builtins.
19576         * config/i386/sse.md:
19577         (<avx512>_scalef<mode><mask_name><round_name>): Add condition check.
19579 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19581         * config/i386/avx10_2roundingintrin.h: New intrins.
19582         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19583         * config/i386/sse.md:
19584         (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>):
19585         Add condition check.
19586         (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): Ditto.
19588 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19590         * config/i386/avx10_2roundingintrin.h: New intrins.
19591         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19592         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19593         * config/i386/i386-expand.cc (ix86_expand_round_builtin):
19594         Handle V8SF_FTYPE_V8SF_V8SF_INT_V8SF_UQI_INT,
19595         V4DF_FTYPE_V4DF_V4DF_INT_V4DF_UQI_INT.
19597 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19599         * config/i386/avx10_2roundingintrin.h: New intrins.
19600         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19602 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19604         * config/i386/avx10_2roundingintrin.h: New intrins.
19605         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19606         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19607         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19608         V8SF_FTYPE_V8SF_V8SF_UQI_INT, V4DF_FTYPE_V4DF_V4DF_UQI_INT,
19609         V16HF_FTYPE_V16HF_V16HF_UHI_INT, V16HF_FTYPE_V16HF_INT_V16HF_UHI_INT,
19610         V4DF_FTYPE_V4DF_INT_V4DF_UQI_INT, V8SF_FTYPE_V8SF_INT_V8SF_UQI_INT.
19611         * config/i386/sse.md:
19612         (<avx512>_getexp<mode><mask_name><round_saeonly_name>):
19613         Add condition check.
19614         (<avx512>_getmant<mode><mask_name><round_saeonly_name>):
19615         Ditto.
19617 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19619         * config/i386/avx10_2roundingintrin.h: New intrins.
19620         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19621         * config/i386/sse.md:
19622         (<avx512>_fnmsub_<mode>_mask3<round_name>): Add condition check.
19624 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19626         * config/i386/avx10_2roundingintrin.h: New intrins.
19627         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19629 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19631         * config/i386/avx10_2roundingintrin.h: New intrins.
19632         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19633         * config/i386/sse.md:
19634         (<avx512>_fmsub_<mode>_mask<round_name>): Add condition check.
19636 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19638         * config/i386/avx10_2roundingintrin.h: New intrins.
19639         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19640         * config/i386/sse.md:
19641         (<avx512>_fmaddsub_<mode>_mask<round_name>): Add condition check.
19642         (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto.
19644 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19646         * config/i386/avx10_2roundingintrin.h: New intrins.
19647         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19648         * config/i386/sse.md:
19649         (<avx512>_fmadd_<mode>_mask3<round_name>): Add condition check.
19651 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19653         * config/i386/avx10_2roundingintrin.h: New intrins.
19654         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19655         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19656         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19657         V16HF_FTYPE_V16HF_V16HF_INT, V16HF_FTYPE_V16HF_V16HF_V16HF_INT,
19658         V16HF_FTYPE_V16HF_V16HF_V16HF_UQI_INT,
19659         V4DF_FTYPE_V4DF_V4DF_V4DI_INT_UQI_INT,
19660         V8SF_FTYPE_V8SF_V8SF_V8SI_INT_UQI_INT.
19661         * config/i386/sse.md:
19662         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>):
19663         Add condition check.
19664         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Ditto.
19666 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19668         * config/i386/avx10_2roundingintrin.h: New intrins.
19669         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19670         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19671         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19672         V16HF_FTYPE_V16HI_V16HF_UHI_INT.
19674 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19676         * config/i386/avx10_2roundingintrin.h: New intrins.
19677         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19678         * config/i386/sse.md
19679         (unspec_fix_truncv8sfv8si2<mask_name>): Extend rounding control.
19680         (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
19681         Ditto.
19682         (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):
19683         Add condition check.
19684         (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
19685         Remove round_saeonly_name.
19687 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19689         * config/i386/avx10_2roundingintrin.h: New intrins.
19690         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19691         * config/i386/sse.md (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>):
19692         Extend round control for 256bit.
19693         (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
19694         Ditto.
19695         (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>):
19696         Add condition check.
19697         * config/i386/subst.md
19698         (round_saeonly_mode_condition): Add V16HI check for 256bit.
19700 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19702         * config/i386/avx10_2roundingintrin.h: New intrins.
19703         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19704         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19705         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19706         V4DF_FTYPE_V4DI_V4DF_UQI_INT, V4SF_FTYPE_V4DI_V4SF_UQI_INT,
19707         V8HF_FTYPE_V4DI_V8HF_UQI_INT.
19708         * config/i386/sse.md:
19709         (avx512fp16_vcvt<floatsuffix>qq2ph_v4di_mask_round): New expand.
19710         (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask):
19711         Extend round control and add "_1" suffix.
19712         (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>):
19713         Add condition check.
19714         (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>):
19715         Ditto.
19716         (float<floatunssuffix><mode><ssePSmode2lower>2<mask_name><round_name>):
19717         Limit suffix output.
19718         (unspec_fix_truncv4dfv4si2<mask_name>): Extend round control.
19719         (unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
19720         * config/i386/subst.md (round_qq2pssuff): New iterator.
19721         (round_saeonly_suff): Ditto.
19723 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19725         * config/i386/avx10_2roundingintrin.h: New intrins.
19726         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19727         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19728         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19729         V8SI_FTYPE_V8SF_V8SI_UQI_INT, V4DI_FTYPE_V4SF_V4DI_UQI_INT.
19730         * config/i386/sse.md
19731         (<sse2_avx_avx512f>_fix_notrunc<sf2simodelower><mode><mask_name>):
19732         Extend to round.
19733         (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
19734         Add round condition check.
19735         * config/i386/subst.md (round_constraint4): New.
19737 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19739         * config/i386/avx10_2roundingintrin.h: New intrins.
19740         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19741         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19742         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19743         V16HI_FTYPE_V16HF_V16HI_UHI_INT, V4DF_FTYPE_V4SF_V4DF_UQI_INT
19744         V8HF_FTYPE_V8SF_V8HF_UQI_INT.
19745         * config/i386/sse.md
19746         (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>):
19747         Add round condition check.
19748         * config/i386/subst.md (round_mode_condition): Add V16HI check for
19749         256bit.
19751 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19753         * config/i386/avx10_2roundingintrin.h: New intrins.
19754         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19755         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19756         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19757         V8SF_FTYPE_V8HF_V8SF_UQI_INT, V8SI_FTYPE_V8HF_V8SI_UQI_INT,
19758         V4DF_FTYPE_V8HF_V4DF_UQI_INT, V4DI_FTYPE_V8HF_V4DI_UQI_INT.
19759         * config/i386/sse.md:
19760         (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>):
19761         Add condition check.
19762         (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode>
19763         <mask_name><round_name>):
19764         Ditto.
19765         (avx512fp16_float_extend_ph<mode>2<mask_name>): Extend round saeonly.
19766         (vcvtph2ps256<mask_name>): Ditto.
19767         * config/i386/subst.md
19768         (round_saeonly_applied): New condition.
19770 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19772         * config/i386/avx10_2roundingintrin.h: Add new intrins.
19773         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19774         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19775         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19776         V4DI_FTYPE_V4DF_V4DI_UQI_INT, V4SI_FTYPE_V4DF_V4SI_UQI_INT.
19777         * config/i386/sse.md:
19778         (avx_cvtpd2dq256<mask_name>): Change name to
19779         avx_cvtpd2dq256<mask_name><round_name> and extend pattern to
19780         generate 256bit insns.
19781         (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
19782         Add round_mode_condition.
19783         * config/i386/subst.md (round_pd2udqsuff): New iterator.
19785 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19787         * config/i386/avx10_2roundingintrin.h: Add new intrins.
19788         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19789         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19790         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19791         V8SF_FTYPE_V8SI_V8SF_UQI_INT, V4SF_FTYPE_V4DF_V4SF_UQI_INT,
19792         V8HF_FTYPE_V8SI_V8HF_UQI_INT, V8HF_FTYPE_V4DF_V8HF_UQI_INT.
19793         * config/i386/sse.md:
19794         (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>):
19795         Add condition check.
19796         (avx512fp16_vcvtpd2ph_v4df_mask_round): New expand.
19797         (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Change name to
19798         avx512fp16_vcvt<castmode>2ph_<mode>_mask<round_name>_1
19799         and extend pattern to generate 256bit insns.
19800         (avx_cvtpd2ps256<mask_name>): Change name to
19801         avx_cvtpd2ps256<mask_name><round_name> and extend pattern to
19802         generate 256bit insns.
19803         * config/i386/subst.md (round_applied): New condition.
19804         (round_suff): New iterator.
19805         (round_mode_condition): Add V32HI check for 512bit.
19806         (round_saeonly_mode_condition): Ditto.
19808 2024-08-19  Hu, Lin1  <lin1.hu@intel.com>
19810         * config.gcc: Add avx10_2roundingintrin.h.
19811         * config/i386/i386-builtin-types.def: Add new DEF_FUNCTION_TYPE.
19812         * config/i386/i386-builtin.def (BDESC): Add new builtins.
19813         * config/i386/i386-expand.cc (ix86_expand_round_builtin): Handle
19814         V4DF_FTYPE_V4DF_V4DF_V4DF_UQI_INT, V8SF_FTYPE_V8SF_V8SF_V8SF_UQI_INT,
19815         V16HF_FTYPE_V16HF_V16HF_V16HF_UHI_INT, UQI_FTYPE_V4DF_V4DF_INT_UQI_INT,
19816         UHI_FTYPE_V16HF_V16HF_INT_UHI_INT, UQI_FTYPE_V8SF_V8SF_INT_UQI_INT.
19817         * config/i386/immintrin.h: Include avx10_2roundingintrin.h.
19818         * config/i386/sse.md: Change subst_attr name due to renaming.
19819         * config/i386/subst.md:
19820         (<round_mode512bit_condition>): Add condition check for avx10.2
19821         rounding control 256bit intrins and renamed to ...
19822         (<round_mode_condition>): ...this.
19823         (round_saeonly_mode512bit_condition): Add condition check for
19824         avx10.2 rounding control 256 bit intris and renamed to ...
19825         (round_saeonly_mode_condition): ...this.
19826         * config/i386/avx10_2roundingintrin.h: New file.
19828 2024-08-18  Jeff Law  <jlaw@ventanamicro.com>
19830         PR rtl-optimization/115876
19831         * ext-dce.cc (ext_dce_process_sets): Replace hardcoded 63/64 instances
19832         with HOST_BITS_PER_WIDE_INT based values.
19833         (carry_backpropagate): Handle modes with more bits than
19834         HOST_BITS_PER_WIDE_INT gracefully, avoiding undefined behavior.
19835         (ext_dce_process_uses): Handle subreg offsets which would result
19836         in ubsan shifts gracefully, avoiding undefined behavior.
19838 2024-08-18  Gerald Pfeifer  <gerald@pfeifer.com>
19840         * doc/gm2.texi (Contributing): Tweak gm2 mailing list address.
19842 2024-08-18  Andrew Pinski  <quic_apinski@quicinc.com>
19844         * gimple-match-exports.cc (gimple_match_op::operands_occurs_in_abnormal_phi):
19845         New function.
19846         * gimple-match.h (gimple_match_op): Add operands_occurs_in_abnormal_phi.
19847         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Use gimple_match_op
19848         instead of manually extracting from/creating the gimple.
19850 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
19852         * config/avr/avr.md (*add<mode>3_split) [!reload_completed]:
19853         Add a scratch:QI to 16-bit additions with constant.
19855 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
19857         PR target/116407
19858         * config/avr/avr.md (*dec-and-branchhi!=-1.l.clobber):
19859         Increase the additional jump offset to 2 words.
19861 2024-08-18  Georg-Johann Lay  <avr@gjlay.de>
19863         PR target/116407
19864         * config/avr/avr-protos.h (avr_jump_mode): Add an int argument.
19865         * config/avr/avr.cc (avr_jump_mode): Add an int argument to increase
19866         the computed jump offset of backwards branches.
19867         * config/avr/avr.md (*dec-and-branchhi!=-1, *dec-and-branchsi!=-1):
19868         Increase the jump offset used by avr_jump_mode() as needed.
19870 2024-08-18  Andrew Pinski  <quic_apinski@quicinc.com>
19872         * gimple-fold.cc (mark_lhs_in_seq_for_dce): New function.
19873         (replace_stmt_with_simplification): Call mark_lhs_in_seq_for_dce
19874         right before inserting the sequence.
19875         (fold_stmt_1): Add dce_worklist argument, update call to
19876         replace_stmt_with_simplification.
19877         (fold_stmt): Add dce_worklist argument, update call to fold_stmt_1.
19878         (fold_stmt_inplace): Update call to fold_stmt_1.
19879         * gimple-fold.h (fold_stmt): Add bitmap argument.
19880         * tree-ssa-forwprop.cc (pass_forwprop::execute): Update call to fold_stmt.
19882 2024-08-18  Pan Li  <pan2.li@intel.com>
19884         * config/riscv/iterators.md (ANYI_QUAD_TRUNC): New iterator for
19885         quad truncation.
19886         (ANYI_OCT_TRUNC): New iterator for oct truncation.
19887         (ANYI_QUAD_TRUNCATED): New attr for truncated quad modes.
19888         (ANYI_OCT_TRUNCATED): New attr for truncated oct modes.
19889         (anyi_quad_truncated): Ditto but for lower case.
19890         (anyi_oct_truncated): Ditto but for lower case.
19891         * config/riscv/riscv.md (ustrunc<mode><anyi_quad_truncated>2):
19892         Add new pattern for quad truncation.
19893         (ustrunc<mode><anyi_oct_truncated>2): Ditto but for oct.
19895 2024-08-18  Pan Li  <pan2.li@intel.com>
19897         PR target/116278
19898         * config/riscv/riscv.cc (riscv_gen_zero_extend_rtx): Add new
19899         func impl to zero extend rtx.
19900         (riscv_expand_usadd): Leverage above func to cleanup operands 0
19901         and remove the special handing for SImode in RV64.
19903 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
19905         * ext-dce.cc (carry_backpropagate): Cast mask to HOST_WIDE_INT before
19906         shifting.
19908 2024-08-17  Kevin Kirspel  <Kevin-Kirspel@idexx.com>
19910         * config/riscv/t-rtems: Add ilp32f multilib.
19912 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
19914         * config/v850/v850.md (rotlsi3): Allow more cases for V850E3V5+.
19916 2024-08-17  Jin Ma  <jinma@linux.alibaba.com>
19918         * config/riscv/vector.md: Allow scalar operand to be 0.
19920 2024-08-17  Jeff Law  <jlaw@ventanamicro.com>
19922         PR target/116282
19923         * config/riscv/riscv-protos.h (riscv_const_insns): Add new argument.
19924         * config/riscv/riscv.cc (riscv_build_integer): Add new argument
19925         ALLOW_NEW_PSEUDOS.  Pass it down to recursive calls and check it
19926         before using synthesis which allows new registers to be created.
19927         (riscv_split_integer_cost): Pass new argument to riscv_build_integer.
19928         (riscv_integer_cost): Add ALLOW_NEW_PSEUDOS argument, pass it down to
19929         riscv_build_integer.
19930         (riscv_legitimate_constant_p): Pass new argument to riscv_const_insns.
19931         (riscv_const_insns): New argment ALLOW_NEW_PSEUDOS.  Pass it down to
19932         riscv_integer_cost and riscv_const_insns.
19933         (riscv_split_const_insns): Pass new argument to riscv_const_insns.
19934         (riscv_move_integer, riscv_rtx_costs): Similarly.
19935         * config/riscv/riscv.md (shadd with costly constant): Pass new argument
19936         to riscv_const_insns.
19937         * config/riscv/bitmanip.md (and with costly constant): Pass new argument
19938         to riscv_const_insns.
19940 2024-08-17  Jin Ma  <jinma@linux.alibaba.com>
19942         * config/riscv/riscv-protos.h (riscv_vector_float_type_p): New.
19943         * config/riscv/riscv-vector-builtins.cc (function_instance::any_type_float_p):
19944         Use riscv_vector_float_type_p instead of FLOAT_MODE_P for judgment.
19945         * config/riscv/riscv.cc (riscv_vector_int_type_p): Change static to extern.
19947 2024-08-17  Pan Li  <pan2.li@intel.com>
19949         PR target/116280
19950         * config/riscv/autovec-opt.md: Add quad truncation to
19951         align the mode requirement for vwsll.
19953 2024-08-17  Feng Wang  <wangfeng@eswincomputing.com>
19955         * config/riscv/autovec.md (v<bitmanip_optab><mode>3):
19956         Add new define_expand pattern for vector rotate shift.
19958 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
19960         * doc/gm2.texi (What is GNU Modula-2): Tweak PIM4 link.
19962 2024-08-17  Gerald Pfeifer  <gerald@pfeifer.com>
19964         * doc/gm2.texi (Community): Tweak link to gm2 list archive.
19966 2024-08-17  Georg-Johann Lay  <avr@gjlay.de>
19968         PR target/116390
19969         * config/avr/avr.cc (avr_out_movsi_mr_r_reg_disp_tiny): Fix
19970         output templates for the reg_base == reg_src and
19971         reg_src == reg_base - 2 cases.
19973 2024-08-17  曾治金  <zhijin.zeng@spacemit.com>
19975         PR target/116305
19976         * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Take
19977         BYTES_PER_RISCV_VECTOR for *factor instead of riscv_bytes_per_vector_chunk.
19979 2024-08-16  Mark Harmstone  <mark@harmstone.com>
19981         * dwarf2codeview.cc (enum cv_sym_type): Add S_REGREL32.
19982         (write_fbreg_variable): New function.
19983         (write_unoptimized_local_variable): Add fblock parameter, and handle
19984         DW_OP_fbreg locations.
19985         (write_unoptimized_function_vars): Add fbloc parameter.
19986         (write_function): Extract frame base from DWARF.
19987         * dwarf2out.cc (convert_cfa_to_fb_loc_list): Output simplified frame
19988         base information for CodeView.
19990 2024-08-16  Mark Harmstone  <mark@harmstone.com>
19992         * dwarf2codeview.cc (enum cv_sym_type): Add S_REGISTER.
19993         (enum cv_x86_register): New type.
19994         (enum cv_amd64_register): New type.
19995         (dwarf_reg_to_cv): New function.
19996         (write_s_register): New function.
19997         (write_unoptimized_local_variable): Handle parameters and DW_OP_reg*
19998         location types.
20000 2024-08-16  Mark Harmstone  <mark@harmstone.com>
20002         * dwarf2codeview.cc (enum cv_sym_type): Add S_END and S_BLOCK32.
20003         (write_local_s_ldata32): New function.
20004         (write_unoptimized_local_variable): New function.
20005         (write_s_block32): New function.
20006         (write_s_end): New function.
20007         (write_unoptimized_function_vars): New function.
20008         (write_function): Call write_unoptimized_function_vars.
20010 2024-08-16  Mark Harmstone  <mark@harmstone.com>
20012         * dwarf2codeview.cc (get_type_num_enumeration_type): Initialize last_type
20013         to 0.
20014         (get_type_num_struct): Likewise.
20016 2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
20018         Backported from master:
20019         2024-08-16  Georg-Johann Lay  <avr@gjlay.de>
20021         PR target/85624
20022         * config/avr/avr.md (*clrmemqi*): Use HImode for alignment operand.
20024 2024-08-16  Lingling Kong  <lingling.kong@intel.com>
20026         * config/i386/sse.md (vpmadd52<vpmadd52type><mode>):
20027         Prohibit egpr for vex version.
20028         (vpdpbusd_<mode>): Ditto.
20029         (vpdpbusds_<mode>): Ditto.
20030         (vpdpwssd_<mode>): Ditto.
20031         (vpdpwssds_<mode>): Ditto.
20032         (*vcvtneps2bf16_v4sf): Ditto.
20033         (*vcvtneps2bf16_v8sf): Ditto.
20034         (vpdp<vpdotprodtype>_<mode>): Ditto.
20035         (vbcstnebf162ps_<mode>): Ditto.
20036         (vbcstnesh2ps_<mode>): Ditto.
20037         (vcvtnee<bf16_ph>2ps_<mode>): Ditto.
20038         (vcvtneo<bf16_ph>2ps_<mode>): Ditto.
20039         (vpdp<vpdpwprodtype>_<mode>): Ditto.
20041 2024-08-16  Andrew Pinski  <quic_apinski@quicinc.com>
20043         PR target/113042
20044         * config/aarch64/aarch64.md (popcount<mode>2): Update pattern
20045         to support ALLI modes.
20047 2024-08-16  Andrew Pinski  <pinskia@gmail.com>
20049         * tree-ssa-phiopt.cc (factor_out_conditional_operation): Update
20050         comment.
20052 2024-08-15  Vineet Gupta  <vineetg@rivosinc.com>
20054         * config/riscv/riscv.md: define_insn for fclass insn.
20055         define_expand for isfinite, isnormal, isinf.
20057 2024-08-15  Roger Sayle  <roger@nextmovesoftware.com>
20058             Uros Bizjak  <ubizjak@gmail.com>
20060         * config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): Split
20061         to an improved implementation on !TARGET_XOP.  On TARGET_XOP, use
20062         a new pseudo for the intermediate to simplify register allocation.
20064 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
20066         PR middle-end/116236
20067         * rtlanal.cc (decompose_normal_address): Try to distinguish
20068         bases and indices based on mode, before resorting to "baseness".
20070 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
20072         PR testsuite/116343
20073         * recog.h (insn_propagation::apply_to_note): Declare.
20074         * recog.cc (insn_propagation::apply_to_note): New function.
20075         * late-combine.cc (insn_combination::substitute_note): Use
20076         apply_to_note instead of apply_to_rvalue.
20077         * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Improve
20078         dumping of costs for noop moves.
20080 2024-08-15  Xi Ruoyao  <xry111@xry111.site>
20082         * config/loongarch/loongarch.md (extendsidi2): Add ("=r", "f")
20083         alternative and use movfr2gr.s for it.  The spec clearly states
20084         movfr2gr.s sign extends the value to GRLEN.
20085         (fclass_<fmt>): Make the result SImode instead of a floating
20086         mode.  The fclass results are really not FP values.
20087         (FCLASS_MASK): New define_int_iterator.
20088         (fclass_optab): New define_int_attr.
20089         (<FCLASS_MASK:fclass_optab><ANYF:mode>): New define_expand
20090         template.
20092 2024-08-15  liuhongt  <hongtao.liu@intel.com>
20094         PR target/116274
20095         * config/i386/i386-expand.cc (ix86_expand_vector_move):
20096         Restrict special case TImode to 128-bit vector conversions via
20097         V2DI under ix86_pre_reload_split ().
20098         * config/i386/i386.cc (inline_secondary_memory_needed):
20099         Movement between GENERAL_REGS and SSE_REGS for TImode doesn't
20100         need secondary reload.
20101         * config/i386/i386.md (*extendsidi2_rex64): Add a
20102         define_peephole2 after it.
20104 2024-08-15  Richard Sandiford  <richard.sandiford@arm.com>
20106         PR target/116371
20107         * config/aarch64/aarch64-sve-builtins-sve2.h (svpext): Rename to...
20108         (svpext_lane): ...this.
20109         * config/aarch64/aarch64-sve-builtins-sve2.cc (svpext_impl): Rename
20110         to...
20111         (svpext_lane_impl): ...this and update instantiation accordingly.
20112         * config/aarch64/aarch64-sve-builtins-sve2.def (svpext): Rename to...
20113         (svpext_lane): ...this.
20115 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20117         * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2,
20118         fix_trunc<mode>ti2): Add guard TARGET_FLOAT128_HW.
20119         * config/rs6000/vsx.md (xsxexpqp_<IEEE128:mode>_<V2DI_DI:mode>,
20120         xsxsigqp_<IEEE128:mode>_<VEC_TI:mode>, xsiexpqpf_<mode>,
20121         xsiexpqp_<IEEE128:mode>_<V2DI_DI:mode>, xscmpexpqp_<code>_<mode>,
20122         *xscmpexpqp, xststdcnegqp_<mode>): Replace guard TARGET_P9_VECTOR
20123         with TARGET_FLOAT128_HW.
20124         (xststdc_<mode>, *xststdc_<mode>, isinf<mode>2): Add guard
20125         TARGET_FLOAT128_HW for the IEEE128 modes.
20127 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20129         PR target/97786
20130         * config/rs6000/vsx.md (isnormal<mode>2): New expand.
20132 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20134         PR target/97786
20135         * config/rs6000/vsx.md (isfinite<mode>2): New expand.
20137 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20139         PR target/97786
20140         * config/rs6000/rs6000.md (constant VSX_TEST_DATA_CLASS_NAN,
20141         VSX_TEST_DATA_CLASS_POS_INF, VSX_TEST_DATA_CLASS_NEG_INF,
20142         VSX_TEST_DATA_CLASS_POS_ZERO, VSX_TEST_DATA_CLASS_NEG_ZERO,
20143         VSX_TEST_DATA_CLASS_POS_DENORMAL, VSX_TEST_DATA_CLASS_NEG_DENORMAL):
20144         Define.
20145         (mode_attr sdq, vsx_altivec, wa_v, x): Define.
20146         (mode_iterator IEEE_FP): Define.
20147         * config/rs6000/vsx.md (isinf<mode>2): New expand.
20148         (expand xststdcqp_<mode>, xststdc<sd>p): Combine into...
20149         (expand xststdc_<mode>): ...this.
20150         (insn *xststdcqp_<mode>, *xststdc<sd>p): Combine into...
20151         (insn *xststdc_<mode>): ...this.
20152         * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Rename
20153         CODE_FOR_xststdcqp_kf as CODE_FOR_xststdc_kf,
20154         CODE_FOR_xststdcqp_tf as CODE_FOR_xststdc_tf.
20155         * config/rs6000/rs6000-builtins.def: Rename xststdcdp as xststdc_df,
20156         xststdcsp as xststdc_sf, xststdcqp_kf as xststdc_kf.
20158 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20160         * gimple-range-op.cc (class cfn_isfinite): New.
20161         (op_cfn_finite): New variables.
20162         (gimple_range_op_handler::maybe_builtin_call): Handle
20163         CFN_BUILT_IN_ISFINITE.
20164         * value-range.h (class frange): Declear known_isnormal and
20165         known_isdenormal_or_zero.
20166         (frange::known_isnormal): Define.
20167         (frange::known_isdenormal_or_zero): Define.
20169 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20171         * gimple-range-op.cc (class cfn_isfinite): New.
20172         (op_cfn_finite): New variables.
20173         (gimple_range_op_handler::maybe_builtin_call): Handle
20174         CFN_BUILT_IN_ISFINITE.
20176 2024-08-15  Haochen Gui  <guihaoc@gcc.gnu.org>
20178         PR target/114678
20179         * gimple-range-op.cc (class cfn_isinf): New.
20180         (op_cfn_isinf): New variables.
20181         (gimple_range_op_handler::maybe_builtin_call): Handle
20182         CASE_FLT_FN (BUILT_IN_ISINF).
20184 2024-08-14  Marek Polacek  <polacek@redhat.com>
20186         PR c++/116015
20187         * gimplify.cc (gimplify_arg): Do not strip a TARGET_EXPR whose
20188         initializer is a CONSTRUCTOR.
20190 2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
20192         * config/s390/vecintrin.h (vec_vstbrh): Remove.
20193         (vec_vstbrf): Remove.
20194         (vec_vstbrg): Remove.
20195         (vec_vstbrq): Remove.
20196         (vec_vstbrf_flt): Remove.
20197         (vec_vstbrg_dbl): Remove.
20198         (vec_vsterb): Remove.
20199         (vec_vsterh): Remove.
20200         (vec_vsterf): Remove.
20201         (vec_vsterg): Remove.
20202         (vec_vsterf_flt): Remove.
20203         (vec_vsterg_dbl): Remove.
20205 2024-08-14  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
20207         * config/s390/s390-builtin-types.def (BT_FN_UV16QI_UV2DI_UV2DI):
20208         New.
20209         (BT_FN_UV16QI_UV2DI_UV2DI_UV16QI): New.
20210         * config/s390/s390-builtins.def (s390_vgfmg_128): New.
20211         (s390_vgfmag_128): New.
20212         * config/s390/vecintrin.h (vec_gfmsum_128): Use s390_vgfmg_128.
20213         (vec_gfmsum_accum_128): Use s390_vgfmag_128.
20215 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
20217         PR target/113729
20218         * config/i386/i386.md (*ashlqi3_1_zext<mode><nf_name>):
20219         New define_insn.
20220         (*ashlhi3_1_zext<mode><nf_name>): Ditto.
20221         (*<insn>qi3_1_zext<mode><nf_name>): Ditto.
20222         (*<insn>hi3_1_zext<mode><nf_name>): Ditto.
20224 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
20226         PR target/113729
20227         * config/i386/i386.md (*andqi_1_zext<mode><nf_name>): New
20228         define_insn.
20229         (*andhi_1_zext<mode><nf_name>): Ditto.
20230         (*<code>qi_1_zext<mode><nf_name>): Ditto.
20231         (*<code>hi_1_zext<mode><nf_name>): Ditto.
20232         (*negqi_1_zext<mode><nf_name>): Ditto.
20233         (*neghi_1_zext<mode><nf_name>): Ditto.
20234         (*one_cmplqi2_1_zext<mode>): Ditto.
20235         (*one_cmplhi2_1_zext<mode>): Ditto.
20237 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
20239         PR target/113729
20240         * config/i386/i386.md (*subqi_1_zext<mode><nf_name>): New
20241         define_insn.
20242         (*subhi_1_zext<mode><nf_name>): Ditto.
20243         (*addqi3_carry_zext<mode>): Ditto.
20244         (*addhi3_carry_zext<mode>): Ditto.
20245         (*addqi3_carry_zext<mode>_0): Ditto.
20246         (*addhi3_carry_zext<mode>_0): Ditto.
20247         (*addqi3_carry_zext<mode>_0r): Ditto.
20248         (*addhi3_carry_zext<mode>_0r): Ditto.
20249         (*subqi3_carry_zext<mode>): Ditto.
20250         (*subhi3_carry_zext<mode>): Ditto.
20251         (*subqi3_carry_zext<mode>_0): Ditto.
20252         (*subhi3_carry_zext<mode>_0): Ditto.
20253         (*subqi3_carry_zext<mode>_0r): Ditto.
20254         (*subhi3_carry_zext<mode>_0r): Ditto.
20256 2024-08-14  Lingling Kong  <lingling.kong@intel.com>
20258         PR target/113729
20259         * config/i386/i386.md (*addqi_1_zext<mode><nf_name>): New
20260         define.
20261         (*addhi_1_zext<mode><nf_name>): Ditto.
20263 2024-08-14  Xianmiao Qu  <cooper.qu@linux.alibaba.com>
20265         * genoutput.cc (struct operand_data): Add member 'eq_next' to
20266         point to the next member with the same hash value in the
20267         hash table.
20268         (compare_operands): Move the comparison of the mode to the very
20269         beginning to accelerate the comparison of the two operands.
20270         (struct operand_data_hasher): New, a class that takes into account
20271         the necessary elements for comparing the equality of two operands
20272         in its hash value.
20273         (operand_data_hasher::hash): New.
20274         (operand_data_hasher::equal): New.
20275         (operand_datas): New, hash table of konwn pattern operands.
20276         (place_operands): Use a hash table instead of traversing the array
20277         to find the same operand.
20278         (main): Add initialization of the hash table 'operand_datas'.
20280 2024-08-14  Jeff Law  <jlaw@ventanamicro.com>
20282         Revert:
20283         2024-08-12  Jeff Law  <jlaw@ventanamicro.com>
20285         * rtlanal.cc (subreg_regno): Update comment.
20286         * final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get
20287         the base regsiter for paradoxical subregs.
20289 2024-08-14  liuhongt  <hongtao.liu@intel.com>
20291         PR target/116174
20292         * config/i386/i386.cc (ix86_align_loops): Move this to ..
20293         * config/i386/i386-features.cc (ix86_align_loops): .. here.
20294         (class pass_align_tight_loops): New class.
20295         (make_pass_align_tight_loops): New function.
20296         * config/i386/i386-passes.def: Insert pass_align_tight_loops
20297         after pass_insert_endbr_and_patchable_area.
20298         * config/i386/i386-protos.h (make_pass_align_tight_loops): New
20299         declare.
20301 2024-08-13  Manolis Tsamis  <manolis.tsamis@vrull.eu>
20303         PR tree-optimization/116353
20304         * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Check
20305         noce_can_force_operand.
20307 2024-08-13  Patrick O'Neill  <patrick@rivosinc.com>
20309         * config/riscv/riscv-v.cc (legitimize_move): extrac -> extract.
20310         (expand_vec_cmp_float): Remove duplicate vmnor.mm.
20311         * config/riscv/riscv-vector-builtins.cc: ins -> insns.
20312         * config/riscv/riscv.cc (riscv_init_machine_status): mwrvv -> mrvv.
20313         * config/riscv/vector-iterators.md: RVVM8QImde -> RVVM8QImode
20314         * config/riscv/vector.md: Replaced non-existant vsetivl with vsetivli.
20316 2024-08-13  Pan Li  <pan2.li@intel.com>
20318         PR target/116103
20319         * internal-fn.cc (type_strictly_matches_mode_p): Add handling
20320         for vector bool type.
20322 2024-08-13  Kewen Lin  <linkw@linux.ibm.com>
20324         PR rtl-optimization/116170
20325         * lra-constraints.cc (curr_insn_transform): Don't emit move back to
20326         old operand if it's CONSTANT_P.
20328 2024-08-13  Mark Wielaard  <mark@klomp.org>
20330         * config/avr/avr.opt.urls: Regenerate.
20332 2024-08-12  Peter Bergner  <bergner@linux.ibm.com>
20334         PR target/114759
20335         * config/rs6000/rs6000.cc (rs6000_override_options_after_change): Move
20336         the disabling of shrink-wrapping from here....
20337         * config/rs6000/rs6000-logue.cc (rs6000_emit_prologue): ...to here.
20339 2024-08-12  Jeff Law  <jlaw@ventanamicro.com>
20341         * rtlanal.cc (subreg_regno): Update comment.
20342         * final.cc (alter_subrg): Always use REGNO (SUBREG_REG ()) to get
20343         the base regsiter for paradoxical subregs.
20345 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
20347         * ifcvt.cc (need_cmov_or_rewire): Renamed init_noce_multiple_sets_info.
20348         (init_noce_multiple_sets_info): Initialize noce_multiple_sets_info.
20349         (noce_convert_multiple_sets_1): Use noce_multiple_sets_info and handle
20350         rewiring of multiple registers.
20351         (noce_convert_multiple_sets): Updated to use noce_multiple_sets_info.
20352         * ifcvt.h (struct noce_multiple_sets_info): Introduce new struct
20353         noce_multiple_sets_info to store info for noce_convert_multiple_sets.
20355 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
20357         * ifcvt.cc (try_emit_cmove_seq): Modify comments.
20358         (noce_convert_multiple_sets_1): Modify comments.
20359         (bb_ok_for_noce_convert_multiple_sets): Allow more operations.
20361 2024-08-12  Manolis Tsamis  <manolis.tsamis@vrull.eu>
20363         * ifcvt.cc (check_for_cc_cmp_clobbers): Use modified_in_p instead.
20364         (noce_convert_multiple_sets_1): Don't use seq2 if it clobbers cc_cmp.
20365         Punt if seq clobbers cond. Refactor the code that sets read_comparison.
20367 2024-08-12  Georg-Johann Lay  <avr@gjlay.de>
20369         PR target/85624
20370         * config/avr/avr.md (setmemhi): Set alignment to 0.
20372 2024-08-12  Joern Rennecke  <joern.rennecke@riscy-ip.com>
20374         * except.cc (sjlj_emit_function_enter):
20375         Set fn_begin_outside_block again if encountering a jump instruction.
20377 2024-08-12  Richard Sandiford  <richard.sandiford@arm.com>
20379         PR other/30920
20380         * splay-tree-utils.h (rooted_splay_tree::insert_relative)
20381         (rooted_splay_tree::lookup_le): New functions.
20382         (rooted_splay_tree::remove_root_and_splay_next): Likewise.
20383         * splay-tree-utils.tcc (rooted_splay_tree::insert_relative): New
20384         function, extracted from...
20385         (rooted_splay_tree::insert): ...here.
20386         (rooted_splay_tree::lookup_le): New function.
20387         (rooted_splay_tree::remove_root_and_splay_next): Likewise.
20388         * tree-ssa-sccvn.cc (pd_range::m_children): New member variable.
20389         (vn_walk_cb_data::vn_walk_cb_data): Initialize first_range.
20390         (vn_walk_cb_data::known_ranges): Use a default_splay_tree.
20391         (vn_walk_cb_data::~vn_walk_cb_data): Remove freeing of known_ranges.
20392         (pd_range_compare, pd_range_alloc, pd_range_dealloc): Delete.
20393         (vn_walk_cb_data::push_partial_def): Rewrite splay tree operations
20394         to use splay-tree-utils.h.
20395         * rtl-ssa/accesses.cc (function_info::add_use): Use insert_relative.
20397 2024-08-12  Kyrylo Tkachov  <ktkachov@nvidia.com>
20399         * config/aarch64/aarch64-simd.md
20400         (aarch64_simd_imm_shl<mode><vczle><vczbe>): Rewrite to new
20401         syntax.  Add =w,w,vs1 alternative.
20402         * config/aarch64/constraints.md (vs1): New constraint.
20404 2024-08-12  Haochen Jiang  <haochen.jiang@intel.com>
20406         * common/config/i386/cpuinfo.h (get_available_features): Handle
20407         avx10.2.
20408         * common/config/i386/i386-common.cc
20409         (OPTION_MASK_ISA2_AVX10_2_256_SET): New.
20410         (OPTION_MASK_ISA2_AVX10_2_512_SET): Ditto.
20411         (OPTION_MASK_ISA2_AVX10_1_256_UNSET):
20412         Add OPTION_MASK_ISA2_AVX10_2_256_UNSET.
20413         (OPTION_MASK_ISA2_AVX10_1_512_UNSET):
20414         Add OPTION_MASK_ISA2_AVX10_2_512_UNSET.
20415         (OPTION_MASK_ISA2_AVX10_2_256_UNSET): New.
20416         (OPTION_MASK_ISA2_AVX10_2_512_UNSET): Ditto.
20417         (ix86_handle_option): Handle avx10.2-256 and avx10.2-512.
20418         * common/config/i386/i386-cpuinfo.h (enum processor_features):
20419         Add FEATURE_AVX10_2_256 and FEATURE_AVX10_2_512.
20420         * common/config/i386/i386-isas.h: Add ISA_NAMES_TABLE_ENTRY for
20421         avx10.2-256 and avx10.2-512.
20422         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
20423         __AVX10_2_256__ and __AVX10_2_512__.
20424         * config/i386/i386-isa.def (AVX10_2): Add DEF_PTA(AVX10_2_256)
20425         and DEF_PTA(AVX10_2_512).
20426         * config/i386/i386-options.cc (isa2_opts): Add -mavx10.2-256 and
20427         -mavx10.2-512.
20428         (ix86_valid_target_attribute_inner_p): Handle avx10.2-256 and
20429         avx10.2-512.
20430         * config/i386/i386.opt: Add option -mavx10.2, -mavx10.2-256 and
20431         -mavx10.2-512.
20432         * config/i386/i386.opt.urls: Regenerated.
20433         * doc/extend.texi: Document avx10.2, avx10.2-256 and avx10.2-512.
20434         * doc/invoke.texi: Document -mavx10.2, -mavx10.2-256 and
20435         -mavx10.2-512.
20436         * doc/sourcebuild.texi: Document target avx10.2, avx10.2-256,
20437         avx10.2-512.
20439 2024-08-12  Roger Sayle  <roger@nextmovesoftware.com>
20441         PR target/116275
20442         * config/i386/i386.md (*extendv2di2_highpart_stv_noavx512vl): New
20443         define_insn_and_split to handle the STV conversion of the DImode
20444         pattern *extendsi2_doubleword_highpart.
20446 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
20448         * config/loongarch/loongarch.md (insn): Added rotatert rotr pairs.
20449         * config/loongarch/simd.md (rotr<mode>3): Remove to ...
20450         (<optab><mode>3): This.
20452 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
20454         PR target/114189
20455         * config/loongarch/lasx.md (vcondu<LASX:mode><ILASX:mode>): Delete.
20456         (vcond<LASX:mode><LASX_2:mode>): Likewise.
20457         * config/loongarch/lsx.md (vcondu<LSX:mode><ILSX:mode>): Likewise.
20458         (vcond<LSX:mode><LSX_2:mode>): Likewise.
20460 2024-08-12  Lulu Cheng  <chenglulu@loongson.cn>
20462         * config/loongarch/lasx.md (xvandn<mode>3): Rename to ...
20463         (andn<mode>3): This.
20464         (xvorn<mode>3): Rename to ...
20465         (iorn<mode>3): This.
20466         * config/loongarch/loongarch-builtins.cc
20467         (CODE_FOR_lsx_vandn_v): Defined as the modified name.
20468         (CODE_FOR_lsx_vorn_v): Likewise.
20469         (CODE_FOR_lasx_xvandn_v): Likewise.
20470         (CODE_FOR_lasx_xvorn_v): Likewise.
20471         (loongarch_expand_builtin_insn): When the builtin function to be
20472         called is __builtin_lasx_xvandn or __builtin_lsx_vandn, swap the
20473         two operands.
20474         * config/loongarch/loongarch.md (<optab>n<mode>): Rename to ...
20475         (<optab>n<mode>3): This.
20476         * config/loongarch/lsx.md (vandn<mode>3): Rename to ...
20477         (andn<mode>3): This.
20478         (vorn<mode>3): Rename to ...
20479         (iorn<mode>3): This.
20481 2024-08-11  Georg-Johann Lay  <avr@gjlay.de>
20483         * config/avr/avr.opt (mlra): Set Undocumented flag.
20485 2024-08-11  Georg-Johann Lay  <avr@gjlay.de>
20487         * config/avr/avr.cc (ra_in_progress): New static function.
20488         (avr_legitimate_address_p, avr_addr_space_legitimate_address_p)
20489         (extra_constraint_Q): Use it with -mlog=.
20491 2024-08-10  Andi Kleen  <ak@gcc.gnu.org>
20493         * doc/cfg.texi: Fix references to dom_walker.
20495 2024-08-10  Georg-Johann Lay  <avr@gjlay.de>
20497         PR target/113934
20498         * config/avr/avr.opt (-mlra): New target option.
20499         * config/avr/avr.cc (avr_use_lra_p): New function.
20500         (TARGET_LRA_P): Use it.
20501         (avr_hard_regno_mode_ok) [lra]: Don't disallow 4-byte modes for X.
20503 2024-08-09  Jeff Law  <jlaw@ventanamicro.com>
20505         PR target/116283
20506         * config/riscv/bitmanip.md (Zbs combiner patterns/splitters): Mask the
20507         bit position in the split code appropriately.
20509 2024-08-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
20511         Revert:
20512         2024-08-08  Surya Kumari Jangala  <jskumari@linux.ibm.com>
20514         PR rtl-optimization/116028
20515         * lra-constraints.cc (split_reg): Spill register before call
20516         insn.
20517         (latest_call_insn): New variable.
20518         (inherit_in_ebb): Track the latest call insn.
20520 2024-08-09  Andrew MacLeod  <amacleod@redhat.com>
20522         PR tree-optimization/114855
20523         * gimple-range-gori.cc (gori_compute::gori_compute): Adjust
20524         ranger_recompute_depth limit based on the number of BBs.
20525         (gori_compute::may_recompute_p): Use previosuly calculated value.
20526         * gimple-range-gori.h (gori_compute::m_recompute_depth): New.
20528 2024-08-09  Andrew MacLeod  <amacleod@redhat.com>
20530         PR tree-optimization/114855
20531         * gimple-range-cache.cc (ranger_cache::fill_block_cache): Do not
20532         process equivalencies if the number of blocks is too high.
20534 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
20536         * config/riscv/riscv.cc (riscv_compute_frame_info): Update
20537         outgoing args size.
20538         (riscv_stack_clash_protection_alloca_probe_range): New.
20539         (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New.
20540         * config/riscv/riscv.h
20541         (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS): New.
20542         (STACK_DYNAMIC_OFFSET): New.
20544 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
20546         * config/riscv/riscv.cc
20547         (riscv_allocate_and_probe_stack_loop): New function.
20548         (riscv_v_adjust_scalable_frame): Add stack-clash protection
20549         support.
20550         (riscv_allocate_and_probe_stack_space): Move the probe loop
20551         implementation to riscv_allocate_and_probe_stack_loop.
20552         * config/riscv/riscv.h: Define RISCV_STACK_CLASH_VECTOR_CFA_REGNUM.
20554 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
20556         * config/riscv/riscv.cc
20557         (riscv_option_override): Enforce that interval is the same size as
20558         guard size.
20559         (riscv_allocate_and_probe_stack_space): New function.
20560         (riscv_expand_prologue): Call riscv_allocate_and_probe_stack_space
20561         to the final allocation of the stack and add stack-clash dump
20562         information.
20563         * config/riscv/riscv.h: Define STACK_CLASH_CALLER_GUARD and
20564         STACK_CLASH_MAX_UNROLL_PAGES.
20566 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
20568         * config/riscv/riscv.cc (riscv_v_adjust_scalable_frame): Move
20569         closer to riscv_expand_prologue.
20571 2024-08-09  Raphael Moreira Zinsly  <rzinsly@ventanamicro.com>
20573         * config/riscv/riscv.cc (riscv_emit_stack_tie): Pass the
20574         register to be tied to the stack pointer as argument.
20575         * config/riscv/riscv.md (stack_tie<mode>): Don't match equal
20576         operands.
20578 2024-08-09  Jakub Jelinek  <jakub@redhat.com>
20580         PR target/116287
20581         * config/i386/i386.cc (ix86_fold_builtin) <case IX86_BUILTIN_BEXTR32>:
20582         When folding into zero without checking whether first argument is
20583         constant, use omit_one_operand.
20584         (ix86_fold_builtin) <case IX86_BUILTIN_BZHI32>: Likewise.
20586 2024-08-09  Andrew Stubbs  <ams@baylibre.com>
20588         * config/gcn/gcn.cc (gcn_asm_trampoline_template): Add .align.
20589         * config/gcn/gcn.h (TRAMPOLINE_SIZE): Increase to 40.
20591 2024-08-09  Georg-Johann Lay  <avr@gjlay.de>
20593         * config/avr/avr.md (*load_<mode>_libgcc, *xload_<mode>_libgcc):
20594         Tidy up code.
20596 2024-08-09  Kyrylo Tkachov  <ktkachov@nvidia.com>
20598         * config/aarch64/constraints.md (Dm): Match CONSTM1_RTX rather
20599         CONST1_RTX.
20601 2024-08-08  Tamar Christina  <tamar.christina@arm.com>
20603         PR target/116229
20604         * config/aarch64/aarch64-simd.md (aarch64_fnegv2di2<vczle><vczbe>): New.
20605         * config/aarch64/aarch64.cc (aarch64_maybe_generate_simd_constant):
20606         Update call to gen_aarch64_fnegv2di2.
20607         * config/aarch64/iterators.md: New UNSPEC_FNEG.
20609 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
20611         * config/avr/avr.cc (Mem_Insn::Mem_Insn): Don't consider MEMs
20612         that are avr_mem_memx_p or avr_load_libgcc_p.
20614 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
20616         * doc/extend.texi (AVR Built-in Functions) <mask1>: Fix a typo.
20618 2024-08-08  Georg-Johann Lay  <avr@gjlay.de>
20620         * config/avr/avr.cc (avr_insn_has_reg_unused_note_p): New function.
20621         (_reg_unused_after): Use it to recognize more cases.
20622         (avr_out_lpm_no_lpmx) [POST_INC]: Use reg_unused_after.
20624 2024-08-08  Andrew Stubbs  <ams@baylibre.com>
20626         * config/gcn/gcn.cc (gcn_conditional_register_usage): Fix registers
20627         remaining after maximum allocation using TARGET_VGPR_GRANULARITY.
20629 2024-08-08  Christoph Müllner  <christoph.muellner@vrull.eu>
20631         * config/riscv/constraints.md (th_m_noi): New constraint.
20632         * config/riscv/riscv.md: Adjust movdf_hardfloat_rv32 for
20633         XTheadMemIdx.
20635 2024-08-08  Christoph Müllner  <christoph.muellner@vrull.eu>
20637         PR target/116131
20638         * config/riscv/thead.cc (th_memidx_classify_address_index):
20639         Recognize all possible XTheadMemIdx memory operand structures.
20640         (th_fmemidx_output_index): Do strict classification.
20641         * config/riscv/thead.md (*th_memidx_operand): Remove.
20642         (TARGET_XTHEADMEMIDX): Likewise.
20643         (TARGET_HARD_FLOAT && TARGET_XTHEADFMEMIDX): Likewise.
20644         (!TARGET_64BIT && TARGET_XTHEADMEMIDX): Likewise.
20645         (*th_memidx_I_a): Likewise.
20646         (*th_memidx_I_b): Likewise.
20647         (*th_memidx_I_c): Likewise.
20648         (*th_memidx_US_a): Likewise.
20649         (*th_memidx_US_b): Likewise.
20650         (*th_memidx_US_c): Likewise.
20651         (*th_memidx_UZ_a): Likewise.
20652         (*th_memidx_UZ_b): Likewise.
20653         (*th_memidx_UZ_c): Likewise.
20654         (*th_fmemidx_movsf_hardfloat): Likewise.
20655         (*th_fmemidx_movdf_hardfloat_rv64): Likewise.
20656         (*th_fmemidx_I_a): Likewise.
20657         (*th_fmemidx_I_c): Likewise.
20658         (*th_fmemidx_US_a): Likewise.
20659         (*th_fmemidx_US_c): Likewise.
20660         (*th_fmemidx_UZ_a): Likewise.
20661         (*th_fmemidx_UZ_c): Likewise.
20663 2024-08-08  Andrew Pinski  <quic_apinski@quicinc.com>
20665         * tree-vect-patterns.cc (NUM_PATTERNS): Delete.
20666         (vect_pattern_recog_1): Constify and change
20667         recog_func to a reference.
20668         (vect_pattern_recog): Use range-based loop over
20669         vect_vect_recog_func_ptrs.
20671 2024-08-08  Jin Ma  <jinma@linux.alibaba.com>
20673         * config/riscv/riscv.h (RISCV_DWARF_VLENB): Delete.
20675 2024-08-08  Andrew Stubbs  <ams@baylibre.com>
20677         * config/gcn/gcn.cc (gcn_trampoline_init): Re-enable trampolines.
20679 2024-08-08  Jeff Law  <jlaw@ventanamicro.com>
20681         PR target/116240
20682         * config/riscv/riscv.cc (riscv_rtx_costs): Ensure object is a
20683         comparison before looking at its arguments.
20685 2024-08-08  Manolis Tsamis  <manolis.tsamis@vrull.eu>
20687         PR tree-optimization/98138
20688         * tree-vect-slp.cc: Avoid duplicates in two_operators nodes.
20690 2024-08-08  Roger Sayle  <roger@nextmovesoftware.com>
20692         * config/i386/i386.cc (ix86_mode_can_transfer_bits): Use E_?Fmode
20693         enumeration constants in switch statement.
20695 2024-08-08  Surya Kumari Jangala  <jskumari@linux.ibm.com>
20697         PR rtl-optimization/116028
20698         * lra-constraints.cc (split_reg): Spill register before call
20699         insn.
20700         (latest_call_insn): New variable.
20701         (inherit_in_ebb): Track the latest call insn.
20703 2024-08-08  Jiawei  <jiawei@iscas.ac.cn>
20705         * common/config/riscv/riscv-common.cc: New extension.
20706         * config/riscv/riscv.opt: New mask.
20708 2024-08-07  Iain Sandoe  <iain@sandoe.co.uk>
20710         PR target/116237
20711         * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for
20712         weak_framework.
20713         * config/darwin.opt: Handle weak_framework driver option.
20715 2024-08-07  Prathamesh Kulkarni  <prathameshk@nvidia.com>
20717         PR ipa/96265
20718         PR ipa/111937
20719         * data-streamer-in.cc (streamer_read_poly_uint64): Remove code for
20720         streaming, and call poly_int_read_common instead.
20721         (streamer_read_poly_int64): Likewise.
20722         * data-streamer.cc (host_num_poly_int_coeffs): Conditionally define
20723         new variable if ACCEL_COMPILER is defined.
20724         * data-streamer.h (host_num_poly_int_coeffs): Declare.
20725         (poly_int_read_common): New function template.
20726         (bp_unpack_poly_value): Remove code for streaming and call
20727         poly_int_read_common instead.
20728         * lto-streamer-in.cc (lto_input_mode_table): Stream-in host
20729         NUM_POLY_INT_COEFFS into host_num_poly_int_coeffs if ACCEL_COMPILER
20730         is defined.
20731         * lto-streamer-out.cc (lto_write_mode_table): Stream out
20732         NUM_POLY_INT_COEFFS if offloading is enabled.
20733         * poly-int.h (MAX_NUM_POLY_INT_COEFFS_BITS): New macro.
20734         * tree-streamer-in.cc (lto_input_ts_poly_tree_pointers): Adjust
20735         streaming-in of poly_int.
20737 2024-08-07  Jakub Jelinek  <jakub@redhat.com>
20739         PR c++/116219
20740         * gimple-expr.cc (remove_suffix): Formatting fixes.
20741         (create_tmp_var_name): Don't call clean_symbol_name.
20742         * gimplify.cc (gimplify_init_constructor): When promoting automatic
20743         DECL_NAMELESS vars to static, don't preserve their DECL_NAME.
20745 2024-08-07  Julian Brown  <julian@codesourcery.com>
20746             Tobias Burnus  <tobias@baylibre.com>
20748         * builtins.def (DEF_GOMP_BUILTIN_COMPILER): Define
20749         DEF_GOMP_BUILTIN_COMPILER to handle the non-prefix version.
20750         * gimple-fold.cc (gimple_fold_builtin_omp_is_initial_device): New.
20751         (gimple_fold_builtin): Call it.
20752         * omp-builtins.def (BUILT_IN_OMP_IS_INITIAL_DEVICE): Define.
20753         * tree.cc (get_file_function_name): Support names for on-target
20754         constructor/destructor functions.
20756 2024-08-07  Carl Love  <cel@linux.ibm.com>
20758         * config/rs6000/altivec.md (vs<SLDB_lr>db_<mode>): Change
20759         define_insn iterator to VEC_IC.
20760         * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsldoi_v1ti,
20761         __builtin_vsx_xxsldwi_v1ti, __builtin_altivec_vsldb_v1ti,
20762         __builtin_altivec_vsrdb_v1ti): New builtin definitions.
20763         * config/rs6000/rs6000-overload.def (vec_sld, vec_sldb, vec_sldw,
20764         vec_sll, vec_slo, vec_srdb, vec_srl, vec_sro): New overloaded
20765         definitions.
20766         * doc/extend.texi (vec_sld, vec_sldb, vec_sldw, vec_sll, vec_slo,
20767         vec_srdb, vec_srl, vec_sro): Add documentation for new overloaded
20768         built-ins.
20770 2024-08-07  Richard Biener  <rguenther@suse.de>
20772         PR tree-optimization/116258
20773         * tree-vect-generic.cc (expand_vector_operations_1): Do not
20774         lower PAREN_EXPR.
20776 2024-08-07  Xi Ruoyao  <xry111@xry111.site>
20777             Richard Biener  <rguenther@suse.de>
20779         PR tree-optimization/116142
20780         * tree-vect-stmts.cc (supportable_widening_operation): Remove an
20781         redundant and incorrect vect_reduction_def check, and fix the
20782         operand of another vect_reduction_def check.
20784 2024-08-07  Richard Biener  <rguenther@suse.de>
20786         PR tree-optimization/116166
20787         * tree-ssa-threadedge.h (jump_threader::thread_around_empty_blocks):
20788         Add limit parameter.
20789         (jump_threader::thread_through_normal_block): Likewise.
20790         * tree-ssa-threadedge.cc (jump_threader::thread_around_empty_blocks):
20791         Honor and decrement limit parameter.
20792         (jump_threader::thread_through_normal_block): Likewise.
20793         (jump_threader::thread_across_edge): Initialize limit from
20794         param_max_jump_thread_paths and pass it down to workers.
20796 2024-08-07  Pan Li  <pan2.li@intel.com>
20798         PR target/116202
20799         * tree-vect-patterns.cc (vect_recog_sat_trunc_pattern): Add the
20800         type_has_mode_precision_p check for the lhs type.
20802 2024-08-07  Patrick Palka  <ppalka@redhat.com>
20804         PR c++/116064
20805         * diagnostic.cc (diagnostic_context::initialize): Set
20806         m_adjust_diagnostic_info.
20807         (diagnostic_context::report_diagnostic): Call
20808         m_adjust_diagnostic_info.
20809         * diagnostic.h (diagnostic_context::m_adjust_diagnostic_info):
20810         New data member.
20811         * doc/invoke.texi (-Wno-template-body): Document.
20812         (-fpermissive): Mention -Wtemplate-body.
20814 2024-08-06  David Malcolm  <dmalcolm@redhat.com>
20816         PR other/116177
20817         * diagnostic-format-sarif.cc (sarif_invocation::prepare_to_flush):
20818         If the diagnostics would lead to us exiting with a failure code,
20819         then emit "executionSuccessful": False (SARIF v2.1.0 section
20820         §3.20.14).
20821         * diagnostic.cc (diagnostic_context::execution_failed_p): New.
20822         * diagnostic.h (diagnostic_context::execution_failed_p): New decl.
20823         * toplev.cc (toplev::main): Use it for determining returned value.
20825 2024-08-06  Tamar Christina  <tamar.christina@arm.com>
20827         * config/aarch64/aarch64-protos.h (struct sve_vec_cost): Add
20828         gather_load_x32_init_cost and gather_load_x64_init_cost.
20829         * config/aarch64/aarch64.cc (aarch64_vector_costs): Add
20830         m_sve_gather_scatter_init_cost.
20831         (aarch64_vector_costs::add_stmt_cost): Use them.
20832         (aarch64_vector_costs::finish_cost): Likewise.
20833         * config/aarch64/tuning_models/a64fx.h: Update.
20834         * config/aarch64/tuning_models/cortexx925.h: Update.
20835         * config/aarch64/tuning_models/generic.h: Update.
20836         * config/aarch64/tuning_models/generic_armv8_a.h: Update.
20837         * config/aarch64/tuning_models/generic_armv9_a.h: Update.
20838         * config/aarch64/tuning_models/neoverse512tvb.h: Update.
20839         * config/aarch64/tuning_models/neoversen2.h: Update.
20840         * config/aarch64/tuning_models/neoversen3.h: Update.
20841         * config/aarch64/tuning_models/neoversev1.h: Update.
20842         * config/aarch64/tuning_models/neoversev2.h: Update.
20843         * config/aarch64/tuning_models/neoversev3.h: Update.
20844         * config/aarch64/tuning_models/neoversev3ae.h: Update.
20846 2024-08-06  Gerald Pfeifer  <gerald@pfeifer.com>
20848         * doc/gm2.texi (Limitations): Rephrase. Remove invalid link.
20850 2024-08-06  John David Anglin  <danglin@gcc.gnu.org>
20852         PR target/113384
20853         * config/pa/pa.cc (hppa_legitimize_address): Add check to
20854         ensure constant is an integral multiple of shift the value.
20856 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
20858         * config/riscv/riscv-target-attr.cc (num_occurences_in_str): Rename...
20859         (num_occurrences_in_str): here.
20860         (riscv_process_target_attr): Update num_occurences_in_str callsite.
20861         * config/riscv/riscv-v.cc (emit_vec_widden_cvt_x_f): widden -> widen.
20862         (emit_vec_widen_cvt_x_f): Ditto.
20863         (emit_vec_widden_cvt_f_f): Ditto.
20864         (emit_vec_widen_cvt_f_f): Ditto.
20865         (emit_vec_rounding_to_integer): Update *widden* callsites.
20866         * config/riscv/riscv-vector-builtins.cc (expand_builtin): Update
20867         required_ext_to_isa_name callsite and fix xtheadvector typo.
20868         * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): Rename...
20869         (required_ext_to_isa_name): here.
20870         * config/riscv/riscv_th_vector.h: Fix endif label.
20871         * config/riscv/vector-crypto.md: boardcast_scalar -> broadcast_scalar.
20872         * config/riscv/vector.md: Ditto.
20874 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
20876         * config/riscv/arch-canonicalize: Fix typos in comments.
20877         * config/riscv/autovec.md: Ditto.
20878         * config/riscv/riscv-avlprop.cc (avl_can_be_propagated_p): Ditto.
20879         (pass_avlprop::get_vlmax_ta_preferred_avl): Ditto.
20880         * config/riscv/riscv-modes.def (ADJUST_FLOAT_FORMAT): Ditto.
20881         (VLS_MODES): Ditto.
20882         * config/riscv/riscv-opts.h (TARGET_ZICOND_LIKE): Ditto.
20883         (enum rvv_vector_bits_enum): Ditto.
20884         * config/riscv/riscv-protos.h (enum insn_flags): Ditto.
20885         (enum insn_type): Ditto.
20886         * config/riscv/riscv-sr.cc (riscv_sr_match_epilogue): Ditto.
20887         * config/riscv/riscv-string.cc (expand_block_move): Ditto.
20888         * config/riscv/riscv-v.cc (rvv_builder::is_repeating_sequence): Ditto.
20889         (rvv_builder::single_step_npatterns_p): Ditto.
20890         (calculate_ratio): Ditto.
20891         (expand_const_vector): Ditto.
20892         (shuffle_merge_patterns): Ditto.
20893         (shuffle_compress_patterns): Ditto.
20894         (expand_select_vl): Ditto.
20895         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS): Ditto.
20896         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
20897         * config/riscv/riscv-vector-builtins.cc (function_builder::add_function): Ditto.
20898         (resolve_overloaded_builtin): Ditto.
20899         * config/riscv/riscv-vector-builtins.def (vbool1_t): Ditto.
20900         (vuint8m8_t): Ditto.
20901         (vuint16m8_t): Ditto.
20902         (vfloat16m8_t): Ditto.
20903         (unsigned_vector): Ditto.
20904         * config/riscv/riscv-vector-builtins.h (enum required_ext): Ditto.
20905         * config/riscv/riscv-vector-costs.cc (get_store_value): Ditto.
20906         (costs::analyze_loop_vinfo): Ditto.
20907         (costs::add_stmt_cost): Ditto.
20908         * config/riscv/riscv.cc (riscv_build_integer): Ditto.
20909         (riscv_vector_type_p): Ditto.
20910         * config/riscv/thead.cc (th_mempair_output_move): Ditto.
20911         * config/riscv/thead.md: Ditto.
20912         * config/riscv/vector-iterators.md: Ditto.
20913         * config/riscv/vector.md: Ditto.
20914         * config/riscv/zc.md: Ditto.
20916 2024-08-06  Roger Sayle  <roger@nextmovesoftware.com>
20918         * config/i386/i386-expand.cc (ix86_expand_v2di_ashiftrt): New
20919         function refactored from define_expand ashrv2di3.
20920         * config/i386/i386-features.cc (general_scalar_to_vector_candidate_p)
20921         <case ASHIFTRT>: Handle like other shifts and rotates.
20922         * config/i386/i386-protos.h (ix86_expand_v2di_ashiftrt): Prototype.
20923         * config/i386/sse.md (ashrv2di3): Call ix86_expand_v2di_ashiftrt.
20924         (*ashrv2di3): New define_insn_and_split to enable creation by stv2
20925         pass, and splitting during split1 reusing ix86_expand_v2di_ashiftrt.
20927 2024-08-06  Patrick O'Neill  <patrick@rivosinc.com>
20928             Jakub Jelinek  <jakub@redhat.com>
20930         PR target/116152
20931         * config/riscv/riscv.cc (riscv_option_override): Fix url
20932         formatting.
20934 2024-08-06  Filip Kastl  <fkastl@suse.cz>
20936         * gimple-ssa-sccopy.cc (class scc_copy_prop): New class.
20937         (replace_scc_by_value): Put into...
20938         (scc_copy_prop::replace_scc_by_value): ...scc_copy_prop.
20939         (sccopy_visit_op): Put into...
20940         (scc_copy_prop::visit_op): ...scc_copy_prop.
20941         (sccopy_propagate): Put into...
20942         (scc_copy_prop::propagate): ...scc_copy_prop.
20943         (init_sccopy): Replace by...
20944         (scc_copy_prop::scc_copy_prop): ...the construtor.
20945         (finalize_sccopy): Replace by...
20946         (scc_copy_prop::~scc_copy_prop): ...the destructor.
20947         (pass_sccopy::execute): Use scc_copy_prop.
20949 2024-08-06  Richard Biener  <rguenther@suse.de>
20951         PR tree-optimization/116241
20952         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Handle
20953         non-COND_EXPR nodes in SLP reduction chain following.
20955 2024-08-06  Jakub Jelinek  <jakub@redhat.com>
20957         PR tree-optimization/116224
20958         * wide-int.cc (wi::mul_internal): If prec isn't multiple of
20959         HOST_BITS_PER_WIDE_INT, for need_overflow checking only look at
20960         the least significant prec bits starting with r[half_blocks_needed].
20962 2024-08-06  Richard Biener  <rguenther@suse.de>
20964         PR middle-end/111821
20965         * expmed.cc (store_integral_bit_field): Terminate the
20966         word-wise copy loop when we get out of the destination
20967         and do a forward copy.  Skip the word if it would be
20968         outside of the destination in case of a backward copy.
20970 2024-08-06  Haochen Gui  <guihaoc@gcc.gnu.org>
20972         * config/rs6000/predicates.md (any_operand): Add const_vector.
20974 2024-08-06  Feng Xue  <fxue@os.amperecomputing.com>
20976         PR tree-optimization/115228
20977         * tree-vect-data-refs.cc (vect_get_smallest_scalar_type): Add
20978         missed opcodes that involve widening operation.
20980 2024-08-06  Feng Xue  <fxue@os.amperecomputing.com>
20982         PR tree-optimization/115707
20983         * tree-vect-patterns.cc (vect_look_through_possible_promotion): Allow
20984         unsigned-to-signed promotion.
20986 2024-08-06  Andrew Pinski  <quic_apinski@quicinc.com>
20988         PR target/116189
20989         * config/sh/sh.cc (sh_recog_treg_set_expr): Don't call make_insn_raw,
20990         make the insn with a fake uid.
20992 2024-08-05  Patrick O'Neill  <patrick@rivosinc.com>
20994         PR target/116152
20995         * config/riscv/riscv.cc (riscv_option_override): Add deprecation
20996         warning.
20998 2024-08-05  Mark Harmstone  <mark@harmstone.com>
21000         * dwarf2codeview.cc (get_type_num_const_type): Handle missing
21001         DW_AT_type attribute.
21002         (get_type_num_volatile_type): Likewise.
21004 2024-08-05  Jose E. Marchesi  <jose.marchesi@oracle.com>
21006         * config/bpf/atomic.md ("atomic_add<AMO:mode>"): Remove insn.
21007         ("atomic_and<AMO:mode>"): Likewise
21008         ("atomic_or<AMO:mode>"): Likewise.
21009         ("atomic_xor<AMO:mode>"): Likewise.
21011 2024-08-05  Jennifer Schmitz  <jschmitz@nvidia.com>
21013         * config/aarch64/aarch64.md (*and<mode>_compare0): Change attribute.
21015 2024-08-05  Filip Kastl  <fkastl@suse.cz>
21017         * gimple-ssa-sccopy.cc: Move a misplaced comment.
21019 2024-08-05  Kyrylo Tkachov  <ktkachov@nvidia.com>
21021         PR tree-optimization/116139
21022         * tree-ssa-reassoc.cc (get_reassociation_width): Move width_mult
21023         <= width comparison to if condition rather than assert.
21025 2024-08-05  Richard Sandiford  <richard.sandiford@arm.com>
21027         Revert:
21028         2024-08-02  Richard Sandiford  <richard.sandiford@arm.com>
21030         PR rtl-optimization/116145
21031         * rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code
21032         movement if MEM_READONLY_P is also true.
21034 2024-08-05  Alex Coplan  <alex.coplan@arm.com>
21036         * gdbhooks.py: Add attempted call to "on-gcc-hooks-load" once
21037         we've finished loading the hooks.
21039 2024-08-05  Alex Coplan  <alex.coplan@arm.com>
21041         * gdbhooks.py (GCCDotCmd): New.
21042         (gcc_dot_cmd): New. Use it ...
21043         (DotFn.invoke): ... here.
21045 2024-08-05  Andrew Pinski  <quic_apinski@quicinc.com>
21047         PR rtl-optimization/116179
21048         * ira.cc (split_live_ranges_for_shrink_wrap): For the uses loop,
21049         only look at non-debug insns.
21051 2024-08-04  Jeff Law  <jlaw@ventanamicro.com>
21053         PR rtl-optimization/116199
21054         * reload.cc (operands_match_p): Verify subreg is expressable before
21055         trying to simplify and match it to another operand.
21057 2024-08-02  Marek Polacek  <polacek@redhat.com>
21059         * doc/invoke.texi: Document that -Wdangling-reference is
21060         enabled by -Wextra.
21062 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
21064         PR middle-end/116058
21065         * genemit.cc (struct clobber_pat): Change pattern to be rtvec.
21066         Add code field.
21067         (gen_insn): Look through an explicit parallel if there was one.
21068         Update store to new clobber_pat.
21069         (output_add_clobbers): Update call to gen_exp for the changed
21070         clobber_pat.
21072 2024-08-02  Patrick O'Neill  <patrick@rivosinc.com>
21074         * config/riscv/sync-rvwmo.md: Add conditional length attributes.
21075         * config/riscv/sync-ztso.md: Ditto.
21076         * config/riscv/sync.md: Fix incorrect insn length attributes and
21077         reformat existing conditional checks.
21079 2024-08-02  Jennifer Schmitz  <jschmitz@nvidia.com>
21081         * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
21082         fusion logic.
21083         * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
21084         (cmp+cset): Likewise.
21085         * config/aarch64/tuning_models/neoversev2.h: Enable logic in
21086         field fusible_ops.
21088 2024-08-02  Richard Sandiford  <richard.sandiford@arm.com>
21090         PR rtl-optimization/116145
21091         * rtlanal.cc (may_trap_p_1): Trust MEM_NOTRAP_P even for code
21092         movement if MEM_READONLY_P is also true.
21094 2024-08-02  Andrew Pinski  <quic_apinski@quicinc.com>
21096         PR tree-optimization/116156
21097         * tree-ssa-forwprop.cc (pass_forwprop::execute): Don't add
21098         uses if the statement was a debug statement.
21100 2024-08-02  Lingling Kong  <lingling.kong@intel.com>
21102         * config/i386/constraints.md: Fixed the comment/naming for je/jM/jO.
21103         * config/i386/predicates.md (apx_ndd_memory_operand): Renamed and
21104         fixed the comment.
21105         (apx_evex_memory_operand): New name.
21106         (apx_ndd_add_memory_operand): Ditto.
21107         (apx_evex_add_memory_operand): Ditto.
21109 2024-08-02  Lingling Kong  <lingling.kong@intel.com>
21111         * config/i386/i386.md (nf_mem_constraint): Fixed the constraint
21112         for the define_subst_attr.
21113         (nf_mem_constraint): Added new define_subst_attr.
21114         (*add<mode>_1<nf_name>): Fixed the constraint.
21116 2024-08-02  Yang Yujie  <yangyujie@loongson.cn>
21118         * config/loongarch/genopts/gen-evolution.awk: Do not use
21119         "length()" to compute the size of an array.
21121 2024-08-02  Pengxuan Zheng  <quic_pzheng@quicinc.com>
21123         PR target/113860
21124         * config/aarch64/aarch64-simd.md (popcount<mode>2): Add TARGET_SVE
21125         support.
21126         * config/aarch64/aarch64-sve.md (@aarch64_pred_<optab><mode>): Use new
21127         iterator SVE_VDQ_I.
21128         * config/aarch64/iterators.md (SVE_VDQ_I): New mode iterator.
21129         (VPRED): Add V8QI, V16QI, V4HI, V8HI and V2SI.
21131 2024-08-01  Robin Dapp  <rdapp@ventanamicro.com>
21133         PR target/116149
21134         * config/riscv/vector.md: Fix mode_idx attribute of scalar
21135         widen add/sub variants.
21137 2024-08-01  Patrick O'Neill  <patrick@rivosinc.com>
21139         PR target/116111
21140         * config/riscv/riscv.cc (riscv_option_override): Add error.
21142 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21144         * config/aarch64/aarch64-cores.def (cortex-x925): New.
21145         * config/aarch64/aarch64-tune.md: Regenerate.
21146         * config/aarch64/tuning_models/cortexx925.h: New file.
21147         * config/aarch64/aarch64.cc: Use it.
21148         * doc/invoke.texi: Document it.
21150 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21152         * config/aarch64/tuning_models/neoversen2.h: Update costs.
21154 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21156         * config/aarch64/tuning_models/generic_armv9_a.h: Update costs.
21158 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21160         * config/aarch64/aarch64-cores.def (neoverse-n3, cortex-a725): New.
21161         * config/aarch64/aarch64-tune.md: Regenerate.
21162         * config/aarch64/tuning_models/neoversen3.h: New file.
21163         * config/aarch64/aarch64.cc: Use it.
21164         * doc/invoke.texi: Document it.
21166 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21168         * config/aarch64/aarch64-cores.def (neoverse-v3ae): New.
21169         * config/aarch64/aarch64-tune.md: Regenerate.
21170         * config/aarch64/tuning_models/neoversev3ae.h: New file.
21171         * config/aarch64/aarch64.cc: Use it.
21172         * doc/invoke.texi: Document it.
21174 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21176         * config/aarch64/aarch64-cores.def (cortex-x4): Update.
21177         (neoverse-v3): New.
21178         * config/aarch64/aarch64-tune.md: Regenerate.
21179         * config/aarch64/tuning_models/neoversev3.h: New file.
21180         * config/aarch64/aarch64.cc: Use it.
21181         * doc/invoke.texi: Document it.
21183 2024-08-01  Tamar Christina  <tamar.christina@arm.com>
21185         * config/aarch64/aarch64-cores.def (cortex-x3): Use Neoverse-V2 costs.
21186         * config/aarch64/tuning_models/neoversev2.h: Update costs.
21188 2024-08-01  Andrew Pinski  <quic_apinski@quicinc.com>
21190         PR tree-optimization/116120
21191         * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Add test for `x != y`
21192         in result.
21193         (`(a ? x : y) eq/ne (b ? y : x)`): Add test for `x == y` in result.
21195 2024-08-01  liuhongt  <hongtao.liu@intel.com>
21197         PR target/116096
21198         * config/i386/constraints.md (Wc): New constraint for integer
21199         1 or -1.
21200         * config/i386/i386.md (ashl<mode>3_doubleword): Refine
21201         constraint with Wc.
21203 2024-08-01  Richard Biener  <rguenther@suse.de>
21205         PR tree-optimization/114659
21206         * tree-ssa-sccvn.cc (visit_reference_op_load): Do not
21207         prevent punning from modes with padding here, but ...
21208         (vn_reference_eq): ... ensure this here, also honoring
21209         types with modes that cannot act as bit container.
21211 2024-08-01  Richard Biener  <rguenther@suse.de>
21213         * config/i386/i386.cc (TARGET_MODE_CAN_TRANSFER_BITS): Define.
21214         (ix86_mode_can_transfer_bits): New function.
21216 2024-08-01  Richard Biener  <rguenther@suse.de>
21218         * target.def (mode_can_transfer_bits): New target hook.
21219         * target.h (mode_can_transfer_bits): New function wrapping the
21220         hook and providing default behavior.
21221         * doc/tm.texi.in: Update.
21222         * doc/tm.texi: Re-generate.
21224 2024-08-01  Georg-Johann Lay  <avr@gjlay.de>
21226         * config/avr/avr.md (cbranch<mode>4_insn): Split to a test of the
21227         high part against 0 if possible.
21229 2024-08-01  Georg-Johann Lay  <avr@gjlay.de>
21231         * config/avr/constraints.md (YMM): New constraint.
21232         * config/avr/avr.md (cmp<mode>3, *cmp<mode>3)
21233         (cbranch<mode>4_insn): Allow YMM where M is allowed.
21235 2024-08-01  Jakub Jelinek  <jakub@redhat.com>
21237         PR target/115981
21238         * config/i386/sse.md
21239         (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Swap the
21240         first two VEC_MERGE operands, renumber match_operands and test
21241         for 0xF or 0x3 rather than 0xFFF0 or 0xFC immediate.
21243 2024-08-01  Tobias Burnus  <tburnus@baylibre.com>
21244             Richard Biener  <rguenther@suse.de
21246         PR middle-end/115637
21247         * gimplify.cc (gimplify_body): Fix macro name in the comment.
21248         * omp-offload.cc (find_link_var_op): Rename to ...
21249         (process_link_var_op): ... this. Replace value expr.
21250         (pass_omp_target_link::execute): Update walk_gimple_stmt call.
21252 2024-08-01  Lingling Kong  <lingling.kong@intel.com>
21253             Hu, Lin1  <lin1.hu@intel.com>
21255         PR target/113744
21256         * config/i386/i386.md (*add<mode>_4): Remove ndd support.
21257         (*adddi_4): Ditto.
21259 2024-08-01  Mark Harmstone  <mark@harmstone.com>
21261         * dwarf2codeview.cc (get_type_num_struct): Fix NULL pointer dereference.
21263 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
21265         * diagnostic-path.cc
21266         (thread_event_printer::print_swimlane_for_event_range): Gracefully
21267         handle logical_location::get_name_for_path_output returning null.
21269 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
21271         * diagnostic-format-sarif.cc
21272         (sarif_location_manager::worklist_item::unlabelled_secondary_location):
21273         New enum value.
21274         (sarif_location_manager::m_unlabelled_secondary_locations): New
21275         field.
21276         (sarif_location_manager::process_worklist_item): Handle unlabelled
21277         secondary locations.
21278         (sarif_builder::make_location_object): Generalize code to handle
21279         ranges within a rich_location so as well as using annotations for
21280         those with labels, we now add related locations for those without
21281         labels.
21283 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
21285         * diagnostic-format-sarif.cc (sarif_builder::sarif_builder): Assert
21286         that m_line_maps is nonnull.
21287         (diagnostic_output_format_init_sarif_stderr): Add "line_maps"
21288         param and pass to format ctor.
21289         (diagnostic_output_format_init_sarif_file): Likewise.
21290         (diagnostic_output_format_init_sarif_stream): Likewise.
21291         * diagnostic.cc (diagnostic_output_format_init): Pass "line_table"
21292         as line_maps param to the above.
21293         * diagnostic.h (diagnostic_output_format_init_sarif_stderr): Add
21294         "line_maps" param.
21295         (diagnostic_output_format_init_sarif_file): Likewise.
21296         (diagnostic_output_format_init_sarif_stream): Likewise.
21298 2024-08-01  David Malcolm  <dmalcolm@redhat.com>
21300         * diagnostic-format-sarif.cc: Tweak ASCII art in comment
21301         to show edges for both directions in the digraph.
21303 2024-07-31  Andrew Pinski  <quic_apinski@quicinc.com>
21305         PR middle-end/116134
21306         * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): Check that
21307         a and b types match.
21308         (`(a ? x : y) eq/ne (b ? y : x)`): Likewise.
21310 2024-07-31  Jeff Law  <jlaw@ventanamicro.com>
21312         * ext-dce.cc (carry_backpropagate): Change more guards of [U]INTVAL to
21313         test CONST_INT_P rather than CONSTANT_P, fixing rtl-checking failures.
21315 2024-07-31  Dimitar Dimitrov  <dimitar@dinux.eu>
21317         * common/config/pru/pru-common.cc
21318         (TARGET_OPTION_OPTIMIZATION_TABLE): New definition.
21319         * config/pru/pru.cc (TARGET_MIN_ANCHOR_OFFSET): Set minimal
21320         anchor offset.
21321         (TARGET_MAX_ANCHOR_OFFSET): Set maximum anchor offset.
21323 2024-07-31  Jeff Law  <jlaw@ventanamicro.com>
21325         PR rtl-optimization/116136
21326         * simplify-rtx.cc (simplify_context::simplify_subreg): Check
21327         that we're working with the lowpart offset rather than byte 0.
21329 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
21331         * config.gcc (extra_headers): Install arm_private_fp8.h.
21332         * config/aarch64/arm_neon.h: Include arm_private_fp8.h.
21333         * config/aarch64/arm_sve.h: Likewise.
21334         * config/aarch64/arm_private_fp8.h: New file
21335         (fpm_t): New type representing fpmr values.
21336         (enum __ARM_FPM_FORMAT): New enum representing valid fp8 formats.
21337         (enum __ARM_FPM_OVERFLOW): New enum representing how some fp8
21338         calculations work.
21339         (__arm_fpm_init): New.
21340         (__arm_set_fpm_src1_format): Likewise.
21341         (__arm_set_fpm_src2_format): Likewise.
21342         (__arm_set_fpm_dst_format): Likewise.
21343         (__arm_set_fpm_overflow_cvt): Likewise.
21344         (__arm_set_fpm_overflow_mul): Likewise.
21345         (__arm_set_fpm_lscale): Likewise.
21346         (__arm_set_fpm_lscale2): Likewise.
21347         (__arm_set_fpm_nscale): Likewise.
21349 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
21351         * config/aarch64/aarch64.cc (aarch64_hard_regno_nregs): Add
21352         support for MOVEABLE_SYSREGS class.
21353         (aarch64_hard_regno_mode_ok): Allow reads and writes to fpmr.
21354         (aarch64_regno_regclass): Support MOVEABLE_SYSREGS class.
21355         (aarch64_class_max_nregs): Likewise.
21356         * config/aarch64/aarch64.h (FIXED_REGISTERS): add fpmr.
21357         (CALL_REALLY_USED_REGISTERS): Likewise.
21358         (REGISTER_NAMES): Likewise.
21359         (enum reg_class): Add MOVEABLE_SYSREGS class.
21360         (REG_CLASS_NAMES): Likewise.
21361         (REG_CLASS_CONTENTS): Update class bitmaps to deal with fpmr,
21362         the new MOVEABLE_REGS class and renumbering of registers.
21363         * config/aarch64/aarch64.md: (FPM_REGNUM): added new register
21364         number, reusing old value.
21365         (FFR_REGNUM): Renumber.
21366         (FFRT_REGNUM): Likewise.
21367         (LOWERING_REGNUM): Likewise.
21368         (TPIDR2_BLOCK_REGNUM): Likewise.
21369         (SME_STATE_REGNUM): Likewise.
21370         (TPIDR2_SETUP_REGNUM): Likewise.
21371         (ZA_FREE_REGNUM): Likewise.
21372         (ZA_SAVED_REGNUM): Likewise.
21373         (ZA_REGNUM): Likewise.
21374         (ZT0_REGNUM): Likewise.
21375         (*mov<mode>_aarch64): Add support for moveable sysregs.
21376         (*movsi_aarch64): Likewise.
21377         (*movdi_aarch64): Likewise.
21378         * config/aarch64/constraints.md (MOVEABLE_SYSREGS): New constraint.
21380 2024-07-31  Claudio Bantaloukas  <claudio.bantaloukas@arm.com>
21382         * config/aarch64/aarch64-option-extensions.def (fp8): New.
21383         * config/aarch64/aarch64.h (TARGET_FP8): Likewise.
21384         * doc/invoke.texi (AArch64 Options): Document new -march flags
21385         and extensions.
21387 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
21389         * config/loongarch/loongarch.md (UNSPEC_REVB_2H, UNSPEC_REVB_4H,
21390         UNSPEC_REVH_D): Remove UNSPECs.
21391         (revb_4h, revh_d): Remove define_insn.
21392         (revb_2h): Define as (rotatert:SI (bswap:SI x) 16) instead of
21393         an UNSPEC.
21394         (revb_2h_extend, revb_2w, *bswapsi2, bswapdi2): New define_insn.
21395         (bswapsi2): Change to define_expand.  Only expand to revb.2h +
21396         rotri.w if !TARGET_64BIT.
21397         (bswapdi2): Change to define_insn of which the output is just a
21398         revb.d instruction.
21400 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
21402         * config/loongarch/predicates.md (ins_zero_bitmask_operand):
21403         Cover more cases that bstrins can benefit.
21404         (high_bitmask_operand): Remove.
21405         * config/loongarch/constraints.md (Yy): Remove.
21406         * config/loongarch/loongarch.md (and<mode>3_align): Remove.
21408 2024-07-31  Richard Biener  <rguenther@suse.de>
21410         PR middle-end/101478
21411         * gimplify.cc (gimplify_addr_expr): Check we still have an
21412         ADDR_EXPR before calling recompute_tree_invariant_for_addr_expr.
21414 2024-07-31  Hongyu Wang  <hongyu.wang@intel.com>
21416         PR target/116065
21417         * config/i386/i386.opt (munroll-only-small-loops): Mark as
21418         Optimization instead of Save.
21420 2024-07-31  Richard Sandiford  <richard.sandiford@arm.com>
21422         PR rtl-optimization/115881
21423         * recog.cc: Include rtl-iter.h.
21424         (insn_propagation::apply_to_rvalue_1): Check that the result
21425         of simplify_subreg does not include nested subregs.
21427 2024-07-31  Kewen Lin  <linkw@linux.ibm.com>
21429         PR target/105359
21430         * config/rs6000/rs6000.md (@extenddf<FLOAT128:mode>2): Don't check
21431         TARGET_LONG_DOUBLE_128 for FLOAT128_IEEE_P modes.
21432         (extendsf<FLOAT128:mode>2): Likewise.
21433         (trunc<FLOAT128:mode>df2): Likewise.
21434         (trunc<FLOAT128:mode>sf2): Likewise.
21435         (floatsi<FLOAT128:mode>2): Likewise.
21436         (fix_trunc<FLOAT128:mode>si2): Likewise.
21438 2024-07-31  Kewen Lin  <linkw@linux.ibm.com>
21440         * config/rs6000/altivec.md (p9_vadu<mode>3): Rename to ...
21441         (uabd<mode>3): ... this.  Update RTL pattern with umin and umax rather
21442         than UNSPEC_VADU.
21443         (vadu<mode>3): Remove.
21444         (UNSPEC_VADU): Remove.
21445         (usadv16qi): Replace gen_p9_vaduv16qi3 with gen_uabdv16qi3.
21446         (usadv8hi): Replace gen_p9_vaduv8hi3 with gen_uabdv8hi3.
21447         * config/rs6000/rs6000-builtins.def (__builtin_altivec_vadub): Replace
21448         expander with uabdv16qi3.
21449         (__builtin_altivec_vaduh): Adjust expander with uabdv8hi3.
21450         (__builtin_altivec_vaduw): Adjust expander with uabdv4si3.
21452 2024-07-31  Xi Ruoyao  <xry111@xry111.site>
21454         * config/loongarch/loongarch.md (optab): Add (rotatert "rotr").
21455         (<optab:any_shift><mode>3, <optab:any_div><mode>3,
21456         sub<mode>3, rotr<mode>3, mul<mode>3): Add a "*" to the insn name
21457         so we can redefine the names with define_expand.
21458         (*<optab:any_shift>si3_extend): Remove "*" so we can use them
21459         in expanders.
21460         (*subsi3_extended, *mulsi3_extended): Likewise, also remove the
21461         trailing "ed" for consistency.
21462         (*<optab:any_div>si3_extended): Add mode for sign_extend to
21463         prevent an ICE using it in expanders.
21464         (shift_w, arith_w): New define_code_iterator.
21465         (<optab:any_w><mode>3): New define_expand.  Expand with
21466         <optab:any_w>si3_extend for SImode if TARGET_64BIT.
21467         (<optab:arith_w><mode>3): Likewise.
21468         (mul<mode>3): Expand to mulsi3_extended for SImode if
21469         TARGET_64BIT and ISA_HAS_DIV32.
21470         (<optab:any_div><mode>3): Expand to <optab:any_div>si3_extended
21471         for SImode if TARGET_64BIT.
21472         (rotl<mode>3): Expand to rotrsi3_extend for SImode if
21473         TARGET_64BIT.
21474         (bytepick_w_<bytepick_imm>): Add mode for lshiftrt and ashift.
21475         (bitsize, bytepick_imm, bytepick_w_ashift_amount): New
21476         define_mode_attr.
21477         (bytepick_w_<bytepick_imm>_extend): Adjust for the RTL change
21478         caused by 32-bit shift expanding.  Now bytepick_imm only covers
21479         2 and 3, separate one remaining case to ...
21480         (bytepick_w_1_extend): ... here, new define_insn.
21482 2024-07-30  Edwin Lu  <ewlu@rivosinc.com>
21484         * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
21485         Skip b in march string
21486         * config.in: Regenerate.
21487         * configure: Regenerate.
21488         * configure.ac: Add B assembler check
21490 2024-07-30  Filip Kastl  <fkastl@suse.cz>
21492         * tree-switch-conversion.cc (can_log2): New static function to
21493         check if gen_log2 can be used on current target.
21494         (gen_log2): New static function to generate efficient GIMPLE
21495         code for taking an exact base 2 log.
21496         (gen_pow2p): New static function to generate efficient GIMPLE
21497         code for checking if a value is a power of 2.
21498         (switch_conversion::switch_conversion): Track if the
21499         transformation happened.
21500         (switch_conversion::is_exp_index_transform_viable): New function
21501         to decide whether the transformation should be applied.
21502         (switch_conversion::exp_index_transform): New function to
21503         execute the transformation.
21504         (switch_conversion::gen_inbound_check): Don't remove the default
21505         BB if the transformation happened.
21506         (switch_conversion::expand): Execute the transform if it is
21507         viable.  Skip the "sufficiently small case range" test if the
21508         transformation is going to be executed.
21509         * tree-switch-conversion.h: Add is_exp_index_transform_viable
21510         and exp_index_transform.
21512 2024-07-30  Gianluca Guida  <gianluca@rivosinc.com>
21513             Patrick O'Neill  <patrick@rivosinc.com>
21515         * common/config/riscv/riscv-common.cc: Add zacas extension.
21516         * config/riscv/arch-canonicalize: Make zacas imply zaamo.
21517         * config/riscv/riscv.opt: Add zacas.
21518         * config/riscv/sync.md (zacas_atomic_cas_value<mode>): New pattern.
21519         (atomic_compare_and_swap<mode>): Use new pattern for compare-and-swap ops.
21520         (zalrsc_atomic_cas_value_strong<mode>): Rename atomic_cas_value_strong.
21521         * doc/sourcebuild.texi: Add Zacas documentation.
21523 2024-07-30  Patrick O'Neill  <patrick@rivosinc.com>
21525         * common/config/riscv/riscv-common.cc
21526         (riscv_subset_list::to_string): Remove zabha configure check
21527         handling and clarify zaamo/zalrsc comment.
21528         * config.in: Regenerate.
21529         * configure: Regenerate.
21530         * configure.ac: Remove zabha configure check.
21532 2024-07-30  Jennifer Schmitz  <jschmitz@nvidia.com>
21534         * config/aarch64/aarch64-sve-builtins-base.cc (svdiv_impl::fold):
21535         Implement strength reduction.
21537 2024-07-30  Georg-Johann Lay  <avr@gjlay.de>
21539         * doc/extend.texi (AVR Function Attributes): Propose to use
21540         attribute signal(n) via AVR-LibC's ISR_N from avr/interrupt.h
21542 2024-07-30  Pan Li  <pan2.li@intel.com>
21544         * config/riscv/riscv.cc (riscv_expand_ussub): Promote to Xmode
21545         instead of Pmode.
21547 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21549         * config/xtensa/xtensa.cc (xtensa_insn_cost):
21550         Add a case statement for TYPE_FARITH.
21552 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21554         * config/xtensa/xtensa.md (movsf_internal):
21555         Reorder alternative that corresponds to L32R machine instruction,
21556         and prefix alternatives that correspond to LSI/SSI instructions
21557         with the constraint character '^' so that they are disparaged by
21558         reload/LRA.
21560 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21562         * config/xtensa/xtensa-protos.h (xtensa_expand_call):
21563         Remove the third argument.
21564         * config/xtensa/xtensa.cc (xtensa_expand_call):
21565         Remove the third argument and the code that uses it.
21566         * config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value):
21567         Remove each Boolean constant specified in the third argument of
21568         xtensa_expand_call.
21569         (sibcall_epilogue): Add emitting '(use A0_REG)' after calling
21570         xtensa_expand_epilogue.
21572 2024-07-30  liuhongt  <hongtao.liu@intel.com>
21574         PR target/116043
21575         * config/i386/constraints.md (Bk): Refine to
21576         define_special_memory_constraint.
21578 2024-07-30  Haochen Jiang  <haochen.jiang@intel.com>
21580         * config/i386/prfchiintrin.h
21581         (_m_prefetchit0): Add macro for non-optimized option.
21582         (_m_prefetchit1): Ditto.
21584 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21586         * config/xtensa/predicates.md
21587         (fix_scaling_operand, float_scaling_operand): New predicates.
21588         * config/xtensa/xtensa.md
21589         (any_fix/m_fix/s_fix, any_float/m_float/s_float):
21590         New code iterators and their attributes.
21591         (fix<s_fix>_truncsfsi2): Change from "fix_truncsfsi2".
21592         (*fix<s_fix>_truncsfsi2_2x, *fix<s_fix>_truncsfsi2_scaled):
21593         New insn definitions.
21594         (float<s_float>sisf2): Change from "floatsisf2".
21595         (*float<s_float>sisf2_scaled): New insn definition.
21597 2024-07-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
21599         * config/xtensa/xtensa.cc
21600         (gen_int_relational, gen_float_relational): Replace tempvar-based
21601         value-swapping codes with std::swap.
21602         * config/xtensa/xtensa.md (movdi_internal, movdf_internal):
21603         Ditto.
21605 2024-07-29  Jeff Law  <jlaw@ventanamicro.com>
21607         PR target/116104
21608         * ext-dce.cc (carry_backpropagate): Fix test guarding UINTVAL
21609         extraction of shift count.
21611 2024-07-29  Jonathan Wakely  <jwakely@redhat.com>
21613         * doc/invoke.texi (Diagnostic Message Formatting Options):
21614         Replace hyphen with a new sentence. Replace "the former" with
21615         the actual value.
21617 2024-07-29  Max Filippov  <jcmvbkbc@gmail.com>
21619         * config/xtensa/xtensa.cc (xtensa_option_override_after_change):
21620         New function.
21621         (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define as
21622         xtensa_option_override_after_change.
21623         (xtensa_option_override): Call
21624         xtensa_option_override_after_change.
21626 2024-07-29  Georg-Johann Lay  <avr@gjlay.de>
21628         * config/avr/avr.cc (avr_set_current_function): Fix typo in
21629         error message.
21631 2024-07-29  Carl Love  <cel@linux.ibm.com>
21633         * config/rs6000/vector.md: Add comment for the VEC_IC
21634         define_mode_iterator.
21636 2024-07-29  Pan Li  <pan2.li@intel.com>
21638         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
21639         Try .SAT_SUB for PLUS_EXPR case.
21641 2024-07-29  Jan Hubicka  <hubicka@ucw.cz>
21643         PR ipa/116055
21644         * ipa-modref.cc (analyze_function): Do not ICE when flags regress.
21646 2024-07-29  Feng Xue  <fxue@os.amperecomputing.com>
21648         * tree-vect-patterns.cc (vect_recog_bitfield_ref_pattern): Only call
21649         single_imm_use if statement is not generated from pattern recognition.
21651 2024-07-29  Haochen Jiang  <haochen.jiang@intel.com>
21653         * config/i386/avx512dqintrin.h
21654         (_mm_mask_fpclass_ss_mask): Correct operand order.
21655         (_mm_mask_fpclass_sd_mask): Ditto.
21656         (_mm256_maskz_reduce_round_ss): Use __builtin_ia32_reducess_mask_round
21657         instead of __builtin_ia32_reducesd_mask_round.
21658         (_mm_reduce_round_sd): Use -1 as mask since it is non-mask.
21659         (_mm_reduce_round_ss): Ditto.
21660         * config/i386/avx512vlbwintrin.h
21661         (_mm256_mask_alignr_epi8): Correct operand usage.
21662         (_mm_mask_alignr_epi8): Ditto.
21663         * config/i386/avx512vlintrin.h (_mm_mask_alignr_epi64): Ditto.
21665 2024-07-28  Jonathan Wakely  <jwakely@redhat.com>
21667         * exec-tool.in: Exit with an error if $original is empty.
21669 2024-07-28  Georg-Johann Lay  <avr@gjlay.de>
21671         PR target/116056
21672         * config/avr/avr.h (machine_function) <is_noblock>: New field.
21673         * config/avr/avr-c.cc (avr_cpu_cpp_builtins) <__HAVE_SIGNAL_N__>: New
21674         built-in macro.
21675         * config/avr/avr.cc (avr_declare_function_name): New function.
21676         (avr_attribute_table) <noblock>: New function attribute>.
21677         <signal, interrupt>: Allow any number of args.
21678         (avr_insert_attributes): Check validity of "signal" and "interrupt"
21679         arguments.
21680         (avr_foreach_function_attribute, avr_interrupt_signal_function)
21681         (avr_isr_number, avr_asm_isr_alias, avr_handle_isr_attribute)
21682         (avr_noblock_function_p): New static functions.
21683         (avr_interrupt_function): New from avr_interrupt_function_p.
21684         Adjust callers.
21685         (avr_signal_function): New from avr_signal_function_p.
21686         Adjust callers.
21687         (avr_set_current_function): Only diagnose non-__vector ISR names
21688         when "signal" or "interrupt" attribute has no args. Set
21689         cfun->machine->is_noblock.  Warn about "noblock" in non-ISR functions.
21690         (struct avr_fun_cookie): New.
21691         (avr_expand_prologue, avr_asm_function_end_prologue): Handle "noblock".
21692         * config/avr/elf.h (ASM_DECLARE_FUNCTION_NAME): New define.
21693         * config/avr/avr-protos.h (avr_declare_function_name): New proto.
21694         * doc/extend.texi (AVR Function Attributes): Document
21695         signal(num) and interrupt(num).
21696         * doc/invoke.texi (AVR Built-in Macros) <__HAVE_SIGNAL_N__>: Document.
21698 2024-07-27  Roger Sayle  <roger@nextmovesoftware.com>
21699             Andrew Pinski  <quic_apinski@quicinc.com>
21701         * match.pd (ctz (-X) => ctz (X)): New simplification.
21702         (ctz (abs (X)) => ctz (X)): Likewise.
21704 2024-07-27  Pan Li  <pan2.li@intel.com>
21706         * match.pd: Add case 9 and case 10 for .SAT_SUB when one
21707         of the op is IMM.
21709 2024-07-27  David Malcolm  <dmalcolm@redhat.com>
21711         PR middle-end/107941
21712         * diagnostic-format-sarif.cc: Define INCLUDE_LIST and INCLUDE_MAP.
21713         (enum class location_relationship_kind): New.
21714         (diagnostic_artifact_role::scanned_file): New value.
21715         (class sarif_location_manager): New.
21716         (class sarif_result): Derive from sarif_location_manager rather
21717         than directly from sarif_object.
21718         (sarif_result::add_related_location): Convert to vfunc
21719         implementation.
21720         (sarif_location::m_relationships_map): New field.
21721         (class sarif_location_relationship): New.
21722         (class sarif_ice_notification): Derive from sarif_location_manager
21723         rather than directly from sarif_object.
21724         (sarif_builder::take_current_result): New.
21725         (sarif_builder::m_line_maps): New field.
21726         (sarif_builder::m_cur_group_result): Convert to std::unique_ptr.
21727         (sarif_artifact::add_role): Skip scanned_file.
21728         (get_artifact_role_string): Handle scanned_file.
21729         (sarif_location_manager::add_relationship_to_worklist): New.
21730         (sarif_location_manager::process_worklist): New.
21731         (sarif_location_manager::process_worklist_item): New.
21732         (sarif_result::on_nested_diagnostic): Pass *this to
21733         make_location_object.
21734         (sarif_location::lazily_add_id): New.
21735         (sarif_location::get_id): New.
21736         (get_string_for_location_relationship_kind): New.
21737         (sarif_location::lazily_add_relationship): New.
21738         (sarif_location::lazily_add_relationship_object): New.
21739         (sarif_location::lazily_add_relationships_array): New.
21740         (sarif_ice_notification::sarif_ice_notification): Fix overlong line.
21741         Pass *this to make_locations_arr.
21742         (sarif_ice_notification::add_related_location): New.
21743         (sarif_location_relationship::sarif_location_relationship): New.
21744         (sarif_location_relationship::get_target_id): New.
21745         (sarif_location_relationship::lazily_add_kind): New.
21746         (sarif_builder::sarif_builder): Add "line_maps" param and use it
21747         to initialize m_line_maps.
21748         (sarif_builder::end_diagnostic): Update for m_cur_group_result
21749         becoming a std::unique_ptr.  Don't append to m_results_array yet.
21750         (sarif_builder::end_group): Append m_cur_group_result to
21751         m_results_array here, rather than in end_diagnostic.
21752         (sarif_builder::make_result_object): Pass result_obj to
21753         make_locations_arr and to make_code_flow_object.
21754         (sarif_builder::make_locations_arr): Add "loc_mgr" param and pass
21755         it to make_location_object.
21756         (sarif_builder::make_location_object): For two overloads, add
21757         "loc_mgr" param and call add_any_include_chain on the location.
21758         (sarif_builder::add_any_include_chain): New.
21759         (sarif_builder::make_location_object): New overload.
21760         (sarif_builder::make_code_flow_object): Add "result" param and
21761         pass it to make_thread_flow_location_object.
21762         (sarif_builder::make_thread_flow_location_object): Add "result"
21763         param and pass it to make_location_object.
21764         (sarif_builder::get_or_create_artifact): Handle scanned_file.
21765         (sarif_output_format::~sarif_output_format): Assert that there
21766         isn't a pending result.
21767         (sarif_output_format::sarif_output_format): Add "line_maps" param
21768         and pass it to m_builder's ctor.
21769         (sarif_stream_output_format::sarif_stream_output_format): Add
21770         "line_maps" param and pass it to base class ctor.
21771         (sarif_file_output_format::sarif_file_output_format): Likewise.
21772         (diagnostic_output_format_init_sarif_stderr): Pass "line_table"
21773         global to format.
21774         (diagnostic_output_format_init_sarif_file): Likewise.
21775         (diagnostic_output_format_init_sarif_stream): Likewise.
21776         (test_sarif_diagnostic_context::test_sarif_diagnostic_context):
21777         Likewise.
21778         (buffered_output_format::buffered_output_format): Likewise.
21779         (selftest::test_make_location_object): Likewise.
21780         (selftest::test_make_location_object): Create a sarif_result for
21781         use when calling make_location_object.
21782         * diagnostic.cc (diagnostic_context::finish): End any active
21783         diagnostic groups.
21784         (diagnostic_context::report_diagnostic): Assert that we're within
21785         a diagnostic group.
21786         * diagnostic.h (diagnostic_report_diagnostic): Add
21787         begin_group/end_group pair around call to
21788         diagnostic_context::report_diagnostic.
21789         * selftest-diagnostic.cc (test_diagnostic_context::report): Add
21790         begin_group/end_group pair around diagnostic_impl call.
21792 2024-07-26  Jeff Law  <jlaw@ventanamicro.com>
21794         PR target/116085
21795         * config/riscv/bitmanip.md (minmax extension avoidance splitter):
21796         Rewrite as a simpler define_split.  Adjust the opcode appropriately.
21797         Avoid emitting sign extension if it's clearly not needed.
21798         * config/riscv/iterators.md (minmax_optab): Rename to uminmax_optab
21799         and map everything to unsigned variants.
21801 2024-07-26  Siddhesh Poyarekar  <siddhesh@gotplt.org>
21803         * gimple-ssa-sprintf.cc (format_string): Fix type in range check
21804         for UNLIKELY for wide chars.
21806 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21808         * config/aarch64/aarch64-sve-builtins-base.cc (svbic_impl::expand): Update
21809         to use andn optab instead of using code_for_aarch64_bic.
21810         * config/aarch64/aarch64-sve.md (@aarch64_bic<mode>): Rename to ...
21811         (andn<mode>3): This.
21813 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21815         * config/aarch64/aarch64.md (*<NLOGICAL:optab>_one_cmpl<mode>3): Rename to ...
21816         (<NLOGICAL:optab>n<mode>3): This.
21817         (*<NLOGICAL:optab>_one_cmplsidi3_ze): Rename to ...
21818         (*<NLOGICAL:optab>nsidi3_ze): This.
21820 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21822         * config/aarch64/aarch64-simd.md
21823         (bic<mode>3<vczle><vczbe>): Rename to ...
21824         (andn<mode>3<vczle><vczbe>): This. Also swap operands.
21825         (orn<mode>3<vczle><vczbe>): Rename to ...
21826         (iorn<mode>3<vczle><vczbe>): This. Also swap operands.
21827         (vec_cmp<mode><v_int_equiv>): Update orn call to iorn
21828         and swap the last two arguments.
21830 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21832         PR target/116065
21833         * config/aarch64/aarch64.opt (mearly-ra=): Mark as Optimization rather
21834         than Save.
21836 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21838         PR tree-optimization/116101
21839         * gimple-isel.cc (maybe_duplicate_comparison): Don't
21840         do anything for -O0 or -fno-tree-ter.
21842 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21844         * gimple-isel.cc (duplicate_comparison): Rename to ...
21845         (maybe_duplicate_comparison): This. Add check for use here
21846         rather than in its caller.
21847         (pass_gimple_isel::execute): Don't check how many uses the
21848         comparison had and call maybe_duplicate_comparison instead of
21849         duplicate_comparison.
21851 2024-07-26  Andrew Pinski  <quic_apinski@quicinc.com>
21853         * gimple-isel.cc (pass_gimple_isel::execute): Factor out
21854         duplicate comparisons out to ...
21855         (duplicate_comparison): New function.
21857 2024-07-26  Andi Kleen  <ak@gcc.gnu.org>
21859         PR c++/116019
21860         * tree-tailcall.cc (find_tail_calls): Change tail call
21861         error message.
21863 2024-07-26  Robin Dapp  <rdapp@ventanamicro.com>
21865         * config/riscv/riscv.cc (riscv_override_options_internal):
21866         Reword error string without apostrophe.
21868 2024-07-26  Tamar Christina  <tamar.christina@arm.com>
21870         PR target/116074
21871         * tree-vect-patterns.cc (vect_recog_cond_store_pattern): Check vector mode.
21873 2024-07-26  Haochen Jiang  <haochen.jiang@intel.com>
21875         * config/i386/i386-expand.cc (ix86_expand_builtin): Change
21876         from XImode to BLKmode.
21877         * config/i386/i386.md (ldtilecfg): Change XI to BLK.
21878         (sttilecfg): Ditto.
21880 2024-07-26  Nathaniel Shead  <nathanieloshead@gmail.com>
21882         PR c++/115757
21883         * tree.h (put_warning_spec_at): Declare new function.
21884         (has_warning_spec): Likewise.
21885         (get_warning_spec): Likewise.
21886         (put_warning_spec): Likewise.
21887         * diagnostic-spec.h (nowarn_spec_t::from_bits): New function.
21888         * diagnostic-spec.cc (put_warning_spec_at): New function.
21889         * warning-control.cc (has_warning_spec): New function.
21890         (get_warning_spec): New function.
21891         (put_warning_spec): New function.
21893 2024-07-25  Carl Love  <cel@linux.ibm.com>
21895         * config/rs6000/rs6000-builtin.cc (get_element_number,
21896         altivec_expand_vec_set_builtin): Remove functions.
21897         (rs6000_expand_builtin): Remove the if statement to call
21898         altivec_expand_vec_set_builtin.
21899         * config/rs6000/rs6000-builtins.def (__builtin_vsx_set_1ti,
21900         __builtin_vsx_set_2df, __builtin_vsx_set_2di): Remove the
21901         built-in definitions.
21902         * config/rs6000/rs6000-gen-builtins.cc (struct attrinfo):
21903         Remove the isset variable from the structure.
21904         (parse_bif_attrs): Remove the uses of the isset variable.
21906 2024-07-25  Carl Love  <cel@linux.ibm.com>
21908         * config/rs6000/rs6000-builtins.def (__builtin_vec_set_v1ti,
21909         __builtin_vec_set_v2df, __builtin_vec_set_v2di): Remove built-in
21910         definitions.
21911         * config/rs6000/rs6000-c.cc (resolve_vec_insert): Remove the
21912         handling for constant vec_insert position with
21913         VECTOR_UNIT_VSX_P V1TImode, V2DFmode and V2DImode modes.
21915 2024-07-25  Carl Love  <cel@linux.ibm.com>
21917         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp,
21918         __builtin_vsx_xvcmpgesp, __builtin_vsx_xvcmpgtsp): Remove
21919         definitions.
21921 2024-07-25  Jeff Law  <jlaw@ventanamicro.com>
21923         PR rtl-optimization/116039
21924         * ext-dce.cc (ext_dce_process_uses): Add some comments about concerns
21925         with current code.  Mark additional bit groups as live when we have
21926         an extension of a suitably promoted subreg.
21928 2024-07-25  Christoph Müllner  <christoph.muellner@vrull.eu>
21930         PR target/116033
21931         * config/riscv/thead.cc (th_memidx_classify_address_modify):
21932         Fix mode test.
21934 2024-07-25  Richard Biener  <rguenther@suse.de>
21936         PR tree-optimization/116083
21937         * tree-vect-slp.cc (vect_build_slp_tree): Do not allocate
21938         a discovery fail node when we reached the discovery limit.
21939         (vect_build_slp_instance): Terminate early when the
21940         discovery limit is reached.
21942 2024-07-25  Richard Sandiford  <richard.sandiford@arm.com>
21944         * doc/rtl.texi: Document the need to define INCLUDE_ARRAY before
21945         including rtl-ssa.h.
21946         * rtl-ssa.h: Likewise (in comment).
21947         * config/aarch64/aarch64-cc-fusion.cc: Add INCLUDE_ARRAY.
21948         * config/aarch64/aarch64-early-ra.cc: Likewise.
21949         * config/riscv/riscv-avlprop.cc: Likewise.
21950         * config/riscv/riscv-vsetvl.cc: Likewise.
21951         * fwprop.cc: Likewise.
21952         * late-combine.cc: Likewise.
21953         * pair-fusion.cc: Likewise.
21954         * rtl-ssa/accesses.cc: Likewise.
21955         * rtl-ssa/blocks.cc: Likewise.
21956         * rtl-ssa/changes.cc: Likewise.
21957         * rtl-ssa/functions.cc: Likewise.
21958         * rtl-ssa/insns.cc: Likewise.
21959         * rtl-ssa/movement.cc: Likewise.
21961 2024-07-25  Sam James  <sam@gentoo.org>
21963         PR middle-end/114855
21964         * doc/invoke.texi (Optimize options): Mention machine-generated
21965         code for -O1.
21967 2024-07-25  Richard Biener  <rguenther@suse.de>
21969         PR tree-optimization/116081
21970         * tree-vect-loop.cc (get_initial_defs_for_reduction):
21971         Use operand_equal_p for comparing the element with the
21972         neutral op.
21974 2024-07-25  Richard Biener  <rguenther@suse.de>
21976         PR tree-optimization/116079
21977         * tree-ssa-loop-im.cc (hoist_memory_references): Clear
21978         VDEF of elided clobbers.
21980 2024-07-25  Richard Biener  <rguenther@suse.de>
21982         PR tree-optimization/116081
21983         * tree-vect-stmts.cc (vect_get_vector_types_for_stmt):
21984         Properly compare types.
21986 2024-07-25  Robin Dapp  <rdapp@ventanamicro.com>
21988         PR target/116036
21989         * config/riscv/riscv.cc (riscv_override_options_internal): Error
21990         with TARGET_VECTOR && !TARGET_MUL.
21992 2024-07-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
21994         * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
21996 2024-07-25  Richard Sandiford  <richard.sandiford@arm.com>
21998         PR rtl-optimization/116044
21999         * rtl-ssa/functions.h (function_info::split_clobber_group): Return
22000         an array of two clobber_groups.
22001         * rtl-ssa/accesses.cc (function_info::split_clobber_group): Return
22002         the new clobber groups.  Don't modify the splay tree here.
22003         (function_info::add_def): Update call accordingly.  Generalize
22004         the splay tree insertion code so that the new definition can be
22005         inserted as a child of any existing node, not just the root.
22006         Fix the insertion used after calling split_clobber_group.
22008 2024-07-25  Jennifer Schmitz  <jschmitz@nvidia.com>
22010         * config/aarch64/aarch64-sve-builtins.cc
22011         (gimple_folder::redirect_call): Update return type.
22012         * config/aarch64/aarch64-sve-builtins.h: Likewise.
22013         * config/aarch64/aarch64-sve-builtins-sve2.cc (svqshl_impl::fold):
22014         Remove cast to gcall.
22015         (svrshl_impl::fold): Likewise.
22017 2024-07-25  Richard Biener  <rguenther@suse.de>
22019         * tree-ssa-structalias.cc (constraint_equal): Take const
22020         reference to constraints.
22021         (constraint_vec_find): Similar.
22022         (solve_graph): Keep constraint vector sorted and verify
22023         sorting with checking.
22025 2024-07-25  Lingling Kong  <lingling.kong@intel.com>
22027         PR target/115749
22028         * config/i386/x86-tune-costs.h (struct processor_costs):
22029         Adjust rtx_cost of imulq and imulw for COST_N_INSNS (4)
22030         to COST_N_INSNS (3).
22032 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22034         * diagnostic-format-sarif.cc (sarif_builder::make_locations_arr):
22035         Don't add entirely empty location objects, such as for
22036         UNKNOWN_LOCATION.
22037         (test_sarif_diagnostic_context::test_sarif_diagnostic_context):
22038         Add param "main_input_filename".
22039         (selftest::test_simple_log): Provide above param.  Verify that
22040         "locations" is empty.
22041         (selftest::test_simple_log_2): New.
22042         (selftest::diagnostic_format_sarif_cc_tests): Call it.
22044 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22046         * diagnostic-format-sarif.cc (sarif_builder::flush_to_object):
22047         New, using code moved from...
22048         (sarif_builder::end_group): ...here.
22049         (class selftest::test_sarif_diagnostic_context): New.
22050         (selftest::test_simple_log): New.
22051         (selftest::diagnostic_format_sarif_cc_tests): Call it.
22052         * json.h (json::object::is_empty): New.
22053         * selftest-diagnostic.cc (test_diagnostic_context::report): New.
22054         * selftest-diagnostic.h (test_diagnostic_context::report): New
22055         decl.
22056         * selftest-json.cc (selftest::assert_json_string_eq): New.
22057         (selftest::expect_json_object_with_string_property): New.
22058         (selftest::assert_json_string_property_eq): New.
22059         * selftest-json.h (selftest::assert_json_string_eq): New decl.
22060         (ASSERT_JSON_STRING_EQ): New macro.
22061         (selftest::expect_json_object_with_string_property): New decl.
22062         (EXPECT_JSON_OBJECT_WITH_STRING_PROPERTY): New macro.
22064 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22066         * diagnostic-format-sarif.cc
22067         (sarif_builder::make_location_object): Add "annotations" property if
22068         there are any labelled ranges (§3.28.6).
22069         (selftest::test_make_location_object): Verify annotations are added
22070         to location_obj.
22071         * json.h (json::array::size): New.
22072         (json::array::operator[]): New.
22073         * selftest-json.cc
22074         (selftest::expect_json_object_with_array_property): New.
22075         * selftest-json.h
22076         (selftest::expect_json_object_with_array_property): New decl.
22077         (EXPECT_JSON_OBJECT_WITH_ARRAY_PROPERTY): New macro.
22079 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22081         * diagnostic-format-sarif.cc
22082         (make_date_time_string_for_current_time): New.
22083         (sarif_invocation::sarif_invocation): Set "startTimeUtc"
22084         property (§3.20.7).
22085         (sarif_invocation::prepare_to_flush): Set "endTimeUtc"
22086         property (§3.20.8).
22088 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22090         * diagnostic-format-sarif.cc (sarif_invocation::sarif_invocation):
22091         Add "original_argv" param and use it to populate "arguments"
22092         property (§3.20.2).
22093         (sarif_builder::sarif_builder): Pass argv to m_invocation_obj's
22094         ctor.
22095         * diagnostic.cc (diagnostic_context::initialize): Initialize
22096         m_original_argv.
22097         (diagnostic_context::finish): Clean up m_original_argv.
22098         (diagnostic_context::set_original_argv): New.
22099         * diagnostic.h: Include "unique-argv.h".
22100         (diagnostic_context::set_original_argv): New decl.
22101         (diagnostic_context::get_original_argv): New decl.
22102         (diagnostic_context::m_original_argv): New field.
22103         * toplev.cc: Include "unique-argv.h".
22104         (general_init): Add "original_argv" param and move it to global_dc.
22105         (toplev::main): Stash a copy of the original argv before expansion,
22106         and pass it to general_init for use by SARIF output.
22107         * unique-argv.h: New file.
22109 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22111         * diagnostic-format-sarif.cc
22112         (sarif_builder::make_artifact_location_object): Make public.
22113         (sarif_invocation::sarif_invocation): Add param "builder".
22114         Use it to potentially populate the "workingDirectory" property
22115         with the result of pwd (§3.20.19).
22116         (sarif_builder::sarif_builder): Pass *this to m_invocation_obj's
22117         ctor.
22119 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22121         * text-range-label.h: New file, taking class text_range_label from
22122         gcc-rich-location.h.
22124 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22126         * Makefile.in (OBJS-libcommon): Add selftest-json.o.
22127         * diagnostic-format-sarif.cc: Include "selftest.h",
22128         "selftest-diagnostic.h", "selftest-diagnostic-show-locus.h",
22129         "selftest-json.h", and "text-range-label.h".
22130         (class content_renderer): New.
22131         (sarif_builder::m_rules_arr): Convert to std::unique_ptr.
22132         (sarif_builder::make_location_object): Add class
22133         escape_nonascii_renderer.  If rich_loc.escape_on_output_p (),
22134         pass a nonnull escape_nonascii_renderer to
22135         maybe_make_physical_location_object as its snippet_renderer, and
22136         add a property bag property "gcc/escapeNonAscii" to the SARIF
22137         location object.  For other overloads of make_location_object,
22138         pass nullptr for the snippet_renderer.
22139         (sarif_builder::maybe_make_region_object_for_context): Add
22140         "snippet_renderer" param and pass it to
22141         maybe_make_artifact_content_object.
22142         (sarif_builder::make_tool_object): Drop "const".
22143         (sarif_builder::make_driver_tool_component_object): Likewise.
22144         Use typesafe unique_ptr variant of object::set for setting "rules"
22145         property on driver_obj.
22146         (sarif_builder::maybe_make_artifact_content_object): Add param "r"
22147         and use it to potentially set the "rendered" property (§3.3.4).
22148         (selftest::test_make_location_object): New.
22149         (selftest::diagnostic_format_sarif_cc_tests): New.
22150         * diagnostic-show-locus.cc: Include "text-range-label.h" and
22151         "selftest-diagnostic-show-locus.h".
22152         (selftests::diagnostic_show_locus_fixture::diagnostic_show_locus_fixture):
22153         New.
22154         (selftests::test_layout_x_offset_display_utf8): Use
22155         diagnostic_show_locus_fixture to simplify and consolidate setup
22156         code.
22157         (selftests::test_diagnostic_show_locus_one_liner): Likewise.
22158         (selftests::test_one_liner_colorized_utf8): Likewise.
22159         (selftests::test_diagnostic_show_locus_one_liner_utf8): Likewise.
22160         * gcc-rich-location.h (class text_range_label): Move to new file
22161         text-range-label.h.
22162         * selftest-diagnostic-show-locus.h: New file, based on material in
22163         diagnostic-show-locus.cc.
22164         * selftest-json.cc: New file.
22165         * selftest-json.h: New file.
22166         * selftest-run-tests.cc (selftest::run_tests): Call
22167         selftest::diagnostic_format_sarif_cc_tests.
22168         * selftest.h (selftest::diagnostic_format_sarif_cc_tests): New decl.
22170 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22172         * diagnostic-format-json.cc: Include "make-unique.h".
22173         (json_output_format::m_toplevel_array): Convert to
22174         std::unique_ptr.
22175         (json_output_format::json_output_format): Update accordingly.
22176         (json_output_format::~json_output_format): Remove manual
22177         "delete" of field.
22178         (json_from_expanded_location): Convert return type to
22179         std::unique_ptr.
22180         (json_from_location_range): Likewise.  Use nullptr rather than
22181         NULL.
22182         (json_from_fixit_hint): Convert return type to std::unique_ptr.
22183         (json_from_metadata): Likewise.
22184         (make_json_for_path): Likewise.
22185         (json_output_format::on_end_diagnostic): Use std::unique_ptr
22186         throughout.
22187         (json_file_output_format::~json_file_output_format): Use nullptr.
22188         (selftest::test_unknown_location): Update to use std::unique_ptr.
22189         (selftest::test_bad_endpoints): Likewise.  Replace NULL with
22190         nullptr.
22192 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22194         * diagnostic-format-sarif.cc: Include "make-unique.h".  Convert
22195         raw pointers to std::unique_ptr throughout to indicate ownership,
22196         adding comments in the few places where pointers are borrowed.
22197         Use typesafe unique_ptr variants of json::object::set and
22198         json::array::append throughout to make types of properties more
22199         explicit, whilst using "auto" to reduce typing.
22200         Use "nullptr" rather than "NULL" throughout.
22201         * diagnostic-format-sarif.h (make_sarif_logical_location_object):
22202         Use std::unique_ptr for return type.
22204 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22206         * diagnostic-format-json.cc: Define INCLUDE_MEMORY.
22207         * diagnostic-format-sarif.cc: Likewise.
22208         * dumpfile.cc: Likewise.
22209         * gcov.cc: Likewise.
22210         * json.cc: Likewise.  Include "make-unique.h".
22211         (selftest::test_formatting): Exercise overloads of
22212         array::append and object::set that use unique_ptr.
22213         * json.h: Require INCLUDE_MEMORY to have been defined.
22214         (json::object::set): Add a template to add a family of overloads
22215         taking a std::unique_ptr<JsonType>
22216         (json::array::append): Likewise.
22217         * optinfo-emit-json.cc: Define INCLUDE_MEMORY.
22218         * optinfo.cc: Likewise.
22219         * timevar.cc: Likewise.
22220         * toplev.cc: Likewise.
22221         * tree-diagnostic-client-data-hooks.cc: Likewise.
22223 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22225         * diagnostic-format-json.cc (json_from_expanded_location): Make
22226         "static". Pass param "context" by reference, as it cannot be null.
22227         (json_from_location_range): Likewise for param "context".
22228         (json_from_fixit_hint): Likewise.
22229         (make_json_for_path): Likewise.
22230         (json_output_format::on_end_diagnostic): Update for above changes.
22231         (diagnostic_output_format_init_json::diagnostic_output_format_init_json):
22232         Pass param "context" by reference, as it cannot be null.
22233         (diagnostic_output_format_init_json_stderr): Likewise.
22234         (diagnostic_output_format_init_json_file): Likewise.
22235         (selftest::test_unknown_location): Update for above changes.
22236         (selftest::test_bad_endpoints): Likewise.
22237         * diagnostic-format-sarif.cc (sarif_builder::m_context): Convert
22238         from pointer to reference.
22239         (sarif_invocation::add_notification_for_ice): Convert both params
22240         from pointers to references.
22241         (sarif_invocation::prepare_to_flush): Likewise for "context".
22242         (sarif_result::on_nested_diagnostic): Likewise for "context" and
22243         "builder".
22244         (sarif_result::on_diagram): Likewise.
22245         (sarif_ice_notification::sarif_ice_notification): Likewise.
22246         (sarif_builder::sarif_builder): Likewise for "context".
22247         (sarif_builder::end_diagnostic): Likewise.
22248         (sarif_builder::emit_diagram): Likewise.
22249         (sarif_builder::make_result_object): Likewise.
22250         (make_reporting_descriptor_object_for_warning): Likewise.
22251         (sarif_builder::make_locations_arr): Update for change to m_context.
22252         (sarif_builder::get_sarif_column): Likewise.
22253         (sarif_builder::make_message_object_for_diagram): Convert "context"
22254         from pointer to reference.
22255         (sarif_builder::make_tool_object): Likewise for "m_context".
22256         (sarif_builder::make_driver_tool_component_object): Likewise.
22257         (sarif_builder::get_or_create_artifact): Likewise.
22258         (sarif_builder::maybe_make_artifact_content_object): Likewise.
22259         (sarif_builder::get_source_lines): Likewise.
22260         (sarif_output_format::on_end_diagnostic): Update for above changes.
22261         (sarif_output_format::on_diagram): Likewise.
22262         (sarif_output_format::sarif_output_format): Likewise.
22263         (diagnostic_output_format_init_sarif): Convert param "context"
22264         from pointer to reference.
22265         (diagnostic_output_format_init_sarif_stderr): Likewise.
22266         (diagnostic_output_format_init_sarif_file): Likewise.
22267         (diagnostic_output_format_init_sarif_stream): Likewise.
22268         * diagnostic.cc (diagnostic_output_format_init): Likewise.
22269         * diagnostic.h (diagnostic_output_format_init): Likewise.
22270         (diagnostic_output_format_init_json_stderr): Likewise.
22271         (diagnostic_output_format_init_json_file): Likewise.
22272         (diagnostic_output_format_init_sarif_stderr): Likewise.
22273         (diagnostic_output_format_init_sarif_file): Likewise.
22274         (diagnostic_output_format_init_sarif_stream): Likewise.
22275         (json_from_expanded_location): Delete decl.
22276         * gcc.cc (driver_handle_option): Update for change to
22277         diagnostic_output_format_init.
22278         * opts.cc (common_handle_option): Likewise.
22280 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22282         * diagnostic-format-sarif.cc: Introduce subclasses of sarif_object
22283         for all aspects of the spec that we're using.  Replace almost all
22284         usage of json::object with uses of these subclasses, the only
22285         remaining use of json::object being for originalUriBaseIds, as per
22286         SARIF 2.1.0 §3.14.14.  This stronger typing makes it considerably
22287         easier to maintain validity against the schema.
22288         * diagnostic-format-sarif.h (class sarif_logical_location): New.
22289         (make_sarif_logical_location_object): Convert return type from
22290         json::object * to sarif_logical_location *.
22292 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22294         * gcov.cc (output_intermediate_json_line): Use
22295         json::object::set_integer to avoid naked "new".
22297 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22299         * diagnostic-format-sarif.cc (sarif_artifact::populate_roles):
22300         Avoid naked "new" by using json::array::append_string.
22301         (sarif_builder::maybe_make_kinds_array): Likewise.
22302         * json.cc (json::array::append_string): New.
22303         (selftest::test_writing_arrays): Use it.
22304         * json.h (json::array::append_string): New decl.
22305         * optinfo-emit-json.cc (optrecord_json_writer::pass_to_json):
22306         Avoid naked "new" by using json::array::append_string.
22307         (optrecord_json_writer::optinfo_to_json): Likewise.
22309 2024-07-24  David Malcolm  <dmalcolm@redhat.com>
22311         * json.cc (value::dump): New overload, taking no params.
22312         * json.h (value::dump): New decl.
22314 2024-07-24  Jeff Law  <jlaw@ventanamicro.com>
22316         PR rtl-optimization/116037
22317         * ext-dce.cc (ext_dce_process_sets): Note if we ever skip a dest
22318         and return that info explicitly.
22319         (ext_dce_process_uses): If a set was skipped, then consider all bits
22320         in every input as live.  Do not try to optimize away an extension if
22321         we skipped processing a destination in the same insn.  Restore code
22322         to make shift/rotate count fully live.
22323         (ext_dce_process_bb): Handle API changes for ext_dce_process_sets.
22325 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22327         * common/config/aarch64/aarch64-common.cc
22328         (aarch64_set_asm_isa_flags): Store a second uint64_t value.
22329         * config/aarch64/aarch64-opts.h
22330         (aarch64_feature_flags): Switch typedef to bbitmap<2>.
22331         * config/aarch64/aarch64.cc
22332         (aarch64_set_current_function): Extract isa mode from val[0].
22333         * config/aarch64/aarch64.h
22334         (aarch64_get_asm_isa_flags): Load a second uint64_t value.
22335         (aarch64_get_isa_flags): Ditto.
22336         (aarch64_asm_isa_flags): Ditto.
22337         (aarch64_isa_flags): Ditto.
22338         (HANDLE): Use bbitmap<2>::from_index to initialise flags.
22339         (AARCH64_FL_ISA_MODES): Do arithmetic on integer type.
22340         (AARCH64_ISA_MODE): Extract value from bbitmap<2> array.
22341         * config/aarch64/aarch64.opt
22342         (aarch64_asm_isa_flags_1): New variable.
22343         (aarch64_isa_flags_1): Ditto.
22345 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22347         * bbitmap.h: New file.
22349 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22351         * config/aarch64/aarch64-feature-deps.h
22352         (get_flags_off): Construct aarch64_feature_flags (0) explicitly.
22354 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22356         * config/aarch64/aarch64-c.cc
22357         (aarch64_define_unconditional_macros): Use TARGET_V8R macro.
22358         (aarch64_update_cpp_builtins): Use TARGET_* macros.
22359         * config/aarch64/aarch64.h (AARCH64_HAVE_ISA): New macro.
22360         (AARCH64_ISA_SM_OFF, AARCH64_ISA_SM_ON, AARCH64_ISA_ZA_ON)
22361         (AARCH64_ISA_V8A, AARCH64_ISA_V8_1A, AARCH64_ISA_CRC)
22362         (AARCH64_ISA_FP, AARCH64_ISA_SIMD, AARCH64_ISA_LSE)
22363         (AARCH64_ISA_RDMA, AARCH64_ISA_V8_2A, AARCH64_ISA_F16)
22364         (AARCH64_ISA_SVE, AARCH64_ISA_SVE2, AARCH64_ISA_SVE2_AES)
22365         (AARCH64_ISA_SVE2_BITPERM, AARCH64_ISA_SVE2_SHA3)
22366         (AARCH64_ISA_SVE2_SM4, AARCH64_ISA_SME, AARCH64_ISA_SME_I16I64)
22367         (AARCH64_ISA_SME_F64F64, AARCH64_ISA_SME2, AARCH64_ISA_V8_3A)
22368         (AARCH64_ISA_DOTPROD, AARCH64_ISA_AES, AARCH64_ISA_SHA2)
22369         (AARCH64_ISA_V8_4A, AARCH64_ISA_SM4, AARCH64_ISA_SHA3)
22370         (AARCH64_ISA_F16FML, AARCH64_ISA_RCPC, AARCH64_ISA_RCPC8_4)
22371         (AARCH64_ISA_RNG, AARCH64_ISA_V8_5A, AARCH64_ISA_TME)
22372         (AARCH64_ISA_MEMTAG, AARCH64_ISA_V8_6A, AARCH64_ISA_I8MM)
22373         (AARCH64_ISA_F32MM, AARCH64_ISA_F64MM, AARCH64_ISA_BF16)
22374         (AARCH64_ISA_SB, AARCH64_ISA_RCPC3, AARCH64_ISA_V8R)
22375         (AARCH64_ISA_PAUTH, AARCH64_ISA_V8_7A, AARCH64_ISA_V8_8A)
22376         (AARCH64_ISA_V8_9A, AARCH64_ISA_V9A, AARCH64_ISA_V9_1A)
22377         (AARCH64_ISA_V9_2A, AARCH64_ISA_V9_3A, AARCH64_ISA_V9_4A)
22378         (AARCH64_ISA_MOPS, AARCH64_ISA_LS64, AARCH64_ISA_CSSC)
22379         (AARCH64_ISA_D128, AARCH64_ISA_THE, AARCH64_ISA_GCS): Remove.
22380         (TARGET_BASE_SIMD, TARGET_SIMD, TARGET_FLOAT)
22381         (TARGET_NON_STREAMING, TARGET_STREAMING, TARGET_ZA, TARGET_SHA2)
22382         (TARGET_SHA3, TARGET_AES, TARGET_SM4, TARGET_F16FML)
22383         (TARGET_CRC32, TARGET_LSE, TARGET_FP_F16INST)
22384         (TARGET_SIMD_F16INST, TARGET_DOTPROD, TARGET_SVE, TARGET_SVE2)
22385         (TARGET_SVE2_AES, TARGET_SVE2_BITPERM, TARGET_SVE2_SHA3)
22386         (TARGET_SVE2_SM4, TARGET_SME, TARGET_SME_I16I64)
22387         (TARGET_SME_F64F64, TARGET_SME2, TARGET_ARMV8_3, TARGET_JSCVT)
22388         (TARGET_FRINT, TARGET_TME, TARGET_RNG, TARGET_MEMTAG)
22389         (TARGET_I8MM, TARGET_SVE_I8MM, TARGET_SVE_F32MM)
22390         (TARGET_SVE_F64MM, TARGET_BF16_FP, TARGET_BF16_SIMD)
22391         (TARGET_SVE_BF16, TARGET_PAUTH, TARGET_BTI, TARGET_MOPS)
22392         (TARGET_LS64, TARGET_CSSC, TARGET_SB, TARGET_RCPC, TARGET_RCPC2)
22393         (TARGET_RCPC3, TARGET_SIMD_RDMA, TARGET_ARMV9_4, TARGET_D128)
22394         (TARGET_THE, TARGET_GCS): Redefine using AARCH64_HAVE_ISA.
22395         (TARGET_V8R, TARGET_V9A): New.
22396         * config/aarch64/aarch64.md (arch_enabled): Use TARGET_RCPC2.
22397         * config/aarch64/iterators.md (GPI_I16): Use TARGET_FP_F16INST.
22398         (GPF_F16): Ditto.
22399         * config/aarch64/predicates.md
22400         (aarch64_rcpc_memory_operand): Use TARGET_RCPC2.
22402 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22404         * config/aarch64/aarch64.cc
22405         (aarch64_valid_sysreg_name_p): Add bool cast.
22407 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22409         * common/config/aarch64/aarch64-common.cc
22410         (aarch64_set_asm_isa_flags): Reorder, and add suffix to names.
22411         * config/aarch64/aarch64.h
22412         (aarch64_get_asm_isa_flags): Add "_0" suffix.
22413         (aarch64_get_isa_flags): Ditto.
22414         (aarch64_asm_isa_flags): Redefine using renamed uint64_t value.
22415         (aarch64_isa_flags): Ditto.
22416         * config/aarch64/aarch64.opt:
22417         (aarch64_asm_isa_flags): Rename to...
22418         (aarch64_asm_isa_flags_0): ...this, and change to uint64_t.
22419         (aarch64_isa_flags): Rename to...
22420         (aarch64_isa_flags_0): ...this, and change to uint64_t.
22422 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22424         * common/config/aarch64/aarch64-common.cc
22425         (aarch64_handle_option): Use new macro.
22426         * config/aarch64/aarch64.cc
22427         (aarch64_override_options_internal): Ditto.
22428         (aarch64_option_print): Ditto.
22429         (aarch64_set_current_function): Ditto.
22430         (aarch64_can_inline_p): Ditto.
22431         (aarch64_declare_function_name): Ditto.
22432         (aarch64_start_file): Ditto.
22433         * config/aarch64/aarch64.h (aarch64_get_asm_isa_flags): New
22434         (aarch64_get_isa_flags): New.
22435         (aarch64_asm_isa_flags): Use new macro.
22436         (aarch64_isa_flags): Ditto.
22438 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22440         * config/aarch64/aarch64-opts.h: Add aarch64_isa_mode typedef.
22441         * config/aarch64/aarch64-protos.h
22442         (aarch64_gen_callee_cookie): Use aarch64_isa_mode parameter.
22443         (aarch64_sme_vq_immediate): Ditto.
22444         * config/aarch64/aarch64.cc
22445         (aarch64_fntype_pstate_sm): Use aarch64_isa_mode values.
22446         (aarch64_fntype_pstate_za): Ditto.
22447         (aarch64_fndecl_pstate_sm): Ditto.
22448         (aarch64_fndecl_pstate_za): Ditto.
22449         (aarch64_fndecl_isa_mode): Ditto.
22450         (aarch64_cfun_incoming_pstate_sm): Ditto.
22451         (aarch64_cfun_enables_pstate_sm): Ditto.
22452         (aarch64_call_switches_pstate_sm): Ditto.
22453         (aarch64_gen_callee_cookie): Ditto.
22454         (aarch64_callee_isa_mode): Ditto.
22455         (aarch64_insn_callee_abi): Ditto.
22456         (aarch64_sme_vq_immediate): Ditto.
22457         (aarch64_add_offset_temporaries): Ditto.
22458         (aarch64_add_offset): Ditto.
22459         (aarch64_add_sp): Ditto.
22460         (aarch64_sub_sp): Ditto.
22461         (aarch64_guard_switch_pstate_sm): Ditto.
22462         (aarch64_switch_pstate_sm): Ditto.
22463         (aarch64_init_cumulative_args): Ditto.
22464         (aarch64_allocate_and_probe_stack_space): Ditto.
22465         (aarch64_expand_prologue): Ditto.
22466         (aarch64_expand_epilogue): Ditto.
22467         (aarch64_start_call_args): Ditto.
22468         (aarch64_expand_call): Ditto.
22469         (aarch64_end_call_args): Ditto.
22470         (aarch64_set_current_function): Ditto, with added conversions.
22471         (aarch64_handle_attr_arch): Avoid macro with changed type.
22472         (aarch64_handle_attr_cpu): Ditto.
22473         (aarch64_handle_attr_isa_flags): Ditto.
22474         (aarch64_switch_pstate_sm_for_landing_pad):
22475         Use arch64_isa_mode values.
22476         (aarch64_switch_pstate_sm_for_jump): Ditto.
22477         (pass_switch_pstate_sm::gate): Ditto.
22478         * config/aarch64/aarch64.h
22479         (AARCH64_ISA_MODE_{SM_ON|SM_OFF|ZA_ON}): New macros.
22480         (AARCH64_FL_SM_STATE): Mark as possibly unused.
22481         (AARCH64_ISA_MODE_SM_STATE): New aarch64_isa_mode mask.
22482         (AARCH64_DEFAULT_ISA_MODE): New aarch64_isa_mode value.
22483         (AARCH64_FL_DEFAULT_ISA_MODE): Define using above value.
22484         (AARCH64_ISA_MODE): Change type to aarch64_isa_mode.
22485         (arm_pcs): Use aarch64_isa_mode value.
22487 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22489         * config/aarch64/aarch64.cc
22490         (aarch64_override_options): Remove temporary variable.
22492 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22494         * config/aarch64/aarch64.h (DEF_AARCH64_ISA_MODE): Move to...
22495         * config/aarch64/aarch64-opts.h (DEF_AARCH64_ISA_MODE): ...here.
22497 2024-07-24  Andrew Carlotti  <andrew.carlotti@arm.com>
22499         * config/aarch64/aarch64.cc
22500         (aarch64_tune_flags): Remove unused global variable.
22501         (aarch64_override_options_internal): Remove dead assignment.
22503 2024-07-24  Andrew Pinski  <quic_apinski@quicinc.com>
22505         * config/rs6000/rs6000-builtins.def: s/iorc/iorn/. s/andc/andn/
22506         for the code.
22507         * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update
22508         to iorn.
22509         * config/rs6000/rs6000.md (andc<mode>3): Rename to ...
22510         (andn<mode>3): This.
22511         (iorc<mode>3): Rename to ...
22512         (iorn<mode>3): This.
22513         * doc/md.texi: Update documentation for the rename.
22514         * internal-fn.def (BIT_ANDC): Rename to ...
22515         (BIT_ANDN): This.
22516         (BIT_IORC): Rename to ...
22517         (BIT_IORN): This.
22518         * optabs.def (andc_optab): Rename to ...
22519         (andn_optab): This.
22520         (iorc_optab): Rename to ...
22521         (iorn_optab): This.
22522         * gimple-isel.cc (gimple_expand_vec_cond_expr): Update for the
22523         renamed internal functions, ANDC/IORC to ANDN/IORN.
22525 2024-07-24  Gaius Mulley  <gaiusmod2@gmail.com>
22527         * doc/install.texi (GM2-prerequisite): Add GNU flex.
22529 2024-07-24  Richard Biener  <rguenther@suse.de>
22531         PR tree-optimization/116057
22532         * tree-ssa-ccp.cc (likely_value): Also walk CTORs in stmt
22533         operands to look for constants.
22535 2024-07-24  Kyrylo Tkachov  <ktkachov@nvidia.com>
22537         Revert:
22538         2024-07-24  Jennifer Schmitz  <jschmitz@nvidia.com>
22540         * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
22541         fusion logic.
22542         * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
22543         (cmp+cset): Likewise.
22544         * config/aarch64/tuning_models/neoversev2.h: Enable logic in
22545         field fusible_ops.
22547 2024-07-24  Jennifer Schmitz  <jschmitz@nvidia.com>
22549         * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
22550         fusion logic.
22551         * config/aarch64/aarch64-fusion-pairs.def (cmp+csel): New entry.
22552         (cmp+cset): Likewise.
22553         * config/aarch64/tuning_models/neoversev2.h: Enable logic in
22554         field fusible_ops.
22556 2024-07-24  Christoph Müllner  <christoph.muellner@vrull.eu>
22558         PR target/116035
22559         * config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip
22560         for XTheadMemIdx.
22562 2024-07-24  Lingling Kong  <lingling.kong@intel.com>
22564         PR target/115978
22565         * config/i386/driver-i386.cc (host_detect_local_cpu):  Enable
22566         APX_F only for 64-bit codegen.
22567         * config/i386/i386-options.cc (DEF_PTA):  Skip PTA_APX_F if
22568         not in 64-bit mode.
22570 2024-07-24  Pan Li  <pan2.li@intel.com>
22572         PR target/115961
22573         * internal-fn.cc (type_strictly_matches_mode_p): Add new func
22574         impl to check type strictly matches mode or not.
22575         (type_pair_strictly_matches_mode_p): Ditto but for tree type
22576         pair.
22577         (direct_internal_fn_supported_p): Add above check for the tree
22578         type pair.
22580 2024-07-23  Mark Harmstone  <mark@harmstone.com>
22582         * dwarf2codeview.cc (get_type_num_reference_type): Handle rvalue refs.
22583         (get_type_num_array_type): Add DW_TAG_rvalue_reference_type to switch.
22584         (get_type_num): Handle DW_TAG_rvalue_reference_type DIEs.
22585         * dwarf2codeview.h (CV_PTR_MODE_RVREF): Define.
22587 2024-07-23  Mark Harmstone  <mark@harmstone.com>
22589         * dwarf2codeview.cc (get_type_num_reference_type): New function.
22590         (get_type_num_array_type): Add DW_TAG_reference_type to switch.
22591         (get_type_num): Handle DW_TAG_reference_type DIEs.
22592         * dwarf2codeview.h (CV_PTR_MODE_LVREF): Define.
22594 2024-07-23  Vineet Gupta  <vineetg@rivosinc.com>
22596         * config/riscv/bitmanip.md: Fix splitter.
22598 2024-07-23  Marek Polacek  <polacek@redhat.com>
22600         * doc/extend.texi: Add missing @option.
22602 2024-07-23  Andi Kleen  <ak@linux.intel.com>
22604         PR c/83324
22605         * doc/extend.texi: Document [[musttail]]
22607 2024-07-23  Tobias Burnus  <tburnus@baylibre.com>
22609         * doc/install.texi (amdgcn-x-amdhsa): Suggest newer git version
22610         for newlib.
22612 2024-07-23  Jiufu Guo  <guojiufu@linux.ibm.com>
22614         PR target/96866
22615         * config/rs6000/rs6000.cc (print_operand_address): Emit message for
22616         unsupported operand.
22618 2024-07-23  Richard Biener  <rguenther@suse.de>
22620         PR tree-optimization/116002
22621         * tree-ssa-structalias.cc (topo_visit): Also consider
22622         SCALAR = SCALAR complex constraints as edges.
22624 2024-07-23  Jakub Jelinek  <jakub@redhat.com>
22625             Andrew Pinski  <quic_apinski@quicinc.com>
22627         PR tree-optimization/116034
22628         * tree-ssa.cc (maybe_rewrite_mem_ref_base): Only use IMAGPART_EXPR
22629         if MEM_REF offset is equal to element type size.
22631 2024-07-23  Richard Biener  <rguenther@suse.de>
22633         PR rtl-optimization/116002
22634         * cselib.cc (cselib_hash_rtx): Use inchash to get proper mixing.
22635         Consistently avoid a zero return value when hashing successfully.
22636         Consistently treat a zero hash value from recursing as fatal.
22637         Use hashval_t where appropriate.
22638         (cselib_hash_plus_const_int): Likewise.
22639         (new_cselib_val): Use hashval_t.
22640         (cselib_lookup_1): Likewise.
22642 2024-07-23  liuhongt  <hongtao.liu@intel.com>
22644         * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax mov subreg
22645         to hard register after split1.
22647 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
22649         PR target/115713
22650         * config/rs6000/rs6000.cc (rs6000_inner_target_options): Update option
22651         set information for rs6000_opt_vars.
22653 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
22655         PR target/115713
22656         * config/rs6000/rs6000.cc (rs6000_inner_target_options): Avoid to
22657         enable altivec or disable avoid-indexed-addresses automatically
22658         when they get specified explicitly.
22660 2024-07-23  Kewen Lin  <linkw@linux.ibm.com>
22662         PR target/115713
22663         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Emit error
22664         messages when explicit VSX encounters explicit soft-float, no-altivec
22665         or avoid-indexed-addresses.
22667 2024-07-23  Haochen Jiang  <haochen.jiang@intel.com>
22669         * config/i386/i386.md (prefetchi): Change to %a.
22671 2024-07-23  Jeff Law  <jlaw@ventanamicro.com>
22673         PR rtl-optimization/115877
22674         * ext-dce.cc (ext_dce_process_sets): Reasonably handle input/output
22675         operands.
22676         (ext_dce_rd_transfer_n): Drop bogus assertion.
22678 2024-07-23  Pan Li  <pan2.li@intel.com>
22680         * config/riscv/iterators.md (ANYI_DOUBLE_TRUNC): Add new iterator
22681         for int double truncation.
22682         (ANYI_DOUBLE_TRUNCATED): Add new attr for int double truncation.
22683         (anyi_double_truncated): Ditto but for lowercase.
22684         * config/riscv/riscv-protos.h (riscv_expand_ustrunc): Add new
22685         func decl for expanding ustrunc
22686         * config/riscv/riscv.cc (riscv_expand_ustrunc): Add new func
22687         impl to expand ustrunc.
22688         * config/riscv/riscv.md (ustrunc<mode><anyi_double_truncated>2): Impl
22689         the new pattern ustrunc<m><n>2 for int.
22691 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
22693         PR ipa/109985
22694         * ipa-modref.cc (modref_summary::useful_p): Fix handling of ECF_NOVOPS.
22695         (modref_access_analysis::process_fnspec): Likevise.
22696         (modref_access_analysis::analyze_call): Likevise.
22697         (propagate_unknown_call): Likevise.
22698         (modref_propagate_in_scc): Likevise.
22699         (modref_propagate_flags_in_scc): Likewise.
22700         (ipa_merge_modref_summary_after_inlining): Likewise.
22702 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
22704         PR ipa/111613
22705         * ipa-modref.cc (analyze_parms): Do not preserve EAF_NO_DIRECT_READ and
22706         EAF_NO_INDIRECT_READ from past flags.
22708 2024-07-22  Michael Meissner  <meissner@linux.ibm.com>
22710         * config.gcc (powerpc*-*-*): Add support for power11.
22711         * config/rs6000/aix71.h (ASM_CPU_SPEC): Add support for -mcpu=power11.
22712         * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise.
22713         * config/rs6000/aix73.h (ASM_CPU_SPEC): Likewise.
22714         * config/rs6000/driver-rs6000.cc (asm_names): Likewise.
22715         * config/rs6000/ppc-auxv.h (PPC_PLATFORM_POWER11): New define.
22716         * config/rs6000/rs6000-builtin.cc (cpu_is_info): Add power11.
22717         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
22718         _ARCH_PWR11 if -mcpu=power11.
22719         * config/rs6000/rs6000-cpus.def (POWER11_MASKS_SERVER): New define.
22720         (POWERPC_MASKS): Add power11.
22721         (power11 cpu): Add power11 definition.
22722         * config/rs6000/rs6000-opts.h (PROCESSOR_POWER11): Add power11 processor.
22723         * config/rs6000/rs6000-string.cc (expand_compare_loop): Likewise.
22724         * config/rs6000/rs6000-tables.opt: Regenerate.
22725         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Add power11
22726         support.
22727         (rs6000_machine_from_flags): Likewise.
22728         (rs6000_reassociation_width): Likewise.
22729         (rs6000_adjust_cost): Likewise.
22730         (rs6000_issue_rate): Likewise.
22731         (rs6000_sched_reorder): Likewise.
22732         (rs6000_sched_reorder2): Likewise.
22733         (rs6000_register_move_cost): Likewise.
22734         (rs6000_opt_masks): Likewise.
22735         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Likewise.
22736         * config/rs6000/rs6000.md (cpu attribute): Add power11.
22737         * config/rs6000/rs6000.opt (-mpower11): Add internal power11 flag.
22738         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mcpu=power11.
22739         * config/rs6000/power10.md (all reservations): Add power11 support.
22741 2024-07-22  Jeff Law  <jlaw@ventanamicro.com>
22743         PR rtl-optimization/115877
22744         * ext-dce.cc (ext_dce_process_sets): More correctly handle SUBREG
22745         destinations.
22747 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
22749         PR ipa/115033
22750         * ipa-modref.cc (modref_eaf_analysis::analyze_ssa_name): Fix checking of
22751         EAF flags when analysing values dereferenced as function parameters.
22753 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
22755         PR ipa/114207
22756         * ipa-prop.cc (unadjusted_ptr_and_unit_offset): Fix accounting of offsets in ADDR_EXPR.
22758 2024-07-22  Jan Hubicka  <hubicka@ucw.cz>
22760         PR ipa/115277
22761         * ipa-icf-gimple.cc (func_checker::compare_loops): compare loop
22762         bounds.
22764 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
22766         PR rtl-optimization/116009
22767         * rtl-ssa/accesses.cc (function_info::add_def): Set the root
22768         local variable after removing the old clobber group.
22770 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
22772         * rtl-ssa/accesses.h (rtl_ssa::pp_def_splay_tree): Declare.
22773         (dump, debug): Add overloads for def_splay_tree.
22774         * rtl-ssa/accesses.cc (rtl_ssa::pp_def_splay_tree): New function.
22775         (dump, debug): Add overloads for def_splay_tree.
22777 2024-07-22  Richard Sandiford  <richard.sandiford@arm.com>
22779         PR target/115969
22780         * config/aarch64/aarch64.cc (aarch64_simd_mem_operand_p): Require
22781         the operand to be a legitimate memory_operand.
22783 2024-07-22  Jeff Law  <jlaw@ventanamicro.com>
22785         PR rtl-optimization/115877
22786         * ext-dce.cc (group_limit): New function.
22787         (mark_reg_live): Likewise.
22788         (ext_dce_process_sets): Use new functions.
22789         (ext_dce_process_uses): Likewise.
22790         (ext_dce_init): Likewise.
22792 2024-07-22  Richard Biener  <rguenther@suse.de>
22794         * fold-const.cc (operand_compare::hash_operand): Fix hash
22795         of WIDEN_*_EXPR.
22797 2024-07-22  Richard Biener  <rguenther@suse.de>
22799         * inchash.h (inchash::end): Make const.
22800         (inchash::merge): Take const reference hash argument.
22801         (inchash::add_commutative): Likewise.
22803 2024-07-22  Tamar Christina  <tamar.christina@arm.com>
22805         PR tree-optimization/115531
22806         * config/aarch64/aarch64.cc
22807         (aarch64_conditional_operation_is_expensive): New.
22808         (TARGET_VECTORIZE_CONDITIONAL_OPERATION_IS_EXPENSIVE): New.
22810 2024-07-22  Tamar Christina  <tamar.christina@arm.com>
22812         PR tree-optimization/115531
22813         * tree-vect-patterns.cc (vect_cond_store_pattern_same_ref): New.
22814         (vect_recog_cond_store_pattern): New.
22815         (vect_vect_recog_func_ptrs): Use it.
22816         * target.def (conditional_operation_is_expensive): New.
22817         * doc/tm.texi: Regenerate.
22818         * doc/tm.texi.in: Document it.
22819         * targhooks.cc (default_conditional_operation_is_expensive): New.
22820         * targhooks.h (default_conditional_operation_is_expensive): New.
22822 2024-07-21  Jeff Law  <jlaw@ventanamicro.com>
22824         PR rtl-optimization/115877
22825         * ext-dce.cc (safe_for_live_propagation): Handle RTX_CONST_OBJ.
22827 2024-07-21  Jeff Law  <jlaw@ventanamicro.com>
22829         PR rtl-optimization/115877
22830         * ext-dce.cc (ext_dce_process_uses): Restore the value of DST_MASK
22831         for reach operand.
22833 2024-07-21  Sam James  <sam@gentoo.org>
22835         * Makefile.in (NOCOMMON_FLAG): Delete.
22836         (GCC_WARN_CFLAGS): Drop NOCOMMON_FLAG.
22837         (GCC_WARN_CXXFLAGS): Drop NOCOMMON_FLAG.
22838         * configure.ac: Ditto.
22839         * configure: Regenerate.
22841 2024-07-21  Oleg Endo  <olegendo@gcc.gnu.org>
22843         * config/sh/sh.md (mov_neg_si_t): Allow insn and split after
22844         register allocation.
22845         (*treg_noop_move): New insn.
22847 2024-07-20  Andi Kleen  <ak@gcc.gnu.org>
22849         Revert:
22850         2024-07-20  Andi Kleen  <ak@linux.intel.com>
22852         PR c/83324
22853         * doc/extend.texi: Document [[musttail]]
22855 2024-07-20  Mark Harmstone  <mark@harmstone.com>
22857         * dwarf2codeview.cc (enum cv_sym_type): Add new values.
22858         (struct codeview_symbol): Add function to union.
22859         (struct codeview_custom_type): Add lf_func_id to union.
22860         (write_function): New function.
22861         (write_codeview_symbols): Call write_function.
22862         (write_lf_func_id): New function.
22863         (write_custom_types): Call write_lf_func_id.
22864         (add_function): New function.
22865         (codeview_debug_early_finish): Call add_function.
22867 2024-07-20  André Maroneze  <andre.maroneze@cea.fr>
22869         * doc/invoke.texi (Spec Files): Remove documentation of obsolete
22870         spec strings "predefines" and "signed_char".
22872 2024-07-20  Siddhesh Poyarekar  <siddhesh@gotplt.org>
22874         * opt-suggestions.cc
22875         (option_proposer::build_option_suggestions): Pull OPTB
22876         definition out of the innermost loop.
22878 2024-07-20  Andi Kleen  <ak@linux.intel.com>
22880         PR c/83324
22881         * doc/extend.texi: Document [[musttail]]
22883 2024-07-20  Lulu Cheng  <chenglulu@loongson.cn>
22885         * config/loongarch/loongarch-protos.h
22886         (loongarch_split_128bit_move): Delete.
22887         (loongarch_split_128bit_move_p): Delete.
22888         (loongarch_split_256bit_move): Delete.
22889         (loongarch_split_256bit_move_p): Delete.
22890         (loongarch_split_vector_move): Add a function declaration.
22891         * config/loongarch/loongarch.cc
22892         (loongarch_vector_costs::finish_cost): Adjust the code
22893         formatting.
22894         (loongarch_split_vector_move_p): Merge
22895         loongarch_split_128bit_move_p and loongarch_split_256bit_move_p.
22896         (loongarch_split_move_p): Merge code.
22897         (loongarch_split_move): Likewise.
22898         (loongarch_split_128bit_move_p): Delete.
22899         (loongarch_split_256bit_move_p): Delete.
22900         (loongarch_split_128bit_move): Delete.
22901         (loongarch_split_vector_move): Merge loongarch_split_128bit_move
22902         and loongarch_split_256bit_move.
22903         (loongarch_split_256bit_move): Delete.
22904         (loongarch_global_init): Remove the extra semicolon at the
22905         end of the function.
22906         * config/loongarch/loongarch.md (*movdf_softfloat):  Added a new
22907         condition TARGET_64BIT.
22909 2024-07-19  Andrew MacLeod  <amacleod@redhat.com>
22911         PR tree-optimization/116003
22912         * value-relation.cc (equiv_oracle::register_initial_def): Check
22913         if SSA_NAME is in the IL before registering.
22915 2024-07-19  Thomas Schwinge  <tschwinge@baylibre.com>
22917         * passes.def: Rewrite usage comment at the top.
22919 2024-07-19  Richard Sandiford  <richard.sandiford@arm.com>
22921         PR middle-end/115406
22922         * fold-const.cc (native_encode_vector_part): For vector booleans,
22923         check whether an element is nonzero and, if so, set all of the
22924         correspending bits in the target image.
22925         * simplify-rtx.cc (native_encode_rtx): Likewise.
22927 2024-07-19  Georg-Johann Lay  <avr@gjlay.de>
22929         * config/avr/builtins.def (MASK1): New DEF_BUILTIN.
22930         * config/avr/avr.cc (avr_rtx_costs_1): Handle rtx costs for
22931         expressions like __builtin_avr_mask1.
22932         (avr_init_builtins) <uintQI_ftype_uintQI_uintQI>: New tree type.
22933         (avr_expand_builtin) [AVR_BUILTIN_MASK1]: Diagnose unexpected forms.
22934         (avr_fold_builtin) [AVR_BUILTIN_MASK1]: Handle case.
22935         * config/avr/avr.md (gen_mask1): New expand helper.
22936         (mask1_0x01_split, mask1_0x80_split, mask1_0xfe_split): New
22937         insn-and-split.
22938         (*mask1_0x01, *mask1_0x80, *mask1_0xfe): New insns.
22939         * doc/extend.texi (AVR Built-in Functions) <__builtin_avr_mask1>:
22940         Document new built-in function.
22942 2024-07-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
22944         * config/bpf/atomic.md (atomic_compare_and_swap,
22945         atomic_exchange): Add operand modifier %M to the first
22946         operand.
22947         * config/bpf/bpf.cc (no_parentheses_mem_operand): Create
22948         variable.
22949         (bpf_print_operand): Set no_parentheses_mem_operand variable if
22950         %M operand is used.
22951         (bpf_print_operand_address): Conditionally output parentheses.
22953 2024-07-19  Pan Li  <pan2.li@intel.com>
22955         PR target/115863
22956         * match.pd: Add single_use check for .SAT_TRUNC form 2.
22958 2024-07-18  René Rebe  <rene@exactcode.de>
22959             Peter Bergner  <bergner@linux.ibm.com>
22961         PR target/97367
22962         * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Do not consider
22963         OPTION_MASK_ALTIVEC.
22964         (emit_asm_machine): For Altivec compiles, emit a ".machine altivec".
22966 2024-07-18  Marek Polacek  <polacek@redhat.com>
22967             Jakub Jelinek   <jakub@redhat.com>
22969         PR c++/115865
22970         * tree-eh.cc (get_eh_else): Check that the result of
22971         gimple_seq_first_stmt is non-null.
22973 2024-07-18  LIU Hao  <lh_mouse@126.com>
22975         PR rtl-optimization/115049
22976         * varasm.cc (decl_binds_to_current_def_p): Add a check for COMDAT
22977         declarations too, like weak ones.
22979 2024-07-18  Richard Biener  <rguenther@suse.de>
22981         PR middle-end/115641
22982         * fold-const.cc (decode_field_reference): If the inner
22983         reference isn't something we can take the address of, fail.
22985 2024-07-18  Pan Li  <pan2.li@intel.com>
22987         * doc/md.texi: Add Standard-Names ustrunc and sstrunc.
22989 2024-07-18  Rubin Gerritsen  <rubin.gerritsen@gmail.com>
22991         * gimple-fold.cc (dump_transformation): Moved definition.
22992         (replace_call_with_call_and_fold): Calls dump_transformation.
22993         (gimple_fold_builtin_stxcpy_chk): Removes call to
22994         dump_transformation, now in replace_call_with_call_and_fold.
22995         (gimple_fold_builtin_stxncpy_chk): Removes call to
22996         dump_transformation, now in replace_call_with_call_and_fold.
22998 2024-07-18  Richard Biener  <rguenther@suse.de>
23000         PR tree-optimization/104515
23001         * tree-ssa-loop-im.cc (execute_sm_exit): Add clobbers_to_prune
23002         parameter and handle re-materializing of clobbers.
23003         (sm_seq_valid_bb): end-of-storage/object clobbers are OK inside
23004         an ordered sequence of stores.
23005         (sm_seq_push_down): Refuse to push down clobbers.
23006         (hoist_memory_references): Prune clobbers from the loop body
23007         we re-materialized on an exit.
23009 2024-07-18  Roger Sayle  <roger@nextmovesoftware.com>
23011         * match.pd ((FTYPE) N CMP CST): Only worry about exceptions with
23012         flag_trapping_math, and about signaling NaNs with HONOR_SNANS.
23014 2024-07-18  Kyrylo Tkachov  <ktkachov@nvidia.com>
23016         * doc/invoke.texi (AArch64 Options): Document rewriting of
23017         -march=native to -mcpu=native.
23019 2024-07-18  liuhongt  <hongtao.liu@intel.com>
23021         PR target/115843
23022         * config/i386/predicates.md (const0_or_m1_operand): New
23023         predicate.
23024         * config/i386/sse.md (*<avx512>_store<mode>_mask_1): New
23025         pre_reload define_insn_and_split.
23026         (V): Add V32BF,V16BF,V8BF.
23027         (V4SF_V8BF): Rename to ..
23028         (V24F_128): .. this.
23029         (*vec_concat<mode>): Adjust with V24F_128.
23030         (*vec_concat<mode>_0): Ditto.
23032 2024-07-18  Andi Kleen  <ak@linux.intel.com>
23034         PR c/83324
23035         * calls.cc (initialize_argument_information): Mark messages
23036         for translation.
23037         (can_implement_as_sibling_call_p): Dito.
23038         (expand_call): Dito.
23040 2024-07-18  Andi Kleen  <ak@linux.intel.com>
23042         PR c/83324
23043         * tree-tailcall.cc (maybe_error_musttail): New function.
23044         (suitable_for_tail_opt_p): Report error reason.
23045         (suitable_for_tail_call_opt_p): Report error reason.
23046         (find_tail_calls): Accept basic blocks with abnormal edges.
23047         Delay reporting of errors until the call is discovered.
23048         Move top level suitability checks to here.
23049         (tree_optimize_tail_calls_1): Remove top level checks.
23051 2024-07-18  Andi Kleen  <ak@linux.intel.com>
23053         PR c/83324
23054         * function.h (struct function): Add has_musttail.
23055         * lto-streamer-in.cc (input_struct_function_base): Stream
23056         has_musttail.
23057         * lto-streamer-out.cc (output_struct_function_base): Dito.
23058         * passes.def (pass_musttail): Add.
23059         * tree-cfg.cc (notice_special_calls): Record has_musttail.
23060         (clear_special_calls): Clear has_musttail.
23061         * tree-pass.h (make_pass_musttail): Add.
23062         * tree-tailcall.cc (find_tail_calls): Handle only_musttail
23063         argument.
23064         (tree_optimize_tail_calls_1): Pass on only_musttail.
23065         (execute_tail_calls): Pass only_musttail as false.
23066         (class pass_musttail): Add.
23067         (make_pass_musttail): Add.
23069 2024-07-18  Andi Kleen  <ak@linux.intel.com>
23071         PR target/115255
23072         * function.cc (thread_prologue_and_epilogue_insns): Check
23073         cfun->tail_call_marked for sibcalls too.
23074         (rest_of_handle_thread_prologue_and_epilogue): Dito.
23076 2024-07-18  Andi Kleen  <ak@linux.intel.com>
23078         PR c/83324
23079         * calls.cc (maybe_complain_about_tail_call): Clear must tail
23080         flag on error.
23081         (expand_call): Give error messages for all musttail failures.
23083 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
23085         PR rtl-optimization/115929
23086         * rtl-ssa/movement.h (canonicalize_move_range): Check for null prev
23087         and next insns and create an invalid move range for them.
23089 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
23091         PR rtl-optimization/115928
23092         * rtl-ssa/accesses.h (clobber_group): Add a new constructor that
23093         takes the first, last and root clobbers.
23094         * rtl-ssa/internals.inl (clobber_group::clobber_group): Define it.
23095         * rtl-ssa/accesses.cc (function_info::split_clobber_group): Use it.
23096         Allocate a new group for both sides and invalidate the previous group.
23097         (function_info::add_def): After calling split_clobber_group,
23098         remove the old group from the splay tree.
23100 2024-07-17  Richard Sandiford  <richard.sandiford@arm.com>
23102         * genattrtab.cc (attr_desc::cxx_type): New field.
23103         (write_attr_get, write_attr_value): Use it.
23104         (gen_attr, find_attr, make_internal_attr): Initialize it,
23105         dropping enum tags.
23107 2024-07-17  Eikansh Gupta  <quic_eikagupt@quicinc.com>
23109         PR tree-optimization/111150
23110         * match.pd (`(a ? x : y) eq/ne (b ? x : y)`): New pattern.
23111         (`(a ? x : y) eq/ne (b ? y : x)`): New pattern.
23113 2024-07-17  Andrew Pinski  <quic_apinski@quicinc.com>
23115         * dbgcnt.def (ext_dce): New debug counter.
23116         * ext-dce.cc (ext_dce_try_optimize_insn): Reject the insn
23117         if the debug counter says so.
23118         (ext_dce): Rename to ...
23119         (ext_dce_execute): This.
23120         (pass_ext_dce::execute): Update for the name of ext_dce.
23122 2024-07-17  Uros Bizjak  <ubizjak@gmail.com>
23124         PR target/115526
23125         * config/alpha/alpha.md (movdi_er_high_g): Add cannot_copy attribute.
23126         (movdi_er_tlsgd): Ditto.
23127         (movdi_er_tlsldm): Ditto.
23128         (call_value_osf_<tls>): Ditto.
23130 2024-07-17  Georg-Johann Lay  <avr@gjlay.de>
23132         PR target/90616
23133         * config/avr/predicates.md (const_0mod256_operand): New predicate.
23134         * config/avr/constraints.md (Cp8): New constraint.
23135         * config/avr/avr.md (*aligned_add_symbol): New insn.
23136         * config/avr/avr.cc (avr_out_plus_symbol) [HImode]:
23137         When op2 is a multiple of 256, there is no need to add / subtract
23138         the lo8 part.
23139         (avr_rtx_costs_1) [PLUS && HImode]: Return expected costs for
23140         new insn *aligned_add_symbol as it applies.
23142 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
23144         PR middle-end/115887
23145         * gimple-lower-bitint.cc (gimple_lower_bitint): Use gsi_insert_on_edge
23146         instead of gsi_insert_on_edge_immediate and set edge_insertions to
23147         true.
23149 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
23151         * varasm.cc (default_elf_asm_output_ascii): Use ASM_OUTPUT_SKIP instead
23152         of 2 or more default_elf_asm_output_limited_string (f, "") calls and
23153         adjust base64 heuristics correspondingly.
23155 2024-07-17  Tamar Christina  <tamar.christina@arm.com>
23157         PR tree-optimization/115936
23158         * tree-scalar-evolution.cc (simple_iv_with_niters): Use sizetype for
23159         pointers.
23161 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
23163         PR tree-optimization/114440
23164         * tree-vectorizer.h (struct _stmt_vec_info): Add a new field
23165         reduc_result_pos.
23166         * tree-vect-loop.cc (vect_transform_reduction): Generate lane-reducing
23167         statements in an optimized order.
23169 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
23171         PR tree-optimization/114440
23172         * tree-vectorizer.h (vectorizable_lane_reducing): New function
23173         declaration.
23174         * tree-vect-stmts.cc (vect_analyze_stmt): Call new function
23175         vectorizable_lane_reducing to analyze lane-reducing operation.
23176         * tree-vect-loop.cc (vect_model_reduction_cost): Remove cost computation
23177         code related to emulated_mixed_dot_prod.
23178         (vectorizable_lane_reducing): New function.
23179         (vectorizable_reduction): Allow multiple lane-reducing operations in
23180         loop reduction. Move some original lane-reducing related code to
23181         vectorizable_lane_reducing.
23182         (vect_transform_reduction): Adjust comments with updated example.
23184 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
23186         * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage):
23187         Calculate effective vector stmts number with generic
23188         vect_get_num_copies.
23189         (vect_transform_reduction): Insert copies for lane-reducing so as to
23190         fix over-estimated vector stmts number.
23191         (vect_transform_cycle_phi): Calculate vector PHI number only based on
23192         output vectype.
23193         * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Remove
23194         adjustment on vector stmts number specific to slp reduction.
23196 2024-07-17  Feng Xue  <fxue@os.amperecomputing.com>
23198         * tree-vectorizer.h (vect_get_num_copies): New overload function.
23199         * tree-vect-slp.cc (vect_slp_analyze_node_operations_1): Calculate
23200         number of vector stmts for slp node with vect_get_num_copies.
23201         (vect_slp_analyze_node_operations): Calculate number of vector elements
23202         for constant/external slp node with vect_get_num_copies.
23204 2024-07-17  Richard Biener  <rguenther@suse.de>
23206         PR tree-optimization/115959
23207         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
23208         Get at the REDUC_IDX child in a safer way for COND_EXPR
23209         nodes.
23211 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
23213         PR other/115958
23214         * varasm.cc (default_elf_asm_output_ascii): Cast t - s to unsigned
23215         to avoid -Wsign-compare warnings.
23217 2024-07-17  Jakub Jelinek  <jakub@redhat.com>
23219         PR middle-end/115527
23220         * gimple-fold.cc (clear_padding_flush): Introduce endsize
23221         variable and use it instead of wordsize when comparing it against
23222         nonzero_last.
23223         (clear_padding_type): Increment off by sz.
23225 2024-07-17  Haochen Gui  <guihaoc@gcc.gnu.org>
23227         * config/rs6000/rs6000.md (mov<mode>cc, *mov<mode>cc_p10,
23228         *mov<mode>cc_invert_p10, *fpmask<mode>, *xxsel<mode>,
23229         @ieee_128bit_vsx_abs<mode>2, *ieee_128bit_vsx_nabs<mode>2,
23230         add<mode>3, sub<mode>3, mul<mode>3, div<mode>3, sqrt<mode>2,
23231         copysign<mode>3, copysign<mode>3_hard, copysign<mode>3_soft,
23232         @neg<mode>2_hw, @abs<mode>2_hw, *nabs<mode>2_hw, fma<mode>4_hw,
23233         *fms<mode>4_hw, *nfma<mode>4_hw, *nfms<mode>4_hw,
23234         extend<SFDF:mode><IEEE128:mode>2_hw, trunc<mode>df2_hw,
23235         trunc<mode>sf2_hw, fix<uns>_<IEEE128:mode><SDI:mode>2_hw,
23236         fix<uns>_trunc<IEEE128:mode><QHI:mode>2,
23237         *fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem,
23238         float_<mode>di2_hw, float_<mode>si2_hw,
23239         float<QHI:mode><IEEE128:mode>2, floatuns_<mode>di2_hw,
23240         floatuns_<mode>si2_hw, floatuns<QHI:mode><IEEE128:mode>2,
23241         floor<mode>2, ceil<mode>2, btrunc<mode>2, round<mode>2,
23242         add<mode>3_odd, sub<mode>3_odd, mul<mode>3_odd, div<mode>3_odd,
23243         sqrt<mode>2_odd, fma<mode>4_odd, *fms<mode>4_odd, *nfma<mode>4_odd,
23244         *nfms<mode>4_odd, trunc<mode>df2_odd, *cmp<mode>_hw for IEEE128):
23245         Remove guard FLOAT128_IEEE_P.
23246         (@extenddf<mode>2_fprs, @extenddf<mode>2_vsx,
23247         trunc<mode>df2_internal1, trunc<mode>df2_internal2,
23248         fix_trunc_helper<mode>, neg<mode>2, *cmp<mode>_internal1,
23249         *cmp<IBM128:mode>_internal2 for IBM128): Remove guard FLOAT128_IBM_P.
23251 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
23253         * config/rs6000/rs6000.cc (init_float128_ieee): Use trunc_optab rather
23254         than sext_optab for converting FLOAT128_IBM_P mode to FLOAT128_IEEE_P
23255         mode, and use sext_optab rather than trunc_optab for converting
23256         FLOAT128_IEEE_P mode to FLOAT128_IBM_P mode.
23257         (rs6000_expand_float128_convert): Likewise.
23259 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
23261         PR target/112993
23262         * tree.cc (build_common_tree_nodes): Drop the workaround for rs6000
23263         KFmode precision adjustment.
23265 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
23267         PR target/112993
23268         * value-range.h (range_compatible_p): Remove the workaround on
23269         different type precision between _Float128 and long double.
23271 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
23273         PR target/112993
23274         * config/rs6000/rs6000-modes.def (IFmode, KFmode, TFmode): Define
23275         with FLOAT_MODE instead of FRACTIONAL_FLOAT_MODE, don't use special
23276         precisions any more.
23277         (rs6000-modes.h): Remove include.
23278         * config/rs6000/rs6000-modes.h: Remove.
23279         * config/rs6000/rs6000.h (rs6000-modes.h): Remove include.
23280         * config/rs6000/t-rs6000: Remove rs6000-modes.h include.
23281         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
23282         all uses of FLOAT_PRECISION_TFmode with 128.
23283         (rs6000_c_mode_for_floating_type): Likewise.
23284         * config/rs6000/rs6000.md (define_expand extendiftf2): Remove.
23285         (define_expand extendifkf2): Remove.
23286         (define_expand extendtfkf2): Remove.
23287         (define_expand trunckftf2): Remove.
23288         (define_expand trunctfif2): Remove.
23289         (define_expand extendtfif2): Add new assertion.
23290         (define_expand expandkftf2): New.
23291         (define_expand trunciftf2): Add new assertion.
23292         (define_expand trunctfkf2): New.
23293         (define_expand truncifkf2): Change with gcc_unreachable.
23294         (define_expand expandkfif2): New.
23295         (define_insn_and_split extendkftf2): Rename to  ...
23296         (define_insn_and_split *extendkftf2): ... this.
23297         (define_insn_and_split trunctfkf2): Rename to ...
23298         (define_insn_and_split *extendtfkf2): ... this.
23300 2024-07-17  Kewen Lin  <linkw@linux.ibm.com>
23302         PR target/112993
23303         * expr.cc (convert_mode_scalar): Allow same precision conversion
23304         between scalar floating point modes if whose underlying format is
23305         ibm_extended_format or ieee_quad_format, and refactor assertion
23306         with new lambda function acceptable_same_precision_modes.  Use
23307         trunc_optab rather than sext_optab for ibm128 to ieee128 conversion.
23308         * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Use trunc_optab rather
23309         than sext_optab for ibm128 to ieee128 conversion.
23311 2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
23313         PR target/114759
23314         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disallow
23315         CPUs and ABIs that do no support the ROP protection insns.
23316         * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Remove now
23317         unneeded tests.
23318         (rs6000_emit_prologue): Likewise.
23319         Remove unneeded gcc_assert.
23320         (rs6000_emit_epilogue): Likewise.
23321         * config/rs6000/rs6000.md: Likewise.
23323 2024-07-17  Peter Bergner  <bergner@linux.ibm.com>
23325         PR target/114759
23326         * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Use TARGET_POWER8.
23327         (rs6000_emit_prologue): Likewise.
23328         * config/rs6000/rs6000.md (hashchk): Likewise.
23329         (hashst): Likewise.
23330         Fix whitespace.
23332 2024-07-16  Andrew MacLeod  <amacleod@redhat.com>
23334         PR tree-optimization/115951
23335         * range-op-ptr.cc (operator_equal::fold_range): Return a boolean
23336         range with the requested type.
23337         (operator_not_equal::fold_range): Likewise.
23338         (operator_lt::fold_range): Likewise.
23339         (operator_le::fold_range): Likewise.
23340         (operator_gt::fold_range): Likewise.
23341         (operator_ge::fold_range): Likewise.
23343 2024-07-16  Iain Sandoe  <iain@sandoe.co.uk>
23345         PR c++/115434
23346         PR c++/110871
23347         PR c++/110872
23348         * gimplify.cc (struct gimplify_ctx): Add a flag to show we are
23349         expending a handler.
23350         (gimplify_expr): When we are expanding a handler, and the body
23351         transforms might have re-written DECL_RESULT into a gimple var,
23352         ensure that hander references to DECL_RESULT are also re-written
23353         to refer to the gimple var.  When we are processing an EH_ELSE
23354         expression, then add it if either of the cleanup slots is in
23355         use.
23357 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
23359         PR rtl-optimization/115929
23360         * rtl-ssa/insns.cc (function_info::remove_insn): Remove an
23361         order_node from the instruction as well as from the splay tree.
23363 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
23365         PR rtl-optimization/115901
23366         * recog.cc (insn_propagation::apply_to_rvalue_1): Restrict
23367         paradoxical mode punning to cases where "to" is constant.
23369 2024-07-16  Richard Sandiford  <richard.sandiford@arm.com>
23371         PR rtl-optimization/115891
23372         * rtl-ssa/changes.cc (find_clobbered_access): New function.
23373         (recog_level2): Use it to check for overlap between input
23374         registers and hard-coded clobbers.  Conditionally reset
23375         recog_data.insn after changing the insn code.
23377 2024-07-16  Georg-Johann Lay  <avr@gjlay.de>
23379         * config/avr/avr.cc (avr_out_minus): Assimilate into...
23380         (avr_out_plus_ext): ...this new function.
23381         (avr_adjust_insn_length) [ADJUST_LEN_PLUS_EXT]: Handle case.
23382         (avr_rtx_costs_1) [PLUS, MINUS]: Adjust RTX costs.
23383         * config/avr/avr.md (adjust_len) <plus_ext>: Add new attribute value.
23384         (*addpsi3_zero_extend.hi_split): Assimilate...
23385         (*addpsi3_zero_extend.qi_split): Assimilate...
23386         (*addsi3_zero_extend_split): Assimilate...
23387         (*addsi3_zero_extend.hi_split): Assimilate...
23388         (*addpsi3_sign_extend.hi_split): Assimilate...
23389         (*addhi3.sign_extend1_split): Assimilate...
23390         (*add<PSISI:mode>3.<code>.<QIPSI:mode>_split): ...into this
23391         new insn-and-split.
23392         (*addpsi3_zero_extend.hi): Assimilate...
23393         (*addpsi3_zero_extend.qi): Assimilate...
23394         (*addsi3_zero_extend): Assimilate...
23395         (*addsi3_zero_extend.hi): Assimilate...
23396         (*addpsi3_sign_extend.hi): Assimilate...
23397         (*addhi3.sign_extend1): Assimilate...
23398         (*add<PSISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn.
23399         (*subpsi3_sign_extend.hi_split): Assimilate...
23400         (*subhi3.sign_extend2_split): Assimilate...
23401         (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): Assimilate...
23402         (*sub<HISI:mode>3.<code><QIPSI:mode>_split): ...into this new
23403         insn-and-split.
23404         (*subpsi3_sign_extend.hi): Assimilate...
23405         (*subhi3.sign_extend2): Assimilate...
23406         (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Assimilate...
23407         (*sub<HISI:mode>3.<code>.<QIPSI:mode>): ...into this new insn.
23408         (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>): Use avr_out_plus_ext
23409         for asm out.
23410         * config/avr/avr-protos.h (avr_out_minus): Remove.
23411         (avr_out_plus_ext): New proto.
23413 2024-07-16  Richard Biener  <rguenther@suse.de>
23415         PR tree-optimization/115841
23416         * tree-vect-loop.cc (vect_transform_cycle_phi): Correctly
23417         place the partial vector reduction for the accumulator
23418         re-use when the main loop cannot be skipped but the
23419         epilogue can.
23421 2024-07-16  Georg-Johann Lay  <avr@gjlay.de>
23423         * config/avr/avr-protos.h (avr_emit_xior_with_shift): New proto.
23424         * config/avr/avr.cc (avr_emit_xior_with_shift): New function.
23425         * config/avr/avr.md (any_lshift): New code iterator.
23426         (*<xior:code><mode>.<any_lshift:code>): New insn-and-split.
23427         (<code><HISI:mode><QIPSI:mode>.0): Replaces...
23428         (*<code_stdname><mode>qi.byte0): ...this one.
23429         (*<xior:code><HISI:mode><QIPSI:mode>.<any_lshift:code>): Replaces...
23430         (*<code_stdname><mode>qi.byte1-3): ...this one.
23432 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
23434         * config/s390/3931.md (vlbr, vstbr): Remove.
23435         * config/s390/s390.md (xdee): Add FPRX2 mapping.
23436         * config/s390/vector.md (bhfgq): Add TF mapping.
23438 2024-07-16  Richard Biener  <rguenther@suse.de>
23440         * config/i386/x86-tune-costs.h (znver5_cost): Update unaligned
23441         load and store cost from the aligned costs.
23443 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
23445         PR target/114189
23446         * config/s390/vector.md (V_HW2): Remove.
23447         (vcond<V_HW:mode><V_HW2:mode>): Remove.
23448         (vcondu<V_HW:mode><V_HW2:mode>): Remove.
23450 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
23452         * config/s390/vector.md: Enable vcond_mask for 128-bit ops.
23454 2024-07-16  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
23456         * config/s390/vector.md (V_HW): Enable V1TI unconditionally and
23457         add TI.
23458         (vec_cmpu<VIT_HW:mode><VIT_HW:mode>): Add 128-bit integer
23459         variants.
23460         (*vec_cmpeq<mode><mode>_nocc_emu): Emulate operation.
23461         (*vec_cmpgt<mode><mode>_nocc_emu): Emulate operation.
23462         (*vec_cmpgtu<mode><mode>_nocc_emu): Emulate operation.
23464 2024-07-16  Richard Biener  <rguenther@suse.de>
23466         PR tree-optimization/115843
23467         * tree-vect-loop-manip.cc
23468         (vect_set_loop_condition_partial_vectors_avx512): Properly
23469         bias the shift of the initial mask for alignment peeling.
23471 2024-07-16  Richard Biener  <rguenther@suse.de>
23473         PR tree-optimization/115843
23474         * config/i386/x86-tune-costs.h (znver4_cost): Update unaligned
23475         load and store cost from the aligned costs.
23477 2024-07-16  Roger Sayle  <roger@nextmovesoftware.com>
23478             Richard Biener  <rguenther@suse.de>
23480         PR tree-optimization/114661
23481         * match.pd ((X*C1)|(X*C2) to X*(C1+C2)): Allow optional useless
23482         type conversions around multiplications, such as those inserted
23483         by this transformation.
23485 2024-07-16  Hu, Lin1  <lin1.hu@intel.com>
23487         PR target/107432
23488         * config/i386/sse.md
23489         (PMOV_SRC_MODE_3_AVX2): Add TARGET_AVX2 for V4DI and V8SI.
23490         (PMOV_SRC_MODE_4): Add TARGET_AVX2 for V4DI.
23491         (trunc<mode><pmov_dst_3_lower>2): Change constraint from TARGET_AVX2 to
23492         TARGET_SSSE3.
23493         (trunc<mode><pmov_dst_4_lower>2): Ditto.
23494         (truncv2div2si2): Change constraint from TARGET_AVX2 to TARGET_SSE.
23496 2024-07-16  Jeff Law  <jlaw@ventanamicro.com>
23498         * ext-dce.cc (ext_dce_process_uses): Simplify control flow and fix
23499         liveness computation for shift/rotate counts.
23501 2024-07-15  Jeff Law  <jlaw@ventanamicro.com>
23503         * ext-dce.cc (carry_backpropagate): Make return type unsigned as well.
23504         Cast to signed for right shift to preserve sign bit.
23506 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
23508         Revert:
23509         2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
23511         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
23512         Replace new + std::unique_ptr by alloca().
23513         (riscv_process_one_target_attr): Likewise.
23514         (riscv_process_target_attr): Likewise.
23516 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
23518         * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
23519         Allow adding enabled extension if m_allow_adding_dup is set.
23520         * config/riscv/riscv-subset.h: Add m_allow_adding_dup and setter.
23521         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
23522         Allow adding enabled extensions.
23524 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
23526         PR target/115554
23527         PR target/115562
23528         * common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
23529         Remove.
23530         (struct riscv_func_target_hasher): Likewise.
23531         (riscv_func_decl_hash): Likewise.
23532         (riscv_func_target_hasher::hash): Likewise.
23533         (riscv_func_target_hasher::equal): Likewise.
23534         (riscv_current_subset_list): Likewise.
23535         (riscv_cmdline_subset_list): Remove obsolete space.
23536         (riscv_func_target_table_lazy_init): Remove.
23537         (riscv_func_target_get): Likewise.
23538         (riscv_func_target_put): Likewise.
23539         (riscv_func_target_remove_and_destory): Likewise.
23540         (riscv_arch_str): Generate from cmdline_subset_list.
23541         (riscv_set_arch_by_subset_list): Don't set current_subset_list.
23542         (riscv_parse_arch_string): Remove current_subset_list.
23543         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
23544         Get subset list via riscv_cmdline_subset_list().
23545         * config/riscv/riscv-subset.h (riscv_current_subset_list):
23546         Remove prototype.
23547         (riscv_func_target_get): Likewise.
23548         (riscv_func_target_put): Likewise.
23549         (riscv_func_target_remove_and_destory): Likewise.
23550         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
23551         Build base arch string from existing target options, if any.
23552         (riscv_target_attr_parser::update_settings): Store new arch
23553         string in target options.
23554         (riscv_process_one_target_attr): Whitespace fix.
23555         (riscv_process_target_attr): Drop opts argument.
23556         (riscv_option_valid_attribute_p): Properly save, change and restore
23557         target options.
23558         * config/riscv/riscv.cc (get_arch_str): New function.
23559         (riscv_declare_function_name): Get arch string for option-arch
23560         directive from function's target options.
23561         * config/riscv/riscv.opt: Add riscv_arch_string variable to
23562         march option.
23564 2024-07-15  Christoph Müllner  <christoph.muellner@vrull.eu>
23566         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
23567         Replace new + std::unique_ptr by alloca().
23568         (riscv_process_one_target_attr): Likewise.
23569         (riscv_process_target_attr): Likewise.
23571 2024-07-15  Alexandre Oliva  <oliva@adacore.com>
23573         PR target/113719
23574         * config/i386/i386-options.cc (ix86_option_override_internal):
23575         Move flag_omit_frame_pointer final overrider...
23576         (ix86_recompute_optlev_based_flags): ... here.
23578 2024-07-15  Georg-Johann Lay  <avr@gjlay.de>
23580         * config/avr/avr.md: Simplify mode usage.
23581         (GET_MODE_SIZE (<MODE>mode)): Use <SIZE> instead.
23582         (GET_MODE_BITSIZE (<MODE>mode) - 1): Use <MSB> instead.
23583         (GET_MODE_MASK (QImode)): Use 0xff instead.
23584         * config/avr/avr-fixed.md: Same.
23586 2024-07-15  Jakub Jelinek  <jakub@redhat.com>
23588         * configure.ac (HAVE_GAS_BASE64): New check.
23589         * config/elfos.h (BASE64_ASM_OP): Define if HAVE_GAS_BASE64 is
23590         defined.
23591         * varasm.cc (assemble_string): Bump maximum from 2000 to 16384 if
23592         BASE64_ASM_OP is defined.
23593         (default_elf_asm_output_limited_string): Emit opening '"' together
23594         with STRING_ASM_OP.
23595         (default_elf_asm_output_ascii): Use BASE64_ASM_OP if defined and
23596         beneficial.  Remove UB when last_null is NULL.
23597         * configure: Regenerate.
23598         * config.in: Regenerate.
23600 2024-07-15  liuhongt  <hongtao.liu@intel.com>
23602         PR target/115872
23603         * tree-ssa-ccp.cc (convert_atomic_bit_not): Remove use_stmt after use_nop_stmt is removed.
23604         (optimize_atomic_bit_test_and): Ditto.
23606 2024-07-15  Hongyu Wang  <hongyu.wang@intel.com>
23608         * config/i386/i386.md (has_nf): New define_attr, add to all
23609         nf related patterns.
23610         * config/i386/i386-features.cc (apx_nf_convert): New function
23611         to convert Non-NF insns to their NF counterparts.
23612         (class pass_apx_nf_convert): New pass class.
23613         (make_pass_apx_nf_convert): New.
23614         * config/i386/i386-passes.def: Add pass_apx_nf_convert after
23615         rtl_ifcvt.
23616         * config/i386/i386-protos.h (make_pass_apx_nf_convert): Declare.
23618 2024-07-15  Monk Chiang  <monk.chiang@sifive.com>
23620         * config/riscv/riscv.cc (riscv_print_operand): Add 'L' letter
23621         to print zihintntl instructions string.
23622         * config/riscv/riscv.md (prefetch): Add zihintntl instructions.
23624 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
23626         * config/riscv/generic-vector-ooo.md: Add def_insn_reservation for vector BFloat16.
23627         * config/riscv/riscv.md: Add new insn name for vector BFloat16.
23628         * config/riscv/vector-iterators.md: Add some iterators for vector BFloat16.
23629         * config/riscv/vector.md: Add some attribute for vector BFloat16.
23630         * config/riscv/vector-bfloat16.md: New file. Add insn pattern vector BFloat16.
23632 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
23634         * config/riscv/riscv-vector-builtins-bases.cc (class vfncvtbf16_f):
23635         Add 'Zvfbfmin' intrinsic in bases.
23636         (class vfwcvtbf16_f): Ditto.
23637         (class vfwmaccbf16): Add 'Zvfbfwma' intrinsic in bases.
23638         (BASE): Add BASE macro for 'Zvfbfmin' and 'Zvfbfwma'.
23639         * config/riscv/riscv-vector-builtins-bases.h: Add declaration for 'Zvfbfmin' and 'Zvfbfwma'.
23640         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
23641         Add builtins def for 'Zvfbfmin' and 'Zvfbfwma'.
23642         (vfncvtbf16_f): Ditto.
23643         (vfncvtbf16_f_frm): Ditto.
23644         (vfwcvtbf16_f): Ditto.
23645         (vfwmaccbf16): Ditto.
23646         (vfwmaccbf16_frm): Ditto.
23647         * config/riscv/riscv-vector-builtins-shapes.cc (supports_vectype_p):
23648         Add vector intrinsic build judgment for BFloat16.
23649         (build_all): Ditto.
23650         (BASE_NAME_MAX_LEN): Adjust max length.
23651         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_F32_OPS):
23652         Add new operand type for BFloat16.
23653         (vfloat32mf2_t): Ditto.
23654         (vfloat32m1_t): Ditto.
23655         (vfloat32m2_t): Ditto.
23656         (vfloat32m4_t): Ditto.
23657         (vfloat32m8_t): Ditto.
23658         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_F32_OPS): Ditto.
23659         (validate_instance_type_required_extensions):
23660         Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'.
23661         * config/riscv/riscv-vector-builtins.h (enum required_ext):
23662         Add required_ext declaration for 'Zvfbfmin' and 'Zvfbfwma'.
23663         (reqired_ext_to_isa_name): Ditto.
23664         (required_extensions_specified): Ditto.
23665         (struct function_group_info): Add match case for 'Zvfbfmin' and 'Zvfbfwma'.
23666         * config/riscv/riscv.cc (riscv_validate_vector_type):
23667         Add required_ext checking for 'Zvfbfmin' and 'Zvfbfwma'.
23669 2024-07-15  Hongyu Wang  <hongyu.wang@intel.com>
23671         PR target/115889
23672         * config/i386/predicates.md (vcvtne2ps2bf_parallel): Remove.
23673         * config/i386/sse.md (hi_cvt_bf): Remove.
23674         (HI_CVT_BF): Likewise.
23675         (vpermt2_sepcial_bf16_shuffle_<mode>):Likewise.
23677 2024-07-15  Feng Wang  <wangfeng@eswincomputing.com>
23679         * config/riscv/genrvv-type-indexer.cc (bfloat16_type):
23680         Generate bf16 vector_type and scalar_type in DEF_RVV_TYPE_INDEX.
23681         (bfloat16_wide_type): Ditto.
23682         (same_ratio_eew_bf16_type): Ditto.
23683         (main): Ditto.
23684         * config/riscv/riscv-modes.def (ADJUST_BYTESIZE):
23685         Add vector type for BFloat16.
23686         (RVV_WHOLE_MODES): Add vector type for BFloat16.
23687         (RVV_FRACT_MODE): Ditto.
23688         (RVV_NF4_MODES): Ditto.
23689         (RVV_NF8_MODES): Ditto.
23690         (RVV_NF2_MODES): Ditto.
23691         * config/riscv/riscv-vector-builtins-types.def (vbfloat16mf4_t):
23692         Add builtin vector type for BFloat16.
23693         (vbfloat16mf2_t): Add builtin vector type for BFloat16.
23694         (vbfloat16m1_t): Ditto.
23695         (vbfloat16m2_t): Ditto.
23696         (vbfloat16m4_t): Ditto.
23697         (vbfloat16m8_t): Ditto.
23698         (vbfloat16mf4x2_t): Ditto.
23699         (vbfloat16mf4x3_t): Ditto.
23700         (vbfloat16mf4x4_t): Ditto.
23701         (vbfloat16mf4x5_t): Ditto.
23702         (vbfloat16mf4x6_t): Ditto.
23703         (vbfloat16mf4x7_t): Ditto.
23704         (vbfloat16mf4x8_t): Ditto.
23705         (vbfloat16mf2x2_t): Ditto.
23706         (vbfloat16mf2x3_t): Ditto.
23707         (vbfloat16mf2x4_t): Ditto.
23708         (vbfloat16mf2x5_t): Ditto.
23709         (vbfloat16mf2x6_t): Ditto.
23710         (vbfloat16mf2x7_t): Ditto.
23711         (vbfloat16mf2x8_t): Ditto.
23712         (vbfloat16m1x2_t): Ditto.
23713         (vbfloat16m1x3_t): Ditto.
23714         (vbfloat16m1x4_t): Ditto.
23715         (vbfloat16m1x5_t): Ditto.
23716         (vbfloat16m1x6_t): Ditto.
23717         (vbfloat16m1x7_t): Ditto.
23718         (vbfloat16m1x8_t): Ditto.
23719         (vbfloat16m2x2_t): Ditto.
23720         (vbfloat16m2x3_t): Ditto.
23721         (vbfloat16m2x4_t): Ditto.
23722         (vbfloat16m4x2_t): Ditto.
23723         * config/riscv/riscv-vector-builtins.cc (check_required_extensions):
23724         Add required_ext checking for BFloat16.
23725         * config/riscv/riscv-vector-builtins.def (vbfloat16mf4_t):
23726         Add vector_type for BFloat16 in builtins.def.
23727         (vbfloat16mf4x2_t): Ditto.
23728         (vbfloat16mf4x3_t): Ditto.
23729         (vbfloat16mf4x4_t): Ditto.
23730         (vbfloat16mf4x5_t): Ditto.
23731         (vbfloat16mf4x6_t): Ditto.
23732         (vbfloat16mf4x7_t): Ditto.
23733         (vbfloat16mf4x8_t): Ditto.
23734         (vbfloat16mf2_t): Ditto.
23735         (vbfloat16mf2x2_t): Ditto.
23736         (vbfloat16mf2x3_t): Ditto.
23737         (vbfloat16mf2x4_t): Ditto.
23738         (vbfloat16mf2x5_t): Ditto.
23739         (vbfloat16mf2x6_t): Ditto.
23740         (vbfloat16mf2x7_t): Ditto.
23741         (vbfloat16mf2x8_t): Ditto.
23742         (vbfloat16m1_t): Ditto.
23743         (vbfloat16m1x2_t): Ditto.
23744         (vbfloat16m1x3_t): Ditto.
23745         (vbfloat16m1x4_t): Ditto.
23746         (vbfloat16m1x5_t): Ditto.
23747         (vbfloat16m1x6_t): Ditto.
23748         (vbfloat16m1x7_t): Ditto.
23749         (vbfloat16m1x8_t): Ditto.
23750         (vbfloat16m2_t): Ditto.
23751         (vbfloat16m2x2_t): Ditto.
23752         (vbfloat16m2x3_t): Ditto.
23753         (vbfloat16m2x4_t): Ditto.
23754         (vbfloat16m4_t): Ditto.
23755         (vbfloat16m4x2_t): Ditto.
23756         (vbfloat16m8_t): Ditto.
23757         (double_trunc_bfloat_scalar): Add scalar_type def for BFloat16.
23758         (double_trunc_bfloat_vector): Add vector_type def for BFloat16.
23759         * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ELEN_BF_16):
23760         Add required defination of BFloat16 ext.
23761         * config/riscv/riscv-vector-switch.def (ENTRY):
23762         Add vector_type information for BFloat16.
23763         (TUPLE_ENTRY): Add tuple vector_type information for BFloat16.
23765 2024-07-14  Roger Sayle  <roger@nextmovesoftware.com>
23767         * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator):
23768         Use E_?Fmode enumeration constants in switch statement.
23769         (ix86_expand_copysign): Likewise.
23770         (ix86_expand_xorsign): Likewise.
23772 2024-07-14  Alejandro Colomar  <alx@kernel.org>
23774         PR c/115185
23775         * doc/invoke.texi: Document the new
23776         -Wunterminated-string-initialization.
23778 2024-07-14  Hans-Peter Nilsson  <hp@axis.com>
23780         * config/cris/cris.cc (cris_option_override_after_change): Fix up
23781         comment regarding disabling late_combine.
23783 2024-07-14  Hans-Peter Nilsson  <hp@axis.com>
23785         * config/cris/cris.cc (cris_option_override_after_change): New
23786         function.  Disable late-combine by default.
23787         (cris_option_override): Call the new function.
23789 2024-07-13  Mark Harmstone  <mark@harmstone.com>
23791         * dwarf2codeview.cc (write_lf_modifier): Expand upon comment.
23793 2024-07-13  Mark Harmstone  <mark@harmstone.com>
23795         * dwarf2codeview.cc (write_data_symbol): Add alignment directive.
23797 2024-07-13  Mark Harmstone  <mark@harmstone.com>
23799         * dwarf2codeview.cc (enum cv_leaf_type): Add padding constants.
23800         (write_cv_padding): Use names for padding constants.
23802 2024-07-13  Mark Harmstone  <mark@harmstone.com>
23804         * dwarf2codeview.cc (S_LDATA32, S_GDATA32, S_COMPILE3): Undefine.
23805         (enum cv_sym_type): Define.
23806         (struct codeview_symbol): Use enum cv_sym_type.
23807         (write_codeview_symbols): Add default to switch.
23809 2024-07-13  Mark Harmstone  <mark@harmstone.com>
23811         * dwarf2codeview.cc (enum cv_leaf_type): Define.
23812         (struct codeview_subtype): Use enum cv_leaf_type.
23813         (struct codeview_custom_type): Use enum cv_leaf_type.
23814         (write_lf_fieldlist): Add default to switch.
23815         (write_custom_types): Add default to switch.
23816         * dwarf2codeview.h (LF_MODIFIER, LF_POINTER): Undefine.
23817         (LF_PROCEDURE, LF_ARGLIST, LF_FIELDLIST, LF_BITFIELD): Likewise.
23818         (LF_INDEX, LF_ENUMERATE, LF_ARRAY, LF_CLASS): Likewise.
23819         (LF_STRUCTURE, LF_UNION, LF_ENUM, LF_MEMBER, LF_CHAR): Likewise.
23820         (LF_SHORT, LF_USHORT, LF_LONG, LF_ULONG, LF_QUADWORD): Likewise.
23821         (LF_UQUADWORD): Likewise.
23823 2024-07-13  David Malcolm  <dmalcolm@redhat.com>
23825         * common.opt (fdiagnostics-show-highlight-colors): New option.
23826         * common.opt.urls: Regenerate.
23827         * coretypes.h (pp_markup::element): New forward decl.
23828         (pp_element): New typedef.
23829         * diagnostic-color.cc (gcc_color_defaults): Add "highlight-a"
23830         and "highlight-b".
23831         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
23832         Disable highlight colors.
23833         * diagnostic-format-sarif.cc (diagnostic_output_format_init_sarif):
23834         Likewise.
23835         * diagnostic-highlight-colors.h: New file.
23836         * diagnostic-path.cc (struct event_range): Pass nullptr for
23837         highlight color of m_rich_loc.
23838         * diagnostic-show-locus.cc (colorizer::set_range): Handle ranges
23839         with m_highlight_color.
23840         (colorizer::STATE_NAMED_COLOR): New.
23841         (colorizer::m_richloc): New field.
23842         (colorizer::colorizer): Add richloc param for initializing
23843         m_richloc.
23844         (colorizer::set_named_color): New.
23845         (colorizer::begin_state): Add case STATE_NAMED_COLOR.
23846         (layout::layout): Pass richloc to m_colorizer's ctor.
23847         (selftest::test_one_liner_labels): Pass nullptr for new param of
23848         gcc_rich_location ctor for labels.
23849         (selftest::test_one_liner_labels_utf8): Likewise.
23850         * diagnostic.h (diagnostic_context::set_show_highlight_colors):
23851         New.
23852         * doc/invoke.texi: Add option -fdiagnostics-show-highlight-colors
23853         and highlight-a and highlight-b color caps.
23854         * doc/ux.texi
23855         (Use color consistently when highlighting mismatches): New
23856         subsection.
23857         * gcc-rich-location.cc (gcc_rich_location::add_expr): Add
23858         "highlight_color" param.
23859         (gcc_rich_location::maybe_add_expr): Likewise.
23860         * gcc-rich-location.h (gcc_rich_location::gcc_rich_location):
23861         Split out into a pair of ctors, where if a range_label is supplied
23862         the caller must also supply a highlight color.
23863         (gcc_rich_location::add_expr): Add "highlight_color" param.
23864         (gcc_rich_location::maybe_add_expr): Likewise.
23865         * gcc.cc (driver_handle_option): Handle
23866         OPT_fdiagnostics_show_highlight_colors.
23867         * lto-wrapper.cc (merge_and_complain): Likewise.
23868         (append_compiler_options): Likewise.
23869         (append_diag_options): Likewise.
23870         (run_gcc): Likewise.
23871         * opts-common.cc (decode_cmdline_options_to_array): Add comment
23872         about -fno-diagnostics-show-highlight-colors.
23873         * opts-global.cc (init_options_once): Preserve
23874         pp_show_highlight_colors in case the global_dc's printer is
23875         recreated.
23876         * opts.cc (common_handle_option): Handle
23877         OPT_fdiagnostics_show_highlight_colors.
23878         (gen_command_line_string): Likewise.
23879         * pretty-print-markup.h: New file.
23880         * pretty-print.cc: Include "pretty-print-markup.h" and
23881         "diagnostic-highlight-colors.h".
23882         (pretty_printer::format): Handle %e.
23883         (pretty_printer::pretty_printer): Handle new field
23884         m_show_highlight_colors.
23885         (pp_string_n): New.
23886         (pp_markup::context::begin_quote): New.
23887         (pp_markup::context::end_quote): New.
23888         (pp_markup::context::begin_color): New.
23889         (pp_markup::context::end_color): New.
23890         (highlight_colors::expected): New.
23891         (highlight_colors::actual): New.
23892         (highlight_colors::lhs): New.
23893         (highlight_colors::rhs): New.
23894         (class selftest::test_element): New.
23895         (selftest::test_pp_format): Add tests of %e.
23896         (selftest::test_urlification): Likewise.
23897         * pretty-print.h (pp_markup::context): New forward decl.
23898         (class chunk_info): Add friend class pp_markup::context.
23899         (class pretty_printer): Add friend pp_show_highlight_colors.
23900         (pretty_printer::m_show_highlight_colors): New field.
23901         (pp_show_highlight_colors): New inline function.
23902         (pp_string_n): New decl.
23903         * substring-locations.cc: Include "diagnostic-highlight-colors.h".
23904         (format_string_diagnostic_t::highlight_color_format_string): New.
23905         (format_string_diagnostic_t::highlight_color_param): New.
23906         (format_string_diagnostic_t::emit_warning_n_va): Use highlight
23907         colors.
23908         * substring-locations.h
23909         (format_string_diagnostic_t::highlight_color_format_string): New.
23910         (format_string_diagnostic_t::highlight_color_param): New.
23911         * toplev.cc (general_init): Initialize global_dc's
23912         show_highlight_colors.
23913         * tree-pretty-print-markup.h: New file.
23915 2024-07-13  Richard Biener  <rguenther@suse.de>
23917         PR tree-optimization/115868
23918         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Correctly
23919         compute the number of mask copies required for vect_record_loop_mask.
23921 2024-07-12  Gerald Pfeifer  <gerald@pfeifer.com>
23923         * doc/gm2.texi (Community): Update lists.nongnu.org and
23924         lists.gnu.org links.
23926 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
23928         PR rtl-optimization/115876
23929         * ext-dce.cc (carry_backpropagate): Make mask and mmask unsigned.
23931 2024-07-12  Marek Polacek  <polacek@redhat.com>
23933         * doc/invoke.texi: Remove @opindex and @itemx for -fconcepts-ts.
23935 2024-07-12  Daniel Bertalan  <dani@danielbertalan.dev>
23937         * value-pointer-equiv.cc: Change NULL to nullptr.
23939 2024-07-12  Richard Sandiford  <richard.sandiford@arm.com>
23941         PR rtl-optimization/115785
23942         * rtl-ssa/insns.h (insn_info::prev_insn_or_last_debug_insn)
23943         (insn_info::next_nondebug_or_debug_insn): Remove typedefs.
23944         (insn_info::m_prev_insn_or_last_debug_insn): Rename to...
23945         (insn_info::m_prev_sametype_or_last_debug_insn): ...this.
23946         * rtl-ssa/internals.inl (insn_info::insn_info): Update after
23947         above renaming.
23948         (insn_info::copy_prev_from): Likewise.
23949         (insn_info::set_prev_sametype_insn): Likewise.
23950         (insn_info::set_last_debug_insn): Likewise.
23951         (insn_info::clear_insn_links): Likewise.
23952         (insn_info::has_insn_links): Likewise.
23953         * rtl-ssa/member-fns.inl (insn_info::prev_nondebug_insn): Likewise.
23954         (insn_info::prev_any_insn): Fix moves from non-debug to debug insns.
23956 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
23958         * config/riscv/riscv-string.cc (emit_memcmp_scalar_load_and_compare):
23959         Set RESULT directly rather than using a temporary.
23960         (emit_memcmp_scalar_result_calculation): Similarly.
23961         (riscv_expand_block_compare_scalar): Use CONST0_RTX rather than
23962         generating new RTL.
23963         * config/riscv/riscv.md (cmpmemsi): Pass an X mode temporary to the
23964         expansion routines.  If necessary extract low part of the word to store
23965         in final result location.
23967 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
23969         * config/s390/2964.md: Remove extended mnemonics for vgm.
23970         * config/s390/3906.md: Remove extended mnemonics for vgm.
23971         * config/s390/3931.md: Remove extended mnemonics for vgm.
23972         * config/s390/8561.md: Remove extended mnemonics for vgm.
23973         * config/s390/constraints.md (jKK): Remove constraint.
23974         (jzz): Add constraint.
23975         * config/s390/s390-protos.h (s390_contiguous_bitmask_vector_p):
23976         Add prototype.
23977         (s390_constant_via_vgm_p): Add prototype.
23978         (s390_constant_via_vrepi_p): Add prototype.
23979         * config/s390/s390.cc (s390_contiguous_bitmask_vector_p): New
23980         function.
23981         (s390_constant_via_vgm_vrepi_helper): New function.
23982         (s390_constant_via_vgm_p): New function.
23983         (s390_constant_via_vgbm_p): For the sake of symmetry rename
23984         s390_bytemask_vector_p into s390_constant_via_vgbm_p.
23985         (s390_bytemask_vector_p): Deal with non-integer and partial
23986         vectors.
23987         (s390_constant_via_vrepi_p): New function.
23988         (s390_legitimate_constant_p): Allow partial vectors.
23989         (legitimate_reload_constant_p): Fix indentation.
23990         (legitimate_reload_vector_constant_p): Restrict to constraints
23991         j00, jm1, jxx, jyy, jzz only, i.e., allow partial vectors.
23992         (s390_expand_vec_init): Also make use of vrepi if possible.
23993         (print_operand): Add q,p,r for vgm,vrepi,vgbm, respectively.
23994         Remove e,s,t for constant vectors.
23995         * config/s390/s390.md (movti): Add variants utilizing
23996         vgbm,vgm,vrepi.
23997         * config/s390/vector.md (mov<mode><tf_vr>): Adapt variants
23998         for vgbm,vgm,vrepi for the new scheme.
23999         (mov<mode>): Adapt variants for vgbm,vgm for the new
24000         scheme and add vrepi variant for modes V_8,V_16,V_32,V_64.
24002 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
24004         * config/s390/vector.md (mov<mode>): Fix output template for
24005         movv1qi.
24007 2024-07-12  Roger Sayle  <roger@nextmovesoftware.com>
24008             Hongtao Liu  <hongtao.liu@intel.com>
24010         * config/i386/i386-expand.cc (ix86_broadcast_from_constant):
24011         Use CONST_VECTOR_P instead of comparison against GET_CODE.
24012         (ix86_gen_bcst_mem): Likewise.
24013         (ix86_ternlog_leaf_p): Likewise.
24014         (ix86_ternlog_operand_p): ix86_ternlog_leaf_p is always true for
24015         vector_all_ones_operand.
24016         (ix86_expand_ternlog_bin_op): Use CONST_VECTOR_P instead of
24017         equality comparison against GET_CODE.  Replace call to force_reg
24018         with gen_reg_rtx and emit_move_insn (for VEC_DUPLICATE broadcast).
24019         Check for !register_operand instead of memory_operand.
24020         Support CONST_VECTORs by calling force_const_mem.
24021         (ix86_expand_ternlog): Fix indentation whitespace.
24022         Allow ix86_ternlog_leaf_p as ix86_expand_ternlog_andnot's second
24023         operand. Use CONST_VECTOR_P instead of equality against GET_CODE.
24024         Use gen_reg_rtx and emit_move_insn for ~a, ~b and ~c cases.
24026 2024-07-12  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
24028         * config/s390/s390.md (*icjump_64): Allow raw CC comparisons,
24029         i.e., any constant integer between 0 and 15 for CC comparisons.
24031 2024-07-12  Richard Sandiford  <richard.sandiford@arm.com>
24033         * config/aarch64/aarch64.cc (aarch64_process_one_target_attr)
24034         (aarch64_process_target_attr): Avoid alloca.
24036 2024-07-12  Alexandre Oliva  <oliva@adacore.com>
24038         PR target/115459
24039         * config/alpha/alpha.cc (alpha_expand_block_move): Adjust
24040         MEMs to match inferred alignment.
24042 2024-07-12  YunQiang Su  <yunqiang@isrc.iscas.ac.cn>
24044         PR target/115840
24045         * config/riscv/riscv.cc(riscv_preferred_else_value): Mark
24046         tmp_var as NO_WARNING.
24048 2024-07-12  xuli  <xuli1@eswincomputing.com>
24050         PR target/115862
24051         * config/riscv/riscv.cc (riscv_slow_unaligned_access): Disable vector misalign.
24053 2024-07-12  Kito Cheng  <kito.cheng@sifive.com>
24055         * common/config/riscv/riscv-common.cc (riscv_implied_info): Add xsfvcp.
24056         (riscv_ext_version_table): Add xsfvcp, xsfcease.
24057         (riscv_ext_flag_table): Ditto.
24058         * config/riscv/riscv.opt (riscv_sifive_subext): New.
24059         (XSFVCP): New.
24060         (XSFCEASE): New.
24062 2024-07-12  Kewen Lin  <linkw@linux.ibm.com>
24064         PR target/115659
24065         * config/rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): Remove.
24066         * config/rs6000/rs6000.cc (rs6000_emit_vector_cond_expr): Add static
24067         qualifier as it is only called by rs6000_emit_swsqrt now.
24068         * config/rs6000/vector.md (vcond<VEC_F:mode><VEC_F:mode>): Remove.
24069         (vcond<VEC_I:mode><VEC_I:mode>): Remove.
24070         (vcondv4sfv4si): Likewise.
24071         (vcondv4siv4sf): Likewise.
24072         (vcondv2dfv2di): Likewise.
24073         (vcondv2div2df): Likewise.
24074         (vcondu<VEC_I:mode><VEC_I:mode>): Likewise.
24075         (vconduv4sfv4si): Likewise.
24076         (vconduv2dfv2di): Likewise.
24078 2024-07-12  Richard Biener  <rguenther@suse.de>
24080         PR tree-optimization/115867
24081         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Properly
24082         guess the number of mask elements for integer mode masks.
24084 2024-07-12  Jeff Law  <jlaw@ventanamicro.com>
24086         * config/m68k/m68k.md (extendsidi2): Add missing early clobbers.
24088 2024-07-12  Lulu Cheng  <chenglulu@loongson.cn>
24090         * config/loongarch/loongarch.cc
24091         (loongarch_split_move): Delete.
24092         (loongarch_hard_regno_mode_ok_uncached): Likewise.
24093         * config/loongarch/loongarch.md
24094         (move_doubleword_fpr<mode>): Likewise.
24095         (load_low<mode>): Likewise.
24096         (load_high<mode>): Likewise.
24097         (store_word<mode>): Likewise.
24098         (movgr2frh<mode>): Likewise.
24099         (movfrh2gr<mode>): Likewise.
24101 2024-07-12  Lulu Cheng  <chenglulu@loongson.cn>
24103         PR target/115752
24104         * config/loongarch/loongarch.cc
24105         (loongarch_hard_regno_mode_ok_uncached): Replace
24106         UNITS_PER_FPVALUE with UNITS_PER_HWFPVALUE.
24107         * config/loongarch/loongarch.h (UNITS_PER_FPVALUE): Delete.
24109 2024-07-11  Jeff Law  <jlaw@ventanamicro.com>
24111         * config/riscv/riscv-string.cc
24112         (emit_strcmp_scalar_compare_byte): Set RESULT directly rather
24113         than using a new temporary.
24114         (emit_strcmp_scalar_result_calculation_nonul): Likewise.
24115         (emit_strcmp_scalar_result_calculation): Likewise.
24116         (riscv_expand_strcmp_scalar): Use CONST0_RTX rather than
24117         generating a new node.
24118         (expand_strcmp): Copy directly from SUB to RESULT.
24119         * config/riscv/riscv.md (cmpstrnsi, cmpstrsi): Pass an X
24120         mode temporary to the expansion routines.  If necessary
24121         extract low part of the word to store in final result location.
24123 2024-07-11  Andrew Pinski  <quic_apinski@quicinc.com>
24125         * value-range.h (class int_range): Mark as final.
24126         (class prange): Likewise.
24127         (class frange): Likewise.
24129 2024-07-11  Andre Vieira  <andre.simoesdiasvieira@arm.com>
24131         PR target/115611
24132         * config/arm/mve.md (mve_vec_setv2di_internal): Fix printing of input
24133         scalar register pair when lane = 1.
24135 2024-07-11  Richard Sandiford  <richard.sandiford@arm.com>
24137         PR rtl-optimization/115782
24138         * recog.cc (validate_change_1): Suppress early exit for no-op
24139         changes that are part of a group.
24141 2024-07-11  Eric Botcazou  <ebotcazou@adacore.com>
24143         * gimplify.cc (gimplify_scalar_mode_aggregate_compare): Add support
24144         for ordering comparisons.
24145         (gimplify_expr) <default>: Call gimplify_scalar_mode_aggregate_compare
24146         only for integral scalar modes.
24148 2024-07-11  Georg-Johann Lay  <avr@gjlay.de>
24150         * config/avr/avr-protos.h (avr_out_minus): New prototype.
24151         * config/avr/avr.cc (avr_out_minus): New function.
24152         * config/avr/avr.md (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>)
24153         (*sub<HISI:mode>3.zero_extend.<QIPSI:mode>_split): New insns.
24154         (*subpsi3_zero_extend.qi_split): Remove isns_and_split.
24155         (*subpsi3_zero_extend.hi_split): Remove insn_and_split.
24156         (*subhi3_zero_extend1_split): Remove insn_and_split.
24157         (*subsi3_zero_extend_split): Remove insn_and_split.
24158         (*subsi3_zero_extend.hi_split): Remove insn_and_split.
24159         (*subpsi3_zero_extend.qi): Remove insn.
24160         (*subpsi3_zero_extend.hi): Remove insn.
24161         (*subhi3_zero_extend1): Remove insn.
24162         (*subsi3_zero_extend): Remove insn.
24163         (*subsi3_zero_extend.hi): Remove insn.
24165 2024-07-11  Jørgen Kvalsvik  <j@lambda.is>
24167         * doc/gcov.texi: Add --include, --exclude, --match-on-demangled
24168         documentation.
24169         * gcov.cc (struct fnfilter): New.
24170         (print_usage): Add --include, --exclude, -M,
24171         --match-on-demangled.
24172         (process_args): Likewise.
24173         (release_structures): Release filters.
24174         (read_graph_file): Only add function_infos matching filters.
24175         (output_lines): Likewise.
24177 2024-07-11  Jørgen Kvalsvik  <j@lambda.is>
24179         * gcov.cc (process_all_functions): Ensure fn.end_line is
24180         included source[fn].lines.
24182 2024-07-11  Fei Gao  <gaofei@eswincomputing.com>
24184         * common/config/riscv/riscv-common.cc:
24185         c implies zca, and conditionally zcf & zcd.
24187 2024-07-10  Pan Li  <pan2.li@intel.com>
24189         * tree-vect-patterns.cc (vect_recog_sat_sub_pattern_transform):
24190         Add new func impl to perform the truncation distribution.
24191         (vect_recog_sat_sub_pattern): Perform above optimize before
24192         generate .SAT_SUB call.
24194 2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
24196         * config/i386/i386.md (ustruncdi<mode>2): Swap compare operands.
24197         (ustruncsi<mode>2): Ditto.
24198         (ustrunchiqi2): Ditto.
24200 2024-07-10  Marek Polacek  <polacek@redhat.com>
24202         * doc/invoke.texi: Mention that -fconcepts-ts was removed.
24204 2024-07-10  Edwin Lu  <ewlu@rivosinc.com>
24206         * common/config/riscv/riscv-common.cc: Add imply rules for B extension
24207         * config/riscv/arch-canonicalize: Ditto
24209 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
24211         * internal-fn.cc (create_call_lhs_operand, assign_call_lhs): New
24212         functions, split out from...
24213         (expand_fn_using_insn): ...here.
24214         (expand_load_lanes_optab_fn): Use them.
24215         (expand_GOMP_SIMT_ENTER_ALLOC): Likewise.
24216         (expand_GOMP_SIMT_LAST_LANE): Likewise.
24217         (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
24218         (expand_GOMP_SIMT_VOTE_ANY): Likewise.
24219         (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
24220         (expand_GOMP_SIMT_XCHG_IDX): Likewise.
24221         (expand_partial_load_optab_fn): Likewise.
24222         (expand_vec_cond_optab_fn): Likewise.
24223         (expand_vec_cond_mask_optab_fn): Likewise.
24224         (expand_RAWMEMCHR): Likewise.
24225         (expand_gather_load_optab_fn): Likewise.
24226         (expand_while_optab_fn): Likewise.
24227         (expand_SPACESHIP): Likewise.
24229 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
24231         * recog.cc (insn_propagation::apply_to_rvalue_1): Handle simple
24232         cases of hardreg propagation in which the register is set and
24233         used in different modes.
24235 2024-07-10  Richard Sandiford  <richard.sandiford@arm.com>
24237         PR rtl-optimization/115785
24238         * rtl-ssa/functions.h (function_info::replace_nondebug_insn): Declare.
24239         * rtl-ssa/insns.h (insn_info::order_node::set_uid): New function.
24240         (insn_info::remove_note): Declare.
24241         * rtl-ssa/insns.cc (insn_info::remove_note): New function.
24242         (function_info::replace_nondebug_insn): Likewise.
24243         * rtl-ssa/changes.cc (function_info::change_insns): Use
24244         replace_nondebug_insn instead of remove_insn + add_insn.
24246 2024-07-10  Uros Bizjak  <ubizjak@gmail.com>
24248         PR middle-end/115836
24249         * expmed.cc (emit_store_flag_1): Move calculation of
24250         scode just before its only usage site.
24252 2024-07-10  Richard Earnshaw  <rearnsha@arm.com>
24254         * config/arm/arm-protos.h (arm_dllexport_name_p): Remove prototype.
24255         (arm_dllimport_name_p): Likewise.
24256         (arm_pe_unique_section): Likewise.
24257         (arm_pe_encode_section_info): Likewise.
24258         (arm_dllexport_p): Likewise.
24259         (arm_dllimport_p): Likewise.
24260         (arm_mark_dllexport): Likewise.
24261         (arm_mark_dllimport): Likewise.
24262         (arm_change_mode_p): Likewise.
24263         * config/arm/arm.cc (arm_gnu_attributes): Remove attributes for ARM_PE.
24264         (TARGET_ENCODE_SECTION_INFO): Remove setting for ARM_PE.
24265         (is_called_in_ARM_mode): Remove ARM_PE conditional code.
24266         (thumb1_output_interwork): Remove obsolete ARM_PE code.
24267         (arm_encode_section_info): Remove surrounding #ifndef.
24269 2024-07-10  Prathamesh Kulkarni  <prathameshk@nvidia.com>
24271         PR lto/115394
24272         * lto-streamer.h: Remove streamer_debugging definition.
24273         * lto-streamer-out.cc (stream_write_tree_ref): Remove use of streamer_debugging.
24274         (lto_output_tree): Likewise.
24275         * tree-streamer-in.cc (streamer_read_tree_bitfields): Likewise.
24276         (streamer_get_pickled_tree): Likewise.
24277         * tree-streamer-out.cc (pack_ts_base_value_fields): Likewise.
24279 2024-07-10  Pan Li  <pan2.li@intel.com>
24281         * match.pd: Add form 2 for .SAT_TRUNC.
24282         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
24283         Add new case NOP_EXPR,  and try to match SAT_TRUNC.
24285 2024-07-10  Andrew Pinski  <quic_apinski@quicinc.com>
24287         PR tree-optimization/115721
24288         * tree-complex.cc (expand_complex_comparison): Remove
24289         support for GIMPLE_RETURN.
24291 2024-07-10  Fei Gao  <gaofei@eswincomputing.com>
24293         PR target/113715
24294         * config/riscv/riscv.cc (riscv_zcmp_can_use_popretz): Removed.
24295         (riscv_gen_multi_pop_insn): Remove generation of cm.popretz.
24297 2024-07-09  Carl Love  <cel@linux.ibm.com>
24299         * config/rs6000/rs6000-builtin.cc (altivec_expand_vec_init_builtin):
24300         Remove the function.
24301         (rs6000_expand_builtin): Remove the if bif_is_int check to call
24302         the altivec_expand_vec_init_builtin function.
24303         * config/rs6000/rs6000-builtins.def: Remove the attribute string
24304         comment for init.
24305         (__builtin_vec_init_v16qi,
24306         __builtin_vec_init_v4sf, __builtin_vec_init_v4si,
24307         __builtin_vec_init_v8hi, __builtin_vec_init_v1ti,
24308         __builtin_vec_init_v2df, __builtin_vec_init_v2di,
24309         __builtin_vec_set_v16qi, __builtin_vec_set_v4sf,
24310         __builtin_vec_set_v4si, __builtin_vec_set_v8hi): Remove
24311         built-in definitions.
24312         * config/rs6000/rs6000-gen-builtins.cc: Remove comment for init
24313         attribute string.
24314         (struct attrinfo): Remove isinit entry.
24315         (parse_bif_attrs): Remove the if statement to check for attribute
24316         init.
24317         (ifdef DEBUG): Remove print for init attribute string.
24318         (write_decls): Remove print for define bif_init_bit and
24319         define for bif_is_init.
24320         (write_bif_static_init): Remove if bifp->attrs.isinit statement.
24322 2024-07-09  Carl Love  <cel@linux.ibm.com>
24324         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcmpeqsp_p):
24325         Remove built-in definition.
24327 2024-07-09  Carl Love  <cel@linux.ibm.com>
24329         * config/rs6000/rs6000-overload.def (vec_xxpermdi): Add new
24330         overloaded built-in instances of vector signed and unsigned
24331         int128.
24332         * doc/extend.texi: Add documentation for built-in instances of
24333         vector signed and unsigned int128.
24335 2024-07-09  Carl Love  <cel@linux.ibm.com>
24337         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvnegdp,
24338         __builtin_vsx_xvnegsp): Remove built-in definitions.
24340 2024-07-09  Carl Love  <cel@linux.ibm.com>
24342         * config/rs6000/rs6000-builtins.def (__builtin_vsx_vperm_16qi_uns,
24343         __builtin_vsx_vperm_1ti, __builtin_vsx_vperm_1ti_uns,
24344         __builtin_vsx_vperm_2df, __builtin_vsx_vperm_2di,
24345         __builtin_vsx_vperm_2di_uns, __builtin_vsx_vperm_4sf,
24346         __builtin_vsx_vperm_4si, __builtin_vsx_vperm_4si_uns): Remove
24347         built-in definitions and comments.
24349 2024-07-09  Carl Love  <cel@linux.ibm.com>
24351         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_16qi,
24352         __builtin_vsx_xxsel_16qi_uns, __builtin_vsx_xxsel_2df,
24353         __builtin_vsx_xxsel_2di,        __builtin_vsx_xxsel_2di_uns,
24354         __builtin_vsx_xxsel_4sf,        __builtin_vsx_xxsel_4si,
24355         __builtin_vsx_xxsel_4si_uns,    __builtin_vsx_xxsel_8hi,
24356         __builtin_vsx_xxsel_8hi_uns): Remove    built-in definitions.
24358 2024-07-09  Carl Love  <cel@linux.ibm.com>
24360         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxsel_1ti,
24361         __builtin_vsx_xxsel_1ti_uns): Remove built-in definitions.
24362         * config/rs6000/rs6000-overload.def (vec_sel): Add new
24363         overloaded vector signed, unsigned and bool 128-bit definitions.
24364         * doc/extend.texi (vec_sel): Add documentation for new instances
24365         with signed, unsigned and bool 129-bit bool arguments.
24367 2024-07-09  Carl Love  <cel@linux.ibm.com>
24369         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xxmrghw,
24370         __builtin_vsx_xxmrghw_4si, __builtin_vsx_xxmrglw,
24371         __builtin_vsx_xxmrglw_4si, __builtin_vsx_xxsel_16qi): Remove
24372         built-in definition.
24373         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin):
24374         remove case entries RS6000_BIF_XXMRGLW_4SI,
24375         RS6000_BIF_XXMRGLW_4SF, RS6000_BIF_XXMRGHW_4SI,
24376         RS6000_BIF_XXMRGHW_4SF.
24377         * config/rs6000/vsx.md (vsx_xxmrghw_<mode>, vsx_xxmrglw_<mode>):
24378         Remove unused define_expands.
24380 2024-07-09  Carl Love  <cel@linux.ibm.com>
24382         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspdp,
24383         __builtin_vsx_xvcvdpsp, __builtin_vsx_xvcvsxwdp,
24384         __builtin_vsx_xvcvuxddp_uns): Remove.
24386 2024-07-09  Carl Love  <cel@linux.ibm.com>
24388         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxds,
24389         __builtin_vsx_xvcvspuxds): Rename to __builtin_vsignede_v4sf,
24390         __builtin_vunsignede_v4sf respectively.
24391         (XVCVSPSXDS, XVCVSPUXDS): Rename to VEC_VSIGNEDE_V4SF,
24392         VEC_VUNSIGNEDE_V4SF respectively.
24393         (__builtin_vsignedo_v4sf, __builtin_vunsignedo_v4sf): New
24394         built-in definitions.
24395         * config/rs6000/rs6000-overload.def (vec_signede, vec_signedo,
24396         vec_unsignede, vec_unsignedo): Add new overloaded specifications.
24397         * config/rs6000/vsx.md (vsignede_v4sf, vsignedo_v4sf,
24398         vunsignede_v4sf, vunsignedo_v4sf): New define_expands.
24399         * doc/extend.texi (vec_signedo, vec_signede, vec_unsignedo,
24400         vec_unsignede): Add documentation for new overloaded built-ins to
24401         convert vector float to vector {un,}signed long long.
24403 2024-07-09  Carl Love  <cel@linux.ibm.com>
24405         * config/rs6000/rs6000-builtins.def (__builtin_vsx_vunsigned_v2df,
24406         __builtin_vsx_vunsigned_v4sf, __builtin_vsx_vunsignede_v2df,
24407         __builtin_vsx_vunsignedo_v2df): Change the result type to unsigned.
24409 2024-07-09  Carl Love  <cel@linux.ibm.com>
24411         * config/rs6000/rs6000-builtins.def (__builtin_vsx_xvcvspsxws,
24412         __builtin_vsx_xvcvdpuxds_uns, __builtin_vsx_xvcvspuxws,
24413         __builtin_vsx_xvcvdpsxws, __builtin_vsx_xvcvdpuxws): Remove
24414         built-in definitions.
24416 2024-07-09  Carl Love  <cel@linux.ibm.com>
24418         * config/rs6000/rs6000-builtin.cc (RS6000_BIF_CMPLE_16QI,
24419         RS6000_BIF_CMPLE_U16QI, RS6000_BIF_CMPLE_8HI,
24420         RS6000_BIF_CMPLE_U8HI, RS6000_BIF_CMPLE_4SI, RS6000_BIF_CMPLE_U4SI,
24421         RS6000_BIF_CMPLE_2DI, RS6000_BIF_CMPLE_U2DI, RS6000_BIF_CMPLE_1TI,
24422         RS6000_BIF_CMPLE_U1TI): Remove case statements.
24423         * config/rs6000/rs6000-builtins.def (__builtin_vsx_cmple_16qi,
24424         __builtin_vsx_cmple_2di, __builtin_vsx_cmple_4si,
24425         __builtin_vsx_cmple_8hi, __builtin_vsx_cmple_u16qi,
24426         __builtin_vsx_cmple_u2di, __builtin_vsx_cmple_u4si,
24427         __builtin_vsx_cmple_u8hi): Remove buit-in definitions.
24429 2024-07-09  Uros Bizjak  <ubizjak@gmail.com>
24431         * config/i386/i386.md (@cmp<mode>_1): Use SWI mode iterator.
24432         (ustruncdi<mode>2): New expander.
24433         (ustruncsi<mode>2): Ditto.
24434         (ustrunchiqi2): Ditto.
24436 2024-07-09  David Malcolm  <dmalcolm@redhat.com>
24438         * diagnostic-path.cc: Replace "const diagnostic_path *" with
24439         "const diagnostic_path &" throughout, and "diagnostic_context *"
24440         with "diagnostic context &".
24441         * diagnostic.cc (diagnostic_context::show_any_path): Pass
24442         reference in call to print_path.
24443         * diagnostic.h (diagnostic_context::print_path): Convert param
24444         to a reference.
24446 2024-07-09  Richard Earnshaw  <rearnsha@arm.com>
24448         * config/arm/arm.cc (fp_consts_initited): Delete variable.
24449         (value_fp0): Likewise.
24450         (init_fp_table): Delete function.
24451         (fp_const_from_val): Likewise.
24452         (arm_const_double_rtx): Rework to avoid converting to REAL_VALUE_TYPE.
24453         (arm_print_operand, case 'N'): Make use of this case an error.
24455 2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
24457         * config/riscv/riscv-target-attr.cc (riscv_process_target_attr):
24458         Fix comments and variable names.
24460 2024-07-09  Christoph Müllner  <christoph.muellner@vrull.eu>
24462         * common/config/riscv/riscv-common.cc (riscv_set_arch_by_subset_list):
24463         Fix overlong line.
24464         (riscv_parse_arch_string): Replace duplicated code by a call to
24465         riscv_set_arch_by_subset_list.
24467 2024-07-09  Haochen Jiang  <haochen.jiang@intel.com>
24469         * common/config/i386/cpuinfo.h (get_available_features): Correct
24470         AVX10 CPUID emulation to specify ecx value.
24472 2024-07-09  liuhongt  <hongtao.liu@intel.com>
24474         PR target/115796
24475         * config/i386/emmintrin.h (__float_u): Rename to ..
24476         (__x86_float_u): .. this.
24477         (_mm_load_sd): Ditto.
24478         (_mm_store_sd): Ditto.
24479         (_mm_loadh_pd): Ditto.
24480         (_mm_loadl_pd): Ditto.
24481         * config/i386/xmmintrin.h (__double_u): Rename to ..
24482         (__x86_double_u): .. this.
24483         (_mm_load_ss): Ditto.
24484         (_mm_store_ss): Ditto.
24486 2024-07-08  Jeff Law  <jlaw@ventanamicro.com>
24488         * Makefile.in (OBJS): Add ext-dce.o
24489         * common.opt (ext-dce): Document new option.
24490         * df-scan.cc (df_get_ext_block_use_set): Delete prototype and
24491         make extern.
24492         * df.h (df_get_exit_block_use_set): Prototype.
24493         * ext-dce.cc: New file/pass.
24494         * opts.cc (default_options_table): Handle ext-dce at -O2 or higher.
24495         * passes.def: Add ext-dce before combine.
24496         * tree-pass.h (make_pass_ext_dce): Prototype.
24498 2024-07-08  Uros Bizjak  <ubizjak@gmail.com>
24500         * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg splitter to SImode):
24501         New splitter.
24502         (NEG and NOT splitter to SImode): Remove optimize_insn_for_size_p
24503         predicate from insn condition.
24505 2024-07-08  Patrick O'Neill  <patrick@rivosinc.com>
24507         * doc/invoke.texi: Remove trailing whitespace.
24509 2024-07-08  Levy Hsu  <admin@levyhsu.com>
24511         * config/i386/i386-expand.cc (ix86_expand_fp_absneg_operator): Add VBF modes.
24512         (ix86_expand_copysign): Ditto.
24513         (ix86_expand_xorsign): Ditto.
24514         * config/i386/i386.cc (ix86_build_const_vector): Ditto.
24515         (ix86_build_signbit_mask): Ditto.
24516         * config/i386/sse.md: Ditto.
24518 2024-07-08  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
24520         PR target/110040
24521         * config/rs6000/vsx.md (split pattern for V1TI to DI move): New define.
24523 2024-07-08  Pan Li  <pan2.li@intel.com>
24525         * config/riscv/autovec.md (ustrunc<mode><v_double_trunc>2): Add
24526         new pattern for double truncation.
24527         (ustrunc<mode><v_quad_trunc>2): Ditto but for quad truncation.
24528         (ustrunc<mode><v_oct_trunc>2): Ditto but for oct truncation.
24529         * config/riscv/riscv-protos.h (expand_vec_double_ustrunc): Add
24530         new func decl to expand double vec ustrunc.
24531         (expand_vec_quad_ustrunc): Ditto but for quad.
24532         (expand_vec_oct_ustrunc): Ditto but for oct.
24533         * config/riscv/riscv-v.cc (expand_vec_double_ustrunc): Add new
24534         func impl to expand vector double ustrunc.
24535         (expand_vec_quad_ustrunc): Ditto but for quad.
24536         (expand_vec_oct_ustrunc): Ditto but for oct.
24538 2024-07-08  Fei Gao  <gaofei@eswincomputing.com>
24540         * common/config/riscv/riscv-common.cc (riscv_subset_list::riscv_subset_list):
24541         init m_subset_num to 0.
24542         (riscv_subset_list::add): increase m_subset_num once a subset added.
24543         (riscv_subset_list::finalize): call handle_implied_ext repeatly
24544         until no change in m_subset_num.
24545         * config/riscv/riscv-subset.h: add m_subset_num member.
24547 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
24549         PR tree-optimization/115659
24550         * config/rs6000/rs6000-builtins.def: Update some bif expanders by
24551         replacing orc<mode>3 with iorc<mode>3.
24552         * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update gen
24553         function by replacing orc<mode>3 with iorc<mode>3.
24554         * config/rs6000/rs6000.md (orc<mode>3): Rename to ...
24555         (iorc<mode>3): ... this.
24557 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
24559         PR tree-optimization/115659
24560         * doc/md.texi: Document andcm3 and iorcm3.
24561         * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for
24562         patterns x CMP y ? 0 : z and x CMP y ? z : -1.
24563         * internal-fn.def (BIT_ANDC): New internal function.
24564         (BIT_IORC): Likewise.
24565         * optabs.def (andc, iorc): New optab.
24567 2024-07-08  Kewen Lin  <linkw@linux.ibm.com>
24569         PR target/115688
24570         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Consider
24571         explicit VSX when masking off ALTIVEC.
24573 2024-07-08  H.J. Lu  <hjl.tools@gmail.com>
24575         * config/i386/i386.cc (ix86_print_operand): Always generate
24576         branch hint for conditional branches.
24577         * config/i386/i386.h (TARGET_BRANCH_PREDICTION_HINTS): Split
24578         into ..
24579         (TARGET_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
24580         (TARGET_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
24581         * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS):
24582         Split into ..
24583         (X86_TUNE_BRANCH_PREDICTION_HINTS_TAKEN): .. this, and ..
24584         (X86_TUNE_BRANCH_PREDICTION_HINTS_NOT_TAKEN): .. this.
24586 2024-07-07  Gerald Pfeifer  <gerald@pfeifer.com>
24588         * doc/bugreport.texi (Bug Criteria): Remove dubious example.
24590 2024-07-06  Jeff Law  <jlaw@ventanamicro.com>
24592         * config/riscv/bitmanip.md (bset splitters): Turn into define_and_splits.
24593         Don't depend on combine splitting the "andn with constant" form.
24594         (bset, binv, bclr with masked bit position): New patterns.
24596 2024-07-06  Jeff Law  <jlaw@ventanamicro.com>
24598         * config/sh/sh.md (adddi3): Only allow matching when we can
24599         still create new pseudos.
24600         (subdi3, *rotcl, *rotcr, *rotcr_neg_t, negdi2): Likewise.
24601         (abs<mode>2, negabs<mode>2, negdi_cond): Likewise.
24602         (*swapbisi2_and_shl8, *swapbhisi2, *movsi_index_disp_load): Likewise.
24603         (*movhi_index_disp_load, *mov<mode>index_disp_store): Likewise.
24604         (*mov_t_msb_neg, *negt_msb, clipu_one): Likewise.
24606 2024-07-06  Georg-Johann Lay  <avr@gjlay.de>
24608         * config/avr/avr.md: Also split with avr_split_tiny_move()
24609         for non-AVR_TINY.
24610         * config/avr/avr.cc (avr_split_tiny_move): Don't change memory
24611         references with base regs that can do PLUS addressing.
24612         (avr_out_lpm_no_lpmx) [POST_INC]: Don't output final ADIW when the
24613         address register is unused after.
24615 2024-07-06  Eric Botcazou  <ebotcazou@adacore.com>
24617         PR target/115591
24618         * config/riscv/riscv.cc (riscv_valid_lo_sum_p): Add missing test on
24619         tree_fits_uhwi_p before calling tree_to_uhwi.
24621 2024-07-06  Roger Sayle  <roger@nextmovesoftware.com>
24623         PR target/115751
24624         * config/i386/i386-expand.cc (ix86_expand_ternlog): Avoid use of
24625         force_reg to "reload" non-register operands, as these may contain
24626         vec_duplicate (broadcast) operands that aren't supported by
24627         force_reg.  Use (safer) gen_reg_rtx and emit_move instead.
24629 2024-07-05  Iain Sandoe  <iain@sandoe.co.uk>
24631         * config/i386/i386.cc (ix86_cannot_copy_insn_p): New.
24632         (TARGET_CANNOT_COPY_INSN_P): New.
24634 2024-07-05  Wilco Dijkstra  <wilco.dijkstra@arm.com>
24636         PR target/115153
24637         * config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before
24638         NEON.
24639         (thumb2_legitimate_index_p): Update comments.
24640         (output_move_neon): Use DFmode for vldr/vstr and non-checking
24641         adjust_address.
24643 2024-07-05  Robin Dapp  <rdapp@ventanamicro.com>
24645         * config/riscv/autovec.md: Add TU policy.
24646         * config/riscv/riscv-protos.h (enum insn_type): Define
24647         SCALAR_MOVE_MERGED_OP_TU.
24649 2024-07-05  Georg-Johann Lay  <avr@gjlay.de>
24651         PR target/87376
24652         * config/avr/avr-dimode.md: Use "nop_general_operand" instead
24653         of "general_operand" as predicate for all input operands.
24655 2024-07-05  Tamar Christina  <tamar.christina@arm.com>
24657         * config/aarch64/aarch64.cc (struct expand_vec_perm_d): Add zero_op0_p
24658         and zero_op_p1.
24659         (aarch64_evpc_tbl): Implement register value remapping.
24660         (aarch64_vectorize_vec_perm_const): Detect if operand is a zero dup
24661         before it's forced to a reg.
24663 2024-07-05  Tamar Christina  <tamar.christina@arm.com>
24665         * config/aarch64/aarch64-simd.md
24666         (aarch64_simd_vec_unpack<su>_lo_<mode>): Remove.
24667         (vec_unpack<su>_lo_<mode): Simplify.
24668         * config/aarch64/aarch64.cc (aarch64_gen_shareable_zero): Update
24669         comment.
24671 2024-07-05  Alex Coplan  <alex.coplan@arm.com>
24673         * dominance.cc (dot_dominance_tree): New.
24675 2024-07-05  Hu, Lin1  <lin1.hu@intel.com>
24677         * config/i386/sse.md (ssedoublemode): Remove mappings to twice
24678         the number of same-sized elements. Add mappings to the same
24679         number of double-sized elements.
24680         (define_split for vec_concat_minus_plus): Change mode_attr from
24681         ssedoublemode to ssedoublevecmode.
24682         (define_split for vec_concat_plus_minus): Ditto.
24683         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>):
24684         Ditto.
24685         (avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ditto.
24686         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
24687         (avx512f_shuf_<shuffletype>32x4_1<mask_name>): Ditto.
24689 2024-07-05  YunQiang Su  <syq@gcc.gnu.org>
24691         * config/mips/mips-protos.h: New function mips_msa_shf_i8.
24692         * config/mips/mips-msa.md(MSA_WHB_W): Not used anymore;
24693         (msa_shf_<msafmt_f>): Use mips_msa_shf_i8.
24694         * config/mips/mips.cc(mips_const_vector_shuffle_set_p):
24695         Support more cases try to use alien mode instruction;
24696         (mips_msa_shf_i8): New function to get the correct MSA SHF
24697         instruction and IMM.
24699 2024-07-05  Richard Biener  <rguenther@suse.de>
24701         * tree-vect-slp.cc (vect_build_slp_instance): Special case
24702         three input permute with the same number of lanes in store
24703         permute lowering.
24705 2024-07-04  Siarhei Volkau  <lis8215@gmail.com>
24707         * config/arm/arm.cc (thumb_load_double_from_address): Emit ldmia
24708         when address reg rewritten by load.
24709         * config/arm/thumb1.md (peephole2 to rewrite DI/DF load): New.
24710         (peephole2 to rewrite DI/DF store): New.
24711         * config/arm/iterators.md (DIDF): New.
24713 2024-07-04  Alfie Richards  <alfie.richards@arm.com>
24715         PR target/114890
24716         * config/aarch64/aarch64-simd.md: Remove bigendian operand swap.
24718 2024-07-04  Richard Biener  <rguenther@suse.de>
24720         PR middle-end/115426
24721         * gimplify.cc (gimplify_asm_expr): Handle "rm" output
24722         constraint gimplified to a register (operation).
24724 2024-07-04  Roger Sayle  <roger@nextmovesoftware.com>
24726         * config/i386/i386.md (bswaphisi2_lowpart peephole2): New
24727         peephole2 variant to eliminate register shuffling.
24729 2024-07-04  Jeff Law  <jlaw@ventanamicro.com>
24731         * config/rx/rx.cc (rx_expand_prologue): Mark the copy from FP to SP
24732         as frame related.
24733         (rx_expand_epilogue): Mark the stack pointer adjustment as frame
24734         related.
24736 2024-07-04  Hongyu Wang  <hongyu.wang@intel.com>
24738         * config/i386/i386.cc (ix86_expand_prologue): Set apx_ppx_used
24739         flag in m.fs with TARGET_APX_PPX && !crtl->calls_eh_return.
24740         (ix86_emit_save_regs): Emit ppx is available only when
24741         TARGET_APX_PPX && !crtl->calls_eh_return.
24742         (ix86_expand_epilogue): Don't restore reg using mov when
24743         apx_ppx_used flag is true.
24744         * config/i386/i386.h (struct machine_frame_state):
24745         Add apx_ppx_used flag.
24747 2024-07-04  Hu, Lin1  <lin1.hu@intel.com>
24749         PR tree-optimization/115753
24750         * tree-vect-stmts.cc (supportable_indirect_convert_operation): Add
24751         TYPE_CODE check before SSA_NAME_RANGE_INFO.
24753 2024-07-03  Jeff Law  <jlaw@ventanamicro.com>
24755         * reorg.cc (relax_delay_slots): Do not optimize a conditional
24756         jump around an unconditional jump/return in the presence of
24757         a text section switch.
24759 2024-07-03  John David Anglin  <danglin@gcc.gnu.org>
24761         Revert:
24762         2023-10-05  John David Anglin  <danglin@gcc.gnu.org>
24764         * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Delete.
24766 2024-07-03  Palmer Dabbelt  <palmer@rivosinc.com>
24768         * doc/invoke.texi: Describe -march behavior for dependent extensions on
24769         RISC-V.
24771 2024-07-03  Gianluca Guida  <gianluca@rivosinc.com>
24772             Patrick O'Neill  <patrick@rivosinc.com>
24774         * common/config/riscv/riscv-common.cc
24775         (riscv_subset_list::to_string): Skip zabha when not supported by
24776         the assembler.
24777         * config.in: Regenerate.
24778         * config/riscv/arch-canonicalize: Make zabha imply zaamo.
24779         * config/riscv/iterators.md (amobh): Add iterator for amo
24780         byte/halfword.
24781         * config/riscv/riscv.opt: Add zabha.
24782         * config/riscv/sync.md (atomic_<atomic_optab><mode>): Add
24783         subword atomic op pattern.
24784         (zabha_atomic_fetch_<atomic_optab><mode>): Add subword
24785         atomic_fetch op pattern.
24786         (lrsc_atomic_fetch_<atomic_optab><mode>): Prefer zabha over lrsc
24787         for subword atomic ops.
24788         (zabha_atomic_exchange<mode>): Add subword atomic exchange
24789         pattern.
24790         (lrsc_atomic_exchange<mode>): Prefer zabha over lrsc for subword
24791         atomic exchange ops.
24792         * configure: Regenerate.
24793         * configure.ac: Add zabha assembler check.
24794         * doc/sourcebuild.texi: Add zabha documentation.
24796 2024-07-03  Pan Li  <pan2.li@intel.com>
24798         PR target/115763
24799         * config/riscv/vector.md (*pred_broadcast<mode>): Split into
24800         zvfh and zvfhmin part.
24801         (*pred_broadcast<mode>_zvfh): New define_insn for zvfh part.
24802         (*pred_broadcast<mode>_zvfhmin): Ditto but for zvfhmin.
24804 2024-07-03  Pan Li  <pan2.li@intel.com>
24806         * match.pd: Allow any otype is less than itype truncation.
24808 2024-07-03  Pan Li  <pan2.li@intel.com>
24810         * tree-vect-patterns.cc (gimple_unsigned_integer_sat_trunc): Add
24811         new decl generated by match.
24812         (vect_recog_sat_trunc_pattern): Add new func impl to recog the
24813         .SAT_TRUNC pattern.
24815 2024-07-03  Richard Biener  <rguenther@suse.de>
24817         * tree-vect-slp.cc (vectorizable_slp_permutation_1): Remove
24818         redundant dump.
24820 2024-07-03  Jennifer Schmitz  <jschmitz@nvidia.com>
24822         * match.pd: Fold x/sqrt(x) to sqrt(x).
24824 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
24826         * dwarf2out.cc (modified_type_die): Follow name's debug type.
24828 2024-07-03  Alexandre Oliva  <oliva@adacore.com>
24830         PR target/113719
24831         * config/i386/i386-options.cc
24832         (ix86_override_options_after_change_1): Add opts and opts_set
24833         parms, operate on them, after factoring out of...
24834         (ix86_override_options_after_change): ... this.  Restore calls
24835         of ix86_default_align and ix86_recompute_optlev_based_flags.
24836         (ix86_option_override_internal): Call the factored-out bits.
24838 2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
24840         PR target/115475
24841         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
24842         Define __ARM_FEATURE_SVE_BF16 for TARGET_SVE_BF16.
24844 2024-07-03  Kyrylo Tkachov  <ktkachov@nvidia.com>
24846         PR target/115457
24847         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins):
24848         Define __ARM_FEATURE_BF16 for TARGET_BF16_FP.
24850 2024-07-03  Richard Biener  <rguenther@suse.de>
24852         * tree-vect-slp.cc (bst_traits::hash): Handle NULL elements
24853         in SLP_TREE_SCALAR_STMTS.
24854         (vect_print_slp_tree): Likewise.
24855         (vect_mark_slp_stmts): Likewise.
24856         (vect_mark_slp_stmts_relevant): Likewise.
24857         (vect_find_last_scalar_stmt_in_slp): Likewise.
24858         (vect_bb_slp_mark_live_stmts): Likewise.
24859         (vect_slp_prune_covered_roots): Likewise.
24860         (vect_bb_partition_graph_r): Likewise.
24861         (vect_remove_slp_scalar_calls): Likewise.
24862         (vect_slp_gather_vectorized_scalar_stmts): Likewise.
24863         (vect_bb_slp_scalar_cost): Likewise.
24864         (vect_contains_pattern_stmt_p): Likewise.
24865         (vect_slp_convert_to_external): Likewise.
24866         (vect_find_first_scalar_stmt_in_slp): Likewise.
24867         (vect_optimize_slp_pass::remove_redundant_permutations): Likewise.
24868         (vect_slp_analyze_node_operations_1): Likewise.
24869         (vect_schedule_slp_node): Likewise.
24870         * tree-vect-stmts.cc (can_vectorize_live_stmts): Likewise.
24871         (vectorizable_shift): Likewise.
24872         * tree-vect-data-refs.cc (vect_slp_analyze_load_dependences):
24873         Handle NULL elements in SLP_TREE_SCALAR_STMTS.
24875 2024-07-03  Georg-Johann Lay  <avr@gjlay.de>
24877         PR target/98762
24878         * config/avr/avr.cc (avr_out_movqi_r_mr_reg_disp_tiny): Properly
24879         restore the base register when it is partially clobbered.
24881 2024-07-03  Tamar Christina  <tamar.christina@arm.com>
24883         PR tree-optimization/114932
24884         * tree-ssa-loop-ivopts.cc (constant_multiple_of): Use
24885         aff_combination_constant_multiple_p instead.
24887 2024-07-03  Tamar Christina  <tamar.christina@arm.com>
24889         PR tree-optimization/114932
24890         * tree-affine.cc (wide_int_constant_multiple_p): Support 0 and 0 being
24891         multiples.
24893 2024-07-03  Richard Sandiford  <richard.sandiford@arm.com>
24895         * df.h (DF_LR_DCE): New df_problem_id.
24896         (df_lr_dce): New macro.
24897         * df-core.cc (rest_of_handle_df_finish): Check for a null free_fun.
24898         * df-problems.cc (df_lr_finalize): Split out fast DCE handling to...
24899         (df_lr_dce_finalize): ...this new function.
24900         (problem_LR_DCE): New df_problem.
24901         (df_lr_add_problem): Register LR_DCE rather than LR itself.
24902         * dce.cc (fast_dce): Clear df_lr_dce->solutions_dirty.
24904 2024-07-02  Pengxuan Zheng  <quic_pzheng@quicinc.com>
24906         PR target/113859
24907         * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>): Rename to...
24908         (@aarch64_<su>addlp<mode>): ... This.
24909         (popcount<mode>2): New define_expand.
24911 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
24913         * passes.def (expand_pow): Renamed from expand_powcabs.
24914         * timevar.def (TV_TREE_POWCABS): Remove.
24915         (TV_TREE_POW): Add
24916         * tree-pass.h (make_pass_expand_powcabs): Rename to ...
24917         (make_pass_expand_pow): This.
24918         * tree-ssa-math-opts.cc (class pass_expand_powcabs): Rename to ...
24919         (class pass_expand_pow): This.
24920         (pass_expand_powcabs::execute): Rename to ...
24921         (pass_expand_pow::execute): This.
24922         (make_pass_expand_powcabs): Rename to ...
24923         (make_pass_expand_pow): This.
24925 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
24927         * tree-complex.cc (gimple_expand_builtin_cabs): Add
24928         `cabs(a+ai)`, `cabs(x+0i)` and `cabs(0+xi)` optimizations.
24930 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
24932         PR tree-optimization/115710
24933         * tree-complex.cc (init_dont_simulate_again): Handle CABS.
24934         (gimple_expand_builtin_cabs): New function, moved mostly
24935         from tree-ssa-math-opts.cc.
24936         (expand_complex_operations_1): Call gimple_expand_builtin_cabs.
24937         * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Remove.
24938         (build_and_insert_binop): Remove.
24939         (pass_data_expand_powcabs): Update comment.
24940         (pass_expand_powcabs::execute): Don't handle CABS.
24942 2024-07-02  Andrew Pinski  <quic_apinski@quicinc.com>
24944         * tree-complex.cc (expand_complex_addition): If both
24945         operands have the same real and imag parts, only
24946         add the addition once.
24948 2024-07-02  David Faust  <david.faust@oracle.com>
24950         * common.opt.urls: Regenerate.
24952 2024-07-02  David Faust  <david.faust@oracle.com>
24953             Cupertino Miranda  <cupertino.miranda@oracle.com>
24955         * btfout.cc (btf_mark_type_used): New.
24956         * ctfc.h (btf_mark_type_used): Declare it here.
24957         * config/bpf/bpf.cc (bpf_option_override): Enable -gprune-btf
24958         by default if -gbtf is enabled.
24959         * config/bpf/core-builtins.cc (extra_fn): New typedef.
24960         (compute_field_expr): Add callback parameter, and call it if supplied.
24961         Fix computation for MEM_REF.
24962         (mark_component_type_as_used): New.
24963         (bpf_mark_types_as_used): Likewise.
24964         (bpf_expand_core_builtin): Call here.
24965         * doc/invoke.texi (Debugging Options): Note that -gprune-btf is
24966         enabled by default for BPF target when generating BTF.
24968 2024-07-02  David Faust  <david.faust@oracle.com>
24970         * btfout.cc (btf_used_types): New hash set.
24971         (struct btf_fixup): New.
24972         (fixups, forwards): New vecs.
24973         (btf_output): Calculate num_types depending on debug_prune_btf.
24974         (btf_early_finsih): New initialization for debug_prune_btf.
24975         (btf_add_used_type): New function.
24976         (btf_used_type_list_cb): Likewise.
24977         (btf_collect_pruned_types): Likewise.
24978         (btf_add_vars): Handle special case for variables in ".maps" section
24979         when generating BTF for BPF CO-RE target.
24980         (btf_late_finish): Use btf_collect_pruned_types when debug_prune_btf
24981         is in effect.  Move some initialization to btf_early_finish.
24982         (btf_finalize): Additional deallocation for debug_prune_btf.
24983         * common.opt (gprune-btf): New flag.
24984         * ctfc.cc (init_ctf_strtable): Make non-static.
24985         * ctfc.h (init_ctf_strtable, ctfc_delete_strtab): Make extern.
24986         * doc/invoke.texi (Debugging Options): Document -gprune-btf.
24988 2024-07-02  David Faust  <david.faust@oracle.com>
24990         * btfout.cc (struct btf_datasec_entry): New.
24991         (struct btf_datasec): Add `id' member.  Change `entries' to use
24992         new struct btf_datasec_entry.
24993         (func_map): New hash_map.
24994         (max_translated_id): New.
24995         (btf_var_ids, btf_id_map, holes, voids, num_vars_added)
24996         (num_types_added, num_types_created): Delete.
24997         (btf_absolute_var_id, btf_relative_var_id, btf_absolute_func_id)
24998         (btf_relative_func_id, btf_absolute_datasec_id, init_btf_id_map)
24999         (get_btf_id, set_btf_id, btf_emit_id_p): Delete.
25000         (btf_removed_type_p): Delete.
25001         (btf_dtd_kind, btf_emit_type_p): New helpers.
25002         (btf_fwd_to_enum_p, btf_calc_num_vbytes): Use them.
25003         (btf_collect_datasec): Delete.
25004         (btf_dtd_postprocess_cb, btf_dvd_emit_preprocess_cb)
25005         (btf_dtd_emit_preprocess_cb, btf_emit_preprocess): Delete.
25006         (btf_dmd_representable_bitfield_p): Adapt to type reference changes
25007         and delete now-unused ctfc argument.
25008         (btf_asm_datasec_type_ref): Delete.
25009         (btf_asm_type_ref): Adapt to type reference changes, simplify.
25010         (btf_asm_type): Likewise. Mark struct/union types with bitfield
25011         members.
25012         (btf_asm_array): Adapt to data structure changes.
25013         (btf_asm_varent): Likewise.
25014         (btf_asm_sou_member): Likewise. Ensure non-bitfield members are
25015         correctly re-encoded if struct or union contains any bitfield.
25016         (btf_asm_func_arg, btf_asm_func_type, btf_asm_datasec_entry)
25017         (btf_asm_datasec_type): Adapt to data structure changes.
25018         (output_btf_header): Adapt to other changes, simplify type
25019         length calculation, add info to assembler comments.
25020         (output_btf_vars): Adapt to other changes.
25021         (output_btf_strs): Fix overlong lines.
25022         (output_asm_btf_sou_fields, output_asm_btf_enum_list)
25023         (output_asm_btf_func_args_list, output_asm_btf_vlen_bytes)
25024         (output_asm_btf_type, output_btf_types, output_btf_func_types)
25025         (output_btf_datasec_types): Adapt to other changes.
25026         (btf_init_postprocess): Delete.
25027         (btf_output): Change to only perform output.
25028         (btf_add_const_void, btf_add_func_records): New.
25029         (btf_early_finish): Use them here. New.
25030         (btf_datasec_push_entry): Adapt to data structure changes.
25031         (btf_datasec_add_func, btf_datasec_add_var): New.
25032         (btf_add_func_datasec_entries): New.
25033         (btf_emit_variable_p): New helper.
25034         (btf_add_vars): Use it here. New.
25035         (btf_type_list_cb, btf_collect_translated_types): New.
25036         (btf_assign_func_ids, btf_late_assign_var_ids)
25037         (btf_assign_datasec_ids): New.
25038         (btf_finish): Remove unused argument. Call new btf_late*
25039         functions and btf_output.
25040         (btf_finalize): Adapt to data structure changes.
25041         * ctfc.h (struct ctf_dtdef): Convert existing boolean flags to
25042         BOOL_BITFIELD and reorder.
25043         (struct ctf_dvdef): Add dvd_id member.
25044         (btf_finish): Remove argument from prototype.
25045         (get_btf_id): Delete prototype.
25046         (funcs_traverse_callback, traverse_btf_func_types): Add an
25047         explanatory comment.
25048         * dwarf2ctf.cc (ctf_debug_finish): Remove unused argument.
25049         * dwarf2ctf.h: Analogous change.
25050         * dwarf2out.cc: Likewise.
25052 2024-07-02  David Faust  <david.faust@oracle.com>
25054         * btfout.cc (BTF_VOID_TYPEID, BTF_INIT_TYPEID): Move defines to
25055         include/btf.h.
25056         (btf_dvd_emit_preprocess_cb, btf_emit_preprocess)
25057         (btf_dmd_representable_bitfield_p, btf_asm_array, btf_asm_varent)
25058         (btf_asm_sou_member, btf_asm_func_arg, btf_init_postprocess):
25059         Adapt to structural changes in ctf_* structs.
25060         * ctfc.h (struct ctf_dtdef): Add forward declaration.
25061         (ctf_dtdef_t, ctf_dtdef_ref): Move typedefs earlier.
25062         (struct ctf_arinfo, struct ctf_funcinfo, struct ctf_sliceinfo)
25063         (struct ctf_itype, struct ctf_dmdef, struct ctf_func_arg)
25064         (struct ctf_dvdef): Use pointers instead of type IDs for
25065         references to other types and use typedefs where appropriate.
25066         (struct ctf_dtdef): Add ref_type member.
25067         (ctf_type_exists): Use pointer instead of type ID.
25068         (ctf_add_reftype, ctf_add_enum, ctf_add_slice, ctf_add_float)
25069         (ctf_add_integer, ctf_add_unknown, ctf_add_pointer)
25070         (ctf_add_array, ctf_add_forward, ctf_add_typedef)
25071         (ctf_add_function, ctf_add_sou, ctf_add_enumerator)
25072         (ctf_add_variable): Likewise. Return pointer instead of ID.
25073         (ctf_lookup_tree_type): Return pointer to type instead of ID.
25074         * ctfc.cc: Analogous changes.
25075         * ctfout.cc (ctf_asm_type, ctf_asm_slice, ctf_asm_varent)
25076         (ctf_asm_sou_lmember, ctf_asm_sou_member, ctf_asm_func_arg)
25077         (output_ctf_objt_info): Adapt to changes.
25078         * dwarf2ctf.cc (gen_ctf_type, gen_ctf_void_type)
25079         (gen_ctf_unknown_type, gen_ctf_base_type, gen_ctf_pointer_type)
25080         (gen_ctf_subrange_type, gen_ctf_array_type, gen_ctf_typedef)
25081         (gen_ctf_modifier_type, gen_ctf_sou_type, gen_ctf_function_type)
25082         (gen_ctf_enumeration_type, gen_ctf_variable, gen_ctf_function)
25083         (gen_ctf_type, ctf_do_die): Likewise.
25084         * config/bpf/btfext-out.cc (struct btf_ext_core_reloc): Use
25085         pointer instead of type ID.
25086         (bpf_core_reloc_add, bpf_core_get_sou_member_index)
25087         (output_btfext_core_sections): Adapt to above changes.
25088         * config/bpf/core-builtins.cc (process_type): Likewise.
25090 2024-07-02  David Faust  <david.faust@oracle.com>
25092         * btfout.cc (btf_init_postprocess): Rename to...
25093         (btf_early_finish): ...this.
25094         (btf_output): Rename to...
25095         (btf_finish): ...this.
25096         * ctfc.h: Analogous changes.
25097         * dwarf2ctf.cc (ctf_debug_early_finish): Conditionally call
25098         btf_early_finish, or ctf_finalize as appropriate.  Emit BTF
25099         here for LTO builds.
25100         (ctf_debug_finish): Always call btf_finish here if generating
25101         BTF info in non-LTO builds.
25102         (ctf_debug_finalize, ctf_debug_init_postprocess): Delete.
25103         * dwarf2out.cc (dwarf2out_early_finish): Remove call to
25104         ctf_debug_init_postprocess.
25106 2024-07-02  Wilco Dijkstra  <wilco.dijkstra@arm.com>
25108         PR target/115188
25109         * config/arm/arm.md (unaligned_loadsi): Use 'Uw' constraint and
25110         'mem_and_no_t1_wback_op'.
25111         (unaligned_loadhiu): Likewise.
25112         (unaligned_storesi): Likewise.
25113         (unaligned_storehi): Likewise.
25114         * config/arm/predicates.md (mem_and_no_t1_wback_op): Add new predicate.
25115         * config/arm/sync.md (arm_atomic_load<mode>): Use 'Uw' constraint.
25116         (arm_atomic_store<mode>): Likewise.
25118 2024-07-02  Matthew Malcomson  <matthew.malcomson@arm.com>
25120         * doc/tm.texi: Regenerated.
25121         * target.def (function_attribute_inlinable_p,
25122         unspec_may_trap_p): Update documentation.
25124 2024-07-02  Richard Biener  <rguenther@suse.de>
25126         PR tree-optimization/115741
25127         * tree-vect-stmts.cc (get_group_load_store_type): Also
25128         handle VMAT_CONTIGUOUS_REVERSE when determining overrun.
25130 2024-07-02  Andrew Stubbs  <ams@baylibre.com>
25132         * config/gcn/gcn-opts.h (TARGET_GLOBAL_ADDRSPACE): New.
25133         (TARGET_AVGPRS): New.
25134         (TARGET_AVGPR_MEMOPS): New.
25135         (TARGET_AVGPR_COMBINED): New.
25136         (TARGET_FLAT_OFFSETS): New.
25137         (TARGET_11BIT_GLOBAL_OFFSET): New.
25138         (TARGET_CDNA2_MEM_COSTS): New.
25139         (TARGET_WAVE64_COMPAT): New.
25140         (TARGET_DPP_FULL): New.
25141         (TARGET_DPP16): New.
25142         (TARGET_DPP8): New.
25143         (TARGET_AVGPR_CDNA1_NOPS): New.
25144         (TARGET_VGPR_GRANULARITY): New.
25145         (TARGET_ARCHITECTED_FLAT_SCRATCH): New.
25146         (TARGET_EXPLICIT_CARRY): New.
25147         (TARGET_MULTIPLY_IMMEDIATE): New.
25148         (TARGET_SDWA): New.
25149         (TARGET_WBINVL1_CACHE): New.
25150         (TARGET_GLn_CACHE): New.
25151         * config/gcn/gcn-valu.md (throughout): Change TARGET_GCN*,
25152         TARGET_CDNA* and TARGET_RDNA* to use TARGET_<feature> instead.
25153         * config/gcn/gcn.cc (throughout): Likewise.
25154         * config/gcn/gcn.md (throughout): Likewise.
25156 2024-07-02  Lingling Kong  <lingling.kong@intel.com>
25158         * config/i386/i386.md (*imulhi<mode>zu): Added APX
25159         NF support.
25160         (*imulhi<mode>zu<nf_name>): New define_insn.
25161         (*mulsi3_1_zext<nf_name>): Ditto.
25162         (*mul<mode><dwi>3_1<nf_name>): Ditto.
25163         (*<u>mulqihi3_1<nf_name>): Ditto.
25164         (*mul<mode>3_1<nf_name>): Added APX NDD support.
25165         (*mulv<mode>4): Ditto.
25166         (*mulvhi4): Ditto.
25168 2024-07-02  Kewen Lin  <linkw@linux.ibm.com>
25170         PR target/115739
25171         * config/sparc/vxworks.h (SPARC_LONG_DOUBLE_TYPE_SIZE): New define.
25173 2024-07-02  Lulu Cheng  <chenglulu@loongson.cn>
25175         * config/loongarch/loongarch.cc (loongarch_insn_cost):
25176         New function.
25177         (TARGET_INSN_COST): New macro.
25179 2024-07-02  Kewen Lin  <linkw@linux.ibm.com>
25181         PR tree-optimization/115659
25182         * gimple-isel.cc (gimple_expand_vec_cond_expr): Add more foldings for
25183         patterns x CMP y ? -1 : z and x CMP y ? z : 0.
25185 2024-07-01  Richard Biener  <rguenther@suse.de>
25187         * tree-ssa-forwprop.cc (fwprop_set_lattice_val): Preserve
25188         SSA info.
25189         * tree-ssa-propagate.cc
25190         (substitute_and_fold_dom_walker::before_dom_children): Likewise.
25192 2024-07-01  Roger Sayle  <roger@nextmovesoftware.com>
25194         * config/i386/i386.md (peephole2): Transform two consecutive
25195         additions into a 3-component lea if !TARGET_AVOID_LEA_FOR_ADDR.
25197 2024-07-01  Georg-Johann Lay  <avr@gjlay.de>
25199         PR target/88236
25200         PR target/115726
25201         * config/avr/avr.md (mov<mode>) [avr_mem_memx_p]: Expand in such a
25202         way that the destination does not overlap with any hard register
25203         clobbered / used by xload8qi_A resp. xload<mode>_A.
25204         * config/avr/avr.cc (avr_out_xload): Avoid early-clobber
25205         situation for Z by executing just one load when the output register
25206         overlaps with Z.
25208 2024-07-01  Richard Biener  <rguenther@suse.de>
25210         PR tree-optimization/115723
25211         * tree-vect-loop.cc (check_reduction_path): For a .COND_ADD
25212         verify the else value also refers to the reduction chain op.
25214 2024-07-01  Richard Biener  <rguenther@suse.de>
25216         PR tree-optimization/115694
25217         * tree-ssa-forwprop.cc (pass_forwprop::execute): Check the
25218         store is complex before rewriting it.
25220 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25222         PR target/115517
25223         * config/i386/mmx.md (vcond<mode>v2sf): Removed.
25224         (vcond<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
25225         (vcond<mode><mode>): Ditto.
25226         (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto.
25227         (vcondu<mode><mode>): Ditto.
25228         * config/i386/sse.md (vcond<V_512:mode><VF_512:mode>): Ditto.
25229         (vcond<V_256:mode><VF_256:mode>): Ditto.
25230         (vcond<V_128:mode><VF_128:mode>): Ditto.
25231         (vcond<VI2HFBF_AVX512VL:mode><VHF_AVX512VL:mode>): Ditto.
25232         (vcond<V_512:mode><VI_AVX512BW:mode>): Ditto.
25233         (vcond<V_256:mode><VI_256:mode>): Ditto.
25234         (vcond<V_128:mode><VI124_128:mode>): Ditto.
25235         (vcond<VI8F_128:mode>v2di): Ditto.
25236         (vcondu<V_512:mode><VI_AVX512BW:mode>): Ditto.
25237         (vcondu<V_256:mode><VI_256:mode>): Ditto.
25238         (vcondu<V_128:mode><VI124_128:mode>): Ditto.
25239         (vcondu<VI8F_128:mode>v2di): Ditto.
25240         (vcondeq<VI8F_128:mode>v2di): Ditto.
25242 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25244         PR target/115517
25245         * config/i386/sse.md ("*ashr<mode>3_1"): New
25246         define_insn_and_split.
25247         (*avx512_ashr<mode>3_1): Ditto.
25248         (*avx2_lshr<mode>3_1): Ditto.
25249         (*avx2_lshr<mode>3_2): Ditto and add 2 combine splitter after
25250         it.
25251         * config/i386/mmx.md (mmxscalarsize): New mode attribute.
25252         (*mmw_ashr<mode>3_1): New define_insn_and_split.
25253         ("mmx_<insn><mode>3): Add a combine spiltter after it.
25254         (*mmx_ashrv2hi3_1): New define_insn_and_plit, also add a
25255         combine splitter after it.
25257 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25259         PR target/115517
25260         * config/i386/sse.md
25261         (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt_avx512): New
25262         define_insn_and_split.
25263         (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_<u>ext_lt_avx512):
25264         Ditto.
25265         (*<sse2_avx2>_pmovmskb_lt_avx512): Ditto.
25266         (*<sse2_avx2>_pmovmskb_zext_lt_avx512): Ditto.
25267         (*sse2_pmovmskb_ext_lt_avx512): Ditto.
25268         (*pmovsk_kmask_v16qi_avx512): Ditto.
25269         (*pmovsk_mask_v32qi_avx512): Ditto.
25270         (*pmovsk_mask_cmp_<mode>_avx512): Ditto.
25271         (*pmovsk_ptest_<mode>_avx512): Ditto.
25273 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25275         PR target/115517
25276         * config/i386/sse.md (*minmax<mode>3_1): New pre_reload
25277         define_insn_and_split.
25278         (*minmax<mode>3_2): Ditto.
25280 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25282         PR target/115517
25283         * config/i386/sse.md
25284         (*<avx512>_cvtmask2<ssemodesuffix><mode>_not): New pre_reload
25285         splitter.
25286         (*<avx512>_cvtmask2<ssemodesuffix><mode>_not): Ditto.
25287         (*avx2_pcmp<mode>3_6): Ditto.
25288         (*avx2_pcmp<mode>3_7): Ditto.
25290 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25292         PR target/115517
25293         * config/i386/sse.md
25294         (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_gt): New
25295         define_insn_and_split.
25296         (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_gtint):
25297         Ditto.
25298         (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_gtint):
25299         Ditto.
25300         (*<sse4_1_avx2>_pblendvb_gt): Ditto.
25301         (*<sse4_1_avx2>_pblendvb_gt_subreg_not): Ditto.
25303 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25305         * config/i386/i386-features.cc (ix86_rpad_gate): New function.
25306         * config/i386/i386-options.cc (ix86_override_options_after_change):
25307         Don't disable flate_combine.
25308         * config/i386/i386-passes.def: Move pass_stv2 and pass_rpad
25309         after pre_reload pas_late_combine.
25310         * config/i386/i386-protos.h (ix86_rpad_gate): New declare.
25311         * config/i386/i386.cc (ix86_insn_cost): New function.
25312         (TARGET_INSN_COST): Define.
25314 2024-07-01  liuhongt  <hongtao.liu@intel.com>
25316         PR target/115610
25317         * config/i386/i386.md (<*insnsi3_zext): Add alternative ?k,
25318         enable it only for lshiftrt and under avx512bw.
25319         * config/i386/sse.md (*klshrsi3_1_zext): New define_insn, and
25320         add corresponding define_split after it.
25322 2024-06-30  John David Anglin  <danglin@gcc.gnu.org>
25324         PR target/115691
25325         * config/pa/pa.md: Remove incorrect xmpyu patterns.
25327 2024-06-30  Richard Biener  <rguenther@suse.de>
25329         PR tree-optimization/115701
25330         * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy):
25331         Only copy info from within the same BB.
25333 2024-06-30  Richard Biener  <rguenther@suse.de>
25335         PR tree-optimization/115701
25336         * tree-ssanames.h (maybe_duplicate_ssa_info_at_copy): Declare.
25337         * tree-ssanames.cc (maybe_duplicate_ssa_info_at_copy): New
25338         function, split out from ...
25339         * tree-ssa-copy.cc (fini_copy_prop): ... here.
25340         * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): ...
25341         and here.
25343 2024-06-30  Richard Biener  <rguenther@suse.de>
25345         * tree-vect-slp.cc (vect_build_slp_tree_1): Compare
25346         STMT_VINFO_REDUC_IDX.
25347         (vect_build_slp_tree_2): Prevent operand swapping for
25348         all stmts participating in a reduction.
25350 2024-06-30  Feng Xue  <fxue@os.amperecomputing.com>
25352         * tree-vect-loop.cc (vectorizable_reduction): Determine input vectype
25353         during traversal of reduction statements.
25355 2024-06-30  Feng Xue  <fxue@os.amperecomputing.com>
25357         * tree-vect-stmts.cc (vectorizable_shift): Allow shift-by-induction
25358         for single-lane slp node.
25360 2024-06-29  Maciej W. Rozycki  <macro@orcam.me.uk>
25362         PR rtl-optimization/115565
25363         * cse.cc (record_jump_cond): Use INT_MIN rather than -1 for
25364         `comparison_qty' if !REG_P.
25366 2024-06-29  Sergei Lewis  <slewis@rivosinc.com>
25368         * config/riscv/riscv.md (movmem<mode>): New expander.
25370 2024-06-29  Pan Li  <pan2.li@intel.com>
25372         * match.pd: Add imm form for .SAT_ADD matching.
25373         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
25374         Add .SAT_ADD matching under PLUS_EXPR.
25376 2024-06-29  Jeff Law  <jlaw@ventanamicro.com>
25378         * config/mcore/mcore.md  (zero_extendqihi2): Clobber CC in expander
25379         and matching insn.
25380         (zero_extendqisi2): Likewise.
25382 2024-06-28  Andrew MacLeod  <amacleod@redhat.com>
25384         * gimple-range-cache.cc (ssa_lazy_cache::ssa_lazy_cache): Relocate here.
25385         Check for provided obstack.
25386         (ssa_lazy_cache::~ssa_lazy_cache): Relocate here.  Free bitmap or obstack.
25387         * gimple-range-cache.h (ssa_lazy_cache::ssa_lazy_cache): Move.
25388         (ssa_lazy_cache::~ssa_lazy_cache): Move.
25389         (ssa_lazy_cache::m_ob): New.
25390         * gimple-range.cc (dom_ranger::dom_ranger): Iniitialize obstack.
25391         (dom_ranger::~dom_ranger): Release obstack.
25392         (dom_ranger::pre_bb): Create ssa_lazy_cache using obstack.
25393         * gimple-range.h (m_bitmaps): New.
25395 2024-06-28  Uros Bizjak  <ubizjak@gmail.com>
25397         * config/i386/i386-expand.cc (ix86_expand_move): Remove extra
25398         assignment to tmp variable, reuse tmp variable instead of
25399         declaring new temporary variable and remove tmp variable shadowing.
25401 2024-06-28  Jørgen Kvalsvik  <j@lambda.is>
25403         * tree-profile.cc (find_conditions): Use auto_vec without
25404         embedded storage.
25406 2024-06-28  Richard Biener  <rguenther@suse.de>
25408         PR tree-optimization/115652
25409         * tree-vect-slp.cc (vect_schedule_slp_node): Handle the case
25410         where the outer loop header block is empty.
25412 2024-06-28  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
25414         PR bootstrap/115635
25415         PR target/115643
25416         PR target/115661
25417         * config/aarch64/cygming.h
25418         (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to
25419         PE_COFF_LEGITIMIZE_EXTERN_DECL.
25420         (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
25421         * config/i386/cygming.h (GOT_ALIAS_SET): Remove the diffinition to
25422         reuse it from i386.h.
25423         (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Rename to
25424         PE_COFF_LEGITIMIZE_EXTERN_DECL.
25425         (PE_COFF_LEGITIMIZE_EXTERN_DECL): Likewise.
25426         * config/i386/i386-expand.cc (ix86_expand_move): Return
25427         ix86_GOT_alias_set.
25428         * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise.
25429         * config/i386/i386.cc (ix86_GOT_alias_set): Likewise.
25430         * config/i386/i386.h (GOT_ALIAS_SET): Likewise.
25431         * config/mingw/winnt-dll.cc (get_dllimport_decl): Use
25432         GOT_ALIAS_SET.
25433         (legitimize_pe_coff_symbol): Rename to
25434         PE_COFF_LEGITIMIZE_EXTERN_DECL.
25435         * config/mingw/winnt-dll.h (ix86_GOT_alias_set): Declare
25436         ix86_GOT_alias_set.
25438 2024-06-28  Aldy Hernandez  <aldyh@redhat.com>
25440         * range-op-ptr.cc (class hybrid_and_operator): Remove.
25441         (class hybrid_or_operator): Same.
25442         (class hybrid_min_operator): Same.
25443         (class hybrid_max_operator): Same.
25445 2024-06-28  Richard Biener  <rguenther@suse.de>
25447         PR tree-optimization/115640
25448         * tree-vect-stmts.cc (vectorizable_load): With an inner
25449         loop SLP access to not apply a gap adjustment.
25451 2024-06-28  Andrew Stubbs  <ams@baylibre.com>
25453         PR target/115640
25454         * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Modify RDNA checks.
25456 2024-06-28  Roger Sayle  <roger@nextmovesoftware.com>
25458         * config/i386/i386.md (*concat<mode><dwi>3_3): Change zero_extend
25459         to any_extend in first operand to left shift by mode precision.
25460         (*concat<mode><dwi>3_4): Likewise.
25461         (*concat<mode><dwi>3_6): Likewise.
25463 2024-06-28  Roger Sayle  <roger@nextmovesoftware.com>
25465         * config/i386/i386-expand.cc (ix86_ternlog_idx) <case VEC_DUPLICATE>:
25466         Add a "goto do_mem_operand" as this need not match memory_operand.
25467         <case CONST_VECTOR>: Only args[2] may be volatile memory operand.
25468         Allow MEM/VEC_DUPLICATE/CONST_VECTOR as args[0] and args[1].
25470 2024-06-27  Richard Sandiford  <richard.sandiford@arm.com>
25472         PR rtl-optimization/115677
25473         * late-combine.cc (pass_late_combine::gate): New function.
25475 2024-06-27  Stefan Schulze Frielinghaus  <stefansf@gcc.gnu.org>
25477         PR target/115634
25478         * config/s390/s390.cc (s390_decompose_addrstyle_without_index):
25479         Check for ADDR_REGS in s390_decompose_addrstyle_without_index.
25481 2024-06-27  Richard Biener  <rguenther@suse.de>
25483         PR tree-optimization/115669
25484         * tree-vect-slp.cc (vect_build_slp_tree_2): Do not reassociate
25485         chains that participate in a reduction.
25487 2024-06-27  Aldy Hernandez  <aldyh@redhat.com>
25489         * gimple-range-cache.cc (update_list::update_list): Add m_bitmaps.
25490         (update_list::~update_list): Initialize m_bitmaps.
25491         * gimple-range-cache.h (ssa_lazy_cache): Add m_bitmaps.
25492         * gimple-range.cc (enable_ranger): Remove global bitmap
25493         initialization.
25494         (disable_ranger): Remove global bitmap release.
25496 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
25498         * config/i386/sse.md
25499         (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name>
25500         <round_name>): Refactor the pattern.
25501         (unspec_fix<vcvtt_uns_suffix>_trunc<mode><sselongvecmodelower>2
25502         <mask_name><round_saeonly_name>): Ditto.
25503         (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name>
25504         <round_saeonly_name>): Ditto.
25505         * config/i386/subst.md (round_modev8sf_condition): Remove.
25506         (round_saeonly_modev8sf_condition): Ditto.
25508 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
25510         PR target/107432
25511         * config/i386/i386-expand.cc (ix86_expand_trunc_with_avx2_noavx512f):
25512         New function for generate a series of suitable insn.
25513         * config/i386/i386-protos.h (ix86_expand_trunc_with_avx2_noavx512f):
25514         Define new function.
25515         * config/i386/sse.md: Extend trunc<mode><mode>2 for x86-64-v3.
25516         (ssebytemode) Add V8HI.
25517         (PMOV_DST_MODE_2_AVX2): New mode iterator.
25518         (PMOV_SRC_MODE_3_AVX2): Ditto.
25519         * config/i386/mmx.md
25520         (trunc<mode><mmxhalfmodelower>2): Ditto.
25521         (avx512vl_trunc<mode><mmxhalfmodelower>2): Ditto.
25522         (truncv2si<mode>2): Ditto.
25523         (avx512vl_truncv2si<mode>2): Ditto.
25524         (mmxbytemode): New mode attr.
25526 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
25528         PR target/107432
25529         * config/i386/mmx.md
25530         (VI2_32_64): New mode iterator.
25531         (mmxhalfmode): New mode atter.
25532         (mmxhalfmodelower): Ditto.
25533         (truncv2hiv2qi2): Extend mode v4hi and change name from
25534         truncv2hiv2qi to trunc<mode><mmxhalfmodelower>2.
25536 2024-06-27  Hu, Lin1  <lin1.hu@intel.com>
25538         PR target/107432
25539         * tree-vect-generic.cc
25540         (expand_vector_conversion): Support convert for int -> int,
25541         float -> float and int <-> float.
25542         * tree-vect-stmts.cc (vectorizable_conversion): Wrap the
25543         indirect convert part.
25544         (supportable_indirect_convert_operation): New function.
25545         * tree-vectorizer.h (supportable_indirect_convert_operation):
25546         Define the new function.
25548 2024-06-27  Xi Ruoyao  <xry111@xry111.site>
25550         * config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
25551         Dedup and sort the comment describing modifiers.
25553 2024-06-27  Xi Ruoyao  <xry111@xry111.site>
25555         * config/loongarch/loongarch.cc:
25556         (loongarch_use_bstrins_for_ior_with_mask): Split the main logic
25557         into ...
25558         (loongarch_use_bstrins_for_ior_with_mask_1): ... here.
25559         (loongarch_rtx_costs): Special case for IOR those can be
25560         implemented with bstrins.
25562 2024-06-27  liuhongt  <hongtao.liu@intel.com>
25564         PR target/115462
25565         * config/i386/i386.cc (ix86_rtx_costs): Make cost of MEM (reg +
25566         disp) just a little bit more than MEM (reg).
25568 2024-06-27  Pan Li  <pan2.li@intel.com>
25570         * internal-fn.def (SAT_TRUNC): Add new signed IFN sat_trunc as
25571         unary_convert.
25572         * match.pd: Add new matching pattern for unsigned int sat_trunc.
25573         * optabs.def (OPTAB_CL): Add unsigned and signed optab.
25574         * tree-ssa-math-opts.cc (gimple_unsigend_integer_sat_trunc): Add
25575         new decl for the matching pattern generated func.
25576         (match_unsigned_saturation_trunc): Add new func impl to match
25577         the .SAT_TRUNC.
25578         (math_opts_dom_walker::after_dom_children): Add .SAT_TRUNC match
25579         function under BIT_IOR_EXPR case.
25581 2024-06-27  Pan Li  <pan2.li@intel.com>
25583         * match.pd: Add convert description for minus and capture.
25584         * tree-vect-patterns.cc (vect_recog_build_binary_gimple_call): Add
25585         new logic to handle in_type is incompatibile with out_type,  as
25586         well as rename from.
25587         (vect_recog_build_binary_gimple_stmt): Rename to.
25588         (vect_recog_sat_add_pattern): Leverage above renamed func.
25589         (vect_recog_sat_sub_pattern): Ditto.
25591 2024-06-27  Richard Biener  <rguenther@suse.de>
25593         PR tree-optimization/115652
25594         * tree-vect-slp.cc (vect_schedule_slp_node): Only insert
25595         at the start of the block if that strictly dominates
25596         the discovered dependent stmt.
25598 2024-06-27  Richard Biener  <rguenther@suse.de>
25600         PR tree-optimization/115493
25601         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use
25602         first scalar result.
25604 2024-06-26  Richard Biener  <rguenther@suse.de>
25606         PR tree-optimization/115629
25607         * tree-ssa-tail-merge.cc (gimple_equal_p): Handle
25608         memory references better.
25609         (deps_ok_for_redirect): Handle the case not both blocks
25610         are considered a valid prevailing block.
25612 2024-06-26  Richard Biener  <rguenther@suse.de>
25614         PR tree-optimization/115652
25615         * tree-vect-slp.cc (vect_schedule_slp_node): Advance the
25616         iterator based on last_stmt only for vector defs.
25618 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
25620         * gcov-io.h (GCOV_ARC_TRUE): New.
25621         (GCOV_ARC_FALSE): New.
25622         * gcov.cc (struct arc_info): Add true_value, false_value.
25623         (read_graph_file): Read true_value, false_value.
25624         * profile.cc (branch_prob): Write GCOV_ARC_TRUE, GCOV_ARC_FALSE.
25626 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
25628         * gcov.cc (print_usage): Reference masking MC/DC.
25630 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
25632         * doc/gcov.texi: Add MC/DC section.
25634 2024-06-26  Jørgen Kvalsvik  <j@lambda.is>
25636         * tree-profile.cc (find_conditions): Use auto_vec.
25638 2024-06-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>
25640         * config/arm/arm.cc (arm_predict_doloop_p): Reject loops with function
25641         calls that are not builtins.
25643 2024-06-26  Kyrylo Tkachov  <ktkachov@nvidia.com>
25645         * config/aarch64/aarch64-cores.def (grace): New entry.
25646         * config/aarch64/aarch64-tune.md: Regenerate.
25647         * doc/invoke.texi (AArch64 Options): Document the above.
25649 2024-06-26  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
25651         * config/i386/i386.cc (legitimize_dllimport_symbol): Remove unused
25652         functions.
25653         (legitimize_pe_coff_extern_decl): Likewise.
25655 2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
25656             Xionghu Luo  <xionghuluo@tencent.com>
25658         PR target/106069
25659         PR target/115355
25660         * config/rs6000/altivec.md (altivec_vmrghh_direct): Rename to ...
25661         (altivec_vmrghh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
25662         (altivec_vmrghh_direct_le): New define_insn.
25663         (altivec_vmrglh_direct): Rename to ...
25664         (altivec_vmrglh_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
25665         (altivec_vmrglh_direct_le): New define_insn.
25666         (altivec_vmrghh): Adjust by calling gen_altivec_vmrghh_direct_be
25667         for BE and gen_altivec_vmrglh_direct_le for LE.
25668         (altivec_vmrglh): Adjust by calling gen_altivec_vmrglh_direct_be
25669         for BE and gen_altivec_vmrghh_direct_le for LE.
25670         (vec_widen_umult_hi_v16qi): Adjust the call to
25671         gen_altivec_vmrghh_direct by gen_altivec_vmrghh for BE
25672         and by gen_altivec_vmrglh for LE.
25673         (vec_widen_smult_hi_v16qi): Likewise.
25674         (vec_widen_umult_lo_v16qi): Adjust the call to
25675         gen_altivec_vmrglh_direct by gen_altivec_vmrglh for BE
25676         and by gen_altivec_vmrghh for LE.
25677         (vec_widen_smult_lo_v16qi): Likewise.
25678         * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
25679         CODE_FOR_altivec_vmrghh_direct by
25680         CODE_FOR_altivec_vmrghh_direct_be for BE and
25681         CODE_FOR_altivec_vmrghh_direct_le for LE.  And replace
25682         CODE_FOR_altivec_vmrglh_direct by
25683         CODE_FOR_altivec_vmrglh_direct_be for BE and
25684         CODE_FOR_altivec_vmrglh_direct_le for LE.
25686 2024-06-26  Kewen Lin  <linkw@linux.ibm.com>
25687             Xionghu Luo  <xionghuluo@tencent.com>
25689         PR target/106069
25690         PR target/115355
25691         * config/rs6000/altivec.md (altivec_vmrghb_direct): Rename to ...
25692         (altivec_vmrghb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
25693         (altivec_vmrghb_direct_le): New define_insn.
25694         (altivec_vmrglb_direct): Rename to ...
25695         (altivec_vmrglb_direct_be): ... this.  Add condition BYTES_BIG_ENDIAN.
25696         (altivec_vmrglb_direct_le): New define_insn.
25697         (altivec_vmrghb): Adjust by calling gen_altivec_vmrghb_direct_be
25698         for BE and gen_altivec_vmrglb_direct_le for LE.
25699         (altivec_vmrglb): Adjust by calling gen_altivec_vmrglb_direct_be
25700         for BE and gen_altivec_vmrghb_direct_le for LE.
25701         * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
25702         CODE_FOR_altivec_vmrghb_direct by
25703         CODE_FOR_altivec_vmrghb_direct_be for BE and
25704         CODE_FOR_altivec_vmrghb_direct_le for LE.  And replace
25705         CODE_FOR_altivec_vmrglb_direct by
25706         CODE_FOR_altivec_vmrglb_direct_be for BE and
25707         CODE_FOR_altivec_vmrglb_direct_le for LE.
25709 2024-06-26  Richard Biener  <rguenther@suse.de>
25711         PR tree-optimization/115646
25712         * tree-call-cdce.cc (check_pow): Check for bit_sz values
25713         as allowed by transform.
25715 2024-06-26  Haochen Gui  <guihaoc@gcc.gnu.org>
25717         * builtins.cc (interclass_mathfn_icode): Set optab to isnormal_optab
25718         for isnormal builtin.
25719         * optabs.def (isnormal_optab): New.
25720         * doc/md.texi (isnormal): Document.
25722 2024-06-26  Haochen Gui  <guihaoc@gcc.gnu.org>
25724         * builtins.cc (interclass_mathfn_icode): Set optab to isfinite_optab
25725         for isfinite builtin.
25726         * optabs.def (isfinite_optab): New.
25727         * doc/md.texi (isfinite): Document.
25729 2024-06-26  liuhongt  <hongtao.liu@intel.com>
25731         PR target/114189
25732         * match.pd: Simplify a < 0 ? -1 : 0 to (signed) >> 31 and a <
25733         0 ? 1 : 0 to (unsigned) a >> 31 for vector integer type.
25735 2024-06-26  Mark Harmstone  <mark@harmstone.com>
25737         * dwarf2codeview.cc (struct codeview_custom_type): Add lf_procedure
25738         and lf_arglist to union.
25739         (write_lf_procedure, write_lf_arglist): New functions.
25740         (write_custom_types): Call write_lf_procedure and write_lf_arglist.
25741         (get_type_num_subroutine_type): New function.
25742         (get_type_num): Handle DW_TAG_subroutine_type DIEs.
25743         * dwarf2codeview.h (LF_PROCEDURE, LF_ARGLIST): Define.
25745 2024-06-26  Mark Harmstone  <mark@harmstone.com>
25747         * dwarf2codeview.cc (struct codeview_custom_type): Add lf_bitfield to
25748         union.
25749         (write_lf_bitfield): New function.
25750         (write_custom_types): Call write_lf_bitfield.
25751         (create_bitfield): New function.
25752         (get_type_num_struct): Handle bitfields.
25753         * dwarf2codeview.h (LF_BITFIELD): Define.
25755 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
25757         * Makefile.in (OBJS-libcommon): Add diagnostic-global-context.o.
25758         * diagnostic-global-context.cc: New file, taken from material in
25759         diagnostic.cc.
25760         * diagnostic.cc (global_diagnostic_context): Move to
25761         diagnostic-global-context.cc.
25762         (global_dc): Likewise.
25763         (verbatim): Likewise.
25764         (emit_diagnostic): Likewise.
25765         (emit_diagnostic_valist): Likewise.
25766         (emit_diagnostic_valist_meta): Likewise.
25767         (inform): Likewise.
25768         (inform_n): Likewise.
25769         (warning): Likewise.
25770         (warning_at): Likewise.
25771         (warning_meta): Likewise.
25772         (warning_n): Likewise.
25773         (pedwarn): Likewise.
25774         (permerror): Likewise.
25775         (permerror_opt): Likewise.
25776         (error): Likewise.
25777         (error_n): Likewise.
25778         (error_at): Likewise.
25779         (error_meta): Likewise.
25780         (sorry): Likewise.
25781         (sorry_at): Likewise.
25782         (seen_error): Likewise.
25783         (fatal_error): Likewise.
25784         (internal_error): Likewise.
25785         (internal_error_no_backtrace): Likewise.
25786         (fnotice): Likewise.
25787         (auto_diagnostic_group::auto_diagnostic_group): Likewise.
25788         (auto_diagnostic_group::~auto_diagnostic_group): Likewise.
25790 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
25792         * diagnostic-path.cc (class path_label): Add m_path field,
25793         and use it to replace all uses of global_dc.
25794         (event_range::event_range): Add "ctxt" param and use it to
25795         construct m_path_label.
25796         (event_range::maybe_add_event): Add "ctxt" param and pass it to
25797         gcc_rich_location::add_location_if_nearby.
25798         (path_summary::path_summary): Add "ctxt" param and pass it to
25799         event_range::maybe_add_event.
25800         (diagnostic_context::print_path): Pass *this to path_summary ctor.
25801         (selftest::test_empty_path): Use "dc" when constructing
25802         path_summary rather than implicitly using global_dc.
25803         (selftest::test_intraprocedural_path): Likewise.
25804         (selftest::test_interprocedural_path_1): Likewise.
25805         (selftest::test_interprocedural_path_2): Likewise.
25806         (selftest::test_recursion): Likewise.
25807         (selftest::test_control_flow_1): Likewise.
25808         (selftest::test_control_flow_2): Likewise.
25809         (selftest::test_control_flow_3): Likewise.
25810         (selftest::assert_cfg_edge_path_streq): Likewise.
25811         (selftest::test_control_flow_5): Likewise.
25812         (selftest::test_control_flow_6): Likewise.
25813         (selftest::diagnostic_path_cc_tests): Eliminate use of global_dc.
25814         * diagnostic-show-locus.cc
25815         (gcc_rich_location::add_location_if_nearby): Add "ctxt" param and
25816         use it instead of implicitly using global_dc.
25817         (selftest::test_add_location_if_nearby): Use
25818         test_diagnostic_context rather than implicitly using global_dc.
25819         * diagnostic.cc (pedantic_warning_kind): Delete macro.
25820         (permissive_error_kind): Delete macro.
25821         (permissive_error_option): Delete macro.
25822         (diagnostic_context::diagnostic_enabled): Remove use of
25823         permissive_error_option.
25824         (diagnostic_context::report_diagnostic): Remove use of
25825         pedantic_warning_kind.
25826         (diagnostic_impl): Convert to...
25827         (diagnostic_context::diagnostic_impl): ...this.
25828         (diagnostic_n_impl): Convert to...
25829         (diagnostic_context::diagnostic_n_impl): ...this.
25830         (emit_diagnostic): Explicitly use global_dc for method call.
25831         (emit_diagnostic_valist): Likewise.
25832         (emit_diagnostic_valist_meta): Likewise.
25833         (inform): Likewise.
25834         (inform_n): Likewise.
25835         (warning): Likewise.
25836         (warning_at): Likewise.
25837         (warning_meta): Likewise.
25838         (warning_n): Likewise.
25839         (pedwarn): Likewise.
25840         (permerror): Likewise.
25841         (permerror_opt): Likewise.
25842         (error): Likewise.
25843         (error_n): Likewise.
25844         (error_at): Likewise.
25845         (error_meta): Likewise.
25846         (sorry): Likewise.
25847         (sorry_at): Likewise.
25848         (fatal_error): Likewise.
25849         (internal_error): Likewise.
25850         (internal_error_no_backtrace): Likewise.
25851         * diagnostic.h (diagnostic_context::diagnostic_impl): New decl.
25852         (diagnostic_context::diagnostic_n_impl): New decl.
25853         * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby):
25854         Add "ctxt" param.
25856 2024-06-26  David Malcolm  <dmalcolm@redhat.com>
25858         PR testsuite/109360
25859         * doc/install.texi (Python3 modules): Update SARIF validation
25860         requirement to use check-jsonschema rather than jsonschema.
25862 2024-06-25  Mark Harmstone  <mark@harmstone.com>
25864         * dwarf2codeview.cc (struct codeview_custom_type): Add lf_array to
25865         union.
25866         (write_lf_array): New function.
25867         (write_custom_types): Call write_lf_array.
25868         (get_type_num_array_type): New function.
25869         (get_type_num): Handle DW_TAG_array_type DIEs.
25870         * dwarf2codeview.h (LF_ARRAY): Define.
25872 2024-06-25  Mark Harmstone  <mark@harmstone.com>
25874         * dwarf2codeview.cc (write_lf_union): New function.
25875         (write_custom_types): Call write_lf_union.
25876         (add_struct_forward_def): Handle DW_TAG_union_type DIEs.
25877         (get_type_num_struct): Handle unions.
25878         (get_type_num): Handle DW_TAG_union_type DIEs.
25879         * dwarf2codeview.h (LF_UNION): Define.
25881 2024-06-25  Sergei Lewis  <slewis@rivosinc.com>
25883         * config/riscv/riscv-protos.h (riscv_vector::expand_vec_cmpmem): New
25884         function declaration.
25885         * config/riscv/riscv-string.cc (riscv_vector::expand_vec_cmpmem): New
25886         function.
25887         * config/riscv/riscv.md (cmpmemsi): Try riscv_vector::expand_vec_cmpmem
25888         for constant lengths.
25890 2024-06-25  Andrew MacLeod  <amacleod@redhat.com>
25892         * doc/invoke.texi (vrp-block-limit): Document.
25893         * params.opt (param=vrp-block-limit): New.
25894         * tree-vrp.cc (fvrp_folder::execute): Invoke fast_vrp if block
25895         count exceeds limit.
25897 2024-06-25  Surya Kumari Jangala  <jskumari@linux.ibm.com>
25899         PR rtl-optimization/111673
25900         * ira-color.cc (assign_hard_reg): Scale save/restore costs of
25901         callee save registers with block frequency.
25903 2024-06-25  Jeff Law  <jlaw@ventanamicro.com>
25905         * config/fr30/constraints.md (Q): Remove unused constraint.
25906         * config/fr30/predicates.md (call_operand): Remove unused predicate.
25907         * config/fr30/fr30.md (call, vall_value): Turn into expanders and
25908         force the call address into a register.
25909         (*call, *call_value): Adjust to only allow indirect calls.  Adjust
25910         output template accordingly.
25912 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
25914         * late-combine.cc (insn_combination::substitute_nondebug_use):
25915         Reject second and subsequent uses if targetm.cannot_copy_insn_p
25916         disallows copying.
25918 2024-06-25  Richard Biener  <rguenther@suse.de>
25920         * gimple-range-gori.cc (gori_compute::may_recompute_p):
25921         Call is_export_p with NULL bb.
25923 2024-06-25  Xi Ruoyao  <xry111@xry111.site>
25925         * doc/rtl.texi (jump_table_data): Fix typos.
25927 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
25929         * dbgcnt.def (late_combine): New debug counter.
25930         * late-combine.cc (insn_combination::run): Use it.
25932 2024-06-25  Eric Botcazou  <ebotcazou@adacore.com>
25934         PR target/115608
25935         * config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus.
25937 2024-06-25  Thomas Schwinge  <tschwinge@baylibre.com>
25939         PR target/106594
25940         PR target/115622
25941         PR target/115633
25942         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move
25943         default-disable of late-combine passes from here...
25944         (rs6000_override_options_after_change): ... to here.
25946 2024-06-25  Richard Sandiford  <richard.sandiford@arm.com>
25948         * expmed.cc (store_bit_field_using_insv): Revert earlier change
25949         to use force_subreg instead of simplify_gen_subreg.
25951 2024-06-25  YunQiang Su  <syq@gcc.gnu.org>
25953         * config/mips/mips.cc(mips_expand_vec_cond_expr): Add extra
25954         argument to info that opernads[3] is cmp_res already.
25955         * config/mips/mips-protos.h(mips_expand_vec_cond_expr): Ditto.
25956         * config/mips/mips-msa.md(vcond_mask): Define new expand.
25957         (vcondu): Use mips_expand_vec_cond_expr with 4th argument.
25958         (vcond): Ditto.
25960 2024-06-25  YunQiang Su  <syq@gcc.gnu.org>
25962         * config/mips/mips.md(conditional_trap_reg): Output $0 instead
25963         of 0 if !ISA_HAS_COND_TRAPI.
25965 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
25967         * config.gcc: Add winnt-dll.o, which contains the DLL
25968         import/export implementation.
25969         * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately):
25970         Add dllimport implementation.
25971         (aarch64_expand_call): Likewise.
25972         (aarch64_legitimize_address): Likewise.
25973         * config/aarch64/cygming.h (SYMBOL_FLAG_DLLIMPORT): Modify MinGW
25974         environment to support DLL import/export.
25975         (SYMBOL_FLAG_DLLEXPORT): Likewise.
25976         (SYMBOL_REF_DLLIMPORT_P): Likewise.
25977         (SYMBOL_FLAG_STUBVAR): Likewise.
25978         (SYMBOL_REF_STUBVAR_P): Likewise.
25979         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise.
25980         (TARGET_ASM_FILE_END): Likewise.
25981         (SUB_TARGET_RECORD_STUB): Likewise.
25982         (GOT_ALIAS_SET): Likewise.
25983         (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Likewise.
25984         (HAVE_64BIT_POINTERS): Likewise.
25986 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
25988         * config/i386/cygming.h
25989         (PE_COFF_EXTERN_DECL_SHOULD_BE_LEGITIMIZED): Declare whether an
25990         external declaration should be legitimized.
25991         (HAVE_64BIT_POINTERS): Define whether the target supports 64-bit
25992         pointers.
25993         * config/mingw/mingw32.h (defined): Use the correct
25994         DllMainCRTStartup entry function.
25995         * config/mingw/winnt-dll.cc (defined): Exclude ix86-related code.
25997 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
25999         * config/aarch64/aarch64.cc: Extend the aarch64 attributes list.
26000         * config/aarch64/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define the
26001         selectany attribute.
26003 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
26005         * config/i386/cygming.h (mingw_pe_record_stub): Rename functions
26006         in mingw folder which will be reused for aarch64.
26007         (TARGET_ASM_FILE_END): Update to new target-independent name.
26008         (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
26009         (TARGET_VALID_DLLIMPORT_ATTRIBUTE_P): Likewise.
26010         (SUB_TARGET_RECORD_STUB): Likewise.
26011         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
26012         Likewise.
26013         (mingw_handle_selectany_attribute): Likewise.
26014         (i386_pe_valid_dllimport_attribute_p): Likewise.
26015         (mingw_pe_valid_dllimport_attribute_p): Likewise.
26016         (i386_pe_file_end): Likewise.
26017         (mingw_pe_file_end): Likewise.
26018         (i386_pe_record_stub): Likewise.
26019         (mingw_pe_record_stub): Likewise.
26020         * config/mingw/winnt.cc (ix86_handle_selectany_attribute):
26021         Likewise.
26022         (mingw_handle_selectany_attribute): Likewise.
26023         (i386_pe_valid_dllimport_attribute_p): Likewise.
26024         (mingw_pe_valid_dllimport_attribute_p): Likewise.
26025         (i386_pe_record_stub): Likewise.
26026         (mingw_pe_record_stub): Likewise.
26027         (i386_pe_file_end): Likewise.
26028         (mingw_pe_file_end): Likewise.
26029         * config/mingw/winnt.h (mingw_handle_selectany_attribute): Declate
26030         functionality that will be reused by multiple targets.
26031         (mingw_pe_file_end): Likewise.
26032         (mingw_pe_record_stub): Likewise.
26033         (mingw_pe_valid_dllimport_attribute_p): Likewise.
26035 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
26037         * config.gcc: Add winnt-dll.o, which contains the DLL
26038         import/export implementation.
26039         * config/i386/cygming.h (SUB_TARGET_RECORD_STUB): Remove the
26040         old implementation. Rename the required function to MinGW.
26041         Use MinGW implementation for COFF and nothing otherwise.
26042         (GOT_ALIAS_SET): Likewise.
26043         * config/i386/i386-expand.cc (ix86_expand_move): Likewise.
26044         * config/i386/i386-expand.h (ix86_GOT_alias_set): Likewise.
26045         (legitimize_pe_coff_symbol): Likewise.
26046         * config/i386/i386-protos.h (i386_pe_record_stub): Likewise.
26047         * config/i386/i386.cc (is_imported_p): Likewise.
26048         (legitimate_pic_address_disp_p): Likewise.
26049         (ix86_GOT_alias_set): Likewise.
26050         (legitimize_pic_address): Likewise.
26051         (legitimize_tls_address): Likewise.
26052         (struct dllimport_hasher): Likewise.
26053         (GTY): Likewise.
26054         (get_dllimport_decl): Likewise.
26055         (legitimize_pe_coff_extern_decl): Likewise.
26056         (legitimize_dllimport_symbol): Likewise.
26057         (legitimize_pe_coff_symbol): Likewise.
26058         (ix86_legitimize_address): Likewise.
26059         * config/i386/i386.h (GOT_ALIAS_SET): Likewise.
26060         * config/mingw/winnt.cc (i386_pe_record_stub): Likewise.
26061         (mingw_pe_record_stub): Likewise.
26062         * config/mingw/winnt.h (mingw_pe_record_stub): Likewise.
26063         * config/mingw/t-cygming: Add the winnt-dll.o compilation.
26064         * config/mingw/winnt-dll.cc: New file.
26065         * config/mingw/winnt-dll.h: New file.
26067 2024-06-25  Evgeny Karpov  <Evgeny.Karpov@microsoft.com>
26069         * config.gcc: Move mingw_* declations to mingw.
26070         * config/aarch64/aarch64-protos.h
26071         (mingw_pe_maybe_record_exported_symbol): Likewise.
26072         (mingw_pe_section_type_flags): Likewise.
26073         (mingw_pe_unique_section): Likewise.
26074         (mingw_pe_encode_section_info): Likewise.
26075         * config/aarch64/cygming.h
26076         (mingw_pe_asm_named_section): Likewise.
26077         (mingw_pe_declare_function_type): Likewise.
26078         * config/i386/i386-protos.h
26079         (mingw_pe_unique_section): Likewise.
26080         (mingw_pe_declare_function_type): Likewise.
26081         (mingw_pe_maybe_record_exported_symbol): Likewise.
26082         (mingw_pe_encode_section_info): Likewise.
26083         (mingw_pe_section_type_flags): Likewise.
26084         (mingw_pe_asm_named_section): Likewise.
26085         * config/mingw/winnt.h: New file.
26087 2024-06-25  Mark Harmstone  <mark@harmstone.com>
26089         * dwarf2codeview.cc (struct codeview_type): Add is_fwd_ref member.
26090         (struct codeview_subtype): Add lf_member to union.
26091         (struct codeview_custom_type): Add lf_structure to union.
26092         (struct codeview_deferred_type): New structure.
26093         (deferred_types, last_deferred_type): New variables.
26094         (get_type_num): Add new args to prototype.
26095         (write_lf_fieldlist): Handle LF_MEMBER subtypes.
26096         (write_lf_structure): New function.
26097         (write_custom_types): Call write_lf_structure.
26098         (get_type_num_pointer_type): Add in_struct argument.
26099         (get_type_num_const_type): Likewise.
26100         (get_type_num_volatile_type): Likewise.
26101         (add_enum_forward_def): Fix get_type_num call.
26102         (get_type_num_enumeration_type): Add in-struct argument.
26103         (add_deferred_type, flush_deferred_types): New functions.
26104         (add_struct_forward_def, get_type_num_struct): Likewise.
26105         (get_type_num): Handle self-referential structs.
26106         (add_variable): Fix get_type_num call.
26107         (codeview_debug_early_finish): Call flush_deferred_types.
26108         * dwarf2codeview.h (LF_CLASS, LF_STRUCTURE, LF_MEMBER): Define.
26110 2024-06-25  Kewen Lin  <linkw@linux.ibm.com>
26112         * coretypes.h (enum tree_index): Forward declaration.
26113         * defaults.h (FLOAT_TYPE_SIZE): Remove.
26114         (DOUBLE_TYPE_SIZE): Likewise.
26115         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26116         * doc/rtl.texi: Update document by replacing {FLOAT,DOUBLE}_TYPE_SIZE
26117         with C type {float,double}.
26118         * doc/tm.texi.in: Document new hook mode_for_floating_type, remove
26119         document entries for {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE and
26120         update document for WIDEST_HARDWARE_FP_SIZE.
26121         * doc/tm.texi: Regenerate.
26122         * emit-rtl.cc (init_emit_once): Replace DOUBLE_TYPE_SIZE by
26123         calling targetm.c.mode_for_floating_type with TI_DOUBLE_TYPE.
26124         * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Use TYPE_PRECISION of
26125         long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
26126         * system.h (FLOAT_TYPE_SIZE): Poison.
26127         (DOUBLE_TYPE_SIZE): Likewise.
26128         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26129         * target.def (mode_for_floating_type): New hook.
26130         * targhooks.cc (default_mode_for_floating_type): New function.
26131         (default_scalar_mode_supported_p): Update macros
26132         {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling
26133         targetm.c.mode_for_floating_type with
26134         TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE.
26135         * targhooks.h (default_mode_for_floating_type): New declaration.
26136         * tree-core.h (enum tree_index): Specify underlying type unsigned
26137         to sync with forward declaration in coretypes.h.
26138         (NUM_FLOATN_TYPES): Explicitly convert to int.
26139         (NUM_FLOATNX_TYPES): Likewise.
26140         (NUM_FLOATN_NX_TYPES): Likewise.
26141         * tree.cc (build_common_tree_nodes): Update macros
26142         {FLOAT,DOUBLE,LONG_DOUBLE}_TYPE_SIZE by calling
26143         targetm.c.mode_for_floating_type with
26144         TI_{FLOAT,DOUBLE,LONG_DOUBLE}_TYPE and set type mode accordingly.
26145         * config/arc/arc.h (FLOAT_TYPE_SIZE): Remove.
26146         (DOUBLE_TYPE_SIZE): Likewise.
26147         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26148         * config/bpf/bpf.h (FLOAT_TYPE_SIZE): Remove.
26149         (DOUBLE_TYPE_SIZE): Likewise.
26150         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26151         * config/epiphany/epiphany.h (FLOAT_TYPE_SIZE): Remove.
26152         (DOUBLE_TYPE_SIZE): Likewise.
26153         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26154         * config/fr30/fr30.h (FLOAT_TYPE_SIZE): Remove.
26155         (DOUBLE_TYPE_SIZE): Likewise.
26156         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26157         * config/frv/frv.h (FLOAT_TYPE_SIZE): Remove.
26158         (DOUBLE_TYPE_SIZE): Likewise.
26159         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26160         * config/ft32/ft32.h (FLOAT_TYPE_SIZE): Remove.
26161         (DOUBLE_TYPE_SIZE): Likewise.
26162         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26163         * config/gcn/gcn.h (FLOAT_TYPE_SIZE): Remove.
26164         (DOUBLE_TYPE_SIZE): Likewise.
26165         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26166         * config/iq2000/iq2000.h (FLOAT_TYPE_SIZE): Remove.
26167         (DOUBLE_TYPE_SIZE): Likewise.
26168         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26169         * config/lm32/lm32.h (FLOAT_TYPE_SIZE): Remove.
26170         (DOUBLE_TYPE_SIZE): Likewise.
26171         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26172         * config/m32c/m32c.h (FLOAT_TYPE_SIZE): Remove.
26173         (DOUBLE_TYPE_SIZE): Likewise.
26174         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26175         * config/m32r/m32r.h (FLOAT_TYPE_SIZE): Remove.
26176         (DOUBLE_TYPE_SIZE): Likewise.
26177         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26178         * config/microblaze/microblaze.h (FLOAT_TYPE_SIZE): Remove.
26179         (DOUBLE_TYPE_SIZE): Likewise.
26180         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26181         * config/mmix/mmix.h (FLOAT_TYPE_SIZE): Remove.
26182         (DOUBLE_TYPE_SIZE): Likewise.
26183         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26184         * config/moxie/moxie.h (FLOAT_TYPE_SIZE): Remove.
26185         (DOUBLE_TYPE_SIZE): Likewise.
26186         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26187         * config/msp430/msp430.h (FLOAT_TYPE_SIZE): Remove.
26188         (DOUBLE_TYPE_SIZE): Likewise.
26189         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26190         * config/nds32/nds32.h (FLOAT_TYPE_SIZE): Remove.
26191         (DOUBLE_TYPE_SIZE): Likewise.
26192         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26193         * config/nios2/nios2.h (FLOAT_TYPE_SIZE): Remove.
26194         (DOUBLE_TYPE_SIZE): Likewise.
26195         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26196         * config/nvptx/nvptx.h (FLOAT_TYPE_SIZE): Remove.
26197         (DOUBLE_TYPE_SIZE): Likewise.
26198         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26199         * config/or1k/or1k.h (FLOAT_TYPE_SIZE): Remove.
26200         (DOUBLE_TYPE_SIZE): Likewise.
26201         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26202         * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Remove.
26203         (DOUBLE_TYPE_SIZE): Likewise.
26204         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26205         * config/pru/pru.h (FLOAT_TYPE_SIZE): Remove.
26206         (DOUBLE_TYPE_SIZE): Likewise.
26207         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26208         * config/stormy16/stormy16.h (FLOAT_TYPE_SIZE): Remove.
26209         (DOUBLE_TYPE_SIZE): Likewise.
26210         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26211         * config/visium/visium.h (FLOAT_TYPE_SIZE): Remove.
26212         (DOUBLE_TYPE_SIZE): Likewise.
26213         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26214         * config/xtensa/xtensa.h (FLOAT_TYPE_SIZE): Remove.
26215         (DOUBLE_TYPE_SIZE): Likewise.
26216         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26217         * config/rs6000/rs6000.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26218         (rs6000_c_mode_for_floating_type): New function.
26219         * config/rs6000/rs6000.h (FLOAT_TYPE_SIZE): Remove.
26220         (DOUBLE_TYPE_SIZE): Likewise.
26221         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26222         * config/aarch64/aarch64.cc (aarch64_c_mode_for_floating_type):
26223         New function.
26224         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26225         * config/aarch64/aarch64.h (FLOAT_TYPE_SIZE): Remove.
26226         (DOUBLE_TYPE_SIZE): Likewise.
26227         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26228         * config/alpha/alpha.cc (alpha_c_mode_for_floating_type): New
26229         function.
26230         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26231         * config/alpha/alpha.h (FLOAT_TYPE_SIZE): Remove.
26232         (DOUBLE_TYPE_SIZE): Likewise.
26233         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26234         * config/avr/avr.cc (avr_c_mode_for_floating_type): New
26235         function.
26236         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26237         * config/avr/avr.h (FLOAT_TYPE_SIZE): Remove.
26238         (DOUBLE_TYPE_SIZE): Likewise.
26239         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26240         * config/i386/i386.cc (ix86_c_mode_for_floating_type): New
26241         function.
26242         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26243         * config/i386/i386.h (FLOAT_TYPE_SIZE): Remove.
26244         (DOUBLE_TYPE_SIZE): Likewise.
26245         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26246         * config/ia64/ia64.cc (ia64_c_mode_for_floating_type): New
26247         function.
26248         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26249         * config/ia64/ia64.h (FLOAT_TYPE_SIZE): Remove.
26250         (DOUBLE_TYPE_SIZE): Likewise.
26251         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26252         * config/riscv/riscv.cc (riscv_c_mode_for_floating_type): New function.
26253         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26254         * config/riscv/riscv.h (FLOAT_TYPE_SIZE): Remove.
26255         (DOUBLE_TYPE_SIZE): Likewise.
26256         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26257         * config/rl78/rl78.cc (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26258         (rl78_c_mode_for_floating_type): New function.
26259         * config/rl78/rl78.h (FLOAT_TYPE_SIZE): Remove.
26260         (DOUBLE_TYPE_SIZE): Likewise.
26261         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26262         * config/rx/rx.cc (rx_c_mode_for_floating_type): New function.
26263         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26264         * config/rx/rx.h (FLOAT_TYPE_SIZE): Remove.
26265         (DOUBLE_TYPE_SIZE): Likewise.
26266         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26267         * config/s390/s390.cc (s390_c_mode_for_floating_type): New function.
26268         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26269         * config/s390/s390.h (FLOAT_TYPE_SIZE): Remove.
26270         (DOUBLE_TYPE_SIZE): Likewise.
26271         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26272         * config/sh/sh.cc (sh_c_mode_for_floating_type): New function.
26273         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26274         * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Remove.
26275         * config/h8300/h8300.cc (h8300_c_mode_for_floating_type): New
26276         function.
26277         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26278         * config/h8300/h8300.h (FLOAT_TYPE_SIZE): Remove.
26279         (DOUBLE_TYPE_SIZE): Remove.
26280         (LONG_DOUBLE_TYPE_SIZE): Remove.
26281         (DOUBLE_TYPE_MODE): New macro.
26282         * config/h8300/linux.h (DOUBLE_TYPE_SIZE): Remove.
26283         (DOUBLE_TYPE_MODE): New macro.
26284         * config/loongarch/loongarch.cc (loongarch_c_mode_for_floating_type):
26285         New function.
26286         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26287         * config/loongarch/loongarch.h (FLOAT_TYPE_SIZE): Remove.
26288         (DOUBLE_TYPE_SIZE): Remove.
26289         (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26290         (LA_LONG_DOUBLE_TYPE_SIZE): ... this.
26291         (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE with
26292         LA_LONG_DOUBLE_TYPE_SIZE.
26293         (MAX_FIXED_MODE_SIZE): Likewise.
26294         (STRUCTURE_SIZE_BOUNDARY): Likewise.
26295         (BIGGEST_ALIGNMENT): Likewise.
26296         * config/m68k/m68k.cc (m68k_c_mode_for_floating_type): New function.
26297         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26298         * config/m68k/m68k.h (LONG_DOUBLE_TYPE_SIZE): Remove.
26299         (LONG_DOUBLE_TYPE_MODE): New macro.
26300         * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Remove.
26301         (LONG_DOUBLE_TYPE_MODE): New macro.
26302         * config/mips/mips.cc (mips_c_mode_for_floating_type): New function.
26303         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26304         * config/mips/mips.h (UNITS_PER_FPVALUE): Replace LONG_DOUBLE_TYPE_SIZE
26305         with MIPS_LONG_DOUBLE_TYPE_SIZE.
26306         (MAX_FIXED_MODE_SIZE): Likewise.
26307         (STRUCTURE_SIZE_BOUNDARY): Likewise.
26308         (BIGGEST_ALIGNMENT): Likewise.
26309         (FLOAT_TYPE_SIZE): Remove.
26310         (DOUBLE_TYPE_SIZE): Remove.
26311         (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26312         (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this.
26313         * config/mips/n32-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26314         (MIPS_LONG_DOUBLE_TYPE_SIZE): ... this.
26315         * config/pa/pa.cc (pa_c_mode_for_floating_type): New function.
26316         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26317         (pa_scalar_mode_supported_p): Rename FLOAT_TYPE_SIZE to
26318         PA_FLOAT_TYPE_SIZE, rename DOUBLE_TYPE_SIZE to PA_DOUBLE_TYPE_SIZE
26319         and rename LONG_DOUBLE_TYPE_SIZE to PA_LONG_DOUBLE_TYPE_SIZE.
26320         * config/pa/pa.h (PA_FLOAT_TYPE_SIZE): New macro.
26321         (PA_DOUBLE_TYPE_SIZE): Likewise.
26322         (PA_LONG_DOUBLE_TYPE_SIZE): Likewise.
26323         * config/pa/pa-64.h (FLOAT_TYPE_SIZE): Rename to ...
26324         (PA_FLOAT_TYPE_SIZE): ... this.
26325         (DOUBLE_TYPE_SIZE): Rename to ...
26326         (PA_DOUBLE_TYPE_SIZE): ... this.
26327         (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26328         (PA_LONG_DOUBLE_TYPE_SIZE): ... this.
26329         * config/pa/pa-hpux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26330         (PA_LONG_DOUBLE_TYPE_SIZE): ... this.
26331         * config/sparc/sparc.cc (sparc_c_mode_for_floating_type): New function.
26332         (TARGET_C_MODE_FOR_FLOATING_TYPE): New macro.
26333         (FLOAT_TYPE_SIZE): Remove.
26334         (DOUBLE_TYPE_SIZE): Likewise.
26335         (LONG_DOUBLE_TYPE_SIZE): Likewise.
26336         (sparc_type_code): Replace FLOAT_TYPE_SIZE with TYPE_PRECISION of
26337         float_type_node.
26338         * config/sparc/sparc.h (FLOAT_TYPE_SIZE): Remove.
26339         (DOUBLE_TYPE_SIZE): Remove.
26340         * config/sparc/freebsd.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26341         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26342         * config/sparc/linux.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26343         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26344         * config/sparc/linux64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26345         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26346         * config/sparc/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26347         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26348         * config/sparc/openbsd64.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26349         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26350         * config/sparc/sol2.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26351         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26352         * config/sparc/sp-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26353         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26354         * config/sparc/sp64-elf.h (LONG_DOUBLE_TYPE_SIZE): Rename to ...
26355         (SPARC_LONG_DOUBLE_TYPE_SIZE): ... this.
26356         * config/bfin/bfin.h (FLOAT_TYPE_SIZE): Rename to ...
26357         (BFIN_FLOAT_TYPE_SIZE): ... this.
26358         (DOUBLE_TYPE_SIZE): Rename to ...
26359         (BFIN_DOUBLE_TYPE_SIZE): ... this.
26360         (LONG_DOUBLE_TYPE_SIZE): Remove.
26361         (UNITS_PER_FLOAT): Replace FLOAT_TYPE_SIZE with BFIN_FLOAT_TYPE_SIZE.
26362         (UNITS_PER_DOUBLE): Replace DOUBLE_TYPE_SIZE with
26363         BFIN_DOUBLE_TYPE_SIZE.
26365 2024-06-25  Kewen Lin  <linkw@linux.ibm.com>
26367         * config/vms/vms.cc (vms_patch_builtins): Use TYPE_PRECISION of
26368         long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
26370 2024-06-25  Andrew MacLeod  <amacleod@redhat.com>
26372         * tree-vrp.cc (execute_fast_vrp): Do not use transitive relations.
26373         * value-query.cc (range_query::create_relation_oracle): Add
26374         parameter to enable transitive relations.
26375         * value-query.h (range_query::create_relation_oracle): Likewise.
26376         * value-relation.h (dom_oracle::dom_oracle): Likewise.
26377         * value-relation.cc (dom_oracle::dom_oracle): Likewise.
26378         (dom_oracle::register_transitives): Check transitive flag.
26380 2024-06-24  Sergei Lewis  <slewis@rivosinc.com>
26382         * config/riscv/riscv-protos.h (riscv_vector::expand_vec_setmem): New
26383         function declaration.
26384         * config/riscv/riscv-string.cc (riscv_vector::expand_vec_setmem): New
26385         function: this generates an inline vectorised memory set, if and only if
26386         we know the entire operation can be performed in a single vector store.
26387         * config/riscv/riscv.md (setmem<mode>): Try riscv_vector::expand_vec_setmem
26388         for constant lengths.  Do not require operand 2 to be a constant.
26390 2024-06-24  Patrick O'Neill  <patrick@rivosinc.com>
26392         * doc/sourcebuild.texi (dg-remove-option): Add documentation.
26393         (dg-add-option): Add documentation for riscv_{a,zaamo,zalrsc,ztso}
26395 2024-06-24  Roger Sayle  <roger@nextmovesoftware.com>
26396             Richard Biener  <rguenther@suse.de>
26398         PR tree-optimization/113673
26399         * gimple-ssa-store-merging.cc (find_bswap_or_nop_load): Make static.
26400         (find_bswap_or_nop_1): Avoid transformations (load merging) when
26401         stmt_can_throw_internal indicates that a statement can trap.
26403 2024-06-24  Richard Biener  <rguenther@suse.de>
26405         PR tree-optimization/115602
26406         * tree-vect-slp.cc (vect_cse_slp_nodes): Delay populating the
26407         bst-map to avoid cycles.
26409 2024-06-24  Richard Biener  <rguenther@suse.de>
26411         PR tree-optimization/115528
26412         * tree-vect-data-refs.cc (vect_compute_data_ref_alignment):
26413         Make sure to look at both the inner and outer loop step
26414         behavior.
26416 2024-06-24  Pali Rohár  <pali@kernel.org>
26418         * config/i386/mingw-w64.h (CPP_SPEC): Add missing -mcrtdll=
26419         cases: msvcr40*, msvcrtd*.
26420         * config/mingw/mingw32.h (CPP_SPEC): Add missing -mcrtdll=
26421         cases: msvcr40*, msvcrtd*.
26422         * doc/invoke.texi: Add missing -mcrtdll= cases: msvcr40*,
26423         msvcrtd*, msvcr71*. Express wildcards with *. Document _UCRT.
26425 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
26427         * common.opt.urls: Regenerate.
26429 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
26431         PR rtl-optimization/106594
26432         PR rtl-optimization/114515
26433         PR rtl-optimization/114575
26434         PR rtl-optimization/114996
26435         PR rtl-optimization/115104
26436         * Makefile.in (OBJS): Add late-combine.o.
26437         * common.opt (flate-combine-instructions): New option.
26438         * doc/invoke.texi: Document it.
26439         * opts.cc (default_options_table): Enable it by default at -O2
26440         and above.
26441         * tree-pass.h (make_pass_late_combine): Declare.
26442         * late-combine.cc: New file.
26443         * passes.def: Add two instances of late_combine.
26444         * doc/passes.texi: Document the new passes.
26445         * config/i386/i386-options.cc (ix86_override_options_after_change):
26446         Disable late-combine by default.
26447         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
26448         * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
26450 2024-06-24  Richard Sandiford  <richard.sandiford@arm.com>
26452         * rtl-ssa.h: Include predicates.h.
26453         * rtl-ssa/predicates.h: New file.
26454         * rtl-ssa/access-utils.h (prev_call_clobbers_ignoring): Rename to...
26455         (prev_call_clobbers): ...this and treat the ignore parameter as an
26456         object with the same interface as ignore_nothing.
26457         (next_call_clobbers_ignoring): Rename to...
26458         (next_call_clobbers): ...this and treat the ignore parameter as an
26459         object with the same interface as ignore_nothing.
26460         (first_nondebug_insn_use_ignoring): Rename to...
26461         (first_nondebug_insn_use): ...this and treat the ignore parameter as
26462         an object with the same interface as ignore_nothing.
26463         (last_nondebug_insn_use_ignoring): Rename to...
26464         (last_nondebug_insn_use): ...this and treat the ignore parameter as
26465         an object with the same interface as ignore_nothing.
26466         (last_access_ignoring): Rename to...
26467         (last_access): ...this and treat the ignore parameter as an object
26468         with the same interface as ignore_nothing.  Conditionally skip
26469         definitions.
26470         (prev_access_ignoring): Rename to...
26471         (prev_access): ...this and treat the ignore parameter as an object
26472         with the same interface as ignore_nothing.
26473         (first_def_ignoring): Replace with...
26474         (first_access): ...this new function.
26475         (next_access_ignoring): Rename to...
26476         (next_access): ...this and treat the ignore parameter as an object
26477         with the same interface as ignore_nothing.  Conditionally skip
26478         definitions.
26479         * rtl-ssa/change-utils.h (insn_is_changing): Delete.
26480         (restrict_movement_ignoring): Rename to...
26481         (restrict_movement): ...this and treat the ignore parameter as an
26482         object with the same interface as ignore_nothing.
26483         (recog_ignoring): Rename to...
26484         (recog): ...this and treat the ignore parameter as an object with
26485         the same interface as ignore_nothing.
26486         * rtl-ssa/changes.h (insn_is_changing_closure): Delete.
26487         * rtl-ssa/functions.h (function_info::add_regno_clobber): Treat
26488         the ignore parameter as an object with the same interface as
26489         ignore_nothing.
26490         * rtl-ssa/insn-utils.h (insn_is): Delete.
26491         * rtl-ssa/insns.h (insn_is_closure): Delete.
26492         * rtl-ssa/member-fns.inl
26493         (insn_is_changing_closure::insn_is_changing_closure): Delete.
26494         (insn_is_changing_closure::operator()): Likewise.
26495         (function_info::add_regno_clobber): Treat the ignore parameter
26496         as an object with the same interface as ignore_nothing.
26497         (ignore_changing_insns::ignore_changing_insns): New function.
26498         (ignore_changing_insns::should_ignore_insn): Likewise.
26499         * rtl-ssa/movement.h (restrict_movement_for_dead_range): Treat
26500         the ignore parameter as an object with the same interface as
26501         ignore_nothing.
26502         (restrict_movement_for_defs_ignoring): Rename to...
26503         (restrict_movement_for_defs): ...this and treat the ignore parameter
26504         as an object with the same interface as ignore_nothing.
26505         (restrict_movement_for_uses_ignoring): Rename to...
26506         (restrict_movement_for_uses): ...this and treat the ignore parameter
26507         as an object with the same interface as ignore_nothing.  Conditionally
26508         skip definitions.
26509         * doc/rtl.texi: Update for above name changes.  Use
26510         ignore_changing_insns instead of insn_is_changing.
26511         * config/aarch64/aarch64-cc-fusion.cc (cc_fusion::parallelize_insns):
26512         Likewise.
26513         * pair-fusion.cc (no_ignore): Delete.
26514         (latest_hazard_before, first_hazard_after): Update for above name
26515         changes.  Use ignore_nothing instead of no_ignore.
26516         (pair_fusion_bb_info::fuse_pair): Update for above name changes.
26517         Use ignore_changing_insns instead of insn_is_changing.
26518         (pair_fusion::try_promote_writeback): Likewise.
26520 2024-06-24  Richard Biener  <rguenther@suse.de>
26522         PR tree-optimization/115599
26523         * tree-ssa-reassoc.cc (compare_repeat_factors): Use explicit
26524         compares to avoid truncations.
26526 2024-06-24  Haochen Gui  <guihaoc@gcc.gnu.org>
26528         PR target/113325
26529         * config/rs6000/vsx.md (vsx_stxvd2x4_le_const_<mode>): New.
26531 2024-06-24  Haochen Gui  <guihaoc@gcc.gnu.org>
26533         * fwprop.cc (try_fwprop_subst_pattern): Invoke change_is_worthwhile
26534         to judge if a replacement is worthwhile.  Remove single_set check
26535         and add is_debug_insn check.
26536         * recog.cc (swap_change): Invalidate recog_data when the cached INSN
26537         is swapped out.
26538         * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Check if the
26539         insn cost of new rtl is unknown and fail the replacement.
26541 2024-06-24  Mark Harmstone  <mark@harmstone.com>
26543         * dwarf2codeview.cc (MAX_FIELDLIST_SIZE): Define.
26544         (struct codeview_integer): New structure.
26545         (struct codeview_subtype): Likewise
26546         (struct codeview_custom_type): Add lf_fieldlist and lf_enum to union.
26547         (write_cv_integer, cv_integer_len): New functions.
26548         (write_lf_fieldlist, write_lf_enum): Likewise.
26549         (write_custom_types): Call write_lf_fieldlist and write_lf_enum.
26550         (add_enum_forward_def): New function.
26551         (get_type_num_enumeration_type): Likewise.
26552         (get_type_num): Handle DW_TAG_enumeration_type DIEs.
26553         * dwarf2codeview.h (LF_FIELDLIST, LF_INDEX, LF_ENUMERATE): Define.
26554         (LF_ENUM, LF_CHAR, LF_SHORT, LF_USHORT, LF_LONG): Likewise.
26555         (LF_ULONG, LF_QUADWORD, LF_UQUADWORD): Likewise.
26556         (CV_ACCESS_PRIVATE, CV_ACCESS_PROTECTED): Likewise.
26557         (CV_ACCESS_PUBLIC, CV_PROP_FWDREF): Likewise.
26559 2024-06-24  Mark Harmstone  <mark@harmstone.com>
26561         * dwarf2codeview.cc
26562         (struct codeview_custom_type): Add lf_modifier to union.
26563         (write_cv_padding, write_lf_modifier): New functions.
26564         (write_custom_types): Call write_lf_modifier.
26565         (get_type_num_const_type): New function.
26566         (get_type_num_volatile_type): Likewise.
26567         (get_type_num): Handle DW_TAG_const_type and DW_TAG_volatile_type DIEs.
26568         * dwarf2codeview.h (MOD_const, MOD_volatile): Define.
26569         (LF_MODIFIER): Likewise.
26571 2024-06-24  Mark Harmstone  <mark@harmstone.com>
26573         * dwarf2codeview.cc (FIRST_TYPE): Define.
26574         (struct codeview_custom_type): New structure.
26575         (custom_types, last_custom_type): New variables.
26576         (get_type_num): Prototype.
26577         (write_lf_pointer, write_custom_types): New functions.
26578         (codeview_debug_finish): Call write_custom_types.
26579         (add_custom_type, get_type_num_pointer_type): New functions.
26580         (get_type_num): Handle DW_TAG_pointer_type DIEs.
26581         * dwarf2codeview.h (T_VOID): Define.
26582         (CV_POINTER_32, CV_POINTER_64): Likewise.
26583         (T_32PVOID, T_64PVOID): Likewise.
26584         (CV_PTR_NEAR32, CV_PTR64, LF_POINTER): Likewise.
26586 2024-06-24  Mark Harmstone  <mark@harmstone.com>
26588         * dwarf2codeview.cc (get_type_num): Handle typedefs.
26590 2024-06-24  Mark Harmstone  <mark@harmstone.com>
26592         * dwarf2codeview.cc (struct codeview_type): New structure.
26593         (struct die_hasher): Likewise.
26594         (types_htab): New variable.
26595         (codeview_debug_finish): Free types_htab if allocated.
26596         (get_type_num_base_type, get_type_num): New function.
26597         (add_variable): Call get_type_num.
26598         * dwarf2codeview.h (T_CHAR, T_SHORT, T_LONG, T_QUAD): Define.
26599         (T_UCHAR, T_USHORT, T_ULONG, T_UQUAD, T_BOOL08): Likewise.
26600         (T_REAL32, T_REAL64, T_REAL80, T_REAL128, T_RCHAR): Likewise.
26601         (T_WCHAR, T_INT4, T_UINT4, T_CHAR16, T_CHAR32, T_CHAR8): Likewise.
26603 2024-06-23  Mark Harmstone  <mark@harmstone.com>
26605         * dwarf2codeview.cc (S_LDATA32, S_GDATA32): Define.
26606         (struct codeview_symbol): New structure.
26607         (sym, last_sym): New variables.
26608         (write_data_symbol): New function.
26609         (write_codeview_symbols): Call write_data_symbol.
26610         (add_variable, codeview_debug_early_finish): New functions.
26611         * dwarf2codeview.h (codeview_debug_early_finish): Prototype.
26612         * dwarf2out.cc
26613         (dwarf2out_early_finish): Call codeview_debug_early_finish.
26615 2024-06-23  Artemiy Volkov  <Artemiy.Volkov@synopsys.com>
26617         * config/riscv/riscv.cc (riscv_expand_conditional_move): Add a
26618         CONST0_RTX check.
26620 2024-06-23  Jeff Law  <jlaw@ventanamicro.com>
26622         PR target/114139
26623         * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Verify object
26624         is a CONST_INT before looking at INTVAL.
26626 2024-06-23  Richard Biener  <rguenther@suse.de>
26628         PR tree-optimization/115597
26629         * tree-vect-slp.cc (vect_cse_slp_nodes): Allow to CSE
26630         VEC_PERM nodes.
26632 2024-06-23  Richard Biener  <rguenther@suse.de>
26634         PR tree-optimization/115579
26635         * tree-ssa-loop-im.cc (execute_sm): Return the auxiliary data
26636         created.
26637         (hoist_memory_references): Record the flag var that's eventually
26638         created and re-use it when all stores are in the same BB.
26640 2024-06-23  Collin Funk  <collin.funk1@gmail.com>
26642         PR target/115409
26643         * config/i386/avx512fp16intrin.h (_mm512_conj_pch): Make the
26644         constant unsigned before shifting.
26645         * config/i386/avx512fp16vlintrin.h (_mm256_conj_pch): Likewise.
26646         (_mm_conj_pch): Likewise.
26648 2024-06-23  demin.han  <demin.han@starfivetech.com>
26650         * config/riscv/predicates.md (comparison_except_eqge_operator): Only
26651         exclude ge.
26652         (comparison_except_ge_operator): Ditto.
26653         * config/riscv/riscv-string.cc (expand_rawmemchr): Use cmp pattern.
26654         (expand_strcmp): Ditto.
26655         * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond.
26656         * config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove eqne
26657         patterns.
26658         (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto.
26659         (*pred_eqne<mode>_scalar): Ditto.
26660         (*pred_eqne<mode>_scalar_narrow): Ditto.
26661         (*pred_eqne<mode>_extended_scalar_merge_tie_mask): Ditto.
26662         (*pred_eqne<mode>_extended_scalar): Ditto.
26663         (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
26665 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
26667         * diagnostic-format-json.cc
26668         (json_output_format::on_end_diagnostic): Use
26669         get_diagnostic_kind_text rather than embedding a duplicate copy of
26670         the table.
26671         * diagnostic-format-sarif.cc
26672         (make_rule_id_for_diagnostic_kind): Likewise.
26673         * diagnostic.cc (get_diagnostic_kind_text): New.
26674         * diagnostic.h (get_diagnostic_kind_text): New decl.
26676 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
26678         * diagnostic-path.cc (diagnostic_event::meaning::dump_to_pp): Move
26679         here from diagnostic.cc.
26680         (diagnostic_event::meaning::maybe_get_verb_str): Likewise.
26681         (diagnostic_event::meaning::maybe_get_noun_str): Likewise.
26682         (diagnostic_event::meaning::maybe_get_property_str): Likewise.
26683         (diagnostic_path::get_first_event_in_a_function): Likewise.
26684         (diagnostic_path::interprocedural_p): Likewise.
26685         (debug): Likewise for diagnostic_path * overload.
26686         * diagnostic.cc (diagnostic_event::meaning::dump_to_pp): Move from
26687         here to diagnostic-path.cc.
26688         (diagnostic_event::meaning::maybe_get_verb_str): Likewise.
26689         (diagnostic_event::meaning::maybe_get_noun_str): Likewise.
26690         (diagnostic_event::meaning::maybe_get_property_str): Likewise.
26691         (diagnostic_path::get_first_event_in_a_function): Likewise.
26692         (diagnostic_path::interprocedural_p): Likewise.
26693         (debug): Likewise for diagnostic_path * overload.
26695 2024-06-21  Jeff Law  <jlaw@ventanamicro.com>
26697         * config/stormy16/stormy16.md (swpn_zext): New pattern.
26699 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
26701         * config/stormy16/predicates.md (xs_hi_nonmemory_operand): Handle
26702         symbol_ref and label_ref.
26704 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
26706         * config/iq2000/iq2000.cc (iq2000_print_operand): Make %p handle 1<<31.
26707         * config/iq2000/iq2000.md: Remove "I" constraints on
26708         power_of_2_operands.
26710 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
26712         * rtl-ssa/changes.cc (rtl_ssa::changes_are_worthwhile): Don't
26713         cost no-op moves.
26714         * rtl-ssa/insns.cc (insn_info::calculate_cost): Likewise.
26716 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
26718         * gimple-range.cc (gimple_ranger::register_inferred_ranges): Do not
26719         dump global range info after set_range_info.
26720         (gimple_ranger::register_transitive_inferred_ranges): Likewise.
26721         (dom_ranger::range_of_stmt): Likewise.
26722         * tree-ssanames.cc (set_range_info): If global range info
26723         changes, maybe print new range to dump_file.
26724         * tree-vrp.cc (remove_unreachable::handle_early): Do not
26725         dump global range info after set_range_info.
26726         (remove_unreachable::remove): Likewise.
26727         (remove_unreachable::remove_and_update_globals): Likewise.
26728         (pass_assumptions::execute): Likewise.
26730 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
26732         * gimple-range.cc (dom_ranger::dom_ranger): Create a block
26733         vector.
26734         (dom_ranger::~dom_ranger): Dispose of the block vector.
26735         (dom_ranger::edge_range): Delete.
26736         (dom_ranger::range_on_edge): Combine range in src BB with any
26737         range gori_nme_on_edge returns.
26738         (dom_ranger::range_in_bb): Combine global range with any active
26739         contextual range for an ssa-name.
26740         (dom_ranger::range_of_stmt): Fix non-ssa LHS case, use
26741         fur_depend for folding so relations can be registered.
26742         (dom_ranger::maybe_push_edge): Delete.
26743         (dom_ranger::pre_bb): Create incoming contextual range vector.
26744         (dom_ranger::post_bb): Free contextual range vector.
26745         * gimple-range.h (dom_ranger::edge_range): Delete.
26746         (dom_ranger::m_e0): Delete.
26747         (dom_ranger::m_e1): Delete.
26748         (dom_ranger::m_bb): New.
26749         (dom_ranger::m_pop_list): Delete.
26750         * tree-vrp.cc (execute_fast_vrp): Enable relation oracle.
26752 2024-06-21  Andrew MacLeod  <amacleod@redhat.com>
26754         * tree-vrp.cc (remove_unreachable::remove): Export global range
26755         if builtin_unreachable dominates all uses.
26756         (remove_unreachable::remove_and_update_globals): Do not reset SCEV.
26757         (execute_ranger_vrp): Reset SCEV here instead.
26758         (fvrp_folder::fvrp_folder): Take final pass flag
26759         and create a remove_unreachable object when specified.
26760         (fvrp_folder::pre_fold_stmt): Register GIMPLE_CONDs with
26761         the remove_unreachcable object.
26762         (fvrp_folder::m_unreachable): New.
26763         (execute_fast_vrp): Process remove_unreachable object.
26764         (pass_vrp::execute): Add final_p flag to execute_fast_vrp.
26766 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
26768         PR testsuite/109360
26769         * doc/install.texi: Mention optional usage of "jsonschema" tool.
26771 2024-06-21  David Malcolm  <dmalcolm@redhat.com>
26773         PR testsuite/109360
26774         * diagnostic-format-sarif.cc
26775         (sarif_builder::make_location_object): Pass any column override
26776         from rich_loc to maybe_make_physical_location_object.
26777         (sarif_builder::maybe_make_physical_location_object): Add
26778         "column_override" param and pass it to maybe_make_region_object.
26779         (sarif_builder::maybe_make_region_object): Add "column_override"
26780         param and use it when the location has 0 for a column.  Don't
26781         add "startLine", "startColumn", "endLine", or "endColumn" if
26782         the values aren't positive.
26783         (sarif_builder::maybe_make_region_object_for_context): Don't
26784         add "startLine" or "endLine" if the values aren't positive.
26786 2024-06-21  Richard Sandiford  <richard.sandiford@arm.com>
26788         * config/sh/sh.md (*minus_plus_one): Add constraints.
26790 2024-06-21  Andrew Pinski  <quic_apinski@quicinc.com>
26792         PR tree-optimization/68855
26793         * tree-complex.cc (init_dont_simulate_again): Handle PAREN_EXPR
26794         like NEGATE_EXPR.
26795         (complex_propagate::visit_stmt): Likewise.
26796         (expand_complex_move): Don't handle PAREN_EXPR.
26797         (expand_complex_paren): New function.
26798         (expand_complex_operations_1): Handle PAREN_EXPR like
26799         NEGATE_EXPR. And call expand_complex_paren for PAREN_EXPR.
26801 2024-06-21  Richard Biener  <rguenther@suse.de>
26803         * doc/passes.texi: Remove references to no longer existing
26804         passes.
26806 2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
26808         * configure.ac: Set gcc_cv_as_mips_explicit_relocs if
26809         gcc_cv_as_mips_explicit_relocs_pcrel.
26810         * configure: Regenerate.
26812 2024-06-21  YunQiang Su  <syq@gcc.gnu.org>
26814         * config/mips/mips.cc(mips_rtx_costs): Set condmove cost.
26815         * config/mips/mips.md(mov<GPR:mode>_on_<MOVECC:mode>,
26816         mov<GPR:mode>_on_<MOVECC:mode>_mips16e2,
26817         mov<GPR:mode>_on_<GPR2:mode>_ne
26818         mov<GPR:mode>_on_<GPR2:mode>_ne_mips16e2): Define name by
26819         remove starting *, so that we can use CODE_FOR_.
26821 2024-06-21  Kewen Lin  <linkw@linux.ibm.com>
26822             Xionghu Luo  <xionghuluo@tencent.com>
26824         PR target/106069
26825         PR target/115355
26826         * config/rs6000/altivec.md (altivec_vmrghw_direct_<VSX_W:mode>): Rename
26827         to ...
26828         (altivec_vmrghw_direct_<VSX_W:mode>_be): ... this.  Add the condition
26829         BYTES_BIG_ENDIAN.
26830         (altivec_vmrghw_direct_<VSX_W:mode>_le): New define_insn.
26831         (altivec_vmrglw_direct_<VSX_W:mode>): Rename to ...
26832         (altivec_vmrglw_direct_<VSX_W:mode>_be): ... this.  Add the condition
26833         BYTES_BIG_ENDIAN.
26834         (altivec_vmrglw_direct_<VSX_W:mode>_le): New define_insn.
26835         (altivec_vmrghw): Adjust by calling gen_altivec_vmrghw_direct_v4si_be
26836         for BE and gen_altivec_vmrglw_direct_v4si_le for LE.
26837         (altivec_vmrglw): Adjust by calling gen_altivec_vmrglw_direct_v4si_be
26838         for BE and gen_altivec_vmrghw_direct_v4si_le for LE.
26839         (vec_widen_umult_hi_v8hi): Adjust the call to
26840         gen_altivec_vmrghw_direct_v4si by gen_altivec_vmrghw for BE
26841         and by gen_altivec_vmrglw for LE.
26842         (vec_widen_smult_hi_v8hi): Likewise.
26843         (vec_widen_umult_lo_v8hi): Adjust the call to
26844         gen_altivec_vmrglw_direct_v4si by gen_altivec_vmrglw for BE
26845         and by gen_altivec_vmrghw for LE
26846         (vec_widen_smult_lo_v8hi): Likewise.
26847         * config/rs6000/rs6000.cc (altivec_expand_vec_perm_const): Replace
26848         CODE_FOR_altivec_vmrghw_direct_v4si by
26849         CODE_FOR_altivec_vmrghw_direct_v4si_be for BE and
26850         CODE_FOR_altivec_vmrghw_direct_v4si_le for LE.  And replace
26851         CODE_FOR_altivec_vmrglw_direct_v4si by
26852         CODE_FOR_altivec_vmrglw_direct_v4si_be for BE and
26853         CODE_FOR_altivec_vmrglw_direct_v4si_le for LE.
26854         * config/rs6000/vsx.md (vsx_xxmrghw_<VSX_W:mode>): Adjust by calling
26855         gen_altivec_vmrghw_direct_v4si_be for BE and
26856         gen_altivec_vmrglw_direct_v4si_le for LE.
26857         (vsx_xxmrglw_<VSX_W:mode>): Adjust by calling
26858         gen_altivec_vmrglw_direct_v4si_be for BE and
26859         gen_altivec_vmrghw_direct_v4si_le for LE.
26861 2024-06-20  Roger Sayle  <roger@nextmovesoftware.com>
26863         * config/i386/i386-expand.cc (ix86_ternlog_idx): Allow any SUBREG
26864         that matches register_operand.  Use rtx_equal_p to compare REG
26865         or SUBREG "leaf" operands.
26867 2024-06-20  Jeff Law  <jlaw@ventanamicro.com>
26869         * config/riscv/bitmanip.md (<bit_optab><mode>): New unified
26870         pattern for bset/binv using a code iterator.
26871         (<bit_optab>i<mode>): Likewise.
26872         (<bit_optab><mode>_mask): Likewise.  Support XOR via any_or.
26873         (<bit_optab>isidi): Likewise.
26874         * config/riscv/iterators.md (bit_optab): New iterator.
26876 2024-06-20  Hongyu Wang  <hongyu.wang@intel.com>
26878         * config/i386/i386-options.cc (ix86_option_override_internal):
26879         Use TARGET_*_P (opts->x_ix86_isa_flags*) instead of TARGET_*
26880         for UINTR, LAM and APX_F.
26882 2024-06-20  Richard Biener  <rguenther@suse.de>
26884         PR tree-optimization/114413
26885         * tree-vect-slp.cc (release_scalar_stmts_to_slp_tree_map):
26886         New function, split out from ...
26887         (vect_analyze_slp): ... here.  Call it.
26888         (vect_cse_slp_nodes): New function.
26889         (vect_optimize_slp): Call it.
26891 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
26893         * tree-vect-loop.cc (vect_transform_reduction): Change assertion to
26894         cover all lane-reducing ops.
26896 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
26898         * tree-vect-loop.cc (vect_transform_reduction): Replace vec_oprnds0/1/2
26899         with one new array variable vec_oprnds[3].
26901 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
26903         * tree-vect-loop.cc (vectorizable_reduction): Remove v_reduc_type, and
26904         replace it to another local variable reduction_type.
26906 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
26908         * tree-vect-loop.cc (vectorizable_reduction): Remove the duplicated
26909         check.
26911 2024-06-20  Feng Xue  <fxue@os.amperecomputing.com>
26913         * tree-vectorizer.h (lane_reducing_stmt_p): New function.
26914         * tree-vect-slp.cc (vect_analyze_slp): Use new function
26915         lane_reducing_stmt_p to check statement.
26917 2024-06-19  YunQiang Su  <syq@gcc.gnu.org>
26919         Revert:
26920         2024-06-19  Collin Funk  <collin.funk1@gmail.com>
26922         * configure.ac: Add missing quotation of variable
26923         gcc_cv_as_mips_explicit_relocs.
26924         * configure: Regenerate.
26926 2024-06-19  demin.han  <demin.han@starfivetech.com>
26928         * config/riscv/riscv-vector-builtins-bases.cc: Remove eqne cond
26929         * config/riscv/vector.md (@pred_eqne<mode>_scalar): Remove patterns
26930         (*pred_eqne<mode>_scalar_merge_tie_mask): Ditto
26931         (*pred_eqne<mode>_scalar): Ditto
26932         (*pred_eqne<mode>_scalar_narrow): Ditto
26934 2024-06-19  Patrick O'Neill  <patrick@rivosinc.com>
26936         * common/config/riscv/riscv-common.cc: Add 'a' extension to
26937         riscv_combine_info.
26939 2024-06-19  Jakub Jelinek  <jakub@redhat.com>
26941         PR tree-optimization/115544
26942         * gimple-lower-bitint.cc (gimple_lower_bitint): Disable optimizing
26943         loads used by COMPLEX_EXPR operands.
26945 2024-06-19  mayshao  <mayshao-oc@zhaoxin.com>
26947         * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Recognize shijidadao.
26948         * common/config/i386/i386-common.cc: Add shijidadao.
26949         * common/config/i386/i386-cpuinfo.h (enum processor_subtypes):
26950         Add ZHAOXIN_FAM7H_SHIJIDADAO.
26951         * config.gcc: Add shijidadao.
26952         * config/i386/driver-i386.cc (host_detect_local_cpu):
26953         Let -march=native recognize shijidadao processors.
26954         * config/i386/i386-c.cc (ix86_target_macros_internal): Add shijidadao.
26955         * config/i386/i386-options.cc (m_ZHAOXIN): Add m_SHIJIDADAO.
26956         (m_SHIJIDADAO): New definition.
26957         * config/i386/i386.h (enum processor_type): Add PROCESSOR_SHIJIDADAO.
26958         * config/i386/x86-tune-costs.h (struct processor_costs):
26959         Add shijidadao_cost.
26960         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add shijidadao.
26961         (ix86_adjust_cost): Ditto.
26962         * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): Add m_SHIJIDADAO.
26963         (X86_TUNE_USE_GATHER_4PARTS): Ditto.
26964         (X86_TUNE_USE_GATHER_8PARTS): Ditto.
26965         (X86_TUNE_AVOID_128FMA_CHAINS): Ditto.
26966         * doc/extend.texi: Add details about shijidadao.
26967         * doc/invoke.texi: Ditto.
26969 2024-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
26971         * config/xtensa/xtensa.cc (print_operand):
26972         When outputting MEMW before the instruction, check if the previous
26973         instruction is already that.
26975 2024-06-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
26976             Stam Markianos-Wright  <stam.markianos-wright@arm.com>
26978         * config/arm/arm-protos.h (arm_target_bb_ok_for_lob): Change
26979         declaration to pass basic_block.
26980         (arm_attempt_dlstp_transform): New declaration.
26981         * config/arm/arm.cc (TARGET_LOOP_UNROLL_ADJUST): Define targethook.
26982         (TARGET_PREDICT_DOLOOP_P): Likewise.
26983         (arm_target_bb_ok_for_lob): Adapt condition.
26984         (arm_mve_get_vctp_lanes): New function.
26985         (arm_dl_usage_type): New internal enum.
26986         (arm_get_required_vpr_reg): New function.
26987         (arm_get_required_vpr_reg_param): New function.
26988         (arm_get_required_vpr_reg_ret_val): New function.
26989         (arm_mve_get_loop_vctp): New function.
26990         (arm_mve_insn_predicated_by): New function.
26991         (arm_mve_across_lane_insn_p): New function.
26992         (arm_mve_load_store_insn_p): New function.
26993         (arm_mve_impl_pred_on_outputs_p): New function.
26994         (arm_mve_impl_pred_on_inputs_p): New function.
26995         (arm_last_vect_def_insn): New function.
26996         (arm_mve_impl_predicated_p): New function.
26997         (arm_mve_check_reg_origin_is_num_elems): New function.
26998         (arm_mve_dlstp_check_inc_counter): New function.
26999         (arm_mve_dlstp_check_dec_counter): New function.
27000         (arm_mve_loop_valid_for_dlstp): New function.
27001         (arm_predict_doloop_p): New function.
27002         (arm_loop_unroll_adjust): New function.
27003         (arm_emit_mve_unpredicated_insn_to_seq): New function.
27004         (arm_attempt_dlstp_transform): New function.
27005         * config/arm/arm.opt (mdlstp): New option.
27006         * config/arm/iterators.md (dlstp_elemsize, letp_num_lanes,
27007         letp_num_lanes_neg, letp_num_lanes_minus_1): New attributes.
27008         (DLSTP, LETP): New iterators.
27009         * config/arm/mve.md (predicated_doloop_end_internal<letp_num_lanes>,
27010         dlstp<dlstp_elemsize>_insn): New insn patterns.
27011         * config/arm/thumb2.md (doloop_end): Adapt to support tail-predicated
27012         loops.
27013         (doloop_begin): Likewise.
27014         * config/arm/types.md (mve_misc): New mve type to represent
27015         predicated_loop_end insn sequences.
27016         * config/arm/unspecs.md:
27017         (DLSTP8, DLSTP16, DLSTP32, DSLTP64,
27018         LETP8, LETP16, LETP32, LETP64): New unspecs for DLSTP and LETP.
27020 2024-06-19  Andre Vieira  <andre.simoesdiasvieira@arm.com>
27021             Stam Markianos-Wright  <stam.markianos-wright@arm.com>
27023         * df-core.cc (df_bb_regno_only_def_find): New helper function.
27024         * df.h (df_bb_regno_only_def_find): Declare new function.
27025         * loop-doloop.cc (doloop_condition_get): Add support for detecting
27026         predicated vectorized hardware loops.
27027         (doloop_modify): Add support for GTU condition checks.
27028         (doloop_optimize): Update costing computation to support alterations to
27029         desc->niter_expr by the backend.
27031 2024-06-19  Collin Funk  <collin.funk1@gmail.com>
27033         * configure.ac: Add missing quotation of variable
27034         gcc_cv_as_mips_explicit_relocs.
27035         * configure: Regenerate.
27037 2024-06-19  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
27039         * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
27040         Change the second argument from HOST_WIDE_INT to rtx.
27041         * config/xtensa/xtensa.cc (#include):
27042         Add "context.h" and "pass_manager.h".
27043         (machine_function): Add a new hash_map field "litpool_usage".
27044         (xtensa_constantsynth): Make "src" (the second operand) accept
27045         RTX literal instead of its value, and treat both bare and pooled
27046         SI/SFmode literals equally by bit-exact canonicalization into
27047         CONST_INT RTX internally.  And then, make avoid synthesis if
27048         such multiple identical canonicalized literals are found in same
27049         function when optimizing for size.  Finally, for literals where
27050         synthesis is not possible or has been avoided, re-emit "move"
27051         RTXes with canonicalized ones to increase the chances of sharing
27052         literal pool entries.
27053         * config/xtensa/xtensa.md (split patterns for constant synthesis):
27054         Change to simply invoke xtensa_constantsynth() as mentioned above,
27055         and add new patterns for when TARGET_AUTO_LITPOOLS is enabled.
27057 2024-06-18  Edwin Lu  <ewlu@rivosinc.com>
27058             Robin Dapp  <rdapp@ventanamicro.com>
27060         * config/riscv/riscv-v.cc: Move assert out of conditional block
27062 2024-06-18  Edwin Lu  <ewlu@rivosinc.com>
27063             Robin Dapp  <rdapp@ventanamicro.com>
27065         * config/riscv/autovec-opt.md: Fix mode mismatch
27067 2024-06-18  Andrew Pinski  <quic_apinski@quicinc.com>
27069         * config/aarch64/aarch64-cores.def: Add comment
27070         saying thunderxt81/t83 are aliases of octeontx81/83.
27072 2024-06-18  Andrew Pinski  <quic_apinski@quicinc.com>
27074         * config/aarch64/aarch64-cores.def (thunderxt88p1): Make an alias of thunderxt88 and
27075         move below thunderxt88.
27076         * config/aarch64/aarch64-tune.md: Regenerate.
27078 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27080         * Makefile.in (OBJS): Move selftest-diagnostic-path.o,
27081         selftest-logical-location.o, and tree-diagnostic-path.o to...
27082         (OBJS-libcommon): ...here, renaming tree-diagnostic-path.o to
27083         diagnostic-path.o.
27084         * tree-diagnostic-path.cc: Rename to...
27085         * diagnostic-path.cc: ...this.  Drop include of "tree.h".
27086         (tree_diagnostic_path_cc_tests): Rename to...
27087         (diagnostic_path_cc_tests): ...this.
27088         * selftest-run-tests.cc (selftest::run_tests): Update for above
27089         renaming.
27090         * selftest.h (tree_diagnostic_path_cc_tests): Rename decl to...
27091         (diagnostic_path_cc_tests): ...this.
27093 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27095         * diagnostic-format-json.cc (diagnostic_output_format_init_json):
27096         Replace clearing of diagnostic_context::m_print_path callback with
27097         setting the path format to DPF_NONE.
27098         * diagnostic-format-sarif.cc
27099         (diagnostic_output_format_init_sarif): Likewise.
27100         * diagnostic.cc (diagnostic_context::show_any_path): Replace call
27101         to diagnostic_context::m_print_path callback with a direct call to
27102         diagnostic_context::print_path.
27103         * diagnostic.h (diagnostic_context::print_path): New decl.
27104         (diagnostic_context::m_print_path): Delete callback.
27105         * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
27106         Convert to...
27107         (diagnostic_context::print_path): ...this.
27108         * tree-diagnostic.cc (tree_diagnostics_defaults): Delete
27109         initialization of m_print_path.
27110         * tree-diagnostic.h (default_tree_diagnostic_path_printer): Delete
27111         decl.
27113 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27115         * diagnostic-macro-unwinding.cc: New file, with material taken
27116         from tree-diagnostic.cc.
27117         * diagnostic-macro-unwinding.h: New file, with material taken
27118         from tree-diagnostic.h.
27119         * tree-diagnostic-path.cc: Repalce include of "tree-diagnostic.h"
27120         with "diagnostic-macro-unwinding.h".
27121         * tree-diagnostic.cc (struct loc_map_pair): Move to
27122         diagnostic-macro-unwinding.cc.
27123         (maybe_unwind_expanded_macro_loc): Likewise.
27124         (virt_loc_aware_diagnostic_finalizer): Likewise.
27125         * tree-diagnostic.h (virt_loc_aware_diagnostic_finalizer): Move
27126         decl to diagnostic-macro-unwinding.h.
27127         (maybe_unwind_expanded_macro_loc): Likewise.
27129 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27131         * Makefile.in (OBJS): Add diagnostic-macro-unwinding.o.
27133 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27135         * diagnostic-format-json.cc: Include "diagnostic-path.h" and
27136         "logical-location.h".
27137         (make_json_for_path): Move tree-diagnostic-path.cc's
27138         default_tree_make_json_for_path here, renaming it and making it
27139         static.
27140         (json_output_format::on_end_diagnostic): Replace call of
27141         m_context's m_make_json_for_path callback with a direct call to
27142         make_json_for_path.
27143         * diagnostic.h (diagnostic_context::m_make_json_for_path): Drop
27144         field.
27145         * tree-diagnostic-path.cc: Drop include of "json.h".
27146         (default_tree_make_json_for_path): Rename to make_json_for_path
27147         and move to diagnostic-format-json.cc.
27148         * tree-diagnostic.cc (tree_diagnostics_defaults): Drop
27149         initialization of m_make_json_for_path.
27150         * tree-diagnostic.h (default_tree_make_json_for): Delete decl.
27152 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27154         * Makefile.in (OBJS): Add selftest-diagnostic-path.o and
27155         selftest-logical-location.o.
27156         * logical-location.h: Include "label-text.h".
27157         (class logical_location): Update leading comment.
27158         * selftest-diagnostic-path.cc: New file, adapted from
27159         simple-diagnostic-path.cc and from material in
27160         tree-diagnostic-path.cc.
27161         * selftest-diagnostic-path.h: New file, adapted from
27162         simple-diagnostic-path.h and from material in
27163         tree-diagnostic-path.cc.
27164         * selftest-logical-location.cc: New file.
27165         * selftest-logical-location.h: New file.
27166         * tree-diagnostic-path.cc: Remove includes of "tree-pretty-print.h",
27167         "langhooks.h", and "simple-diagnostic-path.h".  Add include of
27168         "selftest-diagnostic-path.h".
27169         (class test_diagnostic_path): Delete, in favor of new
27170         implementation in selftest-diagnostic-path.{h,cc}, which is
27171         directly derived from diagnostic_path, rather than from
27172         simple_diagnostic_path.
27173         (selftest::test_intraprocedural_path): Eliminate tree usage,
27174         via change to test_diagnostic_path, using strings rather than
27175         function_decls for identifying functions in the test.
27176         (selftest::test_interprocedural_path_1): Likewise.
27177         (selftest::test_interprocedural_path_2): Likewise.
27178         (selftest::test_recursion): Likewise.
27179         (selftest::test_control_flow_1): Likewise.
27180         (selftest::test_control_flow_2): Likewise.
27181         (selftest::test_control_flow_3): Likewise.
27182         (selftest::assert_cfg_edge_path_streq): Likewise.
27183         (selftest::test_control_flow_5): Likewise.
27184         (selftest::test_control_flow_6): Likewise.
27186 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27188         * diagnostic.cc: Include "logical-location.h".
27189         (diagnostic_path::get_first_event_in_a_function): Fix typo in
27190         leading comment.  Rewrite to use logical_location rather than
27191         tree.  Drop test on stack depth.
27192         (diagnostic_path::interprocedural_p): Rewrite to use
27193         logical_location rather than tree.
27194         (logical_location::function_p): New.
27195         * diagnostic-path.h (diagnostic_event::get_fndecl): Eliminate
27196         vfunc.
27197         (diagnostic_path::same_function_p): New pure virtual func.
27198         * logical-location.h (logical_location::get_name_for_path_output):
27199         New pure virtual func.
27200         * simple-diagnostic-path.cc
27201         (simple_diagnostic_path::same_function_p): New.
27202         (simple_diagnostic_event::simple_diagnostic_event): Initialize
27203         m_logical_loc.
27204         * simple-diagnostic-path.h: Include "tree-logical-location.h".
27205         (simple_diagnostic_event::get_fndecl): Convert from a vfunc
27206         implementation to an accessor.
27207         (simple_diagnostic_event::get_logical_location): Use
27208         m_logical_loc.
27209         (simple_diagnostic_event::m_logical_loc): New field.
27210         (simple_diagnostic_path::same_function_p): New decl.
27211         * tree-diagnostic-path.cc: Move pragma disabling -Wformat-diag to
27212         cover the whole file.
27213         (can_consolidate_events): Add params "path", "ev1_idx", and
27214         "ev2_idx".  Rewrite to use diagnostic_path::same_function_p rather
27215         than tree.
27216         (per_thread_summary::per_thread_summary): Add "path" param
27217         (per_thread_summary::m_path): New field.
27218         (event_range::event_range): Update for conversion of m_fndecl to
27219         m_logical_loc.
27220         (event_range::maybe_add_event): Rename param "idx" to
27221         "new_ev_idx".  Update call to can_consolidate_events to pass in
27222         "m_path", "m_start_idx", and "new_ev_idx".
27223         (event_range::m_fndecl): Replace with...
27224         (event_range::m_logical_loc): ...this.
27225         (path_summary::get_or_create_events_for_thread_id): Pass "path" to
27226         per_thread_summary ctor.
27227         (per_thread_summary::interprocedural_p): Rewrite to use
27228         diagnostic_path::same_function_p rather than tree.
27229         (print_fndecl): Delete.
27230         (thread_event_printer::print_swimlane_for_event_range): Update for
27231         conversion from tree to logical_location.
27232         (default_tree_diagnostic_path_printer): Likewise.
27233         (default_tree_make_json_for_path): Likewise.
27234         * tree-logical-location.cc: Include "intl.h".
27235         (compiler_logical_location::get_name_for_tree_for_path_output):
27236         New.
27237         (tree_logical_location::get_name_for_path_output): New.
27238         (current_fndecl_logical_location::get_name_for_path_output): New.
27239         * tree-logical-location.h
27240         (compiler_logical_location::get_name_for_tree_for_path_output):
27241         New decl.
27242         (tree_logical_location::get_name_for_path_output): New decl.
27243         (current_fndecl_logical_location::get_name_for_path_output): New
27244         decl.
27246 2024-06-18  David Malcolm  <dmalcolm@redhat.com>
27248         * Makefile.in (OBJS): Add simple-diagnostic-path.o.
27249         * diagnostic-path.h (class simple_diagnostic_event): Move to
27250         simple-diagnostic-path.h.
27251         (class simple_diagnostic_thread): Likewise.
27252         (class simple_diagnostic_path): Likewise.
27253         * diagnostic.cc (simple_diagnostic_path::simple_diagnostic_path):
27254         Move to simple-diagnostic-path.cc.
27255         (simple_diagnostic_path::num_events): Likewise.
27256         (simple_diagnostic_path::get_event): Likewise.
27257         (simple_diagnostic_path::num_threads): Likewise.
27258         (simple_diagnostic_path::get_thread): Likewise.
27259         (simple_diagnostic_path::add_thread): Likewise.
27260         (simple_diagnostic_path::add_event): Likewise.
27261         (simple_diagnostic_path::add_thread_event): Likewise.
27262         (simple_diagnostic_path::connect_to_next_event): Likewise.
27263         (simple_diagnostic_event::simple_diagnostic_event): Likewise.
27264         (simple_diagnostic_event::~simple_diagnostic_event): Likewise.
27265         * selftest-run-tests.cc (selftest::run_tests): Call
27266         selftest::simple_diagnostic_path_cc_tests.
27267         * selftest.h (selftest::simple_diagnostic_path_cc_tests): New
27268         decl.
27269         * simple-diagnostic-path.cc: New file, from the above material.
27270         * simple-diagnostic-path.h: New file, from the above material
27271         from diagnostic-path.h.
27272         * tree-diagnostic-path.cc: Include "simple-diagnostic-path.h".
27274 2024-06-18  Pan Li  <pan2.li@intel.com>
27276         * match.pd: Add form 7 and 8 for the unsigned .SAT_ADD match.
27278 2024-06-18  Pan Li  <pan2.li@intel.com>
27280         * match.pd: Add form 11 match pattern for .SAT_SUB.
27282 2024-06-18  Richard Biener  <rguenther@suse.de>
27284         PR tree-optimization/115537
27285         * tree-vect-loop.cc (vectorizable_reduction): Also reject
27286         SLP condition reductions of EXTRACT_LAST kind when multiple
27287         statement copies are involved.
27289 2024-06-18  Jeff Law  <jlaw@ventanamicro.com>
27291         * config/riscv/bitmanip.md (bset splitters): New patterns for
27292         generating bset when bit position is limited.
27294 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27296         * config/aarch64/aarch64.cc (aarch64_addti_scratch_regs): Use
27297         force_highpart_subreg instead of gen_highpart and simplify_gen_subreg.
27298         (aarch64_subvti_scratch_regs): Likewise.
27300 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27302         * explow.h (force_highpart_subreg): Declare.
27303         * explow.cc (force_highpart_subreg): New function.
27304         * builtins.cc (expand_builtin_issignaling): Use it.
27305         * expmed.cc (emit_store_flag_1): Likewise.
27307 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27309         * builtins.cc (expand_builtin_issignaling): Use force_lowpart_subreg
27310         instead of simplify_gen_subreg and lowpart_subreg.
27311         * expr.cc (convert_mode_scalar, expand_expr_real_2): Likewise.
27312         * optabs.cc (expand_doubleword_mod): Likewise.
27314 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27316         PR target/115464
27317         * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin)
27318         (aarch64_expand_rwsr_builtin): Use force_lowpart_subreg instead of
27319         simplify_gen_subreg and lowpart_subreg.
27320         * config/aarch64/aarch64-sve-builtins-base.cc
27321         (svset_neonq_impl::expand): Likewise.
27322         * config/aarch64/aarch64-sve-builtins-sme.cc
27323         (add_load_store_slice_operand): Likewise.
27324         * config/aarch64/aarch64.cc (aarch64_sve_reinterpret): Likewise.
27325         (aarch64_addti_scratch_regs, aarch64_subvti_scratch_regs): Likewise.
27327 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27329         * explow.h (force_lowpart_subreg): Declare.
27330         * explow.cc (force_lowpart_subreg): New function.
27331         * optabs.cc (lowpart_subreg_maybe_copy): Delete.
27332         (expand_absneg_bit): Use force_lowpart_subreg instead of
27333         lowpart_subreg_maybe_copy.
27334         (expand_copysign_bit): Likewise.
27336 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27338         * expmed.cc (store_bit_field_using_insv): Use force_subreg
27339         instead of simplify_gen_subreg.
27340         (store_bit_field_1): Likewise.
27341         (extract_bit_field_as_subreg): Likewise.
27342         (extract_integral_bit_field): Likewise.
27343         (emit_store_flag_1): Likewise.
27344         * expr.cc (convert_move): Likewise.
27345         (convert_modes): Likewise.
27346         (emit_group_load_1): Likewise.
27347         (emit_group_store): Likewise.
27348         (expand_assignment): Likewise.
27350 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27352         * config/aarch64/aarch64-builtins.cc (aarch64_expand_fcmla_builtin):
27353         Use force_subreg instead of simplify_gen_subreg.
27354         * config/aarch64/aarch64-simd.md (ctz<mode>2): Likewise.
27355         * config/aarch64/aarch64-sve-builtins-base.cc
27356         (svget_impl::expand): Likewise.
27357         (svget_neonq_impl::expand): Likewise.
27358         * config/aarch64/aarch64-sve-builtins-functions.h
27359         (multireg_permute::expand): Likewise.
27361 2024-06-18  Richard Sandiford  <richard.sandiford@arm.com>
27363         * explow.cc (force_subreg): Emit no instructions on failure.
27365 2024-06-18  Jakub Jelinek  <jakub@redhat.com>
27367         PR target/115324
27368         * config/rs6000/rs6000-gen-builtins.cc (write_decls): Change
27369         declaration of rs6000_init_generated_builtins from no arguments
27370         to 4 pointer arguments.
27371         (write_init_bif_table): Change rs6000_builtin_info_fntype to
27372         builtin_info_fntype and rs6000_builtin_decls to builtin_decls.
27373         (write_init_ovld_table): Change rs6000_instance_info_fntype to
27374         instance_info_fntype, rs6000_builtin_decls to builtin_decls and
27375         rs6000_overload_info to overload_info.
27376         (write_init_file): Add __noipa__ attribute to
27377         rs6000_init_generated_builtins for GCC 8.1+ and change the function
27378         from no arguments to 4 pointer arguments.  Change rs6000_builtin_decls
27379         to builtin_decls.
27380         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Adjust
27381         rs6000_init_generated_builtins caller.
27383 2024-06-18  Richard Biener  <rguenther@suse.de>
27385         PR tree-optimization/115493
27386         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use
27387         the first scalar result.
27389 2024-06-18  Richard Biener  <rguenther@suse.de>
27391         PR tree-optimization/111793
27392         * tree-ssa-alias.h (ref_can_have_store_data_races): Declare.
27393         * tree-ssa-alias.cc (ref_can_have_store_data_races): New
27394         function.
27395         * tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use
27396         ref_can_have_store_data_races to allow more unconditional
27397         stores.
27398         * tree-ssa-loop-im.cc (execute_sm): Likewise.
27399         * tree-ssa-phiopt.cc (cond_store_replacement): Likewise.
27401 2024-06-18  Hu, Lin1  <lin1.hu@intel.com>
27403         * config/i386/avxintrin.h: Move cmp[p|s][s|d] to [e|x]mmintrin.h,
27404         and move macros to xmmintrin.h
27405         * config/i386/emmintrin.h: Add cmp[p|s]s intrins.
27406         * config/i386/i386-builtin.def: Modify __builtin_ia32_cmp[p|s][s|d].
27407         * config/i386/i386-expand.cc
27408         (ix86_expand_args_builtin): Raise error when imm is in range of
27409         [8, 32] without avx.
27410         * config/i386/predicates.md (cmpps_imm_operand): New predicate.
27411         * config/i386/sse.md (avx_cmp<mode>3): Modefy define_insn.
27412         (avx_vmcmp<mode>3): Ditto.
27413         * config/i386/xmmintrin.h (_CMP_EQ_OQ): New macro for sse/sse2.
27414         (_CMP_LT_OS): Ditto
27415         (_CMP_LE_OS): Ditto
27416         (_CMP_UNORD_Q): Ditto
27417         (_CMP_NEQ_UQ): Ditto
27418         (_CMP_NLT_US): Ditto
27419         (_CMP_NLE_US): Ditto
27420         (_CMP_ORD_Q): Ditto
27421         (_mm_cmp_ps): Move intrin from avxintrin.h to xmmintrin.h
27422         (_mm_cmp_ss): Ditto.
27424 2024-06-17  Jeff Law  <jlaw@ventanamicro.com>
27426         * config/riscv/bitmanip.md (bsetclr_zero_extract): New pattern.
27428 2024-06-17  Jakub Jelinek  <jakub@redhat.com>
27430         PR driver/115440
27431         * opts-common.cc (add_misspelling_candidates): If opt1 is non-NULL,
27432         add a space and opt1 to the alternative suggestion text.
27434 2024-06-17  Patrick O'Neill  <patrick@rivosinc.com>
27436         * common/config/riscv/riscv-common.cc
27437         (riscv_subset_list::to_string): Skip zaamo/zalrsc when not
27438         supported by the assembler.
27439         * config.in: Regenerate.
27440         * configure: Regenerate.
27441         * configure.ac: Add zaamo/zalrsc assmeber check.
27443 2024-06-17  Gerald Pfeifer  <gerald@pfeifer.com>
27445         * doc/install.texi (Configuration): Mark up __cxa_atexit as @code.
27447 2024-06-17  Peter Bergner  <bergner@linux.ibm.com>
27449         PR target/115389
27450         * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Compute
27451         rop_hash_save_offset for non-Altivec compiles.
27453 2024-06-17  Jeff Law  <jlaw@ventanamicro.com>
27455         * config/riscv/bitmanip.md (bsetdi_2): New pattern.
27457 2024-06-17  Richard Biener  <rguenther@suse.de>
27459         PR tree-optimization/115508
27460         * tree-vect-slp.cc (vect_schedule_slp_node): Guard check on
27461         representative.
27463 2024-06-17  Richard Biener  <rguenther@suse.de>
27465         Revert:
27466         2024-05-06  Richard Biener  <rguenther@suse.de>
27468         PR tree-optimization/100923
27469         * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize
27470         base SSA_NAME.
27471         (vn_reference_lookup_3): Adjust vn_context_bb around calls
27472         to ao_ref_init_from_vn_reference.
27473         (vn_reference_lookup_pieces): Revert original PR100923 fix.
27474         (vn_reference_lookup): Likewise.
27476 2024-06-17  Aldy Hernandez  <aldyh@redhat.com>
27478         * data-streamer-in.cc (streamer_read_value_range): Rename
27479         Value_Range to value_range.
27480         * data-streamer.h (streamer_read_value_range): Same.
27481         * gimple-pretty-print.cc (dump_ssaname_info): Same.
27482         * gimple-range-cache.cc (ssa_block_ranges::dump): Same.
27483         (ssa_lazy_cache::merge): Same.
27484         (block_range_cache::dump): Same.
27485         (ssa_cache::merge_range): Same.
27486         (ssa_cache::dump): Same.
27487         (ranger_cache::edge_range): Same.
27488         (ranger_cache::propagate_cache): Same.
27489         (ranger_cache::fill_block_cache): Same.
27490         (ranger_cache::resolve_dom): Same.
27491         (ranger_cache::range_from_dom): Same.
27492         (ranger_cache::register_inferred_value): Same.
27493         * gimple-range-fold.cc (op1_range): Same.
27494         (op2_range): Same.
27495         (fold_relations): Same.
27496         (fold_using_range::range_of_range_op): Same.
27497         (fold_using_range::range_of_phi): Same.
27498         (fold_using_range::range_of_call): Same.
27499         (fold_using_range::condexpr_adjust): Same.
27500         (fold_using_range::range_of_cond_expr): Same.
27501         (fur_source::register_outgoing_edges): Same.
27502         * gimple-range-fold.h (gimple_range_type): Same.
27503         (gimple_range_ssa_p): Same.
27504         * gimple-range-gori.cc (gori_compute::compute_operand_range): Same.
27505         (gori_compute::logical_combine): Same.
27506         (gori_compute::refine_using_relation): Same.
27507         (gori_compute::compute_operand1_range): Same.
27508         (gori_compute::compute_operand2_range): Same.
27509         (gori_compute::compute_operand1_and_operand2_range): Same.
27510         (gori_calc_operands): Same.
27511         (gori_name_helper): Same.
27512         * gimple-range-infer.cc (gimple_infer_range::check_assume_func): Same.
27513         (gimple_infer_range::gimple_infer_range): Same.
27514         (infer_range_manager::maybe_adjust_range): Same.
27515         (infer_range_manager::add_range): Same.
27516         * gimple-range-infer.h: Same.
27517         * gimple-range-op.cc
27518         (gimple_range_op_handler::gimple_range_op_handler): Same.
27519         (gimple_range_op_handler::calc_op1): Same.
27520         (gimple_range_op_handler::calc_op2): Same.
27521         (gimple_range_op_handler::maybe_builtin_call): Same.
27522         * gimple-range-path.cc (path_range_query::internal_range_of_expr): Same.
27523         (path_range_query::ssa_range_in_phi): Same.
27524         (path_range_query::compute_ranges_in_phis): Same.
27525         (path_range_query::compute_ranges_in_block): Same.
27526         (path_range_query::add_to_exit_dependencies): Same.
27527         * gimple-range-trace.cc (debug_seed_ranger): Same.
27528         * gimple-range.cc (gimple_ranger::range_of_expr): Same.
27529         (gimple_ranger::range_on_entry): Same.
27530         (gimple_ranger::range_on_edge): Same.
27531         (gimple_ranger::range_of_stmt): Same.
27532         (gimple_ranger::prefill_stmt_dependencies): Same.
27533         (gimple_ranger::register_inferred_ranges): Same.
27534         (gimple_ranger::register_transitive_inferred_ranges): Same.
27535         (gimple_ranger::export_global_ranges): Same.
27536         (gimple_ranger::dump_bb): Same.
27537         (assume_query::calculate_op): Same.
27538         (assume_query::calculate_phi): Same.
27539         (assume_query::dump): Same.
27540         (dom_ranger::range_of_stmt): Same.
27541         * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Same.
27542         (ipa_vr_operation_and_type_effects): Same.
27543         (ipa_value_range_from_jfunc): Same.
27544         (propagate_bits_across_jump_function): Same.
27545         (propagate_vr_across_jump_function): Same.
27546         (ipcp_store_vr_results): Same.
27547         * ipa-cp.h: Same.
27548         * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Same.
27549         (evaluate_properties_for_edge): Same.
27550         * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
27551         (ipa_vr::get_vrange): Same.
27552         (ipa_vr::streamer_read): Same.
27553         (ipa_vr::streamer_write): Same.
27554         (ipa_vr::dump): Same.
27555         (ipa_set_jfunc_vr): Same.
27556         (ipa_compute_jump_functions_for_edge): Same.
27557         (ipcp_get_parm_bits): Same.
27558         (ipcp_update_vr): Same.
27559         (ipa_record_return_value_range): Same.
27560         (ipa_return_value_range): Same.
27561         * ipa-prop.h (ipa_return_value_range): Same.
27562         (ipa_record_return_value_range): Same.
27563         * range-op.h (range_cast): Same.
27564         * tree-ssa-dom.cc
27565         (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
27566         (cprop_operand): Same.
27567         * tree-ssa-loop-ch.cc (loop_static_stmt_p): Same.
27568         * tree-ssa-loop-niter.cc (record_nonwrapping_iv): Same.
27569         * tree-ssa-loop-split.cc (split_at_bb_p): Same.
27570         * tree-ssa-phiopt.cc (value_replacement): Same.
27571         * tree-ssa-strlen.cc (get_range): Same.
27572         * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
27573         (hybrid_jt_simplifier::compute_exit_dependencies): Same.
27574         * tree-ssanames.cc (set_range_info): Same.
27575         (duplicate_ssa_name_range_info): Same.
27576         * tree-vrp.cc (remove_unreachable::handle_early): Same.
27577         (remove_unreachable::remove_and_update_globals): Same.
27578         (execute_ranger_vrp): Same.
27579         * value-query.cc (range_query::value_of_expr): Same.
27580         (range_query::value_on_edge): Same.
27581         (range_query::value_of_stmt): Same.
27582         (range_query::value_on_entry): Same.
27583         (range_query::value_on_exit): Same.
27584         (range_query::get_tree_range): Same.
27585         * value-range-storage.cc (vrange_storage::set_vrange): Same.
27586         * value-range.cc (Value_Range::dump): Same.
27587         (value_range::dump): Same.
27588         (debug): Same.
27589         * value-range.h (enum value_range_discriminator): Same.
27590         (class vrange): Same.
27591         (class Value_Range): Same.
27592         (class value_range): Same.
27593         (Value_Range::Value_Range): Same.
27594         (value_range::value_range): Same.
27595         (Value_Range::~Value_Range): Same.
27596         (value_range::~value_range): Same.
27597         (Value_Range::set_type): Same.
27598         (value_range::set_type): Same.
27599         (Value_Range::init): Same.
27600         (value_range::init): Same.
27601         (Value_Range::operator=): Same.
27602         (value_range::operator=): Same.
27603         (Value_Range::operator==): Same.
27604         (value_range::operator==): Same.
27605         (Value_Range::operator!=): Same.
27606         (value_range::operator!=): Same.
27607         (Value_Range::supports_type_p): Same.
27608         (value_range::supports_type_p): Same.
27609         * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Same.
27610         (simplify_using_ranges::legacy_fold_cond): Same.
27612 2024-06-17  Hu, Lin1  <lin1.hu@intel.com>
27614         PR target/115161
27615         * config/i386/i386-builtin.def: Change CODE_FOR_* for cvtt*'s builtins.
27616         * config/i386/sse.md:
27617         (unspec_avx512fp16_fix<vcvtt_uns_suffix>
27618         _trunc<mode>2<mask_name><round_saeonly_name>):
27619         Use UNSPEC instead of FIX/UNSIGNED_FIX.
27620         (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<mask_name>):
27621         Ditto.
27622         (unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncv2di2<mask_name>): Ditto.
27623         (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<round_saeonly_name>):
27624         Ditto.
27625         (unspec_sse_cvttps2pi): Ditto.
27626         (unspec_sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Ditto.
27627         (unspec_fix<vcvtt_uns_suffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):
27628         Ditto.
27629         (unspec_fix_truncv8sfv8si2<mask_name>): Ditto.
27630         (unspec_fix_truncv4sfv4si2<mask_name>): Ditto.
27631         (unspec_sse2_cvttpd2pi): Ditto.
27632         (unspec_fixuns_truncv2dfv2si2): Ditto.
27633         (unspec_avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>):
27634         Ditto.
27635         (unspec_avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>):
27636         Ditto.
27637         (unspec_sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>): Ditto.
27638         (unspec_fix<vcvtt_uns_suffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
27639         Ditto.
27640         (*unspec_fixuns_truncv2dfv2si2): Ditto.
27641         (unspec_fixuns_truncv2dfv2si2_mask): Ditto.
27642         (unspec_fix_truncv4dfv4si2<mask_name>): Ditto.
27643         (unspec_fixuns_truncv4dfv4si2<mask_name>): Ditto.
27644         (unspec_fix<vcvtt_uns_suffix>
27645         _trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>):
27646         Ditto.
27647         (unspec_fix<vcvtt_uns_suffix>
27648         _trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
27649         Ditto.
27650         (unspec_avx512dq_fix<vcvtt_uns_suffix>_truncv2sfv2di2<mask_name>):
27651         Ditto.
27652         (<mask_codefor>unspec_fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
27653         Ditto.
27654         (unspec_sse2_cvttpd2dq<mask_name>): Ditto.
27656 2024-06-17  Levy Hsu  <admin@levyhsu.com>
27658         * config/i386/i386-expand.cc
27659         (ix86_vectorize_vec_perm_const): Convert BF to HI using subreg.
27660         * config/i386/predicates.md
27661         (vcvtne2ps2bf_parallel): New define_insn_and_split.
27662         * config/i386/sse.md
27663         (vpermt2_sepcial_bf16_shuffle_<mode>): New predicates matches odd increasing perm.
27665 2024-06-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
27667         * config/s390/vector.md (*vmrhf_half<mode>): New.
27668         (extendv2sfv2df2): New.
27670 2024-06-17  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
27672         PR target/115261
27673         * config/s390/s390.md (any_extend,extend_insn,zero_extend):
27674         New code attributes and code iterator.
27675         * config/s390/vector.md (V_EXTEND): New mode iterator.
27676         (<extend_insn><V_EXTEND:mode><vec_2x_wide>2): New insn.
27678 2024-06-16  Andrew Pinski  <quic_apinski@quicinc.com>
27680         PR target/100211
27681         * config/aarch64/aarch64.h (machine_function): Fix the size
27682         of reg_is_wrapped_separately.
27684 2024-06-16  Jeff Law  <jlaw@ventanamicro.com>
27686         * config/riscv/bitmanip.md ((1 << N) | C): New splitter for IOR/XOR
27687         of a single bit an a DImode object.
27689 2024-06-16  Jeff Law  <jlaw@ventanamicro.com>
27691         * config/sh/sh.md (neg_zero_extract_4b): New pattern.
27693 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
27695         * pretty-print.cc (mingw_ansi_fputs): Don't translate escape sequences if
27696         the console has ENABLE_VIRTUAL_TERMINAL_PROCESSING.
27698 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
27700         * diagnostic-color.cc (auto_enable_urls): Don't hardcode to return
27701         false on mingw hosts.
27702         (auto_enable_urls): Return true if console
27703         supports ansi escape sequences.
27705 2024-06-16  Peter Damianov  <peter0x44@disroot.org>
27707         * diagnostic-color.cc (should_colorize): Enable processing of VT100
27708         escape sequences on windows consoles
27710 2024-06-15  Christoph Müllner  <christoph.muellner@vrull.eu>
27712         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
27713         Fix allocation size of buffer.
27714         (riscv_process_one_target_attr): Likewise.
27715         (riscv_process_target_attr): Likewise.
27717 2024-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
27719         PR target/69374
27720         * doc/install.texi (Specific): Remove pointer to old versions
27721         of binutils.
27723 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
27725         * gimple-range-gori.cc (gori_calc_operands): Do not continue nor
27726         add the range when VARYING is produced for an operand.
27728 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
27730         * gimple-range-cache.cc (ssa_lazy_cache::merge): New.
27731         * gimple-range-cache.h (ssa_lazy_cache::merge): New prototype.
27733 2024-06-14  Andrew MacLeod  <amacleod@redhat.com>
27735         * gimple-range-fold.cc (fold_using_range::range_of_call): Ensure
27736         LHS is an SSA_NAME before invoking gimple_range_global.
27738 2024-06-14  Pan Li  <pan2.li@intel.com>
27740         * match.pd: Add more match for unsigned sat_sub.
27741         * tree-ssa-math-opts.cc (match_unsigned_saturation_sub): Add new
27742         func impl to match phi node for .SAT_SUB.
27743         (math_opts_dom_walker::after_dom_children): Try match .SAT_SUB
27744         for the phi node, MULT_EXPR, BIT_XOR_EXPR and BIT_AND_EXPR.
27746 2024-06-14  Jan Beulich  <jbeulich@suse.com>
27748         * configure.ac: Drop ${objdir}/ from NM and AR. Move setting of
27749         ld_ver out of conditional.
27750         * configure: Re-generate.
27752 2024-06-14  Richard Biener  <rguenther@suse.de>
27754         * tree-vect-loop.cc (vectorizable_reduction): Allow
27755         single-def-use cycles with SLP.
27756         (vect_transform_reduction): Handle SLP single def-use cycles.
27757         (vect_transform_cycle_phi): Likewise.
27759 2024-06-14  Gerald Pfeifer  <gerald@pfeifer.com>
27761         * doc/invoke.texi (x86 Options): Consolidate duplicate MOVBE
27762         listings for haswell, broadwell, skylake, skylake-avx512,
27763         cannonlake, icelake-client, icelake-server, cascadelake,
27764         cooperlake, tigerlake, sapphirerapids, rocketlake, graniterapids,
27765         and graniterapids-d options to -march.
27767 2024-06-14  Pan Li  <pan2.li@intel.com>
27769         PR target/115456
27770         * config/riscv/vector-iterators.md: Leverage V_ZVFH instead of V
27771         which contains the VF_ZVFHMIN for alignment.
27773 2024-06-14  Gerald Pfeifer  <gerald@pfeifer.com>
27775         PR target/69374
27776         * doc/install.texi (Specific): Remove stale reference to Interix.
27778 2024-06-14  Richard Biener  <rguenther@suse.de>
27780         * tree-vect-stmts.cc (get_group_load_store_type): Do not
27781         re-use poly-int remain but re-compute with non-poly values.
27782         Verify the shortened load is good enough to be covered with
27783         a single scalar gap iteration before accepting it.
27785 2024-06-14  liuhongt  <hongtao.liu@intel.com>
27787         * config/i386/i386.cc (ix86_rtx_costs): Adjust rtx_cost for
27788         pternlog_operand under AVX512, also adjust VEC_DUPLICATE
27789         according since vec_dup:mem can't be that cheap.
27791 2024-06-14  liuhongt  <hongtao.liu@intel.com>
27793         * config/i386/x86-tune.def (X86_TUNE_ONE_IF_CONV_INSN): Remove
27794         latest Intel processors.
27795         Co-authored by: Lingling Kong <lingling.kong@intel.com>
27797 2024-06-14  Roger Sayle  <roger@nextmovesoftware.com>
27799         * config/i386/i386-expand.cc (ix86_expand_ternlog): Try performing
27800         logic operation in a different vector mode if that enables use of
27801         a 32-bit or 64-bit broadcast addressing mode.
27803 2024-06-14  Andrew Pinski  <quic_apinski@quicinc.com>
27805         PR middle-end/113212
27806         * expr.h (const_seqpops): New typedef.
27807         (expand_expr_real_2): Constify the first argument.
27808         * optabs.cc (expand_widen_pattern_expr): Likewise.
27809         * optabs.h (expand_widen_pattern_expr): Likewise.
27810         * expr.cc (expand_expr_real_2):  Likewise
27811         (do_store_flag): Likewise. Remove incorrect store to ops->code.
27813 2024-06-13  Patrick O'Neill  <patrick@rivosinc.com>
27815         * config/riscv/sync-rvwmo.md: Add support for subword fenced
27816         loads/stores.
27817         * config/riscv/sync-ztso.md: Ditto.
27818         * config/riscv/sync.md: Ditto.
27820 2024-06-13  Gerald Pfeifer  <gerald@pfeifer.com>
27822         * doc/extend.texi (AArch64 Function Attributes): Add
27823         (AVR Variable Attributes): Ditto.
27824         (Common Type Attributes): Ditto.
27826 2024-06-13  Hongyu Wang  <hongyu.wang@intel.com>
27828         PR target/115370
27829         PR target/115463
27830         * target.def (have_ccmp): New target hook.
27831         * targhooks.cc (default_have_ccmp): New function.
27832         * targhooks.h (default_have_ccmp): New prototype.
27833         * doc/tm.texi.in: Add TARGET_HAVE_CCMP.
27834         * doc/tm.texi: Regenerate.
27835         * cfgexpand.cc (expand_gimple_cond): Call targetm.have_ccmp
27836         instead of checking if targetm.gen_ccmp_first exists.
27837         * expr.cc (expand_expr_real_gassign): Likewise.
27838         * config/i386/i386.cc (ix86_have_ccmp): New target hook to
27839         check if APX_CCMP enabled.
27840         (TARGET_HAVE_CCMP): Define.
27842 2024-06-13  Richard Sandiford  <richard.sandiford@arm.com>
27844         PR target/115464
27845         * simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
27846         to fold two subregs together if their relationship isn't known
27847         at compile time.
27848         * explow.h (force_subreg): Declare.
27849         * explow.cc (force_subreg): New function.
27850         * config/aarch64/aarch64-sve-builtins-base.cc
27851         (svset_neonq_impl::expand): Use it instead of simplify_gen_subreg.
27853 2024-06-13  Pan Li  <pan2.li@intel.com>
27855         PR target/115456
27856         * config/riscv/autovec.md: Take ZVFH mode iterator instead of
27857         the ZVFHMIN for the alignment.
27858         * config/riscv/vector-iterators.md: Add 2 new iterator
27859         V_VLS_ZVFH and VLS_ZVFH.
27861 2024-06-13  Hongyu Wang  <hongyu.wang@intel.com>
27863         * config/i386/i386.md (@ccmp<mode>): Add new alternative
27864         <r>,C and adjust output templates. Also adjust UNSPEC mode
27865         to CCmode.
27867 2024-06-13  Gerald Pfeifer  <gerald@pfeifer.com>
27869         PR other/69374
27870         * doc/install.texi (Prerequisites): Simplify note on the C++
27871         compiler required. Drop requirements for versions of GCC prior
27872         to 3.4. Fix grammar.
27874 2024-06-13  Richard Biener  <rguenther@suse.de>
27876         * tree-vect-stmts.cc (get_group_load_store_type): Consistently
27877         use VMAT_STRIDED_SLP for strided SLP accesses and not
27878         VMAT_ELEMENTWISE.
27879         (vectorizable_store): Adjust VMAT_STRIDED_SLP handling to
27880         allow not only half-size but also smaller accesses.
27881         (vectorizable_load): Likewise.
27883 2024-06-13  Richard Biener  <rguenther@suse.de>
27885         PR tree-optimization/115385
27886         * tree-vect-stmts.cc (get_group_load_store_type): Peeling
27887         of a single scalar iteration is sufficient if we can narrow
27888         the access to the next power of two of the bits in the last
27889         access.
27890         (vectorizable_load): Ensure that the last access is narrowed.
27892 2024-06-13  Richard Biener  <rguenther@suse.de>
27894         PR tree-optimization/114107
27895         PR tree-optimization/110445
27896         * tree-vect-stmts.cc (get_group_load_store_type): Refactor
27897         contiguous access case.  Make sure peeling for gap constraints
27898         are always tested and consistently relax when we know we can
27899         avoid touching excess elements during code generation.  But
27900         rewrite the check poly-int aware.
27902 2024-06-13  Andi Kleen  <ak@linux.intel.com>
27904         * doc/extend.texi: Use std::string_view in asm constexpr
27905         example.
27907 2024-06-13  liuhongt  <hongtao.liu@intel.com>
27909         PR target/115452
27910         * config/i386/i386-features.cc (scalar_chain::convert_op): Use
27911         reg_or_subregno instead of REGNO to avoid ICE.
27913 2024-06-13  YunQiang Su  <syq@gcc.gnu.org>
27915         * config/mips/mips-cpus.def: Use PROCESSOR_24KF1_1 for mips32;
27916         Use PROCESSOR_5KF for mips64/mips64r2/mips64r3/mips64r5.
27918 2024-06-13  YunQiang Su  <syq@gcc.gnu.org>
27920         * config/mips/mips-modes.def: New CC_MODE CCE.
27921         * config/mips/mips-protos.h(mips_output_compare): New function.
27922         * config/mips/mips.cc(mips_allocate_fcc): Set CCEmode count=1.
27923         (mips_emit_compare): Use CCEmode for LTGT/LT/LE for pre-R6.
27924         (mips_output_compare): New function. Convert lt/le to slt/sle
27925         for R6; convert ueq to ngl for CCEmode.
27926         (mips_hard_regno_mode_ok_uncached): Mention CCEmode.
27927         * config/mips/mips.h: Mention CCEmode for LOAD_EXTEND_OP.
27928         * config/mips/mips.md(FPCC): Add CCE.
27929         (define_mode_iterator MOVECC): Mention CCE.
27930         (define_mode_attr reg): Add CCE with "z".
27931         (define_mode_attr fpcmp): Add CCE with "c".
27932         (define_code_attr fcond): ltgt should use sne instead of ne.
27933         (s<code>_<SCALARF:mode>_using_<FPCC:mode>): call mips_output_compare.
27935 2024-06-13  Lingling Kong  <lingling.kong@intel.com>
27937         * config/i386/i386-opts.h (enum apx_features): Add apx_zu.
27938         * config/i386/i386.h (TARGET_APX_ZU): Define.
27939         * config/i386/i386.md (*imulhi<mode>zu): New define_insn.
27940         (*setcc_<mode>_zu): Ditto.
27941         * config/i386/i386.opt: Add enum value for zu.
27943 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
27945         PR bootstrap/115465
27946         * config/aarch64/aarch64-early-ra.cc (early_ra::process_block):
27947         Update for fields of pretty_printer becoming private in
27948         r15-1209-gc5e3be456888aa.
27950 2024-06-12  Andrew Pinski  <quic_apinski@quicinc.com>
27952         PR target/115176
27953         * config/aarch64/aarch64-simd.md (aarch64_rbit<mode><vczle><vczbe>): Use
27954         bitreverse instead of unspec.
27955         * config/aarch64/aarch64-sve-builtins-base.cc (svrbit): Convert over to using
27956         rtx_code_function instead of unspec_based_function.
27957         * config/aarch64/aarch64-sve.md: Update comment where RBIT is included.
27958         * config/aarch64/aarch64.cc (aarch64_rtx_costs): Handle BITREVERSE like BSWAP.
27959         Remove UNSPEC_RBIT support.
27960         * config/aarch64/aarch64.md (unspec): Remove UNSPEC_RBIT.
27961         (aarch64_rbit<mode>): Use bitreverse instead of unspec.
27962         * config/aarch64/iterators.md (SVE_INT_UNARY): Add bitreverse.
27963         (optab): Likewise.
27964         (sve_int_op): Likewise.
27965         (SVE_INT_UNARY): Remove UNSPEC_RBIT.
27966         (optab): Likewise.
27967         (sve_int_op): Likewise.
27968         (min_elem_bits): Likewise.
27970 2024-06-12  Andrew Pinski  <quic_apinski@quicinc.com>
27972         PR tree-optimization/115449
27973         * gimple-match-head.cc (gimple_maybe_truncate): New declaration.
27974         (gimple_bitwise_equal_p): Match truncations that differ only
27975         in types with the same precision.
27976         (gimple_bitwise_inverted_equal_p): For matching after bit_not_with_nop
27977         call gimple_bitwise_equal_p.
27978         * match.pd (maybe_truncate): New match pattern.
27980 2024-06-12  Victor Do Nascimento  <victor.donascimento@arm.com>
27982         PR tree-optimization/114061
27983         * tree-data-ref.cc (get_references_in_stmt): set
27984         `clobbers_memory' to false for __builtin_prefetch.
27985         * tree-vect-loop.cc (vect_transform_loop): Drop all
27986         __builtin_prefetch calls from loops.
27988 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
27990         * dumpfile.cc (dump_pretty_printer::emit_items): Update for
27991         changes to chunk_info.
27992         * pretty-print.cc (chunk_info::append_formatted_chunk): New, based
27993         on code in cp/error.cc's append_formatted_chunk.
27994         (chunk_info::pop_from_output_buffer): New, based on code in
27995         pp_output_formatted_text and dump_pretty_printer::emit_items.
27996         (on_begin_quote): Convert to...
27997         (chunk_info::on_begin_quote): ...this.
27998         (on_end_quote): Convert to...
27999         (chunk_info::on_end_quote): ...this.
28000         (pretty_printer::format): Update for chunk_info becoming a class
28001         and its fields gaining "m_" prefixes.  Update for on_begin_quote
28002         and on_end_quote moving to chunk_info.
28003         (quoting_info::handle_phase_3): Update for changes to chunk_info.
28004         (pp_output_formatted_text): Likewise.  Move cleanup code to
28005         chunk_info::pop_from_output_buffer.
28006         * pretty-print.h (class output_buffer): New forward decl.
28007         (class urlifier): New forward decl.
28008         (struct chunk_info): Convert to...
28009         (class chunk_info): ...this.  Add friend class pretty_printer.
28010         (chunk_info::get_args): New accessor.
28011         (chunk_info::get_quoting_info): New accessor.
28012         (chunk_info::append_formatted_chunk): New decl.
28013         (chunk_info::pop_from_output_buffer): New decl.
28014         (chunk_info::on_begin_quote): New decl.
28015         (chunk_info::on_end_quote): New decl.
28016         (chunk_info::prev): Rename to...
28017         (chunk_info::m_prev): ...this.
28018         (chunk_info::args): Rename to...
28019         (chunk_info::m_args): ...this.
28020         (output_buffer::cur_chunk_array): Drop "struct" from decl.
28022 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
28024         * diagnostic.cc (diagnostic_context::urls_init): Update for fields
28025         of pretty_printer becoming private.
28026         (diagnostic_context::print_any_cwe): Likewise.
28027         (diagnostic_context::print_any_rules): Likewise.
28028         (diagnostic_context::print_option_information): Likewise.
28029         * diagnostic.h (diagnostic_format_decoder): Likewise.
28030         (diagnostic_prefixing_rule): Likewise, fixing typo.
28031         * digraph.cc (test_dump_to_dot): Likewise.
28032         * digraph.h (digraph<GraphTraits>::dump_dot_to_file): Likewise.
28033         * dumpfile.cc
28034         (dump_pretty_printer::emit_any_pending_textual_chunks): Likewise.
28035         * gimple-pretty-print.cc (print_gimple_stmt): Likewise.
28036         (print_gimple_expr): Likewise.
28037         (print_gimple_seq): Likewise.
28038         (dump_ssaname_info_to_file): Likewise.
28039         (gimple_dump_bb): Likewise.
28040         * graph.cc (print_graph_cfg): Likewise.
28041         (start_graph_dump): Likewise.
28042         * langhooks.cc (lhd_print_error_function): Likewise.
28043         * lto-wrapper.cc (print_lto_docs_link): Likewise.
28044         * pretty-print.cc (pp_set_real_maximum_length): Convert to...
28045         (pretty_printer::set_real_maximum_length): ...this.
28046         (pp_clear_state): Convert to...
28047         (pretty_printer::clear_state): ...this.
28048         (pp_wrap_text): Update for pp_remaining_character_count_for_line
28049         becoming a member function.
28050         (urlify_quoted_string): Update for fields of pretty_printer becoming
28051         private.
28052         (pp_format): Convert to...
28053         (pretty_printer::format): ...this.  Reduce the scope of local
28054         variables "old_line_length" and "old_wrapping_mode" and make
28055         const.  Reduce the scope of locals "args", "new_chunk_array",
28056         "curarg", "any_unnumbered", and "any_numbered".
28057         (pp_output_formatted_text): Update for fields of pretty_printer
28058         becoming private.
28059         (pp_flush): Likewise.
28060         (pp_really_flush): Likewise.
28061         (pp_set_line_maximum_length): Likewise.
28062         (pp_set_prefix): Convert to...
28063         (pretty_printer::set_prefix): ...this.
28064         (pp_take_prefix): Update for fields of pretty_printer gaining
28065         "m_" prefixes.
28066         (pp_destroy_prefix): Likewise.
28067         (pp_emit_prefix): Convert to...
28068         (pretty_printer::emit_prefix): ...this.
28069         (pretty_printer::pretty_printer): Update both ctors for fields
28070         gaining "m_"  prefixes.
28071         (pretty_printer::~pretty_printer): Likewise for dtor.
28072         (pp_append_text): Update for pp_emit_prefix becoming
28073         pretty_printer::emit_prefix.
28074         (pp_remaining_character_count_for_line): Convert to...
28075         (pretty_printer::remaining_character_count_for_line): ...this.
28076         (pp_character): Update for above change.
28077         (pp_maybe_space): Convert to...
28078         (pretty_printer::maybe_space): ...this.
28079         (pp_begin_url): Convert to...
28080         (pretty_printer::begin_url): ...this.
28081         (get_end_url_string): Update for fields of pretty_printer
28082         becoming private.
28083         (pp_end_url): Convert to...
28084         (pretty_printer::end_url): ...this.
28085         (selftest::test_pretty_printer::test_pretty_printer): Update for
28086         fields of pretty_printer becoming private.
28087         (selftest::test_urls): Likewise.
28088         (selftest::test_null_urls): Likewise.
28089         (selftest::test_urlification): Likewise.
28090         * pretty-print.h (pp_line_cutoff): Convert from macro to inline
28091         function.
28092         (pp_prefixing_rule): Likewise.
28093         (pp_wrapping_mode): Likewise.
28094         (pp_format_decoder): Likewise.
28095         (pp_needs_newline): Likewise.
28096         (pp_indentation): Likewise.
28097         (pp_translate_identifiers): Likewise.
28098         (pp_show_color): Likewise.
28099         (pp_buffer): Likewise.
28100         (pp_get_prefix): Add forward decl to allow friend decl.
28101         (pp_take_prefix): Likewise.
28102         (pp_destroy_prefix): Likewise.
28103         (class pretty_printer): Fix typo in leading comment.  Add
28104         "friend" decls for the various new accessor functions that were
28105         formerly macros and for pp_get_prefix, pp_take_prefix, and
28106         pp_destroy_prefix.  Make all fields private.
28107         (pretty_printer::set_output_stream): New.
28108         (pretty_printer::set_prefix): New decl.
28109         (pretty_printer::emit_prefix): New decl.
28110         (pretty_printer::format): New decl.
28111         (pretty_printer::maybe_space): New decl.
28112         (pretty_printer::supports_urls_p): New.
28113         (pretty_printer::get_url_format): New.
28114         (pretty_printer::set_url_format): New.
28115         (pretty_printer::begin_url): New decl.
28116         (pretty_printer::end_url): New decl.
28117         (pretty_printer::set_verbatim_wrapping): New.
28118         (pretty_printer::set_padding): New.
28119         (pretty_printer::get_padding): New.
28120         (pretty_printer::clear_state): New decl.
28121         (pretty_printer::set_real_maximum_length): New decl.
28122         (pretty_printer::remaining_character_count_for_line): New decl.
28123         (pretty_printer::buffer): Rename to...
28124         (pretty_printer::m_buffer): ...this.
28125         (pretty_printer::prefix): Rename to...
28126         (pretty_printer::m_prefix): ...this;
28127         (pretty_printer::padding): Rename to...
28128         (pretty_printer::m_padding): ...this;
28129         (pretty_printer::maximum_length): Rename to...
28130         (pretty_printer::m_maximum_length): ...this;
28131         (pretty_printer::indent_skip): Rename to...
28132         (pretty_printer::m_indent_skip): ...this;
28133         (pretty_printer::wrapping): Rename to...
28134         (pretty_printer::m_wrapping): ...this;
28135         (pretty_printer::format_decoder): Rename to...
28136         (pretty_printer::m_format_decoder): ...this;
28137         (pretty_printer::emitted_prefix): Rename to...
28138         (pretty_printer::m_emitted_prefix): ...this;
28139         (pretty_printer::need_newline): Rename to...
28140         (pretty_printer::m_need_newline): ...this;
28141         (pretty_printer::translate_identifiers): Rename to...
28142         (pretty_printer::m_translate_identifiers): ...this;
28143         (pretty_printer::show_color): Rename to...
28144         (pretty_printer::m_show_color): ...this;
28145         (pretty_printer::url_format): Rename to...
28146         (pretty_printer::m_url_format): ...this;
28147         (pp_get_prefix): Reformat.
28148         (pp_format_postprocessor): New inline function.
28149         (pp_take_prefix): Move decl to before class pretty_printer.
28150         (pp_destroy_prefix): Likewise.
28151         (pp_set_prefix): Convert to inline function.
28152         (pp_emit_prefix): Convert to inline function.
28153         (pp_format): Convert to inline function.
28154         (pp_maybe_space): Convert to inline function.
28155         (pp_begin_url): Convert to inline function.
28156         (pp_end_url): Convert to inline function.
28157         (pp_set_verbatim_wrapping): Convert from macro to inline
28158         function, renaming...
28159         (pp_set_verbatim_wrapping_): ...this.
28160         * print-rtl.cc (dump_value_slim): Update for fields of
28161         pretty_printer becoming private.
28162         (dump_insn_slim): Likewise.
28163         (dump_rtl_slim): Likewise.
28164         * print-tree.cc (print_node): Likewise.
28165         * sched-rgn.cc (dump_rgn_dependencies_dot): Likewise.
28166         * text-art/canvas.cc (canvas::print_to_pp): Likewise.
28167         (canvas::debug): Likewise.
28168         (selftest::test_canvas_urls): Likewise.
28169         * text-art/dump.h (dump_to_file): Likewise.
28170         * text-art/selftests.cc (selftest::assert_canvas_streq): Likewise.
28171         * text-art/style.cc (style::print_changes): Likewise.
28172         * text-art/styled-string.cc (styled_string::from_fmt_va):
28173         Likewise.
28174         * tree-diagnostic-path.cc (control_flow_tests): Update for
28175         pp_show_color becoming an inline function.
28176         * tree-loop-distribution.cc (dot_rdg_1): Update for fields of
28177         pretty_printer becoming private.
28178         * tree-pretty-print.cc (maybe_init_pretty_print): Likewise.
28179         * value-range.cc (vrange::dump): Likewise.
28180         (irange_bitmask::dump): Likewise.
28182 2024-06-12  David Malcolm  <dmalcolm@redhat.com>
28184         * gimple-pretty-print.cc: Rename pretty_printer "buffer" to "pp"
28185         throughout.
28186         * print-tree.cc (print_node): Likewise.
28187         * tree-loop-distribution.cc (dot_rdg_1): Likewise.
28188         * tree-pretty-print.h (dump_location): Likewise.
28189         * value-range.cc (vrange::dump): Likewise.
28190         (irange_bitmask::dump): Likewise.
28192 2024-06-12  Xi Ruoyao  <xry111@xry111.site>
28194         * config/loongarch/predicates.md (high_bitmask_operand): New
28195         predicate.
28196         * config/loongarch/constraints.md (Yy): New constriant.
28197         * config/loongarch/loongarch.md (and<mode>3_align): New
28198         define_insn_and_split.
28200 2024-06-12  Xi Ruoyao  <xry111@xry111.site>
28202         * config/loongarch/loongarch.cc
28203         (loongarch_expand_conditional_move): Compare mode size with
28204         UNITS_PER_WORD instead of word_mode.
28206 2024-06-12  Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
28207             Yvan ROUX  <yvan.roux@foss.st.com>
28209         PR target/115253
28210         * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
28211         Sign extend for Thumb1.
28212         (thumb1_expand_prologue): Add zero/sign extend.
28214 2024-06-12  Gerald Pfeifer  <gerald@pfeifer.com>
28216         PR target/69374
28217         * doc/install.texi (Specific) <*-*-cygwin>: Update web link.
28219 2024-06-12  Pan Li  <pan2.li@intel.com>
28221         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children):
28222         Leverage gsi_after_labels instead of gsi_start_bb to skip the
28223         leading labels of bb.
28225 2024-06-12  Gerald Pfeifer  <gerald@pfeifer.com>
28227         PR target/69374
28228         * doc/install.texi (Specific) <*-*-linux-gnu>: Do not list
28229         glibc 2.1 and binutils 2.12 as minimum dependencies.
28231 2024-06-12  Alexandre Oliva  <oliva@adacore.com>
28233         PR tree-optimization/113681
28234         * tree-profile.cc (pass_ipa_tree_profile::gate): Skip if
28235         seen_errors.
28237 2024-06-12  liuhongt  <hongtao.liu@intel.com>
28239         PR target/115384
28240         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
28241         Only do the simplification of (AND (ASHIFTRT A imm) mask)
28242         to (LSHIFTRT A imm) when the component of const_vector is
28243         CONST_INT_P.
28245 2024-06-11  Joseph Myers  <josmyers@redhat.com>
28247         * doc/cpp.texi (__STDC_VERSION__): Document C2Y handling.
28248         * doc/invoke.texi (-Wc23-c2y-compat, -std=c2y, -std=gnu2y):
28249         Document options.
28250         (-std=gnu23): Update documentation.
28251         * doc/standards.texi (C Language): Document C2Y.  Update C23
28252         description.
28253         * config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y"
28254         language name.
28255         * dwarf2out.cc (highest_c_language, gen_compile_unit_die):
28256         Likewise.
28258 2024-06-11  Gerald Pfeifer  <gerald@pfeifer.com>
28260         PR target/69374
28261         * doc/install.texi (Specific) <x86_64-*-solaris2*>: Remove
28262         redundant introduction of x86-64.
28264 2024-06-11  Robin Dapp  <rdapp@ventanamicro.com>
28266         PR tree-optimization/115382
28267         * tree-vect-loop.cc (vectorize_fold_left_reduction): Use
28268         prepare_vec_mask.
28269         * tree-vect-stmts.cc (check_load_store_for_partial_vectors):
28270         Remove static of prepare_vec_mask.
28271         * tree-vectorizer.h (prepare_vec_mask): Export.
28273 2024-06-11  Patrick O'Neill  <patrick@rivosinc.com>
28275         * config/riscv/sync.md (atomic_<atomic_optab><mode>): New expand pattern.
28276         (amo_atomic_<atomic_optab><mode>): Rename amo pattern.
28277         (atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern.
28278         (lrsc_atomic_<atomic_optab><mode>): New expand pattern.
28279         (amo_atomic_fetch_<atomic_optab><mode>): Rename amo pattern.
28280         (lrsc_atomic_fetch_<atomic_optab><mode>): New lrsc sequence pattern.
28281         (atomic_exchange<mode>): New expand pattern.
28282         (amo_atomic_exchange<mode>): Rename amo pattern.
28283         (lrsc_atomic_exchange<mode>): New lrsc sequence pattern.
28285 2024-06-11  Patrick O'Neill  <patrick@rivosinc.com>
28287         * doc/sourcebuild.texi: Add docs for atomic extension testsuite infra.
28289 2024-06-11  Edwin Lu  <ewlu@rivosinc.com>
28290             Patrick O'Neill  <patrick@rivosinc.com>
28292         * common/config/riscv/riscv-common.cc: Add Zaamo and Zalrsc.
28293         * config/riscv/arch-canonicalize: Make A imply Zaamo and Zalrsc.
28294         * config/riscv/riscv.opt: Add Zaamo and Zalrsc
28295         * config/riscv/sync.md: Convert TARGET_ATOMIC to TARGET_ZAAMO and
28296         TARGET_ZALRSC.
28298 2024-06-11  Uros Bizjak  <ubizjak@gmail.com>
28300         PR target/112600
28301         * config/i386/i386.md (usadd<mode>3): Emit insn sequence
28302         involving conditional move for TARGET_CMOVE targets.
28303         (ussub<mode>3): Ditto.
28305 2024-06-11  Pengxuan Zheng  <quic_pzheng@quicinc.com>
28307         * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_truncate_lo_
28308         builtin codes to standard optab ones.
28309         * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_<mode><vczle><vczbe>):
28310         Rename to...
28311         (trunc<Vwide><mode>2<vczle><vczbe>): ... This.
28313 2024-06-11  Andi Kleen  <ak@linux.intel.com>
28315         * doc/extend.texi: Document constexpr asm.
28317 2024-06-11  Andrew MacLeod  <amacleod@redhat.com>
28319         * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Issue a
28320         message if SCEV is not invoked due to a mismatch.
28322 2024-06-11  Roger Sayle  <roger@nextmovesoftware.com>
28324         PR target/115397
28325         * config/i386/i386-expand.cc (ix86_expand_ternlog): Move call to
28326         ix86_broadcast_from_constant before call to validize_mem, but after
28327         call to force_const_mem.
28329 2024-06-11  Pan Li  <pan2.li@intel.com>
28331         * config/riscv/autovec.md (ussub<mode>3): Add new pattern impl
28332         for the unsigned vector modes.
28333         * config/riscv/riscv-protos.h (expand_vec_ussub): Add new func
28334         decl to expand .SAT_SUB for vector mode.
28335         * config/riscv/riscv-v.cc (emit_vec_saddu): Add new func impl
28336         to expand .SAT_SUB for vector mode.
28337         (emit_vec_binary_alu): Add new helper func to emit binary alu.
28338         (expand_vec_ussub): Leverage above helper func.
28340 2024-06-10  Gerald Pfeifer  <gerald@pfeifer.com>
28342         * doc/gm2.texi (Documentation): Fix typos, grammar, and a link.
28344 2024-06-10  Andrew MacLeod  <amacleod@redhat.com>
28346         * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
28347         Always use current range_query.
28348         (pass_data_array_bounds): New.
28349         (pass_array_bounds): New.
28350         (make_pass_array_bounds): New.
28351         * gimple-array-bounds.h  (array_bounds_checker): Adjust prototype.
28352         * passes.def (pass_array_bounds): New.  Add after VRP1.
28353         * timevar.def (TV_TREE_ARRAY_BOUNDS): New timevar.
28354         * tree-pass.h (make_pass_array_bounds): Add prototype.
28355         * tree-vrp.cc (execute_ranger_vrp): Remove warning param and do
28356         not invoke array bounds warning pass.
28357         (pass_vrp::pass_vrp): Adjust params.
28358         (pass_vrp::close): Adjust parameters.
28359         (pass_vrp::warn_array_bounds_p): Remove.
28360         (make_pass_vrp): Remove warning param.
28361         (make_pass_early_vrp): Remove warning param.
28362         (make_pass_fast_vrp): Remove warning param.
28364 2024-06-10  Raphael Zinsly  <rzinsly@ventanamicro.com>
28366         * config/riscv/bitmanip.md (*bextdisi): New pattern.
28368 2024-06-10  Pan Li  <pan2.li@intel.com>
28370         PR target/115387
28371         * tree-ssa-math-opts.cc (math_opts_dom_walker::after_dom_children): Take
28372         the gsi of start_bb instead of last_bb.
28374 2024-06-10  Raphael Zinsly  <rzinsly@ventanamicro.com>
28376         * config/riscv/bitmanip.md (*bextdisi): New pattern.
28378 2024-06-10  Richard Biener  <rguenther@suse.de>
28380         PR tree-optimization/115388
28381         * tree-ssa-dse.cc (dse_classify_store): Handle irreducible
28382         regions.
28383         (pass_dse::execute): Make sure to mark backedges.
28385 2024-06-10  Richard Biener  <rguenther@suse.de>
28387         PR tree-optimization/115395
28388         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
28389         Handle STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT also for SLP
28390         reductions of group_size one.
28392 2024-06-10  Andreas Krebbel  <krebbel@linux.ibm.com>
28394         * config/s390/s390.cc (expand_perm_as_replicate): Handle memory
28395         operands.
28396         * config/s390/vx-builtins.md (vec_splats<mode>): Turn into parameterized expander.
28397         (@vec_splats<mode>): New expander.
28399 2024-06-10  Richard Biener  <rguenther@suse.de>
28401         PR tree-optimization/115383
28402         * tree-vect-stmts.cc (vectorizable_condition): Handle
28403         generating a chain of .FOLD_EXTRACT_LAST.
28405 2024-06-09  Andreas Tobler  <andreast@gcc.gnu.org>
28407         * config/freebsd-spec.h: Change fbsd-lib-spec for FreeBSD > 13,
28408         do not link against profiled system libraries if -pg is invoked.
28409         Add a define to note about this change.
28410         * config/aarch64/aarch64-freebsd.h: Use the note to inform if
28411         -pg is invoked on FreeBSD > 13.
28412         * config/arm/freebsd.h: Likewise.
28413         * config/i386/freebsd.h: Likewise.
28414         * config/i386/freebsd64.h: Likewise.
28415         * config/riscv/freebsd.h: Likewise.
28416         * config/rs6000/freebsd64.h: Likewise.
28417         * config/rs6000/sysv4.h: Likeise.
28419 2024-06-09  Jeff Law  <jlaw@ventanamicro.com>
28421         * config/riscv/riscv.cc (riscv_move_integer): Initialize "x".
28423 2024-06-09  Uros Bizjak  <ubizjak@gmail.com>
28425         PR target/112600
28426         * config/i386/i386.md (ussub<mode>3): New expander.
28427         (sub<mode>_3): Ditto.
28429 2024-06-09  Gerald Pfeifer  <gerald@pfeifer.com>
28431         * doc/install.texi (avr): Remove link to www.amelek.gda.pl/avr/.
28433 2024-06-09  Roger Sayle  <roger@nextmovesoftware.com>
28435         * expmed.cc (expand_shift_1): Use add_optab instead of ior_optab
28436         to generate PLUS instead or IOR when unioning disjoint bitfields.
28437         * optabs.cc (expand_subword_shift): Likewise.
28438         (expand_binop): Likewise for double-word rotate.
28440 2024-06-08  Peter Bergner  <bergner@linux.ibm.com>
28442         * config/rs6000/rs6000-logue.cc (rs6000_stack_info): Update comment.
28444 2024-06-08  Uros Bizjak  <ubizjak@gmail.com>
28446         PR target/112600
28447         * config/i386/i386.md (usadd<mode>3): New expander.
28448         (x86_mov<mode>cc_0_m1_neg): Use SWI mode iterator.
28450 2024-06-08  Pan Li  <pan2.li@intel.com>
28452         * config/riscv/riscv-protos.h (riscv_expand_ussub): Add new func
28453         decl for ussub expanding.
28454         * config/riscv/riscv.cc (riscv_expand_ussub): Ditto but for impl.
28455         * config/riscv/riscv.md (ussub<mode>3): Add new pattern ussub
28456         for scalar modes.
28458 2024-06-07  David Malcolm  <dmalcolm@redhat.com>
28460         * doc/invoke.texi: Add -Wanalyzer-undefined-behavior-ptrdiff.
28462 2024-06-07  Jason Merrill  <jason@redhat.com>
28464         * doc/invoke.texi (C++ Modules): Mention -include.
28466 2024-06-07  Roger Sayle  <roger@nextmovesoftware.com>
28468         PR target/115351
28469         * config/i386/i386.cc (ix86_rtx_costs): Provide estimates for
28470         the *concatditi3 and *insvti_highpart patterns, about two insns.
28472 2024-06-07  Roger Sayle  <roger@nextmovesoftware.com>
28473             Hongtao Liu  <hongtao.liu@intel.com>
28475         * config/i386/i386-expand.cc (ix86_expand_args_builtin): Call
28476         fixup_modeless_constant before testing predicates.  Only call
28477         copy_to_mode_reg on memory operands (after the first one).
28478         (ix86_gen_bcst_mem): Helper function to convert a CONST_VECTOR
28479         into a VEC_DUPLICATE if possible.
28480         (ix86_ternlog_idx):  Convert an RTX expression into a ternlog
28481         index between 0 and 255, recording the operands in ARGS, if
28482         possible or return -1 if this is not possible/valid.
28483         (ix86_ternlog_leaf_p): Helper function to identify "leaves"
28484         of a ternlog expression, e.g. REG_P, MEM_P, CONST_VECTOR, etc.
28485         (ix86_ternlog_operand_p): Test whether a expression is suitable
28486         for and prefered as an UNSPEC_TERNLOG.
28487         (ix86_expand_ternlog_binop): Helper function to construct the
28488         binary operation corresponding to a sufficiently simple ternlog.
28489         (ix86_expand_ternlog_andnot): Helper function to construct a
28490         ANDN operation corresponding to a sufficiently simple ternlog.
28491         (ix86_expand_ternlog): Expand a 3-operand ternary logic
28492         expression, constructing either an UNSPEC_TERNLOG or simpler
28493         rtx expression.  Called from builtin expanders and pre-reload
28494         splitters.
28495         * config/i386/i386-protos.h (ix86_ternlog_idx): Prototype here.
28496         (ix86_ternlog_operand_p): Likewise.
28497         (ix86_expand_ternlog): Likewise.
28498         * config/i386/predicates.md (ternlog_operand): New predicate
28499         that calls xi86_ternlog_operand_p.
28500         * config/i386/sse.md (<avx512>_vpternlog<mode>_0): New
28501         define_insn_and_split that recognizes a SET_SRC of ternlog_operand
28502         and expands it via ix86_expand_ternlog pre-reload.
28503         (<avx512>_vternlog<mode>_mask): Convert from define_insn to
28504         define_expand.  Use ix86_expand_ternlog if the mask operand is
28505         ~0 (or 255 or -1).
28506         (*<avx512>_vternlog<mode>_mask): define_insn renamed from above.
28508 2024-06-07  Michal Jires  <mjires@suse.cz>
28510         * common.opt: Add cache partitioning.
28511         * flag-types.h (enum lto_partition_model): Likewise.
28513 2024-06-07  Richard Biener  <rguenther@suse.de>
28515         * tree-vect-loop.cc (vectorize_fold_left_reduction): Fix
28516         mask vector operand indexing.
28518 2024-06-07  Jakub Jelinek  <jakub@redhat.com>
28520         PR middle-end/115352
28521         * gimple-lower-bitint.cc (lower_addsub_overflow): Don't disable
28522         single_comparison if cmp_code is GE_EXPR.
28524 2024-06-07  Alexandre Oliva  <oliva@adacore.com>
28526         * target.def (call_offset_return_label): New hook.
28527         * doc/tm.texi.in (TARGET_CALL_OFFSET_RETURN_LABEL): Add
28528         placeholder.
28529         * doc/tm.texi: Rebuild.
28530         * dwarf2out.cc (struct call_arg_loc_node): Record call_insn
28531         instead of call_arg_loc_note.
28532         (add_AT_lbl_id): Add optional offset argument.
28533         (gen_call_site_die): Compute and pass on a return pc offset.
28534         (gen_subprogram_die): Move call_arg_loc_note computation...
28535         (dwarf2out_var_location): ... from here.  Set call_insn.
28537 2024-06-06  Pan Li  <pan2.li@intel.com>
28539         * doc/match-and-simplify.texi: Add doc for the matching flag '^'.
28540         * genmatch.cc (cmp_operand): Add match_phi comparation.
28541         (dt_node::gen_kids_1): Add cond_expr bool flag for phi match.
28542         (dt_operand::gen_phi_on_cond): Add new func to gen phi matching
28543         on cond_expr.
28544         (parser::parse_expr): Add handling for the expr flag '^'.
28545         * match.pd: Add more form for unsigned .SAT_ADD.
28546         * tree-ssa-math-opts.cc (build_saturation_binary_arith_call): Add
28547         new func impl to build call for phi gimple.
28548         (match_unsigned_saturation_add): Add new func impl to match the
28549         .SAT_ADD for phi gimple.
28550         (math_opts_dom_walker::after_dom_children): Add phi matching
28551         try for all gimple phi stmt.
28553 2024-06-06  Pengxuan Zheng  <quic_pzheng@quicinc.com>
28555         PR target/113880
28556         PR target/113869
28557         * config/aarch64/aarch64-builtins.cc (VAR1): Remap float_extend_lo_
28558         builtin codes to standard optab ones.
28559         * config/aarch64/aarch64-simd.md (aarch64_float_extend_lo_<Vwide>): Rename
28560         to...
28561         (extend<mode><Vwide>2): ... This.
28563 2024-06-06  Andrew Pinski  <quic_apinski@quicinc.com>
28565         PR plugins/115288
28566         * Makefile.in (CPPLIB_H): Add label-text.h.
28568 2024-06-06  Richard Ball  <richard.ball@arm.com>
28570         * config/aarch64/aarch64-c.cc (aarch64_define_unconditional_macros):
28571         Add missing __ARM_NEON_SVE_BRIDGE.
28573 2024-06-06  Richard Ball  <richard.ball@arm.com>
28575         PR target/115353
28576         * config/arm/arm.h (enum arm_auto_incmodes):
28577         Correct CASE_VECTOR_SHORTEN_MODE query.
28579 2024-06-06  Tamar Christina  <tamar.christina@arm.com>
28581         * config/aarch64/aarch64-sve.md (@aarch64_pred_cmp<cmp_op><mode>,
28582         *cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest,
28583         @aarch64_pred_cmp<cmp_op><mode>_wide,
28584         *aarch64_pred_cmp<cmp_op><mode>_wide_cc,
28585         *aarch64_pred_cmp<cmp_op><mode>_wide_ptest): Fix Upl tie alternative.
28586         * config/aarch64/aarch64-sve2.md (@aarch64_pred_<sve_int_op><mode>): Fix
28587         Upl tie alternative.
28589 2024-06-06  Thomas Schwinge  <tschwinge@baylibre.com>
28591         * config/nvptx/nvptx.md (nvptx_uniform_warp_check): Make fit for
28592         non-full-warp execution, via 'vote.all.pred'.
28594 2024-06-06  Pan Li  <pan2.li@intel.com>
28596         * match.pd: Add new form for vector mode recog.
28597         * tree-vect-patterns.cc (gimple_unsigned_integer_sat_sub): Add
28598         new match func decl;
28599         (vect_recog_build_binary_gimple_call): Extract helper func to
28600         build gcall with given internal_fn.
28601         (vect_recog_sat_sub_pattern): Add new func impl to recog .SAT_SUB.
28603 2024-06-06  Michal Jires  <mjires@suse.cz>
28605         * lto-streamer.cc (lto_get_section_name): Remove suffixes after WPA.
28607 2024-06-06  Michal Jires  <mjires@suse.cz>
28609         * lto-opts.cc (lto_write_options): Skip OPT_fltrans_output_list_.
28611 2024-06-06  Robin Dapp  <rdapp@ventanamicro.com>
28613         * config/riscv/riscv.opt.urls: Regenerate.
28615 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
28617         * config/i386/i386-expand.cc (ix86_gen_ccmp_first):
28618         Add fp compare and check the allowed fp compare type.
28619         (ix86_gen_ccmp_next): Adjust compare_code input to ccmp for
28620         fp compare.
28622 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
28624         * ccmp.cc (expand_ccmp_expr_1): Check ret and ret2 of
28625         expand_ccmp_next, returns the valid one first instead of
28626         comparing cost.
28628 2024-06-06  Hongyu Wang  <hongyu.wang@intel.com>
28630         * config/i386/i386-expand.cc (ix86_gen_ccmp_first): New function
28631         that test if the first compare can be generated.
28632         (ix86_gen_ccmp_next): New function to emit a simgle compare and ccmp
28633         sequence.
28634         * config/i386/i386-opts.h (enum apx_features): Add apx_ccmp.
28635         * config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto
28636         declare.
28637         (ix86_gen_ccmp_next): Likewise.
28638         (ix86_get_flags_cc): Likewise.
28639         * config/i386/i386.cc (ix86_flags_cc): New enum.
28640         (ix86_ccmp_dfv_mapping): New string array to map conditional
28641         code to dfv.
28642         (ix86_print_operand): Handle special dfv flag for CCMP.
28643         (ix86_get_flags_cc): New function to return x86 CC enum.
28644         (TARGET_GEN_CCMP_FIRST): Define.
28645         (TARGET_GEN_CCMP_NEXT): Likewise.
28646         * config/i386/i386.h (TARGET_APX_CCMP): Define.
28647         * config/i386/i386.md (@ccmp<mode>): New define_insn to support
28648         ccmp.
28649         (UNSPEC_APX_DFV): New unspec for ccmp dfv.
28650         (ALL_CC): New mode iterator.
28651         (cstorecc4): Change to ...
28652         (cstore<mode>4) ... this, use ALL_CC to loop through all
28653         available CCmodes.
28654         * config/i386/i386.opt (apx_ccmp): Add enum value for ccmp.
28656 2024-06-06  Richard Biener  <rguenther@suse.de>
28658         * tree-vect-loop.cc (vectorizable_reduction): Allow
28659         single-lane SLP in-order reductions.
28660         (vectorize_fold_left_reduction): Handle SLP reduction with
28661         conditional reduction op.
28663 2024-06-06  Richard Biener  <rguenther@suse.de>
28665         * tree-vect-loop.cc (vect_analyze_scalar_cycles_1): Queue
28666         double reductions in LOOP_VINFO_REDUCTIONS.
28667         (vect_create_epilog_for_reduction): Remove asserts disabling
28668         SLP for double reductions.
28669         (vectorizable_reduction): Analyze SLP double reductions
28670         only once and start off the correct places.
28671         * tree-vect-slp.cc (vect_get_and_check_slp_defs): Allow
28672         vect_double_reduction_def.
28673         (vect_build_slp_tree_2): Fix condition for the ignored
28674         reduction initial values.
28675         * tree-vect-stmts.cc (vect_analyze_stmt): Allow
28676         vect_double_reduction_def.
28678 2024-06-06  Richard Biener  <rguenther@suse.de>
28680         * tree-vect-loop.cc (vect_create_epilog_for_reduction):
28681         Adjust for single-lane COND_REDUCTION SLP vectorization.
28682         (vectorizable_reduction): Likewise.
28683         (vect_transform_cycle_phi): Likewise.
28685 2024-06-06  Richard Biener  <rguenther@suse.de>
28687         * tree-vect-stmts.cc (vectorizable_condition): Allow
28688         single-lane SLP, but not when we need to swap then and
28689         else clause.
28691 2024-06-06  YunQiang Su  <syq@gcc.gnu.org>
28693         * config/mips/mips.cc(mips_insn_cost): Add missing COSTS_N_INSNS
28694         to count.
28696 2024-06-06  liuhongt  <hongtao.liu@intel.com>
28698         PR target/114428
28699         * config/i386/i386.cc (ix86_rtx_costs): Adjust cost for
28700         CONST_VECTOR_DUPLICATE_P in constant_pool.
28701         * config/i386/i386-expand.cc (ix86_broadcast_from_constant):
28702         Remove static.
28703         * config/i386/i386-protos.h (ix86_broadcast_from_constant):
28704         Declare.
28706 2024-06-06  liuhongt  <hongtao.liu@intel.com>
28708         PR target/114428
28709         * simplify-rtx.cc
28710         (simplify_context::simplify_binary_operation_1):
28711         Simplify (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) for
28712         specific mask.
28714 2024-06-05  Robin Dapp  <rdapp.gcc@gmail.com>
28716         * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED):
28717         Move from here...
28718         * config/riscv/riscv.h (TARGET_VECTOR_MISALIGN_SUPPORTED):
28719         ...to here and map to riscv_vector_unaligned_access_p.
28720         * config/riscv/riscv.opt: Add -mvector-strict-align.
28721         * config/riscv/riscv.cc (struct riscv_tune_param): Add
28722         vector_unaligned_access.
28723         (riscv_override_options_internal): Set
28724         riscv_vector_unaligned_access_p.
28725         * doc/invoke.texi: Document -mvector-strict-align.
28727 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
28729         * config/aarch64/tuning_models/neoversen2.h (neoversen2_tunings): Add
28730         AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
28731         * config/aarch64/tuning_models/neoversev1.h (neoversev1_tunings): Add
28732         AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
28733         * config/aarch64/tuning_models/neoversev2.h (neoversev2_tunings): Add
28734         AARCH64_EXTRA_TUNE_AVOID_PRED_RMW.
28736 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
28738         * config/aarch64/aarch64-sve.md (and<mode>3,
28739         @aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc,
28740         *<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z,
28741         *<nlogical><mode>3_cc, *<nlogical><mode>3_ptest,
28742         aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc,
28743         *<logical_nn><mode>3_ptest, @aarch64_pred_cmp<cmp_op><mode>,
28744         *cmp<cmp_op><mode>_cc, *cmp<cmp_op><mode>_ptest,
28745         @aarch64_pred_cmp<cmp_op><mode>_wide,
28746         *aarch64_pred_cmp<cmp_op><mode>_wide_cc,
28747         *aarch64_pred_cmp<cmp_op><mode>_wide_ptest, @aarch64_brk<brk_op>,
28748         *aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest,
28749         @aarch64_brk<brk_op>, *aarch64_brk<brk_op>_cc,
28750         *aarch64_brk<brk_op>_ptest, aarch64_rdffr_z, *aarch64_rdffr_z_ptest,
28751         *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc): Add
28752         new early clobber
28753         alternative.
28754         * config/aarch64/aarch64-sve2.md
28755         (@aarch64_pred_<sve_int_op><mode>): Likewise.
28757 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
28759         * config/aarch64/aarch64-tuning-flags.def
28760         (AVOID_PRED_RMW): New.
28761         * config/aarch64/aarch64.h (TARGET_SVE_PRED_CLOBBER): New.
28762         * config/aarch64/aarch64.md (pred_clobber): New.
28763         (arch_enabled): Use it.
28765 2024-06-05  Tamar Christina  <tamar.christina@arm.com>
28767         * config/aarch64/aarch64-sve.md (and<mode>3,
28768         @aarch64_pred_<optab><mode>_z, *<optab><mode>3_cc,
28769         *<optab><mode>3_ptest, aarch64_pred_<nlogical><mode>_z,
28770         *<nlogical><mode>3_cc, *<nlogical><mode>3_ptest,
28771         aarch64_pred_<logical_nn><mode>_z, *<logical_nn><mode>3_cc,
28772         *<logical_nn><mode>3_ptest, *cmp<cmp_op><mode>_ptest,
28773         @aarch64_pred_cmp<cmp_op><mode>_wide,
28774         *aarch64_pred_cmp<cmp_op><mode>_wide_cc,
28775         *aarch64_pred_cmp<cmp_op><mode>_wide_ptest, *aarch64_brk<brk_op>_cc,
28776         *aarch64_brk<brk_op>_ptest, @aarch64_brk<brk_op>,
28777         *aarch64_brk<brk_op>_cc, *aarch64_brk<brk_op>_ptest, aarch64_rdffr_z,
28778         *aarch64_rdffr_z_ptest, *aarch64_rdffr_ptest, *aarch64_rdffr_z_cc,
28779         *aarch64_rdffr_cc): Convert to compact syntax.
28780         * config/aarch64/aarch64-sve2.md
28781         (@aarch64_pred_<sve_int_op><mode>): Likewise.
28783 2024-06-05  Jakub Jelinek  <jakub@redhat.com>
28784             Frederik Harwath  <frederik@codesourcery.com>
28785             Sandra Loosemore  <sandra@codesourcery.com>
28787         * tree.def (OMP_TILE, OMP_UNROLL): New tree codes.
28788         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_PARTIAL,
28789         OMP_CLAUSE_FULL and OMP_CLAUSE_SIZES.
28790         * tree.h (OMP_LOOPXFORM_CHECK): Define.
28791         (OMP_LOOPXFORM_LOWERED): Define.
28792         (OMP_CLAUSE_PARTIAL_EXPR): Define.
28793         (OMP_CLAUSE_SIZES_LIST): Define.
28794         * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add entries
28795         for OMP_CLAUSE_{PARTIAL,FULL,SIZES}.
28796         * tree-pretty-print.cc (dump_omp_clause): Handle
28797         OMP_CLAUSE_{PARTIAL,FULL,SIZES}.
28798         (dump_generic_node): Handle OMP_TILE and OMP_UNROLL.  Skip printing
28799         loops with NULL OMP_FOR_INIT (node) vector element.
28800         * gimplify.cc (is_gimple_stmt): Handle OMP_TILE and OMP_UNROLL.
28801         (gimplify_omp_taskloop_expr): For SAVE_EXPR use gimplify_save_expr.
28802         (gimplify_omp_loop_xform): New function.
28803         (gimplify_omp_for): Call omp_maybe_apply_loop_xforms and if that
28804         reshuffles what the passed pointer points to, retry or return GS_OK.
28805         Handle OMP_TILE and OMP_UNROLL.
28806         (gimplify_omp_loop): Call omp_maybe_apply_loop_xforms and if that
28807         reshuffles what the passed pointer points to, return GS_OK.
28808         (gimplify_expr): Handle OMP_TILE and OMP_UNROLL.
28809         * omp-general.h (omp_loop_number_of_iterations,
28810         omp_maybe_apply_loop_xforms): Declare.
28811         * omp-general.cc (omp_adjust_for_condition): For LE_EXPR and GE_EXPR
28812         with pointers, don't add/subtract one, but the size of what the
28813         pointer points to.
28814         (omp_loop_number_of_iterations, omp_apply_tile,
28815         find_nested_loop_xform, omp_maybe_apply_loop_xforms): New functions.
28817 2024-06-05  Kewen Lin  <linkw@linux.ibm.com>
28819         * config/darwin.cc (darwin_patch_builtins): Use TYPE_PRECISION of
28820         long_double_type_node to replace LONG_DOUBLE_TYPE_SIZE.
28822 2024-06-05  Pan Li  <pan2.li@intel.com>
28824         PR target/51492
28825         PR target/112600
28826         * internal-fn.def (SAT_SUB): Add new IFN define for SAT_SUB.
28827         * match.pd: Add new match for SAT_SUB.
28828         * optabs.def (OPTAB_NL): Remove fixed-point for ussub/ssub.
28829         * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_sub): Add
28830         new decl for generated in match.pd.
28831         (build_saturation_binary_arith_call): Add new helper function
28832         to build the gimple call to binary SAT alu.
28833         (match_saturation_arith): Rename from.
28834         (match_unsigned_saturation_add): Rename to.
28835         (match_unsigned_saturation_sub): Add new func to match the
28836         unsigned sat sub.
28837         (math_opts_dom_walker::after_dom_children): Add SAT_SUB matching
28838         try when COND_EXPR.
28840 2024-06-05  Gerald Pfeifer  <gerald@pfeifer.com>
28842         PR other/69374
28843         * doc/install.texi (Prerequisites): Drop reference to GNU awk
28844         version 3.1.5. Remove fluff.
28846 2024-06-05  liuhongt  <hongtao.liu@intel.com>
28848         PR rtl-optimization/100927
28849         PR rtl-optimization/115161
28850         PR rtl-optimization/115115
28851         * simplify-rtx.cc (simplify_const_unary_operation): Prevent
28852         simplication of FIX/UNSIGNED_FIX for NAN/INF/out-of-range
28853         constant when flag_trapping_math.
28854         * fold-const.cc (fold_convert_const_int_from_real): Don't fold
28855         for overflow value when_trapping_math.
28857 2024-06-05  Xiao Zeng  <zengxiao@eswincomputing.com>
28859         * config/riscv/iterators.md: Add mode_iterator between
28860         floating-point modes and BFmode.
28861         * config/riscv/riscv.cc (riscv_output_move): Handle BFmode move
28862         for zfbfmin.
28863         * config/riscv/riscv.md (trunc<mode>bf2): New pattern for BFmode.
28864         (extendbfsf2): Dotto.
28865         (*movhf_hardfloat): Add BFmode.
28866         (*mov<mode>_hardfloat): Dotto.
28868 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28870         PR tree-optimization/115337
28871         * gimple-range-op.cc (cfn_clz::fold_range): For
28872         m_gimple_call_internal_p handle as a special case also second argument
28873         of -1 next to prec.
28875 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28877         PR tree-optimization/115337
28878         * fold-const.cc (tree_call_nonnegative_warnv_p): Handle
28879         CASE_CFN_CTZ like CASE_CFN_CLZ.
28881 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28883         * fold-const.cc (tree_call_nonnegative_warnv_p): Formatting fixes.
28884         (tree_invalid_nonnegative_warnv_p): Likewise.
28885         * gimple-fold.cc (gimple_call_nonnegative_warnv_p): Likewise.
28887 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28889         PR tree-optimization/115337
28890         * fold-const.cc (tree_call_nonnegative_warnv_p) <CASE_CFN_CLZ>:
28891         If arg1 is non-NULL, RECURSE on it, otherwise return true.
28893 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28895         PR middle-end/108789
28896         * builtins.cc (fold_builtin_arith_overflow): For ovf_only,
28897         don't call save_expr and don't build REALPART_EXPR, otherwise
28898         set TREE_SIDE_EFFECTS on call before calling save_expr.
28899         (fold_builtin_addc_subc): Set TREE_SIDE_EFFECTS on call before
28900         calling save_expr.
28902 2024-06-04  Jakub Jelinek  <jakub@redhat.com>
28904         * doc/invoke.texi (lujiazui): Clarify that while the CPUs do support
28905         AVX and F16C, -march=lujiazui actually doesn't enable those.
28907 2024-06-04  Richard Biener  <rguenther@suse.de>
28909         * tree-vect-slp.cc (vect_build_slp_tree_2): Only multi-lane
28910         discoveries are reduction chains and need special backedge
28911         treatment.
28912         (vect_analyze_slp): Fall back to single-lane SLP discovery
28913         for reductions.  Make sure to try single-lane SLP reduction
28914         for all reductions as fallback.
28915         (vectorizable_load): Avoid outer loop SLP vectorization with
28916         multi-copy vector stmts in the inner loop.
28917         (vectorizable_store): Likewise.
28918         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Allow
28919         direct opcode and shift reduction also for SLP reductions
28920         with a single lane.
28921         * tree-vect-stmts.cc (get_group_load_store_type): For SLP also
28922         check for the PR65518 single-element interleaving case as done in
28923         vect_grouped_load_supported.
28925 2024-06-04  Richard Biener  <rguenther@suse.de>
28927         * tree-vect-slp.cc (vect_schedule_slp_node): For mask/len
28928         loops make sure to not advance the insertion iterator
28929         beyond a GIMPLE_COND.
28931 2024-06-03  Jakub Jelinek  <jakub@redhat.com>
28933         PR target/115324
28934         * config/rs6000/rs6000-gen-builtins.cc (write_decls): Remove
28935         GTY markup from struct bifdata and struct ovlddata and remove their
28936         fntype members.  Change next member in struct ovlddata and
28937         first_instance member of struct ovldrecord to have int type rather
28938         than struct ovlddata *.  Remove GTY markup from rs6000_builtin_info
28939         and rs6000_instance_info arrays, declare new
28940         rs6000_builtin_info_fntype and rs6000_instance_info_fntype arrays,
28941         which have GTY markup.
28942         (write_bif_static_init): Adjust for the above changes.
28943         (write_ovld_static_init): Likewise.
28944         (write_init_bif_table): Likewise.
28945         (write_init_ovld_table): Likewise.
28946         * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Likewise.
28947         * config/rs6000/rs6000-c.cc (find_instance): Likewise.  Make static.
28948         (altivec_resolve_overloaded_builtin): Adjust for the above changes.
28950 2024-06-03  David Malcolm  <dmalcolm@redhat.com>
28952         * diagnostic-format-sarif.cc: Include "ordered-hash-map.h" and
28953         "sbitmap.h".
28954         (enum class diagnostic_artifact_role): New.
28955         (class sarif_artifact): New.
28956         (sarif_builder::maybe_make_artifact_content_object): Make public.
28957         (sarif_builder::m_filenames): Replace with...
28958         (sarif_builder::m_filename_to_artifact_map): ...this.
28959         (sarif_artifact::add_role): New.
28960         (sarif_artifact::populate_contents): New.
28961         (get_artifact_role_string): New.
28962         (sarif_artifact::populate_roles): New.
28963         (sarif_result::on_nested_diagnostic): Pass role to
28964         make_location_object.
28965         (sarif_ice_notification::sarif_ice_notification): Likewise.
28966         (sarif_builder::sarif_builder): Add "main_input_filename_" param.
28967         Mark it as the artifact that the tool was instructed to scan.
28968         (sarif_builder::make_result_object): Pass role to
28969         make_locations_arr.
28970         (sarif_builder::make_locations_arr): Add "role" param and pass it
28971         to make_location_object.
28972         (sarif_builder::make_location_object): Add "role" param and pass
28973         it to maybe_make_physical_location_object.
28974         (sarif_builder::maybe_make_physical_location_object): Add "role"
28975         param and pass it to call to get_or_create_artifact, rather than
28976         adding to now-removed "m_filenames".  Flag the artifact for its
28977         contents to be embedded.
28978         (sarif_builder::make_thread_flow_location_object): Pass role to
28979         make_location_object.
28980         (sarif_builder::make_run_object): Update for change from
28981         m_filename to m_filename_to_artifact_map.  Call populate_contents
28982         and populate_roles on each artifact_obj.
28983         (sarif_builder::make_artifact_object): Convert to...
28984         (sarif_builder::get_or_create_artifact): ...this, moving addition
28985         of contents to make_run_object, and conditionalizing setting of
28986         sourceLanguage on "role".
28987         (sarif_output_format::sarif_output_format): Add
28988         "main_input_filename_" param and pass to m_builder's ctor.
28989         (sarif_stream_output_format::sarif_stream_output_format):
28990         Likewise.
28991         (sarif_file_output_format::sarif_file_output_format): Likewise.
28992         (diagnostic_output_format_init_sarif_stderr): Add
28993         "main_input_filename_" param and pass to ctor.
28994         (diagnostic_output_format_init_sarif_file): Likewise.
28995         (diagnostic_output_format_init_sarif_stream): Likewise.
28996         * diagnostic.cc (diagnostic_output_format_init): Add
28997         "main_input_filename_" param and pass to the
28998         diagnostic_output_format_init_sarif_* calls.
28999         * diagnostic.h (diagnostic_output_format_init): Add
29000         main_input_filename_" param to decl.
29001         (diagnostic_output_format_init_sarif_stderr): Likewise.
29002         (diagnostic_output_format_init_sarif_file): Likewise.
29003         (diagnostic_output_format_init_sarif_stream): Likewise.
29004         * gcc.cc (driver_handle_option): Pass main input filename to
29005         diagnostic_output_format_init.
29006         * opts.cc (common_handle_option): Likewise.
29008 2024-06-03  Eric Botcazou  <ebotcazou@adacore.com>
29010         * dwarf2out.cc (loc_list_from_tree_1) <CEIL_DIV_EXPR>; Add const.
29011         <do_comp_binop>: Use a signed comparison for small unsigned types.
29012         Implement wrap-around arithmetics for small integer types.
29014 2024-06-03  Uros Bizjak  <ubizjak@gmail.com>
29016         PR target/115321
29017         * config/i386/i386.md (bswapsi2): Force operand 1
29018         to a register also for !TARGET_BSWAP.
29020 2024-06-03  Aldy Hernandez  <aldyh@redhat.com>
29022         * builtins.cc (expand_builtin_strnlen): Replace value_range use
29023         with int_range_max or irange when appropriate.
29024         (determine_block_size): Same.
29025         * fold-const.cc (minmax_from_comparison): Same.
29026         * gimple-array-bounds.cc (check_out_of_bounds_and_warn): Same.
29027         (array_bounds_checker::check_array_ref): Same.
29028         * gimple-fold.cc (size_must_be_zero_p): Same.
29029         * gimple-predicate-analysis.cc (find_var_cmp_const): Same.
29030         * gimple-ssa-sprintf.cc (get_int_range): Same.
29031         (format_integer): Same.
29032         (try_substitute_return_value): Same.
29033         (handle_printf_call): Same.
29034         * gimple-ssa-warn-restrict.cc
29035         (builtin_memref::extend_offset_range): Same.
29036         * graphite-sese-to-poly.cc (add_param_constraints): Same.
29037         * internal-fn.cc (get_min_precision): Same.
29038         * match.pd: Same.
29039         * pointer-query.cc (get_size_range): Same.
29040         * range-op.cc (get_shift_range): Same.
29041         (operator_trunc_mod::op1_range): Same.
29042         (operator_trunc_mod::op2_range): Same.
29043         * range.cc (range_negatives): Same.
29044         * range.h (range_positives): Same.
29045         (range_negatives): Same.
29046         * tree-affine.cc (expr_to_aff_combination): Same.
29047         * tree-data-ref.cc (compute_distributive_range): Same.
29048         (nop_conversion_for_offset_p): Same.
29049         (split_constant_offset): Same.
29050         (split_constant_offset_1): Same.
29051         (dr_step_indicator): Same.
29052         * tree-dfa.cc (get_ref_base_and_extent): Same.
29053         * tree-scalar-evolution.cc (iv_can_overflow_p): Same.
29054         * tree-ssa-math-opts.cc (optimize_spaceship): Same.
29055         * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
29056         * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Same.
29057         * tree-ssa-strlen.cc (compare_nonzero_chars): Same.
29058         (dump_strlen_info): Same.
29059         (get_range_strlen_dynamic): Same.
29060         (set_strlen_range): Same.
29061         (maybe_diag_stxncpy_trunc): Same.
29062         (strlen_pass::get_len_or_size): Same.
29063         (strlen_pass::handle_builtin_string_cmp): Same.
29064         (strlen_pass::count_nonzero_bytes_addr): Same.
29065         (strlen_pass::handle_integral_assign): Same.
29066         * tree-switch-conversion.cc (bit_test_cluster::emit): Same.
29067         * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Same.
29068         (vect_do_peeling): Same.
29069         * tree-vect-patterns.cc (vect_get_range_info): Same.
29070         (vect_recog_divmod_pattern): Same.
29071         * tree.cc (get_range_pos_neg): Same.
29072         * value-range.cc (debug): Remove value_range variants.
29073         * value-range.h (value_range): Remove typedef.
29074         * vr-values.cc
29075         (simplify_using_ranges::op_with_boolean_value_range_p): Replace
29076         value_range use with int_range_max or irange when appropriate.
29077         (check_for_binary_op_overflow): Same.
29078         (simplify_using_ranges::legacy_fold_cond_overflow): Same.
29079         (find_case_label_ranges): Same.
29080         (simplify_using_ranges::simplify_abs_using_ranges): Same.
29081         (test_for_singularity): Same.
29082         (simplify_using_ranges::simplify_compare_using_ranges_1): Same.
29083         (simplify_using_ranges::simplify_casted_compare): Same.
29084         (simplify_using_ranges::simplify_switch_using_ranges): Same.
29085         (simplify_conversion_using_ranges): Same.
29086         (simplify_using_ranges::two_valued_val_range_p): Same.
29088 2024-06-03  Tobias Burnus  <tburnus@baylibre.com>
29090         * doc/install.texi (gcn): Fix date of recommended newlib version.
29092 2024-06-03  Marc Poulhiès  <poulhies@adacore.com>
29094         * config/aarch64/aarch64-ldp-fusion.cc (struct aarch64_pair_fusion):
29095         Use new type name.
29097 2024-06-03  Marc Poulhiès  <poulhies@adacore.com>
29099         * pair-fusion.h (enum class writeback): Rename to...
29100         (enum class writeback_type): ...this.
29101         (struct pair_fusion): Adjust type name after renaming.
29102         * pair-fusion.cc (pair_fusion_bb_info::track_access): Likewise.
29103         (pair_fusion_bb_info::fuse_pair): Likewise.
29104         (pair_fusion::process_block): Likewise.
29106 2024-06-03  Richard Biener  <rguenther@suse.de>
29108         * tree-vect-loop.cc (vect_analyze_loop_1): Avoid extra space
29109         before 'failed'.
29111 2024-06-03  Richard Biener  <rguenther@suse.de>
29113         * tree-vect-loop.cc (get_initial_defs_for_reduction):
29114         Always convert neutral_op.
29116 2024-06-03  liuhongt  <hongtao.liu@intel.com>
29118         PR target/115299
29119         * config/i386/i386.cc (ix86_noce_conversion_profitable_p): Add
29120         some preference for floating point ifcvt when SSE4.1 is not
29121         available.
29123 2024-06-03  Haochen Jiang  <haochen.jiang@intel.com>
29125         * common/config/i386/i386-common.cc: Change Granite Rapids
29126         series CPU type to P_PROC_AVX10_1_512.
29127         * common/config/i386/i386-cpuinfo.h (enum feature_priority):
29128         Revise comment part. Add P_AVX10_1_256, P_AVX10_1_512,
29129         P_PROC_AVX10_1_512.
29130         * common/config/i386/i386-isas.h: Link to avx10.1-256, avx10.1-512.
29132 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29134         * config/i386/i386.md (clz<mode>2_lzcnt_nf): New define_insn.
29135         (*clz<mode>2_lzcnt_falsedep_nf): Ditto.
29136         (<lt_zcnt>_<mode>_nf): Ditto.
29137         (*<lt_zcnt>_<mode>_falsedep_nf): Ditto.
29138         (<lt_zcnt>_hi<nf_name>): Ditto.
29139         (popcount<mode>2_nf): Ditto.
29140         (*popcount<mode>2_falsedep_nf): Ditto.
29141         (popcounthi2<nf_name>): Ditto.
29143 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29145         * config/i386/i386.md (*mul<mode>3_1<nf_name>): New define_insn.
29146         (*mulqi3_1<nf_name>): Ditto.
29147         (*<u>divmod<mode>4_noext_nf): Ditto.
29148         (<u>divmodhiqi3<nf_name>): Ditto.
29150 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29152         * config/i386/i386.md (x86_64_shld): New define_insn.
29153         (x86_64_shld<nf_name>): Ditto.
29154         (x86_64_shld_ndd<nf_name>): Ditto.
29155         (x86_64_shld_1<nf_name>): Ditto.
29156         (x86_64_shld_ndd_1<nf_name>): Ditto.
29157         (*x86_64_shld_shrd_1_nozext_nf): Ditto.
29158         (x86_shld<nf_name>): Ditto.
29159         (x86_shld_ndd<nf_name>): Ditto.
29160         (x86_shld_1<nf_name>): Ditto.
29161         (x86_shld_ndd_1<nf_name>): Ditto.
29162         (*x86_shld_shrd_1_nozext_nf): Ditto.
29163         (<insn><dwi>3_doubleword_lowpart_nf): Ditto.
29164         (x86_64_shrd<nf_name>): Ditto.
29165         (x86_64_shrd_ndd<nf_name>): Ditto.
29166         (x86_64_shrd_1<nf_name>): Ditto.
29167         (x86_64_shrd_ndd_1<nf_name>): Ditto.
29168         (*x86_64_shrd_shld_1_nozext_nf): Ditto.
29169         (x86_shrd<nf_name>): Ditto.
29170         (x86_shrd_ndd<nf_name>): Ditto.
29171         (x86_shrd_1<nf_name>): Ditto.
29172         (x86_shrd_ndd_1<nf_name>): Ditto.
29173         (*x86_shrd_shld_1_nozext_nf): Ditto.
29175 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29177         * config/i386/i386.md (ashr<mode>3_cvt<nf_name>): New
29178         define_insn.
29179         (*<insn><mode>3_1<nf_name>): Ditto.
29181 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29183         * config/i386/i386.md (*ashr<mode>3_1<nf_name>): New
29184         define_insn.
29185         (*lshr<mode>3_1<nf_name>): Ditto.
29186         (*lshrqi3_1<nf_name>): Ditto.
29187         (*lshrhi3_1<nf_name>): Ditto.
29189 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29191         * config/i386/i386.md (*ashl<mode>3_1<nf_name>): New
29192         define_insn.
29193         (*ashlhi3_1<nf_name>): Ditto.
29194         (*ashlqi3_1<nf_name>): Ditto.
29195         * config/i386/sse.md: New define_split.
29197 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29199         * config/i386/i386.md (nf_nonf_attr): New subst_attr.
29200         (nf_nonf_x64_attr): Ditto.
29201         (*sub<mode>_1<nf_name>): New define_insn.
29202         (*anddi_1<nf_name>): Ditto.
29203         (*and<mode>_1<nf_name>): Ditto.
29204         (*andqi_1<nf_name>): Ditto.
29205         (*<code><mode>_1<nf_name>): Ditto.
29206         (*<code>qi_1<nf_name>): Ditto.
29207         (*neg<mode>_1<nf_name>): Ditto.
29208         * config/i386/sse.md: New define_split.
29210 2024-06-03  Lingling Kong  <lingling.kong@intel.com>
29211             Hongyu Wong  <hongyu.wang@intel.com>
29213         * config/i386/i386-opts.h (enum apx_features): Add nf
29214         enumeration.
29215         * config/i386/i386.h (TARGET_APX_NF): New.
29216         * config/i386/i386.md (nf_name): New subst_att.
29217         (nf_prefix): Ditto.
29218         (nf_condition): Ditto.
29219         (nf_mem_constraint): Ditto.
29220         (nf_applied): Ditto.
29221         (nf_subst): Add new define_subst.
29222         (*add<mode>_1<nf_name>): New define_insn.
29223         (*addhi_1<nf_name>): Ditto.
29224         (*addqi_1<nf_name>): Diito.
29225         * config/i386/i386.opt: Add apx_nf enumeration.
29227 2024-06-03  Hu, Lin1  <lin1.hu@intel.com>
29229         PR target/113609
29230         * config/i386/sse.md
29231         (*kortest_cmp<mode>_setcc): New define_insn_and_split.
29232         (*kortest_cmp<mode>_jcc): Ditto.
29234 2024-06-01  Georg-Johann Lay  <avr@gjlay.de>
29236         PR tree-optimization/115307
29237         * config/avr/avr.md (SFDF): New mode iterator.
29238         (isinf<mode>2) [sf, df]: New expanders.
29240 2024-06-01  Jeff Law  <jlaw@ventanamicro.com>
29242         * config/riscv/riscv.cc (riscv_integer_op): Add new field.
29243         (riscv_build_integer_1): Initialize the new field.
29244         (riscv_built_integer): Recognize more cases where Zbkb's
29245         pack instruction is profitable.
29246         (riscv_move_integer): Loop over all the codes.  If requested,
29247         save the current constant into a temporary.  Generate pack
29248         for more cases using the saved constant.
29250 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
29252         * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): Remove parameter
29253         loop_vinfo. Get input vectype from stmt_info instead of reduction PHI.
29254         (vect_model_reduction_cost): Remove loop_vinfo argument of call to
29255         vect_is_emulated_mixed_dot_prod.
29256         (vect_transform_reduction): Likewise.
29257         (vectorizable_reduction): Likewise, and bind input vectype to
29258         lane-reducing operation.
29260 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
29262         * tree-vect-loop.cc (vect_reduction_update_partial_vector_usage): New
29263         function.
29264         (vectorizable_reduction): Move partial vectorization checking code to
29265         vect_reduction_update_partial_vector_usage.
29267 2024-06-01  Feng Xue  <fxue@os.amperecomputing.com>
29269         * tree-vectorizer.h (lane_reducing_op_p): New function.
29270         * tree-vect-slp.cc (vect_analyze_slp): Use new function
29271         lane_reducing_op_p to check statement code.
29272         * tree-vect-loop.cc (vect_transform_reduction): Likewise.
29273         (vectorizable_reduction): Likewise, and change name of a local
29274         variable that holds the result flag.
29276 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
29278         * config/xtensa/xtensa-protos.h (xtensa_expand_call):
29279         Add the third argument as boolean.
29280         (xtensa_expand_epilogue): Remove the first argument.
29281         * config/xtensa/xtensa.cc (xtensa_expand_call):
29282         Add the third argument "sibcall_p", and modify in order to prepend
29283         "(use A0_REG)" to CALL_INSN_FUNCTION_USAGE if the argument is true.
29284         (xtensa_expand_epilogue): Remove the first argument "sibcall_p" and
29285         its conditional clause.
29286         * config/xtensa/xtensa.md (call, call_value, sibcall, sibcall_value):
29287         Append a boolean value to the argument of xtensa_expand_call()
29288         indicating whether it is sibling call or not.
29289         (epilogue): Remove the boolean argument from xtensa_expand_epilogue(),
29290         and then append emitting "(return)".
29291         (sibcall_epilogue): Remove the boolean argument from
29292         xtensa_expand_epilogue().
29294 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
29296         * config/xtensa/predicates.md
29297         (subreg_HQI_lowpart_operator, xtensa_sminmax_operator):
29298         New operator predicates.
29299         * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
29300         Remove.
29301         * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p): Ditto.
29302         * config/xtensa/xtensa.md
29303         (*addsubx, *extzvsi-1bit_ashlsi3, *extzvsi-1bit_addsubx):
29304         Revise the output statements by conditional ternary operator rather
29305         than switch-case clause in order to avoid using gcc_unreachable().
29306         (xtensa_clamps): Reduce to a single pattern definition using the
29307         predicate added above.
29308         (Some split patterns to assist *masktrue_const_bitcmpl): Ditto.
29310 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29312         * config/riscv/riscv-v.cc (expand_const_vector): Document.
29313         (shuffle_extract_and_slide1up_patterns): Remove.
29315 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29317         * config/riscv/autovec.md (ctz<mode>2): New expander.
29318         (clz<mode>2): Ditto.
29319         * config/riscv/generic-vector-ooo.md: Add bitmanip ops to insn
29320         reservation.
29321         * config/riscv/vector-crypto.md: Add VLS modes to insns.
29322         * config/riscv/vector.md: Add bitmanip ops to mode_idx and other
29323         attributes.
29325 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29327         * config/riscv/autovec-opt.md (*vandn_<mode>): New pattern.
29328         * config/riscv/vector.md: Add vandn to mode_idx.
29330 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29332         * config/riscv/riscv-v.cc (expand_gather_scatter): Use vwsll if
29333         applicable.
29334         * config/riscv/vector-crypto.md: Remove mode from vwsll shift
29335         count operator.
29336         * config/riscv/vector.md: Add vwsll to mode iterator.
29338 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29340         * config/riscv/autovec-opt.md (*vwsll_zext1_<mode>): New
29341         pattern.
29342         (*vwsll_zext2_<mode>): Ditto.
29343         (*vwsll_zext1_scalar_<mode>): Ditto.
29344         (*vwsll_zext1_trunc_<mode>): Ditto.
29345         (*vwsll_zext2_trunc_<mode>): Ditto.
29346         (*vwsll_zext1_trunc_scalar_<mode>): Ditto.
29347         * config/riscv/vector-crypto.md: Make pattern similar to other
29348         narrowing/widening patterns.
29350 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29352         * config/riscv/vector.md: Split vwadd.wx/vwsub.wx pattern and
29353         add extended_scalar patterns.
29355 2024-05-31  Robin Dapp  <rdapp@ventanamicro.com>
29357         PR target/115068
29358         * config/riscv/vector.md:  Split vfw<insn>.wf pattern.
29360 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
29362         * tree-object-size.cc (access_with_size_object_size): Use the type
29363         of the 6th argument for the type of the element.
29364         * internal-fn.cc (expand_ACCESS_WITH_SIZE): Update the comment with
29365         the 6th argument.
29367 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
29369         * tree-object-size.cc (access_with_size_object_size): New function.
29370         (call_object_size): Call the new function.
29372 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
29374         * internal-fn.cc (expand_ACCESS_WITH_SIZE): New function.
29375         * internal-fn.def (ACCESS_WITH_SIZE): New internal function.
29376         * tree.cc (is_access_with_size_p): New function.
29377         (get_ref_from_access_with_size): New function.
29378         * tree.h (is_access_with_size_p): New prototype.
29379         (get_ref_from_access_with_size): New prototype.
29381 2024-05-31  Qing Zhao  <qing.zhao@oracle.com>
29383         * doc/extend.texi: Document attribute counted_by.
29385 2024-05-31  Uros Bizjak  <ubizjak@gmail.com>
29387         PR target/115297
29388         * config/alpha/alpha.md (<any_divmod:code>si3): Wrap DImode
29389         operands 3 and 4 with truncate:SI RTX.
29390         (*divmodsi_internal_er): Ditto for operands 1 and 2.
29391         (*divmodsi_internal_er_1): Ditto.
29392         (*divmodsi_internal): Ditto.
29393         * config/alpha/constraints.md ("b"): Correct register
29394         number in the description.
29396 2024-05-31  Thomas Schwinge  <tschwinge@baylibre.com>
29398         * config/nvptx/nvptx.h: Configure global constructor, destructor
29399         support.
29401 2024-05-31  Richard Biener  <rguenther@suse.de>
29403         PR tree-optimization/115278
29404         * tree-if-conv.cc (ifcvt_local_dce): Do not DSE volatile stores.
29406 2024-05-31  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29408         * config.gcc: Move ${target_min} from obsolete to unsupported
29409         message.
29411 2024-05-31  Andrew Pinski  <quic_apinski@quicinc.com>
29413         PR target/115022
29414         * doc/invoke.texi (fstrub=disable): Fix opindex.
29415         (minline-memops-threshold): Fix opindex.
29416         (mcmodel=): Add opindex and fix them.
29417         * common.opt.urls: Regenerate.
29418         * config/aarch64/aarch64.opt.urls: Regenerate.
29419         * config/bpf/bpf.opt.urls: Regenerate.
29420         * config/i386/i386.opt.urls: Regenerate.
29421         * config/loongarch/loongarch.opt.urls: Regenerate.
29422         * config/nds32/nds32-elf.opt.urls: Regenerate.
29423         * config/nds32/nds32-linux.opt.urls: Regenerate.
29424         * config/or1k/or1k.opt.urls: Regenerate.
29425         * config/riscv/riscv.opt.urls: Regenerate.
29426         * config/rs6000/aix64.opt.urls: Regenerate.
29427         * config/rs6000/linux64.opt.urls: Regenerate.
29428         * config/sparc/sparc.opt.urls: Regenerate.
29430 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
29432         * config/xtensa/xtensa-protos.h
29433         (xtensa_use_return_instruction_p): Remove.
29434         * config/xtensa/xtensa.cc
29435         (machine_function): Remove "epilogue_done" field.
29436         (xtensa_expand_epilogue): Remove "cfun->machine->epilogue_done" usage.
29437         (xtensa_use_return_instruction_p): Remove.
29438         * config/xtensa/xtensa.md ("return"):
29439         Replace calling "xtensa_use_return_instruction_p()" with inline code.
29441 2024-05-31  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
29443         * config/xtensa/xtensa.cc (xtensa_valid_move, constantpool_address_p,
29444         xtensa_tls_symbol_p, gen_int_relational, xtensa_emit_move_sequence,
29445         xtensa_copy_incoming_a7, xtensa_expand_block_move,
29446         xtensa_expand_nonlocal_goto, xtensa_emit_call,
29447         xtensa_legitimate_address_p, xtensa_legitimize_address,
29448         xtensa_tls_referenced_p, print_operand, print_operand_address,
29449         xtensa_output_literal):
29450         Replace RTX code comparisons with their predicate macros such as
29451         REG_P().
29452         * config/xtensa/xtensa.h (CONSTANT_ADDRESS_P,
29453         LEGITIMATE_PIC_OPERAND_P): Ditto.
29454         * config/xtensa/xtensa.md (reload<mode>_literal, indirect_jump):
29455         Ditto.
29457 2024-05-31  Martin Uecker  <uecker@tugraz.at>
29459         PR tree-optimization/115157
29460         PR tree-optimization/115177
29461         * godump.cc (go_output_typedef): Use TYPE_MAIN_VARIANT instead
29462         of TYPE_CANONICAL.
29464 2024-05-31  liuhongt  <hongtao.liu@intel.com>
29466         * config/i386/emmintrin.h (__double_u): Rename from double_u.
29467         (_mm_load_sd): Replace double_u with __double_u.
29468         (_mm_store_sd): Ditto.
29469         (_mm_loadh_pd): Ditto.
29470         (_mm_loadl_pd): Ditto.
29471         * config/i386/xmmintrin.h (__float_u): Rename from float_u.
29472         (_mm_load_ss): Ditto.
29473         (_mm_store_ss): Ditto.
29475 2024-05-30  Uros Bizjak  <ubizjak@gmail.com>
29477         PR target/115102
29478         * config/i386/i386.md (bswaphi2): Also enable for !TARGET_MOVBE.
29479         (*bswaphi2): New insn pattern.
29480         (bswaphisi2_lowpart): Rename from bswaphi_lowpart.  Rewrite
29481         insn RTX to match the expected form of the combine pass.
29482         Remove rol{w} alternative and corresponding attributes.
29483         (bswsaphisi2_lowpart peephole2): New peephole2 pattern to
29484         conditionally convert bswaphisi2_lowpart to rotlhi3_1_slp.
29485         (bswapsi2): Update expander for rename.
29486         (rotlhi3_1_slp splitter): Conditionally split to bswaphi2.
29488 2024-05-30  Richard Sandiford  <richard.sandiford@arm.com>
29490         PR rtl-optimization/115281
29491         * ira-conflicts.cc (go_through_subreg): Use the natural size of
29492         the inner mode rather than the outer mode.
29494 2024-05-30  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
29496         * pair-fusion.h: Generic header code for load store pair fusion
29497         that can be shared across different architectures.
29498         * pair-fusion.cc: Generic source code implementation for
29499         load store pair fusion that can be shared across different architectures.
29500         * Makefile.in: Add new object file pair-fusion.o.
29501         * config/aarch64/aarch64-ldp-fusion.cc: Delete generic code and move it
29502         to pair-fusion.cc in the middle-end.
29503         * config/aarch64/t-aarch64: Add header file dependency on pair-fusion.h.
29504         Remove unnecessary header file dependency.
29506 2024-05-30  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
29508         PR c++/115031
29509         * config/sparc/sol2.h (GGC_QUIRE_SIZE): Define as 510.
29511 2024-05-30  David Malcolm  <dmalcolm@redhat.com>
29513         * Makefile.in (OBJS-libcommon): Add text-art/tree-widget.o.
29514         * doc/analyzer.texi: Rewrite discussion of dumping state to
29515         cover the text_art::tree_widget-based dumps, with a more
29516         interesting example.
29517         * text-art/dump-widget-info.h: New file.
29518         * text-art/dump.h: New file.
29519         * text-art/selftests.cc (selftest::text_art_tests): Call
29520         text_art_tree_widget_cc_tests.
29521         * text-art/selftests.h (selftest::text_art_tree_widget_cc_tests):
29522         New decl.
29523         * text-art/theme.cc (ascii_theme::get_cppchar): Handle the various
29524         cell_kind::TREE_*.
29525         (unicode_theme::get_cppchar): Likewise.
29526         * text-art/theme.h (enum class theme::cell_kind): Add
29527         TREE_CHILD_NON_FINAL, TREE_CHILD_FINAL, TREE_X_CONNECTOR, and
29528         TREE_Y_CONNECTOR.
29529         * text-art/tree-widget.cc: New file.
29530         * text-art/tree-widget.h: New file.
29532 2024-05-30  liuhongt  <hongtao.liu@intel.com>
29534         * config/i386/sse.md (vcond_mask_<mode><mode>): New expander.
29536 2024-05-30  liuhongt  <hongtao.liu@intel.com>
29538         PR tree-optimization/112325
29539         * tree-ssa-loop-ivcanon.cc (estimated_unrolled_size): Move the
29540         2 / 3 loop body size reduction to ..
29541         (try_unroll_loop_completely): .. here, add it for the check of
29542         body size shrink, and the check of comparison against
29543         param_max_completely_peeled_insns when
29544         (!cunrolli ||loop->inner).
29545         (canonicalize_loop_induction_variables): Add new parameter
29546         cunrolli and pass down.
29547         (tree_unroll_loops_completely_1): Ditto.
29548         (canonicalize_induction_variables): Pass cunrolli as false to
29549         canonicalize_loop_induction_variables.
29550         (tree_unroll_loops_completely): Set cunrolli to true at
29551         beginning and set it to false after CHANGED is true.
29553 2024-05-30  Alexandre Oliva  <oliva@adacore.com>
29555         * doc/sourcebuild.texi (dg-additional-sources): Document
29556         newly-added support for target selectors, and implicit discard
29557         on non-linking tests that name the compiler output explicitly.
29559 2024-05-30  Jiawei  <jiawei@iscas.ac.cn>
29561         * tree-ssa-pre.cc (create_component_ref_by_pieces_1): New conditions.
29563 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
29565         Revert:
29566         2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29568         * resource.cc: Include cfgrtl.h.  Use BLOCK_FOR_INSN (insn)->index
29569         instead of calling find_basic_block (insn).  Assert for not -1.
29570         (find_basic_block): Remove function.
29571         (init_resource_info): Call compute_bb_for_insn.
29572         (free_resource_info): Call free_bb_for_insn.
29574 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
29576         Revert:
29577         2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29579         * resource.cc (mark_target_live_regs): Remove redundant check for b
29580         being -1, after gcc_assert.
29582 2024-05-30  Hans-Peter Nilsson  <hp@axis.com>
29584         Revert:
29585         2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29587         * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't
29588         check for non-null target_hash_table and bb_ticks.
29589         (mark_target_live_regs): Ditto.  Replace check for non-NULL result from
29590         BLOCK_FOR_INSN with a call to gcc_assert.  Fold code conditioned on
29591         tinfo != NULL.
29593 2024-05-29  YunQiang Su  <syq@gcc.gnu.org>
29595         * config/mips/mips.cc(mips16_gp_pseudo_reg): Mark
29596         MIPS16_PIC_TEMP and MIPS_PROLOGUE_TEMP clobbered.
29597         (mips_emit_call_insn): Mark MIPS16_PIC_TEMP and
29598         MIPS_PROLOGUE_TEMP clobbered if MIPS16 and CALL_CLOBBERED_GP.
29600 2024-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
29602         PR tree-optimization/115224
29603         * generic-match-head.cc (bitwise_inverted_equal_p): Add `a ^ CST`
29604         case.
29605         * gimple-match-head.cc (gimple_bit_xor_cst): New declaration.
29606         (gimple_bitwise_inverted_equal_p): Add `a ^ CST` case.
29607         * match.pd (bit_xor_cst): New match.
29608         (maybe_bit_not): Add bit_xor_cst case.
29610 2024-05-29  Andrew Pinski  <quic_apinski@quicinc.com>
29612         * match.pd (bit_not_with_nop): Unconditionalize.
29613         (maybe_cmp): Likewise.
29614         (maybe_bit_not): New match pattern.
29615         (`~X & X`): Use maybe_bit_not and add `:c` back.
29616         (`~x ^ x`/`~x | x`): Likewise.
29618 2024-05-29  Richard Sandiford  <richard.sandiford@arm.com>
29620         PR target/115258
29621         * config/aarch64/aarch64-simd.md (aarch64_combinev16qi): Allow
29622         the split before reload.
29623         * config/aarch64/aarch64.cc (aarch64_split_combinev16qi): Generalize
29624         into a form that handles pseudo registers.
29626 2024-05-29  Feng Xue  <fxue@os.amperecomputing.com>
29628         * tree-vect-loop.c : Removed.
29630 2024-05-29  Feng Xue  <fxue@os.amperecomputing.com>
29632         * tree-vect-loop.cc (_loop_vec_info::_loop_vec_info): Move
29633         initialization of bbs to explicit construction code.  Adjust the
29634         definition of nbbs.
29635         (update_epilogue_loop_vinfo): Update nbbs for epilog vinfo.
29636         * tree-vect-patterns.cc (vect_determine_precisions): Make
29637         loop_vec_info and bb_vec_info share same code.
29638         (vect_pattern_recog): Remove duplicated vect_pattern_recog_1 loop.
29639         * tree-vect-slp.cc (vect_get_and_check_slp_defs): Access to bbs[0]
29640         via base vec_info class.
29641         (_bb_vec_info::_bb_vec_info): Initialize bbs and nbbs using data
29642         fields of input auto_vec<> bbs.
29643         (vect_slp_region): Use access to nbbs to replace original
29644         bbs.length().
29645         (vect_schedule_slp_node): Access to bbs[0] via base vec_info class.
29646         * tree-vectorizer.cc (vec_info::vec_info): Add initialization of
29647         bbs and nbbs.
29648         (vec_info::insert_seq_on_entry): Access to bbs[0] via base vec_info
29649         class.
29650         * tree-vectorizer.h (vec_info): Add new fields bbs and nbbs.
29651         (LOOP_VINFO_NBBS): New macro.
29652         (BB_VINFO_BBS): Rename BB_VINFO_BB to BB_VINFO_BBS.
29653         (BB_VINFO_NBBS): New macro.
29654         (_loop_vec_info): Remove field bbs.
29655         (_bb_vec_info): Rename field bbs.
29656         * tree-vect-loop.c: New file.
29658 2024-05-29  Jeff Law  <jlaw@ventanamicro.com>
29660         * config/riscv/crypto.md (riscv_xpack_<X:mode>_<HX:mode>_2): Remove '*'
29661         allow it to be used via the gen_* interface.
29662         * config/riscv/riscv.cc (riscv_build_integer): Identify when Zbkb
29663         can be used to profitably synthesize repeating constants.
29664         (riscv_move_integer): Codegen changes to generate those Zbkb sequences.
29666 2024-05-29  Jason Merrill  <jason@redhat.com>
29668         * doc/invoke.texi: Update module extension docs.
29670 2024-05-29  Tobias Burnus  <tburnus@baylibre.com>
29672         * config/gcn/gcn-hsa.h (gcn_local_sym_hash): Fix typo.
29674 2024-05-29  Richard Biener  <rguenther@suse.de>
29676         PR tree-optimization/115252
29677         * tree-vect-stmts.cc (get_group_load_store_type): Enhance
29678         detecting the number of cases where we can avoid accessing a gap
29679         during code generation.
29680         (vectorizable_load): Remove old half-vector peeling for gap
29681         avoidance which is now redundant.  Add gap-aligned case where
29682         it's OK to access the gap.  Add assert that we have peeling for
29683         gaps enabled when we access a gap.
29685 2024-05-29  Richard Biener  <rguenther@suse.de>
29687         PR tree-optimization/114435
29688         * tree-predcom.cc (tree_predictive_commoning): Queue
29689         the next scalar cleanup sub-pipeline to be run when we
29690         did something.
29692 2024-05-29  Hongyu Wang  <hongyu.wang@intel.com>
29694         PR target/113719
29695         * config/i386/i386-options.cc (ix86_override_options_after_change):
29696         Remove call to ix86_default_align and
29697         ix86_recompute_optlev_based_flags.
29698         (ix86_option_override_internal): Call ix86_default_align and
29699         ix86_recompute_optlev_based_flags.
29701 2024-05-29  liuhongt  <hongtao.liu@intel.com>
29703         * config/i386/i386.cc (ix86_avoid_jump_mispredicts): Change
29704         gen_pad to gen_max_skip_align.
29705         (ix86_align_loops): New function.
29706         (ix86_reorg): Call ix86_align_loops.
29707         * config/i386/i386.md (pad): Rename to ..
29708         (max_skip_align): .. this, and accept 2 operands for align and
29709         skip.
29711 2024-05-29  Haochen Jiang  <haochen.jiang@intel.com>
29713         * config/i386/x86-tune-costs.h (generic_cost): Change from
29714         16:11:8 to 16.
29716 2024-05-29  Andrew MacLeod  <amacleod@redhat.com>
29718         * gimple-range-gori.cc (gori_on_edge): Always use static ranges
29719         from the specified range_query.
29720         * gimple-range-gori.h (gori_on_edge): Change prototype.
29721         * gimple-range.cc (dom_ranger::maybe_push_edge): Change arguments
29722         to call.
29724 2024-05-29  Kewen Lin  <linkw@linux.ibm.com>
29726         PR target/114846
29727         * config/rs6000/rs6000-logue.cc (rs6000_emit_epilogue): As
29728         EPILOGUE_TYPE_EH_RETURN would be passed as epilogue_type directly
29729         now, adjust the relevant handlings on it.
29730         * config/rs6000/rs6000.md (eh_return expander): Append by calling
29731         gen_eh_return_internal and emit_barrier.
29732         (eh_return_internal): New define_insn_and_split, call function
29733         rs6000_emit_epilogue with epilogue type EPILOGUE_TYPE_EH_RETURN.
29735 2024-05-28  liuhongt  <hongtao.liu@intel.com>
29737         PR target/67325
29738         * config/i386/i386.cc (ix86_rtx_costs): Reduce cost of MEM (A
29739         + imm) to "cost of MEM (A)" + 1.
29741 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
29743         * gimple-range.cc (dom_ranger::dom_ranger): Do not initialize m_out.
29744         (dom_ranger::maybe_push_edge): Use gori () rather than m_out.
29745         * gimple-range.h (dom_ranger::m_out): Remove.
29746         * tree-vrp.cc (remove_unreachable::remove_unreachable): Use a
29747         range-query ranther than a gimple_ranger.
29748         (remove_unreachable::remove): New.
29749         (remove_unreachable::m_ranger): Change to a range_query.
29750         (remove_unreachable::handle_early): If there is no dependency
29751         information, do nothing.
29752         (remove_unreachable::remove_and_update_globals): Do not update
29753         globals if there is no dependecy info to use.
29755 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29757         * resource.cc (free_resource_info, clear_hashed_info_for_insn): Don't
29758         check for non-null target_hash_table and bb_ticks.
29759         (mark_target_live_regs): Ditto.  Replace check for non-NULL result from
29760         BLOCK_FOR_INSN with a call to gcc_assert.  Fold code conditioned on
29761         tinfo != NULL.
29763 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29765         * resource.cc (mark_target_live_regs): Remove redundant check for b
29766         being -1, after gcc_assert.
29768 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29770         * resource.cc: Include cfgrtl.h.  Use BLOCK_FOR_INSN (insn)->index
29771         instead of calling find_basic_block (insn).  Assert for not -1.
29772         (find_basic_block): Remove function.
29773         (init_resource_info): Call compute_bb_for_insn.
29774         (free_resource_info): Call free_bb_for_insn.
29776 2024-05-28  Hans-Peter Nilsson  <hp@axis.com>
29778         PR rtl-optimization/115182
29779         * resource.cc (mark_target_live_regs): Don't look for
29780         unconditional branches after the target to improve on the
29781         register liveness.
29782         (find_dead_or_set_registers): Remove unused function.
29784 2024-05-28  Uros Bizjak  <ubizjak@gmail.com>
29786         * config/i386/sync.md (atomic_loaddi_fpu): Use movd/pextrd
29787         to move DImode value from XMM to GPR for TARGET_SSE4_1.
29788         (atomic_storedi_fpu): Use movd/pinsrd to move DImode value
29789         from GPR to XMM for TARGET_SSE4_1.
29791 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
29793         * diagnostic-color.cc: Define INCLUDE_VECTOR.
29794         Include "label-text.h" and "selftest.h".
29795         (struct color_cap): Replace with...
29796         (struct color_default): ...this, adding "m_" prefixes to fields
29797         and dropping "name_len" and "free_val" field.
29798         (color_dict): Convert to...
29799         (gcc_color_defaults): ...this, making const, dropping the trailing
29800         strlen and "false" from each entry.
29801         (class diagnostic_color_dict): New.
29802         (g_color_dict): New.
29803         (colorize_start): Reimplement in terms of g_color_dict.
29804         (diagnostic_color_dict::get_entry_by_name): New, based on
29805         colorize_start.
29806         (diagnostic_color_dict::get_start_by_name): Likewise.
29807         (diagnostic_color_dict::diagnostic_color_dict): New.
29808         (parse_gcc_colors): Reimplement, moving body...
29809         (diagnostic_color_dict::parse_envvar_value): ...here.
29810         (colorize_init): Lazily create g_color_dict.
29811         (selftest::test_empty_color_dict): New.
29812         (selftest::test_default_color_dict): New.
29813         (selftest::test_color_dict_envvar_parsing): New.
29814         (selftest::diagnostic_color_cc_tests): New.
29815         * selftest-run-tests.cc (selftest::run_tests): Call
29816         selftest::diagnostic_color_cc_tests.
29817         * selftest.h (selftest::diagnostic_color_cc_tests): New decl.
29819 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
29821         * function-tests.cc: Include "selftest-tree.h".
29822         * selftest-tree.h: New file.
29823         * selftest.h (make_fndecl): Move to selftest-tree.h.
29825 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
29827         * config/v850/v850.opt.urls: Regenerate, with fix.
29828         * config/vax/vax.opt.urls: Likewise.
29829         * regenerate-opt-urls.py (TARGET_SPECIFIC_PAGES): Fix transposed
29830         values for "vax" and "v850".
29832 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
29834         PR tree-optimization/115221
29835         * gimple-range-fold.cc (range_of_ssa_name_with_loop_info): Do
29836         not invoke SCEV is range_query's do not match.
29838 2024-05-28  Andrew MacLeod  <amacleod@redhat.com>
29840         * tree-ssa-strlen.cc (strlen_pass::strlen_pass): Add function
29841         pointer and initialize ptr_qry with current range_query.
29842         (strlen_pass::m_ranger): Remove.
29843         (printf_strlen_execute): Enable and disable ranger.
29845 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
29847         PR analyzer/115203
29848         * diagnostic-path.h
29849         (simple_diagnostic_path::disable_event_localization): New.
29850         (simple_diagnostic_path::m_localize_events): New field.
29851         * diagnostic.cc
29852         (simple_diagnostic_path::simple_diagnostic_path): Initialize
29853         m_localize_events.
29854         (simple_diagnostic_path::add_event): Only localize fmt if
29855         m_localize_events is true.
29856         * tree-diagnostic-path.cc
29857         (test_diagnostic_path::test_diagnostic_path): Call
29858         disable_event_localization.
29860 2024-05-28  David Malcolm  <dmalcolm@redhat.com>
29862         PR bootstrap/115167
29863         * Makefile.in (C_COMMON_OBJS): Add c-family/c-type-mismatch.o.
29864         * gcc-rich-location.cc
29865         (maybe_range_label_for_tree_type_mismatch::get_text): Move to
29866         c-family/c-type-mismatch.cc.
29867         (binary_op_rich_location::binary_op_rich_location): Likewise.
29868         (binary_op_rich_location::use_operator_loc_p): Likewise.
29869         * gcc-rich-location.h (class range_label_for_type_mismatch):
29870         Likewise.
29871         (class maybe_range_label_for_tree_type_mismatch): Likewise.
29872         (class op_location_t): Likewise for forward decl.
29873         (class binary_op_rich_location): Likewise.
29875 2024-05-28  Lyut Nersisyan  <lyut.nersisyan@gmail.com>
29877         * config/riscv/crypto.md: Add new combiner patterns to generate
29878         pack, packh, packw instrutions.
29879         * config/riscv/iterators.md (HX): New iterator for half X mode.
29880         * config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): Tighten
29881         cases to avoid.  Do not lose bits for XOR/IOR.
29883 2024-05-28  Feng Xue  <fxue@os.amperecomputing.com>
29885         PR tree-optimization/115060
29886         * tree-vect-patterns.cc (vect_get_internal_def): Return statement for
29887         vectorization.
29888         (vect_widened_op_tree): Call vect_get_internal_def instead of look_def
29889         to get statement information.
29890         (vect_recog_widen_abd_pattern): No need to call vect_stmt_to_vectorize.
29892 2024-05-28  Richard Biener  <rguenther@suse.de>
29894         PR tree-optimization/115236
29895         * tree-ssa-structalias.cc (build_pred_graph): Properly
29896         handle *ANYTHING = X.
29897         (build_succ_graph): Likewise.  Do not elide direct nodes
29898         from receiving from STOREDANYTHING.
29900 2024-05-28  Richard Biener  <rguenther@suse.de>
29902         * tree-ssa-structalias.cc (find_func_aliases): Use
29903         get_constraint_for_address_of to build escape constraints
29904         for asm inputs and outputs.
29906 2024-05-28  Richard Biener  <rguenther@suse.de>
29908         PR tree-optimization/115254
29909         * tree-vect-slp.cc (vect_build_slp_tree): Only account
29910         multi-lane SLP to limit.
29912 2024-05-28  Richard Biener  <rguenther@suse.de>
29914         * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert
29915         neutral op to the vector component type.
29917 2024-05-28  liuhongt  <hongtao.liu@intel.com>
29919         * config/i386/sse.md
29920         (<avx512>_<complexopname>_<mode>_mask<round_name>): Align
29921         operands' predicate with corresponding expander.
29922         (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
29923         Ditto.
29925 2024-05-28  Xi Ruoyao  <xry111@xry111.site>
29927         PR target/115169
29928         * config/loongarch/loongarch.cc
29929         (loongarch_expand_conditional_move): Guard REGNO with REG_P.
29931 2024-05-27  Andrew Pinski  <quic_apinski@quicinc.com>
29933         PR tree-optimization/115238
29934         * generic-match-head.cc (bitwise_inverted_equal_p): Use
29935         uniform_integer_cst_p instead of checking INTEGER_CST.
29936         * gimple-match-head.cc (gimple_bitwise_inverted_equal_p): Likewise.
29938 2024-05-27  Gaius Mulley  <gaiusmod2@gmail.com>
29940         * doc/gm2.texi: Replace all occurrences of xref
29941         {foo, , , gm2} with xref {foo}.
29943 2024-05-27  Richard Biener  <rguenther@suse.de>
29945         * tree-ssa-structalias.cc (scc_visit): Mark the node we
29946         collapse to as being in a component.
29948 2024-05-27  Richard Biener  <rguenther@suse.de>
29950         PR tree-optimization/115220
29951         PR tree-optimization/115226
29952         * tree-ssa-sink.cc (statement_sink_location): When ignoring
29953         paths to kills when sinking stores make sure the final
29954         sink location is still post-dominated by the original one.
29955         Otherwise we'd need to insert a PHI node to merge virtual operands.
29957 2024-05-27  TheShermanTanker  <tanksherman27@gmail.com>
29959         * config/mingw/mingw32.h: Add new define for POSIX
29960         threads.
29962 2024-05-27  Richard Biener  <rguenther@suse.de>
29964         PR tree-optimization/115232
29965         * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
29966         failure to demangle gracefully.
29968 2024-05-27  Gerald Pfeifer  <gerald@pfeifer.com>
29970         * doc/gm2.texi (What is GNU Modula-2): Move gcc.gnu.org links to
29971         https.
29972         (Other languages): Ditto. And fix casing of GCC.
29974 2024-05-27  Liao Shihua  <shihua@iscas.ac.cn>
29976         * config/riscv/riscv.cc (riscv_rtx_costs): Add TARGET_ZMMUL.
29978 2024-05-27  Maciej W. Rozycki  <macro@orcam.me.uk>
29980         * doc/invoke.texi (Option Summary): Add `-md', `-md-float', and
29981         `-mg-float' options.  Reorder, matching VAX Options.
29982         (VAX Options): Reword the description of `-mg' option.  Add
29983         `-md', `-md-float', and `-mg-float' options.
29985 2024-05-27  Abe Skolnik  <abe_skolnik@yahoo.com>
29987         PR target/79646
29988         * config/vax/vax.opt (md, md-float, mg, mg-float): Correct
29989         descriptions.
29991 2024-05-27  Lyut Nersisyan  <lyut.nersisyan@gmail.com>
29993         * config/riscv/riscv.md (<optab>_shift_reverse<X:mode>): New pattern.
29995 2024-05-27  Levy Hsu  <admin@levyhsu.com>
29996             H.J. Lu  <hjl.tools@gmail.com>
29998         PR target/115146
29999         * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): Replace arithmatic shift
30000         gen_ashrv4hi3 with logic shift gen_lshrv4hi3.
30001         Replace gen_vlshrv8hi3 with gen_lshrv8hi3 and gen_vashlv8hi3 with gen_ashlv8hi3.
30003 2024-05-27  Pan Li  <pan2.li@intel.com>
30005         * genmatch.cc (dt_node::gen_kids_1): Fix indenet mis-aligned.
30007 2024-05-26  Jeff Law  <jlaw@ventanamicro.com>
30009         * config/riscv/riscv.cc (riscv_build_integer_one): Verify there
30010         are no bits left to set in the constant when generating bseti.
30011         (riscv_built_integer): Synthesize ~value and if it's cheap use it
30012         with a trailing xori with -1.
30014 2024-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
30016         * doc/extend.texi (Attribute Syntax): Use @samp{=} instead of @code{=}.
30017         (Extended Asm): Ditto.
30019 2024-05-26  Jeff Law  <jlaw@ventanamicro.com>
30021         * config/riscv/riscv.cc (riscv_build_integer_1): Try generating
30022         a nearby simpler constant, then using a final addi to set low
30023         bits properly.
30025 2024-05-26  Andrew MacLeod  <amacleod@redhat.com>
30027         PR tree-optimization/115208
30028         * value-query.cc (range_query::create_gori): Confirm gori_map is NULL.
30029         (range_query::destroy_gori): Free gori_map if one was allocated.
30031 2024-05-25  Jeff Law  <jlaw@ventanamicro.com>
30033         * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): Handle
30034         more logical simplifications.
30036 2024-05-24  Jeff Law  <jlaw@ventanamicro.com>
30038         * config/riscv/predicates.md (arith_operand_or_mode_mask): Renamed to..
30039         (arith_or_mode_mask_or_zbs_operand): New predicate.
30040         * config/riscv/riscv.md (and<mode>3): Update predicate for operand 2.
30041         * config/riscv/riscv.cc (riscv_build_integer_1): Use bclri to clear
30042         bits, particularly bits 31..63 when profitable to do so.
30044 2024-05-24  Richard Sandiford  <richard.sandiford@arm.com>
30046         PR tree-optimization/115192
30047         * tree-data-ref.cc (create_intersect_range_checks): Take the
30048         alignment of the access sizes into account.
30050 2024-05-24  Gaius Mulley  <gaiusmod2@gmail.com>
30052         * doc/gm2.texi: Replace all occurrences of xref {, , , gm2}
30053         with xref {, , , m2}.
30055 2024-05-24  Manolis Tsamis  <manolis.tsamis@vrull.eu>
30057         * match.pd: Allow no-op view_convert between permutes.
30059 2024-05-24  Richard Biener  <rguenther@suse.de>
30061         PR tree-optimization/115144
30062         * tree-ssa-sink.cc (do_not_sink): New function, split out
30063         from ...
30064         (select_best_block): Here.  First pick valid block to
30065         sink to.  From that search for the best valid block,
30066         avoiding sinking across conditions to exceptional code.
30067         (sink_code_in_bb): When updating vuses of stores in
30068         paths we do not sink a store to make sure we didn't
30069         pick a dominating sink location.
30071 2024-05-24  Andrew Pinski  <quic_apinski@quicinc.com>
30073         * tree-ssa-phiprop.cc (phiprop_insert_phi): Add
30074         dce_ssa_names argument. Add the phi's result to it.
30075         (propagate_with_phi): Add dce_ssa_names argument.
30076         Update call to phiprop_insert_phi.
30077         (pass_phiprop::execute): Update call to propagate_with_phi.
30078         Call simple_dce_from_worklist if there was a change.
30080 2024-05-24  Richard Biener  <rguenther@suse.de>
30082         * tree-vect-slp.cc (vect_build_slp_instance): Do not split
30083         store dataref groups on loop SLP discovery failure but create
30084         a single SLP instance for the stores but branch to SLP sub-trees
30085         and merge with a series of VEC_PERM nodes.
30087 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30089         * gimple-range-edge.h (range_query::condexpr_adjust): Delete.
30090         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use
30091         gori_ssa routine.
30092         (fold_using_range::range_of_address): Likewise.
30093         (fold_using_range::range_of_phi): Likewise.
30094         (fold_using_range::condexpr_adjust): Relocated from gori_compute.
30095         (fold_using_range::range_of_cond_expr): Use local condexpr_adjust.
30096         (fur_source::register_outgoing_edges): Use gori_ssa routine.
30097         * gimple-range-fold.h (gori_ssa): Rename from gori_bb.
30098         (fold_using_range::condexpr_adjust): Add prototype.
30099         * gimple-range-gori.cc (gori_compute::condexpr_adjust): Relocate.
30100         * gimple-range-gori.h (gori_compute::condexpr_adjust): Delete.
30102 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30104         * gimple-range-cache.cc (ranger_cache::ranger_cache): Use gori_ssa.
30105         (ranger_cache::dump): Likewise.
30106         (ranger_cache::get_global_range): Likewise.
30107         (ranger_cache::set_global_range): Likewise.
30108         (ranger_cache::register_inferred_value): Likewise.
30109         * gimple-range-edge.h (gimple_outgoing_range::map): Remove.
30110         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Use
30111         gori_ssa.
30112         (fold_using_range::range_of_address): Likewise.
30113         (fold_using_range::range_of_phi): Likewise.
30114         (fur_source::register_outgoing_edges): Likewise.
30115         * gimple-range-fold.h (fur_source::query): Make const.
30116         (gori_ssa): New.
30117         * gimple-range-gori.cc (gori_map::dump): Use 'this' pointer.
30118         (gori_compute::gori_compute): Construct with a gori_map.
30119         * gimple-range-gori.h (gori_compute:gori_compute): Change
30120         prototype.
30121         (gori_compute::map): Delete.
30122         (gori_compute::m_map): Change to a reference.
30123         (FOR_EACH_GORI_IMPORT_NAME): Change parameter gori to gorimap.
30124         (FOR_EACH_GORI_EXPORT_NAME): Likewise.
30125         * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
30126         Use gori_ssa method.
30127         (path_range_query::compute_exit_dependencies): Likewise.
30128         * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise.
30129         (gimple_ranger::register_transitive_inferred_ranges): Likewise.
30130         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
30131         Likewise.
30132         * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
30133         * tree-vrp.cc (remove_unreachable::handle_early): Likewise.
30134         (remove_unreachable::remove_and_update_globals): Likewise.
30135         * value-query.cc (range_query::create_gori): Create gori map.
30136         (range_query::share_query): Copy gori map member.
30137         (range_query::range_query): Initiialize gori_map member.
30138         * value-query.h (range_query::gori_ssa): New.
30139         (range_query::m_map): New.
30141 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30143         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create
30144         GORi via the range_query instead of a local member.
30145         (ranger_cache::dump_bb): Use gori via from the range_query parent.
30146         (ranger_cache::get_global_range): Likewise.
30147         (ranger_cache::set_global_range): Likewise.
30148         (ranger_cache::edge_range): Likewise.
30149         (anger_cache::block_range): Likewise.
30150         (ranger_cache::fill_block_cache): Likewise.
30151         (ranger_cache::range_from_dom): Likewise.
30152         (ranger_cache::register_inferred_value): Likewise.
30153         * gimple-range-cache.h (ranger_cache::m_gori): Delete.
30154         * gimple-range-fold.cc (fur_source::fur_source): Set m_depend_p.
30155         (fur_depend::fur_depend): Remove gori parameter.
30156         * gimple-range-fold.h (fur_source::gori): Adjust.
30157         (fur_source::m_gori): Delete.
30158         (fur_source::m_depend): New.
30159         (fur_depend::fur_depend): Adjust prototype.
30160         * gimple-range-path.cc (path_range_query::path_range_query): Share
30161         ranger oracles.
30162         (path_range_query::range_defined_in_block): Use oracle directly.
30163         (path_range_query::compute_ranges_in_block): Use new gori() method.
30164         (path_range_query::adjust_for_non_null_uses): Use oracle directly.
30165         (path_range_query::compute_exit_dependencies): Likewise.
30166         (jt_fur_source::jt_fur_source): No gori in the parameters.
30167         (path_range_query::range_of_stmt): Likewise.
30168         (path_range_query::compute_outgoing_relations): Likewise.
30169         * gimple-range.cc (gimple_ranger::fold_range_internal): Likewise.
30170         (gimple_ranger::range_of_stmt): Access gori via gori () method.
30171         (assume_query::range_of_expr): Create a gori object.
30172         (assume_query::~assume_query): Destroy a gori object.
30173         (assume_query::calculate_op): Remove old gori() accessor.
30174         * gimple-range.h (gimple_ranger::gori): Delete.
30175         (assume_query::~assume_query): New.
30176         (assume_query::m_gori): Delete.
30177         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): use
30178         gori () method.
30179         * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
30180         * value-query.cc (default_gori): New.
30181         (range_query::create_gori): New.
30182         (range_query::destroy_gori): New.
30183         (range_query::share_oracles): Set m_gori.
30184         (range_query::range_query): Set m_gori to default.
30185         (range_query::~range_query): call destroy gori.
30186         * value-query.h (range_query): Adjust prototypes
30187         (range_query::m_gori): New.
30189 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30191         * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust
30192         m_gori constructor.
30193         (ranger_cache::edge_range): Use renamed edge_range_p name.
30194         (ranger_cache::range_from_dom): Likewise.
30195         * gimple-range-edge.h (gimple_outgoing_range::condexpr_adjust): New.
30196         (gimple_outgoing_range::has_edge_range_p): New.
30197         (gimple_outgoing_range::dump): New.
30198         (gimple_outgoing_range::compute_operand_range): New.
30199         (gimple_outgoing_range::map): New.
30200         * gimple-range-fold.cc (fur_source::register_outgoing_edges ): Use
30201         renamed edge_range_p routine
30202         * gimple-range-gori.cc (gori_compute::gori_compute): Adjust
30203         constructor.
30204         (gori_compute::~gori_compute): New.
30205         (gori_compute::edge_range_p): Rename from outgoing_edge_range_p
30206         and use inherited routine instead of member method.
30207         * gimple-range-gori.h (class gori_compute): Inherit from
30208         gimple_outgoing_range, adjust protoypes.
30209         (gori_compute::outgpoing): Delete.
30210         * gimple-range-path.cc (path_range_query::compute_ranges_in_block): Use
30211         renamed edge_range_p routine.
30212         * tree-ssa-loop-unswitch.cc (evaluate_control_stmt_using_entry_checks):
30213         Likewise.
30215 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30217         * gimple-range-cache.cc (ranger_cache::ranger_cache): Access
30218         gori_map via member call.
30219         (ranger_cache::dump_bb): Likewise.
30220         (ranger_cache::get_global_range): Likewise.
30221         (ranger_cache::set_global_range): Likewise.
30222         (ranger_cache::register_inferred_value): Likewise.
30223         * gimple-range-fold.cc (fold_using_range::range_of_range_op): Likewise.
30224         (fold_using_range::range_of_address): Likewise.
30225         (fold_using_range::range_of_phi): Likewise.
30226         * gimple-range-gori.cc (gori_compute::compute_operand_range_switch):
30227         likewise.
30228         (gori_compute::compute_operand_range): Likewise.
30229         (gori_compute::compute_logical_operands): Likewise.
30230         (gori_compute::refine_using_relation): Likewise.
30231         (gori_compute::compute_operand1_and_operand2_range): Likewise.
30232         (gori_compute::may_recompute_p): Likewise.
30233         (gori_compute::has_edge_range_p): Likewise.
30234         (gori_compute::outgoing_edge_range_p): Likewise.
30235         (gori_compute::condexpr_adjust): Likewise.
30236         * gimple-range-gori.h (class gori_compute): Do not inherit from
30237         gori_map.
30238         (gori_compute::m_map): New.
30239         * gimple-range-path.cc (gimple-range-path.cc): Use gori_map member.
30240         (path_range_query::compute_exit_dependencies): Likewise.
30241         * gimple-range.cc (gimple_ranger::range_of_stmt): Likewise.
30242         (gimple_ranger::register_transitive_inferred_ranges): Likewise.
30243         * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges): Likewise.
30244         * tree-ssa-threadedge.cc (compute_exit_dependencies): Likewise.
30245         * tree-vrp.cc (remove_unreachable::handle_early): Likewise.
30246         (remove_unreachable::remove_and_update_globals): Likewise.
30248 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30250         * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range):
30251         Do not allocate a range allocator at construction time.
30252         (gimple_outgoing_range::~gimple_outgoing_range): Delete allocator
30253         if one was allocated.
30254         (gimple_outgoing_range::set_switch_limit): New.
30255         (gimple_outgoing_range::switch_edge_range): Create an allocator if one
30256         does not exist.
30257         (gimple_outgoing_range::edge_range_p): Check for zero edges.
30258         * gimple-range-edge.h (class gimple_outgoing_range): Adjust prototypes.
30260 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30262         PR tree-optimization/113879
30263         * gimple-range-fold.cc (op1_range): New.
30264         (op2_range): New.
30265         * gimple-range-fold.h (op1_range): New prototypes.
30266         (op2_range): New prototypes.
30267         * gimple-range-infer.cc (gimple_infer_range::add_range): Do not
30268         add an inferred range if it is VARYING.
30269         (gimple_infer_range::gimple_infer_range): Add inferred ranges
30270         for any range-op statements if requested.
30271         * gimple-range-infer.h (gimple_infer_range): Add parameter.
30273 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30275         * gimple-range-cache.cc (ranger_cache::ranger_cache): Create an infer
30276         oracle instead of a local member.
30277         (ranger_cache::~ranger_cache): Destroy the oracle.
30278         (ranger_cache::edge_range): Use oracle.
30279         (ranger_cache::fill_block_cache): Likewise.
30280         (ranger_cache::range_from_dom): Likewise.
30281         (ranger_cache::apply_inferred_ranges): Likewise.
30282         * gimple-range-cache.h (ranger_cache::m_exit): Delete.
30283         * gimple-range-infer.cc (infer_oracle): New static object;
30284         (class infer_oracle): New.
30285         (non_null_wrapper::non_null_wrapper): New.
30286         (non_null_wrapper::add_nonzero): New.
30287         (non_null_wrapper::add_range): New.
30288         (non_null_loadstore): Use nonnull_wrapper.
30289         (gimple_infer_range::gimple_infer_range): New alternate constructor.
30290         (exit_range::stmt): New.
30291         (infer_range_manager::has_range_p): Combine seperate methods.
30292         (infer_range_manager::maybe_adjust_range): Adjust has_range_p call.
30293         (infer_range_manager::add_ranges): New.
30294         (infer_range_manager::add_range): Take stmt rather than BB.
30295         (infer_range_manager::add_nonzero): Adjust from BB to stmt.
30296         * gimple-range-infer.h (class gimple_infer_range): Adjust methods.
30297         (infer_range_oracle): New.
30298         (class infer_range_manager): Inherit from infer_range_oracle.
30299         Adjust methods.
30300         * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
30301         oracle.
30302         (path_range_query::adjust_for_non_null_uses): Likewise.
30303         * gimple-range.cc (gimple_ranger::range_on_edge): Likewise
30304         (gimple_ranger::register_transitive_inferred_ranges): Likewise.
30305         * value-query.cc (default_infer_oracle): New.
30306         (range_query::create_infer_oracle): New.
30307         (range_query::destroy_infer_oracle): New.
30308         (range_query::share_query): Copy infer pointer.
30309         (range_query::range_query): Initialize infer pointer.
30310         (range_query::~range_query): destroy infer object.
30311         * value-query.h (range_query::infer_oracle): New.
30312         (range_query::create_infer_oracle): New prototype.
30313         (range_query::destroy_infer_oracle): New prototype.
30314         (range_query::m_infer): New.
30316 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30318         * gimple-range.cc (gimple_ranger::gimple_ranger): Share the
30319         components from ranger_cache.
30320         (gimple_ranger::~gimple_ranger): Don't clear pointer.
30321         * value-query.cc (range_query::share_query): New.
30322         (range_query::range_query): Clear shared component flag.
30323         (range_query::~range_query): Don't free shared component copies.
30324         * value-query.h (share_query): New prototype.
30325         (m_shared_copy_p): New member.
30327 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30329         * gimple-range-cache.cc (ranger_cache::dump_bb): Use m_relation.
30330         (ranger_cache::fill_block_cache): Likewise
30331         * gimple-range-fold.cc (fur_stmt::get_phi_operand): Use new names.
30332         (fur_depend::register_relation): Likewise.
30333         (fold_using_range::range_of_phi): Likewise.
30334         * gimple-range-path.cc (path_range_query::path_range_query): Likewise.
30335         (path_range_query::~path_range_query): Likewise.
30336         (ath_range_query::compute_ranges): Likewise.
30337         (jt_fur_source::register_relation): Likewise.
30338         (jt_fur_source::query_relation): Likewise.
30339         (path_range_query::maybe_register_phi_relation): Likewise.
30340         * gimple-range-path.h (get_path_oracle): Likewise.
30341         * gimple-range.cc (gimple_ranger::gimple_ranger): Likewise.
30342         (gimple_ranger::~gimple_ranger): Likewise.
30343         * value-query.cc (range_query::create_relation_oracle): Likewise.
30344         (range_query::destroy_relation_oracle): Likewise.
30345         (range_query::share_oracles): Likewise.
30346         (range_query::range_query): Likewise.
30347         * value-query.h (value_query::relation): Rename from oracle.
30348         (m_relation): Rename from m_oracle.
30349         * value-relation.cc (relation_oracle::query): Rename from
30350         query_relation.
30351         (equiv_oracle::query): Likewise.
30352         (equiv_oracle::record): Rename from register_relation.
30353         (relation_oracle::record): Likewise.
30354         (dom_oracle::record): Likewise.
30355         (dom_oracle::query): Rename from query_relation.
30356         (path_oracle::record): Rename from register_relation.
30357         (path_oracle::query): Rename from query_relation.
30358         * value-relation.h (*::record): Rename from register_relation.
30359         (*::query): Rename from query_relation.
30361 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30363         * gimple-range-cache.cc (ranger_cache::dump_bb): Remove check for
30364         NULL oracle pointer.
30365         (ranger_cache::fill_block_cache): Likewise.
30366         * gimple-range-fold.cc (fur_stmt::get_phi_operand): Likewise.
30367         (fur_depend::fur_depend): Likewise.
30368         (fur_depend::register_relation): Likewise, use qury_relation.
30369         (fold_using_range::range_of_phi): Likewise.
30370         (fold_using_range::relation_fold_and_or): Likewise.
30371         * gimple-range-fold.h (fur_source::m_oracle): Delete.  Oracle
30372         can be accessed dirctly via m_query now.
30373         * gimple-range-path.cc (path_range_query::path_range_query):
30374         Adjust for oracle reference pointer.
30375         (path_range_query::compute_ranges): Likewise.
30376         (jt_fur_source::jt_fur_source): Adjust for no m_oracle member.
30377         (jt_fur_source::register_relation): Do not check for NULL
30378         pointer.
30379         (jt_fur_source::query_relation): Likewise.
30380         * gimple-range.cc (gimple_ranger::gimple_ranger):  Adjust for
30381         reference pointer.
30382         * value-query.cc (default_relation_oracle): New.
30383         (range_query::create_relation_oracle): Relocate from header.
30384         Ensure not being added to global query.
30385         (range_query::destroy_relation_oracle): Relocate from header.
30386         (range_query::range_query): Initailize to default oracle.
30387         (ange_query::~range_query): Call destroy_relation_oracle.
30388         * value-query.h (class range_query): Adjust prototypes.
30389         (range_query::create_relation_oracle): Move to source file.
30390         (range_query::destroy_relation_oracle): Move to source file.
30391         * value-relation.cc (relation_oracle::validate_relation): Delete.
30392         (relation_oracle::register_stmt): Rename to register_relation.
30393         (relation_oracle::register_edge): Likewise.
30394         * value-relation.h (register_stmt): Rename to register_relation and
30395         provide default function in base class.
30396         (register_edge): Likewise.
30397         (relation_oracle::validate_relation): Delete.
30398         (relation_oracle::query_relation): Provide default in base class.
30399         (relation_oracle::dump): Likewise.
30400         (relation_oracle::equiv_set): Likewise.
30401         (default_relation_oracle): New extenal reference.
30402         (partial_equiv_set, add_partial_equiv): Move to protected.
30404 2024-05-23  Andrew MacLeod  <amacleod@redhat.com>
30406         * gimple-range-cache.cc (ranger_cache::ranger_cache): Call
30407         create_relation_oracle.
30408         (ranger_cache::~ranger_cache): Call destroy_relation_oracle.
30409         * gimple-range-fold.cc (fur_stmt::get_phi_operand): Check for
30410         relation oracle bnefore calling query_relation.
30411         (fold_using_range::range_of_phi): Likewise.
30412         * gimple-range-path.cc (path_range_query::~path_range_query): Set
30413         relation oracle pointer to NULL when done.
30414         * gimple-range.cc (gimple_ranger::~gimple_ranger): Likewise.
30415         * value-query.cc (range_query::~range_query): Ensure any
30416         relation oracle is destroyed.
30417         (range_query::query_relation): relocate to relation_oracle object.
30418         * value-query.h (class range_query): Adjust method proototypes.
30419         (range_query::create_relation_oracle): New.
30420         (range_query::destroy_relation_oracle): New.
30421         * value-relation.cc (relation_oracle::query_relation): Relocate
30422         from range query class.
30423         * value-relation.h (Call relation_oracle): New prototypes.
30425 2024-05-23  Pan Li  <pan2.li@intel.com>
30427         * generic-match-head.cc (types_match): Add overloaded types_match
30428         for 3 types.
30429         * gimple-match-head.cc (types_match): Ditto.
30430         * match.pd: Leverage overloaded types_match.
30432 2024-05-23  Richard Biener  <rguenther@suse.de>
30434         PR tree-optimization/115197
30435         * tree-loop-distribution.cc (copy_loop_before): Constant PHI
30436         args remain the same.
30438 2024-05-23  Richard Biener  <rguenther@suse.de>
30440         PR tree-optimization/115199
30441         * tree-ssa-structalias.cc (process_constraint): Also
30442         record &ANYTHING = X as *ANYTING = X in the end.
30444 2024-05-23  Richard Biener  <rguenther@suse.de>
30446         PR tree-optimization/115138
30447         * tree-ssa-alias.cc (ptrs_compare_unequal): Make sure
30448         pt.vars_contains_nonlocal differs since we do not represent
30449         FUNCTION_DECLs or LABEL_DECLs in vars explicitly.
30451 2024-05-23  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
30453         PR target/109549
30454         * config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P):
30455         Define.
30456         (s390_noce_conversion_profitable_p): Implement.
30458 2024-05-23  Aldy Hernandez  <aldyh@redhat.com>
30460         PR tree-optimization/115191
30461         * tree-ssa-phiopt.cc (value_replacement): Use Value_Range instead
30462         of int_range_max.
30464 2024-05-23  Andrew Pinski  <quic_apinski@quicinc.com>
30465             Joel Jones  <quic_joeljone@quicinc.com>
30466             Wei Zhao  <quic_wezhao@quicinc.com>
30468         * config/aarch64/aarch64-cores.def (oryon-1): New entry.
30469         * config/aarch64/aarch64-tune.md: Regenerate.
30470         * doc/invoke.texi  (AArch64 Options): Document oryon-1.
30472 2024-05-22  Pengxuan Zheng  <quic_pzheng@quicinc.com>
30474         PR target/102171
30475         * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_HIGH_BUILTINS):
30476         New macro to create definitions for all vget_high intrinsics.
30477         (VGET_HIGH_BUILTIN): Likewise.
30478         (enum aarch64_builtins): Add vget_high function codes.
30479         (AARCH64_SIMD_VGET_LOW_BUILTINS): Delete duplicate macro.
30480         (aarch64_general_fold_builtin): Fold vget_high calls.
30481         * config/aarch64/aarch64-simd-builtins.def: Delete vget_high builtins.
30482         * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Delete.
30483         (aarch64_vget_hi_halfv8bf): Likewise.
30484         * config/aarch64/arm_neon.h (__attribute__): Delete.
30485         (vget_high_f16): Likewise.
30486         (vget_high_f32): Likewise.
30487         (vget_high_f64): Likewise.
30488         (vget_high_p8): Likewise.
30489         (vget_high_p16): Likewise.
30490         (vget_high_p64): Likewise.
30491         (vget_high_s8): Likewise.
30492         (vget_high_s16): Likewise.
30493         (vget_high_s32): Likewise.
30494         (vget_high_s64): Likewise.
30495         (vget_high_u8): Likewise.
30496         (vget_high_u16): Likewise.
30497         (vget_high_u32): Likewise.
30498         (vget_high_u64): Likewise.
30499         (vget_high_bf16): Likewise.
30501 2024-05-22  Eric Botcazou  <ebotcazou@adacore.com>
30503         PR rtl-optimization/115038
30504         * fold-mem-offsets.cc (fold_offsets): Return 0 if the defining
30505         instruction of the register is frame related.
30507 2024-05-22  Roger Sayle  <roger@nextmovesoftware.com>
30509         * config/i386/i386.cc (ix86_rtx_costs) <case CONST_INT>:
30510         A CONST_INT that isn't x86_64_immediate_operand requires an extra
30511         (expensive) movabsq insn to load, so return COSTS_N_INSNS (1) + 1.
30513 2024-05-22  Roger Sayle  <roger@nextmovesoftware.com>
30515         * except.cc (output_function_exception_table): Move call to
30516         get_personality_function after targetm_common.except_unwind_info
30517         check, to avoid ICE on targets that don't support exceptions.
30519 2024-05-22  Richard Biener  <rguenther@suse.de>
30521         * tree-vect-slp.cc (change_vec_perm_layout): Ignore an
30522         input partition of -1.
30524 2024-05-22  Richard Biener  <rguenther@suse.de>
30526         * tree-vect-slp.cc (vect_schedule_slp_node): Avoid looking
30527         at SLP_REPRESENTATIVE for VEC_PERM nodes.
30529 2024-05-22  Richard Biener  <rguenther@suse.de>
30531         * tree-vect-stmts.cc (vect_check_store_rhs): Look at *rhs
30532         only when it's a vec_constant_def.
30533         (vect_is_simple_use): When we have no representative for
30534         an internal node, fill in *op with error_mark_node.
30536 2024-05-22  Richard Biener  <rguenther@suse.de>
30538         * doc/invoke.texi (C++ Modules): Fix typo.
30540 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
30542         PR tree-optimization/115152
30543         * tree-ssa-strlen.cc (strlen_pass::count_nonzero_bytes_addr): If
30544         !si->full_string_p, clear *nulterm and set maxlen to nbytes.
30546 2024-05-22  Jakub Jelinek  <jakub@redhat.com>
30548         PR sanitizer/115172
30549         * ubsan.cc (instrument_bool_enum_load): If rhs is not in generic
30550         address space, use qualified version of utype with the right
30551         address space.  Formatting fix.
30553 2024-05-22  Haochen Jiang  <haochen.jiang@intel.com>
30555         PR target/115069
30556         * config/i386/i386-expand.cc (ix86_expand_vecop_qihi2):
30557         Do not enable the optimization when AVX512BW is not enabled.
30559 2024-05-21  Vineet Gupta  <vineetg@rivosinc.com>
30561         * config/riscv/riscv.cc (riscv_expand_epilogue): Handle offset
30562         being sum of two S12.
30564 2024-05-21  Vineet Gupta  <vineetg@rivosinc.com>
30566         PR target/105733
30567         * config/riscv/riscv.h: New macros for with aligned offsets.
30568         * config/riscv/riscv.cc (riscv_split_sum_of_two_s12): New
30569         function to split a sum of two s12 values into constituents.
30570         (riscv_expand_prologue): Handle offset being sum of two S12.
30571         (riscv_expand_epilogue): Ditto.
30572         * config/riscv/riscv-protos.h (riscv_split_sum_of_two_s12): New.
30574 2024-05-21  Andrew Pinski  <quic_apinski@quicinc.com>
30576         PR tree-optimization/115154
30577         * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)): Disable
30578         for 1bit signed types.
30580 2024-05-21  Richard Biener  <rguenther@suse.de>
30582         PR tree-optimization/115137
30583         * tree-ssa-structalias.cc (pt_solution_includes_const_pool): NONLOCAL
30584         also includes constant pool entries.
30586 2024-05-21  Richard Sandiford  <richard.sandiford@arm.com>
30588         * hard-reg-set.h (target_hard_regs::x_eh_return_data_regs): New field.
30589         (eh_return_data_regs): New macro.
30590         * reginfo.cc (init_reg_sets_1): Initialize x_eh_return_data_regs.
30591         * df-scan.cc (df_get_exit_block_use_set): Use it.
30592         * ira-lives.cc (process_out_of_region_eh_regs): Likewise.
30594 2024-05-21  Richard Biener  <rguenther@suse.de>
30596         PR tree-optimization/115149
30597         * tree-ssa-live.cc (virtual_operand_live::get_live_in):
30598         Explicitly track the first processed edge.
30600 2024-05-21  liuhongt  <hongtao.liu@intel.com>
30602         PR target/114427
30603         * config/i386/i386-expand.cc (expand_vec_perm_even_odd_pack):
30604         Use pblendw instead of pand to clear upper bits.
30606 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30608         * config/rs6000/rs6000.md (@ieee_128bit_vsx_neg<IEEE128>2): Remove
30609         the use of operands[3].
30610         (@ieee_128bit_vsx_neg<IEEE128>2): Likewise.
30611         (*ieee_128bit_vsx_nabs<mode>2): Likewise.
30613 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30615         * config/rs6000/rs6000.md (mode attribute rreg): Remove useless
30616         entries with modes TF, TD, V4SF and V2DF.
30618 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30620         * config/rs6000/vector.md (define_expand vector_load_<mode>): Remove.
30621         (vector_store_<mode>): Likewise.
30623 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30625         * config/rs6000/rs6000-call.cc (rs6000_darwin64_record_arg_recurse):
30626         Clean up TFmode and TDmode check with FLOAT128_2REG_P.
30628 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30630         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
30631         useless check on TARGET_P8_VECTOR && !TARGET_ALTIVEC and add an
30632         assertion on !TARGET_VSX if !TARGET_ALTIVEC.
30634 2024-05-21  Kewen Lin  <linkw@linux.ibm.com>
30636         PR target/114402
30637         * config/rs6000/rs6000.cc (rs6000_generate_compare): Make IEEE128
30638         handling without vsx go with libcall.
30640 2024-05-20  Andrew Pinski  <quic_apinski@quicinc.com>
30642         PR tree-optimization/115143
30643         * tree-ssa-phiopt.cc (minmax_replacement): Check for empty
30644         phi nodes for middle bbs for the case where middle bb is not empty.
30646 2024-05-20  Pengxuan Zheng  <quic_pzheng@quicinc.com>
30648         PR target/102171
30649         * config/aarch64/aarch64-builtins.cc (AARCH64_SIMD_VGET_LOW_BUILTINS):
30650         New macro to create definitions for all vget_low intrinsics.
30651         (VGET_LOW_BUILTIN): Likewise.
30652         (enum aarch64_builtins): Add vget_low function codes.
30653         (aarch64_general_fold_builtin): Fold vget_low calls.
30654         * config/aarch64/aarch64-simd-builtins.def: Delete vget_low builtins.
30655         * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Delete.
30656         (aarch64_vget_lo_halfv8bf): Likewise.
30657         * config/aarch64/arm_neon.h (__attribute__): Delete.
30658         (vget_low_f16): Likewise.
30659         (vget_low_f32): Likewise.
30660         (vget_low_f64): Likewise.
30661         (vget_low_p8): Likewise.
30662         (vget_low_p16): Likewise.
30663         (vget_low_p64): Likewise.
30664         (vget_low_s8): Likewise.
30665         (vget_low_s16): Likewise.
30666         (vget_low_s32): Likewise.
30667         (vget_low_s64): Likewise.
30668         (vget_low_u8): Likewise.
30669         (vget_low_u16): Likewise.
30670         (vget_low_u32): Likewise.
30671         (vget_low_u64): Likewise.
30672         (vget_low_bf16): Likewise.
30674 2024-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
30676         * config/aarch64/aarch64.cc (aarch64_rtx_costs): Improve CTZ costing.
30678 2024-05-20  Wilco Dijkstra  <wilco.dijkstra@arm.com>
30680         * config/aarch64/aarch64.md (movsi_aarch64): Use '\;' to force
30681         newline in 2-instruction pattern.
30682         (movdi_aarch64): Likewise.
30684 2024-05-20  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
30686         * config/aarch64/aarch64-ldp-fusion.cc: Rename generic parts of code
30687         to avoid "ldp" and "stp".
30689 2024-05-20  Mark Wielaard  <mark@klomp.org>
30691         * config/riscv/riscv.opt.urls: Regenerate.
30692         * config/i386/i386.opt.urls: Likewise.
30694 2024-05-20  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
30696         * config/aarch64/aarch64-ldp-fusion.cc: Factor out a
30697         target-independent interface and move it to the head of the file
30699 2024-05-20  YunQiang Su  <syq@gcc.gnu.org>
30701         * config/mips/mips.cc(mips_option_override):
30702         Drop mips_lra_flag variable;
30703         (mips_lra_p): Removed.
30704         (TARGET_LRA_P): Remove definition here to use the default one.
30705         * config/mips/mips.md(*mul_acc_si, *mul_acc_si_r3900, *mul_sub_si):
30706         Drop mips_lra_flag variable.
30707         * config/mips/mips.opt(-mlra): Removed.
30708         * config/mips/mips.opt.urls(mlra): Removed.
30710 2024-05-20  Haochen Jiang  <haochen.jiang@intel.com>
30712         * common/config/i386/cpuinfo.h
30713         (get_intel_cpu): Remove Xeon Phi cpus.
30714         (get_available_features): Remove Xeon Phi ISAs.
30715         * common/config/i386/i386-common.cc
30716         (OPTION_MASK_ISA_AVX512PF_SET): Removed.
30717         (OPTION_MASK_ISA_AVX512ER_SET): Ditto.
30718         (OPTION_MASK_ISA2_AVX5124FMAPS_SET): Ditto.
30719         (OPTION_MASK_ISA2_AVX5124VNNIW_SET): Ditto.
30720         (OPTION_MASK_ISA_PREFETCHWT1_SET): Ditto.
30721         (OPTION_MASK_ISA_AVX512F_UNSET): Remove AVX512PF and AVX512ER.
30722         (OPTION_MASK_ISA_AVX512PF_UNSET): Removed.
30723         (OPTION_MASK_ISA_AVX512ER_UNSET): Ditto.
30724         (OPTION_MASK_ISA2_AVX5124FMAPS_UNSET): Ditto.
30725         (OPTION_MASK_ISA2_AVX5124VNNIW_UNSET): Ditto.
30726         (OPTION_MASK_ISA_PREFETCHWT1_UNSET): Ditto.
30727         (OPTION_MASK_ISA2_AVX512F_UNSET): Remove AVX5124FMAPS and
30728         AVX5125VNNIW.
30729         (ix86_handle_option): Remove Xeon Phi options.
30730         (processor_names): Remove Xeon Phi cpus.
30731         (processor_alias_table): Ditto.
30732         * common/config/i386/i386-cpuinfo.h
30733         (enum processor_types): Ditto.
30734         (enum processor_features): Remove Xeon Phi ISAs.
30735         * common/config/i386/i386-isas.h: Ditto.
30736         * config.gcc: Remove Xeon Phi cpus and ISAs.
30737         * config/i386/avx5124fmapsintrin.h: Remove intrin support.
30738         * config/i386/avx5124vnniwintrin.h: Ditto.
30739         * config/i386/avx512erintrin.h: Ditto.
30740         * config/i386/avx512pfintrin.h: Ditto.
30741         * config/i386/cpuid.h (bit_AVX512PF): Removed.
30742         (bit_AVX512ER): Ditto.
30743         (bit_PREFETCHWT1): Ditto.
30744         (bit_AVX5124VNNIW): Ditto.
30745         (bit_AVX5124FMAPS): Ditto.
30746         * config/i386/driver-i386.cc
30747         (host_detect_local_cpu): Remove Xeon Phi.
30748         * config/i386/i386-builtin-types.def: Remove unused types.
30749         * config/i386/i386-builtin.def (BDESC): Remove builtins.
30750         * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins): Ditto.
30751         * config/i386/i386-c.cc (ix86_target_macros_internal): Remove Xeon
30752         Phi cpus and ISAs.
30753         * config/i386/i386-expand.cc (ix86_expand_builtin): Remove Xeon Phi
30754         related handlers.
30755         (ix86_emit_swdivsf): Ditto.
30756         (ix86_emit_swsqrtsf): Ditto.
30757         * config/i386/i386-isa.def: Remove Xeon Phi ISAs.
30758         * config/i386/i386-options.cc (m_KNL): Removed.
30759         (m_KNM): Ditto.
30760         (isa2_opts): Remove Xeon Phi ISAs.
30761         (isa_opts): Ditto.
30762         (processor_cost_table): Remove Xeon Phi cpus.
30763         (ix86_valid_target_attribute_inner_p): Remove Xeon Phi ISAs.
30764         (ix86_option_override_internal): Remove Xeon Phi related handlers.
30765         * config/i386/i386-rust.cc (ix86_rust_target_cpu_info): Remove Xeon
30766         Phi ISAs.
30767         * config/i386/i386.cc (ix86_hard_regno_mode_ok): Remove Xeon Phi
30768         related handler.
30769         * config/i386/i386.h (TARGET_EMIT_VZEROUPPER): Removed.
30770         (enum processor_type): Remove Xeon Phi cpus.
30771         * config/i386/i386.md (prefetch): Remove PREFETCHWT1.
30772         (*prefetch_3dnow): Ditto.
30773         (*prefetch_prefetchwt1): Removed.
30774         * config/i386/i386.opt: Remove Xeon Phi ISAs.
30775         * config/i386/immintrin.h: Ditto.
30776         * config/i386/sse.md (VF1_AVX512ER_128_256): Removed.
30777         (rsqrt<mode>2): Change iterator from VF1_AVX512ER_128_256 to
30778         VF1_128_256.
30779         (GATHER_SCATTER_SF_MEM_MODE): Removed.
30780         (avx512pf_gatherpf<mode>sf): Ditto.
30781         (*avx512pf_gatherpf<VI48_512:mode>sf_mask): Ditto.
30782         (avx512pf_gatherpf<mode>df): Ditto.
30783         (*avx512pf_gatherpf<VI4_256_8_512:mode>df_mask): Ditto.
30784         (avx512pf_scatterpf<mode>sf): Ditto.
30785         (*avx512pf_scatterpf<VI48_512:mode>sf_mask): Ditto.
30786         (avx512pf_scatterpf<mode>df): Ditto.
30787         (*avx512pf_scatterpf<VI4_256_8_512:mode>df_mask): Ditto.
30788         (exp2<mode>2): Ditto.
30789         (avx512er_exp2<mode><mask_name><round_saeonly_name>): Ditto.
30790         (<mask_codefor>avx512er_rcp28<mode><mask_name><round_saeonly_name>):
30791         Ditto.
30792         (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
30793         (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30794         Ditto.
30795         (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): Ditto.
30796         (IMOD4): Ditto.
30797         (imod4_narrow): Ditto.
30798         (mov<mode>): Ditto.
30799         (*mov<mode>_internal): Ditto.
30800         (avx5124fmaddps_4fmaddps): Ditto.
30801         (avx5124fmaddps_4fmaddps_mask): Ditto.
30802         (avx5124fmaddps_4fmaddps_maskz): Ditto.
30803         (avx5124fmaddps_4fmaddss): Ditto.
30804         (avx5124fmaddps_4fmaddss_mask): Ditto.
30805         (avx5124fmaddps_4fmaddss_maskz): Ditto.
30806         (avx5124fmaddps_4fnmaddps): Ditto.
30807         (avx5124fmaddps_4fnmaddps_mask): Ditto.
30808         (avx5124fmaddps_4fnmaddps_maskz): Ditto.
30809         (avx5124fmaddps_4fnmaddss): Ditto.
30810         (avx5124fmaddps_4fnmaddss_mask): Ditto.
30811         (avx5124fmaddps_4fnmaddss_maskz): Ditto.
30812         (avx5124vnniw_vp4dpwssd): Ditto.
30813         (avx5124vnniw_vp4dpwssd_mask): Ditto.
30814         (avx5124vnniw_vp4dpwssd_maskz): Ditto.
30815         (avx5124vnniw_vp4dpwssds): Ditto.
30816         (avx5124vnniw_vp4dpwssds_mask): Ditto.
30817         (avx5124vnniw_vp4dpwssds_maskz): Ditto.
30818         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Remove Xeon Phi cpus.
30819         (ix86_adjust_cost): Ditto.
30820         * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Ditto.
30821         (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
30822         (X86_TUNE_MOVX): Ditto.
30823         (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
30824         (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
30825         (X86_TUNE_FOUR_JUMP_LIMIT): Ditto.
30826         (X86_TUNE_USE_INCDEC): Ditto.
30827         (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
30828         (X86_TUNE_OPT_AGU): Ditto.
30829         (X86_TUNE_AVOID_LEA_FOR_ADDR): Ditto.
30830         (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Ditto.
30831         (X86_TUNE_USE_SAHF): Ditto.
30832         (X86_TUNE_USE_CLTD): Ditto.
30833         (X86_TUNE_USE_BT): Ditto.
30834         (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
30835         (X86_TUNE_EXPAND_ABS): Ditto.
30836         (X86_TUNE_USE_SIMODE_FIOP): Ditto.
30837         (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
30838         (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
30839         (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
30840         (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Ditto.
30841         (X86_TUNE_SLOW_PSHUFB): Ditto.
30842         (X86_TUNE_EMIT_VZEROUPPER): Removed.
30843         * config/i386/xmmintrin.h (enum _mm_hint): Remove _MM_HINT_ET1.
30844         * doc/extend.texi: Remove Xeon Phi.
30845         * doc/invoke.texi: Ditto.
30847 2024-05-20  Pan Li  <pan2.li@intel.com>
30849         * dse.cc (get_stored_val): Make sure read_mode/write_mode
30850         is valid subreg before gen_lowpart.
30852 2024-05-19  Jeff Law  <jlaw@ventanamicro.com>
30854         PR target/115142
30855         * config/riscv/riscv.cc (mem_shadd_or_shadd_rtx_p): Make sure
30856         shifted argument is a register.
30858 2024-05-19  Eric Botcazou  <ebotcazou@adacore.com>
30860         * optabs-query.cc (can_mult_highpart_p): Test for the existence of
30861         a wider mode instead of requiring it.
30863 2024-05-19  Roger Sayle  <roger@nextmovesoftware.com>
30865         * config/nvptx/nvptx.md (popcount<mode>2): Split into...
30866         (popcountsi2): define_insn handling SImode popcount.
30867         (popcountdi2): define_insn handling DImode popcount, with an
30868         explicit truncate:SI to produce an SImode result.
30870 2024-05-18  Palmer Dabbelt  <palmer@rivosinc.com>
30872         * config/riscv/riscv.opt: Add -mno-fence-tso.
30873         * config/riscv/sync-rvwmo.md (mem_thread_fence_rvwmo): Respect
30874         -mno-fence-tso.
30875         * doc/invoke.texi (RISC-V): Document -mno-fence-tso.
30877 2024-05-18  Jeff Law  <jlaw@ventanamicro.com>
30879         * config/riscv/riscv.md: Add new patterns to allow selection
30880         between (x << C1) + C2 vs (x + C2') << C1 depending on the
30881         cost C2 vs C2'.
30883 2024-05-18  Xiao Zeng  <zengxiao@eswincomputing.com>
30885         * config/riscv/riscv.cc (riscv_legitimize_move): Optimize movbf
30886         with Nan-boxing value.
30887         * config/riscv/riscv.md (*movhf_softfloat_boxing): Expand movbf
30888         with Nan-boxing value.
30889         (*mov<HFBF:mode>_softfloat_boxing): Ditto.
30890         with Nan-boxing value.
30891         (*movbf_softfloat_boxing): Delete abandon pattern.
30893 2024-05-18  Xiao Zeng  <zengxiao@eswincomputing.com>
30895         * config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
30896         Modify _Bfloat16 to __bf16.
30897         * config/riscv/riscv.cc (riscv_mangle_type): Ditto.
30899 2024-05-18  Pan Li  <pan2.li@intel.com>
30901         PR target/51492
30902         PR target/112600
30903         * config/riscv/autovec.md (usadd<mode>3): New pattern expand for
30904         the unsigned SAT_ADD in vector mode.
30905         * config/riscv/riscv-protos.h (riscv_expand_usadd): New func decl
30906         to expand usadd<mode>3 pattern.
30907         (expand_vec_usadd): Ditto but for vector.
30908         * config/riscv/riscv-v.cc (emit_vec_saddu): New func impl to emit
30909         the vsadd insn.
30910         (expand_vec_usadd): New func impl to expand usadd<mode>3 for vector.
30911         * config/riscv/riscv.cc (riscv_expand_usadd): New func impl to
30912         expand usadd<mode>3 for scalar.
30913         * config/riscv/riscv.md (usadd<mode>3): New pattern expand for
30914         the unsigned SAT_ADD in scalar mode.
30915         * config/riscv/vector.md: Allow VLS mode for vsaddu.
30917 2024-05-17  David Malcolm  <dmalcolm@redhat.com>
30919         * common.opt.urls: Regenerate to add
30920         fdiagnostics-show-event-links.
30922 2024-05-17  Robin Dapp  <rdapp@ventanamicro.com>
30924         * config/riscv/riscv-protos.h (struct common_vector_cost): Add
30925         segment_permute cost.
30926         * config/riscv/riscv-vector-costs.cc (costs::adjust_stmt_cost):
30927         Handle segment loads/stores.
30928         * config/riscv/riscv.cc: Initialize segment_permute_[2-8] to 1.
30930 2024-05-17  Robin Dapp  <rdapp@ventanamicro.com>
30932         PR middle-end/113474
30933         * internal-fn.cc (expand_vec_cond_mask_optab_fn):  Remove
30934         force_regs.
30936 2024-05-17  Tom Tromey  <tromey@adacore.com>
30938         * dwarf2out.cc (gen_namespace_die): Use DW_TAG_module for Ada.
30940 2024-05-17  David Malcolm  <dmalcolm@redhat.com>
30942         * common.opt (fdiagnostics-show-event-links): New option.
30943         * diagnostic-label-effects.h: New file.
30944         * diagnostic-path.h (diagnostic_event::connect_to_next_event_p):
30945         New pure virtual function.
30946         (simple_diagnostic_event::connect_to_next_event_p): Implement it.
30947         (simple_diagnostic_event::connect_to_next_event): New.
30948         (simple_diagnostic_event::m_connected_to_next_event): New field.
30949         (simple_diagnostic_path::connect_to_next_event): New decl.
30950         * diagnostic-show-locus.cc: Include "text-art/theme.h" and
30951         "diagnostic-label-effects.h".
30952         (colorizer::set_cfg_edge): New.
30953         (layout::m_fallback_theme): New field.
30954         (layout::m_theme): New field.
30955         (layout::m_effect_info): New field.
30956         (layout::m_link_lhs_state): New enum and field.
30957         (layout::m_link_rhs_column): New field.
30958         (layout_range::has_in_edge): New.
30959         (layout_range::has_out_edge): New.
30960         (layout::layout): Add "effect_info" optional param.  Initialize
30961         m_theme, m_link_lhs_state, and m_link_rhs_column.
30962         (layout::maybe_add_location_range): Remove stray "FIXME" from
30963         leading comment.
30964         (layout::print_source_line): Replace space after margin with a
30965         call to print_leftmost_column.
30966         (layout::print_leftmost_column): New.
30967         (layout::start_annotation_line): Make non-const.  Gain
30968         responsibility for printing the leftmost column after the margin.
30969         (layout::print_annotation_line): Drop pp_space, as this is now
30970         added by start_annotation_line.
30971         (line_label::line_label): Add "has_in_edge" and "has_out_edge"
30972         params and initialize...
30973         (line_label::m_has_in_edge): New field.
30974         (line_label::m_has_out_edge): New field.
30975         (layout::print_any_labels): Pass edge information to line_label
30976         ctor.  Keep track of in-edges and out-edges, adding visualizations
30977         of these links between labels.
30978         (layout::print_leading_fixits):  Drop pp_character, as this is now
30979         added by start_annotation_line.
30980         (layout::print_trailing_fixits): Fix off-by-one errors in column
30981         calculation.
30982         (layout::move_to_column): Add comment about debugging.
30983         (layout::show_ruler): Make non-const.  Drop pp_space calls, as
30984         this is now added by start_annotation_line.
30985         (layout::print_line): Call print_any_right_to_left_edge_lines.
30986         (layout::print_any_right_to_left_edge_lines): New.
30987         (layout::update_any_effects): New.
30988         (gcc_rich_location::add_location_if_nearby): Initialize
30989         loc_range.m_label.
30990         (diagnostic_context::maybe_show_locus): Add "effects" param and
30991         pass it to diagnostic_context::show_locus.
30992         (diagnostic_context::show_locus): Add "effects" param, passing it
30993         to layout's ctor.  Call update_any_effects on the layout after
30994         printing the lines.
30995         (selftest::test_layout_x_offset_display_utf8): Update expected
30996         result for eliminated trailing newline.
30997         (selftest::test_layout_x_offset_display_utf8): Likewise.
30998         (selftest::test_layout_x_offset_display_tab): Likewise.
30999         * diagnostic.cc (diagnostic_context::initialize): Initialize
31000         m_source_printing.show_event_links_p.
31001         (simple_diagnostic_path::connect_to_next_event): New.
31002         (simple_diagnostic_event::simple_diagnostic_event): Initialize
31003         m_connected_to_next_event.
31004         * diagnostic.h (class diagnostic_source_effect_info): New forward
31005         decl.
31006         (diagnostic_source_printing_options::show_event_links_p): New
31007         field.
31008         (diagnostic_context::maybe_show_locus): Add optional "effect_info"
31009         param.
31010         (diagnostic_context::show_locus): Add "effect_info" param.
31011         (diagnostic_show_locus): Add optional "effect_info" param.
31012         * doc/invoke.texi: Add -fno-diagnostics-show-event-links.
31013         * lto-wrapper.cc (merge_and_complain): Add
31014         OPT_fdiagnostics_show_event_links to switch.
31015         (append_compiler_options): Likewise.
31016         (append_diag_options): Likewise.
31017         * opts-common.cc (decode_cmdline_options_to_array): Add
31018         "-fno-diagnostics-show-event-links" to -fdiagnostics-plain-output.
31019         * opts.cc (common_handle_option): Add case for
31020         OPT_fdiagnostics_show_event_links.
31021         * text-art/theme.cc (ascii_theme::get_cppchar): Handle
31022         cell_kind::CFG_*.
31023         (unicode_theme::get_cppchar): Likewise.
31024         * text-art/theme.h (theme::cell_kind): Add CFG_*.
31025         * toplev.cc (general_init): Initialize
31026         global_dc->m_source_printing.show_event_links_p.
31027         * tree-diagnostic-path.cc: Define INCLUDE_ALGORITHM,
31028         INCLUDE_MEMORY, and INCLUDE_STRING.  Include
31029         "diagnostic-label-effects.h".
31030         (path_label::path_label): Initialize m_effects.
31031         (path_label::get_effects): New.
31032         (class path_label::path_label_effects): New.
31033         (path_label::m_effects): New field.
31034         (class per_thread_summary): Add "friend struct event_range;".
31035         (per_thread_summary::per_thread_summary): Initialize m_last_event.
31036         (per_thread_summary::m_last_event): New field.
31037         (struct event_range::per_source_line_info): New.
31038         (event_range::event_range): Make "t" non-const.  Add
31039         "show_event_links" param and use it to initialize
31040         m_show_event_links.  Add info for initial event.
31041         (event_range::get_per_source_line_info): New.
31042         (event_range::maybe_add_event): Verify compatibility of the new
31043         label and existing labels with respect to the link-printing code.
31044         Update per-source-line info when an event is added.
31045         (event_range::print): Add"effect_info" param and pass to
31046         diagnostic_show_locus.
31047         (event_range::m_per_thread_summary): Make non-const.
31048         (event_range::m_source_line_info_map): New field.
31049         (event_range::m_show_event_links): New field.
31050         (path_summary::path_summary): Add "show_event_links" optional
31051         param, passing it to event_range ctor calls. Update
31052         pts.m_last_event.
31053         (thread_event_printer::print_swimlane_for_event_range): Add
31054         "effect_info" param and pass it to range->print.
31055         (print_path_summary_as_text): Keep track of the column for any
31056         out-edges at the end of printing each event_range and use as
31057         the leading in-edge for the next event_range.
31058         (default_tree_diagnostic_path_printer): Pass in show_event_links_p
31059         to path_summary ctor.
31060         (selftest::path_events_have_column_data_p): New.
31061         (class selftest::control_flow_test): New.
31062         (selftest::test_control_flow_1): New.
31063         (selftest::test_control_flow_2): New.
31064         (selftest::test_control_flow_3): New.
31065         (selftest::assert_cfg_edge_path_streq): New.
31066         (ASSERT_CFG_EDGE_PATH_STREQ): New macro.
31067         (selftest::test_control_flow_4): New.
31068         (selftest::test_control_flow_5): New.
31069         (selftest::test_control_flow_6): New.
31070         (selftest::control_flow_tests): New.
31071         (selftest::tree_diagnostic_path_cc_tests): Disable colorization on
31072         global_dc's printer.  Convert event_pp to a std::unique_ptr. Call
31073         control_flow_tests via for_each_line_table_case.
31074         (gen_command_line_string): Likewise.
31076 2024-05-17  Uros Bizjak  <ubizjak@gmail.com>
31078         PR middle-end/112600
31079         * config/i386/mmx.md (<insn><mode>3): New expander.
31080         * config/i386/sse.md
31081         (<sse2_avx2>_<sat_plusminus:insn><mode>3<mask_name>):
31082         Rename expander to <sat_plusminus:insn><mode>3<mask_name>.
31083         (<umaxmin:code><mode>3): Update for rename.
31084         * config/i386/i386-builtin.def: Update for rename.
31086 2024-05-17  Aldy Hernandez  <aldyh@redhat.com>
31088         PR middle-end/115131
31089         * value-range.cc (prange::intersect): Set VARYING if intersection
31090         of bitmasks made the range span the entire domain.
31091         (range_tests_misc): New test.
31093 2024-05-17  Alexander Monakov  <amonakov@ispras.ru>
31095         PR c++/114480
31096         * tree-into-ssa.cc (prune_unused_phi_nodes): Add dfs_out entries
31097         to the 'defs' array in the reverse order.
31099 2024-05-17  Aldy Hernandez  <aldyh@redhat.com>
31101         PR middle-end/115128
31102         * ipa-cp.cc (ipa_value_range_from_jfunc): Check for undefined_p
31103         before looking at type.
31104         (propagate_vr_across_jump_function): Same.
31106 2024-05-17  Richard Biener  <rguenther@suse.de>
31108         PR middle-end/115110
31109         * tree-ssa-alias.cc (view_converted_memref_p): Fix.
31111 2024-05-17  Eric Botcazou  <ebotcazou@adacore.com>
31113         * expmed.h (expmed_mult_highpart_optab): Declare.
31114         * expmed.cc (expmed_mult_highpart_optab): Remove static keyword.
31115         Do not assume that OP1 is a constant integer.  Fix pasto.
31116         (expmed_mult_highpart): Pass OP1 narrowed to MODE in all the calls
31117         to expmed_mult_highpart_optab.
31118         * optabs-query.cc (can_mult_highpart_p): Use 2 for integer widening
31119         and shift subsequent values accordingly.
31120         * optabs.cc (expand_mult_highpart): Call expmed_mult_highpart_optab
31121         when can_mult_highpart_p returns 2 and adjust to above change.
31123 2024-05-17  Richard Biener  <rguenther@suse.de>
31125         * tree-ssa-alias.h (pt_solution_includes_const_pool): Declare.
31126         * tree-ssa-alias.cc (ptrs_compare_unequal): Use
31127         pt_solution_includes_const_pool.
31128         * tree-ssa-structalias.cc (pt_solution_includes_const_pool): New.
31130 2024-05-17  Alexandre Oliva  <oliva@adacore.com>
31132         * common.opt (freg-struct-return): Make it explicitly
31133         fpcc-struct-return's NegativeAlias.  Copy Optimization...
31134         (freg-struct-return): ... here.
31136 2024-05-17  Pan Li  <pan2.li@intel.com>
31138         * config/riscv/.riscv.cc.swo: Removed.
31139         * config/riscv/j: Removed.
31141 2024-05-16  Pan Li  <pan2.li@intel.com>
31143         * config/riscv/autovec-opt.md(*vcond_mask_len_popcount_<VB_VLS:mode><P:mode>):
31144         New pattern of vcond_mask_len_popcount for vector bool mode.
31145         * config/riscv/autovec.md (vcond_mask_len_<mode>): New pattern of
31146         vcond_mask_len for vector bool mode.
31147         (cbranch<mode>4): New pattern for vector bool mode.
31148         * config/riscv/vector-iterators.md: Add new unspec UNSPEC_SELECT_MASK.
31149         * config/riscv/vector.md (@pred_popcount<VB:mode><P:mode>): Add VLS mode
31150         to popcount pattern.
31151         (@pred_popcount<VB_VLS:mode><P:mode>): Ditto.
31153 2024-05-16  Jan Hubicka  <jh@suse.cz>
31155         PR ipa/113787
31156         * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p): Do not
31157         look into TARGET_MEM_REFS with constant opreand 0.
31159 2024-05-16  Richard Biener  <rguenther@suse.de>
31161         PR tree-optimization/13962
31162         PR tree-optimization/96564
31163         * tree-ssa-alias.h (pt_solution::const_pool): New flag.
31164         * tree-ssa-alias.cc (ptrs_compare_unequal): Handle pointer-pointer
31165         compares.
31166         (dump_points_to_solution): Dump the const_pool flag, fix guard
31167         of flag dumping.
31168         * gimple-pretty-print.cc (pp_points_to_solution): Likewise.
31169         * tree-ssa-structalias.cc (find_what_var_points_to): Set
31170         the const_pool flag for STRING.
31171         (pt_solution_ior_into): Handle the const_pool flag.
31172         (ipa_escaped_pt): Initialize it.
31174 2024-05-16  Richard Biener  <rguenther@suse.de>
31176         * tree-ssa-structalias.cc (get_constraint_for_1): For
31177         volatile referenced or decls use ANYTHING.
31179 2024-05-16  Pan Li  <pan2.li@intel.com>
31181         * tree-vect-loop.cc (vect_gen_loop_len_mask): New func to gen
31182         the loop len mask.
31183         * tree-vect-stmts.cc (vectorizable_early_exit): Invoke the
31184         vect_gen_loop_len_mask for 1 or more stmt(s).
31185         * tree-vectorizer.h (vect_gen_loop_len_mask): New func decl
31186         for vect_gen_loop_len_mask.
31188 2024-05-16  Pan Li  <pan2.li@intel.com>
31190         PR target/51492
31191         PR target/112600
31192         * tree-vect-patterns.cc (gimple_unsigned_integer_sat_add): New
31193         func decl generated by match.pd match.
31194         (vect_recog_sat_add_pattern): New func impl to recog the pattern
31195         for unsigned SAT_ADD.
31197 2024-05-16  Pan Li  <pan2.li@intel.com>
31199         PR target/51492
31200         PR target/112600
31201         * internal-fn.cc (commutative_binary_fn_p): Add type IFN_SAT_ADD
31202         to the return true switch case(s).
31203         * internal-fn.def (SAT_ADD):  Add new signed optab SAT_ADD.
31204         * match.pd: Add unsigned SAT_ADD match(es).
31205         * optabs.def (OPTAB_NL): Remove fixed-point limitation for
31206         us/ssadd.
31207         * tree-ssa-math-opts.cc (gimple_unsigned_integer_sat_add): New
31208         extern func decl generated in match.pd match.
31209         (match_saturation_arith): New func impl to match the saturation arith.
31210         (math_opts_dom_walker::after_dom_children): Try match saturation
31211         arith when IOR expr.
31213 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
31215         Revert:
31216         2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
31218         Revert:
31219         2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
31221         * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
31222         Change irange to prange.
31223         * gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
31224         (fold_using_range::range_of_address): Same.
31225         * gimple-range-fold.h (range_of_address): Same.
31226         * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
31227         * gimple-range-op.cc (class cfn_strlen): Same.
31228         * gimple-range-path.cc
31229         (path_range_query::adjust_for_non_null_uses): Same.
31230         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
31231         * tree-ssa-structalias.cc (find_what_p_points_to): Same.
31232         * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
31233         hybrid entries in table.
31234         * range-op.cc (range_op_table::range_op_table): Add pointer
31235         entries for bitwise and/or and min/max.
31236         * value-range.cc (irange::verify_range): Add assert.
31237         * value-range.h (irange::varying_compatible_p): Remove check for
31238         error_mark_node.
31239         (irange::supports_p): Remove pointer support.
31240         * ipa-cp.h (ipa_supports_p): Add prange support.
31242 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
31244         PR tree-optimization/114985
31245         * gimple-range-op.cc: Remove pointers_handled_p.
31246         * ipa-cp.cc (ipa_value_range_from_jfunc): Skip range folding if
31247         operands don't match.
31248         (propagate_vr_across_jump_function): Same.
31249         * range-op-mixed.h: Remove pointers_handled_p and tweak
31250         operand_check_p.
31251         * range-op-ptr.cc (range_operator::pointers_handled_p): Remove.
31252         (pointer_plus_operator::pointers_handled_p): Remove.
31253         (class operator_pointer_diff): Remove pointers_handled_p.
31254         (operator_pointer_diff::pointers_handled_p): Remove.
31255         (operator_identity::pointers_handled_p): Remove.
31256         (operator_cst::pointers_handled_p): Remove.
31257         (operator_cast::pointers_handled_p): Remove.
31258         (operator_min::pointers_handled_p): Remove.
31259         (operator_max::pointers_handled_p): Remove.
31260         (operator_addr_expr::pointers_handled_p): Remove.
31261         (operator_bitwise_and::pointers_handled_p): Remove.
31262         (operator_bitwise_or::pointers_handled_p): Remove.
31263         (operator_equal::pointers_handled_p): Remove.
31264         (operator_not_equal::pointers_handled_p): Remove.
31265         (operator_lt::pointers_handled_p): Remove.
31266         (operator_le::pointers_handled_p): Remove.
31267         (operator_gt::pointers_handled_p): Remove.
31268         (operator_ge::pointers_handled_p): Remove.
31269         * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): Remove.
31270         (range_op_handler::lhs_op1_relation): Remove pointers_handled_p checks.
31271         (range_op_handler::lhs_op2_relation): Same.
31272         (range_op_handler::op1_op2_relation): Same.
31273         * range-op.h: Remove RO_* declarations.
31275 2024-05-16  Aldy Hernandez  <aldyh@redhat.com>
31277         PR tree-optimization/114985
31278         * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Use
31279         boolean type when folding conditionals.
31281 2024-05-16  Richard Biener  <rguenther@suse.de>
31283         PR tree-optimization/79958
31284         PR tree-optimization/109087
31285         PR tree-optimization/100314
31286         PR tree-optimization/114774
31287         * tree-ssa-dse.cc (dse_classify_store): New forwarder.
31288         (dse_classify_store): Add arguments cnt and visited, recurse
31289         to track multiple paths when we end up with multiple defs.
31291 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
31293         * text-art/theme.cc (ascii_theme::get_cppchar): Add
31294         cell_kind::INTERPROCEDURAL_*.
31295         (unicode_theme::get_cppchar): Likewise.
31296         * text-art/theme.h (theme::cell_kind): Likewise.
31297         * tree-diagnostic-path.cc:
31298         (thread_event_printer::print_swimlane_for_event_range): Use the
31299         above to get characters for indicating interprocedural stack
31300         depth activity, falling back to ascii.
31301         (selftest::test_interprocedural_path_1): Test with both ascii
31302         and unicode themes.
31303         (selftest::test_interprocedural_path_2): Likewise.
31304         (selftest::test_recursion): Likewise.
31306 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
31308         * tree-diagnostic-path.cc: Include "text-art/theme.h".
31309         (path_label::get_text): If the event has
31310         diagnostic_event::VERB_danger, and the theme enables emojis, then
31311         add a warning emoji between the event number and the event text.
31313 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
31315         * tree-diagnostic-path.cc (per_thread_summary::interprocedural_p):
31316         New.
31317         (thread_event_printer::print_swimlane_for_event_range): Don't
31318         indent and print the stack depth line if this thread's events are
31319         purely intraprocedural.
31320         (selftest::test_intraprocedural_path): Update expected output.
31322 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
31324         * diagnostic-path.h: Update leading comment to reflect
31325         intraprocedural cases.  Fix typo in comment.
31326         * doc/invoke.texi: Update intraprocedural example.
31328 2024-05-16  David Malcolm  <dmalcolm@redhat.com>
31330         * diagnostic-show-locus.cc: Define INCLUDE_VECTOR and include
31331         "text-art/types.h".
31332         (line_label::line_label): Drop "policy" argument.  Use
31333         styled_string::calc_canvas_width when computing m_display_width,
31334         as this skips SGR codes.
31335         (layout::print_any_labels): Update for line_label ctor change.
31336         (selftest::test_one_liner_labels_utf8): Update expected text to
31337         reflect that the labels can fit on one line if we don't get
31338         confused by SGR colorization codes.
31340 2024-05-16  Xiao Zeng  <zengxiao@eswincomputing.com>
31342         * common/config/riscv/riscv-common.cc:
31343         (riscv_implied_info): Add zvfbfwma item.
31344         (riscv_ext_version_table): Ditto.
31345         (riscv_ext_flag_table): Ditto.
31346         * config/riscv/riscv.opt:
31347         (MASK_ZVFBFWMA): New macro.
31348         (TARGET_ZVFBFWMA): Ditto.
31350 2024-05-16  liuhongt  <hongtao.liu@intel.com>
31352         PR target/114514
31353         * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
31354         Set d.one_operand_p to true when TARGET_SSSE3.
31356 2024-05-16  liuhongt  <hongtao.liu@intel.com>
31358         PR target/114514
31359         * config/i386/i386-expand.cc
31360         (ix86_expand_vec_shift_qihi_constant): Optimize ashift >> 7 to
31361         vpcmpgtb.
31362         (ix86_expand_vecop_qihi_partial): Ditto.
31364 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
31366         * config/riscv/riscv-string.cc: Add missing hunk from last change.
31368 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
31370         * config/riscv/riscv-string.cc (emit_strcmp_scalar_load_and_compare):
31371         Use adjust_address() to calculate MEM-PLUS pattern.
31373 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
31375         * config/riscv/riscv-protos.h (riscv_expand_block_compare): New
31376         prototype.
31377         * config/riscv/riscv-string.cc (GEN_EMIT_HELPER2): New helper
31378         for zero_extendhi.
31379         (do_load_from_addr): Add support for HI and SI/64 modes.
31380         (do_load): Add helper for zero-extended loads.
31381         (emit_memcmp_scalar_load_and_compare): New helper to emit memcmp.
31382         (emit_memcmp_scalar_result_calculation): Likewise.
31383         (riscv_expand_block_compare_scalar): Likewise.
31384         (riscv_expand_block_compare): New RISC-V expander for memory compare.
31385         * config/riscv/riscv.md (cmpmemsi): New cmpmem expansion.
31387 2024-05-15  Marek Polacek  <polacek@redhat.com>
31389         DR 1693
31390         PR c++/113760
31391         DR 569
31392         * doc/invoke.texi: Update -Wextra-semi documentation.
31394 2024-05-15  Jakub Jelinek  <jakub@redhat.com>
31396         PR rtl-optimization/114902
31397         PR rtl-optimization/115092
31398         * combine.cc (simplify_compare_const): Don't optimize
31399         GE op0 SIGNED_MIN or LT op0 SIGNED_MIN into NE op0 const0_rtx or
31400         EQ op0 const0_rtx.
31402 2024-05-15  Richard Biener  <rguenther@suse.de>
31404         PR tree-optimization/114589
31405         * tree-ssa-sink.cc (select_best_block): Remove profile-based
31406         heuristics.  Instead reject sink locations that sink
31407         to post-dominators.  Move empty latch check here from
31408         statement_sink_location.  Also consider early_bb for the
31409         loop depth check.
31410         (statement_sink_location): Remove superfluous check.  Remove
31411         empty latch check.
31412         (pass_sink_code::execute): Compute/release post-dominators.
31414 2024-05-15  Richard Biener  <rguenther@suse.de>
31416         PR middle-end/111422
31417         * cfgexpand.cc (add_scope_conflicts_2): Handle PHIs
31418         by recursing to their arguments.
31420 2024-05-15  Wilco Dijkstra  <wilco.dijkstra@arm.com>
31422         * config/aarch64/aarch64-simd.md (aarch64_combine_internal<mode>):
31423         Use UZP1 instead of INS.
31424         (aarch64_combine_internal_be<mode>): Likewise.
31426 2024-05-15  Jan Hubicka  <jh@suse.cz>
31428         * alias.cc (reference_alias_ptr_type_1): Use view_converted_memref_p.
31429         * alias.h (view_converted_memref_p): Declare.
31430         * tree-ssa-alias.cc (view_converted_memref_p): Export.
31431         (ao_compare::compare_ao_refs): Use same_type_for_tbaa.
31433 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
31435         * config/riscv/riscv-string.cc (riscv_block_move_straight):
31436         Hand over up to 2xXLEN bytes to move_by_pieces().
31438 2024-05-15  Christoph Müllner  <christoph.muellner@vrull.eu>
31440         * config/riscv/riscv-string.cc (riscv_block_move_straight): Add
31441         parameter align.
31442         (riscv_adjust_block_mem): Replace parameter length by align.
31443         (riscv_block_move_loop): Add parameter align.
31444         (riscv_expand_block_move_scalar): Set alignment properly if the
31445         target has fast unaligned access.
31447 2024-05-15  Aldy Hernandez  <aldyh@redhat.com>
31449         PR tree-optimization/114995
31450         * range-op-ptr.cc (range_operator::pointers_handled_p): Default to true.
31452 2024-05-15  Andrew Pinski  <quic_apinski@quicinc.com>
31454         PR tree-optimization/114301
31455         * tree-cfg.cc (gimple_can_duplicate_bb_p): Check returns_twice
31456         only on the last call statement rather than all.
31458 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
31460         * config/riscv/riscv-string.cc
31461         (riscv_expand_block_clear_zicboz_zic64b): Handle rv32 correctly.
31463 2024-05-15  Levy Hsu  <admin@levyhsu.com>
31465         PR target/107563
31466         * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): New
31467         subroutine.
31468         (ix86_expand_vec_perm_const_1): Call expand_vec_perm_psrlw_psllw_por.
31470 2024-05-15  Jeff Law  <jlaw@ventanamicro.com>
31472         * config/riscv/riscv.md: Add pattern for sign extended shift-add
31473         sequence with a masked input.
31475 2024-05-14  Dimitar Dimitrov  <dimitar@dinux.eu>
31477         PR rtl-optimization/115013
31478         * config/pru/pru.cc (pru_class_likely_spilled_p): Implement
31479         to mark classes containing one SImode register as likely
31480         spilled.
31481         (TARGET_CLASS_LIKELY_SPILLED_P): Define.
31483 2024-05-14  Vineet Gupta  <vineetg@rivosinc.com>
31485         * config/riscv/riscv.h: New macros to check for sum of two S12
31486         range.
31487         * config/riscv/constraints.md: New constraint.
31488         * config/riscv/predicates.md: New Predicate.
31489         * config/riscv/riscv.md: New splitter.
31490         * config/riscv/riscv.cc (riscv_reg_frame_related): New helper.
31491         * config/riscv/riscv-protos.h: New helper prototype.
31493 2024-05-14  Richard Biener  <rguenther@suse.de>
31495         PR tree-optimization/99954
31496         * tree-data-ref.cc (dr_may_alias_p): For bases that are
31497         not completely analyzed fall back to TBAA and points-to.
31498         * tree-loop-distribution.cc
31499         (loop_distribution::classify_builtin_ldst): When there
31500         is no dependence again classify as memcpy.
31501         * tree-ssa-alias.cc (ptr_deref_may_alias_decl_p): Verify
31502         the pointer is an SSA name.
31504 2024-05-14  Christoph Müllner  <christoph.muellner@vrull.eu>
31506         * config/riscv/riscv-protos.h (riscv_expand_block_clear): New prototype.
31507         * config/riscv/riscv-string.cc (riscv_expand_block_clear_zicboz_zic64b):
31508         New function to expand a block-clear with cbo.zero.
31509         (riscv_expand_block_clear): New RISC-V block-clear expansion function.
31510         * config/riscv/riscv.md (setmem<mode>): New setmem expansion.
31512 2024-05-14  Christoph Müllner  <christoph.muellner@vrull.eu>
31514         * expr.cc (clear_by_pieces): Remove static from clear_by_pieces.
31515         * expr.h (clear_by_pieces): Add prototype for clear_by_pieces.
31517 2024-05-14  Tom de Vries  <tdevries@suse.de>
31519         PR debug/115066
31520         * dwarf2out.cc (output_macinfo_op): Fix DW_MACRO_define_strx/strp
31521         choice for v4 .debug_macro.dwo.  Add asserts to check that choice.
31523 2024-05-14  Jan Hubicka  <jh@suse.cz>
31525         PR ipa/113291
31526         * ipa-inline.cc (enum can_inline_edge_by_limits_flags): New enum.
31527         (can_inline_edge_by_limits_p): Take flags instead of multiple bools; add flag
31528         for forcing inlinie limits.
31529         (can_early_inline_edge_p): Update.
31530         (want_inline_self_recursive_call_p): Update; use FORCE_LIMITS mode.
31531         (check_callers): Update.
31532         (update_caller_keys): Update.
31533         (update_callee_keys): Update.
31534         (recursive_inlining): Update.
31535         (add_new_edges_to_heap): Update.
31536         (speculation_useful_p): Update.
31537         (inline_small_functions): Clear DECL_DISREGARD_INLINE_LIMITS on self recursion.
31538         (flatten_function): Update.
31539         (inline_to_all_callers_1): Update.
31541 2024-05-14  Haochen Gui  <guihaoc@gcc.gnu.org>
31543         * config/rs6000/rs6000.cc (TARGET_OVERLAP_OP_BY_PIECES_P): Define.
31545 2024-05-14  Jeff Law  <jlaw@ventanamicro.com>
31547         Revert:
31548         2024-05-13  Sergei Lewis  <slewis@rivosinc.com>
31550         * config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move,
31551         if and only if we know the entire operation can be performed using one vector
31552         load followed by one vector store
31554 2024-05-14  Pan Li  <pan2.li@intel.com>
31556         * config/riscv/riscv-vector-builtins.cc
31557         (validate_instance_type_required_extensions): Remove the
31558         operator from the trailing and put it to new line.
31560 2024-05-13  Jeff Law  <jlaw@ventanamicro.com>
31562         * config/riscv/bitmanip.md: Add new splitter for AND with
31563         a constant that masks off bits 32..63 and needs synthesis.
31565 2024-05-13  Sergei Lewis  <slewis@rivosinc.com>
31567         * config/riscv/riscv.md (movmem<mode>): Use riscv_vector::expand_block_move,
31568         if and only if we know the entire operation can be performed using one vector
31569         load followed by one vector store
31571 2024-05-13  Vladimir N. Makarov  <vmakarov@redhat.com>
31573         PR rtl-optimization/115013
31574         * lra-constraints.cc (process_alt_operands): Update all_used_nregs
31575         only for winreg.  Ignore reg starvation for small reg classes.
31577 2024-05-13  Pan Li  <pan2.li@intel.com>
31579         PR target/114988
31580         * config/riscv/riscv-vector-builtins.cc
31581         (validate_instance_type_required_extensions): New func impl to
31582         validate the intrinisc func type ops.
31583         (expand_builtin): Validate instance type before expand.
31585 2024-05-13  Jeff Law  <jlaw@ventanamicro.com>
31587         * config/riscv/bitmanip.md (bextseqzdisi): New patterns.
31588         * config/riscv/.riscv.cc.swo: New file.
31589         * config/riscv/j: New file.
31591 2024-05-13  Richard Biener  <rguenther@suse.de>
31593         PR tree-optimization/60276
31594         * tree-vect-stmts.cc (vectorizable_load): Do not exempt
31595         pure_slp grouped loads from the STMT_VINFO_MIN_NEG_DIST
31596         restriction.
31598 2024-05-13  Richard Biener  <rguenther@suse.de>
31600         * tree-vect-slp.cc (vect_analyze_slp_instance): Remove
31601         slp_inst_kind_reduc_group handling.
31602         (vect_analyze_slp): Add the meat here.
31604 2024-05-13  Jakub Jelinek  <jakub@redhat.com>
31606         PR middle-end/113982
31607         * tree-ssa-math-opts.cc (arith_overflow_check_p): Also return 1
31608         for RSHIFT_EXPR by precision of maxval if shift result is only
31609         used in a cast or comparison against zero.
31610         (match_arith_overflow): Handle the RSHIFT_EXPR use case.
31612 2024-05-13  YunQiang Su  <syq@debian.org>
31614         Revert:
31615         2024-05-09  YunQiang Su  <syq@gcc.gnu.org>
31617         * config/mips/constraints.md: Add new constraint 'w'.
31619 2024-05-12  Roger Sayle  <roger@nextmovesoftware.com>
31620             Kyrill Tkachov  <kyrylo.tkachov@foss.arm.com>
31622         * config/arm/arm.md (*arm_zeroextractsi2_8_8, *arm_signextractsi2_8_8,
31623         *arm_zeroextractsi2_8_16, *arm_signextractsi2_8_16,
31624         *arm_zeroextractsi2_16_8, *arm_signextractsi2_16_8): New.
31626 2024-05-12  Jeff Law  <jlaw@ventanamicro.com>
31628         * config/riscv/riscv.cc (riscv_build_integer_1): Use slli.uw more.
31630 2024-05-12  Jeff Law  <jlaw@ventanamicro.com>
31632         * config/riscv/riscv.cc (riscv_build_integer_1): Fix thinko in testing
31633         when lui can be used to set several bits in bseti path.
31635 2024-05-12  Mark Wielaard  <mark@klomp.org>
31637         * config/mingw/cygming.opt.urls: Regenerate.
31638         * config/mingw/mingw.opt.urls: Likewise.
31640 2024-05-11  Mark Harmstone  <mark@harmstone.com>
31642         * dwarf2codeview.cc (DEBUG_S_SYMBOLS): Define.
31643         (S_COMPILE3, CV_CFL_80386, CV_CFL_X64): Likewise.
31644         (CV_CFL_C, CV_CFL_CXX): Likewise.
31645         (SYMBOL_START_LABEL, SYMBOL_END_LABEL): Likewise.
31646         (start_processor, language_constant): New functions.
31647         (write_compile3_symbol, write_codeview_symbols): Likewise.
31648         (codeview_debug_finish): Call write_codeview_symbols.
31650 2024-05-11  Mark Harmstone  <mark@harmstone.com>
31652         * dwarf2codeview.cc (DEBUG_S_LINES, LINE_LABEL): Define.
31653         (END_FUNC_LABEL): Likewise.
31654         (struct codeview_line, codeview_line_block): New structures.
31655         (codeview_function): Likewise.
31656         (line_label_num, func_label_num, funcs, last_func): New variables.
31657         (last_filename, last_file_id): Likewise.
31658         (codeview_source_line, write_line_numbers): New functions.
31659         (codeview_switch_text_section, codeview_end_epilogue): Likewise.
31660         (codeview_debug_finish): Call write_line_numbers.
31661         * dwarf2codeview.h (codeview_source_line): Prototype.
31662         (codeview_switch_text_secction, codeview_end_epilogue): Likewise.
31663         * dwarf2out.cc (dwarf2_end_epilogue): Add codeview support.
31664         (dwarf2out_switch_text_section): Likewise.
31665         (dwarf2out_source_line): Likewise.
31666         * opts.cc (finish_options): Handle codeview debugging symbols.
31668 2024-05-11  Mark Harmstone  <mark@harmstone.com>
31670         * dwarf2codeview.cc (DEBUG_S_STRINGTABLE): Define.
31671         (DEBUG_S_FILECHKSMS, CHKSUM_TYPE_MD5, HASH_SIZE): Likewise.
31672         (codeview_string, codeview_source_file): New structures.
31673         (struct string_hasher): New class for codeview_string hashing.
31674         (files, last_file, num_files, string_offset): New variables.
31675         (strings_hstab, strings, last_string): Likewise.
31676         (add_string, codevie_start_source_file): New functions.
31677         (write_strings_tabe, write_soruce_files): Likewise.
31678         (codeview_debug_finish): Call new functions.
31679         * dwarf2codeview.h (codeview_start_source_file): Prototype.
31680         * dwarf2out.cc (dwarf2out_start_source_file): Handle codeview.
31682 2024-05-11  Mark Harmstone  <mark@harmstone.com>
31684         * Makefile.in (OBJS): Add dwarf2codeview.o.
31685         (GTFILES): Add dwarf2codeview.cc
31686         * config/i386/cygming.h (CODEVIEW_DEBUGGING_INFO): Define.
31687         * dwarf2codeview.cc: New file.
31688         * dwarf2codeview.h: New file.
31689         * dwarf2out.cc: Include dwarf2codeview.h.
31690         (dwarf2out_finish): Call codeview_debug_finish as needed.
31691         * flag-types.h (DINFO_TYPE_CODEVIEW): Add enum member.
31692         (CODEVIEW_DEBUG): Define.
31693         * flags.h (codeview_debuginfo_p): Proottype.
31694         * opts.cc (debug_type_names): Add codeview.
31695         (debug_type_masks): Add CODEVIEW_DEBUG.
31696         (df_set_names): Add codeview.
31697         (codeview_debuginfo_p): New function.
31698         (dwarf_based_debuginfo_p): Add CODEVIEW clause.
31699         (set_debug_level): Handle CODEVIEW_DEBUG.
31700         * toplev.cc (process_options): Handle codeview.
31702 2024-05-11  dzhao.ampere  <di.zhao@amperecomputing.com>
31704         PR tree-optimization/114760
31705         * tree-ssa-loop-niter.cc (is_lshift_by_1): New function
31706         to check if STMT is equivalent to x << 1.
31707         (is_rshift_by_1): New function to check if STMT is
31708         equivalent to x >> 1.
31709         (number_of_iterations_cltz): Enhance the identification
31710         of logical shift by one.
31711         (number_of_iterations_cltz_complement): Enhance the
31712         identification of logical shift by one.
31714 2024-05-11  Aldy Hernandez  <aldyh@redhat.com>
31716         * range-op-ptr.cc (range_operator::fold_range): Return false.
31718 2024-05-11  Aldy Hernandez  <aldyh@redhat.com>
31720         * range-op.cc (TRAP_ON_UNHANDLED_POINTER_OPERATORS): New
31721         (range_op_handler::fold_range): Use it.
31722         (range_op_handler::op1_range): Same.
31723         (range_op_handler::op2_range): Same.
31724         (range_op_handler::lhs_op1_relation): Same.
31725         (range_op_handler::lhs_op2_relation): Same.
31726         (range_op_handler::op1_op2_relation): Same.
31728 2024-05-10  Jeff Law  <jlaw@ventanamicro.com>
31730         * config/riscv/riscv.cc (riscv_build_integer_1): Recognize cases where
31731         we can use shNadd to improve constant synthesis.
31732         (riscv_move_integer): Handle code generation for shNadd.
31734 2024-05-10  Roger Sayle  <roger@nextmovesoftware.com>
31735             Hongtao Liu  <hongtao.liu@intel.com>
31737         * config/i386/i386-expand.cc (ix86_expand_vecop_qihi_partial):
31738         Don't attempt ix86_expand_vec_shift_qihi_constant on SSE4.1.
31740 2024-05-10  Dimitar Dimitrov  <dimitar@dinux.eu>
31742         * config/pru/predicates.md (pru_mulsrc0_operand): Use register
31743         class instead of register number for the check.
31744         (pru_mulsrc1_operand): Ditto.
31746 2024-05-10  Vladimir N. Makarov  <vmakarov@redhat.com>
31748         PR target/114942
31749         * lra-constraints.cc (struct input_reload): Add new member early_clobber_p.
31750         (get_reload_reg): Add new arg early_clobber_p, don't reuse input
31751         reload with true early_clobber_p member value, use the arg for new
31752         element of curr_insn_input_reloads.
31753         (match_reload): Assign false to early_clobber_p member.
31754         (process_addr_reg, simplify_operand_subreg, curr_insn_transform):
31755         Adjust get_reload_reg calls.
31757 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
31759         PR tree-optimization/115026
31760         * value-range.cc (prange::update_bitmask): Use operand bitmask.
31762 2024-05-10  Richard Biener  <rguenther@suse.de>
31764         PR tree-optimization/114998
31765         * tree-loop-distribution.cc (free_rdg): Take loop argument.
31766         Reset UIDs of stmts still in the IL rather than all stmts
31767         referenced from the RDG.
31768         (loop_distribution::build_rdg): Pass loop to free_rdg.
31769         (loop_distribution::distribute_loop): Likewise.
31770         (loop_distribution::transform_reduction_loop): Likewise.
31772 2024-05-10  Richard Biener  <rguenther@suse.de>
31774         * tree-vect-patterns.cc (vect_pattern_recog_1): Do not
31775         remove reductions involving patterns.
31776         * tree-vect-loop.cc (vectorizable_reduction): Reject SLP
31777         reduction groups with multiple lane-reducing reductions.
31778         * tree-vect-slp.cc (vect_analyze_slp_instance): When discovering
31779         SLP reduction groups avoid including lane-reducing ones.
31781 2024-05-10  Jose E. Marchesi  <jose.marchesi@oracle.com>
31783         * config/bpf/bpf.cc (bpf_print_operand_address): Include
31784         surrounding parenthesis around mem operands in pseudoc asm
31785         dialect.
31786         * config/bpf/bpf.md (*mov<MM:mode>): Adapt accordingly.
31787         (zero_extendhidi2): Likewise.
31788         (zero_extendqidi2): Likewise.
31789         (*extendsidi2): Likewise.
31790         (*extendsidi2): Likewise.
31791         (extendhidi2): Likewise.
31792         (extendqidi2): Likewise.
31793         (extendhisi2): Likewise.
31794         * config/bpf/atomic.md (atomic_add<AMO:mode>): Likewise.
31795         (atomic_and<AMO:mode>): Likewise.
31796         (atomic_or<AMO:mode>): Likewise.
31797         (atomic_xor<AMO:mode>): Likewise.
31798         (atomic_fetch_add<AMO:mode>): Likewise.
31799         (atomic_fetch_and<AMO:mode>): Likewise.
31800         (atomic_fetch_or<AMO:mode>): Likewise.
31801         (atomic_fetch_xor<AMO:mode>): Likewise.
31803 2024-05-10  Jakub Jelinek  <jakub@redhat.com>
31805         PR target/114968
31806         * target.def (use_atexit_for_cxa_atexit): Remove spurious space
31807         from comment.
31808         (adjust_cdtor_callabi_fntype): New cxx target hook.
31809         * targhooks.h (default_cxx_adjust_cdtor_callabi_fntype): Declare.
31810         * targhooks.cc (default_cxx_adjust_cdtor_callabi_fntype): New
31811         function.
31812         * doc/tm.texi.in (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Add.
31813         * doc/tm.texi: Regenerate.
31814         * config/i386/i386.cc (ix86_cxx_adjust_cdtor_callabi_fntype): New
31815         function.
31816         (TARGET_CXX_ADJUST_CDTOR_CALLABI_FNTYPE): Redefine.
31818 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
31820         PR tree-optimization/115009
31821         * value-range-storage.cc (prange_storage::alloc): Do not assume
31822         all pointers are the same size.
31823         (prange_storage::prange_storage): Same.
31824         (prange_storage::fits_p): Same.
31826 2024-05-10  Kito Cheng  <kito.cheng@sifive.com>
31828         * config/riscv/riscv-vsetvl.cc: Fix typos in comments.
31829         (get_all_predecessors): Ditto.
31830         (pre_vsetvl::m_unknow_info): Rename to...
31831         (pre_vsetvl::m_unknown_info): this.
31832         (pre_vsetvl::compute_vsetvl_def_data): Rename m_unknow_info to
31833         m_unknown_info.
31834         (pre_vsetvl::cleaup): Rename to...
31835         (pre_vsetvl::cleanup): this.
31836         (pre_vsetvl::compute_vsetvl_def_data): Fix typos.
31837         (pass_vsetvl::lazy_vsetvl): Update function name and fix typos.
31838         * config/riscv/riscv.cc: Fix typos in comments.
31839         (struct machine_function): Fix typo in comments.
31840         (riscv_valid_lo_sum_p): Ditto.
31841         (riscv_force_address): Ditto.
31842         (riscv_immediate_operand_p): Ditto.
31843         (riscv_in_small_data_p): Ditto.
31844         (riscv_first_stack_step): Ditto.
31845         (riscv_expand_prologue): Ditto.
31846         (riscv_convert_vector_chunks): Ditto.
31847         (riscv_override_options_internal): Ditto.
31848         (get_common_costs): Ditto.
31850 2024-05-10  Xi Ruoyao  <xry111@xry111.site>
31852         PR driver/114980
31853         * opts-common.cc (prune_options): Move -fdiagnostics-urls=
31854         early like -fdiagnostics-color=.
31856 2024-05-10  Jeff Law  <jlaw@ventanamicro.com>
31858         * config/riscv/bitmanip.md: Add splitter for shadd feeding another
31859         add instruction.
31861 2024-05-10  Aldy Hernandez  <aldyh@redhat.com>
31863         Revert:
31864         2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
31866         * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
31867         Change irange to prange.
31868         * gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
31869         (fold_using_range::range_of_address): Same.
31870         * gimple-range-fold.h (range_of_address): Same.
31871         * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
31872         * gimple-range-op.cc (class cfn_strlen): Same.
31873         * gimple-range-path.cc
31874         (path_range_query::adjust_for_non_null_uses): Same.
31875         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
31876         * tree-ssa-structalias.cc (find_what_p_points_to): Same.
31877         * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
31878         hybrid entries in table.
31879         * range-op.cc (range_op_table::range_op_table): Add pointer
31880         entries for bitwise and/or and min/max.
31881         * value-range.cc (irange::verify_range): Add assert.
31882         * value-range.h (irange::varying_compatible_p): Remove check for
31883         error_mark_node.
31884         (irange::supports_p): Remove pointer support.
31885         * ipa-cp.h (ipa_supports_p): Add prange support.
31887 2024-05-09  Roger Sayle  <roger@nextmovesoftware.com>
31889         * simplify-rtx.cc (simplify_const_binary_operation): Constant
31890         fold binary operations where the LHS is CONST_VECTOR and the
31891         RHS is CONST_INT (or CONST_DOUBLE) such as vector shifts.
31893 2024-05-09  Martin Jambor  <mjambor@suse.cz>
31895         * tree-sra.cc (sra_modify_assign): Remove the original statement
31896         also when dealing with a store to a fully covered aggregate from a
31897         non-candidate.
31899 2024-05-09  YunQiang Su  <syq@gcc.gnu.org>
31901         * config/mips/constraints.md: Add new constraint 'w'.
31903 2024-05-09  Hu, Lin1  <lin1.hu@intel.com>
31905         PR target/84508
31906         * config/i386/emmintrin.h
31907         (_mm_load_sd): Remove alignment requirement.
31908         (_mm_store_sd): Ditto.
31909         (_mm_loadh_pd): Ditto.
31910         (_mm_loadl_pd): Ditto.
31911         (_mm_storel_pd): Add alignment requirement.
31912         * config/i386/xmmintrin.h
31913         (_mm_loadh_pi): Remove alignment requirement.
31914         (_mm_loadl_pi): Ditto.
31915         (_mm_load_ss): Ditto.
31916         (_mm_store_ss): Ditto.
31918 2024-05-09  Aldy Hernandez  <aldyh@redhat.com>
31920         PR tree-optimization/114912
31921         * value-range.h (class Value_Range): Use a union.
31923 2024-05-09  Aldy Hernandez  <aldyh@redhat.com>
31925         * range-op.cc (range_op_handler::discriminator_fail): Reword error
31926         message.
31928 2024-05-09  konglin1  <lingling.kong@intel.com>
31930         * config/i386/i386.cc (ix86_hardreg_mov_ok): Relax
31931         hard reg mov restriction when lra in progress.
31933 2024-05-08  Xiao Zeng  <zengxiao@eswincomputing.com>
31935         * config/riscv/riscv.cc (riscv_legitimize_move): Expand movbf
31936         with Nan-boxing value.
31937         * config/riscv/riscv.md (*movbf_softfloat_boxing): New pattern.
31939 2024-05-08  Jeff Law  <jlaw@ventanamicro.com>
31941         * config/riscv/riscv.cc (riscv_build_integer_1): Fix incorrect
31942         if-then-else nesting of Zbs code.
31944 2024-05-08  Vladimir N. Makarov  <vmakarov@redhat.com>
31946         PR target/114810
31947         * lra-constraints.cc (process_alt_operands): Calculate union reg
31948         class for the alternative, peak matched regs and required reload
31949         regs.  Recognize alternatives with lack of available registers and
31950         make them costly.  Add debug print about this case.
31952 2024-05-08  Andrew Pinski  <quic_apinski@quicinc.com>
31954         PR tree-optimization/112392
31955         * match.pd (`x CMP nonnegative ? x : ABS<x>`): New pattern;
31956         where CMP is ==, > and >=.
31957         (`x CMP nonnegative@y ? y : ABS<x>`): New pattern.
31959 2024-05-08  Ajit Kumar Agarwal  <aagarwa1@linux.ibm.com>
31961         PR tree-optimization/81953
31962         * tree-ssa-sink.cc (statement_sink_location):Sink statements at
31963         the begining of the basic block after labels.
31965 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
31967         * config/riscv/iterators.md (ashiftrt): New code attribute
31968         'extract_shift' and adding extractions to optab.
31969         * config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): Rename to...
31970         (*<any_extract:optab><GPR:mode>3):...this and add support for
31971         sign-extensions.
31973 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
31975         PR target/111501
31976         * config/riscv/riscv.md (*lshr<GPR:mode>3_zero_extend_4): New
31977         pattern for zero-extraction.
31979 2024-05-08  Christoph Müllner  <christoph.muellner@vrull.eu>
31981         * config/riscv/iterators.md (sraiw): New code iterator 'any_extract'.
31982         New code attribute 'extract_sidi_shift'.
31983         * config/riscv/riscv.md (*lshrsi3_zero_extend_2): Rename to...
31984         (*lshrsi3_extend_2):...this and add support for sign-extensions.
31986 2024-05-08  Richard Biener  <rguenther@suse.de>
31988         * tree-vect-loop.cc (get_initial_defs_for_reduction): Convert
31989         initial value to the vector component type.
31991 2024-05-08  Richard Biener  <rguenther@suse.de>
31993         * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
31994         Properly guard DR_GROUP_SIZE access with STMT_VINFO_GROUPED_ACCESS.
31996 2024-05-08  Alex Coplan  <alex.coplan@arm.com>
31998         PR target/114936
31999         * config/aarch64/aarch64-ldp-fusion.cc (combine_reg_notes):
32000         Ensure insn iN has its REG_FRAME_RELATED_EXPR (if any) stored in
32001         FR_EXPR[N-1], thus matching the correspondence expected by the
32002         copy_rtx calls.
32004 2024-05-08  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
32006         * tree-ssa-loop-prefetch.cc (determine_unroll_factor): Honour
32007         -fno-unroll-loops.
32009 2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
32011         PR target/114975
32012         * config/avr/avr.md: Add combine pattern for
32013         8-bit parity detection.
32015 2024-05-08  Georg-Johann Lay  <avr@gjlay.de>
32017         PR target/114975
32018         * config/avr/avr.md: Add combine pattern for
32019         8-bit popcount detection.
32021 2024-05-08  Richard Biener  <rguenther@suse.de>
32023         * tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip
32024         pruning when the nearest common dominator is the successor
32025         of ENTRY_BLOCK.  Do not copy IDF but prune it directly.
32027 2024-05-08  Jakub Jelinek  <jakub@redhat.com>
32029         PR tree-optimization/114965
32030         * tree-ssa-reassoc.cc (optimize_range_tests_to_bit_test): Don't try to
32031         optimize away exp - lowi subtraction from shift count unless entry
32032         test is emitted or unless r.upper_bound () is smaller than prec.
32034 2024-05-08  Eric Botcazou  <ebotcazou@adacore.com>
32036         * expmed.h (choose_multiplier): Tweak description and remove last
32037         parameter.
32038         * expmed.cc (choose_multiplier): Likewise.  Add assertion for the
32039         third parameter and adds details to various comments.
32040         (invert_mod2n): Tweak description and add assertion for the first
32041         parameter.
32042         (expand_divmod): Adjust calls to choose_multiplier.
32043         * tree-vect-generic.cc (expand_vector_divmod): Likewise.
32044         * tree-vect-patterns.cc (vect_recog_divmod_pattern): Likewise.
32046 2024-05-08  konglin1  <lingling.kong@intel.com>
32048         PR target/109549
32049         * config/i386/i386.cc (ix86_rtx_costs): The XEXP (x, 0) for cmov
32050         is an operator do not need to compute cost.
32052 2024-05-08  Aldy Hernandez  <aldyh@redhat.com>
32054         * gimple-range-cache.cc (sbr_sparse_bitmap::sbr_sparse_bitmap):
32055         Change irange to prange.
32056         * gimple-range-fold.cc (fold_using_range::fold_stmt): Same.
32057         (fold_using_range::range_of_address): Same.
32058         * gimple-range-fold.h (range_of_address): Same.
32059         * gimple-range-infer.cc (gimple_infer_range::add_nonzero): Same.
32060         * gimple-range-op.cc (class cfn_strlen): Same.
32061         * gimple-range-path.cc
32062         (path_range_query::adjust_for_non_null_uses): Same.
32063         * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Same.
32064         * tree-ssa-structalias.cc (find_what_p_points_to): Same.
32065         * range-op-ptr.cc (range_op_table::initialize_pointer_ops): Remove
32066         hybrid entries in table.
32067         * range-op.cc (range_op_table::range_op_table): Add pointer
32068         entries for bitwise and/or and min/max.
32069         * value-range.cc (irange::verify_range): Add assert.
32070         * value-range.h (irange::varying_compatible_p): Remove check for
32071         error_mark_node.
32072         (irange::supports_p): Remove pointer support.
32073         * ipa-cp.h (ipa_supports_p): Add prange support.
32075 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
32077         PR tree-optimization/19661
32078         * tree-ssa-dce.cc (is_cxa_atexit): New function.
32079         (is_removable_cxa_atexit_call): New function.
32080         (mark_stmt_if_obviously_necessary): Don't mark removable
32081         cxa_at_exit calls.
32082         (mark_all_reaching_defs_necessary_1): Likewise.
32083         (propagate_necessity): Likewise.
32085 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
32087         PR tree-optimization/114894
32088         * match.pd (`a != 0 ? a / b : 0`): New pattern.
32089         (`a != 0 ? a * b : 0`): New pattern.
32090         (`a != 0 ? a & b : 0`): New pattern.
32092 2024-05-07  Jeff Law  <jlaw@ventanamicro.com>
32094         * config/riscv/riscv.cc (generic_ooo_tune_info): Turn on
32095         overlap_op_by_pieces.
32097 2024-05-07  Christoph Müllner  <christoph.muellner@vrull.eu>
32099         * config/riscv/riscv.cc (struct riscv_tune_param): Add new
32100         "overlap_op_by_pieces" field.
32101         (rocket_tune_info, sifive_7_tune_info): Set it.
32102         (sifive_p400_tune_info, sifive_p600_tune_info): Likewise.
32103         (thead_c906_tune_info, xiangshan_nanhu_tune_info): Likewise.
32104         (generic_ooo_tune_info, optimize_size_tune_info): Likewise.
32105         (riscv_overlap_op_by_pieces): New function.
32106         (TARGET_OVERLAP_OP_BY_PIECES_P): define.
32108 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
32110         PR middle-end/114907
32111         * expr.cc (convert_mode_scalar): Use trunc_optab rather than
32112         sext_optab for HF->BF conversions.
32113         * optabs-libfuncs.cc (gen_trunc_conv_libfunc): Likewise.
32115 2024-05-07  Jakub Jelinek  <jakub@redhat.com>
32117         PR sanitizer/114956
32118         * tree-inline.cc: Include asan.h.
32119         (copy_bb): Remove also .ASAN_MARK calls if id->dst_fn has asan/hwasan
32120         sanitization disabled.
32122 2024-05-07  Jeff Law  <jlaw@ventanamicro.com>
32124         * config/riscv/riscv-string.cc (riscv_expand_strcmp): Do not inline
32125         strncmp with zero size.
32126         (emit_strcmp_scalar_compare_subword): Adjust rotation for rv32 vs rv64.
32127         * config/riscv/riscv.opt (var_inline_strcmp): Enable by default.
32128         (vriscv_inline_strncmp, riscv_inline_strlen): Likewise.
32130 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32132         * config.gcc: Build and add objects for Cygwin and MinGW. Add Cygwin
32133         and MinGW options to the target.
32135 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32137         * config/i386/mingw-w64.opt.urls: Rename options' name and
32138         regenerate option URLs.
32139         * config/lynx.opt.urls: Likewise.
32140         * config/mingw/cygming.opt.urls: Likewise.
32141         * config/mingw/mingw.opt.urls: Likewise.
32142         * doc/invoke.texi: Likewise.
32144 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32146         * config/aarch64/aarch64.h (struct seh_frame_state): Declare SEH
32147         structure in machine_function.
32148         (GTY): Add SEH field.
32150 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32152         * config.gcc: Add Cygwin and MinGW difinitions.
32153         * config/aarch64/aarch64-protos.h
32154         (mingw_pe_maybe_record_exported_symbol): Declare functions
32155         which are used in Cygwin and MinGW environment.
32156         (mingw_pe_section_type_flags): Likewise.
32157         (mingw_pe_unique_section): Likewise.
32158         (mingw_pe_encode_section_info): Likewise.
32159         * config/aarch64/cygming.h: New file.
32161 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32163         * config.gcc: Define TARGET_AARCH64_MS_ABI.
32164         * config/mingw/mingw-stdint.h (INTPTR_TYPE): Use
32165         TARGET_AARCH64_MS_ABI to adjust MinGW headers for
32166         AArch64 MS ABI.
32167         (UINTPTR_TYPE): Likewise.
32168         (defined): Likewise.
32169         * config/mingw/mingw32.h (DEFAULT_ABI): Likewise.
32170         (defined): Likewise.
32171         * config/mingw/winnt.cc (defined): Use TARGET_ARM64_MS_ABI to
32172         exclude ix86_get_callcvt.
32173         (i386_pe_maybe_mangle_decl_assembler_name): Likewise.
32174         (i386_pe_mangle_decl_assembler_name): Likewise.
32176 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32178         * config/i386/cygming.h (SUBTARGET_ENCODE_SECTION_INFO):
32179         Rename functions in mingw folder which will be reused for
32180         aarch64.
32181         (TARGET_ASM_UNIQUE_SECTION): Likewise.
32182         (TARGET_ASM_NAMED_SECTION): Likewise.
32183         (TARGET_SECTION_TYPE_FLAGS): Likewise.
32184         (ASM_DECLARE_COLD_FUNCTION_NAME): Likewise.
32185         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
32186         * config/i386/i386-protos.h (i386_pe_unique_section):
32187         Rename into ...
32188         (mingw_pe_unique_section): ... this.
32189         (i386_pe_declare_function_type): Rename into ...
32190         (mingw_pe_declare_function_type): ... this.
32191         (i386_pe_encode_section_info): Rename into ...
32192         (mingw_pe_encode_section_info): ... this.
32193         (i386_pe_maybe_record_exported_symbol): Rename into ...
32194         (mingw_pe_maybe_record_exported_symbol): ... this.
32195         (i386_pe_section_type_flags): Rename into ...
32196         (mingw_pe_section_type_flags): ... this.
32197         (i386_pe_asm_named_section): Rename into ...
32198         (mingw_pe_asm_named_section): ... this.
32199         * config/mingw/winnt.cc (i386_pe_encode_section_info):
32200         Rename into ...
32201         (mingw_pe_encode_section_info): ... this.
32202         (i386_pe_unique_section): Rename into ...
32203         (mingw_pe_unique_section): ... this.
32204         (i386_pe_section_type_flags): Rename into ...
32205         (mingw_pe_section_type_flags): ... this.
32206         (i386_pe_asm_named_section): Rename into ...
32207         (mingw_pe_asm_named_section): ... this.
32208         (i386_pe_asm_output_aligned_decl_common): Likewise.
32209         (i386_pe_declare_function_type): Rename into ...
32210         (mingw_pe_declare_function_type): ... this.
32211         (i386_pe_maybe_record_exported_symbol): Rename into ...
32212         (mingw_pe_maybe_record_exported_symbol): ... this.
32213         (i386_pe_start_function): Likewise.
32214         * varasm.cc (switch_to_comdat_section): Likewise.
32216 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32218         * config.gcc: Adjust targets after moving MinGW related files
32219         from i386 to mingw folder.
32220         * config/i386/cygming.opt: Move to...
32221         * config/mingw/cygming.opt: ...here.
32222         * config/i386/cygming.opt.urls: Move to...
32223         * config/mingw/cygming.opt.urls: ...here.
32224         * config/i386/cygwin-d.cc: Move to...
32225         * config/mingw/cygwin-d.cc: ...here.
32226         * config/i386/mingw-stdint.h: Move to...
32227         * config/mingw/mingw-stdint.h: ...here.
32228         * config/i386/mingw.opt: Move to...
32229         * config/mingw/mingw.opt: ...here.
32230         * config/i386/mingw.opt.urls: Move to...
32231         * config/mingw/mingw.opt.urls: ...here.
32232         * config/i386/mingw32.h: Move to...
32233         * config/mingw/mingw32.h: ...here.
32234         * config/i386/msformat-c.cc: Move to...
32235         * config/mingw/msformat-c.cc: ...here.
32236         * config/i386/t-cygming: Move to...
32237         * config/mingw/t-cygming: ...here and updated.
32238         * config/i386/winnt-cxx.cc: Move to...
32239         * config/mingw/winnt-cxx.cc: ...here.
32240         * config/i386/winnt-d.cc: Move to...
32241         * config/mingw/winnt-d.cc: ...here.
32242         * config/i386/winnt-stubs.cc: Move to...
32243         * config/mingw/winnt-stubs.cc: ...here.
32244         * config/i386/winnt.cc: Move to...
32245         * config/mingw/winnt.cc: ...here.
32247 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32249         * config.gcc: Add COFF format support definitions.
32250         * config/aarch64/aarch64-coff.h: New file.
32252 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32254         * config.gcc: Define TARGET_AARCH64_MS_ABI when
32255         AArch64 MS ABI is used.
32256         * config/aarch64/aarch64.h (FIXED_X18): Adjust
32257         FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS and
32258         STATIC_CHAIN_REGNUM for AArch64 MS ABI.
32259         (CALL_USED_X18): Likewise.
32260         (FIXED_REGISTERS): Likewise.
32261         * config/aarch64/aarch64-abi-ms.h: New file.
32263 2024-05-07  Zac Walker  <zacwalker@microsoft.com>
32265         * config.gcc: Add aarch64-w64-mingw32 target.
32267 2024-05-07  Alex Coplan  <alex.coplan@arm.com>
32269         PR target/114674
32270         * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
32271         Use replace_equiv_address_nv on a change of base instead of
32272         adjust_address_nv on the other access.
32274 2024-05-07  Richard Biener  <rguenther@suse.de>
32276         * tree-into-ssa.cc (insert_updated_phi_nodes_for): Fix block
32277         index check.
32279 2024-05-07  Richard Biener  <rguenther@suse.de>
32281         * tree-ssa-live.cc (init_var_map): Pre-allocate vec_bbs vector
32282         to the correct size and use quick_push.
32284 2024-05-07  Richard Biener  <rguenther@suse.de>
32286         PR middle-end/27800
32287         * gimplify.cc (gimplify_modify_expr_rhs): For a COND_EXPR
32288         avoid a temporary from gimplify_cond_expr when the LHS is
32289         a register by pushing the assignment into the COND_EXPR arms.
32291 2024-05-07  Richard Biener  <rguenther@suse.de>
32293         * gimplify.cc (gimplify_hasher::equal): Remove redundant
32294         checking.
32296 2024-05-07  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
32298         PR tree-optimization/110490
32299         * tree-scalar-evolution.cc (expression_expensive_p): Also
32300         consider mode widening for popcount, clz, and ctz.
32302 2024-05-07  Richard Biener  <rguenther@suse.de>
32304         * cfgexpand.cc (stack_var::representative): Use 'unsigned'
32305         for stack var indexes instead of 'size_t'.
32306         (stack_var::next): Likewise.
32307         (EOC): Likewise.
32308         (stack_vars_alloc): Likewise.
32309         (stack_vars_num): Likewise.
32310         (decl_to_stack_part): Likewise.
32311         (stack_vars_sorted): Likewise.
32312         (add_stack_var): Likewise.
32313         (add_stack_var_conflict): Likewise.
32314         (stack_var_conflict_p): Likewise.
32315         (visit_op): Likewise.
32316         (visit_conflict): Likewise.
32317         (add_scope_conflicts_1): Likewise.
32318         (stack_var_cmp): Likewise.
32319         (part_hashmap): Likewise.
32320         (update_alias_info_with_stack_vars): Likewise.
32321         (union_stack_vars): Likewise.
32322         (partition_stack_vars): Likewise.
32323         (dump_stack_var_partition): Likewise.
32324         (expand_stack_vars): Likewise.
32325         (account_stack_vars): Likewise.
32326         (stack_protect_decl_phase_1): Likewise.
32327         (stack_protect_decl_phase_2): Likewise.
32328         (asan_decl_phase_3): Likewise.
32329         (init_vars_expansion): Likewise.
32330         (estimated_stack_frame_size): Likewise.
32332 2024-05-07  Richard Biener  <rguenther@suse.de>
32334         PR middle-end/114931
32335         * tree.cc (type_hash_canon_hash): Hash TYPE_STRUCTURAL_EQUALITY_P.
32336         (type_cache_hasher::equal): Compare TYPE_STRUCTURAL_EQUALITY_P.
32337         (build_array_type_1): Set TYPE_STRUCTURAL_EQUALITY_P before
32338         probing with type_hash_canon.
32339         (build_function_type): Likewise.
32340         (build_method_type_directly): Likewise.
32341         (build_offset_type): Likewise.
32342         (build_complex_type): Likewise.
32343         * attribs.cc (build_type_attribute_qual_variant): Likewise.
32345 2024-05-07  Aldy Hernandez  <aldyh@redhat.com>
32347         * ipa-cp.cc (ipa_vr_operation_and_type_effects): Use ipa_supports_p.
32348         (ipa_value_range_from_jfunc): Change Value_Range type.
32349         (propagate_vr_across_jump_function): Same.
32350         * ipa-cp.h (ipa_supports_p): New.
32351         * ipa-fnsummary.cc (evaluate_conditions_for_known_args): Change Value_Range type.
32352         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Use ipa_supports_p.
32353         (ipcp_get_parm_bits): Same.
32355 2024-05-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
32357         * config.gcc: Move *-*-solaris2.11.[0-3]* to unsupported list.
32358         <*-*-solaris2*> (default_use_cxa_atexit): Set unconditionally.
32359         * configure.ac (AX_LIB_SOCKET_NSL): Don't call.
32360         (NETLIBS): Remove.
32361         (gcc_cv_ld_aligned_shf_merge): Remove.
32362         (hidden_linkonce) <i?86-*-solaris2* | x86_64-*-solaris2*>: Remove.
32363         (gcc_cv_target_dl_iterate_phdr) <*-*-solaris2*>: Always set to yes.
32364         * Makefile.in (NETLIBS): Remove.
32365         * configure, config.in, aclocal.m4: Regenerate.
32366         * config/sol2.h: Don't check HAVE_SOLARIS_CRTS.
32367         (STARTFILE_SPEC): Remove !HAVE_SOLARIS_CRTS case.
32368         [USE_GLD] (LINK_EH_SPEC): Remove TARGET_DL_ITERATE_PHDR guard.
32369         * config/i386/i386.cc (USE_HIDDEN_LINKONCE): Remove guard.
32370         * varasm.cc (mergeable_string_section): Remove
32371         HAVE_LD_ALIGNED_SHF_MERGE handling.
32372         (mergeable_constant_section): Likewise.
32373         * doc/install.texi (Specific,i?86-*-solaris2*): Reference Solaris
32374         11.4 only.
32375         (Specific, *-*-solaris2*): Document Solaris 11.3 removal.  Remove
32376         11.3 references and caveats.  Update for 11.4.
32378 2024-05-07  Richard Biener  <rguenther@suse.de>
32380         Revert:
32381         2024-04-10  Richard Biener  <rguenther@suse.de>
32383         Revert:
32384         2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
32386         PR rtl-optimization/101523
32387         * combine.cc (try_combine): Don't do a 2-insn combination if
32388         it does not in fact change I2.
32390 2024-05-07  Andrew Pinski  <quic_apinski@quicinc.com>
32392         PR middle-end/97263
32393         * doc/invoke.texi(fmath-errno): Document it is turned on
32394         with -Ofast.
32395         (funsafe-math-optimizations): Likewise.
32396         (ffinite-math-only): Likewise.
32397         (fno-trapping-math): Likewise and use less strong language.
32399 2024-05-07  liuhongt  <hongtao.liu@intel.com>
32401         * config/i386/sse.md (usdot_prodv*qi): Extend to VI1_AVX512
32402         with vpmaddwd when avxvnni/avx512vnni is not available.
32404 2024-05-07  liuhongt  <hongtao.liu@intel.com>
32406         PR target/113079
32407         * config/i386/mmx.md (usdot_prodv8qi): New expander.
32408         (sdot_prodv8qi): Ditto.
32409         (udot_prodv8qi): Ditto.
32410         (usdot_prodv4hi): Ditto.
32411         (udot_prodv4hi): Ditto.
32412         (sdot_prodv4hi): Ditto.
32414 2024-05-07  liuhongt  <hongtao.liu@intel.com>
32416         PR target/113090
32417         * config/i386/i386-expand.cc
32418         (expand_vec_perm_punpckldq_pshuf): New function.
32419         (ix86_expand_vec_perm_const_1): Try
32420         expand_vec_perm_punpckldq_pshuf for sequence of 2
32421         instructions.
32423 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32425         * config/pru/pru-passes.cc (class pass_pru_minrt_check): New
32426         pass.
32427         (pass_pru_minrt_check::execute): New method.
32428         (make_pru_minrt_check): New function.
32429         * config/pru/pru-passes.def (INSERT_PASS_AFTER): Register the
32430         minrt check pass.
32431         * config/pru/pru-protos.h (make_pru_minrt_check): Add
32432         declaration.
32434 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32436         * config/pru/pru-passes.cc (class pass_tiabi_check): Rename to
32437         add "pru_" prefix.
32438         (class pass_pru_tiabi_check): Ditto.
32439         (pass_tiabi_check::execute): Ditto.
32440         (pass_pru_tiabi_check::execute): Ditto.
32441         (make_pru_tiabi_check): Ditto.
32442         (pru_register_abicheck_pass): Remove.
32443         * config/pru/pru-protos.h (pru_register_abicheck_pass): Remove.
32444         (make_pru_tiabi_check): Add declaration.
32445         * config/pru/pru.cc (pru_option_override): Remove explicit pass
32446         registration.
32447         * config/pru/t-pru: Register PRU passes definition file.
32448         * config/pru/pru-passes.def: New file.
32450 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32452         * config/pru/pru.md (lshrdi3): Use HOST_WIDE_INT_1U macro.
32453         (ashldi3): Ditto.
32455 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32457         * config/pru/pru-passes.cc: Drop ATTRIBUTE_UNUSED and remove
32458         argument's name.
32459         * config/pru/pru-pragma.cc (pru_pragma_ctable_entry): Ditto.
32460         * config/pru/pru.cc (pru_function_profiler): Ditto.
32461         (pru_can_eliminate): Ditto.
32462         (pru_rtx_costs): Ditto.
32463         (pru_insert_attributes): Ditto.
32464         (pru_function_value): Ditto.
32465         (pru_libcall_value): Ditto.
32466         (pru_return_in_memory): Ditto.
32467         (pru_builtin_decl): Ditto.
32468         (pru_expand_builtin): Ditto.
32470 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32472         * config/pru/pru.cc (prologue_saved_reg_p): Skip saving
32473         if function will not return.
32475 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32477         * config/pru/alu-zext.md (_noz0): New subst attribute.
32478         (<code>_impl): Allow zero-extending the destination.
32479         (<shift_op>): Remove unified pattern
32480         (ashl_impl): New distinct pattern.
32481         (lshr_impl): Ditto.
32482         (alu3_zext_op0_subst): New subst iterator to zero-extend the
32483         destination register.
32485 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32487         * config/pru/pru.md (extzv<mode>): Make it an expand pattern,
32488         handle efficiently zero-positioned bit-fields.
32489         (insv<mode>): New expand pattern.
32491 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32493         * config/pru/pru.md: New pattern alternative for zero-filling
32494         64-bit registers.
32496 2024-05-07  Dimitar Dimitrov  <dimitar@dinux.eu>
32498         * config/pru/pru.cc (pru_address_cost): Implement address cost
32499         calculation.
32500         (TARGET_ADDRESS_COST): Define for PRU.
32502 2024-05-07  Richard Biener  <rguenther@suse.de>
32504         PR tree-optimization/114921
32505         * tree-vect-stmts.cc (vectorizable_assignment): Use
32506         tree_nop_conversion_p to identify converts we can vectorize
32507         with a simple assignment.
32509 2024-05-07  Roger Sayle  <roger@nextmovesoftware.com>
32510             Hongtao Liu  <hongtao.liu@intel.com>
32512         PR target/106060
32513         * config/i386/i386-expand.cc (enum ix86_vec_bcast_alg): New.
32514         (struct ix86_vec_bcast_map_simode_t): New type for table below.
32515         (ix86_vec_bcast_map_simode): Table of SImode constants that may
32516         be efficiently synthesized by a ix86_vec_bcast_alg method.
32517         (ix86_vec_bcast_map_simode_cmp): New comparator for bsearch.
32518         (ix86_vector_duplicate_simode_const): Efficiently synthesize
32519         V4SImode and V8SImode constants that duplicate special constants.
32520         (ix86_vector_duplicate_value): Attempt to synthesize "special"
32521         vector constants using ix86_vector_duplicate_simode_const.
32522         * config/i386/i386.cc (ix86_rtx_costs) <case ABS>: ABS of a
32523         vector integer mode costs with a single SSE instruction.
32525 2024-05-06  Xiao Zeng  <zengxiao@eswincomputing.com>
32527         * common/config/riscv/riscv-common.cc (riscv_implied_info): zfbfmin
32528         implies zfhmin.
32529         (riscv_ext_version_table, riscv_ext_flag_table): Add zfbfmin.
32530         * config/riscv/riscv.opt (ZFBFMIN): Add optoion.
32532 2024-05-06  Xiao Zeng  <zengxiao@eswincomputing.com>
32533             Jin Ma  <jinma@linux.alibaba.com>
32535         * config/riscv/iterators.md: New mode iterator HFBF.
32536         * config/riscv/riscv-builtins.cc (riscv_init_builtin_types):
32537         Initialize data type _Bfloat16.
32538         * config/riscv/riscv-modes.def (FLOAT_MODE): New.
32539         (ADJUST_FLOAT_FORMAT): New.
32540         * config/riscv/riscv.cc (riscv_mangle_type): Support for BFmode.
32541         (riscv_scalar_mode_supported_p): Ditto.
32542         (riscv_libgcc_floating_mode_supported_p): Ditto.
32543         (riscv_init_libfuncs): Set the conversion method for BFmode and
32544         HFmode.
32545         (riscv_block_arith_comp_libfuncs_for_mode): Set the arithmetic
32546         and comparison libfuncs for the mode.
32547         * config/riscv/riscv.md (mode" ): Add BF.
32548         (movhf): Support for BFmode.
32549         (mov<mode>): Ditto.
32550         (*movhf_softfloat): Ditto.
32551         (*mov<mode>_softfloat): Ditto.
32553 2024-05-06  Palmer Dabbelt  <palmer@rivosinc.com>
32555         * doc/invoke.texi (RISC-V): Add -mcmodel=large.
32557 2024-05-06  Jeff Law  <jlaw@ventanamicro.com>
32559         * config/riscv/riscv.cc (riscv_integer_op): Add field tracking if we
32560         want to use a "uw" instruction variant.
32561         (riscv_build_integer_1): Initialize the new field in various places.
32562         Use lui+slli.uw for some constants.
32563         (riscv_move_integer): Handle slli.uw.
32565 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
32567         PR c/53548
32568         * stor-layout.cc (place_union_field): Use zero sizes for flexible array
32569         member fields.
32571 2024-05-06  Qing Zhao  <qing.zhao@oracle.com>
32573         PR c/53548
32574         * doc/extend.texi: Add documentation for Flexible Array Members in
32575         Unions and Flexible Array Members alone in Structures.
32577 2024-05-06  Georg-Johann Lay  <avr@gjlay.de>
32579         PR ipa/92606
32580         * config/avr/avr.cc (avr_option_override): Set
32581         flag_ipa_icf_variables = 0.
32583 2024-05-06  Sandra Loosemore  <sloosemore@baylibre.com>
32585         * tree-nested.cc (convert_tramp_reference_stmt): Use the correct
32586         accessor for GIMPLE_OMP_TARGET clauses.
32588 2024-05-06  Richard Biener  <rguenther@suse.de>
32590         PR tree-optimization/100923
32591         * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Valueize
32592         base SSA_NAME.
32593         (vn_reference_lookup_3): Adjust vn_context_bb around calls
32594         to ao_ref_init_from_vn_reference.
32595         (vn_reference_lookup_pieces): Revert original PR100923 fix.
32596         (vn_reference_lookup): Likewise.
32598 2024-05-06  Richard Biener  <rguenther@suse.de>
32600         * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Add
32601         TARGET_MEM_REF support.  Handle more bases.
32603 2024-05-06  YunQiang Su  <syq@gcc.gnu.org>
32605         PR target/113179
32606         * expmed.cc(store_bit_field_using_insv): TRUNCATE value1 if
32607         needed.
32609 2024-05-05  Andrew Pinski  <quic_apinski@quicinc.com>
32611         * gimple-loop-versioning.cc (loop_versioning): Remove m_nloops field.
32612         (loop_versioning::loop_versioning): Remove initialization of
32613         m_nloops field and move it to be a local variable.
32614         (loop_versioning::analyze_blocks): Fix formating.
32616 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32618         * gimple-range-op.cc (class cfn_pass_through_arg1): Add overloads
32619         for prange operations.
32620         (cfn_strlen): Same.
32622 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32624         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32625         * range-op-ptr.cc (operator_ge::fold_range): New.
32626         (operator_ge::op1_range): New.
32627         (operator_ge::op2_range): New.
32628         (operator_ge::op1_op2_relation): New.
32629         (operator_ge::pointers_handled_p): New.
32631 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32633         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32634         * range-op-ptr.cc (operator_gt::fold_range): New.
32635         (operator_gt::op1_range): New.
32636         (operator_gt::op2_range): New.
32637         (operator_gt::op1_op2_relation): New.
32638         (operator_gt::pointers_handled_p): New.
32640 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32642         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32643         * range-op-ptr.cc (operator_le::fold_range): New.
32644         (operator_le::op1_range): New.
32645         (operator_le::op2_range): New.
32646         (operator_le::op1_op2_relation): New.
32647         (operator_le::pointers_handled_p): New.
32649 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32651         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32652         * range-op-ptr.cc (max_limit): New.
32653         (min_limit): New.
32654         (build_lt): New.
32655         (build_le): New.
32656         (build_gt): New.
32657         (build_ge): New.
32658         (operator_lt::fold_range): New.
32659         (operator_lt::op1_range): New.
32660         (operator_lt::op2_range): New.
32661         (operator_lt::op1_op2_relation): New.
32662         (operator_lt::pointers_handled_p): New.
32664 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32666         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32667         * range-op-ptr.cc (operator_equal::fold_range): New.
32668         (operator_equal::op1_range): New.
32669         (operator_equal::op2_range): New.
32670         (operator_equal::op1_op2_relation): New.
32671         (operator_equal::pointers_handled_p): New.
32673 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32675         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32676         * range-op-ptr.cc (operator_not_equal::fold_range): New.
32677         (operator_not_equal::op1_range): New.
32678         (operator_not_equal::op2_range): New.
32679         (operator_not_equal::op1_op2_relation): New.
32680         (operator_not_equal::pointers_handled_p): New.
32682 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32684         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32685         * range-op-ptr.cc (operator_bitwise_or::pointers_handled_p): New.
32687 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32689         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32690         * range-op-ptr.cc (operator_bitwise_and::fold_range): New.
32691         (operator_bitwise_and::pointers_handled_p): New.
32693 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32695         * range-op-ptr.cc
32696         (operator_pointer_diff::op1_op2_relation_effect): New.
32697         (operator_pointer_diff::pointers_handled_p): New.
32699 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32701         * range-op-ptr.cc (class pointer_plus_operator): Add overloaded declarations
32702         for pointer variants.
32703         (pointer_plus_operator::fold_range): New.
32704         (pointer_plus_operator::op2_range): New.
32705         (pointer_plus_operator::pointers_handled_p): New.
32707 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32709         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32710         * range-op-ptr.cc (operator_addr_expr::op1_range): New.
32711         (operator_addr_expr::pointers_handled_p): New.
32713 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32715         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32716         * range-op-ptr.cc (operator_min::fold_range): New.
32717         (operator_min::pointers_handled_p): New.
32718         (operator_max::fold_range): New.
32719         (operator_max::pointers_handled_p): New.
32721 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32723         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32724         * range-op-ptr.cc (operator_cast::fold_range): New.
32725         (operator_cast::op1_range): New.
32726         (operator_cast::lhs_op1_relation): New.
32727         (operator_cast::pointers_handled_p): New.
32729 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32731         * range-op-mixed.h: Add overloaded declarations for pointer variants.
32732         * range-op-ptr.cc (operator_cst::fold_range): New.
32733         (operator_cst::pointers_handled_p): New.
32735 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32737         * range-op-mixed.h: Add overloaded declarations for fold_range, op1_range,
32738         lhs_op1_relation, pointers_handled_p.
32739         * range-op-ptr.cc (operator_identity::fold_range): New.
32740         (operator_identity::lhs_op1_relation): New.
32741         (operator_identity::op1_range): New.
32742         (operator_identity::pointers_handled_p): New.
32744 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32746         * range-op-mixed.h: Add using declarator for all classes.
32747         * range-op-ptr.cc (range_operator::pointers_handled_p): New.
32748         (range_operator::fold_range): New.
32749         (range_operator::op1_op2_relation_effect): New.
32750         (range_operator::op1_range): New.
32751         (range_operator::op2_range): New.
32752         (range_operator::op1_op2_relation): New.
32753         (range_operator::lhs_op1_relation): New.
32754         (range_operator::update_bitmask): New.
32755         (class pointer_plus_operator): New.
32756         (class operator_pointer_diff): New.
32757         (class hybrid_min_operator): New.
32758         (class hybrid_max_operator): New.
32759         * range-op.cc: Add RO_PPP, RO_PPI, RO_IPP, RO_IPI, RO_PIP, RO_PII.
32760         (range_op_handler::discriminator_fail): New.
32761         (has_pointer_operand_p): New.
32762         (range_op_handler::fold_range): Add pointer support.
32763         (range_op_handler::op1_range): Same.
32764         (range_op_handler::op2_range): Same.
32765         (range_op_handler::lhs_op1_relation): Same.
32766         (range_op_handler::lhs_op2_relation): Same.
32767         (range_op_handler::op1_op2_relation): Same.
32768         (class operator_div): Add using.
32769         (class operator_lshift): Add using.
32770         (class operator_rshift):Add using.
32771         (class operator_trunc_mod):Add using.
32772         (class operator_absu):Add using.
32773         * range-op.h (enum range_op_dispatch_type): New.
32774         Add extern definitions for RO_*.
32776 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32778         * value-range.cc (get_legacy_range): New version for prange.
32780 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32782         * value-range.cc (add_vrange): Add prange support.
32784 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32786         * value-range-storage.cc (vrange_allocator::clone_varying): Add
32787         prange support.
32788         (vrange_allocator::clone_undefined): Same.
32789         (vrange_storage::alloc): Same.
32790         (vrange_storage::set_vrange): Same.
32791         (vrange_storage::get_vrange): Same.
32792         (vrange_storage::fits_p): Same.
32793         (vrange_storage::equal_p): Same.
32794         (prange_storage::alloc): New.
32795         (prange_storage::prange_storage): New.
32796         (prange_storage::set_prange): New.
32797         (prange_storage::get_prange): New.
32798         (prange_storage::equal_p): New.
32799         (prange_storage::fits_p): New.
32800         * value-range-storage.h (class prange_storage): Add prange support.
32802 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32804         * data-streamer-in.cc (streamer_read_value_range): Add prange support.
32805         * data-streamer-out.cc (streamer_write_vrange): Same.
32807 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32809         * value-range-pretty-print.cc (vrange_printer::visit): New.
32810         * value-range-pretty-print.h: Declare prange visit() method.
32811         * value-range.cc (vrange::operator=): Add prange support.
32812         (vrange::operator==): Same.
32813         (prange::accept): New.
32814         (prange::set_nonnegative): New.
32815         (prange::set): New.
32816         (prange::contains_p): New.
32817         (prange::singleton_p): New.
32818         (prange::lbound): New.
32819         (prange::ubound): New.
32820         (prange::union_): New.
32821         (prange::intersect): New.
32822         (prange::operator=): New.
32823         (prange::operator==): New.
32824         (prange::invert): New.
32825         (prange::verify_range): New.
32826         (prange::update_bitmask): New.
32827         (range_tests_misc): Use prange.
32828         * value-range.h (enum value_range_discriminator): Add VR_PRANGE.
32829         (class prange): New.
32830         (Value_Range::init): Add prange support.
32831         (Value_Range::operator=): Same.
32832         (Value_Range::supports_type_p): Same.
32833         (prange::prange):  New.
32834         (prange::supports_p): New.
32835         (prange::supports_type_p): New.
32836         (prange::set_undefined): New.
32837         (prange::set_varying): New.
32838         (prange::set_nonzero): New.
32839         (prange::set_zero): New.
32840         (prange::contains_p): New.
32841         (prange::zero_p): New.
32842         (prange::nonzero_p): New.
32843         (prange::type): New.
32844         (prange::lower_bound): New.
32845         (prange::upper_bound): New.
32846         (prange::varying_compatible_p): New.
32847         (prange::get_bitmask): New.
32848         (prange::fits_p): New.
32850 2024-05-04  Aldy Hernandez  <aldyh@redhat.com>
32852         * value-range.h (class prange): New.
32854 2024-05-03  Andrew Pinski  <quic_apinski@quicinc.com>
32856         PR middle-end/23872
32857         * tree-pretty-print.cc (dump_generic_node <case COMPOUND_EXPR>): Fix
32858         calls to dump_generic_node and also remove unreachable code that is testing
32859         `flags & TDF_SLIM`.
32861 2024-05-03  Vineet Gupta  <vineetg@rivosinc.com>
32863         * config/riscv/riscv.cc: Comment updates.
32864         * config/riscv/riscv.h: Ditto.
32866 2024-05-03  Vineet Gupta  <vineetg@rivosinc.com>
32868         * doc/rtl.texi: Add entry for GET_MODE_INNER.
32870 2024-05-03  Richard Biener  <rguenther@suse.de>
32872         * bitmap.cc (bitmap_alloc): When using the global bitmap obstack
32873         assert that is initialized.
32875 2024-05-03  Richard Biener  <rguenther@suse.de>
32877         PR middle-end/114931
32878         * tree.cc (build_array_type_1): Return early when type_hash_canon
32879         returned an older existing type.
32880         (build_function_type): Likewise.
32881         (build_method_type_directly): Likewise.
32882         (build_offset_type): Likewise.
32884 2024-05-03  Alex Coplan  <alex.coplan@arm.com>
32886         PR rtl-optimization/114924
32887         * cfgrtl.cc (duplicate_insn_chain): When updating MEM_EXPRs,
32888         don't strip (e.g.) ARRAY_REFs from the final MEM_EXPR.
32890 2024-05-03  Jakub Jelinek  <jakub@redhat.com>
32892         PR middle-end/113596
32893         * tree-inline.cc (expand_call_inline): Emit __builtin_stack_save
32894         and __builtin_stack_restore calls around inlined functions which
32895         call alloca.
32897 2024-05-03  Richard Biener  <rguenther@suse.de>
32899         PR tree-optimization/114921
32900         * tree-vect-stmts.cc (vectorizable_assignment): Require
32901         same vector component modes for input and output for
32902         CONVERT_EXPR_CODE_P.
32904 2024-05-02  Jeff Law  <jlaw@ventanamicro.com>
32906         * config/riscv/riscv.md (<round_pattern><ANYF:mode>2): Adjust
32907         condition to match what can be properly implemented.  Fix various
32908         formatting issues.
32909         (l<round_pattern><ANYF:mode>si2_sext): Fix formatting
32911 2024-05-02  Jeff Law  <jlaw@ventanamicro.com>
32913         * config/riscv/predicates.md (arith_or_zbs_operand): New predicate.
32914         * config/riscv/riscv.cc (riscv_build_integer_one): Use bseti to set
32915         single bits when profitable.
32916         * config/riscv/riscv.md (*<optab><mode>3): Renamed with '*' prefix.
32917         (<optab><mode>3): New expander for IOR/XOR.
32919 2024-05-02  Richard Biener  <rguenther@suse.de>
32921         * tree-vect-slp.cc (vect_print_slp_tree): Mark live lanes.
32922         (dot_slp_tree): New overload for multiple entries.
32924 2024-05-02  Gaius Mulley  <gaiusmod2@gmail.com>
32926         PR modula2/113836
32927         * doc/gm2.texi (Compiler options): Add -fm2-debug-trace=,
32928         -fm2-dump, -fm2-dump-decl=, -fm2-dump-gimple=, -fm2-dump-quad=
32929         and -fm2-dump-filter=.
32931 2024-05-02  Marc Poulhiès  <poulhies@adacore.com>
32933         * value-range.h: fix static_assert to use 2 arguments.
32935 2024-05-02  Peter Damianov  <peter0x44@disroot.org>
32937         PR lto/110710
32938         * lto-wrapper.cc (run_gcc): Instead of truncating a processed
32939         ltrans input from the Makefile use the new -truncate option
32940         to accomplish the same.
32942 2024-05-02  Peter Damianov  <peter0x44@disroot.org>
32944         PR lto/110710
32945         * common.opt (truncate): New internal option.
32946         * gcc.cc (totruncate_file): New global.
32947         (driver_handle_option): Handle -truncate <file>.
32948         (driver::final_actions): Truncate the file indicated.
32950 2024-05-02  Richard Biener  <rguenther@suse.de>
32952         * graphds.cc (dump_graph): Dump in graphviz format.
32954 2024-05-02  Richard Biener  <rguenther@suse.de>
32956         * tree-ssa-live.h (tree_live_info_d::global): Remove.
32957         (partition_is_global): Likewise.
32958         (make_live_on_entry): Do not set bit in global.
32959         * tree-ssa-live.cc (new_tree_live_info): Do not allocate
32960         global bitmap.
32961         (delete_tree_live_info): Do not release it.
32962         (set_var_live_on_entry): Do not set bits in it.
32964 2024-05-02  Richard Biener  <rguenther@suse.de>
32966         PR middle-end/114579
32967         * cfgexpand.cc (add_scope_conflicts_1): Record all-to-all
32968         conflicts only when there's a CFG merge but for all CFG merges.
32970 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
32972         PR target/69374
32973         PR target/112959
32974         * doc/install.texi (Specific) <*-*-freebsd*>: The Ada and D
32975         run-time libraries are broken on i386 which also can affect
32976         64-bit builds. Go is broken.
32978 2024-05-01  Jeff Law  <jlaw@ventanamicro.com>
32980         * config/riscv/bitmanip.md (splitter to use w-form division): Remove
32981         explicit subregs.
32982         (zero extended bitfield extraction): Similarly.
32983         * config/riscv/thead.md (*th_memidx_operand): Similarly.
32985 2024-05-01  Jeff Law  <jlaw@ventanamicro.com>
32987         * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Break out
32988         tests for easier debugging in store pair fusion case.  Fix offset
32989         check in same.
32991 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
32993         PR target/69374
32994         PR target/112959
32995         * doc/install.texi (Specific) <*-*-freebsd*>: No longer refer
32996         to GCC or binutils in base. Recommend bootstrap using binutils.
32998 2024-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
33000         PR target/69374
33001         * doc/install.texi (Specific) <ia64-*-hpux*>: Remove details
33002         on libunwind for GCC 3.4 and earlier.
33004 2024-05-01  Aldy Hernandez  <aldyh@redhat.com>
33006         * ipa-fnsummary.cc (evaluate_properties_for_edge): Initialize Value_Range's.
33007         * value-range.h (class Value_Range): Add a buffer and remove
33008         m_irange and m_frange.
33009         (Value_Range::Value_Range): Call init.
33010         (Value_Range::set_type): Same.
33011         (Value_Range::init): Use in place new to initialize buffer.
33012         (Value_Range::operator=): Tidy.
33014 2024-05-01  Aldy Hernandez  <aldyh@redhat.com>
33016         * value-range.cc (unsupported_range::union_): Cast vrange to
33017         unsupported_range.
33018         (unsupported_range::intersect): Same.
33019         (unsupported_range::operator=): Make argument an unsupported_range.
33020         * value-range.h: New constructor.
33022 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
33024         * gimple-range-op.cc (gimple_range_op_handler::calc_op1): Don't
33025         assert that here are less than 3 operands.
33026         (gimple_range_op_handler::maybe_builtin_call): Simply return if
33027         there is no type for the function call.
33029 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
33031         * gimple-range.cc (gimple_ranger::range_on_entry): Adjust for new
33032         API and support non-SSA expressions.
33033         (gimple_ranger::range_on_exit): Ditto.
33034         * gimple-range.h (range_on_entry, range_on_exit): Adjust API.
33035         * value-query.cc (range_query::range_on_entry): New.
33036         (range_query::range_on_exit): New.
33037         (range_query::value_on_entry): New.
33038         (range_query::value_on_exit): New.
33039         (range_query::invoke_range_of_expr): New.
33040         (range_query::get_tree_range): Allow stmt, on_entry or on_exit
33041         range queries.
33042         SSA_NAMES should invoke range_of_expr if possible.
33043         * value-query.h (class range_query): Adjust prototypes.
33045 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
33047         * gimple-range.cc (gimple_ranger::range_of_expr): Call range_of_stmt
33048         when there is no context stmt.
33050 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
33052         * gimple-range-cache.cc (ranger_cache::get_global_range): Do not
33053         pre-evaluate PHI nodes from the cache.
33054         (ranger_cache::fill_block_cache): Make re-entrant.
33056 2024-04-30  Andrew MacLeod  <amacleod@redhat.com>
33058         * value-query.cc (get_range_global): Rename to gimple_range_global.
33059         (gimple_range_global): Remove wrapper function.
33060         (global_range_query::range_of_expr): Call gimple_range_global.
33062 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33064         * tree-cfg.cc (verify_gimple_assign): Remove quote
33065         mark to shut up the warning.
33067 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33069         * tree-ssa-phiopt.cc (value_replacement): Reject undef variables
33070         so they don't become unconditional used.
33072 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33074         * tree-ssa-phiopt.cc (value_replacement): Move check for
33075         NE/EQ earlier.
33077 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33079         * tree-ssa-phiopt.cc (single_non_singleton_phi_for_edges):
33080         Remove the special case of gimple_seq_singleton_p.
33082 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33084         PR middle-end/112976
33085         * cfgexpand.cc (expand_gimple_stmt_1): Remove
33086         support for expanding nontemporal "moves" with
33087         ssa names on the LHS.
33089 2024-04-30  Andrew Pinski  <quic_apinski@quicinc.com>
33091         PR middle-end/112976
33092         * tree-cfg.cc (verify_gimple_assign): Verify that
33093         nontmporal moves are stores.
33094         * gimple.h (struct gimple): Note that only
33095         nontemporal stores are supported.
33097 2024-04-30  Jivan Hakobyan  <jivanhakobyan9@gmail.com>
33099         * config/riscv/iterators.md (fix_ops, fix_uns): New iterators.
33100         (RINT, rint_pattern, rint_rm): Remove unused iterators.
33101         * config/riscv/riscv-protos.h (get_fp_rounding_coefficient): Prototype.
33102         * config/riscv/riscv-v.cc (get_fp_rounding_coefficient): Externalize.
33103         external linkage.
33104         * config/riscv/riscv.md (UNSPEC_LROUND): Remove.
33105         (fix_trunc<ANYF:mode><GPR:mode>2): Replace with ...
33106         (<fix_uns>_trunc<ANYF:mode>si2): New expander & associated insn.
33107         (<fix_uns>_trunc<ANYF:mode>si2_ext): New insn.
33108         (<fix_uns>_trunc<ANYF:mode>di2): Likewise.
33109         (l<rint_pattern><ANYF:mode><GPR:mode>2): Replace with ...
33110         (lrint<ANYF:mode>si2): New expander and associated insn.
33111         (lrint<ANYF:mode>si2_ext, lrint<ANYF:mode>di2): New insns.
33112         (<round_pattern><ANYF:mode>2): Replace with....
33113         (l<round_pattern><ANYF:mode>si2): New expander and associated insn.
33114         (l<round_pattern><ANYF:mode>si2_sext): New insn.
33115         (l<round_pattern><ANYF:mode>di2): Likewise.
33116         (<round_pattern><ANYF:mode>2): New expander.
33118 2024-04-30  Aldy Hernandez  <aldyh@redhat.com>
33120         * gimple-ssa-warn-access.cc (check_nul_terminated_array): Change
33121         int_range<2> to int_range_max.
33122         (memmodel_to_uhwi): Same.
33123         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
33124         (determine_value_range): Same.
33125         (infer_loop_bounds_from_signedness): Same.
33126         (scev_var_range_cant_overflow): Same.
33128 2024-04-30  Richard Biener  <rguenther@suse.de>
33130         PR middle-end/13421
33131         * optabs-tree.cc (optab_for_tree_code): Do not consider
33132         {add,sub}v or {us,ss}{add,sub} optabs for POINTER_DIFF_EXPR
33133         or POINTER_PLUS_EXPR.
33135 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
33137         PR tree-optimization/114876
33138         * gimple-ssa-sprintf.cc (format_character): For min == 0 && max == 0,
33139         set max, likely and unlikely members to 1 rather than 0.  Remove
33140         useless res.knownrange = true;.  Formatting fixes.
33142 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
33143             Hongtao Liu  <hongtao.liu@intel.com>
33145         PR tree-optimization/114883
33146         * tree-vect-loop.cc (vect_transform_reduction): Allow IFN_COND_MIN and
33147         IFN_COND_MAX in the assert.
33149 2024-04-30  Jakub Jelinek  <jakub@redhat.com>
33151         * doc/cpp.texi (__STDC_VERSION__): Document 202311L value
33152         for -std=c23/-std=gnu23.
33154 2024-04-30  Richard Biener  <rguenther@suse.de>
33156         PR middle-end/114734
33157         * internal-fn.cc (expand_call_mem_ref): Use
33158         get_gimple_for_ssa_name to get at the def stmt of the address
33159         argument to honor SSA coalescing constraints.
33161 2024-04-29  demin.han  <demin.han@starfivetech.com>
33163         PR target/114506
33164         * config/riscv/riscv-vector-costs.cc (non_contiguous_memory_access_p): Rename
33165         (need_additional_vector_vars_p): Rename and refine condition
33167 2024-04-29  Pan Li  <pan2.li@intel.com>
33169         PR target/114885
33170         * config/riscv/riscv.cc (riscv_legitimize_subreg_const_poly_move): New
33171         func impl to take care of (const_int_poly:TI 8).
33172         (riscv_legitimize_move): Handle subreg is const_int_poly,
33174 2024-04-29  Christoph Müllner  <christoph.muellner@vrull.eu>
33176         * common/config/riscv/riscv-common.cc: Move ziccamoa, ziccif,
33177         zicclsm, and ziccrse into riscv_zi_subext.
33178         * config/riscv/riscv.opt: Define MASK_ZIC64B for
33179         riscv_ziccmo_subext.
33181 2024-04-29  Jie Mei  <jie.mei@oss.cipunited.com>
33183         * config/mips/i6400.md (i6400_fpu_minmax): New
33184         define_insn_reservation.
33185         * config/mips/mips.h (ISA_HAS_FMIN_FMAX): Define new macro.
33186         * config/mips/mips.md (UNSPEC_FMIN): New unspec.
33187         (UNSPEC_FMAX): Same as above.
33188         (type): Add fminmax.
33189         (smin<mode>3): Generates MIN.fmt instructions.
33190         (smax<mode>3): Generates MAX.fmt instructions.
33191         (fmin<mode>3): Generates MIN.fmt instructions.
33192         (fmax<mode>3): Generates MAX.fmt instructions.
33193         * config/mips/p6600.md (p6600_fpu_fabs): Include fminmax
33194         type.
33196 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33198         * tree-ssa-ccp.cc (ccp_finalize): Normalize before calling
33199         set_bitmask.
33200         * value-range.cc (irange::intersect_bitmask): Calculate changed
33201         irange_bitmask bits on our own.
33202         (irange::union_bitmask): Same.
33203         (irange_bitmask::verify_mask): Verify that bits are normalized.
33204         * value-range.h (irange_bitmask::union_): Do not normalize.
33205         Remove return value.
33206         (irange_bitmask::intersect): Same.
33208 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33210         * range-op-ptr.cc (pointer_plus_operator::wi_fold): Use method
33211         range setters instead of out of line functions.
33212         (pointer_min_max_operator::wi_fold): Same.
33213         (pointer_and_operator::wi_fold): Same.
33214         (pointer_or_operator::wi_fold): Same.
33215         * range-op.cc (operator_negate::fold_range): Same.
33216         (operator_addr_expr::fold_range): Same.
33217         (range_op_cast_tests): Same.
33218         * range.cc (range_zero): Remove.
33219         (range_nonzero): Remove.
33220         * range.h (range_zero): Remove.
33221         (range_nonzero): Remove.
33222         * value-range.cc (range_tests_misc): Use method instead of out of
33223         line function.
33225 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33227         * value-range-pretty-print.cc (print_int_bound): New.
33228         (print_irange_bitmasks): New.
33229         (vrange_printer::print_irange_bound): Remove.
33230         (vrange_printer::print_irange_bitmasks): Remove.
33231         * value-range-pretty-print.h: Remove print_irange_bitmasks and
33232         print_irange_bound
33234 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33236         * value-range.h (range_includes_zero_p): Accept vrange.
33238 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33240         * tree-ssa-loop-split.cc (split_at_bb_p): Make int_range a Value_Range.
33241         * tree-ssa-strlen.cc (get_range): Same.
33242         * value-query.cc (range_query::get_tree_range):  Handle both
33243         integers and pointers.
33244         * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Make
33245         r0 and r1 Value_Range's.
33247 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33249         * value-range.cc (get_bitmask_from_range): Move out of irange class.
33250         (irange::get_bitmask): Call function instead of internal method.
33251         * value-range.h (class irange): Remove get_bitmask_from_range.
33253 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33255         * value-range.cc (get_legacy_range): Make static and add another
33256         version of get_legacy_range that takes a vrange.
33257         * value-range.h (class irange): Remove unnecessary friendship with
33258         get_legacy_range.
33259         (get_legacy_range): Accept a vrange.
33261 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33263         * value-range-storage.cc (irange_storage::set_irange): Move
33264         verification code from here...
33265         (vrange_storage::set_vrange): ...to here.
33267 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33269         * gimple-range-op.cc (cfn_clz::fold_range): Change
33270         range_includes_zero_p argument to a reference.
33271         (cfn_ctz::fold_range): Same.
33272         * range-op.cc (operator_plus::lhs_op1_relation): Same.
33273         * value-range.h (range_includes_zero_p): Same.
33275 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33277         * vr-values.cc (simplify_using_ranges::fold_cond_with_ops): Remove
33278         type from range_true and range_false.
33280 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33282         * value-range-storage.h: Remove friends.
33283         * value-range.cc (gt_ggc_mx): Remove.
33284         (gt_pch_nx): Remove.
33285         * value-range.h (class vrange): Remove GTY markers.
33286         (class irange): Same.
33287         (class int_range): Same.
33288         (class frange): Same.
33289         (gt_ggc_mx): Remove.
33290         (gt_pch_nx): Remove.
33292 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33294         * ipa-cp.cc (propagate_bits_across_jump_function): Access bitmask
33295         through base class.
33296         (ipcp_store_vr_results): Same.
33297         * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Same.
33298         (ipcp_get_parm_bits): Same.
33299         (ipcp_update_vr): Same.
33300         * range-op-mixed.h (update_known_bitmask): Change argument to vrange.
33301         * range-op.cc (update_known_bitmask): Same.
33302         * value-range.cc (vrange::update_bitmask):  New.
33303         (irange::set_nonzero_bits): Move to vrange class.
33304         (irange::get_nonzero_bits): Same.
33305         * value-range.h (class vrange): Add update_bitmask, get_bitmask,
33306         get_nonzero_bits, and set_nonzero_bits.
33307         (class irange): Make bitmask methods virtual overrides.
33308         (class Value_Range): Add get_bitmask and update_bitmask.
33310 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33312         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Convert
33313         bound to wide_int.
33314         * value-range.cc (Value_Range::lower_bound): Remove.
33315         (Value_Range::upper_bound): Remove.
33316         (unsupported_range::lbound): New.
33317         (unsupported_range::ubound): New.
33318         (frange::lbound): New.
33319         (frange::ubound): New.
33320         (irange::lbound): New.
33321         (irange::ubound): New.
33322         * value-range.h (class vrange): Add lbound() and ubound().
33323         (class irange): Same.
33324         (class frange): Same.
33325         (class unsupported_range): Same.
33326         (class Value_Range): Rename lower_bound and upper_bound to lbound
33327         and ubound respectively.
33329 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33331         * gimple-ssa-warn-access.cc (check_nul_terminated_array): Make Value_Range an int_range.
33332         (memmodel_to_uhwi): Same
33333         * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
33334         (determine_value_range): Same.
33335         (infer_loop_bounds_from_signedness): Same.
33336         (scev_var_range_cant_overflow): Same.
33338 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33340         * value-range.h (vrange::~vrange): New.
33341         (int_range::~int_range): Make final override.
33343 2024-04-28  Aldy Hernandez  <aldyh@redhat.com>
33345         * value-range.cc (unsupported_range::accept): Move down.
33346         (vrange::contains_p):  Rename to...
33347         (unsupported_range::contains_p): ...this.
33348         (vrange::singleton_p): Rename to...
33349         (unsupported_range::singleton_p): ...this.
33350         (vrange::set): Rename to...
33351         (unsupported_range::set): ...this.
33352         (vrange::type): Rename to...
33353         (unsupported_range::type): ...this.
33354         (vrange::supports_type_p): Rename to...
33355         (unsupported_range::supports_type_p): ...this.
33356         (vrange::set_undefined): Rename to...
33357         (unsupported_range::set_undefined): ...this.
33358         (vrange::set_varying): Rename to...
33359         (unsupported_range::set_varying): ...this.
33360         (vrange::union_): Rename to...
33361         (unsupported_range::union_): ...this.
33362         (vrange::intersect): Rename to...
33363         (unsupported_range::intersect): ...this.
33364         (vrange::zero_p): Rename to...
33365         (unsupported_range::zero_p): ...this.
33366         (vrange::nonzero_p): Rename to...
33367         (unsupported_range::nonzero_p): ...this.
33368         (vrange::set_nonzero): Rename to...
33369         (unsupported_range::set_nonzero): ...this.
33370         (vrange::set_zero): Rename to...
33371         (unsupported_range::set_zero): ...this.
33372         (vrange::set_nonnegative): Rename to...
33373         (unsupported_range::set_nonnegative): ...this.
33374         (vrange::fits_p): Rename to...
33375         (unsupported_range::fits_p): ...this.
33376         (unsupported_range::operator=): New.
33377         (frange::fits_p): New.
33378         * value-range.h (class vrange): Make an abstract class.
33379         (class unsupported_range): Declare override methods.
33381 2024-04-28  Gerald Pfeifer  <gerald@pfeifer.com>
33383         PR target/69374
33384         PR target/112959
33385         * doc/install.texi (Specific) <*-*-freebsd*>: Remove references to
33386         FreeBSD 7 and older.
33388 2024-04-28  Gerald Pfeifer  <gerald@pfeifer.com>
33390         * doc/contrib.texi: Update David Binderman's entry.
33392 2024-04-28  liuhongt  <hongtao.liu@intel.com>
33394         * config/i386/i386.md: (zero_extendsidi2): Adjust
33395         alternative *k to ?k.
33396         (zero_extend<mode>di2): Ditto.
33397         (*zero_extend<mode>si2): Ditto.
33398         (*zero_extendqihi2): Ditto.
33400 2024-04-28  Jiufu Guo  <guojiufu@linux.ibm.com>
33402         PR target/95782
33403         * config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty identifier.
33405 2024-04-28  Andrew Pinski  <quic_apinski@quicinc.com>
33407         PR target/113822
33408         * config/aarch64/aarch64.cc (aarch64_evpc_reencode): Use
33409         vec_perm_indices::new_shrunk_vector instead of manually
33410         going through the indices.
33412 2024-04-27  Xi Ruoyao  <xry111@xry111.site>
33414         PR target/114861
33415         * config/loongarch/loongarch.md (bstrins_<mode>_for_mask): Add
33416         constraints for operands.
33417         (bstrins_<mode>_for_ior_mask): Likewise.
33419 2024-04-27  Fangrui Song  <maskray@gcc.gnu.org>
33421         * config/riscv/elf.h (LINK_SPEC): Add -X.
33422         * config/riscv/freebsd.h (LINK_SPEC): Add -X.
33423         * config/riscv/linux.h (LINK_SPEC): Add -X.
33425 2024-04-26  Wilco Dijkstra  <wilco.dijkstra@arm.com>
33427         * config/aarch64/aarch64.cc (MAX_SET_SIZE): New define.
33428         (aarch64_progress_pointer): Remove function.
33429         (aarch64_set_one_block_and_progress_pointer): Simplify and clean up.
33430         (aarch64_expand_setmem): Clean up implementation, use byte offsets,
33431         simplify size calculation.
33433 2024-04-26  Wilco Dijkstra  <wilco.dijkstra@arm.com>
33435         * config/aarch64/aarch64.cc (aarch64_mode_valid_for_sched_fusion_p):
33436         Remove check for AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS.
33437         (aarch64_advsimd_ldp_stp_p): Likewise.
33438         (aarch64_stp_sequence_cost): Likewise.
33439         (aarch64_expand_cpymem): Likewise.
33440         (aarch64_expand_setmem): Likewise.
33441         * config/aarch64/aarch64-ldp-fusion.cc (ldp_operand_mode_ok_p):
33442         Likewise.
33443         * config/aarch64/aarch64-ldpstp.md: Likewise.
33444         * config/aarch64/aarch64-tuning-flags.def: Remove NO_LDP_STP_QREGS.
33445         * config/aarch64/tuning_models/emag.h: Likewise.
33446         * config/aarch64/tuning_models/xgene1.h: Likewise.
33448 2024-04-26  Frederik Harwath  <frederik@harwath.name>
33450         * config.gcc: Add gfx90c.
33451         * config/gcn/gcn-hsa.h (NO_SRAM_ECC): Likewise.
33452         * config/gcn/gcn-opts.h (enum processor_type): Likewise.
33453         (TARGET_GFX90c): New macro.
33454         * config/gcn/gcn.cc (gcn_option_override): Handle gfx90c.
33455         (gcn_omp_device_kind_arch_isa): Likewise.
33456         (output_file_start): Likewise.
33457         * config/gcn/gcn.h: Add gfx90c.
33458         * config/gcn/gcn.opt: Likewise.
33459         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90c): New macro.
33460         (get_arch): Handle gfx90c.
33461         (main): Handle EF_AMDGPU_MACH_AMDGCN_GFX90c
33462         * config/gcn/t-omp-device: Add gfx90c.
33463         * doc/install.texi: Likewise.
33464         * doc/invoke.texi: Likewise.
33466 2024-04-25  David Faust  <david.faust@oracle.com>
33468         * config/bpf/bpf.h (PREFERRED_DEBUGGING_TYPE): Set to BTF_DEBUG.
33470 2024-04-25  David Faust  <david.faust@oracle.com>
33472         * config/bpf/bpf.cc (bpf_option_override): Improve handling of CO-RE
33473         options to avoid issues with -gtoggle.
33475 2024-04-25  Jakub Jelinek  <jakub@redhat.com>
33477         PR fortran/114825
33478         * tree-nested.cc (get_debug_decl): New function.
33479         (get_nonlocal_debug_decl): Use it.
33480         (get_local_debug_decl): Likewise.
33482 2024-04-25  Jose E. Marchesi  <jose.marchesi@oracle.com>
33484         * config/bpf/bpf.opt: Use ASM_PSEUDOC for the default value of
33485         -masm.
33486         * config/bpf/bpf.h (ASM_SPEC): Adapt accordingly.
33487         * doc/invoke.texi (eBPF Options): Update.
33489 2024-04-25  Richard Ball  <richard.ball@arm.com>
33491         PR target/114837
33492         * config/arm/arm.cc (cmse_nonsecure_call_inline_register_clear):
33493         Add zero/sign extend.
33494         (arm_expand_prologue): Add zero/sign extend.
33496 2024-04-25  Richard Biener  <rguenther@suse.de>
33498         PR tree-optimization/114792
33499         * tree-ssa-loop-ch.cc (ch_order_loops): New function.
33500         (ch_base::copy_headers): Sort loops to unloop inner-to-outer.
33502 2024-04-25  Eric Botcazou  <ebotcazou@adacore.com>
33504         PR target/114416
33505         * config/sparc/sparc.h (SUN_V9_ABI_COMPATIBILITY): New macro.
33506         * config/sparc/sol2.h (SUN_V9_ABI_COMPATIBILITY): Redefine it.
33507         * config/sparc/sparc.cc (fp_type_for_abi): New predicate.
33508         (traverse_record_type): Use it to spot floating-point types.
33509         (compute_fp_layout): Also deal with array types.
33511 2024-04-25  Pan Li  <pan2.li@intel.com>
33513         * config/riscv/vector-crypto.md: Add early clobber to the
33514         dest operand of vwsll.
33516 2024-04-25  Haochen Gui  <guihaoc@gcc.gnu.org>
33518         * config/rs6000/altivec.md (*bcdinvalid_<mode>): Replace bcdadd
33519         with bcdsub.
33520         (bcdinvalid_<mode>): Likewise.
33522 2024-04-24  Jakub Jelinek  <jakub@redhat.com>
33524         PR other/114738
33525         * opts.cc (get_option_url): Revert 2024-04-17 changes.
33526         * gcc-urlifier.cc: Don't include diagnostic-core.h.
33527         (gcc_urlifier::make_doc_url): Revert 2024-04-17 changes.
33528         * configure.ac (documentation-root-url): On release branches
33529         append gcc-MAJOR.MINOR.0/ to the default DOCUMENTATION_ROOT_URL.
33530         * doc/install.texi (--with-documentation-root-url=): Document
33531         the change of the default.
33532         * configure: Regenerate.
33534 2024-04-24  Pan Li  <pan2.li@intel.com>
33536         Revert:
33537         2023-11-29  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33538                     kito-cheng  <kito.cheng@sifive.com>
33539                     kito-cheng  <kito.cheng@gmail.com>
33541         PR target/112431
33542         * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): New register filters.
33543         * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Ditto.
33544         (no,yes): Ditto.
33545         * config/riscv/vector.md: Support highpart register overlap for vwcvt.
33547 2024-04-24  Jose E. Marchesi  <jose.marchesi@oracle.com>
33549         * config.gcc: Add bpf-c.o as a target object for C and C++.
33550         * config/bpf/bpf.cc (bpf_target_macros): Move to bpf-c.cc.
33551         * config/bpf/bpf-c.cc: New file.
33552         (bpf_target_macros): Move from bpf.cc and define BPF CPU
33553         feature macros.
33554         * config/bpf/t-bpf: Add rules to build bpf-c.o.
33556 2024-04-24  Richard Biener  <rguenther@suse.de>
33558         PR tree-optimization/114787
33559         * tree-cfg.cc (remove_edge_and_dominated_blocks): When
33560         removing a loop backedge clear niter info and when removing
33561         the last backedge of a loop mark that loop for removal.
33563 2024-04-24  Richard Biener  <rguenther@suse.de>
33565         PR tree-optimization/114832
33566         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
33567         Fix dominance check.
33569 2024-04-24  Haochen Jiang  <haochen.jiang@intel.com>
33571         * config/i386/i386-options.cc (ix86_valid_target_attribute_tree):
33572         Check whether AVX512F is explicitly enabled.
33574 2024-04-24  Pan Li  <pan2.li@intel.com>
33576         Revert:
33577         2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33579         * config/riscv/vector.md: Support highpart overlap for vext.vf2
33581 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
33583         PR target/114810
33584         * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Split the =&r,r,ro
33585         alternative into =&r,r,r enabled only for x64 and =&r,r,o.
33587 2024-04-23  Jan Hubicka  <jh@suse.cz>
33589         * doc/invoke.texi (-ftree-loop-distribute-patterns): Remove duplicated
33590         sentence about optimization flags implying this.
33592 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
33594         * config/darwin.opt (init): Spelling fix: initialiser -> initializer.
33596 2024-04-23  Jakub Jelinek  <jakub@redhat.com>
33598         * config/epiphany/epiphany.opt (may-round-for-trunc): Spelling fix:
33599         floatig -> floating.
33600         * config/riscv/riscv.opt (mcsr-check): Spelling fix: CRS -> CSR.
33601         * params.opt (-param=ipa-cp-profile-count-base=): Spelling fix:
33602         frequncy -> frequency.
33604 2024-04-23  Richard Biener  <rguenther@suse.de>
33606         PR tree-optimization/114799
33607         * tree-vect-slp.cc (vect_get_and_check_slp_defs): Properly
33608         update ->any_pattern when swapping operands.
33610 2024-04-23  Andreas Krebbel  <krebbel@linux.ibm.com>
33612         PR target/114676
33613         * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Use a
33614         MEM_REF with an addend of type ptr_type_node.
33616 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
33618         * config.gcc: Add loongarch-evolution.o.
33619         * config/loongarch/genopts/genstr.sh: Enable generation of
33620         loongarch-evolution.[cc,h].
33621         * config/loongarch/t-loongarch: Likewise.
33622         * config/loongarch/genopts/gen-evolution.awk: New file.
33623         * config/loongarch/genopts/isa-evolution.in: Mark ISA version
33624         of introduction for each ISA evolution feature.
33625         * config/loongarch/loongarch-c.cc (loongarch_cpu_cpp_builtins):
33626         Define builtin macros for enabled ISA evolutions and the ISA
33627         version.
33628         * config/loongarch/loongarch-cpu.cc: Use loongarch-evolution.h.
33629         * config/loongarch/loongarch.h: Likewise.
33630         * config/loongarch/loongarch-cpucfg-map.h: Delete.
33631         * config/loongarch/loongarch-evolution.cc: New file.
33632         * config/loongarch/loongarch-evolution.h: New file.
33633         * config/loongarch/loongarch-opts.h (ISA_HAS_FRECIPE): Define.
33634         (ISA_HAS_DIV32): Likewise.
33635         (ISA_HAS_LAM_BH): Likewise.
33636         (ISA_HAS_LAMCAS): Likewise.
33637         (ISA_HAS_LD_SEQ_SA): Likewise.
33639 2024-04-23  Yang Yujie  <yangyujie@loongson.cn>
33641         * config.gcc: Make la64v1.0 the default ISA preset of the lp64d ABI.
33642         * config/loongarch/genopts/loongarch-strings: Define la64v1.0, la64v1.1.
33643         * config/loongarch/genopts/loongarch.opt.in: Likewise.
33644         * config/loongarch/loongarch-c.cc (LARCH_CPP_SET_PROCESSOR): Likewise.
33645         (loongarch_cpu_cpp_builtins): Likewise.
33646         * config/loongarch/loongarch-cpu.cc (get_native_prid): Likewise.
33647         (fill_native_cpu_config): Likewise.
33648         * config/loongarch/loongarch-def.cc (array_tune): Likewise.
33649         * config/loongarch/loongarch-def.h: Likewise.
33650         * config/loongarch/loongarch-driver.cc (driver_set_m_parm): Likewise.
33651         (driver_get_normalized_m_opts): Likewise.
33652         * config/loongarch/loongarch-opts.cc (default_tune_for_arch): Likewise.
33653         (TUNE_FOR_ARCH): Likewise.
33654         (arch_str): Likewise.
33655         (loongarch_target_option_override): Likewise.
33656         * config/loongarch/loongarch-opts.h (TARGET_uARCH_LA464): Likewise.
33657         (TARGET_uARCH_LA664): Likewise.
33658         * config/loongarch/loongarch-str.h (STR_CPU_ABI_DEFAULT): Likewise.
33659         (STR_ARCH_ABI_DEFAULT): Likewise.
33660         (STR_TUNE_GENERIC): Likewise.
33661         (STR_ARCH_LA64V1_0): Likewise.
33662         (STR_ARCH_LA64V1_1): Likewise.
33663         * config/loongarch/loongarch.cc (loongarch_cpu_sched_reassociation_width): Likewise.
33664         (loongarch_asm_code_end): Likewise.
33665         * config/loongarch/loongarch.opt: Likewise.
33666         * doc/invoke.texi: Likewise.
33668 2024-04-22  Pan Li  <pan2.li@intel.com>
33670         * config/riscv/vector-crypto.md:
33672 2024-04-22  Pan Li  <pan2.li@intel.com>
33674         Revert:
33675         2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33677         * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Fix constraint.
33678         * config/riscv/riscv.md (no,W21,W42,W84,W41,W81,W82): Rename vconstraint into group_overlap.
33679         (no,yes): Ditto.
33680         (none,W21,W42,W84,W43,W86,W87): Ditto.
33681         * config/riscv/vector.md: Ditto.
33683 2024-04-22  Pan Li  <pan2.li@intel.com>
33685         Revert:
33686         2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33688         * config/riscv/riscv.md: Rostify the constraints.
33690 2024-04-22  Haochen Jiang  <haochen.jiang@intel.com>
33692         * common/config/i386/i386-common.cc (processor_alias_table):
33693         Let Sierra Forest map to CPU_TYPE enum.
33695 2024-04-22  Andreas Krebbel  <krebbel@linux.ibm.com>
33697         * config/s390/s390.cc (s390_option_override_internal): Check zarch
33698         flag before enabling -mvx.
33700 2024-04-22  Pan Li  <pan2.li@intel.com>
33702         Revert:
33703         2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33705         PR target/112431
33706         * config/riscv/vector.md: Add widenning overlap.
33708 2024-04-22  Pan Li  <pan2.li@intel.com>
33710         Revert:
33711         2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33713         PR target/112431
33714         * config/riscv/vector.md: Support highpart overlap for indexed load.
33716 2024-04-22  Pan Li  <pan2.li@intel.com>
33718         Revert:
33719         2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33721         PR target/112431
33722         * config/riscv/vector.md: Add highest-number overlap support.
33724 2024-04-22  Pan Li  <pan2.li@intel.com>
33726         Revert:
33727         2023-11-30  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33729         PR target/112431
33730         * config/riscv/vector.md: Add widening overlap of vf2/vf4.
33732 2024-04-21  Pan Li  <pan2.li@intel.com>
33734         Revert:
33735         2023-12-01  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33737         PR target/112431
33738         * config/riscv/vector.md: Support highpart overlap for vx/vf.
33740 2024-04-20  Pan Li  <pan2.li@intel.com>
33742         Revert:
33743         2023-12-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33745         PR target/112431
33746         * config/riscv/vector.md: Fix incorrect overlap in v0.
33748 2024-04-20  Pan Li  <pan2.li@intel.com>
33750         Revert:
33751         2023-12-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33753         PR target/112431
33754         * config/riscv/vector.md: Support highest overlap for wv instructions.
33756 2024-04-20  Pan Li  <pan2.li@intel.com>
33758         Revert:
33759         2023-12-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
33761         PR target/112432
33762         * config/riscv/riscv.md (none,W21,W42,W84,W43,W86,W87): Add W0.
33763         (none,W21,W42,W84,W43,W86,W87,W0): Ditto.
33764         * config/riscv/vector.md: Ditto.
33766 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
33768         PR target/114783
33769         * config/i386/sse.md (*avx2_eq<mode>3): Change last operand's
33770         constraint from "jm" to "xjm".
33772 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
33774         PR middle-end/114753
33775         * internal-fn.cc (expand_arith_overflow): Add one missing restore
33776         of flag_trapv before return.
33778 2024-04-19  Tamar Christina  <tamar.christina@arm.com>
33780         PR tree-optimization/114769
33781         * tree-vect-patterns.cc:
33782         (vect_recog_absolute_difference): Have only one success condition.
33783         (vect_recog_abd_pattern): Handle further checks if
33784         vect_recog_absolute_difference fails.
33786 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
33788         * config/bpf/core-builtins.cc (get_index_for_enum_value): Create
33789         function.
33790         (pack_enum_value): Check for enumerator and error out.
33791         (process_enum_value): Correct string allocation.
33793 2024-04-19  Cupertino Miranda  <cupertino.miranda@oracle.com>
33795         * config/bpf/bpf-protos.h (bpf_add_core_reloc): Renamed function
33796         to bpf_output_move.
33797         * config/bpf/bpf.cc (bpf_legitimate_address_p): Allow
33798         UNSPEC_CORE_RELOC to match an address.
33799         (bpf_insn_cost): Make UNSPEC_CORE_RELOC immediate moves
33800         expensive to prioritize loads and stores.
33801         (TARGET_INSN_COST): Add hook.
33802         (bpf_output_move): Wrapper to call bpf_output_core_reloc.
33803         (bpf_print_operand): Add support to print immediate operands
33804         specified with the UNSPEC_CORE_RELOC.
33805         (bpf_print_operand_address): Likewise, but to support
33806         UNSPEC_CORE_RELOC in addresses.
33807         (bpf_init_builtins): Flag BPF_BUILTIN_CORE_RELOC as NOTHROW.
33808         * config/bpf/bpf.md: Wrap patterns for MOV, LD and ST
33809         instruction with bpf_output_move call.
33810         (mov_reloc_core<MM:mode>): Remove now spurious define_insn.
33811         * config/bpf/constraints.md: Added "c" and "C" constraints to
33812         match immediates represented with UNSPEC_CORE_RELOC.
33813         * config/bpf/core-builtins.cc (bpf_add_core_reloc): Remove
33814         (bpf_output_core_reloc): Add function to create the CO-RE
33815         relocations based on new matching rules.
33816         * config/bpf/core-builtins.h (bpf_output_core_reloc): Add
33817         prototype.
33818         * config/bpf/predicates.md (core_imm_operand) Add predicate.
33819         (mov_src_operand): Add match for core_imm_operand.
33821 2024-04-19  Jakub Jelinek  <jakub@redhat.com>
33823         PR rtl-optimization/114768
33824         * rtlanal.cc (set_noop_p): Don't return true for MEM <- MEM
33825         sets if src has side-effects or for stores into ZERO_EXTRACT
33826         if ZERO_EXTRACT operand has side-effects.
33828 2024-04-19  Alexandre Oliva  <oliva@adacore.com>
33830         * config/t-vxworks (vxw-glimits.h): Don't mangle c23-required
33831         __STDC_VERSION_LIMITS_H__ define.
33833 2024-04-18  Sandra Loosemore  <sloosemore@baylibre.com>
33835         * config.gcc: Add nios2*-*-* to the list of obsoleted targets.
33837 2024-04-18  Alexandre Oliva  <oliva@adacore.com>
33839         * doc/sourcebuild.texi (strndup): Add effective target.
33841 2024-04-18  Tamar Christina  <tamar.christina@arm.com>
33843         PR target/114741
33844         * config/aarch64/aarch64.md (<optab><mode>3): Remove ^ from alt 2.
33845         (copysign<GPF:mode>3): Use SIMD version of IOR directly.
33847 2024-04-18  Jakub Jelinek  <jakub@redhat.com>
33849         PR middle-end/114753
33850         * internal-fn.cc (expand_mul_overflow): Save flag_trapv and
33851         temporarily clear it for the duration of the function, then
33852         restore previous value.
33853         (expand_vector_ubsan_overflow): Likewise.
33854         (expand_arith_overflow): Likewise.
33856 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
33858         PR other/114738
33859         * opts.cc (get_option_url): On release branches append
33860         gcc-MAJOR.MINOR.0/ after DOCUMENTATION_ROOT_URL.
33861         * gcc-urlifier.cc (gcc_urlifier::make_doc_url): Likewise.
33863 2024-04-17  Richard Biener  <rguenther@suse.de>
33865         PR tree-optimization/114749
33866         * tree-vect-loop.cc (vect_analyze_loop_2): Reset
33867         LOOP_VINFO_USING_PARTIAL_VECTORS_P when re-trying without SLP.
33869 2024-04-17  Georg-Johann Lay  <avr@gjlay.de>
33871         PR target/114752
33872         * config/avr/avr.cc (avr_print_operand) [CONST_DOUBLE_P]: Handle DFmode.
33874 2024-04-17  Jakub Jelinek  <jakub@redhat.com>
33876         PR sanitizer/114743
33877         * asan.cc (maybe_instrument_call): Don't instrument calls to
33878         .ABNORMAL_DISPATCHER.
33880 2024-04-16  Andrew Pinski  <quic_apinski@quicinc.com>
33882         PR c/92880
33883         * doc/extend.texi (Using Vector Instructions): Add that
33884         the base_types could be a typedef of them.
33886 2024-04-16  Richard Biener  <rguenther@suse.de>
33888         PR tree-optimization/114736
33889         * tree-vect-slp.cc (vect_optimize_slp_pass::is_cfg_latch_edge):
33890         Do not consider VEC_PERM_EXPRs as PHI use.
33892 2024-04-16  Richard Biener  <rguenther@suse.de>
33894         PR tree-optimization/114733
33895         * tree-vect-loop.cc (vectorizable_nonlinear_induction): Reject
33896         neg induction vectorization of single element vectors.
33898 2024-04-16  Jakub Jelinek  <jakub@redhat.com>
33900         * tree.cc (array_type_nelts): Ensure 2 spaces after . in comment
33901         instead of just one.
33902         (build_variant_type_copy): Likewise.
33903         (tree_check_failed): Likewise.
33904         (build_atomic_base): Likewise.
33905         * ipa-free-lang-data.cc (fld_incomplete_type_of): Use an indefinite
33906         article rather than a.
33908 2024-04-16  Fei Gao  <gaofei@eswincomputing.com>
33910         * config/riscv/riscv.cc (riscv_expand_conditional_move):
33911         replace or with add when expanding zicond if possible.
33913 2024-04-16  Alexandre Oliva  <oliva@adacore.com>
33915         PR middle-end/112938
33916         * ipa-strub.cc (pass_ipa_strub::execute): Drop volatility from
33917         indirected parm.
33918         (maybe_make_indirect): Restore volatility in dereferences.
33920 2024-04-16  Lulu Cheng  <chenglulu@loongson.cn>
33922         * config/loongarch/loongarch.opt.urls: Regenerate.
33923         * config/mn10300/mn10300.opt.urls: Likewise.
33924         * config/msp430/msp430.opt.urls: Likewise.
33925         * config/nds32/nds32-elf.opt.urls: Likewise.
33926         * config/nds32/nds32-linux.opt.urls: Likewise.
33927         * config/nds32/nds32.opt.urls: Likewise.
33928         * config/pru/pru.opt.urls: Likewise.
33929         * config/riscv/riscv.opt.urls: Likewise.
33930         * config/rx/rx.opt.urls: Likewise.
33931         * config/sh/sh.opt.urls: Likewise.
33932         * config/sparc/sparc.opt.urls: Likewise.
33933         * doc/invoke.texi: Add indexes for some compilation options.
33935 2024-04-15  Georg-Johann Lay  <avr@gjlay.de>
33937         * config/avr/avr-mcus.def: Add: avr16du14, avr16du20, avr16du28,
33938         avr16du32, avr32du14, avr32du20, avr32du28,  avr32du32.
33939         * doc/avr-mmcu.texi: Rebuild.
33941 2024-04-15  Robin Dapp  <rdapp@ventanamicro.com>
33943         PR target/114668
33944         * config/riscv/autovec.md: Add VLS.
33946 2024-04-15  Richard Biener  <rguenther@suse.de>
33948         PR gcov-profile/114715
33949         * gimplify.cc (gimplify_switch_expr): Set the location of the
33950         GIMPLE switch.
33952 2024-04-15  H.J. Lu  <hjl.tools@gmail.com>
33954         PR target/114696
33955         * config/i386/i386.md (isa): Add apx_ndd_64.
33956         (enabled): Likewise.
33957         (*add<dwi>3_doubleword): Change rjO to r,ro,jO with 8-bit
33958         signed integer constant and enable jO only for apx_ndd_64.
33959         (*add<dwi>3_doubleword_cc_overflow_1): Likewise.
33960         (*and<dwi>3_doubleword): Likewise.
33961         (*<code><dwi>3_doubleword): Likewise.
33963 2024-04-15  Tamar Christina  <tamar.christina@arm.com>
33965         PR tree-optimization/114403
33966         * tree-vect-loop.cc (vect_transform_loop): Adjust upper bounds for when
33967         peeling for gaps and early break.
33969 2024-04-15  Jakub Jelinek  <jakub@redhat.com>
33971         PR c++/114634
33972         * attribs.cc (diag_attr_exclusions): Set attrs[1] to NULL_TREE for
33973         decls with NULL TREE_TYPE.
33975 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
33977         * config/aarch64/aarch64-option-extensions.def: Add RCPC to
33978         RCPC3 dependencies.
33979         * config/aarch64/aarch64.h (AARCH64_ISA_RCPC8_4): Add test for
33980         RCPC3 bit
33982 2024-04-12  Andrew Carlotti  <andrew.carlotti@arm.com>
33984         * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
33985         dependencies.
33987 2024-04-12  Will Schmidt  <will_schmidt@linux.ibm.com>
33988             Peter Bergner  <bergner@linux.ibm.com>
33990         PR target/101865
33991         * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
33992         TARGET_POWER8.
33993         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Use
33994         OPTION_MASK_POWER8.
33995         * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Add OPTION_MASK_POWER8.
33996         (ISA_2_7_MASKS_SERVER): Likewise.
33997         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Update
33998         comment.  Use OPTION_MASK_POWER8 and TARGET_POWER8.
33999         * config/rs6000/rs6000.h (TARGET_SYNC_HI_QI): Use TARGET_POWER8.
34000         * config/rs6000/rs6000.md (define_attr "isa"): Add p8.
34001         (define_attr "enabled"): Handle it.
34002         (define_insn "prefetch"): Use TARGET_POWER8.
34003         * config/rs6000/rs6000.opt (mpower8-internal): New.
34005 2024-04-12  Jason Merrill  <jason@redhat.com>
34006             Patrick Palka  <ppalka@redhat.com>
34008         PR c++/113141
34009         * doc/invoke.texi: Document -Wcast-user-defined.
34011 2024-04-12  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
34013         * config/riscv/riscv.opt.urls: Regenerated.
34015 2024-04-12  Andrew Pinski  <quic_apinski@quicinc.com>
34017         PR tree-optimization/114666
34018         * match.pd (`!a?b:c`): Reject signed types for the condition.
34019         (`a?~t:t`): Likewise.
34021 2024-04-12  Richard Sandiford  <richard.sandiford@arm.com>
34023         * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Require
34024         all tiles to have the same suffix.
34026 2024-04-12  Pan Li  <pan2.li@intel.com>
34028         * config/riscv/riscv.cc (riscv_vector_float_type_p): Take int
34029         as the return value instead of unsigned.
34030         (riscv_vector_element_bitsize): Ditto.
34031         (riscv_vector_required_min_vlen): Ditto.
34032         (riscv_validate_vector_type): Take int type for local variable(s).
34034 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
34036         * tree-cfg.cc (gimple_verify_flow_info): Make the misplaced
34037         returns_twice diagnostics translatable.
34039 2024-04-12  Jakub Jelinek  <jakub@redhat.com>
34041         PR sanitizer/114687
34042         * gimple-iterator.cc (gsi_safe_insert_before): Only use
34043         edge_before_returns_twice_call if bb_has_abnormal_pred.
34044         (gsi_safe_insert_seq_before): Likewise.
34045         * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Only
34046         push to m_returns_twice_calls if bb_has_abnormal_pred.
34048 2024-04-12  Pan Li  <pan2.li@intel.com>
34050         PR target/114639
34051         * config/riscv/riscv.cc (riscv_function_value_regno_p): Add
34052         TARGET_VECTOR predicate for V_RETURN regno.
34054 2024-04-11  David Faust  <david.faust@oracle.com>
34056         * btfout.cc (btf_asm_type_ref): Convert IDs to BTF internally and
34057         fix potentially looking up wrong type for asm debug comment info.
34058         Split into...
34059         (btf_asm_datasec_type_ref): ... This. New.
34060         (btf_asm_datasec_entry): Call it here, instead of btf_asm_type_ref.
34061         (btf_asm_type, btf_asm_array, btf_asm_varent, btf_asm_sou_member)
34062         (btf_asm_func_arg, btf_asm_func_type): Adapt btf_asm_type_ref call.
34064 2024-04-11  David Faust  <david.faust@oracle.com>
34066         * btfout.cc (btf_asm_sou_member): Always emit non-representable
34067         bitfield members as having 'void' type.  Refactor slightly.
34069 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
34071         * config/aarch64/aarch64-option-extensions.def:
34072         Remove "memtag", "memtag2", "ssbs", "ssbs2", "ls64", "ls64_v"
34073         and "ls64_accdata" FMV features.
34075 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
34077         * config/aarch64/aarch64-option-extensions.def:
34078         Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt",
34079         "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16",
34080         "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and
34081         "wfxt" entries.
34083 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
34085         * config/aarch64/aarch64-option-extensions.def:
34086         Fix "rmd"->"rdm", and add FMV to "rdma".
34087         * config/aarch64/aarch64.cc (FEAT_RDMA): Define as FEAT_RDM.
34089 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
34091         * config/aarch64/aarch64.cc (compare_feature_masks):
34092         Use ARRAY_SIZE and >=0 for iteration bounds.
34093         (aarch64_mangle_decl_assembler_name): Use ARRAY_SIZE.
34095 2024-04-11  Andrew Carlotti  <andrew.carlotti@arm.com>
34097         * config/aarch64/aarch64-option-extensions.def: Reorder FMV entries.
34099 2024-04-11  Gaius Mulley  <gaiusmod2@gmail.com>
34101         * doc/standards.texi (Language Standards Supported by GCC):
34102         Add Modula-2 language section.
34104 2024-04-11  Jakub Jelinek  <jakub@redhat.com>
34106         PR middle-end/110027
34107         * asan.cc (asan_emit_stack_protection): Assert offsets[0] is
34108         zero if there is no stack protect guard, otherwise
34109         -ASAN_RED_ZONE_SIZE.  If alignb > ASAN_RED_ZONE_SIZE and there is
34110         stack pointer guard, take the ASAN_RED_ZONE_SIZE bytes allocated at
34111         the top of the stack into account when computing base_align_bias.
34112         Recompute use_after_return_class from asan_frame_size + base_align_bias
34113         and set to -1 if that would overflow to 11.
34115 2024-04-11  Richard Biener  <rguenther@suse.de>
34117         PR tree-optimization/109596
34118         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Propagate
34119         debug stmts to nonexit->dest rather than exit->dest.
34121 2024-04-11  Richard Biener  <rguenther@suse.de>
34123         PR middle-end/114681
34124         * tree-inline.cc (copy_bb): Key on the remapped stmt
34125         to identify gconds to have condition coverage data remapped.
34127 2024-04-11  Pan Li  <pan2.li@intel.com>
34129         PR target/114639
34130         * config/riscv/riscv.cc (riscv_function_value_regno_p): New func
34131         impl for hook TARGET_FUNCTION_VALUE_REGNO_P.
34132         (riscv_get_raw_result_mode): New func imple for hook
34133         TARGET_GET_RAW_RESULT_MODE.
34134         (TARGET_FUNCTION_VALUE_REGNO_P): Impl the hook.
34135         (TARGET_GET_RAW_RESULT_MODE): Ditto.
34136         * config/riscv/riscv.h (V_RETURN): New macro for vector return.
34137         (GP_RETURN_FIRST): New macro for the first GPR in return.
34138         (GP_RETURN_LAST): New macro for the last GPR in return.
34139         (FP_RETURN_FIRST): Diito but for FPR.
34140         (FP_RETURN_LAST): Ditto.
34141         (FUNCTION_VALUE_REGNO_P): Remove as deprecated and replace by
34142         TARGET_FUNCTION_VALUE_REGNO_P.
34144 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
34146         * btfout.cc (btf_asm_type): Do not skip emitting members of
34147         unknown type.
34149 2024-04-11  Indu Bhagat  <indu.bhagat@oracle.com>
34151         PR debug/112878
34152         * dwarf2ctf.cc (gen_ctf_sou_type): Check for conditions before
34153         call to ctf_add_slice.  Use CTF_K_UNKNOWN type if fail.
34155 2024-04-10  Marek Polacek  <polacek@redhat.com>
34157         PR target/114606
34158         * config/i386/i386-options.cc (ix86_option_override_internal): Use
34159         opts_set rather than checking == CF_NONE.
34161 2024-04-10  David Malcolm  <dmalcolm@redhat.com>
34163         * doc/analyzer.texi: Various tweaks.
34165 2024-04-10  Richard Biener  <rguenther@suse.de>
34167         PR tree-optimization/114672
34168         * tree-ssa-math-opts.cc (convert_plusminus_to_widen): Only
34169         allow mode-precision results.
34171 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34173         * config/aarch64/aarch64.cc (TARGET_C_BITINT_TYPE_INFO): Declare MACRO.
34174         (aarch64_bitint_type_info): New function.
34175         (aarch64_return_in_memory_1): Return large _BitInt's in memory.
34176         (aarch64_function_arg_alignment): Adapt to correctly return the ABI
34177         mandated alignment of _BitInt(N) where N > 128 as the alignment of
34178         TImode.
34179         (aarch64_composite_type_p): Return true for _BitInt(N), where N > 128.
34181 2024-04-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>
34183         * config/aarch64/aarch64.cc (bitint_or_aggr_of_bitint_p): New function.
34184         (aarch64_layout_arg): Don't emit diagnostics for types involving
34185         _BitInt(N).
34187 2024-04-10  Jakub Jelinek  <jakub@redhat.com>
34189         PR c++/114462
34190         * tree-core.h (enum annot_expr_kind): Add
34191         annot_expr_maybe_infinite_kind enumerator.
34192         * gimplify.cc (gimple_boolify): Handle annot_expr_maybe_infinite_kind.
34193         * tree-cfg.cc (replace_loop_annotate_in_block): Likewise.
34194         (replace_loop_annotate): Likewise.  Move loop->finite_p initialization
34195         before the replace_loop_annotate_in_block calls.
34196         * tree-pretty-print.cc (dump_generic_node): Handle
34197         annot_expr_maybe_infinite_kind.
34199 2024-04-10  Richard Biener  <rguenther@suse.de>
34201         Revert:
34202         2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
34204         PR rtl-optimization/101523
34205         * combine.cc (try_combine): Don't do a 2-insn combination if
34206         it does not in fact change I2.
34208 2024-04-10  Peter Bergner  <bergner@linux.ibm.com>
34210         PR target/101865
34211         * config/rs6000/rs6000.h (TARGET_DIRECT_MOVE): Define.
34212         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Replace
34213         OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete redundant
34214         OPTION_MASK_DIRECT_MOVE usage.  Delete TARGET_DIRECT_MOVE dead code.
34215         (rs6000_opt_masks): Neuter the "direct-move" option.
34216         * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Replace
34217         OPTION_MASK_DIRECT_MOVE with OPTION_MASK_P8_VECTOR.  Delete useless
34218         comment.
34219         * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Delete
34220         OPTION_MASK_DIRECT_MOVE.
34221         (OTHER_VSX_VECTOR_MASKS): Likewise.
34222         (POWERPC_MASKS): Likewise.
34223         * config/rs6000/rs6000.opt (mdirect-move): Remove Mask and Var.
34225 2024-04-10  Hongyu Wang  <hongyu.wang@intel.com>
34227         * config/i386/sse.md (sha1msg1): Use "ja" instead of "Bm" for
34228         memory constraint.
34229         (sha1msg2): Likewise.
34230         (sha1nexte): Likewise.
34231         (sha1rnds4): Likewise.
34232         (sha256msg1): Likewise.
34233         (sha256msg2): Likewise.
34234         (sha256rnds2): Likewise.
34235         (aes<aesklvariant>u8): Use "jm" instead of "m" for memory
34236         constraint.
34237         (*aes<aeswideklvariant>u8): Likewise.
34238         (*encodekey128u32): Use "jr" instead of "r" for register
34239         constraints.
34240         (*encodekey256u32): Likewise.
34242 2024-04-09  Juergen Christ  <jchrist@linux.ibm.com>
34244         * config/s390/s390.cc (expand_perm_as_replicate): Implement.
34245         (vectorize_vec_perm_const_1): Call new function.
34246         * config/s390/vx-builtins.md (vec_splat<mode>): Change to...
34247         (@vec_splat<mode>): ...this.
34249 2024-04-09  David Faust  <david.faust@oracle.com>
34251         PR debug/114608
34252         * btfout.cc (btf_asm_datasec_entry): Only emit a symbol reference when
34253         generating BTF for BPF CO-RE target.
34255 2024-04-09  Richard Ball  <richard.ball@arm.com>
34257         * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
34258         Add functions_nulls parameter to pragma_handlers.
34259         * config/aarch64/aarch64-protos.h: Likewise.
34260         * config/aarch64/aarch64-sve-builtins.h
34261         (enum handle_pragma_index): Add enum to count
34262         number of pragmas to be handled.
34263         * config/aarch64/aarch64-sve-builtins.cc
34264         (GTY): Add global variable for initial indexes
34265         and change overload_names to an array.
34266         (function_builder::function_builder):
34267         Add pragma handler information.
34268         (function_builder::add_function):
34269         Add code for overwriting previous
34270         registered_functions entries.
34271         (add_unique_function):
34272         Use an array to register overload_names
34273         for both pragma handler modes.
34274         (add_overloaded_function): Likewise.
34275         (init_builtins):
34276         Add functions_nulls parameter to pragma_handlers.
34277         (handle_arm_sve_h):
34278         Initialize pragma handler information.
34279         (handle_arm_neon_sve_bridge_h): Likewise.
34280         (handle_arm_sme_h): Likewise.
34282 2024-04-09  Richard Biener  <rguenther@suse.de>
34284         PR lto/114655
34285         * lto-wrapper.cc (merge_flto_options): Add force argument.
34286         (merge_and_complain): Do not force here.
34287         (run_gcc): But here to make the link-time -flto option override
34288         any compile-time one.
34290 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34292         * config/rs6000/rtems.h (OS_MISSING_POWERPC64): Define.
34294 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
34296         PR gcov-profile/114601
34297         * tree-profile.cc (condition_uid): Guard fn->cond_uids access.
34299 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
34301         PR target/114576
34302         * config/i386/i386.md (isa): Remove aes, add vaes_avx512vl.
34303         (enabled): Remove aes isa check, add vaes_avx512vl.
34304         * config/i386/sse.md (aesenc, aesenclast, aesdec, aesdeclast): Use
34305         jm instead of m for second alternative and emit {evex} prefix
34306         for it if !TARGET_AES.  Use noavx,avx,vaes_avx512vl isa attribute.
34307         (vaesdec_<mode>, vaesdeclast_<mode>, vaesenc_<mode>,
34308         vaesenclast_<mode>): Add second alternative with x instead of v
34309         and jm instead of m.
34311 2024-04-09  Gaius Mulley  <gaiusmod2@gmail.com>
34313         * doc/gm2.texi (Compiler options): Remove -fdebug-trace-quad.
34314         Remove -fdebug-trace-api.
34315         Add -fm2-debug-trace=.
34317 2024-04-09  Yang Yujie  <yangyujie@loongson.cn>
34319         PR target/113233
34320         * config/loongarch/loongarch.cc (loongarch_reg_init):
34321         Reinitialize the loongarch_regno_mode_ok cache.
34322         (loongarch_option_override): Same.
34323         (loongarch_save_restore_target_globals): Restore target globals.
34324         (loongarch_set_current_function): Restore the target contexts
34325         for functions.
34326         (TARGET_SET_CURRENT_FUNCTION): Define.
34327         * config/loongarch/loongarch.h (SWITCHABLE_TARGET): Enable
34328         switchable target context.
34329         * config/loongarch/loongarch-builtins.cc (loongarch_init_builtins):
34330         Initialize all builtin functions at startup.
34331         (loongarch_expand_builtin): Turn assertion of builtin availability
34332         into a test.
34334 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
34336         PR middle-end/114627
34337         * tree-profile.cc (instrument_decisions): Generate constant
34338         at the start of loop.
34340 2024-04-09  Jørgen Kvalsvik  <j@lambda.is>
34342         PR middle-end/114599
34343         * tree-inline.cc (copy_bb): Copy cond_uids into callee.
34344         (prepend_lexical_block): Remove outdated comment.
34345         (add_local_variables): Remove bad cond_uids copy.
34347 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
34349         * expr.cc (convert_mode_scalar): Fix duplicated words in comment;
34350         into into -> it into.
34351         * function.h (function::cond_uids): Fix duplicated words in comment;
34352         same same -> same.
34353         * config/riscv/riscv-vector-costs.cc
34354         (costs::adjust_vect_cost_per_loop): Fix duplicated words in comment;
34355         model model -> model.
34356         * config/riscv/riscv-vector-builtins-shapes.cc (build_base): Fix
34357         duplicated words in comment; for for -> for.
34358         * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Fix
34359         duplicated words in comment; more more -> more.
34360         * config/aarch64/driver-aarch64.cc (host_detect_local_cpu): Fix
34361         duplicated words in comment; be be -> be.
34362         * tree-profile.cc (masking_vectors): Fix duplicated words in comment;
34363         has has -> has, the the -> the.
34364         * value-range.cc (irange::set_range_from_bitmask): Fix duplicated
34365         words in comment; the the -> the.
34366         * gcov.cc (add_condition_counts): Fix duplicated words in comment;
34367         to to -> to.
34368         * vr-values.cc (get_scev_info): Fix duplicated words in comment;
34369         the the -> to the.
34370         * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
34371         by by -> by.
34372         * mode-switching.cc (single_succ_confluence_n): Fix duplicated words
34373         in comment; the the -> the.
34374         * tree-ssa-phiopt.cc (value_replacement): Fix duplicated words in
34375         comment; can can -> we can.
34376         * gimple-range-phi.cc (phi_analyzer::process_phi): Fix duplicated words
34377         in comment; it it -> it is.
34378         * tree-ssa-sccvn.cc (visit_phi): Fix duplicated words in comment;
34379         to to -> to.
34380         * rtl-ssa/accesses.h (use_info::next_debug_insn_use): Fix duplicated
34381         words in comment; if if -> if.
34382         * doc/options.texi (InverseMask): Fix duplicated words; and and -> and.
34383         Change take to takes.
34384         * doc/invoke.texi (fanalyzer-undo-inlining): Fix duplicated words;
34385         be be -> be.
34386         (-minline-memops-threshold): Likewise.
34388 2024-04-09  Jakub Jelinek  <jakub@redhat.com>
34390         PR middle-end/114628
34391         * gimple-lower-bitint.cc (gimple_lower_bitint): Keep debug stmts
34392         before returns_twice calls as is, don't push them into arg_stmts
34393         vector/move to edges.
34395 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
34397         * config.gcc: Recognize aarch64*-*-gnu* targets.
34398         * config/aarch64/aarch64-gnu.h: New file.
34400 2024-04-09  Sergey Bugaev  <bugaevc@gmail.com>
34402         * config/i386/gnu.h: Move GNU/Hurd STARTFILE_SPEC from here...
34403         * config/gnu.h: ...to here.
34405 2024-04-09  Richard Biener  <rguenther@suse.de>
34407         PR middle-end/114604
34408         * gimple-range.cc (enable_ranger): Initialize the global
34409         bitmap obstack.
34410         (disable_ranger): Release it.
34412 2024-04-09  Sebastian Huber  <sebastian.huber@embedded-brains.de>
34414         * config.gcc (aarch64-*-rtems*): Add target makefile fragment
34415         t-aarch64-rtems.
34416         * config/aarch64/t-aarch64-rtems: New file.
34418 2024-04-09  H.J. Lu  <hjl.tools@gmail.com>
34420         PR target/114587
34421         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
34422         __APX_INLINE_ASM_USE_GPR32__ for -mapx-inline-asm-use-gpr32.
34424 2024-04-09  Kewen Lin  <linkw@linux.ibm.com>
34425             Andrew Pinski  <quic_apinski@quicinc.com>
34427         PR target/88309
34428         * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Fix
34429         wrong align passed to function build_aligned_type.
34430         * tree-ssa-loop-prefetch.cc (is_miss_rate_acceptable): Add an
34431         assertion to ensure align_unit should be positive.
34432         * tree.cc (build_qualified_type): Update function comments.
34434 2024-04-08  Uros Bizjak  <ubizjak@gmail.com>
34436         PR rtl-optimization/112560
34437         * combine.cc (try_combine): Replace cc_use_loc with the entire
34438         new RTX only in case cc_use_loc satisfies COMPARISON_P predicate.
34439         Otherwise scan the entire cc_use_loc RTX for CC reg to be updated
34440         with a new mode.
34441         * config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
34442         operand 1.
34444 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
34446         * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
34447         New.
34448         * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode) Use it.
34449         * doc/invoke.texi (Optimize Options): Document it.
34451 2024-04-08  Thomas Schwinge  <tschwinge@baylibre.com>
34453         * doc/sourcebuild.texi (Effective-Target Keywords): Document
34454         'asm_goto_with_outputs'.  Add comment to 'lra'.
34456 2024-04-08  Martin Jambor  <mjambor@suse.cz>
34458         PR ipa/113359
34459         * ipa-icf-gimple.h (func_checker): New members
34460         safe_for_total_scalarization_p, m_total_scalarization_limit_known_p
34461         and m_total_scalarization_limit.
34462         (func_checker::func_checker): Initialize new member variables.
34463         * ipa-icf-gimple.cc: Include tree-sra.h.
34464         (func_checker::func_checker): Initialize new member variables.
34465         (func_checker::safe_for_total_scalarization_p): New function.
34466         (func_checker::compare_operand): Use the new function.
34467         * tree-sra.h (sra_get_max_scalarization_size): Declare.
34468         (sra_total_scalarization_would_copy_same_data_p): Likewise.
34469         * tree-sra.cc (prepare_iteration_over_array_elts): New function.
34470         (class sra_padding_collecting): New.
34471         (sra_padding_collecting::record_padding): Likewise.
34472         (scalarizable_type_p): Rename to totally_scalarizable_type_p.  Add
34473         ability to record padding when requested.
34474         (totally_scalarize_subtree): Split out gathering information necessary
34475         to iterate over array elements to prepare_iteration_over_array_elts.
34476         Fix errornous early exit.
34477         (analyze_all_variable_accesses): Adjust the call to
34478         totally_scalarizable_type_p.  Move determining of total scalariation
34479         size limit...
34480         (sra_get_max_scalarization_size): ...here.
34481         (check_ts_and_push_padding_to_vec): New function.
34482         (sra_total_scalarization_would_copy_same_data_p): Likewise.
34484 2024-04-08  Martin Jambor  <mjambor@suse.cz>
34486         PR ipa/113907
34487         * ipa-prop.h (class ipa_vr): Declare new overload of a member function
34488         equal_p.
34489         (ipa_jump_functions_equivalent_p): Declare.
34490         * ipa-prop.cc (ipa_vr::equal_p): New function.
34491         (ipa_agg_pass_through_jf_equivalent_p): Likewise.
34492         (ipa_agg_jump_functions_equivalent_p): Likewise.
34493         (ipa_jump_functions_equivalent_p): Likewise.
34494         * ipa-cp.h (values_equal_for_ipcp_p): Declare.
34495         * ipa-cp.cc (values_equal_for_ipcp_p): Make function public.
34496         * ipa-icf-gimple.cc: Include alloc-pool.h, symbol-summary.h, sreal.h,
34497         ipa-cp.h and ipa-prop.h.
34498         (func_checker::compare_gimple_call): Comapre jump functions.
34500 2024-04-08  Richard Sandiford  <richard.sandiford@arm.com>
34502         PR target/114607
34503         * config/aarch64/aarch64-sve-builtins-base.cc
34504         (svusdot_impl::expand): Fix botched attempt to swap the operands
34505         for svsudot.
34507 2024-04-08  Tatsuyuki Ishi  <ishitatsuyuki@gmail.com>
34509         * config/riscv/riscv.opt: Add -mtls-dialect to configure TLS flavor.
34510         * config.gcc: Add --with-tls configuration option to change the
34511         default TLS flavor.
34512         * config/riscv/riscv.h: Add TARGET_TLSDESC determined from
34513         -mtls-dialect and with_tls defaults.
34514         * config/riscv/riscv-opts.h: Define enum riscv_tls_type for the
34515         two TLS flavors.
34516         * config/riscv/riscv-protos.h: Define SYMBOL_TLSDESC symbol type.
34517         * config/riscv/riscv.md: Add instruction sequence for TLSDESC.
34518         * config/riscv/riscv.cc (riscv_symbol_insns): Add instruction
34519         sequence length data for TLSDESC.
34520         (riscv_legitimize_tls_address): Add lowering of TLSDESC.
34521         * doc/install.texi: Document --with-tls for RISC-V.
34522         * doc/invoke.texi: Document -mtls-dialect for RISC-V.
34524 2024-04-08  Jakub Jelinek  <jakub@redhat.com>
34526         PR target/114605
34527         * config/s390/s390.cc (s390_const_int_pool_entry_p): Punt
34528         if mem doesn't have MODE_INT mode, or pool constant doesn't
34529         have MODE_INT mode, or if pool constant mode is smaller than
34530         mem mode.  If mem mode is different from pool constant mode,
34531         try to simplify subreg.  If that doesn't work, punt, if it
34532         does, use the simplified constant instead of the constant pool
34533         constant.
34534         * config/s390/s390.md (movdi from const pool peephole): If
34535         either low or high 32-bit part is zero, just emit move insn
34536         instead of move + ior.
34538 2024-04-08  Richard Biener  <rguenther@suse.de>
34540         PR tree-optimization/114624
34541         * tree-scalar-evolution.cc (final_value_replacement_loop):
34542         Get at the PHI arg location before releasing the PHI node.
34544 2024-04-08  Pan Li  <pan2.li@intel.com>
34546         * config/riscv/riscv-vector-builtins-shapes.cc (build_one): Pass
34547         required_ext arg when invoke add function.
34548         (build_th_loadstore): Ditto.
34549         (struct vcreate_def): Ditto.
34550         (struct read_vl_def): Ditto.
34551         (struct vlenb_def): Ditto.
34552         * config/riscv/riscv-vector-builtins.cc (function_builder::add_function):
34553         Introduce new arg required_ext to fill in the register func.
34554         (function_builder::add_unique_function): Ditto.
34555         (function_builder::add_overloaded_function): Ditto.
34556         (expand_builtin): Leverage required_extensions_specified to
34557         check if the required extension is provided.
34558         * config/riscv/riscv-vector-builtins.h (reqired_ext_to_isa_name): New
34559         func impl to convert the required_ext enum to the extension name.
34560         (required_extensions_specified): New func impl to predicate if
34561         the required extension is well feeded.
34563 2024-04-08  Iain Sandoe  <iain@sandoe.co.uk>
34565         * config/darwin.h (LINK_COMMAND_SPEC_A): Update coverage
34566         specs.
34568 2024-04-08  demin.han  <demin.han@starfivetech.com>
34570         * config/riscv/riscv-vector-costs.cc: Use length()
34572 2024-04-08  Pan Li  <pan2.li@intel.com>
34574         * config/riscv/riscv-c.cc (struct pragma_intrinsic_flags): New
34575         struct to hold all intrinisc related flags.
34576         (riscv_pragma_intrinsic_flags_pollute): New func to pollute
34577         the intrinsic flags and backup original flags.
34578         (riscv_pragma_intrinsic_flags_restore): New func to restore
34579         the flags from the backup intrinsic flags.
34580         (riscv_pragma_intrinsic): Pollute the flags and register all
34581         possible builtin types and functions, then restore and reinit.
34582         * config/riscv/riscv-protos.h (reinit_builtins): New func
34583         decl to reinit after flags pollution.
34584         (riscv_option_override): New extern func decl.
34585         * config/riscv/riscv-vector-builtins.cc (register_builtin_types_on_null):
34586         New func to register builtin types if null.
34587         (DEF_RVV_TYPE): Ditto.
34588         (DEF_RVV_TUPLE_TYPE): Ditto.
34589         (reinit_builtins): New func impl to reinit after flags pollution.
34590         (expand_builtin): Return
34591         target rtx after error_at.
34592         * config/riscv/riscv.cc (riscv_vector_int_type_p): New predicate
34593         func to tell one tree type is integer or not.
34594         (riscv_vector_float_type_p): New predicate func to tell one tree
34595         type is float or not.
34596         (riscv_vector_element_bitsize): New func to get the element bitsize
34597         of a vector tree type.
34598         (riscv_vector_required_min_vlen): New func to get the required min vlen
34599         of a vector tree type.
34600         (riscv_validate_vector_type): New func to validate the tree type
34601         is valid on flags.
34602         (riscv_return_value_is_vector_type_p): Leverage the func
34603         riscv_validate_vector_type to do the tree type validation.
34604         (riscv_arguments_is_vector_type_p): Ditto.
34605         (riscv_override_options_internal): Ditto.
34607 2024-04-08  Lulu Cheng  <chenglulu@loongson.cn>
34609         PR target/112919
34610         * config/loongarch/loongarch-def.cc (la664_align): Newly defined
34611         function that sets alignment rules under the LA664 microarchitecture.
34612         * config/loongarch/loongarch-opts.cc
34613         (loongarch_target_option_override): If not optimizing for size, set
34614         the default alignment to what the target wants.
34615         * config/loongarch/loongarch-tune.h (struct loongarch_align): Add
34616         new member variables jump and loop.
34618 2024-04-06  H.J. Lu  <hjl.tools@gmail.com>
34620         PR target/114590
34621         * config/i386/i386.md (x86_64_shld): Use explicit shift count in
34622         AT&T syntax.
34623         (x86_64_shld_ndd): Likewise.
34624         (x86_shld): Likewise.
34625         (x86_shld_ndd): Likewise.
34626         (x86_64_shrd): Likewise.
34627         (x86_64_shrd_ndd): Likewise.
34628         (x86_shrd): Likewise.
34629         (x86_shrd_ndd): Likewise.
34631 2024-04-06  Jørgen Kvalsvik  <j@lambda.is>
34633         PR middle-end/114599
34634         * tree-inline.cc (add_local_variables): Copy cond_uids mappings.
34636 2024-04-05  David Malcolm  <dmalcolm@redhat.com>
34638         PR analyzer/114588
34639         * diagnostic-color.cc (color_dict): Add "valid" and "invalid" as
34640         color capability names.
34641         * doc/invoke.texi: Document them in description of GCC_COLORS.
34642         * text-art/style.cc: Include "diagnostic-color.h".
34643         (text_art::get_style_from_color_cap_name): New.
34644         * text-art/types.h (get_style_from_color_cap_name): New decl.
34646 2024-04-05  Alex Coplan  <alex.coplan@arm.com>
34648         * config/aarch64/aarch64-ldp-fusion.cc (struct alias_walker):
34649         Fix double space after const qualifier on valid ().
34651 2024-04-05  Martin Jambor  <mjambor@suse.cz>
34653         PR ipa/113964
34654         * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
34655         Force values obtined through pass-through maps to the expected
34656         split type.
34658 2024-04-05  Mark Wielaard  <mark@klomp.org>
34660         * common.opt.urls: Regenerate.
34662 2024-04-05  Richard Sandiford  <richard.sandiford@arm.com>
34664         PR target/114603
34665         * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
34666         with...
34667         (@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
34668         a ptrue.
34669         (*cnot<mode>): Require operand 1 to be a ptrue.
34670         * config/aarch64/aarch64-sve-builtins-base.cc (svcnot_impl::expand):
34671         Use aarch64_ptrue_cnot<mode> for _x operations that are predicated
34672         with a ptrue.  Represent other _x operations as fully-defined _m
34673         operations.
34675 2024-04-05  Jakub Jelinek  <jakub@redhat.com>
34677         PR tree-optimization/114566
34678         * tree-vect-loop.cc (update_epilogue_loop_vinfo): Don't clear
34679         base_misaligned.
34681 2024-04-05  Richard Biener  <rguenther@suse.de>
34683         PR middle-end/114599
34684         PR gcov-profile/114115
34685         * symtab.cc (ifunc_ref_map): Do not use auto_bitmap.
34686         (is_caller_ifunc_resolver): Optimize bitmap_bit_p/bitmap_set_bit
34687         pair.
34688         (symtab_node::check_ifunc_callee_symtab_nodes): Properly
34689         allocate ifunc_ref_map here.
34691 2024-04-04  Martin Jambor  <mjambor@suse.cz>
34693         PR ipa/111571
34694         * ipa-param-manipulation.cc
34695         (ipa_param_body_adjustments::common_initialization): Avoid creating
34696         duplicate replacement entries.
34698 2024-04-04  Vladimir N. Makarov  <vmakarov@redhat.com>
34700         PR rtl-optimization/114415
34701         * sched-deps.cc (add_insn_mem_dependence): Add memory check for mem argument.
34702         (sched_analyze_1): Treat stack pointer modification as memory read.
34703         (sched_analyze_2, sched_analyze_insn): Add memory guard for processing pending_read_mems.
34704         * sched-int.h (deps_desc): Add comment to pending_read_mems.
34706 2024-04-04  Tobias Burnus  <tburnus@baylibre.com>
34708         * config/nvptx/mkoffload.cc (main): Call
34709         gcc_init_libintl and diagnostic_color_init.
34711 2024-04-04  H.J. Lu  <hjl.tools@gmail.com>
34713         PR target/114587
34714         * config/i386/i386-c.cc (ix86_target_macros_internal): Define
34715         __APX_F__ when APX is enabled.
34717 2024-04-04  Jørgen Kvalsvik  <j@lambda.is>
34719         * builtins.cc (expand_builtin_fork_or_exec): Check
34720         condition_coverage_flag.
34721         * collect2.cc (main): Add -fno-condition-coverage to OBSTACK.
34722         * common.opt: Add new options -fcondition-coverage and
34723         -Wcoverage-too-many-conditions.
34724         * doc/gcov.texi: Add --conditions documentation.
34725         * doc/invoke.texi: Add -fcondition-coverage documentation.
34726         * function.cc (free_after_compilation): Free cond_uids.
34727         * function.h (struct function): Add cond_uids.
34728         * gcc.cc: Link gcov on -fcondition-coverage.
34729         * gcov-counter.def (GCOV_COUNTER_CONDS): New.
34730         * gcov-dump.cc (tag_conditions): New.
34731         * gcov-io.h (GCOV_TAG_CONDS): New.
34732         (GCOV_TAG_CONDS_LENGTH): New.
34733         (GCOV_TAG_CONDS_NUM): New.
34734         * gcov.cc (class condition_info): New.
34735         (condition_info::condition_info): New.
34736         (condition_info::popcount): New.
34737         (struct coverage_info): New.
34738         (add_condition_counts): New.
34739         (output_conditions): New.
34740         (print_usage): Add -g, --conditions.
34741         (process_args): Likewise.
34742         (output_intermediate_json_line): Output conditions.
34743         (read_graph_file): Read condition counters.
34744         (read_count_file): Likewise.
34745         (file_summary): Print conditions.
34746         (accumulate_line_info): Accumulate conditions.
34747         (output_line_details): Print conditions.
34748         * gimplify.cc (next_cond_uid): New.
34749         (reset_cond_uid): New.
34750         (shortcut_cond_r): Set condition discriminator.
34751         (tag_shortcut_cond): New.
34752         (gimple_associate_condition_with_expr): New.
34753         (shortcut_cond_expr): Set condition discriminator.
34754         (gimplify_cond_expr): Likewise.
34755         (gimplify_function_tree): Call reset_cond_uid.
34756         * ipa-inline.cc (can_early_inline_edge_p): Check
34757         condition_coverage_flag.
34758         * ipa-split.cc (pass_split_functions::gate): Likewise.
34759         * passes.cc (finish_optimization_passes): Likewise.
34760         * profile.cc (struct condcov): New declaration.
34761         (cov_length): Likewise.
34762         (cov_blocks): Likewise.
34763         (cov_masks): Likewise.
34764         (cov_maps): Likewise.
34765         (cov_free): Likewise.
34766         (instrument_decisions): New.
34767         (read_thunk_profile): Control output to file.
34768         (branch_prob): Call find_conditions, instrument_decisions.
34769         (init_branch_prob): Add total_num_conds.
34770         (end_branch_prob): Likewise.
34771         * tree-core.h (struct tree_exp): Add condition_uid.
34772         * tree-profile.cc (struct conds_ctx): New.
34773         (CONDITIONS_MAX_TERMS): New.
34774         (EDGE_CONDITION): New.
34775         (topological_cmp): New.
34776         (index_of): New.
34777         (single_p): New.
34778         (single_edge): New.
34779         (contract_edge_up): New.
34780         (struct outcomes): New.
34781         (conditional_succs): New.
34782         (condition_index): New.
34783         (condition_uid): New.
34784         (masking_vectors): New.
34785         (emit_assign): New.
34786         (emit_bitwise_op): New.
34787         (make_top_index_visit): New.
34788         (make_top_index): New.
34789         (paths_between): New.
34790         (struct condcov): New.
34791         (cov_length): New.
34792         (cov_blocks): New.
34793         (cov_masks): New.
34794         (cov_maps): New.
34795         (cov_free): New.
34796         (find_conditions): New.
34797         (struct counters): New.
34798         (find_counters): New.
34799         (resolve_counter): New.
34800         (resolve_counters): New.
34801         (instrument_decisions): New.
34802         (tree_profiling): Check condition_coverage_flag.
34803         (pass_ipa_tree_profile::gate): Likewise.
34804         * tree.h (SET_EXPR_UID): New.
34805         (EXPR_COND_UID): New.
34807 2024-04-04  Richard Sandiford  <richard.sandiford@arm.com>
34809         PR target/114577
34810         * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
34811         Declare.
34812         * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
34813         New function.
34814         * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
34815         (svset_neonq_impl::expand): Optimise expansions whose first argument
34816         is undefined.
34818 2024-04-04  Richard Biener  <rguenther@suse.de>
34820         PR tree-optimization/114485
34821         * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
34822         vect_step_op_neg isn't OK for partial vectors but only
34823         for unknown niter.
34825 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
34827         PR c++/114537
34828         * fold-const.cc (native_encode_initializer): Look through
34829         NON_LVALUE_EXPR if val is INTEGER_CST.
34831 2024-04-04  Jakub Jelinek  <jakub@redhat.com>
34833         PR tree-optimization/114555
34834         * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
34835         m_bitfld_load and save_cast_conditional add any needed PHIs
34836         and adjust t4 accordingly.
34838 2024-04-04  Richard Biener  <rguenther@suse.de>
34840         PR tree-optimization/114551
34841         * tree-ssa-loop-split.cc (split_loop): If the guard is
34842         only conditionally evaluated rewrite computations with
34843         possibly undefined overflow to unsigned arithmetic.
34845 2024-04-04  Eugene Rozenfeld  <erozen@microsoft.com>
34847         PR gcov-profile/113765
34848         * auto-profile.cc (afdo_annotate_cfg): Don't set full_profile to true
34850 2024-04-03  Mark Wielaard  <mark@klomp.org>
34852         * config/i386/i386.opt.urls: Regenerate.
34854 2024-04-03  H.J. Lu  <hjl.tools@gmail.com>
34856         PR tree-optimization/114115
34857         * cgraph.h (symtab_node): Add check_ifunc_callee_symtab_nodes.
34858         (cgraph_node): Add called_by_ifunc_resolver.
34859         * cgraphunit.cc (symbol_table::compile): Call
34860         symtab_node::check_ifunc_callee_symtab_nodes.
34861         * symtab.cc (check_ifunc_resolver): New.
34862         (ifunc_ref_map): Likewise.
34863         (is_caller_ifunc_resolver): Likewise.
34864         (symtab_node::check_ifunc_callee_symtab_nodes): Likewise.
34865         * tree-profile.cc (gimple_gen_ic_func_profiler): Disable indirect
34866         call profiling for IFUNC resolvers and their callees.
34868 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
34870         * lto-wrapper.cc (compile_offload_image): Prefix 'offload_args'
34871         suffix by the target name.
34873 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
34875         * doc/install.texi (amdgcn-*-amdhsa): Update Newlib recommendation
34876         and update wording for LLVM 18 release.
34878 2024-04-03  Tobias Burnus  <tburnus@baylibre.com>
34880         PR other/111966
34881         * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
34882         handling from ...
34883         (main): ... here; call it to handle --with-arch config option
34884         and -march= commandline.
34886 2024-04-03  Jakub Jelinek  <jakub@redhat.com>
34888         PR middle-end/114552
34889         * expr.cc (emit_push_insn): Only use store_constructor for
34890         immediate_const_ctor_p if int_expr_size matches size.
34892 2024-04-03  Richard Biener  <rguenther@suse.de>
34894         PR tree-optimization/114557
34895         PR tree-optimization/114480
34896         * tree-phinodes.cc (release_phi_node): Return PHIs from
34897         allocation buckets not covered by free_phinodes to GC.
34898         (remove_phi_node): Release the PHI LHS before freeing the
34899         PHI node.
34900         * tree-vect-loop.cc (vectorizable_live_operation): Get PHI lhs
34901         before releasing it.
34903 2024-04-03  Jiahao Xu  <xujiahao@loongson.cn>
34905         * config/loongarch/lasx.md: Remove unused code.
34906         * config/loongarch/loongarch-protos.h
34907         (loongarch_split_lsx_copy_d): Remove.
34908         (loongarch_split_lsx_insert_d): Ditto.
34909         (loongarch_split_lsx_fill_d): Ditto.
34910         * config/loongarch/loongarch.cc
34911         (loongarch_split_lsx_copy_d): Ditto.
34912         (loongarch_split_lsx_insert_d): Ditto.
34913         (loongarch_split_lsx_fill_d): Ditto.
34914         * config/loongarch/lsx.md (lsx_vpickve2gr_du): Remove splitter.
34915         (lsx_vpickve2gr_<lsxfmt_f>): Ditto.
34916         (abs<mode>2): Remove expander.
34917         (vabs<mode>2): Rename 2 abs<mode>2.
34919 2024-04-02  Christophe Lyon  <christophe.lyon@linaro.org>
34921         * config/aarch64/aarch64-option-extensions.def: Fix comment.
34923 2024-04-02  Tom Tromey  <tromey@adacore.com>
34925         * dwarf2out.cc (print_dw_val) <dw_val_class_loc>: Don't
34926         print newline when not recursing.
34928 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
34930         * config/darwin.cc (darwin_override_options): Update the
34931         clang major version value in the dsymutil check.
34933 2024-04-02  Iain Sandoe  <iain@sandoe.co.uk>
34935         * config/darwin.cc (darwin_override_options): Reduce the debug
34936         level to 2 if dsymutil cannot handle .macinfo sections.
34938 2024-04-02  Yang Yujie  <yangyujie@loongson.cn>
34940         * config/loongarch/t-loongarch: Add loongarch-def-arrays.h
34941         to OPTION_H_EXTRA.
34943 2024-04-02  mengqinggang  <mengqinggang@loongson.cn>
34944             Lulu Cheng  <chenglulu@loongson.cn>
34945             Xi Ruoyao  <xry111@xry111.site>
34947         * config.gcc: Add --with-tls option to change TLS flavor.
34948         * config/loongarch/genopts/loongarch.opt.in: Add -mtls-dialect to
34949         configure TLS flavor.
34950         * config/loongarch/loongarch-def.h (struct loongarch_target): Add
34951         tls_dialect.
34952         * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
34953         flavor.
34954         * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
34955         tls_dialect.
34956         (loongarch_config_target): Ditto.
34957         (loongarch_update_gcc_opt_status): Ditto.
34958         * config/loongarch/loongarch-opts.h (loongarch_init_target): Ditto.
34959         (TARGET_TLS_DESC): New define.
34960         * config/loongarch/loongarch.cc (loongarch_symbol_insns): Add TLS
34961         DESC instructions sequence length.
34962         (loongarch_legitimize_tls_address): New TLS DESC instruction sequence.
34963         (loongarch_option_override_internal): Add la_opt_tls_dialect.
34964         (loongarch_option_restore): Add la_target.tls_dialect.
34965         * config/loongarch/loongarch.md (@got_load_tls_desc<mode>): Normal
34966         code model for TLS DESC.
34967         (got_load_tls_desc_off64): Extreme cmode model for TLS DESC.
34968         * config/loongarch/loongarch.opt: Regenerate.
34969         * config/loongarch/loongarch.opt.urls: Ditto.
34970         * doc/invoke.texi: Add a description of the compilation option
34971         '-mtls-dialect={trad,desc}'.
34973 2024-04-02  Lulu Cheng  <chenglulu@loongson.cn>
34975         * config/loongarch/loongarch.opt.urls: Regenerate.
34977 2024-04-01  Yang Yujie  <yangyujie@loongson.cn>
34979         * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]recip as
34980         aliases to -mrecip={all,none}, respectively.
34981         * config/loongarch/loongarch.opt: Regenerate.
34982         * config/loongarch/loongarch-def.h (ABI_FPU_64): Rename to...
34983         (ABI_FPU64_P): ...this.
34984         (ABI_FPU_32): Rename to...
34985         (ABI_FPU32_P): ...this.
34986         (ABI_FPU_NONE): Rename to...
34987         (ABI_NOFPU_P): ...this.
34988         (ABI_LP64_P): Define.
34989         * config/loongarch/loongarch.cc (loongarch_init_print_operand_punct):
34990         Merged into loongarch_global_init.
34991         (loongarch_cpu_option_override): Renamed to
34992         loongarch_target_option_override.
34993         (loongarch_option_override_internal): Move the work after
34994         loongarch_config_target into loongarch_target_option_override.
34995         (loongarch_global_init): Define.
34996         (INIT_TARGET_FLAG): Move to loongarch-opts.cc.
34997         (loongarch_option_override): Call loongarch_global_init
34998         separately.
34999         * config/loongarch/loongarch-opts.cc (loongarch_parse_mrecip_scheme):
35000         Split the parsing of -mrecip=<string> from
35001         loongarch_option_override_internal.
35002         (loongarch_generate_mrecip_scheme): Define. Split from
35003         loongarch_option_override_internal.
35004         (loongarch_target_option_override): Define. Renamed from
35005         loongarch_cpu_option_override.
35006         (loongarch_init_misc_options): Define. Split from
35007         loongarch_option_override_internal.
35008         (INIT_TARGET_FLAG): Move from loongarch.cc.
35009         * config/loongarch/loongarch-opts.h (loongarch_target_option_override):
35010         New prototype.
35011         (loongarch_parse_mrecip_scheme): New prototype.
35012         (loongarch_init_misc_options): New prototype.
35013         (TARGET_ABI_LP64): Simplify with ABI_LP64_P.
35014         * config/loongarch/loongarch.h (TARGET_RECIP_DIV): Simplify.
35015         Do not reference specific CPU architecture (LA664).
35016         (TARGET_RECIP_SQRT): Same.
35017         (TARGET_RECIP_RSQRT): Same.
35018         (TARGET_RECIP_VEC_DIV): Same.
35019         (TARGET_RECIP_VEC_SQRT): Same.
35020         (TARGET_RECIP_VEC_RSQRT): Same.
35022 2024-04-01  Lulu Cheng  <chenglulu@loongson.cn>
35024         * doc/invoke.texi: Add descriptions for the compilation
35025         options.
35027 2024-03-31  Jeff Law  <jlaw@ventanamicro.com>
35029         * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
35030         and sfb_alu.
35032 2024-03-31  Pan Li  <pan2.li@intel.com>
35034         * config/riscv/riscv-vector-builtins.cc (expand_builtin): Take
35035         the term built-in over builtin.
35037 2024-03-31  Pan Li  <pan2.li@intel.com>
35039         * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
35040         Remove unused var decl.
35042 2024-03-30  Xi Ruoyao  <xry111@xry111.site>
35044         PR target/114175
35045         * config/mips/mips.cc (mips_setup_incoming_varargs): Only skip
35046         mips_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
35047         functions if arg.type is NULL.
35049 2024-03-29  Andrew Pinski  <quic_apinski@quicinc.com>
35051         * lto-compress.cc (lto_end_uncompression): Use
35052         fatal_error instead of internal_error when ZSTD
35053         is not enabled.
35055 2024-03-28  Jeff Law  <jlaw@ventanamicro.com>
35057         * config/h8300/extensions.md (zero_extendqihi*): Add output
35058         template for reg->reg case where the regs don't match.
35060 2024-03-28  Gaius Mulley  <(no_default)>
35062         PR modula2/114517
35063         * doc/gm2.texi: Mention gm2 treats a # in the first column
35064         as a preprocessor directive unless -fno-cpp is supplied.
35066 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
35068         * predict.cc (estimate_bb_frequencies): Fix comment typo,
35069         scalling -> scaling.
35071 2024-03-28  Jakub Jelinek  <jakub@redhat.com>
35073         PR tree-optimization/112303
35074         * profile-count.h (profile_count::operator+): Perform
35075         addition in uint64_t variable and set m_val to MIN of that
35076         val and max_count.
35077         (profile_count::operator+=): Likewise.
35078         (profile_count::operator-=): Formatting fix.
35079         (profile_count::apply_probability): Use safe_scale_64bit
35080         even in the int overload.
35082 2024-03-28  Jan Hubicka  <jh@suse.cz>
35084         PR middle-end/113907
35085         * ipa-icf.cc (sem_function::init): Hash PHI operands
35086         (sem_function::compare_phi_node): Add argument about preserving order
35088 2024-03-28  Richard Biener  <rguenther@suse.de>
35090         PR middle-end/114480
35091         * cfganal.cc (compute_idf): Use simpler bitmap iteration,
35092         touch work_set only when phi_insertion_points changed.
35094 2024-03-28  Palmer Dabbelt  <palmer@rivosinc.com>
35096         * config/riscv/riscv.h (REGISTER_NAMES): Add vxsat.
35098 2024-03-27  Segher Boessenkool  <segher@kernel.crashing.org>
35100         PR rtl-optimization/101523
35101         * combine.cc (try_combine): Don't do a 2-insn combination if
35102         it does not in fact change I2.
35104 2024-03-27  Jakub Jelinek  <jakub@redhat.com>
35106         * doc/invoke.texi (Spec Files): Use @var{S} instead of S,
35107         @var{X} instead of X etc. for other placeholders.
35109 2024-03-27  Richard Biener  <rguenther@suse.de>
35111         PR tree-optimization/114057
35112         * tree-vect-slp.cc (vect_bb_slp_mark_live_stmts): Mark
35113         BB reduction remain defs as scalar uses.
35115 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
35117         * config/aarch64/aarch64-option-extensions.def (rcpc3):
35118         Fix FEATURE_STRING field to "lrcpc3".
35120 2024-03-27  Victor Do Nascimento  <victor.donascimento@arm.com>
35122         * config/aarch64/aarch64-option-extensions.def: Add LSE128
35123         AARCH64_OPT_EXTENSION, adding it as a dependency for the D128
35124         feature.
35125         * doc/invoke.texi (AArch64 Options): Document +lse128.
35127 2024-03-26  Richard Sandiford  <richard.sandiford@arm.com>
35129         * config/aarch64/aarch64-feature-deps.h: Use constexpr for
35130         out-of-line statics.
35132 2024-03-26  Cupertino Miranda  <cupertino.miranda@oracle.com>
35134         PR target/114431
35135         * btfout.cc (get_name_for_datasec_entry): Add function.
35136         (btf_asm_datasec_entry): Print label when possible.
35138 2024-03-26  Richard Ball  <richard.ball@arm.com>
35140         PR target/114272
35141         * config/aarch64/aarch64-cores.def (AARCH64_CORE):
35142         Change SCHEDULER_IDENT from cortexa55 to cortexa53
35143         for Cortex-A510 and Cortex-A520.
35145 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
35147         PR middle-end/111151
35148         * fold-const.cc (extract_muldiv_1) <case MAX_EXPR>: Punt for
35149         MULT_EXPR altogether, or for MAX_EXPR if c is -1.
35151 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
35153         PR sanitizer/111736
35154         * tsan.cc (instrument_expr): Punt on non-generic address space
35155         accesses.
35157 2024-03-26  Richard Biener  <rguenther@suse.de>
35159         PR tree-optimization/114471
35160         * tree-vect-stmts.cc (vectorizable_operation): Verify operand
35161         types are compatible with the result type.
35163 2024-03-26  Richard Biener  <rguenther@suse.de>
35165         PR tree-optimization/114464
35166         * tree-vect-loop.cc (vectorizable_recurr): Verify the latch
35167         vector type is compatible with what we chose for the recurrence.
35169 2024-03-26  Jakub Jelinek  <jakub@redhat.com>
35171         * cfgloopmanip.cc (update_loop_exit_probability_scale_dom_bbs):
35172         Fix comment typo - multple -> multiple.
35173         * config/i386/x86-tune.def (X86_TUNE_ACCUMULATE_OUTGOING_ARGS):
35174         Likewise.
35176 2024-03-26  YunQiang Su  <syq@gcc.gnu.org>
35178         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Predefine
35179         __mips_strict_alignment if STRICT_ALIGNMENT.
35181 2024-03-25  Richard Biener  <rguenther@suse.de>
35183         * config.gcc (amdgcn): Add gfx1036 entries.
35184         * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
35185         (gcn_local_sym_hash): Likewise.
35186         * config/gcn/gcn-opts.h (enum processor_type): Likewise.
35187         (TARGET_GFX1036): New macro.
35188         * config/gcn/gcn.cc (gcn_option_override): Handle gfx1036.
35189         (gcn_omp_device_kind_arch_isa): Likewise.
35190         (output_file_start): Likewise.
35191         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1036__.
35192         (TARGET_CPU_CPP_BUILTINS): Rename __gfx1030 to __gfx1030__.
35193         * config/gcn/gcn.opt: Add gfx1036.
35194         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1036): New.
35195         (main): Handle gfx1036.
35196         * config/gcn/t-omp-device: Add gfx1036 isa.
35197         * doc/install.texi (amdgcn): Add gfx1036.
35198         * doc/invoke.texi (-march): Likewise.
35200 2024-03-25  Pan Li  <pan2.li@intel.com>
35202         * config/riscv/riscv-c.cc (riscv_pragma_intrinsic): Remove error
35203         when V is disabled and init the RVV types and intrinic APIs.
35204         * config/riscv/riscv-vector-builtins.cc (expand_builtin): Report
35205         error if V ext is disabled.
35206         * config/riscv/riscv.cc (riscv_return_value_is_vector_type_p):
35207         Ditto.
35208         (riscv_arguments_is_vector_type_p): Ditto.
35209         (riscv_vector_cc_function_p): Ditto.
35210         * config/riscv/riscv_vector.h: Remove error if V is disable.
35212 2024-03-23  John David Anglin  <danglin@gcc.gnu.org>
35214         * config/pa/pa.cc (pa_output_global_address): Handle
35215         UNSPEC_DLTIND14R addresses.
35216         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Output "RT'" for
35217         UNSPEC_DLTIND14R address.
35219 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
35221         PR tree-optimization/114433
35222         * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): For
35223         m_bitfld_load check save_first rather than m_first.
35225 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
35227         PR tree-optimization/114425
35228         * gimple-lower-bitint.cc (build_bitint_stmt_ssa_conflicts): Handle
35229         _Complex large/huge _BitInt types like the large/huge _BitInt types.
35231 2024-03-23  Jakub Jelinek  <jakub@redhat.com>
35233         PR middle-end/111683
35234         * tree-predcom.cc (pcom_worker::suitable_component_p): If has_write
35235         and comp_step is RS_NONZERO, return false if any reference in the
35236         component doesn't have DR_STEP a multiple of access size.
35238 2024-03-23  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
35240         * config/xtensa/xtensa.md: Add new split pattern described above.
35242 2024-03-22  Georg-Johann Lay  <avr@gjlay.de>
35244         * config/avr/avr.cc (avr_set_current_function): Adjust diagnostic
35245         for deprecated SIGNAL and INTERRUPT usage without respective header.
35247 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
35249         * config/gcn/gcn.md (*memory_barrier): Split into RDNA and !RDNA.
35250         (atomic_load<mode>): Adjust RDNA cache settings.
35251         (atomic_store<mode>): Likewise.
35252         (atomic_exchange<mode>): Likewise.
35254 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
35256         * config/gcn/gcn.cc (gcn_vectorize_preferred_simd_mode): Prefer V32 on
35257         RDNA devices.
35259 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
35261         * config.gcc (amdgcn): Add gfx1103 entries.
35262         * config/gcn/gcn-hsa.h (NO_XNACK): Likewise.
35263         (gcn_local_sym_hash): Likewise.
35264         * config/gcn/gcn-opts.h (enum processor_type): Likewise.
35265         (TARGET_GFX1103): New macro.
35266         * config/gcn/gcn.cc (gcn_option_override): Handle gfx1103.
35267         (gcn_omp_device_kind_arch_isa): Likewise.
35268         (output_file_start): Likewise.
35269         (gcn_hsa_declare_function_name): Use TARGET_RDNA3, not just gfx1100.
35270         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Add __gfx1103__.
35271         * config/gcn/gcn.opt: Add gfx1103.
35272         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1103): New.
35273         (main): Handle gfx1103.
35274         * config/gcn/t-omp-device: Add gfx1103 isa.
35275         * doc/install.texi (amdgcn): Add gfx1103.
35276         * doc/invoke.texi (-march): Likewise.
35278 2024-03-22  Andrew Stubbs  <ams@baylibre.com>
35280         * dojump.cc (do_compare_rtx_and_jump): Clear excess bits in vector
35281         bitmasks.
35282         (do_compare_and_jump): Remove now-redundant similar code.
35283         * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
35284         bitmasks.
35285         (add_mask_and_len_args): Likewise.
35287 2024-03-22  Pan Li  <pan2.li@intel.com>
35289         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Add pre-define
35290         macro __riscv_v_fixed_vlen when zvl.
35291         * config/riscv/riscv.cc (riscv_handle_rvv_vector_bits_attribute):
35292         New static func to take care of the RVV types decorated by
35293         the attributes.
35295 2024-03-22  Andrew Pinski  <quic_apinski@quicinc.com>
35297         PR c/109619
35298         * builtins.cc (fold_builtin_1): Use error_operand_p
35299         instead of checking against ERROR_MARK.
35300         (fold_builtin_2): Likewise.
35301         (fold_builtin_3): Likewise.
35303 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
35305         PR sanitizer/111736
35306         * ubsan.cc (ubsan_expand_null_ifn, instrument_mem_ref): Avoid
35307         SANITIZE_NULL instrumentation for non-generic address spaces
35308         for which targetm.addr_space.zero_address_valid (as) is true.
35310 2024-03-22  Jakub Jelinek  <jakub@redhat.com>
35312         PR tree-optimization/114405
35313         * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
35314         Set rprec to limb_prec rather than 0 if tprec is divisible by
35315         limb_prec.  In the last bf_cur handling, set rprec to (tprec + bo_bit)
35316         % limb_prec rather than tprec % limb_prec and use just rprec instead
35317         of rprec + bo_bit.  For build_bit_field_ref offset, divide
35318         (tprec + bo_bit) by limb_prec rather than just tprec.
35320 2024-03-22  Christoph Müllner  <christoph.muellner@vrull.eu>
35322         PR target/114194
35323         * config/riscv/vector-iterators.md: Split VI into VI_FRAC and VI_NOFRAC.
35324         Only include VI_NOFRAC in V_VLS without TARGET_XTHEADVECTOR.
35326 2024-03-22  Jeff Law  <jlaw@ventanamicro.com>
35328         * config/riscv/riscv.cc (riscv_expand_prologue): Add missing stack
35329         tie for scalable and final stack adjustment if needed.
35330         Co-authored-by: Raphael Zinsly <rzinsly@ventanamicro.com>
35332 2024-03-22  Pan Li  <pan2.li@intel.com>
35334         PR target/114352
35335         * common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
35336         New struct for func decl and target name.
35337         (struct riscv_func_target_hasher): New hasher for hash table mapping
35338         from the fn_decl to fn_target_name.
35339         (riscv_func_decl_hash): New func to compute the hash for fn_decl.
35340         (riscv_func_target_hasher::hash): New func to impl hash interface.
35341         (riscv_func_target_hasher::equal): New func to impl equal interface.
35342         (riscv_cmdline_subset_list): New static var for cmdline subset list.
35343         (riscv_func_target_table_lazy_init): New func to lazy init the func
35344         target hash table.
35345         (riscv_func_target_get): New func to get target name from hash table.
35346         (riscv_func_target_put): New func to put target name into hash table.
35347         (riscv_func_target_remove_and_destory): New func to remove target
35348         info from the hash table and destory it.
35349         (riscv_parse_arch_string): Set the static var cmdline_subset_list.
35350         * config/riscv/riscv-subset.h (riscv_cmdline_subset_list): New static
35351         var for cmdline subset list.
35352         (riscv_func_target_get): New func decl.
35353         (riscv_func_target_put): Ditto.
35354         (riscv_func_target_remove_and_destory): Ditto.
35355         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
35356         Take cmdline_subset_list instead of current_subset_list when clone.
35357         (riscv_process_target_attr): Record the func target info to hash table.
35358         (riscv_option_valid_attribute_p): Add new arg tree fndel.
35359         * config/riscv/riscv.cc (riscv_declare_function_name): Consume the
35360         func target info and print the arch message.
35362 2024-03-22  Pan Li  <pan2.li@intel.com>
35364         PR target/114352
35365         * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
35366         Replace implied, combine and check to func finalize.
35367         (riscv_subset_list::finalize): New func impl to take care of
35368         implied, combine ext and related checks.
35369         * config/riscv/riscv-subset.h: Add func decl for finalize.
35370         * config/riscv/riscv-target-attr.cc (riscv_target_attr_parser::parse_arch):
35371         Finalize the ext before return succeed.
35372         * config/riscv/riscv.cc (riscv_set_current_function): Reinit the
35373         machine mode before when set cur function.
35375 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
35377         * config/gcn/gcn.cc (gcn_expand_builtin_1): Comment correction.
35379 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
35381         * config/gcn/gcn-hsa.h (ASM_SPEC): Pass -mattr=+cumode.
35383 2024-03-21  Andrew Stubbs  <ams@baylibre.com>
35385         * config/gcn/gcn-run.cc (main): Add an hsa_memory_free calls for each
35386         device_malloc call.
35388 2024-03-21  liuhongt  <hongtao.liu@intel.com>
35390         PR tree-optimization/114396
35391         * tree-vect-loop.cc (vect_peel_nonlinear_iv_init): Pass utype
35392         and true to wi::from_mpz.
35394 2024-03-21  Richard Biener  <rguenther@suse.de>
35396         PR tree-optimization/111736
35397         * asan.cc (instrument_derefs): Do not instrument accesses
35398         to non-generic address-spaces.
35400 2024-03-21  Richard Biener  <rguenther@suse.de>
35402         PR tree-optimization/113727
35403         * tree-sra.cc (analyze_access_subtree): Do not allow
35404         replacements in subtrees when grp_partial_lhs.
35406 2024-03-21  liuhongt  <hongtao.liu@intel.com>
35408         PR middle-end/114347
35409         * doc/invoke.texi: Document -fexcess-precision=16.
35411 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
35413         * config/bpf/core-builtins.cc (bpf_core_get_index): Check if
35414         field contains a DECL_NAME.
35416 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
35418         * config/bpf/btfext-out.cc (cpf_core_reloc_add): Correct for new code.
35419         Add assert to validate the string is set.
35420         * config/bpf/core-builtins.cc (cr_final): Make string struct
35421         field as const.
35422         (process_enum_value): Correct for field type change.
35423         (process_type): Set access string to "0".
35425 2024-03-20  Cupertino Miranda  <cupertino.miranda@oracle.com>
35427         * config/bpf/core-builtins.cc (core_field_info): Add
35428         support for POINTER_PLUS_EXPR in the root of the field expression.
35429         (bpf_core_get_index): Likewise.
35430         (pack_field_expr): Make the BTF type to point to the structure
35431         related node, instead of its pointer type.
35432         (make_core_safe_access_index): Correct to new code.
35434 2024-03-20  Xi Ruoyao  <xry111@xry111.site>
35436         PR target/114407
35437         * config/loongarch/loongarch-opts.cc (loongarch_config_target):
35438         Fix typo in diagnostic message, enabing -> enabling.
35440 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35442         PR target/114175
35443         * config/visium/visium.cc (visium_setup_incoming_varargs): Only skip
35444         TARGET_FUNCTION_ARG_ADVANCE for TYPE_NO_NAMED_ARGS_STDARG_P functions
35445         if arg.type is NULL.
35447 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35449         PR target/114175
35450         * config/nios2/nios2.cc (nios2_setup_incoming_varargs): Only skip
35451         nios2_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35452         if arg.type is NULL.
35454 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35456         PR target/114175
35457         * config/nds32/nds32.cc (nds32_setup_incoming_varargs): Only skip
35458         function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35459         if arg.type is NULL.
35461 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35463         PR target/114175
35464         * config/m32r/m32r.cc (m32r_setup_incoming_varargs): Only skip
35465         function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35466         if arg.type is NULL.
35468 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35470         PR target/114175
35471         * config/ft32/ft32.cc (ft32_setup_incoming_varargs): Only skip
35472         function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35473         if arg.type is NULL.
35475 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35477         PR target/114175
35478         * config/epiphany/epiphany.cc (epiphany_setup_incoming_varargs): Only
35479         skip function arg advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35480         if arg.type is NULL.
35482 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35484         PR target/114175
35485         * config/csky/csky.cc (csky_setup_incoming_varargs): Only skip
35486         csky_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35487         if arg.type is NULL.
35489 2024-03-20  Yury Khrustalev  <yury.khrustalev@arm.com>
35491         * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
35493 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35495         PR tree-optimization/114365
35496         * gimple-lower-bitint.cc (bitint_large_huge::handle_load): When adding
35497         a PHI node, set iv2 to its result afterwards.
35499 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35501         * tree-ssa-loop-ch.cc (update_profile_after_ch): Fix comment typo:
35502         probabbility -> probability.
35503         (ch_base::copy_headers): Fix comment typo: itrations -> iterations.
35505 2024-03-20  Jakub Jelinek  <jakub@redhat.com>
35507         PR bootstrap/114369
35508         * system.h (vec_step): Define to vec_step_ when compiling
35509         with clang on PowerPC.
35511 2024-03-20  demin.han  <demin.han@starfivetech.com>
35513         PR target/112651
35514         * config/riscv/riscv-opts.h (enum riscv_autovec_lmul_enum): Rename
35515         (enum rvv_max_lmul_enum): Ditto
35516         (TARGET_MAX_LMUL): Ditto
35517         * config/riscv/riscv-v.cc (preferred_simd_mode): Ditto
35518         * config/riscv/riscv-vector-costs.cc (costs::record_potential_unexpected_spills): Ditto
35519         (costs::better_main_loop_than_p): Ditto
35520         * config/riscv/riscv.opt: Replace -param=riscv-autovec-lmul with -mrvv-max-lmul
35522 2024-03-20  Richard Biener  <rguenther@suse.de>
35524         PR middle-end/113396
35525         * tree-dfa.cc (get_ref_base_and_extent): Use index range
35526         bounds only if they fit within the address-range constraints
35527         of offset_int.
35529 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
35531         * config/loongarch/loongarch.cc
35532         (loongarch_hard_regno_mode_ok_uncached): Combine UNITS_PER_FP_REG and
35533         UNITS_PER_FPREG macros.
35534         (loongarch_hard_regno_nregs): Ditto.
35535         (loongarch_class_max_nregs): Ditto.
35536         (loongarch_get_separate_components): Ditto.
35537         (loongarch_process_components): Ditto.
35538         * config/loongarch/loongarch.h (UNITS_PER_FPREG): Ditto.
35539         (UNITS_PER_HWFPVALUE): Ditto.
35540         (UNITS_PER_FPVALUE): Ditto.
35542 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
35544         * config/loongarch/lasx.md (vec_cmp<mode><mode256_i>): Remove checking
35545         of loongarch_expand_vec_cmp()'s return value.
35546         (vec_cmpu<ILASX:mode><mode256_i>): Ditto.
35547         * config/loongarch/lsx.md (vec_cmp<mode><mode_i>): Ditto.
35548         (vec_cmpu<ILSX:mode><mode_i>): Ditto.
35549         * config/loongarch/loongarch-protos.h
35550         (loongarch_expand_vec_cmp): Change loongarch_expand_vec_cmp()'s return
35551         type from bool to void.
35552         * config/loongarch/loongarch.cc (loongarch_expand_vec_cmp): Ditto.
35554 2024-03-20  Chenghui Pan  <panchenghui@loongson.cn>
35556         * config/loongarch/loongarch-protos.h
35557         (loongarch_cfun_has_cprestore_slot_p): Delete.
35558         (loongarch_adjust_insn_length): Delete.
35559         (current_section_name): Delete.
35560         (loongarch_split_symbol_type): Delete.
35561         * config/loongarch/loongarch.cc
35562         (loongarch_case_values_threshold): Delete.
35563         (loongarch_spill_class): Delete.
35564         (TARGET_OPTAB_SUPPORTED_P): Delete.
35565         (TARGET_CASE_VALUES_THRESHOLD): Delete.
35566         (TARGET_SPILL_CLASS): Delete.
35568 2024-03-20  Lewis Hyatt  <lhyatt@gmail.com>
35570         PR c++/111918
35571         * diagnostic-core.h (enum diagnostic_t): Add DK_ANY special flag.
35572         * diagnostic.cc (diagnostic_option_classifier::classify_diagnostic):
35573         Make use of DK_ANY to indicate a diagnostic was initially enabled.
35574         (diagnostic_context::diagnostic_enabled): Do not change the type of
35575         a diagnostic if the saved classification is type DK_ANY.
35577 2024-03-19  Martin Jambor  <mjambor@suse.cz>
35579         PR ipa/108802
35580         PR ipa/114254
35581         * ipa-prop.cc (ipa_get_stmt_member_ptr_load_param): Fix case looking
35582         at COMPONENT_REFs directly from a PARM_DECL, also recognize loads from
35583         a pointer parameter.
35584         (ipa_analyze_indirect_call_uses): Also recognize loads from a pointer
35585         parameter, also recognize the case when pfn pointer is loaded in its
35586         own BB.
35588 2024-03-19  Vladimir N. Makarov  <vmakarov@redhat.com>
35590         PR target/99829
35591         * lra-constraints.cc (lra_constraints): Prevent removing insn
35592         with reverse equivalence to memory if the memory was reloaded.
35594 2024-03-19  David Malcolm  <dmalcolm@redhat.com>
35596         PR middle-end/114348
35597         * diagnostic-format-json.cc
35598         (json_stderr_output_format::machine_readable_stderr_p): New.
35599         (json_file_output_format::machine_readable_stderr_p): New.
35600         * diagnostic-format-sarif.cc
35601         (sarif_stream_output_format::machine_readable_stderr_p): New.
35602         (sarif_file_output_format::machine_readable_stderr_p): New.
35603         * diagnostic.cc (diagnostic_context::action_after_output): Move
35604         "fnotice" to before "finish" call, so that we still have the
35605         diagnostic_context.
35606         (fnotice): Bail out if the user requested one of the
35607         machine-readable diagnostic output formats on stderr.
35608         * diagnostic.h
35609         (diagnostic_output_format::machine_readable_stderr_p): New pure
35610         virtual function.
35611         (diagnostic_text_output_format::machine_readable_stderr_p): New.
35612         (diagnostic_context::get_output_format): New accessor.
35614 2024-03-19  Edwin Lu  <ewlu@rivosinc.com>
35616         PR target/114175
35617         * config/riscv/riscv.cc (riscv_setup_incoming_varargs): Only skip
35618         riscv_funciton_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35619         if arg.type is NULL
35621 2024-03-19  Jonathan Wakely  <jwakely@redhat.com>
35623         * doc/install.texi (Prerequisites): Document use of autogen for
35624         libstdc++.
35626 2024-03-19  Richard Biener  <rguenther@suse.de>
35628         PR tree-optimization/114151
35629         PR tree-optimization/114269
35630         PR tree-optimization/114322
35631         PR tree-optimization/114074
35632         * tree-chrec.cc (chrec_fold_multiply): Restrict the use of
35633         unsigned arithmetic when actual overflow on constant operands
35634         is observed.
35636 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
35638         PR target/114175
35639         * config/arc/arc.cc (arc_setup_incoming_varargs): Only skip
35640         arc_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35641         if arg.type is NULL.
35643 2024-03-19  Xi Ruoyao  <xry111@xry111.site>
35645         PR target/114175
35646         * config/loongarch/loongarch.cc
35647         (loongarch_setup_incoming_varargs): Only skip
35648         loongarch_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P
35649         functions if arg.type is NULL.
35651 2024-03-19  Christophe Lyon  <christophe.lyon@linaro.org>
35653         PR target/114323
35654         * config/arm/arm-mve-builtins.cc
35655         (function_instance::reads_global_state_p): Take CP_READ_MEMORY
35656         into account.
35658 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
35660         PR target/114175
35661         * config/alpha/alpha.cc (alpha_setup_incoming_varargs): Only skip
35662         function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35663         if arg.type is NULL.
35665 2024-03-19  Jakub Jelinek  <jakub@redhat.com>
35667         PR target/114175
35668         * config/rs6000/rs6000-call.cc (setup_incoming_varargs): Only skip
35669         rs6000_function_arg_advance_1 for TYPE_NO_NAMED_ARGS_STDARG_P functions
35670         if arg.type is NULL.
35672 2024-03-19  Richard Biener  <rguenther@suse.de>
35674         PR tree-optimization/114375
35675         * tree-vect-slp.cc (vect_build_slp_tree_2): Compute the
35676         load permutation for masked loads but reject it when any
35677         such is necessary.
35678         * tree-vect-stmts.cc (vectorizable_load): Reject masked
35679         VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
35680         supported.
35682 2024-03-19  Mary Bennett  <mary.bennett@embecosm.com>
35684         * common/config/riscv/riscv-common.cc: Create XCVbi extension
35685         support.
35686         * config/riscv/riscv.opt: Likewise.
35687         * config/riscv/corev.md: Implement cv_branch<mode> pattern
35688         for cv.beqimm and cv.bneimm.
35689         * config/riscv/riscv.md: Add CORE-V branch immediate to RISC-V
35690         branch instruction pattern.
35691         * config/riscv/constraints.md: Implement constraints
35692         cv_bi_s5 - signed 5-bit immediate.
35693         * config/riscv/predicates.md: Implement predicate
35694         const_int5s_operand - signed 5 bit immediate.
35695         * doc/sourcebuild.texi: Add XCVbi documentation.
35697 2024-03-19  Chen Jiawei  <jiawei@iscas.ac.cn>
35699         * config/riscv/riscv-cores.def (RISCV_TUNE): New def.
35700         (RISCV_CORE): Ditto.
35701         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New
35702         option.
35703         * config/riscv/riscv.cc: New def.
35704         * config/riscv/riscv.md: New include.
35705         * config/riscv/xiangshan.md: New file.
35707 2024-03-18  David Malcolm  <dmalcolm@redhat.com>
35709         PR analyzer/110902
35710         PR analyzer/110928
35711         PR analyzer/111305
35712         PR analyzer/111441
35713         * selftest.h (ASSERT_NE_AT): New macro.
35715 2024-03-18  Uros Bizjak  <ubizjak@gmail.com>
35717         PR target/111822
35718         * config/i386/i386-features.cc (smode_convert_cst): New function
35719         to handle SImode, DImode and TImode immediates, generalized from
35720         timode_convert_cst.
35721         (timode_convert_cst): Remove.
35722         (scalar_chain::convert_op): Unify from
35723         general_scalar_chain::convert_op and timode_scalar_chain::convert_op.
35724         (general_scalar_chain::convert_op): Remove.
35725         (timode_scalar_chain::convert_op): Remove.
35726         (timode_scalar_chain::convert_insn): Update the call to
35727         renamed timode_convert_cst.
35728         * config/i386/i386-features.h (class scalar_chain):
35729         Redeclare convert_op as protected class member.
35730         (class general_calar_chain): Remove convert_op.
35731         (class timode_scalar_chain): Ditto.
35733 2024-03-18  Jan Hubicka  <jh@suse.cz>
35735         * config/i386/zn4zn5.md: Add file missed in the previous commit.
35737 2024-03-18  Jan Hubicka  <jh@suse.cz>
35738             Karthiban Anbazhagan  <Karthiban.Anbazhagan@amd.com>
35740         * common/config/i386/cpuinfo.h (get_amd_cpu): Recognize znver5.
35741         * common/config/i386/i386-common.cc (processor_names): Add znver5.
35742         (processor_alias_table): Likewise.
35743         * common/config/i386/i386-cpuinfo.h (processor_types): Add new zen
35744         family.
35745         (processor_subtypes): Add znver5.
35746         * config.gcc (x86_64-*-* |...): Likewise.
35747         * config/i386/driver-i386.cc (host_detect_local_cpu): Let
35748         march=native detect znver5 cpu's.
35749         * config/i386/i386-c.cc (ix86_target_macros_internal): Add
35750         znver5.
35751         * config/i386/i386-options.cc (m_ZNVER5): New definition
35752         (processor_cost_table): Add znver5.
35753         * config/i386/i386.cc (ix86_reassociation_width): Likewise.
35754         * config/i386/i386.h (processor_type): Add PROCESSOR_ZNVER5
35755         (PTA_ZNVER5): New definition.
35756         * config/i386/i386.md (define_attr "cpu"): Add znver5.
35757         (Scheduling descriptions) Add znver5.md.
35758         * config/i386/x86-tune-costs.h (znver5_cost): New definition.
35759         * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add znver5.
35760         (ix86_adjust_cost): Likewise.
35761         * config/i386/x86-tune.def (avx512_move_by_pieces): Add m_ZNVER5.
35762         (avx512_store_by_pieces): Add m_ZNVER5.
35763         * doc/extend.texi: Add znver5.
35764         * doc/invoke.texi: Likewise.
35765         * config/i386/znver4.md: Rename to zn4zn5.md; combine znver4 and znver5 Scheduler.
35767 2024-03-18  Georg-Johann Lay  <avr@gjlay.de>
35769         * config/avr/constraints.md (CX2, CX3, CX4): New constraints.
35770         * config/avr/avr-protos.h (avr_xor_noclobber_dconst): New proto.
35771         * config/avr/avr.cc (avr_xor_noclobber_dconst): New function.
35772         * config/avr/avr.md (xorhi3, *xorhi3): Add "d,0,CX2,X" alternative.
35773         (xorpsi3, *xorpsi3): Add "d,0,CX3,X" alternative.
35774         (xorsi3, *xorsi3): Add "d,0,CX4,X" alternative.
35776 2024-03-18  liuhongt  <hongtao.liu@intel.com>
35778         PR target/114334
35779         * config/i386/i386.md (mode): Add new number V8BF,V16BF,V32BF.
35780         (MODEF248): New mode iterator.
35781         (ssevecmodesuffix): Hanlde BF and HF.
35782         * config/i386/sse.md (andnot<mode>3): Extend to HF/BF.
35783         (<code><mode>3): Ditto.
35785 2024-03-18  John David Anglin  <danglin@gcc.gnu.org>
35787         PR rtl-optimization/112415
35788         * config/pa/pa.cc (pa_emit_move_sequence): Revise condition
35789         for symbolic memory operands.
35790         (pa_legitimate_address_p): Revise LO_SUM condition.
35791         * config/pa/pa.h (INT14_OK_STRICT): Revise define.  Move
35792         comment about GNU linker to predicates.md.
35793         * config/pa/predicates.md (floating_point_store_memory_operand):
35794         Revise condition for symbolic memory operands.  Update
35795         comment.
35797 2024-03-17  John David Anglin  <danglin@gcc.gnu.org>
35799         * config/pa/pa.cc (pa_delegitimize_address): Delegitimize UNSPEC_TP.
35801 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
35803         PR target/114175
35804         * config/i386/i386.cc (ix86_setup_incoming_varargs): Only skip
35805         ix86_function_arg_advance for TYPE_NO_NAMED_ARGS_STDARG_P functions
35806         if arg.type is NULL.
35808 2024-03-16  Jakub Jelinek  <jakub@redhat.com>
35810         PR tree-optimization/114329
35811         * gimple-lower-bitint.cc (struct bitint_large_huge): Declare
35812         build_bit_field_ref method.
35813         (bitint_large_huge::build_bit_field_ref): New method.
35814         (bitint_large_huge::lower_mergeable_stmt): Use it.
35816 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
35818         * config/riscv/riscv.opt.urls: Regenerated.
35819         * config/rs6000/sysv4.opt.urls: Likewise.
35820         * config/xtensa/xtensa.opt.urls: Likewise.
35822 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
35824         * lower-subreg.cc (resolve_simple_move): Fix comment typo,
35825         betwee -> between.
35826         * edit-context.cc (class line_event): Fix comment typo,
35827         betweeen -> between.
35829 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
35831         PR target/114339
35832         * config/i386/i386-expand.cc (ix86_expand_int_sse_cmp) <case LE>: Fix
35833         a pasto, compare code against LE rather than GE.
35835 2024-03-15  Joe Ramsay  <Joe.Ramsay@arm.com>
35837         * match.pd: Fix truncation pattern for -fno-signed-zeroes
35839 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
35841         PR middle-end/114332
35842         * expr.cc (expand_expr_real_1): EXTEND_BITINT also CALL_EXPR results.
35844 2024-03-15  Jakub Jelinek  <jakub@redhat.com>
35846         PR tree-optimization/113466
35847         * gimple-lower-bitint.cc (bitint_large_huge): Add m_returns_twice_calls
35848         member.
35849         (bitint_large_huge::bitint_large_huge): Initialize it.
35850         (bitint_large_huge::~bitint_large_huge): Release it.
35851         (bitint_large_huge::lower_call): Remember ECF_RETURNS_TWICE call stmts
35852         before which at least one statement has been inserted.
35853         (gimple_lower_bitint): Move argument loads before ECF_RETURNS_TWICE
35854         calls to a different block and add corresponding PHIs.
35856 2024-03-15  YunQiang Su  <syq@gcc.gnu.org>
35858         * config/mips/mips.opt: Support -mstrict-align, and use
35859         TARGET_STRICT_ALIGN as the flag; keep -m(no-)unaligned-access
35860         as alias.
35861         * config/mips/mips.h: Use TARGET_STRICT_ALIGN.
35862         * config/mips/mips.opt.urls: Regenerate.
35863         * doc/invoke.texi: Document -m(no-)strict-algin for MIPSr6.
35865 2024-03-15  Tejas Belagod  <tejas.belagod@arm.com>
35867         PR middle-end/114108
35868         * tree-vect-patterns.cc (vect_recog_abd_pattern): Call
35869         vect_convert_output with the correct vecitype.
35871 2024-03-15  Chenghui Pan  <panchenghui@loongson.cn>
35873         * config/loongarch/lasx.md (lasx_xvpermi_q_<LASX:mode>):
35874         Remove masking of operand 3.
35876 2024-03-14  Jason Merrill  <jason@redhat.com>
35878         * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_*
35879         comments.
35881 2024-03-14  John David Anglin  <danglin@gcc.gnu.org>
35883         PR target/114288
35884         * config/pa/pa.cc (pa_legitimate_address_p): Don't allow
35885         14-bit displacements before reload for modes that may use
35886         a floating-point load or store.
35888 2024-03-14  David Faust  <david.faust@oracle.com>
35890         * config/bpf/bpf.h (INT8_TYPE): Change to signed char.
35892 2024-03-14  Max Filippov  <jcmvbkbc@gmail.com>
35894         * config/xtensa/xtensa.md (movsi_internal): Move l32i and s32i
35895         patterns ahead of the l32i.n and s32i.n.
35897 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
35899         * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): Fix comment typo.
35901 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
35903         PR middle-end/113907
35904         * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset
35905         SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged
35906         functions.
35908 2024-03-14  Xi Ruoyao  <xry111@xry111.site>
35910         * config/loongarch/loongarch.md (any_ge): Remove.
35911         (sge<u>_<X:mode><GPR:mode>): Remove.
35913 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
35915         PR target/114310
35916         * config/aarch64/aarch64.cc (aarch64_expand_compare_and_swap): For
35917         TImode force newval into a register.
35919 2024-03-14  Chung-Lin Tang  <cltang@baylibre.com>
35921         * tree.h (OMP_CLAUSE_MAP_READONLY): New macro.
35922         (OMP_CLAUSE__CACHE__READONLY): New macro.
35923         * tree-core.h (struct GTY(()) tree_base): Adjust comments for new
35924         uses of readonly_flag bit in OMP_CLAUSE_MAP_READONLY and
35925         OMP_CLAUSE__CACHE__READONLY.
35926         * tree-pretty-print.cc (dump_omp_clause): Add support for printing
35927         OMP_CLAUSE_MAP_READONLY and OMP_CLAUSE__CACHE__READONLY.
35929 2024-03-14  Andreas Krebbel  <krebbel@linux.ibm.com>
35931         * config/s390/s390.cc (s390_encode_section_info): Adjust the check
35932         for misaligned symbols.
35933         * config/s390/s390.opt: Improve documentation.
35935 2024-03-14  Jakub Jelinek  <jakub@redhat.com>
35937         * gimple-iterator.cc (edge_before_returns_twice_call): Copy all
35938         flags and probability from ad_edge to e edge.  If CDI_DOMINATORS
35939         are computed, recompute immediate dominator of other_edge->src
35940         and other_edge->dest.
35941         (gsi_safe_insert_before, gsi_safe_insert_seq_before): Update *iter
35942         for the returns_twice call case to the gsi_for_stmt (stmt) to deal
35943         with update it for bb splitting.
35945 2024-03-14  liuhongt  <hongtao.liu@intel.com>
35947         * config/i386/i386-features.cc
35948         (general_scalar_chain::convert_op): Handle REG_EH_REGION note.
35949         (convert_scalars_to_vector): Ditto.
35950         * config/i386/i386-features.h (class scalar_chain): New
35951         memeber control_flow_insns.
35953 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
35955         PR middle-end/114319
35956         * gimple-ssa-store-merging.cc
35957         (imm_store_chain_info::try_coalesce_bswap): For 32-bit targets
35958         allow matching __builtin_bswap64 if there is bswapsi2 optab.
35960 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
35962         * config/s390/s390.cc (s390_secondary_reload): Guard
35963         SYMBOL_FLAG_NOTALIGN2_P.
35965 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
35967         * config/s390/s390-builtin-types.def: Update to reflect latest
35968         changes.
35969         * config/s390/s390-builtins.def: Streamline vector builtins with
35970         LLVM.
35972 2024-03-13  Stefan Schulze Frielinghaus  <stefansf@linux.ibm.com>
35974         * config/s390/s390-builtins.def (vec_permi): Deprecate.
35975         (vec_ctd): Deprecate.
35976         (vec_ctd_s64): Deprecate.
35977         (vec_ctd_u64): Deprecate.
35978         (vec_ctsl): Deprecate.
35979         (vec_ctul): Deprecate.
35980         (vec_ld2f): Deprecate.
35981         (vec_st2f): Deprecate.
35982         (vec_insert): Deprecate overloads with bool vectors.
35984 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
35986         PR middle-end/114313
35987         * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
35988         TYPE_SIZE of TREE_TYPE (var) rather than TYPE_SIZE of type.
35989         (bitint_large_huge::handle_load): Pass NULL_TREE rather than
35990         rhs_type to limb_access for the bitfield load cases.
35991         (bitint_large_huge::lower_mergeable_stmt): Pass NULL_TREE rather than
35992         lhs_type to limb_access if nlhs is non-NULL.
35994 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
35996         PR sanitizer/112709
35997         * asan.cc (maybe_create_ssa_name, maybe_cast_to_ptrmode,
35998         build_check_stmt, maybe_instrument_call, asan_expand_mark_ifn): Use
35999         gsi_safe_insert_before instead of gsi_insert_before.
36001 2024-03-13  Jakub Jelinek  <jakub@redhat.com>
36003         PR sanitizer/112709
36004         * gimple-iterator.h (gsi_safe_insert_before,
36005         gsi_safe_insert_seq_before): Declare.
36006         * gimple-iterator.cc: Include gimplify.h.
36007         (edge_before_returns_twice_call, adjust_before_returns_twice_call,
36008         gsi_safe_insert_before, gsi_safe_insert_seq_before): New functions.
36009         * ubsan.cc (instrument_mem_ref, instrument_pointer_overflow,
36010         instrument_nonnull_arg, instrument_nonnull_return): Use
36011         gsi_safe_insert_before instead of gsi_insert_before.
36012         (maybe_instrument_pointer_overflow): Use force_gimple_operand,
36013         gimple_seq_add_seq_without_update and gsi_safe_insert_seq_before
36014         instead of force_gimple_operand_gsi.
36015         (instrument_object_size): Likewise.  Use gsi_safe_insert_before
36016         instead of gsi_insert_before.
36018 2024-03-12  Richard Biener  <rguenther@suse.de>
36020         PR tree-optimization/114121
36021         * tree-chrec.cc (chrec_fold_plus_1): Guard recursion with
36022         converted operand properly.
36023         (chrec_fold_multiply): Likewise.  Handle missed recursion.
36025 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
36027         PR sanitizer/112709
36028         * asan.cc (has_stmt_been_instrumented_p): Don't instrument call
36029         stores on the caller side unless it is a call to a builtin or
36030         internal function or function doesn't return by hidden reference.
36031         (maybe_instrument_call): Likewise.
36032         (instrument_derefs): Instrument stores to RESULT_DECL if
36033         returning by hidden reference.
36035 2024-03-12  Jakub Jelinek  <jakub@redhat.com>
36037         PR tree-optimization/114293
36038         * tree-ssa-strlen.cc (strlen_pass::handle_builtin_strlen): If
36039         max is smaller than min, set max to ~(size_t)0.
36041 2024-03-12  Pan Li  <pan2.li@intel.com>
36043         * config/riscv/riscv-c.cc (riscv_ext_version_value): Fix
36044         code style greater than 80 chars.
36045         (riscv_cpu_cpp_builtins): Fix useless empty line, indent
36046         with 3 space(s) and argument unalignment.
36048 2024-03-12  Richard Biener  <rguenther@suse.de>
36050         PR tree-optimization/114297
36051         * tree-vect-loop.cc (vectorizable_live_operation): Pass in the
36052         live stmts SLP node to vect_create_epilog_for_reduction.
36054 2024-03-12  Andrew Pinski  <quic_apinski@quicinc.com>
36056         PR driver/114314
36057         * common.opt (fmultiflags): Add RejectNegative.
36059 2024-03-11  Szabolcs Nagy  <szabolcs.nagy@arm.com>
36061         * config/aarch64/aarch64.md: Rename aarch_ to aarch64_.
36062         * config/aarch64/aarch64.opt: Likewise.
36063         * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
36064         * config/aarch64/aarch64.cc (aarch64_expand_prologue): Likewise.
36065         (aarch64_expand_epilogue): Likewise.
36066         (aarch64_post_cfi_startproc): Likewise.
36067         (aarch64_handle_no_branch_protection): Copy and rename.
36068         (aarch64_handle_standard_branch_protection): Likewise.
36069         (aarch64_handle_pac_ret_protection): Likewise.
36070         (aarch64_handle_pac_ret_leaf): Likewise.
36071         (aarch64_handle_pac_ret_b_key): Likewise.
36072         (aarch64_handle_bti_protection): Likewise.
36073         (aarch64_override_options): Update branch protection validation.
36074         (aarch64_handle_attr_branch_protection): Likewise.
36075         * config/arm/aarch-common-protos.h (aarch_validate_mbranch_protection):
36076         Pass branch protection type description as argument.
36077         (struct aarch_branch_protect_type): Move from aarch-common.h.
36078         * config/arm/aarch-common.cc (aarch_handle_no_branch_protection):
36079         Remove.
36080         (aarch_handle_standard_branch_protection): Remove.
36081         (aarch_handle_pac_ret_protection): Remove.
36082         (aarch_handle_pac_ret_leaf): Remove.
36083         (aarch_handle_pac_ret_b_key): Remove.
36084         (aarch_handle_bti_protection): Remove.
36085         (aarch_validate_mbranch_protection): Pass branch protection type
36086         description as argument.
36087         * config/arm/aarch-common.h (enum aarch_key_type): Remove.
36088         (struct aarch_branch_protect_type): Remove.
36089         * config/arm/arm-c.cc (arm_cpu_builtins): Remove aarch_ra_sign_key.
36090         * config/arm/arm.cc (arm_handle_no_branch_protection): Copy and rename.
36091         (arm_handle_standard_branch_protection): Likewise.
36092         (arm_handle_pac_ret_protection): Likewise.
36093         (arm_handle_pac_ret_leaf): Likewise.
36094         (arm_handle_bti_protection): Likewise.
36095         (arm_configure_build_target): Update branch protection validation.
36096         * config/arm/arm.opt: Remove aarch_ra_sign_key.
36098 2024-03-11  Richard Biener  <rguenther@suse.de>
36100         PR middle-end/114299
36101         * gimplify.cc (internal_get_tmp_var): When gimplification
36102         of VAL failed, return a decl.
36104 2024-03-11  Jakub Jelinek  <jakub@redhat.com>
36106         PR tree-optimization/114278
36107         * tree-ssa.cc (maybe_optimize_var): If large/huge _BitInt vars are no
36108         longer addressable, set DECL_NOT_GIMPLE_REG_P on them.
36110 2024-03-11  Eric Botcazou  <ebotcazou@adacore.com>
36112         PR debug/113519
36113         PR debug/113777
36114         * dwarf2out.cc (gen_enumeration_type_die): In the reverse case,
36115         generate the DIE with the same parent as in the regular case.
36117 2024-03-11  Andrew Pinski  <quic_apinski@quicinc.com>
36119         PR middle-end/95351
36120         * fold-const.cc (merge_truthop_with_opposite_arm): Use
36121         the type of the operands of the comparison and not the type
36122         of the comparison.
36124 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
36126         PR tree-optimization/110199
36127         * tree-ssa-scopedtables.cc
36128         (avail_exprs_stack::simplify_binary_operation): Generalize handling
36129         of MIN_EXPR/MAX_EXPR to allow additional simplifications.  Canonicalize
36130         comparison operands for other cases.
36132 2024-03-10  Pan Li  <pan2.li@intel.com>
36134         * tree-vect-stmts.cc (vectorizable_store): Enable the assert
36135         during transform process.
36136         (vectorizable_load): Ditto.
36138 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
36140         PR target/102250
36141         * doc/install.texi: Document need for python when building
36142         RISC-V compilers.
36144 2024-03-10  jlaw  <jeffreyalaw@gmail.com>
36146         PR target/111362
36147         * mode-switching.cc (optimize_mode_switching): Only process
36148         NONDEBUG insns.
36150 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
36152         * config/avr/avr.md: Fix typos in comment, indentation glitches
36153         and some other nits.
36155 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
36157         PR target/114284
36158         * fwprop.cc (try_fwprop_subst_pattern): Don't propagate
36159         src containing MEMs unless prop.likely_profitable_p ().
36161 2024-03-09  Xi Ruoyao  <xry111@xry111.site>
36163         * config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
36164         Support 'Q' for R_LARCH_RELAX for TLS IE.
36165         (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
36166         IE.
36167         * config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
36169 2024-03-09  Georg-Johann Lay  <avr@gjlay.de>
36171         * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
36172         usum_widenqihi and add_zero_extend1.
36173         [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
36174         sub+sign_extend.
36175         * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
36176         Compute exact insn lengths.
36177         (*usum_widenqihi3): Allow input operands to commute.
36179 2024-03-09  Jakub Jelinek  <jakub@redhat.com>
36181         * config/i386/i386.opt.urls: Regenerate.
36183 2024-03-09  Lulu Cheng  <chenglulu@loongson.cn>
36185         * config/loongarch/sync.md (atomic_cas_value_strong<mode>):
36186         In loongarch64, a sign extension operation is added when
36187         operands[2] is a register operand and the mode is SImode.
36189 2024-03-08  Martin Jambor  <mjambor@suse.cz>
36191         PR ipa/113757
36192         * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
36193         id->killed_new_ssa_names.
36195 2024-03-08  Vladimir N. Makarov  <vmakarov@redhat.com>
36197         PR target/113790
36198         * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
36199         for non-reload pseudo too.
36201 2024-03-08  David Faust  <david.faust@oracle.com>
36203         * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
36204         not attempt inline expansion if size is above threshold.
36205         * config/bpf/bpf.opt (-minline-memops-threshold): New option.
36206         * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
36207         Document.
36209 2024-03-08  Richard Biener  <rguenther@suse.de>
36211         PR tree-optimization/114269
36212         PR tree-optimization/114074
36213         * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
36214         in the third CASE_CONVERT case as well.
36215         (chrec_fold_multiply): Handle sign-conversions from unsigned
36216         by performing the operation in the unsigned type.
36218 2024-03-08  Georg-Johann Lay  <avr@gjlay.de>
36220         * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
36221         * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
36223 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
36225         * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
36226         asm_noperands < 0 means it is not asm goto too.
36228 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
36230         PR target/38534
36231         * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
36232         option.
36233         * config/i386/i386-options.cc (ix86_set_func_type): Don't use
36234         TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
36235         ix86_noreturn_no_callee_saved_registers is enabled.
36236         * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
36238 2024-03-08  Jakub Jelinek  <jakub@redhat.com>
36240         PR debug/113918
36241         * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
36242         on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
36244 2024-03-08  demin.han  <demin.han@starfivetech.com>
36246         PR target/114264
36247         * config/riscv/riscv-vector-costs.cc: Fix ICE
36249 2024-03-08  Haochen Gui  <guihaoc@gcc.gnu.org>
36251         * fwprop.cc (forward_propagate_into): Return false for volatile set
36252         source rtx.
36254 2024-03-07  Wilco Dijkstra  <wilco.dijkstra@arm.com>
36256         PR target/113618
36257         * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
36258         (aarch64_expand_cpymem): Emit single load/store only.
36259         (aarch64_set_one_block): Emit single stores only.
36261 2024-03-07  Robin Dapp  <rdapp@ventanamicro.com>
36263         PR middle-end/114196
36264         * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
36265         vectorization guards.
36267 2024-03-07  Jonathan Wakely  <jwakely@redhat.com>
36269         * doc/cppopts.texi: Remove incorrect claim about -dD not
36270         outputting predefined macros.
36272 2024-03-07  Jeevitha Palanisamy  <jeevitha@linux.ibm.com>
36274         PR target/113950
36275         * config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
36276         and simplify else if with else.
36278 2024-03-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
36280         * system.h: Include safe-ctype.h after C++ standard headers.
36282 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
36284         PR rtl-optimization/110079
36285         * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
36286         asm goto.
36288 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
36290         PR middle-end/105533
36291         * expmed.cc (choose_mult_variant): Only try the val - 1 variant
36292         if val is not HOST_WIDE_INT_MIN or if mode has exactly
36293         HOST_BITS_PER_WIDE_INT precision.  Avoid triggering UB while computing
36294         val - 1.
36296 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
36298         PR middle-end/105533
36299         * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
36300         Multiple op->off by BITS_PER_UNIT instead of shifting it left by
36301         LOG2_BITS_PER_UNIT.
36303 2024-03-07  Yang Yujie  <yangyujie@loongson.cn>
36305         * config.gcc: Add a case for loongarch*-*-linux-musl*.
36306         * config/loongarch/linux.h: Disable the multilib-compatible
36307         treatment for *musl* targets.
36308         * config/loongarch/musl.h: New file.
36310 2024-03-07  Jakub Jelinek  <jakub@redhat.com>
36312         PR tree-optimization/114009
36313         * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
36314         argument even for GENERIC, not just for GIMPLE.
36315         * match.pd (a * !a -> 0): New simplifications.
36317 2024-03-07  demin.han  <demin.han@starfivetech.com>
36319         * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
36320         * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
36321         (expand_vec_cmp_float): Adapt arguments
36323 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
36325         PR target/114232
36326         * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
36327         of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
36328         (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
36329         (<plusminus:insn>v2qi3): Enable for optimize_size instead
36330         of optimize_function_for_size_p.  Explictily enable for TARGET_SSE2.
36331         (<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
36332         (<any_shift:insn>v2qi3): Enable for optimize_size instead
36333         of optimize_function_for_size_p.
36335 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
36337         PR target/114200
36338         PR target/114202
36339         * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
36341 2024-03-06  Robin Dapp  <rdapp@ventanamicro.com>
36343         * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
36344         (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
36345         offset handling.
36346         (costs::add_stmt_cost): Also adjust cost for statements without
36347         stmt_info.
36348         * config/riscv/riscv-vector-costs.h: Define zero constant.
36350 2024-03-06  Wilco Dijkstra  <wilco.dijkstra@arm.com>
36352         PR target/113915
36353         * config/arm/arm.md (NOCOND): Improve comment.
36354         (arm_rev*) Add predicable.
36355         * config/arm/arm.cc (arm_final_prescan_insn): Add check for
36356         PREDICABLE_YES.
36358 2024-03-06  Jeff Law  <jlaw@ventanamicro.com>
36360         PR target/113001
36361         PR target/112871
36362         * config/riscv/riscv.cc (expand_conditional_move): Do not swap
36363         operands when the comparison operand is the same as the false
36364         arm for a NE test.
36366 2024-03-06  Uros Bizjak  <ubizjak@gmail.com>
36368         * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
36369         Eliminate common code and use generic code instead.
36371 2024-03-06  Georg-Johann Lay  <avr@gjlay.de>
36373         * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
36374         rtx cost.
36376 2024-03-06  Richard Biener  <rguenther@suse.de>
36378         PR tree-optimization/114239
36379         * tree-vect-loop.cc (vect_get_vect_def): Remove.
36380         (vect_create_epilog_for_reduction): The passed in stmt_info
36381         should now be the live stmt that produces the scalar reduction
36382         result.  Revert PR114192 fix.  Base reduction info off
36383         info_for_reduction.  Remove special handling of
36384         early-break/peeled, restore original vector def gathering.
36385         Make sure to pick the correct exit PHIs.
36386         (vectorizable_live_operation): Pass in the proper stmt_info
36387         for early break exits.
36389 2024-03-06  Richard Sandiford  <richard.sandiford@arm.com>
36391         * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
36392         out-of-class definitions of static constants.
36394 2024-03-06  Richard Biener  <rguenther@suse.de>
36396         PR tree-optimization/114249
36397         * tree-vect-slp.cc (vect_build_slp_instance): Move making
36398         a BB reduction lane number even ...
36399         (vect_slp_check_for_roots): ... here to avoid leaking
36400         pattern defs.
36402 2024-03-06  Richard Biener  <rguenther@suse.de>
36404         PR tree-optimization/114246
36405         * tree-ssa-dse.cc (increment_start_addr): Strip useless
36406         type conversions from the adjusted address.
36408 2024-03-06  Jakub Jelinek  <jakub@redhat.com>
36410         PR rtl-optimization/114190
36411         * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
36412         Call df_remove_problem for df_note before calling df_analyze.
36414 2024-03-05  Cupertino Miranda  <cupertino.miranda@oracle.com>
36415             Indu Bhagat  <indu.bhagat@oracle.com>
36417         PR debug/114186
36418         * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
36419         in the correct order of the dimensions.
36420         (gen_ctf_subrange_type): Refactor out handling of
36421         DW_TAG_subrange_type DIE to here.
36423 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
36425         PR sanitizer/97696
36426         * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
36428 2024-03-05  Richard Sandiford  <richard.sandiford@arm.com>
36430         * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
36431         and luti_strided.
36432         * config/aarch64/aarch64-sme.md
36433         (@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
36434         (@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
36435         (@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
36436         * config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
36437         (early_ra::maybe_convert_to_strided_access): Remove support for
36438         strided LUTI2 and LUTI4.
36440 2024-03-05  Richard Earnshaw  <rearnsha@arm.com>
36442         PR target/113510
36443         * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
36444         low_register_operand.
36446 2024-03-05  Georg-Johann Lay  <avr@gjlay.de>
36448         * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
36449         in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
36450         to "X = Y, X o= CST".
36452 2024-03-05  Xi Ruoyao  <xry111@xry111.site>
36454         * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
36455         s9 as an alias of r22.
36457 2024-03-05  Roger Sayle  <roger@nextmovesoftware.com>
36459         * config/avr/avr-protos.h (avr_out_insv): New proto.
36460         * config/avr/avr.cc (avr_out_insv): New function.
36461         (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
36462         (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
36463         * config/avr/avr.md (define_attr "adjust_len") Add insv.
36464         (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
36465         Add constraint alternative where the 3rd operand is a power
36466         of 2, and the source register may differ from the destination.
36467         (*insv.any_shift.<mode>_split): Call avr_out_insv to output
36468         instructions.  Set attr "length" to "insv".
36469         * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
36471 2024-03-05  Richard Biener  <rguenther@suse.de>
36473         PR tree-optimization/114231
36474         * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
36475         processing a BB SLP root.
36477 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
36479         PR rtl-optimization/114211
36480         * lower-subreg.cc (resolve_simple_move): For double-word
36481         rotates by BITS_PER_WORD if there is overlap between source
36482         and destination use a temporary.
36484 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
36486         PR middle-end/114157
36487         * gimple-lower-bitint.cc: Include stor-layout.h.
36488         (mergeable_op): Return true for BIT_FIELD_REF.
36489         (struct bitint_large_huge): Declare handle_bit_field_ref method.
36490         (bitint_large_huge::handle_bit_field_ref): New method.
36491         (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
36493 2024-03-05  Jakub Jelinek  <jakub@redhat.com>
36495         PR target/114116
36496         * config/i386/i386.h (enum call_saved_registers_type): Add
36497         TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
36498         * config/i386/i386-options.cc (ix86_set_func_type): Remove
36499         has_no_callee_saved_registers variable, add no_callee_saved_registers
36500         instead, initialize it depending on whether it is
36501         no_callee_saved_registers function or not.  Don't set it if
36502         no_caller_saved_registers attribute is present.  Adjust users.
36503         * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
36504         TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
36505         TYPE_NO_CALLEE_SAVED_REGISTERS.
36506         (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
36508 2024-03-05  Pan Li  <pan2.li@intel.com>
36510         * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
36511         mode_size related code.
36513 2024-03-05  Patrick Palka  <ppalka@redhat.com>
36515         * doc/invoke.texi (-Wno-global-module): Document.
36517 2024-03-04  David Faust  <david.faust@oracle.com>
36519         * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
36520         * config/bpf/bpf.cc (bpf_expand_setmem): New.
36521         * config/bpf/bpf.md (setmemdi): New define_expand.
36523 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
36525         PR rtl-optimization/113010
36526         * combine.cc (simplify_comparison): Guard the
36527         WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
36528         and initialize inner_mode.
36530 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
36532         * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
36533         VMLALDAVAXQ_U cases.
36534         (VMLALDAVXQ): Remove iterator.
36535         (VMLALDAVXQ_P): Likewise.
36536         (VMLALDAVAXQ): Likewise.
36537         * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
36538         mode iterator attribute with V4BI mode.
36539         * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
36540         VMLALDAVAXQ_U): Remove unused unspecs.
36542 2024-03-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>
36544         * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
36545         * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
36546         attribute.
36547         * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
36548         vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
36549         vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
36550         vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
36551         vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
36552         vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
36553         vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
36554         vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
36555         vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
36556         vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
36558 2024-03-04  Stam Markianos-Wright  <stam.markianos-wright@arm.com>
36560         * config/arm/arm.md (mve_unpredicated_insn): New attribute.
36561         * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
36562         (MVE_VPT_UNPREDICATED_INSN_P): Likewise.
36563         (MVE_VPT_PREDICABLE_INSN_P): Likewise.
36564         * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
36565         * config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
36566         (arm_vcx1q<a>v16qi): Likewise.
36567         (arm_vcx1qav16qi): Likewise.
36568         (arm_vcx1qv16qi): Likewise.
36569         (arm_vcx2q<a>_p_v16qi): Likewise.
36570         (arm_vcx2q<a>v16qi): Likewise.
36571         (arm_vcx2qav16qi): Likewise.
36572         (arm_vcx2qv16qi): Likewise.
36573         (arm_vcx3q<a>_p_v16qi): Likewise.
36574         (arm_vcx3q<a>v16qi): Likewise.
36575         (arm_vcx3qav16qi): Likewise.
36576         (arm_vcx3qv16qi): Likewise.
36577         (@mve_<mve_insn>q_<supf><mode>): Likewise.
36578         (@mve_<mve_insn>q_int_<supf><mode>): Likewise.
36579         (@mve_<mve_insn>q_<supf>v4si): Likewise.
36580         (@mve_<mve_insn>q_n_<supf><mode>): Likewise.
36581         (@mve_<mve_insn>q_r_<supf><mode>): Likewise.
36582         (@mve_<mve_insn>q_f<mode>): Likewise.
36583         (@mve_<mve_insn>q_m_<supf><mode>): Likewise.
36584         (@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
36585         (@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
36586         (@mve_<mve_insn>q_m_f<mode>): Likewise.
36587         (@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
36588         (@mve_<mve_insn>q_p_<supf>v4si): Likewise.
36589         (@mve_<mve_insn>q_p_<supf><mode>): Likewise.
36590         (@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
36591         (@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
36592         (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
36593         (@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
36594         (mve_v<absneg_str>q_f<mode>): Likewise.
36595         (mve_<mve_addsubmul>q<mode>): Likewise.
36596         (mve_<mve_addsubmul>q_f<mode>): Likewise.
36597         (mve_vadciq_<supf>v4si): Likewise.
36598         (mve_vadciq_m_<supf>v4si): Likewise.
36599         (mve_vadcq_<supf>v4si): Likewise.
36600         (mve_vadcq_m_<supf>v4si): Likewise.
36601         (mve_vandq_<supf><mode>): Likewise.
36602         (mve_vandq_f<mode>): Likewise.
36603         (mve_vandq_m_<supf><mode>): Likewise.
36604         (mve_vandq_m_f<mode>): Likewise.
36605         (mve_vandq_s<mode>): Likewise.
36606         (mve_vandq_u<mode>): Likewise.
36607         (mve_vbicq_<supf><mode>): Likewise.
36608         (mve_vbicq_f<mode>): Likewise.
36609         (mve_vbicq_m_<supf><mode>): Likewise.
36610         (mve_vbicq_m_f<mode>): Likewise.
36611         (mve_vbicq_m_n_<supf><mode>): Likewise.
36612         (mve_vbicq_n_<supf><mode>): Likewise.
36613         (mve_vbicq_s<mode>): Likewise.
36614         (mve_vbicq_u<mode>): Likewise.
36615         (@mve_vclzq_s<mode>): Likewise.
36616         (mve_vclzq_u<mode>): Likewise.
36617         (@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
36618         (@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
36619         (@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
36620         (@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
36621         (@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
36622         (@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
36623         (@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
36624         (@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
36625         (mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
36626         (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
36627         (mve_vcvtaq_<supf><mode>): Likewise.
36628         (mve_vcvtaq_m_<supf><mode>): Likewise.
36629         (mve_vcvtbq_f16_f32v8hf): Likewise.
36630         (mve_vcvtbq_f32_f16v4sf): Likewise.
36631         (mve_vcvtbq_m_f16_f32v8hf): Likewise.
36632         (mve_vcvtbq_m_f32_f16v4sf): Likewise.
36633         (mve_vcvtmq_<supf><mode>): Likewise.
36634         (mve_vcvtmq_m_<supf><mode>): Likewise.
36635         (mve_vcvtnq_<supf><mode>): Likewise.
36636         (mve_vcvtnq_m_<supf><mode>): Likewise.
36637         (mve_vcvtpq_<supf><mode>): Likewise.
36638         (mve_vcvtpq_m_<supf><mode>): Likewise.
36639         (mve_vcvtq_from_f_<supf><mode>): Likewise.
36640         (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
36641         (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
36642         (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
36643         (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
36644         (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
36645         (mve_vcvtq_n_to_f_<supf><mode>): Likewise.
36646         (mve_vcvtq_to_f_<supf><mode>): Likewise.
36647         (mve_vcvttq_f16_f32v8hf): Likewise.
36648         (mve_vcvttq_f32_f16v4sf): Likewise.
36649         (mve_vcvttq_m_f16_f32v8hf): Likewise.
36650         (mve_vcvttq_m_f32_f16v4sf): Likewise.
36651         (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
36652         (mve_vdwdupq_wb_u<mode>_insn): Likewise.
36653         (mve_veorq_s><mode>): Likewise.
36654         (mve_veorq_u><mode>): Likewise.
36655         (mve_veorq_f<mode>): Likewise.
36656         (mve_vidupq_m_wb_u<mode>_insn): Likewise.
36657         (mve_vidupq_u<mode>_insn): Likewise.
36658         (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
36659         (mve_viwdupq_wb_u<mode>_insn): Likewise.
36660         (mve_vldrbq_<supf><mode>): Likewise.
36661         (mve_vldrbq_gather_offset_<supf><mode>): Likewise.
36662         (mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
36663         (mve_vldrbq_z_<supf><mode>): Likewise.
36664         (mve_vldrdq_gather_base_<supf>v2di): Likewise.
36665         (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
36666         (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
36667         (mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
36668         (mve_vldrdq_gather_offset_<supf>v2di): Likewise.
36669         (mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
36670         (mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
36671         (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
36672         (mve_vldrhq_<supf><mode>): Likewise.
36673         (mve_vldrhq_fv8hf): Likewise.
36674         (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
36675         (mve_vldrhq_gather_offset_fv8hf): Likewise.
36676         (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
36677         (mve_vldrhq_gather_offset_z_fv8hf): Likewise.
36678         (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
36679         (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
36680         (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
36681         (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
36682         (mve_vldrhq_z_<supf><mode>): Likewise.
36683         (mve_vldrhq_z_fv8hf): Likewise.
36684         (mve_vldrwq_<supf>v4si): Likewise.
36685         (mve_vldrwq_fv4sf): Likewise.
36686         (mve_vldrwq_gather_base_<supf>v4si): Likewise.
36687         (mve_vldrwq_gather_base_fv4sf): Likewise.
36688         (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
36689         (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
36690         (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
36691         (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
36692         (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
36693         (mve_vldrwq_gather_base_z_fv4sf): Likewise.
36694         (mve_vldrwq_gather_offset_<supf>v4si): Likewise.
36695         (mve_vldrwq_gather_offset_fv4sf): Likewise.
36696         (mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
36697         (mve_vldrwq_gather_offset_z_fv4sf): Likewise.
36698         (mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
36699         (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
36700         (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
36701         (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
36702         (mve_vldrwq_z_<supf>v4si): Likewise.
36703         (mve_vldrwq_z_fv4sf): Likewise.
36704         (mve_vmvnq_s<mode>): Likewise.
36705         (mve_vmvnq_u<mode>): Likewise.
36706         (mve_vornq_<supf><mode>): Likewise.
36707         (mve_vornq_f<mode>): Likewise.
36708         (mve_vornq_m_<supf><mode>): Likewise.
36709         (mve_vornq_m_f<mode>): Likewise.
36710         (mve_vornq_s<mode>): Likewise.
36711         (mve_vornq_u<mode>): Likewise.
36712         (mve_vorrq_<supf><mode>): Likewise.
36713         (mve_vorrq_f<mode>): Likewise.
36714         (mve_vorrq_m_<supf><mode>): Likewise.
36715         (mve_vorrq_m_f<mode>): Likewise.
36716         (mve_vorrq_m_n_<supf><mode>): Likewise.
36717         (mve_vorrq_n_<supf><mode>): Likewise.
36718         (mve_vorrq_s<mode>): Likewise.
36719         (mve_vorrq_s<mode>): Likewise.
36720         (mve_vsbciq_<supf>v4si): Likewise.
36721         (mve_vsbciq_m_<supf>v4si): Likewise.
36722         (mve_vsbcq_<supf>v4si): Likewise.
36723         (mve_vsbcq_m_<supf>v4si): Likewise.
36724         (mve_vshlcq_<supf><mode>): Likewise.
36725         (mve_vshlcq_m_<supf><mode>): Likewise.
36726         (mve_vshrq_m_n_<supf><mode>): Likewise.
36727         (mve_vshrq_n_<supf><mode>): Likewise.
36728         (mve_vstrbq_<supf><mode>): Likewise.
36729         (mve_vstrbq_p_<supf><mode>): Likewise.
36730         (mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
36731         (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
36732         (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
36733         (mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
36734         (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
36735         (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
36736         (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
36737         (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
36738         (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
36739         (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
36740         (mve_vstrhq_<supf><mode>): Likewise.
36741         (mve_vstrhq_fv8hf): Likewise.
36742         (mve_vstrhq_p_<supf><mode>): Likewise.
36743         (mve_vstrhq_p_fv8hf): Likewise.
36744         (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
36745         (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
36746         (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
36747         (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
36748         (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
36749         (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
36750         (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
36751         (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
36752         (mve_vstrwq_<supf>v4si): Likewise.
36753         (mve_vstrwq_fv4sf): Likewise.
36754         (mve_vstrwq_p_<supf>v4si): Likewise.
36755         (mve_vstrwq_p_fv4sf): Likewise.
36756         (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
36757         (mve_vstrwq_scatter_base_fv4sf): Likewise.
36758         (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
36759         (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
36760         (mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
36761         (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
36762         (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
36763         (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
36764         (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
36765         (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
36766         (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
36767         (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
36768         (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
36769         (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
36770         (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
36771         (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
36773 2024-03-04  Marek Polacek  <polacek@redhat.com>
36775         * doc/extend.texi: Update [[gnu::no_dangling]].
36777 2024-03-04  Andrew Stubbs  <ams@baylibre.com>
36779         * dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
36780         * expr.cc (store_constructor): Likewise.
36781         (do_store_flag): Likewise.
36783 2024-03-04  Mark Wielaard  <mark@klomp.org>
36785         * common.opt.urls: Regenerate.
36786         * config/avr/avr.opt.urls: Likewise.
36787         * config/i386/i386.opt.urls: Likewise.
36788         * config/pru/pru.opt.urls: Likewise.
36789         * config/riscv/riscv.opt.urls: Likewise.
36790         * config/rs6000/rs6000.opt.urls: Likewise.
36792 2024-03-04  Richard Biener  <rguenther@suse.de>
36794         PR tree-optimization/114197
36795         * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
36796         there are volatile bitfield accesses.
36797         (pass_if_conversion::execute): Throw away result if the
36798         if-converted and original loops are not nested as expected.
36800 2024-03-04  Richard Biener  <rguenther@suse.de>
36802         PR tree-optimization/114164
36803         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
36804         the code generated for mask argument setup is not supported.
36806 2024-03-04  Richard Biener  <rguenther@suse.de>
36808         PR tree-optimization/114203
36809         * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
36810         adjustment before making the result defined at zero.
36812 2024-03-04  Richard Biener  <rguenther@suse.de>
36814         PR tree-optimization/114192
36815         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
36816         appropriate def for the live out stmt in case of an alternate
36817         exit.
36819 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
36821         PR middle-end/114209
36822         * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
36823         unshare_expr when creating a MEM_REF from MEM_REF.
36824         (bitint_large_huge::lower_stmt): Call unshare_expr.
36826 2024-03-04  Jakub Jelinek  <jakub@redhat.com>
36828         PR target/114184
36829         * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
36830         is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
36831         register.
36833 2024-03-04  Roger Sayle  <roger@nextmovesoftware.com>
36835         PR target/114187
36836         * simplify-rtx.cc (simplify_context::simplify_subreg): Call
36837         lowpart_subreg to perform type conversion, to avoid confusion
36838         over the offset to use in the call to simplify_reg_subreg.
36840 2024-03-03  Greg McGary  <gkm@rivosinc.com>
36842         PR rtl-optimization/113010
36843         * combine.cc (simplify_comparison): Simplify a SUBREG on
36844         WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
36845         MEM load.
36847 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
36849         * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
36850         Use bool in place of int for boolean logic (if possible).
36851         Move declarations to definitions (if possible).
36852         * config/avr/avr.md: Use C++ comments.  Fix some indentation glitches.
36853         * config/avr/avr-dimode.md: Same.
36854         * config/avr/constraints.md: Same.
36855         * config/avr/predicates.md: Same.
36857 2024-03-03  Uros Bizjak  <ubizjak@gmail.com>
36859         PR target/113720
36860         * config/alpha/alpha.md (umuldi3_highpart): Remove expander.
36861         (*umuldi3_highpart_reg): Rename to umuldi3_highpart and
36862         simplify insn RTX using UMUL_HIGHPART rtx_code.
36863         (*umuldi3_highpart_const): Remove.
36865 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
36867         PR target/114100
36868         * config/avr/avr-protos.h (_reg_unused_after): Remove proto.
36869         * config/avr/avr.cc (_reg_unused_after): Make static.  And
36870         add 3rd argument to skip the current insn.
36871         (reg_unused_after): Adjust call of reg_unused_after.
36872         (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
36873         unneeded frame pointer adjustments.
36875 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
36877         PR target/92729
36878         * config/avr/avr.md (define_attr "cc"): Remove.
36879         * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
36880         from prototype.
36881         * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
36882         its uses.  Add insn argument.
36883         (avr_out_plus_symbol): Remove pcc argument and its uses.
36884         (avr_out_plus): Remove pcc argument and its uses.
36885         Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
36886         (avr_out_round): Adjust call of avr_out_plus.
36888 2024-03-03  Georg-Johann Lay  <avr@gjlay.de>
36890         * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
36891         from  r14-9273.
36893 2024-03-03  Oleg Endo  <olegendo@gcc.gnu.org>
36895         PR target/101737
36896         * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
36897         is not an insn, but e.g. a code label.
36899 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
36901         * config/avr/avr.md (REG_0, ... REG_36): New define_constants.
36902         * config/avr/avr.cc: Use them instead of magic numbers when it
36903         means a register number.
36905 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
36907         * config/avr/avr.cc: Adjust some comments.
36909 2024-03-02  Georg-Johann Lay  <avr@gjlay.de>
36911         PR target/114100
36912         * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
36913         the low part of the frame pointer with 8-bit stack pointer.
36915 2024-03-01  Patrick Palka  <ppalka@redhat.com>
36917         PR c++/104919
36918         PR c++/106009
36919         * tree-inline.cc (remap_decl): Handle copy_decl returning the
36920         original decl.
36921         (remap_decls): Handle remap_decl returning the original decl.
36922         (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
36923         CONST_DECL.
36925 2024-03-01  Jeff Law  <jlaw@ventanamicro.com>
36927         * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
36928         type attribute.
36929         (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
36930         (movdi_32bit, movdi_64bit, movsi_internal): Likewise.
36931         (movhi_internal, movqi_internal): Likewise.
36932         (movsf_softfloat, movsf_hardfloat): Likewise.
36933         (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
36934         (movdf_softfloat): Likewise.
36936 2024-03-01  Marek Polacek  <polacek@redhat.com>
36938         PR c++/110358
36939         PR c++/109642
36940         * doc/extend.texi: Document gnu::no_dangling.
36941         * doc/invoke.texi: Mention that gnu::no_dangling disables
36942         -Wdangling-reference.
36944 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
36946         * config/avr/avr.opt: Overhaul help screen.
36948 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
36949             Tobias Burnus  <tburnus@baylibre.com>
36951         PR c++/110347
36952         * gimplify.cc (omp_notice_variable): Fix 'shared' arg to
36953         lang_hooks.decls.omp_disregard_value_expr for
36954         (first)private in target regions.
36956 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
36958         PR middle-end/114136
36959         * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
36960         n_named_args initially before INIT_CUMULATIVE_ARGS to
36961         structure_value_addr_parm rather than 0, after it don't modify
36962         it if strict_argument_naming and clear only if
36963         !pretend_outgoing_varargs_named.
36965 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
36967         PR debug/114015
36968         * dwarf2out.cc (should_move_die_to_comdat): Return false for
36969         aggregates without DW_AT_byte_size attribute or with non-constant
36970         DW_AT_byte_size.
36972 2024-03-01  Georg-Johann Lay  <avr@gjlay.de>
36974         * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
36975         valid values for level.
36977 2024-03-01  Richard Biener  <rguenther@suse.de>
36979         PR middle-end/114070
36980         * match.pd ((c ? a : b) op d  -->  c ? (a op d) : (b op d)):
36981         Allow the folding if before lowering and the current IL
36982         isn't supported with vcond_mask.
36984 2024-03-01  xuli  <xuli1@eswincomputing.com>
36986         * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
36987         attribute to riscv_attribute_table.
36988         (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
36989         (riscv_fntype_abi): Add riscv_vector_cc attribute check.
36990         * doc/extend.texi: Add riscv_vector_cc attribute description.
36992 2024-03-01  Pan Li  <pan2.li@intel.com>
36994         PR target/112817
36995         * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
36996         RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
36997         * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
36998         (enum rvv_vector_bits_enum): New enum for different RVV vector bits.
36999         * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
37000         comments for option replacement.
37001         * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
37002         riscv_autovec_preference to rvv_vector_bits.
37003         (vls_mode_valid_p): Ditto.
37004         (estimated_poly_value): Ditto.
37005         * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
37006         vector chunks and honor new option mrvv-vector-bits.
37007         (riscv_override_options_internal): Update comments and rename the
37008         vector chunks.
37009         * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
37010         internal option param=riscv-autovec-preference.
37012 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
37014         * function.cc (assign_parms): Only call assign_parms_setup_varargs
37015         early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
37017 2024-03-01  Jakub Jelinek  <jakub@redhat.com>
37019         PR middle-end/114156
37020         * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
37021         rhs1 of a VCE to have no underlying variable if it is a load and
37022         handle that case.
37024 2024-02-29  David Malcolm  <dmalcolm@redhat.com>
37026         PR analyzer/114159
37027         * function.cc (function_name): Make param const.
37028         * function.h (function_name): Likewise.
37030 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
37032         PR target/114100
37033         * doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
37034         * config/avr/avr.opt (-mfuse-add=): New target option.
37035         * common/config/avr/avr-common.cc (avr_option_optimization_table)
37036         [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
37037         [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
37038         * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
37039         * config/avr/avr-protos.h (avr_split_tiny_move)
37040         (make_avr_pass_fuse_add): New protos.
37041         * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
37042         avr_split_tiny_move to split indirect memory accesses.
37043         (gen_move_clobbercc): New define_expand helper.
37044         * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
37045         (avr_pass_fuse_add): New class from rtl_opt_pass.
37046         (make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
37047         (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
37048         (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
37049         of PLUS addressing for AVR_TINY.
37050         (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
37051         (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
37052         (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
37054 2024-02-29  Georg-Johann Lay  <avr@gjlay.de>
37056         PR target/114132
37057         * config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
37058         * config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
37059         (avr_function_arg): Set it.
37060         (avr_frame_pointer_required_p): Use it instead of .nregs.
37062 2024-02-29  Andrew Pinski  <quic_apinski@quicinc.com>
37064         PR target/108174
37065         * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
37066         static and mark with GTY.
37068 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
37070         * config/loongarch/loongarch.md
37071         (loongarch_<crc>_w_<size>_w_extended): New define_insn.
37073 2024-02-29  Xi Ruoyao  <xry111@xry111.site>
37075         * config/loongarch/loongarch.md (CRC): New define_int_iterator.
37076         (crc): New define_int_attr.
37077         (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
37078         into ...
37079         (loongarch_<crc>_w_<size>_w): ... here.
37081 2024-02-29  Kito Cheng  <kito.cheng@sifive.com>
37083         PR target/114130
37084         * config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
37085         extend the expected value if needed.
37087 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
37089         * config.gcc (target_gtfiles): Change coreout to btfext-out.
37090         (extra_objs): Change coreout to btfext-out.
37091         * config/bpf/coreout.cc: Rename to btfext-out.cc.
37092         * config/bpf/btfext-out.cc: Add.
37093         * config/bpf/coreout.h: Rename to btfext-out.h.
37094         * config/bpf/btfext-out.h: Add.
37095         * config/bpf/core-builtins.cc: Change include.
37096         * config/bpf/core-builtins.h: Change include.
37097         * config/bpf/t-bpf: Accomodate renamed files.
37099 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
37101         PR target/113453
37102         * config/bpf/bpf.cc (bpf_function_prologue): Define target
37103         hook.
37104         * config/bpf/coreout.cc (brf_ext_info_section)
37105         (btf_ext_info): Move from coreout.h
37106         (btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
37107         (bpf_core_reloc): Rename to btf_ext_core_reloc.
37108         (btf_ext): Add static variable.
37109         (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
37110         (bpf_create_or_find_funcinfo, bpt_create_core_reloc)
37111         (btf_ext_add_string, btf_funcinfo_type_callback)
37112         (btf_add_func_info_for, btf_validate_funcinfo)
37113         (btf_ext_info_len, output_btfext_func_info): Add function.
37114         (output_btfext_header, bpf_core_reloc_add)
37115         (output_btfext_core_relocs, btf_ext_init, btf_ext_output):
37116         Change to support new structs.
37117         * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
37118         Move and change in coreout.cc.
37119         (btf_add_func_info_for, btf_ext_add_string): Add prototypes.
37121 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
37123         * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
37124         enabled by default for BPF.
37125         (bpf_file_end): Call BTF deallocation.
37126         (bpf_asm_init_sections): Correct condition.
37127         * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
37128         deallocation.
37129         (ctf_debuf_finish): Correct condition for calling
37130         ctf_debug_finalize.
37132 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
37134         * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
37135         (traverse_btf_func_types): Define function.
37136         * ctfc.h (funcs_traverse_callback): Typedef for function
37137         prototype.
37138         (traverse_btf_func_types): Add prototype.
37140 2024-02-28  Cupertino Miranda  <cupertino.miranda@oracle.com>
37142         * btfout.cc (btf_collect_dataset): Corrects BTF type id.
37144 2024-02-28  Richard Biener  <rguenther@suse.de>
37146         PR tree-optimization/113831
37147         PR tree-optimization/108355
37148         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
37149         PR113831 fix.
37151 2024-02-28  Richard Biener  <rguenther@suse.de>
37153         PR tree-optimization/114121
37154         * tree-ssa-sccvn.h (vn_reference_s::offset,
37155         vn_reference_s::max_size): New fields.
37156         (vn_reference_insert_pieces): Adjust prototype.
37157         * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
37158         * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
37159         size, allow using "don't know" state.
37160         (vn_walk_cb_data::finish): Pass along offset/max_size.
37161         (vn_reference_lookup_or_insert_for_pieces): Take offset and
37162         max_size as argument and use it.
37163         (vn_reference_lookup_3): Properly adjust offset and max_size
37164         according to the adjusted ao_ref.
37165         (vn_reference_lookup_pieces): Initialize offset and max_size.
37166         (vn_reference_lookup): Likewise.
37167         (vn_reference_lookup_call): Likewise.
37168         (vn_reference_insert): Likewise.
37169         (visit_reference_op_call): Likewise.
37170         (vn_reference_insert_pieces): Take offset and max_size
37171         as argument and use it.
37173 2024-02-28  Juergen Christ  <jchrist@linux.ibm.com>
37175         PR tree-optimization/114075
37176         * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
37177         point vectors
37179 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
37181         PR tree-optimization/114041
37182         * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
37183         INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
37185 2024-02-28  Jakub Jelinek  <jakub@redhat.com>
37187         PR tree-optimization/113988
37188         * stor-layout.h (bitwise_mode_for_size): Declare.
37189         * stor-layout.cc (bitwise_mode_for_size): New function.
37190         * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
37191         Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
37192         Use BITS_PER_UNIT instead of 8.
37194 2024-02-27  Uros Bizjak  <ubizjak@gmail.com>
37196         PR target/113871
37197         * config/i386/mmx.md (V248FI): Add V2BF mode.
37198         (V24FI_32): Ditto.
37200 2024-02-27  Eric Botcazou  <ebotcazou@adacore.com>
37202         * tree-ssa-dse.cc (compute_trims): Fix description.  Return early
37203         if either ref->offset is not byte aligned or ref->size is not known
37204         to be equal to ref->max_size.
37205         (maybe_trim_complex_store): Fix description.
37206         (maybe_trim_constructor_store): Likewise.
37207         (maybe_trim_partially_dead_store): Likewise.
37209 2024-02-27  Richard Earnshaw  <rearnsha@arm.com>
37211         * config/arm/mmintrin.h: Warn if this header is included without
37212         defining __ENABLE_DEPRECATED_IWMMXT.
37214 2024-02-27  Richard Biener  <rguenther@suse.de>
37216         PR tree-optimization/114074
37217         * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
37218         * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
37219         Handle poly vs. non-poly multiplication correctly with respect
37220         to undefined behavior on overflow.
37222 2024-02-27  Jakub Jelinek  <jakub@redhat.com>
37224         PR rtl-optimization/114044
37225         * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
37226         DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
37227         * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
37228         expand_PARITY): Declare.
37229         * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
37230         expand_CTZ, expand_FFS, expand_PARITY): New functions.
37231         (expand_POPCOUNT): Use expand_bitquery.
37233 2024-02-27  Richard Biener  <rguenther@suse.de>
37235         PR tree-optimization/114081
37236         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
37237         Perform manual dominator update for prologue peeling.
37238         (vect_do_peeling): Properly update dominators after adding the
37239         prologue-around guard.
37241 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
37243         * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
37244         (mstrict-X): Tag as "Optimization".
37246 2024-02-26  Georg-Johann Lay  <avr@gjlay.de>
37248         * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
37249         an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
37251 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
37252             H.J. Lu  <hjl.tools@gmail.com>
37254         PR rtl-optimization/113617
37255         * varasm.cc (default_elf_select_rtx_section): For
37256         references to private symbols in comdat sections
37257         use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
37258         or .rodata.<comdat> comdat sections.
37260 2024-02-26  Richard Biener  <rguenther@suse.de>
37262         PR tree-optimization/114099
37263         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
37264         Create and fill in a needed virtual LC PHI for the alternate
37265         exits.  Remove code dealing with that missing.
37267 2024-02-26  Richard Biener  <rguenther@suse.de>
37269         PR tree-optimization/114068
37270         * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
37271         New function.
37272         (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
37273         on the main exit if needed.  Remove band-aid for the case
37274         it was missing.
37276 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
37278         PR target/114097
37279         * config/i386/i386-options.cc (ix86_set_func_type): Check
37280         interrupt instead of noreturn attribute.
37282 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
37284         * config/i386/i386.cc (ix86_bitint_type_info): Add support for
37285         !TARGET_64BIT.
37287 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
37289         PR tree-optimization/114090
37290         * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
37291         Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
37292         types.
37293         ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
37295 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
37297         PR middle-end/114084
37298         * fold-const.cc (fold_binary_loc): Avoid the final associate_trees
37299         if all subtrees of var0 come from one of the op0 or op1 operands
37300         and all subtrees of con0 come from the other one.  Don't clear
37301         variables which are never used afterwards.
37303 2024-02-26  Richard Biener  <rguenther@suse.de>
37305         PR middle-end/114070
37306         * genmatch.cc (parser::parse_c_expr): Do not record operand
37307         lists but only mark operators used.
37308         * match.pd ((c ? a : b) op (c ? d : e)  -->  c ? (a op d) : (b op e)):
37309         Properly guard the case of tcc_comparison changing the VEC_COND
37310         value operand type.
37312 2024-02-26  Jakub Jelinek  <jakub@redhat.com>
37314         PR target/114094
37315         * config/i386/i386.cc (x86_function_profiler): Add missing new-line
37316         to printed instruction.
37318 2024-02-26  H.J. Lu  <hjl.tools@gmail.com>
37320         PR target/114098
37321         * config/i386/amxtileintrin.h (_tile_loadconfig): Use
37322         __builtin_ia32_ldtilecfg.
37323         (_tile_storeconfig): Use __builtin_ia32_sttilecfg.
37324         * config/i386/i386-builtin.def (BDESC): Add
37325         __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
37326         * config/i386/i386-expand.cc (ix86_expand_builtin): Handle
37327         IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
37328         * config/i386/i386.md (ldtilecfg): New pattern.
37329         (sttilecfg): Likewise.
37331 2024-02-24  Richard Sandiford  <richard.sandiford@arm.com>
37333         PR tree-optimization/113205
37334         * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
37335         the proposed layout if it does not allow a source partition with
37336         layout 2 to keep that layout.
37338 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
37340         * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
37341         * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
37342         * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
37343         * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
37344         (mk_attr_alt): Use HOST_WIDE_INT_0 macro.
37345         * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
37346         macros.
37347         * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
37348         * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
37349         * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
37350         HOST_WIDE_INT_UC macros.
37351         * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
37352         * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
37353         * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
37354         * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
37355         macros.
37356         * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
37357         * config/i386/constraints.md (define_constraint "L"): Use
37358         HOST_WIDE_INT_C macro.
37359         * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
37360         macro.
37361         (movl + movb peephole2): Likewise.
37362         * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
37363         (const_32bit_mask): Likewise.
37365 2024-02-24  Jakub Jelinek  <jakub@redhat.com>
37367         PR middle-end/114073
37368         * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
37369         VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
37370         types like vector or complex types.
37371         (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
37372         types.  Fix up VIEW_CONVERT_EXPR handling.  Allow merging
37373         VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
37375 2024-02-23  Robin Dapp  <rdapp@ventanamicro.com>
37377         PR target/114028
37378         * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
37379         Return false if inner mode is already Pmode.
37380         (rvv_builder::is_all_same_sequence): New function.
37381         (expand_vec_init): Emit broadcast if sequence is all same.
37383 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
37385         PR target/113613
37386         * config/aarch64/aarch64-early-ra.cc
37387         (early_ra::m_current_region): New member variable.
37388         (early_ra::m_fpr_recency): Likewise.
37389         (early_ra::start_new_region): Bump m_current_region.
37390         (early_ra::allocate_colors): Prefer less recently used registers
37391         in the event of a tie.  Add a comment to explain why we prefer(ed)
37392         higher-numbered registers.
37393         (early_ra::find_oldest_color): Prefer less recently used registers
37394         here too.
37395         (early_ra::finalize_allocation): Update recency information for
37396         allocated registers.
37397         (early_ra::process_blocks): Initialize m_current_region and
37398         m_fpr_recency.
37400 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
37402         PR target/113295
37403         * config/aarch64/aarch64-early-ra.cc
37404         (early_ra::test_strictness): New enum.
37405         (early_ra::is_chain_candidate): Add a strictness parameter to
37406         control whether only correctness matters, or whether both correctness
37407         and heuristics should be used.  Handle multiple levels of equivalence.
37408         (early_ra::find_related_start): Update call accordingly.
37409         (early_ra::strided_polarity_pref): Likewise.
37410         (early_ra::form_chains): Likewise.
37411         (early_ra::try_to_chain_allocnos): Use is_chain_candidate in
37412         correctness mode rather than trying to inline the test.
37414 2024-02-23  Richard Sandiford  <richard.sandiford@arm.com>
37416         PR target/113295
37417         * config/aarch64/aarch64-early-ra.cc
37418         (early_ra::find_related_start): Account for definitions by shared
37419         registers when testing for a single register definition.
37420         (early_ra::accumulate_defs): New function.
37421         (early_ra::record_copy): If A shares B's register, fold A's
37422         definition information into B's.  Fold A's use information into B's.
37424 2024-02-23  H.J. Lu  <hjl.tools@gmail.com>
37426         * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
37427         if R_X86_64_CODE_6_GOTTPOFF is supported.
37428         * config.in: Regenerated.
37429         * configure: Likewise.
37430         * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
37431         UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
37433 2024-02-23  Richard Earnshaw  <rearnsha@arm.com>
37435         PR target/108120
37436         * config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
37437         Gate with ARM_HAVE_NEON_<MODE>_ARITH.
37439 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
37441         PR rtl-optimization/114054
37442         * expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
37443         temp variable instead of target parameter for result.
37445 2024-02-23  Jakub Jelinek  <jakub@redhat.com>
37447         PR tree-optimization/114040
37448         * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
37449         Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
37450         probability from likely to unlikely.  When handling the true true
37451         store, first cast to limb_access_type and then to l's type.
37453 2024-02-23  Richard Biener  <rguenther@suse.de>
37455         PR target/90785
37456         * config.gcc: Add ia64*-*-* to the list of obsoleted targets.
37458 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
37460         PR other/109668
37461         * config/riscv/arch-canonicalize: Move to python3
37462         * config/riscv/multilib-generator: Likewise
37464 2024-02-23  Palmer Dabbelt  <palmer@rivosinc.com>
37466         * doc/invoke.texi: Document -mcpu.
37468 2024-02-23  Lulu Cheng  <chenglulu@loongson.cn>
37470         * configure: Regenerate.
37471         * configure.ac: Add parameter "--fatal-warnings" to assemble
37472         when checking whether the assemble support conditional branch
37473         relaxation.
37475 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
37477         PR c/114007
37478         * doc/extend.texi: (__extension__): Remove comments about scope
37479         tokens vs. two colons.
37481 2024-02-22  Andrew Pinski  <quic_apinski@quicinc.com>
37483         PR tree-optimization/109804
37484         * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
37485         DEMANGLE_COMPONENT_UNNAMED_TYPE.
37487 2024-02-22  Richard Biener  <rguenther@suse.de>
37489         PR tree-optimization/114048
37490         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
37491         can also produce -1 off.
37493 2024-02-22  Richard Biener  <rguenther@suse.de>
37495         PR tree-optimization/114027
37496         * tree-vect-loop.cc (vecctorizable_reduction): Use optimized
37497         condition reduction classification only for single-element
37498         chains.
37500 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
37502         PR ipa/111960
37503         * profile-count.h (profile_count::dump): Remove overload with
37504         char * first argument.
37505         * profile-count.cc (profile_count::dump): Change overload with char *
37506         first argument which uses sprintf into the overfload with FILE *
37507         first argument and use fprintf instead.  Remove overload which wrapped
37508         it.
37510 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
37512         PR tree-optimization/113993
37513         * tree-call-cdce.cc (get_no_error_domain): Handle
37514         BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}.  Handle
37515         BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
37516         REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
37517         the as the F128 suffixed cases, otherwise as non-suffixed ones.
37518         Handle BUILT_IN_{EXP,POW}10L for
37519         REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
37520         as (-inf, 4932).
37522 2024-02-22  Jakub Jelinek  <jakub@redhat.com>
37524         PR tree-optimization/114038
37525         * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
37526         loop exit condition if end is divisible by limb_prec.
37528 2024-02-22  YunQiang Su  <syq@gcc.gnu.org>
37530         * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
37531         problem of mabi=, mno-flush-func, mexplicit-relocs;
37532         add missing leading - of mbranch-cost option.
37533         * config/mips/mips.opt.urls: Regenerate.
37535 2024-02-22  Kewen Lin  <linkw@linux.ibm.com>
37537         PR target/109987
37538         * config/rs6000/constraints.md (we): Update internal doc without
37539         referring to option -mpower9-vector.
37540         * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
37541         special handlings.
37542         * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
37543         OTHER_P8_VECTOR_MASKS): Merge to ...
37544         (OTHER_VSX_VECTOR_MASKS): ... here.
37545         * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
37546         some error message handlings and explicit option mask adjustments on
37547         explicit option power{8,9}-vector conflicting with other options.
37548         (rs6000_print_isa_options): Update comments.
37549         (rs6000_disable_incompatible_switches): Remove power{8,9}-vector
37550         related array items and handlings.
37551         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
37552         special handlings.
37553         * config/rs6000/rs6000.opt: Make option power{8,9}-vector as
37554         WarnRemoved.
37555         * doc/extend.texi: Remove documentation referring to option
37556         -mpower8-vector.
37557         * doc/invoke.texi: Remove documentation for option
37558         -mpower{8,9}-vector and adjust some documentation referring to them.
37559         * doc/md.texi: Update documentation for constraint we.
37560         * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
37562 2024-02-22  Pan Li  <pan2.li@intel.com>
37564         PR target/114017
37565         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
37566         the version to 0.12.
37568 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
37570         * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
37572 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
37573             Robin Dapp  <rdapp.gcc@gmail.com>
37575         * config/riscv/generic-ooo.md (generic_ooo): Move reservation
37576         (generic_ooo_vec_load): Ditto
37577         (generic_ooo_vec_store): Ditto
37578         (generic_ooo_vec_loadstore_seg): Ditto
37579         (generic_ooo_vec_alu): Ditto
37580         (generic_ooo_vec_fcmp): Ditto
37581         (generic_ooo_vec_imul): Ditto
37582         (generic_ooo_vec_fadd): Ditto
37583         (generic_ooo_vec_fmul): Ditto
37584         (generic_ooo_crypto): Ditto
37585         (generic_ooo_perm): Ditto
37586         (generic_ooo_vec_reduction): Ditto
37587         (generic_ooo_vec_ordered_reduction): Ditto
37588         (generic_ooo_vec_idiv): Ditto
37589         (generic_ooo_vec_float_divsqrt): Ditto
37590         (generic_ooo_vec_mask): Ditto
37591         (generic_ooo_vec_vesetvl): Ditto
37592         (generic_ooo_vec_setrm): Ditto
37593         (generic_ooo_vec_readlen): Ditto
37594         * config/riscv/riscv.md: Include generic-vector-ooo
37595         * config/riscv/generic-vector-ooo.md: New file. To here
37597 2024-02-21  Edwin Lu  <ewlu@rivosinc.com>
37599         * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
37600         (generic_ooo_branch): Ditto
37601         * config/riscv/generic.md (generic_sfb_alu): Ditto
37602         (generic_fmul_half): Ditto
37603         * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
37604         * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
37605         (sifive_7_popcount): Ditto
37606         * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
37607         * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
37608         * config/riscv/vector.md: Change rdfrm to fmove
37609         * config/riscv/zc.md: Change pushpop to load/store
37611 2024-02-21  Jonathan Wakely  <jwakely@redhat.com>
37613         * doc/invoke.texi (Warning Options): Fix typos.
37615 2024-02-21  David Faust  <david.faust@oracle.com>
37617         * config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
37618         * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
37619         * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
37621 2024-02-21  Martin Jambor  <mjambor@suse.cz>
37623         PR ipa/113476
37624         * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
37625         initializers in the contructor.
37626         (ipa_node_params::~ipa_node_params): Release lattices as a vector.
37627         * ipa-cp.h: New file.
37628         * ipa-cp.cc: Include sreal.h and ipa-cp.h.
37629         (ipcp_value_source): Move to ipa-cp.h.
37630         (ipcp_value_base): Likewise.
37631         (ipcp_value): Likewise.
37632         (ipcp_lattice): Likewise.
37633         (ipcp_agg_lattice): Likewise.
37634         (ipcp_bits_lattice): Likewise.
37635         (ipcp_vr_lattice): Likewise.
37636         (ipcp_param_lattices): Likewise.
37637         (ipa_get_parm_lattices): Remove assert latticess is non-NULL.
37638         (ipa_value_from_jfunc): Adjust a check for empty lattices.
37639         (ipa_context_from_jfunc): Likewise.
37640         (ipa_agg_value_from_jfunc): Likewise.
37641         (merge_agg_lats_step): Do not memset new aggregate lattices to zero.
37642         (ipcp_propagate_stage): Allocate lattices in a vector as opposed to
37643         just in contiguous memory.
37644         (ipcp_store_vr_results): Adjust a check for empty lattices.
37645         * auto-profile.cc: Include sreal.h and ipa-cp.h.
37646         * cgraph.cc: Likewise.
37647         * cgraphclones.cc: Likewise.
37648         * cgraphunit.cc: Likewise.
37649         * config/aarch64/aarch64.cc: Likewise.
37650         * config/i386/i386-builtins.cc: Likewise.
37651         * config/i386/i386-expand.cc: Likewise.
37652         * config/i386/i386-features.cc: Likewise.
37653         * config/i386/i386-options.cc: Likewise.
37654         * config/i386/i386.cc: Likewise.
37655         * config/rs6000/rs6000.cc: Likewise.
37656         * config/s390/s390.cc: Likewise.
37657         * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
37658         files to be included in gtype-desc.cc.
37659         * gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
37660         * ipa-devirt.cc: Likewise.
37661         * ipa-fnsummary.cc: Likewise.
37662         * ipa-icf.cc: Likewise.
37663         * ipa-inline-analysis.cc: Likewise.
37664         * ipa-inline-transform.cc: Likewise.
37665         * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
37666         * ipa-modref.cc: Include sreal.h and ipa-cp.h.
37667         * ipa-param-manipulation.cc: Likewise.
37668         * ipa-predicate.cc: Likewise.
37669         * ipa-profile.cc: Likewise.
37670         * ipa-prop.cc: Likewise.
37671         (ipa_node_params_t::duplicate): Assert new lattices remain empty
37672         instead of setting them to NULL.
37673         * ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
37674         * ipa-split.cc: Likewise.
37675         * ipa-sra.cc: Likewise.
37676         * ipa-strub.cc: Likewise.
37677         * ipa-utils.cc: Likewise.
37678         * ipa.cc: Likewise.
37679         * toplev.cc: Likewise.
37680         * tree-ssa-ccp.cc: Likewise.
37681         * tree-ssa-sccvn.cc: Likewise.
37682         * tree-vrp.cc: Likewise.
37684 2024-02-21  Tamar Christina  <tamar.christina@arm.com>
37686         * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
37687         Armv8.7-a.
37689 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37691         * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
37692         Use aarch64_gen_compare_zero_and_branch rather than emitting
37693         a CBZ directly.
37695 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37697         * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
37698         Remove duplicated call.
37700 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37702         * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
37703         Check that each individual piece of state is shared in the same
37704         way, rather than using an aggregate check for PSTATE.ZA.
37706 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37708         * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
37709         In the code that commits a lazy save, only zero ZA if the function
37710         has ZA state.  Similarly zero ZT0 if the function has ZT0 state.
37712 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37714         * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
37715         directly inserting the associated sequence
37716         * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
37717         ...here instead.
37719 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37721         PR target/113995
37722         * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
37723         fold the SVE allocation into the initial allocation if the
37724         initial allocation includes a VG save.
37726 2024-02-21  Richard Sandiford  <richard.sandiford@arm.com>
37728         PR target/113220
37729         * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
37730         contain jumps even if called after initial RTL expansion.
37731         * mode-switching.cc: Include cfgbuild.h.
37732         (optimize_mode_switching): Allow the sequence returned by the
37733         emit hook to contain internal jumps.  Record which blocks
37734         contain such jumps and split the blocks at the end.
37735         * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
37736         non-debug insns when scanning the sequence.
37738 2024-02-21  Tobias Burnus  <tburnus@baylibre.com>
37740         * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
37741         * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
37743 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
37745         * doc/invoke.texi (-mmcu): Add information about MCU specs.
37747 2024-02-21  Dimitar Dimitrov  <dimitar@dinux.eu>
37749         * doc/invoke.texi (-minrt): Clarify that main
37750         must take no arguments.
37752 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
37754         * config/avr/builtins.def: Use function prototypes of given size
37755         and signedness.
37756         * config/avr/avr.cc (avr_init_builtins): Adjust types required
37757         by builtins.def.
37758         * doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
37760 2024-02-20  Georg-Johann Lay  <avr@gjlay.de>
37762         * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
37763         instead of @table.
37765 2024-02-20  Will Hawkins  <hawkinsw@obs.cr>
37767         * config/bpf/bpf.opt: Add help information for -mcpu.
37769 2024-02-20  Richard Sandiford  <richard.sandiford@arm.com>
37771         PR target/113805
37772         * config/aarch64/aarch64-passes.def (pass_late_track_speculation):
37773         New pass.
37774         * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
37775         Declare.
37776         * config/aarch64/aarch64.md (is_call): New attribute.
37777         (*and<mode>3nr_compare0): Rename to...
37778         (@aarch64_and<mode>3nr_compare0): ...this.
37779         * config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
37780         (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
37781         * config/aarch64/aarch64-speculation.cc: Update file comment to
37782         describe the new late pass.
37783         (aarch64_do_track_speculation): Handle is_call insns like other calls.
37784         (pass_track_speculation): Add an is_late member variable.
37785         (pass_track_speculation::gate): Run the late pass for streaming-
37786         compatible functions and the early pass for other functions.
37787         (make_pass_track_speculation): Update accordingly.
37788         (make_pass_late_track_speculation): New function.
37789         * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
37790         function.
37791         (aarch64_guard_switch_pstate_sm): Use it.
37793 2024-02-19  Iain Sandoe  <iain@sandoe.co.uk>
37795         * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
37796         Register these builtins with a pointer to uint64_t rather than unsigned
37797         DI mode.
37799 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
37801         PR target/113615
37802         * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
37803         Conditionalize on '!TARGET_RDNA2_PLUS'.
37804         * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
37805         (gcn_expand_reduc_scalar):
37806         'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
37808 2024-02-19  Thomas Schwinge  <tschwinge@baylibre.com>
37810         * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
37811         '__gfx90a__' target CPU definition.  Add some safeguards for the future.
37813 2024-02-19  Richard Biener  <rguenther@suse.de>
37815         PR rtl-optimization/54052
37816         * rtl-ssa/blocks.cc (function_info::place_phis): Filter
37817         local defs by LR_OUT.
37819 2024-02-19  Jakub Jelinek  <jakub@redhat.com>
37821         PR tree-optimization/113967
37822         * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
37823         in condition that @rpos is multiple of vector element size.
37825 2024-02-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
37827         PR target/113696
37828         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
37829         Suppress vsetvl fusion.
37831 2024-02-18  H.J. Lu  <hjl.tools@gmail.com>
37833         PR target/113912
37834         * config/i386/i386.cc (ix86_can_use_push2pop2): New.
37835         (ix86_pro_and_epilogue_can_use_push2pop2): Use it.
37836         (ix86_emit_save_regs): Don't generate push2 if
37837         ix86_can_use_push2pop2 return false.
37838         (ix86_expand_epilogue): Don't generate pop2 if
37839         ix86_can_use_push2pop2 return false.
37841 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
37843         * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
37844         Note on complete device support.
37846 2024-02-18  Georg-Johann Lay  <avr@gjlay.de>
37848         * doc/extend.texi (AVR Function Attributes): Fuse description
37849         of "signal" and "interrupt" attribute.  Link pseudo instruction.
37851 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
37853         * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
37854         symbol type conversions.
37855         (__cacop_d): Likewise.
37856         (__cpucfg): Likewise.
37857         (__asrtle_d): Likewise.
37858         (__asrtgt_d): Likewise.
37859         (__lddir_d): Likewise.
37860         (__ldpte_d): Likewise.
37861         (__crc_w_b_w): Likewise.
37862         (__crc_w_h_w): Likewise.
37863         (__crc_w_w_w): Likewise.
37864         (__crc_w_d_w): Likewise.
37865         (__crcc_w_b_w): Likewise.
37866         (__crcc_w_h_w): Likewise.
37867         (__crcc_w_w_w): Likewise.
37868         (__crcc_w_d_w): Likewise.
37869         (__csrrd_w): Likewise.
37870         (__csrwr_w): Likewise.
37871         (__csrxchg_w): Likewise.
37872         (__csrrd_d): Likewise.
37873         (__csrwr_d): Likewise.
37874         (__csrxchg_d): Likewise.
37875         (__iocsrrd_b): Likewise.
37876         (__iocsrrd_h): Likewise.
37877         (__iocsrrd_w): Likewise.
37878         (__iocsrrd_d): Likewise.
37879         (__iocsrwr_b): Likewise.
37880         (__iocsrwr_h): Likewise.
37881         (__iocsrwr_w): Likewise.
37882         (__iocsrwr_d): Likewise.
37883         (__frecipe_s): Likewise.
37884         (__frecipe_d): Likewise.
37885         (__frsqrte_s): Likewise.
37886         (__frsqrte_d): Likewise.
37888 2024-02-18  Lulu Cheng  <chenglulu@loongson.cn>
37890         * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
37891         function return value type to unsigned short.
37893 2024-02-16  Edwin Lu  <ewlu@rivosinc.com>
37895         * doc/sourcebuild.texi: add scan-assembler-bound
37897 2024-02-16  Jason Merrill  <jason@redhat.com>
37899         * gdbhooks.py: Fix regex syntax.
37901 2024-02-16  Richard Biener  <rguenther@suse.de>
37903         PR tree-optimization/113895
37904         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
37905         consistency checking when there are out-of-bound array
37906         accesses.  Allow -1 off when from an array reference with
37907         constant index.
37909 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
37911         PR target/106543
37912         * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
37913         pattern.
37915 2024-02-16  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
37917         * doc/sourcebuild.texi (Effective-Target Keywords, Other
37918         attribugs): Document linker_plugin.
37919         (Require Support): Document dg-require-linker-plugin.
37921 2024-02-16  Kito Cheng  <kito.cheng@sifive.com>
37923         PR target/109349
37924         * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
37925         * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
37926         (RISCV_MINOR_VERSION_BASE): Ditto.
37927         (RISCV_REVISION_VERSION_BASE): Ditto.
37928         * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
37929         rather than magic number.
37930         * config/riscv/riscv.h (riscv_arch_help): New.
37931         (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
37932         (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
37933         --print-supported-extensions.
37934         * config/riscv/riscv.opt (march=help): New.
37935         (print-supported-extensions): New.
37936         (-print-supported-extensions): New.
37937         * doc/invoke.texi (RISC-V Options): Document -march=help.
37939 2024-02-16  Tejas Belagod  <tejas.belagod@arm.com>
37941         PR target/113780
37942         * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
37943         for indirect calls with 4 or more arguments in pac-enabled functions.
37945 2024-02-15  David Faust  <david.faust@oracle.com>
37947         * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
37948         use ldxb instead of ldxh.
37950 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
37952         PR middle-end/113921
37953         * cfgrtl.h (prepend_insn_to_edge): New declaration.
37954         * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
37955         comment.
37956         (prepend_insn_to_edge): New function.
37957         * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
37958         insert_insn_on_edge.
37960 2024-02-15  Richard Biener  <rguenther@suse.de>
37962         PR tree-optimization/111156
37963         * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
37964         at the pattern stmt if any.
37966 2024-02-15  Georg-Johann Lay  <avr@gjlay.de>
37968         PR target/113927
37969         * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
37970         * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
37971         * config/avr/avr.cc (avr_adiw_reg_p): New function.
37972         (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
37973         Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
37974         * config/avr/avr.md: Same.
37975         (attr "isa") <tiny, no_tiny>: Remove.
37976         <adiw, no_adiw>: Add.
37977         (define_insn, define_insn_and_split): When an alternative has
37978         constraint "w", then set attribute "isa" to "adiw".
37979         * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
37980         Built-in define __AVR_HAVE_ADIW__.
37981         * doc/invoke.texi (AVR Options): Document it.
37983 2024-02-15  Andrew Stubbs  <ams@baylibre.com>
37985         * config/gcn/gcn-valu.md
37986         (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
37987         * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
37988         details are supported on RDNA devices.
37990 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
37992         PR middle-end/113508
37993         * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
37994         usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
37995         smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
37996         Add sentence about what the mode m is.
37998 2024-02-15  Andrew Pinski  <quic_apinski@quicinc.com>
38000         * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
38001         smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
38002         var.
38004 2024-02-15  Richard Biener  <rguenther@suse.de>
38006         * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
38007         stmts.
38009 2024-02-15  Jakub Jelinek  <jakub@redhat.com>
38011         PR tree-optimization/113567
38012         * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
38013         _BitInt multiplication, division or modulo with
38014         SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
38015         force the affected inputs into a new SSA_NAME.
38017 2024-02-14  Uros Bizjak  <ubizjak@gmail.com>
38019         PR target/113871
38020         * config/i386/mmx.md (V248FI): New mode iterator.
38021         (V24FI_32): DItto.
38022         (vec_shl_<V248FI:mode>): New expander.
38023         (vec_shl_<V24FI_32:mode>): Ditto.
38024         (vec_shr_<V248FI:mode>): Ditto.
38025         (vec_shr_<V24FI_32:mode>): Ditto.
38026         * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
38027         (vec_shr_<V248FI:mode>): Ditto.
38029 2024-02-14  Jan Hubicka  <jh@suse.cz>
38031         PR tree-optimization/111054
38032         * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
38034 2024-02-14  Tamar Christina  <tamar.christina@arm.com>
38036         * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
38038 2024-02-14  Richard Biener  <rguenther@suse.de>
38040         PR tree-optimization/113910
38041         * bitmap.cc (bitmap_hash): Mix the full element "hash" to
38042         the hashval_t hash.
38044 2024-02-14  Jakub Jelinek  <jakub@redhat.com>
38046         * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
38047         (pp_integer_with_precision): For unsigned ptrdiff_t printing
38048         with u, o or x print ptrdiff_t argument converted to
38049         unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
38051 2024-02-14  Richard Biener  <rguenther@suse.de>
38053         PR middle-end/113576
38054         * expr.cc (do_store_flag): For vector bool compares of vectors
38055         with padding zero that.
38056         * dojump.cc (do_compare_and_jump): Likewise.
38058 2024-02-14  Gerald Pfeifer  <gerald@pfeifer.com>
38060         * doc/install.texi (Prerequisites): Update gettext link.
38062 2024-02-13  H.J. Lu  <hjl.tools@gmail.com>
38064         PR target/113876
38065         * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
38066         Return false if the incoming stack isn't 16-byte aligned.
38068 2024-02-13  Tobias Burnus  <tburnus@baylibre.com>
38070         PR middle-end/113904
38071         * omp-general.cc (struct omp_ts_info): Update for splitting of
38072         OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
38073         * omp-selectors.h (enum omp_tp_type): Replace
38074         OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
38076 2024-02-13  Monk Chiang  <monk.chiang@sifive.com>
38078         PR target/113742
38079         * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
38080         recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
38082 2024-02-13  Richard Biener  <rguenther@suse.de>
38084         PR tree-optimization/113895
38085         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
38086         offset to discover constant array indices in bits, handle
38087         COMPONENT_REF to bitfields.
38089 2024-02-13  Richard Biener  <rguenther@suse.de>
38091         PR tree-optimization/113831
38092         * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
38093         typo in comment.
38095 2024-02-13  Richard Biener  <rguenther@suse.de>
38097         PR tree-optimization/113902
38098         * tree-vect-loop.cc (move_early_exit_stmts): Track
38099         last_seen_vuse for VUSE updating.
38101 2024-02-13  Tamar Christina  <tamar.christina@arm.com>
38103         PR tree-optimization/113734
38104         * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
38105         an early break loop as partial.
38107 2024-02-13  Richard Biener  <rguenther@suse.de>
38109         PR tree-optimization/113898
38110         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
38111         missing accumulated off adjustment.
38113 2024-02-13  Jakub Jelinek  <jakub@redhat.com>
38115         * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
38116         instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
38117         it against UINT_MAX and ULONG_MAX.
38119 2024-02-13  David Malcolm  <dmalcolm@redhat.com>
38121         * diagnostic-core.h (emit_diagnostic_valist): Rename overload
38122         to...
38123         (emit_diagnostic_valist_meta): ...this.
38124         * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
38125         (emit_diagnostic_valist_meta): ...this.
38127 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
38129         PR tree-optimization/113849
38130         * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
38131         fast path for widening casts where !m_upwards_2limb and lhs_type
38132         has precision which is a multiple of limb_prec.
38134 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
38136         PR c++/113674
38137         * attribs.cc (extract_attribute_substring): Remove.
38138         (lookup_scoped_attribute_spec): Don't call it.
38140 2024-02-12  Jakub Jelinek  <jakub@redhat.com>
38142         * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
38143         and cast to fmt_size_t instead of %lu and cast to unsigned long.
38145 2024-02-12  Christophe Lyon  <christophe.lyon@linaro.org>
38147         * Makefile.in: Add no-info dependency.
38148         * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
38149         available.
38150         * configure: Regenerate.
38152 2024-02-12  Iain Sandoe  <iain@sandoe.co.uk>
38154         PR target/113855
38155         * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
38156         available to all sub-targets.
38157         * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
38158         * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
38160 2024-02-12  Richard Biener  <rguenther@suse.de>
38162         PR tree-optimization/113831
38163         PR tree-optimization/108355
38164         * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
38165         we see variable array indices and get_ref_base_and_extent
38166         can resolve those to constants fix up the ops to constants
38167         as well.
38168         (ao_ref_init_from_vn_reference): Use 'off' member for
38169         ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
38170         (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
38172 2024-02-12  Pan Li  <pan2.li@intel.com>
38174         * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
38175         Replace args to arguments for misspelled term.
38177 2024-02-12  Georg-Johann Lay  <avr@gjlay.de>
38179         PR target/112944
38180         * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
38181         <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
38182         when not linked with -mrodata-in-ram.
38184 2024-02-12  Richard Biener  <rguenther@suse.de>
38186         PR tree-optimization/113863
38187         * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
38188         Record crossed virtual PHIs.
38189         * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
38190         virtual PHIs.
38192 2024-02-10  Marek Polacek  <polacek@redhat.com>
38194         DR 2237
38195         PR c++/107126
38196         PR c++/97202
38197         * doc/invoke.texi: Document -Wtemplate-id-cdtor.
38199 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
38201         * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
38202         computation of idx for i == 4 of bitint_prec_huge.
38204 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
38206         PR middle-end/110754
38207         * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
38208         decls create PARM_DECL with pointer to original type, set
38209         TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
38210         DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
38211         (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
38212         wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
38213         (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
38214         of the var as argument.
38216 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
38218         * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
38219         size_t and precision 4 for ptrdiff_t.  Formatting fix.
38220         (pp_format): Document %{t,z}{d,i,u,o,x}.  Implement t and z modifiers.
38221         Formatting fixes.
38222         (test_pp_format): Test t and z modifiers.
38223         * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
38225 2024-02-10  Jakub Jelinek  <jakub@redhat.com>
38227         * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
38228         sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
38229         and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
38230         * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
38231         and casts to fmt_size_t instead of "%ld" and casts to long.
38232         (print_value_expr_statistics, print_type_hash_statistics): Likewise.
38233         * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
38234         instead of "%lu" and casts to unsigned long.
38235         * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
38236         unsigned long.
38237         * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
38238         and casts to fmt_size_t instead of "%ld" and casts to long.
38239         * cfgexpand.cc (dump_stack_var_partition): Use
38240         HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
38241         and casts to unsigned long.
38242         * gengtype.cc (adjust_field_rtx_def): Likewise.
38243         * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
38244         and casts to fmt_size_t instead of "%ld" and casts to long.
38245         * postreload-gcse.cc (dump_hash_table): Likewise.
38246         * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
38247         and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
38248         (ggc_internal_alloc, ggc_free): Likewise.
38249         * genpreds.cc (write_lookup_constraint_1): Likewise.
38250         (write_insn_constraint_len): Likewise.
38251         * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
38252         and casts to fmt_size_t instead of "%ld" and casts to long.
38253         * varasm.cc (output_constant_pool_contents): Use
38254         HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
38255         * var-tracking.cc (dump_var): Likewise.
38257 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
38259         PR tree-optimization/113783
38260         * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
38261         through VIEW_CONVERT_EXPR for final cast checks.  Handle
38262         VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
38263         INTEGER_TYPEs.
38264         (gimple_lower_bitint): Don't merge mergeable operations or other
38265         casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
38266         * expr.cc (expand_expr_real_1): Don't use convert_modes if either
38267         mode is BLKmode.
38269 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
38271         * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
38272         HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
38273         HOST_SIZE_T_PRINT_HEX_PURE): Define.
38274         * ira-conflicts.cc (build_conflict_bit_table): Use it.  Formatting
38275         fixes.
38277 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
38279         PR middle-end/113415
38280         * cfgexpand.cc (expand_asm_stmt): For asm goto, use
38281         duplicate_insn_chain to duplicate after_rtl_seq sequence instead
38282         of hand written loop with emit_insn of copy_insn and emit original
38283         after_rtl_seq on the last edge.
38285 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
38287         PR tree-optimization/113818
38288         * gimple-lower-bitint.cc (add_eh_edge): New function.
38289         (bitint_large_huge::handle_load,
38290         bitint_large_huge::lower_mergeable_stmt,
38291         bitint_large_huge::lower_muldiv_stmt): Use it.
38293 2024-02-09  Jakub Jelinek  <jakub@redhat.com>
38295         PR tree-optimization/113774
38296         * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
38297         emit any comparison if m_first and low + 1 is equal to
38298         m_upwards_2limb, simplify condition for that.  If not
38299         single_comparison, not m_first and we can prove that the idx <= low
38300         comparison will be always true, emit instead of idx <= low
38301         comparison low <= low such that cfg cleanup will optimize it at
38302         the end of the pass.
38304 2024-02-08  Aldy Hernandez  <aldyh@redhat.com>
38306         PR tree-optimization/113735
38307         * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
38308         limit_check().
38310 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
38312         * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
38313         (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
38315 2024-02-08  H.J. Lu  <hjl.tools@gmail.com>
38317         PR target/113711
38318         PR target/113733
38319         * config/i386/constraints.md: List all constraints with j prefix.
38320         (j>): Change auto-dec to auto-inc in documentation.
38321         (je): Changed to a memory constraint with APX NDD TLS operand
38322         check.
38323         (jM): New memory constraint for APX NDD instructions.
38324         (jO): Likewise.
38325         * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
38326         * config/i386/i386.cc (x86_poff_operand_p): Likewise.
38327         * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
38328         (*add<mode>_1[SWI48]): Use je and jM.
38329         (addsi_1_zext): Use jM.
38330         (*addv<dwi>4_doubleword_1[DWI]): Likewise.
38331         (*sub<mode>_1[SWI]): Use jM.
38332         (@add<mode>3_cc_overflow_1[SWI]): Likewise.
38333         (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
38334         (*and<dwi>3_doubleword): Likewise.
38335         (*anddi_1): Use jM.
38336         (*andsi_1_zext): Likewise.
38337         (*and<mode>_1[SWI24]): Likewise.
38338         (*<code><dwi>3_doubleword[any_or]): Use rjO
38339         (*code<mode>_1[any_or SWI248]): Use jM.
38340         (*<code>si_1_zext[zero_extend + any_or]): Likewise.
38341         * config/i386/predicates.md (apx_ndd_memory_operand): New.
38342         (apx_ndd_add_memory_operand): Likewise.
38344 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
38346         PR target/113824
38347         * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
38348         * doc/avr-mmcu.texi: Rebuild.
38350 2024-02-08  Tamar Christina  <tamar.christina@arm.com>
38352         PR tree-optimization/113808
38353         * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
38354         value cross iterations.
38356 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
38358         * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
38359         defines __AVR_PM_BASE_ADDRESS__ if the core has it.
38361 2024-02-08  Richard Biener  <rguenther@suse.de>
38363         * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
38364         Revert last change to dr_may_alias_p.
38366 2024-02-08  Georg-Johann Lay  <avr@gjlay.de>
38368         * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
38369         cc1_rodata_in_ram.  Rename spec link_misc to link_rodata_in_ram.
38370         Remove spec asm_misc.
38371         * config/avr/specs.h: Same.
38373 2024-02-08  Pan Li  <pan2.li@intel.com>
38375         PR target/113766
38376         * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
38377         sure the c.arg_num is >= 2 before checking.
38378         (struct build_frm_base): Ditto.
38379         (struct narrow_alu_def): Ditto.
38381 2024-02-07  Richard Biener  <rguenther@suse.de>
38383         PR tree-optimization/113796
38384         * tree-if-conv.cc (combine_blocks): Wipe range-info before
38385         replacing PHIs and inserting predicates.
38387 2024-02-07  Roger Sayle  <roger@nextmovesoftware.com>
38388             Uros Bizjak  <ubizjak@gmail.com>
38390         PR target/113690
38391         * config/i386/i386-features.cc (timode_convert_cst): New helper
38392         function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
38393         CONST_VECTOR.
38394         (timode_scalar_chain::convert_op): Use timode_convert_cst.
38395         (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
38396         Use timode_convert_cst.
38398 2024-02-07  Victor Do Nascimento  <victor.donascimento@arm.com>
38400         * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
38401         * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
38402         (AARCH64_FL_DEBUGv8p9): Likewise.
38403         (AARCH64_FL_FGT2): Likewise.Likewise.
38404         (AARCH64_FL_ITE): Likewise.
38405         (AARCH64_FL_PFAR): Likewise.
38406         (AARCH64_FL_PMUv3_ICNTR): Likewise.
38407         (AARCH64_FL_PMUv3_SS): Likewise.
38408         (AARCH64_FL_PMUv3p9): Likewise.
38409         (AARCH64_FL_RASv2): Likewise.
38410         (AARCH64_FL_S1PIE): Likewise.
38411         (AARCH64_FL_S1POE): Likewise.
38412         (AARCH64_FL_S2PIE): Likewise.
38413         (AARCH64_FL_S2POE): Likewise.
38414         (AARCH64_FL_SCTLR2): Likewise.
38415         (AARCH64_FL_SEBEP): Likewise.
38416         (AARCH64_FL_SPE_FDS): Likewise.
38417         (AARCH64_FL_TCR2): Likewise.
38419 2024-02-07  Richard Biener  <rguenther@suse.de>
38421         * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
38422         Only check whether reads are in-bound in places that are not safe.
38423         Fix dependence check.  Add missing newline.  Clarify comments.
38425 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
38427         PR tree-optimization/113750
38428         * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
38429         for single predecessor when doing early break vect.
38430         * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
38431         after labels.
38433 2024-02-07  Tamar Christina  <tamar.christina@arm.com>
38435         PR tree-optimization/113731
38436         * gimple-iterator.cc (gsi_move_before): Take new parameter for update
38437         method.
38438         * gimple-iterator.h (gsi_move_before): Default new param to
38439         GSI_SAME_STMT.
38440         * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
38441         GSI_NEW_STMT.
38443 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
38445         PR tree-optimization/113756
38446         * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
38447         use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
38448         of lh_bits value and mask.
38450 2024-02-07  Jakub Jelinek  <jakub@redhat.com>
38452         PR tree-optimization/113753
38453         * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
38454         UNSIGNED rather than SIGNED.  If high or needs_overflow and prec is
38455         not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
38456         so that they start with r[half_blocks_needed] lowest bit.  Fix up
38457         computation of top mask for SIGNED.
38459 2024-02-07  Pan Li  <pan2.li@intel.com>
38461         PR target/113766
38462         * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
38463         the signature of func.
38464         * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
38465         * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
38466         overloaded func with empty args error.
38468 2024-02-06  H.J. Lu  <hjl.tools@gmail.com>
38470         PR target/113689
38471         * config/i386/i386.cc (x86_64_select_profile_regnum): Return
38472         R10_REG after sorry.
38474 2024-02-06  Andrew Carlotti  <andrew.carlotti@arm.com>
38476         * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
38477         Move before new caller, and add ".default" suffix.
38478         (get_suffixed_assembler_name): New.
38479         (make_resolver_func): Use get_suffixed_assembler_name.
38480         (aarch64_generate_version_dispatcher_body): Redo name mangling.
38482 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
38484         PR target/113763
38485         * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
38486         element from std::pair<unsigned int, char> to an unnamed struct.
38487         Adjust uses of tile range variable.
38489 2024-02-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
38491         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
38492         (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
38494 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
38496         PR sanitizer/110676
38497         * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
38498         reset maxlen to sizetype maximum.
38500 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
38502         PR tree-optimization/113736
38503         * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
38504         var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
38506 2024-02-06  Jakub Jelinek  <jakub@redhat.com>
38508         PR tree-optimization/113759
38509         * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
38510         or from_unsignedN differs from properties of typeN, update typeN
38511         to build_nonstandard_integer_type.  If TREE_TYPE (rhsN) is not
38512         uselessly convertible to typeN, convert it using fold_convert or
38513         build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
38514         (convert_plusminus_to_widen): Likewise.
38516 2024-02-06  Tejas Belagod  <tejas.belagod@arm.com>
38518         PR target/112577
38519         * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
38520         vector structure modes correctly.
38522 2024-02-05  Christoph Müllner  <christoph.muellner@vrull.eu>
38524         * config/riscv/thead.cc (th_print_operand_address): Fix compiler
38525         warning.
38527 2024-02-05  H.J. Lu  <hjl.tools@gmail.com>
38529         PR target/113689
38530         * config/i386/i386.cc (x86_64_select_profile_regnum): New.
38531         (x86_function_profiler): Call x86_64_select_profile_regnum to
38532         get a scratch register for large model profiling.
38534 2024-02-05  Richard Ball  <richard.ball@arm.com>
38536         * config/arm/arm.cc (arm_output_mi_thunk): Emit
38537         insn for bti_c when bti is enabled.
38539 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
38541         * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
38542         neg.
38544 2024-02-05  Xi Ruoyao  <xry111@xry111.site>
38546         * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
38547         (neg<mode>2): Change the mode iterator from MSA to IMSA because
38548         in FP arithmetic we cannot use (0 - x) for -x.
38549         (neg<mode>2): New define_insn to implement FP vector negation,
38550         using a bnegi instruction to negate the sign bit.
38552 2024-02-05  Richard Biener  <rguenther@suse.de>
38554         PR tree-optimization/113707
38555         * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
38556         checking the avail set treat out-of-region defines as
38557         available.
38559 2024-02-05  Richard Biener  <rguenther@suse.de>
38561         * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
38562         the default mode when building a pointer.
38564 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
38566         PR tree-optimization/113737
38567         * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
38568         has just a single label, remove it and make single successor edge
38569         EDGE_FALLTHRU.
38571 2024-02-05  Jakub Jelinek  <jakub@redhat.com>
38573         PR target/113059
38574         * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
38575         Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
38576         df_analyze call.
38578 2024-02-05  Richard Biener  <rguenther@suse.de>
38580         PR target/113255
38581         * config/i386/i386-expand.cc
38582         (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
38583         Use a new pseudo for the skipped number of bytes.
38585 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
38587         * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
38588         * doc/invoke.texi (RISC-V Options): Add sifive-p450,
38589         sifive-p670.
38591 2024-02-05  Monk Chiang  <monk.chiang@sifive.com>
38593         * config/riscv/riscv.md: Include sifive-p400.md.
38594         * config/riscv/sifive-p400.md: New file.
38595         * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
38596         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
38597         Add sifive_p400.
38598         * config/riscv/riscv.cc (sifive_p400_tune_info): New.
38599         * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
38600         * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
38602 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
38604         * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
38605         Add missing ":SI" to the match_operator.
38607 2024-02-04  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
38609         * config/xtensa/xtensa.md (SHI): New mode iterator.
38610         (2 split patterns related to constsynth):
38611         Change to also accept HImode operands.
38613 2024-02-04  Jeff Law  <jlaw@ventanamicro.com>
38615         * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
38616         similarly.
38618 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
38620         * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
38621         incorrect expand.
38622         * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
38623         (elmsgnbit): Likewise.
38624         (neg<mode:FVEC>2): New define_insn.
38625         * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
38626         are now instantiated in simd.md.
38628 2024-02-04  Xi Ruoyao  <xry111@xry111.site>
38630         * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
38631         use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
38632         MAX_MACHINE_MODE.
38634 2024-02-04  Li Wei  <liwei@loongson.cn>
38636         * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
38637         (loongarch_expand_vselect_vconcat): Ditto.
38638         (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
38639         all 128-bit constant permutation situations.
38640         (loongarch_expand_lsx_shuffle): Adjust and rename function name.
38641         (loongarch_is_imm_set_shuffle): Renamed function name.
38642         (loongarch_expand_vec_perm_even_odd): Function forward declaration.
38643         (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
38644         extract-even and extract-odd permutations.
38645         (loongarch_is_odd_extraction): Delete.
38646         (loongarch_is_even_extraction): Ditto.
38647         (loongarch_expand_vec_perm_const): Adjust.
38649 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
38651         PR middle-end/113722
38652         * wide-int.cc (wi::bswap_large): Rename third argument from
38653         len to xlen and adjust use in safe_uhwi.  Add len variable, set
38654         it to BLOCKS_NEEDED (precision) and use it for clearing of val
38655         and as canonize argument.  Clear val using memset instead of
38656         a loop.
38658 2024-02-03  Jakub Jelinek  <jakub@redhat.com>
38660         * ggc-common.cc (gt_pch_save): Allow addr to be equal to
38661         mmi.preferred_base + mmi.size - sizeof (void *).
38663 2024-02-03  Xi Ruoyao  <xry111@xry111.site>
38665         * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
38666         * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
38667         the ODR-violating locale declaration.
38669 2024-02-02  Tamar Christina  <tamar.christina@arm.com>
38671         PR tree-optimization/113588
38672         PR tree-optimization/113467
38673         * tree-vect-data-refs.cc
38674         (vect_analyze_data_ref_dependence):  Choose correct dest and fix checks.
38675         (vect_analyze_early_break_dependences): Update comments.
38677 2024-02-02  John David Anglin  <danglin@gcc.gnu.org>
38679         PR target/59778
38680         * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
38681         and PA_BUILTIN_SET_FPSR builtins.
38682         * (pa_builtins_icode): Declare.
38683         * (def_builtin, pa_fpu_init_builtins): New.
38684         * (pa_init_builtins): Initialize FPU builtins.
38685         * (pa_builtin_decl, pa_expand_builtin_1): New.
38686         * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
38687         PA_BUILTIN_SET_FPSR builtins.
38688         * (pa_atomic_assign_expand_fenv): New.
38689         * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
38690         UNSPECV constants.
38691         (get_fpsr, put_fpsr): New expanders.
38692         (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
38693         insn patterns.
38695 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
38697         PR target/113697
38698         * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
38700 2024-02-02  Jonathan Wakely  <jwakely@redhat.com>
38702         * doc/extend.texi (Common Type Attributes): Fix typo in
38703         description of hardbool.
38705 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
38707         PR tree-optimization/113692
38708         * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
38709         from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
38710         final_cast_p.
38712 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
38714         PR middle-end/113699
38715         * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
38716         uninitialized large/huge _BitInt SSA_NAME inputs.
38718 2024-02-02  Jakub Jelinek  <jakub@redhat.com>
38720         PR middle-end/113705
38721         * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
38722         around wi::to_wide in order to compare value in prec precision.
38724 2024-02-02  Lehua Ding  <lehua.ding@rivai.ai>
38726         Revert:
38727         2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
38729         * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
38731 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
38733         * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
38735 2024-02-02  Pan Li  <pan2.li@intel.com>
38737         * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
38738         (riscv_pass_by_reference): Ditto.
38739         (riscv_fntype_abi): Ditto.
38741 2024-02-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
38743         * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
38744         (pre_vsetvl::cleaup): Remove vsetvl_pre.
38745         (pre_vsetvl::remove_vsetvl_pre_insns): New function.
38747 2024-02-02  Jiahao Xu  <xujiahao@loongson.cn>
38749         * config/loongarch/larchintrin.h
38750         (__frecipe_s): Update function return type.
38751         (__frecipe_d): Ditto.
38752         (__frsqrte_s): Ditto.
38753         (__frsqrte_d): Ditto.
38755 2024-02-02  Li Wei  <liwei@loongson.cn>
38757         * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
38758         (loongarch_vector_costs::add_stmt_cost): Adjust.
38760 2024-02-02  Xi Ruoyao  <xry111@xry111.site>
38762         * config/loongarch/loongarch.md (unspec): Add
38763         UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
38764         (la_pcrel64_two_parts): New define_insn.
38765         * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
38766         typo in the comment.
38767         (loongarch_call_tls_get_addr): If -mcmodel=extreme
38768         -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
38769         addressing the TLS symbol and __tls_get_addr.  Emit an REG_EQUAL
38770         note to allow CSE addressing __tls_get_addr.
38771         (loongarch_legitimize_tls_address): If -mcmodel=extreme
38772         -mexplicit-relocs={always,auto}, address TLS IE symbols with
38773         la_pcrel64_two_parts.
38774         (loongarch_split_symbol): If -mcmodel=extreme
38775         -mexplicit-relocs={always,auto}, address symbols with
38776         la_pcrel64_two_parts.
38777         (loongarch_output_mi_thunk): Clean up unreachable code.  If
38778         -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
38779         thunks with la_pcrel64_two_parts.
38781 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
38783         * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
38784         Add support for call36.
38786 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
38788         * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
38789         When the code model of the symbol is extreme and -mexplicit-relocs=auto,
38790         the macro instruction loading symbol address is not applicable.
38791         (loongarch_call_tls_get_addr): Adjust code.
38792         (loongarch_legitimize_tls_address): Likewise.
38794 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
38796         * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
38797         Add function declaration.
38798         * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
38799         For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
38800         is not allowed
38801         (loongarch_load_tls): Added macro support in extreme mode.
38802         (loongarch_call_tls_get_addr): Likewise.
38803         (loongarch_legitimize_tls_address): Likewise.
38804         (loongarch_force_address): Likewise.
38805         (loongarch_legitimize_move): Likewise.
38806         (loongarch_output_mi_thunk): Likewise.
38807         (loongarch_option_override_internal): Remove the code that detects
38808         explicit relocs status.
38809         (loongarch_handle_model_attribute): Likewise.
38810         * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
38811         * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
38812         (symbolic_off64_or_reg_operand): Likewise.
38814 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
38816         * config/loongarch/loongarch.cc (loongarch_load_tls):
38817         Load all types of tls symbols through one function.
38818         (loongarch_got_load_tls_gd): Delete.
38819         (loongarch_got_load_tls_ld): Delete.
38820         (loongarch_got_load_tls_ie): Delete.
38821         (loongarch_got_load_tls_le): Delete.
38822         (loongarch_call_tls_get_addr): Modify the called function name.
38823         (loongarch_legitimize_tls_address): Likewise.
38824         * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
38825         (@load_tls<mode>): New template.
38826         (@got_load_tls_ld<mode>): Delete.
38827         (@got_load_tls_le<mode>): Delete.
38828         (@got_load_tls_ie<mode>): Delete.
38830 2024-02-02  Lulu Cheng  <chenglulu@loongson.cn>
38832         * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
38833         (loongarch_legitimize_address): Add logical transformation code.
38835 2024-02-01  Marek Polacek  <polacek@redhat.com>
38837         * doc/invoke.texi: Update -Wdangling-reference documentation.
38839 2024-02-01  Uros Bizjak  <ubizjak@gmail.com>
38841         PR target/113701
38842         * config/i386/i386.md (*cmp<dwi>_doubleword):
38843         Do not force SUBREG pieces to pseudos.
38845 2024-02-01  John David Anglin  <danglin@gcc.gnu.org>
38847         * config/pa/pa.md (atomic_storedi_1): Fix bug in
38848         alternative 1.
38850 2024-02-01  Georg-Johann Lay  <avr@gjlay.de>
38852         * config/avr/avr.cc: Tabify.
38854 2024-02-01  Richard Ball  <richard.ball@arm.com>
38856         PR tree-optimization/111268
38857         * tree-vect-slp.cc (vectorizable_slp_permutation_1):
38858         Add variable-length check for vector input arguments
38859         to a function.
38861 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
38863         * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
38864         hard-code number of SGPR/VGPR/AVGPR registers.
38865         * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
38866         SGPR/VGPR/AVGPR registers.
38868 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
38870         * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
38871         attribute, and include sifive-p600.md.
38872         * config/riscv/generic-ooo.md: Update type attribute.
38873         * config/riscv/generic.md: Update type attribute.
38874         * config/riscv/sifive-7.md: Update type attribute.
38875         * config/riscv/sifive-p600.md: New file.
38876         * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
38877         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
38878         Add sifive_p600.
38879         * config/riscv/riscv.cc (sifive_p600_tune_info): New.
38880         * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
38881         * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
38883 2024-02-01  Monk Chiang  <monk.chiang@sifive.com>
38885         * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
38886         Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
38887         * config/riscv/riscv.opt: New macro for 7 new unprivileged
38888         extensions.
38889         * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
38890         Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
38892 2024-02-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
38894         * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
38895         -static-libasan.  Add missing whitespace.
38897 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
38899         * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
38900         (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
38901         Don't 'define_constants'.
38903 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
38905         * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
38907 2024-02-01  Thomas Schwinge  <tschwinge@baylibre.com>
38909         * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
38910         [TARGET_RDNA3]: Adjust.
38912 2024-02-01  Richard Biener  <rguenther@suse.de>
38914         PR tree-optimization/113693
38915         * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
38916         data when available.
38918 2024-02-01  Jakub Jelinek  <jakub@redhat.com>
38919             Jason Merrill  <jason@redhat.com>
38921         PR c++/113531
38922         * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
38923         on variables which were promoted to TREE_STATIC.
38925 2024-02-01  Roger Sayle  <roger@nextmovesoftware.com>
38926             Richard Biener  <rguenther@suse.de>
38928         PR target/113560
38929         * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
38930         information via tree_non_zero_bits to check if this operand
38931         is suitably extended for a widening (or highpart) multiplication.
38932         (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
38933         isn't already of the claimed type.
38935 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38937         Revert:
38938         2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38940         * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
38941         (generic_ooo_branch): ditto
38942         * config/riscv/generic.md (generic_sfb_alu): ditto
38943         (generic_fmul_half): ditto
38944         * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
38945         * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
38946         (sifive_7_popcount): ditto
38947         * config/riscv/vector.md: change rdfrm to fmove
38948         * config/riscv/zc.md: change pushpop to load/store
38950 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38952         Revert:
38953         2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38954                     Robin Dapp  <rdapp.gcc@gmail.com>
38956         * config/riscv/generic-ooo.md (generic_ooo): Move reservation
38957         (generic_ooo_vec_load): ditto
38958         (generic_ooo_vec_store): ditto
38959         (generic_ooo_vec_loadstore_seg): ditto
38960         (generic_ooo_vec_alu): ditto
38961         (generic_ooo_vec_fcmp): ditto
38962         (generic_ooo_vec_imul): ditto
38963         (generic_ooo_vec_fadd): ditto
38964         (generic_ooo_vec_fmul): ditto
38965         (generic_ooo_crypto): ditto
38966         (generic_ooo_perm): ditto
38967         (generic_ooo_vec_reduction): ditto
38968         (generic_ooo_vec_ordered_reduction): ditto
38969         (generic_ooo_vec_idiv): ditto
38970         (generic_ooo_vec_float_divsqrt): ditto
38971         (generic_ooo_vec_mask): ditto
38972         (generic_ooo_vec_vesetvl): ditto
38973         (generic_ooo_vec_setrm): ditto
38974         (generic_ooo_vec_readlen): ditto
38975         * config/riscv/riscv.md: include generic-vector-ooo
38976         * config/riscv/generic-vector-ooo.md: New file. to here
38978 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38980         Revert:
38981         2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38983         * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
38985 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38987         * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
38989 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
38990             Robin Dapp  <rdapp.gcc@gmail.com>
38992         * config/riscv/generic-ooo.md (generic_ooo): Move reservation
38993         (generic_ooo_vec_load): ditto
38994         (generic_ooo_vec_store): ditto
38995         (generic_ooo_vec_loadstore_seg): ditto
38996         (generic_ooo_vec_alu): ditto
38997         (generic_ooo_vec_fcmp): ditto
38998         (generic_ooo_vec_imul): ditto
38999         (generic_ooo_vec_fadd): ditto
39000         (generic_ooo_vec_fmul): ditto
39001         (generic_ooo_crypto): ditto
39002         (generic_ooo_perm): ditto
39003         (generic_ooo_vec_reduction): ditto
39004         (generic_ooo_vec_ordered_reduction): ditto
39005         (generic_ooo_vec_idiv): ditto
39006         (generic_ooo_vec_float_divsqrt): ditto
39007         (generic_ooo_vec_mask): ditto
39008         (generic_ooo_vec_vesetvl): ditto
39009         (generic_ooo_vec_setrm): ditto
39010         (generic_ooo_vec_readlen): ditto
39011         * config/riscv/riscv.md: include generic-vector-ooo
39012         * config/riscv/generic-vector-ooo.md: New file. to here
39014 2024-02-01  Edwin Lu  <ewlu@rivosinc.com>
39016         * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
39017         (generic_ooo_branch): ditto
39018         * config/riscv/generic.md (generic_sfb_alu): ditto
39019         (generic_fmul_half): ditto
39020         * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
39021         * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
39022         (sifive_7_popcount): ditto
39023         * config/riscv/vector.md: change rdfrm to fmove
39024         * config/riscv/zc.md: change pushpop to load/store
39026 2024-02-01  Andrew Pinski  <quic_apinski@quicinc.com>
39028         PR target/113657
39029         * config/aarch64/aarch64-simd.md (split for movv8di):
39030         For strict aligned mode, use DImode instead of TImode.
39032 2024-01-31  Robin Dapp  <rdapp@ventanamicro.com>
39034         PR middle-end/113607
39035         * match.pd: Make sure else values match when folding a
39036         vec_cond into a conditional operation.
39038 2024-01-31  Marek Polacek  <polacek@redhat.com>
39040         * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
39042 2024-01-31  Tamar Christina  <tamar.christina@arm.com>
39043             Matthew Malcomson  <matthew.malcomson@arm.com>
39045         PR sanitizer/112644
39046         * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
39047         memcmp.
39048         * builtins.cc (expand_builtin): Include HWASAN when checking for
39049         builtin inlining.
39051 2024-01-31  Richard Biener  <rguenther@suse.de>
39053         PR middle-end/110176
39054         * match.pd (zext (bool) <= (int) 4294967295u): Make sure
39055         to match INTEGER_CST only without outstanding conversion.
39057 2024-01-31  Alex Coplan  <alex.coplan@arm.com>
39059         PR target/111677
39060         * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
39061         V16QImode for the full 16-byte FPR saves in the vector PCS case.
39063 2024-01-31  Richard Biener  <rguenther@suse.de>
39065         PR tree-optimization/111444
39066         * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
39067         vn_reference_lookup_2 when optimistically skipping may-defs.
39069 2024-01-31  Richard Biener  <rguenther@suse.de>
39071         PR tree-optimization/113630
39072         * tree-ssa-pre.cc (compute_avail): Avoid registering a
39073         reference with a representation with not matching base
39074         access size.
39076 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
39078         PR rtl-optimization/113656
39079         * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
39080         <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
39082 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
39084         PR debug/113637
39085         * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
39086         with BLKmode are larger than DWARF2_ADDR_SIZE.
39088 2024-01-31  Jakub Jelinek  <jakub@redhat.com>
39090         PR tree-optimization/113639
39091         * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
39092         For VIEW_CONVERT_EXPR set rhs1 to its operand.
39094 2024-01-31  Richard Biener  <rguenther@suse.de>
39096         PR tree-optimization/113670
39097         * tree-vect-data-refs.cc (vect_check_gather_scatter):
39098         Make sure we can take the address of the reference base.
39100 2024-01-31  Georg-Johann Lay  <avr@gjlay.de>
39102         * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
39103         ATA5835, ATtiny64AUTO, ATA5700M322.
39104         * doc/avr-mmcu.texi: Rebuild.
39106 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
39108         PR debug/113394
39109         * ipa-strub.cc (build_ref_type_for): Drop nonaliased.  Adjust
39110         caller.
39112 2024-01-31  Alexandre Oliva  <oliva@adacore.com>
39114         PR middle-end/112917
39115         PR middle-end/113100
39116         * builtins.cc (expand_builtin_stack_address): Use
39117         STACK_ADDRESS_OFFSET.
39118         * doc/extend.texi (__builtin_stack_address): Adjust.
39119         * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
39120         * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
39121         * doc/tm.texi: Rebuilt.
39123 2024-01-31  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39125         PR target/113495
39126         * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
39127         (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
39128         (pre_vsetvl::compute_transparent): New function.
39129         (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
39131 2024-01-30  Fangrui Song  <maskray@google.com>
39133         PR target/105576
39134         * config/i386/constraints.md: Define constraint "Ws".
39135         * doc/md.texi: Document it.
39137 2024-01-30  Marek Polacek  <polacek@redhat.com>
39139         PR c++/110358
39140         PR c++/109640
39141         * doc/invoke.texi: Update -Wdangling-reference description.
39143 2024-01-30  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
39145         * config/xtensa/constraints.md (R, T, U):
39146         Change define_constraint to define_memory_constraint.
39147         * config/xtensa/predicates.md (move_operand): Don't check that a
39148         constant pool operand size is a multiple of UNITS_PER_WORD.
39149         * config/xtensa/xtensa.cc
39150         (xtensa_lra_p, TARGET_LRA_P): Remove.
39151         (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
39152         clause as it can no longer be true.
39153         (fixup_subreg_mem): Drop function.
39154         (xtensa_output_integer_literal_parts): Consider 16-bit wide
39155         constants.
39156         (xtensa_legitimate_constant_p): Add short-circuit path for
39157         integer load instructions. Don't check that mode size is
39158         at least UNITS_PER_WORD.
39159         * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
39160         rather reload_in_progress and reload_completed.
39161         (doloop_end): Drop operand 2.
39162         (movhi_internal): Add alternative loading constant from a
39163         literal pool.
39164         (define_split for DI register_operand): Don't limit to
39165         !TARGET_AUTO_LITPOOLS.
39166         * config/xtensa/xtensa.opt (mlra): Change to no effect.
39168 2024-01-30  Pan Li  <pan2.li@intel.com>
39170         * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
39171         calculate the gpr count required by vls mode.
39172         (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
39173         (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
39174         for vls mode.
39175         (riscv_get_arg_info): Add vls mode handling.
39176         (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
39178 2024-01-30  Richard Biener  <rguenther@suse.de>
39180         PR tree-optimization/113659
39181         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
39182         Handle main exit without virtual use.
39184 2024-01-30  Christoph Müllner  <christoph.muellner@vrull.eu>
39186         * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
39188 2024-01-30  Iain Sandoe  <iain@sandoe.co.uk>
39190         PR libgcc/113403
39191         * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
39192         (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
39193         * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
39194         * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
39195         * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
39196         * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
39198 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
39200         PR target/113623
39201         * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
39202         Mark all registers that occur in addresses as needing a GPR.
39204 2024-01-30  Richard Sandiford  <richard.sandiford@arm.com>
39206         PR target/113636
39207         * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
39208         the containing insn as an extra parameter.  Reset debug instructions
39209         if they reference a register that is no longer used by real insns.
39210         (early_ra::apply_allocation): Update calls accordingly.
39212 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
39214         PR tree-optimization/113603
39215         * tree-ssa-strlen.cc (strlen_pass::handle_store): After
39216         count_nonzero_bytes call refetch si using get_strinfo in case it
39217         has been unshared in the meantime.
39219 2024-01-30  Jakub Jelinek  <jakub@redhat.com>
39221         PR middle-end/101195
39222         * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
39223         fit into unsigned HOST_WIDE_INT, return constm1_rtx.
39225 2024-01-30  Jin Ma  <jinma@linux.alibaba.com>
39227         * config/riscv/thead.cc (th_print_operand_address): Change %ld
39228         to %lld.
39230 2024-01-29  Manos Anagnostakis  <manos.anagnostakis@vrull.eu>
39231             Manolis Tsamis  <manolis.tsamis@vrull.eu>
39232             Philipp Tomsich  <philipp.tomsich@vrull.eu>
39234         * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
39235         * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
39236         Likewise.
39237         * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
39238         Call on framework moved later.
39240 2024-01-29  Jose E. Marchesi  <jose.marchesi@oracle.com>
39242         * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
39243         instruction in naked function epilogues.
39245 2024-01-29  YunQiang Su  <syq@gcc.gnu.org>
39247         PR target/113655
39248         * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
39249         gcc_cv_as_mips_explicit_relocs.
39250         * configure: Regnerated.
39252 2024-01-29  Matthieu Longo  <matthieu.longo@arm.com>
39254         PR target/108933
39255         * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
39256         Correct generated RTL.
39257         (arm_rev16si2_alt1): Correctly handle conditional execution.
39258         (arm_rev16si2_alt2): Likewise.
39260 2024-01-29  Richard Biener  <rguenther@suse.de>
39262         PR middle-end/113622
39263         * expr.cc (expand_assignment): Spill hard registers if
39264         we index them with a variable offset.
39266 2024-01-29  Richard Biener  <rguenther@suse.de>
39268         PR middle-end/113622
39269         * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
39270         Also allow DECL_HARD_REGISTER variables.
39272 2024-01-29  Alex Coplan  <alex.coplan@arm.com>
39274         PR target/113616
39275         * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
39276         Use iterate_safely when iterating over debug uses.
39277         (fixup_debug_uses): Likewise.
39278         (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
39279         over nondebug insns instead of manually maintaining the next insn.
39280         * iterator-utils.h (class safe_iterator): New.
39281         (iterate_safely): New.
39283 2024-01-29  H.J. Lu  <hjl.tools@gmail.com>
39285         PR target/38534
39286         * config/i386/i386-options.cc (ix86_set_func_type): Save
39287         callee-saved registers in noreturn functions for -O0/-Og.
39289 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
39291         PR target/113615
39292         * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
39293         define for !TARGET_RDNA2_PLUS.
39295 2024-01-29  Richard Sandiford  <richard.sandiford@arm.com>
39297         PR target/113281
39298         * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
39299         workaround for right shifts.
39300         (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
39301         (vect_determine_precisions_from_range): Be more selective about
39302         which codes can be narrowed based on their input and output ranges.
39303         For shifts, require at least one more bit of precision than the
39304         maximum shift amount.
39306 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
39308         * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
39310 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
39312         * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
39313         but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
39314         LLVM 13.0.1+.
39316 2024-01-29  Tobias Burnus  <tburnus@baylibre.com>
39318         PR other/111966
39319         * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
39320         (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
39321         (SET_SRAM_ECC_UNSET): ... this.
39322         (copy_early_debug_info): Remove gfx900 special case, now handled as
39323         part of the generic handling.
39324         (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
39326 2024-01-29  Jakub Jelinek  <jakub@redhat.com>
39328         PR tree-optimization/110603
39329         * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
39330         setting of pdata->maxlen to vr.upper_bound (which is unconditionally
39331         overwritten anyway).  Avoid creating invalid range with minlen
39332         larger than maxlen.  Formatting fix.
39334 2024-01-29  Richard Biener  <rguenther@suse.de>
39336         PR debug/103047
39337         * tree-inline.cc (initialize_inlined_parameters): Reverse
39338         the decl chain of inlined parameters.
39340 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
39342         * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
39343         alignment of CFString constants by setting DECL_USER_ALIGN.
39345 2024-01-28  Iain Sandoe  <iain@sandoe.co.uk>
39346             Jakub Jelinek   <jakub@redhat.com>
39348         PR libgcc/113402
39349         * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
39350         and BUILT_IN_GCC_NESTED_PTR_DELETED.
39351         * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
39352         BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
39353         rename the library fallbacks to __gcc_nested_func_ptr_created and
39354         __gcc_nested_func_ptr_deleted.
39355         * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
39356         and __gcc_nested_func_ptr_deleted.
39357         * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
39358         BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
39359         * tree.cc (build_common_builtin_nodes): Build the
39360         BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
39361         builtins only for non-explicit.
39363 2024-01-28  YunQiang Su  <syq@gcc.gnu.org>
39365         * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
39367 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
39369         PR target/38534
39370         * config/i386/i386-options.cc (ix86_set_func_type): Don't
39371         save and restore callee saved registers for a noreturn function
39372         with nothrow or compiled with -fno-exceptions.
39374 2024-01-27  H.J. Lu  <hjl.tools@gmail.com>
39376         PR target/103503
39377         PR target/113312
39378         * config/i386/i386-expand.cc (ix86_expand_call): Replace
39379         no_caller_saved_registers check with call_saved_registers check.
39380         Clobber all registers that are not used by the callee with
39381         no_callee_saved_registers attribute.
39382         * config/i386/i386-options.cc (ix86_set_func_type): Set
39383         call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
39384         noreturn function.  Disallow no_callee_saved_registers with
39385         interrupt or no_caller_saved_registers attributes together.
39386         (ix86_set_current_function): Replace no_caller_saved_registers
39387         check with call_saved_registers check.
39388         (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
39389         (ix86_handle_call_saved_registers_attribute): This.
39390         (ix86_gnu_attributes): Add
39391         ix86_handle_call_saved_registers_attribute.
39392         * config/i386/i386.cc (ix86_conditional_register_usage): Replace
39393         no_caller_saved_registers check with call_saved_registers check.
39394         (ix86_function_ok_for_sibcall): Don't allow callee with
39395         no_callee_saved_registers attribute when the calling function
39396         has callee-saved registers.
39397         (ix86_comp_type_attributes): Also check
39398         no_callee_saved_registers.
39399         (ix86_epilogue_uses): Replace no_caller_saved_registers check
39400         with call_saved_registers check.
39401         (ix86_hard_regno_scratch_ok): Likewise.
39402         (ix86_save_reg): Replace no_caller_saved_registers check with
39403         call_saved_registers check.  Don't save any registers for
39404         TYPE_NO_CALLEE_SAVED_REGISTERS.  Save all registers with
39405         TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
39406         no_callee_saved_registers attribute is called.
39407         (find_drap_reg): Replace no_caller_saved_registers check with
39408         call_saved_registers check.
39409         * config/i386/i386.h (call_saved_registers_type): New enum.
39410         (machine_function): Replace no_caller_saved_registers with
39411         call_saved_registers.
39412         * doc/extend.texi: Document no_callee_saved_registers attribute.
39414 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
39416         PR tree-optimization/113614
39417         * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
39418         widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
39419         TRUNC_MOD_EXPR or FLOAT_EXPR uses.
39421 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
39423         PR tree-optimization/113568
39424         * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
39425         For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
39426         in the widening extension checks.
39428 2024-01-27  Jakub Jelinek  <jakub@redhat.com>
39430         * gimple-lower-bitint.cc (gimple_lower_bitint): For
39431         TDF_DETAILS dump mapping of SSA_NAMEs to decls.
39433 2024-01-26  Hans-Peter Nilsson  <hp@axis.com>
39435         * cgraphunit.cc (process_function_and_variable_attributes): Tweak
39436         the warning for an attribute-always_inline without inline declaration.
39438 2024-01-26  Robin Dapp  <rdapp@ventanamicro.com>
39440         PR other/113575
39441         * genopinit.cc (main): Split init_all_optabs into functions
39442         of 1000 patterns each.
39444 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
39446         * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
39447         TM_MULTILIB_CONFIG.
39448         * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
39449         * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
39450         -march/-mtune.
39452 2024-01-26  Andrew Stubbs  <ams@baylibre.com>
39454         * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
39455         * config/gcn/gcn-valu.md (all_convert): New iterator.
39456         (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
39457         define_expand, and rename the old one to ...
39458         (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
39459         (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
39460         (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
39461         (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
39462         * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
39463         (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
39464         * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
39465         (<u>mulqihi3_scalar): Likewise.
39467 2024-01-26  Richard Biener  <rguenther@suse.de>
39469         PR tree-optimization/113602
39470         * tree-data-ref.cc (dr_analyze_innermost): Fail when
39471         the base object isn't addressable.
39473 2024-01-26  Tobias Burnus  <tburnus@baylibre.com>
39475         * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
39476         "--amdhsa-code-object-version=" argument.
39477         (ASM_SPEC): Use it; replace previous version of it.
39479 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39481         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
39482         (pre_vsetvl::emit_vsetvl): Ditto.
39484 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
39486         * config/loongarch/lasx.md (vec_extract<mode>_0):
39487         New define_insn_and_split patten.
39489 2024-01-26  Jiahao Xu  <xujiahao@loongson.cn>
39491         * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
39493 2024-01-26  Li Wei  <liwei@loongson.cn>
39495         * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
39497 2024-01-26  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39499         PR target/113469
39500         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
39502 2024-01-26  Andrew Pinski  <quic_apinski@quicinc.com>
39504         PR target/100212
39505         * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
39506         undefined shift after the call to exact_log2.
39508 2024-01-25  Andrew Pinski  <quic_apinski@quicinc.com>
39510         PR target/100204
39511         * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
39512         before taking the negative of it.
39514 2024-01-25  Vladimir N. Makarov  <vmakarov@redhat.com>
39516         PR target/113526
39517         * lra-constraints.cc (curr_insn_transform): Change class even for
39518         spilled pseudo successfully matched with with NO_REGS.
39520 2024-01-25  Georg-Johann Lay  <avr@gjlay.de>
39522         PR target/113601
39523         * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
39525 2024-01-25  Szabolcs Nagy  <szabolcs.nagy@arm.com>
39527         PR target/112987
39528         * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
39529         (aarch64_expand_epilogue): Use the new function.
39530         (aarch64_split_compare_and_swap): Likewise.
39531         (aarch64_split_atomic_op): Likewise.
39533 2024-01-25  Robin Dapp  <rdapp.gcc@gmail.com>
39535         PR middle-end/112971
39536         * fold-const.cc (simplify_const_binop): New function for binop
39537         simplification of two constant vectors when element-wise
39538         handling is not necessary.
39539         (const_binop): Call new function.
39541 2024-01-25  Mary Bennett  <mary.bennett@embecosm.com>
39543         * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
39544         * config/riscv/constraints.md: Likewise.
39545         * config/riscv/corev.def: Likewise.
39546         * config/riscv/corev.md: Likewise.
39547         * config/riscv/predicates.md: Likewise.
39548         * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
39549         * config/riscv/riscv-ftypes.def: Likewise.
39550         * config/riscv/riscv.opt: Likewise.
39551         * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
39552         * doc/extend.texi: Add XCVbitmanip builtin documentation.
39553         * doc/sourcebuild.texi: Likewise.
39555 2024-01-25  Tobias Burnus  <tburnus@baylibre.com>
39557         * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
39559 2024-01-25  Yanzhang Wang  <yanzhang.wang@intel.com>
39561         PR target/113538
39562         * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
39563         (riscv_fntype_abi): Ditto.
39564         * config/riscv/riscv.opt: Ditto.
39566 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
39568         PR middle-end/113574
39569         * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
39570         count against TYPE_PRECISION rather than TYPE_SIZE.
39572 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
39574         PR target/113572
39575         * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
39576         Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
39578 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
39580         PR target/113550
39581         * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
39582         whether each split instruction is a load that clobbers the source
39583         address.  Emit that instruction last if so.
39585 2024-01-25  Richard Sandiford  <richard.sandiford@arm.com>
39587         PR target/113485
39588         * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
39589         pattern.
39590         (<optab><Vnarrowq><mode>2): Use it instead of generating a
39591         paradoxical subreg for the input.
39593 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39595         * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
39596         (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
39597         predecessors dump information.
39599 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39601         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
39602         redundant full available computation.
39603         (pre_vsetvl::pre_global_vsetvl_info): Ditto.
39605 2024-01-25  Jakub Jelinek  <jakub@redhat.com>
39607         * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
39608         * doc/rtl.texi (CONST_VECTOR): Likewise.
39610 2024-01-25  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39612         * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
39613         * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
39614         (pass_vsetvl::execute): Ditto.
39615         * config/riscv/riscv.opt: Ditto.
39617 2024-01-25  Jiahao Xu  <xujiahao@loongson.cn>
39619         * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
39620         * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
39622 2024-01-25  Richard Biener  <rguenther@suse.de>
39624         PR tree-optimization/113576
39625         * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
39626         exits with may_be_zero niters when its the last one.
39628 2024-01-25  Lulu Cheng  <chenglulu@loongson.cn>
39630         * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
39631         For symbols of type tls, non-zero Offset is not generated.
39633 2024-01-25  Haochen Gui  <guihaoc@gcc.gnu.org>
39635         * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
39636         P9 with m32 and mpowerpc64.
39638 2024-01-25  liuhongt  <hongtao.liu@intel.com>
39640         * config/i386/i386-options.cc (ix86_option_override_internal):
39641         Enable -mlam=u57 by default when compiled with
39642         -fsanitize=hwaddress.
39644 2024-01-25  Palmer Dabbelt  <palmer@rivosinc.com>
39646         * common/config/riscv/riscv-common.cc (riscv_implied_info):
39647         Remove {"ztso", "a"}.
39649 2024-01-24  Martin Jambor  <mjambor@suse.cz>
39651         PR ipa/108007
39652         PR ipa/112616
39653         * cgraph.h (cgraph_edge): Add a parameter to
39654         redirect_call_stmt_to_callee.
39655         * ipa-param-manipulation.h (ipa_param_adjustments): Add a
39656         parameter to modify_call.
39657         (ipa_release_ssas_in_hash): Declare.
39658         * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
39659         parameter killed_ssas, pass it to padjs->modify_call.
39660         * ipa-param-manipulation.cc (purge_all_uses): New function.
39661         (ipa_param_adjustments::modify_call): New parameter killed_ssas.
39662         Instead of substituting uses, invoke purge_all_uses.  If
39663         hash of killed SSAs has not been provided, create a temporary one
39664         and release SSAs that have been added to it.
39665         (compare_ssa_versions): New function.
39666         (ipa_release_ssas_in_hash): Likewise.
39667         * tree-inline.cc (redirect_all_calls): Create
39668         id->killed_new_ssa_names earlier, pass it to edge redirection,
39669         adjust a comment.
39670         (copy_body): Release SSAs in id->killed_new_ssa_names.
39672 2024-01-24  Andrew Pinski  <quic_apinski@quicinc.com>
39674         PR target/113486
39675         * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
39676         TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
39678 2024-01-24  Monk Chiang  <monk.chiang@sifive.com>
39680         PR target/113095
39681         * config/riscv/sfb.md: New splitters to rewrite single bit
39682         sign extension as the condition to SFB instructions.
39684 2024-01-24  Jan Hubicka  <jh@suse.cz>
39686         PR middle-end/88345
39687         * common.opt: (flimit-function-alignment): Reorder alphabeticaly
39688         (fmin-function-alignment): New parameter.
39689         * doc/invoke.texi: (-fmin-function-alignment): Document.
39690         (-falign-functions,-falign-loops,-falign-labels): Mention that
39691         aglinments are ignored in cold code.
39692         * varasm.cc (assemble_start_function): Handle min-function-alignment.
39694 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
39696         PR target/109636
39697         * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
39698         mulv2di3): Remove.
39699         * config/aarch64/iterators.md (VQDIV): Remove.
39700         (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
39701         SVE_I_SIMD_DI): New.
39702         (VPRED, sve_lane_con): Add V4SI and V2DI.
39703         * config/aarch64/aarch64-sve.md (<optab><mode>3,
39704         @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
39705         (mul<mode>3): New, split from <optab><mode>3.
39706         (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
39707         * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
39708         *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
39709         SVE_FULL_HSDI_SIMD_DI.
39711 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
39713         PR tree-optimization/113552
39714         * config/aarch64/aarch64.cc
39715         (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
39717 2024-01-24  Martin Jambor  <mjambor@suse.cz>
39719         PR ipa/113490
39720         * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
39721         count is equal or greater than the limit.  Use the limit from the
39722         callee.
39724 2024-01-24  YunQiang Su  <syq@gcc.gnu.org>
39726         * configure.ac: Detect the explicit relocs support for
39727         mips, and define C macro MIPS_EXPLICIT_RELOCS.
39728         * config.in: Regenerated.
39729         * configure: Regenerated.
39730         * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
39731         * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
39732         * config/mips/mips.cc(mips_set_compression_mode): Sorry if
39733         !TARGET_EXPLICIT_RELOCS instead of just set it.
39734         * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
39735         TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
39736         * config/mips/mips.opt: Introduce -mexplicit-relocs= option
39737         and define -m(no-)explicit-relocs as aliases.
39739 2024-01-24  Alex Coplan  <alex.coplan@arm.com>
39741         * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
39742         to 1.
39743         (-mlate-ldp-fusion): Likewise.
39745 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
39747         * tree-vect-loop.cc (vect_get_vect_def,
39748         vect_create_epilog_for_reduction): Rename main_exit_p to
39749         last_val_reduc_p.
39751 2024-01-24  Tamar Christina  <tamar.christina@arm.com>
39753         PR tree-optimization/113364
39754         * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
39755         early exits then we must reduce from the first offset for all of them.
39757 2024-01-24  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39759         PR target/113495
39760         * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
39761         (get_regno): Ditto.
39762         (get_bb_index): Ditto.
39763         (pre_vsetvl::compute_avl_def_data): Ditto.
39764         (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
39765         (pre_vsetvl::pre_global_vsetvl_info): Ditto.
39767 2024-01-23  Andrew Pinski  <quic_apinski@quicinc.com>
39768             Richard Sandiford  <richard.sandiford@arm.com>
39770         PR target/100942
39771         * ccmp.cc (ccmp_candidate_p): Add outer argument.
39772         Allow if the outer is true and the lhs is used more
39773         than once.
39774         (expand_ccmp_expr): Update call to ccmp_candidate_p.
39775         * expr.h (expand_expr_real_gassign): Declare.
39776         * expr.cc (expand_expr_real_gassign): New function, split out from...
39777         (expand_expr_real_1): ...here.
39778         * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
39780 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39782         PR target/113089
39783         * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
39784         (fixup_debug_use): New.
39785         (fixup_debug_uses_trailing_add): New.
39786         (fixup_debug_uses): New. Use it ...
39787         (ldp_bb_info::fuse_pair): ... here.
39788         (try_promote_writeback): Call fixup_debug_uses_trailing_add to
39789         fix up debug uses of the base register that are affected by
39790         folding in the trailing add insn.
39792 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39794         PR target/113089
39795         * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
39796         Update trailing nondebug uses of the base register in the case
39797         of cancelling writeback.
39799 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39801         PR target/113089
39802         * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
39803         (debug_insn_use_iterator): New.
39804         (set_info::first_debug_insn_use): New.
39805         (set_info::debug_insn_uses): New.
39806         * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
39807         (set_info::first_debug_insn_use): New.
39808         (set_info::debug_insn_uses): New.
39810 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39812         PR target/113356
39813         * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
39814         Don't record hazards against the opposite insn in the pair.
39816 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39818         PR target/113070
39819         * config/aarch64/aarch64-ldp-fusion.cc
39820         (struct stp_change_builder): New.
39821         (decide_stp_strategy): Reanme to ...
39822         (try_repurpose_store): ... this.
39823         (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
39824         construct stp changes.  Fix up uses when inserting new stp insns.
39826 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39828         PR target/113070
39829         * rtl-ssa.h: Include hash-set.h.
39830         * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
39831         new_sets parameter and use it to keep track of new user-created sets.
39832         (function_info::apply_changes_to_insn): Also call add_def on new sets.
39833         (function_info::change_insns): Add hash_set to keep track of new
39834         user-created defs.  Plumb it through.
39835         * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
39836         apply_changes_to_insn.
39838 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39840         PR target/113070
39841         * rtl-ssa/accesses.cc (function_info::create_use): New.
39842         * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
39843         Ensure new uses end up referring to permanent defs.
39844         * rtl-ssa/functions.h (function_info::create_use): Declare.
39846 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39848         PR target/113070
39849         * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
39850         to finalize_new_accesses from the backwards placement loop, run it
39851         forwards in a separate loop.
39853 2024-01-23  Richard Biener  <rguenther@suse.de>
39855         PR tree-optimization/113552
39856         * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
39857         floor_log2 instead of exact_log2 on the number of calls.
39859 2024-01-23  Jeff Law  <jlaw@ventanamicro.com>
39860             Jakub Jelinek  <jakub@redhat.com>
39862         * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
39863         decl.
39865 2024-01-23  Richard Biener  <rguenther@suse.de>
39867         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
39868         Separate single and multi-exit case when creating PHIs between
39869         the main and epilogue.
39871 2024-01-23  Richard Sandiford  <richard.sandiford@arm.com>
39873         PR target/112989
39874         * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
39875         MODE_single variants of functions that don't take tuple arguments.
39877 2024-01-23  Alex Coplan  <alex.coplan@arm.com>
39879         PR target/113114
39880         * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
39881         Don't assert recog success, just punt if the writeback pair
39882         isn't recognized.
39884 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
39886         * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
39887         ATTRIBUTE_UNUSED to decl.
39889 2024-01-23  Richard Biener  <rguenther@suse.de>
39891         PR debug/107058
39892         * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
39893         handle unexpected but bogus DIE contexts when not checking
39894         enabled.
39896 2024-01-23  Jakub Jelinek  <jakub@redhat.com>
39898         PR tree-optimization/113462
39899         * fold-const.cc (native_interpret_int): Don't punt if total_bytes
39900         is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
39901         (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
39902         sizes between 129 and 8192 bytes.
39904 2024-01-23  Xi Ruoyao  <xry111@xry111.site>
39906         * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
39907         If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
39908         for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
39909         (loongarch_call_tls_get_addr): Do not split symbols of
39910         SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
39911         EXPLICIT_RELOCS_AUTO.
39913 2024-01-23  Richard Biener  <rguenther@suse.de>
39915         * alias.cc (known_base_value_p): Remove.
39916         (find_base_value): Remove PLUS/MINUS handling
39917         when both operands are not CONST_INT_P.
39919 2024-01-23  Richard Biener  <rguenther@suse.de>
39921         PR rtl-optimization/113255
39922         * alias.cc (find_base_term): Remove PLUS/MINUS handling
39923         when both operands are not CONST_INT_P.
39925 2024-01-23  Richard Biener  <rguenther@suse.de>
39927         PR debug/112718
39928         * dwarf2out.cc (dwarf2out_finish): Reset all type units
39929         for the fat part of an LTO compile.
39931 2024-01-23  chenxiaolong  <chenxiaolong@loongson.cn>
39933         * doc/sourcebuild.texi: Add attributes for keywords.
39935 2024-01-23  Sandra Loosemore  <sandra@codesourcery.com>
39937         PR c++/90463
39938         * doc/invoke.texi (Warning Options): Correct lists of options
39939         enabled by -Wall and -Wextra by checking against common.opt
39940         and c-family/c.opt.
39942 2024-01-22  Andrew Pinski  <quic_apinski@quicinc.com>
39944         PR target/113030
39945         * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
39946         instead of cpu_optaliases.
39947         (check_arch): Use arch_opt_alias instead of arch_optaliases.
39949 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39951         * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
39952         * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
39953         * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
39955 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39957         PR target/109092
39958         * config/riscv/riscv.md: Use reg instead of subreg.
39960 2024-01-22  Tobias Burnus  <tburnus@baylibre.com>
39962         PR other/111966
39963         * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
39964         to match the compiler default.
39965         (simple_object_copy_lto_debug_sections): Never unlink the outfile
39966         on error as the caller does so.
39967         (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
39968         (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
39970 2024-01-22  Richard Biener  <rguenther@suse.de>
39972         PR tree-optimization/113373
39973         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
39974         Create LC PHIs in the exit blocks where necessary.
39975         * tree-vect-loop.cc (vectorizable_live_operation): Do not try
39976         to handle missing LC PHIs.
39977         (find_connected_edge): Remove.
39978         (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
39980 2024-01-22  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
39982         * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
39984 2024-01-22  xuli  <xuli1@eswincomputing.com>
39986         PR target/113420
39987         * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
39988         (registered_function::overloaded_hash):refactor.
39989         (resolve_overloaded_builtin):avoid internal ICE.
39991 2024-01-21  Mikael Pettersson  <mikpelinux@gmail.com>
39993         PR target/82420
39994         PR target/111279
39995         * calls.cc (emit_library_call_value_1): Pass valid TYPE
39996         to emit_push_insn.
39997         * expr.cc (emit_push_insn): Likewise.
39999 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
40001         * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
40002         correcction version of last change.
40004 2024-01-21  Jeff Law  <jlaw@ventanamicro.com>
40006         * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
40007         fix bugs in signature.
40009 2024-01-21  Roger Sayle  <roger@nextmovesoftware.com>
40010             Richard Biener  <rguenther@suse.de>
40012         PR rtl-optimization/111267
40013         * fwprop.cc (fwprop_propagation::profitabe_p): Rename
40014         profitable_p method to likely_profitable_p.
40015         (try_fwprop_subst_node): Update call to likely_profitable_p.
40016         Only bail-out early when !prop.likely_profitable_p for instructions
40017         that are not single sets.  When comparing costs, bail-out if the
40018         cost is unchanged and !prop.likely_profitable_p.
40020 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
40022         PR c++/90464
40023         * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
40024         isn't enabled by -Wunused unless -Wextra is provided, and that
40025         -Wunused does enable -Wunused-const-variable=1 for C.  Clarify that
40026         -Wunused doesn't enable -Wunused-* options documented as behaving
40027         otherwise, and list them explicitly.
40029 2024-01-21  Sandra Loosemore  <sandra@codesourcery.com>
40031         PR c/109708
40032         * doc/invoke.texi (Warning Options): Fix broken example and
40033         clean up/reorganize the others.  Also describe what the short-form
40034         options mean.
40036 2024-01-20  Sandra Loosemore  <sandra@codesourcery.com>
40038         PR c/102998
40039         * doc/invoke.texi (Option Summary): Add -Warray-parameter.
40040         (Warning Options): Correct/edit discussion of -Warray-parameter
40041         to make the first example less confusing, and fill in missing info.
40043 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
40045         PR tree-optimization/113462
40046         * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
40047         Handle rhs1 INTEGER_CST like SSA_NAME.
40049 2024-01-20  Jakub Jelinek  <jakub@redhat.com>
40051         PR tree-optimization/113491
40052         * tree-switch-conversion.cc (switch_conversion::build_constructors):
40053         If elt.index has precision higher than sizetype, fold_convert it to
40054         sizetype.
40055         (switch_conversion::array_value_type): Return type if type is
40056         BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
40057         (switch_conversion::build_arrays): Use unsigned_type_for rather than
40058         lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
40059         above MAX_FIXED_MODE_SIZE or with BLKmode.  If utype has precision
40060         higher than sizetype, use sizetype as tidx type and fold_convert the
40061         subtraction to sizetype.
40063 2024-01-20  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40065         * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
40066         (riscv_vector_mode_supported_any_target_p): Ditto.
40068 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
40070         PR target/110934
40071         * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
40072         (TARGET_ZERO_CALL_USED_REGS): Define.
40074 2024-01-19  Mikael Pettersson  <mikpelinux@gmail.com>
40076         PR target/108640
40077         * config/m68k/m68k.cc (output_andsi3): Use QImode for
40078         address adjusted for 1-byte RMW access.
40079         (output_iorsi3): Likewise.
40080         (output_xorsi3): Likewise.
40082 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40084         * doc/invoke.texi (RISC-V Options): Add list of supported
40085         extensions.
40087 2024-01-19  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40089         PR target/113495
40090         * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
40091         (RVV_VUNDEF): Ditto.
40092         * config/riscv/riscv-vsetvl.cc: Add timevar.
40094 2024-01-19  Richard Biener  <rguenther@suse.de>
40096         PR debug/113488
40097         * lto-streamer-in.cc (lto_read_tree_1): When there isn't
40098         an early DIE but there should be, do not pretend there is.
40100 2024-01-19  Richard Biener  <rguenther@suse.de>
40102         PR tree-optimization/113494
40103         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
40104         Handle endless loop on exit.  Handle re-allocated PHI.
40106 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
40108         PR tree-optimization/113464
40109         * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
40110         optimize loads into GIMPLE_ASM stmts.
40112 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
40114         PR tree-optimization/113463
40115         * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
40116         Only look through NOP_EXPRs if rhs1 doesn't have wider type than
40117         lhs.
40119 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
40121         PR tree-optimization/113459
40122         * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
40123         TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
40124         of SCALAR_INT_TYPE_MODE if type has BLKmode.
40125         (vn_reference_lookup_3): Likewise.  Formatting fix.
40127 2024-01-19  Jakub Jelinek  <jakub@redhat.com>
40128             Richard Biener  <rguenther@suse.de>
40130         * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
40131         VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
40132         * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
40133         but adjust_address also for BLKmode mode and MEM op0.
40135 2024-01-19  Palmer Dabbelt  <palmer@rivosinc.com>
40137         * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
40138         extensions.
40140 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40142         * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
40144 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40146         * common/config/riscv/riscv-common.cc
40147         (riscv_subset_list::parse_std_ext): Remove.
40148         (riscv_subset_list::parse_multiletter_ext): Remove.
40149         * config/riscv/riscv-subset.h
40150         (riscv_subset_list::parse_std_ext): Remove.
40151         (riscv_subset_list::parse_multiletter_ext): Remove.
40153 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40155         * common/config/riscv/riscv-common.cc
40156         (riscv_subset_list::parse_single_std_ext): New parameter.
40157         (riscv_subset_list::parse_single_multiletter_ext): Ditto.
40158         (riscv_subset_list::parse_single_ext): Ditto.
40159         (riscv_subset_list::parse): Relax the order for the input of ISA
40160         string.
40161         * config/riscv/riscv-subset.h
40162         (riscv_subset_list::parse_single_std_ext): New parameter.
40163         (riscv_subset_list::parse_single_multiletter_ext): Ditto.
40164         (riscv_subset_list::parse_single_ext): Ditto.
40166 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40168         * common/config/riscv/riscv-common.cc
40169         (riscv_subset_list::parse_base_ext): New.
40170         (riscv_subset_list::parse): Extract part of logic into
40171         riscv_subset_list::parse_base_ext.
40172         * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
40173         New.
40175 2024-01-19  Kito Cheng  <kito.cheng@sifive.com>
40177         * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
40178         sorry message.
40180 2024-01-19  Kuan-Lin Chen  <rufus@andestech.com>
40182         * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
40183         UNSPEC_CLMUL_VC.
40185 2024-01-19  Sandra Loosemore  <sandra@codesourcery.com>
40187         PR c/110029
40188         * doc/extend.texi (Common Variable Attributes): Explain what
40189         happens when multiple variables with cleanups are in the same scope.
40191 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
40193         PR ipa/108470
40194         * doc/extend.texi (Common Function Attributes): Document that
40195         noinline also disables some interprocedural optimizations and
40196         improve flow to the part about using inline asm instead to
40197         disable calls from being optimized away completely.  Remove the
40198         sentence that says noipa is mainly for internal compiler testing.
40200 2024-01-18  John David Anglin  <danglin@gcc.gnu.org>
40202         PR tree-optimization/69807
40203         * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
40205 2024-01-18  Brian Inglis  <Brian.Inglis@Shaw.ca>
40207         PR target/108521
40208         * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
40209         from x86 Windows Options.
40211 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
40213         PR c/107942
40214         * doc/extend.texi (C Extensions): Add new section to menu.
40215         (Function Attributes):  Move dangling index entries to....
40216         (Const and Volatile Functions): New section.
40218 2024-01-18  David Malcolm  <dmalcolm@redhat.com>
40220         PR middle-end/112684
40221         * toplev.cc (toplev::main): Don't ICE in
40222         -fdiagnostics-generate-patch when exiting after options,
40223         since no edit context will have been created.
40225 2024-01-18  Richard Biener  <rguenther@suse.de>
40227         * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
40228         operands vector.
40230 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
40232         * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
40233         when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
40235 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40236             Jin Ma  <jinma@linux.alibaba.com>
40237             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40238             Christoph Müllner  <christoph.muellner@vrull.eu>
40240         * config/riscv/thead.cc
40241         (th_asm_output_opcode): Rewrite some instructions.
40243 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40244             Jin Ma  <jinma@linux.alibaba.com>
40245             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40246             Christoph Müllner  <christoph.muellner@vrull.eu>
40248         * config/riscv/riscv.md (none,thv,rvv): New attribute.
40249         (no,yes): Add an attribute to disable alternative
40250         for xtheadvector or RVV1.0.
40251         * config/riscv/vector.md:
40252         Disable alternatives that destination register overlaps
40253         source register group for xtheadvector.
40255 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40256             Jin Ma  <jinma@linux.alibaba.com>
40257             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40258             Christoph Müllner  <christoph.muellner@vrull.eu>
40260         * config/riscv/riscv-vector-builtins-bases.cc
40261         (class th_loadstore_width): Define new builtin bases.
40262         (class th_extract): Define new builtin bases.
40263         (BASE): Define new builtin bases.
40264         * config/riscv/riscv-vector-builtins-bases.h:
40265         Define new builtin class.
40266         * config/riscv/riscv-vector-builtins-shapes.cc
40267         (struct th_loadstore_width_def): Define new builtin shapes.
40268         (struct th_indexed_loadstore_width_def):
40269         Define new builtin shapes.
40270         (struct th_extract_def): Define new builtin shapes.
40271         (SHAPE): Define new builtin shapes.
40272         * config/riscv/riscv-vector-builtins-shapes.h:
40273         Define new builtin shapes.
40274         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
40275         Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
40276         * config/riscv/riscv-vector-builtins.h
40277         (enum required_ext): Add new XTheadVector member.
40278         (struct function_group_info): Likewise.
40279         * config/riscv/t-riscv:
40280         Add thead-vector-builtins-functions.def
40281         * config/riscv/thead-vector.md
40282         (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
40283         (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
40284         (@pred_store_width<vlmem_op_attr><mode>): Likewise.
40285         (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
40286         (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
40287         (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
40288         (@pred_th_extract<mode>): Likewise.
40289         (*pred_th_extract<mode>): Likewise.
40290         * config/riscv/thead-vector-builtins-functions.def: New file.
40292 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40293             Jin Ma  <jinma@linux.alibaba.com>
40294             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40295             Christoph Müllner  <christoph.muellner@vrull.eu>
40297         * config.gcc:  Add files for XTheadVector intrinsics.
40298         * config/riscv/autovec.md: Guard XTheadVector.
40299         * config/riscv/predicates.md: Disable immediate vl
40300         for XTheadVector.
40301         * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
40302         Add pragma for XTheadVector.
40303         * config/riscv/riscv-string.cc (riscv_expand_block_move):
40304         Guard XTheadVector.
40305         * config/riscv/riscv-v.cc (vls_mode_valid_p):
40306         Avoid autovec.
40307         * config/riscv/riscv-vector-builtins-bases.cc:
40308         Do not normalize vsetvl instructions for XTheadVector.
40309         * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
40310         New check type function.
40311         (build_one): Adjust for XTheadVector.
40312         * config/riscv/riscv-vector-switch.def (ENTRY):
40313         Disable fractional mode for the XTheadVector extension.
40314         (TUPLE_ENTRY): Likewise.
40315         * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
40316         Guard XTheadVector.
40317         (riscv_preferred_simd_mode): Likewsie.
40318         (riscv_autovectorize_vector_modes): Likewise.
40319         (riscv_vector_mode_supported_any_target_p): Likewise.
40320         (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
40321         * config/riscv/thead.cc (th_asm_output_opcode):
40322         Rewrite vsetvl instructions.
40323         * config/riscv/vector.md:
40324         Include thead-vector.md and change fractional LMUL
40325         into 1 for vbool.
40326         * config/riscv/riscv_th_vector.h: New file.
40327         * config/riscv/thead-vector.md: New file.
40329 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40330             Jin Ma  <jinma@linux.alibaba.com>
40331             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40332             Christoph Müllner  <christoph.muellner@vrull.eu>
40334         * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
40335         Add new function to add assembler insn code prefix/suffix.
40336         (th_asm_output_opcode):
40337         Add Thead function to add assembler insn code prefix/suffix.
40338         * config/riscv/riscv.cc (riscv_asm_output_opcode):
40339         Implement function to add assembler insn code prefix/suffix.
40340         * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
40341         Add new function to add assembler insn code prefix/suffix.
40342         * config/riscv/thead.cc (th_asm_output_opcode):
40343         Implement Thead function to add assembler insn code
40344         prefix/suffix.
40346 2024-01-18  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
40347             Jin Ma  <jinma@linux.alibaba.com>
40348             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
40349             Christoph Müllner  <christoph.muellner@vrull.eu>
40351         * common/config/riscv/riscv-common.cc
40352         (riscv_subset_list::parse): Add new vendor extension.
40353         * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
40354         Add test marco.
40355         * config/riscv/riscv.opt:  Add new mask.
40357 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
40359         * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
40360         to be conditional on macosx-version-min.
40362 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
40364         * config/darwin.cc (darwin_objc1_section): Use the correct
40365         meta-data version for constant strings.
40366         (machopic_select_section): Assert if we fail to handle CFString
40367         sections as Obejctive-C meta-data or drectly.
40369 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
40371         * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
40372         OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
40373         OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
40374         versions when the object format is Mach-O.
40376 2024-01-18  Iain Sandoe  <iain@sandoe.co.uk>
40378         PR target/105522
40379         * config/darwin.cc (machopic_select_section): Handle C and C++
40380         CFStrings.
40381         (darwin_rename_builtins): Move this out of the CFString code.
40382         (darwin_libc_has_function): Likewise.
40383         (darwin_build_constant_cfstring): Create an anonymous var to
40384         hold each CFString.
40385         * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
40386         CFstrings.
40388 2024-01-18  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
40390         PR bootstrap/113445
40391         * haifa-sched.cc (dep_list_size): Make global.
40392         * sched-deps.cc (find_inc): Use instead of sd_lists_size().
40393         * sched-int.h (dep_list_size): Declare.
40395 2024-01-18  Martin Jambor  <mjambor@suse.cz>
40397         PR tree-optimization/110422
40398         * tree-sra.cc (scan_function): Disqualify bases of operands of asm
40399         gotos.
40401 2024-01-18  Richard Biener  <rguenther@suse.de>
40403         PR tree-optimization/113475
40404         * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
40405         * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
40406         (phi_analyzer::~phi_analyzer): Deallocate and free collected
40407         phi_grous.
40408         (phi_analyzer::process_phi): Record allocated phi_groups.
40410 2024-01-18  Richard Biener  <rguenther@suse.de>
40412         * tree-vect-stmts.cc (vectorizable_store): Do not allocate
40413         storage for gvec_oprnds elements.
40415 2024-01-18  Richard Biener  <rguenther@suse.de>
40417         * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
40418         prefer all later exits we can handle.
40419         (vect_analyze_loop_form): Free the allocated loop body.
40420         Adjust comments.
40422 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40424         * config/avr/avr-log.cc: Tabify.
40426 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40428         * config/riscv/autovec.md: Support vi variant.
40430 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40432         * config/avr/avr-devices.cc: Tabify.
40434 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40436         * config/avr/avr-c.cc: Tabify.
40438 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40440         * config/avr/driver-avr.cc: Tabify.
40442 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40444         * config/avr/gen-avr-mmcu-texi.cc: Tabify.
40446 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40448         * config/avr/gen-avr-mmcu-specs.cc: Tabify.
40450 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
40452         * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
40453         minline-strcmp, minline-strncmp, minline-strlen,
40454         -param=riscv-vector-abi): Remove Bool keywords.
40456 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
40458         PR target/113122
40459         * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
40460         support.  Add missing space after , in emitted assembly in some
40461         cases.  Formatting fixes.
40463 2024-01-18  Xi Ruoyao  <xry111@xry111.site>
40465         * config/loongarch/loongarch.md (movsi_internal): Remove
40466         constraint z.
40468 2024-01-18  Georg-Johann Lay  <avr@gjlay.de>
40470         * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
40471         in the diagnostic, and capitalize the device name.
40472         (print_mcu): Generate specs such that:
40473         <*check_rodata_in_ram>: New.
40474         <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
40475         <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
40476         <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
40478 2024-01-18  Jakub Jelinek  <jakub@redhat.com>
40480         PR other/113399
40481         * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
40482         Common and Optimization.
40484 2024-01-18  Richard Biener  <rguenther@suse.de>
40486         PR tree-optimization/113431
40487         * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
40488         When there is an invariant load we might not preserve
40489         scalar order.
40491 2024-01-18  Richard Biener  <rguenther@suse.de>
40493         PR tree-optimization/113374
40494         * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
40495         * tree-vect-loop.cc (move_early_exit_stmts): Update
40496         virtual LC PHIs.
40497         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
40498         Refactor.  Preserve virtual LC PHIs on all exits.
40500 2024-01-18  Lulu Cheng  <chenglulu@loongson.cn>
40502         * config/loongarch/loongarch.cc (loongarch_split_symbol):
40503         Assign the '/u' attribute to the mem.
40505 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
40507         PR middle-end/110847
40508         * doc/invoke.texi (Option Summary): Document negative forms of
40509         -Wtsan and -Wxor-used-as-pow.
40510         (Warning Options): Likewise.
40512 2024-01-18  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40514         PR target/113429
40515         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
40517 2024-01-18  Sandra Loosemore  <sandra@codesourcery.com>
40519         * doc/extend.texi (Common Function Attributes): Re-alphabetize
40520         the table.
40521         (Common Variable Attributes): Likewise.
40522         (Common Type Attributes): Likewise.
40524 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
40526         PR middle-end/111659
40527         * doc/extend.texi (Common Variable Attributes): Fix long lines
40528         in documentation of strict_flex_array + other minor copy-editing.
40529         Add a cross-reference to -Wstrict-flex-arrays.
40530         * doc/invoke.texi (Option Summary): Fix whitespace in tables
40531         before -fstrict-flex-arrays and -Wstrict-flex-arrays.
40532         (C Dialect Options): Combine the docs for the two
40533         -fstrict-flex-arrays forms into a single entry.  Note this option
40534         is for C/C++ only.  Add a cross-reference to -Wstrict-flex-arrays.
40535         (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
40536         Minor copy-editing.  Add cross references to the strict_flex_array
40537         attribute and -fstrict-flex-arrays option.  Add note that this
40538         option depends on -ftree-vrp.
40540 2024-01-17  Andrew Pinski  <quic_apinski@quicinc.com>
40542         PR target/113221
40543         * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
40544         only allow REG operands instead of allowing all.
40546 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
40548         * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
40549         Remove redundant checks in else condition for readablity.
40550         (earliest_fuse_vsetvl_info) Print iteration count in debug
40551         prints.
40552         (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
40553         dump details in certain cases.
40555 2024-01-17  Vineet Gupta  <vineetg@rivosinc.com>
40557         * config/riscv/riscv.opt: New -param=vsetvl-strategy.
40558         * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
40559         * config/riscv/riscv-vsetvl.cc
40560         (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
40561         (pass_vsetvl::execute): Use vsetvl_strategy.
40563 2024-01-17  Jan Hubicka  <jh@suse.cz>
40565         * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
40566         accidental hack reseting offset.
40568 2024-01-17  Jan Hubicka  <jh@suse.cz>
40570         * config/i386/i386-options.cc (ix86_option_override_internal): Fix
40571         handling of X86_TUNE_AVOID_512FMA_CHAINS.
40573 2024-01-17  Jan Hubicka  <jh@suse.cz>
40574             Jakub Jelinek  <jakub@redhat.com>
40576         PR tree-optimization/110852
40577         * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
40578         binary operations
40579         (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
40580         PRED_COMBINED_VALUE_PREDICTIONS_PHI
40581         * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
40582         (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
40584 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40586         PR tree-optimization/113421
40587         * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
40588         comment.
40589         (bitint_dom_walker::before_dom_children): Add g temporary to simplify
40590         formatting.  Start at vop rather than cvop even if stmt is a store
40591         and needs_operand_addr.
40593 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40595         PR middle-end/113410
40596         * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
40597         If access_nelts is integral with larger precision than sizetype,
40598         fold_convert it to sizetype.
40600 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40602         PR tree-optimization/113408
40603         * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
40604         VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
40605         to handle_cast.
40607 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40609         PR middle-end/113406
40610         * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
40611         regardless of whether is_gimple_reg_type (restype) or not.
40613 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40615         * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
40616         funcions -> functions, and use were instead of was.
40617         * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
40618         and guaranteee -> guarantee.
40619         * attribs.h (struct attr_access): Fix comment typo funcion -> function.
40621 2024-01-17  Jakub Jelinek  <jakub@redhat.com>
40623         PR middle-end/113409
40624         * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
40625         INTEGER_TYPE.
40626         (omp_extract_for_data): Use build_bitint_type rather than
40627         build_nonstandard_integer_type if either iter_type or loop->v type
40628         is BITINT_TYPE.
40629         * omp-expand.cc (expand_omp_for_generic,
40630         expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
40631         BITINT_TYPE like INTEGER_TYPE.
40633 2024-01-17  Richard Biener  <rguenther@suse.de>
40635         PR tree-optimization/113371
40636         * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
40637         Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
40638         * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
40639         not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
40641 2024-01-17  Maxim Kuvyrkov  <maxim.kuvyrkov@linaro.org>
40643         PR rtl-optimization/96388
40644         PR rtl-optimization/111554
40645         * sched-deps.cc (find_inc): Avoid exponential behavior.
40647 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
40649         PR c/111693
40650         * doc/invoke.texi (Option Summary): Move -Wuseless-cast
40651         from C++ Language Options to Warning Options.  Add entry for
40652         -Wuse-after-free.
40653         (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
40654         from here....
40655         (Warning Options): ...to here.  Minor copy-editing to fix typo
40656         and grammar.
40658 2024-01-17  YunQiang Su  <syq@gcc.gnu.org>
40660         * config/mips/mips.cc (mips_compute_frame_info): If another
40661         register is used as global_pointer, mark $GP live false.
40663 2024-01-17  Sandra Loosemore  <sandra@codesourcery.com>
40665         PR target/112973
40666         * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
40667         give the section a light copy-editing pass.
40669 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
40671         * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
40672         * config/aarch64/aarch64-tune.md: Regenerated.
40673         * doc/invoke.texi (-mcpu): Add cobalt-100 core.
40675 2024-01-16  Wilco Dijkstra  <wilco.dijkstra@arm.com>
40677         PR target/112573
40678         * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
40679         badly formed CONST expressions.
40681 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
40683         * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
40685 2024-01-16  Daniel Cederman  <cederman@gaisler.com>
40687         * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
40688         * config/sparc/sync.md (membar_storeload): Turn into named insn
40689         and add GR712RC errata workaround.
40690         (membar_v8): Add GR712RC errata workaround.
40692 2024-01-16  Andreas Larsson  <andreas@gaisler.com>
40694         * config/sparc/sync.md (*membar_storeload_leon3): Remove
40695         (*membar_storeload): Enable for LEON
40697 2024-01-16  Jakub Jelinek  <jakub@redhat.com>
40699         PR tree-optimization/113372
40700         PR middle-end/90348
40701         PR middle-end/110115
40702         PR middle-end/111422
40703         * cfgexpand.cc (add_scope_conflicts_2): New function.
40704         (add_scope_conflicts_1): Use it.
40706 2024-01-16  Georg-Johann Lay  <avr@gjlay.de>
40708         * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
40709         (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
40710         * doc/avr-mmcu.texi: Regenerate.
40712 2024-01-16  Feng Xue  <fxue@os.amperecomputing.com>
40714         PR tree-optimization/113091
40715         * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
40716         (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
40717         scalar use with new function.
40718         (vect_bb_slp_mark_live_stmts): New function as entry to existing
40719         overriden functions with same name.
40720         (vect_slp_analyze_operations): Call new entry function to mark
40721         live statements.
40723 2024-01-16  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40725         PR target/113404
40726         * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
40727         for RVV in big-endian mode.
40729 2024-01-16  Yanzhang Wang  <yanzhang.wang@intel.com>
40731         * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
40732         (riscv_pass_in_vector_p): Delete.
40733         (riscv_init_cumulative_args): Delete the checking.
40734         (riscv_get_arg_info): Delete the checking.
40735         (riscv_function_value): Delete the checking.
40736         * config/riscv/riscv.h: Delete the member for checking.
40738 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
40740         * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
40742 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
40744         * config.gcc: Include riscv_bitmanip.h.
40745         * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
40746         * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
40747         * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
40748         (RISCV_BUILTIN_NO_PREFIX): New helper macro.
40749         * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
40750         * config/riscv/riscv-ftypes.def (2): New ftypes.
40751         * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
40752         (RISCV_BUILTIN_NO_PREFIX): Likewise.
40753         * config/riscv/riscv_bitmanip.h: New file.
40755 2024-01-15  Liao Shihua  <shihua@iscas.ac.cn>
40757         * config.gcc: Include riscv_crypto.h.
40758         * config/riscv/riscv_crypto.h: New file.
40760 2024-01-15  Vladimir N. Makarov  <vmakarov@redhat.com>
40762         PR middle-end/113354
40763         * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
40764         in the insn if the corresponding operand does not require hard
40765         register anymore.
40767 2024-01-15  Georg-Johann Lay  <avr@gjlay.de>
40769         PR target/107201
40770         * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
40771         * config/avr/driver-avr.cc (avr_no_devlib): New function.
40772         (avr_devicespecs_file): Use it to remove -nodevicelib from the
40773         options for cores only.
40774         * config/avr/avr-arch.h (avr_get_parch): New prototype.
40775         * config/avr/avr-devices.cc (avr_get_parch): New function.
40777 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40779         PR target/113247
40780         * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
40781         * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
40782         * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
40784 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40786         PR target/113281
40787         * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
40788         (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
40789         * config/riscv/riscv-vector-costs.h: New function.
40791 2024-01-15  Richard Biener  <rguenther@suse.de>
40793         PR tree-optimization/113385
40794         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
40795         First redirect, then split the exit edge.
40797 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40799         * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
40800         Remove m_num_vector_iterations.
40801         * config/riscv/riscv-vector-costs.h: Ditto.
40803 2024-01-15  Andrew Pinski  <quic_apinski@quicinc.com>
40805         PR target/113156
40806         * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
40807         (-mbranch-cost): Set "Optimization" flag.
40809 2024-01-15  Jakub Jelinek  <jakub@redhat.com>
40811         PR tree-optimization/113370
40812         * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
40813         set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
40814         set it to just prec % limb_prec.
40816 2024-01-15  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
40818         PR target/113393
40819         * config/riscv/vector.md: Fix ternary attributes.
40821 2024-01-14  Georg-Johann Lay  <avr@gjlay.de>
40823         PR target/112944
40824         * configure.ac [target=avr]: Check availability of emulations
40825         avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
40826         HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
40827         * configure: Regenerate.
40828         * config.in: Regenerate.
40829         * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
40830         __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
40831         * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
40832         * config/avr/avr-arch.h (enum avr_device_specific_features):
40833         Add AVR_ISA_FLMAP.
40834         * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
40835         AVR_ISA_FLMAP.
40836         * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
40837         (avr_set_core_architecture): Set avr_arch_index.
40838         (have_avrxmega2_flmap, have_avrxmega4_flmap)
40839         (have_avrxmega3_rodata_in_flash): Set new static const bool according
40840         to configure results.
40841         (avr_rodata_in_flash_p): New function using them.
40842         (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
40843         track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
40844         (avr_asm_named_section): Track avr_has_rodata_p.
40845         (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
40846         and not avr_rodata_in_flash_p ().
40847         * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
40848         (LINK_SPEC): Add %(link_rodata_in_ram).
40849         (LINK_ARCH_SPEC): Remove.
40850         * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
40851         (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
40852         const bool according to configure results.
40853         (diagnose_mrodata_in_ram): New function.
40854         (print_mcu): Generate specs with the following changes:
40855         <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
40856         need to extend avr/specs.h each time we add a new bell or whistle.
40857         <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
40858         -m[no-]rodata-in-ram.
40859         <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
40860         <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
40861         <*cpp>: Add %(cpp_rodata_in_ram).
40862         <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
40863         requested.
40864         <*self_spec>: Add -mflmap or %<mflmap as needed.
40866 2024-01-14  Jeff Law  <jlaw@ventanamicro.com>
40868         * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
40869         not the GPR iterator.  Adjust pattern name and mode attribute
40870         accordingly.
40872 2024-01-13  Jakub Jelinek  <jakub@redhat.com>
40874         PR tree-optimization/113361
40875         * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
40876         Fix up determination of the type for > limb_prec constants.
40878 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
40880         * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
40881         Add web-link to the avr-gcc wiki.
40883 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
40885         * doc/extend.texi (AVR Variable Attributes) [address]: Remove
40886         documentation for a version without argument, which is not supported.
40888 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40890         * config/arm/arm_neon.h
40891         (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
40892         (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
40893         (vld1_f16_x4, vld1_f32_x4): New.
40894         (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
40895         (vld1_bf16_x4): New.
40896         (vld1q_types_x4): Updated to use vld1q_x4
40897         from arm_neon_builtins.def
40898         * config/arm/arm_neon_builtins.def
40899         (vld1_x4): Updated entries.
40900         (vld1q_x4): New entries, but comes from the old vld1_x4
40901         * config/arm/neon.md
40902         (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
40904 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40906         * config/arm/arm_neon.h
40907         (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
40908         (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
40909         (vld1_f16_x3, vld1_f32_x3): New.
40910         (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
40911         (vld1_bf16_x3): New.
40912         (vld1q_types_x3): Updated to use vld1q_x3 from
40913         arm_neon_builtins.def
40914         * config/arm/arm_neon_builtins.def
40915         (vld1_x3): Updated entries.
40916         (vld1q_x3): New entries, but comes from the old vld1_x2
40917         * config/arm/neon.md
40918         (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
40920 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40922         * config/arm/arm_neon.h
40923         (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
40924         (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
40925         (vld1_f16_x2, vld1_f32_x2): New.
40926         (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
40927         (vld1_bf16_x2): New.
40928         (vld1q_types_x2): Updated to use vld1q_x2 from
40929         arm_neon_builtins.def
40930         * config/arm/arm_neon_builtins.def
40931         (vld1_x2): Updated entries.
40932         (vld1q_x2): New entries, but comes from the old vld1_x2
40933         * config/arm/neon.md
40934         (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
40935         neon_vld1_x2<mode>.
40937 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40939         * config/arm/arm_neon.h
40940         (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
40941         (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
40942         (vst1q_f16_x4, vst1q_f32_x4): New.
40943         (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
40944         (vst1q_bf16_x4): New.
40945         * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
40946         * config/arm/neon.md
40947         (neon_vst1q_x4<mode>): New.
40948         (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
40949         * config/arm/unspecs.md
40950         (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
40952 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40954         * config/arm/arm_neon.h
40955         (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
40956         (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
40957         (vst1q_f16_x3, vst1q_f32_x3): New.
40958         (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
40959         (vst1q_bf16_x3): New.
40960         * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
40961         * config/arm/neon.md
40962         (neon_vst1q_x3<mode>): New.
40963         (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
40964         * config/arm/unspecs.md
40965         (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
40967 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40969         * config/arm/arm_neon.h
40970         (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
40971         (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
40972         (vst1q_f16_x2, vst1q_f32_x2): New.
40973         (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
40974         (vst1q_bf16_x2): New.
40975         * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
40976         * config/arm/neon.md
40977         (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
40978         neon_vst1_x2<mode>.
40979         * config/arm/iterators.md
40980         (VMEMX2): New mode iterator.
40981         (VMEMX2_q): New mode attribute.
40983 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40985         * config/arm/arm_neon.h
40986         (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
40987         (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
40988         (vst1_f16_x4, vst1_f32_x4): New.
40989         (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
40990         (vst1_bf16_x4): New.
40991         * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
40992         * config/arm/neon.md (vst1_x4<mode>): New.
40994 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
40996         * config/arm/arm_neon.h
40997         (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
40998         (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
40999         (vst1_f16_x3, vst1_f32_x3): New.
41000         (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
41001         (vst1_bf16_x3): New.
41002         * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
41003         * config/arm/neon.md (vst1_x3<mode>): New.
41005 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
41007         * config/arm/arm_neon.h
41008         (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
41009         (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
41010         (vst1_f16_x2, vst1_f32_x2): New.
41011         (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
41012         (vst1_bf16_x2): New.
41013         * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
41014         * config/arm/neon.md (vst1_x2<mode>): New.
41016 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
41018         * config/arm/arm_neon.h
41019         (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
41020         (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
41021         (vld1q_f16_x4, vld1q_f32_x4): New.
41022         (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
41023         (vld1q_bf16_x4): New.
41024         * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
41025         * config/arm/neon.md
41026         (neon_vld1_x4<mode>): New.
41027         (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
41028         * config/arm/unspecs.md
41029         (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
41031 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
41033         * config/arm/arm_neon.h
41034         (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
41035         (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
41036         (vld1q_f16_x3, vld1q_f32_x3): New.
41037         (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
41038         (vld1q_bf16_x3): New.
41039         * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
41040         * config/arm/neon.md
41041         (neon_vld1_x3<mode>): New.
41042         (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
41043         * config/arm/unspecs.md
41044         (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
41046 2024-01-12  Ezra Sitorus  <ezra.sitorus@arm.com>
41048         * config/arm/arm_neon.h
41049         (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
41050         (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
41051         (vld1q_f16_x2, vld1q_f32_x2): New.
41052         (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
41053         (vld1q_bf16_x2): New.
41054         * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
41055         * config/arm/neon.md (vld1_x2<mode>): New.
41057 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41059         PR tree-optimization/113287
41060         * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
41062 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41064         * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
41065         * tree-vect-loop.cc (vect_transform_loop): Likewise.
41067 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41069         PR tree-optimization/113178
41070         * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
41071         alternate exits.
41073 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41075         PR tree-optimization/113237
41076         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
41077         existing LCSSA variable for exit when all exits are early break.
41079 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41081         PR tree-optimization/113137
41082         PR tree-optimization/113136
41083         PR tree-optimization/113172
41084         PR tree-optimization/113178
41085         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
41086         Maintain PHIs on inverted loops.
41087         (vect_do_peeling): Maintain virtual PHIs on inverted loops.
41088         * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
41089         latch.
41090         (vect_create_loop_vinfo): Record all conds instead of only alt ones.
41092 2024-01-12  Tamar Christina  <tamar.christina@arm.com>
41094         PR tree-optimization/113135
41095         * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
41096         dependency analysis.
41098 2024-01-12  Iain Sandoe  <iain@sandoe.co.uk>
41100         * config/rs6000/host-darwin.cc (segv_handler): Use the revised
41101         diagnostics class member name for abort of error.
41103 2024-01-12  Georg-Johann Lay  <avr@gjlay.de>
41105         * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
41106         format string to %s argument.
41108 2024-01-12  John David Anglin  <danglin@gcc.gnu.org>
41109             Jakub Jelinek  <jakub@redhat.com>
41111         PR middle-end/113182
41112         * varasm.cc (process_pending_assemble_externals,
41113         assemble_external_libcall): Use targetm.strip_name_encoding
41114         before calling get_identifier.
41116 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
41118         PR target/113196
41119         * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
41120         New member variable.
41121         * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
41122         Declare.
41123         * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
41124         * config/aarch64/aarch64-simd.md
41125         (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
41126         (vec_unpack<su>_hi_<mode>): ...this.  Move the generation of
41127         zip2 for zero-extends to...
41128         (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
41129         instruction.  Fix big-endian handling.
41130         (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
41131         (vec_unpack<su>_lo_<mode>): ...this.  Move the generation of
41132         zip1 for zero-extends to...
41133         (<optab><Vnarrowq><mode>2): ...a split of this instruction.
41134         Fix big-endian handling.
41135         (*aarch64_zip1_uxtl): New pattern.
41136         (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
41137         (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
41138         * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
41139         (aarch64_gen_shareable_zero): Use it.
41140         (aarch64_split_simd_shift_p): New function.
41142 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
41144         * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
41145         (function_beg_insn): New macro.
41146         * function.cc (expand_function_start): Initialize function_beg_insn.
41148 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
41150         PR target/112989
41151         * config/aarch64/aarch64-sve-builtins.h
41152         (function_builder::m_overload_names): Replace with...
41153         * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
41154         new global.
41155         (add_overloaded_function): Update accordingly, using get_identifier
41156         to get a GGC-friendly record of the name.
41158 2024-01-12  Richard Sandiford  <richard.sandiford@arm.com>
41160         PR target/112989
41161         * config/aarch64/aarch64-sve-builtins.def: Don't include
41162         aarch64-sve-builtins-sme.def.
41163         (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
41164         * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
41165         (DEF_SME_FUNCTION): New macro.  Use it and DEF_SME_FUNCTION_GS
41166         instead of DEF_SVE_*.  Add AARCH64_FL_SME to anything that
41167         requires AARCH64_FL_SME2.
41168         * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
41169         AARCH64_FL_SME adjustment here.
41170         * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
41171         include SME intrinsics.
41172         (sme_function_groups): New array.
41173         (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
41174         (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
41176 2024-01-12  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41178         PR target/113281
41179         * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
41180         (struct cpu_vector_cost): Add regmove struct.
41181         (get_vector_costs): Export as global.
41182         * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
41183         (costs::add_stmt_cost): Ditto.
41184         * config/riscv/riscv.cc (get_common_costs): Export global function.
41186 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
41188         PR tree-optimization/113334
41189         * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
41190         wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
41191         to determine if number should be extended by all ones rather than zero
41192         extended.
41194 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
41196         PR tree-optimization/113330
41197         * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
41198         too large size.
41200 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
41202         PR tree-optimization/113323
41203         * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
41204         check for lhs being large/huge _BitInt not in m_names.
41206 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
41208         PR tree-optimization/113316
41209         * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
41210         uninitialized large/huge _BitInt arguments to calls.
41212 2024-01-12  Jakub Jelinek  <jakub@redhat.com>
41214         * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
41215         TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
41216         CEIL (TYPE_PRECISION (t), limb_prec).
41217         (bitint_large_huge::handle_cast): Likewise.
41219 2024-01-12  Ilya Leoshkevich  <iii@linux.ibm.com>
41221         PR sanitizer/113284
41222         * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
41223         Use assemble_function_label_final () for Power ELF V1 ABI.
41224         * output.h (assemble_function_label_final): New function.
41225         * varasm.cc (assemble_function_label_raw): Use
41226         assemble_function_label_final ().
41227         (assemble_function_label_final): New function.
41229 2024-01-12  Richard Biener  <rguenther@suse.de>
41231         PR middle-end/113344
41232         * match.pd ((double)float CMP (double)float -> float CMP float):
41233         Perform result type check only for vectors.
41234         * fold-const.cc (fold_binary_loc): Likewise.
41236 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
41238         * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
41239         (usdot_prod<mode>): Ditto.
41240         (sdot_prod<mode>): Ditto.
41241         (udot_prod<mode>): Ditto.
41243 2024-01-12  Haochen Jiang  <haochen.jiang@intel.com>
41245         PR target/113288
41246         * config/i386/i386-c.cc (ix86_target_macros_internal):
41247         Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
41249 2024-01-12  Richard Biener  <rguenther@suse.de>
41251         PR target/112280
41252         * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
41253         Do not generate code when d.testing_p.
41255 2024-01-12  liuhongt  <hongtao.liu@intel.com>
41257         PR target/113039
41258         * doc/invoke.texi (fcf-protection=): Update documents.
41260 2024-01-12  Pan Li  <pan2.li@intel.com>
41262         * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
41263         comments of predicate func riscv_v_ext_mode_p.
41265 2024-01-12  Feng Wang  <wangfeng@eswincomputing.com>
41267         * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
41268                         Modify ABI-name length of vfloat16m8_t
41270 2024-01-12  Li Wei  <liwei@loongson.cn>
41272         * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
41273         Adjust.
41275 2024-01-12  Li Wei  <liwei@loongson.cn>
41277         * config/loongarch/loongarch.md (add<mode>3): Removed.
41278         (*addsi3): New.
41279         (addsi3): Ditto.
41280         (adddi3): Ditto.
41281         (*addsi3_extended): Removed.
41282         (addsi3_extended): New.
41284 2024-01-11  Jin Ma  <jinma@linux.alibaba.com>
41286         * config/riscv/thead.md: Add limits for splits.
41288 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
41290         PR middle-end/113322
41291         * expr.cc (do_store_flag): Don't try single bit tests with
41292         comparison on vector types.
41294 2024-01-11  Andrew Pinski  <quic_apinski@quicinc.com>
41296         PR tree-optimization/113301
41297         * match.pd (`1/x`): Delay signed case until late.
41299 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
41301         * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
41302         and -msp8 to...
41303         (AVR Internal Options): ...this new @subsubsection.
41305 2024-01-11  Vladimir N. Makarov  <vmakarov@redhat.com>
41307         PR rtl-optimization/112918
41308         * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
41309         (in_class_p): Restrict condition for narrowing class in case of
41310         allow_all_reload_class_changes_p.
41311         (process_alt_operands): Try to match operand without and with
41312         narrowing reg class.  Discourage narrowing the class.  Finish insn
41313         matching only if there is no class narrowing.
41314         (curr_insn_transform): Pass true to in_class_p for reg operand win.
41316 2024-01-11  Richard Biener  <rguenther@suse.de>
41318         PR tree-optimization/112505
41319         * tree-vect-loop.cc (vectorizable_induction): Reject
41320         bit-precision induction.
41322 2024-01-11  Richard Biener  <rguenther@suse.de>
41324         PR tree-optimization/113126
41325         * match.pd ((double)float CMP (double)float -> float CMP float):
41326         Make sure the boolean type is the same.
41327         * fold-const.cc (fold_binary_loc): Likewise.
41329 2024-01-11  Richard Biener  <rguenther@suse.de>
41331         PR tree-optimization/112636
41332         * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
41333         estimate_numbers_of_iterations before querying
41334         get_max_loop_iterations_int.
41335         (pass_ch::execute): Initialize SCEV and loops appropriately.
41337 2024-01-11  Georg-Johann Lay  <avr@gjlay.de>
41339         * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
41340         Reduced Tiny.
41341         * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
41342         * doc/extend.texi (AVR Variable Attributes): Improve documentation
41343         of io, io_low and address attributes.
41344         * doc/invoke.texi (AVR Options): Add some anchors for external refs.
41345         * doc/avr-mmcu.texi: Rebuild.
41347 2024-01-11  Yang Yujie  <yangyujie@loongson.cn>
41349         PR target/113233
41350         * config/loongarch/genopts/loongarch.opt.in: Mark options with
41351         the "Save" property.
41352         * config/loongarch/loongarch.opt: Same.
41353         * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
41354         according to la_target.
41355         * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
41356         RESTORE} for the la_target structure; Rename option conditions
41357         to have the same "la_" prefix.
41358         * config/loongarch/loongarch.h: Same.
41360 2024-01-11  Pan Li  <pan2.li@intel.com>
41362         * loop-unroll.cc (insert_var_expansion_initialization): Leverage
41363         MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
41365 2024-01-11  Alex Coplan  <alex.coplan@arm.com>
41367         PR target/113077
41368         * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
41369         fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
41370         (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
41371         synthesize these if needed.  Update caller ...
41372         (ldp_bb_info::fuse_pair): ... here.
41373         (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
41374         and either insn is frame-related.
41375         (find_trailing_add): Punt on frame-related insns.
41376         * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
41377         REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
41379 2024-01-11  YunQiang Su  <syq@gcc.gnu.org>
41381         * config/mips/mips.cc (mips_start_function_definition):
41382         Add ATTRIBUTE_UNUSED.
41384 2024-01-11  Richard Biener  <rguenther@suse.de>
41386         PR middle-end/112740
41387         * expr.cc (store_constructor): Check the integer vector
41388         mask has a single bit per element before using sign-extension
41389         to expand an uniform vector.
41391 2024-01-11  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41393         * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
41394         preempt VLS on unknown NITERS loop.
41396 2024-01-11  Haochen Jiang  <haochen.jiang@intel.com>
41398         * doc/invoke.texi: Add -mevex512.
41400 2024-01-11  Lulu Cheng  <chenglulu@loongson.cn>
41402         * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
41403         (*nor<mode>3): Likewise.
41404         (nor<mode>3): Likewise.
41405         (*negsi2_extended): New template.
41406         (*<optab>si3_internal): Likewise.
41407         (*one_cmplsi2_internal): Likewise.
41408         (*norsi3_internal): Likewise.
41409         (*<optab>nsi_internal): Likewise.
41410         (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
41411         modified bit operation to make the optimization work.
41413 2024-01-11  liuhongt  <hongtao.liu@intel.com>
41415         PR target/104401
41416         * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
41418 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41420         * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
41421         (get_vector_costs): Ditto.
41422         (riscv_builtin_vectorization_cost): Ditto.
41424 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41426         * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
41428 2024-01-10  Antoni Boucher  <bouanto@zoho.com>
41430         PR jit/111396
41431         * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
41432         ipa_free_size_summary.
41433         * ipa-icf.cc (ipa_icf_cc_finalize): New function.
41434         * ipa-profile.cc (ipa_profile_cc_finalize): New function.
41435         * ipa-prop.cc (ipa_prop_cc_finalize): New function.
41436         * ipa-prop.h (ipa_prop_cc_finalize): New function.
41437         * ipa-sra.cc (ipa_sra_cc_finalize): New function.
41438         * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
41439         ipa_sra_cc_finalize): New functions.
41440         * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
41441         ipa_prop_cc_finalize, ipa_profile_cc_finalize and
41442         ipa_sra_cc_finalize
41443         Include ipa-utils.h.
41445 2024-01-10  Jin Ma  <jinma@linux.alibaba.com>
41447         * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
41448         (th_int_get_save_adjustment): Likewise.
41449         (th_int_adjust_cfi_prologue): Likewise.
41450         * config/riscv/riscv.cc (BITSET_P): Moved away from here.
41451         (TH_INT_INTERRUPT): New macro.
41452         (riscv_expand_prologue): Add the processing of XTheadInt.
41453         (riscv_expand_epilogue): Likewise.
41454         * config/riscv/riscv.h (BITSET_P): Moved to here.
41455         * config/riscv/riscv.md: New unspec.
41456         * config/riscv/thead.cc (th_int_get_mask): New function.
41457         (th_int_get_save_adjustment): Likewise.
41458         (th_int_adjust_cfi_prologue): Likewise.
41459         * config/riscv/thead.md (th_int_push): New pattern.
41460         (th_int_pop): new pattern.
41462 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
41464         PR tree-optimization/112468
41465         * doc/sourcebuild.texi: Document ifn_copysign.
41466         * match.pd: Only apply transformation if target supports the IFN.
41468 2024-01-10  Andrew Pinski  <quic_apinski@quicinc.com>
41470         PR tree-optimization/112581
41471         * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
41472         mark_ssa_maybe_undefs.
41473         * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
41474         variables can not be reassociated.
41475         (init_range_entry): Check for uninitialized variables too.
41476         (init_reassoc): Call mark_ssa_maybe_undefs.
41478 2024-01-10  Maciej W. Rozycki  <macro@embecosm.com>
41480         * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
41481         Also handle sign extension.
41483 2024-01-10  Alex Coplan  <alex.coplan@arm.com>
41485         * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
41486         to 0.
41487         (-mlate-ldp-fusion): Likewise.
41489 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
41491         PR tree-optimization/113287
41492         * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
41493         instead of using BRANCH_EDGE to determine true edge.
41495 2024-01-10  Richard Biener  <rguenther@suse.de>
41497         PR tree-optimization/113078
41498         * tree-vect-loop.cc (check_reduction_path): Canonicalize
41499         .COND_SUB to .COND_ADD.
41501 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
41503         * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
41504         Handle prefix mappings before calling find_opt.
41505         (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
41506         "-fno-"-prefixed command-line option.
41507         * opts-common.cc (get_option_prefix_remapping): New.
41508         * opts.h (get_option_prefix_remapping): New decl.
41510 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
41512         * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
41513         m_urlifier to pp_output_formatted_text.
41514         * pretty-print.cc: Add #define of INCLUDE_VECTOR.
41515         (obstack_append_string): New overload, taking a length.
41516         (urlify_quoted_string): Pass in an obstack ptr, rather than using
41517         that of the pp's buffer.  Generalize to handle trailing text in
41518         the buffer beyond the run of quoted text.
41519         (class quoting_info): New.
41520         (on_begin_quote): New.
41521         (on_end_quote): New.
41522         (pp_format): Refactor phase 1 and phase 2 quoting support, moving
41523         it to calls to on_begin_quote and on_end_quote.
41524         (struct auto_obstack): New.
41525         (quoting_info::handle_phase_3): New.
41526         (pp_output_formatted_text): Add urlifier param.  Use it if there
41527         is deferred urlification.  Delete m_quotes.
41528         (selftest::pp_printf_with_urlifier): Pass urlifier to
41529         pp_output_formatted_text.
41530         (selftest::test_urlification): Update results for the existing
41531         case of quoted text stradding chunks; add more such test cases.
41532         * pretty-print.h (class quoting_info): New forward decl.
41533         (chunk_info::m_quotes): New field.
41534         (pp_output_formatted_text): Add optional urlifier param.
41536 2024-01-10  David Malcolm  <dmalcolm@redhat.com>
41538         * pretty-print.cc (selftest::test_pp_format): Add selftest
41539         coverage for numbered args.
41541 2024-01-10  Tamar Christina  <tamar.christina@arm.com>
41543         PR tree-optimization/113144
41544         PR tree-optimization/113145
41545         * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
41546         Update all BB that the original exits dominated.
41548 2024-01-10  Eric Botcazou  <ebotcazou@adacore.com>
41550         * dwarf2out.cc (modified_type_die): Extend the support of reverse
41551         storage order to enumeration types if -gstrict-dwarf is not passed.
41552         (gen_enumeration_type_die): Add REVERSE parameter and generate the
41553         DIE immediately after the existing one if it is true.
41554         (gen_tagged_type_die): Add REVERSE parameter and pass it in the
41555         call to gen_enumeration_type_die.
41556         (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
41557         first recursive call as well as the call to gen_tagged_type_die.
41558         (gen_type_die): Add REVERSE parameter and pass it in the call to
41559         gen_type_die_with_usage.
41561 2024-01-10  Jakub Jelinek  <jakub@redhat.com>
41563         PR tree-optimization/113120
41564         * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
41565         with root->size TYPE_PRECISION don't build anything new.
41566         Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
41567         rather than build_nonstandard_integer_type.
41569 2024-01-10  Hongyu Wang  <hongyu.wang@intel.com>
41571         * config/i386/i386.opt: Adjust document.
41572         * doc/invoke.texi: Add description for
41573         -mapx-inline-asm-use-gpr32.
41575 2024-01-10  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41577         * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
41578         (avg<v_double_trunc>3_floor): New pattern.
41579         (<u>avg<v_double_trunc>3_ceil): Remove.
41580         (avg<v_double_trunc>3_ceil): New pattern.
41581         (uavg<mode>3_floor): Ditto.
41582         (uavg<mode>3_ceil): Ditto.
41583         * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
41584         (enum insn_type): Ditto.
41585         * config/riscv/riscv-v.cc: Ditto.
41586         * config/riscv/vector-iterators.md (ashiftrt): Remove.
41587         (ASHIFTRT): Ditto.
41588         * config/riscv/vector.md: Add VLS modes.
41590 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
41592         PR target/111480
41593         * config/rs6000/vsx.md (VCZLSBB): New int iterator.
41594         (vczlsbb_char): New int attribute.
41595         (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
41596         (vc<vczlsbb_char>zlsbb_<mode>): ... this.
41597         (*vctzlsbb_zext_<mode>): Rename to ...
41598         (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
41599         cover vclzlsbb.
41601 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
41603         PR target/112606
41604         * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
41605         of the last argument from altivec_register_operand to any_operand.  If
41606         operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
41607         otherwise if it doesn't satisfy altivec_register_operand, force it to
41608         REG using copy_to_mode_reg.
41610 2024-01-10  Kewen Lin  <linkw@linux.ibm.com>
41612         PR middle-end/113100
41613         * builtins.cc (expand_builtin_stack_address): Guard stack point
41614         adjustment with SPARC_STACK_BOUNDARY_HACK.
41616 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
41618         * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
41619         argument string definitions.
41620         * config/loongarch/loongarch-str.h: Same.
41621         * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
41622         as aliases to -mexplicit-relocs={always,none}
41623         * config/loongarch/loongarch.opt: Regenerate.
41624         * config/loongarch/loongarch.cc: Same.
41626 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
41628         * config/loongarch/loongarch-def.h: Define constants with
41629         enums instead of Macros.
41631 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
41633         * config/loongarch/genopts/loongarch-strings: Rename.
41634         * config/loongarch/genopts/loongarch.opt.in: Same.
41635         * config/loongarch/loongarch-cpu.cc: Same.
41636         * config/loongarch/loongarch-def.cc: Same.
41637         * config/loongarch/loongarch-def.h: Same.
41638         * config/loongarch/loongarch-opts.cc: Same.
41639         * config/loongarch/loongarch-opts.h: Same.
41640         * config/loongarch/loongarch-str.h: Same.
41641         * config/loongarch/loongarch.opt: Same.
41643 2024-01-10  Yang Yujie  <yangyujie@loongson.cn>
41645         * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
41646         variable with the common la_ prefix.
41647         * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
41648         flags as saved using TargetVariable.
41649         * config/loongarch/loongarch.opt: Same.
41650         * config/loongarch/loongarch-def.h: Define evolution_set to
41651         mark changes to the -march default.
41652         * config/loongarch/loongarch-driver.cc: Same.
41653         * config/loongarch/loongarch-opts.cc: Same.
41654         * config/loongarch/loongarch-opts.h: Define and use ISA evolution
41655         conditions around the la_target structure.
41656         * config/loongarch/loongarch.cc: Same.
41657         * config/loongarch/loongarch.md: Same.
41658         * config/loongarch/loongarch-builtins.cc: Same.
41659         * config/loongarch/loongarch-c.cc: Same.
41660         * config/loongarch/lasx.md: Same.
41661         * config/loongarch/lsx.md: Same.
41662         * config/loongarch/sync.md: Same.
41664 2024-01-09  Jeff Law  <jlaw@ventanamicro.com>
41666         * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
41667         no less.
41669 2024-01-09  Richard Sandiford  <richard.sandiford@arm.com>
41671         * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
41673 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
41675         * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
41676         restart_loop.
41677         (vectorizable_live_operation): Likewise.
41679 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
41681         PR tree-optimization/113199
41682         * tree-vect-loop.cc (vectorizable_live_operation_1): Use
41683         BIT_FIELD_REF.
41685 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
41687         PR target/113270
41688         * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
41689         * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
41690         GTY(()) declaration before the definition, drop GTY(()) drom the
41691         definition.
41693 2024-01-09  Richard Biener  <rguenther@suse.de>
41695         PR tree-optimization/113026
41696         * tree-vect-loop-manip.cc (vect_do_peeling): Remove
41697         redundant and wrong niter bound setting.  Move niter
41698         bound adjustment down.
41700 2024-01-09  Tamar Christina  <tamar.christina@arm.com>
41702         PR middle-end/113163
41703         * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
41704         Reject non-linear inductions that aren't supported.
41706 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
41708         * config/arc/arc.cc (arc_shift_alg): New enumerated type for
41709         left shift implementation strategies.
41710         (arc_shift_info): Type for each entry of the shift strategy table.
41711         (arc_shift_context_idx): Return a integer value for each code
41712         generation context, used as an index
41713         (arc_ashl_alg): Table indexed by context and shifted bit count.
41714         (arc_split_ashl): Use the arc_ashl_alg table to select SImode
41715         left shift implementation.
41716         (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
41717         provide accurate costs, when optimizing for speed or size.
41719 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41721         * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
41723 2024-01-09  Julian Brown  <julian@codesourcery.com>
41725         * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
41726         processed out before gimplification.
41727         * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
41728         * tree.def (OMP_ARRAY_SECTION): New tree code.
41730 2024-01-09  Jakub Jelinek  <jakub@redhat.com>
41732         PR tree-optimization/113210
41733         * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
41734         value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
41735         INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
41736         minus 1.
41738 2024-01-09  Eric Botcazou  <ebotcazou@adacore.com>
41740         PR rtl-optimization/113140
41741         * reorg.cc (fill_slots_from_thread): If we are to branch after the
41742         last instruction of the function, create an end label.
41744 2024-01-09  Roger Sayle  <roger@nextmovesoftware.com>
41745             Hongtao Liu  <hongtao.liu@intel.com>
41747         PR target/112992
41748         * config/i386/i386-expand.cc
41749         (ix86_convert_const_wide_int_to_broadcast): Allow call to
41750         ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
41751         (ix86_broadcast_from_constant): Revert recent change; Return a
41752         suitable MEMREF independently of mode/target combinations.
41753         (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
41754         to decide whether expansion is possible/preferrable.  Only try
41755         forcing DImode constants to memory (and trying again) if calling
41756         ix86_expand_vector_init_duplicate fails with an DImode immediate
41757         constant.
41758         (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
41759         V4SImode for suitable immediate constants.
41760         <case E_V4DImode>: Try using V8SImode for suitable constants.
41761         <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
41762         <case E_V2HImode>: Likewise.
41763         <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
41764         <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
41765         <label widen>: Handle CONT_INTs via simplify_binary_operation.
41766         Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
41767         <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
41768         <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
41769         (ix86_expand_vector_init): Move try using a broadcast for all_same
41770         with ix86_expand_vector_init_duplicate before using constant pool.
41772 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
41774         * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
41776 2024-01-09  Chung-Ju Wu  <jasonwucj@gmail.com>
41778         * config/arm/arm-cpus.in (cortex-m52): New cpu.
41779         * config/arm/arm-tables.opt: Regenerate.
41780         * config/arm/arm-tune.md: Regenerate.
41782 2024-01-09  Jiahao Xu  <xujiahao@loongson.cn>
41784         * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
41785         (vec_init<mode><lasxhalf>): .. this, and extend to mode.
41786         (@vec_concatz<mode>): New insn pattern.
41787         * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
41788         Handle VALS containing two vectors.
41790 2024-01-09  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41792         * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
41793         (vundefined): Ditto.
41795 2024-01-09  Feng Wang  <wangfeng@eswincomputing.com>
41797         * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
41798                                 Add new function_base for crypto vector.
41799         (class bitmanip): Ditto.
41800         (class b_reverse):Ditto.
41801         (class vwsll):   Ditto.
41802         (class clmul):   Ditto.
41803         (class vg_nhab):  Ditto.
41804         (class crypto_vv):Ditto.
41805         (class crypto_vi):Ditto.
41806         (class vaeskf2_vsm3c):Ditto.
41807         (class vsm3me): Ditto.
41808         (BASE): Add BASE declaration for crypto vector.
41809         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
41810         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
41811                                 Add crypto vector intrinsic definition.
41812         (vbrev): Ditto.
41813         (vclz): Ditto.
41814         (vctz): Ditto.
41815         (vwsll): Ditto.
41816         (vandn): Ditto.
41817         (vbrev8): Ditto.
41818         (vrev8): Ditto.
41819         (vrol): Ditto.
41820         (vror): Ditto.
41821         (vclmul): Ditto.
41822         (vclmulh): Ditto.
41823         (vghsh): Ditto.
41824         (vgmul): Ditto.
41825         (vaesef): Ditto.
41826         (vaesem): Ditto.
41827         (vaesdf): Ditto.
41828         (vaesdm): Ditto.
41829         (vaesz): Ditto.
41830         (vaeskf1): Ditto.
41831         (vaeskf2): Ditto.
41832         (vsha2ms): Ditto.
41833         (vsha2ch): Ditto.
41834         (vsha2cl): Ditto.
41835         (vsm4k): Ditto.
41836         (vsm4r): Ditto.
41837         (vsm3me): Ditto.
41838         (vsm3c): Ditto.
41839         * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
41840                                 Add new function_shape for crypto vector.
41841         (struct crypto_vi_def): Ditto.
41842         (struct crypto_vv_no_op_type_def): Ditto.
41843         (SHAPE): Add SHAPE declaration of crypto vector.
41844         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
41845         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
41846                                 Add new data type for crypto vector.
41847         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
41848         (vuint32mf2_t): Ditto.
41849         (vuint32m1_t): Ditto.
41850         (vuint32m2_t): Ditto.
41851         (vuint32m4_t): Ditto.
41852         (vuint32m8_t): Ditto.
41853         (vuint64m1_t): Ditto.
41854         (vuint64m2_t): Ditto.
41855         (vuint64m4_t): Ditto.
41856         (vuint64m8_t): Ditto.
41857         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
41858                                 Add new data struct for crypto vector.
41859         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
41860         (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
41861         * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
41863 2024-01-08  Ilya Leoshkevich  <iii@linux.ibm.com>
41865         PR sanitizer/113251
41866         * varasm.cc (assemble_function_label_raw): Do not call
41867         asan_function_start () without the current function.
41869 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
41871         PR target/113225
41872         * btfout.cc (btf_collect_datasec): Skip creating BTF info for
41873         extern and kernel_helper attributed function decls.
41875 2024-01-08  Cupertino Miranda  <cupertino.miranda@oracle.com>
41877         * btfout.cc (output_btf_strs): Changed.
41879 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
41881         * config/gcn/mkoffload.cc (main): Handle gfx1100
41882         when setting the default XNACK.
41884 2024-01-08  Tobias Burnus  <tobias@codesourcery.com>
41886         * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
41887         * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
41888         (ASM_SPEC): Handle gfx1100.
41889         * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
41890         (enum gcn_isa): Add ISA_RDNA3.
41891         (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
41892         * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
41893         * config/gcn/gcn.cc (gcn_option_override,
41894         gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
41895         (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
41896         TARGET_RDNA2 to TARGET_RDNA2_PLUS.
41897         (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
41898         with gfx1100.
41899         * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
41900         (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
41901         __gfx1100__.
41902         * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
41903         * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
41904         * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
41905         (isa_has_combined_avgprs, main): Handle gfx1100.
41906         * config/gcn/t-omp-device (isa): Add gfx1100.
41908 2024-01-08  Richard Biener  <rguenther@suse.de>
41910         * doc/invoke.texi (-mmovbe): Clarify.
41912 2024-01-08  Richard Biener  <rguenther@suse.de>
41914         PR tree-optimization/113026
41915         * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
41916         Avoid an epilog in more cases.
41917         * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
41918         epilogues niter upper bounds and estimates.
41920 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
41922         PR tree-optimization/113228
41923         * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
41925 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
41927         PR tree-optimization/113120
41928         * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
41929         large _BitInt zero INTEGER_CST PHI argument.
41931 2024-01-08  Jakub Jelinek  <jakub@redhat.com>
41933         PR tree-optimization/113119
41934         * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
41935         both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
41936         is before REALPART_EXPR.
41938 2024-01-08  Georg-Johann Lay  <avr@gjlay.de>
41940         PR target/112952
41941         * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
41942         range when diagnosing attribute "io" and "io_low" are out of range.
41943         (avr_eval_addr_attrib): Don't ICE on empty address at that place.
41944         (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
41945         in contexts other than static storage.
41946         (avr_asm_output_aligned_decl_common): Move output of decls with
41947         attribute "address", "io", and "io_low" to...
41948         (avr_output_addr_attrib): ...this new function.
41949         (avr_asm_asm_output_aligned_bss): Remove output for decls with
41950         attribute "address", "io", and "io_low".
41951         (avr_encode_section_info): Rectify handling of decls with attribute
41952         "address", "io", and "io_low".
41954 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
41956         * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
41957         (elf_flags): Remove XNACK from the default value.
41958         (main): Set a default XNACK according to the arch.
41960 2024-01-08  Andrew Stubbs  <ams@codesourcery.com>
41962         * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
41963         (process_asm): Don't count avgprs.
41965 2024-01-08  Hongyu Wang  <hongyu.wang@intel.com>
41967         * config/i386/i386.opt: Add supported sub-features.
41968         * doc/extend.texi: Add description for target attribute.
41970 2024-01-08  Feng Wang  <wangfeng@eswincomputing.com>
41972         * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
41974 2024-01-07  Roger Sayle  <roger@nextmovesoftware.com>
41975             Uros Bizjak  <ubizjak@gmail.com>
41977         PR target/113231
41978         * config/i386/i386-features.cc (compute_convert_gain): Include
41979         the overhead of explicit load and store (movd) instructions when
41980         converting non-store scalar operations with memory destinations.
41981         Various indentation whitespace fixes.
41983 2024-01-07  Tamar Christina  <tamar.christina@arm.com>
41985         * config/arm/neon.md (cbranch<mode>4): New.
41987 2024-01-07  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41989         * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
41991 2024-01-06  Jiahao Xu  <xujiahao@loongson.cn>
41993         * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
41995 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
41997         PR target/113248
41998         * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
41999         Update the MAX_SEW.
42001 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42003         * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
42004         (variable_vectorized_p): Teach loop invariant.
42005         (has_unexpected_spills_p): Ditto.
42007 2024-01-06  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42009         * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
42010         * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
42011         * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
42013 2024-01-05  Richard Sandiford  <richard.sandiford@arm.com>
42015         PR target/113104
42016         * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
42017         (aarch64-vect-compare-costs): ...this.
42018         * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
42019         Replace with...
42020         (-param=aarch64-vect-compare-costs=): ...this new param.
42021         * config/aarch64/aarch64.cc (aarch64_override_options_internal):
42022         Don't disable it when vectorizing for Advanced SIMD only.
42023         (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
42024         whenever aarch64_vect_compare_costs is true.
42026 2024-01-05  Lulu Cheng  <chenglulu@loongson.cn>
42028         * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
42029         Modify the method of determining the memory offset of [x]vld/[x]vst.
42030         (lasx_mxst_<lasxfmt_f>): Likewise.
42031         * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
42032         (loongarch_address_insns): Likewise.
42033         * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
42034         (lsx_st_<lsxfmt_f>): Likewise.
42035         * config/loongarch/predicates.md (aq10b_operand): Likewise.
42036         (aq10h_operand): Likewise.
42037         (aq10w_operand): Likewise.
42038         (aq10d_operand): Likewise.
42040 2024-01-05  Alex Coplan  <alex.coplan@arm.com>
42042         PR target/113217
42043         * config/aarch64/aarch64-ldp-fusion.cc
42044         (ldp_bb_info::try_fuse_pair): If the second access can throw,
42045         narrow the move range to exactly that insn.
42047 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
42049         * asan.cc (asan_function_start): Drop switch_to_section ().
42050         (asan_emit_stack_protection): Set .LASANPC alignment.
42051         * config/i386/i386.cc: Use assemble_function_label_raw ()
42052         instead of ASM_OUTPUT_LABEL ().
42053         * config/s390/s390.cc (s390_asm_output_function_label):
42054         Likewise.
42055         * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
42056         * final.cc (final_start_function_1): Drop
42057         asan_function_start ().
42058         * output.h (assemble_function_label_raw): New function.
42059         * varasm.cc (assemble_function_label_raw): Likewise.
42061 2024-01-05  Ilya Leoshkevich  <iii@linux.ibm.com>
42063         * config/aarch64/aarch64.cc (aarch64_declare_function_name):
42064         Use ASM_OUTPUT_FUNCTION_LABEL ().
42065         * config/alpha/alpha.cc (alpha_start_function): Likewise.
42066         * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
42067         * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
42068         * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
42069         * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
42070         * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
42071         * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
42072         * config/ia64/ia64.cc (ia64_start_function): Likewise.
42073         * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
42074         Likewise.
42075         * config/microblaze/microblaze.cc (microblaze_function_prologue):
42076         Likewise.
42077         * config/mips/mips.cc (mips_start_unique_function): Return the
42078         tree.
42079         (mips_start_function_definition): Use
42080         ASM_OUTPUT_FUNCTION_LABEL ().
42081         (mips_finish_stub): Pass the tree to
42082         mips_start_function_definition ().
42083         (mips16_build_function_stub): Likewise.
42084         (mips16_build_call_stub): Likewise.
42085         (mips_output_function_prologue): Likewise.
42086         * config/pa/pa.cc (pa_output_function_label): Use
42087         ASM_OUTPUT_FUNCTION_LABEL ().
42088         * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
42089         * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
42090         Likewise.
42091         (rs6000_xcoff_declare_function_name): Likewise.
42093 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
42095         PR tree-optimization/113201
42096         * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
42097         replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
42099 2024-01-05  Jakub Jelinek  <jakub@redhat.com>
42101         PR tree-optimization/90693
42102         * tree-ssa-math-opts.cc (match_single_bit_test): If
42103         tree_expr_nonzero_p (arg), remember it in the second argument to
42104         IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
42105         arg ^ (arg - 1) > arg - 1.
42106         * internal-fn.cc (expand_POPCOUNT): If second argument to
42107         IFN_POPCOUNT suggests arg is non-zero, try to expand it as
42108         arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
42110 2024-01-05  Kito Cheng  <kito.cheng@sifive.com>
42112         * config/riscv/riscv-v.cc (expand_load_store):
42113         Remove `value`.
42114         (expand_cond_len_op): Ditto.
42115         (expand_gather_scatter): Ditto.
42116         (expand_lanes_load_store): Ditto.
42117         (expand_fold_extract_last): Ditto.
42119 2024-01-05  Pan Li  <pan2.li@intel.com>
42121         Revert:
42122         2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
42124         * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
42125                                 Add new function_base for crypto vector.
42126         (class bitmanip): Ditto.
42127         (class b_reverse):Ditto.
42128         (class vwsll):   Ditto.
42129         (class clmul):   Ditto.
42130         (class vg_nhab):  Ditto.
42131         (class crypto_vv):Ditto.
42132         (class crypto_vi):Ditto.
42133         (class vaeskf2_vsm3c):Ditto.
42134         (class vsm3me): Ditto.
42135         (BASE): Add BASE declaration for crypto vector.
42136         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
42137         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
42138                                 Add crypto vector intrinsic definition.
42139         (vbrev): Ditto.
42140         (vclz): Ditto.
42141         (vctz): Ditto.
42142         (vwsll): Ditto.
42143         (vandn): Ditto.
42144         (vbrev8): Ditto.
42145         (vrev8): Ditto.
42146         (vrol): Ditto.
42147         (vror): Ditto.
42148         (vclmul): Ditto.
42149         (vclmulh): Ditto.
42150         (vghsh): Ditto.
42151         (vgmul): Ditto.
42152         (vaesef): Ditto.
42153         (vaesem): Ditto.
42154         (vaesdf): Ditto.
42155         (vaesdm): Ditto.
42156         (vaesz): Ditto.
42157         (vaeskf1): Ditto.
42158         (vaeskf2): Ditto.
42159         (vsha2ms): Ditto.
42160         (vsha2ch): Ditto.
42161         (vsha2cl): Ditto.
42162         (vsm4k): Ditto.
42163         (vsm4r): Ditto.
42164         (vsm3me): Ditto.
42165         (vsm3c): Ditto.
42166         * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
42167                                 Add new function_shape for crypto vector.
42168         (struct crypto_vi_def): Ditto.
42169         (struct crypto_vv_no_op_type_def): Ditto.
42170         (SHAPE): Add SHAPE declaration of crypto vector.
42171         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
42172         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
42173                                 Add new data type for crypto vector.
42174         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
42175         (vuint32mf2_t): Ditto.
42176         (vuint32m1_t): Ditto.
42177         (vuint32m2_t): Ditto.
42178         (vuint32m4_t): Ditto.
42179         (vuint32m8_t): Ditto.
42180         (vuint64m1_t): Ditto.
42181         (vuint64m2_t): Ditto.
42182         (vuint64m4_t): Ditto.
42183         (vuint64m8_t): Ditto.
42184         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
42185                                 Add new data struct for crypto vector.
42186         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
42187         (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
42188         * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
42190 2024-01-05  Feng Wang  <wangfeng@eswincomputing.com>
42192         * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
42193                                 Add new function_base for crypto vector.
42194         (class bitmanip): Ditto.
42195         (class b_reverse):Ditto.
42196         (class vwsll):   Ditto.
42197         (class clmul):   Ditto.
42198         (class vg_nhab):  Ditto.
42199         (class crypto_vv):Ditto.
42200         (class crypto_vi):Ditto.
42201         (class vaeskf2_vsm3c):Ditto.
42202         (class vsm3me): Ditto.
42203         (BASE): Add BASE declaration for crypto vector.
42204         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
42205         * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
42206                                 Add crypto vector intrinsic definition.
42207         (vbrev): Ditto.
42208         (vclz): Ditto.
42209         (vctz): Ditto.
42210         (vwsll): Ditto.
42211         (vandn): Ditto.
42212         (vbrev8): Ditto.
42213         (vrev8): Ditto.
42214         (vrol): Ditto.
42215         (vror): Ditto.
42216         (vclmul): Ditto.
42217         (vclmulh): Ditto.
42218         (vghsh): Ditto.
42219         (vgmul): Ditto.
42220         (vaesef): Ditto.
42221         (vaesem): Ditto.
42222         (vaesdf): Ditto.
42223         (vaesdm): Ditto.
42224         (vaesz): Ditto.
42225         (vaeskf1): Ditto.
42226         (vaeskf2): Ditto.
42227         (vsha2ms): Ditto.
42228         (vsha2ch): Ditto.
42229         (vsha2cl): Ditto.
42230         (vsm4k): Ditto.
42231         (vsm4r): Ditto.
42232         (vsm3me): Ditto.
42233         (vsm3c): Ditto.
42234         * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
42235                                 Add new function_shape for crypto vector.
42236         (struct crypto_vi_def): Ditto.
42237         (struct crypto_vv_no_op_type_def): Ditto.
42238         (SHAPE): Add SHAPE declaration of crypto vector.
42239         * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
42240         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
42241                                 Add new data type for crypto vector.
42242         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
42243         (vuint32mf2_t): Ditto.
42244         (vuint32m1_t): Ditto.
42245         (vuint32m2_t): Ditto.
42246         (vuint32m4_t): Ditto.
42247         (vuint32m8_t): Ditto.
42248         (vuint64m1_t): Ditto.
42249         (vuint64m2_t): Ditto.
42250         (vuint64m4_t): Ditto.
42251         (vuint64m8_t): Ditto.
42252         * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
42253                                 Add new data struct for crypto vector.
42254         (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
42255         (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
42256         * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
42258 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42260         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
42262 2024-01-04  Andrew Pinski  <quic_apinski@quicinc.com>
42264         PR tree-optimization/113186
42265         * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
42266         Match `^` with the `==` for 1bit integral types.
42267         * match.pd (maybe_cmp): Allow for bit_xor for 1bit
42268         integral types.
42270 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42272         * toplev.cc (general_init): Pass lang_mask to urlifier.
42274 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42276         * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
42277         param.
42278         (diagnostic_context::make_option_url): Update for lang_mask param.
42279         * gcc-urlifier.cc: Include "opts.h" and "options.h".
42280         (gcc_urlifier::gcc_urlifier): Add lang_mask param.
42281         (gcc_urlifier::m_lang_mask): New field.
42282         (doc_urls): Make static.
42283         (gcc_urlifier::get_url_for_quoted_text): Use label_text.
42284         (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
42285         Look for an option by name before trying a binary search in
42286         doc_urls.
42287         (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
42288         (gcc_urlifier::get_url_suffix_for_option): New.
42289         (make_gcc_urlifier): Add lang_mask param.
42290         (selftest::gcc_urlifier_cc_tests): Update for above changes.
42291         Verify that a URL is found for "-fpack-struct".
42292         * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
42293         * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
42294         * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
42295         to make_gcc_urlifier.
42296         * opts-diagnostic.h (get_option_url): Add lang_mask param.
42297         * opts.cc (get_option_html_page): Remove special-casing for
42298         analyzer and LTO.
42299         (get_option_url_suffix): New.
42300         (get_option_url): Reimplement.
42301         (selftest::test_get_option_html_page): Rename to...
42302         (selftest::test_get_option_url_suffix): ...this and update for
42303         above changes.
42304         (selftest::opts_cc_tests): Update for renaming.
42305         * opts.h: Include "rich-location.h".
42306         (get_option_url_suffix): New decl.
42308 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42310         * Makefile.in (ALL_OPT_URL_FILES): New.
42311         (GCC_OBJS): Add options-urls.o.
42312         (OBJS): Likewise.
42313         (OBJS-libcommon): Likewise.
42314         (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
42315         inputs to opt-gather.awk.
42316         (options-urls.cc): New Makefile target.
42317         * opt-functions.awk (url_suffix): New function.
42318         (lang_url_suffix): New function.
42319         * options-urls-cc-gen.awk: New file.
42320         * opts.h (get_opt_url_suffix): New decl.
42322 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42324         * params.opt.urls: New file, autogenerated by
42325         regenerate-opt-urls.py.
42327 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42329         * common.opt.urls: New file, autogenerated by
42330         regenerate-opt-urls.py.
42331         * config/aarch64/aarch64.opt.urls: Likewise.
42332         * config/alpha/alpha.opt.urls: Likewise.
42333         * config/alpha/elf.opt.urls: Likewise.
42334         * config/arc/arc-tables.opt.urls: Likewise.
42335         * config/arc/arc.opt.urls: Likewise.
42336         * config/arm/arm-tables.opt.urls: Likewise.
42337         * config/arm/arm.opt.urls: Likewise.
42338         * config/arm/vxworks.opt.urls: Likewise.
42339         * config/avr/avr.opt.urls: Likewise.
42340         * config/bpf/bpf.opt.urls: Likewise.
42341         * config/c6x/c6x-tables.opt.urls: Likewise.
42342         * config/c6x/c6x.opt.urls: Likewise.
42343         * config/cris/cris.opt.urls: Likewise.
42344         * config/cris/elf.opt.urls: Likewise.
42345         * config/csky/csky.opt.urls: Likewise.
42346         * config/csky/csky_tables.opt.urls: Likewise.
42347         * config/darwin.opt.urls: Likewise.
42348         * config/dragonfly.opt.urls: Likewise.
42349         * config/epiphany/epiphany.opt.urls: Likewise.
42350         * config/fr30/fr30.opt.urls: Likewise.
42351         * config/freebsd.opt.urls: Likewise.
42352         * config/frv/frv.opt.urls: Likewise.
42353         * config/ft32/ft32.opt.urls: Likewise.
42354         * config/fused-madd.opt.urls: Likewise.
42355         * config/g.opt.urls: Likewise.
42356         * config/gcn/gcn.opt.urls: Likewise.
42357         * config/gnu-user.opt.urls: Likewise.
42358         * config/h8300/h8300.opt.urls: Likewise.
42359         * config/hpux11.opt.urls: Likewise.
42360         * config/i386/cygming.opt.urls: Likewise.
42361         * config/i386/cygwin.opt.urls: Likewise.
42362         * config/i386/djgpp.opt.urls: Likewise.
42363         * config/i386/i386.opt.urls: Likewise.
42364         * config/i386/mingw-w64.opt.urls: Likewise.
42365         * config/i386/mingw.opt.urls: Likewise.
42366         * config/i386/nto.opt.urls: Likewise.
42367         * config/ia64/ia64.opt.urls: Likewise.
42368         * config/ia64/ilp32.opt.urls: Likewise.
42369         * config/ia64/vms.opt.urls: Likewise.
42370         * config/iq2000/iq2000.opt.urls: Likewise.
42371         * config/linux-android.opt.urls: Likewise.
42372         * config/linux.opt.urls: Likewise.
42373         * config/lm32/lm32.opt.urls: Likewise.
42374         * config/loongarch/loongarch.opt.urls: Likewise.
42375         * config/lynx.opt.urls: Likewise.
42376         * config/m32c/m32c.opt.urls: Likewise.
42377         * config/m32r/m32r.opt.urls: Likewise.
42378         * config/m68k/ieee.opt.urls: Likewise.
42379         * config/m68k/m68k-tables.opt.urls: Likewise.
42380         * config/m68k/m68k.opt.urls: Likewise.
42381         * config/m68k/uclinux.opt.urls: Likewise.
42382         * config/mcore/mcore.opt.urls: Likewise.
42383         * config/microblaze/microblaze.opt.urls: Likewise.
42384         * config/mips/mips-tables.opt.urls: Likewise.
42385         * config/mips/mips.opt.urls: Likewise.
42386         * config/mips/sde.opt.urls: Likewise.
42387         * config/mmix/mmix.opt.urls: Likewise.
42388         * config/mn10300/mn10300.opt.urls: Likewise.
42389         * config/moxie/moxie.opt.urls: Likewise.
42390         * config/msp430/msp430.opt.urls: Likewise.
42391         * config/nds32/nds32-elf.opt.urls: Likewise.
42392         * config/nds32/nds32-linux.opt.urls: Likewise.
42393         * config/nds32/nds32.opt.urls: Likewise.
42394         * config/netbsd-elf.opt.urls: Likewise.
42395         * config/netbsd.opt.urls: Likewise.
42396         * config/nios2/elf.opt.urls: Likewise.
42397         * config/nios2/nios2.opt.urls: Likewise.
42398         * config/nvptx/nvptx-gen.opt.urls: Likewise.
42399         * config/nvptx/nvptx.opt.urls: Likewise.
42400         * config/openbsd.opt.urls: Likewise.
42401         * config/or1k/elf.opt.urls: Likewise.
42402         * config/or1k/or1k.opt.urls: Likewise.
42403         * config/pa/pa-hpux.opt.urls: Likewise.
42404         * config/pa/pa-hpux1010.opt.urls: Likewise.
42405         * config/pa/pa-hpux1111.opt.urls: Likewise.
42406         * config/pa/pa-hpux1131.opt.urls: Likewise.
42407         * config/pa/pa.opt.urls: Likewise.
42408         * config/pa/pa64-hpux.opt.urls: Likewise.
42409         * config/pdp11/pdp11.opt.urls: Likewise.
42410         * config/pru/pru.opt.urls: Likewise.
42411         * config/riscv/riscv.opt.urls: Likewise.
42412         * config/rl78/rl78.opt.urls: Likewise.
42413         * config/rpath.opt.urls: Likewise.
42414         * config/rs6000/476.opt.urls: Likewise.
42415         * config/rs6000/aix64.opt.urls: Likewise.
42416         * config/rs6000/darwin.opt.urls: Likewise.
42417         * config/rs6000/linux64.opt.urls: Likewise.
42418         * config/rs6000/rs6000-tables.opt.urls: Likewise.
42419         * config/rs6000/rs6000.opt.urls: Likewise.
42420         * config/rs6000/sysv4.opt.urls: Likewise.
42421         * config/rtems.opt.urls: Likewise.
42422         * config/rx/elf.opt.urls: Likewise.
42423         * config/rx/rx.opt.urls: Likewise.
42424         * config/s390/s390.opt.urls: Likewise.
42425         * config/s390/tpf.opt.urls: Likewise.
42426         * config/sh/sh.opt.urls: Likewise.
42427         * config/sh/superh.opt.urls: Likewise.
42428         * config/sol2.opt.urls: Likewise.
42429         * config/sparc/long-double-switch.opt.urls: Likewise.
42430         * config/sparc/sparc.opt.urls: Likewise.
42431         * config/stormy16/stormy16.opt.urls: Likewise.
42432         * config/v850/v850.opt.urls: Likewise.
42433         * config/vax/elf.opt.urls: Likewise.
42434         * config/vax/vax.opt.urls: Likewise.
42435         * config/visium/visium.opt.urls: Likewise.
42436         * config/vms/vms.opt.urls: Likewise.
42437         * config/vxworks-smp.opt.urls: Likewise.
42438         * config/vxworks.opt.urls: Likewise.
42439         * config/xtensa/elf.opt.urls: Likewise.
42440         * config/xtensa/uclinux.opt.urls: Likewise.
42441         * config/xtensa/xtensa.opt.urls: Likewise.
42442         * config/bfin/bfin.opt.urls: New file.
42444 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42446         * Makefile.in (OPT_URLS_HTML_DEPS): New.
42447         (regenerate-opt-urls): New target.
42448         (regenerate-opt-urls-unit-test): New target.
42449         * doc/options.texi (Option properties): Add UrlSuffix and
42450         description of regenerate-opt-urls.py.  Add LangUrlSuffix_*.
42451         * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
42452         reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
42453         and Makefile.in's OPT_URLS_HTML_DEPS.
42454         (Anatomy of a Target Back End): Add
42455         reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
42456         * regenerate-opt-urls.py: New file.
42458 2024-01-04  David Malcolm  <dmalcolm@redhat.com>
42460         * diagnostic-format-sarif.cc
42461         (sarif_builder::make_logical_location_object): Convert to...
42462         (make_sarif_logical_location_object): ...this.
42463         (sarif_builder::set_any_logical_locs_arr): Update for above
42464         change.
42465         (sarif_builder::make_thread_flow_location_object): Call
42466         maybe_add_sarif_properties on each diagnostic_event.
42467         * diagnostic-format-sarif.h (class logical_location): New forward
42468         decl.
42469         (make_sarif_logical_location_object): New decl.
42470         * diagnostic-path.h (class sarif_object): New forward decl.
42471         (diagnostic_event::maybe_add_sarif_properties): New vfunc.
42473 2024-01-04  Kuan-Lin Chen  <rufus@andestech.com>
42474             Patrick Lin  <patrick@andestech.com>
42475             Rufus Chen  <rufus@andestech.com>
42476             Monk Chiang  <monk.chiang@sifive.com>
42478         * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
42479         with Nan-boxing value.
42480         * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
42482 2024-01-04  Roger Sayle  <roger@nextmovesoftware.com>
42483             Jeff Law  <jlaw@ventanamicro.com>
42485         PR rtl-optimization/104914
42486         * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
42487         a sign or zero extension is only required if the modified field
42488         overlaps the SUBREG's most significant bit.  On MODE_REP_EXTENDED
42489         targets, don't refer to the temporarily incorrectly extended value
42490         using a SUBREG, but instead generate an explicit TRUNCATE rtx.
42492 2024-01-04  Pan Li  <pan2.li@intel.com>
42494         Revert:
42495         2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42497         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
42499 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42501         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
42503 2024-01-04  Kito Cheng  <kito.cheng@sifive.com>
42505         * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
42506         offset of fcsr.
42508 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42510         * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
42511         (compute_nregs_for_mode): Refine LMUL.
42512         (max_number_of_live_regs): Ditto.
42513         (compute_estimated_lmul): Ditto.
42514         (has_unexpected_spills_p): Ditto.
42516 2024-01-04  Li Wei  <liwei@loongson.cn>
42518         * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
42519         Remove useless forward declaration.
42520         (loongarch_is_even_extraction): Remove useless forward declaration.
42521         (loongarch_try_expand_lsx_vshuf_const): Removed.
42522         (loongarch_expand_vec_perm_const_1): Merged.
42523         (loongarch_is_double_duplicate): Removed.
42524         (loongarch_is_center_extraction): Ditto.
42525         (loongarch_is_reversing_permutation): Ditto.
42526         (loongarch_is_di_misalign_extract): Ditto.
42527         (loongarch_is_si_misalign_extract): Ditto.
42528         (loongarch_is_lasx_lowpart_extract): Ditto.
42529         (loongarch_is_op_reverse_perm): Ditto.
42530         (loongarch_is_single_op_perm): Ditto.
42531         (loongarch_is_divisible_perm): Ditto.
42532         (loongarch_is_triple_stride_extract): Ditto.
42533         (loongarch_expand_vec_perm_const_2): Merged.
42534         (loongarch_expand_vec_perm_const): New.
42535         (loongarch_vectorize_vec_perm_const): Adjust.
42537 2024-01-04  Sandra Loosemore  <sandra@codesourcery.com>
42539         * omp-general.cc: Fix comment typos and misplaced/confusing
42540         comments.  Delete redundant include of omp-general.h.
42542 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
42544         PR rtl-optimization/104914
42545         * config/mips/mips.md (insqisi_extended): New patterns.
42546         (inshisi_extended): Ditto.
42548 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
42550         * config/mips/mips.cc (mips_insn_cost): New function.
42552 2024-01-04  YunQiang Su  <syq@gcc.gnu.org>
42554         * config/mips/mips.md (perf_ratio): New attribute.
42556 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42558         PR target/113206
42559         PR target/113209
42560         * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
42561         (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
42562         blocks belong to infinite loop.
42563         (pre_vsetvl::emit_vsetvl): Remove fake edges.
42564         * config/riscv/t-riscv: Add a new include file.
42566 2024-01-04  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42568         * config/riscv/vector.md: Fix indent.
42570 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
42572         * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
42573         OMP_CLAUSE__SIMDUID_.
42574         * tree.cc (omp_clause_num_ops): Update position of entry for
42575         OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
42576         (omp_clause_code_name): Likewise.
42578 2024-01-03  Kwok Cheung Yeung  <kcy@codesourcery.com>
42580         * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
42581         printing of FUNC_MAP/IND_FUNC_MAP labels.
42583 2024-01-03  Jakub Jelinek  <jakub@redhat.com>
42585         * gcc.cc (process_command): Update copyright notice dates.
42586         * gcov-dump.cc (print_version): Ditto.
42587         * gcov.cc (print_version): Ditto.
42588         * gcov-tool.cc (print_version): Ditto.
42589         * gengtype.cc (create_file): Ditto.
42590         * doc/cpp.texi: Bump @copying's copyright year.
42591         * doc/cppinternals.texi: Ditto.
42592         * doc/gcc.texi: Ditto.
42593         * doc/gccint.texi: Ditto.
42594         * doc/gcov.texi: Ditto.
42595         * doc/install.texi: Ditto.
42596         * doc/invoke.texi: Ditto.
42598 2024-01-03  Xi Ruoyao  <xry111@xry111.site>
42600         * config/loongarch/simd.md (fmax<mode>3): New define_insn.
42601         (fmin<mode>3): Likewise.
42602         (reduc_fmax_scal_<mode>3): New define_expand.
42603         (reduc_fmin_scal_<mode>3): Likewise.
42605 2024-01-03  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42607         PR target/113112
42608         * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
42609         (max_number_of_live_regs): Ditto.
42610         (has_unexpected_spills_p): Ditto.
42612 2024-01-02  Jun Sha (Joshua)  <cooper.joshua@linux.alibaba.com>
42613             Jin Ma  <jinma@linux.alibaba.com>
42614             Xianmiao Qu  <cooper.qu@linux.alibaba.com>
42615             Christoph Müllner  <christoph.muellner@vrull.eu>
42617         * config/riscv/vector.md:
42618         Use vector_length_operand for vsetvl patterns.
42620 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42622         * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
42623         (expand_cond_len_op): Add simplification of dummy len and dummy mask.
42625 2024-01-02  Di Zhao  <dizhao@os.amperecomputing.com>
42627         * config/aarch64/aarch64-tuning-flags.def
42628         (AARCH64_EXTRA_TUNING_OPTION): New tuning option
42629         AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
42630         * config/aarch64/aarch64.cc
42631         (aarch64_override_options_internal): Set
42632         param_fully_pipelined_fma according to tuning option.
42633         * config/aarch64/tuning_models/ampere1.h: Add
42634         AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
42635         * config/aarch64/tuning_models/ampere1a.h: Likewise.
42636         * config/aarch64/tuning_models/ampere1b.h: Likewise.
42638 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
42640         * config/riscv/vector-crypto.md: Modify copyright year.
42642 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42644         * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
42646 2024-01-02  Lulu Cheng  <chenglulu@loongson.cn>
42648         * config.in: Regenerate.
42649         * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
42650         * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
42651         Added TLS Le Relax support.
42652         (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
42653         * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
42654         * configure: Regenerate.
42655         * configure.ac: Check if binutils supports TLS le relax.
42657 2024-01-02  Feng Wang  <wangfeng@eswincomputing.com>
42659         * config/riscv/iterators.md: Add rotate insn name.
42660         * config/riscv/riscv.md: Add new insns name for crypto vector.
42661         * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
42662         * config/riscv/vector.md: Add the corresponding attr for crypto vector.
42663         * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
42665 2024-01-02  Juzhe-Zhong  <juzhe.zhong@rivai.ai>
42667         PR target/113112
42668         * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
42669         pointer type liveness count.
42671 Copyright (C) 2024 Free Software Foundation, Inc.
42673 Copying and distribution of this file, with or without modification,
42674 are permitted in any medium without royalty provided the copyright
42675 notice and this notice are preserved.