]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2
3 * config/xtensa/xtensa.md (*eqne_zero_masked_bits):
4 Add missing ":SI" to the match_operator.
5
6 2024-02-04 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7
8 * config/xtensa/xtensa.md (SHI): New mode iterator.
9 (2 split patterns related to constsynth):
10 Change to also accept HImode operands.
11
12 2024-02-04 Jeff Law <jlaw@ventanamicro.com>
13
14 * config/riscv/riscv.cc (riscv_rtx_costs): Handle SUBREG and REG
15 similarly.
16
17 2024-02-04 Xi Ruoyao <xry111@xry111.site>
18
19 * config/loongarch/lsx.md (neg<mode:FLSX>2): Remove the
20 incorrect expand.
21 * config/loongarch/simd.md (simdfmt_as_i): New define_mode_attr.
22 (elmsgnbit): Likewise.
23 (neg<mode:FVEC>2): New define_insn.
24 * config/loongarch/lasx.md (negv4df2, negv8sf2): Remove as they
25 are now instantiated in simd.md.
26
27 2024-02-04 Xi Ruoyao <xry111@xry111.site>
28
29 * config/loongarch/loongarch.cc (loongarch_symbol_insns): Do not
30 use LSX_SUPPORTED_MODE_P or LASX_SUPPORTED_MODE_P if mode is
31 MAX_MACHINE_MODE.
32
33 2024-02-04 Li Wei <liwei@loongson.cn>
34
35 * config/loongarch/loongarch.cc (loongarch_expand_vselect): Adjust.
36 (loongarch_expand_vselect_vconcat): Ditto.
37 (loongarch_try_expand_lsx_vshuf_const): New, use vshuf to implement
38 all 128-bit constant permutation situations.
39 (loongarch_expand_lsx_shuffle): Adjust and rename function name.
40 (loongarch_is_imm_set_shuffle): Renamed function name.
41 (loongarch_expand_vec_perm_even_odd): Function forward declaration.
42 (loongarch_expand_vec_perm_even_odd_1): Add implement for 128-bit
43 extract-even and extract-odd permutations.
44 (loongarch_is_odd_extraction): Delete.
45 (loongarch_is_even_extraction): Ditto.
46 (loongarch_expand_vec_perm_const): Adjust.
47
48 2024-02-03 Jakub Jelinek <jakub@redhat.com>
49
50 PR middle-end/113722
51 * wide-int.cc (wi::bswap_large): Rename third argument from
52 len to xlen and adjust use in safe_uhwi. Add len variable, set
53 it to BLOCKS_NEEDED (precision) and use it for clearing of val
54 and as canonize argument. Clear val using memset instead of
55 a loop.
56
57 2024-02-03 Jakub Jelinek <jakub@redhat.com>
58
59 * ggc-common.cc (gt_pch_save): Allow addr to be equal to
60 mmi.preferred_base + mmi.size - sizeof (void *).
61
62 2024-02-03 Xi Ruoyao <xry111@xry111.site>
63
64 * config/loongarch/loongarch-def.h (abi_minimal_isa): Declare.
65 * config/loongarch/loongarch-opts.cc (abi_minimal_isa): Remove
66 the ODR-violating locale declaration.
67
68 2024-02-02 Tamar Christina <tamar.christina@arm.com>
69
70 PR tree-optimization/113588
71 PR tree-optimization/113467
72 * tree-vect-data-refs.cc
73 (vect_analyze_data_ref_dependence): Choose correct dest and fix checks.
74 (vect_analyze_early_break_dependences): Update comments.
75
76 2024-02-02 John David Anglin <danglin@gcc.gnu.org>
77
78 PR target/59778
79 * config/pa/pa.cc (enum pa_builtins): Add PA_BUILTIN_GET_FPSR
80 and PA_BUILTIN_SET_FPSR builtins.
81 * (pa_builtins_icode): Declare.
82 * (def_builtin, pa_fpu_init_builtins): New.
83 * (pa_init_builtins): Initialize FPU builtins.
84 * (pa_builtin_decl, pa_expand_builtin_1): New.
85 * (pa_expand_builtin): Handle PA_BUILTIN_GET_FPSR and
86 PA_BUILTIN_SET_FPSR builtins.
87 * (pa_atomic_assign_expand_fenv): New.
88 * config/pa/pa.md (UNSPECV_GET_FPSR, UNSPECV_SET_FPSR): New
89 UNSPECV constants.
90 (get_fpsr, put_fpsr): New expanders.
91 (get_fpsr_32, get_fpsr_64, set_fpsr_32, set_fpsr_64): New
92 insn patterns.
93
94 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
95
96 PR target/113697
97 * config/riscv/riscv-v.cc (expand_reduction): Pass VLMAX avl to scalar move.
98
99 2024-02-02 Jonathan Wakely <jwakely@redhat.com>
100
101 * doc/extend.texi (Common Type Attributes): Fix typo in
102 description of hardbool.
103
104 2024-02-02 Jakub Jelinek <jakub@redhat.com>
105
106 PR tree-optimization/113692
107 * gimple-lower-bitint.cc (bitint_large_huge::lower_stmt): Handle casts
108 from large/huge BITINT_TYPEs to POINTER_TYPE/REFERENCE_TYPE as
109 final_cast_p.
110
111 2024-02-02 Jakub Jelinek <jakub@redhat.com>
112
113 PR middle-end/113699
114 * gimple-lower-bitint.cc (bitint_large_huge::lower_asm): Handle
115 uninitialized large/huge _BitInt SSA_NAME inputs.
116
117 2024-02-02 Jakub Jelinek <jakub@redhat.com>
118
119 PR middle-end/113705
120 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use wide_int_from
121 around wi::to_wide in order to compare value in prec precision.
122
123 2024-02-02 Lehua Ding <lehua.ding@rivai.ai>
124
125 Revert:
126 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
127
128 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
129
130 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
131
132 * config/riscv/riscv.cc (riscv_legitimize_move): Fix poly_int dest generation.
133
134 2024-02-02 Pan Li <pan2.li@intel.com>
135
136 * config/riscv/riscv.cc (riscv_get_arg_info): Cleanup comments.
137 (riscv_pass_by_reference): Ditto.
138 (riscv_fntype_abi): Ditto.
139
140 2024-02-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
141
142 * config/riscv/riscv-vsetvl.cc (vsetvl_pre_insn_p): New function.
143 (pre_vsetvl::cleaup): Remove vsetvl_pre.
144 (pre_vsetvl::remove_vsetvl_pre_insns): New function.
145
146 2024-02-02 Jiahao Xu <xujiahao@loongson.cn>
147
148 * config/loongarch/larchintrin.h
149 (__frecipe_s): Update function return type.
150 (__frecipe_d): Ditto.
151 (__frsqrte_s): Ditto.
152 (__frsqrte_d): Ditto.
153
154 2024-02-02 Li Wei <liwei@loongson.cn>
155
156 * config/loongarch/loongarch.cc (loongarch_multiply_add_p): New.
157 (loongarch_vector_costs::add_stmt_cost): Adjust.
158
159 2024-02-02 Xi Ruoyao <xry111@xry111.site>
160
161 * config/loongarch/loongarch.md (unspec): Add
162 UNSPEC_LA_PCREL_64_PART1 and UNSPEC_LA_PCREL_64_PART2.
163 (la_pcrel64_two_parts): New define_insn.
164 * config/loongarch/loongarch.cc (loongarch_tls_symbol): Fix a
165 typo in the comment.
166 (loongarch_call_tls_get_addr): If -mcmodel=extreme
167 -mexplicit-relocs={always,auto}, use la_pcrel64_two_parts for
168 addressing the TLS symbol and __tls_get_addr. Emit an REG_EQUAL
169 note to allow CSE addressing __tls_get_addr.
170 (loongarch_legitimize_tls_address): If -mcmodel=extreme
171 -mexplicit-relocs={always,auto}, address TLS IE symbols with
172 la_pcrel64_two_parts.
173 (loongarch_split_symbol): If -mcmodel=extreme
174 -mexplicit-relocs={always,auto}, address symbols with
175 la_pcrel64_two_parts.
176 (loongarch_output_mi_thunk): Clean up unreachable code. If
177 -mcmodel=extreme -mexplicit-relocs={always,auto}, address the MI
178 thunks with la_pcrel64_two_parts.
179
180 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
181
182 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
183 Add support for call36.
184
185 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
186
187 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
188 When the code model of the symbol is extreme and -mexplicit-relocs=auto,
189 the macro instruction loading symbol address is not applicable.
190 (loongarch_call_tls_get_addr): Adjust code.
191 (loongarch_legitimize_tls_address): Likewise.
192
193 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
194
195 * config/loongarch/loongarch-protos.h (loongarch_symbol_extreme_p):
196 Add function declaration.
197 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
198 For SYMBOL_PCREL64, non-zero addend of "la.local $rd,$rt,sym+addend"
199 is not allowed
200 (loongarch_load_tls): Added macro support in extreme mode.
201 (loongarch_call_tls_get_addr): Likewise.
202 (loongarch_legitimize_tls_address): Likewise.
203 (loongarch_force_address): Likewise.
204 (loongarch_legitimize_move): Likewise.
205 (loongarch_output_mi_thunk): Likewise.
206 (loongarch_option_override_internal): Remove the code that detects
207 explicit relocs status.
208 (loongarch_handle_model_attribute): Likewise.
209 * config/loongarch/loongarch.md (movdi_symbolic_off64): New template.
210 * config/loongarch/predicates.md (symbolic_off64_operand): New predicate.
211 (symbolic_off64_or_reg_operand): Likewise.
212
213 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
214
215 * config/loongarch/loongarch.cc (loongarch_load_tls):
216 Load all types of tls symbols through one function.
217 (loongarch_got_load_tls_gd): Delete.
218 (loongarch_got_load_tls_ld): Delete.
219 (loongarch_got_load_tls_ie): Delete.
220 (loongarch_got_load_tls_le): Delete.
221 (loongarch_call_tls_get_addr): Modify the called function name.
222 (loongarch_legitimize_tls_address): Likewise.
223 * config/loongarch/loongarch.md (@got_load_tls_gd<mode>): Delete.
224 (@load_tls<mode>): New template.
225 (@got_load_tls_ld<mode>): Delete.
226 (@got_load_tls_le<mode>): Delete.
227 (@got_load_tls_ie<mode>): Delete.
228
229 2024-02-02 Lulu Cheng <chenglulu@loongson.cn>
230
231 * config/loongarch/loongarch.cc (mem_shadd_or_shadd_rtx_p): New function.
232 (loongarch_legitimize_address): Add logical transformation code.
233
234 2024-02-01 Marek Polacek <polacek@redhat.com>
235
236 * doc/invoke.texi: Update -Wdangling-reference documentation.
237
238 2024-02-01 Uros Bizjak <ubizjak@gmail.com>
239
240 PR target/113701
241 * config/i386/i386.md (*cmp<dwi>_doubleword):
242 Do not force SUBREG pieces to pseudos.
243
244 2024-02-01 John David Anglin <danglin@gcc.gnu.org>
245
246 * config/pa/pa.md (atomic_storedi_1): Fix bug in
247 alternative 1.
248
249 2024-02-01 Georg-Johann Lay <avr@gjlay.de>
250
251 * config/avr/avr.cc: Tabify.
252
253 2024-02-01 Richard Ball <richard.ball@arm.com>
254
255 PR tree-optimization/111268
256 * tree-vect-slp.cc (vectorizable_slp_permutation_1):
257 Add variable-length check for vector input arguments
258 to a function.
259
260 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
261
262 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Don't
263 hard-code number of SGPR/VGPR/AVGPR registers.
264 * config/gcn/gcn.h: Add a 'STATIC_ASSERT's for number of
265 SGPR/VGPR/AVGPR registers.
266
267 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
268
269 * config/riscv/riscv.md: Add "fcvt_i2f", "fcvt_f2i" type
270 attribute, and include sifive-p600.md.
271 * config/riscv/generic-ooo.md: Update type attribute.
272 * config/riscv/generic.md: Update type attribute.
273 * config/riscv/sifive-7.md: Update type attribute.
274 * config/riscv/sifive-p600.md: New file.
275 * config/riscv/riscv-cores.def (RISCV_TUNE): Add parameter.
276 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type):
277 Add sifive_p600.
278 * config/riscv/riscv.cc (sifive_p600_tune_info): New.
279 * config/riscv/riscv.h (TARGET_SFB_ALU): Update.
280 * doc/invoke.texi (RISC-V Options): Add sifive-p600-series
281
282 2024-02-01 Monk Chiang <monk.chiang@sifive.com>
283
284 * common/config/riscv/riscv-common.cc: Add Za64rs, Za128rs,
285 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b items.
286 * config/riscv/riscv.opt: New macro for 7 new unprivileged
287 extensions.
288 * doc/invoke.texi (RISC-V Options): Add Za64rs, Za128rs,
289 Ziccif, Ziccrse, Ziccamoa, Zicclsm, Zic64b extensions.
290
291 2024-02-01 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
292
293 * config/sol2.h (LIBASAN_EARLY_SPEC): Add -z now unless
294 -static-libasan. Add missing whitespace.
295
296 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
297
298 * config/gcn/gcn.md (FIRST_SGPR_REG, LAST_SGPR_REG)
299 (FIRST_VGPR_REG, LAST_VGPR_REG, FIRST_AVGPR_REG, LAST_AVGPR_REG):
300 Don't 'define_constants'.
301
302 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
303
304 * config/gcn/gcn.h (SGPR_OR_VGPR_REGNO_P): Remove.
305
306 2024-02-01 Thomas Schwinge <tschwinge@baylibre.com>
307
308 * config/gcn/gcn.md (sync_compare_and_swap<mode>_lds_insn)
309 [TARGET_RDNA3]: Adjust.
310
311 2024-02-01 Richard Biener <rguenther@suse.de>
312
313 PR tree-optimization/113693
314 * tree-ssa-sccvn.cc (rpo_elim::eliminate_avail): Honor avail
315 data when available.
316
317 2024-02-01 Jakub Jelinek <jakub@redhat.com>
318 Jason Merrill <jason@redhat.com>
319
320 PR c++/113531
321 * gimple-low.cc (lower_stmt): Remove .ASAN_MARK calls
322 on variables which were promoted to TREE_STATIC.
323
324 2024-02-01 Roger Sayle <roger@nextmovesoftware.com>
325 Richard Biener <rguenther@suse.de>
326
327 PR target/113560
328 * tree-ssa-math-opts.cc (is_widening_mult_rhs_p): Use range
329 information via tree_non_zero_bits to check if this operand
330 is suitably extended for a widening (or highpart) multiplication.
331 (convert_mult_to_widen): Insert explicit casts if the RHS or LHS
332 isn't already of the claimed type.
333
334 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
335
336 Revert:
337 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
338
339 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
340 (generic_ooo_branch): ditto
341 * config/riscv/generic.md (generic_sfb_alu): ditto
342 (generic_fmul_half): ditto
343 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
344 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
345 (sifive_7_popcount): ditto
346 * config/riscv/vector.md: change rdfrm to fmove
347 * config/riscv/zc.md: change pushpop to load/store
348
349 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
350
351 Revert:
352 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
353 Robin Dapp <rdapp.gcc@gmail.com>
354
355 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
356 (generic_ooo_vec_load): ditto
357 (generic_ooo_vec_store): ditto
358 (generic_ooo_vec_loadstore_seg): ditto
359 (generic_ooo_vec_alu): ditto
360 (generic_ooo_vec_fcmp): ditto
361 (generic_ooo_vec_imul): ditto
362 (generic_ooo_vec_fadd): ditto
363 (generic_ooo_vec_fmul): ditto
364 (generic_ooo_crypto): ditto
365 (generic_ooo_perm): ditto
366 (generic_ooo_vec_reduction): ditto
367 (generic_ooo_vec_ordered_reduction): ditto
368 (generic_ooo_vec_idiv): ditto
369 (generic_ooo_vec_float_divsqrt): ditto
370 (generic_ooo_vec_mask): ditto
371 (generic_ooo_vec_vesetvl): ditto
372 (generic_ooo_vec_setrm): ditto
373 (generic_ooo_vec_readlen): ditto
374 * config/riscv/riscv.md: include generic-vector-ooo
375 * config/riscv/generic-vector-ooo.md: New file. to here
376
377 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
378
379 Revert:
380 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
381
382 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
383
384 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
385
386 * config/riscv/riscv.cc (riscv_sched_variable_issue): enable assert
387
388 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
389 Robin Dapp <rdapp.gcc@gmail.com>
390
391 * config/riscv/generic-ooo.md (generic_ooo): Move reservation
392 (generic_ooo_vec_load): ditto
393 (generic_ooo_vec_store): ditto
394 (generic_ooo_vec_loadstore_seg): ditto
395 (generic_ooo_vec_alu): ditto
396 (generic_ooo_vec_fcmp): ditto
397 (generic_ooo_vec_imul): ditto
398 (generic_ooo_vec_fadd): ditto
399 (generic_ooo_vec_fmul): ditto
400 (generic_ooo_crypto): ditto
401 (generic_ooo_perm): ditto
402 (generic_ooo_vec_reduction): ditto
403 (generic_ooo_vec_ordered_reduction): ditto
404 (generic_ooo_vec_idiv): ditto
405 (generic_ooo_vec_float_divsqrt): ditto
406 (generic_ooo_vec_mask): ditto
407 (generic_ooo_vec_vesetvl): ditto
408 (generic_ooo_vec_setrm): ditto
409 (generic_ooo_vec_readlen): ditto
410 * config/riscv/riscv.md: include generic-vector-ooo
411 * config/riscv/generic-vector-ooo.md: New file. to here
412
413 2024-02-01 Edwin Lu <ewlu@rivosinc.com>
414
415 * config/riscv/generic-ooo.md (generic_ooo_sfb_alu): Add reservation
416 (generic_ooo_branch): ditto
417 * config/riscv/generic.md (generic_sfb_alu): ditto
418 (generic_fmul_half): ditto
419 * config/riscv/riscv.md: Remove cbo, pushpop, and rdfrm types
420 * config/riscv/sifive-7.md (sifive_7_hfma):Add reservation
421 (sifive_7_popcount): ditto
422 * config/riscv/vector.md: change rdfrm to fmove
423 * config/riscv/zc.md: change pushpop to load/store
424
425 2024-02-01 Andrew Pinski <quic_apinski@quicinc.com>
426
427 PR target/113657
428 * config/aarch64/aarch64-simd.md (split for movv8di):
429 For strict aligned mode, use DImode instead of TImode.
430
431 2024-01-31 Robin Dapp <rdapp@ventanamicro.com>
432
433 PR middle-end/113607
434 * match.pd: Make sure else values match when folding a
435 vec_cond into a conditional operation.
436
437 2024-01-31 Marek Polacek <polacek@redhat.com>
438
439 * doc/invoke.texi: Mention that -fconcepts-ts was deprecated in GCC 14.
440
441 2024-01-31 Tamar Christina <tamar.christina@arm.com>
442 Matthew Malcomson <matthew.malcomson@arm.com>
443
444 PR sanitizer/112644
445 * asan.h (asan_intercepted_p): Incercept memset, memmove, memcpy and
446 memcmp.
447 * builtins.cc (expand_builtin): Include HWASAN when checking for
448 builtin inlining.
449
450 2024-01-31 Richard Biener <rguenther@suse.de>
451
452 PR middle-end/110176
453 * match.pd (zext (bool) <= (int) 4294967295u): Make sure
454 to match INTEGER_CST only without outstanding conversion.
455
456 2024-01-31 Alex Coplan <alex.coplan@arm.com>
457
458 PR target/111677
459 * config/aarch64/aarch64.cc (aarch64_reg_save_mode): Use
460 V16QImode for the full 16-byte FPR saves in the vector PCS case.
461
462 2024-01-31 Richard Biener <rguenther@suse.de>
463
464 PR tree-optimization/111444
465 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Do not use
466 vn_reference_lookup_2 when optimistically skipping may-defs.
467
468 2024-01-31 Richard Biener <rguenther@suse.de>
469
470 PR tree-optimization/113630
471 * tree-ssa-pre.cc (compute_avail): Avoid registering a
472 reference with a representation with not matching base
473 access size.
474
475 2024-01-31 Jakub Jelinek <jakub@redhat.com>
476
477 PR rtl-optimization/113656
478 * simplify-rtx.cc (simplify_context::simplify_unary_operation_1)
479 <case FLOAT_TRUNCATE>: Fix up last argument to simplify_gen_unary.
480
481 2024-01-31 Jakub Jelinek <jakub@redhat.com>
482
483 PR debug/113637
484 * dwarf2out.cc (loc_list_from_tree_1): Assume integral types
485 with BLKmode are larger than DWARF2_ADDR_SIZE.
486
487 2024-01-31 Jakub Jelinek <jakub@redhat.com>
488
489 PR tree-optimization/113639
490 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
491 For VIEW_CONVERT_EXPR set rhs1 to its operand.
492
493 2024-01-31 Richard Biener <rguenther@suse.de>
494
495 PR tree-optimization/113670
496 * tree-vect-data-refs.cc (vect_check_gather_scatter):
497 Make sure we can take the address of the reference base.
498
499 2024-01-31 Georg-Johann Lay <avr@gjlay.de>
500
501 * config/avr/avr-mcus.def: Add AVR64DU28, AVR64DU32, ATA5787,
502 ATA5835, ATtiny64AUTO, ATA5700M322.
503 * doc/avr-mmcu.texi: Rebuild.
504
505 2024-01-31 Alexandre Oliva <oliva@adacore.com>
506
507 PR debug/113394
508 * ipa-strub.cc (build_ref_type_for): Drop nonaliased. Adjust
509 caller.
510
511 2024-01-31 Alexandre Oliva <oliva@adacore.com>
512
513 PR middle-end/112917
514 PR middle-end/113100
515 * builtins.cc (expand_builtin_stack_address): Use
516 STACK_ADDRESS_OFFSET.
517 * doc/extend.texi (__builtin_stack_address): Adjust.
518 * config/sparc/sparc.h (STACK_ADDRESS_OFFSET): Define.
519 * doc/tm.texi.in (STACK_ADDRESS_OFFSET): Document.
520 * doc/tm.texi: Rebuilt.
521
522 2024-01-31 Juzhe-Zhong <juzhe.zhong@rivai.ai>
523
524 PR target/113495
525 * config/riscv/riscv-vsetvl.cc (extract_single_source): Remove.
526 (pre_vsetvl::compute_vsetvl_def_data): Fix compile time issue.
527 (pre_vsetvl::compute_transparent): New function.
528 (pre_vsetvl::compute_lcm_local_properties): Fix compile time time issue.
529
530 2024-01-30 Fangrui Song <maskray@google.com>
531
532 PR target/105576
533 * config/i386/constraints.md: Define constraint "Ws".
534 * doc/md.texi: Document it.
535
536 2024-01-30 Marek Polacek <polacek@redhat.com>
537
538 PR c++/110358
539 PR c++/109640
540 * doc/invoke.texi: Update -Wdangling-reference description.
541
542 2024-01-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
543
544 * config/xtensa/constraints.md (R, T, U):
545 Change define_constraint to define_memory_constraint.
546 * config/xtensa/predicates.md (move_operand): Don't check that a
547 constant pool operand size is a multiple of UNITS_PER_WORD.
548 * config/xtensa/xtensa.cc
549 (xtensa_lra_p, TARGET_LRA_P): Remove.
550 (xtensa_emit_move_sequence): Remove "if (reload_in_progress)"
551 clause as it can no longer be true.
552 (fixup_subreg_mem): Drop function.
553 (xtensa_output_integer_literal_parts): Consider 16-bit wide
554 constants.
555 (xtensa_legitimate_constant_p): Add short-circuit path for
556 integer load instructions. Don't check that mode size is
557 at least UNITS_PER_WORD.
558 * config/xtensa/xtensa.md (movsf): Use can_create_pseudo_p()
559 rather reload_in_progress and reload_completed.
560 (doloop_end): Drop operand 2.
561 (movhi_internal): Add alternative loading constant from a
562 literal pool.
563 (define_split for DI register_operand): Don't limit to
564 !TARGET_AUTO_LITPOOLS.
565 * config/xtensa/xtensa.opt (mlra): Change to no effect.
566
567 2024-01-30 Pan Li <pan2.li@intel.com>
568
569 * config/riscv/riscv.cc (riscv_v_vls_mode_aggregate_gpr_count): New function to
570 calculate the gpr count required by vls mode.
571 (riscv_v_vls_to_gpr_mode): New function convert vls mode to gpr mode.
572 (riscv_pass_vls_aggregate_in_gpr): New function to return the rtx of gpr
573 for vls mode.
574 (riscv_get_arg_info): Add vls mode handling.
575 (riscv_pass_by_reference): Return false if arg info has no zero gpr count.
576
577 2024-01-30 Richard Biener <rguenther@suse.de>
578
579 PR tree-optimization/113659
580 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
581 Handle main exit without virtual use.
582
583 2024-01-30 Christoph Müllner <christoph.muellner@vrull.eu>
584
585 * config/riscv/riscv.md: Move UNSPEC_XTHEADFMV* to unspec enum.
586
587 2024-01-30 Iain Sandoe <iain@sandoe.co.uk>
588
589 PR libgcc/113403
590 * config/darwin.h (DARWIN_SHARED_WEAK_ADDS, DARWIN_WEAK_CRTS): New.
591 (REAL_LIBGCC_SPEC): Move weak CRT handling to separate spec.
592 * config/i386/darwin.h (DARWIN_HEAP_T_LIB): New.
593 * config/i386/darwin32-biarch.h (DARWIN_HEAP_T_LIB): New.
594 * config/i386/darwin64-biarch.h (DARWIN_HEAP_T_LIB): New.
595 * config/rs6000/darwin.h (DARWIN_HEAP_T_LIB): New.
596
597 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
598
599 PR target/113623
600 * config/aarch64/aarch64-early-ra.cc (early_ra::preprocess_insns):
601 Mark all registers that occur in addresses as needing a GPR.
602
603 2024-01-30 Richard Sandiford <richard.sandiford@arm.com>
604
605 PR target/113636
606 * config/aarch64/aarch64-early-ra.cc (early_ra::replace_regs): Take
607 the containing insn as an extra parameter. Reset debug instructions
608 if they reference a register that is no longer used by real insns.
609 (early_ra::apply_allocation): Update calls accordingly.
610
611 2024-01-30 Jakub Jelinek <jakub@redhat.com>
612
613 PR tree-optimization/113603
614 * tree-ssa-strlen.cc (strlen_pass::handle_store): After
615 count_nonzero_bytes call refetch si using get_strinfo in case it
616 has been unshared in the meantime.
617
618 2024-01-30 Jakub Jelinek <jakub@redhat.com>
619
620 PR middle-end/101195
621 * except.cc (expand_builtin_eh_return_data_regno): If which doesn't
622 fit into unsigned HOST_WIDE_INT, return constm1_rtx.
623
624 2024-01-30 Jin Ma <jinma@linux.alibaba.com>
625
626 * config/riscv/thead.cc (th_print_operand_address): Change %ld
627 to %lld.
628
629 2024-01-29 Manos Anagnostakis <manos.anagnostakis@vrull.eu>
630 Manolis Tsamis <manolis.tsamis@vrull.eu>
631 Philipp Tomsich <philipp.tomsich@vrull.eu>
632
633 * config/aarch64/aarch64-ldpstp.md: Remove unused mode.
634 * config/aarch64/aarch64-protos.h (aarch64_operands_ok_for_ldpstp):
635 Likewise.
636 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
637 Call on framework moved later.
638
639 2024-01-29 Jose E. Marchesi <jose.marchesi@oracle.com>
640
641 * config/bpf/bpf.cc (bpf_expand_epilogue): Do not emit a return
642 instruction in naked function epilogues.
643
644 2024-01-29 YunQiang Su <syq@gcc.gnu.org>
645
646 PR target/113655
647 * configure.ac: Fix typo gcc_cv_as_mips_explicit should be
648 gcc_cv_as_mips_explicit_relocs.
649 * configure: Regnerated.
650
651 2024-01-29 Matthieu Longo <matthieu.longo@arm.com>
652
653 PR target/108933
654 * config/arm/arm.md (arm_rev16si2): Convert to define_insn.
655 Correct generated RTL.
656 (arm_rev16si2_alt1): Correctly handle conditional execution.
657 (arm_rev16si2_alt2): Likewise.
658
659 2024-01-29 Richard Biener <rguenther@suse.de>
660
661 PR middle-end/113622
662 * expr.cc (expand_assignment): Spill hard registers if
663 we index them with a variable offset.
664
665 2024-01-29 Richard Biener <rguenther@suse.de>
666
667 PR middle-end/113622
668 * gimple-isel.cc (gimple_expand_vec_set_extract_expr):
669 Also allow DECL_HARD_REGISTER variables.
670
671 2024-01-29 Alex Coplan <alex.coplan@arm.com>
672
673 PR target/113616
674 * config/aarch64/aarch64-ldp-fusion.cc (fixup_debug_uses_trailing_add):
675 Use iterate_safely when iterating over debug uses.
676 (fixup_debug_uses): Likewise.
677 (ldp_bb_info::cleanup_tombstones): Use iterate_safely to iterate
678 over nondebug insns instead of manually maintaining the next insn.
679 * iterator-utils.h (class safe_iterator): New.
680 (iterate_safely): New.
681
682 2024-01-29 H.J. Lu <hjl.tools@gmail.com>
683
684 PR target/38534
685 * config/i386/i386-options.cc (ix86_set_func_type): Save
686 callee-saved registers in noreturn functions for -O0/-Og.
687
688 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
689
690 PR target/113615
691 * config/gcn/gcn-valu.md (fold_left_plus_<mode>): Only
692 define for !TARGET_RDNA2_PLUS.
693
694 2024-01-29 Richard Sandiford <richard.sandiford@arm.com>
695
696 PR target/113281
697 * tree-vect-patterns.cc (vect_recog_over_widening_pattern): Remove
698 workaround for right shifts.
699 (vect_truncatable_operation_p): Handle NEGATE_EXPR and BIT_NOT_EXPR.
700 (vect_determine_precisions_from_range): Be more selective about
701 which codes can be narrowed based on their input and output ranges.
702 For shifts, require at least one more bit of precision than the
703 maximum shift amount.
704
705 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
706
707 * config/nvptx/nvptx.opt (march-map=): Add sm_89 and sm_90a.
708
709 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
710
711 * doc/install.texi (amdgcn): Recommend LLVM 15+ and newlib 4.4+,
712 but keep requiring only newlib 4.3+ and, if gfx1100 is disabled,
713 LLVM 13.0.1+.
714
715 2024-01-29 Tobias Burnus <tburnus@baylibre.com>
716
717 PR other/111966
718 * config/gcn/mkoffload.cc (SET_XNACK_UNSET, TEST_SRAM_ECC_UNSET): New.
719 (SET_SRAM_ECC_UNSUPPORTED): Renamed to ...
720 (SET_SRAM_ECC_UNSET): ... this.
721 (copy_early_debug_info): Remove gfx900 special case, now handled as
722 part of the generic handling.
723 (main): Update SRAM_ECC and XNACK for the -march as done in gcn-hsa.h.
724
725 2024-01-29 Jakub Jelinek <jakub@redhat.com>
726
727 PR tree-optimization/110603
728 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Remove incorrect
729 setting of pdata->maxlen to vr.upper_bound (which is unconditionally
730 overwritten anyway). Avoid creating invalid range with minlen
731 larger than maxlen. Formatting fix.
732
733 2024-01-29 Richard Biener <rguenther@suse.de>
734
735 PR debug/103047
736 * tree-inline.cc (initialize_inlined_parameters): Reverse
737 the decl chain of inlined parameters.
738
739 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
740
741 * config/darwin.cc (darwin_build_constant_cfstring): Prevent over-
742 alignment of CFString constants by setting DECL_USER_ALIGN.
743
744 2024-01-28 Iain Sandoe <iain@sandoe.co.uk>
745 Jakub Jelinek <jakub@redhat.com>
746
747 PR libgcc/113402
748 * builtins.cc (expand_builtin): Handle BUILT_IN_GCC_NESTED_PTR_CREATED
749 and BUILT_IN_GCC_NESTED_PTR_DELETED.
750 * builtins.def (BUILT_IN_GCC_NESTED_PTR_CREATED,
751 BUILT_IN_GCC_NESTED_PTR_DELETED): Make these builtins LIB-EXT and
752 rename the library fallbacks to __gcc_nested_func_ptr_created and
753 __gcc_nested_func_ptr_deleted.
754 * doc/invoke.texi: Rename these to __gcc_nested_func_ptr_created
755 and __gcc_nested_func_ptr_deleted.
756 * tree-nested.cc (finalize_nesting_tree_1): Use builtin_explicit for
757 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED.
758 * tree.cc (build_common_builtin_nodes): Build the
759 BUILT_IN_GCC_NESTED_PTR_CREATED and BUILT_IN_GCC_NESTED_PTR_DELETED local
760 builtins only for non-explicit.
761
762 2024-01-28 YunQiang Su <syq@gcc.gnu.org>
763
764 * doc/invoke.texi: Remove duplicate MIPS explicit-relocs option.
765
766 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
767
768 PR target/38534
769 * config/i386/i386-options.cc (ix86_set_func_type): Don't
770 save and restore callee saved registers for a noreturn function
771 with nothrow or compiled with -fno-exceptions.
772
773 2024-01-27 H.J. Lu <hjl.tools@gmail.com>
774
775 PR target/103503
776 PR target/113312
777 * config/i386/i386-expand.cc (ix86_expand_call): Replace
778 no_caller_saved_registers check with call_saved_registers check.
779 Clobber all registers that are not used by the callee with
780 no_callee_saved_registers attribute.
781 * config/i386/i386-options.cc (ix86_set_func_type): Set
782 call_saved_registers to TYPE_NO_CALLEE_SAVED_REGISTERS for
783 noreturn function. Disallow no_callee_saved_registers with
784 interrupt or no_caller_saved_registers attributes together.
785 (ix86_set_current_function): Replace no_caller_saved_registers
786 check with call_saved_registers check.
787 (ix86_handle_no_caller_saved_registers_attribute): Renamed to ...
788 (ix86_handle_call_saved_registers_attribute): This.
789 (ix86_gnu_attributes): Add
790 ix86_handle_call_saved_registers_attribute.
791 * config/i386/i386.cc (ix86_conditional_register_usage): Replace
792 no_caller_saved_registers check with call_saved_registers check.
793 (ix86_function_ok_for_sibcall): Don't allow callee with
794 no_callee_saved_registers attribute when the calling function
795 has callee-saved registers.
796 (ix86_comp_type_attributes): Also check
797 no_callee_saved_registers.
798 (ix86_epilogue_uses): Replace no_caller_saved_registers check
799 with call_saved_registers check.
800 (ix86_hard_regno_scratch_ok): Likewise.
801 (ix86_save_reg): Replace no_caller_saved_registers check with
802 call_saved_registers check. Don't save any registers for
803 TYPE_NO_CALLEE_SAVED_REGISTERS. Save all registers with
804 TYPE_DEFAULT_CALL_SAVED_REGISTERS if function with
805 no_callee_saved_registers attribute is called.
806 (find_drap_reg): Replace no_caller_saved_registers check with
807 call_saved_registers check.
808 * config/i386/i386.h (call_saved_registers_type): New enum.
809 (machine_function): Replace no_caller_saved_registers with
810 call_saved_registers.
811 * doc/extend.texi: Document no_callee_saved_registers attribute.
812
813 2024-01-27 Jakub Jelinek <jakub@redhat.com>
814
815 PR tree-optimization/113614
816 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't merge
817 widening casts from signed to unsigned types with TRUNC_DIV_EXPR,
818 TRUNC_MOD_EXPR or FLOAT_EXPR uses.
819
820 2024-01-27 Jakub Jelinek <jakub@redhat.com>
821
822 PR tree-optimization/113568
823 * gimple-lower-bitint.cc (bitint_large_huge::lower_mergeable_stmt):
824 For VIEW_CONVERT_EXPR use first operand of rhs1 instead of rhs1
825 in the widening extension checks.
826
827 2024-01-27 Jakub Jelinek <jakub@redhat.com>
828
829 * gimple-lower-bitint.cc (gimple_lower_bitint): For
830 TDF_DETAILS dump mapping of SSA_NAMEs to decls.
831
832 2024-01-26 Hans-Peter Nilsson <hp@axis.com>
833
834 * cgraphunit.cc (process_function_and_variable_attributes): Tweak
835 the warning for an attribute-always_inline without inline declaration.
836
837 2024-01-26 Robin Dapp <rdapp@ventanamicro.com>
838
839 PR other/113575
840 * genopinit.cc (main): Split init_all_optabs into functions
841 of 1000 patterns each.
842
843 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
844
845 * config.gcc (amdgcn-*-*): Add gfx1030 and gfx1100 to
846 TM_MULTILIB_CONFIG.
847 * doc/install.texi (Configuration amdgcn-*-*): Mention gfx1030/gfx1100.
848 * doc/invoke.texi (AMD GCN Options): Add gfx1030 and gfx1100 to
849 -march/-mtune.
850
851 2024-01-26 Andrew Stubbs <ams@baylibre.com>
852
853 * config/gcn/gcn-opts.h (TARGET_PACKED_WORK_ITEMS): Add TARGET_RDNA3.
854 * config/gcn/gcn-valu.md (all_convert): New iterator.
855 (<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): New
856 define_expand, and rename the old one to ...
857 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): ... this.
858 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>2<exec>): Likewise, to ...
859 (extend<V_INT_1REG_ALT:mode><V_INT_1REG:mode>_sdwa<exec>): .. this.
860 (*<convop><V_INT_1REG_ALT:mode><V_INT_1REG:mode>_shift<exec>): New.
861 * config/gcn/gcn.cc (gcn_global_address_p): Use "offsetbits" correctly.
862 (gcn_hsa_declare_function_name): Update the vgpr counting for gfx1100.
863 * config/gcn/gcn.md (<u>mulhisi3): Disable on RDNA3.
864 (<u>mulqihi3_scalar): Likewise.
865
866 2024-01-26 Richard Biener <rguenther@suse.de>
867
868 PR tree-optimization/113602
869 * tree-data-ref.cc (dr_analyze_innermost): Fail when
870 the base object isn't addressable.
871
872 2024-01-26 Tobias Burnus <tburnus@baylibre.com>
873
874 * config/gcn/gcn-hsa.h (ABI_VERSION_SPEC): New; creates the
875 "--amdhsa-code-object-version=" argument.
876 (ASM_SPEC): Use it; replace previous version of it.
877
878 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
879
880 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Refine some codes.
881 (pre_vsetvl::emit_vsetvl): Ditto.
882
883 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
884
885 * config/loongarch/lasx.md (vec_extract<mode>_0):
886 New define_insn_and_split patten.
887
888 2024-01-26 Jiahao Xu <xujiahao@loongson.cn>
889
890 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define.
891
892 2024-01-26 Li Wei <liwei@loongson.cn>
893
894 * config/loongarch/loongarch.cc (loongarch_emit_swdivsf): Adjust.
895
896 2024-01-26 Juzhe-Zhong <juzhe.zhong@rivai.ai>
897
898 PR target/113469
899 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_lcm_local_properties): Fix bug.
900
901 2024-01-26 Andrew Pinski <quic_apinski@quicinc.com>
902
903 PR target/100212
904 * config/aarch64/aarch64.cc (aarch64_classify_index): Avoid
905 undefined shift after the call to exact_log2.
906
907 2024-01-25 Andrew Pinski <quic_apinski@quicinc.com>
908
909 PR target/100204
910 * config/aarch64/constraints.md (J): Cast to `unsigned HOST_WIDE_INT`
911 before taking the negative of it.
912
913 2024-01-25 Vladimir N. Makarov <vmakarov@redhat.com>
914
915 PR target/113526
916 * lra-constraints.cc (curr_insn_transform): Change class even for
917 spilled pseudo successfully matched with with NO_REGS.
918
919 2024-01-25 Georg-Johann Lay <avr@gjlay.de>
920
921 PR target/113601
922 * config/avr/avr-mcus.def (atmega3208, atmega3209): Fix data_section_start.
923
924 2024-01-25 Szabolcs Nagy <szabolcs.nagy@arm.com>
925
926 PR target/112987
927 * config/aarch64/aarch64.cc (aarch64_gen_compare_zero_and_branch): New.
928 (aarch64_expand_epilogue): Use the new function.
929 (aarch64_split_compare_and_swap): Likewise.
930 (aarch64_split_atomic_op): Likewise.
931
932 2024-01-25 Robin Dapp <rdapp.gcc@gmail.com>
933
934 PR middle-end/112971
935 * fold-const.cc (simplify_const_binop): New function for binop
936 simplification of two constant vectors when element-wise
937 handling is not necessary.
938 (const_binop): Call new function.
939
940 2024-01-25 Mary Bennett <mary.bennett@embecosm.com>
941
942 * common/config/riscv/riscv-common.cc: Add XCVbitmanip.
943 * config/riscv/constraints.md: Likewise.
944 * config/riscv/corev.def: Likewise.
945 * config/riscv/corev.md: Likewise.
946 * config/riscv/predicates.md: Likewise.
947 * config/riscv/riscv-builtins.cc (AVAIL): Likewise.
948 * config/riscv/riscv-ftypes.def: Likewise.
949 * config/riscv/riscv.opt: Likewise.
950 * config/riscv/riscv.cc (riscv_print_operand): Add new operand 'Y'.
951 * doc/extend.texi: Add XCVbitmanip builtin documentation.
952 * doc/sourcebuild.texi: Likewise.
953
954 2024-01-25 Tobias Burnus <tburnus@baylibre.com>
955
956 * config/gcn/gcn-hsa.h (ASM_SPEC): Add space after -mxnack= argument.
957
958 2024-01-25 Yanzhang Wang <yanzhang.wang@intel.com>
959
960 PR target/113538
961 * config/riscv/riscv.cc (riscv_get_arg_info): Remove the flag.
962 (riscv_fntype_abi): Ditto.
963 * config/riscv/riscv.opt: Ditto.
964
965 2024-01-25 Jakub Jelinek <jakub@redhat.com>
966
967 PR middle-end/113574
968 * convert.cc (convert_to_integer_1) <case LSHIFT_EXPR>: Compare shift
969 count against TYPE_PRECISION rather than TYPE_SIZE.
970
971 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
972
973 PR target/113572
974 * config/aarch64/aarch64-sve-builtins.cc (vector_cst_all_same):
975 Check VECTOR_CST_ELT instead of VECTOR_CST_ENCODED_ELT
976
977 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
978
979 PR target/113550
980 * config/aarch64/aarch64-simd.md: In the movv8di splitter, check
981 whether each split instruction is a load that clobbers the source
982 address. Emit that instruction last if so.
983
984 2024-01-25 Richard Sandiford <richard.sandiford@arm.com>
985
986 PR target/113485
987 * config/aarch64/aarch64-simd.md (aarch64_zip1<mode>_low): New
988 pattern.
989 (<optab><Vnarrowq><mode>2): Use it instead of generating a
990 paradoxical subreg for the input.
991
992 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
993
994 * config/riscv/riscv-vsetvl.cc (get_all_predecessors): New function.
995 (pre_vsetvl::pre_global_vsetvl_info): Add LCM delete block all
996 predecessors dump information.
997
998 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
999
1000 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::compute_vsetvl_def_data): Remove
1001 redundant full available computation.
1002 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
1003
1004 2024-01-25 Jakub Jelinek <jakub@redhat.com>
1005
1006 * doc/generic.texi (VECTOR_CST): Fix typo - petterns -> patterns.
1007 * doc/rtl.texi (CONST_VECTOR): Likewise.
1008
1009 2024-01-25 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1010
1011 * config/riscv/riscv-opts.h (enum vsetvl_strategy_enum): Add optim-no-fusion option.
1012 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::lazy_vsetvl): Ditto.
1013 (pass_vsetvl::execute): Ditto.
1014 * config/riscv/riscv.opt: Ditto.
1015
1016 2024-01-25 Jiahao Xu <xujiahao@loongson.cn>
1017
1018 * config/loongarch/lasx.md (@vec_concatz<mode>): Remove this define_insn pattern.
1019 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init): Use vec_concat<mode>.
1020
1021 2024-01-25 Richard Biener <rguenther@suse.de>
1022
1023 PR tree-optimization/113576
1024 * tree-vect-loop.cc (vec_init_loop_exit_info): Only allow
1025 exits with may_be_zero niters when its the last one.
1026
1027 2024-01-25 Lulu Cheng <chenglulu@loongson.cn>
1028
1029 * config/loongarch/loongarch.cc (loongarch_symbolic_constant_p):
1030 For symbols of type tls, non-zero Offset is not generated.
1031
1032 2024-01-25 Haochen Gui <guihaoc@gcc.gnu.org>
1033
1034 * config/rs6000/rs6000-string.cc (expand_block_compare): Enable
1035 P9 with m32 and mpowerpc64.
1036
1037 2024-01-25 liuhongt <hongtao.liu@intel.com>
1038
1039 * config/i386/i386-options.cc (ix86_option_override_internal):
1040 Enable -mlam=u57 by default when compiled with
1041 -fsanitize=hwaddress.
1042
1043 2024-01-25 Palmer Dabbelt <palmer@rivosinc.com>
1044
1045 * common/config/riscv/riscv-common.cc (riscv_implied_info):
1046 Remove {"ztso", "a"}.
1047
1048 2024-01-24 Martin Jambor <mjambor@suse.cz>
1049
1050 PR ipa/108007
1051 PR ipa/112616
1052 * cgraph.h (cgraph_edge): Add a parameter to
1053 redirect_call_stmt_to_callee.
1054 * ipa-param-manipulation.h (ipa_param_adjustments): Add a
1055 parameter to modify_call.
1056 (ipa_release_ssas_in_hash): Declare.
1057 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): New
1058 parameter killed_ssas, pass it to padjs->modify_call.
1059 * ipa-param-manipulation.cc (purge_all_uses): New function.
1060 (ipa_param_adjustments::modify_call): New parameter killed_ssas.
1061 Instead of substituting uses, invoke purge_all_uses. If
1062 hash of killed SSAs has not been provided, create a temporary one
1063 and release SSAs that have been added to it.
1064 (compare_ssa_versions): New function.
1065 (ipa_release_ssas_in_hash): Likewise.
1066 * tree-inline.cc (redirect_all_calls): Create
1067 id->killed_new_ssa_names earlier, pass it to edge redirection,
1068 adjust a comment.
1069 (copy_body): Release SSAs in id->killed_new_ssa_names.
1070
1071 2024-01-24 Andrew Pinski <quic_apinski@quicinc.com>
1072
1073 PR target/113486
1074 * config/aarch64/aarch64.cc (aarch64_get_reg_raw_mode): For
1075 TARGET_GENERAL_REGS_ONLY, return VOIDmode for non-GP_REGNUM_P regno.
1076
1077 2024-01-24 Monk Chiang <monk.chiang@sifive.com>
1078
1079 PR target/113095
1080 * config/riscv/sfb.md: New splitters to rewrite single bit
1081 sign extension as the condition to SFB instructions.
1082
1083 2024-01-24 Jan Hubicka <jh@suse.cz>
1084
1085 PR middle-end/88345
1086 * common.opt: (flimit-function-alignment): Reorder alphabeticaly
1087 (fmin-function-alignment): New parameter.
1088 * doc/invoke.texi: (-fmin-function-alignment): Document.
1089 (-falign-functions,-falign-loops,-falign-labels): Mention that
1090 aglinments are ignored in cold code.
1091 * varasm.cc (assemble_start_function): Handle min-function-alignment.
1092
1093 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1094
1095 PR target/109636
1096 * config/aarch64/aarch64-simd.md (<su_optab>div<mode>3,
1097 mulv2di3): Remove.
1098 * config/aarch64/iterators.md (VQDIV): Remove.
1099 (SVE_FULL_SDI_SIMD, SVE_FULL_HSDI_SIMD_DI,
1100 SVE_I_SIMD_DI): New.
1101 (VPRED, sve_lane_con): Add V4SI and V2DI.
1102 * config/aarch64/aarch64-sve.md (<optab><mode>3,
1103 @aarch64_pred_<optab><mode>): Support Advanced SIMD types.
1104 (mul<mode>3): New, split from <optab><mode>3.
1105 (@aarch64_pred_<optab><mode>, *post_ra_<optab><mode>3): New.
1106 * config/aarch64/aarch64-sve2.md (@aarch64_mul_lane_<mode>,
1107 *aarch64_mul_unpredicated_<mode>): Change SVE_FULL_HSDI to
1108 SVE_FULL_HSDI_SIMD_DI.
1109
1110 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1111
1112 PR tree-optimization/113552
1113 * config/aarch64/aarch64.cc
1114 (aarch64_simd_clone_compute_vecsize_and_simdlen): Block simdlen 1.
1115
1116 2024-01-24 Martin Jambor <mjambor@suse.cz>
1117
1118 PR ipa/113490
1119 * ipa-cp.cc (ipcp_lattice<valtype>::add_value): Bail out if value
1120 count is equal or greater than the limit. Use the limit from the
1121 callee.
1122
1123 2024-01-24 YunQiang Su <syq@gcc.gnu.org>
1124
1125 * configure.ac: Detect the explicit relocs support for
1126 mips, and define C macro MIPS_EXPLICIT_RELOCS.
1127 * config.in: Regenerated.
1128 * configure: Regenerated.
1129 * doc/invoke.texi(MIPS Options): Add -mexplicit-relocs.
1130 * config/mips/mips-opts.h: Define enum mips_explicit_relocs.
1131 * config/mips/mips.cc(mips_set_compression_mode): Sorry if
1132 !TARGET_EXPLICIT_RELOCS instead of just set it.
1133 * config/mips/mips.h: Define TARGET_EXPLICIT_RELOCS and
1134 TARGET_EXPLICIT_RELOCS_PCREL with mips_opt_explicit_relocs.
1135 * config/mips/mips.opt: Introduce -mexplicit-relocs= option
1136 and define -m(no-)explicit-relocs as aliases.
1137
1138 2024-01-24 Alex Coplan <alex.coplan@arm.com>
1139
1140 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
1141 to 1.
1142 (-mlate-ldp-fusion): Likewise.
1143
1144 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1145
1146 * tree-vect-loop.cc (vect_get_vect_def,
1147 vect_create_epilog_for_reduction): Rename main_exit_p to
1148 last_val_reduc_p.
1149
1150 2024-01-24 Tamar Christina <tamar.christina@arm.com>
1151
1152 PR tree-optimization/113364
1153 * tree-vect-loop.cc (vect_create_epilog_for_reduction): If all exits all
1154 early exits then we must reduce from the first offset for all of them.
1155
1156 2024-01-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1157
1158 PR target/113495
1159 * config/riscv/riscv-vsetvl.cc (get_expr_id): Remove.
1160 (get_regno): Ditto.
1161 (get_bb_index): Ditto.
1162 (pre_vsetvl::compute_avl_def_data): Ditto.
1163 (pre_vsetvl::earliest_fuse_vsetvl_info): Fix large memory usage.
1164 (pre_vsetvl::pre_global_vsetvl_info): Ditto.
1165
1166 2024-01-23 Andrew Pinski <quic_apinski@quicinc.com>
1167 Richard Sandiford <richard.sandiford@arm.com>
1168
1169 PR target/100942
1170 * ccmp.cc (ccmp_candidate_p): Add outer argument.
1171 Allow if the outer is true and the lhs is used more
1172 than once.
1173 (expand_ccmp_expr): Update call to ccmp_candidate_p.
1174 * expr.h (expand_expr_real_gassign): Declare.
1175 * expr.cc (expand_expr_real_gassign): New function, split out from...
1176 (expand_expr_real_1): ...here.
1177 * cfgexpand.cc (expand_gimple_stmt_1): Use expand_expr_real_gassign.
1178
1179 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1180
1181 PR target/113089
1182 * config/aarch64/aarch64-ldp-fusion.cc (reset_debug_use): New.
1183 (fixup_debug_use): New.
1184 (fixup_debug_uses_trailing_add): New.
1185 (fixup_debug_uses): New. Use it ...
1186 (ldp_bb_info::fuse_pair): ... here.
1187 (try_promote_writeback): Call fixup_debug_uses_trailing_add to
1188 fix up debug uses of the base register that are affected by
1189 folding in the trailing add insn.
1190
1191 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1192
1193 PR target/113089
1194 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::fuse_pair):
1195 Update trailing nondebug uses of the base register in the case
1196 of cancelling writeback.
1197
1198 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1199
1200 PR target/113089
1201 * rtl-ssa/accesses.h (use_info::next_debug_insn_use): New.
1202 (debug_insn_use_iterator): New.
1203 (set_info::first_debug_insn_use): New.
1204 (set_info::debug_insn_uses): New.
1205 * rtl-ssa/member-fns.inl (use_info::next_debug_insn_use): New.
1206 (set_info::first_debug_insn_use): New.
1207 (set_info::debug_insn_uses): New.
1208
1209 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1210
1211 PR target/113356
1212 * config/aarch64/aarch64-ldp-fusion.cc (ldp_bb_info::try_fuse_pair):
1213 Don't record hazards against the opposite insn in the pair.
1214
1215 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1216
1217 PR target/113070
1218 * config/aarch64/aarch64-ldp-fusion.cc
1219 (struct stp_change_builder): New.
1220 (decide_stp_strategy): Reanme to ...
1221 (try_repurpose_store): ... this.
1222 (ldp_bb_info::fuse_pair): Refactor to use stp_change_builder to
1223 construct stp changes. Fix up uses when inserting new stp insns.
1224
1225 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1226
1227 PR target/113070
1228 * rtl-ssa.h: Include hash-set.h.
1229 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Add
1230 new_sets parameter and use it to keep track of new user-created sets.
1231 (function_info::apply_changes_to_insn): Also call add_def on new sets.
1232 (function_info::change_insns): Add hash_set to keep track of new
1233 user-created defs. Plumb it through.
1234 * rtl-ssa/functions.h: Add hash_set parameter to finalize_new_accesses and
1235 apply_changes_to_insn.
1236
1237 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1238
1239 PR target/113070
1240 * rtl-ssa/accesses.cc (function_info::create_use): New.
1241 * rtl-ssa/changes.cc (function_info::finalize_new_accesses):
1242 Ensure new uses end up referring to permanent defs.
1243 * rtl-ssa/functions.h (function_info::create_use): Declare.
1244
1245 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1246
1247 PR target/113070
1248 * rtl-ssa/changes.cc (function_info::change_insns): Split out the call
1249 to finalize_new_accesses from the backwards placement loop, run it
1250 forwards in a separate loop.
1251
1252 2024-01-23 Richard Biener <rguenther@suse.de>
1253
1254 PR tree-optimization/113552
1255 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Use
1256 floor_log2 instead of exact_log2 on the number of calls.
1257
1258 2024-01-23 Jeff Law <jlaw@ventanamicro.com>
1259 Jakub Jelinek <jakub@redhat.com>
1260
1261 * config/ia64/ia64.cc (ia64_start_function): Add ATTRIBUTE_UNUSED to
1262 decl.
1263
1264 2024-01-23 Richard Biener <rguenther@suse.de>
1265
1266 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1267 Separate single and multi-exit case when creating PHIs between
1268 the main and epilogue.
1269
1270 2024-01-23 Richard Sandiford <richard.sandiford@arm.com>
1271
1272 PR target/112989
1273 * config/aarch64/aarch64-sve-builtins-shapes.cc (build_one): Skip
1274 MODE_single variants of functions that don't take tuple arguments.
1275
1276 2024-01-23 Alex Coplan <alex.coplan@arm.com>
1277
1278 PR target/113114
1279 * config/aarch64/aarch64-ldp-fusion.cc (try_promote_writeback):
1280 Don't assert recog success, just punt if the writeback pair
1281 isn't recognized.
1282
1283 2024-01-23 Jakub Jelinek <jakub@redhat.com>
1284
1285 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Add
1286 ATTRIBUTE_UNUSED to decl.
1287
1288 2024-01-23 Richard Biener <rguenther@suse.de>
1289
1290 PR debug/107058
1291 * dwarf2out.cc (dwarf2out_die_ref_for_decl): Gracefully
1292 handle unexpected but bogus DIE contexts when not checking
1293 enabled.
1294
1295 2024-01-23 Jakub Jelinek <jakub@redhat.com>
1296
1297 PR tree-optimization/113462
1298 * fold-const.cc (native_interpret_int): Don't punt if total_bytes
1299 is larger than HOST_BITS_PER_DOUBLE_INT / BITS_PER_UNIT.
1300 (fold_view_convert_expr): Use XALLOCAVEC buffers for types with
1301 sizes between 129 and 8192 bytes.
1302
1303 2024-01-23 Xi Ruoyao <xry111@xry111.site>
1304
1305 * config/loongarch/loongarch.cc (loongarch_explicit_relocs_p):
1306 If la_opt_explicit_relocs is EXPLICIT_RELOCS_AUTO, return false
1307 for SYMBOL_TLS_LDM and SYMBOL_TLS_GD.
1308 (loongarch_call_tls_get_addr): Do not split symbols of
1309 SYMBOL_TLS_LDM or SYMBOL_TLS_GD if la_opt_explicit_relocs is
1310 EXPLICIT_RELOCS_AUTO.
1311
1312 2024-01-23 Richard Biener <rguenther@suse.de>
1313
1314 * alias.cc (known_base_value_p): Remove.
1315 (find_base_value): Remove PLUS/MINUS handling
1316 when both operands are not CONST_INT_P.
1317
1318 2024-01-23 Richard Biener <rguenther@suse.de>
1319
1320 PR rtl-optimization/113255
1321 * alias.cc (find_base_term): Remove PLUS/MINUS handling
1322 when both operands are not CONST_INT_P.
1323
1324 2024-01-23 Richard Biener <rguenther@suse.de>
1325
1326 PR debug/112718
1327 * dwarf2out.cc (dwarf2out_finish): Reset all type units
1328 for the fat part of an LTO compile.
1329
1330 2024-01-23 chenxiaolong <chenxiaolong@loongson.cn>
1331
1332 * doc/sourcebuild.texi: Add attributes for keywords.
1333
1334 2024-01-23 Sandra Loosemore <sandra@codesourcery.com>
1335
1336 PR c++/90463
1337 * doc/invoke.texi (Warning Options): Correct lists of options
1338 enabled by -Wall and -Wextra by checking against common.opt
1339 and c-family/c.opt.
1340
1341 2024-01-22 Andrew Pinski <quic_apinski@quicinc.com>
1342
1343 PR target/113030
1344 * config/arm/parsecpu.awk (check_cpu): Use cpu_opt_alias
1345 instead of cpu_optaliases.
1346 (check_arch): Use arch_opt_alias instead of arch_optaliases.
1347
1348 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1349
1350 * config/riscv/riscv-protos.h (splat_to_scalar_move_p): New function.
1351 * config/riscv/riscv-v.cc (splat_to_scalar_move_p): Ditto.
1352 * config/riscv/vector.md: Simplify vmv.v.x. into vmv.s.x.
1353
1354 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1355
1356 PR target/109092
1357 * config/riscv/riscv.md: Use reg instead of subreg.
1358
1359 2024-01-22 Tobias Burnus <tburnus@baylibre.com>
1360
1361 PR other/111966
1362 * config/gcn/mkoffload.cc (elf_arch): Change default to gfx900
1363 to match the compiler default.
1364 (simple_object_copy_lto_debug_sections): Never unlink the outfile
1365 on error as the caller does so.
1366 (maybe_unlink, compile_native): Use %<...%> and %qs in fatal_error.
1367 (main): Likewise. Fix 'mkoffload.dbg.o' cleanup.
1368
1369 2024-01-22 Richard Biener <rguenther@suse.de>
1370
1371 PR tree-optimization/113373
1372 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1373 Create LC PHIs in the exit blocks where necessary.
1374 * tree-vect-loop.cc (vectorizable_live_operation): Do not try
1375 to handle missing LC PHIs.
1376 (find_connected_edge): Remove.
1377 (vect_create_epilog_for_reduction): Cleanup use of auto_vec.
1378
1379 2024-01-22 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1380
1381 * config/riscv/vector.md: Fix vfirst/vmsbf/vmsof ratio attributes.
1382
1383 2024-01-22 xuli <xuli1@eswincomputing.com>
1384
1385 PR target/113420
1386 * config/riscv/riscv-vector-builtins.cc (has_vxrm_or_frm_p):remove.
1387 (registered_function::overloaded_hash):refactor.
1388 (resolve_overloaded_builtin):avoid internal ICE.
1389
1390 2024-01-21 Mikael Pettersson <mikpelinux@gmail.com>
1391
1392 PR target/82420
1393 PR target/111279
1394 * calls.cc (emit_library_call_value_1): Pass valid TYPE
1395 to emit_push_insn.
1396 * expr.cc (emit_push_insn): Likewise.
1397
1398 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
1399
1400 * config/riscv/riscv.cc (riscv_init_cumulative_args): Install
1401 correcction version of last change.
1402
1403 2024-01-21 Jeff Law <jlaw@ventanamicro.com>
1404
1405 * config/riscv/riscv.cc (riscv_init_cumulative_args): Update and
1406 fix bugs in signature.
1407
1408 2024-01-21 Roger Sayle <roger@nextmovesoftware.com>
1409 Richard Biener <rguenther@suse.de>
1410
1411 PR rtl-optimization/111267
1412 * fwprop.cc (fwprop_propagation::profitabe_p): Rename
1413 profitable_p method to likely_profitable_p.
1414 (try_fwprop_subst_node): Update call to likely_profitable_p.
1415 Only bail-out early when !prop.likely_profitable_p for instructions
1416 that are not single sets. When comparing costs, bail-out if the
1417 cost is unchanged and !prop.likely_profitable_p.
1418
1419 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
1420
1421 PR c++/90464
1422 * doc/invoke.texi (Warning Options): Document that -Wunused-parameter
1423 isn't enabled by -Wunused unless -Wextra is provided, and that
1424 -Wunused does enable -Wunused-const-variable=1 for C. Clarify that
1425 -Wunused doesn't enable -Wunused-* options documented as behaving
1426 otherwise, and list them explicitly.
1427
1428 2024-01-21 Sandra Loosemore <sandra@codesourcery.com>
1429
1430 PR c/109708
1431 * doc/invoke.texi (Warning Options): Fix broken example and
1432 clean up/reorganize the others. Also describe what the short-form
1433 options mean.
1434
1435 2024-01-20 Sandra Loosemore <sandra@codesourcery.com>
1436
1437 PR c/102998
1438 * doc/invoke.texi (Option Summary): Add -Warray-parameter.
1439 (Warning Options): Correct/edit discussion of -Warray-parameter
1440 to make the first example less confusing, and fill in missing info.
1441
1442 2024-01-20 Jakub Jelinek <jakub@redhat.com>
1443
1444 PR tree-optimization/113462
1445 * gimple-lower-bitint.cc (bitint_large_huge::handle_cast):
1446 Handle rhs1 INTEGER_CST like SSA_NAME.
1447
1448 2024-01-20 Jakub Jelinek <jakub@redhat.com>
1449
1450 PR tree-optimization/113491
1451 * tree-switch-conversion.cc (switch_conversion::build_constructors):
1452 If elt.index has precision higher than sizetype, fold_convert it to
1453 sizetype.
1454 (switch_conversion::array_value_type): Return type if type is
1455 BITINT_TYPE with precision above MAX_FIXED_MODE_SIZE or with BLKmode.
1456 (switch_conversion::build_arrays): Use unsigned_type_for rather than
1457 lang_hooks.types.type_for_mode if utype is BITINT_TYPE with precision
1458 above MAX_FIXED_MODE_SIZE or with BLKmode. If utype has precision
1459 higher than sizetype, use sizetype as tidx type and fold_convert the
1460 subtraction to sizetype.
1461
1462 2024-01-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1463
1464 * config/riscv/riscv.cc (riscv_init_cumulative_args): Suppress warning.
1465 (riscv_vector_mode_supported_any_target_p): Ditto.
1466
1467 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
1468
1469 PR target/110934
1470 * config/m68k/m68k.cc (m68k_zero_call_used_regs): New function.
1471 (TARGET_ZERO_CALL_USED_REGS): Define.
1472
1473 2024-01-19 Mikael Pettersson <mikpelinux@gmail.com>
1474
1475 PR target/108640
1476 * config/m68k/m68k.cc (output_andsi3): Use QImode for
1477 address adjusted for 1-byte RMW access.
1478 (output_iorsi3): Likewise.
1479 (output_xorsi3): Likewise.
1480
1481 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1482
1483 * doc/invoke.texi (RISC-V Options): Add list of supported
1484 extensions.
1485
1486 2024-01-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1487
1488 PR target/113495
1489 * config/riscv/riscv-protos.h (RVV_VLMAX): Change to regno_reg_rtx[X0_REGNUM].
1490 (RVV_VUNDEF): Ditto.
1491 * config/riscv/riscv-vsetvl.cc: Add timevar.
1492
1493 2024-01-19 Richard Biener <rguenther@suse.de>
1494
1495 PR debug/113488
1496 * lto-streamer-in.cc (lto_read_tree_1): When there isn't
1497 an early DIE but there should be, do not pretend there is.
1498
1499 2024-01-19 Richard Biener <rguenther@suse.de>
1500
1501 PR tree-optimization/113494
1502 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1503 Handle endless loop on exit. Handle re-allocated PHI.
1504
1505 2024-01-19 Jakub Jelinek <jakub@redhat.com>
1506
1507 PR tree-optimization/113464
1508 * gimple-lower-bitint.cc (gimple_lower_bitint): Don't try to
1509 optimize loads into GIMPLE_ASM stmts.
1510
1511 2024-01-19 Jakub Jelinek <jakub@redhat.com>
1512
1513 PR tree-optimization/113463
1514 * gimple-ssa-warn-restrict.cc (builtin_memref::extend_offset_range):
1515 Only look through NOP_EXPRs if rhs1 doesn't have wider type than
1516 lhs.
1517
1518 2024-01-19 Jakub Jelinek <jakub@redhat.com>
1519
1520 PR tree-optimization/113459
1521 * tree-ssa-sccvn.cc (vn_walk_cb_data::push_partial_def): Use
1522 TREE_INT_CST_LOW of TYPE_SIZE_UNIT rather than GET_MODE_SIZE
1523 of SCALAR_INT_TYPE_MODE if type has BLKmode.
1524 (vn_reference_lookup_3): Likewise. Formatting fix.
1525
1526 2024-01-19 Jakub Jelinek <jakub@redhat.com>
1527 Richard Biener <rguenther@suse.de>
1528
1529 * cfgexpand.cc (discover_nonconstant_array_refs_r): Force non-BLKmode
1530 VAR_DECLs referenced in BLKmode VIEW_CONVERT_EXPRs into memory.
1531 * expr.cc (expand_expr_real_1) <case VIEW_CONVERT_EXPR>: Do nothing
1532 but adjust_address also for BLKmode mode and MEM op0.
1533
1534 2024-01-19 Palmer Dabbelt <palmer@rivosinc.com>
1535
1536 * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr
1537 extensions.
1538
1539 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1540
1541 * doc/invoke.texi (RISC-V Options): Document the syntax of -march.
1542
1543 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1544
1545 * common/config/riscv/riscv-common.cc
1546 (riscv_subset_list::parse_std_ext): Remove.
1547 (riscv_subset_list::parse_multiletter_ext): Remove.
1548 * config/riscv/riscv-subset.h
1549 (riscv_subset_list::parse_std_ext): Remove.
1550 (riscv_subset_list::parse_multiletter_ext): Remove.
1551
1552 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1553
1554 * common/config/riscv/riscv-common.cc
1555 (riscv_subset_list::parse_single_std_ext): New parameter.
1556 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
1557 (riscv_subset_list::parse_single_ext): Ditto.
1558 (riscv_subset_list::parse): Relax the order for the input of ISA
1559 string.
1560 * config/riscv/riscv-subset.h
1561 (riscv_subset_list::parse_single_std_ext): New parameter.
1562 (riscv_subset_list::parse_single_multiletter_ext): Ditto.
1563 (riscv_subset_list::parse_single_ext): Ditto.
1564
1565 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1566
1567 * common/config/riscv/riscv-common.cc
1568 (riscv_subset_list::parse_base_ext): New.
1569 (riscv_subset_list::parse): Extract part of logic into
1570 riscv_subset_list::parse_base_ext.
1571 * config/riscv/riscv-subset.h (riscv_subset_list::parse_base_ext):
1572 New.
1573
1574 2024-01-19 Kito Cheng <kito.cheng@sifive.com>
1575
1576 * config/riscv/riscv.cc (riscv_override_options_internal): Tweak
1577 sorry message.
1578
1579 2024-01-19 Kuan-Lin Chen <rufus@andestech.com>
1580
1581 * config/riscv/vector-crypto.md (UNSPEC_CLMUL): Rename to
1582 UNSPEC_CLMUL_VC.
1583
1584 2024-01-19 Sandra Loosemore <sandra@codesourcery.com>
1585
1586 PR c/110029
1587 * doc/extend.texi (Common Variable Attributes): Explain what
1588 happens when multiple variables with cleanups are in the same scope.
1589
1590 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
1591
1592 PR ipa/108470
1593 * doc/extend.texi (Common Function Attributes): Document that
1594 noinline also disables some interprocedural optimizations and
1595 improve flow to the part about using inline asm instead to
1596 disable calls from being optimized away completely. Remove the
1597 sentence that says noipa is mainly for internal compiler testing.
1598
1599 2024-01-18 John David Anglin <danglin@gcc.gnu.org>
1600
1601 PR tree-optimization/69807
1602 * config/pa/pa.cc (pa_option_override): Set flag_pie on TARGET_64BIT.
1603
1604 2024-01-18 Brian Inglis <Brian.Inglis@Shaw.ca>
1605
1606 PR target/108521
1607 * doc/invoke.texi (Option Summary): Remove -mcygwin and -mno-cygwin
1608 from x86 Windows Options.
1609
1610 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
1611
1612 PR c/107942
1613 * doc/extend.texi (C Extensions): Add new section to menu.
1614 (Function Attributes): Move dangling index entries to....
1615 (Const and Volatile Functions): New section.
1616
1617 2024-01-18 David Malcolm <dmalcolm@redhat.com>
1618
1619 PR middle-end/112684
1620 * toplev.cc (toplev::main): Don't ICE in
1621 -fdiagnostics-generate-patch when exiting after options,
1622 since no edit context will have been created.
1623
1624 2024-01-18 Richard Biener <rguenther@suse.de>
1625
1626 * tree-vect-stmts.cc (vectorizable_store): Do not pre-allocate
1627 operands vector.
1628
1629 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
1630
1631 * Makefile.in: Emit ENABLE_DARWIN_AT_RPATH into site.exp
1632 when ENABLE_DARWIN_AT_RPATH_TRUE is not '#'.
1633
1634 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1635 Jin Ma <jinma@linux.alibaba.com>
1636 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1637 Christoph Müllner <christoph.muellner@vrull.eu>
1638
1639 * config/riscv/thead.cc
1640 (th_asm_output_opcode): Rewrite some instructions.
1641
1642 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1643 Jin Ma <jinma@linux.alibaba.com>
1644 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1645 Christoph Müllner <christoph.muellner@vrull.eu>
1646
1647 * config/riscv/riscv.md (none,thv,rvv): New attribute.
1648 (no,yes): Add an attribute to disable alternative
1649 for xtheadvector or RVV1.0.
1650 * config/riscv/vector.md:
1651 Disable alternatives that destination register overlaps
1652 source register group for xtheadvector.
1653
1654 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1655 Jin Ma <jinma@linux.alibaba.com>
1656 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1657 Christoph Müllner <christoph.muellner@vrull.eu>
1658
1659 * config/riscv/riscv-vector-builtins-bases.cc
1660 (class th_loadstore_width): Define new builtin bases.
1661 (class th_extract): Define new builtin bases.
1662 (BASE): Define new builtin bases.
1663 * config/riscv/riscv-vector-builtins-bases.h:
1664 Define new builtin class.
1665 * config/riscv/riscv-vector-builtins-shapes.cc
1666 (struct th_loadstore_width_def): Define new builtin shapes.
1667 (struct th_indexed_loadstore_width_def):
1668 Define new builtin shapes.
1669 (struct th_extract_def): Define new builtin shapes.
1670 (SHAPE): Define new builtin shapes.
1671 * config/riscv/riscv-vector-builtins-shapes.h:
1672 Define new builtin shapes.
1673 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FUNCTION):
1674 Redefine DEF_RVV_FUNCTION for XTheadVector special intrinsics.
1675 * config/riscv/riscv-vector-builtins.h
1676 (enum required_ext): Add new XTheadVector member.
1677 (struct function_group_info): Likewise.
1678 * config/riscv/t-riscv:
1679 Add thead-vector-builtins-functions.def
1680 * config/riscv/thead-vector.md
1681 (@pred_mov_width<vlmem_op_attr><mode>): Add new patterns.
1682 (*pred_mov_width<vlmem_op_attr><mode>): Likewise.
1683 (@pred_store_width<vlmem_op_attr><mode>): Likewise.
1684 (@pred_strided_load_width<vlmem_op_attr><mode>): Likewise.
1685 (@pred_strided_store_width<vlmem_op_attr><mode>): Likewise.
1686 (@pred_indexed_load_width<vlmem_op_attr><mode>): Likewise.
1687 (@pred_th_extract<mode>): Likewise.
1688 (*pred_th_extract<mode>): Likewise.
1689 * config/riscv/thead-vector-builtins-functions.def: New file.
1690
1691 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1692 Jin Ma <jinma@linux.alibaba.com>
1693 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1694 Christoph Müllner <christoph.muellner@vrull.eu>
1695
1696 * config.gcc: Add files for XTheadVector intrinsics.
1697 * config/riscv/autovec.md: Guard XTheadVector.
1698 * config/riscv/predicates.md: Disable immediate vl
1699 for XTheadVector.
1700 * config/riscv/riscv-c.cc (riscv_pragma_intrinsic):
1701 Add pragma for XTheadVector.
1702 * config/riscv/riscv-string.cc (riscv_expand_block_move):
1703 Guard XTheadVector.
1704 * config/riscv/riscv-v.cc (vls_mode_valid_p):
1705 Avoid autovec.
1706 * config/riscv/riscv-vector-builtins-bases.cc:
1707 Do not normalize vsetvl instructions for XTheadVector.
1708 * config/riscv/riscv-vector-builtins-shapes.cc (check_type):
1709 New check type function.
1710 (build_one): Adjust for XTheadVector.
1711 * config/riscv/riscv-vector-switch.def (ENTRY):
1712 Disable fractional mode for the XTheadVector extension.
1713 (TUPLE_ENTRY): Likewise.
1714 * config/riscv/riscv.cc (riscv_v_adjust_bytesize):
1715 Guard XTheadVector.
1716 (riscv_preferred_simd_mode): Likewsie.
1717 (riscv_autovectorize_vector_modes): Likewise.
1718 (riscv_vector_mode_supported_any_target_p): Likewise.
1719 (TARGET_VECTOR_MODE_SUPPORTED_ANY_TARGET_P): Likewise.
1720 * config/riscv/thead.cc (th_asm_output_opcode):
1721 Rewrite vsetvl instructions.
1722 * config/riscv/vector.md:
1723 Include thead-vector.md and change fractional LMUL
1724 into 1 for vbool.
1725 * config/riscv/riscv_th_vector.h: New file.
1726 * config/riscv/thead-vector.md: New file.
1727
1728 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1729 Jin Ma <jinma@linux.alibaba.com>
1730 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1731 Christoph Müllner <christoph.muellner@vrull.eu>
1732
1733 * config/riscv/riscv-protos.h (riscv_asm_output_opcode):
1734 Add new function to add assembler insn code prefix/suffix.
1735 (th_asm_output_opcode):
1736 Add Thead function to add assembler insn code prefix/suffix.
1737 * config/riscv/riscv.cc (riscv_asm_output_opcode):
1738 Implement function to add assembler insn code prefix/suffix.
1739 * config/riscv/riscv.h (ASM_OUTPUT_OPCODE):
1740 Add new function to add assembler insn code prefix/suffix.
1741 * config/riscv/thead.cc (th_asm_output_opcode):
1742 Implement Thead function to add assembler insn code
1743 prefix/suffix.
1744
1745 2024-01-18 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
1746 Jin Ma <jinma@linux.alibaba.com>
1747 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1748 Christoph Müllner <christoph.muellner@vrull.eu>
1749
1750 * common/config/riscv/riscv-common.cc
1751 (riscv_subset_list::parse): Add new vendor extension.
1752 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins):
1753 Add test marco.
1754 * config/riscv/riscv.opt: Add new mask.
1755
1756 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
1757
1758 * config/darwin.h (DARWIN_RPATH_SPEC): Arrange for the %P spec
1759 to be conditional on macosx-version-min.
1760
1761 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
1762
1763 * config/darwin.cc (darwin_objc1_section): Use the correct
1764 meta-data version for constant strings.
1765 (machopic_select_section): Assert if we fail to handle CFString
1766 sections as Obejctive-C meta-data or drectly.
1767
1768 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
1769
1770 * lto-section-names.h (OFFLOAD_SECTION_NAME_PREFIX,
1771 OFFLOAD_VAR_TABLE_SECTION_NAME, OFFLOAD_FUNC_TABLE_SECTION_NAME,
1772 OFFLOAD_IND_FUNC_TABLE_SECTION_NAME): Provide Mach-O syntax
1773 versions when the object format is Mach-O.
1774
1775 2024-01-18 Iain Sandoe <iain@sandoe.co.uk>
1776
1777 PR target/105522
1778 * config/darwin.cc (machopic_select_section): Handle C and C++
1779 CFStrings.
1780 (darwin_rename_builtins): Move this out of the CFString code.
1781 (darwin_libc_has_function): Likewise.
1782 (darwin_build_constant_cfstring): Create an anonymous var to
1783 hold each CFString.
1784 * config/darwin.h (ASM_OUTPUT_LABELREF): Handle constant
1785 CFstrings.
1786
1787 2024-01-18 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
1788
1789 PR bootstrap/113445
1790 * haifa-sched.cc (dep_list_size): Make global.
1791 * sched-deps.cc (find_inc): Use instead of sd_lists_size().
1792 * sched-int.h (dep_list_size): Declare.
1793
1794 2024-01-18 Martin Jambor <mjambor@suse.cz>
1795
1796 PR tree-optimization/110422
1797 * tree-sra.cc (scan_function): Disqualify bases of operands of asm
1798 gotos.
1799
1800 2024-01-18 Richard Biener <rguenther@suse.de>
1801
1802 PR tree-optimization/113475
1803 * gimple-range-phi.h (phi_analyzer::m_phi_groups): New.
1804 * gimple-range-phi.cc (phi_analyzer::phi_analyzer): Initialize.
1805 (phi_analyzer::~phi_analyzer): Deallocate and free collected
1806 phi_grous.
1807 (phi_analyzer::process_phi): Record allocated phi_groups.
1808
1809 2024-01-18 Richard Biener <rguenther@suse.de>
1810
1811 * tree-vect-stmts.cc (vectorizable_store): Do not allocate
1812 storage for gvec_oprnds elements.
1813
1814 2024-01-18 Richard Biener <rguenther@suse.de>
1815
1816 * tree-vect-loop.cc (vec_init_loop_exit_info): Adjust comment,
1817 prefer all later exits we can handle.
1818 (vect_analyze_loop_form): Free the allocated loop body.
1819 Adjust comments.
1820
1821 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1822
1823 * config/avr/avr-log.cc: Tabify.
1824
1825 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1826
1827 * config/riscv/autovec.md: Support vi variant.
1828
1829 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1830
1831 * config/avr/avr-devices.cc: Tabify.
1832
1833 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1834
1835 * config/avr/avr-c.cc: Tabify.
1836
1837 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1838
1839 * config/avr/driver-avr.cc: Tabify.
1840
1841 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1842
1843 * config/avr/gen-avr-mmcu-texi.cc: Tabify.
1844
1845 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1846
1847 * config/avr/gen-avr-mmcu-specs.cc: Tabify.
1848
1849 2024-01-18 Jakub Jelinek <jakub@redhat.com>
1850
1851 * config/riscv/riscv.opt (mshorten-memrefs, mrelax, mcsr-check,
1852 minline-strcmp, minline-strncmp, minline-strlen,
1853 -param=riscv-vector-abi): Remove Bool keywords.
1854
1855 2024-01-18 Jakub Jelinek <jakub@redhat.com>
1856
1857 PR target/113122
1858 * config/i386/i386.cc (x86_function_profiler): Add -masm=intel
1859 support. Add missing space after , in emitted assembly in some
1860 cases. Formatting fixes.
1861
1862 2024-01-18 Xi Ruoyao <xry111@xry111.site>
1863
1864 * config/loongarch/loongarch.md (movsi_internal): Remove
1865 constraint z.
1866
1867 2024-01-18 Georg-Johann Lay <avr@gjlay.de>
1868
1869 * config/avr/gen-avr-mmcu-specs.cc (diagnose_rodata_in_ram): Fix typo
1870 in the diagnostic, and capitalize the device name.
1871 (print_mcu): Generate specs such that:
1872 <*check_rodata_in_ram>: New.
1873 <*cc1_misc>: Use check_rodata_in_ram instead of cc1_rodata_in_ram.
1874 <*link_misc>: Use check_rodata_in_ram instead of link_rodata_in_ram.
1875 <*cc1_rodata_in_ram, *link_rodata_in_ram>: Remove.
1876
1877 2024-01-18 Jakub Jelinek <jakub@redhat.com>
1878
1879 PR other/113399
1880 * common.opt (ffold-mem-offsets): Remove Target and Bool keywords, add
1881 Common and Optimization.
1882
1883 2024-01-18 Richard Biener <rguenther@suse.de>
1884
1885 PR tree-optimization/113431
1886 * tree-vect-data-refs.cc (vect_preserves_scalar_order_p):
1887 When there is an invariant load we might not preserve
1888 scalar order.
1889
1890 2024-01-18 Richard Biener <rguenther@suse.de>
1891
1892 PR tree-optimization/113374
1893 * tree-ssa-operands.h (SET_PHI_ARG_DEF_ON_EDGE): New.
1894 * tree-vect-loop.cc (move_early_exit_stmts): Update
1895 virtual LC PHIs.
1896 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
1897 Refactor. Preserve virtual LC PHIs on all exits.
1898
1899 2024-01-18 Lulu Cheng <chenglulu@loongson.cn>
1900
1901 * config/loongarch/loongarch.cc (loongarch_split_symbol):
1902 Assign the '/u' attribute to the mem.
1903
1904 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
1905
1906 PR middle-end/110847
1907 * doc/invoke.texi (Option Summary): Document negative forms of
1908 -Wtsan and -Wxor-used-as-pow.
1909 (Warning Options): Likewise.
1910
1911 2024-01-18 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1912
1913 PR target/113429
1914 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::earliest_fuse_vsetvl_info): Fix bug.
1915
1916 2024-01-18 Sandra Loosemore <sandra@codesourcery.com>
1917
1918 * doc/extend.texi (Common Function Attributes): Re-alphabetize
1919 the table.
1920 (Common Variable Attributes): Likewise.
1921 (Common Type Attributes): Likewise.
1922
1923 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
1924
1925 PR middle-end/111659
1926 * doc/extend.texi (Common Variable Attributes): Fix long lines
1927 in documentation of strict_flex_array + other minor copy-editing.
1928 Add a cross-reference to -Wstrict-flex-arrays.
1929 * doc/invoke.texi (Option Summary): Fix whitespace in tables
1930 before -fstrict-flex-arrays and -Wstrict-flex-arrays.
1931 (C Dialect Options): Combine the docs for the two
1932 -fstrict-flex-arrays forms into a single entry. Note this option
1933 is for C/C++ only. Add a cross-reference to -Wstrict-flex-arrays.
1934 (Warning Options): Note -Wstrict-flex-arrays is for C/C++ only.
1935 Minor copy-editing. Add cross references to the strict_flex_array
1936 attribute and -fstrict-flex-arrays option. Add note that this
1937 option depends on -ftree-vrp.
1938
1939 2024-01-17 Andrew Pinski <quic_apinski@quicinc.com>
1940
1941 PR target/113221
1942 * config/aarch64/predicates.md (aarch64_ldp_reg_operand): For subreg,
1943 only allow REG operands instead of allowing all.
1944
1945 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
1946
1947 * config/riscv/riscv-vsetvl.cc (earliest_fuse_vsetvl_info):
1948 Remove redundant checks in else condition for readablity.
1949 (earliest_fuse_vsetvl_info) Print iteration count in debug
1950 prints.
1951 (earliest_fuse_vsetvl_info) Fix misleading vsetvl info
1952 dump details in certain cases.
1953
1954 2024-01-17 Vineet Gupta <vineetg@rivosinc.com>
1955
1956 * config/riscv/riscv.opt: New -param=vsetvl-strategy.
1957 * config/riscv/riscv-opts.h: New enum vsetvl_strategy_enum.
1958 * config/riscv/riscv-vsetvl.cc
1959 (pre_vsetvl::pre_global_vsetvl_info): Use vsetvl_strategy.
1960 (pass_vsetvl::execute): Use vsetvl_strategy.
1961
1962 2024-01-17 Jan Hubicka <jh@suse.cz>
1963
1964 * ipa-polymorphic-call.cc (ipa_polymorphic_call_context::set_by_invariant): Remove
1965 accidental hack reseting offset.
1966
1967 2024-01-17 Jan Hubicka <jh@suse.cz>
1968
1969 * config/i386/i386-options.cc (ix86_option_override_internal): Fix
1970 handling of X86_TUNE_AVOID_512FMA_CHAINS.
1971
1972 2024-01-17 Jan Hubicka <jh@suse.cz>
1973 Jakub Jelinek <jakub@redhat.com>
1974
1975 PR tree-optimization/110852
1976 * predict.cc (expr_expected_value_1): Fix profile merging of PHI and
1977 binary operations
1978 (get_predictor_value): Handle PRED_COMBINED_VALUE_PREDICTIONS and
1979 PRED_COMBINED_VALUE_PREDICTIONS_PHI
1980 * predict.def (PRED_COMBINED_VALUE_PREDICTIONS): New predictor.
1981 (PRED_COMBINED_VALUE_PREDICTIONS_PHI): New predictor.
1982
1983 2024-01-17 Jakub Jelinek <jakub@redhat.com>
1984
1985 PR tree-optimization/113421
1986 * gimple-lower-bitint.cc (stmt_needs_operand_addr): Adjust function
1987 comment.
1988 (bitint_dom_walker::before_dom_children): Add g temporary to simplify
1989 formatting. Start at vop rather than cvop even if stmt is a store
1990 and needs_operand_addr.
1991
1992 2024-01-17 Jakub Jelinek <jakub@redhat.com>
1993
1994 PR middle-end/113410
1995 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
1996 If access_nelts is integral with larger precision than sizetype,
1997 fold_convert it to sizetype.
1998
1999 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2000
2001 PR tree-optimization/113408
2002 * gimple-lower-bitint.cc (bitint_large_huge::handle_stmt): For
2003 VIEW_CONVERT_EXPR, pass TREE_OPERAND (rhs1, 0) rather than rhs1
2004 to handle_cast.
2005
2006 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2007
2008 PR middle-end/113406
2009 * ipa-strub.cc (pass_ipa_strub::execute): Check aggregate_value_p
2010 regardless of whether is_gimple_reg_type (restype) or not.
2011
2012 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2013
2014 * tree-into-ssa.cc (pass_build_ssa::gate): Fix comment typo,
2015 funcions -> functions, and use were instead of was.
2016 * gengtype.cc (dump_typekind): Fix comment typos, funcion -> function
2017 and guaranteee -> guarantee.
2018 * attribs.h (struct attr_access): Fix comment typo funcion -> function.
2019
2020 2024-01-17 Jakub Jelinek <jakub@redhat.com>
2021
2022 PR middle-end/113409
2023 * omp-general.cc (omp_adjust_for_condition): Handle BITINT_TYPE like
2024 INTEGER_TYPE.
2025 (omp_extract_for_data): Use build_bitint_type rather than
2026 build_nonstandard_integer_type if either iter_type or loop->v type
2027 is BITINT_TYPE.
2028 * omp-expand.cc (expand_omp_for_generic,
2029 expand_omp_taskloop_for_outer, expand_omp_taskloop_for_inner): Handle
2030 BITINT_TYPE like INTEGER_TYPE.
2031
2032 2024-01-17 Richard Biener <rguenther@suse.de>
2033
2034 PR tree-optimization/113371
2035 * tree-vect-data-refs.cc (vect_enhance_data_refs_alignment):
2036 Do not peel when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
2037 * tree-vect-loop-manip.cc (vect_do_peeling): Assert we do
2038 not perform prologue peeling when LOOP_VINFO_EARLY_BREAKS_VECT_PEELED.
2039
2040 2024-01-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org>
2041
2042 PR rtl-optimization/96388
2043 PR rtl-optimization/111554
2044 * sched-deps.cc (find_inc): Avoid exponential behavior.
2045
2046 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
2047
2048 PR c/111693
2049 * doc/invoke.texi (Option Summary): Move -Wuseless-cast
2050 from C++ Language Options to Warning Options. Add entry for
2051 -Wuse-after-free.
2052 (C++ Dialect Options): Move -Wuse-after-free and -Wuseless-cast
2053 from here....
2054 (Warning Options): ...to here. Minor copy-editing to fix typo
2055 and grammar.
2056
2057 2024-01-17 YunQiang Su <syq@gcc.gnu.org>
2058
2059 * config/mips/mips.cc (mips_compute_frame_info): If another
2060 register is used as global_pointer, mark $GP live false.
2061
2062 2024-01-17 Sandra Loosemore <sandra@codesourcery.com>
2063
2064 PR target/112973
2065 * doc/extend.texi (BPF Built-in Functions): Wrap long lines and
2066 give the section a light copy-editing pass.
2067
2068 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
2069
2070 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Add 'cobalt-100' CPU.
2071 * config/aarch64/aarch64-tune.md: Regenerated.
2072 * doc/invoke.texi (-mcpu): Add cobalt-100 core.
2073
2074 2024-01-16 Wilco Dijkstra <wilco.dijkstra@arm.com>
2075
2076 PR target/112573
2077 * config/aarch64/aarch64.cc (aarch64_legitimize_address): Reassociate
2078 badly formed CONST expressions.
2079
2080 2024-01-16 Daniel Cederman <cederman@gaisler.com>
2081
2082 * config/sparc/sparc.cc (next_active_non_empty_insn): Length 0 treated as empty
2083
2084 2024-01-16 Daniel Cederman <cederman@gaisler.com>
2085
2086 * config/sparc/sparc.cc (atomic_insn_for_leon3_p): Treat membar_storeload as atomic
2087 * config/sparc/sync.md (membar_storeload): Turn into named insn
2088 and add GR712RC errata workaround.
2089 (membar_v8): Add GR712RC errata workaround.
2090
2091 2024-01-16 Andreas Larsson <andreas@gaisler.com>
2092
2093 * config/sparc/sync.md (*membar_storeload_leon3): Remove
2094 (*membar_storeload): Enable for LEON
2095
2096 2024-01-16 Jakub Jelinek <jakub@redhat.com>
2097
2098 PR tree-optimization/113372
2099 PR middle-end/90348
2100 PR middle-end/110115
2101 PR middle-end/111422
2102 * cfgexpand.cc (add_scope_conflicts_2): New function.
2103 (add_scope_conflicts_1): Use it.
2104
2105 2024-01-16 Georg-Johann Lay <avr@gjlay.de>
2106
2107 * config/avr/avr-mcus.def (avr16eb14, avr16eb20, avr16eb28, avr16eb32)
2108 (avr16ea28, avr16ea32, avr16ea48, avr32ea28, avr32ea32, avr32ea48): Add.
2109 * doc/avr-mmcu.texi: Regenerate.
2110
2111 2024-01-16 Feng Xue <fxue@os.amperecomputing.com>
2112
2113 PR tree-optimization/113091
2114 * tree-vect-slp.cc (vect_slp_has_scalar_use): New function.
2115 (vect_bb_slp_mark_live_stmts): New parameter scalar_use_map, check
2116 scalar use with new function.
2117 (vect_bb_slp_mark_live_stmts): New function as entry to existing
2118 overriden functions with same name.
2119 (vect_slp_analyze_operations): Call new entry function to mark
2120 live statements.
2121
2122 2024-01-16 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2123
2124 PR target/113404
2125 * config/riscv/riscv.cc (riscv_override_options_internal): Report sorry
2126 for RVV in big-endian mode.
2127
2128 2024-01-16 Yanzhang Wang <yanzhang.wang@intel.com>
2129
2130 * config/riscv/riscv.cc (riscv_arg_has_vector): Delete.
2131 (riscv_pass_in_vector_p): Delete.
2132 (riscv_init_cumulative_args): Delete the checking.
2133 (riscv_get_arg_info): Delete the checking.
2134 (riscv_function_value): Delete the checking.
2135 * config/riscv/riscv.h: Delete the member for checking.
2136
2137 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
2138
2139 * doc/invoke.texi (AVR Options) [-mskip-bug]: Add documentation.
2140
2141 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
2142
2143 * config.gcc: Include riscv_bitmanip.h.
2144 * config/riscv/bitmanip.md: Changed mode form X to GPR in orcb and clmul pattern.
2145 * config/riscv/crypto.md: Changed mode form X to GPR in brev8 pattern.
2146 * config/riscv/riscv-builtins.cc (AVAIL): Adding new bitmanip builtins.
2147 (RISCV_BUILTIN_NO_PREFIX): New helper macro.
2148 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Add '_32'/'_64' postfix to builtins.
2149 * config/riscv/riscv-ftypes.def (2): New ftypes.
2150 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): New builtins.
2151 (RISCV_BUILTIN_NO_PREFIX): Likewise.
2152 * config/riscv/riscv_bitmanip.h: New file.
2153
2154 2024-01-15 Liao Shihua <shihua@iscas.ac.cn>
2155
2156 * config.gcc: Include riscv_crypto.h.
2157 * config/riscv/riscv_crypto.h: New file.
2158
2159 2024-01-15 Vladimir N. Makarov <vmakarov@redhat.com>
2160
2161 PR middle-end/113354
2162 * lra-constraints.cc (curr_insn_transform): Spill pseudo only used
2163 in the insn if the corresponding operand does not require hard
2164 register anymore.
2165
2166 2024-01-15 Georg-Johann Lay <avr@gjlay.de>
2167
2168 PR target/107201
2169 * config/avr/avr.h (EXTRA_SPEC_FUNCTIONS): Add no-devlib, avr_no_devlib.
2170 * config/avr/driver-avr.cc (avr_no_devlib): New function.
2171 (avr_devicespecs_file): Use it to remove -nodevicelib from the
2172 options for cores only.
2173 * config/avr/avr-arch.h (avr_get_parch): New prototype.
2174 * config/avr/avr-devices.cc (avr_get_parch): New function.
2175
2176 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2177
2178 PR target/113247
2179 * config/riscv/riscv-protos.h (struct regmove_vector_cost): Add vector to scalar regmove.
2180 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Ditto.
2181 * config/riscv/riscv.cc (riscv_builtin_vectorization_cost): Adjust vec_construct cost.
2182
2183 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2184
2185 PR target/113281
2186 * config/riscv/riscv-vector-costs.cc (costs::adjust_vect_cost_per_loop): New function.
2187 (costs::finish_cost): Adjust cost for LOOP LEN with NITERS < VF.
2188 * config/riscv/riscv-vector-costs.h: New function.
2189
2190 2024-01-15 Richard Biener <rguenther@suse.de>
2191
2192 PR tree-optimization/113385
2193 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2194 First redirect, then split the exit edge.
2195
2196 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2197
2198 * config/riscv/riscv-vector-costs.cc (costs::analyze_loop_vinfo):
2199 Remove m_num_vector_iterations.
2200 * config/riscv/riscv-vector-costs.h: Ditto.
2201
2202 2024-01-15 Andrew Pinski <quic_apinski@quicinc.com>
2203
2204 PR target/113156
2205 * config/avr/avr.opt (-mdouble, -mlong-double): Add "Save" flag.
2206 (-mbranch-cost): Set "Optimization" flag.
2207
2208 2024-01-15 Jakub Jelinek <jakub@redhat.com>
2209
2210 PR tree-optimization/113370
2211 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Only
2212 set rem to prec % (2 * limb_prec) if m_upwards_2limb, otherwise
2213 set it to just prec % limb_prec.
2214
2215 2024-01-15 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2216
2217 PR target/113393
2218 * config/riscv/vector.md: Fix ternary attributes.
2219
2220 2024-01-14 Georg-Johann Lay <avr@gjlay.de>
2221
2222 PR target/112944
2223 * configure.ac [target=avr]: Check availability of emulations
2224 avrxmega2_flmap and avrxmega4_flmap, resulting in new config vars
2225 HAVE_LD_AVR_AVRXMEGA2_FLMAP and HAVE_LD_AVR_AVRXMEGA4_FLMAP.
2226 * configure: Regenerate.
2227 * config.in: Regenerate.
2228 * doc/invoke.texi (AVR Options): Document -mflmap, -mrodata-in-ram,
2229 __AVR_HAVE_FLMAP__, __AVR_RODATA_IN_RAM__.
2230 * config/avr/avr.opt (-mflmap, -mrodata-in-ram): New options.
2231 * config/avr/avr-arch.h (enum avr_device_specific_features):
2232 Add AVR_ISA_FLMAP.
2233 * config/avr/avr-mcus.def (AVR_MCU) [avr64*, avr128*]: Set isa flag
2234 AVR_ISA_FLMAP.
2235 * config/avr/avr.cc (avr_arch_index, avr_has_rodata_p): New vars.
2236 (avr_set_core_architecture): Set avr_arch_index.
2237 (have_avrxmega2_flmap, have_avrxmega4_flmap)
2238 (have_avrxmega3_rodata_in_flash): Set new static const bool according
2239 to configure results.
2240 (avr_rodata_in_flash_p): New function using them.
2241 (avr_asm_init_sections): Let readonly_data_section->unnamed.callback
2242 track avr_need_copy_data_p only if not avr_rodata_in_flash_p().
2243 (avr_asm_named_section): Track avr_has_rodata_p.
2244 (avr_file_end): Emit __do_copy_data also when avr_has_rodata_p
2245 and not avr_rodata_in_flash_p ().
2246 * config/avr/specs.h (CC1_SPEC): Add %(cc1_rodata_in_ram).
2247 (LINK_SPEC): Add %(link_rodata_in_ram).
2248 (LINK_ARCH_SPEC): Remove.
2249 * config/avr/gen-avr-mmcu-specs.cc (have_avrxmega3_rodata_in_flash)
2250 (have_avrxmega2_flmap, have_avrxmega4_flmap): Set new static
2251 const bool according to configure results.
2252 (diagnose_mrodata_in_ram): New function.
2253 (print_mcu): Generate specs with the following changes:
2254 <*cc1_misc, *asm_misc, *link_misc>: New specs so that we don't
2255 need to extend avr/specs.h each time we add a new bell or whistle.
2256 <*cc1_rodata_in_ram, *link_rodata_in_ram>: New specs to diagnose
2257 -m[no-]rodata-in-ram.
2258 <*cpp_rodata_in_ram>: New. Does -D__AVR_RODATA_IN_RAM__=0/1.
2259 <*cpp_mcu>: Add -D__AVR_AVR_FLMAP__ if it applies.
2260 <*cpp>: Add %(cpp_rodata_in_ram).
2261 <*link_arch>: Use emulation avrxmega2_flmap, avrxmega4_flmap as
2262 requested.
2263 <*self_spec>: Add -mflmap or %<mflmap as needed.
2264
2265 2024-01-14 Jeff Law <jlaw@ventanamicro.com>
2266
2267 * config/mips/mips.md (ior<mode>3_mips16_asmacro): Use SImode,
2268 not the GPR iterator. Adjust pattern name and mode attribute
2269 accordingly.
2270
2271 2024-01-13 Jakub Jelinek <jakub@redhat.com>
2272
2273 PR tree-optimization/113361
2274 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand_addr):
2275 Fix up determination of the type for > limb_prec constants.
2276
2277 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
2278
2279 * doc/extend.texi (AVR Named Address Spaces, Limitations and Caveats):
2280 Add web-link to the avr-gcc wiki.
2281
2282 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
2283
2284 * doc/extend.texi (AVR Variable Attributes) [address]: Remove
2285 documentation for a version without argument, which is not supported.
2286
2287 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2288
2289 * config/arm/arm_neon.h
2290 (vld1_u8_x4, vld1_u16_x4, vld1_u32_x4, vld1_u64_x4): New.
2291 (vld1_s8_x4, vld1_s16_x4, vld1_s32_x4, vld1_s64_x4): New.
2292 (vld1_f16_x4, vld1_f32_x4): New.
2293 (vld1_p8_x4, vld1_p16_x4, vld1_p64_x4): New.
2294 (vld1_bf16_x4): New.
2295 (vld1q_types_x4): Updated to use vld1q_x4
2296 from arm_neon_builtins.def
2297 * config/arm/arm_neon_builtins.def
2298 (vld1_x4): Updated entries.
2299 (vld1q_x4): New entries, but comes from the old vld1_x4
2300 * config/arm/neon.md
2301 (neon_vld1q_x4<mode>): Updated from neon_vld1_x4<mode>.
2302
2303 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2304
2305 * config/arm/arm_neon.h
2306 (vld1_u8_x3, vld1_u16_x3, vld1_u32_x3, vld1_u64_x3): New.
2307 (vld1_s8_x3, vld1_s16_x3, vld1_s32_x3, vld1_s64_x3): New.
2308 (vld1_f16_x3, vld1_f32_x3): New.
2309 (vld1_p8_x3, vld1_p16_x3, vld1_p64_x3): New.
2310 (vld1_bf16_x3): New.
2311 (vld1q_types_x3): Updated to use vld1q_x3 from
2312 arm_neon_builtins.def
2313 * config/arm/arm_neon_builtins.def
2314 (vld1_x3): Updated entries.
2315 (vld1q_x3): New entries, but comes from the old vld1_x2
2316 * config/arm/neon.md
2317 (neon_vld1q_x3<mode>): Updated from neon_vld1_x3<mode>.
2318
2319 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2320
2321 * config/arm/arm_neon.h
2322 (vld1_u8_x2, vld1_u16_x2, vld1_u32_x2, vld1_u64_x2): New.
2323 (vld1_s8_x2, vld1_s16_x2, vld1_s32_x2, vld1_s64_x2): New.
2324 (vld1_f16_x2, vld1_f32_x2): New.
2325 (vld1_p8_x2, vld1_p16_x2, vld1_p64_x2): New.
2326 (vld1_bf16_x2): New.
2327 (vld1q_types_x2): Updated to use vld1q_x2 from
2328 arm_neon_builtins.def
2329 * config/arm/arm_neon_builtins.def
2330 (vld1_x2): Updated entries.
2331 (vld1q_x2): New entries, but comes from the old vld1_x2
2332 * config/arm/neon.md
2333 (neon_vld1<VMEMX2_q>_x2<VDQX:mode>): Updated from
2334 neon_vld1_x2<mode>.
2335
2336 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2337
2338 * config/arm/arm_neon.h
2339 (vst1q_u8_x4, vst1q_u16_x4, vst1q_u32_x4, vst1q_u64_x4): New.
2340 (vst1q_s8_x4, vst1q_s16_x4, vst1q_s32_x4, vst1q_s64_x4): New.
2341 (vst1q_f16_x4, vst1q_f32_x4): New.
2342 (vst1q_p8_x4, vst1q_p16_x4, vst1q_p64_x4): New.
2343 (vst1q_bf16_x4): New.
2344 * config/arm/arm_neon_builtins.def (vst1q_x4): New entries.
2345 * config/arm/neon.md
2346 (neon_vst1q_x4<mode>): New.
2347 (neon_vst1x4qa<mode>, neon_vst1x4qb<mode>): New.
2348 * config/arm/unspecs.md
2349 (UNSPEC_VST1X4A, UNSPEC_VST1X4B): New.
2350
2351 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2352
2353 * config/arm/arm_neon.h
2354 (vst1q_u8_x3, vst1q_u16_x3, vst1q_u32_x3, vst1q_u64_x3): New.
2355 (vst1q_s8_x3, vst1q_s16_x3, vst1q_s32_x3, vst1q_s64_x3): New.
2356 (vst1q_f16_x3, vst1q_f32_x3): New.
2357 (vst1q_p8_x3, vst1q_p16_x3, vst1q_p64_x3): New.
2358 (vst1q_bf16_x3): New.
2359 * config/arm/arm_neon_builtins.def (vst1q_x3): New entries.
2360 * config/arm/neon.md
2361 (neon_vst1q_x3<mode>): New.
2362 (neon_vld1x3qa<mode>, neon_vst1x3qb<mode>): New.
2363 * config/arm/unspecs.md
2364 (UNSPEC_VST1X3A, UNSPEC_VST1X3B): New.
2365
2366 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2367
2368 * config/arm/arm_neon.h
2369 (vst1q_u8_x2, vst1q_u16_x2, vst1q_u32_x2, vst1q_u64_x2): New.
2370 (vst1q_s8_x2, vst1q_s16_x2, vst1q_s32_x2, vst1q_s64_x2): New.
2371 (vst1q_f16_x2, vst1q_f32_x2): New.
2372 (vst1q_p8_x2, vst1q_p16_x2, vst1q_p64_x2): New.
2373 (vst1q_bf16_x2): New.
2374 * config/arm/arm_neon_builtins.def (vst1<_x2): New entries.
2375 * config/arm/neon.md
2376 (neon_vst1<VMEMX2_q>_x2<VDQX:mode>): Updated from
2377 neon_vst1_x2<mode>.
2378 * config/arm/iterators.md
2379 (VMEMX2): New mode iterator.
2380 (VMEMX2_q): New mode attribute.
2381
2382 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2383
2384 * config/arm/arm_neon.h
2385 (vst1_u8_x4, vst1_u16_x4, vst1_u32_x4, vst1_u64_x4): New.
2386 (vst1_s8_x4, vst1_s16_x4, vst1_s32_x4, vst1_s64_x4): New.
2387 (vst1_f16_x4, vst1_f32_x4): New.
2388 (vst1_p8_x4, vst1_p16_x4, vst1_p64_x4): New.
2389 (vst1_bf16_x4): New.
2390 * config/arm/arm_neon_builtins.def (vst1_x4): New entries.
2391 * config/arm/neon.md (vst1_x4<mode>): New.
2392
2393 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2394
2395 * config/arm/arm_neon.h
2396 (vst1_u8_x3, vst1_u16_x3, vst1_u32_x3, vst1_u64_x3): New.
2397 (vst1_s8_x3, vst1_s16_x3, vst1_s32_x3, vst1_s64_x3): New.
2398 (vst1_f16_x3, vst1_f32_x3): New.
2399 (vst1_p8_x3, vst1_p16_x3, vst1_p64_x3): New.
2400 (vst1_bf16_x3): New.
2401 * config/arm/arm_neon_builtins.def (vst1_x3): New entries.
2402 * config/arm/neon.md (vst1_x3<mode>): New.
2403
2404 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2405
2406 * config/arm/arm_neon.h
2407 (vst1_u8_x2, vst1_u16_x2, vst1_u32_x2, vst1_u64_x2): New.
2408 (vst1_s8_x2, vst1_s16_x2, vst1_s32_x2, vst1_s64_x2): New.
2409 (vst1_f16_x2, vst1_f32_x2): New.
2410 (vst1_p8_x2, vst1_p16_x2, vst1_p64_x2): New.
2411 (vst1_bf16_x2): New.
2412 * config/arm/arm_neon_builtins.def (vst1_x2): New entries.
2413 * config/arm/neon.md (vst1_x2<mode>): New.
2414
2415 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2416
2417 * config/arm/arm_neon.h
2418 (vld1q_u8_x4, vld1q_u16_x4, vld1q_u32_x4, vld1q_u64_x4): New.
2419 (vld1q_s8_x4, vld1q_s16_x4, vld1q_s32_x4, vld1q_s64_x4): New.
2420 (vld1q_f16_x4, vld1q_f32_x4): New.
2421 (vld1q_p8_x4, vld1q_p16_x4, vld1q_p64_x4): New.
2422 (vld1q_bf16_x4): New.
2423 * config/arm/arm_neon_builtins.def (vld1_x4): New entries.
2424 * config/arm/neon.md
2425 (neon_vld1_x4<mode>): New.
2426 (neon_vld1x4qa<mode>, neon_vld1x4qb<mode>): New
2427 * config/arm/unspecs.md
2428 (UNSPEC_VLD1X4A, UNSPEC_VLD1X4B): New.
2429
2430 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2431
2432 * config/arm/arm_neon.h
2433 (vld1q_u8_x3, vld1q_u16_x3, vld1q_u32_x3, vld1q_u64_x3): New.
2434 (vld1q_s8_x3, vld1q_s16_x3, vld1q_s32_x3, vld1q_s64_x3): New.
2435 (vld1q_f16_x3, vld1q_f32_x3): New.
2436 (vld1q_p8_x3, vld1q_p16_x3, vld1q_p64_x3): New.
2437 (vld1q_bf16_x3): New.
2438 * config/arm/arm_neon_builtins.def (vld1_x3): New entries.
2439 * config/arm/neon.md
2440 (neon_vld1_x3<mode>): New.
2441 (neon_vld1x3qa<mode>, neon_vld1x3qb<mode>): New.
2442 * config/arm/unspecs.md
2443 (UNSPEC_VLD1X3A, UNSPEC_VLD1X3B): New.
2444
2445 2024-01-12 Ezra Sitorus <ezra.sitorus@arm.com>
2446
2447 * config/arm/arm_neon.h
2448 (vld1q_u8_x2, vld1q_u16_x2, vld1q_u32_x2, vld1q_u64_x2): New.
2449 (vld1q_s8_x2, vld1q_s16_x2, vld1q_s32_x2, vld1q_s64_x2): New.
2450 (vld1q_f16_x2, vld1q_f32_x2): New.
2451 (vld1q_p8_x2, vld1q_p16_x2, vld1q_p64_x2): New.
2452 (vld1q_bf16_x2): New.
2453 * config/arm/arm_neon_builtins.def (vld1_x2): New entries.
2454 * config/arm/neon.md (vld1_x2<mode>): New.
2455
2456 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2457
2458 PR tree-optimization/113287
2459 * doc/sourcebuild.texi (check_effective_target_bitint65535): New.
2460
2461 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2462
2463 * tree-vect-loop-manip.cc (vect_loop_versioning): Replace single_exit.
2464 * tree-vect-loop.cc (vect_transform_loop): Likewise.
2465
2466 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2467
2468 PR tree-optimization/113178
2469 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Fill in all
2470 alternate exits.
2471
2472 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2473
2474 PR tree-optimization/113237
2475 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg): Use
2476 existing LCSSA variable for exit when all exits are early break.
2477
2478 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2479
2480 PR tree-optimization/113137
2481 PR tree-optimization/113136
2482 PR tree-optimization/113172
2483 PR tree-optimization/113178
2484 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2485 Maintain PHIs on inverted loops.
2486 (vect_do_peeling): Maintain virtual PHIs on inverted loops.
2487 * tree-vect-loop.cc (vec_init_loop_exit_info): Pick exit closes to
2488 latch.
2489 (vect_create_loop_vinfo): Record all conds instead of only alt ones.
2490
2491 2024-01-12 Tamar Christina <tamar.christina@arm.com>
2492
2493 PR tree-optimization/113135
2494 * tree-vect-data-refs.cc (vect_analyze_early_break_dependences): Rework
2495 dependency analysis.
2496
2497 2024-01-12 Iain Sandoe <iain@sandoe.co.uk>
2498
2499 * config/rs6000/host-darwin.cc (segv_handler): Use the revised
2500 diagnostics class member name for abort of error.
2501
2502 2024-01-12 Georg-Johann Lay <avr@gjlay.de>
2503
2504 * config/avr/avr.cc (avr_handle_addr_attribute): Move "..." from
2505 format string to %s argument.
2506
2507 2024-01-12 John David Anglin <danglin@gcc.gnu.org>
2508 Jakub Jelinek <jakub@redhat.com>
2509
2510 PR middle-end/113182
2511 * varasm.cc (process_pending_assemble_externals,
2512 assemble_external_libcall): Use targetm.strip_name_encoding
2513 before calling get_identifier.
2514
2515 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
2516
2517 PR target/113196
2518 * config/aarch64/aarch64.h (machine_function::advsimd_zero_insn):
2519 New member variable.
2520 * config/aarch64/aarch64-protos.h (aarch64_split_simd_shift_p):
2521 Declare.
2522 * config/aarch64/iterators.md (Vnarrowq2): New mode attribute.
2523 * config/aarch64/aarch64-simd.md
2524 (vec_unpacku_hi_<mode>, vec_unpacks_hi_<mode>): Recombine into...
2525 (vec_unpack<su>_hi_<mode>): ...this. Move the generation of
2526 zip2 for zero-extends to...
2527 (aarch64_simd_vec_unpack<su>_hi_<mode>): ...a split of this
2528 instruction. Fix big-endian handling.
2529 (vec_unpacku_lo_<mode>, vec_unpacks_lo_<mode>): Recombine into...
2530 (vec_unpack<su>_lo_<mode>): ...this. Move the generation of
2531 zip1 for zero-extends to...
2532 (<optab><Vnarrowq><mode>2): ...a split of this instruction.
2533 Fix big-endian handling.
2534 (*aarch64_zip1_uxtl): New pattern.
2535 (aarch64_usubw<mode>_lo_zip, aarch64_uaddw<mode>_lo_zip): Delete
2536 (aarch64_usubw<mode>_hi_zip, aarch64_uaddw<mode>_hi_zip): Likewise.
2537 * config/aarch64/aarch64.cc (aarch64_get_shareable_reg): New function.
2538 (aarch64_gen_shareable_zero): Use it.
2539 (aarch64_split_simd_shift_p): New function.
2540
2541 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
2542
2543 * emit-rtl.h (rtl_data::x_function_beg_note): New member variable.
2544 (function_beg_insn): New macro.
2545 * function.cc (expand_function_start): Initialize function_beg_insn.
2546
2547 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
2548
2549 PR target/112989
2550 * config/aarch64/aarch64-sve-builtins.h
2551 (function_builder::m_overload_names): Replace with...
2552 * config/aarch64/aarch64-sve-builtins.cc (overload_names): ...this
2553 new global.
2554 (add_overloaded_function): Update accordingly, using get_identifier
2555 to get a GGC-friendly record of the name.
2556
2557 2024-01-12 Richard Sandiford <richard.sandiford@arm.com>
2558
2559 PR target/112989
2560 * config/aarch64/aarch64-sve-builtins.def: Don't include
2561 aarch64-sve-builtins-sme.def.
2562 (DEF_SME_ZA_FUNCTION_GS, DEF_SME_ZA_FUNCTION): Move to...
2563 * config/aarch64/aarch64-sve-builtins-sme.def: ...here.
2564 (DEF_SME_FUNCTION): New macro. Use it and DEF_SME_FUNCTION_GS
2565 instead of DEF_SVE_*. Add AARCH64_FL_SME to anything that
2566 requires AARCH64_FL_SME2.
2567 * config/aarch64/aarch64-sve-builtins-sve2.def: Make same
2568 AARCH64_FL_SME adjustment here.
2569 * config/aarch64/aarch64-sve-builtins.cc (function_groups): Don't
2570 include SME intrinsics.
2571 (sme_function_groups): New array.
2572 (handle_arm_sve_h): Remove check for AARCH64_FL_SME.
2573 (handle_arm_sme_h): Use sme_function_groups instead of function_groups.
2574
2575 2024-01-12 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2576
2577 PR target/113281
2578 * config/riscv/riscv-protos.h (struct regmove_vector_cost): New struct.
2579 (struct cpu_vector_cost): Add regmove struct.
2580 (get_vector_costs): Export as global.
2581 * config/riscv/riscv-vector-costs.cc (adjust_stmt_cost): Adjust scalar_to_vec cost.
2582 (costs::add_stmt_cost): Ditto.
2583 * config/riscv/riscv.cc (get_common_costs): Export global function.
2584
2585 2024-01-12 Jakub Jelinek <jakub@redhat.com>
2586
2587 PR tree-optimization/113334
2588 * gimple-lower-bitint.cc (bitint_large_huge::handle_operand): Use
2589 wi::neg_p (wi::to_wide (op)) instead of tree_int_cst_sgn (op) < 0
2590 to determine if number should be extended by all ones rather than zero
2591 extended.
2592
2593 2024-01-12 Jakub Jelinek <jakub@redhat.com>
2594
2595 PR tree-optimization/113330
2596 * tree-sra.cc (create_access): Punt for BITINT_TYPE accesses with
2597 too large size.
2598
2599 2024-01-12 Jakub Jelinek <jakub@redhat.com>
2600
2601 PR tree-optimization/113323
2602 * gimple-lower-bitint.cc (bitint_dom_walker::before_dom_children): Fix
2603 check for lhs being large/huge _BitInt not in m_names.
2604
2605 2024-01-12 Jakub Jelinek <jakub@redhat.com>
2606
2607 PR tree-optimization/113316
2608 * gimple-lower-bitint.cc (bitint_large_huge::lower_call): Handle
2609 uninitialized large/huge _BitInt arguments to calls.
2610
2611 2024-01-12 Jakub Jelinek <jakub@redhat.com>
2612
2613 * gimple-lower-bitint.cc (mergeable_op): Instead of comparing
2614 TYPE_SIZE (t) of large/huge BITINT_TYPEs, compare
2615 CEIL (TYPE_PRECISION (t), limb_prec).
2616 (bitint_large_huge::handle_cast): Likewise.
2617
2618 2024-01-12 Ilya Leoshkevich <iii@linux.ibm.com>
2619
2620 PR sanitizer/113284
2621 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
2622 Use assemble_function_label_final () for Power ELF V1 ABI.
2623 * output.h (assemble_function_label_final): New function.
2624 * varasm.cc (assemble_function_label_raw): Use
2625 assemble_function_label_final ().
2626 (assemble_function_label_final): New function.
2627
2628 2024-01-12 Richard Biener <rguenther@suse.de>
2629
2630 PR middle-end/113344
2631 * match.pd ((double)float CMP (double)float -> float CMP float):
2632 Perform result type check only for vectors.
2633 * fold-const.cc (fold_binary_loc): Likewise.
2634
2635 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
2636
2637 * config/i386/sse.md (sdot_prod<mode>): Remove redundant SET.
2638 (usdot_prod<mode>): Ditto.
2639 (sdot_prod<mode>): Ditto.
2640 (udot_prod<mode>): Ditto.
2641
2642 2024-01-12 Haochen Jiang <haochen.jiang@intel.com>
2643
2644 PR target/113288
2645 * config/i386/i386-c.cc (ix86_target_macros_internal):
2646 Add __AVX10_1__, __AVX10_1_256__ and __AVX10_1_512__.
2647
2648 2024-01-12 Richard Biener <rguenther@suse.de>
2649
2650 PR target/112280
2651 * config/s390/s390.cc (expand_perm_as_a_vlbr_vstbr_candidate):
2652 Do not generate code when d.testing_p.
2653
2654 2024-01-12 liuhongt <hongtao.liu@intel.com>
2655
2656 PR target/113039
2657 * doc/invoke.texi (fcf-protection=): Update documents.
2658
2659 2024-01-12 Pan Li <pan2.li@intel.com>
2660
2661 * config/riscv/riscv.cc (riscv_v_ext_mode_p): Update the
2662 comments of predicate func riscv_v_ext_mode_p.
2663
2664 2024-01-12 Feng Wang <wangfeng@eswincomputing.com>
2665
2666 * config/riscv/riscv-vector-builtins.def (vfloat16m8_t):
2667 Modify ABI-name length of vfloat16m8_t
2668
2669 2024-01-12 Li Wei <liwei@loongson.cn>
2670
2671 * config/loongarch/loongarch.cc (loongarch_expand_conditional_move):
2672 Adjust.
2673
2674 2024-01-12 Li Wei <liwei@loongson.cn>
2675
2676 * config/loongarch/loongarch.md (add<mode>3): Removed.
2677 (*addsi3): New.
2678 (addsi3): Ditto.
2679 (adddi3): Ditto.
2680 (*addsi3_extended): Removed.
2681 (addsi3_extended): New.
2682
2683 2024-01-11 Jin Ma <jinma@linux.alibaba.com>
2684
2685 * config/riscv/thead.md: Add limits for splits.
2686
2687 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
2688
2689 PR middle-end/113322
2690 * expr.cc (do_store_flag): Don't try single bit tests with
2691 comparison on vector types.
2692
2693 2024-01-11 Andrew Pinski <quic_apinski@quicinc.com>
2694
2695 PR tree-optimization/113301
2696 * match.pd (`1/x`): Delay signed case until late.
2697
2698 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
2699
2700 * doc/invoke.texi (AVR Options): Move -mrmw, -mn-flash, -mshort-calls
2701 and -msp8 to...
2702 (AVR Internal Options): ...this new @subsubsection.
2703
2704 2024-01-11 Vladimir N. Makarov <vmakarov@redhat.com>
2705
2706 PR rtl-optimization/112918
2707 * lra-constraints.cc (SMALL_REGISTER_CLASS_P): Move before in_class_p.
2708 (in_class_p): Restrict condition for narrowing class in case of
2709 allow_all_reload_class_changes_p.
2710 (process_alt_operands): Try to match operand without and with
2711 narrowing reg class. Discourage narrowing the class. Finish insn
2712 matching only if there is no class narrowing.
2713 (curr_insn_transform): Pass true to in_class_p for reg operand win.
2714
2715 2024-01-11 Richard Biener <rguenther@suse.de>
2716
2717 PR tree-optimization/112505
2718 * tree-vect-loop.cc (vectorizable_induction): Reject
2719 bit-precision induction.
2720
2721 2024-01-11 Richard Biener <rguenther@suse.de>
2722
2723 PR tree-optimization/113126
2724 * match.pd ((double)float CMP (double)float -> float CMP float):
2725 Make sure the boolean type is the same.
2726 * fold-const.cc (fold_binary_loc): Likewise.
2727
2728 2024-01-11 Richard Biener <rguenther@suse.de>
2729
2730 PR tree-optimization/112636
2731 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
2732 estimate_numbers_of_iterations before querying
2733 get_max_loop_iterations_int.
2734 (pass_ch::execute): Initialize SCEV and loops appropriately.
2735
2736 2024-01-11 Georg-Johann Lay <avr@gjlay.de>
2737
2738 * config/avr/avr-devices.cc (avr_texinfo): Adjust documentation for
2739 Reduced Tiny.
2740 * config/avr/gen-avr-mmcu-texi.cc (main): Add @anchor for each core.
2741 * doc/extend.texi (AVR Variable Attributes): Improve documentation
2742 of io, io_low and address attributes.
2743 * doc/invoke.texi (AVR Options): Add some anchors for external refs.
2744 * doc/avr-mmcu.texi: Rebuild.
2745
2746 2024-01-11 Yang Yujie <yangyujie@loongson.cn>
2747
2748 PR target/113233
2749 * config/loongarch/genopts/loongarch.opt.in: Mark options with
2750 the "Save" property.
2751 * config/loongarch/loongarch.opt: Same.
2752 * config/loongarch/loongarch-opts.cc: Refresh -mcmodel= state
2753 according to la_target.
2754 * config/loongarch/loongarch.cc: Implement TARGET_OPTION_{SAVE,
2755 RESTORE} for the la_target structure; Rename option conditions
2756 to have the same "la_" prefix.
2757 * config/loongarch/loongarch.h: Same.
2758
2759 2024-01-11 Pan Li <pan2.li@intel.com>
2760
2761 * loop-unroll.cc (insert_var_expansion_initialization): Leverage
2762 MODE_HAS_SIGNED_ZEROS for expansion variable initialization.
2763
2764 2024-01-11 Alex Coplan <alex.coplan@arm.com>
2765
2766 PR target/113077
2767 * config/aarch64/aarch64-ldp-fusion.cc (filter_notes): Add
2768 fr_expr param to extract REG_FRAME_RELATED_EXPR notes.
2769 (combine_reg_notes): Handle REG_FRAME_RELATED_EXPR notes, and
2770 synthesize these if needed. Update caller ...
2771 (ldp_bb_info::fuse_pair): ... here.
2772 (ldp_bb_info::try_fuse_pair): Punt if either insn has writeback
2773 and either insn is frame-related.
2774 (find_trailing_add): Punt on frame-related insns.
2775 * config/aarch64/aarch64.cc (aarch64_save_callee_saves): Use
2776 REG_FRAME_RELATED_EXPR instead of REG_CFA_OFFSET.
2777
2778 2024-01-11 YunQiang Su <syq@gcc.gnu.org>
2779
2780 * config/mips/mips.cc (mips_start_function_definition):
2781 Add ATTRIBUTE_UNUSED.
2782
2783 2024-01-11 Richard Biener <rguenther@suse.de>
2784
2785 PR middle-end/112740
2786 * expr.cc (store_constructor): Check the integer vector
2787 mask has a single bit per element before using sign-extension
2788 to expand an uniform vector.
2789
2790 2024-01-11 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2791
2792 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): VLA
2793 preempt VLS on unknown NITERS loop.
2794
2795 2024-01-11 Haochen Jiang <haochen.jiang@intel.com>
2796
2797 * doc/invoke.texi: Add -mevex512.
2798
2799 2024-01-11 Lulu Cheng <chenglulu@loongson.cn>
2800
2801 * config/loongarch/loongarch.md (one_cmpl<mode>2): Replace GPR with X.
2802 (*nor<mode>3): Likewise.
2803 (nor<mode>3): Likewise.
2804 (*negsi2_extended): New template.
2805 (*<optab>si3_internal): Likewise.
2806 (*one_cmplsi2_internal): Likewise.
2807 (*norsi3_internal): Likewise.
2808 (*<optab>nsi_internal): Likewise.
2809 (bytepick_w_<bytepick_imm>_extend): Modify this template according to the
2810 modified bit operation to make the optimization work.
2811
2812 2024-01-11 liuhongt <hongtao.liu@intel.com>
2813
2814 PR target/104401
2815 * match.pd (VEC_COND_EXPR: A < B ? A : B -> MIN_EXPR): New patten match.
2816
2817 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2818
2819 * config/riscv/riscv.cc (get_common_costs): Switch RVV cost model.
2820 (get_vector_costs): Ditto.
2821 (riscv_builtin_vectorization_cost): Ditto.
2822
2823 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2824
2825 * config/riscv/riscv-vector-costs.cc (costs::better_main_loop_than_p): Minior tweak.
2826
2827 2024-01-10 Antoni Boucher <bouanto@zoho.com>
2828
2829 PR jit/111396
2830 * ipa-fnsummary.cc (ipa_fnsummary_cc_finalize): Call
2831 ipa_free_size_summary.
2832 * ipa-icf.cc (ipa_icf_cc_finalize): New function.
2833 * ipa-profile.cc (ipa_profile_cc_finalize): New function.
2834 * ipa-prop.cc (ipa_prop_cc_finalize): New function.
2835 * ipa-prop.h (ipa_prop_cc_finalize): New function.
2836 * ipa-sra.cc (ipa_sra_cc_finalize): New function.
2837 * ipa-utils.h (ipa_profile_cc_finalize, ipa_icf_cc_finalize,
2838 ipa_sra_cc_finalize): New functions.
2839 * toplev.cc (toplev::finalize): Call ipa_icf_cc_finalize,
2840 ipa_prop_cc_finalize, ipa_profile_cc_finalize and
2841 ipa_sra_cc_finalize
2842 Include ipa-utils.h.
2843
2844 2024-01-10 Jin Ma <jinma@linux.alibaba.com>
2845
2846 * config/riscv/riscv-protos.h (th_int_get_mask): New prototype.
2847 (th_int_get_save_adjustment): Likewise.
2848 (th_int_adjust_cfi_prologue): Likewise.
2849 * config/riscv/riscv.cc (BITSET_P): Moved away from here.
2850 (TH_INT_INTERRUPT): New macro.
2851 (riscv_expand_prologue): Add the processing of XTheadInt.
2852 (riscv_expand_epilogue): Likewise.
2853 * config/riscv/riscv.h (BITSET_P): Moved to here.
2854 * config/riscv/riscv.md: New unspec.
2855 * config/riscv/thead.cc (th_int_get_mask): New function.
2856 (th_int_get_save_adjustment): Likewise.
2857 (th_int_adjust_cfi_prologue): Likewise.
2858 * config/riscv/thead.md (th_int_push): New pattern.
2859 (th_int_pop): new pattern.
2860
2861 2024-01-10 Tamar Christina <tamar.christina@arm.com>
2862
2863 PR tree-optimization/112468
2864 * doc/sourcebuild.texi: Document ifn_copysign.
2865 * match.pd: Only apply transformation if target supports the IFN.
2866
2867 2024-01-10 Andrew Pinski <quic_apinski@quicinc.com>
2868
2869 PR tree-optimization/112581
2870 * gimple-if-to-switch.cc (pass_if_to_switch::execute): Call
2871 mark_ssa_maybe_undefs.
2872 * tree-ssa-reassoc.cc (can_reassociate_op_p): Uninitialized
2873 variables can not be reassociated.
2874 (init_range_entry): Check for uninitialized variables too.
2875 (init_reassoc): Call mark_ssa_maybe_undefs.
2876
2877 2024-01-10 Maciej W. Rozycki <macro@embecosm.com>
2878
2879 * config/riscv/riscv.cc (riscv_noce_conversion_profitable_p):
2880 Also handle sign extension.
2881
2882 2024-01-10 Alex Coplan <alex.coplan@arm.com>
2883
2884 * config/aarch64/aarch64.opt (-mearly-ldp-fusion): Set default
2885 to 0.
2886 (-mlate-ldp-fusion): Likewise.
2887
2888 2024-01-10 Tamar Christina <tamar.christina@arm.com>
2889
2890 PR tree-optimization/113287
2891 * tree-vect-stmts.cc (vectorizable_early_exit): Check the flags on edge
2892 instead of using BRANCH_EDGE to determine true edge.
2893
2894 2024-01-10 Richard Biener <rguenther@suse.de>
2895
2896 PR tree-optimization/113078
2897 * tree-vect-loop.cc (check_reduction_path): Canonicalize
2898 .COND_SUB to .COND_ADD.
2899
2900 2024-01-10 David Malcolm <dmalcolm@redhat.com>
2901
2902 * gcc-urlifier.cc (gcc_urlifier::get_url_suffix_for_option):
2903 Handle prefix mappings before calling find_opt.
2904 (selftest::gcc_urlifier_cc_tests): Add example of urlifying a
2905 "-fno-"-prefixed command-line option.
2906 * opts-common.cc (get_option_prefix_remapping): New.
2907 * opts.h (get_option_prefix_remapping): New decl.
2908
2909 2024-01-10 David Malcolm <dmalcolm@redhat.com>
2910
2911 * diagnostic.cc (diagnostic_context::report_diagnostic): Pass
2912 m_urlifier to pp_output_formatted_text.
2913 * pretty-print.cc: Add #define of INCLUDE_VECTOR.
2914 (obstack_append_string): New overload, taking a length.
2915 (urlify_quoted_string): Pass in an obstack ptr, rather than using
2916 that of the pp's buffer. Generalize to handle trailing text in
2917 the buffer beyond the run of quoted text.
2918 (class quoting_info): New.
2919 (on_begin_quote): New.
2920 (on_end_quote): New.
2921 (pp_format): Refactor phase 1 and phase 2 quoting support, moving
2922 it to calls to on_begin_quote and on_end_quote.
2923 (struct auto_obstack): New.
2924 (quoting_info::handle_phase_3): New.
2925 (pp_output_formatted_text): Add urlifier param. Use it if there
2926 is deferred urlification. Delete m_quotes.
2927 (selftest::pp_printf_with_urlifier): Pass urlifier to
2928 pp_output_formatted_text.
2929 (selftest::test_urlification): Update results for the existing
2930 case of quoted text stradding chunks; add more such test cases.
2931 * pretty-print.h (class quoting_info): New forward decl.
2932 (chunk_info::m_quotes): New field.
2933 (pp_output_formatted_text): Add optional urlifier param.
2934
2935 2024-01-10 David Malcolm <dmalcolm@redhat.com>
2936
2937 * pretty-print.cc (selftest::test_pp_format): Add selftest
2938 coverage for numbered args.
2939
2940 2024-01-10 Tamar Christina <tamar.christina@arm.com>
2941
2942 PR tree-optimization/113144
2943 PR tree-optimization/113145
2944 * tree-vect-loop-manip.cc (slpeel_tree_duplicate_loop_to_edge_cfg):
2945 Update all BB that the original exits dominated.
2946
2947 2024-01-10 Eric Botcazou <ebotcazou@adacore.com>
2948
2949 * dwarf2out.cc (modified_type_die): Extend the support of reverse
2950 storage order to enumeration types if -gstrict-dwarf is not passed.
2951 (gen_enumeration_type_die): Add REVERSE parameter and generate the
2952 DIE immediately after the existing one if it is true.
2953 (gen_tagged_type_die): Add REVERSE parameter and pass it in the
2954 call to gen_enumeration_type_die.
2955 (gen_type_die_with_usage): Add REVERSE parameter and pass it in the
2956 first recursive call as well as the call to gen_tagged_type_die.
2957 (gen_type_die): Add REVERSE parameter and pass it in the call to
2958 gen_type_die_with_usage.
2959
2960 2024-01-10 Jakub Jelinek <jakub@redhat.com>
2961
2962 PR tree-optimization/113120
2963 * tree-sra.cc (analyze_access_subtree): For BITINT_TYPE
2964 with root->size TYPE_PRECISION don't build anything new.
2965 Otherwise, if root->type is a BITINT_TYPE, use build_bitint_type
2966 rather than build_nonstandard_integer_type.
2967
2968 2024-01-10 Hongyu Wang <hongyu.wang@intel.com>
2969
2970 * config/i386/i386.opt: Adjust document.
2971 * doc/invoke.texi: Add description for
2972 -mapx-inline-asm-use-gpr32.
2973
2974 2024-01-10 Juzhe-Zhong <juzhe.zhong@rivai.ai>
2975
2976 * config/riscv/autovec.md (<u>avg<v_double_trunc>3_floor): Remove.
2977 (avg<v_double_trunc>3_floor): New pattern.
2978 (<u>avg<v_double_trunc>3_ceil): Remove.
2979 (avg<v_double_trunc>3_ceil): New pattern.
2980 (uavg<mode>3_floor): Ditto.
2981 (uavg<mode>3_ceil): Ditto.
2982 * config/riscv/riscv-protos.h (enum insn_flags): Add for average addition.
2983 (enum insn_type): Ditto.
2984 * config/riscv/riscv-v.cc: Ditto.
2985 * config/riscv/vector-iterators.md (ashiftrt): Remove.
2986 (ASHIFTRT): Ditto.
2987 * config/riscv/vector.md: Add VLS modes.
2988
2989 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
2990
2991 PR target/111480
2992 * config/rs6000/vsx.md (VCZLSBB): New int iterator.
2993 (vczlsbb_char): New int attribute.
2994 (vclzlsbb_<mode>, vctzlsbb_<mode>): Merge to ...
2995 (vc<vczlsbb_char>zlsbb_<mode>): ... this.
2996 (*vctzlsbb_zext_<mode>): Rename to ...
2997 (*vc<vczlsbb_char>zlsbb_zext_<mode>): ... this, and extend it to
2998 cover vclzlsbb.
2999
3000 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
3001
3002 PR target/112606
3003 * config/rs6000/rs6000.md (copysign<mode>3 IEEE128): Change predicate
3004 of the last argument from altivec_register_operand to any_operand. If
3005 operands[2] is CONST_DOUBLE, emit abs or neg abs depending on its sign
3006 otherwise if it doesn't satisfy altivec_register_operand, force it to
3007 REG using copy_to_mode_reg.
3008
3009 2024-01-10 Kewen Lin <linkw@linux.ibm.com>
3010
3011 PR middle-end/113100
3012 * builtins.cc (expand_builtin_stack_address): Guard stack point
3013 adjustment with SPARC_STACK_BOUNDARY_HACK.
3014
3015 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3016
3017 * config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
3018 argument string definitions.
3019 * config/loongarch/loongarch-str.h: Same.
3020 * config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
3021 as aliases to -mexplicit-relocs={always,none}
3022 * config/loongarch/loongarch.opt: Regenerate.
3023 * config/loongarch/loongarch.cc: Same.
3024
3025 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3026
3027 * config/loongarch/loongarch-def.h: Define constants with
3028 enums instead of Macros.
3029
3030 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3031
3032 * config/loongarch/genopts/loongarch-strings: Rename.
3033 * config/loongarch/genopts/loongarch.opt.in: Same.
3034 * config/loongarch/loongarch-cpu.cc: Same.
3035 * config/loongarch/loongarch-def.cc: Same.
3036 * config/loongarch/loongarch-def.h: Same.
3037 * config/loongarch/loongarch-opts.cc: Same.
3038 * config/loongarch/loongarch-opts.h: Same.
3039 * config/loongarch/loongarch-str.h: Same.
3040 * config/loongarch/loongarch.opt: Same.
3041
3042 2024-01-10 Yang Yujie <yangyujie@loongson.cn>
3043
3044 * config/loongarch/genopts/genstr.sh: Prepend the isa_evolution
3045 variable with the common la_ prefix.
3046 * config/loongarch/genopts/loongarch.opt.in: Mark ISA evolution
3047 flags as saved using TargetVariable.
3048 * config/loongarch/loongarch.opt: Same.
3049 * config/loongarch/loongarch-def.h: Define evolution_set to
3050 mark changes to the -march default.
3051 * config/loongarch/loongarch-driver.cc: Same.
3052 * config/loongarch/loongarch-opts.cc: Same.
3053 * config/loongarch/loongarch-opts.h: Define and use ISA evolution
3054 conditions around the la_target structure.
3055 * config/loongarch/loongarch.cc: Same.
3056 * config/loongarch/loongarch.md: Same.
3057 * config/loongarch/loongarch-builtins.cc: Same.
3058 * config/loongarch/loongarch-c.cc: Same.
3059 * config/loongarch/lasx.md: Same.
3060 * config/loongarch/lsx.md: Same.
3061 * config/loongarch/sync.md: Same.
3062
3063 2024-01-09 Jeff Law <jlaw@ventanamicro.com>
3064
3065 * config/epiphany/constraints.md (Car): Allow -1024..1023, no more,
3066 no less.
3067
3068 2024-01-09 Richard Sandiford <richard.sandiford@arm.com>
3069
3070 * config/mn10300/mn10300.md (subdi3_degenerate): Add isa attribute.
3071
3072 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3073
3074 * tree-vect-loop.cc (vectorizable_live_operation_1): Drop unused
3075 restart_loop.
3076 (vectorizable_live_operation): Likewise.
3077
3078 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3079
3080 PR tree-optimization/113199
3081 * tree-vect-loop.cc (vectorizable_live_operation_1): Use
3082 BIT_FIELD_REF.
3083
3084 2024-01-09 Jakub Jelinek <jakub@redhat.com>
3085
3086 PR target/113270
3087 * config.gcc (aarch64*-*-*): Add aarch64-builtins.h to target_gtfiles.
3088 * config/aarch64/aarch64-builtins.cc (aarch64_simd_types): Add extern
3089 GTY(()) declaration before the definition, drop GTY(()) drom the
3090 definition.
3091
3092 2024-01-09 Richard Biener <rguenther@suse.de>
3093
3094 PR tree-optimization/113026
3095 * tree-vect-loop-manip.cc (vect_do_peeling): Remove
3096 redundant and wrong niter bound setting. Move niter
3097 bound adjustment down.
3098
3099 2024-01-09 Tamar Christina <tamar.christina@arm.com>
3100
3101 PR middle-end/113163
3102 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
3103 Reject non-linear inductions that aren't supported.
3104
3105 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
3106
3107 * config/arc/arc.cc (arc_shift_alg): New enumerated type for
3108 left shift implementation strategies.
3109 (arc_shift_info): Type for each entry of the shift strategy table.
3110 (arc_shift_context_idx): Return a integer value for each code
3111 generation context, used as an index
3112 (arc_ashl_alg): Table indexed by context and shifted bit count.
3113 (arc_split_ashl): Use the arc_ashl_alg table to select SImode
3114 left shift implementation.
3115 (arc_rtx_costs) <case ASHIFT>: Use the arc_ashl_alg table to
3116 provide accurate costs, when optimizing for speed or size.
3117
3118 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3119
3120 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): Fix loop invariant check.
3121
3122 2024-01-09 Julian Brown <julian@codesourcery.com>
3123
3124 * gimplify.cc (gimplify_expr): Ensure OMP_ARRAY_SECTION has been
3125 processed out before gimplification.
3126 * tree-pretty-print.cc (dump_generic_node): Support OMP_ARRAY_SECTION.
3127 * tree.def (OMP_ARRAY_SECTION): New tree code.
3128
3129 2024-01-09 Jakub Jelinek <jakub@redhat.com>
3130
3131 PR tree-optimization/113210
3132 * tree-vect-loop.cc (vect_get_loop_niters): If non-INTEGER_CST
3133 value in *number_of_iterationsm1 PLUS_EXPR 1 is folded into
3134 INTEGER_CST, recompute *number_of_iterationsm1 as the INTEGER_CST
3135 minus 1.
3136
3137 2024-01-09 Eric Botcazou <ebotcazou@adacore.com>
3138
3139 PR rtl-optimization/113140
3140 * reorg.cc (fill_slots_from_thread): If we are to branch after the
3141 last instruction of the function, create an end label.
3142
3143 2024-01-09 Roger Sayle <roger@nextmovesoftware.com>
3144 Hongtao Liu <hongtao.liu@intel.com>
3145
3146 PR target/112992
3147 * config/i386/i386-expand.cc
3148 (ix86_convert_const_wide_int_to_broadcast): Allow call to
3149 ix86_expand_vector_init_duplicate to fail, and return NULL_RTX.
3150 (ix86_broadcast_from_constant): Revert recent change; Return a
3151 suitable MEMREF independently of mode/target combinations.
3152 (ix86_expand_vector_move): Allow ix86_expand_vector_init_duplicate
3153 to decide whether expansion is possible/preferrable. Only try
3154 forcing DImode constants to memory (and trying again) if calling
3155 ix86_expand_vector_init_duplicate fails with an DImode immediate
3156 constant.
3157 (ix86_expand_vector_init_duplicate) <case E_V2DImode>: Try using
3158 V4SImode for suitable immediate constants.
3159 <case E_V4DImode>: Try using V8SImode for suitable constants.
3160 <case E_V4HImode>: Fail for CONST_INT_P, i.e. use constant pool.
3161 <case E_V2HImode>: Likewise.
3162 <case E_V8HImode>: For CONST_INT_P try using V4SImode via widen.
3163 <case E_V16QImode>: For CONT_INT_P try using V8HImode via widen.
3164 <label widen>: Handle CONT_INTs via simplify_binary_operation.
3165 Allow recursive calls to ix86_expand_vector_init_duplicate to fail.
3166 <case E_V16HImode>: For CONST_INT_P try V8SImode via widen.
3167 <case E_V32QImode>: For CONST_INT_P try V16HImode via widen.
3168 (ix86_expand_vector_init): Move try using a broadcast for all_same
3169 with ix86_expand_vector_init_duplicate before using constant pool.
3170
3171 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
3172
3173 * doc/invoke.texi (Arm Options): Document Cortex-M52 options.
3174
3175 2024-01-09 Chung-Ju Wu <jasonwucj@gmail.com>
3176
3177 * config/arm/arm-cpus.in (cortex-m52): New cpu.
3178 * config/arm/arm-tables.opt: Regenerate.
3179 * config/arm/arm-tune.md: Regenerate.
3180
3181 2024-01-09 Jiahao Xu <xujiahao@loongson.cn>
3182
3183 * config/loongarch/lasx.md (vec_initv32qiv16qi): Rename to ..
3184 (vec_init<mode><lasxhalf>): .. this, and extend to mode.
3185 (@vec_concatz<mode>): New insn pattern.
3186 * config/loongarch/loongarch.cc (loongarch_expand_vector_group_init):
3187 Handle VALS containing two vectors.
3188
3189 2024-01-09 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3190
3191 * config/riscv/riscv-vector-builtins-functions.def (vleff): Move comments.
3192 (vundefined): Ditto.
3193
3194 2024-01-09 Feng Wang <wangfeng@eswincomputing.com>
3195
3196 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
3197 Add new function_base for crypto vector.
3198 (class bitmanip): Ditto.
3199 (class b_reverse):Ditto.
3200 (class vwsll): Ditto.
3201 (class clmul): Ditto.
3202 (class vg_nhab): Ditto.
3203 (class crypto_vv):Ditto.
3204 (class crypto_vi):Ditto.
3205 (class vaeskf2_vsm3c):Ditto.
3206 (class vsm3me): Ditto.
3207 (BASE): Add BASE declaration for crypto vector.
3208 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3209 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
3210 Add crypto vector intrinsic definition.
3211 (vbrev): Ditto.
3212 (vclz): Ditto.
3213 (vctz): Ditto.
3214 (vwsll): Ditto.
3215 (vandn): Ditto.
3216 (vbrev8): Ditto.
3217 (vrev8): Ditto.
3218 (vrol): Ditto.
3219 (vror): Ditto.
3220 (vclmul): Ditto.
3221 (vclmulh): Ditto.
3222 (vghsh): Ditto.
3223 (vgmul): Ditto.
3224 (vaesef): Ditto.
3225 (vaesem): Ditto.
3226 (vaesdf): Ditto.
3227 (vaesdm): Ditto.
3228 (vaesz): Ditto.
3229 (vaeskf1): Ditto.
3230 (vaeskf2): Ditto.
3231 (vsha2ms): Ditto.
3232 (vsha2ch): Ditto.
3233 (vsha2cl): Ditto.
3234 (vsm4k): Ditto.
3235 (vsm4r): Ditto.
3236 (vsm3me): Ditto.
3237 (vsm3c): Ditto.
3238 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
3239 Add new function_shape for crypto vector.
3240 (struct crypto_vi_def): Ditto.
3241 (struct crypto_vv_no_op_type_def): Ditto.
3242 (SHAPE): Add SHAPE declaration of crypto vector.
3243 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3244 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
3245 Add new data type for crypto vector.
3246 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3247 (vuint32mf2_t): Ditto.
3248 (vuint32m1_t): Ditto.
3249 (vuint32m2_t): Ditto.
3250 (vuint32m4_t): Ditto.
3251 (vuint32m8_t): Ditto.
3252 (vuint64m1_t): Ditto.
3253 (vuint64m2_t): Ditto.
3254 (vuint64m4_t): Ditto.
3255 (vuint64m8_t): Ditto.
3256 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
3257 Add new data struct for crypto vector.
3258 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3259 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
3260 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
3261
3262 2024-01-08 Ilya Leoshkevich <iii@linux.ibm.com>
3263
3264 PR sanitizer/113251
3265 * varasm.cc (assemble_function_label_raw): Do not call
3266 asan_function_start () without the current function.
3267
3268 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
3269
3270 PR target/113225
3271 * btfout.cc (btf_collect_datasec): Skip creating BTF info for
3272 extern and kernel_helper attributed function decls.
3273
3274 2024-01-08 Cupertino Miranda <cupertino.miranda@oracle.com>
3275
3276 * btfout.cc (output_btf_strs): Changed.
3277
3278 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
3279
3280 * config/gcn/mkoffload.cc (main): Handle gfx1100
3281 when setting the default XNACK.
3282
3283 2024-01-08 Tobias Burnus <tobias@codesourcery.com>
3284
3285 * config.gcc (amdgcn-*-amdhsa): Accept --with-arch=gfx1100.
3286 * config/gcn/gcn-hsa.h (NO_XNACK): Add gfx1100:
3287 (ASM_SPEC): Handle gfx1100.
3288 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX1100.
3289 (enum gcn_isa): Add ISA_RDNA3.
3290 (TARGET_GFX1100, TARGET_RDNA2_PLUS, TARGET_RDNA3): Define.
3291 * config/gcn/gcn-valu.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
3292 * config/gcn/gcn.cc (gcn_option_override,
3293 gcn_omp_device_kind_arch_isa, output_file_start): Handle gfx1100.
3294 (gcn_global_address_p, gcn_addr_space_legitimate_address_p): Change
3295 TARGET_RDNA2 to TARGET_RDNA2_PLUS.
3296 (gcn_hsa_declare_function_name): Don't use '.amdhsa_reserve_flat_scratch'
3297 with gfx1100.
3298 * config/gcn/gcn.h (ASSEMBLER_DIALECT): Likewise.
3299 (TARGET_CPU_CPP_BUILTINS): Define __RDNA3__, __gfx1030__ and
3300 __gfx1100__.
3301 * config/gcn/gcn.md: Change TARGET_RDNA2 to TARGET_RDNA2_PLUS.
3302 * config/gcn/gcn.opt (Enum gpu_type): Add gfx1100.
3303 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX1100): Define.
3304 (isa_has_combined_avgprs, main): Handle gfx1100.
3305 * config/gcn/t-omp-device (isa): Add gfx1100.
3306
3307 2024-01-08 Richard Biener <rguenther@suse.de>
3308
3309 * doc/invoke.texi (-mmovbe): Clarify.
3310
3311 2024-01-08 Richard Biener <rguenther@suse.de>
3312
3313 PR tree-optimization/113026
3314 * tree-vect-loop.cc (vect_need_peeling_or_partial_vectors_p):
3315 Avoid an epilog in more cases.
3316 * tree-vect-loop-manip.cc (vect_do_peeling): Adjust the
3317 epilogues niter upper bounds and estimates.
3318
3319 2024-01-08 Jakub Jelinek <jakub@redhat.com>
3320
3321 PR tree-optimization/113228
3322 * gimplify.cc (recalculate_side_effects): Do nothing for SSA_NAMEs.
3323
3324 2024-01-08 Jakub Jelinek <jakub@redhat.com>
3325
3326 PR tree-optimization/113120
3327 * gimple-lower-bitint.cc (gimple_lower_bitint): Fix handling of very
3328 large _BitInt zero INTEGER_CST PHI argument.
3329
3330 2024-01-08 Jakub Jelinek <jakub@redhat.com>
3331
3332 PR tree-optimization/113119
3333 * gimple-lower-bitint.cc (optimizable_arith_overflow): Punt if
3334 both REALPART_EXPR and cast from IMAGPART_EXPR appear, but cast
3335 is before REALPART_EXPR.
3336
3337 2024-01-08 Georg-Johann Lay <avr@gjlay.de>
3338
3339 PR target/112952
3340 * config/avr/avr.cc (avr_handle_addr_attribute): Also print valid
3341 range when diagnosing attribute "io" and "io_low" are out of range.
3342 (avr_eval_addr_attrib): Don't ICE on empty address at that place.
3343 (avr_insert_attributes): Reject if attribute "address", "io" or "io_low"
3344 in contexts other than static storage.
3345 (avr_asm_output_aligned_decl_common): Move output of decls with
3346 attribute "address", "io", and "io_low" to...
3347 (avr_output_addr_attrib): ...this new function.
3348 (avr_asm_asm_output_aligned_bss): Remove output for decls with
3349 attribute "address", "io", and "io_low".
3350 (avr_encode_section_info): Rectify handling of decls with attribute
3351 "address", "io", and "io_low".
3352
3353 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
3354
3355 * config/gcn/mkoffload.cc (TEST_XNACK_UNSET): New.
3356 (elf_flags): Remove XNACK from the default value.
3357 (main): Set a default XNACK according to the arch.
3358
3359 2024-01-08 Andrew Stubbs <ams@codesourcery.com>
3360
3361 * config/gcn/mkoffload.cc (isa_has_combined_avgprs): Delete.
3362 (process_asm): Don't count avgprs.
3363
3364 2024-01-08 Hongyu Wang <hongyu.wang@intel.com>
3365
3366 * config/i386/i386.opt: Add supported sub-features.
3367 * doc/extend.texi: Add description for target attribute.
3368
3369 2024-01-08 Feng Wang <wangfeng@eswincomputing.com>
3370
3371 * config/riscv/vector.md: Modify avl_type operand index of zvbc ins.
3372
3373 2024-01-07 Roger Sayle <roger@nextmovesoftware.com>
3374 Uros Bizjak <ubizjak@gmail.com>
3375
3376 PR target/113231
3377 * config/i386/i386-features.cc (compute_convert_gain): Include
3378 the overhead of explicit load and store (movd) instructions when
3379 converting non-store scalar operations with memory destinations.
3380 Various indentation whitespace fixes.
3381
3382 2024-01-07 Tamar Christina <tamar.christina@arm.com>
3383
3384 * config/arm/neon.md (cbranch<mode>4): New.
3385
3386 2024-01-07 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3387
3388 * config/riscv/riscv-vsetvl.cc: replace std::max by MAX.
3389
3390 2024-01-06 Jiahao Xu <xujiahao@loongson.cn>
3391
3392 * config/loongarch/lasx.md: Set the unused bits in operand[3] to 0.
3393
3394 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3395
3396 PR target/113248
3397 * config/riscv/riscv-vsetvl.cc (pre_vsetvl::fuse_local_vsetvl_info):
3398 Update the MAX_SEW.
3399
3400 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3401
3402 * config/riscv/riscv-vector-costs.cc (loop_invariant_op_p): New function.
3403 (variable_vectorized_p): Teach loop invariant.
3404 (has_unexpected_spills_p): Ditto.
3405
3406 2024-01-06 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3407
3408 * config/riscv/riscv-protos.h (whole_reg_to_reg_move_p): New function.
3409 * config/riscv/riscv-v.cc (whole_reg_to_reg_move_p): Ditto.
3410 * config/riscv/vector.md: Allow non-vlmax with len = NUNITS simplification.
3411
3412 2024-01-05 Richard Sandiford <richard.sandiford@arm.com>
3413
3414 PR target/113104
3415 * doc/invoke.texi (aarch64-sve-compare-costs): Replace with...
3416 (aarch64-vect-compare-costs): ...this.
3417 * config/aarch64/aarch64.opt (-param=aarch64-sve-compare-costs=):
3418 Replace with...
3419 (-param=aarch64-vect-compare-costs=): ...this new param.
3420 * config/aarch64/aarch64.cc (aarch64_override_options_internal):
3421 Don't disable it when vectorizing for Advanced SIMD only.
3422 (aarch64_autovectorize_vector_modes): Apply VECT_COMPARE_COSTS
3423 whenever aarch64_vect_compare_costs is true.
3424
3425 2024-01-05 Lulu Cheng <chenglulu@loongson.cn>
3426
3427 * config/loongarch/lasx.md (lasx_mxld_<lasxfmt_f>):
3428 Modify the method of determining the memory offset of [x]vld/[x]vst.
3429 (lasx_mxst_<lasxfmt_f>): Likewise.
3430 * config/loongarch/loongarch.cc (loongarch_valid_offset_p): Delete.
3431 (loongarch_address_insns): Likewise.
3432 * config/loongarch/lsx.md (lsx_ld_<lsxfmt_f>): Likewise.
3433 (lsx_st_<lsxfmt_f>): Likewise.
3434 * config/loongarch/predicates.md (aq10b_operand): Likewise.
3435 (aq10h_operand): Likewise.
3436 (aq10w_operand): Likewise.
3437 (aq10d_operand): Likewise.
3438
3439 2024-01-05 Alex Coplan <alex.coplan@arm.com>
3440
3441 PR target/113217
3442 * config/aarch64/aarch64-ldp-fusion.cc
3443 (ldp_bb_info::try_fuse_pair): If the second access can throw,
3444 narrow the move range to exactly that insn.
3445
3446 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
3447
3448 * asan.cc (asan_function_start): Drop switch_to_section ().
3449 (asan_emit_stack_protection): Set .LASANPC alignment.
3450 * config/i386/i386.cc: Use assemble_function_label_raw ()
3451 instead of ASM_OUTPUT_LABEL ().
3452 * config/s390/s390.cc (s390_asm_output_function_label):
3453 Likewise.
3454 * defaults.h (ASM_OUTPUT_FUNCTION_LABEL): Likewise.
3455 * final.cc (final_start_function_1): Drop
3456 asan_function_start ().
3457 * output.h (assemble_function_label_raw): New function.
3458 * varasm.cc (assemble_function_label_raw): Likewise.
3459
3460 2024-01-05 Ilya Leoshkevich <iii@linux.ibm.com>
3461
3462 * config/aarch64/aarch64.cc (aarch64_declare_function_name):
3463 Use ASM_OUTPUT_FUNCTION_LABEL ().
3464 * config/alpha/alpha.cc (alpha_start_function): Likewise.
3465 * config/arm/aout.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3466 * config/arm/arm.cc (arm_asm_declare_function_name): Likewise.
3467 * config/bfin/bfin.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3468 * config/c6x/c6x.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3469 * config/gcn/gcn.cc (gcn_hsa_declare_function_name): Likewise.
3470 * config/h8300/h8300.h (ASM_DECLARE_FUNCTION_NAME): Likewise.
3471 * config/ia64/ia64.cc (ia64_start_function): Likewise.
3472 * config/mcore/mcore-elf.h (ASM_DECLARE_FUNCTION_NAME):
3473 Likewise.
3474 * config/microblaze/microblaze.cc (microblaze_function_prologue):
3475 Likewise.
3476 * config/mips/mips.cc (mips_start_unique_function): Return the
3477 tree.
3478 (mips_start_function_definition): Use
3479 ASM_OUTPUT_FUNCTION_LABEL ().
3480 (mips_finish_stub): Pass the tree to
3481 mips_start_function_definition ().
3482 (mips16_build_function_stub): Likewise.
3483 (mips16_build_call_stub): Likewise.
3484 (mips_output_function_prologue): Likewise.
3485 * config/pa/pa.cc (pa_output_function_label): Use
3486 ASM_OUTPUT_FUNCTION_LABEL ().
3487 * config/riscv/riscv.cc (riscv_declare_function_name): Likewise.
3488 * config/rs6000/rs6000.cc (rs6000_elf_declare_function_name):
3489 Likewise.
3490 (rs6000_xcoff_declare_function_name): Likewise.
3491
3492 2024-01-05 Jakub Jelinek <jakub@redhat.com>
3493
3494 PR tree-optimization/113201
3495 * tree-scalar-evolution.cc (final_value_replacement_loop): Don't call
3496 replace_uses_by on SSA_NAME_OCCURS_IN_ABNORMAL_PHI rslt.
3497
3498 2024-01-05 Jakub Jelinek <jakub@redhat.com>
3499
3500 PR tree-optimization/90693
3501 * tree-ssa-math-opts.cc (match_single_bit_test): If
3502 tree_expr_nonzero_p (arg), remember it in the second argument to
3503 IFN_POPCOUNT or lower it as arg & (arg - 1) == 0 rather than
3504 arg ^ (arg - 1) > arg - 1.
3505 * internal-fn.cc (expand_POPCOUNT): If second argument to
3506 IFN_POPCOUNT suggests arg is non-zero, try to expand it as
3507 arg & (arg - 1) == 0 rather than arg ^ (arg - 1) > arg - 1.
3508
3509 2024-01-05 Kito Cheng <kito.cheng@sifive.com>
3510
3511 * config/riscv/riscv-v.cc (expand_load_store):
3512 Remove `value`.
3513 (expand_cond_len_op): Ditto.
3514 (expand_gather_scatter): Ditto.
3515 (expand_lanes_load_store): Ditto.
3516 (expand_fold_extract_last): Ditto.
3517
3518 2024-01-05 Pan Li <pan2.li@intel.com>
3519
3520 Revert:
3521 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
3522
3523 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
3524 Add new function_base for crypto vector.
3525 (class bitmanip): Ditto.
3526 (class b_reverse):Ditto.
3527 (class vwsll): Ditto.
3528 (class clmul): Ditto.
3529 (class vg_nhab): Ditto.
3530 (class crypto_vv):Ditto.
3531 (class crypto_vi):Ditto.
3532 (class vaeskf2_vsm3c):Ditto.
3533 (class vsm3me): Ditto.
3534 (BASE): Add BASE declaration for crypto vector.
3535 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3536 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
3537 Add crypto vector intrinsic definition.
3538 (vbrev): Ditto.
3539 (vclz): Ditto.
3540 (vctz): Ditto.
3541 (vwsll): Ditto.
3542 (vandn): Ditto.
3543 (vbrev8): Ditto.
3544 (vrev8): Ditto.
3545 (vrol): Ditto.
3546 (vror): Ditto.
3547 (vclmul): Ditto.
3548 (vclmulh): Ditto.
3549 (vghsh): Ditto.
3550 (vgmul): Ditto.
3551 (vaesef): Ditto.
3552 (vaesem): Ditto.
3553 (vaesdf): Ditto.
3554 (vaesdm): Ditto.
3555 (vaesz): Ditto.
3556 (vaeskf1): Ditto.
3557 (vaeskf2): Ditto.
3558 (vsha2ms): Ditto.
3559 (vsha2ch): Ditto.
3560 (vsha2cl): Ditto.
3561 (vsm4k): Ditto.
3562 (vsm4r): Ditto.
3563 (vsm3me): Ditto.
3564 (vsm3c): Ditto.
3565 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
3566 Add new function_shape for crypto vector.
3567 (struct crypto_vi_def): Ditto.
3568 (struct crypto_vv_no_op_type_def): Ditto.
3569 (SHAPE): Add SHAPE declaration of crypto vector.
3570 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3571 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
3572 Add new data type for crypto vector.
3573 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3574 (vuint32mf2_t): Ditto.
3575 (vuint32m1_t): Ditto.
3576 (vuint32m2_t): Ditto.
3577 (vuint32m4_t): Ditto.
3578 (vuint32m8_t): Ditto.
3579 (vuint64m1_t): Ditto.
3580 (vuint64m2_t): Ditto.
3581 (vuint64m4_t): Ditto.
3582 (vuint64m8_t): Ditto.
3583 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
3584 Add new data struct for crypto vector.
3585 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3586 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
3587 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
3588
3589 2024-01-05 Feng Wang <wangfeng@eswincomputing.com>
3590
3591 * config/riscv/riscv-vector-builtins-bases.cc (class vandn):
3592 Add new function_base for crypto vector.
3593 (class bitmanip): Ditto.
3594 (class b_reverse):Ditto.
3595 (class vwsll): Ditto.
3596 (class clmul): Ditto.
3597 (class vg_nhab): Ditto.
3598 (class crypto_vv):Ditto.
3599 (class crypto_vi):Ditto.
3600 (class vaeskf2_vsm3c):Ditto.
3601 (class vsm3me): Ditto.
3602 (BASE): Add BASE declaration for crypto vector.
3603 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3604 * config/riscv/riscv-vector-builtins-functions.def (REQUIRED_EXTENSIONS):
3605 Add crypto vector intrinsic definition.
3606 (vbrev): Ditto.
3607 (vclz): Ditto.
3608 (vctz): Ditto.
3609 (vwsll): Ditto.
3610 (vandn): Ditto.
3611 (vbrev8): Ditto.
3612 (vrev8): Ditto.
3613 (vrol): Ditto.
3614 (vror): Ditto.
3615 (vclmul): Ditto.
3616 (vclmulh): Ditto.
3617 (vghsh): Ditto.
3618 (vgmul): Ditto.
3619 (vaesef): Ditto.
3620 (vaesem): Ditto.
3621 (vaesdf): Ditto.
3622 (vaesdm): Ditto.
3623 (vaesz): Ditto.
3624 (vaeskf1): Ditto.
3625 (vaeskf2): Ditto.
3626 (vsha2ms): Ditto.
3627 (vsha2ch): Ditto.
3628 (vsha2cl): Ditto.
3629 (vsm4k): Ditto.
3630 (vsm4r): Ditto.
3631 (vsm3me): Ditto.
3632 (vsm3c): Ditto.
3633 * config/riscv/riscv-vector-builtins-shapes.cc (struct crypto_vv_def):
3634 Add new function_shape for crypto vector.
3635 (struct crypto_vi_def): Ditto.
3636 (struct crypto_vv_no_op_type_def): Ditto.
3637 (SHAPE): Add SHAPE declaration of crypto vector.
3638 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3639 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_CRYPTO_SEW32_OPS):
3640 Add new data type for crypto vector.
3641 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3642 (vuint32mf2_t): Ditto.
3643 (vuint32m1_t): Ditto.
3644 (vuint32m2_t): Ditto.
3645 (vuint32m4_t): Ditto.
3646 (vuint32m8_t): Ditto.
3647 (vuint64m1_t): Ditto.
3648 (vuint64m2_t): Ditto.
3649 (vuint64m4_t): Ditto.
3650 (vuint64m8_t): Ditto.
3651 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CRYPTO_SEW32_OPS):
3652 Add new data struct for crypto vector.
3653 (DEF_RVV_CRYPTO_SEW64_OPS): Ditto.
3654 (registered_function::overloaded_hash): Processing size_t uimm for C overloaded func.
3655 * config/riscv/riscv-vector-builtins.def (vi): Add vi OP_TYPE.
3656
3657 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3658
3659 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
3660
3661 2024-01-04 Andrew Pinski <quic_apinski@quicinc.com>
3662
3663 PR tree-optimization/113186
3664 * gimple-match-head.cc (gimple_bitwise_inverted_equal_p):
3665 Match `^` with the `==` for 1bit integral types.
3666 * match.pd (maybe_cmp): Allow for bit_xor for 1bit
3667 integral types.
3668
3669 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3670
3671 * toplev.cc (general_init): Pass lang_mask to urlifier.
3672
3673 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3674
3675 * diagnostic.h (diagnostic_make_option_url_cb): Add lang_mask
3676 param.
3677 (diagnostic_context::make_option_url): Update for lang_mask param.
3678 * gcc-urlifier.cc: Include "opts.h" and "options.h".
3679 (gcc_urlifier::gcc_urlifier): Add lang_mask param.
3680 (gcc_urlifier::m_lang_mask): New field.
3681 (doc_urls): Make static.
3682 (gcc_urlifier::get_url_for_quoted_text): Use label_text.
3683 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
3684 Look for an option by name before trying a binary search in
3685 doc_urls.
3686 (gcc_urlifier::get_url_suffix_for_quoted_text): Use label_text.
3687 (gcc_urlifier::get_url_suffix_for_option): New.
3688 (make_gcc_urlifier): Add lang_mask param.
3689 (selftest::gcc_urlifier_cc_tests): Update for above changes.
3690 Verify that a URL is found for "-fpack-struct".
3691 * gcc-urlifier.def: Drop options "--version" and "-fpack-struct".
3692 * gcc-urlifier.h (make_gcc_urlifier): Add lang_mask param.
3693 * gcc.cc (driver::global_initializations): Pass 0 for lang_mask
3694 to make_gcc_urlifier.
3695 * opts-diagnostic.h (get_option_url): Add lang_mask param.
3696 * opts.cc (get_option_html_page): Remove special-casing for
3697 analyzer and LTO.
3698 (get_option_url_suffix): New.
3699 (get_option_url): Reimplement.
3700 (selftest::test_get_option_html_page): Rename to...
3701 (selftest::test_get_option_url_suffix): ...this and update for
3702 above changes.
3703 (selftest::opts_cc_tests): Update for renaming.
3704 * opts.h: Include "rich-location.h".
3705 (get_option_url_suffix): New decl.
3706
3707 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3708
3709 * Makefile.in (ALL_OPT_URL_FILES): New.
3710 (GCC_OBJS): Add options-urls.o.
3711 (OBJS): Likewise.
3712 (OBJS-libcommon): Likewise.
3713 (s-options): Depend on $(ALL_OPT_URL_FILES), and add this to
3714 inputs to opt-gather.awk.
3715 (options-urls.cc): New Makefile target.
3716 * opt-functions.awk (url_suffix): New function.
3717 (lang_url_suffix): New function.
3718 * options-urls-cc-gen.awk: New file.
3719 * opts.h (get_opt_url_suffix): New decl.
3720
3721 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3722
3723 * params.opt.urls: New file, autogenerated by
3724 regenerate-opt-urls.py.
3725
3726 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3727
3728 * common.opt.urls: New file, autogenerated by
3729 regenerate-opt-urls.py.
3730 * config/aarch64/aarch64.opt.urls: Likewise.
3731 * config/alpha/alpha.opt.urls: Likewise.
3732 * config/alpha/elf.opt.urls: Likewise.
3733 * config/arc/arc-tables.opt.urls: Likewise.
3734 * config/arc/arc.opt.urls: Likewise.
3735 * config/arm/arm-tables.opt.urls: Likewise.
3736 * config/arm/arm.opt.urls: Likewise.
3737 * config/arm/vxworks.opt.urls: Likewise.
3738 * config/avr/avr.opt.urls: Likewise.
3739 * config/bpf/bpf.opt.urls: Likewise.
3740 * config/c6x/c6x-tables.opt.urls: Likewise.
3741 * config/c6x/c6x.opt.urls: Likewise.
3742 * config/cris/cris.opt.urls: Likewise.
3743 * config/cris/elf.opt.urls: Likewise.
3744 * config/csky/csky.opt.urls: Likewise.
3745 * config/csky/csky_tables.opt.urls: Likewise.
3746 * config/darwin.opt.urls: Likewise.
3747 * config/dragonfly.opt.urls: Likewise.
3748 * config/epiphany/epiphany.opt.urls: Likewise.
3749 * config/fr30/fr30.opt.urls: Likewise.
3750 * config/freebsd.opt.urls: Likewise.
3751 * config/frv/frv.opt.urls: Likewise.
3752 * config/ft32/ft32.opt.urls: Likewise.
3753 * config/fused-madd.opt.urls: Likewise.
3754 * config/g.opt.urls: Likewise.
3755 * config/gcn/gcn.opt.urls: Likewise.
3756 * config/gnu-user.opt.urls: Likewise.
3757 * config/h8300/h8300.opt.urls: Likewise.
3758 * config/hpux11.opt.urls: Likewise.
3759 * config/i386/cygming.opt.urls: Likewise.
3760 * config/i386/cygwin.opt.urls: Likewise.
3761 * config/i386/djgpp.opt.urls: Likewise.
3762 * config/i386/i386.opt.urls: Likewise.
3763 * config/i386/mingw-w64.opt.urls: Likewise.
3764 * config/i386/mingw.opt.urls: Likewise.
3765 * config/i386/nto.opt.urls: Likewise.
3766 * config/ia64/ia64.opt.urls: Likewise.
3767 * config/ia64/ilp32.opt.urls: Likewise.
3768 * config/ia64/vms.opt.urls: Likewise.
3769 * config/iq2000/iq2000.opt.urls: Likewise.
3770 * config/linux-android.opt.urls: Likewise.
3771 * config/linux.opt.urls: Likewise.
3772 * config/lm32/lm32.opt.urls: Likewise.
3773 * config/loongarch/loongarch.opt.urls: Likewise.
3774 * config/lynx.opt.urls: Likewise.
3775 * config/m32c/m32c.opt.urls: Likewise.
3776 * config/m32r/m32r.opt.urls: Likewise.
3777 * config/m68k/ieee.opt.urls: Likewise.
3778 * config/m68k/m68k-tables.opt.urls: Likewise.
3779 * config/m68k/m68k.opt.urls: Likewise.
3780 * config/m68k/uclinux.opt.urls: Likewise.
3781 * config/mcore/mcore.opt.urls: Likewise.
3782 * config/microblaze/microblaze.opt.urls: Likewise.
3783 * config/mips/mips-tables.opt.urls: Likewise.
3784 * config/mips/mips.opt.urls: Likewise.
3785 * config/mips/sde.opt.urls: Likewise.
3786 * config/mmix/mmix.opt.urls: Likewise.
3787 * config/mn10300/mn10300.opt.urls: Likewise.
3788 * config/moxie/moxie.opt.urls: Likewise.
3789 * config/msp430/msp430.opt.urls: Likewise.
3790 * config/nds32/nds32-elf.opt.urls: Likewise.
3791 * config/nds32/nds32-linux.opt.urls: Likewise.
3792 * config/nds32/nds32.opt.urls: Likewise.
3793 * config/netbsd-elf.opt.urls: Likewise.
3794 * config/netbsd.opt.urls: Likewise.
3795 * config/nios2/elf.opt.urls: Likewise.
3796 * config/nios2/nios2.opt.urls: Likewise.
3797 * config/nvptx/nvptx-gen.opt.urls: Likewise.
3798 * config/nvptx/nvptx.opt.urls: Likewise.
3799 * config/openbsd.opt.urls: Likewise.
3800 * config/or1k/elf.opt.urls: Likewise.
3801 * config/or1k/or1k.opt.urls: Likewise.
3802 * config/pa/pa-hpux.opt.urls: Likewise.
3803 * config/pa/pa-hpux1010.opt.urls: Likewise.
3804 * config/pa/pa-hpux1111.opt.urls: Likewise.
3805 * config/pa/pa-hpux1131.opt.urls: Likewise.
3806 * config/pa/pa.opt.urls: Likewise.
3807 * config/pa/pa64-hpux.opt.urls: Likewise.
3808 * config/pdp11/pdp11.opt.urls: Likewise.
3809 * config/pru/pru.opt.urls: Likewise.
3810 * config/riscv/riscv.opt.urls: Likewise.
3811 * config/rl78/rl78.opt.urls: Likewise.
3812 * config/rpath.opt.urls: Likewise.
3813 * config/rs6000/476.opt.urls: Likewise.
3814 * config/rs6000/aix64.opt.urls: Likewise.
3815 * config/rs6000/darwin.opt.urls: Likewise.
3816 * config/rs6000/linux64.opt.urls: Likewise.
3817 * config/rs6000/rs6000-tables.opt.urls: Likewise.
3818 * config/rs6000/rs6000.opt.urls: Likewise.
3819 * config/rs6000/sysv4.opt.urls: Likewise.
3820 * config/rtems.opt.urls: Likewise.
3821 * config/rx/elf.opt.urls: Likewise.
3822 * config/rx/rx.opt.urls: Likewise.
3823 * config/s390/s390.opt.urls: Likewise.
3824 * config/s390/tpf.opt.urls: Likewise.
3825 * config/sh/sh.opt.urls: Likewise.
3826 * config/sh/superh.opt.urls: Likewise.
3827 * config/sol2.opt.urls: Likewise.
3828 * config/sparc/long-double-switch.opt.urls: Likewise.
3829 * config/sparc/sparc.opt.urls: Likewise.
3830 * config/stormy16/stormy16.opt.urls: Likewise.
3831 * config/v850/v850.opt.urls: Likewise.
3832 * config/vax/elf.opt.urls: Likewise.
3833 * config/vax/vax.opt.urls: Likewise.
3834 * config/visium/visium.opt.urls: Likewise.
3835 * config/vms/vms.opt.urls: Likewise.
3836 * config/vxworks-smp.opt.urls: Likewise.
3837 * config/vxworks.opt.urls: Likewise.
3838 * config/xtensa/elf.opt.urls: Likewise.
3839 * config/xtensa/uclinux.opt.urls: Likewise.
3840 * config/xtensa/xtensa.opt.urls: Likewise.
3841 * config/bfin/bfin.opt.urls: New file.
3842
3843 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3844
3845 * Makefile.in (OPT_URLS_HTML_DEPS): New.
3846 (regenerate-opt-urls): New target.
3847 (regenerate-opt-urls-unit-test): New target.
3848 * doc/options.texi (Option properties): Add UrlSuffix and
3849 description of regenerate-opt-urls.py. Add LangUrlSuffix_*.
3850 * doc/sourcebuild.texi (Anatomy of a Language Front End): Add
3851 reference to regenerate-opt-urls.py's PER_LANGUAGE_OPTION_INDEXES
3852 and Makefile.in's OPT_URLS_HTML_DEPS.
3853 (Anatomy of a Target Back End): Add
3854 reference to regenerate-opt-urls.py's TARGET_SPECIFIC_PAGES.
3855 * regenerate-opt-urls.py: New file.
3856
3857 2024-01-04 David Malcolm <dmalcolm@redhat.com>
3858
3859 * diagnostic-format-sarif.cc
3860 (sarif_builder::make_logical_location_object): Convert to...
3861 (make_sarif_logical_location_object): ...this.
3862 (sarif_builder::set_any_logical_locs_arr): Update for above
3863 change.
3864 (sarif_builder::make_thread_flow_location_object): Call
3865 maybe_add_sarif_properties on each diagnostic_event.
3866 * diagnostic-format-sarif.h (class logical_location): New forward
3867 decl.
3868 (make_sarif_logical_location_object): New decl.
3869 * diagnostic-path.h (class sarif_object): New forward decl.
3870 (diagnostic_event::maybe_add_sarif_properties): New vfunc.
3871
3872 2024-01-04 Kuan-Lin Chen <rufus@andestech.com>
3873 Patrick Lin <patrick@andestech.com>
3874 Rufus Chen <rufus@andestech.com>
3875 Monk Chiang <monk.chiang@sifive.com>
3876
3877 * config/riscv/riscv.cc (riscv_legitimize_move): Expand movfh
3878 with Nan-boxing value.
3879 * config/riscv/riscv.md (*movhf_softfloat_unspec): New pattern.
3880
3881 2024-01-04 Roger Sayle <roger@nextmovesoftware.com>
3882 Jeff Law <jlaw@ventanamicro.com>
3883
3884 PR rtl-optimization/104914
3885 * expr.cc (expand_assignment): When target is SUBREG_PROMOTED_VAR_P
3886 a sign or zero extension is only required if the modified field
3887 overlaps the SUBREG's most significant bit. On MODE_REP_EXTENDED
3888 targets, don't refer to the temporarily incorrectly extended value
3889 using a SUBREG, but instead generate an explicit TRUNCATE rtx.
3890
3891 2024-01-04 Pan Li <pan2.li@intel.com>
3892
3893 Revert:
3894 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3895
3896 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
3897
3898 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3899
3900 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): Teach vi variant.
3901
3902 2024-01-04 Kito Cheng <kito.cheng@sifive.com>
3903
3904 * config/riscv/riscv.cc (riscv_for_each_saved_reg): Adjust the
3905 offset of fcsr.
3906
3907 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3908
3909 * config/riscv/riscv-vector-costs.cc (variable_vectorized_p): New function.
3910 (compute_nregs_for_mode): Refine LMUL.
3911 (max_number_of_live_regs): Ditto.
3912 (compute_estimated_lmul): Ditto.
3913 (has_unexpected_spills_p): Ditto.
3914
3915 2024-01-04 Li Wei <liwei@loongson.cn>
3916
3917 * config/loongarch/loongarch.cc (loongarch_is_odd_extraction):
3918 Remove useless forward declaration.
3919 (loongarch_is_even_extraction): Remove useless forward declaration.
3920 (loongarch_try_expand_lsx_vshuf_const): Removed.
3921 (loongarch_expand_vec_perm_const_1): Merged.
3922 (loongarch_is_double_duplicate): Removed.
3923 (loongarch_is_center_extraction): Ditto.
3924 (loongarch_is_reversing_permutation): Ditto.
3925 (loongarch_is_di_misalign_extract): Ditto.
3926 (loongarch_is_si_misalign_extract): Ditto.
3927 (loongarch_is_lasx_lowpart_extract): Ditto.
3928 (loongarch_is_op_reverse_perm): Ditto.
3929 (loongarch_is_single_op_perm): Ditto.
3930 (loongarch_is_divisible_perm): Ditto.
3931 (loongarch_is_triple_stride_extract): Ditto.
3932 (loongarch_expand_vec_perm_const_2): Merged.
3933 (loongarch_expand_vec_perm_const): New.
3934 (loongarch_vectorize_vec_perm_const): Adjust.
3935
3936 2024-01-04 Sandra Loosemore <sandra@codesourcery.com>
3937
3938 * omp-general.cc: Fix comment typos and misplaced/confusing
3939 comments. Delete redundant include of omp-general.h.
3940
3941 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
3942
3943 PR rtl-optimization/104914
3944 * config/mips/mips.md (insqisi_extended): New patterns.
3945 (inshisi_extended): Ditto.
3946
3947 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
3948
3949 * config/mips/mips.cc (mips_insn_cost): New function.
3950
3951 2024-01-04 YunQiang Su <syq@gcc.gnu.org>
3952
3953 * config/mips/mips.md (perf_ratio): New attribute.
3954
3955 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3956
3957 PR target/113206
3958 PR target/113209
3959 * config/riscv/riscv-vsetvl.cc (invalid_opt_bb_p): New function.
3960 (pre_vsetvl::compute_lcm_local_properties): Disable earliest fusion on
3961 blocks belong to infinite loop.
3962 (pre_vsetvl::emit_vsetvl): Remove fake edges.
3963 * config/riscv/t-riscv: Add a new include file.
3964
3965 2024-01-04 Juzhe-Zhong <juzhe.zhong@rivai.ai>
3966
3967 * config/riscv/vector.md: Fix indent.
3968
3969 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
3970
3971 * tree-core.h (enum omp_clause_code): Move OMP_CLAUSE_INDIRECT to before
3972 OMP_CLAUSE__SIMDUID_.
3973 * tree.cc (omp_clause_num_ops): Update position of entry for
3974 OMP_CLAUSE_INDIRECT to correspond with omp_clause_code.
3975 (omp_clause_code_name): Likewise.
3976
3977 2024-01-03 Kwok Cheung Yeung <kcy@codesourcery.com>
3978
3979 * config/nvptx/nvptx.cc (nvptx_record_offload_symbol): Restucture
3980 printing of FUNC_MAP/IND_FUNC_MAP labels.
3981
3982 2024-01-03 Jakub Jelinek <jakub@redhat.com>
3983
3984 * gcc.cc (process_command): Update copyright notice dates.
3985 * gcov-dump.cc (print_version): Ditto.
3986 * gcov.cc (print_version): Ditto.
3987 * gcov-tool.cc (print_version): Ditto.
3988 * gengtype.cc (create_file): Ditto.
3989 * doc/cpp.texi: Bump @copying's copyright year.
3990 * doc/cppinternals.texi: Ditto.
3991 * doc/gcc.texi: Ditto.
3992 * doc/gccint.texi: Ditto.
3993 * doc/gcov.texi: Ditto.
3994 * doc/install.texi: Ditto.
3995 * doc/invoke.texi: Ditto.
3996
3997 2024-01-03 Xi Ruoyao <xry111@xry111.site>
3998
3999 * config/loongarch/simd.md (fmax<mode>3): New define_insn.
4000 (fmin<mode>3): Likewise.
4001 (reduc_fmax_scal_<mode>3): New define_expand.
4002 (reduc_fmin_scal_<mode>3): Likewise.
4003
4004 2024-01-03 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4005
4006 PR target/113112
4007 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Add rgroup info.
4008 (max_number_of_live_regs): Ditto.
4009 (has_unexpected_spills_p): Ditto.
4010
4011 2024-01-02 Jun Sha (Joshua) <cooper.joshua@linux.alibaba.com>
4012 Jin Ma <jinma@linux.alibaba.com>
4013 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4014 Christoph Müllner <christoph.muellner@vrull.eu>
4015
4016 * config/riscv/vector.md:
4017 Use vector_length_operand for vsetvl patterns.
4018
4019 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4020
4021 * config/riscv/riscv-v.cc (is_vlmax_len_p): Remove satisfies_constraint_K.
4022 (expand_cond_len_op): Add simplification of dummy len and dummy mask.
4023
4024 2024-01-02 Di Zhao <dizhao@os.amperecomputing.com>
4025
4026 * config/aarch64/aarch64-tuning-flags.def
4027 (AARCH64_EXTRA_TUNING_OPTION): New tuning option
4028 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA.
4029 * config/aarch64/aarch64.cc
4030 (aarch64_override_options_internal): Set
4031 param_fully_pipelined_fma according to tuning option.
4032 * config/aarch64/tuning_models/ampere1.h: Add
4033 AARCH64_EXTRA_TUNE_FULLY_PIPELINED_FMA to tune_flags.
4034 * config/aarch64/tuning_models/ampere1a.h: Likewise.
4035 * config/aarch64/tuning_models/ampere1b.h: Likewise.
4036
4037 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
4038
4039 * config/riscv/vector-crypto.md: Modify copyright year.
4040
4041 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4042
4043 * config/riscv/riscv-vector-costs.cc: Move STMT_VINFO_TYPE (...) to local.
4044
4045 2024-01-02 Lulu Cheng <chenglulu@loongson.cn>
4046
4047 * config.in: Regenerate.
4048 * config/loongarch/loongarch-opts.h (HAVE_AS_TLS_LE_RELAXATION): Define.
4049 * config/loongarch/loongarch.cc (loongarch_legitimize_tls_address):
4050 Added TLS Le Relax support.
4051 (loongarch_print_operand_reloc): Add the output string of TLS Le Relax.
4052 * config/loongarch/loongarch.md (@add_tls_le_relax<mode>): New template.
4053 * configure: Regenerate.
4054 * configure.ac: Check if binutils supports TLS le relax.
4055
4056 2024-01-02 Feng Wang <wangfeng@eswincomputing.com>
4057
4058 * config/riscv/iterators.md: Add rotate insn name.
4059 * config/riscv/riscv.md: Add new insns name for crypto vector.
4060 * config/riscv/vector-iterators.md: Add new iterators for crypto vector.
4061 * config/riscv/vector.md: Add the corresponding attr for crypto vector.
4062 * config/riscv/vector-crypto.md: New file.The machine descriptions for crypto vector.
4063
4064 2024-01-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
4065
4066 PR target/113112
4067 * config/riscv/riscv-vector-costs.cc (compute_nregs_for_mode): Fix
4068 pointer type liveness count.
4069 \f
4070 Copyright (C) 2024 Free Software Foundation, Inc.
4071
4072 Copying and distribution of this file, with or without modification,
4073 are permitted in any medium without royalty provided the copyright
4074 notice and this notice are preserved.