1 2024-03-10 jlaw <jeffreyalaw@gmail.com>
3 PR tree-optimization/110199
4 * tree-ssa-scopedtables.cc
5 (avail_exprs_stack::simplify_binary_operation): Generalize handling
6 of MIN_EXPR/MAX_EXPR to allow additional simplifications. Canonicalize
7 comparison operands for other cases.
9 2024-03-10 Pan Li <pan2.li@intel.com>
11 * tree-vect-stmts.cc (vectorizable_store): Enable the assert
12 during transform process.
13 (vectorizable_load): Ditto.
15 2024-03-10 jlaw <jeffreyalaw@gmail.com>
18 * doc/install.texi: Document need for python when building
21 2024-03-10 jlaw <jeffreyalaw@gmail.com>
24 * mode-switching.cc (optimize_mode_switching): Only process
27 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
29 * config/avr/avr.md: Fix typos in comment, indentation glitches
32 2024-03-09 Jakub Jelinek <jakub@redhat.com>
35 * fwprop.cc (try_fwprop_subst_pattern): Don't propagate
36 src containing MEMs unless prop.likely_profitable_p ().
38 2024-03-09 Xi Ruoyao <xry111@xry111.site>
40 * config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
41 Support 'Q' for R_LARCH_RELAX for TLS IE.
42 (loongarch_output_move): Use 'Q' to print R_LARCH_RELAX for TLS
44 * config/loongarch/loongarch.md (ld_from_got<mode>): Likewise.
46 2024-03-09 Georg-Johann Lay <avr@gjlay.de>
48 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Determine cost for
49 usum_widenqihi and add_zero_extend1.
50 [MINUS]: Determine costs for udiff_widenqihi, sub+zero_extend,
52 * config/avr/avr.md (*addhi3.sign_extend1, *subhi3.sign_extend2):
53 Compute exact insn lengths.
54 (*usum_widenqihi3): Allow input operands to commute.
56 2024-03-09 Jakub Jelinek <jakub@redhat.com>
58 * config/i386/i386.opt.urls: Regenerate.
60 2024-03-09 Lulu Cheng <chenglulu@loongson.cn>
62 * config/loongarch/sync.md (atomic_cas_value_strong<mode>):
63 In loongarch64, a sign extension operation is added when
64 operands[2] is a register operand and the mode is SImode.
66 2024-03-08 Martin Jambor <mjambor@suse.cz>
69 * tree-inline.cc (redirect_all_calls): Remove code adding SSAs to
70 id->killed_new_ssa_names.
72 2024-03-08 Vladimir N. Makarov <vmakarov@redhat.com>
75 * lra-assigns.cc (assign_by_spills): Set up all_spilled_pseudos
76 for non-reload pseudo too.
78 2024-03-08 David Faust <david.faust@oracle.com>
80 * config/bpf/bpf.cc (bpf_expand_cpymem, bpf_expand_setmem): Do
81 not attempt inline expansion if size is above threshold.
82 * config/bpf/bpf.opt (-minline-memops-threshold): New option.
83 * doc/invoke.texi (eBPF Options) <-minline-memops-threshold>:
86 2024-03-08 Richard Biener <rguenther@suse.de>
88 PR tree-optimization/114269
89 PR tree-optimization/114074
90 * tree-chrec.cc (chrec_fold_plus_1): Handle sign-conversions
91 in the third CASE_CONVERT case as well.
92 (chrec_fold_multiply): Handle sign-conversions from unsigned
93 by performing the operation in the unsigned type.
95 2024-03-08 Georg-Johann Lay <avr@gjlay.de>
97 * config/avr/avr.md (*addhi3_zero_extend.ashift1): New pattern.
98 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS]: Compute its cost.
100 2024-03-08 Jakub Jelinek <jakub@redhat.com>
102 * bb-reorder.cc (fix_up_fall_thru_edges): Fix up checking assert,
103 asm_noperands < 0 means it is not asm goto too.
105 2024-03-08 Jakub Jelinek <jakub@redhat.com>
108 * config/i386/i386.opt (mnoreturn-no-callee-saved-registers): New
110 * config/i386/i386-options.cc (ix86_set_func_type): Don't use
111 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP unless
112 ix86_noreturn_no_callee_saved_registers is enabled.
113 * doc/invoke.texi (-mnoreturn-no-callee-saved-registers): Document.
115 2024-03-08 Jakub Jelinek <jakub@redhat.com>
118 * dwarf2out.cc (gen_field_die): Emit DW_AT_export_symbols
119 on anonymous unions or structs for -gdwarf-5 or -gno-strict-dwarf.
121 2024-03-08 demin.han <demin.han@starfivetech.com>
124 * config/riscv/riscv-vector-costs.cc: Fix ICE
126 2024-03-08 Haochen Gui <guihaoc@gcc.gnu.org>
128 * fwprop.cc (forward_propagate_into): Return false for volatile set
131 2024-03-07 Wilco Dijkstra <wilco.dijkstra@arm.com>
134 * config/aarch64/aarch64.cc (aarch64_copy_one_block): Remove.
135 (aarch64_expand_cpymem): Emit single load/store only.
136 (aarch64_set_one_block): Emit single stores only.
138 2024-03-07 Robin Dapp <rdapp@ventanamicro.com>
141 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p): Merge
142 vectorization guards.
144 2024-03-07 Jonathan Wakely <jwakely@redhat.com>
146 * doc/cppopts.texi: Remove incorrect claim about -dD not
147 outputting predefined macros.
149 2024-03-07 Jeevitha Palanisamy <jeevitha@linux.ibm.com>
152 * config/rs6000/vsx.md (vsx_splat_<mode>): Correct assignment to operand1
153 and simplify else if with else.
155 2024-03-07 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
157 * system.h: Include safe-ctype.h after C++ standard headers.
159 2024-03-07 Jakub Jelinek <jakub@redhat.com>
161 PR rtl-optimization/110079
162 * bb-reorder.cc (fix_crossing_unconditional_branches): Don't adjust
165 2024-03-07 Jakub Jelinek <jakub@redhat.com>
168 * expmed.cc (choose_mult_variant): Only try the val - 1 variant
169 if val is not HOST_WIDE_INT_MIN or if mode has exactly
170 HOST_BITS_PER_WIDE_INT precision. Avoid triggering UB while computing
173 2024-03-07 Jakub Jelinek <jakub@redhat.com>
176 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference) <case ARRAY_REF>:
177 Multiple op->off by BITS_PER_UNIT instead of shifting it left by
180 2024-03-07 Yang Yujie <yangyujie@loongson.cn>
182 * config.gcc: Add a case for loongarch*-*-linux-musl*.
183 * config/loongarch/linux.h: Disable the multilib-compatible
184 treatment for *musl* targets.
185 * config/loongarch/musl.h: New file.
187 2024-03-07 Jakub Jelinek <jakub@redhat.com>
189 PR tree-optimization/114009
190 * genmatch.cc (decision_tree::gen): Emit ARG_UNUSED for captures
191 argument even for GENERIC, not just for GIMPLE.
192 * match.pd (a * !a -> 0): New simplifications.
194 2024-03-07 demin.han <demin.han@starfivetech.com>
196 * config/riscv/riscv-protos.h (expand_vec_cmp): Change proto
197 * config/riscv/riscv-v.cc (expand_vec_cmp): Use default arguments
198 (expand_vec_cmp_float): Adapt arguments
200 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
203 * config/i386/mmx.md (negv2qi2): Enable for optimize_size instead
204 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
205 (negv2qi SSE reg splitter): Enable for TARGET_SSE2 only.
206 (<plusminus:insn>v2qi3): Enable for optimize_size instead
207 of optimize_function_for_size_p. Explictily enable for TARGET_SSE2.
208 (<plusminus:insn>v2qi SSE reg splitter): Enable for TARGET_SSE2 only.
209 (<any_shift:insn>v2qi3): Enable for optimize_size instead
210 of optimize_function_for_size_p.
212 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
216 * config/riscv/vector.md: Use vmv[1248]r.v instead of vmv.v.v.
218 2024-03-06 Robin Dapp <rdapp@ventanamicro.com>
220 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Move...
221 (costs::adjust_stmt_cost): ... to here and add vec_load/vec_store
223 (costs::add_stmt_cost): Also adjust cost for statements without
225 * config/riscv/riscv-vector-costs.h: Define zero constant.
227 2024-03-06 Wilco Dijkstra <wilco.dijkstra@arm.com>
230 * config/arm/arm.md (NOCOND): Improve comment.
231 (arm_rev*) Add predicable.
232 * config/arm/arm.cc (arm_final_prescan_insn): Add check for
235 2024-03-06 Jeff Law <jlaw@ventanamicro.com>
239 * config/riscv/riscv.cc (expand_conditional_move): Do not swap
240 operands when the comparison operand is the same as the false
243 2024-03-06 Uros Bizjak <ubizjak@gmail.com>
245 * config/i386/i386-expand.cc (ix86_expand_move) [TARGET_MACHO]:
246 Eliminate common code and use generic code instead.
248 2024-03-06 Georg-Johann Lay <avr@gjlay.de>
250 * config/avr/avr.cc (avr_rtx_costs_1) [PLUS+ZERO_EXTEND]: Adjust
253 2024-03-06 Richard Biener <rguenther@suse.de>
255 PR tree-optimization/114239
256 * tree-vect-loop.cc (vect_get_vect_def): Remove.
257 (vect_create_epilog_for_reduction): The passed in stmt_info
258 should now be the live stmt that produces the scalar reduction
259 result. Revert PR114192 fix. Base reduction info off
260 info_for_reduction. Remove special handling of
261 early-break/peeled, restore original vector def gathering.
262 Make sure to pick the correct exit PHIs.
263 (vectorizable_live_operation): Pass in the proper stmt_info
264 for early break exits.
266 2024-03-06 Richard Sandiford <richard.sandiford@arm.com>
268 * config/aarch64/aarch64-feature-deps.h (feature_deps::info): Add
269 out-of-class definitions of static constants.
271 2024-03-06 Richard Biener <rguenther@suse.de>
273 PR tree-optimization/114249
274 * tree-vect-slp.cc (vect_build_slp_instance): Move making
275 a BB reduction lane number even ...
276 (vect_slp_check_for_roots): ... here to avoid leaking
279 2024-03-06 Richard Biener <rguenther@suse.de>
281 PR tree-optimization/114246
282 * tree-ssa-dse.cc (increment_start_addr): Strip useless
283 type conversions from the adjusted address.
285 2024-03-06 Jakub Jelinek <jakub@redhat.com>
287 PR rtl-optimization/114190
288 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
289 Call df_remove_problem for df_note before calling df_analyze.
291 2024-03-05 Cupertino Miranda <cupertino.miranda@oracle.com>
292 Indu Bhagat <indu.bhagat@oracle.com>
295 * dwarf2ctf.cc (gen_ctf_array_type): Invoke the ctf_add_array ()
296 in the correct order of the dimensions.
297 (gen_ctf_subrange_type): Refactor out handling of
298 DW_TAG_subrange_type DIE to here.
300 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
303 * asan.cc (asan_expand_mark_ifn): Allow the length to be a poly_int.
305 2024-03-05 Richard Sandiford <richard.sandiford@arm.com>
307 * config/aarch64/aarch64.md (stride_type): Remove luti_consecutive
309 * config/aarch64/aarch64-sme.md
310 (@aarch64_sme_lut<LUTI_BITS><mode>): Remove stride_type attribute.
311 (@aarch64_sme_lut<LUTI_BITS><mode>_strided2): Delete.
312 (@aarch64_sme_lut<LUTI_BITS><mode>_strided4): Likewise.
313 * config/aarch64/aarch64-early-ra.cc (is_stride_candidate)
314 (early_ra::maybe_convert_to_strided_access): Remove support for
315 strided LUTI2 and LUTI4.
317 2024-03-05 Richard Earnshaw <rearnsha@arm.com>
320 * config/arm/thumb1.md (peephole2 to fuse mov imm/add SP): Use
321 low_register_operand.
323 2024-03-05 Georg-Johann Lay <avr@gjlay.de>
325 * config/avr/avr.md: Add two RTL peepholes for PLUS, IOR and AND
326 in HI, PSI, SI that swap operation order from "X = CST, X o= Y"
327 to "X = Y, X o= CST".
329 2024-03-05 Xi Ruoyao <xry111@xry111.site>
331 * config/loongarch/loongarch.h (ADDITIONAL_REGISTER_NAMES): Add
332 s9 as an alias of r22.
334 2024-03-05 Roger Sayle <roger@nextmovesoftware.com>
336 * config/avr/avr-protos.h (avr_out_insv): New proto.
337 * config/avr/avr.cc (avr_out_insv): New function.
338 (avr_adjust_insn_length) [ADJUST_LEN_INSV]: Handle case.
339 (avr_cbranch_cost) [ZERO_EXTRACT]: Adjust rtx costs.
340 * config/avr/avr.md (define_attr "adjust_len") Add insv.
341 (andhi3, *andhi3, andpsi3, *andpsi3, andsi3, *andsi3):
342 Add constraint alternative where the 3rd operand is a power
343 of 2, and the source register may differ from the destination.
344 (*insv.any_shift.<mode>_split): Call avr_out_insv to output
345 instructions. Set attr "length" to "insv".
346 * config/avr/constraints.md (Cb2, Cb3, Cb4): New constraints.
348 2024-03-05 Richard Biener <rguenther@suse.de>
350 PR tree-optimization/114231
351 * tree-vect-slp.cc (vect_analyze_slp): Lookup patterns when
352 processing a BB SLP root.
354 2024-03-05 Jakub Jelinek <jakub@redhat.com>
356 PR rtl-optimization/114211
357 * lower-subreg.cc (resolve_simple_move): For double-word
358 rotates by BITS_PER_WORD if there is overlap between source
359 and destination use a temporary.
361 2024-03-05 Jakub Jelinek <jakub@redhat.com>
364 * gimple-lower-bitint.cc: Include stor-layout.h.
365 (mergeable_op): Return true for BIT_FIELD_REF.
366 (struct bitint_large_huge): Declare handle_bit_field_ref method.
367 (bitint_large_huge::handle_bit_field_ref): New method.
368 (bitint_large_huge::handle_stmt): Use it for BIT_FIELD_REF.
370 2024-03-05 Jakub Jelinek <jakub@redhat.com>
373 * config/i386/i386.h (enum call_saved_registers_type): Add
374 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP enumerator.
375 * config/i386/i386-options.cc (ix86_set_func_type): Remove
376 has_no_callee_saved_registers variable, add no_callee_saved_registers
377 instead, initialize it depending on whether it is
378 no_callee_saved_registers function or not. Don't set it if
379 no_caller_saved_registers attribute is present. Adjust users.
380 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Handle
381 TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP like
382 TYPE_NO_CALLEE_SAVED_REGISTERS.
383 (ix86_save_reg): Handle TYPE_NO_CALLEE_SAVED_REGISTERS_EXCEPT_BP.
385 2024-03-05 Pan Li <pan2.li@intel.com>
387 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): Cleanup unused
388 mode_size related code.
390 2024-03-05 Patrick Palka <ppalka@redhat.com>
392 * doc/invoke.texi (-Wno-global-module): Document.
394 2024-03-04 David Faust <david.faust@oracle.com>
396 * config/bpf/bpf-protos.h (bpf_expand_setmem): New prototype.
397 * config/bpf/bpf.cc (bpf_expand_setmem): New.
398 * config/bpf/bpf.md (setmemdi): New define_expand.
400 2024-03-04 Jakub Jelinek <jakub@redhat.com>
402 PR rtl-optimization/113010
403 * combine.cc (simplify_comparison): Guard the
404 WORD_REGISTER_OPERATIONS check on scalar_int_mode of SUBREG_REG
405 and initialize inner_mode.
407 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
409 * config/arm/iterators.md (supf): Remove VMLALDAVXQ_U, VMLALDAVXQ_P_U,
411 (VMLALDAVXQ): Remove iterator.
412 (VMLALDAVXQ_P): Likewise.
413 (VMLALDAVAXQ): Likewise.
414 * config/arm/mve.md (mve_vstrwq_p_fv4sf): Replace use of <MVE_VPRED>
415 mode iterator attribute with V4BI mode.
416 * config/arm/unspecs.md (VMLALDAVXQ_U, VMLALDAVXQ_P_U,
417 VMLALDAVAXQ_U): Remove unused unspecs.
419 2024-03-04 Andre Vieira <andre.simoesdiasvieira@arm.com>
421 * config/arm/arm.md (mve_safe_imp_xlane_pred): New attribute.
422 * config/arm/iterators.md (mve_vmaxmin_safe_imp): New iterator
424 * config/arm/mve.md (vaddvq_s, vaddvq_u, vaddlvq_s, vaddlvq_u,
425 vaddvaq_s, vaddvaq_u, vmaxavq_s, vmaxvq_u, vmladavq_s, vmladavq_u,
426 vmladavxq_s, vmlsdavq_s, vmlsdavxq_s, vaddlvaq_s, vaddlvaq_u,
427 vmlaldavq_u, vmlaldavq_s, vmlaldavq_u, vmlaldavxq_s, vmlsldavq_s,
428 vmlsldavxq_s, vrmlaldavhq_u, vrmlaldavhq_s, vrmlaldavhxq_s,
429 vrmlsldavhq_s, vrmlsldavhxq_s, vrmlaldavhaq_s, vrmlaldavhaq_u,
430 vrmlaldavhaxq_s, vrmlsldavhaq_s, vrmlsldavhaxq_s, vabavq_s, vabavq_u,
431 vmladavaq_u, vmladavaq_s, vmladavaxq_s, vmlsdavaq_s, vmlsdavaxq_s,
432 vmlaldavaq_s, vmlaldavaq_u, vmlaldavaxq_s, vmlsldavaq_s,
433 vmlsldavaxq_s): Added mve_safe_imp_xlane_pred.
435 2024-03-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
437 * config/arm/arm.md (mve_unpredicated_insn): New attribute.
438 * config/arm/arm.h (MVE_VPT_PREDICATED_INSN_P): New define.
439 (MVE_VPT_UNPREDICATED_INSN_P): Likewise.
440 (MVE_VPT_PREDICABLE_INSN_P): Likewise.
441 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Add attribute.
442 * config/arm/mve.md (arm_vcx1q<a>_p_v16qi): Add attribute.
443 (arm_vcx1q<a>v16qi): Likewise.
444 (arm_vcx1qav16qi): Likewise.
445 (arm_vcx1qv16qi): Likewise.
446 (arm_vcx2q<a>_p_v16qi): Likewise.
447 (arm_vcx2q<a>v16qi): Likewise.
448 (arm_vcx2qav16qi): Likewise.
449 (arm_vcx2qv16qi): Likewise.
450 (arm_vcx3q<a>_p_v16qi): Likewise.
451 (arm_vcx3q<a>v16qi): Likewise.
452 (arm_vcx3qav16qi): Likewise.
453 (arm_vcx3qv16qi): Likewise.
454 (@mve_<mve_insn>q_<supf><mode>): Likewise.
455 (@mve_<mve_insn>q_int_<supf><mode>): Likewise.
456 (@mve_<mve_insn>q_<supf>v4si): Likewise.
457 (@mve_<mve_insn>q_n_<supf><mode>): Likewise.
458 (@mve_<mve_insn>q_r_<supf><mode>): Likewise.
459 (@mve_<mve_insn>q_f<mode>): Likewise.
460 (@mve_<mve_insn>q_m_<supf><mode>): Likewise.
461 (@mve_<mve_insn>q_m_n_<supf><mode>): Likewise.
462 (@mve_<mve_insn>q_m_r_<supf><mode>): Likewise.
463 (@mve_<mve_insn>q_m_f<mode>): Likewise.
464 (@mve_<mve_insn>q_int_m_<supf><mode>): Likewise.
465 (@mve_<mve_insn>q_p_<supf>v4si): Likewise.
466 (@mve_<mve_insn>q_p_<supf><mode>): Likewise.
467 (@mve_<mve_insn>q<mve_rot>_<supf><mode>): Likewise.
468 (@mve_<mve_insn>q<mve_rot>_f<mode>): Likewise.
469 (@mve_<mve_insn>q<mve_rot>_m_<supf><mode>): Likewise.
470 (@mve_<mve_insn>q<mve_rot>_m_f<mode>): Likewise.
471 (mve_v<absneg_str>q_f<mode>): Likewise.
472 (mve_<mve_addsubmul>q<mode>): Likewise.
473 (mve_<mve_addsubmul>q_f<mode>): Likewise.
474 (mve_vadciq_<supf>v4si): Likewise.
475 (mve_vadciq_m_<supf>v4si): Likewise.
476 (mve_vadcq_<supf>v4si): Likewise.
477 (mve_vadcq_m_<supf>v4si): Likewise.
478 (mve_vandq_<supf><mode>): Likewise.
479 (mve_vandq_f<mode>): Likewise.
480 (mve_vandq_m_<supf><mode>): Likewise.
481 (mve_vandq_m_f<mode>): Likewise.
482 (mve_vandq_s<mode>): Likewise.
483 (mve_vandq_u<mode>): Likewise.
484 (mve_vbicq_<supf><mode>): Likewise.
485 (mve_vbicq_f<mode>): Likewise.
486 (mve_vbicq_m_<supf><mode>): Likewise.
487 (mve_vbicq_m_f<mode>): Likewise.
488 (mve_vbicq_m_n_<supf><mode>): Likewise.
489 (mve_vbicq_n_<supf><mode>): Likewise.
490 (mve_vbicq_s<mode>): Likewise.
491 (mve_vbicq_u<mode>): Likewise.
492 (@mve_vclzq_s<mode>): Likewise.
493 (mve_vclzq_u<mode>): Likewise.
494 (@mve_vcmp_<mve_cmp_op>q_<mode>): Likewise.
495 (@mve_vcmp_<mve_cmp_op>q_n_<mode>): Likewise.
496 (@mve_vcmp_<mve_cmp_op>q_f<mode>): Likewise.
497 (@mve_vcmp_<mve_cmp_op>q_n_f<mode>): Likewise.
498 (@mve_vcmp_<mve_cmp_op1>q_m_f<mode>): Likewise.
499 (@mve_vcmp_<mve_cmp_op1>q_m_n_<supf><mode>): Likewise.
500 (@mve_vcmp_<mve_cmp_op1>q_m_<supf><mode>): Likewise.
501 (@mve_vcmp_<mve_cmp_op1>q_m_n_f<mode>): Likewise.
502 (mve_vctp<MVE_vctp>q<MVE_vpred>): Likewise.
503 (mve_vctp<MVE_vctp>q_m<MVE_vpred>): Likewise.
504 (mve_vcvtaq_<supf><mode>): Likewise.
505 (mve_vcvtaq_m_<supf><mode>): Likewise.
506 (mve_vcvtbq_f16_f32v8hf): Likewise.
507 (mve_vcvtbq_f32_f16v4sf): Likewise.
508 (mve_vcvtbq_m_f16_f32v8hf): Likewise.
509 (mve_vcvtbq_m_f32_f16v4sf): Likewise.
510 (mve_vcvtmq_<supf><mode>): Likewise.
511 (mve_vcvtmq_m_<supf><mode>): Likewise.
512 (mve_vcvtnq_<supf><mode>): Likewise.
513 (mve_vcvtnq_m_<supf><mode>): Likewise.
514 (mve_vcvtpq_<supf><mode>): Likewise.
515 (mve_vcvtpq_m_<supf><mode>): Likewise.
516 (mve_vcvtq_from_f_<supf><mode>): Likewise.
517 (mve_vcvtq_m_from_f_<supf><mode>): Likewise.
518 (mve_vcvtq_m_n_from_f_<supf><mode>): Likewise.
519 (mve_vcvtq_m_n_to_f_<supf><mode>): Likewise.
520 (mve_vcvtq_m_to_f_<supf><mode>): Likewise.
521 (mve_vcvtq_n_from_f_<supf><mode>): Likewise.
522 (mve_vcvtq_n_to_f_<supf><mode>): Likewise.
523 (mve_vcvtq_to_f_<supf><mode>): Likewise.
524 (mve_vcvttq_f16_f32v8hf): Likewise.
525 (mve_vcvttq_f32_f16v4sf): Likewise.
526 (mve_vcvttq_m_f16_f32v8hf): Likewise.
527 (mve_vcvttq_m_f32_f16v4sf): Likewise.
528 (mve_vdwdupq_m_wb_u<mode>_insn): Likewise.
529 (mve_vdwdupq_wb_u<mode>_insn): Likewise.
530 (mve_veorq_s><mode>): Likewise.
531 (mve_veorq_u><mode>): Likewise.
532 (mve_veorq_f<mode>): Likewise.
533 (mve_vidupq_m_wb_u<mode>_insn): Likewise.
534 (mve_vidupq_u<mode>_insn): Likewise.
535 (mve_viwdupq_m_wb_u<mode>_insn): Likewise.
536 (mve_viwdupq_wb_u<mode>_insn): Likewise.
537 (mve_vldrbq_<supf><mode>): Likewise.
538 (mve_vldrbq_gather_offset_<supf><mode>): Likewise.
539 (mve_vldrbq_gather_offset_z_<supf><mode>): Likewise.
540 (mve_vldrbq_z_<supf><mode>): Likewise.
541 (mve_vldrdq_gather_base_<supf>v2di): Likewise.
542 (mve_vldrdq_gather_base_wb_<supf>v2di_insn): Likewise.
543 (mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Likewise.
544 (mve_vldrdq_gather_base_z_<supf>v2di): Likewise.
545 (mve_vldrdq_gather_offset_<supf>v2di): Likewise.
546 (mve_vldrdq_gather_offset_z_<supf>v2di): Likewise.
547 (mve_vldrdq_gather_shifted_offset_<supf>v2di): Likewise.
548 (mve_vldrdq_gather_shifted_offset_z_<supf>v2di): Likewise.
549 (mve_vldrhq_<supf><mode>): Likewise.
550 (mve_vldrhq_fv8hf): Likewise.
551 (mve_vldrhq_gather_offset_<supf><mode>): Likewise.
552 (mve_vldrhq_gather_offset_fv8hf): Likewise.
553 (mve_vldrhq_gather_offset_z_<supf><mode>): Likewise.
554 (mve_vldrhq_gather_offset_z_fv8hf): Likewise.
555 (mve_vldrhq_gather_shifted_offset_<supf><mode>): Likewise.
556 (mve_vldrhq_gather_shifted_offset_fv8hf): Likewise.
557 (mve_vldrhq_gather_shifted_offset_z_<supf><mode>): Likewise.
558 (mve_vldrhq_gather_shifted_offset_z_fv8hf): Likewise.
559 (mve_vldrhq_z_<supf><mode>): Likewise.
560 (mve_vldrhq_z_fv8hf): Likewise.
561 (mve_vldrwq_<supf>v4si): Likewise.
562 (mve_vldrwq_fv4sf): Likewise.
563 (mve_vldrwq_gather_base_<supf>v4si): Likewise.
564 (mve_vldrwq_gather_base_fv4sf): Likewise.
565 (mve_vldrwq_gather_base_wb_<supf>v4si_insn): Likewise.
566 (mve_vldrwq_gather_base_wb_fv4sf_insn): Likewise.
567 (mve_vldrwq_gather_base_wb_z_<supf>v4si_insn): Likewise.
568 (mve_vldrwq_gather_base_wb_z_fv4sf_insn): Likewise.
569 (mve_vldrwq_gather_base_z_<supf>v4si): Likewise.
570 (mve_vldrwq_gather_base_z_fv4sf): Likewise.
571 (mve_vldrwq_gather_offset_<supf>v4si): Likewise.
572 (mve_vldrwq_gather_offset_fv4sf): Likewise.
573 (mve_vldrwq_gather_offset_z_<supf>v4si): Likewise.
574 (mve_vldrwq_gather_offset_z_fv4sf): Likewise.
575 (mve_vldrwq_gather_shifted_offset_<supf>v4si): Likewise.
576 (mve_vldrwq_gather_shifted_offset_fv4sf): Likewise.
577 (mve_vldrwq_gather_shifted_offset_z_<supf>v4si): Likewise.
578 (mve_vldrwq_gather_shifted_offset_z_fv4sf): Likewise.
579 (mve_vldrwq_z_<supf>v4si): Likewise.
580 (mve_vldrwq_z_fv4sf): Likewise.
581 (mve_vmvnq_s<mode>): Likewise.
582 (mve_vmvnq_u<mode>): Likewise.
583 (mve_vornq_<supf><mode>): Likewise.
584 (mve_vornq_f<mode>): Likewise.
585 (mve_vornq_m_<supf><mode>): Likewise.
586 (mve_vornq_m_f<mode>): Likewise.
587 (mve_vornq_s<mode>): Likewise.
588 (mve_vornq_u<mode>): Likewise.
589 (mve_vorrq_<supf><mode>): Likewise.
590 (mve_vorrq_f<mode>): Likewise.
591 (mve_vorrq_m_<supf><mode>): Likewise.
592 (mve_vorrq_m_f<mode>): Likewise.
593 (mve_vorrq_m_n_<supf><mode>): Likewise.
594 (mve_vorrq_n_<supf><mode>): Likewise.
595 (mve_vorrq_s<mode>): Likewise.
596 (mve_vorrq_s<mode>): Likewise.
597 (mve_vsbciq_<supf>v4si): Likewise.
598 (mve_vsbciq_m_<supf>v4si): Likewise.
599 (mve_vsbcq_<supf>v4si): Likewise.
600 (mve_vsbcq_m_<supf>v4si): Likewise.
601 (mve_vshlcq_<supf><mode>): Likewise.
602 (mve_vshlcq_m_<supf><mode>): Likewise.
603 (mve_vshrq_m_n_<supf><mode>): Likewise.
604 (mve_vshrq_n_<supf><mode>): Likewise.
605 (mve_vstrbq_<supf><mode>): Likewise.
606 (mve_vstrbq_p_<supf><mode>): Likewise.
607 (mve_vstrbq_scatter_offset_<supf><mode>_insn): Likewise.
608 (mve_vstrbq_scatter_offset_p_<supf><mode>_insn): Likewise.
609 (mve_vstrdq_scatter_base_<supf>v2di): Likewise.
610 (mve_vstrdq_scatter_base_p_<supf>v2di): Likewise.
611 (mve_vstrdq_scatter_base_wb_<supf>v2di): Likewise.
612 (mve_vstrdq_scatter_base_wb_p_<supf>v2di): Likewise.
613 (mve_vstrdq_scatter_offset_<supf>v2di_insn): Likewise.
614 (mve_vstrdq_scatter_offset_p_<supf>v2di_insn): Likewise.
615 (mve_vstrdq_scatter_shifted_offset_<supf>v2di_insn): Likewise.
616 (mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn): Likewise.
617 (mve_vstrhq_<supf><mode>): Likewise.
618 (mve_vstrhq_fv8hf): Likewise.
619 (mve_vstrhq_p_<supf><mode>): Likewise.
620 (mve_vstrhq_p_fv8hf): Likewise.
621 (mve_vstrhq_scatter_offset_<supf><mode>_insn): Likewise.
622 (mve_vstrhq_scatter_offset_fv8hf_insn): Likewise.
623 (mve_vstrhq_scatter_offset_p_<supf><mode>_insn): Likewise.
624 (mve_vstrhq_scatter_offset_p_fv8hf_insn): Likewise.
625 (mve_vstrhq_scatter_shifted_offset_<supf><mode>_insn): Likewise.
626 (mve_vstrhq_scatter_shifted_offset_fv8hf_insn): Likewise.
627 (mve_vstrhq_scatter_shifted_offset_p_<supf><mode>_insn): Likewise.
628 (mve_vstrhq_scatter_shifted_offset_p_fv8hf_insn): Likewise.
629 (mve_vstrwq_<supf>v4si): Likewise.
630 (mve_vstrwq_fv4sf): Likewise.
631 (mve_vstrwq_p_<supf>v4si): Likewise.
632 (mve_vstrwq_p_fv4sf): Likewise.
633 (mve_vstrwq_scatter_base_<supf>v4si): Likewise.
634 (mve_vstrwq_scatter_base_fv4sf): Likewise.
635 (mve_vstrwq_scatter_base_p_<supf>v4si): Likewise.
636 (mve_vstrwq_scatter_base_p_fv4sf): Likewise.
637 (mve_vstrwq_scatter_base_wb_<supf>v4si): Likewise.
638 (mve_vstrwq_scatter_base_wb_fv4sf): Likewise.
639 (mve_vstrwq_scatter_base_wb_p_<supf>v4si): Likewise.
640 (mve_vstrwq_scatter_base_wb_p_fv4sf): Likewise.
641 (mve_vstrwq_scatter_offset_<supf>v4si_insn): Likewise.
642 (mve_vstrwq_scatter_offset_fv4sf_insn): Likewise.
643 (mve_vstrwq_scatter_offset_p_<supf>v4si_insn): Likewise.
644 (mve_vstrwq_scatter_offset_p_fv4sf_insn): Likewise.
645 (mve_vstrwq_scatter_shifted_offset_<supf>v4si_insn): Likewise.
646 (mve_vstrwq_scatter_shifted_offset_fv4sf_insn): Likewise.
647 (mve_vstrwq_scatter_shifted_offset_p_<supf>v4si_insn): Likewise.
648 (mve_vstrwq_scatter_shifted_offset_p_fv4sf_insn): Likewise.
650 2024-03-04 Marek Polacek <polacek@redhat.com>
652 * doc/extend.texi: Update [[gnu::no_dangling]].
654 2024-03-04 Andrew Stubbs <ams@baylibre.com>
656 * dojump.cc (do_compare_and_jump): Use full-width integers for shifts.
657 * expr.cc (store_constructor): Likewise.
658 (do_store_flag): Likewise.
660 2024-03-04 Mark Wielaard <mark@klomp.org>
662 * common.opt.urls: Regenerate.
663 * config/avr/avr.opt.urls: Likewise.
664 * config/i386/i386.opt.urls: Likewise.
665 * config/pru/pru.opt.urls: Likewise.
666 * config/riscv/riscv.opt.urls: Likewise.
667 * config/rs6000/rs6000.opt.urls: Likewise.
669 2024-03-04 Richard Biener <rguenther@suse.de>
671 PR tree-optimization/114197
672 * tree-if-conv.cc (bitfields_to_lower_p): Do not lower if
673 there are volatile bitfield accesses.
674 (pass_if_conversion::execute): Throw away result if the
675 if-converted and original loops are not nested as expected.
677 2024-03-04 Richard Biener <rguenther@suse.de>
679 PR tree-optimization/114164
680 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Fail if
681 the code generated for mask argument setup is not supported.
683 2024-03-04 Richard Biener <rguenther@suse.de>
685 PR tree-optimization/114203
686 * tree-ssa-loop-niter.cc (build_cltz_expr): Apply CTZ->CLZ
687 adjustment before making the result defined at zero.
689 2024-03-04 Richard Biener <rguenther@suse.de>
691 PR tree-optimization/114192
692 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Use the
693 appropriate def for the live out stmt in case of an alternate
696 2024-03-04 Jakub Jelinek <jakub@redhat.com>
699 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Call
700 unshare_expr when creating a MEM_REF from MEM_REF.
701 (bitint_large_huge::lower_stmt): Call unshare_expr.
703 2024-03-04 Jakub Jelinek <jakub@redhat.com>
706 * config/i386/i386-expand.cc (ix86_expand_move): If XFmode op1
707 is SUBREG of CONSTANT_P, force the SUBREG_REG into memory or
710 2024-03-04 Roger Sayle <roger@nextmovesoftware.com>
713 * simplify-rtx.cc (simplify_context::simplify_subreg): Call
714 lowpart_subreg to perform type conversion, to avoid confusion
715 over the offset to use in the call to simplify_reg_subreg.
717 2024-03-03 Greg McGary <gkm@rivosinc.com>
719 PR rtl-optimization/113010
720 * combine.cc (simplify_comparison): Simplify a SUBREG on
721 WORD_REGISTER_OPERATIONS targets only if it is a zero-extending
724 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
726 * config/avr/avr.cc: Resolve ATTRIBUTE_UNUSED.
727 Use bool in place of int for boolean logic (if possible).
728 Move declarations to definitions (if possible).
729 * config/avr/avr.md: Use C++ comments. Fix some indentation glitches.
730 * config/avr/avr-dimode.md: Same.
731 * config/avr/constraints.md: Same.
732 * config/avr/predicates.md: Same.
734 2024-03-03 Uros Bizjak <ubizjak@gmail.com>
737 * config/alpha/alpha.md (umuldi3_highpart): Remove expander.
738 (*umuldi3_highpart_reg): Rename to umuldi3_highpart and
739 simplify insn RTX using UMUL_HIGHPART rtx_code.
740 (*umuldi3_highpart_const): Remove.
742 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
745 * config/avr/avr-protos.h (_reg_unused_after): Remove proto.
746 * config/avr/avr.cc (_reg_unused_after): Make static. And
747 add 3rd argument to skip the current insn.
748 (reg_unused_after): Adjust call of reg_unused_after.
749 (avr_out_plus_1) [AVR_TINY && -mfuse-add >= 2]: Don't output
750 unneeded frame pointer adjustments.
752 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
755 * config/avr/avr.md (define_attr "cc"): Remove.
756 * config/avr/avr-protos.h (avr_out_plus): Remove pcc argument
758 * config/avr/avr.cc (avr_out_plus_1): Remove pcc argument and
759 its uses. Add insn argument.
760 (avr_out_plus_symbol): Remove pcc argument and its uses.
761 (avr_out_plus): Remove pcc argument and its uses.
762 Adjust calls of avr_out_plus_symbol and avr_out_plus_1.
763 (avr_out_round): Adjust call of avr_out_plus.
765 2024-03-03 Georg-Johann Lay <avr@gjlay.de>
767 * config/avr/avr.cc (avr_init_cumulative_args): Fix a typo
770 2024-03-03 Oleg Endo <olegendo@gcc.gnu.org>
773 * config/sh/sh.cc (sh_is_nott_insn): Handle case where the input
774 is not an insn, but e.g. a code label.
776 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
778 * config/avr/avr.md (REG_0, ... REG_36): New define_constants.
779 * config/avr/avr.cc: Use them instead of magic numbers when it
780 means a register number.
782 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
784 * config/avr/avr.cc: Adjust some comments.
786 2024-03-02 Georg-Johann Lay <avr@gjlay.de>
789 * config/avr/avr.cc (avr_out_plus_1) [-mtiny-stack]: Only adjust
790 the low part of the frame pointer with 8-bit stack pointer.
792 2024-03-01 Patrick Palka <ppalka@redhat.com>
796 * tree-inline.cc (remap_decl): Handle copy_decl returning the
798 (remap_decls): Handle remap_decl returning the original decl.
799 (copy_fn): Adjust copy_decl callback to skip TYPE_DECL and
802 2024-03-01 Jeff Law <jlaw@ventanamicro.com>
804 * config/riscv/riscv.md (zero_extendqi<SUPERQI:mode>2_internal): Fix
806 (extendsidi2_internal, movhf_hardfloat, movhf_softfloat): Likewise.
807 (movdi_32bit, movdi_64bit, movsi_internal): Likewise.
808 (movhi_internal, movqi_internal): Likewise.
809 (movsf_softfloat, movsf_hardfloat): Likewise.
810 (movdf_hardfloat_rv32, movdf_hardfloat_rv64): Likewise.
811 (movdf_softfloat): Likewise.
813 2024-03-01 Marek Polacek <polacek@redhat.com>
817 * doc/extend.texi: Document gnu::no_dangling.
818 * doc/invoke.texi: Mention that gnu::no_dangling disables
819 -Wdangling-reference.
821 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
823 * config/avr/avr.opt: Overhaul help screen.
825 2024-03-01 Jakub Jelinek <jakub@redhat.com>
826 Tobias Burnus <tburnus@baylibre.com>
829 * gimplify.cc (omp_notice_variable): Fix 'shared' arg to
830 lang_hooks.decls.omp_disregard_value_expr for
831 (first)private in target regions.
833 2024-03-01 Jakub Jelinek <jakub@redhat.com>
836 * calls.cc (expand_call): For TYPE_NO_NAMED_ARGS_STDARG_P set
837 n_named_args initially before INIT_CUMULATIVE_ARGS to
838 structure_value_addr_parm rather than 0, after it don't modify
839 it if strict_argument_naming and clear only if
840 !pretend_outgoing_varargs_named.
842 2024-03-01 Jakub Jelinek <jakub@redhat.com>
845 * dwarf2out.cc (should_move_die_to_comdat): Return false for
846 aggregates without DW_AT_byte_size attribute or with non-constant
849 2024-03-01 Georg-Johann Lay <avr@gjlay.de>
851 * doc/invoke.texi (AVR Options) <-mfuse-add=level>: Document
852 valid values for level.
854 2024-03-01 Richard Biener <rguenther@suse.de>
857 * match.pd ((c ? a : b) op d --> c ? (a op d) : (b op d)):
858 Allow the folding if before lowering and the current IL
859 isn't supported with vcond_mask.
861 2024-03-01 xuli <xuli1@eswincomputing.com>
863 * config/riscv/riscv.cc (TARGET_GNU_ATTRIBUTES): Add riscv_vector_cc
864 attribute to riscv_attribute_table.
865 (riscv_vector_cc_function_p): Return true if FUNC is a riscv_vector_cc function.
866 (riscv_fntype_abi): Add riscv_vector_cc attribute check.
867 * doc/extend.texi: Add riscv_vector_cc attribute description.
869 2024-03-01 Pan Li <pan2.li@intel.com>
872 * config/riscv/riscv-avlprop.cc (pass_avlprop::execute): Replace
873 RVV_FIXED_VLMAX to RVV_VECTOR_BITS_ZVL.
874 * config/riscv/riscv-opts.h (enum riscv_autovec_preference_enum): Remove.
875 (enum rvv_vector_bits_enum): New enum for different RVV vector bits.
876 * config/riscv/riscv-selftests.cc (riscv_run_selftests): Update
877 comments for option replacement.
878 * config/riscv/riscv-v.cc (autovec_use_vlmax_p): Replace enum of
879 riscv_autovec_preference to rvv_vector_bits.
880 (vls_mode_valid_p): Ditto.
881 (estimated_poly_value): Ditto.
882 * config/riscv/riscv.cc (riscv_convert_vector_chunks): Rename to
883 vector chunks and honor new option mrvv-vector-bits.
884 (riscv_override_options_internal): Update comments and rename the
886 * config/riscv/riscv.opt: Add option mrvv-vector-bits and remove
887 internal option param=riscv-autovec-preference.
889 2024-03-01 Jakub Jelinek <jakub@redhat.com>
891 * function.cc (assign_parms): Only call assign_parms_setup_varargs
892 early for TYPE_NO_NAMED_ARGS_STDARG_P functions if fnargs is empty.
894 2024-03-01 Jakub Jelinek <jakub@redhat.com>
897 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Allow
898 rhs1 of a VCE to have no underlying variable if it is a load and
901 2024-02-29 David Malcolm <dmalcolm@redhat.com>
904 * function.cc (function_name): Make param const.
905 * function.h (function_name): Likewise.
907 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
910 * doc/invoke.texi (AVR Options) <-mfuse-add>: Document.
911 * config/avr/avr.opt (-mfuse-add=): New target option.
912 * common/config/avr/avr-common.cc (avr_option_optimization_table)
913 [OPT_LEVELS_1_PLUS]: Set -mfuse-add=1.
914 [OPT_LEVELS_2_PLUS]: Set -mfuse-add=2.
915 * config/avr/avr-passes.def (avr_pass_fuse_add): Insert new pass.
916 * config/avr/avr-protos.h (avr_split_tiny_move)
917 (make_avr_pass_fuse_add): New protos.
918 * config/avr/avr.md [AVR_TINY]: New post-reload splitter uses
919 avr_split_tiny_move to split indirect memory accesses.
920 (gen_move_clobbercc): New define_expand helper.
921 * config/avr/avr.cc (avr_pass_data_fuse_add): New pass data.
922 (avr_pass_fuse_add): New class from rtl_opt_pass.
923 (make_avr_pass_fuse_add, avr_split_tiny_move): New functions.
924 (reg_seen_between_p, emit_move_ccc, emit_move_ccc_after): New functions.
925 (avr_legitimate_address_p) [AVR_TINY]: Don't restrict offsets
926 of PLUS addressing for AVR_TINY.
927 (avr_regno_mode_code_ok_for_base_p) [AVR_TINY]: Ignore -mstrict-X.
928 (avr_out_plus_1) [AVR_TINY]: Tweak ++Y and --Y.
929 (avr_mode_code_base_reg_class) [AVR_TINY]: Always return POINTER_REGS.
931 2024-02-29 Georg-Johann Lay <avr@gjlay.de>
934 * config/avr/avr.h (CUMULATIVE_ARGS) <has_stack_args>: New field.
935 * config/avr/avr.cc (avr_init_cumulative_args): Initialize it.
936 (avr_function_arg): Set it.
937 (avr_frame_pointer_required_p): Use it instead of .nregs.
939 2024-02-29 Andrew Pinski <quic_apinski@quicinc.com>
942 * config/aarch64/aarch64-builtins.cc (aarch64_memtag_builtin_data): Make
943 static and mark with GTY.
945 2024-02-29 Xi Ruoyao <xry111@xry111.site>
947 * config/loongarch/loongarch.md
948 (loongarch_<crc>_w_<size>_w_extended): New define_insn.
950 2024-02-29 Xi Ruoyao <xry111@xry111.site>
952 * config/loongarch/loongarch.md (CRC): New define_int_iterator.
953 (crc): New define_int_attr.
954 (loongarch_crc_w_<size>_w, loongarch_crcc_w_<size>_w): Unify
956 (loongarch_<crc>_w_<size>_w): ... here.
958 2024-02-29 Kito Cheng <kito.cheng@sifive.com>
961 * config/riscv/sync.md (atomic_compare_and_swap<mode>): Sign
962 extend the expected value if needed.
964 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
966 * config.gcc (target_gtfiles): Change coreout to btfext-out.
967 (extra_objs): Change coreout to btfext-out.
968 * config/bpf/coreout.cc: Rename to btfext-out.cc.
969 * config/bpf/btfext-out.cc: Add.
970 * config/bpf/coreout.h: Rename to btfext-out.h.
971 * config/bpf/btfext-out.h: Add.
972 * config/bpf/core-builtins.cc: Change include.
973 * config/bpf/core-builtins.h: Change include.
974 * config/bpf/t-bpf: Accomodate renamed files.
976 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
979 * config/bpf/bpf.cc (bpf_function_prologue): Define target
981 * config/bpf/coreout.cc (brf_ext_info_section)
982 (btf_ext_info): Move from coreout.h
983 (btf_ext_funcinfo, btf_ext_lineinfo): Add struct.
984 (bpf_core_reloc): Rename to btf_ext_core_reloc.
985 (btf_ext): Add static variable.
986 (btfext_info_sec_find_or_add, SEARCH_NODE_AND_RETURN)
987 (bpf_create_or_find_funcinfo, bpt_create_core_reloc)
988 (btf_ext_add_string, btf_funcinfo_type_callback)
989 (btf_add_func_info_for, btf_validate_funcinfo)
990 (btf_ext_info_len, output_btfext_func_info): Add function.
991 (output_btfext_header, bpf_core_reloc_add)
992 (output_btfext_core_relocs, btf_ext_init, btf_ext_output):
993 Change to support new structs.
994 * config/bpf/coreout.h (btf_ext_funcinfo, btf_ext_lineinfo):
995 Move and change in coreout.cc.
996 (btf_add_func_info_for, btf_ext_add_string): Add prototypes.
998 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
1000 * config/bpf/bpf.cc (bpf_option_override): Make .BTF.ext
1001 enabled by default for BPF.
1002 (bpf_file_end): Call BTF deallocation.
1003 (bpf_asm_init_sections): Correct condition.
1004 * dwarf2ctf.cc (ctf_debug_finalize): Conditionally execute BTF
1006 (ctf_debuf_finish): Correct condition for calling
1009 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
1011 * btfout.cc (output_btf_func_types): Use FOR_EACH_VEC_ELT.
1012 (traverse_btf_func_types): Define function.
1013 * ctfc.h (funcs_traverse_callback): Typedef for function
1015 (traverse_btf_func_types): Add prototype.
1017 2024-02-28 Cupertino Miranda <cupertino.miranda@oracle.com>
1019 * btfout.cc (btf_collect_dataset): Corrects BTF type id.
1021 2024-02-28 Richard Biener <rguenther@suse.de>
1023 PR tree-optimization/113831
1024 PR tree-optimization/108355
1025 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Revert
1028 2024-02-28 Richard Biener <rguenther@suse.de>
1030 PR tree-optimization/114121
1031 * tree-ssa-sccvn.h (vn_reference_s::offset,
1032 vn_reference_s::max_size): New fields.
1033 (vn_reference_insert_pieces): Adjust prototype.
1034 * tree-ssa-pre.cc (phi_translate_1): Preserve offset/max_size.
1035 * tree-ssa-sccvn.cc (vn_reference_eq): Compare offset and
1036 size, allow using "don't know" state.
1037 (vn_walk_cb_data::finish): Pass along offset/max_size.
1038 (vn_reference_lookup_or_insert_for_pieces): Take offset and
1039 max_size as argument and use it.
1040 (vn_reference_lookup_3): Properly adjust offset and max_size
1041 according to the adjusted ao_ref.
1042 (vn_reference_lookup_pieces): Initialize offset and max_size.
1043 (vn_reference_lookup): Likewise.
1044 (vn_reference_lookup_call): Likewise.
1045 (vn_reference_insert): Likewise.
1046 (visit_reference_op_call): Likewise.
1047 (vn_reference_insert_pieces): Take offset and max_size
1048 as argument and use it.
1050 2024-02-28 Juergen Christ <jchrist@linux.ibm.com>
1052 PR tree-optimization/114075
1053 * tree-vect-stmts.cc (vectorizable_operation): Don't emulate floating
1056 2024-02-28 Jakub Jelinek <jakub@redhat.com>
1058 PR tree-optimization/114041
1059 * graphite-sese-to-poly.cc (add_conditions_to_domain): Check for
1060 INTEGRAL_TYPE_P check rather than INTEGER_TYPE.
1062 2024-02-28 Jakub Jelinek <jakub@redhat.com>
1064 PR tree-optimization/113988
1065 * stor-layout.h (bitwise_mode_for_size): Declare.
1066 * stor-layout.cc (bitwise_mode_for_size): New function.
1067 * gimple-fold.cc (gimple_fold_builtin_memory_op): Use it.
1068 Use bitwise_type_for_mode instead of build_nonstandard_integer_type.
1069 Use BITS_PER_UNIT instead of 8.
1071 2024-02-27 Uros Bizjak <ubizjak@gmail.com>
1074 * config/i386/mmx.md (V248FI): Add V2BF mode.
1077 2024-02-27 Eric Botcazou <ebotcazou@adacore.com>
1079 * tree-ssa-dse.cc (compute_trims): Fix description. Return early
1080 if either ref->offset is not byte aligned or ref->size is not known
1081 to be equal to ref->max_size.
1082 (maybe_trim_complex_store): Fix description.
1083 (maybe_trim_constructor_store): Likewise.
1084 (maybe_trim_partially_dead_store): Likewise.
1086 2024-02-27 Richard Earnshaw <rearnsha@arm.com>
1088 * config/arm/mmintrin.h: Warn if this header is included without
1089 defining __ENABLE_DEPRECATED_IWMMXT.
1091 2024-02-27 Richard Biener <rguenther@suse.de>
1093 PR tree-optimization/114074
1094 * tree-chrec.h (chrec_convert_rhs): Default at_stmt arg to NULL.
1095 * tree-chrec.cc (chrec_fold_multiply): Canonicalize inputs.
1096 Handle poly vs. non-poly multiplication correctly with respect
1097 to undefined behavior on overflow.
1099 2024-02-27 Jakub Jelinek <jakub@redhat.com>
1101 PR rtl-optimization/114044
1102 * internal-fn.def (CLRSB, CLZ, CTZ, FFS, PARITY): Use
1103 DEF_INTERNAL_INT_EXT_FN macro rather than DEF_INTERNAL_INT_FN.
1104 * internal-fn.h (expand_CLRSB, expand_CLZ, expand_CTZ, expand_FFS,
1105 expand_PARITY): Declare.
1106 * internal-fn.cc (expand_bitquery, expand_CLRSB, expand_CLZ,
1107 expand_CTZ, expand_FFS, expand_PARITY): New functions.
1108 (expand_POPCOUNT): Use expand_bitquery.
1110 2024-02-27 Richard Biener <rguenther@suse.de>
1112 PR tree-optimization/114081
1113 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1114 Perform manual dominator update for prologue peeling.
1115 (vect_do_peeling): Properly update dominators after adding the
1116 prologue-around guard.
1118 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
1120 * config/avr/avr.opt (mcall-prologues, mrelax, maccumulate-args)
1121 (mstrict-X): Tag as "Optimization".
1123 2024-02-26 Georg-Johann Lay <avr@gjlay.de>
1125 * config/avr/avr.cc (avr_out_compare) [AVR_TINY]: Remove code in
1126 an "if avr_adiw_reg_p()" block that's dead for AVR_TINY.
1128 2024-02-26 Jakub Jelinek <jakub@redhat.com>
1129 H.J. Lu <hjl.tools@gmail.com>
1131 PR rtl-optimization/113617
1132 * varasm.cc (default_elf_select_rtx_section): For
1133 references to private symbols in comdat sections
1134 use .data.relro.local.pool.<comdat>, .data.relro.pool.<comdat>
1135 or .rodata.<comdat> comdat sections.
1137 2024-02-26 Richard Biener <rguenther@suse.de>
1139 PR tree-optimization/114099
1140 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1141 Create and fill in a needed virtual LC PHI for the alternate
1142 exits. Remove code dealing with that missing.
1144 2024-02-26 Richard Biener <rguenther@suse.de>
1146 PR tree-optimization/114068
1147 * tree-vect-loop-manip.cc (get_live_virtual_operand_on_edge):
1149 (slpeel_tree_duplicate_loop_to_edge_cfg): Add a virtual LC PHI
1150 on the main exit if needed. Remove band-aid for the case
1153 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
1156 * config/i386/i386-options.cc (ix86_set_func_type): Check
1157 interrupt instead of noreturn attribute.
1159 2024-02-26 Jakub Jelinek <jakub@redhat.com>
1161 * config/i386/i386.cc (ix86_bitint_type_info): Add support for
1164 2024-02-26 Jakub Jelinek <jakub@redhat.com>
1166 PR tree-optimization/114090
1167 * match.pd ((x >= 0 ? x : 0) + (x <= 0 ? -x : 0) -> abs x):
1168 Restrict pattern to ANY_INTEGRAL_TYPE_P and TYPE_OVERFLOW_UNDEFINED
1170 ((x <= 0 ? -x : 0) -> max(-x, 0)): Likewise.
1172 2024-02-26 Jakub Jelinek <jakub@redhat.com>
1174 PR middle-end/114084
1175 * fold-const.cc (fold_binary_loc): Avoid the final associate_trees
1176 if all subtrees of var0 come from one of the op0 or op1 operands
1177 and all subtrees of con0 come from the other one. Don't clear
1178 variables which are never used afterwards.
1180 2024-02-26 Richard Biener <rguenther@suse.de>
1182 PR middle-end/114070
1183 * genmatch.cc (parser::parse_c_expr): Do not record operand
1184 lists but only mark operators used.
1185 * match.pd ((c ? a : b) op (c ? d : e) --> c ? (a op d) : (b op e)):
1186 Properly guard the case of tcc_comparison changing the VEC_COND
1189 2024-02-26 Jakub Jelinek <jakub@redhat.com>
1192 * config/i386/i386.cc (x86_function_profiler): Add missing new-line
1193 to printed instruction.
1195 2024-02-26 H.J. Lu <hjl.tools@gmail.com>
1198 * config/i386/amxtileintrin.h (_tile_loadconfig): Use
1199 __builtin_ia32_ldtilecfg.
1200 (_tile_storeconfig): Use __builtin_ia32_sttilecfg.
1201 * config/i386/i386-builtin.def (BDESC): Add
1202 __builtin_ia32_ldtilecfg and __builtin_ia32_sttilecfg.
1203 * config/i386/i386-expand.cc (ix86_expand_builtin): Handle
1204 IX86_BUILTIN_LDTILECFG and IX86_BUILTIN_STTILECFG.
1205 * config/i386/i386.md (ldtilecfg): New pattern.
1206 (sttilecfg): Likewise.
1208 2024-02-24 Richard Sandiford <richard.sandiford@arm.com>
1210 PR tree-optimization/113205
1211 * tree-vect-slp.cc (vect_optimize_slp_pass::forward_cost): Reject
1212 the proposed layout if it does not allow a source partition with
1213 layout 2 to keep that layout.
1215 2024-02-24 Jakub Jelinek <jakub@redhat.com>
1217 * builtins.cc (fold_builtin_isascii): Use HOST_WIDE_INT_UC macro.
1218 * combine.cc (make_field_assignment): Use HOST_WIDE_INT_1U macro.
1219 * double-int.cc (double_int::mask): Use HOST_WIDE_INT_UC macros.
1220 * genattrtab.cc (attr_alt_complement): Use HOST_WIDE_INT_1 macro.
1221 (mk_attr_alt): Use HOST_WIDE_INT_0 macro.
1222 * genautomata.cc (bitmap_set_bit, CLEAR_BIT): Use HOST_WIDE_INT_1
1224 * ipa-strub.cc (can_strub_internally_p): Use HOST_WIDE_INT_1 macro.
1225 * loop-iv.cc (implies_p): Use HOST_WIDE_INT_1U macro.
1226 * pretty-print.cc (test_pp_format): Use HOST_WIDE_INT_C and
1227 HOST_WIDE_INT_UC macros.
1228 * rtlanal.cc (nonzero_bits1): Use HOST_WIDE_INT_UC macro.
1229 * tree.cc (build_replicated_int_cst): Use HOST_WIDE_INT_1U macro.
1230 * tree.h (DECL_OFFSET_ALIGN): Use HOST_WIDE_INT_1U macro.
1231 * tree-ssa-structalias.cc (dump_varinfo): Use ~HOST_WIDE_INT_0U
1233 * wide-int.cc (divmod_internal_2): Use HOST_WIDE_INT_1U macro.
1234 * config/i386/constraints.md (define_constraint "L"): Use
1235 HOST_WIDE_INT_C macro.
1236 * config/i386/i386.md (movabsq split peephole2): Use HOST_WIDE_INT_C
1238 (movl + movb peephole2): Likewise.
1239 * config/i386/predicates.md (x86_64_zext_immediate_operand): Likewise.
1240 (const_32bit_mask): Likewise.
1242 2024-02-24 Jakub Jelinek <jakub@redhat.com>
1244 PR middle-end/114073
1245 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle
1246 VIEW_CONVERT_EXPRs between large/huge _BitInt and non-integer/pointer
1247 types like vector or complex types.
1248 (gimple_lower_bitint): Don't merge VIEW_CONVERT_EXPRs to non-integral
1249 types. Fix up VIEW_CONVERT_EXPR handling. Allow merging
1250 VIEW_CONVERT_EXPR from non-integral/pointer types with a store.
1252 2024-02-23 Robin Dapp <rdapp@ventanamicro.com>
1255 * config/riscv/riscv-v.cc (rvv_builder::can_duplicate_repeating_sequence_p):
1256 Return false if inner mode is already Pmode.
1257 (rvv_builder::is_all_same_sequence): New function.
1258 (expand_vec_init): Emit broadcast if sequence is all same.
1260 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
1263 * config/aarch64/aarch64-early-ra.cc
1264 (early_ra::m_current_region): New member variable.
1265 (early_ra::m_fpr_recency): Likewise.
1266 (early_ra::start_new_region): Bump m_current_region.
1267 (early_ra::allocate_colors): Prefer less recently used registers
1268 in the event of a tie. Add a comment to explain why we prefer(ed)
1269 higher-numbered registers.
1270 (early_ra::find_oldest_color): Prefer less recently used registers
1272 (early_ra::finalize_allocation): Update recency information for
1273 allocated registers.
1274 (early_ra::process_blocks): Initialize m_current_region and
1277 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
1280 * config/aarch64/aarch64-early-ra.cc
1281 (early_ra::test_strictness): New enum.
1282 (early_ra::is_chain_candidate): Add a strictness parameter to
1283 control whether only correctness matters, or whether both correctness
1284 and heuristics should be used. Handle multiple levels of equivalence.
1285 (early_ra::find_related_start): Update call accordingly.
1286 (early_ra::strided_polarity_pref): Likewise.
1287 (early_ra::form_chains): Likewise.
1288 (early_ra::try_to_chain_allocnos): Use is_chain_candidate in
1289 correctness mode rather than trying to inline the test.
1291 2024-02-23 Richard Sandiford <richard.sandiford@arm.com>
1294 * config/aarch64/aarch64-early-ra.cc
1295 (early_ra::find_related_start): Account for definitions by shared
1296 registers when testing for a single register definition.
1297 (early_ra::accumulate_defs): New function.
1298 (early_ra::record_copy): If A shares B's register, fold A's
1299 definition information into B's. Fold A's use information into B's.
1301 2024-02-23 H.J. Lu <hjl.tools@gmail.com>
1303 * configure.ac (HAVE_AS_R_X86_64_CODE_6_GOTTPOFF): Defined as 1
1304 if R_X86_64_CODE_6_GOTTPOFF is supported.
1305 * config.in: Regenerated.
1306 * configure: Likewise.
1307 * config/i386/predicates.md (apx_ndd_add_memory_operand): Allow
1308 UNSPEC_GOTNTPOFF if R_X86_64_CODE_6_GOTTPOFF is supported.
1310 2024-02-23 Richard Earnshaw <rearnsha@arm.com>
1313 * config/arm/neon.md (div<VCVTF:mode>3): Rename from div<mode>3.
1314 Gate with ARM_HAVE_NEON_<MODE>_ARITH.
1316 2024-02-23 Jakub Jelinek <jakub@redhat.com>
1318 PR rtl-optimization/114054
1319 * expr.cc (expand_expr_real_2) <case MULT_EXPR>: Use
1320 temp variable instead of target parameter for result.
1322 2024-02-23 Jakub Jelinek <jakub@redhat.com>
1324 PR tree-optimization/114040
1325 * gimple-lower-bitint.cc (bitint_large_huge::lower_addsub_overflow):
1326 Use EQ_EXPR rather than LT_EXPR for g2 condition and change its
1327 probability from likely to unlikely. When handling the true true
1328 store, first cast to limb_access_type and then to l's type.
1330 2024-02-23 Richard Biener <rguenther@suse.de>
1333 * config.gcc: Add ia64*-*-* to the list of obsoleted targets.
1335 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
1338 * config/riscv/arch-canonicalize: Move to python3
1339 * config/riscv/multilib-generator: Likewise
1341 2024-02-23 Palmer Dabbelt <palmer@rivosinc.com>
1343 * doc/invoke.texi: Document -mcpu.
1345 2024-02-23 Lulu Cheng <chenglulu@loongson.cn>
1347 * configure: Regenerate.
1348 * configure.ac: Add parameter "--fatal-warnings" to assemble
1349 when checking whether the assemble support conditional branch
1352 2024-02-22 Jakub Jelinek <jakub@redhat.com>
1355 * doc/extend.texi: (__extension__): Remove comments about scope
1356 tokens vs. two colons.
1358 2024-02-22 Andrew Pinski <quic_apinski@quicinc.com>
1360 PR tree-optimization/109804
1361 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Handle
1362 DEMANGLE_COMPONENT_UNNAMED_TYPE.
1364 2024-02-22 Richard Biener <rguenther@suse.de>
1366 PR tree-optimization/114048
1367 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): MEM_REF
1368 can also produce -1 off.
1370 2024-02-22 Richard Biener <rguenther@suse.de>
1372 PR tree-optimization/114027
1373 * tree-vect-loop.cc (vecctorizable_reduction): Use optimized
1374 condition reduction classification only for single-element
1377 2024-02-22 Jakub Jelinek <jakub@redhat.com>
1380 * profile-count.h (profile_count::dump): Remove overload with
1381 char * first argument.
1382 * profile-count.cc (profile_count::dump): Change overload with char *
1383 first argument which uses sprintf into the overfload with FILE *
1384 first argument and use fprintf instead. Remove overload which wrapped
1387 2024-02-22 Jakub Jelinek <jakub@redhat.com>
1389 PR tree-optimization/113993
1390 * tree-call-cdce.cc (get_no_error_domain): Handle
1391 BUILT_IN_{COSH,SINH,EXP{,M1,2}}{F32X,F64X}. Handle
1392 BUILT_IN_{COSH,SINH,EXP{,M1,2}}L for
1393 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
1394 the as the F128 suffixed cases, otherwise as non-suffixed ones.
1395 Handle BUILT_IN_{EXP,POW}10L for
1396 REAL_MODE_FORMAT (TYPE_MODE (long_double_type_node))->emax == 16384
1399 2024-02-22 Jakub Jelinek <jakub@redhat.com>
1401 PR tree-optimization/114038
1402 * gimple-lower-bitint.cc (bitint_large_huge::lower_mul_overflow): Fix
1403 loop exit condition if end is divisible by limb_prec.
1405 2024-02-22 YunQiang Su <syq@gcc.gnu.org>
1407 * doc/invoke.texi(MIPS Options): Fix skipping UrlSuffix
1408 problem of mabi=, mno-flush-func, mexplicit-relocs;
1409 add missing leading - of mbranch-cost option.
1410 * config/mips/mips.opt.urls: Regenerate.
1412 2024-02-22 Kewen Lin <linkw@linux.ibm.com>
1415 * config/rs6000/constraints.md (we): Update internal doc without
1416 referring to option -mpower9-vector.
1417 * config/rs6000/driver-rs6000.cc (asm_names): Remove mpower9-vector
1419 * config/rs6000/rs6000-cpus.def (OTHER_P9_VECTOR_MASKS,
1420 OTHER_P8_VECTOR_MASKS): Merge to ...
1421 (OTHER_VSX_VECTOR_MASKS): ... here.
1422 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove
1423 some error message handlings and explicit option mask adjustments on
1424 explicit option power{8,9}-vector conflicting with other options.
1425 (rs6000_print_isa_options): Update comments.
1426 (rs6000_disable_incompatible_switches): Remove power{8,9}-vector
1427 related array items and handlings.
1428 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Remove mpower9-vector
1430 * config/rs6000/rs6000.opt: Make option power{8,9}-vector as
1432 * doc/extend.texi: Remove documentation referring to option
1434 * doc/invoke.texi: Remove documentation for option
1435 -mpower{8,9}-vector and adjust some documentation referring to them.
1436 * doc/md.texi: Update documentation for constraint we.
1437 * doc/sourcebuild.texi: Remove documentation for powerpc_p8vector_ok.
1439 2024-02-22 Pan Li <pan2.li@intel.com>
1442 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Upgrade
1443 the version to 0.12.
1445 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
1447 * config/riscv/riscv.cc (riscv_sched_variable_issue): Enable assert
1449 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
1450 Robin Dapp <rdapp.gcc@gmail.com>
1452 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
1453 (generic_ooo_vec_load): Ditto
1454 (generic_ooo_vec_store): Ditto
1455 (generic_ooo_vec_loadstore_seg): Ditto
1456 (generic_ooo_vec_alu): Ditto
1457 (generic_ooo_vec_fcmp): Ditto
1458 (generic_ooo_vec_imul): Ditto
1459 (generic_ooo_vec_fadd): Ditto
1460 (generic_ooo_vec_fmul): Ditto
1461 (generic_ooo_crypto): Ditto
1462 (generic_ooo_perm): Ditto
1463 (generic_ooo_vec_reduction): Ditto
1464 (generic_ooo_vec_ordered_reduction): Ditto
1465 (generic_ooo_vec_idiv): Ditto
1466 (generic_ooo_vec_float_divsqrt): Ditto
1467 (generic_ooo_vec_mask): Ditto
1468 (generic_ooo_vec_vesetvl): Ditto
1469 (generic_ooo_vec_setrm): Ditto
1470 (generic_ooo_vec_readlen): Ditto
1471 * config/riscv/riscv.md: Include generic-vector-ooo
1472 * config/riscv/generic-vector-ooo.md: New file. To here
1474 2024-02-21 Edwin Lu <ewlu@rivosinc.com>
1476 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
1477 (generic_ooo_branch): Ditto
1478 * config/riscv/generic.md (generic_sfb_alu): Ditto
1479 (generic_fmul_half): Ditto
1480 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
1481 * config/riscv/sifive-7.md (sifive_7_hfma): Add reservation
1482 (sifive_7_popcount): Ditto
1483 * config/riscv/sifive-p400.md (sifive_p400_clmul): Ditto
1484 * config/riscv/sifive-p600.md (sifive_p600_clmul): Ditto
1485 * config/riscv/vector.md: Change rdfrm to fmove
1486 * config/riscv/zc.md: Change pushpop to load/store
1488 2024-02-21 Jonathan Wakely <jwakely@redhat.com>
1490 * doc/invoke.texi (Warning Options): Fix typos.
1492 2024-02-21 David Faust <david.faust@oracle.com>
1494 * config/bpf/bpf-protos.h (bpf_expand_cpymem): New.
1495 * config/bpf/bpf.cc: (emit_move_loop, bpf_expand_cpymem): New.
1496 * config/bpf/bpf.md: (cpymemdi, movmemdi): New define_expands.
1498 2024-02-21 Martin Jambor <mjambor@suse.cz>
1501 * ipa-prop.h (ipa_node_params): Convert lattices to a vector, adjust
1502 initializers in the contructor.
1503 (ipa_node_params::~ipa_node_params): Release lattices as a vector.
1504 * ipa-cp.h: New file.
1505 * ipa-cp.cc: Include sreal.h and ipa-cp.h.
1506 (ipcp_value_source): Move to ipa-cp.h.
1507 (ipcp_value_base): Likewise.
1508 (ipcp_value): Likewise.
1509 (ipcp_lattice): Likewise.
1510 (ipcp_agg_lattice): Likewise.
1511 (ipcp_bits_lattice): Likewise.
1512 (ipcp_vr_lattice): Likewise.
1513 (ipcp_param_lattices): Likewise.
1514 (ipa_get_parm_lattices): Remove assert latticess is non-NULL.
1515 (ipa_value_from_jfunc): Adjust a check for empty lattices.
1516 (ipa_context_from_jfunc): Likewise.
1517 (ipa_agg_value_from_jfunc): Likewise.
1518 (merge_agg_lats_step): Do not memset new aggregate lattices to zero.
1519 (ipcp_propagate_stage): Allocate lattices in a vector as opposed to
1520 just in contiguous memory.
1521 (ipcp_store_vr_results): Adjust a check for empty lattices.
1522 * auto-profile.cc: Include sreal.h and ipa-cp.h.
1523 * cgraph.cc: Likewise.
1524 * cgraphclones.cc: Likewise.
1525 * cgraphunit.cc: Likewise.
1526 * config/aarch64/aarch64.cc: Likewise.
1527 * config/i386/i386-builtins.cc: Likewise.
1528 * config/i386/i386-expand.cc: Likewise.
1529 * config/i386/i386-features.cc: Likewise.
1530 * config/i386/i386-options.cc: Likewise.
1531 * config/i386/i386.cc: Likewise.
1532 * config/rs6000/rs6000.cc: Likewise.
1533 * config/s390/s390.cc: Likewise.
1534 * gengtype.cc (open_base_files): Added sreal.h and ipa-cp.h to the
1535 files to be included in gtype-desc.cc.
1536 * gimple-range-fold.cc: Include sreal.h and ipa-cp.h.
1537 * ipa-devirt.cc: Likewise.
1538 * ipa-fnsummary.cc: Likewise.
1539 * ipa-icf.cc: Likewise.
1540 * ipa-inline-analysis.cc: Likewise.
1541 * ipa-inline-transform.cc: Likewise.
1542 * ipa-inline.cc: Include ipa-cp.h, move inclusion of sreal.h higher.
1543 * ipa-modref.cc: Include sreal.h and ipa-cp.h.
1544 * ipa-param-manipulation.cc: Likewise.
1545 * ipa-predicate.cc: Likewise.
1546 * ipa-profile.cc: Likewise.
1547 * ipa-prop.cc: Likewise.
1548 (ipa_node_params_t::duplicate): Assert new lattices remain empty
1549 instead of setting them to NULL.
1550 * ipa-pure-const.cc: Include sreal.h and ipa-cp.h.
1551 * ipa-split.cc: Likewise.
1552 * ipa-sra.cc: Likewise.
1553 * ipa-strub.cc: Likewise.
1554 * ipa-utils.cc: Likewise.
1556 * toplev.cc: Likewise.
1557 * tree-ssa-ccp.cc: Likewise.
1558 * tree-ssa-sccvn.cc: Likewise.
1559 * tree-vrp.cc: Likewise.
1561 2024-02-21 Tamar Christina <tamar.christina@arm.com>
1563 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Remove LS64 from
1566 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1568 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
1569 Use aarch64_gen_compare_zero_and_branch rather than emitting
1572 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1574 * config/aarch64/aarch64.cc (aarch64_option_valid_attribute_p):
1575 Remove duplicated call.
1577 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1579 * config/aarch64/aarch64.cc (aarch64_function_ok_for_sibcall):
1580 Check that each individual piece of state is shared in the same
1581 way, rather than using an aggregate check for PSTATE.ZA.
1583 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1585 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
1586 In the code that commits a lazy save, only zero ZA if the function
1587 has ZA state. Similarly zero ZT0 if the function has ZT0 state.
1589 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1591 * config/aarch64/aarch64-sme.md (aarch64_commit_lazy_save): Remove,
1592 directly inserting the associated sequence
1593 * config/aarch64/aarch64.cc (aarch64_mode_emit_local_sme_state):
1596 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1599 * config/aarch64/aarch64.cc (aarch64_expand_prologue): Don't
1600 fold the SVE allocation into the initial allocation if the
1601 initial allocation includes a VG save.
1603 2024-02-21 Richard Sandiford <richard.sandiford@arm.com>
1606 * cfgrtl.cc (commit_one_edge_insertion): Handle sequences that
1607 contain jumps even if called after initial RTL expansion.
1608 * mode-switching.cc: Include cfgbuild.h.
1609 (optimize_mode_switching): Allow the sequence returned by the
1610 emit hook to contain internal jumps. Record which blocks
1611 contain such jumps and split the blocks at the end.
1612 * config/aarch64/aarch64.cc (aarch64_mode_emit): Check for
1613 non-debug insns when scanning the sequence.
1615 2024-02-21 Tobias Burnus <tburnus@baylibre.com>
1617 * config/nvptx/gen-omp-device-properties.sh: Add 'nvptx64' to arch.
1618 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Likewise.
1620 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
1622 * doc/invoke.texi (-mmcu): Add information about MCU specs.
1624 2024-02-21 Dimitar Dimitrov <dimitar@dinux.eu>
1626 * doc/invoke.texi (-minrt): Clarify that main
1627 must take no arguments.
1629 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
1631 * config/avr/builtins.def: Use function prototypes of given size
1633 * config/avr/avr.cc (avr_init_builtins): Adjust types required
1635 * doc/extend.texi (AVR Built-in Functions): Adjust accordingly.
1637 2024-02-20 Georg-Johann Lay <avr@gjlay.de>
1639 * doc/extend.texi (AVR Built-in Functions): Use @defbuiltin
1642 2024-02-20 Will Hawkins <hawkinsw@obs.cr>
1644 * config/bpf/bpf.opt: Add help information for -mcpu.
1646 2024-02-20 Richard Sandiford <richard.sandiford@arm.com>
1649 * config/aarch64/aarch64-passes.def (pass_late_track_speculation):
1651 * config/aarch64/aarch64-protos.h (make_pass_late_track_speculation):
1653 * config/aarch64/aarch64.md (is_call): New attribute.
1654 (*and<mode>3nr_compare0): Rename to...
1655 (@aarch64_and<mode>3nr_compare0): ...this.
1656 * config/aarch64/aarch64-sme.md (aarch64_get_sme_state)
1657 (aarch64_tpidr2_save, aarch64_tpidr2_restore): Add is_call attributes.
1658 * config/aarch64/aarch64-speculation.cc: Update file comment to
1659 describe the new late pass.
1660 (aarch64_do_track_speculation): Handle is_call insns like other calls.
1661 (pass_track_speculation): Add an is_late member variable.
1662 (pass_track_speculation::gate): Run the late pass for streaming-
1663 compatible functions and the early pass for other functions.
1664 (make_pass_track_speculation): Update accordingly.
1665 (make_pass_late_track_speculation): New function.
1666 * config/aarch64/aarch64.cc (aarch64_gen_test_and_branch): New
1668 (aarch64_guard_switch_pstate_sm): Use it.
1670 2024-02-19 Iain Sandoe <iain@sandoe.co.uk>
1672 * config/aarch64/aarch64-builtins.cc (aarch64_init_rng_builtins):
1673 Register these builtins with a pointer to uint64_t rather than unsigned
1676 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
1679 * config/gcn/gcn-valu.md (define_expand "reduc_<fexpander>_scal_<mode>"):
1680 Conditionalize on '!TARGET_RDNA2_PLUS'.
1681 * config/gcn/gcn.cc (gcn_expand_dpp_shr_insn)
1682 (gcn_expand_reduc_scalar):
1683 'gcc_checking_assert (!TARGET_RDNA2_PLUS);'.
1685 2024-02-19 Thomas Schwinge <tschwinge@baylibre.com>
1687 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS): Restore lost
1688 '__gfx90a__' target CPU definition. Add some safeguards for the future.
1690 2024-02-19 Richard Biener <rguenther@suse.de>
1692 PR rtl-optimization/54052
1693 * rtl-ssa/blocks.cc (function_info::place_phis): Filter
1694 local defs by LR_OUT.
1696 2024-02-19 Jakub Jelinek <jakub@redhat.com>
1698 PR tree-optimization/113967
1699 * match.pd (bit_insert @0 (BIT_FIELD_REF @1 ..) ..): Require
1700 in condition that @rpos is multiple of vector element size.
1702 2024-02-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1705 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info):
1706 Suppress vsetvl fusion.
1708 2024-02-18 H.J. Lu <hjl.tools@gmail.com>
1711 * config/i386/i386.cc (ix86_can_use_push2pop2): New.
1712 (ix86_pro_and_epilogue_can_use_push2pop2): Use it.
1713 (ix86_emit_save_regs): Don't generate push2 if
1714 ix86_can_use_push2pop2 return false.
1715 (ix86_expand_epilogue): Don't generate pop2 if
1716 ix86_can_use_push2pop2 return false.
1718 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
1720 * doc/invoke.texi (AVR Options) <-mmcu>: Remove "Atmel".
1721 Note on complete device support.
1723 2024-02-18 Georg-Johann Lay <avr@gjlay.de>
1725 * doc/extend.texi (AVR Function Attributes): Fuse description
1726 of "signal" and "interrupt" attribute. Link pseudo instruction.
1728 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
1730 * config/loongarch/larchintrin.h (__movgr2fcsr): Remove redundant
1731 symbol type conversions.
1732 (__cacop_d): Likewise.
1733 (__cpucfg): Likewise.
1734 (__asrtle_d): Likewise.
1735 (__asrtgt_d): Likewise.
1736 (__lddir_d): Likewise.
1737 (__ldpte_d): Likewise.
1738 (__crc_w_b_w): Likewise.
1739 (__crc_w_h_w): Likewise.
1740 (__crc_w_w_w): Likewise.
1741 (__crc_w_d_w): Likewise.
1742 (__crcc_w_b_w): Likewise.
1743 (__crcc_w_h_w): Likewise.
1744 (__crcc_w_w_w): Likewise.
1745 (__crcc_w_d_w): Likewise.
1746 (__csrrd_w): Likewise.
1747 (__csrwr_w): Likewise.
1748 (__csrxchg_w): Likewise.
1749 (__csrrd_d): Likewise.
1750 (__csrwr_d): Likewise.
1751 (__csrxchg_d): Likewise.
1752 (__iocsrrd_b): Likewise.
1753 (__iocsrrd_h): Likewise.
1754 (__iocsrrd_w): Likewise.
1755 (__iocsrrd_d): Likewise.
1756 (__iocsrwr_b): Likewise.
1757 (__iocsrwr_h): Likewise.
1758 (__iocsrwr_w): Likewise.
1759 (__iocsrwr_d): Likewise.
1760 (__frecipe_s): Likewise.
1761 (__frecipe_d): Likewise.
1762 (__frsqrte_s): Likewise.
1763 (__frsqrte_d): Likewise.
1765 2024-02-18 Lulu Cheng <chenglulu@loongson.cn>
1767 * config/loongarch/larchintrin.h (__iocsrrd_h): Modify the
1768 function return value type to unsigned short.
1770 2024-02-16 Edwin Lu <ewlu@rivosinc.com>
1772 * doc/sourcebuild.texi: add scan-assembler-bound
1774 2024-02-16 Jason Merrill <jason@redhat.com>
1776 * gdbhooks.py: Fix regex syntax.
1778 2024-02-16 Richard Biener <rguenther@suse.de>
1780 PR tree-optimization/113895
1781 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Disable
1782 consistency checking when there are out-of-bound array
1783 accesses. Allow -1 off when from an array reference with
1786 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
1789 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>): Fix asm
1792 2024-02-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1794 * doc/sourcebuild.texi (Effective-Target Keywords, Other
1795 attribugs): Document linker_plugin.
1796 (Require Support): Document dg-require-linker-plugin.
1798 2024-02-16 Kito Cheng <kito.cheng@sifive.com>
1801 * common/config/riscv/riscv-common.cc (riscv_arch_help): New.
1802 * config/riscv/riscv-protos.h (RISCV_MAJOR_VERSION_BASE): New.
1803 (RISCV_MINOR_VERSION_BASE): Ditto.
1804 (RISCV_REVISION_VERSION_BASE): Ditto.
1805 * config/riscv/riscv-c.cc (riscv_ext_version_value): Use enum
1806 rather than magic number.
1807 * config/riscv/riscv.h (riscv_arch_help): New.
1808 (EXTRA_SPEC_FUNCTIONS): Add riscv_arch_help.
1809 (DRIVER_SELF_SPECS): Handle -march=help, -print-supported-extensions and
1810 --print-supported-extensions.
1811 * config/riscv/riscv.opt (march=help): New.
1812 (print-supported-extensions): New.
1813 (-print-supported-extensions): New.
1814 * doc/invoke.texi (RISC-V Options): Document -march=help.
1816 2024-02-16 Tejas Belagod <tejas.belagod@arm.com>
1819 * config/arm/arm.cc (arm_function_ok_for_sibcall): Don't allow tailcalls
1820 for indirect calls with 4 or more arguments in pac-enabled functions.
1822 2024-02-15 David Faust <david.faust@oracle.com>
1824 * config/bpf/bpf.md (zero_extendqidi2): Correct asm template to
1825 use ldxb instead of ldxh.
1827 2024-02-15 Jakub Jelinek <jakub@redhat.com>
1829 PR middle-end/113921
1830 * cfgrtl.h (prepend_insn_to_edge): New declaration.
1831 * cfgrtl.cc (insert_insn_on_edge): Clarify behavior in function
1833 (prepend_insn_to_edge): New function.
1834 * cfgexpand.cc (expand_asm_stmt): Use prepend_insn_to_edge instead of
1835 insert_insn_on_edge.
1837 2024-02-15 Richard Biener <rguenther@suse.de>
1839 PR tree-optimization/111156
1840 * tree-vect-loop.cc (vect_dissolve_slp_only_groups): Look
1841 at the pattern stmt if any.
1843 2024-02-15 Georg-Johann Lay <avr@gjlay.de>
1846 * config/avr/avr.h (AVR_HAVE_ADIW): New macro.
1847 * config/avr/avr-protos.h (avr_adiw_reg_p): New proto.
1848 * config/avr/avr.cc (avr_adiw_reg_p): New function.
1849 (avr_conditional_register_usage) [AVR_TINY]: Don't clear ADDW_REGS.
1850 Replace test_hard_reg_class (ADDW_REGS, ...) with calls to
1851 * config/avr/avr.md: Same.
1852 (attr "isa") <tiny, no_tiny>: Remove.
1853 <adiw, no_adiw>: Add.
1854 (define_insn, define_insn_and_split): When an alternative has
1855 constraint "w", then set attribute "isa" to "adiw".
1856 * config/avr/avr-c.cc (avr_cpu_cpp_builtins) [AVR_HAVE_ADIW]:
1857 Built-in define __AVR_HAVE_ADIW__.
1858 * doc/invoke.texi (AVR Options): Document it.
1860 2024-02-15 Andrew Stubbs <ams@baylibre.com>
1862 * config/gcn/gcn-valu.md
1863 (vec_extract<V_MOV:mode><V_MOV_ALT:mode>): Add conditions for RDNA.
1864 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Check permutation
1865 details are supported on RDNA devices.
1867 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
1869 PR middle-end/113508
1870 * doc/md.texi (sdot_prod@var{m}, udot_prod@var{m},
1871 usdot_prod@var{m}, ssad@var{m}, usad@var{m}, widen_usum@var{m}3,
1872 smulhs@var{m}3, umulhs@var{m}3, smulhrs@var{m}3, umulhrs@var{m}3):
1873 Add sentence about what the mode m is.
1875 2024-02-15 Andrew Pinski <quic_apinski@quicinc.com>
1877 * doc/md.texi (widen_ssum, widen_usum, smulhs, umulhs,
1878 smulhrs, umulhrs, sdiv_pow2): Move the 3 outside of the
1881 2024-02-15 Richard Biener <rguenther@suse.de>
1883 * tree-ssa-tail-merge.cc (same_succ_hash): Skip debug
1886 2024-02-15 Jakub Jelinek <jakub@redhat.com>
1888 PR tree-optimization/113567
1889 * gimple-lower-bitint.cc (gimple_lower_bitint): For large/huge
1890 _BitInt multiplication, division or modulo with
1891 SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs and at least one of rhs1 and rhs2
1892 force the affected inputs into a new SSA_NAME.
1894 2024-02-14 Uros Bizjak <ubizjak@gmail.com>
1897 * config/i386/mmx.md (V248FI): New mode iterator.
1899 (vec_shl_<V248FI:mode>): New expander.
1900 (vec_shl_<V24FI_32:mode>): Ditto.
1901 (vec_shr_<V248FI:mode>): Ditto.
1902 (vec_shr_<V24FI_32:mode>): Ditto.
1903 * config/i386/sse.md (vec_shl_<V_128:mode>): Simplify expander.
1904 (vec_shr_<V248FI:mode>): Ditto.
1906 2024-02-14 Jan Hubicka <jh@suse.cz>
1908 PR tree-optimization/111054
1909 * tree-ssa-loop-split.cc (split_loop): Check for profile being present.
1911 2024-02-14 Tamar Christina <tamar.christina@arm.com>
1913 * tree-cfg.cc (replace_loop_annotate): Inspect loop edges for annotations.
1915 2024-02-14 Richard Biener <rguenther@suse.de>
1917 PR tree-optimization/113910
1918 * bitmap.cc (bitmap_hash): Mix the full element "hash" to
1921 2024-02-14 Jakub Jelinek <jakub@redhat.com>
1923 * pretty-print.cc (PTRDIFF_MAX): Define if not yet defined.
1924 (pp_integer_with_precision): For unsigned ptrdiff_t printing
1925 with u, o or x print ptrdiff_t argument converted to
1926 unsigned long long and masked with 2ULL * PTRDIFF_MAX + 1.
1928 2024-02-14 Richard Biener <rguenther@suse.de>
1930 PR middle-end/113576
1931 * expr.cc (do_store_flag): For vector bool compares of vectors
1932 with padding zero that.
1933 * dojump.cc (do_compare_and_jump): Likewise.
1935 2024-02-14 Gerald Pfeifer <gerald@pfeifer.com>
1937 * doc/install.texi (Prerequisites): Update gettext link.
1939 2024-02-13 H.J. Lu <hjl.tools@gmail.com>
1942 * config/i386/i386.cc (ix86_pro_and_epilogue_can_use_push2pop2):
1943 Return false if the incoming stack isn't 16-byte aligned.
1945 2024-02-13 Tobias Burnus <tburnus@baylibre.com>
1947 PR middle-end/113904
1948 * omp-general.cc (struct omp_ts_info): Update for splitting of
1949 OMP_TRAIT_PROPERTY_EXPR into OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
1950 * omp-selectors.h (enum omp_tp_type): Replace
1951 OMP_TRAIT_PROPERTY_EXPR by OMP_TRAIT_PROPERTY_{DEV_NUM,BOOL}_EXPR.
1953 2024-02-13 Monk Chiang <monk.chiang@sifive.com>
1956 * config/riscv/riscv.cc (riscv_macro_fusion_pair_p): Fix
1957 recognizes UNSPEC_AUIPC for RISCV_FUSE_LUI_ADDI.
1959 2024-02-13 Richard Biener <rguenther@suse.de>
1961 PR tree-optimization/113895
1962 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Track
1963 offset to discover constant array indices in bits, handle
1964 COMPONENT_REF to bitfields.
1966 2024-02-13 Richard Biener <rguenther@suse.de>
1968 PR tree-optimization/113831
1969 * tree-ssa-sccvn.cc (ao_ref_init_from_vn_reference): Fix
1972 2024-02-13 Richard Biener <rguenther@suse.de>
1974 PR tree-optimization/113902
1975 * tree-vect-loop.cc (move_early_exit_stmts): Track
1976 last_seen_vuse for VUSE updating.
1978 2024-02-13 Tamar Christina <tamar.christina@arm.com>
1980 PR tree-optimization/113734
1981 * tree-vect-loop.cc (vect_transform_loop): Treat the final iteration of
1982 an early break loop as partial.
1984 2024-02-13 Richard Biener <rguenther@suse.de>
1986 PR tree-optimization/113898
1987 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): Add
1988 missing accumulated off adjustment.
1990 2024-02-13 Jakub Jelinek <jakub@redhat.com>
1992 * hwint.h (GCC_PRISZ, fmt_size_t): Fix preprocessor conditions,
1993 instead of comparing SIZE_MAX against INT_MAX and LONG_MAX compare
1994 it against UINT_MAX and ULONG_MAX.
1996 2024-02-13 David Malcolm <dmalcolm@redhat.com>
1998 * diagnostic-core.h (emit_diagnostic_valist): Rename overload
2000 (emit_diagnostic_valist_meta): ...this.
2001 * diagnostic.cc (emit_diagnostic_valist): Likewise, to...
2002 (emit_diagnostic_valist_meta): ...this.
2004 2024-02-12 Jakub Jelinek <jakub@redhat.com>
2006 PR tree-optimization/113849
2007 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't use
2008 fast path for widening casts where !m_upwards_2limb and lhs_type
2009 has precision which is a multiple of limb_prec.
2011 2024-02-12 Jakub Jelinek <jakub@redhat.com>
2014 * attribs.cc (extract_attribute_substring): Remove.
2015 (lookup_scoped_attribute_spec): Don't call it.
2017 2024-02-12 Jakub Jelinek <jakub@redhat.com>
2019 * gengtype.cc (adjust_field_rtx_def): Use HOST_SIZE_T_PRINT_UNSIGNED
2020 and cast to fmt_size_t instead of %lu and cast to unsigned long.
2022 2024-02-12 Christophe Lyon <christophe.lyon@linaro.org>
2024 * Makefile.in: Add no-info dependency.
2025 * configure.ac: Set BUILD_INFO=no-info if makeinfo is not
2027 * configure: Regenerate.
2029 2024-02-12 Iain Sandoe <iain@sandoe.co.uk>
2032 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): Moved to be
2033 available to all sub-targets.
2034 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): Delete.
2035 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): Delete.
2037 2024-02-12 Richard Biener <rguenther@suse.de>
2039 PR tree-optimization/113831
2040 PR tree-optimization/108355
2041 * tree-ssa-sccvn.cc (copy_reference_ops_from_ref): When
2042 we see variable array indices and get_ref_base_and_extent
2043 can resolve those to constants fix up the ops to constants
2045 (ao_ref_init_from_vn_reference): Use 'off' member for
2046 ARRAY_REF and ARRAY_RANGE_REF instead of recomputing it.
2047 (valueize_refs_1): Also fixup 'off' of ARRAY_RANGE_REF.
2049 2024-02-12 Pan Li <pan2.li@intel.com>
2051 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin):
2052 Replace args to arguments for misspelled term.
2054 2024-02-12 Georg-Johann Lay <avr@gjlay.de>
2057 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) [have_flmap]:
2058 <*link_rodata_in_ram>: Spec undefs symbol __do_flmap_init
2059 when not linked with -mrodata-in-ram.
2061 2024-02-12 Richard Biener <rguenther@suse.de>
2063 PR tree-optimization/113863
2064 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
2065 Record crossed virtual PHIs.
2066 * tree-vect-loop.cc (move_early_exit_stmts): Elide crossed
2069 2024-02-10 Marek Polacek <polacek@redhat.com>
2074 * doc/invoke.texi: Document -Wtemplate-id-cdtor.
2076 2024-02-10 Jakub Jelinek <jakub@redhat.com>
2078 * gimple-lower-bitint.cc (itint_large_huge::lower_addsub_overflow): Fix
2079 computation of idx for i == 4 of bitint_prec_huge.
2081 2024-02-10 Jakub Jelinek <jakub@redhat.com>
2083 PR middle-end/110754
2084 * gimple-low.cc (assumption_copy_decl): For TREE_THIS_VOLATILE
2085 decls create PARM_DECL with pointer to original type, set
2086 TREE_READONLY and keep TREE_THIS_VOLATILE, TREE_ADDRESSABLE,
2087 DECL_NOT_GIMPLE_REG_P and DECL_BY_REFERENCE cleared.
2088 (adjust_assumption_stmt_op): For remapped TREE_THIS_VOLATILE decls
2089 wrap PARM_DECL into a simple TREE_THIS_NO_TRAP MEM_REF.
2090 (lower_assumption): For TREE_THIS_VOLATILE vars pass ADDR_EXPR
2091 of the var as argument.
2093 2024-02-10 Jakub Jelinek <jakub@redhat.com>
2095 * pretty-print.cc (pp_integer_with_precision): Handle precision 3 for
2096 size_t and precision 4 for ptrdiff_t. Formatting fix.
2097 (pp_format): Document %{t,z}{d,i,u,o,x}. Implement t and z modifiers.
2099 (test_pp_format): Test t and z modifiers.
2100 * gcc.cc (read_specs): Use %td instead of %ld and casts to long.
2102 2024-02-10 Jakub Jelinek <jakub@redhat.com>
2104 * ipa-icf.cc (sem_item_optimizer::process_cong_reduction,
2105 sem_item_optimizer::dump_cong_classes): Use HOST_SIZE_T_PRINT_UNSIGNED
2106 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
2107 * tree.cc (print_debug_expr_statistics): Use HOST_SIZE_T_PRINT_DEC
2108 and casts to fmt_size_t instead of "%ld" and casts to long.
2109 (print_value_expr_statistics, print_type_hash_statistics): Likewise.
2110 * dwarf2out.cc (output_macinfo_op): Use HOST_WIDE_INT_PRINT_UNSIGNED
2111 instead of "%lu" and casts to unsigned long.
2112 * gcov-dump.cc (dump_gcov_file): Use %u instead of %lu and casts to
2114 * tree-ssa-dom.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
2115 and casts to fmt_size_t instead of "%ld" and casts to long.
2116 * cfgexpand.cc (dump_stack_var_partition): Use
2117 HOST_SIZE_T_PRINT_UNSIGNED and casts to fmt_size_t instead of "%lu"
2118 and casts to unsigned long.
2119 * gengtype.cc (adjust_field_rtx_def): Likewise.
2120 * tree-into-ssa.cc (htab_statistics): Use HOST_SIZE_T_PRINT_DEC
2121 and casts to fmt_size_t instead of "%ld" and casts to long.
2122 * postreload-gcse.cc (dump_hash_table): Likewise.
2123 * ggc-page.cc (alloc_page): Use HOST_SIZE_T_PRINT_UNSIGNED
2124 and casts to fmt_size_t instead of "%lu" and casts to unsigned long.
2125 (ggc_internal_alloc, ggc_free): Likewise.
2126 * genpreds.cc (write_lookup_constraint_1): Likewise.
2127 (write_insn_constraint_len): Likewise.
2128 * tree-dfa.cc (dump_dfa_stats): Use HOST_SIZE_T_PRINT_DEC
2129 and casts to fmt_size_t instead of "%ld" and casts to long.
2130 * varasm.cc (output_constant_pool_contents): Use
2131 HOST_WIDE_INT_PRINT_DEC instead of "%ld" and casts to long.
2132 * var-tracking.cc (dump_var): Likewise.
2134 2024-02-09 Jakub Jelinek <jakub@redhat.com>
2136 PR tree-optimization/113783
2137 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Look
2138 through VIEW_CONVERT_EXPR for final cast checks. Handle
2139 VIEW_CONVERT_EXPRs from large/huge _BitInt to > MAX_FIXED_MODE_SIZE
2141 (gimple_lower_bitint): Don't merge mergeable operations or other
2142 casts with VIEW_CONVERT_EXPRs to > MAX_FIXED_MODE_SIZE INTEGER_TYPEs.
2143 * expr.cc (expand_expr_real_1): Don't use convert_modes if either
2146 2024-02-09 Jakub Jelinek <jakub@redhat.com>
2148 * hwint.h (GCC_PRISZ, fmt_size_t, HOST_SIZE_T_PRINT_DEC,
2149 HOST_SIZE_T_PRINT_UNSIGNED, HOST_SIZE_T_PRINT_HEX,
2150 HOST_SIZE_T_PRINT_HEX_PURE): Define.
2151 * ira-conflicts.cc (build_conflict_bit_table): Use it. Formatting
2154 2024-02-09 Jakub Jelinek <jakub@redhat.com>
2156 PR middle-end/113415
2157 * cfgexpand.cc (expand_asm_stmt): For asm goto, use
2158 duplicate_insn_chain to duplicate after_rtl_seq sequence instead
2159 of hand written loop with emit_insn of copy_insn and emit original
2160 after_rtl_seq on the last edge.
2162 2024-02-09 Jakub Jelinek <jakub@redhat.com>
2164 PR tree-optimization/113818
2165 * gimple-lower-bitint.cc (add_eh_edge): New function.
2166 (bitint_large_huge::handle_load,
2167 bitint_large_huge::lower_mergeable_stmt,
2168 bitint_large_huge::lower_muldiv_stmt): Use it.
2170 2024-02-09 Jakub Jelinek <jakub@redhat.com>
2172 PR tree-optimization/113774
2173 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast): Don't
2174 emit any comparison if m_first and low + 1 is equal to
2175 m_upwards_2limb, simplify condition for that. If not
2176 single_comparison, not m_first and we can prove that the idx <= low
2177 comparison will be always true, emit instead of idx <= low
2178 comparison low <= low such that cfg cleanup will optimize it at
2179 the end of the pass.
2181 2024-02-08 Aldy Hernandez <aldyh@redhat.com>
2183 PR tree-optimization/113735
2184 * value-relation.cc (equiv_oracle::add_equiv_to_block): Call
2187 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
2189 * config/avr/gen-avr-mmcu-specs.cc (struct McuInfo): New.
2190 (main, print_mcu, diagnose_mrodata_in_ram): Pass it down.
2192 2024-02-08 H.J. Lu <hjl.tools@gmail.com>
2196 * config/i386/constraints.md: List all constraints with j prefix.
2197 (j>): Change auto-dec to auto-inc in documentation.
2198 (je): Changed to a memory constraint with APX NDD TLS operand
2200 (jM): New memory constraint for APX NDD instructions.
2202 * config/i386/i386-protos.h (x86_poff_operand_p): Removed.
2203 * config/i386/i386.cc (x86_poff_operand_p): Likewise.
2204 * config/i386/i386.md (*add<dwi>3_doubleword): Use rjO.
2205 (*add<mode>_1[SWI48]): Use je and jM.
2206 (addsi_1_zext): Use jM.
2207 (*addv<dwi>4_doubleword_1[DWI]): Likewise.
2208 (*sub<mode>_1[SWI]): Use jM.
2209 (@add<mode>3_cc_overflow_1[SWI]): Likewise.
2210 (*add<dwi>3_doubleword_cc_overflow_1): Use rjO.
2211 (*and<dwi>3_doubleword): Likewise.
2213 (*andsi_1_zext): Likewise.
2214 (*and<mode>_1[SWI24]): Likewise.
2215 (*<code><dwi>3_doubleword[any_or]): Use rjO
2216 (*code<mode>_1[any_or SWI248]): Use jM.
2217 (*<code>si_1_zext[zero_extend + any_or]): Likewise.
2218 * config/i386/predicates.md (apx_ndd_memory_operand): New.
2219 (apx_ndd_add_memory_operand): Likewise.
2221 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
2224 * config/avr/avr-mcus.def (ata5797): Move from avr5 to avr4.
2225 * doc/avr-mmcu.texi: Rebuild.
2227 2024-02-08 Tamar Christina <tamar.christina@arm.com>
2229 PR tree-optimization/113808
2230 * tree-vect-loop.cc (vectorizable_live_operation): Don't cache the
2231 value cross iterations.
2233 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
2235 * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always
2236 defines __AVR_PM_BASE_ADDRESS__ if the core has it.
2238 2024-02-08 Richard Biener <rguenther@suse.de>
2240 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
2241 Revert last change to dr_may_alias_p.
2243 2024-02-08 Georg-Johann Lay <avr@gjlay.de>
2245 * config/avr/gen-avr-mmcu-specs.cc: Rename spec cc1_misc to
2246 cc1_rodata_in_ram. Rename spec link_misc to link_rodata_in_ram.
2247 Remove spec asm_misc.
2248 * config/avr/specs.h: Same.
2250 2024-02-08 Pan Li <pan2.li@intel.com>
2253 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Make
2254 sure the c.arg_num is >= 2 before checking.
2255 (struct build_frm_base): Ditto.
2256 (struct narrow_alu_def): Ditto.
2258 2024-02-07 Richard Biener <rguenther@suse.de>
2260 PR tree-optimization/113796
2261 * tree-if-conv.cc (combine_blocks): Wipe range-info before
2262 replacing PHIs and inserting predicates.
2264 2024-02-07 Roger Sayle <roger@nextmovesoftware.com>
2265 Uros Bizjak <ubizjak@gmail.com>
2268 * config/i386/i386-features.cc (timode_convert_cst): New helper
2269 function to convert a TImode CONST_SCALAR_INT_P to a V1TImode
2271 (timode_scalar_chain::convert_op): Use timode_convert_cst.
2272 (timode_scalar_chain::convert_insn): Delete REG_EQUAL notes.
2273 Use timode_convert_cst.
2275 2024-02-07 Victor Do Nascimento <victor.donascimento@arm.com>
2277 * config/aarch64/aarch64-sys-regs.def: Copy from Binutils.
2278 * config/aarch64/aarch64.h (AARCH64_FL_AIE): New.
2279 (AARCH64_FL_DEBUGv8p9): Likewise.
2280 (AARCH64_FL_FGT2): Likewise.Likewise.
2281 (AARCH64_FL_ITE): Likewise.
2282 (AARCH64_FL_PFAR): Likewise.
2283 (AARCH64_FL_PMUv3_ICNTR): Likewise.
2284 (AARCH64_FL_PMUv3_SS): Likewise.
2285 (AARCH64_FL_PMUv3p9): Likewise.
2286 (AARCH64_FL_RASv2): Likewise.
2287 (AARCH64_FL_S1PIE): Likewise.
2288 (AARCH64_FL_S1POE): Likewise.
2289 (AARCH64_FL_S2PIE): Likewise.
2290 (AARCH64_FL_S2POE): Likewise.
2291 (AARCH64_FL_SCTLR2): Likewise.
2292 (AARCH64_FL_SEBEP): Likewise.
2293 (AARCH64_FL_SPE_FDS): Likewise.
2294 (AARCH64_FL_TCR2): Likewise.
2296 2024-02-07 Richard Biener <rguenther@suse.de>
2298 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences):
2299 Only check whether reads are in-bound in places that are not safe.
2300 Fix dependence check. Add missing newline. Clarify comments.
2302 2024-02-07 Tamar Christina <tamar.christina@arm.com>
2304 PR tree-optimization/113750
2305 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Check
2306 for single predecessor when doing early break vect.
2307 * tree-vect-loop.cc (move_early_exit_stmts): Get gsi at the start but
2310 2024-02-07 Tamar Christina <tamar.christina@arm.com>
2312 PR tree-optimization/113731
2313 * gimple-iterator.cc (gsi_move_before): Take new parameter for update
2315 * gimple-iterator.h (gsi_move_before): Default new param to
2317 * tree-vect-loop.cc (move_early_exit_stmts): Call gsi_move_before with
2320 2024-02-07 Jakub Jelinek <jakub@redhat.com>
2322 PR tree-optimization/113756
2323 * range-op.cc (update_known_bitmask): For GIMPLE_UNARY_RHS,
2324 use TYPE_SIGN (lh.type ()) instead of sign for widest_int::from
2325 of lh_bits value and mask.
2327 2024-02-07 Jakub Jelinek <jakub@redhat.com>
2329 PR tree-optimization/113753
2330 * wide-int.cc (wi::mul_internal): Unpack op1val and op2val with
2331 UNSIGNED rather than SIGNED. If high or needs_overflow and prec is
2332 not a multiple of HOST_BITS_PER_WIDE_INT, shift left bits above prec
2333 so that they start with r[half_blocks_needed] lowest bit. Fix up
2334 computation of top mask for SIGNED.
2336 2024-02-07 Pan Li <pan2.li@intel.com>
2339 * config/riscv/riscv-protos.h (resolve_overloaded_builtin): Adjust
2340 the signature of func.
2341 * config/riscv/riscv-c.cc (riscv_resolve_overloaded_builtin): Ditto.
2342 * config/riscv/riscv-vector-builtins.cc (resolve_overloaded_builtin): Make
2343 overloaded func with empty args error.
2345 2024-02-06 H.J. Lu <hjl.tools@gmail.com>
2348 * config/i386/i386.cc (x86_64_select_profile_regnum): Return
2349 R10_REG after sorry.
2351 2024-02-06 Andrew Carlotti <andrew.carlotti@arm.com>
2353 * config/aarch64/aarch64.cc (aarch64_mangle_decl_assembler_name):
2354 Move before new caller, and add ".default" suffix.
2355 (get_suffixed_assembler_name): New.
2356 (make_resolver_func): Use get_suffixed_assembler_name.
2357 (aarch64_generate_version_dispatcher_body): Redo name mangling.
2359 2024-02-06 Jakub Jelinek <jakub@redhat.com>
2362 * config/aarch64/aarch64.cc (aarch64_output_sme_zero_za): Change tiles
2363 element from std::pair<unsigned int, char> to an unnamed struct.
2364 Adjust uses of tile range variable.
2366 2024-02-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2368 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::emit_vsetvl): Fix inifinite compilation.
2369 (pre_vsetvl::remove_vsetvl_pre_insns): Ditto.
2371 2024-02-06 Jakub Jelinek <jakub@redhat.com>
2374 * gimple-fold.cc (gimple_fold_builtin_strlen): For -fsanitize=address
2375 reset maxlen to sizetype maximum.
2377 2024-02-06 Jakub Jelinek <jakub@redhat.com>
2379 PR tree-optimization/113736
2380 * gimple-lower-bitint.cc (bitint_large_huge::limb_access): Use
2381 var's address space for MEM_REF or VIEW_CONVERT_EXPRs.
2383 2024-02-06 Jakub Jelinek <jakub@redhat.com>
2385 PR tree-optimization/113759
2386 * tree-ssa-math-opts.cc (convert_mult_to_widen): If actual_precision
2387 or from_unsignedN differs from properties of typeN, update typeN
2388 to build_nonstandard_integer_type. If TREE_TYPE (rhsN) is not
2389 uselessly convertible to typeN, convert it using fold_convert or
2390 build_and_insert_cast depending on if rhsN is INTEGER_CST or not.
2391 (convert_plusminus_to_widen): Likewise.
2393 2024-02-06 Tejas Belagod <tejas.belagod@arm.com>
2396 * config/aarch64/aarch64.cc (aarch64_class_max_nregs): Handle 64-bit
2397 vector structure modes correctly.
2399 2024-02-05 Christoph Müllner <christoph.muellner@vrull.eu>
2401 * config/riscv/thead.cc (th_print_operand_address): Fix compiler
2404 2024-02-05 H.J. Lu <hjl.tools@gmail.com>
2407 * config/i386/i386.cc (x86_64_select_profile_regnum): New.
2408 (x86_function_profiler): Call x86_64_select_profile_regnum to
2409 get a scratch register for large model profiling.
2411 2024-02-05 Richard Ball <richard.ball@arm.com>
2413 * config/arm/arm.cc (arm_output_mi_thunk): Emit
2414 insn for bti_c when bti is enabled.
2416 2024-02-05 Xi Ruoyao <xry111@xry111.site>
2418 * config/mips/mips-msa.md (neg<mode:MSA>2): Add missing mode for
2421 2024-02-05 Xi Ruoyao <xry111@xry111.site>
2423 * config/mips/mips-msa.md (elmsgnbit): New define_mode_attr.
2424 (neg<mode>2): Change the mode iterator from MSA to IMSA because
2425 in FP arithmetic we cannot use (0 - x) for -x.
2426 (neg<mode>2): New define_insn to implement FP vector negation,
2427 using a bnegi instruction to negate the sign bit.
2429 2024-02-05 Richard Biener <rguenther@suse.de>
2431 PR tree-optimization/113707
2432 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): After
2433 checking the avail set treat out-of-region defines as
2436 2024-02-05 Richard Biener <rguenther@suse.de>
2438 * tree-vect-data-refs.cc (vect_create_data_ref_ptr): Use
2439 the default mode when building a pointer.
2441 2024-02-05 Jakub Jelinek <jakub@redhat.com>
2443 PR tree-optimization/113737
2444 * gimple-lower-bitint.cc (gimple_lower_bitint): If GIMPLE_SWITCH
2445 has just a single label, remove it and make single successor edge
2448 2024-02-05 Jakub Jelinek <jakub@redhat.com>
2451 * config/i386/i386-features.cc (rest_of_handle_insert_vzeroupper):
2452 Remove REG_DEAD/REG_UNUSED notes at the end of the pass before
2455 2024-02-05 Richard Biener <rguenther@suse.de>
2458 * config/i386/i386-expand.cc
2459 (expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves):
2460 Use a new pseudo for the skipped number of bytes.
2462 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
2464 * config/riscv/riscv-cores.def: Add sifive-p450, sifive-p670.
2465 * doc/invoke.texi (RISC-V Options): Add sifive-p450,
2468 2024-02-05 Monk Chiang <monk.chiang@sifive.com>
2470 * config/riscv/riscv.md: Include sifive-p400.md.
2471 * config/riscv/sifive-p400.md: New file.
2472 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
2473 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
2475 * config/riscv/riscv.cc (sifive_p400_tune_info): New.
2476 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
2477 * doc/invoke.texi (RISC-V Options): Add sifive-p400-series
2479 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2481 * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
2482 Add missing ":SI" to the match_operator.
2484 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2486 * config/xtensa/xtensa.md (SHI): New mode iterator.
2487 (2 split patterns related to constsynth):
2488 Change to also accept HImode operands.
2490 2024-02-04 Jeff Law <jlaw@ventanamicro.com>
2492 * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
2495 2024-02-04 Xi Ruoyao <xry111@xry111.site>
2497 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
2499 * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
2500 (elmsgnbit): Likewise.
2501 (neg<mode:FVEC>2): New define_insn.
2502 * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
2503 are now instantiated in simd.md.
2505 2024-02-04 Xi Ruoyao <xry111@xry111.site>
2507 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
2508 use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
2511 2024-02-04 Li Wei <liwei@loongson.cn>
2513 * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
2514 (loongarch_expand_vselect_vconcat): Ditto.
2515 (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
2516 all 128-bit constant permutation situations.
2517 (loongarch_expand_lsx_shuffle): Adjust and rename function name.
2518 (loongarch_is_imm_set_shuffle): Renamed function name.
2519 (loongarch_expand_vec_perm_even_odd): Function forward declaration.
2520 (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
2521 extract-even and extract-odd permutations.
2522 (loongarch_is_odd_extraction): Delete.
2523 (loongarch_is_even_extraction): Ditto.
2524 (loongarch_expand_vec_perm_const): Adjust.
2526 2024-02-03 Jakub Jelinek <jakub@redhat.com>
2528 PR middle-end/113722
2529 * wide-int.cc (wi::bswap_large): Rename third argument from
2530 len to xlen and adjust use in safe_uhwi. Add len variable, set
2531 it to BLOCKS_NEEDED (precision) and use it for clearing of val
2532 and as canonize argument. Clear val using memset instead of
2535 2024-02-03 Jakub Jelinek <jakub@redhat.com>
2537 * ggc-common.cc (gt_pch_save): Allow addr to be equal to
2538 mmi.preferred_base + mmi.size - sizeof (void *).
2540 2024-02-03 Xi Ruoyao <xry111@xry111.site>
2542 * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
2543 * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
2544 the ODR-violating locale declaration.
2546 2024-02-02 Tamar Christina <tamar.christina@arm.com>
2548 PR tree-optimization/113588
2549 PR tree-optimization/113467
2550 * tree-vect-data-refs.cc
2551 (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
2552 (vect_analyze_early_break_dependences): Update comments.
2554 2024-02-02 John David Anglin <danglin@gcc.gnu.org>
2557 * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
2558 and PA_BUILTIN_SET_FPSR builtins.
2559 * (pa_builtins_icode): Declare.
2560 * (def_builtin, pa_fpu_init_builtins): New.
2561 * (pa_init_builtins): Initialize FPU builtins.
2562 * (pa_builtin_decl, pa_expand_builtin_1): New.
2563 * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
2564 PA_BUILTIN_SET_FPSR builtins.
2565 * (pa_atomic_assign_expand_fenv): New.
2566 * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
2568 (get_fpsr, put_fpsr): New expanders.
2569 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
2572 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2575 * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
2577 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
2579 * doc/extend.texi (Common Type Attributes): Fix typo in
2580 description of hardbool.
2582 2024-02-02 Jakub Jelinek <jakub@redhat.com>
2584 PR tree-optimization/113692
2585 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
2586 from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
2589 2024-02-02 Jakub Jelinek <jakub@redhat.com>
2591 PR middle-end/113699
2592 * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
2593 uninitialized large/huge _BitInt SSA_NAME inputs.
2595 2024-02-02 Jakub Jelinek <jakub@redhat.com>
2597 PR middle-end/113705
2598 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
2599 around wi::to_wide in order to compare value in prec precision.
2601 2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
2604 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2606 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
2608 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2610 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
2612 2024-02-02 Pan Li <pan2.li@intel.com>
2614 * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
2615 (riscv_pass_by_reference): Ditto.
2616 (riscv_fntype_abi): Ditto.
2618 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2620 * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
2621 (pre_vsetvl::cleaup): Remove vsetvl_pre.
2622 (pre_vsetvl::remove_vsetvl_pre_insns): New function.
2624 2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
2626 * config/loongarch/larchintrin.h
2627 (__frecipe_s): Update function return type.
2628 (__frecipe_d): Ditto.
2629 (__frsqrte_s): Ditto.
2630 (__frsqrte_d): Ditto.
2632 2024-02-02 Li Wei <liwei@loongson.cn>
2634 * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
2635 (loongarch_vector_costs::add_stmt_cost): Adjust.
2637 2024-02-02 Xi Ruoyao <xry111@xry111.site>
2639 * config/loongarch/loongarch.md (unspec): Add
2640 UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
2641 (la_pcrel64_two_parts): New define_insn.
2642 * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
2643 typo in the comment.
2644 (loongarch_call_tls_get_addr): If -mcmodel=extreme
2645 -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
2646 addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
2647 note to allow CSE addressing __tls_get_addr.
2648 (loongarch_legitimize_tls_address): If -mcmodel=extreme
2649 -mexplicit-relocs={always,auto}, address TLS IE symbols with
2650 la_pcrel64_two_parts.
2651 (loongarch_split_symbol): If -mcmodel=extreme
2652 -mexplicit-relocs={always,auto}, address symbols with
2653 la_pcrel64_two_parts.
2654 (loongarch_output_mi_thunk): Clean up unreachable code. If
2655 -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
2656 thunks with la_pcrel64_two_parts.
2658 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
2660 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
2661 Add support for call36.
2663 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
2665 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
2666 When the code model of the symbol is extreme and -mexplicit-relocs=auto,
2667 the macro instruction loading symbol address is not applicable.
2668 (loongarch_call_tls_get_addr): Adjust code.
2669 (loongarch_legitimize_tls_address): Likewise.
2671 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
2673 * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
2674 Add function declaration.
2675 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
2676 For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
2678 (loongarch_load_tls): Added macro support in extreme mode.
2679 (loongarch_call_tls_get_addr): Likewise.
2680 (loongarch_legitimize_tls_address): Likewise.
2681 (loongarch_force_address): Likewise.
2682 (loongarch_legitimize_move): Likewise.
2683 (loongarch_output_mi_thunk): Likewise.
2684 (loongarch_option_override_internal): Remove the code that detects
2685 explicit relocs status.
2686 (loongarch_handle_model_attribute): Likewise.
2687 * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
2688 * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
2689 (symbolic_off64_or_reg_operand): Likewise.
2691 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
2693 * config/loongarch/loongarch.cc (loongarch_load_tls):
2694 Load all types of tls symbols through one function.
2695 (loongarch_got_load_tls_gd): Delete.
2696 (loongarch_got_load_tls_ld): Delete.
2697 (loongarch_got_load_tls_ie): Delete.
2698 (loongarch_got_load_tls_le): Delete.
2699 (loongarch_call_tls_get_addr): Modify the called function name.
2700 (loongarch_legitimize_tls_address): Likewise.
2701 * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
2702 (@load_tls<mode>): New template.
2703 (@got_load_tls_ld<mode>): Delete.
2704 (@got_load_tls_le<mode>): Delete.
2705 (@got_load_tls_ie<mode>): Delete.
2707 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
2709 * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
2710 (loongarch_legitimize_address): Add logical transformation code.
2712 2024-02-01 Marek Polacek <polacek@redhat.com>
2714 * doc/invoke.texi: Update -Wdangling-reference documentation.
2716 2024-02-01 Uros Bizjak <ubizjak@gmail.com>
2719 * config/i386/i386.md (*cmp<dwi>_doubleword):
2720 Do not force SUBREG pieces to pseudos.
2722 2024-02-01 John David Anglin <danglin@gcc.gnu.org>
2724 * config/pa/pa.md (atomic_storedi_1): Fix bug in
2727 2024-02-01 Georg-Johann Lay <avr@gjlay.de>
2729 * config/avr/avr.cc: Tabify.
2731 2024-02-01 Richard Ball <richard.ball@arm.com>
2733 PR tree-optimization/111268
2734 * tree-vect-slp.cc (vectorizable_slp_permutation_1):
2735 Add variable-length check for vector input arguments
2738 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
2740 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
2741 hard-code number of SGPR/VGPR/AVGPR registers.
2742 * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
2743 SGPR/VGPR/AVGPR registers.
2745 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
2747 * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
2748 attribute, and include sifive-p600.md.
2749 * config/riscv/generic-ooo.md: Update type attribute.
2750 * config/riscv/generic.md: Update type attribute.
2751 * config/riscv/sifive-7.md: Update type attribute.
2752 * config/riscv/sifive-p600.md: New file.
2753 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
2754 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
2756 * config/riscv/riscv.cc (sifive_p600_tune_info): New.
2757 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
2758 * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
2760 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
2762 * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
2763 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
2764 * config/riscv/riscv.opt: New macro for 7 new unprivileged
2766 * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
2767 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
2769 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2771 * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
2772 -static-libasan. Add missing whitespace.
2774 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
2776 * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
2777 (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
2778 Don't 'define_constants'.
2780 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
2782 * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
2784 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
2786 * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
2787 [TARGET_RDNA3]: Adjust.
2789 2024-02-01 Richard Biener <rguenther@suse.de>
2791 PR tree-optimization/113693
2792 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
2793 data when available.
2795 2024-02-01 Jakub Jelinek <jakub@redhat.com>
2796 Jason Merrill <jason@redhat.com>
2799 * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
2800 on variables which were promoted to TREE_STATIC.
2802 2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
2803 Richard Biener <rguenther@suse.de>
2806 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
2807 information via tree_non_zero_bits to check if this operand
2808 is suitably extended for a widening (or highpart) multiplication.
2809 (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
2810 isn't already of the claimed type.
2812 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2815 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2817 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
2818 (generic_ooo_branch): ditto
2819 * config/riscv/generic.md (generic_sfb_alu): ditto
2820 (generic_fmul_half): ditto
2821 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
2822 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
2823 (sifive_7_popcount): ditto
2824 * config/riscv/vector.md: change rdfrm to fmove
2825 * config/riscv/zc.md: change pushpop to load/store
2827 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2830 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2831 Robin Dapp <rdapp.gcc@gmail.com>
2833 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
2834 (generic_ooo_vec_load): ditto
2835 (generic_ooo_vec_store): ditto
2836 (generic_ooo_vec_loadstore_seg): ditto
2837 (generic_ooo_vec_alu): ditto
2838 (generic_ooo_vec_fcmp): ditto
2839 (generic_ooo_vec_imul): ditto
2840 (generic_ooo_vec_fadd): ditto
2841 (generic_ooo_vec_fmul): ditto
2842 (generic_ooo_crypto): ditto
2843 (generic_ooo_perm): ditto
2844 (generic_ooo_vec_reduction): ditto
2845 (generic_ooo_vec_ordered_reduction): ditto
2846 (generic_ooo_vec_idiv): ditto
2847 (generic_ooo_vec_float_divsqrt): ditto
2848 (generic_ooo_vec_mask): ditto
2849 (generic_ooo_vec_vesetvl): ditto
2850 (generic_ooo_vec_setrm): ditto
2851 (generic_ooo_vec_readlen): ditto
2852 * config/riscv/riscv.md: include generic-vector-ooo
2853 * config/riscv/generic-vector-ooo.md: New file. to here
2855 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2858 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2860 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
2862 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2864 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
2866 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2867 Robin Dapp <rdapp.gcc@gmail.com>
2869 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
2870 (generic_ooo_vec_load): ditto
2871 (generic_ooo_vec_store): ditto
2872 (generic_ooo_vec_loadstore_seg): ditto
2873 (generic_ooo_vec_alu): ditto
2874 (generic_ooo_vec_fcmp): ditto
2875 (generic_ooo_vec_imul): ditto
2876 (generic_ooo_vec_fadd): ditto
2877 (generic_ooo_vec_fmul): ditto
2878 (generic_ooo_crypto): ditto
2879 (generic_ooo_perm): ditto
2880 (generic_ooo_vec_reduction): ditto
2881 (generic_ooo_vec_ordered_reduction): ditto
2882 (generic_ooo_vec_idiv): ditto
2883 (generic_ooo_vec_float_divsqrt): ditto
2884 (generic_ooo_vec_mask): ditto
2885 (generic_ooo_vec_vesetvl): ditto
2886 (generic_ooo_vec_setrm): ditto
2887 (generic_ooo_vec_readlen): ditto
2888 * config/riscv/riscv.md: include generic-vector-ooo
2889 * config/riscv/generic-vector-ooo.md: New file. to here
2891 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
2893 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
2894 (generic_ooo_branch): ditto
2895 * config/riscv/generic.md (generic_sfb_alu): ditto
2896 (generic_fmul_half): ditto
2897 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
2898 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
2899 (sifive_7_popcount): ditto
2900 * config/riscv/vector.md: change rdfrm to fmove
2901 * config/riscv/zc.md: change pushpop to load/store
2903 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
2906 * config/aarch64/aarch64-simd.md (split for movv8di):
2907 For strict aligned mode, use DImode instead of TImode.
2909 2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
2911 PR middle-end/113607
2912 * match.pd: Make sure else values match when folding a
2913 vec_cond into a conditional operation.
2915 2024-01-31 Marek Polacek <polacek@redhat.com>
2917 * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
2919 2024-01-31 Tamar Christina <tamar.christina@arm.com>
2920 Matthew Malcomson <matthew.malcomson@arm.com>
2923 * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
2925 * builtins.cc (expand_builtin): Include HWASAN when checking for
2928 2024-01-31 Richard Biener <rguenther@suse.de>
2930 PR middle-end/110176
2931 * match.pd (zext (bool) <= (int) 4294967295u): Make sure
2932 to match INTEGER_CST only without outstanding conversion.
2934 2024-01-31 Alex Coplan <alex.coplan@arm.com>
2937 * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
2938 V16QImode for the full 16-byte FPR saves in the vector PCS case.
2940 2024-01-31 Richard Biener <rguenther@suse.de>
2942 PR tree-optimization/111444
2943 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
2944 vn_reference_lookup_2 when optimistically skipping may-defs.
2946 2024-01-31 Richard Biener <rguenther@suse.de>
2948 PR tree-optimization/113630
2949 * tree-ssa-pre.cc (compute_avail): Avoid registering a
2950 reference with a representation with not matching base
2953 2024-01-31 Jakub Jelinek <jakub@redhat.com>
2955 PR rtl-optimization/113656
2956 * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
2957 <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
2959 2024-01-31 Jakub Jelinek <jakub@redhat.com>
2962 * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
2963 with BLKmode are larger than DWARF2_ADDR_SIZE.
2965 2024-01-31 Jakub Jelinek <jakub@redhat.com>
2967 PR tree-optimization/113639
2968 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
2969 For VIEW_CONVERT_EXPR set rhs1 to its operand.
2971 2024-01-31 Richard Biener <rguenther@suse.de>
2973 PR tree-optimization/113670
2974 * tree-vect-data-refs.cc (vect_check_gather_scatter):
2975 Make sure we can take the address of the reference base.
2977 2024-01-31 Georg-Johann Lay <avr@gjlay.de>
2979 * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
2980 ATA5835, ATtiny64AUTO, ATA5700M322.
2981 * doc/avr-mmcu.texi: Rebuild.
2983 2024-01-31 Alexandre Oliva <oliva@adacore.com>
2986 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
2989 2024-01-31 Alexandre Oliva <oliva@adacore.com>
2991 PR middle-end/112917
2992 PR middle-end/113100
2993 * builtins.cc (expand_builtin_stack_address): Use
2994 STACK_ADDRESS_OFFSET.
2995 * doc/extend.texi (__builtin_stack_address): Adjust.
2996 * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
2997 * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
2998 * doc/tm.texi: Rebuilt.
3000 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3003 * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
3004 (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
3005 (pre_vsetvl::compute_transparent): New function.
3006 (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
3008 2024-01-30 Fangrui Song <maskray@google.com>
3011 * config/i386/constraints.md: Define constraint "Ws".
3012 * doc/md.texi: Document it.
3014 2024-01-30 Marek Polacek <polacek@redhat.com>
3018 * doc/invoke.texi: Update -Wdangling-reference description.
3020 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3022 * config/xtensa/constraints.md (R, T, U):
3023 Change define_constraint to define_memory_constraint.
3024 * config/xtensa/predicates.md (move_operand): Don't check that a
3025 constant pool operand size is a multiple of UNITS_PER_WORD.
3026 * config/xtensa/xtensa.cc
3027 (xtensa_lra_p, TARGET_LRA_P): Remove.
3028 (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
3029 clause as it can no longer be true.
3030 (fixup_subreg_mem): Drop function.
3031 (xtensa_output_integer_literal_parts): Consider 16-bit wide
3033 (xtensa_legitimate_constant_p): Add short-circuit path for
3034 integer load instructions. Don't check that mode size is
3035 at least UNITS_PER_WORD.
3036 * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
3037 rather reload_in_progress and reload_completed.
3038 (doloop_end): Drop operand 2.
3039 (movhi_internal): Add alternative loading constant from a
3041 (define_split for DI register_operand): Don't limit to
3042 !TARGET_AUTO_LITPOOLS.
3043 * config/xtensa/xtensa.opt (mlra): Change to no effect.
3045 2024-01-30 Pan Li <pan2.li@intel.com>
3047 * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
3048 calculate the gpr count required by vls mode.
3049 (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
3050 (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
3052 (riscv_get_arg_info): Add vls mode handling.
3053 (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
3055 2024-01-30 Richard Biener <rguenther@suse.de>
3057 PR tree-optimization/113659
3058 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3059 Handle main exit without virtual use.
3061 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
3063 * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
3065 2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
3068 * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
3069 (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
3070 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
3071 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
3072 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
3073 * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
3075 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
3078 * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
3079 Mark all registers that occur in addresses as needing a GPR.
3081 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
3084 * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
3085 the containing insn as an extra parameter. Reset debug instructions
3086 if they reference a register that is no longer used by real insns.
3087 (early_ra::apply_allocation): Update calls accordingly.
3089 2024-01-30 Jakub Jelinek <jakub@redhat.com>
3091 PR tree-optimization/113603
3092 * tree-ssa-strlen.cc (strlen_pass::handle_store): After
3093 count_nonzero_bytes call refetch si using get_strinfo in case it
3094 has been unshared in the meantime.
3096 2024-01-30 Jakub Jelinek <jakub@redhat.com>
3098 PR middle-end/101195
3099 * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
3100 fit into unsigned HOST_WIDE_INT, return constm1_rtx.
3102 2024-01-30 Jin Ma <jinma@linux.alibaba.com>
3104 * config/riscv/thead.cc (th_print_operand_address): Change %ld
3107 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
3108 Manolis Tsamis <manolis.tsamis@vrull.eu>
3109 Philipp Tomsich <philipp.tomsich@vrull.eu>
3111 * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
3112 * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
3114 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
3115 Call on framework moved later.
3117 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
3119 * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
3120 instruction in naked function epilogues.
3122 2024-01-29 YunQiang Su <syq@gcc.gnu.org>
3125 * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
3126 gcc_cv_as_mips_explicit_relocs.
3127 * configure: Regnerated.
3129 2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
3132 * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
3133 Correct generated RTL.
3134 (arm_rev16si2_alt1): Correctly handle conditional execution.
3135 (arm_rev16si2_alt2): Likewise.
3137 2024-01-29 Richard Biener <rguenther@suse.de>
3139 PR middle-end/113622
3140 * expr.cc (expand_assignment): Spill hard registers if
3141 we index them with a variable offset.
3143 2024-01-29 Richard Biener <rguenther@suse.de>
3145 PR middle-end/113622
3146 * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
3147 Also allow DECL_HARD_REGISTER variables.
3149 2024-01-29 Alex Coplan <alex.coplan@arm.com>
3152 * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
3153 Use iterate_safely when iterating over debug uses.
3154 (fixup_debug_uses): Likewise.
3155 (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
3156 over nondebug insns instead of manually maintaining the next insn.
3157 * iterator-utils.h (class safe_iterator): New.
3158 (iterate_safely): New.
3160 2024-01-29 H.J. Lu <hjl.tools@gmail.com>
3163 * config/i386/i386-options.cc (ix86_set_func_type): Save
3164 callee-saved registers in noreturn functions for -O0/-Og.
3166 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
3169 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
3170 define for !TARGET_RDNA2_PLUS.
3172 2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
3175 * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
3176 workaround for right shifts.
3177 (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
3178 (vect_determine_precisions_from_range): Be more selective about
3179 which codes can be narrowed based on their input and output ranges.
3180 For shifts, require at least one more bit of precision than the
3181 maximum shift amount.
3183 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
3185 * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
3187 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
3189 * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
3190 but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
3193 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
3196 * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
3197 (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
3198 (SET_SRAM_ECC_UNSET): ... this.
3199 (copy_early_debug_info): Remove gfx900 special case, now handled as
3200 part of the generic handling.
3201 (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
3203 2024-01-29 Jakub Jelinek <jakub@redhat.com>
3205 PR tree-optimization/110603
3206 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
3207 setting of pdata->maxlen to vr.upper_bound (which is unconditionally
3208 overwritten anyway). Avoid creating invalid range with minlen
3209 larger than maxlen. Formatting fix.
3211 2024-01-29 Richard Biener <rguenther@suse.de>
3214 * tree-inline.cc (initialize_inlined_parameters): Reverse
3215 the decl chain of inlined parameters.
3217 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
3219 * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
3220 alignment of CFString constants by setting DECL_USER_ALIGN.
3222 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
3223 Jakub Jelinek <jakub@redhat.com>
3226 * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
3227 and BUILT_IN_GCC_NESTED_PTR_DELETED.
3228 * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
3229 BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
3230 rename the library fallbacks to __gcc_nested_func_ptr_created and
3231 __gcc_nested_func_ptr_deleted.
3232 * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
3233 and __gcc_nested_func_ptr_deleted.
3234 * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
3235 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
3236 * tree.cc (build_common_builtin_nodes): Build the
3237 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
3238 builtins only for non-explicit.
3240 2024-01-28 YunQiang Su <syq@gcc.gnu.org>
3242 * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
3244 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
3247 * config/i386/i386-options.cc (ix86_set_func_type): Don't
3248 save and restore callee saved registers for a noreturn function
3249 with nothrow or compiled with -fno-exceptions.
3251 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
3255 * config/i386/i386-expand.cc (ix86_expand_call): Replace
3256 no_caller_saved_registers check with call_saved_registers check.
3257 Clobber all registers that are not used by the callee with
3258 no_callee_saved_registers attribute.
3259 * config/i386/i386-options.cc (ix86_set_func_type): Set
3260 call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
3261 noreturn function. Disallow no_callee_saved_registers with
3262 interrupt or no_caller_saved_registers attributes together.
3263 (ix86_set_current_function): Replace no_caller_saved_registers
3264 check with call_saved_registers check.
3265 (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
3266 (ix86_handle_call_saved_registers_attribute): This.
3267 (ix86_gnu_attributes): Add
3268 ix86_handle_call_saved_registers_attribute.
3269 * config/i386/i386.cc (ix86_conditional_register_usage): Replace
3270 no_caller_saved_registers check with call_saved_registers check.
3271 (ix86_function_ok_for_sibcall): Don't allow callee with
3272 no_callee_saved_registers attribute when the calling function
3273 has callee-saved registers.
3274 (ix86_comp_type_attributes): Also check
3275 no_callee_saved_registers.
3276 (ix86_epilogue_uses): Replace no_caller_saved_registers check
3277 with call_saved_registers check.
3278 (ix86_hard_regno_scratch_ok): Likewise.
3279 (ix86_save_reg): Replace no_caller_saved_registers check with
3280 call_saved_registers check. Don't save any registers for
3281 TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
3282 TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
3283 no_callee_saved_registers attribute is called.
3284 (find_drap_reg): Replace no_caller_saved_registers check with
3285 call_saved_registers check.
3286 * config/i386/i386.h (call_saved_registers_type): New enum.
3287 (machine_function): Replace no_caller_saved_registers with
3288 call_saved_registers.
3289 * doc/extend.texi: Document no_callee_saved_registers attribute.
3291 2024-01-27 Jakub Jelinek <jakub@redhat.com>
3293 PR tree-optimization/113614
3294 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
3295 widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
3296 TRUNC_MOD_EXPR or FLOAT_EXPR uses.
3298 2024-01-27 Jakub Jelinek <jakub@redhat.com>
3300 PR tree-optimization/113568
3301 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
3302 For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
3303 in the widening extension checks.
3305 2024-01-27 Jakub Jelinek <jakub@redhat.com>
3307 * gimple-lower-bitint.cc (gimple_lower_bitint): For
3308 TDF_DETAILS dump mapping of SSA_NAMEs to decls.
3310 2024-01-26 Hans-Peter Nilsson <hp@axis.com>
3312 * cgraphunit.cc (process_function_and_variable_attributes): Tweak
3313 the warning for an attribute-always_inline without inline declaration.
3315 2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
3318 * genopinit.cc (main): Split init_all_optabs into functions
3319 of 1000 patterns each.
3321 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
3323 * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
3325 * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
3326 * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
3329 2024-01-26 Andrew Stubbs <ams@baylibre.com>
3331 * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
3332 * config/gcn/gcn-valu.md (all_convert): New iterator.
3333 (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
3334 define_expand, and rename the old one to ...
3335 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
3336 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
3337 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
3338 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
3339 * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
3340 (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
3341 * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
3342 (<u>mulqihi3_scalar): Likewise.
3344 2024-01-26 Richard Biener <rguenther@suse.de>
3346 PR tree-optimization/113602
3347 * tree-data-ref.cc (dr_analyze_innermost): Fail when
3348 the base object isn't addressable.
3350 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
3352 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
3353 "--amdhsa-code-object-version=" argument.
3354 (ASM_SPEC): Use it; replace previous version of it.
3356 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3358 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
3359 (pre_vsetvl::emit_vsetvl): Ditto.
3361 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
3363 * config/loongarch/lasx.md (vec_extract<mode>_0):
3364 New define_insn_and_split patten.
3366 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
3368 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
3370 2024-01-26 Li Wei <liwei@loongson.cn>
3372 * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
3374 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3377 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
3379 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
3382 * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
3383 undefined shift after the call to exact_log2.
3385 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
3388 * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
3389 before taking the negative of it.
3391 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
3394 * lra-constraints.cc (curr_insn_transform): Change class even for
3395 spilled pseudo successfully matched with with NO_REGS.
3397 2024-01-25 Georg-Johann Lay <avr@gjlay.de>
3400 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
3402 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
3405 * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
3406 (aarch64_expand_epilogue): Use the new function.
3407 (aarch64_split_compare_and_swap): Likewise.
3408 (aarch64_split_atomic_op): Likewise.
3410 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
3412 PR middle-end/112971
3413 * fold-const.cc (simplify_const_binop): New function for binop
3414 simplification of two constant vectors when element-wise
3415 handling is not necessary.
3416 (const_binop): Call new function.
3418 2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
3420 * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
3421 * config/riscv/constraints.md: Likewise.
3422 * config/riscv/corev.def: Likewise.
3423 * config/riscv/corev.md: Likewise.
3424 * config/riscv/predicates.md: Likewise.
3425 * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
3426 * config/riscv/riscv-ftypes.def: Likewise.
3427 * config/riscv/riscv.opt: Likewise.
3428 * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
3429 * doc/extend.texi: Add XCVbitmanip builtin documentation.
3430 * doc/sourcebuild.texi: Likewise.
3432 2024-01-25 Tobias Burnus <tburnus@baylibre.com>
3434 * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
3436 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
3439 * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
3440 (riscv_fntype_abi): Ditto.
3441 * config/riscv/riscv.opt: Ditto.
3443 2024-01-25 Jakub Jelinek <jakub@redhat.com>
3445 PR middle-end/113574
3446 * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
3447 count against TYPE_PRECISION rather than TYPE_SIZE.
3449 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
3452 * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
3453 Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
3455 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
3458 * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
3459 whether each split instruction is a load that clobbers the source
3460 address. Emit that instruction last if so.
3462 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
3465 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
3467 (<optab><Vnarrowq><mode>2): Use it instead of generating a
3468 paradoxical subreg for the input.
3470 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3472 * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
3473 (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
3474 predecessors dump information.
3476 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3478 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
3479 redundant full available computation.
3480 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
3482 2024-01-25 Jakub Jelinek <jakub@redhat.com>
3484 * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
3485 * doc/rtl.texi (CONST_VECTOR): Likewise.
3487 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3489 * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
3490 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
3491 (pass_vsetvl::execute): Ditto.
3492 * config/riscv/riscv.opt: Ditto.
3494 2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
3496 * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
3497 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
3499 2024-01-25 Richard Biener <rguenther@suse.de>
3501 PR tree-optimization/113576
3502 * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
3503 exits with may_be_zero niters when its the last one.
3505 2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
3507 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
3508 For symbols of type tls, non-zero Offset is not generated.
3510 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
3512 * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
3513 P9 with m32 and mpowerpc64.
3515 2024-01-25 liuhongt <hongtao.liu@intel.com>
3517 * config/i386/i386-options.cc (ix86_option_override_internal):
3518 Enable -mlam=u57 by default when compiled with
3519 -fsanitize=hwaddress.
3521 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
3523 * common/config/riscv/riscv-common.cc (riscv_implied_info):
3524 Remove {"ztso", "a"}.
3526 2024-01-24 Martin Jambor <mjambor@suse.cz>
3530 * cgraph.h (cgraph_edge): Add a parameter to
3531 redirect_call_stmt_to_callee.
3532 * ipa-param-manipulation.h (ipa_param_adjustments): Add a
3533 parameter to modify_call.
3534 (ipa_release_ssas_in_hash): Declare.
3535 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
3536 parameter killed_ssas, pass it to padjs->modify_call.
3537 * ipa-param-manipulation.cc (purge_all_uses): New function.
3538 (ipa_param_adjustments::modify_call): New parameter killed_ssas.
3539 Instead of substituting uses, invoke purge_all_uses. If
3540 hash of killed SSAs has not been provided, create a temporary one
3541 and release SSAs that have been added to it.
3542 (compare_ssa_versions): New function.
3543 (ipa_release_ssas_in_hash): Likewise.
3544 * tree-inline.cc (redirect_all_calls): Create
3545 id->killed_new_ssa_names earlier, pass it to edge redirection,
3547 (copy_body): Release SSAs in id->killed_new_ssa_names.
3549 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
3552 * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
3553 TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
3555 2024-01-24 Monk Chiang <monk.chiang@sifive.com>
3558 * config/riscv/sfb.md: New splitters to rewrite single bit
3559 sign extension as the condition to SFB instructions.
3561 2024-01-24 Jan Hubicka <jh@suse.cz>
3564 * common.opt: (flimit-function-alignment): Reorder alphabeticaly
3565 (fmin-function-alignment): New parameter.
3566 * doc/invoke.texi: (-fmin-function-alignment): Document.
3567 (-falign-functions,-falign-loops,-falign-labels): Mention that
3568 aglinments are ignored in cold code.
3569 * varasm.cc (assemble_start_function): Handle min-function-alignment.
3571 2024-01-24 Tamar Christina <tamar.christina@arm.com>
3574 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
3576 * config/aarch64/iterators.md (VQDIV): Remove.
3577 (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
3578 SVE_I_SIMD_DI): New.
3579 (VPRED, sve_lane_con): Add V4SI and V2DI.
3580 * config/aarch64/aarch64-sve.md (<optab><mode>3,
3581 @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
3582 (mul<mode>3): New, split from <optab><mode>3.
3583 (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
3584 * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
3585 *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
3586 SVE_FULL_HSDI_SIMD_DI.
3588 2024-01-24 Tamar Christina <tamar.christina@arm.com>
3590 PR tree-optimization/113552
3591 * config/aarch64/aarch64.cc
3592 (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
3594 2024-01-24 Martin Jambor <mjambor@suse.cz>
3597 * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
3598 count is equal or greater than the limit. Use the limit from the
3601 2024-01-24 YunQiang Su <syq@gcc.gnu.org>
3603 * configure.ac: Detect the explicit relocs support for
3604 mips, and define C macro MIPS_EXPLICIT_RELOCS.
3605 * config.in: Regenerated.
3606 * configure: Regenerated.
3607 * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
3608 * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
3609 * config/mips/mips.cc(mips_set_compression_mode): Sorry if
3610 !TARGET_EXPLICIT_RELOCS instead of just set it.
3611 * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
3612 TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
3613 * config/mips/mips.opt: Introduce -mexplicit-relocs= option
3614 and define -m(no-)explicit-relocs as aliases.
3616 2024-01-24 Alex Coplan <alex.coplan@arm.com>
3618 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
3620 (-mlate-ldp-fusion): Likewise.
3622 2024-01-24 Tamar Christina <tamar.christina@arm.com>
3624 * tree-vect-loop.cc (vect_get_vect_def,
3625 vect_create_epilog_for_reduction): Rename main_exit_p to
3628 2024-01-24 Tamar Christina <tamar.christina@arm.com>
3630 PR tree-optimization/113364
3631 * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
3632 early exits then we must reduce from the first offset for all of them.
3634 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3637 * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
3639 (get_bb_index): Ditto.
3640 (pre_vsetvl::compute_avl_def_data): Ditto.
3641 (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
3642 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
3644 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
3645 Richard Sandiford <richard.sandiford@arm.com>
3648 * ccmp.cc (ccmp_candidate_p): Add outer argument.
3649 Allow if the outer is true and the lhs is used more
3651 (expand_ccmp_expr): Update call to ccmp_candidate_p.
3652 * expr.h (expand_expr_real_gassign): Declare.
3653 * expr.cc (expand_expr_real_gassign): New function, split out from...
3654 (expand_expr_real_1): ...here.
3655 * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
3657 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3660 * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
3661 (fixup_debug_use): New.
3662 (fixup_debug_uses_trailing_add): New.
3663 (fixup_debug_uses): New. Use it ...
3664 (ldp_bb_info::fuse_pair): ... here.
3665 (try_promote_writeback): Call fixup_debug_uses_trailing_add to
3666 fix up debug uses of the base register that are affected by
3667 folding in the trailing add insn.
3669 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3672 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
3673 Update trailing nondebug uses of the base register in the case
3674 of cancelling writeback.
3676 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3679 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
3680 (debug_insn_use_iterator): New.
3681 (set_info::first_debug_insn_use): New.
3682 (set_info::debug_insn_uses): New.
3683 * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
3684 (set_info::first_debug_insn_use): New.
3685 (set_info::debug_insn_uses): New.
3687 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3690 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
3691 Don't record hazards against the opposite insn in the pair.
3693 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3696 * config/aarch64/aarch64-ldp-fusion.cc
3697 (struct stp_change_builder): New.
3698 (decide_stp_strategy): Reanme to ...
3699 (try_repurpose_store): ... this.
3700 (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
3701 construct stp changes. Fix up uses when inserting new stp insns.
3703 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3706 * rtl-ssa.h: Include hash-set.h.
3707 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
3708 new_sets parameter and use it to keep track of new user-created sets.
3709 (function_info::apply_changes_to_insn): Also call add_def on new sets.
3710 (function_info::change_insns): Add hash_set to keep track of new
3711 user-created defs. Plumb it through.
3712 * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
3713 apply_changes_to_insn.
3715 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3718 * rtl-ssa/accesses.cc (function_info::create_use): New.
3719 * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
3720 Ensure new uses end up referring to permanent defs.
3721 * rtl-ssa/functions.h (function_info::create_use): Declare.
3723 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3726 * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
3727 to finalize_new_accesses from the backwards placement loop, run it
3728 forwards in a separate loop.
3730 2024-01-23 Richard Biener <rguenther@suse.de>
3732 PR tree-optimization/113552
3733 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
3734 floor_log2 instead of exact_log2 on the number of calls.
3736 2024-01-23 Jeff Law <jlaw@ventanamicro.com>
3737 Jakub Jelinek <jakub@redhat.com>
3739 * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
3742 2024-01-23 Richard Biener <rguenther@suse.de>
3744 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3745 Separate single and multi-exit case when creating PHIs between
3746 the main and epilogue.
3748 2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
3751 * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
3752 MODE_single variants of functions that don't take tuple arguments.
3754 2024-01-23 Alex Coplan <alex.coplan@arm.com>
3757 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
3758 Don't assert recog success, just punt if the writeback pair
3761 2024-01-23 Jakub Jelinek <jakub@redhat.com>
3763 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
3764 ATTRIBUTE_UNUSED to decl.
3766 2024-01-23 Richard Biener <rguenther@suse.de>
3769 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
3770 handle unexpected but bogus DIE contexts when not checking
3773 2024-01-23 Jakub Jelinek <jakub@redhat.com>
3775 PR tree-optimization/113462
3776 * fold-const.cc (native_interpret_int): Don't punt if total_bytes
3777 is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
3778 (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
3779 sizes between 129 and 8192 bytes.
3781 2024-01-23 Xi Ruoyao <xry111@xry111.site>
3783 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
3784 If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
3785 for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
3786 (loongarch_call_tls_get_addr): Do not split symbols of
3787 SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
3788 EXPLICIT_RELOCS_AUTO.
3790 2024-01-23 Richard Biener <rguenther@suse.de>
3792 * alias.cc (known_base_value_p): Remove.
3793 (find_base_value): Remove PLUS/MINUS handling
3794 when both operands are not CONST_INT_P.
3796 2024-01-23 Richard Biener <rguenther@suse.de>
3798 PR rtl-optimization/113255
3799 * alias.cc (find_base_term): Remove PLUS/MINUS handling
3800 when both operands are not CONST_INT_P.
3802 2024-01-23 Richard Biener <rguenther@suse.de>
3805 * dwarf2out.cc (dwarf2out_finish): Reset all type units
3806 for the fat part of an LTO compile.
3808 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
3810 * doc/sourcebuild.texi: Add attributes for keywords.
3812 2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
3815 * doc/invoke.texi (Warning Options): Correct lists of options
3816 enabled by -Wall and -Wextra by checking against common.opt
3819 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
3822 * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
3823 instead of cpu_optaliases.
3824 (check_arch): Use arch_opt_alias instead of arch_optaliases.
3826 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3828 * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
3829 * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
3830 * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
3832 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3835 * config/riscv/riscv.md: Use reg instead of subreg.
3837 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
3840 * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
3841 to match the compiler default.
3842 (simple_object_copy_lto_debug_sections): Never unlink the outfile
3843 on error as the caller does so.
3844 (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
3845 (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
3847 2024-01-22 Richard Biener <rguenther@suse.de>
3849 PR tree-optimization/113373
3850 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3851 Create LC PHIs in the exit blocks where necessary.
3852 * tree-vect-loop.cc (vectorizable_live_operation): Do not try
3853 to handle missing LC PHIs.
3854 (find_connected_edge): Remove.
3855 (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
3857 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3859 * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
3861 2024-01-22 xuli <xuli1@eswincomputing.com>
3864 * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
3865 (registered_function::overloaded_hash):refactor.
3866 (resolve_overloaded_builtin):avoid internal ICE.
3868 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
3872 * calls.cc (emit_library_call_value_1): Pass valid TYPE
3874 * expr.cc (emit_push_insn): Likewise.
3876 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
3878 * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
3879 correcction version of last change.
3881 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
3883 * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
3884 fix bugs in signature.
3886 2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
3887 Richard Biener <rguenther@suse.de>
3889 PR rtl-optimization/111267
3890 * fwprop.cc (fwprop_propagation::profitabe_p): Rename
3891 profitable_p method to likely_profitable_p.
3892 (try_fwprop_subst_node): Update call to likely_profitable_p.
3893 Only bail-out early when !prop.likely_profitable_p for instructions
3894 that are not single sets. When comparing costs, bail-out if the
3895 cost is unchanged and !prop.likely_profitable_p.
3897 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
3900 * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
3901 isn't enabled by -Wunused unless -Wextra is provided, and that
3902 -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
3903 -Wunused doesn't enable -Wunused-* options documented as behaving
3904 otherwise, and list them explicitly.
3906 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
3909 * doc/invoke.texi (Warning Options): Fix broken example and
3910 clean up/reorganize the others. Also describe what the short-form
3913 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
3916 * doc/invoke.texi (Option Summary): Add -Warray-parameter.
3917 (Warning Options): Correct/edit discussion of -Warray-parameter
3918 to make the first example less confusing, and fill in missing info.
3920 2024-01-20 Jakub Jelinek <jakub@redhat.com>
3922 PR tree-optimization/113462
3923 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
3924 Handle rhs1 INTEGER_CST like SSA_NAME.
3926 2024-01-20 Jakub Jelinek <jakub@redhat.com>
3928 PR tree-optimization/113491
3929 * tree-switch-conversion.cc (switch_conversion::build_constructors):
3930 If elt.index has precision higher than sizetype, fold_convert it to
3932 (switch_conversion::array_value_type): Return type if type is
3933 BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
3934 (switch_conversion::build_arrays): Use unsigned_type_for rather than
3935 lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
3936 above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
3937 higher than sizetype, use sizetype as tidx type and fold_convert the
3938 subtraction to sizetype.
3940 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3942 * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
3943 (riscv_vector_mode_supported_any_target_p): Ditto.
3945 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
3948 * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
3949 (TARGET_ZERO_CALL_USED_REGS): Define.
3951 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
3954 * config/m68k/m68k.cc (output_andsi3): Use QImode for
3955 address adjusted for 1-byte RMW access.
3956 (output_iorsi3): Likewise.
3957 (output_xorsi3): Likewise.
3959 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
3961 * doc/invoke.texi (RISC-V Options): Add list of supported
3964 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3967 * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
3968 (RVV_VUNDEF): Ditto.
3969 * config/riscv/riscv-vsetvl.cc: Add timevar.
3971 2024-01-19 Richard Biener <rguenther@suse.de>
3974 * lto-streamer-in.cc (lto_read_tree_1): When there isn't
3975 an early DIE but there should be, do not pretend there is.
3977 2024-01-19 Richard Biener <rguenther@suse.de>
3979 PR tree-optimization/113494
3980 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
3981 Handle endless loop on exit. Handle re-allocated PHI.
3983 2024-01-19 Jakub Jelinek <jakub@redhat.com>
3985 PR tree-optimization/113464
3986 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
3987 optimize loads into GIMPLE_ASM stmts.
3989 2024-01-19 Jakub Jelinek <jakub@redhat.com>
3991 PR tree-optimization/113463
3992 * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
3993 Only look through NOP_EXPRs if rhs1 doesn't have wider type than
3996 2024-01-19 Jakub Jelinek <jakub@redhat.com>
3998 PR tree-optimization/113459
3999 * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
4000 TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
4001 of SCALAR_INT_TYPE_MODE if type has BLKmode.
4002 (vn_reference_lookup_3): Likewise. Formatting fix.
4004 2024-01-19 Jakub Jelinek <jakub@redhat.com>
4005 Richard Biener <rguenther@suse.de>
4007 * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
4008 VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
4009 * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
4010 but adjust_address also for BLKmode mode and MEM op0.
4012 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
4014 * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
4017 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
4019 * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
4021 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
4023 * common/config/riscv/riscv-common.cc
4024 (riscv_subset_list::parse_std_ext): Remove.
4025 (riscv_subset_list::parse_multiletter_ext): Remove.
4026 * config/riscv/riscv-subset.h
4027 (riscv_subset_list::parse_std_ext): Remove.
4028 (riscv_subset_list::parse_multiletter_ext): Remove.
4030 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
4032 * common/config/riscv/riscv-common.cc
4033 (riscv_subset_list::parse_single_std_ext): New parameter.
4034 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
4035 (riscv_subset_list::parse_single_ext): Ditto.
4036 (riscv_subset_list::parse): Relax the order for the input of ISA
4038 * config/riscv/riscv-subset.h
4039 (riscv_subset_list::parse_single_std_ext): New parameter.
4040 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
4041 (riscv_subset_list::parse_single_ext): Ditto.
4043 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
4045 * common/config/riscv/riscv-common.cc
4046 (riscv_subset_list::parse_base_ext): New.
4047 (riscv_subset_list::parse): Extract part of logic into
4048 riscv_subset_list::parse_base_ext.
4049 * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
4052 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
4054 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
4057 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
4059 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
4062 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
4065 * doc/extend.texi (Common Variable Attributes): Explain what
4066 happens when multiple variables with cleanups are in the same scope.
4068 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
4071 * doc/extend.texi (Common Function Attributes): Document that
4072 noinline also disables some interprocedural optimizations and
4073 improve flow to the part about using inline asm instead to
4074 disable calls from being optimized away completely. Remove the
4075 sentence that says noipa is mainly for internal compiler testing.
4077 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
4079 PR tree-optimization/69807
4080 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
4082 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
4085 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
4086 from x86 Windows Options.
4088 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
4091 * doc/extend.texi (C Extensions): Add new section to menu.
4092 (Function Attributes): Move dangling index entries to....
4093 (Const and Volatile Functions): New section.
4095 2024-01-18 David Malcolm <dmalcolm@redhat.com>
4097 PR middle-end/112684
4098 * toplev.cc (toplev::main): Don't ICE in
4099 -fdiagnostics-generate-patch when exiting after options,
4100 since no edit context will have been created.
4102 2024-01-18 Richard Biener <rguenther@suse.de>
4104 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
4107 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
4109 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
4110 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
4112 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4113 Jin Ma <jinma@linux.alibaba.com>
4114 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4115 Christoph Müllner <christoph.muellner@vrull.eu>
4117 * config/riscv/thead.cc
4118 (th_asm_output_opcode): Rewrite some instructions.
4120 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4121 Jin Ma <jinma@linux.alibaba.com>
4122 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4123 Christoph Müllner <christoph.muellner@vrull.eu>
4125 * config/riscv/riscv.md (none,thv,rvv): New attribute.
4126 (no,yes): Add an attribute to disable alternative
4127 for xtheadvector or RVV1.0.
4128 * config/riscv/vector.md:
4129 Disable alternatives that destination register overlaps
4130 source register group for xtheadvector.
4132 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4133 Jin Ma <jinma@linux.alibaba.com>
4134 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4135 Christoph Müllner <christoph.muellner@vrull.eu>
4137 * config/riscv/riscv-vector-builtins-bases.cc
4138 (class th_loadstore_width): Define new builtin bases.
4139 (class th_extract): Define new builtin bases.
4140 (BASE): Define new builtin bases.
4141 * config/riscv/riscv-vector-builtins-bases.h:
4142 Define new builtin class.
4143 * config/riscv/riscv-vector-builtins-shapes.cc
4144 (struct th_loadstore_width_def): Define new builtin shapes.
4145 (struct th_indexed_loadstore_width_def):
4146 Define new builtin shapes.
4147 (struct th_extract_def): Define new builtin shapes.
4148 (SHAPE): Define new builtin shapes.
4149 * config/riscv/riscv-vector-builtins-shapes.h:
4150 Define new builtin shapes.
4151 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
4152 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
4153 * config/riscv/riscv-vector-builtins.h
4154 (enum required_ext): Add new XTheadVector member.
4155 (struct function_group_info): Likewise.
4156 * config/riscv/t-riscv:
4157 Add thead-vector-builtins-functions.def
4158 * config/riscv/thead-vector.md
4159 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
4160 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
4161 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
4162 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
4163 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
4164 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
4165 (@pred_th_extract<mode>): Likewise.
4166 (*pred_th_extract<mode>): Likewise.
4167 * config/riscv/thead-vector-builtins-functions.def: New file.
4169 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4170 Jin Ma <jinma@linux.alibaba.com>
4171 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4172 Christoph Müllner <christoph.muellner@vrull.eu>
4174 * config.gcc: Add files for XTheadVector intrinsics.
4175 * config/riscv/autovec.md: Guard XTheadVector.
4176 * config/riscv/predicates.md: Disable immediate vl
4178 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
4179 Add pragma for XTheadVector.
4180 * config/riscv/riscv-string.cc (riscv_expand_block_move):
4182 * config/riscv/riscv-v.cc (vls_mode_valid_p):
4184 * config/riscv/riscv-vector-builtins-bases.cc:
4185 Do not normalize vsetvl instructions for XTheadVector.
4186 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
4187 New check type function.
4188 (build_one): Adjust for XTheadVector.
4189 * config/riscv/riscv-vector-switch.def (ENTRY):
4190 Disable fractional mode for the XTheadVector extension.
4191 (TUPLE_ENTRY): Likewise.
4192 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
4194 (riscv_preferred_simd_mode): Likewsie.
4195 (riscv_autovectorize_vector_modes): Likewise.
4196 (riscv_vector_mode_supported_any_target_p): Likewise.
4197 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
4198 * config/riscv/thead.cc (th_asm_output_opcode):
4199 Rewrite vsetvl instructions.
4200 * config/riscv/vector.md:
4201 Include thead-vector.md and change fractional LMUL
4203 * config/riscv/riscv_th_vector.h: New file.
4204 * config/riscv/thead-vector.md: New file.
4206 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4207 Jin Ma <jinma@linux.alibaba.com>
4208 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4209 Christoph Müllner <christoph.muellner@vrull.eu>
4211 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
4212 Add new function to add assembler insn code prefix/suffix.
4213 (th_asm_output_opcode):
4214 Add Thead function to add assembler insn code prefix/suffix.
4215 * config/riscv/riscv.cc (riscv_asm_output_opcode):
4216 Implement function to add assembler insn code prefix/suffix.
4217 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
4218 Add new function to add assembler insn code prefix/suffix.
4219 * config/riscv/thead.cc (th_asm_output_opcode):
4220 Implement Thead function to add assembler insn code
4223 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4224 Jin Ma <jinma@linux.alibaba.com>
4225 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4226 Christoph Müllner <christoph.muellner@vrull.eu>
4228 * common/config/riscv/riscv-common.cc
4229 (riscv_subset_list::parse): Add new vendor extension.
4230 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
4232 * config/riscv/riscv.opt: Add new mask.
4234 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
4236 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
4237 to be conditional on macosx-version-min.
4239 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
4241 * config/darwin.cc (darwin_objc1_section): Use the correct
4242 meta-data version for constant strings.
4243 (machopic_select_section): Assert if we fail to handle CFString
4244 sections as Obejctive-C meta-data or drectly.
4246 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
4248 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
4249 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
4250 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
4251 versions when the object format is Mach-O.
4253 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
4256 * config/darwin.cc (machopic_select_section): Handle C and C++
4258 (darwin_rename_builtins): Move this out of the CFString code.
4259 (darwin_libc_has_function): Likewise.
4260 (darwin_build_constant_cfstring): Create an anonymous var to
4262 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
4265 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4268 * haifa-sched.cc (dep_list_size): Make global.
4269 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
4270 * sched-int.h (dep_list_size): Declare.
4272 2024-01-18 Martin Jambor <mjambor@suse.cz>
4274 PR tree-optimization/110422
4275 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
4278 2024-01-18 Richard Biener <rguenther@suse.de>
4280 PR tree-optimization/113475
4281 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
4282 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
4283 (phi_analyzer::~phi_analyzer): Deallocate and free collected
4285 (phi_analyzer::process_phi): Record allocated phi_groups.
4287 2024-01-18 Richard Biener <rguenther@suse.de>
4289 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
4290 storage for gvec_oprnds elements.
4292 2024-01-18 Richard Biener <rguenther@suse.de>
4294 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
4295 prefer all later exits we can handle.
4296 (vect_analyze_loop_form): Free the allocated loop body.
4299 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4301 * config/avr/avr-log.cc: Tabify.
4303 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4305 * config/riscv/autovec.md: Support vi variant.
4307 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4309 * config/avr/avr-devices.cc: Tabify.
4311 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4313 * config/avr/avr-c.cc: Tabify.
4315 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4317 * config/avr/driver-avr.cc: Tabify.
4319 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4321 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
4323 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4325 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
4327 2024-01-18 Jakub Jelinek <jakub@redhat.com>
4329 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
4330 minline-strcmp, minline-strncmp, minline-strlen,
4331 -param=riscv-vector-abi): Remove Bool keywords.
4333 2024-01-18 Jakub Jelinek <jakub@redhat.com>
4336 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
4337 support. Add missing space after , in emitted assembly in some
4338 cases. Formatting fixes.
4340 2024-01-18 Xi Ruoyao <xry111@xry111.site>
4342 * config/loongarch/loongarch.md (movsi_internal): Remove
4345 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
4347 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
4348 in the diagnostic, and capitalize the device name.
4349 (print_mcu): Generate specs such that:
4350 <*check_rodata_in_ram>: New.
4351 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
4352 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
4353 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
4355 2024-01-18 Jakub Jelinek <jakub@redhat.com>
4358 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
4359 Common and Optimization.
4361 2024-01-18 Richard Biener <rguenther@suse.de>
4363 PR tree-optimization/113431
4364 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
4365 When there is an invariant load we might not preserve
4368 2024-01-18 Richard Biener <rguenther@suse.de>
4370 PR tree-optimization/113374
4371 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
4372 * tree-vect-loop.cc (move_early_exit_stmts): Update
4374 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
4375 Refactor. Preserve virtual LC PHIs on all exits.
4377 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
4379 * config/loongarch/loongarch.cc (loongarch_split_symbol):
4380 Assign the '/u' attribute to the mem.
4382 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
4384 PR middle-end/110847
4385 * doc/invoke.texi (Option Summary): Document negative forms of
4386 -Wtsan and -Wxor-used-as-pow.
4387 (Warning Options): Likewise.
4389 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4392 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
4394 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
4396 * doc/extend.texi (Common Function Attributes): Re-alphabetize
4398 (Common Variable Attributes): Likewise.
4399 (Common Type Attributes): Likewise.
4401 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
4403 PR middle-end/111659
4404 * doc/extend.texi (Common Variable Attributes): Fix long lines
4405 in documentation of strict_flex_array + other minor copy-editing.
4406 Add a cross-reference to -Wstrict-flex-arrays.
4407 * doc/invoke.texi (Option Summary): Fix whitespace in tables
4408 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
4409 (C Dialect Options): Combine the docs for the two
4410 -fstrict-flex-arrays forms into a single entry. Note this option
4411 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
4412 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
4413 Minor copy-editing. Add cross references to the strict_flex_array
4414 attribute and -fstrict-flex-arrays option. Add note that this
4415 option depends on -ftree-vrp.
4417 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
4420 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
4421 only allow REG operands instead of allowing all.
4423 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
4425 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
4426 Remove redundant checks in else condition for readablity.
4427 (earliest_fuse_vsetvl_info) Print iteration count in debug
4429 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
4430 dump details in certain cases.
4432 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
4434 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
4435 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
4436 * config/riscv/riscv-vsetvl.cc
4437 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
4438 (pass_vsetvl::execute): Use vsetvl_strategy.
4440 2024-01-17 Jan Hubicka <jh@suse.cz>
4442 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
4443 accidental hack reseting offset.
4445 2024-01-17 Jan Hubicka <jh@suse.cz>
4447 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
4448 handling of X86_TUNE_AVOID_512FMA_CHAINS.
4450 2024-01-17 Jan Hubicka <jh@suse.cz>
4451 Jakub Jelinek <jakub@redhat.com>
4453 PR tree-optimization/110852
4454 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
4456 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
4457 PRED_COMBINED_VALUE_PREDICTIONS_PHI
4458 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
4459 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
4461 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4463 PR tree-optimization/113421
4464 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
4466 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
4467 formatting. Start at vop rather than cvop even if stmt is a store
4468 and needs_operand_addr.
4470 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4472 PR middle-end/113410
4473 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
4474 If access_nelts is integral with larger precision than sizetype,
4475 fold_convert it to sizetype.
4477 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4479 PR tree-optimization/113408
4480 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
4481 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
4484 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4486 PR middle-end/113406
4487 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
4488 regardless of whether is_gimple_reg_type (restype) or not.
4490 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4492 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
4493 funcions -> functions, and use were instead of was.
4494 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
4495 and guaranteee -> guarantee.
4496 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
4498 2024-01-17 Jakub Jelinek <jakub@redhat.com>
4500 PR middle-end/113409
4501 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
4503 (omp_extract_for_data): Use build_bitint_type rather than
4504 build_nonstandard_integer_type if either iter_type or loop->v type
4506 * omp-expand.cc (expand_omp_for_generic,
4507 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
4508 BITINT_TYPE like INTEGER_TYPE.
4510 2024-01-17 Richard Biener <rguenther@suse.de>
4512 PR tree-optimization/113371
4513 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
4514 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
4515 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
4516 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
4518 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
4520 PR rtl-optimization/96388
4521 PR rtl-optimization/111554
4522 * sched-deps.cc (find_inc): Avoid exponential behavior.
4524 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
4527 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
4528 from C++ Language Options to Warning Options. Add entry for
4530 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
4532 (Warning Options): ...to here. Minor copy-editing to fix typo
4535 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
4537 * config/mips/mips.cc (mips_compute_frame_info): If another
4538 register is used as global_pointer, mark $GP live false.
4540 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
4543 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
4544 give the section a light copy-editing pass.
4546 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
4548 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
4549 * config/aarch64/aarch64-tune.md: Regenerated.
4550 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
4552 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
4555 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
4556 badly formed CONST expressions.
4558 2024-01-16 Daniel Cederman <cederman@gaisler.com>
4560 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
4562 2024-01-16 Daniel Cederman <cederman@gaisler.com>
4564 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
4565 * config/sparc/sync.md (membar_storeload): Turn into named insn
4566 and add GR712RC errata workaround.
4567 (membar_v8): Add GR712RC errata workaround.
4569 2024-01-16 Andreas Larsson <andreas@gaisler.com>
4571 * config/sparc/sync.md (*membar_storeload_leon3): Remove
4572 (*membar_storeload): Enable for LEON
4574 2024-01-16 Jakub Jelinek <jakub@redhat.com>
4576 PR tree-optimization/113372
4578 PR middle-end/110115
4579 PR middle-end/111422
4580 * cfgexpand.cc (add_scope_conflicts_2): New function.
4581 (add_scope_conflicts_1): Use it.
4583 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
4585 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
4586 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
4587 * doc/avr-mmcu.texi: Regenerate.
4589 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
4591 PR tree-optimization/113091
4592 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
4593 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
4594 scalar use with new function.
4595 (vect_bb_slp_mark_live_stmts): New function as entry to existing
4596 overriden functions with same name.
4597 (vect_slp_analyze_operations): Call new entry function to mark
4600 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4603 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
4604 for RVV in big-endian mode.
4606 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
4608 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
4609 (riscv_pass_in_vector_p): Delete.
4610 (riscv_init_cumulative_args): Delete the checking.
4611 (riscv_get_arg_info): Delete the checking.
4612 (riscv_function_value): Delete the checking.
4613 * config/riscv/riscv.h: Delete the member for checking.
4615 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
4617 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
4619 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
4621 * config.gcc: Include riscv_bitmanip.h.
4622 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
4623 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
4624 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
4625 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
4626 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
4627 * config/riscv/riscv-ftypes.def (2): New ftypes.
4628 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
4629 (RISCV_BUILTIN_NO_PREFIX): Likewise.
4630 * config/riscv/riscv_bitmanip.h: New file.
4632 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
4634 * config.gcc: Include riscv_crypto.h.
4635 * config/riscv/riscv_crypto.h: New file.
4637 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
4639 PR middle-end/113354
4640 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
4641 in the insn if the corresponding operand does not require hard
4644 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
4647 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
4648 * config/avr/driver-avr.cc (avr_no_devlib): New function.
4649 (avr_devicespecs_file): Use it to remove -nodevicelib from the
4650 options for cores only.
4651 * config/avr/avr-arch.h (avr_get_parch): New prototype.
4652 * config/avr/avr-devices.cc (avr_get_parch): New function.
4654 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4657 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
4658 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
4659 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
4661 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4664 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
4665 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
4666 * config/riscv/riscv-vector-costs.h: New function.
4668 2024-01-15 Richard Biener <rguenther@suse.de>
4670 PR tree-optimization/113385
4671 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
4672 First redirect, then split the exit edge.
4674 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4676 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
4677 Remove m_num_vector_iterations.
4678 * config/riscv/riscv-vector-costs.h: Ditto.
4680 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
4683 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
4684 (-mbranch-cost): Set "Optimization" flag.
4686 2024-01-15 Jakub Jelinek <jakub@redhat.com>
4688 PR tree-optimization/113370
4689 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
4690 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
4691 set it to just prec % limb_prec.
4693 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4696 * config/riscv/vector.md: Fix ternary attributes.
4698 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
4701 * configure.ac [target=avr]: Check availability of emulations
4702 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
4703 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
4704 * configure: Regenerate.
4705 * config.in: Regenerate.
4706 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
4707 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
4708 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
4709 * config/avr/avr-arch.h (enum avr_device_specific_features):
4711 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
4713 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
4714 (avr_set_core_architecture): Set avr_arch_index.
4715 (have_avrxmega2_flmap, have_avrxmega4_flmap)
4716 (have_avrxmega3_rodata_in_flash): Set new static const bool according
4717 to configure results.
4718 (avr_rodata_in_flash_p): New function using them.
4719 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
4720 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
4721 (avr_asm_named_section): Track avr_has_rodata_p.
4722 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
4723 and not avr_rodata_in_flash_p ().
4724 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
4725 (LINK_SPEC): Add %(link_rodata_in_ram).
4726 (LINK_ARCH_SPEC): Remove.
4727 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
4728 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
4729 const bool according to configure results.
4730 (diagnose_mrodata_in_ram): New function.
4731 (print_mcu): Generate specs with the following changes:
4732 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
4733 need to extend avr/specs.h each time we add a new bell or whistle.
4734 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
4735 -m[no-]rodata-in-ram.
4736 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
4737 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
4738 <*cpp>: Add %(cpp_rodata_in_ram).
4739 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
4741 <*self_spec>: Add -mflmap or %<mflmap as needed.
4743 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
4745 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
4746 not the GPR iterator. Adjust pattern name and mode attribute
4749 2024-01-13 Jakub Jelinek <jakub@redhat.com>
4751 PR tree-optimization/113361
4752 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
4753 Fix up determination of the type for > limb_prec constants.
4755 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
4757 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
4758 Add web-link to the avr-gcc wiki.
4760 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
4762 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
4763 documentation for a version without argument, which is not supported.
4765 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4767 * config/arm/arm_neon.h
4768 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
4769 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
4770 (vld1_f16_x4, vld1_f32_x4): New.
4771 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
4772 (vld1_bf16_x4): New.
4773 (vld1q_types_x4): Updated to use vld1q_x4
4774 from arm_neon_builtins.def
4775 * config/arm/arm_neon_builtins.def
4776 (vld1_x4): Updated entries.
4777 (vld1q_x4): New entries, but comes from the old vld1_x4
4778 * config/arm/neon.md
4779 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
4781 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4783 * config/arm/arm_neon.h
4784 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
4785 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
4786 (vld1_f16_x3, vld1_f32_x3): New.
4787 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
4788 (vld1_bf16_x3): New.
4789 (vld1q_types_x3): Updated to use vld1q_x3 from
4790 arm_neon_builtins.def
4791 * config/arm/arm_neon_builtins.def
4792 (vld1_x3): Updated entries.
4793 (vld1q_x3): New entries, but comes from the old vld1_x2
4794 * config/arm/neon.md
4795 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
4797 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4799 * config/arm/arm_neon.h
4800 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
4801 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
4802 (vld1_f16_x2, vld1_f32_x2): New.
4803 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
4804 (vld1_bf16_x2): New.
4805 (vld1q_types_x2): Updated to use vld1q_x2 from
4806 arm_neon_builtins.def
4807 * config/arm/arm_neon_builtins.def
4808 (vld1_x2): Updated entries.
4809 (vld1q_x2): New entries, but comes from the old vld1_x2
4810 * config/arm/neon.md
4811 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
4814 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4816 * config/arm/arm_neon.h
4817 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
4818 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
4819 (vst1q_f16_x4, vst1q_f32_x4): New.
4820 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
4821 (vst1q_bf16_x4): New.
4822 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
4823 * config/arm/neon.md
4824 (neon_vst1q_x4<mode>): New.
4825 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
4826 * config/arm/unspecs.md
4827 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
4829 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4831 * config/arm/arm_neon.h
4832 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
4833 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
4834 (vst1q_f16_x3, vst1q_f32_x3): New.
4835 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
4836 (vst1q_bf16_x3): New.
4837 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
4838 * config/arm/neon.md
4839 (neon_vst1q_x3<mode>): New.
4840 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
4841 * config/arm/unspecs.md
4842 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
4844 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4846 * config/arm/arm_neon.h
4847 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
4848 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
4849 (vst1q_f16_x2, vst1q_f32_x2): New.
4850 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
4851 (vst1q_bf16_x2): New.
4852 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
4853 * config/arm/neon.md
4854 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
4856 * config/arm/iterators.md
4857 (VMEMX2): New mode iterator.
4858 (VMEMX2_q): New mode attribute.
4860 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4862 * config/arm/arm_neon.h
4863 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
4864 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
4865 (vst1_f16_x4, vst1_f32_x4): New.
4866 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
4867 (vst1_bf16_x4): New.
4868 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
4869 * config/arm/neon.md (vst1_x4<mode>): New.
4871 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4873 * config/arm/arm_neon.h
4874 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
4875 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
4876 (vst1_f16_x3, vst1_f32_x3): New.
4877 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
4878 (vst1_bf16_x3): New.
4879 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
4880 * config/arm/neon.md (vst1_x3<mode>): New.
4882 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4884 * config/arm/arm_neon.h
4885 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
4886 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
4887 (vst1_f16_x2, vst1_f32_x2): New.
4888 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
4889 (vst1_bf16_x2): New.
4890 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
4891 * config/arm/neon.md (vst1_x2<mode>): New.
4893 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4895 * config/arm/arm_neon.h
4896 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
4897 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
4898 (vld1q_f16_x4, vld1q_f32_x4): New.
4899 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
4900 (vld1q_bf16_x4): New.
4901 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
4902 * config/arm/neon.md
4903 (neon_vld1_x4<mode>): New.
4904 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
4905 * config/arm/unspecs.md
4906 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
4908 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4910 * config/arm/arm_neon.h
4911 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
4912 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
4913 (vld1q_f16_x3, vld1q_f32_x3): New.
4914 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
4915 (vld1q_bf16_x3): New.
4916 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
4917 * config/arm/neon.md
4918 (neon_vld1_x3<mode>): New.
4919 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
4920 * config/arm/unspecs.md
4921 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
4923 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
4925 * config/arm/arm_neon.h
4926 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
4927 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
4928 (vld1q_f16_x2, vld1q_f32_x2): New.
4929 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
4930 (vld1q_bf16_x2): New.
4931 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
4932 * config/arm/neon.md (vld1_x2<mode>): New.
4934 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4936 PR tree-optimization/113287
4937 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
4939 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4941 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
4942 * tree-vect-loop.cc (vect_transform_loop): Likewise.
4944 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4946 PR tree-optimization/113178
4947 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
4950 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4952 PR tree-optimization/113237
4953 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
4954 existing LCSSA variable for exit when all exits are early break.
4956 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4958 PR tree-optimization/113137
4959 PR tree-optimization/113136
4960 PR tree-optimization/113172
4961 PR tree-optimization/113178
4962 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
4963 Maintain PHIs on inverted loops.
4964 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
4965 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
4967 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
4969 2024-01-12 Tamar Christina <tamar.christina@arm.com>
4971 PR tree-optimization/113135
4972 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
4973 dependency analysis.
4975 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
4977 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
4978 diagnostics class member name for abort of error.
4980 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
4982 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
4983 format string to %s argument.
4985 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
4986 Jakub Jelinek <jakub@redhat.com>
4988 PR middle-end/113182
4989 * varasm.cc (process_pending_assemble_externals,
4990 assemble_external_libcall): Use targetm.strip_name_encoding
4991 before calling get_identifier.
4993 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
4996 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
4997 New member variable.
4998 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
5000 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
5001 * config/aarch64/aarch64-simd.md
5002 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
5003 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
5004 zip2 for zero-extends to...
5005 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
5006 instruction. Fix big-endian handling.
5007 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
5008 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
5009 zip1 for zero-extends to...
5010 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
5011 Fix big-endian handling.
5012 (*aarch64_zip1_uxtl): New pattern.
5013 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
5014 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
5015 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
5016 (aarch64_gen_shareable_zero): Use it.
5017 (aarch64_split_simd_shift_p): New function.
5019 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
5021 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
5022 (function_beg_insn): New macro.
5023 * function.cc (expand_function_start): Initialize function_beg_insn.
5025 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
5028 * config/aarch64/aarch64-sve-builtins.h
5029 (function_builder::m_overload_names): Replace with...
5030 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
5032 (add_overloaded_function): Update accordingly, using get_identifier
5033 to get a GGC-friendly record of the name.
5035 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
5038 * config/aarch64/aarch64-sve-builtins.def: Don't include
5039 aarch64-sve-builtins-sme.def.
5040 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
5041 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
5042 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
5043 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
5044 requires AARCH64_FL_SME2.
5045 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
5046 AARCH64_FL_SME adjustment here.
5047 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
5048 include SME intrinsics.
5049 (sme_function_groups): New array.
5050 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
5051 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
5053 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5056 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
5057 (struct cpu_vector_cost): Add regmove struct.
5058 (get_vector_costs): Export as global.
5059 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
5060 (costs::add_stmt_cost): Ditto.
5061 * config/riscv/riscv.cc (get_common_costs): Export global function.
5063 2024-01-12 Jakub Jelinek <jakub@redhat.com>
5065 PR tree-optimization/113334
5066 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
5067 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
5068 to determine if number should be extended by all ones rather than zero
5071 2024-01-12 Jakub Jelinek <jakub@redhat.com>
5073 PR tree-optimization/113330
5074 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
5077 2024-01-12 Jakub Jelinek <jakub@redhat.com>
5079 PR tree-optimization/113323
5080 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
5081 check for lhs being large/huge _BitInt not in m_names.
5083 2024-01-12 Jakub Jelinek <jakub@redhat.com>
5085 PR tree-optimization/113316
5086 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
5087 uninitialized large/huge _BitInt arguments to calls.
5089 2024-01-12 Jakub Jelinek <jakub@redhat.com>
5091 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
5092 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
5093 CEIL (TYPE_PRECISION (t), limb_prec).
5094 (bitint_large_huge::handle_cast): Likewise.
5096 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
5099 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
5100 Use assemble_function_label_final () for Power ELF V1 ABI.
5101 * output.h (assemble_function_label_final): New function.
5102 * varasm.cc (assemble_function_label_raw): Use
5103 assemble_function_label_final ().
5104 (assemble_function_label_final): New function.
5106 2024-01-12 Richard Biener <rguenther@suse.de>
5108 PR middle-end/113344
5109 * match.pd ((double)float CMP (double)float -> float CMP float):
5110 Perform result type check only for vectors.
5111 * fold-const.cc (fold_binary_loc): Likewise.
5113 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
5115 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
5116 (usdot_prod<mode>): Ditto.
5117 (sdot_prod<mode>): Ditto.
5118 (udot_prod<mode>): Ditto.
5120 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
5123 * config/i386/i386-c.cc (ix86_target_macros_internal):
5124 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
5126 2024-01-12 Richard Biener <rguenther@suse.de>
5129 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
5130 Do not generate code when d.testing_p.
5132 2024-01-12 liuhongt <hongtao.liu@intel.com>
5135 * doc/invoke.texi (fcf-protection=): Update documents.
5137 2024-01-12 Pan Li <pan2.li@intel.com>
5139 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
5140 comments of predicate func riscv_v_ext_mode_p.
5142 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
5144 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
5145 Modify ABI-name length of vfloat16m8_t
5147 2024-01-12 Li Wei <liwei@loongson.cn>
5149 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
5152 2024-01-12 Li Wei <liwei@loongson.cn>
5154 * config/loongarch/loongarch.md (add<mode>3): Removed.
5158 (*addsi3_extended): Removed.
5159 (addsi3_extended): New.
5161 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
5163 * config/riscv/thead.md: Add limits for splits.
5165 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
5167 PR middle-end/113322
5168 * expr.cc (do_store_flag): Don't try single bit tests with
5169 comparison on vector types.
5171 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
5173 PR tree-optimization/113301
5174 * match.pd (`1/x`): Delay signed case until late.
5176 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
5178 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
5180 (AVR Internal Options): ...this new @subsubsection.
5182 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
5184 PR rtl-optimization/112918
5185 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
5186 (in_class_p): Restrict condition for narrowing class in case of
5187 allow_all_reload_class_changes_p.
5188 (process_alt_operands): Try to match operand without and with
5189 narrowing reg class. Discourage narrowing the class. Finish insn
5190 matching only if there is no class narrowing.
5191 (curr_insn_transform): Pass true to in_class_p for reg operand win.
5193 2024-01-11 Richard Biener <rguenther@suse.de>
5195 PR tree-optimization/112505
5196 * tree-vect-loop.cc (vectorizable_induction): Reject
5197 bit-precision induction.
5199 2024-01-11 Richard Biener <rguenther@suse.de>
5201 PR tree-optimization/113126
5202 * match.pd ((double)float CMP (double)float -> float CMP float):
5203 Make sure the boolean type is the same.
5204 * fold-const.cc (fold_binary_loc): Likewise.
5206 2024-01-11 Richard Biener <rguenther@suse.de>
5208 PR tree-optimization/112636
5209 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
5210 estimate_numbers_of_iterations before querying
5211 get_max_loop_iterations_int.
5212 (pass_ch::execute): Initialize SCEV and loops appropriately.
5214 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
5216 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
5218 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
5219 * doc/extend.texi (AVR Variable Attributes): Improve documentation
5220 of io, io_low and address attributes.
5221 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
5222 * doc/avr-mmcu.texi: Rebuild.
5224 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
5227 * config/loongarch/genopts/loongarch.opt.in: Mark options with
5228 the "Save" property.
5229 * config/loongarch/loongarch.opt: Same.
5230 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
5231 according to la_target.
5232 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
5233 RESTORE} for the la_target structure; Rename option conditions
5234 to have the same "la_" prefix.
5235 * config/loongarch/loongarch.h: Same.
5237 2024-01-11 Pan Li <pan2.li@intel.com>
5239 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
5240 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
5242 2024-01-11 Alex Coplan <alex.coplan@arm.com>
5245 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
5246 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
5247 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
5248 synthesize these if needed. Update caller ...
5249 (ldp_bb_info::fuse_pair): ... here.
5250 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
5251 and either insn is frame-related.
5252 (find_trailing_add): Punt on frame-related insns.
5253 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
5254 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
5256 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
5258 * config/mips/mips.cc (mips_start_function_definition):
5259 Add ATTRIBUTE_UNUSED.
5261 2024-01-11 Richard Biener <rguenther@suse.de>
5263 PR middle-end/112740
5264 * expr.cc (store_constructor): Check the integer vector
5265 mask has a single bit per element before using sign-extension
5266 to expand an uniform vector.
5268 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5270 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
5271 preempt VLS on unknown NITERS loop.
5273 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
5275 * doc/invoke.texi: Add -mevex512.
5277 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
5279 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
5280 (*nor<mode>3): Likewise.
5281 (nor<mode>3): Likewise.
5282 (*negsi2_extended): New template.
5283 (*<optab>si3_internal): Likewise.
5284 (*one_cmplsi2_internal): Likewise.
5285 (*norsi3_internal): Likewise.
5286 (*<optab>nsi_internal): Likewise.
5287 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
5288 modified bit operation to make the optimization work.
5290 2024-01-11 liuhongt <hongtao.liu@intel.com>
5293 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
5295 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5297 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
5298 (get_vector_costs): Ditto.
5299 (riscv_builtin_vectorization_cost): Ditto.
5301 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5303 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
5305 2024-01-10 Antoni Boucher <bouanto@zoho.com>
5308 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
5309 ipa_free_size_summary.
5310 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
5311 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
5312 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
5313 * ipa-prop.h (ipa_prop_cc_finalize): New function.
5314 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
5315 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
5316 ipa_sra_cc_finalize): New functions.
5317 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
5318 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
5320 Include ipa-utils.h.
5322 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
5324 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
5325 (th_int_get_save_adjustment): Likewise.
5326 (th_int_adjust_cfi_prologue): Likewise.
5327 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
5328 (TH_INT_INTERRUPT): New macro.
5329 (riscv_expand_prologue): Add the processing of XTheadInt.
5330 (riscv_expand_epilogue): Likewise.
5331 * config/riscv/riscv.h (BITSET_P): Moved to here.
5332 * config/riscv/riscv.md: New unspec.
5333 * config/riscv/thead.cc (th_int_get_mask): New function.
5334 (th_int_get_save_adjustment): Likewise.
5335 (th_int_adjust_cfi_prologue): Likewise.
5336 * config/riscv/thead.md (th_int_push): New pattern.
5337 (th_int_pop): new pattern.
5339 2024-01-10 Tamar Christina <tamar.christina@arm.com>
5341 PR tree-optimization/112468
5342 * doc/sourcebuild.texi: Document ifn_copysign.
5343 * match.pd: Only apply transformation if target supports the IFN.
5345 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
5347 PR tree-optimization/112581
5348 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
5349 mark_ssa_maybe_undefs.
5350 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
5351 variables can not be reassociated.
5352 (init_range_entry): Check for uninitialized variables too.
5353 (init_reassoc): Call mark_ssa_maybe_undefs.
5355 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
5357 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
5358 Also handle sign extension.
5360 2024-01-10 Alex Coplan <alex.coplan@arm.com>
5362 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
5364 (-mlate-ldp-fusion): Likewise.
5366 2024-01-10 Tamar Christina <tamar.christina@arm.com>
5368 PR tree-optimization/113287
5369 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
5370 instead of using BRANCH_EDGE to determine true edge.
5372 2024-01-10 Richard Biener <rguenther@suse.de>
5374 PR tree-optimization/113078
5375 * tree-vect-loop.cc (check_reduction_path): Canonicalize
5376 .COND_SUB to .COND_ADD.
5378 2024-01-10 David Malcolm <dmalcolm@redhat.com>
5380 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
5381 Handle prefix mappings before calling find_opt.
5382 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
5383 "-fno-"-prefixed command-line option.
5384 * opts-common.cc (get_option_prefix_remapping): New.
5385 * opts.h (get_option_prefix_remapping): New decl.
5387 2024-01-10 David Malcolm <dmalcolm@redhat.com>
5389 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
5390 m_urlifier to pp_output_formatted_text.
5391 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
5392 (obstack_append_string): New overload, taking a length.
5393 (urlify_quoted_string): Pass in an obstack ptr, rather than using
5394 that of the pp's buffer. Generalize to handle trailing text in
5395 the buffer beyond the run of quoted text.
5396 (class quoting_info): New.
5397 (on_begin_quote): New.
5398 (on_end_quote): New.
5399 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
5400 it to calls to on_begin_quote and on_end_quote.
5401 (struct auto_obstack): New.
5402 (quoting_info::handle_phase_3): New.
5403 (pp_output_formatted_text): Add urlifier param. Use it if there
5404 is deferred urlification. Delete m_quotes.
5405 (selftest::pp_printf_with_urlifier): Pass urlifier to
5406 pp_output_formatted_text.
5407 (selftest::test_urlification): Update results for the existing
5408 case of quoted text stradding chunks; add more such test cases.
5409 * pretty-print.h (class quoting_info): New forward decl.
5410 (chunk_info::m_quotes): New field.
5411 (pp_output_formatted_text): Add optional urlifier param.
5413 2024-01-10 David Malcolm <dmalcolm@redhat.com>
5415 * pretty-print.cc (selftest::test_pp_format): Add selftest
5416 coverage for numbered args.
5418 2024-01-10 Tamar Christina <tamar.christina@arm.com>
5420 PR tree-optimization/113144
5421 PR tree-optimization/113145
5422 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
5423 Update all BB that the original exits dominated.
5425 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
5427 * dwarf2out.cc (modified_type_die): Extend the support of reverse
5428 storage order to enumeration types if -gstrict-dwarf is not passed.
5429 (gen_enumeration_type_die): Add REVERSE parameter and generate the
5430 DIE immediately after the existing one if it is true.
5431 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
5432 call to gen_enumeration_type_die.
5433 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
5434 first recursive call as well as the call to gen_tagged_type_die.
5435 (gen_type_die): Add REVERSE parameter and pass it in the call to
5436 gen_type_die_with_usage.
5438 2024-01-10 Jakub Jelinek <jakub@redhat.com>
5440 PR tree-optimization/113120
5441 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
5442 with root->size TYPE_PRECISION don't build anything new.
5443 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
5444 rather than build_nonstandard_integer_type.
5446 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
5448 * config/i386/i386.opt: Adjust document.
5449 * doc/invoke.texi: Add description for
5450 -mapx-inline-asm-use-gpr32.
5452 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5454 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
5455 (avg<v_double_trunc>3_floor): New pattern.
5456 (<u>avg<v_double_trunc>3_ceil): Remove.
5457 (avg<v_double_trunc>3_ceil): New pattern.
5458 (uavg<mode>3_floor): Ditto.
5459 (uavg<mode>3_ceil): Ditto.
5460 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
5461 (enum insn_type): Ditto.
5462 * config/riscv/riscv-v.cc: Ditto.
5463 * config/riscv/vector-iterators.md (ashiftrt): Remove.
5465 * config/riscv/vector.md: Add VLS modes.
5467 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
5470 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
5471 (vczlsbb_char): New int attribute.
5472 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
5473 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
5474 (*vctzlsbb_zext_<mode>): Rename to ...
5475 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
5478 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
5481 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
5482 of the last argument from altivec_register_operand to any_operand. If
5483 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
5484 otherwise if it doesn't satisfy altivec_register_operand, force it to
5485 REG using copy_to_mode_reg.
5487 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
5489 PR middle-end/113100
5490 * builtins.cc (expand_builtin_stack_address): Guard stack point
5491 adjustment with SPARC_STACK_BOUNDARY_HACK.
5493 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
5495 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
5496 argument string definitions.
5497 * config/loongarch/loongarch-str.h: Same.
5498 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
5499 as aliases to -mexplicit-relocs={always,none}
5500 * config/loongarch/loongarch.opt: Regenerate.
5501 * config/loongarch/loongarch.cc: Same.
5503 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
5505 * config/loongarch/loongarch-def.h: Define constants with
5506 enums instead of Macros.
5508 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
5510 * config/loongarch/genopts/loongarch-strings: Rename.
5511 * config/loongarch/genopts/loongarch.opt.in: Same.
5512 * config/loongarch/loongarch-cpu.cc: Same.
5513 * config/loongarch/loongarch-def.cc: Same.
5514 * config/loongarch/loongarch-def.h: Same.
5515 * config/loongarch/loongarch-opts.cc: Same.
5516 * config/loongarch/loongarch-opts.h: Same.
5517 * config/loongarch/loongarch-str.h: Same.
5518 * config/loongarch/loongarch.opt: Same.
5520 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
5522 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
5523 variable with the common la_ prefix.
5524 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
5525 flags as saved using TargetVariable.
5526 * config/loongarch/loongarch.opt: Same.
5527 * config/loongarch/loongarch-def.h: Define evolution_set to
5528 mark changes to the -march default.
5529 * config/loongarch/loongarch-driver.cc: Same.
5530 * config/loongarch/loongarch-opts.cc: Same.
5531 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
5532 conditions around the la_target structure.
5533 * config/loongarch/loongarch.cc: Same.
5534 * config/loongarch/loongarch.md: Same.
5535 * config/loongarch/loongarch-builtins.cc: Same.
5536 * config/loongarch/loongarch-c.cc: Same.
5537 * config/loongarch/lasx.md: Same.
5538 * config/loongarch/lsx.md: Same.
5539 * config/loongarch/sync.md: Same.
5541 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
5543 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
5546 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
5548 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
5550 2024-01-09 Tamar Christina <tamar.christina@arm.com>
5552 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
5554 (vectorizable_live_operation): Likewise.
5556 2024-01-09 Tamar Christina <tamar.christina@arm.com>
5558 PR tree-optimization/113199
5559 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
5562 2024-01-09 Jakub Jelinek <jakub@redhat.com>
5565 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
5566 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
5567 GTY(()) declaration before the definition, drop GTY(()) drom the
5570 2024-01-09 Richard Biener <rguenther@suse.de>
5572 PR tree-optimization/113026
5573 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
5574 redundant and wrong niter bound setting. Move niter
5575 bound adjustment down.
5577 2024-01-09 Tamar Christina <tamar.christina@arm.com>
5579 PR middle-end/113163
5580 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
5581 Reject non-linear inductions that aren't supported.
5583 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
5585 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
5586 left shift implementation strategies.
5587 (arc_shift_info): Type for each entry of the shift strategy table.
5588 (arc_shift_context_idx): Return a integer value for each code
5589 generation context, used as an index
5590 (arc_ashl_alg): Table indexed by context and shifted bit count.
5591 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
5592 left shift implementation.
5593 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
5594 provide accurate costs, when optimizing for speed or size.
5596 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5598 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
5600 2024-01-09 Julian Brown <julian@codesourcery.com>
5602 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
5603 processed out before gimplification.
5604 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
5605 * tree.def (OMP_ARRAY_SECTION): New tree code.
5607 2024-01-09 Jakub Jelinek <jakub@redhat.com>
5609 PR tree-optimization/113210
5610 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
5611 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
5612 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
5615 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
5617 PR rtl-optimization/113140
5618 * reorg.cc (fill_slots_from_thread): If we are to branch after the
5619 last instruction of the function, create an end label.
5621 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
5622 Hongtao Liu <hongtao.liu@intel.com>
5625 * config/i386/i386-expand.cc
5626 (ix86_convert_const_wide_int_to_broadcast): Allow call to
5627 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
5628 (ix86_broadcast_from_constant): Revert recent change; Return a
5629 suitable MEMREF independently of mode/target combinations.
5630 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
5631 to decide whether expansion is possible/preferrable. Only try
5632 forcing DImode constants to memory (and trying again) if calling
5633 ix86_expand_vector_init_duplicate fails with an DImode immediate
5635 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
5636 V4SImode for suitable immediate constants.
5637 <case E_V4DImode>: Try using V8SImode for suitable constants.
5638 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
5639 <case E_V2HImode>: Likewise.
5640 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
5641 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
5642 <label widen>: Handle CONT_INTs via simplify_binary_operation.
5643 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
5644 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
5645 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
5646 (ix86_expand_vector_init): Move try using a broadcast for all_same
5647 with ix86_expand_vector_init_duplicate before using constant pool.
5649 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
5651 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
5653 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
5655 * config/arm/arm-cpus.in (cortex-m52): New cpu.
5656 * config/arm/arm-tables.opt: Regenerate.
5657 * config/arm/arm-tune.md: Regenerate.
5659 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
5661 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
5662 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
5663 (@vec_concatz<mode>): New insn pattern.
5664 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
5665 Handle VALS containing two vectors.
5667 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5669 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
5670 (vundefined): Ditto.
5672 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
5674 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
5675 Add new function_base for crypto vector.
5676 (class bitmanip): Ditto.
5677 (class b_reverse):Ditto.
5678 (class vwsll): Ditto.
5679 (class clmul): Ditto.
5680 (class vg_nhab): Ditto.
5681 (class crypto_vv):Ditto.
5682 (class crypto_vi):Ditto.
5683 (class vaeskf2_vsm3c):Ditto.
5684 (class vsm3me): Ditto.
5685 (BASE): Add BASE declaration for crypto vector.
5686 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5687 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
5688 Add crypto vector intrinsic definition.
5716 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
5717 Add new function_shape for crypto vector.
5718 (struct crypto_vi_def): Ditto.
5719 (struct crypto_vv_no_op_type_def): Ditto.
5720 (SHAPE): Add SHAPE declaration of crypto vector.
5721 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
5722 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
5723 Add new data type for crypto vector.
5724 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
5725 (vuint32mf2_t): Ditto.
5726 (vuint32m1_t): Ditto.
5727 (vuint32m2_t): Ditto.
5728 (vuint32m4_t): Ditto.
5729 (vuint32m8_t): Ditto.
5730 (vuint64m1_t): Ditto.
5731 (vuint64m2_t): Ditto.
5732 (vuint64m4_t): Ditto.
5733 (vuint64m8_t): Ditto.
5734 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
5735 Add new data struct for crypto vector.
5736 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
5737 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
5738 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
5740 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
5743 * varasm.cc (assemble_function_label_raw): Do not call
5744 asan_function_start () without the current function.
5746 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
5749 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
5750 extern and kernel_helper attributed function decls.
5752 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
5754 * btfout.cc (output_btf_strs): Changed.
5756 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
5758 * config/gcn/mkoffload.cc (main): Handle gfx1100
5759 when setting the default XNACK.
5761 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
5763 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
5764 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
5765 (ASM_SPEC): Handle gfx1100.
5766 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
5767 (enum gcn_isa): Add ISA_RDNA3.
5768 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
5769 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
5770 * config/gcn/gcn.cc (gcn_option_override,
5771 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
5772 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
5773 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
5774 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
5776 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
5777 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
5779 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
5780 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
5781 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
5782 (isa_has_combined_avgprs, main): Handle gfx1100.
5783 * config/gcn/t-omp-device (isa): Add gfx1100.
5785 2024-01-08 Richard Biener <rguenther@suse.de>
5787 * doc/invoke.texi (-mmovbe): Clarify.
5789 2024-01-08 Richard Biener <rguenther@suse.de>
5791 PR tree-optimization/113026
5792 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
5793 Avoid an epilog in more cases.
5794 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
5795 epilogues niter upper bounds and estimates.
5797 2024-01-08 Jakub Jelinek <jakub@redhat.com>
5799 PR tree-optimization/113228
5800 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
5802 2024-01-08 Jakub Jelinek <jakub@redhat.com>
5804 PR tree-optimization/113120
5805 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
5806 large _BitInt zero INTEGER_CST PHI argument.
5808 2024-01-08 Jakub Jelinek <jakub@redhat.com>
5810 PR tree-optimization/113119
5811 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
5812 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
5813 is before REALPART_EXPR.
5815 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
5818 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
5819 range when diagnosing attribute "io" and "io_low" are out of range.
5820 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
5821 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
5822 in contexts other than static storage.
5823 (avr_asm_output_aligned_decl_common): Move output of decls with
5824 attribute "address", "io", and "io_low" to...
5825 (avr_output_addr_attrib): ...this new function.
5826 (avr_asm_asm_output_aligned_bss): Remove output for decls with
5827 attribute "address", "io", and "io_low".
5828 (avr_encode_section_info): Rectify handling of decls with attribute
5829 "address", "io", and "io_low".
5831 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
5833 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
5834 (elf_flags): Remove XNACK from the default value.
5835 (main): Set a default XNACK according to the arch.
5837 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
5839 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
5840 (process_asm): Don't count avgprs.
5842 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
5844 * config/i386/i386.opt: Add supported sub-features.
5845 * doc/extend.texi: Add description for target attribute.
5847 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
5849 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
5851 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
5852 Uros Bizjak <ubizjak@gmail.com>
5855 * config/i386/i386-features.cc (compute_convert_gain): Include
5856 the overhead of explicit load and store (movd) instructions when
5857 converting non-store scalar operations with memory destinations.
5858 Various indentation whitespace fixes.
5860 2024-01-07 Tamar Christina <tamar.christina@arm.com>
5862 * config/arm/neon.md (cbranch<mode>4): New.
5864 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5866 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
5868 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
5870 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
5872 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5875 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
5878 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5880 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
5881 (variable_vectorized_p): Teach loop invariant.
5882 (has_unexpected_spills_p): Ditto.
5884 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
5886 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
5887 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
5888 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
5890 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
5893 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
5894 (aarch64-vect-compare-costs): ...this.
5895 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
5897 (-param=aarch64-vect-compare-costs=): ...this new param.
5898 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
5899 Don't disable it when vectorizing for Advanced SIMD only.
5900 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
5901 whenever aarch64_vect_compare_costs is true.
5903 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
5905 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
5906 Modify the method of determining the memory offset of [x]vld/[x]vst.
5907 (lasx_mxst_<lasxfmt_f>): Likewise.
5908 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
5909 (loongarch_address_insns): Likewise.
5910 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
5911 (lsx_st_<lsxfmt_f>): Likewise.
5912 * config/loongarch/predicates.md (aq10b_operand): Likewise.
5913 (aq10h_operand): Likewise.
5914 (aq10w_operand): Likewise.
5915 (aq10d_operand): Likewise.
5917 2024-01-05 Alex Coplan <alex.coplan@arm.com>
5920 * config/aarch64/aarch64-ldp-fusion.cc
5921 (ldp_bb_info::try_fuse_pair): If the second access can throw,
5922 narrow the move range to exactly that insn.
5924 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
5926 * asan.cc (asan_function_start): Drop switch_to_section ().
5927 (asan_emit_stack_protection): Set .LASANPC alignment.
5928 * config/i386/i386.cc: Use assemble_function_label_raw ()
5929 instead of ASM_OUTPUT_LABEL ().
5930 * config/s390/s390.cc (s390_asm_output_function_label):
5932 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
5933 * final.cc (final_start_function_1): Drop
5934 asan_function_start ().
5935 * output.h (assemble_function_label_raw): New function.
5936 * varasm.cc (assemble_function_label_raw): Likewise.
5938 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
5940 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
5941 Use ASM_OUTPUT_FUNCTION_LABEL ().
5942 * config/alpha/alpha.cc (alpha_start_function): Likewise.
5943 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5944 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
5945 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5946 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5947 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
5948 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
5949 * config/ia64/ia64.cc (ia64_start_function): Likewise.
5950 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
5952 * config/microblaze/microblaze.cc (microblaze_function_prologue):
5954 * config/mips/mips.cc (mips_start_unique_function): Return the
5956 (mips_start_function_definition): Use
5957 ASM_OUTPUT_FUNCTION_LABEL ().
5958 (mips_finish_stub): Pass the tree to
5959 mips_start_function_definition ().
5960 (mips16_build_function_stub): Likewise.
5961 (mips16_build_call_stub): Likewise.
5962 (mips_output_function_prologue): Likewise.
5963 * config/pa/pa.cc (pa_output_function_label): Use
5964 ASM_OUTPUT_FUNCTION_LABEL ().
5965 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
5966 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
5968 (rs6000_xcoff_declare_function_name): Likewise.
5970 2024-01-05 Jakub Jelinek <jakub@redhat.com>
5972 PR tree-optimization/113201
5973 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
5974 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
5976 2024-01-05 Jakub Jelinek <jakub@redhat.com>
5978 PR tree-optimization/90693
5979 * tree-ssa-math-opts.cc (match_single_bit_test): If
5980 tree_expr_nonzero_p (arg), remember it in the second argument to
5981 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
5982 arg ^ (arg - 1) > arg - 1.
5983 * internal-fn.cc (expand_POPCOUNT): If second argument to
5984 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
5985 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
5987 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
5989 * config/riscv/riscv-v.cc (expand_load_store):
5991 (expand_cond_len_op): Ditto.
5992 (expand_gather_scatter): Ditto.
5993 (expand_lanes_load_store): Ditto.
5994 (expand_fold_extract_last): Ditto.
5996 2024-01-05 Pan Li <pan2.li@intel.com>
5999 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
6001 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
6002 Add new function_base for crypto vector.
6003 (class bitmanip): Ditto.
6004 (class b_reverse):Ditto.
6005 (class vwsll): Ditto.
6006 (class clmul): Ditto.
6007 (class vg_nhab): Ditto.
6008 (class crypto_vv):Ditto.
6009 (class crypto_vi):Ditto.
6010 (class vaeskf2_vsm3c):Ditto.
6011 (class vsm3me): Ditto.
6012 (BASE): Add BASE declaration for crypto vector.
6013 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6014 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
6015 Add crypto vector intrinsic definition.
6043 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
6044 Add new function_shape for crypto vector.
6045 (struct crypto_vi_def): Ditto.
6046 (struct crypto_vv_no_op_type_def): Ditto.
6047 (SHAPE): Add SHAPE declaration of crypto vector.
6048 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6049 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
6050 Add new data type for crypto vector.
6051 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
6052 (vuint32mf2_t): Ditto.
6053 (vuint32m1_t): Ditto.
6054 (vuint32m2_t): Ditto.
6055 (vuint32m4_t): Ditto.
6056 (vuint32m8_t): Ditto.
6057 (vuint64m1_t): Ditto.
6058 (vuint64m2_t): Ditto.
6059 (vuint64m4_t): Ditto.
6060 (vuint64m8_t): Ditto.
6061 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
6062 Add new data struct for crypto vector.
6063 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
6064 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
6065 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
6067 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
6069 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
6070 Add new function_base for crypto vector.
6071 (class bitmanip): Ditto.
6072 (class b_reverse):Ditto.
6073 (class vwsll): Ditto.
6074 (class clmul): Ditto.
6075 (class vg_nhab): Ditto.
6076 (class crypto_vv):Ditto.
6077 (class crypto_vi):Ditto.
6078 (class vaeskf2_vsm3c):Ditto.
6079 (class vsm3me): Ditto.
6080 (BASE): Add BASE declaration for crypto vector.
6081 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6082 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
6083 Add crypto vector intrinsic definition.
6111 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
6112 Add new function_shape for crypto vector.
6113 (struct crypto_vi_def): Ditto.
6114 (struct crypto_vv_no_op_type_def): Ditto.
6115 (SHAPE): Add SHAPE declaration of crypto vector.
6116 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6117 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
6118 Add new data type for crypto vector.
6119 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
6120 (vuint32mf2_t): Ditto.
6121 (vuint32m1_t): Ditto.
6122 (vuint32m2_t): Ditto.
6123 (vuint32m4_t): Ditto.
6124 (vuint32m8_t): Ditto.
6125 (vuint64m1_t): Ditto.
6126 (vuint64m2_t): Ditto.
6127 (vuint64m4_t): Ditto.
6128 (vuint64m8_t): Ditto.
6129 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
6130 Add new data struct for crypto vector.
6131 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
6132 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
6133 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
6135 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6137 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
6139 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
6141 PR tree-optimization/113186
6142 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
6143 Match `^` with the `==` for 1bit integral types.
6144 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
6147 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6149 * toplev.cc (general_init): Pass lang_mask to urlifier.
6151 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6153 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
6155 (diagnostic_context::make_option_url): Update for lang_mask param.
6156 * gcc-urlifier.cc: Include "opts.h" and "options.h".
6157 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
6158 (gcc_urlifier::m_lang_mask): New field.
6159 (doc_urls): Make static.
6160 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
6161 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
6162 Look for an option by name before trying a binary search in
6164 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
6165 (gcc_urlifier::get_url_suffix_for_option): New.
6166 (make_gcc_urlifier): Add lang_mask param.
6167 (selftest::gcc_urlifier_cc_tests): Update for above changes.
6168 Verify that a URL is found for "-fpack-struct".
6169 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
6170 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
6171 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
6172 to make_gcc_urlifier.
6173 * opts-diagnostic.h (get_option_url): Add lang_mask param.
6174 * opts.cc (get_option_html_page): Remove special-casing for
6176 (get_option_url_suffix): New.
6177 (get_option_url): Reimplement.
6178 (selftest::test_get_option_html_page): Rename to...
6179 (selftest::test_get_option_url_suffix): ...this and update for
6181 (selftest::opts_cc_tests): Update for renaming.
6182 * opts.h: Include "rich-location.h".
6183 (get_option_url_suffix): New decl.
6185 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6187 * Makefile.in (ALL_OPT_URL_FILES): New.
6188 (GCC_OBJS): Add options-urls.o.
6190 (OBJS-libcommon): Likewise.
6191 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
6192 inputs to opt-gather.awk.
6193 (options-urls.cc): New Makefile target.
6194 * opt-functions.awk (url_suffix): New function.
6195 (lang_url_suffix): New function.
6196 * options-urls-cc-gen.awk: New file.
6197 * opts.h (get_opt_url_suffix): New decl.
6199 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6201 * params.opt.urls: New file, autogenerated by
6202 regenerate-opt-urls.py.
6204 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6206 * common.opt.urls: New file, autogenerated by
6207 regenerate-opt-urls.py.
6208 * config/aarch64/aarch64.opt.urls: Likewise.
6209 * config/alpha/alpha.opt.urls: Likewise.
6210 * config/alpha/elf.opt.urls: Likewise.
6211 * config/arc/arc-tables.opt.urls: Likewise.
6212 * config/arc/arc.opt.urls: Likewise.
6213 * config/arm/arm-tables.opt.urls: Likewise.
6214 * config/arm/arm.opt.urls: Likewise.
6215 * config/arm/vxworks.opt.urls: Likewise.
6216 * config/avr/avr.opt.urls: Likewise.
6217 * config/bpf/bpf.opt.urls: Likewise.
6218 * config/c6x/c6x-tables.opt.urls: Likewise.
6219 * config/c6x/c6x.opt.urls: Likewise.
6220 * config/cris/cris.opt.urls: Likewise.
6221 * config/cris/elf.opt.urls: Likewise.
6222 * config/csky/csky.opt.urls: Likewise.
6223 * config/csky/csky_tables.opt.urls: Likewise.
6224 * config/darwin.opt.urls: Likewise.
6225 * config/dragonfly.opt.urls: Likewise.
6226 * config/epiphany/epiphany.opt.urls: Likewise.
6227 * config/fr30/fr30.opt.urls: Likewise.
6228 * config/freebsd.opt.urls: Likewise.
6229 * config/frv/frv.opt.urls: Likewise.
6230 * config/ft32/ft32.opt.urls: Likewise.
6231 * config/fused-madd.opt.urls: Likewise.
6232 * config/g.opt.urls: Likewise.
6233 * config/gcn/gcn.opt.urls: Likewise.
6234 * config/gnu-user.opt.urls: Likewise.
6235 * config/h8300/h8300.opt.urls: Likewise.
6236 * config/hpux11.opt.urls: Likewise.
6237 * config/i386/cygming.opt.urls: Likewise.
6238 * config/i386/cygwin.opt.urls: Likewise.
6239 * config/i386/djgpp.opt.urls: Likewise.
6240 * config/i386/i386.opt.urls: Likewise.
6241 * config/i386/mingw-w64.opt.urls: Likewise.
6242 * config/i386/mingw.opt.urls: Likewise.
6243 * config/i386/nto.opt.urls: Likewise.
6244 * config/ia64/ia64.opt.urls: Likewise.
6245 * config/ia64/ilp32.opt.urls: Likewise.
6246 * config/ia64/vms.opt.urls: Likewise.
6247 * config/iq2000/iq2000.opt.urls: Likewise.
6248 * config/linux-android.opt.urls: Likewise.
6249 * config/linux.opt.urls: Likewise.
6250 * config/lm32/lm32.opt.urls: Likewise.
6251 * config/loongarch/loongarch.opt.urls: Likewise.
6252 * config/lynx.opt.urls: Likewise.
6253 * config/m32c/m32c.opt.urls: Likewise.
6254 * config/m32r/m32r.opt.urls: Likewise.
6255 * config/m68k/ieee.opt.urls: Likewise.
6256 * config/m68k/m68k-tables.opt.urls: Likewise.
6257 * config/m68k/m68k.opt.urls: Likewise.
6258 * config/m68k/uclinux.opt.urls: Likewise.
6259 * config/mcore/mcore.opt.urls: Likewise.
6260 * config/microblaze/microblaze.opt.urls: Likewise.
6261 * config/mips/mips-tables.opt.urls: Likewise.
6262 * config/mips/mips.opt.urls: Likewise.
6263 * config/mips/sde.opt.urls: Likewise.
6264 * config/mmix/mmix.opt.urls: Likewise.
6265 * config/mn10300/mn10300.opt.urls: Likewise.
6266 * config/moxie/moxie.opt.urls: Likewise.
6267 * config/msp430/msp430.opt.urls: Likewise.
6268 * config/nds32/nds32-elf.opt.urls: Likewise.
6269 * config/nds32/nds32-linux.opt.urls: Likewise.
6270 * config/nds32/nds32.opt.urls: Likewise.
6271 * config/netbsd-elf.opt.urls: Likewise.
6272 * config/netbsd.opt.urls: Likewise.
6273 * config/nios2/elf.opt.urls: Likewise.
6274 * config/nios2/nios2.opt.urls: Likewise.
6275 * config/nvptx/nvptx-gen.opt.urls: Likewise.
6276 * config/nvptx/nvptx.opt.urls: Likewise.
6277 * config/openbsd.opt.urls: Likewise.
6278 * config/or1k/elf.opt.urls: Likewise.
6279 * config/or1k/or1k.opt.urls: Likewise.
6280 * config/pa/pa-hpux.opt.urls: Likewise.
6281 * config/pa/pa-hpux1010.opt.urls: Likewise.
6282 * config/pa/pa-hpux1111.opt.urls: Likewise.
6283 * config/pa/pa-hpux1131.opt.urls: Likewise.
6284 * config/pa/pa.opt.urls: Likewise.
6285 * config/pa/pa64-hpux.opt.urls: Likewise.
6286 * config/pdp11/pdp11.opt.urls: Likewise.
6287 * config/pru/pru.opt.urls: Likewise.
6288 * config/riscv/riscv.opt.urls: Likewise.
6289 * config/rl78/rl78.opt.urls: Likewise.
6290 * config/rpath.opt.urls: Likewise.
6291 * config/rs6000/476.opt.urls: Likewise.
6292 * config/rs6000/aix64.opt.urls: Likewise.
6293 * config/rs6000/darwin.opt.urls: Likewise.
6294 * config/rs6000/linux64.opt.urls: Likewise.
6295 * config/rs6000/rs6000-tables.opt.urls: Likewise.
6296 * config/rs6000/rs6000.opt.urls: Likewise.
6297 * config/rs6000/sysv4.opt.urls: Likewise.
6298 * config/rtems.opt.urls: Likewise.
6299 * config/rx/elf.opt.urls: Likewise.
6300 * config/rx/rx.opt.urls: Likewise.
6301 * config/s390/s390.opt.urls: Likewise.
6302 * config/s390/tpf.opt.urls: Likewise.
6303 * config/sh/sh.opt.urls: Likewise.
6304 * config/sh/superh.opt.urls: Likewise.
6305 * config/sol2.opt.urls: Likewise.
6306 * config/sparc/long-double-switch.opt.urls: Likewise.
6307 * config/sparc/sparc.opt.urls: Likewise.
6308 * config/stormy16/stormy16.opt.urls: Likewise.
6309 * config/v850/v850.opt.urls: Likewise.
6310 * config/vax/elf.opt.urls: Likewise.
6311 * config/vax/vax.opt.urls: Likewise.
6312 * config/visium/visium.opt.urls: Likewise.
6313 * config/vms/vms.opt.urls: Likewise.
6314 * config/vxworks-smp.opt.urls: Likewise.
6315 * config/vxworks.opt.urls: Likewise.
6316 * config/xtensa/elf.opt.urls: Likewise.
6317 * config/xtensa/uclinux.opt.urls: Likewise.
6318 * config/xtensa/xtensa.opt.urls: Likewise.
6319 * config/bfin/bfin.opt.urls: New file.
6321 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6323 * Makefile.in (OPT_URLS_HTML_DEPS): New.
6324 (regenerate-opt-urls): New target.
6325 (regenerate-opt-urls-unit-test): New target.
6326 * doc/options.texi (Option properties): Add UrlSuffix and
6327 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
6328 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
6329 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
6330 and Makefile.in's OPT_URLS_HTML_DEPS.
6331 (Anatomy of a Target Back End): Add
6332 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
6333 * regenerate-opt-urls.py: New file.
6335 2024-01-04 David Malcolm <dmalcolm@redhat.com>
6337 * diagnostic-format-sarif.cc
6338 (sarif_builder::make_logical_location_object): Convert to...
6339 (make_sarif_logical_location_object): ...this.
6340 (sarif_builder::set_any_logical_locs_arr): Update for above
6342 (sarif_builder::make_thread_flow_location_object): Call
6343 maybe_add_sarif_properties on each diagnostic_event.
6344 * diagnostic-format-sarif.h (class logical_location): New forward
6346 (make_sarif_logical_location_object): New decl.
6347 * diagnostic-path.h (class sarif_object): New forward decl.
6348 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
6350 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
6351 Patrick Lin <patrick@andestech.com>
6352 Rufus Chen <rufus@andestech.com>
6353 Monk Chiang <monk.chiang@sifive.com>
6355 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
6356 with Nan-boxing value.
6357 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
6359 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
6360 Jeff Law <jlaw@ventanamicro.com>
6362 PR rtl-optimization/104914
6363 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
6364 a sign or zero extension is only required if the modified field
6365 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
6366 targets, don't refer to the temporarily incorrectly extended value
6367 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
6369 2024-01-04 Pan Li <pan2.li@intel.com>
6372 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6374 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
6376 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6378 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
6380 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
6382 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
6385 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6387 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
6388 (compute_nregs_for_mode): Refine LMUL.
6389 (max_number_of_live_regs): Ditto.
6390 (compute_estimated_lmul): Ditto.
6391 (has_unexpected_spills_p): Ditto.
6393 2024-01-04 Li Wei <liwei@loongson.cn>
6395 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
6396 Remove useless forward declaration.
6397 (loongarch_is_even_extraction): Remove useless forward declaration.
6398 (loongarch_try_expand_lsx_vshuf_const): Removed.
6399 (loongarch_expand_vec_perm_const_1): Merged.
6400 (loongarch_is_double_duplicate): Removed.
6401 (loongarch_is_center_extraction): Ditto.
6402 (loongarch_is_reversing_permutation): Ditto.
6403 (loongarch_is_di_misalign_extract): Ditto.
6404 (loongarch_is_si_misalign_extract): Ditto.
6405 (loongarch_is_lasx_lowpart_extract): Ditto.
6406 (loongarch_is_op_reverse_perm): Ditto.
6407 (loongarch_is_single_op_perm): Ditto.
6408 (loongarch_is_divisible_perm): Ditto.
6409 (loongarch_is_triple_stride_extract): Ditto.
6410 (loongarch_expand_vec_perm_const_2): Merged.
6411 (loongarch_expand_vec_perm_const): New.
6412 (loongarch_vectorize_vec_perm_const): Adjust.
6414 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
6416 * omp-general.cc: Fix comment typos and misplaced/confusing
6417 comments. Delete redundant include of omp-general.h.
6419 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
6421 PR rtl-optimization/104914
6422 * config/mips/mips.md (insqisi_extended): New patterns.
6423 (inshisi_extended): Ditto.
6425 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
6427 * config/mips/mips.cc (mips_insn_cost): New function.
6429 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
6431 * config/mips/mips.md (perf_ratio): New attribute.
6433 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6437 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
6438 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
6439 blocks belong to infinite loop.
6440 (pre_vsetvl::emit_vsetvl): Remove fake edges.
6441 * config/riscv/t-riscv: Add a new include file.
6443 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6445 * config/riscv/vector.md: Fix indent.
6447 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
6449 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
6450 OMP_CLAUSE__SIMDUID_.
6451 * tree.cc (omp_clause_num_ops): Update position of entry for
6452 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
6453 (omp_clause_code_name): Likewise.
6455 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
6457 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
6458 printing of FUNC_MAP/IND_FUNC_MAP labels.
6460 2024-01-03 Jakub Jelinek <jakub@redhat.com>
6462 * gcc.cc (process_command): Update copyright notice dates.
6463 * gcov-dump.cc (print_version): Ditto.
6464 * gcov.cc (print_version): Ditto.
6465 * gcov-tool.cc (print_version): Ditto.
6466 * gengtype.cc (create_file): Ditto.
6467 * doc/cpp.texi: Bump @copying's copyright year.
6468 * doc/cppinternals.texi: Ditto.
6469 * doc/gcc.texi: Ditto.
6470 * doc/gccint.texi: Ditto.
6471 * doc/gcov.texi: Ditto.
6472 * doc/install.texi: Ditto.
6473 * doc/invoke.texi: Ditto.
6475 2024-01-03 Xi Ruoyao <xry111@xry111.site>
6477 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
6478 (fmin<mode>3): Likewise.
6479 (reduc_fmax_scal_<mode>3): New define_expand.
6480 (reduc_fmin_scal_<mode>3): Likewise.
6482 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6485 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
6486 (max_number_of_live_regs): Ditto.
6487 (has_unexpected_spills_p): Ditto.
6489 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
6490 Jin Ma <jinma@linux.alibaba.com>
6491 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6492 Christoph Müllner <christoph.muellner@vrull.eu>
6494 * config/riscv/vector.md:
6495 Use vector_length_operand for vsetvl patterns.
6497 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6499 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
6500 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
6502 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
6504 * config/aarch64/aarch64-tuning-flags.def
6505 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
6506 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
6507 * config/aarch64/aarch64.cc
6508 (aarch64_override_options_internal): Set
6509 param_fully_pipelined_fma according to tuning option.
6510 * config/aarch64/tuning_models/ampere1.h: Add
6511 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
6512 * config/aarch64/tuning_models/ampere1a.h: Likewise.
6513 * config/aarch64/tuning_models/ampere1b.h: Likewise.
6515 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
6517 * config/riscv/vector-crypto.md: Modify copyright year.
6519 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6521 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
6523 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
6525 * config.in: Regenerate.
6526 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
6527 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
6528 Added TLS Le Relax support.
6529 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
6530 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
6531 * configure: Regenerate.
6532 * configure.ac: Check if binutils supports TLS le relax.
6534 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
6536 * config/riscv/iterators.md: Add rotate insn name.
6537 * config/riscv/riscv.md: Add new insns name for crypto vector.
6538 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
6539 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
6540 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
6542 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
6545 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
6546 pointer type liveness count.
6548 Copyright (C) 2024 Free Software Foundation, Inc.
6550 Copying and distribution of this file, with or without modification,
6551 are permitted in any medium without royalty provided the copyright
6552 notice and this notice are preserved.