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>
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>
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>
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
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>
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
141 2024-12-29 Jeff Law <jlaw@ventanamicro.com>
144 * config/riscv/bitmanip.md: Drop bogus pattern.
146 2024-12-29 John David Anglin <danglin@gcc.gnu.org>
149 * configure.ac: Check for mkstemps declaration.
150 * configure: Regenerate.
151 * config.in: Regenerate.
153 2024-12-29 Jeff Law <jlaw@ventanamicro.com>
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>
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
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>
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
241 2024-12-21 Arsen Arsenović <arsen@aarsen.me>
244 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Strip
245 DEMANGLE_COMPONENT_TEMPLATE from the operator new and operator
248 2024-12-21 Jeff Law <jlaw@ventanamicro.com>
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>
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>
271 * emit-rtl.cc (add_insn_before): Don't set the block of a
274 2024-12-20 Uros Bizjak <ubizjak@gmail.com>
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>
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>
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
309 2024-12-20 Christophe Lyon <christophe.lyon@linaro.org>
312 * config/arm/arm.cc (output_move_neon): Check TARGET_NEON as
314 (arm_attr_length_move_neon): Add support for V2x and V4x MVE tuple
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>
338 * tree.cc (type_hash_canon_hash): Hash TYPE_REF_IS_RVALUE for
340 (type_cache_hasher::equal): Compare TYPE_REF_IS_RVALUE for
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>
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>
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
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
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
399 2024-12-19 Alexandre Oliva <oliva@adacore.com>
401 * gimple-fold.cc (gimple_convert_def_p): Reject load stmts
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>
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>
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
446 (process_bb_lives): Rewrite dealing with reg notes. Update
447 conflict hard regs even when clobber hard reg is not marked as
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):
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.
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
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>
508 2024-12-18 Prathamesh Kulkarni <prathameshk@nvidia.com>
509 Matthew Malcolmson <mmalcolmson@nvidia.com>
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
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>
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
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>
552 * stmt.cc (parse_output_constraint, parse_input_constraint): Handle
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
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
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
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>
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
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>
628 * tree-vect-generic.cc (expand_vector_piecewise): Properly
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.
671 * config/riscv/riscv.h (reg_class): Add RVC_GR_REGS and
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...
693 * config/riscv/corev.md (riscv_cv_simd_add_h_si): Update
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
700 * config/riscv/vector-iterators.md (stride_load_constraint):
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
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
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
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
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,
800 * libgdiagnostics.h (diagnostic_manager_new_file): Drop "const"
802 (diagnostic_file_set_buffered_content): New decl.
803 * libgdiagnostics.map (diagnostic_file_set_buffered_content): New
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
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
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
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
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
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
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
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
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
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>
904 * config/riscv/riscv-v.cc (expand_vec_perm_const): Remove early
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>
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>
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>
929 * config/pa/pa.cc (pa_frame_pointer_required): Declare and
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,
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
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>
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>
987 * opts.cc (init_options_struct): Don't set opts->x_flag_short_enums to
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>
1002 * config/arm/arm-mve-builtins.cc
1003 (function_expander::add_input_operand): Handle CONST_INT
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)
1013 * config/arm/arm-mve-builtins-base.h (vld2q, vld4q, vst2q, vst4q):
1015 * config/arm/arm-mve-builtins.cc (register_builtin_tuple_types):
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.
1028 (vst4q_s16): Delete.
1029 (vst4q_s32): Delete.
1031 (vst4q_u16): Delete.
1032 (vst4q_u32): Delete.
1033 (vst4q_f16): Delete.
1034 (vst4q_f32): 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):
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
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>):
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
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
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
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.
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):
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):
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>):
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):
1512 (struct load_ext_gather_offset_def): New.
1513 * config/arm/arm-mve-builtins-shapes.h (load_ext_gather_offset):
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
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.
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):
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):
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):
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):
1772 (vstrbq_scatter, vstrhq_scatter, vstrwq_scatter, vstrdq_scatter):
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>):
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
1926 2024-12-13 Robin Dapp <rdapp@ventanamicro.com>
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):
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>
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):
1997 * config/riscv/riscv-v.cc (shuffle_extract_and_slide1up_patterns):
1999 (shuffle_off_by_one_patterns): ... to this and add slideup/slidedown
2001 (expand_vec_perm_const_1): Call renamed function.
2002 * config/riscv/riscv.cc (riscv_secondary_memory_needed): Remove
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
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
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>
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>
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>
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>
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>
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>
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):
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
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>
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>
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
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>
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>
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>
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>
2265 * expr.cc (store_constructor): add support for variable-length
2268 2024-12-11 Victor Do Nascimento <victor.donascimento@arm.com>
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>
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
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
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
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
2330 (canonicalize_loop_induction_variables): Add new parameter
2331 const_sbitmap innermost, and pass
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>
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>
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>
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
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
2444 (aarch64_pragma_builtins_checker::check): Add support for FP8FMA
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
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>):
2455 (@aarch64_<FMLALL_FP8_SF:insn><mode): Likewise.
2456 (@aarch64_<FMLALL_FP8_SF:insn>_lane<V8HF_ONLY:mode><VB:mode>):
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...
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
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
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
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
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>
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
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>
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
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
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
2595 * config/arm/arm-builtins.cc (arm_check_builtin_call): Likewise.
2596 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin):
2598 * config/arm/arm-protos.h (arm_check_builtin_call): Likewise.
2599 * config/avr/avr-c.cc (avr_resolve_overloaded_builtin):
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):
2605 * config/rs6000/rs6000-protos.h (altivec_resolve_overloaded_builtin):
2607 * config/s390/s390-c.cc (s390_resolve_overloaded_builtin):
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>
2618 * doc/invoke.texi (fsanitize=hwaddress): Clarify on which targets
2621 2024-12-09 Richard Earnshaw <rearnsha@arm.com>
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
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'
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>
2671 * tree-eh.cc (honor_protect_cleanup_actions): Support empty
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>
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
2708 2024-12-07 Denis Chertykov <chertykov@gmail.com>
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>
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.
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
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.
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
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
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
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
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
2841 * read-rtl.cc (apply_int_iterator): Support 'L' format in the switch
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
2872 * tree-vect-loop-manip.cc (vect_loop_versioning): After calling
2873 loop_version(), fix up stored PHI pointers in case they have
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
2914 (process_bb_lives): Rewrite dealing with reg notes. Update
2915 conflict hard regs even when clobber hard reg is not marked as
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>
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
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
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):
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
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):
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
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
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
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
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):
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'
3196 * config/nvptx/gen-multilib-matches.sh: Adjust.
3198 2024-12-06 Thomas Schwinge <tschwinge@baylibre.com>
3201 * config/nvptx/nvptx.opt (misa=, mptx=): Tag as 'Negative' of
3204 2024-12-06 Thomas Schwinge <tschwinge@baylibre.com>
3207 * gimple-fold.cc (gimple_fold_builtin_acc_on_device): Revert last
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>
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>
3259 * config/i386/i386.cc (ix86_canonicalize_comparison): Swap
3260 operands of GTU comparison to canonicalize addcarry/subborrow
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
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
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
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>
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>
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>
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
3377 2024-12-05 Georg-Johann Lay <avr@gjlay.de>
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>
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
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>
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
3496 2024-12-04 Georg-Johann Lay <avr@gjlay.de>
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
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>
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
3523 2024-12-04 Pan Li <pan2.li@intel.com>
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>
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
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>
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
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
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
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
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
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
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,
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
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
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.
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
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
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>
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
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
3998 2024-11-30 Mark Harmstone <mark@harmstone.com>
4000 * debug.cc (do_nothing_debug_hooks): Change begin_block
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>
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>
4028 * lto-wrapper.cc (find_crtoffloadtable): Add PIE_OR_SHARED argument,
4029 search for crtoffloadtableS.o rather than crtoffloadtable.o if
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
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
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>
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>
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>
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):
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
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>
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
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.
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.
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
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
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
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.
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
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
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
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>
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
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>
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>
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>
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
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>
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
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
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
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>
4722 * builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
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.
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>
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):
4744 * config/aarch64/aarch64.cc (aarch64_validate_sls_mitigation):
4746 (aarch64_override_options): Likewise.
4747 (aarch64_process_target_attr): Likewise.
4748 * config/arm/aarch-common.cc (aarch_validate_mbranch_protection):
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>
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
4777 2024-11-27 Pan Li <pan2.li@intel.com>
4779 * match.pd: Refactor sorts of unsigned SAT_ADD match pattern for
4782 2024-11-27 Jakub Jelinek <jakub@redhat.com>
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.
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
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>
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
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>
4841 * plugin.cc (try_init_one_plugin): Add missing colon in error
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>
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
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>
4878 * config/i386/i386-expand.cc (expand_vec_perm_pand_pandn_por):
4880 (ix86_expand_vec_perm_const_1): Call expand_vec_perm_pand_pandn_por.
4882 2024-11-25 Andrew Pinski <quic_apinski@quicinc.com>
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
4893 2024-11-25 John David Anglin <danglin@gcc.gnu.org>
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>
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>
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>
4956 * genemit.cc (handle_arg): Use files instead of filenames.
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>
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):
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
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
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>
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>
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>
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>
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>
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>
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
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>
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
5501 (*ashlhi3_const_split, *ashrhi3_const_split, *ashrhi3_const_split)
5502 (*lshrsi3_const_split, *lshrhi3_const_split): Remove useless
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>
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
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.
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>
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
5646 * config/loongarch/lasxintrin.h (__lasx_xvorn_v): Cast arguments
5649 2024-11-21 Jeff Law <jlaw@ventanamicro.com>
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
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>
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>
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):
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
5717 2024-11-21 Jeff Law <jlaw@ventanamicro.com>
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
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>
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
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
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>
5807 * coretypes.h (enum function_class): Add function_c2y_misc
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
5816 (fold_builtin_1): Handle BUILT_IN_U{,L,LL,IMAX}ABS.
5818 2024-11-21 Kewen Lin <linkw@linux.ibm.com>
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
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>
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
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
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
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
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
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
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
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
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>
6242 * config/riscv/vector-iterators.md:
6244 2024-11-20 MayShao-oc <MayShao-oc@zhaoxin.com>
6247 * config/i386/i386-features.cc (TARGET_ALIGN_TIGHT_LOOPS):
6248 default true in all processors except for m_ZHAOXIN, m_CASCADELAKE, and
6250 * config/i386/i386.h (TARGET_ALIGN_TIGHT_LOOPS): New Macro.
6251 * config/i386/x86-tune.def (X86_TUNE_ALIGN_TIGHT_LOOPS):
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>
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>
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
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
6309 2024-11-19 Jason Merrill <jason@redhat.com>
6311 * warning-control.cc (has_warning_spec): Fix handling of
6314 2024-11-19 Georg-Johann Lay <avr@gjlay.de>
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>
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
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):
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):
6355 (ASM_DECLARE_OBJECT_NAME): New.
6356 (ASM_DECLARE_FUNCTION_NAME): New.
6357 * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME):
6359 (ASM_OUTPUT_EXTERNAL_LIBCALL): Update.
6360 * config/mingw/winnt.cc (mingw_pe_declare_function_type):
6362 (mingw_pe_declare_type): ... this.
6363 (i386_pe_start_function): Update.
6364 * config/mingw/winnt.h (mingw_pe_declare_function_type):
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):
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
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
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
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
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>
6485 * Makefile.in (lang_checks): If libdiagnostics is enabled, add
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
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
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
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>
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
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>
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):
6690 (diagnostic_text_output_format::set_show_nesting): New.
6691 (diagnostic_text_output_format::set_show_locations_in_nesting):
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
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):
6701 (auto_diagnostic_nesting_level::~auto_diagnostic_nesting_level):
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>
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>
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>
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
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
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
6835 * config/aarch64/aarch64-sve-builtins.cc (function_expander::use_contiguous_load_insn):
6837 * config/aarch64/aarch64-sve-builtins.h: Add else operand to
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>):
6844 (*aarch64_load_<ANY_EXTEND:optab>_mov<SVE_HSDI:mode><SVE_PARTIAL_I:mode>):
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):
6872 * tree-vect-slp.cc (vect_get_operand_map): Adjust indices for
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
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
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
6939 2024-11-18 John David Anglin <danglin@gcc.gnu.org>
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>
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
6961 2024-11-17 Jan Hubicka <hubicka@ucw.cz>
6963 * ipa-modref.cc (modref_summary::useful_p): const/pure implies
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>
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>
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>
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
7073 2024-11-15 Jennifer Schmitz <jschmitz@nvidia.com>
7074 Richard Biener <rguenther@suse.de>
7076 PR tree-optimization/117093
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>
7084 * config/pa/pa.md: Fix typos in 32-bit SFmode peephole2 patterns.
7086 2024-11-15 Joseph Myers <josmyers@redhat.com>
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
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
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/
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
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
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
7222 2024-11-14 Martin Jambor <mjambor@suse.cz>
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
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
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
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
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.
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):
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
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.
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
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
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
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
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
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
7435 (vect_transform_stmt): Likewise for the transform.
7437 2024-11-14 Hongyu Wang <hongyu.wang@intel.com>
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>
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
7453 * config/aarch64/aarch64-sve-builtins-base.def: Remove zero-variant
7455 * config/aarch64/aarch64-sve-builtins-shapes.cc (mmla_def): Remove
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
7462 2024-11-13 Filip Kastl <fkastl@suse.cz>
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>
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
7490 (path_summary::path_summary): Add param "ref_pp" and pass to
7492 (diagnostic_text_output_format::print_path): Pass *pp to
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
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):
7512 2024-11-13 Soumya AR <soumyaa@nvidia.com>
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
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>
7602 * doc/invoke.texi (Wzero-as-null-pointer-constant): Adapt
7605 2024-11-13 Soumya AR <soumyaa@nvidia.com>
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>
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
7627 2024-11-13 Hu, Lin1 <lin1.hu@intel.com>
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>
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>
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>
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
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
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
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
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
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
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
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...
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
8040 (load_gather_sv_base::resolve): Use it. Update call to
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>
8109 * doc/install.texi (Building a native compiler): Document UBSAN_OPTIONS.
8111 2024-11-11 Sam James <sam@gentoo.org>
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):
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
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
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>
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,
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>
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>
8221 * config/pa/pa64-regs.h (PA_HARD_REGNO_MODE_OK): Don't allow
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>
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
8236 2024-11-08 John David Anglin <danglin@gcc.gnu.org>
8239 * config/pa/pa.cc (pa_legitimate_address_p): Allow any
8240 14-bit displacement when reload is in progress and strict
8243 2024-11-08 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com>
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>
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
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 ...
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
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
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
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
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
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
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,
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
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
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
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
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
8521 2024-11-06 Hu, Lin1 <lin1.hu@intel.com>
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>
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):
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>
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
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):
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
8664 2024-11-04 Kyrylo Tkachov <ktkachov@nvidia.com>
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>
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>
8688 2024-11-04 Kyrylo Tkachov <ktkachov@nvidia.com>
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):
8743 * config/aarch64/aarch64.cc (aarch64_emit_opt_vec_rotate): Implement.
8744 * config/aarch64/aarch64-simd.md (*aarch64_simd_rotate_imm<mode>):
8747 2024-11-04 Kyrylo Tkachov <ktkachov@nvidia.com>
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>
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
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>
8800 * builtins.cc (expand_builtin_prefetch): Use !IN_RANGE rather
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>
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>
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):
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
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):
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
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),
8908 * config/i386/i386-builtin.def (BDESC): Add new builtins.
8909 * config/i386/i386-c.cc (ix86_target_macros_internal): Add
8911 * config/i386/i386-expand.cc (ix86_expand_special_args_builtin): Define
8913 * config/i386/i386-isa.def (MOVRS): Add DEF_PTA(MOVRS)
8914 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
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):
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):
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
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
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):
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
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):
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):
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
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):
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):
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
9052 * config/aarch64/aarch64-sve-builtins-sve2.cc: ...here.
9053 * config/aarch64/aarch64-sve-builtins-base.def (svmax, svamin): Move
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
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
9139 2024-10-31 David Malcolm <dmalcolm@redhat.com>
9141 * diagnostic.cc (diagnostic_context::finish): Delete and reset
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"
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
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
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):
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>
9254 * config/i386/sse.md (*avx512vl_<code>v2div2qi2_mask_store_1):
9256 (avx512vl_<code>v2div2qi2_mask_store_1): .. this.
9257 (avx512vl_<code>v2div2qi2_mask_store_2): Change to
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
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
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
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
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
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
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>
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>
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>
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
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):
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
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
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
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
9397 (class diagnostic_text_output_format): Convert private members to
9399 (diagnostic_text_output_format::m_follows_reference_printer): New
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
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
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
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
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
9473 (diagnostic_buffer::empty_p): Likewise.
9474 (diagnostic_buffer::move_to): Likewise.
9475 (diagnostic_buffer::ensure_per_format_buffer): Likewise, renaming
9477 (diagnostic_buffer::ensure_per_format_buffers): ...this.
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
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
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
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.
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>
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
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
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
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>
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
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
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
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
9648 2024-10-29 David Malcolm <dmalcolm@redhat.com>
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
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.
9683 * config/arm/arm-mve-builtins-base.def (vld1q): Add predicated
9688 (vst1q): Add predicated version.
9692 (vrev32q): Update types to float_16.
9693 * config/arm/arm-mve-builtins-base.h (vldrbq): 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.
9707 (preds_z_or_none): New.
9708 (function_resolver::check_gp_argument): Add support for _z
9710 * config/arm/arm_mve.h (vstrbq): Remove.
9711 (vstrbq_p): Likewise.
9713 (vstrhq_p): 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:
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):
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:
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.
9977 (VLDRQ_Z): Likewise.
9978 (VLDRQ_EXT): Likewise.
9979 (VLDRQ_EXT_Z): 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
9991 (function_expander::use_contiguous_store_insn): Add support for
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:
10006 * config/arm/arm-mve-builtins-shapes.h:
10009 2024-10-29 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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
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
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
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
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>
10148 * config/aarch64/aarch64-simd.md (xor<mode>3<vczle><vczbe>): Use
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.
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
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
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):
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
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
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.
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.
10616 * ubsan.cc: Likewise.
10617 * tree-ssa.cc: 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.
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>
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>
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
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
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):
10745 (test_diagnostic_event::print_desc): ...this.
10746 * simple-diagnostic-path.cc (simple_diagnostic_event::print_desc):
10748 (selftest::test_intraprocedural_path): Use debug form of get_desc.
10749 * simple-diagnostic-path.h (simple_diagnostic_event::get_desc):
10751 (simple_diagnostic_event::print_desc): ...this, moving
10752 implementation to test_diagnostic_event.
10754 2024-10-24 Thomas Schwinge <tschwinge@baylibre.com>
10757 * config/gcn/mkoffload.cc: Add '#define INCLUDE_MEMORY'.
10759 2024-10-24 David Malcolm <dmalcolm@redhat.com>
10760 Gaius Mulley <gaiusmod2@gmail.com>
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):
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
10833 (diagnostic_output_format_init_sarif): Update for usage of
10835 (test_message_with_embedded_link): Likewise for set_urlifier.
10836 * diagnostic-format-text.cc: Add #define INCLUDE_MEMORY. Include
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
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
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
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
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
11127 2024-10-24 Andrew MacLeod <amacleod@redhat.com>
11129 * range-op-mixed.h (operator_bitwise_or::fold_range): Add prange
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
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>
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>
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.
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
11234 (operator_pointer_diff::update_bitmask): Likewise.
11236 2024-10-23 David Malcolm <dmalcolm@redhat.com>
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
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
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
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
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):
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
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
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
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
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
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
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
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>
11447 * config/i386/i386-builtin.def: Add avx/avx512f to vaes
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>
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):
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>
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
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
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
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
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>
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>):
11661 (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
11663 (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>):
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):
11669 (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11671 (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2):
11674 2024-10-20 Jeff Law <jlaw@ventanamicro.com>
11677 2024-10-19 Craig Blackmore <craig.blackmore@embecosm.com>
11679 * config/riscv/riscv.cc (riscv_use_by_pieces_infrastructure_p):
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):
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):
11739 * diagnostic-format-text.h (diagnostic_text_output_format::dump):
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
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
11753 (pp_formatted_chunks::dump): Add "indent" param and use it.
11754 (pretty_printer::dump): Likewise. Add dumping of m_show_color
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>
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
11815 2024-10-18 Uros Bizjak <ubizjak@gmail.com>
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
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.
11887 * config/arm/arm-mve-builtins-base.def (vsbciq): New.
11889 * config/arm/arm-mve-builtins-base.h (vsbciq): New.
11891 * config/arm/arm_mve.h (vsbciq): Delete.
11892 (vsbciq_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
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.
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.
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,
11960 (VADCIQ, VSBCIQ): Merge into ...
11962 (VADCIQ_M, VSBCIQ_M): Merge into ...
11963 (VxCIQ_M): ... this.
11964 (VSBCQ, VADCQ): Merge into ...
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.
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.
12057 * config/arm/arm-mve-builtins-base.def (vdwdupq): New.
12059 * config/arm/arm-mve-builtins-base.h (vdwdupq): 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
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):
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.
12207 * config/arm/arm-mve-builtins-base.def (vddupq): New.
12209 * config/arm/arm-mve-builtins-base.h (vddupq): 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.
12327 (viddupq_m_op): 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):
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.
12344 * config/arm/arm-mve-builtins-base.def (vctp16q): New.
12348 * config/arm/arm-mve-builtins-base.h (vctp16q): 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.
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 '@'
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.
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,
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.
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.
12547 * config/arm/arm-mve-builtins-base.def (vcvtaq): New.
12551 * config/arm/arm-mve-builtins-base.h: (vcvtaq): 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
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
12692 (function_instance::has_inactive_argument): Support vcvtbq and
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
12746 (@mve_<mve_insn>q_m_f16_f32v8hf): ... this.
12747 (mve_vcvtbq_m_f32_f16v4sf, mve_vcvttq_m_f32_f16v4sf): Merge into
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.
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.
12761 (vcvtq_m_n): 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.
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
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):
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
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>
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>
12965 * lra-constraints.cc (get_reload_reg): Reuse scratch registers
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
12978 2024-10-17 liuhongt <hongtao.liu@intel.com>
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>
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
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>
13071 * diagnostic-format-sarif.cc: Include "demangle.h" and
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>
13087 * diagnostic-format-sarif.cc
13088 (sarif_builder::on_report_diagnostic): Move the fnotice here from
13090 (sarif_ice_handler): Delete.
13091 (diagnostic_output_format_init_sarif): Drop setting of ice handler
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
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):
13126 * config/loongarch/loongarch-cpu.cc (fill_native_cpu_config):
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):
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):
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>
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>
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.
13227 * gimple-fold.cc (fold_array_ctor_reference): Likewise. Formatting
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
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>
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>
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>
13278 * doc/invoke.texi (Wno-changes-meaning): Add opindex.
13280 2024-10-15 Uros Bizjak <ubizjak@gmail.com>
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
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
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
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>
13439 * config/aarch64/aarch64-sve-builtins-sve2.cc (class svpsel_impl):
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
13447 2024-10-14 Tamar Christina <tamar.christina@arm.com>
13449 * tree-vect-loop.cc (vect_analyze_loop_2): Handle SLP trees with no
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
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>
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
13500 2024-10-14 Oleg Endo <olegendo@gcc.gnu.org>
13501 Roger Sayle <roger@nextmovesoftware.com>
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
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
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
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
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>
13605 * config/aarch64/aarch64-simd.md (aarch64_xarqv2di): Redefine into a
13607 (*aarch64_xarqv2di_insn): Define.
13609 2024-10-11 Kyrylo Tkachov <ktkachov@nvidia.com>
13612 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
13613 Handle vector constants in (x << C1) | (x >> C2) -> ROTATE
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
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
13645 * config/aarch64/iterators.md: Iterator and attribute for
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>
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,
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,
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,
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>
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
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
13770 * config/i386/i386.h (TARGET_AVX256_AVOID_VEC_PERM): New
13772 * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): Add
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):
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
13798 (diagnostic_text_output_format::append_note): Likewise.
13799 * diagnostic-format-text.h
13800 (diagnostic_text_output_format::show_any_path): Drop decl.
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>
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
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
13827 (vect_analyze_loop): Disable epilogue vectorization in very
13829 * doc/invoke.texi: Adjust documents for very-cheap cost model.
13831 2024-10-09 Jovan Vukic <Jovan.Vukic@rt-rk.com>
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):
13840 2024-10-09 Jeff Law <jlaw@ventanamicro.com>
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>
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>
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
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
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
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
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
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>
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>
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>
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,
14088 2024-10-07 Andre Vieira <andre.simoesdiasvieira@arm.com>
14090 * config/arm/arm.cc (arm_noce_oncersion_profitable_p): Remove unused
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
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
14136 2024-10-07 Richard Sandiford <richard.sandiford@arm.com>
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
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
14166 * internal-fn.cc (expand_SPACESHIP): Expect 3 call arguments
14167 rather than 2, expand the last one, expect 4 operands of
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
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
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>
14225 * doc/install.texi (Specific) <*-*-freebsd*>: Focus on DWARF
14228 2024-10-05 John David Anglin <danglin@gcc.gnu.org>
14230 * config/pa/pa.md (nonlocal_goto): Don't clobber
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>
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
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>
14281 * config/i386/i386.cc (ix86_stack_protect_runtime_enabled_p): New
14283 (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): New.
14285 2024-10-04 Saurabh Jha <saurabh.jha@arm.com>
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>
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>
14322 * config/arm/arm-protos.h (arm_noce_conversion_profitable_p): New
14324 * config/arm/arm.cc (arm_is_v81m_cond_insn): New helper function used
14326 (arm_noce_conversion_profitable_p): ... here. New function to implement
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>
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>
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>
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>
14358 * doc/install.texi (Specific) <h8300-hms>: Drop GCC 2.6
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
14382 2024-10-03 Andrew Pinski <quic_apinski@quicinc.com>
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>
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
14397 (sarif_location_manager::add_related_location): Implement for
14398 base class, taking sarif_result's implementation. Add "builder"
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
14422 (sarif_output_format::sarif_output_format): Add "version" param.
14423 (sarif_stream_output_format::sarif_stream_output_format):
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
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
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
14481 (switch_conversion::is_exp_index_transform_viable): Don't call
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
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>
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
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
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
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
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
14588 (aarch64_invalid_conversion): Add function implementing
14589 TARGET_INVALID_CONVERSION hook that blocks conversion to and from the
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
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
14623 (compute_antic_aux): Direct prune_clobbered_mems to prune
14624 all traps when any MAX solution was involved in the ANTIC
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
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>
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>
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):
14668 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
14670 (selftest::test_one_liner_fixit_validation_adhoc_locations):
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):
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):
14684 (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
14686 (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
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>
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>
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
14773 (colorizer::m_pp): Convert from * to &.
14774 (class layout): Add friend class layout_printer and move various
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):
14835 (diagnostic_context::show_locus): Convert to...
14836 (diagnostic_source_print_policy::print): ...this. Convert pp
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):
14857 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
14859 (selftest::test_one_liner_fixit_validation_adhoc_locations):
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):
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):
14874 (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
14876 (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
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.
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):
14904 (default_diagnostic_start_span_fn): Convert param from
14905 diagnostic_context * to const diagnostic_location_print_policy &.
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
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
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
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>
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
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>
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"
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.
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
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
15147 * optabs.cc (expand_widen_pattern_expr): Make the
15148 DOT_PROD_EXPR tree code use `find_widening_optab_handler' to
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
15160 (udot_prod_optab): Likewise.
15161 (usdot_prod_optab): Likewise.
15162 * doc/md.texi (Standard Names): update entries for u,s and us
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
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
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>
15221 * cselib.cc (remove_useless_values): Discard useless locs
15222 even from preserved cselib_vals in cselib_preserved_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>
15232 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1): New
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>
15242 * doc/install.texi (Specific) <i?86-*-linux*>: Remove note
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
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):
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
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
15355 2024-09-26 Gerald Pfeifer <gerald@pfeifer.com>
15358 * doc/install.texi (Specific) <*-*-mingw32>: Remove note regarding
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>
15385 * common.opt.urls: Regenerate.
15387 2024-09-25 Jakub Jelinek <jakub@redhat.com>
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>
15397 * config/i386/i386.cc (ix86_rewrite_tls_address_1): Make it
15398 static. Return if TLS address is thread register plus an integer
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
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
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>
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
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
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
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
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
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
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>
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
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
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>
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.
15656 (struct dw_cfi_node): Forward declaration of CFI type from
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.
15664 (struct dw_cfi_row): Update the description for window_save
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
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
15680 (hook_bool_dwcfi_dwcfioprndtyperef_false): New.
15681 (hook_bool_FILEptr_dwcfiptr_false): New.
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.
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>
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>
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
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>
15790 * flag-types.h (enum gfc_inlineable_intrinsics): New type.
15792 2024-09-20 David Malcolm <dmalcolm@redhat.com>
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>
15802 * diagnostic-format-sarif.cc (sarif_builder::m_printer): New
15804 (sarif_invocation::add_notification_for_ice): Drop context param.
15805 (sarif_invocation::prepare_to_flush): Convert param from context
15807 (sarif_result::on_nested_diagnostic): Drop context param. Use
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
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
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>
15833 * coretypes.h (class diagnostic_text_output_format): Add forward
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
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
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
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
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
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
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>
16028 * config/i386/subst.md (mask_scalar_operand_arg34,
16029 mask_scalar_expand_op3, round_saeonly_scalar_mask_arg3): New
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
16035 (*<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
16037 (<sse>_ieee_vm<ieee_maxmin><mode>3<mask_scalar_name><round_saeonly_scalar_name>):
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>
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
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
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
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
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):
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
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
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
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
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
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>
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
16244 2024-09-17 Marek Polacek <polacek@redhat.com>
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>
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
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>
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=
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
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>
16359 * omp-api.h (omp_get_fr_id_from_name, omp_get_name_from_fr_id): New
16361 * omp-general.cc (omp_get_fr_id_from_name, omp_get_name_from_fr_id):
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>
16376 * config/s390/s390.cc (print_operand): Remove operand specifier
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
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>
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
16429 2024-09-12 Richard Earnshaw <rearnsha@arm.com>
16431 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Allow -mcpu and -march
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
16465 2024-09-12 Jakub Jelinek <jakub@redhat.com>
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
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
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
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>
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
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
16537 * lto-streamer-out.cc (output_struct_function_base): Stream out
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
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
16559 2024-09-10 Prathamesh Kulkarni <prathameshk@nvidia.com>
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
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".
16620 (compiler_diagnostic_option_manager::option_enabled_p): Likewise.
16621 * opts-diagnostic.h (class gcc_diagnostic_option_manager):
16623 (class compiler_diagnostic_option_manager): Likewise.
16624 * opts.cc (compiler_diagnostic_option_manager::make_option_name):
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):
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"
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>
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):
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):
16763 * diagnostic-format.h (diagnostic_output_format::get_printer):
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):
16795 (selftest::test_one_liner_fixit_replace_equal_secondary_range):
16797 (selftest::test_one_liner_fixit_validation_adhoc_locations):
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):
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):
16812 (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8):
16814 (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8):
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):
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):
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):
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>
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
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
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>
16942 * doc/invoke.texi: Add meteorlake, raptorlake and lunarlake.
16944 2024-09-08 H.J. Lu <hjl.tools@gmail.com>
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
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
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>
16974 * config/riscv/thead.cc (th_asm_output_opcode): Change '0' to
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>
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
17004 2024-09-06 Martin Jambor <mjambor@suse.cz>
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
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
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>
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>
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
17109 (riscv_noce_conversion_profitable_p): Recognize new output from
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>
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
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
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>
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
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
17253 2024-09-04 Andrew Pinski <quic_apinski@quicinc.com>
17255 * expr.cc (expand_expr_divmod): Add dump of the two costs for
17258 2024-09-04 Hans-Peter Nilsson <hp@axis.com>
17260 * config/cris/cris.md (lra_szext_decomposed_indir_plus): New
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
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
17284 2024-09-03 Qing Zhao <qing.zhao@oracle.com>
17286 * doc/extend.texi: Explicitly mentions counted_by is available
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
17304 2024-09-03 David Malcolm <dmalcolm@redhat.com>
17306 * pretty-print-format-impl.h (pp_formatted_chunks::get_prev): New
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
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
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
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
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
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
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
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>
17442 * ipa-modref.cc (analyze_parms): Always analyze function parameter
17445 2024-09-03 Jeff Law <jlaw@ventanamicro.com>
17448 * config/riscv/riscv.md (reassociate bitwise ops): Tighten test for
17449 cases we do not want reassociate.
17452 2024-09-03 Jan Hubicka <jh@suse.cz>
17454 * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): Enable for
17456 (X86_TUNE_AVOID_256FMA_CHAINS): Likewise.
17457 (X86_TUNE_AVOID_512FMA_CHAINS): Likewise.
17459 2024-09-03 Tobias Burnus <tburnus@baylibre.com>
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
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>
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
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
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
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
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
17764 2024-09-02 Levy Hsu <admin@levyhsu.com>
17766 * config/i386/i386-expand.cc (ix86_use_mask_cmp_p): Add BFmode
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):
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
17878 * config/pa/predicates.md (floating_point_store_memory_operand):
17879 Update comment. Remove symbolic memory work arounds for
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>
17895 * doc/extend.texi (unsequenced, reproducible): Document new function
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>
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>
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>
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
17998 (sarif_thread_flow_location::get_parent): New accessor.
17999 (sarif_thread_flow_location::get_index_within_parent): New
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):
18045 (selftest::test_make_location_object): Provide an idx for the
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
18067 * dump-context.h (class dump_pretty_printer): Update leading
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):
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
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
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
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
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
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
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
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
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
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
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
18319 * optabs.cc (expand_twoval_binop_libfunc): Likewise.
18321 2024-08-29 Georg-Johann Lay <avr@gjlay.de>
18324 * config/avr/avr-modes.def (CCN, CCZN): New CC_MODEs.
18325 * config/avr/avr-protos.h (avr_cond_branch): New from
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.
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>
18367 * coroutine-passes.cc (execute_early_expand_coro_ifns): Don't
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
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)
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>
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
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
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
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
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
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
18583 (match_saturation_add): ... here.
18584 (math_opts_dom_walker::after_dom_children): Update the above renamed
18587 2024-08-27 Andreas Schwab <schwab@linux-m68k.org>
18590 * config/m68k/m68k.cc (m68k_decompose_index): Accept ASHIFT like
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
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
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
18634 2024-08-27 Christophe Lyon <christophe.lyon@linaro.org>
18636 * config/arm/vfp.md (movdi_vfp, thumb2_movdf_vfp): Handle MVE
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>
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>
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
18658 2024-08-27 Michael Matz <matz@suse.de>
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
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
18709 * diagnostic-global-context.cc: Include
18710 "diagnostic-format.h".
18711 * diagnostic-format-text.h: New file, using material from
18713 * diagnostic-format.h: New file, using material from
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):
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):
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):
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):
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
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
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>
18819 * configure.ac: Add the "nop" instruction for cpu type ft32.
18820 * configure: Regenerate.
18821 * dwarf2out.cc (dwarf2out_set_ignored_loc): Use the correct
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
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
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>):
18947 (avx10_2_vcvttpd2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
18949 (avx10_2_vcvttps2<sat_cvt_sign_prefix>qqs<mode><mask_name><round_saeonly_name>):
18951 (avx10_2_vcvttsd2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
18953 (avx10_2_vcvttss2<sat_cvt_sign_prefix>sis<mode><round_saeonly_name>):
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>):
18983 (avx10_2_cvtph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
18985 (avx10_2_cvttph2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
18987 (avx10_2_cvtps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_name>):
18989 (avx10_2_cvttps2i<sat_cvt_sign_prefix>bs<mode><mask_name><round_saeonly_name>):
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
19001 * config/i386/i386-builtin.def (BDESC): Add new buildin.
19002 * config/i386/i386-expand.cc (ix86_expand_args_builtin):
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):
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):
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):
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
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
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>
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
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
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>
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
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>
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>
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
19398 2024-08-21 Martin Jambor <mjambor@suse.cz>
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
19435 2024-08-21 Andrew Pinski <quic_apinski@quicinc.com>
19437 PR sanitizer/115205
19438 * asan.cc (asan_instrument): Call initialize_sanitizer_builtins
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
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
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
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>
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>
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>
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):
19515 2024-08-19 Andrew Carlotti <andrew.carlotti@arm.com>
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)
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):
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):
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>):
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>):
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>):
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>):
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>):
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
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>):
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):
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>
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>
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
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>
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
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>
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>
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>
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>
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*
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
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>
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>
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
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
20092 2024-08-15 liuhongt <hongtao.liu@intel.com>
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>
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
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>
20130 * config/rs6000/vsx.md (isnormal<mode>2): New expand.
20132 2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
20135 * config/rs6000/vsx.md (isfinite<mode>2): New expand.
20137 2024-08-15 Haochen Gui <guihaoc@gcc.gnu.org>
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):
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>
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>
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):
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>
20218 * config/i386/i386.md (*ashlqi3_1_zext<mode><nf_name>):
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>
20227 * config/i386/i386.md (*andqi_1_zext<mode><nf_name>): New
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>
20240 * config/i386/i386.md (*subqi_1_zext<mode><nf_name>): New
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>
20259 * config/i386/i386.md (*addqi_1_zext<mode><nf_name>): New
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
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
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>
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>
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
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>
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>
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>
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>
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
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
20428 (ix86_valid_target_attribute_inner_p): Handle avx10.2-256 and
20430 * config/i386/i386.opt: Add option -mavx10.2, -mavx10.2-256 and
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
20436 * doc/sourcebuild.texi: Document target avx10.2, avx10.2-256,
20439 2024-08-12 Roger Sayle <roger@nextmovesoftware.com>
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>
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
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>
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>
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>
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
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
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
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
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
20578 2024-08-09 Jakub Jelinek <jakub@redhat.com>
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):
20596 2024-08-09 Kyrylo Tkachov <ktkachov@nvidia.com>
20598 * config/aarch64/constraints.md (Dm): Match CONSTM1_RTX rather
20601 2024-08-08 Tamar Christina <tamar.christina@arm.com>
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
20635 2024-08-08 Christoph Müllner <christoph.muellner@vrull.eu>
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>
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
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>
20711 * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Add a spec for
20713 * config/darwin.opt: Handle weak_framework driver option.
20715 2024-08-07 Prathamesh Kulkarni <prathameshk@nvidia.com>
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
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>
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
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
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
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>
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>
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):
20811 * doc/invoke.texi (-Wno-template-body): Document.
20812 (-fpermissive): Mention -Wtemplate-body.
20814 2024-08-06 David Malcolm <dmalcolm@redhat.com>
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
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>
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>
20931 * config/riscv/riscv.cc (riscv_option_override): Fix url
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>
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>
20995 * config/riscv/riscv.cc (riscv_option_override): Add deprecation
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>
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.
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
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
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
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
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>
21124 * config/aarch64/aarch64-simd.md (popcount<mode>2): Add TARGET_SVE
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>
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>
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`
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>
21198 * config/i386/constraints.md (Wc): New constraint for integer
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>
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>
21256 * config/i386/i386.md (*add<mode>_4): Remove ndd support.
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):
21274 (sarif_location_manager::m_unlabelled_secondary_locations): New
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
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
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
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
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
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
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>
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>
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
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
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
21474 (bytepick_w_<bytepick_imm>): Add mode for lshiftrt and ashift.
21475 (bitsize, bytepick_imm, bytepick_w_ashift_amount): New
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
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
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>
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):
21605 2024-07-29 Jeff Law <jlaw@ventanamicro.com>
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
21617 2024-07-29 Max Filippov <jcmvbkbc@gmail.com>
21619 * config/xtensa/xtensa.cc (xtensa_option_override_after_change):
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
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>
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>
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
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"
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.
21685 (avr_signal_function): New from avr_signal_function_p.
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
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
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"
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):
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
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>
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>
21833 * config/aarch64/aarch64.opt (mearly-ra=): Mark as Optimization rather
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>
21860 * tree-tailcall.cc (find_tail_calls): Change tail call
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>
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>
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
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
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>
21931 * config/riscv/thead.cc (th_memidx_classify_address_modify):
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
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
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>
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>
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
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
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
22071 * json.h (json::array::size): New.
22072 (json::array::operator[]): New.
22074 (selftest::expect_json_object_with_array_property): New.
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
22095 * diagnostic.cc (diagnostic_context::initialize): Initialize
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
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):
22154 (selftests::test_layout_x_offset_display_utf8): Use
22155 diagnostic_show_locus_fixture to simplify and consolidate setup
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
22175 (json_output_format::json_output_format): Update accordingly.
22176 (json_output_format::~json_output_format): Remove manual
22178 (json_from_expanded_location): Convert return type to
22180 (json_from_location_range): Likewise. Use nullptr rather than
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
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
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
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.
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/
22507 * config/rs6000/rs6000-string.cc (expand_cmp_vec_sequence): Update
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 ...
22516 (BIT_IORC): Rename to ...
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>
22538 2024-07-24 Jennifer Schmitz <jschmitz@nvidia.com>
22540 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
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
22547 2024-07-24 Jennifer Schmitz <jschmitz@nvidia.com>
22549 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Implement
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
22556 2024-07-24 Christoph Müllner <christoph.muellner@vrull.eu>
22559 * config/riscv/bitmanip.md: Disable zero_extendsidi2_bitmanip
22562 2024-07-24 Lingling Kong <lingling.kong@intel.com>
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>
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
22577 (direct_internal_fn_supported_p): Add above check for the tree
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>
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
22612 2024-07-23 Jiufu Guo <guojiufu@linux.ibm.com>
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>
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>
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>
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
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>
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>
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
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
22747 2024-07-22 Jan Hubicka <hubicka@ucw.cz>
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>
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>
22761 * ipa-icf-gimple.cc (func_checker::compare_loops): compare loop
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>
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
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
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>
22850 2024-07-20 Andi Kleen <ak@linux.intel.com>
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>
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
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
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
22947 * config/bpf/bpf.cc (no_parentheses_mem_operand): Create
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>
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>
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>
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>
23022 * config/i386/predicates.md (const0_or_m1_operand): New
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>
23035 * calls.cc (initialize_argument_information): Mark messages
23037 (can_implement_as_sibling_call_p): Dito.
23038 (expand_call): Dito.
23040 2024-07-18 Andi Kleen <ak@linux.intel.com>
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>
23054 * function.h (struct function): Add has_musttail.
23055 * lto-streamer-in.cc (input_struct_function_base): Stream
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
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>
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>
23079 * calls.cc (maybe_complain_about_tail_call): Clear must tail
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>
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>
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
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
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
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
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
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
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
23211 2024-07-17 Jakub Jelinek <jakub@redhat.com>
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
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>
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>
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>
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>
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>
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
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>
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.
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>
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
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
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
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
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>
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
23458 (vec_cmpu<VIT_HW:mode><VIT_HW:mode>): Add 128-bit integer
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>
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
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>
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>
23528 * common/config/riscv/riscv-common.cc (struct riscv_func_target_info):
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):
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
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
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>
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
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>
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
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>
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.
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>
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"
23831 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
23832 Disable highlight colors.
23833 * diagnostic-format-sarif.cc (diagnostic_output_format_init_sarif):
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
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):
23852 * doc/invoke.texi: Add option -fdiagnostics-show-highlight-colors
23853 and highlight-a and highlight-b color caps.
23855 (Use color consistently when highlighting mismatches): New
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
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
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
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):
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
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
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
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
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>
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>
24045 * config/riscv/riscv.cc(riscv_preferred_else_value): Mark
24046 tmp_var as NO_WARNING.
24048 2024-07-12 xuli <xuli1@eswincomputing.com>
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.
24062 2024-07-12 Kewen Lin <linkw@linux.ibm.com>
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>
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>
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
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>
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>
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
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
24314 (struct attrinfo): Remove isinit entry.
24315 (parse_bif_attrs): Remove the if statement to check for attribute
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
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
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):
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>
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
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):
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>
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>
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
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):
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()
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>
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>
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>
24637 * config/arm/arm.cc (arm_legitimate_index_p): Move LDRD case before
24639 (thumb2_legitimate_index_p): Update comments.
24640 (output_move_neon): Use DFmode for vldr/vstr and non-checking
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>
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
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
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>):
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
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>
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
24733 (rx_expand_epilogue): Mark the stack pointer adjustment as frame
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>
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
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
24777 * config.in: Regenerate.
24778 * config/riscv/arch-canonicalize: Make zabha imply zaamo.
24779 * config/riscv/iterators.md (amobh): Add iterator for amo
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
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>
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
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>
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>
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>
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>
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
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>
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.
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
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
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>
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
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.
25168 2024-07-02 Kewen Lin <linkw@linux.ibm.com>
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):
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
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>
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
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>
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>
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
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>
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):
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>
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>
25283 * config/i386/sse.md
25284 (*<avx512>_cvtmask2<ssemodesuffix><mode>_not): New pre_reload
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>
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):
25298 (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_gtint):
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>
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>
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): ...
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
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
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
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
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>
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>
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
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>
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>
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>
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
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>
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
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
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
25653 (legitimize_pe_coff_extern_decl): Likewise.
25655 2024-06-26 Kewen Lin <linkw@linux.ibm.com>
25656 Xionghu Luo <xionghuluo@tencent.com>
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>
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>
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
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
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.
25777 (error_n): Likewise.
25778 (error_at): Likewise.
25779 (error_meta): 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.
25843 (error_n): Likewise.
25844 (error_at): Likewise.
25845 (error_meta): 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):
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
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
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
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>
25935 * config/sparc/linux64.h (CC1_SPEC): Pass -m32 for -mv8plus.
25937 2024-06-25 Thomas Schwinge <tschwinge@baylibre.com>
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.
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
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):
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):
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.
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):
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
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
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
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
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
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):
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
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
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
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
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
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
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
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
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):
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>
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
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.
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
26620 2024-06-23 Jeff Law <jlaw@ventanamicro.com>
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
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
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>
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
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
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
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
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
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
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
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>
26826 * config/rs6000/altivec.md (altivec_vmrghw_direct_<VSX_W:mode>): Rename
26828 (altivec_vmrghw_direct_<VSX_W:mode>_be): ... this. Add the condition
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
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
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>
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
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
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
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):
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
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
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
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
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
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
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
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
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):
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):
27242 (tree_logical_location::get_name_for_path_output): New decl.
27243 (current_fndecl_logical_location::get_name_for_path_output): New
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
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>
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>
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
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
27395 * tree-if-conv.cc (ifcvt_memrefs_wont_trap): Use
27396 ref_can_have_store_data_races to allow more unconditional
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>
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>
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
27463 2024-06-17 Richard Biener <rguenther@suse.de>
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
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.
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.
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.
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.
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>
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>):
27622 (unspec_avx512fp16_fix<vcvtt_uns_suffix>_truncv2di2<mask_name>): Ditto.
27623 (unspec_avx512fp16_fix<vcvtt_uns_suffix>_trunc<mode>2<round_saeonly_name>):
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>):
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>):
27635 (unspec_avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>):
27637 (unspec_sse2_cvttsd2si<rex64namesuffix><round_saeonly_name>): Ditto.
27638 (unspec_fix<vcvtt_uns_suffix>_truncv8dfv8si2<mask_name><round_saeonly_name>):
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>):
27647 (unspec_fix<vcvtt_uns_suffix>
27648 _trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>):
27650 (unspec_avx512dq_fix<vcvtt_uns_suffix>_truncv2sfv2di2<mask_name>):
27652 (<mask_codefor>unspec_fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
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>
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>
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>
27720 * doc/install.texi (Specific): Remove pointer to old versions
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>
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>
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
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>
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>
27845 * simplify-rtx.cc (simplify_context::simplify_subreg): Don't try
27846 to fold two subregs together if their relationship isn't known
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>
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
27867 2024-06-13 Gerald Pfeifer <gerald@pfeifer.com>
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
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
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
27907 2024-06-13 liuhongt <hongtao.liu@intel.com>
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>
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.
27964 (sve_int_op): Likewise.
27965 (SVE_INT_UNARY): Remove UNSPEC_RBIT.
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.
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
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
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
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
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
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):
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"
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
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>
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>
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>
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
28237 2024-06-12 liuhongt <hongtao.liu@intel.com>
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
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):
28250 (-std=gnu23): Update documentation.
28251 * doc/standards.texi (C Language): Document C2Y. Update C23
28253 * config/rl78/rl78.cc (rl78_option_override): Handle "GNU C2Y"
28255 * dwarf2out.cc (highest_c_language, gen_compile_unit_die):
28258 2024-06-11 Gerald Pfeifer <gerald@pfeifer.com>
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
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
28298 2024-06-11 Uros Bizjak <ubizjak@gmail.com>
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>):
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>
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>
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
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
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>
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>
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
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>
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
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
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
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
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>
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
28561 (extend<mode><Vwide>2): ... This.
28563 2024-06-06 Andrew Pinski <quic_apinski@quicinc.com>
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>
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
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
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
28634 * config/i386/i386-opts.h (enum apx_features): Add apx_ccmp.
28635 * config/i386/i386-protos.h (ix86_gen_ccmp_first): New proto
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
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
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
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
28691 2024-06-06 YunQiang Su <syq@gcc.gnu.org>
28693 * config/mips/mips.cc(mips_insn_cost): Add missing COSTS_N_INSNS
28696 2024-06-06 liuhongt <hongtao.liu@intel.com>
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):
28703 * config/i386/i386-protos.h (ix86_broadcast_from_constant):
28706 2024-06-06 liuhongt <hongtao.liu@intel.com>
28710 (simplify_context::simplify_binary_operation_1):
28711 Simplify (AND (ASHIFTRT A imm) mask) to (LSHIFTRT A imm) for
28714 2024-06-05 Robin Dapp <rdapp.gcc@gmail.com>
28716 * config/riscv/riscv-opts.h (TARGET_VECTOR_MISALIGN_SUPPORTED):
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
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
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>
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
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>
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
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
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
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>
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
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):
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>
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.
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.
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):
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
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>
29119 * config/i386/i386.cc (ix86_noce_conversion_profitable_p): Add
29120 some preference for floating point ifcvt when SSE4.1 is not
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
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
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
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
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>
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
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):
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
29321 * config/riscv/vector-crypto.md: Add VLS modes to insns.
29322 * config/riscv/vector.md: Add bitmanip ops to mode_idx and other
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
29334 * config/riscv/vector-crypto.md: Remove mode from vwsll shift
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
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>
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
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>
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
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
29411 2024-05-31 Andrew Pinski <quic_apinski@quicinc.com>
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
29452 * config/xtensa/xtensa.h (CONSTANT_ADDRESS_P,
29453 LEGITIMATE_PIC_OPERAND_P): Ditto.
29454 * config/xtensa/xtensa.md (reload<mode>_literal, indirect_jump):
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
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>
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>
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):
29523 * text-art/theme.cc (ascii_theme::get_cppchar): Handle the various
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
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>
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>
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>
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
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`
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>
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
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
29648 (vec_info::insert_seq_on_entry): Access to bbs[0] via base vec_info
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
29692 2024-05-29 Hongyu Wang <hongyu.wang@intel.com>
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
29711 2024-05-29 Haochen Jiang <haochen.jiang@intel.com>
29713 * config/i386/x86-tune-costs.h (generic_cost): Change from
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
29724 2024-05-29 Kewen Lin <linkw@linux.ibm.com>
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>
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
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
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
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>
29848 * diagnostic-path.h
29849 (simple_diagnostic_path::disable_event_localization): New.
29850 (simple_diagnostic_path::m_localize_events): New field.
29852 (simple_diagnostic_path::simple_diagnostic_path): Initialize
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):
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
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>):
29925 2024-05-28 Xi Ruoyao <xry111@xry111.site>
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
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
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>
29988 * config/vax/vax.opt (md, md-float, mg, mg-float): Correct
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>
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
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
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
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
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.
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
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):
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
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
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
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):
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):
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
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
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.
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.
30300 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
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
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
30379 (jt_fur_source::query_relation): Likewise.
30380 * gimple-range.cc (gimple_ranger::gimple_ranger): Adjust for
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
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>
30454 * config/s390/s390.cc (TARGET_NOCE_CONVERSION_PROFITABLE_P):
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
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>
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>
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>
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>
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>
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>
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
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
30753 * config/i386/i386-expand.cc (ix86_expand_builtin): Remove Xeon Phi
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.
30760 (isa2_opts): Remove Xeon Phi ISAs.
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
30767 * config/i386/i386.cc (ix86_hard_regno_mode_ok): Remove Xeon Phi
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
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>):
30792 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Ditto.
30793 (<mask_codefor>avx512er_rsqrt28<mode><mask_name><round_saeonly_name>):
30795 (avx512er_vmrsqrt28<mode><mask_name><round_saeonly_name>): 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>
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
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
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>
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
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
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
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
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
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
31006 (diagnostic_source_printing_options::show_event_links_p): New
31008 (diagnostic_context::maybe_show_locus): Add optional "effect_info"
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
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
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>
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>
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
31166 (dump_points_to_solution): Dump the const_pool flag, fix guard
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
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>
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>
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
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>
31216 2024-05-10 Aldy Hernandez <aldyh@redhat.com>
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
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
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):
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>
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>
31359 * config/i386/i386-expand.cc
31360 (ix86_expand_vec_shift_qihi_constant): Optimize ashift >> 7 to
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
31377 * config/riscv/riscv-string.cc (GEN_EMIT_HELPER2): New helper
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>
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
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
31410 (statement_sink_location): Remove superfluous check. Remove
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
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>
31466 * config/i386/i386-expand.cc (expand_vec_perm_psrlw_psllw_por): New
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
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
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>
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>
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>
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>
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
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>
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>
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
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>
31806 * target.def (use_atexit_for_cxa_atexit): Remove spurious space
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
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
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
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>
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
31861 2024-05-10 Aldy Hernandez <aldyh@redhat.com>
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
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
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>
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
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>
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
31973 2024-05-08 Christoph Müllner <christoph.muellner@vrull.eu>
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>
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
32004 2024-05-08 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
32006 * tree-ssa-loop-prefetch.cc (determine_unroll_factor): Honour
32009 2024-05-08 Georg-Johann Lay <avr@gjlay.de>
32012 * config/avr/avr.md: Add combine pattern for
32013 8-bit parity detection.
32015 2024-05-08 Georg-Johann Lay <avr@gjlay.de>
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
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
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>
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
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
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
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
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):
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):
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>
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
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
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.
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.
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
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>
32381 2024-04-10 Richard Biener <rguenther@suse.de>
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
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>
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>
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
32423 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu>
32425 * config/pru/pru-passes.cc (class pass_pru_minrt_check): New
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
32431 * config/pru/pru-protos.h (make_pru_minrt_check): Add
32434 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu>
32436 * config/pru/pru-passes.cc (class pass_tiabi_check): Rename to
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
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.
32455 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu>
32457 * config/pru/pru-passes.cc: Drop ATTRIBUTE_UNUSED and remove
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
32496 2024-05-07 Dimitar Dimitrov <dimitar@dinux.eu>
32498 * config/pru/pru.cc (pru_address_cost): Implement address cost
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>
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
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
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>
32568 * stor-layout.cc (place_union_field): Use zero sizes for flexible array
32571 2024-05-06 Qing Zhao <qing.zhao@oracle.com>
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>
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
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>
32606 * expmed.cc(store_bit_field_using_insv): TRUNCATE value1 if
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.
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>
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
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
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
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>
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>
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>
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
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>
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
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
32991 2024-05-01 Gerald Pfeifer <gerald@pfeifer.com>
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>
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
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
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
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.
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>
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>
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
33196 2024-04-28 Aldy Hernandez <aldyh@redhat.com>
33198 * tree-ssa-ccp.cc (ccp_finalize): Normalize before calling
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
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
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
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
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>
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>
33403 * config/s390/s390-c.cc (s390_macro_to_expand): Avoid empty identifier.
33405 2024-04-28 Andrew Pinski <quic_apinski@quicinc.com>
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>
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):
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>
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
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>
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>
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
33520 (bcdinvalid_<mode>): Likewise.
33522 2024-04-24 Jakub Jelinek <jakub@redhat.com>
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>
33537 2023-11-29 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33538 kito-cheng <kito.cheng@sifive.com>
33539 kito-cheng <kito.cheng@gmail.com>
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.
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
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>
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>
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>
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
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>
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.
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>
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>
33703 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33706 * config/riscv/vector.md: Add widenning overlap.
33708 2024-04-22 Pan Li <pan2.li@intel.com>
33711 2023-12-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33714 * config/riscv/vector.md: Support highpart overlap for indexed load.
33716 2024-04-22 Pan Li <pan2.li@intel.com>
33719 2023-12-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33722 * config/riscv/vector.md: Add highest-number overlap support.
33724 2024-04-22 Pan Li <pan2.li@intel.com>
33727 2023-11-30 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33730 * config/riscv/vector.md: Add widening overlap of vf2/vf4.
33732 2024-04-21 Pan Li <pan2.li@intel.com>
33735 2023-12-01 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33738 * config/riscv/vector.md: Support highpart overlap for vx/vf.
33740 2024-04-20 Pan Li <pan2.li@intel.com>
33743 2023-12-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33746 * config/riscv/vector.md: Fix incorrect overlap in v0.
33748 2024-04-20 Pan Li <pan2.li@intel.com>
33751 2023-12-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
33754 * config/riscv/vector.md: Support highest overlap for wv instructions.
33756 2024-04-20 Pan Li <pan2.li@intel.com>
33759 2023-12-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
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>
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
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
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>
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>
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>
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>
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
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>
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
33952 2024-04-15 H.J. Lu <hjl.tools@gmail.com>
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>
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
33982 2024-04-12 Andrew Carlotti <andrew.carlotti@arm.com>
33984 * config/aarch64/aarch64-arches.def: Add CSSC to V8_9A
33987 2024-04-12 Will Schmidt <will_schmidt@linux.ibm.com>
33988 Peter Bergner <bergner@linux.ibm.com>
33991 * config/rs6000/rs6000-builtin.cc (rs6000_builtin_is_supported): Use
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>
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>
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.
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
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>
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
34149 2024-04-11 Indu Bhagat <indu.bhagat@oracle.com>
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>
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
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
34187 2024-04-10 Jakub Jelinek <jakub@redhat.com>
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>
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>
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
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
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
34237 (*aes<aeswideklvariant>u8): Likewise.
34238 (*encodekey128u32): Use "jr" instead of "r" for register
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>
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.
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>
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>
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>
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
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
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;
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;
34368 * vr-values.cc (get_scev_info): Fix duplicated words in comment;
34370 * tree-vrp.cc (fully_replaceable): Fix duplicated words in comment;
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;
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;
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
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
34416 * config/aarch64/t-aarch64-rtems: New file.
34418 2024-04-09 H.J. Lu <hjl.tools@gmail.com>
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>
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
34441 * config/i386/i386.md (@pushf<mode>2): Allow all CC modes for
34444 2024-04-08 Thomas Schwinge <tschwinge@baylibre.com>
34446 * config/gcn/gcn.opt (--param=gcn-preferred-vectorization-factor):
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>
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
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>
34487 * ipa-prop.h (class ipa_vr): Declare new overload of a member function
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>
34503 * config/aarch64/aarch64-sve-builtins-base.cc
34504 (svusdot_impl::expand): Fix botched attempt to swap the operands
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
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>
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
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
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
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>
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>
34621 * config/i386/i386.md (x86_64_shld): Use explicit shift count in
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>
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>
34654 * ipa-param-manipulation.cc (ipa_param_adjustments::modify_call):
34655 Force values obtined through pass-through maps to the expected
34658 2024-04-05 Mark Wielaard <mark@klomp.org>
34660 * common.opt.urls: Regenerate.
34662 2024-04-05 Richard Sandiford <richard.sandiford@arm.com>
34665 * config/aarch64/aarch64-sve.md (@aarch64_pred_cnot<mode>): Replace
34667 (@aarch64_ptrue_cnot<mode>): ...this, requiring operand 1 to be
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
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
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
34688 (symtab_node::check_ifunc_callee_symtab_nodes): Properly
34689 allocate ifunc_ref_map here.
34691 2024-04-04 Martin Jambor <mjambor@suse.cz>
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>
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.
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.
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>
34810 * config/aarch64/aarch64-sve-builtins.h (aarch64_sve::lookup_fndecl):
34812 * config/aarch64/aarch64-sve-builtins.cc (aarch64_sve::lookup_fndecl):
34814 * config/aarch64/aarch64-sve-builtins-base.cc (is_undef): Likewise.
34815 (svset_neonq_impl::expand): Optimise expansions whose first argument
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
34825 2024-04-04 Jakub Jelinek <jakub@redhat.com>
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>
34881 * config/gcn/mkoffload.cc (get_arch): New; moved -march= flag
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
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
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
34952 * config/loongarch/loongarch-driver.cc (la_driver_init): Add tls
34954 * config/loongarch/loongarch-opts.cc (loongarch_init_target): Add
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
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):
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
35027 2024-03-31 Jeff Law <jlaw@ventanamicro.com>
35029 * config/riscv/xiangshan.md (xiangshan_jump): Add branch, jalr, ret
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>
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
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)>
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
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
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>
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>
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
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):
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):
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
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
35282 (do_compare_and_jump): Remove now-redundant similar code.
35283 * internal-fn.cc (expand_fn_using_insn): Clear excess bits in vector
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
35295 2024-03-22 Andrew Pinski <quic_apinski@quicinc.com>
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>
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>
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
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>
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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
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
35588 2024-03-19 Vladimir N. Makarov <vmakarov@redhat.com>
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.
35609 (diagnostic_output_format::machine_readable_stderr_p): New pure
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>
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
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
35636 2024-03-19 Jakub Jelinek <jakub@redhat.com>
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>
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>
35654 * config/arm/arm-mve-builtins.cc
35655 (function_instance::reads_global_state_p): Take CP_READ_MEMORY
35658 2024-03-19 Jakub Jelinek <jakub@redhat.com>
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>
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
35678 * tree-vect-stmts.cc (vectorizable_load): Reject masked
35679 VMAT_ELEMENTWISE and VMAT_STRIDED_SLP as those are not
35682 2024-03-19 Mary Bennett <mary.bennett@embecosm.com>
35684 * common/config/riscv/riscv-common.cc: Create XCVbi extension
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
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>
35713 * selftest.h (ASSERT_NE_AT): New macro.
35715 2024-03-18 Uros Bizjak <ubizjak@gmail.com>
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
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
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>
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
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>
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,
35826 * edit-context.cc (class line_event): Fix comment typo,
35827 betweeen -> between.
35829 2024-03-15 Jakub Jelinek <jakub@redhat.com>
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
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
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_*
35881 2024-03-14 John David Anglin <danglin@gcc.gnu.org>
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
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>
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
35969 * config/s390/s390-builtins.def: Streamline vector builtins with
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>
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):
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>
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
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>
36141 * doc/install.texi: Document need for python when building
36144 2024-03-10 jlaw <jeffreyalaw@gmail.com>
36147 * mode-switching.cc (optimize_mode_switching): Only process
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>
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
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,
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>
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>
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>:
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>
36231 * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
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>
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>
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
36254 2024-03-07 Wilco Dijkstra <wilco.dijkstra@arm.com>
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>
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
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
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>
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>
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
36346 (costs::add_stmt_cost): Also adjust cost for statements without
36348 * config/riscv/riscv-vector-costs.h: Define zero constant.
36350 2024-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
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
36358 2024-03-06 Jeff Law <jlaw@ventanamicro.com>
36362 * config/riscv/riscv.cc (expand_conditional_move): Do not swap
36363 operands when the comparison operand is the same as the false
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
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
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>
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>
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
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>
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>
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
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
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>
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
36833 2024-03-04 Roger Sayle <roger@nextmovesoftware.com>
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
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>
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>
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>
36878 * config/avr/avr.md (define_attr "cc"): Remove.
36879 * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
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
36893 2024-03-03 Oleg Endo <olegendo@gcc.gnu.org>
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>
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>
36919 * tree-inline.cc (remap_decl): Handle copy_decl returning the
36921 (remap_decls): Handle remap_decl returning the original decl.
36922 (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
36925 2024-03-01 Jeff Law <jlaw@ventanamicro.com>
36927 * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
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>
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>
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>
36968 * dwarf2out.cc (should_move_die_to_comdat): Return false for
36969 aggregates without DW_AT_byte_size attribute or with non-constant
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>
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
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
37024 2024-02-29 David Malcolm <dmalcolm@redhat.com>
37027 * function.cc (function_name): Make param const.
37028 * function.h (function_name): Likewise.
37030 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
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>
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>
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
37079 (loongarch_<crc>_w_<size>_w): ... here.
37081 2024-02-29 Kito Cheng <kito.cheng@sifive.com>
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>
37102 * config/bpf/bpf.cc (bpf_function_prologue): Define target
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
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
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
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
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>
37197 * config/i386/mmx.md (V248FI): Add V2BF mode.
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):
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
37276 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
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
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
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>
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>
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
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
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
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>
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>
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
37395 (early_ra::finalize_allocation): Update recency information for
37396 allocated registers.
37397 (early_ra::process_blocks): Initialize m_current_region and
37400 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
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>
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>
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>
37456 * config.gcc: Add ia64*-*-* to the list of obsoleted targets.
37458 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
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
37475 2024-02-22 Jakub Jelinek <jakub@redhat.com>
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
37500 2024-02-22 Jakub Jelinek <jakub@redhat.com>
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
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
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>
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
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
37553 * config/rs6000/rs6000.opt: Make option power{8,9}-vector as
37555 * doc/extend.texi: Remove documentation referring to option
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>
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>
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
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
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):
37719 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
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>
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
37756 * config/avr/avr.cc (avr_init_builtins): Adjust types required
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
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>
37772 * config/aarch64/aarch64-passes.def (pass_late_track_speculation):
37774 * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
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
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
37799 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
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>
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>
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
37909 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
37912 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
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>
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>
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
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>
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
38004 2024-02-15 Richard Biener <rguenther@suse.de>
38006 * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
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>
38020 * config/i386/mmx.md (V248FI): New mode iterator.
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>
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>
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
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
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>
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
38150 * configure: Regenerate.
38152 2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
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
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>
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
38192 2024-02-10 Marek Polacek <polacek@redhat.com>
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.
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
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
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
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
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
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>
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
38323 (jM): New memory constraint for APX NDD instructions.
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>
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>
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>
38391 * config/i386/i386-features.cc (timode_convert_cst): New helper
38392 function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
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
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
38438 * gimple-iterator.h (gsi_move_before): Default new param to
38440 * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
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>
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>
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>
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>
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
38527 2024-02-05 H.J. Lu <hjl.tools@gmail.com>
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
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
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
38571 2024-02-05 Jakub Jelinek <jakub@redhat.com>
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
38578 2024-02-05 Richard Biener <rguenther@suse.de>
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,
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):
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
38618 2024-02-04 Xi Ruoyao <xry111@xry111.site>
38620 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
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
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
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>
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
38691 (get_fpsr, put_fpsr): New expanders.
38692 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
38695 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
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
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>
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"
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>
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
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
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):
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
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>
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>
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>
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>
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>
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>
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
39048 * builtins.cc (expand_builtin): Include HWASAN when checking for
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>
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
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>
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>
39109 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
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>
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>
39134 * config/i386/constraints.md: Define constraint "Ws".
39135 * doc/md.texi: Document it.
39137 2024-01-30 Marek Polacek <polacek@redhat.com>
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
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
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
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>
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>
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>
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
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):
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>
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>
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>
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>
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>
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>
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,
39316 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
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>
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>
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>
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>
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>
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
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>
39500 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
39502 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
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>
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>
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>
39523 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
39525 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
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>
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>
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>
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>
39588 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
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>
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,
39670 (copy_body): Release SSAs in id->killed_new_ssa_names.
39672 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
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>
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>
39697 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
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>
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
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
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
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>
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>
39771 * ccmp.cc (ccmp_candidate_p): Add outer argument.
39772 Allow if the outer is true and the lhs is used more
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>
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>
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>
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>
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>
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>
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>
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>
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
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>
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>
39880 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
39881 Don't assert recog success, just punt if the writeback pair
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>
39892 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
39893 handle unexpected but bogus DIE contexts when not checking
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>
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>
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>
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>
39958 * config/riscv/riscv.md: Use reg instead of subreg.
39960 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
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>
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>
39995 * calls.cc (emit_library_call_value_1): Pass valid TYPE
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>
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>
40032 * doc/invoke.texi (Warning Options): Fix broken example and
40033 clean up/reorganize the others. Also describe what the short-form
40036 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
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
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>
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>
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
40087 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
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>
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
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
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
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):
40175 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
40177 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
40180 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
40182 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
40185 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
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>
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>
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>
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
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
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):
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
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
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):
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>
40379 * config/darwin.cc (machopic_select_section): Handle C and C++
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
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
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
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.
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>
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
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>
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
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
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>
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
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>
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
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
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
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
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
40626 (omp_extract_for_data): Use build_bitint_type rather than
40627 build_nonstandard_integer_type if either iter_type or loop->v 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>
40650 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
40651 from C++ Language Options to Warning Options. Add entry for
40653 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
40655 (Warning Options): ...to here. Minor copy-editing to fix typo
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>
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>
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
40723 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
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
40767 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
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>
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>
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>
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>
40819 * config/riscv/vector.md: Fix ternary attributes.
40821 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
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):
40834 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
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
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
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
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
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>
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):
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>
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
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>
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>
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
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
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>
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>
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>
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):
41275 2024-01-12 Li Wei <liwei@loongson.cn>
41277 * config/loongarch/loongarch.md (add<mode>3): Removed.
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
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
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>
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>
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>
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>
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
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.
41588 * config/riscv/vector.md: Add VLS modes.
41590 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
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
41601 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
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,
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
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
41685 2024-01-09 Jakub Jelinek <jakub@redhat.com>
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
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
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>
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
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.
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>
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'
41899 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
41900 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
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>
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>
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>
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>
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=):
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>
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):
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):
42075 * config/microblaze/microblaze.cc (microblaze_function_prologue):
42077 * config/mips/mips.cc (mips_start_unique_function): Return the
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):
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):
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>
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.
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.
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
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
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
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
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
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.
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
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
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>
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
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>
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>
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>
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.