1 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
3 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
4 {s|u}{max|min} in QI, HI and DI modes.
5 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
6 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
7 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
8 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
11 2023-03-06 Richard Biener <rguenther@suse.de>
13 PR tree-optimization/109025
14 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
15 the inner LC PHI use is the inner loop PHI latch definition
16 before classifying an outer PHI as double reduction.
18 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
21 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
23 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
24 (X86_TUNE_USE_SCATTER): Likewise.
26 2023-03-06 Xi Ruoyao <xry111@xry111.site>
29 * config/loongarch/loongarch.h (FP_RETURN): Use
30 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
31 (UNITS_PER_FP_ARG): Likewise.
33 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
35 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
36 (pass_vsetvl::backward_demand_fusion): Ditto.
38 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
39 SiYu Wu <siyu@isrc.iscas.ac.cn>
41 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
43 (riscv_sm3p1_<mode>): New.
44 (riscv_sm4ed_<mode>): New.
45 (riscv_sm4ks_<mode>): New.
46 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
47 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
48 ZKSH's built-in functions.
50 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
51 SiYu Wu <siyu@isrc.iscas.ac.cn>
53 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
54 (riscv_sha256sig1_<mode>): New.
55 (riscv_sha256sum0_<mode>): New.
56 (riscv_sha256sum1_<mode>): New.
57 (riscv_sha512sig0h): New.
58 (riscv_sha512sig0l): New.
59 (riscv_sha512sig1h): New.
60 (riscv_sha512sig1l): New.
61 (riscv_sha512sum0r): New.
62 (riscv_sha512sum1r): New.
63 (riscv_sha512sig0): New.
64 (riscv_sha512sig1): New.
65 (riscv_sha512sum0): New.
66 (riscv_sha512sum1): New.
67 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
68 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
70 (DIRECT_BUILTIN): Add new.
72 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
73 SiYu Wu <siyu@isrc.iscas.ac.cn>
75 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
77 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
78 (riscv_aes32dsmi): New.
80 (riscv_aes64dsm): New.
82 (riscv_aes64ks1i): New.
83 (riscv_aes64ks2): New.
84 (riscv_aes32esi): New.
85 (riscv_aes32esmi): New.
87 (riscv_aes64esm): New.
88 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
89 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
90 ZKNE's built-in functions.
92 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
93 SiYu Wu <siyu@isrc.iscas.ac.cn>
95 * config/riscv/bitmanip.md: Add ZBKB's instructions.
96 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
97 * config/riscv/riscv.md: Add new type for crypto instructions.
98 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
100 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
101 extension's built-in function file.
103 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
104 SiYu Wu <siyu@isrc.iscas.ac.cn>
106 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
107 (RISCV_FTYPE_NAME3): New.
108 (RISCV_ATYPE_QI): New.
109 (RISCV_ATYPE_HI): New.
110 (RISCV_FTYPE_ATYPES2): New.
111 (RISCV_FTYPE_ATYPES3): New.
112 * config/riscv/riscv-ftypes.def (2): New.
115 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
117 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
120 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
121 kito-cheng <kito.cheng@sifive.com>
123 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
124 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
125 (riscv_register_pragmas): Add builtin function check call.
126 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
127 (check_builtin_call): New function.
128 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
129 (class vreinterpret): Ditto.
130 (class vlmul_ext): Ditto.
131 (class vlmul_trunc): Ditto.
135 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
136 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
152 (vundefined): Add new intrinsic.
153 (vreinterpret): Ditto.
155 (vlmul_trunc): Ditto.
158 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
159 (struct narrow_alu_def): Ditto.
160 (struct reduc_alu_def): Ditto.
161 (struct vundefined_def): Ditto.
162 (struct misc_def): Ditto.
163 (struct vset_def): Ditto.
164 (struct vget_def): Ditto.
166 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
167 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
168 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
169 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
170 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
171 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
172 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
173 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
174 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
175 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
176 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
177 (DEF_RVV_LMUL1_OPS): Ditto.
178 (DEF_RVV_LMUL2_OPS): Ditto.
179 (DEF_RVV_LMUL4_OPS): Ditto.
180 (vint16mf4_t): Ditto.
181 (vint16mf2_t): Ditto.
186 (vint32mf2_t): Ditto.
195 (vuint16mf4_t): Ditto.
196 (vuint16mf2_t): Ditto.
197 (vuint16m1_t): Ditto.
198 (vuint16m2_t): Ditto.
199 (vuint16m4_t): Ditto.
200 (vuint16m8_t): Ditto.
201 (vuint32mf2_t): Ditto.
202 (vuint32m1_t): Ditto.
203 (vuint32m2_t): Ditto.
204 (vuint32m4_t): Ditto.
205 (vuint32m8_t): Ditto.
206 (vuint64m1_t): Ditto.
207 (vuint64m2_t): Ditto.
208 (vuint64m4_t): Ditto.
209 (vuint64m8_t): Ditto.
216 (vuint8mf4_t): Ditto.
217 (vuint8mf2_t): Ditto.
223 (vuint8mf8_t): Ditto.
224 (vfloat32mf2_t): Ditto.
225 (vfloat32m1_t): Ditto.
226 (vfloat32m2_t): Ditto.
227 (vfloat32m4_t): Ditto.
228 (vfloat64m1_t): Ditto.
229 (vfloat64m2_t): Ditto.
230 (vfloat64m4_t): Ditto.
231 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
232 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
233 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
234 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
235 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
236 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
237 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
238 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
239 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
240 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
241 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
242 (DEF_RVV_LMUL1_OPS): Ditto.
243 (DEF_RVV_LMUL2_OPS): Ditto.
244 (DEF_RVV_LMUL4_OPS): Ditto.
245 (DEF_RVV_TYPE_INDEX): Ditto.
246 (required_extensions_p): Adapt for new intrinsic support/
247 (get_required_extensions): New function.
248 (check_required_extensions): Ditto.
249 (unsigned_base_type_p): Remove.
250 (rvv_arg_type_info::get_scalar_ptr_type): New function.
251 (get_mode_for_bitsize): Remove.
252 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
253 (rvv_arg_type_info::get_base_vector_type): Ditto.
254 (rvv_arg_type_info::get_function_type_index): Ditto.
255 (DEF_RVV_BASE_TYPE): New def.
256 (function_builder::apply_predication): New class.
257 (function_expander::mask_mode): Ditto.
258 (function_checker::function_checker): Ditto.
259 (function_checker::report_non_ice): Ditto.
260 (function_checker::report_out_of_range): Ditto.
261 (function_checker::require_immediate): Ditto.
262 (function_checker::require_immediate_range): Ditto.
263 (function_checker::check): Ditto.
264 (check_builtin_call): Ditto.
265 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
266 (DEF_RVV_BASE_TYPE): Ditto.
267 (DEF_RVV_TYPE_INDEX): Ditto.
275 (vuint8mf8_t): Ditto.
276 (vuint8mf4_t): Ditto.
277 (vuint8mf2_t): Ditto.
284 (vint16mf4_t): Ditto.
285 (vuint16mf2_t): Ditto.
286 (vuint16m1_t): Ditto.
287 (vuint16m2_t): Ditto.
288 (vuint16m4_t): Ditto.
289 (vuint16m8_t): Ditto.
290 (vint32mf2_t): Ditto.
291 (vuint32m1_t): Ditto.
292 (vuint32m2_t): Ditto.
293 (vuint32m4_t): Ditto.
294 (vuint32m8_t): Ditto.
295 (vuint64m1_t): Ditto.
296 (vuint64m2_t): Ditto.
297 (vuint64m4_t): Ditto.
298 (vuint64m8_t): Ditto.
299 (vfloat32mf2_t): Ditto.
300 (vfloat32m1_t): Ditto.
301 (vfloat32m2_t): Ditto.
302 (vfloat32m4_t): Ditto.
303 (vfloat32m8_t): Ditto.
304 (vfloat64m1_t): Ditto.
305 (vfloat64m4_t): Ditto.
306 (vector): Move it def.
309 (signed_vector): Ditto.
310 (unsigned_vector): Ditto.
311 (unsigned_scalar): Ditto.
314 (scalar_const_ptr): Ditto.
318 (unsigned_long): Ditto.
321 (eew16_index): Ditto.
322 (eew32_index): Ditto.
323 (eew64_index): Ditto.
324 (shift_vector): Ditto.
325 (double_trunc_vector): Ditto.
326 (quad_trunc_vector): Ditto.
327 (oct_trunc_vector): Ditto.
328 (double_trunc_scalar): Ditto.
329 (double_trunc_signed_vector): Ditto.
330 (double_trunc_unsigned_vector): Ditto.
331 (double_trunc_unsigned_scalar): Ditto.
332 (double_trunc_float_vector): Ditto.
333 (float_vector): Ditto.
334 (lmul1_vector): Ditto.
335 (widen_lmul1_vector): Ditto.
336 (eew8_interpret): Ditto.
337 (eew16_interpret): Ditto.
338 (eew32_interpret): Ditto.
339 (eew64_interpret): Ditto.
340 (vlmul_ext_x2): Ditto.
341 (vlmul_ext_x4): Ditto.
342 (vlmul_ext_x8): Ditto.
343 (vlmul_ext_x16): Ditto.
344 (vlmul_ext_x32): Ditto.
345 (vlmul_ext_x64): Ditto.
346 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
347 (struct function_type_info): New function.
348 (struct rvv_arg_type_info): Ditto.
349 (class function_checker): New class.
350 (rvv_arg_type_info::get_scalar_type): New function.
351 (rvv_arg_type_info::get_vector_type): Ditto.
352 (function_expander::ret_mode): New function.
353 (function_checker::arg_mode): Ditto.
354 (function_checker::ret_mode): Ditto.
355 * config/riscv/t-riscv: Add generator.
356 * config/riscv/vector-iterators.md: New iterators.
357 * config/riscv/vector.md (vundefined<mode>): New pattern.
358 (@vundefined<mode>): Ditto.
359 (@vreinterpret<mode>): Ditto.
360 (@vlmul_extx2<mode>): Ditto.
361 (@vlmul_extx4<mode>): Ditto.
362 (@vlmul_extx8<mode>): Ditto.
363 (@vlmul_extx16<mode>): Ditto.
364 (@vlmul_extx32<mode>): Ditto.
365 (@vlmul_extx64<mode>): Ditto.
366 (*vlmul_extx2<mode>): Ditto.
367 (*vlmul_extx4<mode>): Ditto.
368 (*vlmul_extx8<mode>): Ditto.
369 (*vlmul_extx16<mode>): Ditto.
370 (*vlmul_extx32<mode>): Ditto.
371 (*vlmul_extx64<mode>): Ditto.
372 * config/riscv/genrvv-type-indexer.cc: New file.
374 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
376 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
377 (slide1_sew64_helper): New function.
378 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
379 (get_unknown_min_value): Ditto.
380 (force_vector_length_operand): Ditto.
381 (gen_no_side_effects_vsetvl_rtx): Ditto.
382 (get_vl_x2_rtx): Ditto.
383 (slide1_sew64_helper): Ditto.
384 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
385 (class vrgather): Ditto.
386 (class vrgatherei16): Ditto.
387 (class vcompress): Ditto.
389 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
390 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
393 (vslide1down): Ditto.
395 (vfslide1down): Ditto.
397 (vrgatherei16): Ditto.
399 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
406 (vint16mf4_t): Ditto.
407 (vint16mf2_t): Ditto.
412 (vint32mf2_t): Ditto.
421 (vuint8mf8_t): Ditto.
422 (vuint8mf4_t): Ditto.
423 (vuint8mf2_t): Ditto.
427 (vuint16mf4_t): Ditto.
428 (vuint16mf2_t): Ditto.
429 (vuint16m1_t): Ditto.
430 (vuint16m2_t): Ditto.
431 (vuint16m4_t): Ditto.
432 (vuint16m8_t): Ditto.
433 (vuint32mf2_t): Ditto.
434 (vuint32m1_t): Ditto.
435 (vuint32m2_t): Ditto.
436 (vuint32m4_t): Ditto.
437 (vuint32m8_t): Ditto.
438 (vuint64m1_t): Ditto.
439 (vuint64m2_t): Ditto.
440 (vuint64m4_t): Ditto.
441 (vuint64m8_t): Ditto.
442 (vfloat32mf2_t): Ditto.
443 (vfloat32m1_t): Ditto.
444 (vfloat32m2_t): Ditto.
445 (vfloat32m4_t): Ditto.
446 (vfloat32m8_t): Ditto.
447 (vfloat64m1_t): Ditto.
448 (vfloat64m2_t): Ditto.
449 (vfloat64m4_t): Ditto.
450 (vfloat64m8_t): Ditto.
451 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
452 * config/riscv/riscv.md: Adjust RVV instruction types.
453 * config/riscv/vector-iterators.md (down): New iterator.
454 (=vd,vr): New attribute.
455 (UNSPEC_VSLIDE1UP): New unspec.
456 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
457 (*pred_slide<ud><mode>): Ditto.
458 (*pred_slide<ud><mode>_extended): Ditto.
459 (@pred_gather<mode>): Ditto.
460 (@pred_gather<mode>_scalar): Ditto.
461 (@pred_gatherei16<mode>): Ditto.
462 (@pred_compress<mode>): Ditto.
464 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
466 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
468 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
470 * config/riscv/constraints.md (Wb1): New constraint.
471 * config/riscv/predicates.md
472 (vector_least_significant_set_mask_operand): New predicate.
473 (vector_broadcast_mask_operand): Ditto.
474 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
475 (gen_scalar_move_mask): New function.
476 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
477 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
478 (class vmv_s): Ditto.
480 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
481 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
485 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
487 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
488 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
489 (function_expander::use_exact_insn): New function.
490 (function_expander::use_contiguous_load_insn): New function.
491 (function_expander::use_contiguous_store_insn): New function.
492 (function_expander::use_ternop_insn): New function.
493 (function_expander::use_widen_ternop_insn): New function.
494 (function_expander::use_scalar_move_insn): New function.
495 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
496 * config/riscv/riscv-vector-builtins.h
497 (function_expander::add_scalar_move_mask_operand): New class.
498 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
499 (scalar_move_insn_p): Ditto.
500 (has_vsetvl_killed_avl_p): Ditto.
501 (anticipatable_occurrence_p): Ditto.
502 (insert_vsetvl): Ditto.
503 (get_vl_vtype_info): Ditto.
504 (calculate_sew): Ditto.
505 (calculate_vlmul): Ditto.
506 (incompatible_avl_p): Ditto.
507 (different_sew_p): Ditto.
508 (different_lmul_p): Ditto.
509 (different_ratio_p): Ditto.
510 (different_tail_policy_p): Ditto.
511 (different_mask_policy_p): Ditto.
512 (possible_zero_avl_p): Ditto.
513 (first_ratio_invalid_for_second_sew_p): Ditto.
514 (first_ratio_invalid_for_second_lmul_p): Ditto.
515 (second_ratio_invalid_for_first_sew_p): Ditto.
516 (second_ratio_invalid_for_first_lmul_p): Ditto.
517 (second_sew_less_than_first_sew_p): Ditto.
518 (first_sew_less_than_second_sew_p): Ditto.
519 (compare_lmul): Ditto.
520 (second_lmul_less_than_first_lmul_p): Ditto.
521 (first_lmul_less_than_second_lmul_p): Ditto.
522 (first_ratio_less_than_second_ratio_p): Ditto.
523 (second_ratio_less_than_first_ratio_p): Ditto.
524 (DEF_INCOMPATIBLE_COND): Ditto.
525 (greatest_sew): Ditto.
528 (first_vlmul): Ditto.
529 (second_vlmul): Ditto.
530 (first_ratio): Ditto.
531 (second_ratio): Ditto.
532 (vlmul_for_first_sew_second_ratio): Ditto.
533 (ratio_for_second_sew_first_vlmul): Ditto.
534 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
535 (always_unavailable): Ditto.
536 (avl_unavailable_p): Ditto.
537 (sew_unavailable_p): Ditto.
538 (lmul_unavailable_p): Ditto.
539 (ge_sew_unavailable_p): Ditto.
540 (ge_sew_lmul_unavailable_p): Ditto.
541 (ge_sew_ratio_unavailable_p): Ditto.
542 (DEF_UNAVAILABLE_COND): Ditto.
543 (same_sew_lmul_demand_p): Ditto.
544 (propagate_avl_across_demands_p): Ditto.
545 (reg_available_p): Ditto.
546 (avl_info::has_non_zero_avl): Ditto.
547 (vl_vtype_info::has_non_zero_avl): Ditto.
548 (vector_insn_info::operator>=): Refactor.
549 (vector_insn_info::parse_insn): Adjust for scalar move.
550 (vector_insn_info::demand_vl_vtype): Remove.
551 (vector_insn_info::compatible_p): New function.
552 (vector_insn_info::compatible_avl_p): Ditto.
553 (vector_insn_info::compatible_vtype_p): Ditto.
554 (vector_insn_info::available_p): Ditto.
555 (vector_insn_info::merge): Ditto.
556 (vector_insn_info::fuse_avl): Ditto.
557 (vector_insn_info::fuse_sew_lmul): Ditto.
558 (vector_insn_info::fuse_tail_policy): Ditto.
559 (vector_insn_info::fuse_mask_policy): Ditto.
560 (vector_insn_info::dump): Ditto.
561 (vector_infos_manager::release): Ditto.
562 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
563 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
564 (pass_vsetvl::hard_empty_block_p): Ditto.
565 (pass_vsetvl::backward_demand_fusion): Ditto.
566 (pass_vsetvl::forward_demand_fusion): Ditto.
567 (pass_vsetvl::refine_vsetvls): Ditto.
568 (pass_vsetvl::cleanup_vsetvls): Ditto.
569 (pass_vsetvl::commit_vsetvls): Ditto.
570 (pass_vsetvl::propagate_avl): Ditto.
571 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
572 (struct demands_pair): Ditto.
573 (struct demands_cond): Ditto.
574 (struct demands_fuse_rule): Ditto.
575 * config/riscv/vector-iterators.md: New iterator.
576 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
577 (*pred_broadcast<mode>): Ditto.
578 (*pred_broadcast<mode>_extended_scalar): Ditto.
579 (@pred_extract_first<mode>): Ditto.
580 (*pred_extract_first<mode>): Ditto.
581 (@pred_extract_first_trunc<mode>): Ditto.
582 * config/riscv/riscv-vsetvl.def: New file.
584 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
586 * config/riscv/bitmanip.md: allow 0 constant in max/min
589 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
591 * config/riscv/bitmanip.md: Fix wrong index in the check.
593 2023-03-04 Jakub Jelinek <jakub@redhat.com>
596 * vec.cc (test_auto_alias): Adjust comment for removal of
598 * read-rtl-function.cc (function_reader::parse_block): Likewise.
599 * gdbhooks.py: Likewise.
601 2023-03-04 Jakub Jelinek <jakub@redhat.com>
604 * selftest-diagnostic.cc
605 (test_diagnostic_context::test_diagnostic_context): Set
606 caret_max_width to 80.
608 2023-03-03 Alexandre Oliva <oliva@adacore.com>
610 * gimple-ssa-warn-access.cc
611 (pass_waccess::check_dangling_stores): Skip non-stores.
613 2023-03-03 Alexandre Oliva <oliva@adacore.com>
615 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
616 after vmsr and vmrs, and lower the case of P0.
618 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
621 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
623 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
626 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
628 2023-03-03 Jakub Jelinek <jakub@redhat.com>
631 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
632 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
633 suppressed on stmt. For [static %E] warning, print access_nelts
634 rather than access_size. Fix up comment wording.
636 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
638 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
639 arch14 instead of z16.
641 2023-03-03 Anthony Green <green@moxielogic.com>
643 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
645 2023-03-03 Anthony Green <green@moxielogic.com>
647 * config/moxie/constraints.md (A, B, W): Change
648 define_constraint to define_memory_constraint.
650 2023-03-03 Xi Ruoyao <xry111@xry111.site>
652 * toplev.cc (process_options): Fix the spelling of
653 "-fstack-clash-protection".
655 2023-03-03 Richard Biener <rguenther@suse.de>
657 PR tree-optimization/109002
658 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
659 PHI-translate ANTIC_IN.
661 2023-03-03 Jakub Jelinek <jakub@redhat.com>
663 PR tree-optimization/108988
664 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
665 size_type_node before passing it as argument to fwrite. Formatting
668 2023-03-03 Richard Biener <rguenther@suse.de>
671 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
672 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
673 * config/i386/i386-features.h (scalar_chain::max_visits): New.
674 (scalar_chain::build): Add bitmap parameter, return boolean.
675 (scalar_chain::add_insn): Likewise.
676 (scalar_chain::analyze_register_chain): Likewise.
677 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
678 Initialize max_visits.
679 (scalar_chain::analyze_register_chain): When we exhaust
680 max_visits, abort. Also abort when running into any
682 (scalar_chain::add_insn): Propagate abort.
683 (scalar_chain::build): Likewise. When aborting amend
684 the set of disallowed insn with the insns set.
685 (convert_scalars_to_vector): Adjust. Do not convert aborted
688 2023-03-03 Richard Biener <rguenther@suse.de>
691 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
692 generate a DIE for a function scope static.
694 2023-03-03 Alexandre Oliva <oliva@adacore.com>
696 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
698 2023-03-02 Jakub Jelinek <jakub@redhat.com>
701 * target.h (emit_support_tinfos_callback): New typedef.
702 * targhooks.h (default_emit_support_tinfos): Declare.
703 * targhooks.cc (default_emit_support_tinfos): New function.
704 * target.def (emit_support_tinfos): New target hook.
705 * doc/tm.texi.in (emit_support_tinfos): Document it.
706 * doc/tm.texi: Regenerated.
707 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
708 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
710 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
712 * ira-costs.cc: Include print-rtl.h.
713 (record_reg_classes, scan_one_insn): Add code to print debug info.
714 (record_operand_costs): Find and use smaller cost for hard reg
717 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
718 Paul-Antoine Arras <pa@codesourcery.com>
720 * builtins.cc (mathfn_built_in_explicit): New.
721 * config/gcn/gcn.cc: Include case-cfn-macros.h.
722 (mathfn_built_in_explicit): Add prototype.
723 (gcn_vectorize_builtin_vectorized_function): New.
724 (gcn_libc_has_function): New.
725 (TARGET_LIBC_HAS_FUNCTION): Define.
726 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
728 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
730 PR tree-optimization/108979
731 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
732 operations on invariants.
734 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
736 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
737 * config/s390/s390.cc (s390_option_override_internal): Make
738 partial vector usage the default from z13 on.
739 * config/s390/vector.md (len_load_v16qi): Add.
740 (len_store_v16qi): Add.
742 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
744 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
745 of constant 0 offset.
747 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
749 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
751 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
753 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
755 * config.gcc: add -with-{no-}msa build option.
756 * config/mips/mips.h: Likewise.
757 * doc/install.texi: Likewise.
759 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
761 PR tree-optimization/108603
762 * explow.cc (convert_memory_address_addr_space_1): Only wrap
763 the result of a recursive call in a CONST if no instructions
766 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
768 PR tree-optimization/108430
769 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
770 of inverted condition.
772 2023-03-02 Jakub Jelinek <jakub@redhat.com>
775 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
776 comparison copy the bytes from ptr to a temporary buffer and clearing
777 padding bits in there.
779 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
782 * gimplify.cc (struct tree_operand_hash_no_se): New.
783 (omp_index_mapping_groups_1, omp_index_mapping_groups,
784 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
785 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
786 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
787 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
788 of tree_operand_hash.
790 2023-03-01 LIU Hao <lh_mouse@126.com>
793 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
794 Remove the size limit `pch_VA_max_size`
796 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
799 * omp-low.cc (lower_omp_target): Remove optional handling
800 on the receiver side, i.e. inside target (data), for
803 2023-03-01 Jakub Jelinek <jakub@redhat.com>
806 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
807 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
809 2023-03-01 Richard Biener <rguenther@suse.de>
811 PR tree-optimization/108970
812 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
813 Check we can copy the BBs.
814 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
816 (vect_do_peeling): Streamline error handling.
818 2023-03-01 Richard Biener <rguenther@suse.de>
820 PR tree-optimization/108950
821 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
822 Check oprnd0 is defined in the loop.
823 * tree-vect-loop.cc (vectorizable_reduction): Record all
824 operands vector types, compute that of invariants and
825 properly update their SLP nodes.
827 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
830 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
831 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
833 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
837 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
839 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
840 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
842 2023-02-28 Jakub Jelinek <jakub@redhat.com>
845 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
846 comparison rather than index > bound.
847 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
848 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
849 * doc/invoke.texi (-fsanitize=bounds): Document that whether
850 flexible array member-like arrays are instrumented or not depends
851 on -fstrict-flex-arrays* options of strict_flex_array attributes.
852 (-fsanitize=bounds-strict): Document that flexible array members
853 are not instrumented.
855 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
859 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
860 (fmod<mode>3): Ditto.
861 (fpremxf4_i387): Ditto.
862 (reminderxf3): Ditto.
863 (reminder<mode>3): Ditto.
864 (fprem1xf4_i387): Ditto.
866 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
868 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
869 generating FFS with mismatched operand and result modes, by using
870 an explicit SIGN_EXTEND/ZERO_EXTEND.
871 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
872 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
874 2023-02-27 Patrick Palka <ppalka@redhat.com>
876 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
877 * lra-int.h (lra_change_class): Likewise.
878 * recog.h (which_op_alt): Likewise.
879 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
882 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
884 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
886 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
888 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
889 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
891 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
893 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
894 (xtensa_get_config_v3): New functions.
896 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
898 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
900 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
902 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
903 the macro to 0x1000000000.
905 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
908 * doc/gm2.texi (-fm2-pathname): New option documented.
909 (-fm2-pathnameI): New option documented.
910 (-fm2-prefix=): New option documented.
911 (-fruntime-modules=): Update default module list.
913 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
916 * config/xtensa/xtensa-protos.h
917 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
918 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
919 to xtensa_expand_call.
920 (xtensa_expand_call): Emit the call and add a clobber expression
921 for the static chain to it in case of windowed ABI.
922 * config/xtensa/xtensa.md (call, call_value, sibcall)
923 (sibcall_value): Call xtensa_expand_call and complete expansion
924 right after that call.
926 2023-02-24 Richard Biener <rguenther@suse.de>
928 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
929 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
930 changing alignment of vec<T, A, vl_embed> and simplifying
932 (vec<T, A, vl_embed>::address): Compute as this + 1.
933 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
934 vector instead of the offset of the m_vecdata member.
935 (auto_vec<T, N>::m_data): Turn storage into
936 uninitialized unsigned char.
937 (auto_vec<T, N>::auto_vec): Allow allocation of one
938 stack member. Initialize m_vec in a special way to
939 avoid later stringop overflow diagnostics.
940 * vec.cc (test_auto_alias): New.
941 (vec_cc_tests): Call it.
943 2023-02-24 Richard Biener <rguenther@suse.de>
945 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
946 take a const reference to the object, use address to
948 (vec<T, A, vl_embed>::contains): Use address to access data.
949 (vec<T, A, vl_embed>::operator[]): Use address instead of
950 m_vecdata to access data.
951 (vec<T, A, vl_embed>::iterate): Likewise.
952 (vec<T, A, vl_embed>::copy): Likewise.
953 (vec<T, A, vl_embed>::quick_push): Likewise.
954 (vec<T, A, vl_embed>::pop): Likewise.
955 (vec<T, A, vl_embed>::quick_insert): Likewise.
956 (vec<T, A, vl_embed>::ordered_remove): Likewise.
957 (vec<T, A, vl_embed>::unordered_remove): Likewise.
958 (vec<T, A, vl_embed>::block_remove): Likewise.
959 (vec<T, A, vl_heap>::address): Likewise.
961 2023-02-24 Martin Liska <mliska@suse.cz>
964 * asan.cc (asan_add_global): Use proper TU name for normal
965 global variables (and aux_base_name for the artificial one).
967 2023-02-24 Jakub Jelinek <jakub@redhat.com>
969 * config/i386/i386-builtin.def: Update description of BDESC
970 and BDESC_FIRST in file comment to include mask2.
972 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
974 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
976 2023-02-24 Jakub Jelinek <jakub@redhat.com>
979 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
980 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
981 nodes and adjust their DECL_CONTEXT.
983 2023-02-24 Jakub Jelinek <jakub@redhat.com>
986 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
987 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
988 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
989 __builtin_ia32_cvtne2ps2bf16_v8bf,
990 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
991 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
992 __builtin_ia32_cvtneps2bf16_v8sf_mask,
993 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
994 __builtin_ia32_cvtneps2bf16_v4sf_mask,
995 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
996 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
997 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
998 __builtin_ia32_dpbf16ps_v4sf_mask,
999 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
1000 OPTION_MASK_ISA_AVX512VL.
1002 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1004 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
1005 Add non-compact 32-bit multilibs.
1007 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
1009 * config/mips/mips.md (*clo<mode>2): New pattern.
1011 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
1013 * config/mips/mips.h (machine_function): New variable
1014 use_hazard_barrier_return_p.
1015 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
1016 (mips_hb_return_internal): New insn pattern.
1017 * config/mips/mips.cc (mips_attribute_table): Add attribute
1018 use_hazard_barrier_return.
1019 (mips_use_hazard_barrier_return_p): New static function.
1020 (mips_function_attr_inlinable_p): Likewise.
1021 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
1022 Emit error for unsupported architecture choice.
1023 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
1024 Return false for use_hazard_barrier_return.
1025 (mips_expand_epilogue): Emit hazard barrier return.
1026 * doc/extend.texi: Document use_hazard_barrier_return.
1028 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1030 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
1031 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
1032 for the gcc-internal headers.
1034 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1036 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
1037 and $(POSTCOMPILE) instead of manual dependency listing.
1038 * config/xtensa/xtensa-dynconfig.c: Rename to ...
1039 * config/xtensa/xtensa-dynconfig.cc: ... this.
1041 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1043 * doc/cfg.texi: Reorder index entries around @items.
1044 * doc/cpp.texi: Ditto.
1045 * doc/cppenv.texi: Ditto.
1046 * doc/cppopts.texi: Ditto.
1047 * doc/generic.texi: Ditto.
1048 * doc/install.texi: Ditto.
1049 * doc/extend.texi: Ditto.
1050 * doc/invoke.texi: Ditto.
1051 * doc/md.texi: Ditto.
1052 * doc/rtl.texi: Ditto.
1053 * doc/tm.texi.in: Ditto.
1054 * doc/trouble.texi: Ditto.
1055 * doc/tm.texi: Regenerate.
1057 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1059 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
1060 the occurrence of general-purpose register used only once and for
1061 transferring intermediate value.
1063 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1065 * config/xtensa/xtensa.cc (machine_function): Add new member
1066 'eliminated_callee_saved_bmp'.
1067 (xtensa_can_eliminate_callee_saved_reg_p): New function to
1068 determine whether the register can be eliminated or not.
1069 (xtensa_expand_prologue): Add invoking the above function and
1070 elimination the use of callee-saved register by using its stack
1071 slot through the stack pointer (or the frame pointer if needed)
1073 (xtensa_expand_prologue): Modify to not emit register restoration
1074 insn from its stack slot if the register is already eliminated.
1076 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1078 PR translation/108890
1079 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
1080 around fatal_error format strings.
1082 2023-02-23 Richard Biener <rguenther@suse.de>
1084 * tree-ssa-structalias.cc (handle_lhs_call): Do not
1085 re-create rhsc, only truncate it.
1087 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1089 PR middle-end/106258
1090 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
1091 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
1093 2023-02-23 Richard Biener <rguenther@suse.de>
1095 * tree-if-conv.cc (tree_if_conversion): Properly manage
1096 memory of refs and the contained data references.
1098 2023-02-23 Richard Biener <rguenther@suse.de>
1100 PR tree-optimization/108888
1101 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
1103 (predicate_statements): Only predicate calls with PLF_2.
1105 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1107 * config/xtensa/xtensa.md
1108 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
1109 Add missing "SI:" to PLUS RTXes.
1111 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1114 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
1115 Emit (use (reg:SI A0_REG)) at the end in the sibling call
1116 (i.e. the same place as (return) in the normal call).
1118 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1121 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1124 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1126 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1127 (sibcall_value, sibcall_value_internal): Add 'use' expression
1130 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1132 * doc/cppdiropts.texi: Reorder @opindex commands to precede
1133 @items they relate to.
1134 * doc/cppopts.texi: Ditto.
1135 * doc/cppwarnopts.texi: Ditto.
1136 * doc/invoke.texi: Ditto.
1137 * doc/lto.texi: Ditto.
1139 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
1141 * internal-fn.cc (expand_MASK_CALL): New.
1142 * internal-fn.def (MASK_CALL): New.
1143 * internal-fn.h (expand_MASK_CALL): New prototype.
1144 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
1145 for mask arguments also.
1146 * tree-if-conv.cc: Include cgraph.h.
1147 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
1148 (predicate_statements): Convert functions to IFN_MASK_CALL.
1149 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
1150 IFN_MASK_CALL as a SIMD function call.
1151 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
1152 IFN_MASK_CALL as an inbranch SIMD function call.
1153 Generate the mask vector arguments.
1155 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1157 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
1158 (class widen_reducop): Ditto.
1159 (class freducop): Ditto.
1160 (class widen_freducop): Ditto.
1162 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1163 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
1177 (vfwredosum): Ditto.
1178 (vfwredusum): Ditto.
1179 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
1181 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1182 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
1183 (DEF_RVV_WU_OPS): Ditto.
1184 (DEF_RVV_WF_OPS): Ditto.
1185 (vint8mf8_t): Ditto.
1186 (vint8mf4_t): Ditto.
1187 (vint8mf2_t): Ditto.
1192 (vint16mf4_t): Ditto.
1193 (vint16mf2_t): Ditto.
1194 (vint16m1_t): Ditto.
1195 (vint16m2_t): Ditto.
1196 (vint16m4_t): Ditto.
1197 (vint16m8_t): Ditto.
1198 (vint32mf2_t): Ditto.
1199 (vint32m1_t): Ditto.
1200 (vint32m2_t): Ditto.
1201 (vint32m4_t): Ditto.
1202 (vint32m8_t): Ditto.
1203 (vuint8mf8_t): Ditto.
1204 (vuint8mf4_t): Ditto.
1205 (vuint8mf2_t): Ditto.
1206 (vuint8m1_t): Ditto.
1207 (vuint8m2_t): Ditto.
1208 (vuint8m4_t): Ditto.
1209 (vuint8m8_t): Ditto.
1210 (vuint16mf4_t): Ditto.
1211 (vuint16mf2_t): Ditto.
1212 (vuint16m1_t): Ditto.
1213 (vuint16m2_t): Ditto.
1214 (vuint16m4_t): Ditto.
1215 (vuint16m8_t): Ditto.
1216 (vuint32mf2_t): Ditto.
1217 (vuint32m1_t): Ditto.
1218 (vuint32m2_t): Ditto.
1219 (vuint32m4_t): Ditto.
1220 (vuint32m8_t): Ditto.
1221 (vfloat32mf2_t): Ditto.
1222 (vfloat32m1_t): Ditto.
1223 (vfloat32m2_t): Ditto.
1224 (vfloat32m4_t): Ditto.
1225 (vfloat32m8_t): Ditto.
1226 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
1227 (DEF_RVV_WU_OPS): Ditto.
1228 (DEF_RVV_WF_OPS): Ditto.
1229 (required_extensions_p): Add reduction support.
1230 (rvv_arg_type_info::get_base_vector_type): Ditto.
1231 (rvv_arg_type_info::get_tree_type): Ditto.
1232 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
1233 * config/riscv/riscv.md: Ditto.
1234 * config/riscv/vector-iterators.md (minu): Ditto.
1235 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
1236 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
1237 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
1238 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
1239 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
1240 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
1241 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
1243 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1245 * config/riscv/iterators.md: New iterator.
1246 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
1247 (enum ternop_type): New enum.
1248 (class vmacc): New class.
1249 (class imac): Ditto.
1250 (class vnmsac): Ditto.
1251 (enum widen_ternop_type): New enum.
1252 (class vmadd): Ditto.
1253 (class vnmsub): Ditto.
1254 (class iwmac): Ditto.
1255 (class vwmacc): Ditto.
1256 (class vwmaccu): Ditto.
1257 (class vwmaccsu): Ditto.
1258 (class vwmaccus): Ditto.
1259 (class reverse_binop): Ditto.
1260 (class vfmacc): Ditto.
1261 (class vfnmsac): Ditto.
1262 (class vfmadd): Ditto.
1263 (class vfnmsub): Ditto.
1264 (class vfnmacc): Ditto.
1265 (class vfmsac): Ditto.
1266 (class vfnmadd): Ditto.
1267 (class vfmsub): Ditto.
1268 (class vfwmacc): Ditto.
1269 (class vfwnmacc): Ditto.
1270 (class vfwmsac): Ditto.
1271 (class vfwnmsac): Ditto.
1272 (class float_misc): Ditto.
1273 (class fcmp): Ditto.
1274 (class vfclass): Ditto.
1275 (class vfcvt_x): Ditto.
1276 (class vfcvt_rtz_x): Ditto.
1277 (class vfcvt_f): Ditto.
1278 (class vfwcvt_x): Ditto.
1279 (class vfwcvt_rtz_x): Ditto.
1280 (class vfwcvt_f): Ditto.
1281 (class vfncvt_x): Ditto.
1282 (class vfncvt_rtz_x): Ditto.
1283 (class vfncvt_f): Ditto.
1284 (class vfncvt_rod_f): Ditto.
1286 * config/riscv/riscv-vector-builtins-bases.h:
1287 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
1331 (vfcvt_rtz_x): Ditto.
1332 (vfcvt_rtz_xu): Ditto.
1336 (vfwcvt_rtz_x): Ditto.
1337 (vfwcvt_rtz_xu): Ditto.
1341 (vfncvt_rtz_x): Ditto.
1342 (vfncvt_rtz_xu): Ditto.
1344 (vfncvt_rod_f): Ditto.
1345 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
1346 (struct move_def): Ditto.
1347 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
1348 (DEF_RVV_CONVERT_I_OPS): Ditto.
1349 (DEF_RVV_CONVERT_U_OPS): Ditto.
1350 (DEF_RVV_WCONVERT_I_OPS): Ditto.
1351 (DEF_RVV_WCONVERT_U_OPS): Ditto.
1352 (DEF_RVV_WCONVERT_F_OPS): Ditto.
1353 (vfloat64m1_t): Ditto.
1354 (vfloat64m2_t): Ditto.
1355 (vfloat64m4_t): Ditto.
1356 (vfloat64m8_t): Ditto.
1357 (vint32mf2_t): Ditto.
1358 (vint32m1_t): Ditto.
1359 (vint32m2_t): Ditto.
1360 (vint32m4_t): Ditto.
1361 (vint32m8_t): Ditto.
1362 (vint64m1_t): Ditto.
1363 (vint64m2_t): Ditto.
1364 (vint64m4_t): Ditto.
1365 (vint64m8_t): Ditto.
1366 (vuint32mf2_t): Ditto.
1367 (vuint32m1_t): Ditto.
1368 (vuint32m2_t): Ditto.
1369 (vuint32m4_t): Ditto.
1370 (vuint32m8_t): Ditto.
1371 (vuint64m1_t): Ditto.
1372 (vuint64m2_t): Ditto.
1373 (vuint64m4_t): Ditto.
1374 (vuint64m8_t): Ditto.
1375 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
1376 (DEF_RVV_CONVERT_U_OPS): Ditto.
1377 (DEF_RVV_WCONVERT_I_OPS): Ditto.
1378 (DEF_RVV_WCONVERT_U_OPS): Ditto.
1379 (DEF_RVV_WCONVERT_F_OPS): Ditto.
1380 (DEF_RVV_F_OPS): Ditto.
1381 (DEF_RVV_WEXTF_OPS): Ditto.
1382 (required_extensions_p): Adjust for floating-point support.
1383 (check_required_extensions): Ditto.
1384 (unsigned_base_type_p): Ditto.
1385 (get_mode_for_bitsize): Ditto.
1386 (rvv_arg_type_info::get_base_vector_type): Ditto.
1387 (rvv_arg_type_info::get_tree_type): Ditto.
1388 * config/riscv/riscv-vector-builtins.def (v_f): New define.
1394 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
1395 (function_expander::arg_mode): New function.
1396 * config/riscv/vector-iterators.md (sof): New iterator.
1402 (fixuns_trunc): Ditto.
1404 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
1405 (@pred_<optab><mode>): Ditto.
1406 (@pred_<optab><mode>_scalar): Ditto.
1407 (@pred_<optab><mode>_reverse_scalar): Ditto.
1408 (@pred_<copysign><mode>): Ditto.
1409 (@pred_<copysign><mode>_scalar): Ditto.
1410 (@pred_mul_<optab><mode>): Ditto.
1411 (pred_mul_<optab><mode>_undef_merge): Ditto.
1412 (*pred_<madd_nmsub><mode>): Ditto.
1413 (*pred_<macc_nmsac><mode>): Ditto.
1414 (*pred_mul_<optab><mode>): Ditto.
1415 (@pred_mul_<optab><mode>_scalar): Ditto.
1416 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
1417 (*pred_<madd_nmsub><mode>_scalar): Ditto.
1418 (*pred_<macc_nmsac><mode>_scalar): Ditto.
1419 (*pred_mul_<optab><mode>_scalar): Ditto.
1420 (@pred_neg_mul_<optab><mode>): Ditto.
1421 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
1422 (*pred_<nmadd_msub><mode>): Ditto.
1423 (*pred_<nmacc_msac><mode>): Ditto.
1424 (*pred_neg_mul_<optab><mode>): Ditto.
1425 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
1426 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
1427 (*pred_<nmadd_msub><mode>_scalar): Ditto.
1428 (*pred_<nmacc_msac><mode>_scalar): Ditto.
1429 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
1430 (@pred_<misc_op><mode>): Ditto.
1431 (@pred_class<mode>): Ditto.
1432 (@pred_dual_widen_<optab><mode>): Ditto.
1433 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
1434 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
1435 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
1436 (@pred_widen_mul_<optab><mode>): Ditto.
1437 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
1438 (@pred_widen_neg_mul_<optab><mode>): Ditto.
1439 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
1440 (@pred_cmp<mode>): Ditto.
1441 (*pred_cmp<mode>): Ditto.
1442 (*pred_cmp<mode>_narrow): Ditto.
1443 (@pred_cmp<mode>_scalar): Ditto.
1444 (*pred_cmp<mode>_scalar): Ditto.
1445 (*pred_cmp<mode>_scalar_narrow): Ditto.
1446 (@pred_eqne<mode>_scalar): Ditto.
1447 (*pred_eqne<mode>_scalar): Ditto.
1448 (*pred_eqne<mode>_scalar_narrow): Ditto.
1449 (@pred_merge<mode>_scalar): Ditto.
1450 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
1451 (@pred_<fix_cvt><mode>): Ditto.
1452 (@pred_<float_cvt><mode>): Ditto.
1453 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
1454 (@pred_widen_<fix_cvt><mode>): Ditto.
1455 (@pred_widen_<float_cvt><mode>): Ditto.
1456 (@pred_extend<mode>): Ditto.
1457 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
1458 (@pred_narrow_<fix_cvt><mode>): Ditto.
1459 (@pred_narrow_<float_cvt><mode>): Ditto.
1460 (@pred_trunc<mode>): Ditto.
1461 (@pred_rod_trunc<mode>): Ditto.
1463 2023-02-22 Jakub Jelinek <jakub@redhat.com>
1465 PR middle-end/106258
1466 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
1467 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
1468 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
1469 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
1471 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
1473 * common.opt (-Wcomplain-wrong-lang): New.
1474 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
1475 * opts-common.cc (prune_options): Handle it.
1476 * opts-global.cc (complain_wrong_lang): Use it.
1478 2023-02-21 David Malcolm <dmalcolm@redhat.com>
1481 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
1483 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1486 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1488 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1489 (sibcall_value, sibcall_value_internal): Add 'use' expression
1492 2023-02-21 Richard Biener <rguenther@suse.de>
1494 PR tree-optimization/108691
1495 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
1496 assert about calls_setjmp not becoming true when it was false.
1498 2023-02-21 Richard Biener <rguenther@suse.de>
1500 PR tree-optimization/108793
1501 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
1502 Use convert operands to niter_type when computing num.
1504 2023-02-21 Richard Biener <rguenther@suse.de>
1507 2023-02-13 Richard Biener <rguenther@suse.de>
1509 PR tree-optimization/108691
1510 * tree-cfg.cc (notice_special_calls): When the CFG is built
1511 honor gimple_call_ctrl_altering_p.
1512 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
1513 temporarily if the call is not control-altering.
1514 * calls.cc (emit_call_1): Do not add REG_SETJMP if
1515 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
1517 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1519 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
1520 true if register A0 (return address register) when -Og is specified.
1522 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
1524 * config/i386/predicates.md
1525 (general_x64constmem_operand): New predicate.
1526 * config/i386/i386.md (*cmpqi_ext<mode>_1):
1527 Use nonimm_x64constmem_operand.
1528 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
1529 (*addqi_ext<mode>_1): Ditto.
1530 (*testqi_ext<mode>_1): Ditto.
1531 (*andqi_ext<mode>_1): Ditto.
1532 (*andqi_ext<mode>_1_cc): Ditto.
1533 (*<any_or:code>qi_ext<mode>_1): Ditto.
1534 (*xorqi_ext<mode>_1_cc): Ditto.
1536 2023-02-20 Jakub Jelinek <jakub2redhat.com>
1539 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
1540 gen_umadddi4_highpart{,_le}.
1542 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
1544 * config/riscv/riscv.md (prefetch): Use r instead of p for the
1546 (riscv_prefetchi_<mode>): Ditto.
1548 2023-02-20 Richard Biener <rguenther@suse.de>
1550 PR tree-optimization/108816
1551 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
1552 versioning condition split prerequesite, assert required
1555 2023-02-20 Richard Biener <rguenther@suse.de>
1557 PR tree-optimization/108825
1558 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
1559 loop-local verfication only verify there's no pending SSA
1562 2023-02-20 Richard Biener <rguenther@suse.de>
1564 PR tree-optimization/108819
1565 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
1566 we have an SSA name as iv_2 as expected.
1568 2023-02-18 Jakub Jelinek <jakub@redhat.com>
1570 PR tree-optimization/108819
1571 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
1573 2023-02-18 Jakub Jelinek <jakub@redhat.com>
1576 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
1577 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
1579 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
1580 with ix86_replace_reg_with_reg.
1582 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
1584 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
1586 2023-02-18 Xi Ruoyao <xry111@xry111.site>
1588 * config.gcc (triplet_abi): Set its value based on $with_abi,
1590 (la_canonical_triplet): Set it after $triplet_abi is set
1592 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
1593 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
1596 2023-02-18 Andrew Pinski <apinski@marvell.com>
1598 * match.pd: Remove #if GIMPLE around the
1601 2023-02-18 Andrew Pinski <apinski@marvell.com>
1603 * value-query.h (get_range_query): Return the global ranges
1606 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
1608 * doc/invoke.texi (@item -Wall): Fix typo in
1611 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
1614 * config/i386/predicates.md
1615 (nonimm_x64constmem_operand): New predicate.
1616 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
1617 (*subqi_ext<mode>_0): Ditto.
1618 (*andqi_ext<mode>_0): Ditto.
1619 (*<any_or:code>qi_ext<mode>_0): Ditto.
1621 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
1624 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
1625 int_outermode instead of GET_MODE (tem) to prevent
1626 VOIDmode from entering simplify_gen_subreg.
1628 2023-02-17 Richard Biener <rguenther@suse.de>
1630 PR tree-optimization/108821
1631 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
1632 move volatile accesses.
1634 2023-02-17 Richard Biener <rguenther@suse.de>
1636 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
1637 called on virtual operands.
1638 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
1639 ssa_undefined_value_p calls.
1640 (vn_phi_insert): Likewise.
1641 (set_ssa_val_to): Likewise.
1642 (visit_phi): Avoid extra work with equivalences for
1643 virtual operand PHIs.
1645 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1647 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
1649 (class mask_nlogic): Ditto.
1650 (class mask_notlogic): Ditto.
1651 (class vmmv): Ditto.
1652 (class vmclr): Ditto.
1653 (class vmset): Ditto.
1654 (class vmnot): Ditto.
1655 (class vcpop): Ditto.
1656 (class vfirst): Ditto.
1657 (class mask_misc): Ditto.
1658 (class viota): Ditto.
1661 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1662 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
1681 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
1682 (struct mask_alu_def): Ditto.
1684 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1685 * config/riscv/riscv-vector-builtins.cc: Ditto.
1686 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
1687 for dest it scalar RVV intrinsics.
1688 * config/riscv/vector-iterators.md (sof): New iterator.
1689 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
1690 (@pred_<optab>not<mode>): New pattern.
1691 (@pred_popcount<VB:mode><P:mode>): New pattern.
1692 (@pred_ffs<VB:mode><P:mode>): New pattern.
1693 (@pred_<misc_op><mode>): New pattern.
1694 (@pred_iota<mode>): New pattern.
1695 (@pred_series<mode>): New pattern.
1697 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1699 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
1703 * config/riscv/riscv-vector-builtins.cc: Ditto.
1705 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1706 kito-cheng <kito.cheng@sifive.com>
1708 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
1709 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
1710 (sew64_scalar_helper): New function.
1711 * config/riscv/vector.md: Normalization.
1713 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1715 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
1777 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1779 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
1780 (@pred_<optab><mode>_scalar): Ditto.
1781 (*pred_<optab><mode>_scalar): Ditto.
1782 (*pred_<optab><mode>_extended_scalar): Ditto.
1784 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1786 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
1787 (init_builtins): Ditto.
1788 (mangle_builtin_type): Ditto.
1789 (verify_type_context): Ditto.
1790 (handle_pragma_vector): Ditto.
1791 (builtin_decl): Ditto.
1792 (expand_builtin): Ditto.
1793 (const_vec_all_same_in_range_p): Ditto.
1794 (legitimize_move): Ditto.
1795 (emit_vlmax_op): Ditto.
1796 (emit_nonvlmax_op): Ditto.
1801 (get_avl_type): Ditto.
1802 (calculate_ratio): Ditto.
1803 (enum vlmul_type): Ditto.
1805 (neg_simm5_p): Ditto.
1806 (has_vi_variant_p): Ditto.
1808 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1810 * config/riscv/riscv-protos.h (simm32_p): Remove.
1811 * config/riscv/riscv-v.cc (simm32_p): Ditto.
1812 * config/riscv/vector.md: Use immediate_operand
1813 instead of riscv_vector::simm32_p.
1815 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1817 * doc/invoke.texi (Optimize Options): Reword the explanation
1818 getting minimal, maximal and default values of a parameter.
1820 2023-02-16 Patrick Palka <ppalka@redhat.com>
1822 * addresses.h: Mechanically drop 'static' from 'static inline'
1823 functions via s/^static inline/inline/g.
1825 * attribs.h: Likewise.
1826 * basic-block.h: Likewise.
1827 * bitmap.h: Likewise.
1828 * cfghooks.h: Likewise.
1829 * cfgloop.h: Likewise.
1830 * cgraph.h: Likewise.
1831 * cselib.h: Likewise.
1832 * data-streamer.h: Likewise.
1833 * debug.h: Likewise.
1835 * diagnostic.h: Likewise.
1836 * dominance.h: Likewise.
1837 * dumpfile.h: Likewise.
1838 * emit-rtl.h: Likewise.
1839 * except.h: Likewise.
1840 * expmed.h: Likewise.
1842 * fixed-value.h: Likewise.
1843 * gengtype.h: Likewise.
1844 * gimple-expr.h: Likewise.
1845 * gimple-iterator.h: Likewise.
1846 * gimple-predict.h: Likewise.
1847 * gimple-range-fold.h: Likewise.
1848 * gimple-ssa.h: Likewise.
1849 * gimple.h: Likewise.
1850 * graphite.h: Likewise.
1851 * hard-reg-set.h: Likewise.
1852 * hash-map.h: Likewise.
1853 * hash-set.h: Likewise.
1854 * hash-table.h: Likewise.
1855 * hwint.h: Likewise.
1856 * input.h: Likewise.
1857 * insn-addr.h: Likewise.
1858 * internal-fn.h: Likewise.
1859 * ipa-fnsummary.h: Likewise.
1860 * ipa-icf-gimple.h: Likewise.
1861 * ipa-inline.h: Likewise.
1862 * ipa-modref.h: Likewise.
1863 * ipa-prop.h: Likewise.
1864 * ira-int.h: Likewise.
1866 * lra-int.h: Likewise.
1868 * lto-streamer.h: Likewise.
1869 * memmodel.h: Likewise.
1870 * omp-general.h: Likewise.
1871 * optabs-query.h: Likewise.
1872 * optabs.h: Likewise.
1873 * plugin.h: Likewise.
1874 * pretty-print.h: Likewise.
1875 * range.h: Likewise.
1876 * read-md.h: Likewise.
1877 * recog.h: Likewise.
1879 * rtl-iter.h: Likewise.
1881 * sbitmap.h: Likewise.
1882 * sched-int.h: Likewise.
1883 * sel-sched-ir.h: Likewise.
1885 * sparseset.h: Likewise.
1886 * ssa-iterators.h: Likewise.
1887 * system.h: Likewise.
1888 * target-globals.h: Likewise.
1889 * target.h: Likewise.
1890 * timevar.h: Likewise.
1891 * tree-chrec.h: Likewise.
1892 * tree-data-ref.h: Likewise.
1893 * tree-iterator.h: Likewise.
1894 * tree-outof-ssa.h: Likewise.
1895 * tree-phinodes.h: Likewise.
1896 * tree-scalar-evolution.h: Likewise.
1897 * tree-sra.h: Likewise.
1898 * tree-ssa-alias.h: Likewise.
1899 * tree-ssa-live.h: Likewise.
1900 * tree-ssa-loop-manip.h: Likewise.
1901 * tree-ssa-loop.h: Likewise.
1902 * tree-ssa-operands.h: Likewise.
1903 * tree-ssa-propagate.h: Likewise.
1904 * tree-ssa-sccvn.h: Likewise.
1905 * tree-ssa.h: Likewise.
1906 * tree-ssanames.h: Likewise.
1907 * tree-streamer.h: Likewise.
1908 * tree-switch-conversion.h: Likewise.
1909 * tree-vectorizer.h: Likewise.
1911 * wide-int.h: Likewise.
1913 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1915 PR tree-optimization/108657
1916 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
1917 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
1918 is a call to internal or builtin function.
1920 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1922 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
1923 using-declaration to unhide functions.
1925 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1927 PR tree-optimization/108783
1928 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
1929 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
1930 t to curr->op. Otherwise, punt if either newop1 or newop2 are
1931 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
1933 2023-02-16 Richard Biener <rguenther@suse.de>
1935 PR tree-optimization/108791
1936 * tree-ssa-forwprop.cc (optimize_vector_load): Build
1937 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
1940 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
1943 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
1944 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
1945 (ix86_expand_prologue): Likewise.
1947 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1949 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
1951 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1953 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
1954 int248_register_operand predicate in zero_extract sub-RTX.
1955 (*cmpqi_ext<mode>_2): Ditto.
1956 (*cmpqi_ext<mode>_3): Ditto.
1957 (*cmpqi_ext<mode>_4): Ditto.
1958 (*extzvqi_mem_rex64): Ditto.
1960 (*insvqi_1_mem_rex64): Ditto.
1961 (@insv<mode>_1): Ditto.
1965 (*extendqi<SWI24:mode>_ext_1): Ditto.
1966 (*addqi_ext<mode>_1): Ditto.
1967 (*addqi_ext<mode>_2): Ditto.
1968 (*subqi_ext<mode>_2): Ditto.
1969 (*testqi_ext<mode>_1): Ditto.
1970 (*testqi_ext<mode>_2): Ditto.
1971 (*andqi_ext<mode>_1): Ditto.
1972 (*andqi_ext<mode>_1_cc): Ditto.
1973 (*andqi_ext<mode>_2): Ditto.
1974 (*<any_or:code>qi_ext<mode>_1): Ditto.
1975 (*<any_or:code>qi_ext<mode>_2): Ditto.
1976 (*xorqi_ext<mode>_1_cc): Ditto.
1977 (*negqi_ext<mode>_2): Ditto.
1978 (*ashlqi_ext<mode>_2): Ditto.
1979 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
1981 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1983 * config/i386/predicates.md (int248_register_operand):
1984 Rename from extr_register_operand.
1985 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
1986 (*extzx<mode>): Ditto.
1987 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
1988 (*ashl<mode>3_mask): Ditto.
1989 (*<any_shiftrt:insn><mode>3_mask): Ditto.
1990 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
1991 (*<any_rotate:insn><mode>3_mask): Ditto.
1992 (*<btsc><mode>_mask): Ditto.
1993 (*btr<mode>_mask): Ditto.
1994 (*jcc_bt<mode>_mask_1): Ditto.
1996 2023-02-15 Richard Biener <rguenther@suse.de>
1999 * df-core.cc (df_worklist_propagate_forward): Put later
2000 blocks on worklist and only earlier blocks on pending.
2001 (df_worklist_propagate_backward): Likewise.
2002 (df_worklist_dataflow_doublequeue): Change the iteration
2003 to process new blocks in the same iteration if that
2004 maintains the iteration order.
2006 2023-02-15 Marek Polacek <polacek@redhat.com>
2008 PR middle-end/106080
2009 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
2012 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2014 * config/riscv/predicates.md: Refine codes.
2015 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
2016 * config/riscv/riscv-v.cc: Refine codes.
2017 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
2019 (class imac): New class.
2020 (enum widen_ternop_type): New enum.
2021 (class iwmac): New class.
2023 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2024 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
2032 * config/riscv/riscv-vector-builtins.cc
2033 (function_builder::apply_predication): Adjust for multiply-add support.
2034 (function_expander::add_vundef_operand): Refine codes.
2035 (function_expander::use_ternop_insn): New function.
2036 (function_expander::use_widen_ternop_insn): Ditto.
2037 * config/riscv/riscv-vector-builtins.h: New function.
2038 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
2039 (pred_mul_<optab><mode>_undef_merge): Ditto.
2040 (*pred_<madd_nmsub><mode>): Ditto.
2041 (*pred_<macc_nmsac><mode>): Ditto.
2042 (*pred_mul_<optab><mode>): Ditto.
2043 (@pred_mul_<optab><mode>_scalar): Ditto.
2044 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
2045 (*pred_<madd_nmsub><mode>_scalar): Ditto.
2046 (*pred_<macc_nmsac><mode>_scalar): Ditto.
2047 (*pred_mul_<optab><mode>_scalar): Ditto.
2048 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
2049 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
2050 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
2051 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
2052 (@pred_widen_mul_plus<su><mode>): Ditto.
2053 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
2054 (@pred_widen_mul_plussu<mode>): Ditto.
2055 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
2056 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
2058 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2060 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
2061 (vector_all_trues_mask_operand): New predicate.
2062 (vector_undef_operand): New predicate.
2063 (ltge_operator): New predicate.
2064 (comparison_except_ltge_operator): New predicate.
2065 (comparison_except_eqge_operator): New predicate.
2066 (ge_operator): New predicate.
2067 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
2068 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
2070 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2071 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
2081 * config/riscv/riscv-vector-builtins-shapes.cc
2082 (struct return_mask_def): Adjust for compare support.
2083 * config/riscv/riscv-vector-builtins.cc
2084 (function_expander::use_compare_insn): New function.
2085 * config/riscv/riscv-vector-builtins.h
2086 (function_expander::add_integer_operand): Ditto.
2087 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
2088 * config/riscv/riscv.md: Add vector min/max attributes.
2089 * config/riscv/vector-iterators.md (xnor): New iterator.
2090 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
2091 (*pred_cmp<mode>): Ditto.
2092 (*pred_cmp<mode>_narrow): Ditto.
2093 (@pred_ltge<mode>): Ditto.
2094 (*pred_ltge<mode>): Ditto.
2095 (*pred_ltge<mode>_narrow): Ditto.
2096 (@pred_cmp<mode>_scalar): Ditto.
2097 (*pred_cmp<mode>_scalar): Ditto.
2098 (*pred_cmp<mode>_scalar_narrow): Ditto.
2099 (@pred_eqne<mode>_scalar): Ditto.
2100 (*pred_eqne<mode>_scalar): Ditto.
2101 (*pred_eqne<mode>_scalar_narrow): Ditto.
2102 (*pred_cmp<mode>_extended_scalar): Ditto.
2103 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
2104 (*pred_eqne<mode>_extended_scalar): Ditto.
2105 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
2106 (@pred_ge<mode>_scalar): Ditto.
2107 (@pred_<optab><mode>): Ditto.
2108 (@pred_n<optab><mode>): Ditto.
2109 (@pred_<optab>n<mode>): Ditto.
2110 (@pred_not<mode>): Ditto.
2112 2023-02-15 Martin Jambor <mjambor@suse.cz>
2115 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
2116 creation of non-scalar replacements even if IPA-CP knows their
2119 2023-02-15 Jakub Jelinek <jakub@redhat.com>
2123 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
2124 expander, change operand 3 to be TImode, emit maddlddi4 and
2125 umadddi4_highpart{,_le} with its low half and finally add the high
2128 2023-02-15 Martin Liska <mliska@suse.cz>
2130 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
2132 2023-02-15 Richard Biener <rguenther@suse.de>
2134 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
2135 for with_poison and alias worklist to it.
2136 (sanitize_asan_mark_poison): Likewise.
2138 2023-02-15 Richard Biener <rguenther@suse.de>
2141 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
2142 Combine bitmap test and set.
2143 (scalar_chain::add_insn): Likewise.
2144 (scalar_chain::analyze_register_chain): Remove redundant
2145 attempt to add to queue and instead strengthen assert.
2146 Sink common attempts to mark the def dual-mode.
2147 (scalar_chain::add_to_queue): Remove redundant insn bitmap
2150 2023-02-15 Richard Biener <rguenther@suse.de>
2153 * config/i386/i386-features.cc (convert_scalars_to_vector):
2154 Switch candidates bitmaps to tree view before building the chains.
2156 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2158 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
2159 "failure trying to reload" call.
2161 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2163 * gdbinit.in (phrs): New command.
2164 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
2165 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
2167 2023-02-14 David Faust <david.faust@oracle.com>
2170 * config/bpf/constraints.md (q): New memory constraint.
2171 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
2172 (zero_extendqidi2): Likewise.
2173 (zero_extendsidi2): Likewise.
2174 (*mov<MM:mode>): Likewise.
2176 2023-02-14 Andrew Pinski <apinski@marvell.com>
2178 PR tree-optimization/108355
2179 PR tree-optimization/96921
2180 * match.pd: Add pattern for "1 - bool_val".
2182 2023-02-14 Richard Biener <rguenther@suse.de>
2184 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
2185 basic block index hashing on the availability of ->cclhs.
2186 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
2187 rely on ->cclhs availability.
2188 (vn_phi_lookup): Set ->cclhs only when we are eventually
2189 going to CSE the PHI.
2190 (vn_phi_insert): Likewise.
2192 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
2194 * gimplify.cc (gimplify_save_expr): Add missing guard.
2196 2023-02-14 Richard Biener <rguenther@suse.de>
2198 PR tree-optimization/108782
2199 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
2200 Make sure we're not vectorizing an inner loop.
2202 2023-02-14 Jakub Jelinek <jakub@redhat.com>
2205 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
2206 * asan.h (asan_memfn_rtl): Declare.
2207 * asan.cc (asan_memfn_rtls): New variable.
2208 (asan_memfn_rtl): New function.
2209 * builtins.cc (expand_builtin): If
2210 param_asan_kernel_mem_intrinsic_prefix and function is
2211 kernel-{,hw}address sanitized, emit calls to
2212 __{,hw}asan_{memcpy,memmove,memset} rather than
2213 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
2214 instead of flag_sanitize & SANITIZE_ADDRESS to check if
2215 asan_intercepted_p functions shouldn't be expanded inline.
2217 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
2219 PR tree-optimization/96373
2220 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
2221 operations on the loop mask. Reject partial vectors if this isn't
2224 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
2226 PR rtl-optimization/108681
2227 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
2228 code to handle bare uses and clobbers.
2230 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
2232 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
2233 caller_save_p flag when clearing defined_p flag.
2234 (setup_reg_equiv): Ditto.
2235 * lra-constraints.cc (lra_constraints): Ditto.
2237 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
2240 * config/i386/predicates.md (extr_register_operand):
2241 New special predicate.
2242 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
2243 as operand 1 predicate.
2244 (*exzv<mode>): Ditto.
2245 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
2247 2023-02-13 Richard Biener <rguenther@suse.de>
2249 PR tree-optimization/28614
2250 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
2251 walking all edges in most cases.
2252 (vn_nary_op_insert_pieces_predicated): Avoid repeated
2253 calls to can_track_predicate_on_edge unless checking is
2255 (process_bb): Instead call it once here for each edge
2256 we register possibly multiple predicates on.
2258 2023-02-13 Richard Biener <rguenther@suse.de>
2260 PR tree-optimization/108691
2261 * tree-cfg.cc (notice_special_calls): When the CFG is built
2262 honor gimple_call_ctrl_altering_p.
2263 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
2264 temporarily if the call is not control-altering.
2265 * calls.cc (emit_call_1): Do not add REG_SETJMP if
2266 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
2268 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2271 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
2272 (struct s390_sched_state): Initialise to zero.
2273 (s390_sched_variable_issue): For better debuggability also emit
2275 (s390_sched_init): Unconditionally reset scheduler state.
2277 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
2279 * ifcvt.h (noce_if_info::cond_inverted): New field.
2280 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
2281 values when cond_inverted is true.
2282 (noce_find_if_block): Allow the condition to be inverted when
2283 handling conditional moves.
2285 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
2287 * config/s390/predicates.md (execute_operation): Use
2288 constrain_operands instead of extract_constrain_insn in order to
2289 determine wheter there exists a valid alternative.
2291 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
2293 * common/config/arc/arc-common.cc (arc_option_optimization_table):
2294 Remove millicode from list.
2296 2023-02-13 Martin Liska <mliska@suse.cz>
2298 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
2300 2023-02-13 Richard Biener <rguenther@suse.de>
2302 PR tree-optimization/106722
2303 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
2304 whether we marked a stmt.
2305 (mark_control_dependent_edges_necessary): When
2306 mark_last_stmt_necessary didn't mark any stmt make sure
2307 to mark its control dependent edges.
2308 (propagate_necessity): Likewise.
2310 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
2312 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
2313 (DWARF_FRAME_REGISTERS): New.
2314 (DWARF_REG_TO_UNWIND_COLUMN): New.
2316 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
2318 * doc/sourcebuild.texi: Remove (broken) direct reference to
2319 "The GNU configure and build system".
2321 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
2323 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
2324 gen_add3_insn to gen_rtx_SET.
2325 (riscv_adjust_libcall_cfi_epilogue): Likewise.
2327 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2329 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
2330 (class vnclip): Ditto.
2332 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2333 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
2342 * config/riscv/vector-iterators.md (su): Add instruction.
2345 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
2346 (@pred_<sat_op><mode>_scalar): Ditto.
2347 (*pred_<sat_op><mode>_scalar): Ditto.
2348 (*pred_<sat_op><mode>_extended_scalar): Ditto.
2349 (@pred_narrow_clip<v_su><mode>): Ditto.
2350 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
2352 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2354 * config/riscv/constraints.md (Wbr): Remove unused constraint.
2355 * config/riscv/predicates.md: Fix move operand predicate.
2356 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
2357 (class vncvt_x): Ditto.
2358 (class vmerge): Ditto.
2359 (class vmv_v): Ditto.
2361 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2362 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
2369 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
2370 (struct move_def): Ditto.
2372 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2373 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
2374 (DEF_RVV_WEXTU_OPS): Ditto
2375 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
2380 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
2381 * config/riscv/vector-iterators.md (nmsac):New iterator.
2382 (nmsub): New iterator.
2383 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
2384 (@pred_merge<mode>_scalar): New pattern.
2385 (*pred_merge<mode>_scalar): New pattern.
2386 (*pred_merge<mode>_extended_scalar): New pattern.
2387 (@pred_narrow_<optab><mode>): New pattern.
2388 (@pred_narrow_<optab><mode>_scalar): New pattern.
2389 (@pred_trunc<mode>): New pattern.
2391 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2393 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
2394 (class vmsbc): Ditto.
2395 (BASE): Define new class.
2396 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2397 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
2399 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
2402 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2403 * config/riscv/riscv-vector-builtins.cc
2404 (function_expander::use_exact_insn): Adjust for new support
2405 * config/riscv/riscv-vector-builtins.h
2406 (function_base::has_merge_operand_p): New function.
2407 * config/riscv/vector-iterators.md: New iterator.
2408 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
2409 (@pred_msbc<mode>): Ditto.
2410 (@pred_madc<mode>_scalar): Ditto.
2411 (@pred_msbc<mode>_scalar): Ditto.
2412 (*pred_madc<mode>_scalar): Ditto.
2413 (*pred_madc<mode>_extended_scalar): Ditto.
2414 (*pred_msbc<mode>_scalar): Ditto.
2415 (*pred_msbc<mode>_extended_scalar): Ditto.
2416 (@pred_madc<mode>_overflow): Ditto.
2417 (@pred_msbc<mode>_overflow): Ditto.
2418 (@pred_madc<mode>_overflow_scalar): Ditto.
2419 (@pred_msbc<mode>_overflow_scalar): Ditto.
2420 (*pred_madc<mode>_overflow_scalar): Ditto.
2421 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
2422 (*pred_msbc<mode>_overflow_scalar): Ditto.
2423 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
2425 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2427 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
2428 * config/riscv/riscv-v.cc (simm32_p): Ditto.
2429 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
2430 (class vsbc): Ditto.
2432 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2433 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
2435 * config/riscv/riscv-vector-builtins-shapes.cc
2436 (struct no_mask_policy_def): Ditto.
2438 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2439 * config/riscv/riscv-vector-builtins.cc
2440 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
2441 (rvv_arg_type_info::get_tree_type): Ditto.
2442 (function_expander::use_exact_insn): Ditto.
2443 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
2444 (function_base::use_mask_predication_p): New function.
2445 * config/riscv/vector-iterators.md: New iterator.
2446 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
2447 (@pred_sbc<mode>): Ditto.
2448 (@pred_adc<mode>_scalar): Ditto.
2449 (@pred_sbc<mode>_scalar): Ditto.
2450 (*pred_adc<mode>_scalar): Ditto.
2451 (*pred_adc<mode>_extended_scalar): Ditto.
2452 (*pred_sbc<mode>_scalar): Ditto.
2453 (*pred_sbc<mode>_extended_scalar): Ditto.
2455 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2457 * config/riscv/vector.md: use "zero" reg.
2459 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2461 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
2463 (class vwmulsu): Ditto.
2464 (class vwcvt): Ditto.
2465 (BASE): Add integer widening support.
2466 * config/riscv/riscv-vector-builtins-bases.h: Ditto
2467 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
2470 (vwmulu): New class.
2471 (vwmulsu): New class.
2472 (vwaddu): New class.
2473 (vwsubu): New class.
2474 (vwcvt_x): New class.
2475 (vwcvtu_x): New class.
2476 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
2478 (struct widen_alu_def): New class.
2480 * config/riscv/riscv-vector-builtins-shapes.h: New class.
2481 * config/riscv/riscv-vector-builtins.cc
2482 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
2483 (rvv_arg_type_info::get_tree_type): Ditto.
2484 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
2486 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
2488 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
2489 * config/riscv/riscv.h (X0_REGNUM): New constant.
2490 * config/riscv/vector-iterators.md: New iterators.
2491 * config/riscv/vector.md
2492 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
2494 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
2496 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
2497 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
2499 (@pred_widen_mulsu<mode>): Ditto.
2500 (@pred_widen_mulsu<mode>_scalar): Ditto.
2501 (@pred_<optab><mode>): Ditto.
2503 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2504 kito-cheng <kito.cheng@sifive.com>
2506 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
2507 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
2509 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2510 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
2514 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
2516 (DEF_RVV_FULL_V_U_OPS): Ditto.
2517 (vint8mf8_t): Ditto.
2518 (vint8mf4_t): Ditto.
2519 (vint8mf2_t): Ditto.
2524 (vint16mf4_t): Ditto.
2525 (vint16mf2_t): Ditto.
2526 (vint16m1_t): Ditto.
2527 (vint16m2_t): Ditto.
2528 (vint16m4_t): Ditto.
2529 (vint16m8_t): Ditto.
2530 (vint32mf2_t): Ditto.
2531 (vint32m1_t): Ditto.
2532 (vint32m2_t): Ditto.
2533 (vint32m4_t): Ditto.
2534 (vint32m8_t): Ditto.
2535 (vint64m1_t): Ditto.
2536 (vint64m2_t): Ditto.
2537 (vint64m4_t): Ditto.
2538 (vint64m8_t): Ditto.
2539 (vuint8mf8_t): Ditto.
2540 (vuint8mf4_t): Ditto.
2541 (vuint8mf2_t): Ditto.
2542 (vuint8m1_t): Ditto.
2543 (vuint8m2_t): Ditto.
2544 (vuint8m4_t): Ditto.
2545 (vuint8m8_t): Ditto.
2546 (vuint16mf4_t): Ditto.
2547 (vuint16mf2_t): Ditto.
2548 (vuint16m1_t): Ditto.
2549 (vuint16m2_t): Ditto.
2550 (vuint16m4_t): Ditto.
2551 (vuint16m8_t): Ditto.
2552 (vuint32mf2_t): Ditto.
2553 (vuint32m1_t): Ditto.
2554 (vuint32m2_t): Ditto.
2555 (vuint32m4_t): Ditto.
2556 (vuint32m8_t): Ditto.
2557 (vuint64m1_t): Ditto.
2558 (vuint64m2_t): Ditto.
2559 (vuint64m4_t): Ditto.
2560 (vuint64m8_t): Ditto.
2561 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
2562 (DEF_RVV_FULL_V_U_OPS): Ditto.
2563 (check_required_extensions): Add vmulh support.
2564 (rvv_arg_type_info::get_tree_type): Ditto.
2565 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
2566 (enum rvv_base_type): Ditto.
2567 * config/riscv/riscv.opt: Add 'V' extension flag.
2568 * config/riscv/vector-iterators.md (su): New iterator.
2569 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
2570 (@pred_mulh<v_su><mode>_scalar): Ditto.
2571 (*pred_mulh<v_su><mode>_scalar): Ditto.
2572 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
2574 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2576 * config/riscv/iterators.md: Add sign_extend/zero_extend.
2577 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
2579 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
2580 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
2583 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
2584 for vsext/vzext support.
2585 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
2587 (DEF_RVV_QEXTI_OPS): Ditto.
2588 (DEF_RVV_OEXTI_OPS): Ditto.
2589 (DEF_RVV_WEXTU_OPS): Ditto.
2590 (DEF_RVV_QEXTU_OPS): Ditto.
2591 (DEF_RVV_OEXTU_OPS): Ditto.
2592 (vint16mf4_t): Ditto.
2593 (vint16mf2_t): Ditto.
2594 (vint16m1_t): Ditto.
2595 (vint16m2_t): Ditto.
2596 (vint16m4_t): Ditto.
2597 (vint16m8_t): Ditto.
2598 (vint32mf2_t): Ditto.
2599 (vint32m1_t): Ditto.
2600 (vint32m2_t): Ditto.
2601 (vint32m4_t): Ditto.
2602 (vint32m8_t): Ditto.
2603 (vint64m1_t): Ditto.
2604 (vint64m2_t): Ditto.
2605 (vint64m4_t): Ditto.
2606 (vint64m8_t): Ditto.
2607 (vuint16mf4_t): Ditto.
2608 (vuint16mf2_t): Ditto.
2609 (vuint16m1_t): Ditto.
2610 (vuint16m2_t): Ditto.
2611 (vuint16m4_t): Ditto.
2612 (vuint16m8_t): Ditto.
2613 (vuint32mf2_t): Ditto.
2614 (vuint32m1_t): Ditto.
2615 (vuint32m2_t): Ditto.
2616 (vuint32m4_t): Ditto.
2617 (vuint32m8_t): Ditto.
2618 (vuint64m1_t): Ditto.
2619 (vuint64m2_t): Ditto.
2620 (vuint64m4_t): Ditto.
2621 (vuint64m8_t): Ditto.
2622 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
2623 (DEF_RVV_QEXTI_OPS): Ditto.
2624 (DEF_RVV_OEXTI_OPS): Ditto.
2625 (DEF_RVV_WEXTU_OPS): Ditto.
2626 (DEF_RVV_QEXTU_OPS): Ditto.
2627 (DEF_RVV_OEXTU_OPS): Ditto.
2628 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
2630 (rvv_arg_type_info::get_tree_type): Ditto.
2631 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
2632 * config/riscv/vector-iterators.md (z): New attribute.
2633 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
2634 (@pred_<optab><mode>_vf4): Ditto.
2635 (@pred_<optab><mode>_vf8): Ditto.
2637 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2639 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
2640 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
2641 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
2642 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2643 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
2647 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
2652 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
2653 (@pred_<optab><mode>_scalar): New pattern.
2654 (*pred_<optab><mode>_scalar): New pattern.
2655 (*pred_<optab><mode>_extended_scalar): New pattern.
2657 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2659 * config/riscv/iterators.md: Add neg and not.
2660 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
2662 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2663 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
2684 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
2685 (struct alu_def): Ditto.
2687 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2688 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
2689 * config/riscv/vector-iterators.md: New iterator.
2690 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
2692 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2694 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
2696 2023-02-11 Jakub Jelinek <jakub@redhat.com>
2699 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
2700 item->offset bit position is too large to be representable as
2701 unsigned int byte position.
2703 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
2705 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
2707 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2709 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
2710 valid_combine only when ira_use_lra_p is true.
2712 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2714 * params.opt (ira-simple-lra-insn-threshold): Add new param.
2715 * ira.cc (ira): Use the param to switch on simple LRA.
2717 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2719 PR tree-optimization/108687
2720 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
2721 back to RFD_NONE mode for calculations.
2722 (ranger_cache::propagate_cache): Call the internal edge range API
2723 with RFD_READ_ONLY instead of changing the external routine.
2725 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2727 PR tree-optimization/108520
2728 * gimple-range-infer.cc (check_assume_func): Invoke
2729 gimple_range_global directly instead using global_range_query.
2730 * value-query.cc (get_range_global): Add function context and
2731 avoid calling nonnull_arg_p if not cfun.
2732 (gimple_range_global): Add function context pointer.
2733 * value-query.h (imple_range_global): Add function context.
2735 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2737 * config/riscv/constraints.md (Wdm): Adjust constraint.
2738 (Wbr): New constraint.
2739 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
2740 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
2741 (emit_vlmax_op): New function.
2742 (emit_nonvlmax_op): Ditto.
2744 (neg_simm5_p): Ditto.
2745 (has_vi_variant_p): Ditto.
2746 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
2747 (emit_vlmax_op): New function.
2748 (emit_nonvlmax_op): Ditto.
2749 (expand_const_vector): Adjust function.
2750 (legitimize_move): Ditto.
2751 (simm32_p): New function.
2753 (neg_simm5_p): Ditto.
2754 (has_vi_variant_p): Ditto.
2755 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
2757 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2758 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
2761 (vminu): Remove signed cases.
2763 (vdiv): Remove unsigned cases.
2765 (vdivu): Remove signed cases.
2774 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
2775 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
2776 * config/riscv/vector-iterators.md: New iterators.
2777 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
2779 (@pred_<optab><mode>_scalar): New pattern.
2780 (@pred_sub<mode>_reverse_scalar): Ditto.
2781 (*pred_<optab><mode>_scalar): Ditto.
2782 (*pred_<optab><mode>_extended_scalar): Ditto.
2783 (*pred_sub<mode>_reverse_scalar): Ditto.
2784 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
2786 2023-02-10 Richard Biener <rguenther@suse.de>
2788 PR tree-optimization/108724
2789 * tree-vect-stmts.cc (vectorizable_operation): Avoid
2790 using word_mode vectors when vector lowering will
2791 decompose them to elementwise operations.
2793 2023-02-10 Jakub Jelinek <jakub@redhat.com>
2796 2023-02-09 Martin Liska <mliska@suse.cz>
2799 * doc/extend.texi: Document that the function
2800 does not work correctly for old VIA processors.
2802 2023-02-10 Andrew Pinski <apinski@marvell.com>
2803 Andrew Macleod <amacleod@redhat.com>
2805 PR tree-optimization/108684
2806 * tree-ssa-dce.cc (simple_dce_from_worklist):
2807 Check all ssa names and not just non-vdef ones
2808 before accepting the inline-asm.
2809 Call unlink_stmt_vdef on the statement before
2812 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
2814 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2815 * ira.cc (validate_equiv_mem): Check memref address variance.
2816 (no_equiv): Clear caller_save_p flag.
2817 (update_equiv_regs): Define caller save equivalence for
2819 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2820 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2821 call_save_p. Use caller save equivalence depending on the arg.
2822 (split_reg): Adjust the call.
2824 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2827 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
2828 (cpu_indicator_init): Call get_available_features for all CPUs with
2829 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
2832 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2834 PR tree-optimization/108688
2835 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
2836 of BIT_INSERT_EXPR extracting exactly all inserted bits even
2837 when without mode precision. Formatting fixes.
2839 2023-02-09 Andrew Pinski <apinski@marvell.com>
2841 PR tree-optimization/108688
2842 * match.pd (bit_field_ref [bit_insert]): Avoid generating
2843 BIT_FIELD_REFs of non-mode-precision integral operands.
2845 2023-02-09 Martin Liska <mliska@suse.cz>
2848 * doc/extend.texi: Document that the function
2849 does not work correctly for old VIA processors.
2851 2023-02-09 Andreas Schwab <schwab@suse.de>
2853 * lto-wrapper.cc (merge_and_complain): Handle
2854 -funwind-tables and -fasynchronous-unwind-tables.
2855 (append_compiler_options): Likewise.
2857 2023-02-09 Richard Biener <rguenther@suse.de>
2859 PR tree-optimization/26854
2860 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
2861 view around insert_updated_phi_nodes_for.
2862 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
2864 (walk_aliased_vdefs_1): Likewise.
2866 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2868 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
2870 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2873 * config.gcc (tm_mlib_file): Define new variable.
2875 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2877 PR tree-optimization/108692
2878 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
2879 widened_code which is different from code, don't call
2880 vect_look_through_possible_promotion but instead just check op is
2881 SSA_NAME with integral type for which vect_is_simple_use is true
2882 and call set_op on this_unprom.
2884 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
2886 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
2888 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
2890 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
2891 to 'aarch_ra_sign_key'.
2892 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
2894 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
2895 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
2896 * config/arm/arm.opt: Define.
2898 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
2900 PR tree-optimization/108316
2901 * tree-vect-stmts.cc (get_load_store_type): When using
2902 internal functions for gather/scatter, make sure that the type
2903 of the offset argument is consistent with the offset vector type.
2905 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
2908 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2910 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2911 * ira.cc (validate_equiv_mem): Check memref address variance.
2912 (update_equiv_regs): Define caller save equivalence for
2914 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2915 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2916 call_save_p. Use caller save equivalence depending on the arg.
2917 (split_reg): Adjust the call.
2919 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2921 * tree.def (SAD_EXPR): Remove outdated comment about missing
2924 2023-02-07 Marek Polacek <polacek@redhat.com>
2926 * doc/invoke.texi: Update -fchar8_t documentation.
2928 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2930 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2931 * ira.cc (validate_equiv_mem): Check memref address variance.
2932 (update_equiv_regs): Define caller save equivalence for
2934 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2935 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2936 call_save_p. Use caller save equivalence depending on the arg.
2937 (split_reg): Adjust the call.
2939 2023-02-07 Richard Biener <rguenther@suse.de>
2941 PR tree-optimization/26854
2942 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
2943 instead of immediate uses.
2945 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2947 PR tree-optimization/106923
2948 * ipa-split.cc (execute_split_functions): Don't split returns_twice
2951 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2953 PR tree-optimization/106433
2954 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
2955 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
2957 2023-02-07 Jan Hubicka <jh@suse.cz>
2959 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
2962 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
2964 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
2965 (process_asm): Create a constructor for GCN_STACK_SIZE.
2966 (main): Parse the -mstack-size option.
2968 2023-02-06 Alex Coplan <alex.coplan@arm.com>
2971 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
2972 Use correct constraint for operand 3.
2974 2023-02-06 Martin Jambor <mjambor@suse.cz>
2976 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
2978 2023-02-06 Xi Ruoyao <xry111@xry111.site>
2980 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
2981 New define_int_iterator.
2982 (bytepick_d_ashift_amount): Likewise.
2983 (bytepick_imm): New define_int_attr.
2984 (bytepick_w_lshiftrt_amount): Likewise.
2985 (bytepick_d_lshiftrt_amount): Likewise.
2986 (bytepick_w_<bytepick_imm>): New define_insn template.
2987 (bytepick_w_<bytepick_imm>_extend): Likewise.
2988 (bytepick_d_<bytepick_imm>): Likewise.
2989 (bytepick_w): Remove unused define_insn.
2990 (bytepick_d): Likewise.
2991 (UNSPEC_BYTEPICK_W): Remove unused unspec.
2992 (UNSPEC_BYTEPICK_D): Likewise.
2993 * config/loongarch/predicates.md (const_0_to_3_operand):
2994 Remove unused define_predicate.
2995 (const_0_to_7_operand): Likewise.
2997 2023-02-06 Jakub Jelinek <jakub@redhat.com>
2999 PR tree-optimization/108655
3000 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
3001 or -fsanitize=unreachable -fsanitize-trap=unreachable return
3002 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
3004 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
3006 * doc/install.texi (Specific): Remove PW32.
3008 2023-02-03 Jakub Jelinek <jakub@redhat.com>
3010 PR tree-optimization/108647
3011 * range-op.cc (operator_equal::op1_range,
3012 operator_not_equal::op1_range): Don't test op2 bound
3013 equality if op2.undefined_p (), instead set_varying.
3014 (operator_lt::op1_range, operator_le::op1_range,
3015 operator_gt::op1_range, operator_ge::op1_range): Return false if
3017 (operator_lt::op2_range, operator_le::op2_range,
3018 operator_gt::op2_range, operator_ge::op2_range): Return false if
3021 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3023 PR tree-optimization/108639
3024 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
3026 (irange::operator==): Same.
3028 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3030 PR tree-optimization/108647
3031 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
3032 (foperator_lt::op2_range): Same.
3033 (foperator_le::op1_range): Same.
3034 (foperator_le::op2_range): Same.
3035 (foperator_gt::op1_range): Same.
3036 (foperator_gt::op2_range): Same.
3037 (foperator_ge::op1_range): Same.
3038 (foperator_ge::op2_range): Same.
3039 (foperator_unordered_lt::op1_range): Same.
3040 (foperator_unordered_lt::op2_range): Same.
3041 (foperator_unordered_le::op1_range): Same.
3042 (foperator_unordered_le::op2_range): Same.
3043 (foperator_unordered_gt::op1_range): Same.
3044 (foperator_unordered_gt::op2_range): Same.
3045 (foperator_unordered_ge::op1_range): Same.
3046 (foperator_unordered_ge::op2_range): Same.
3048 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
3050 PR tree-optimization/107570
3051 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
3053 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
3055 * doc/gm2.texi (Internals): Remove from menu.
3056 (Using): Comment out ifnohtml conditional.
3057 (Documentation): Use gcc url.
3058 (License): Node simplified.
3059 (Copying): New node. Include gpl_v3_without_node.
3060 (Contributing): Node simplified.
3061 (Internals): Commented out.
3062 (Libraries): Node simplified.
3067 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
3069 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
3071 (mve_vqshluq_m_n_s<mode>): Likewise.
3072 (mve_vshlq_m_<supf><mode>): Likewise.
3073 (mve_vsriq_m_n_<supf><mode>): Likewise.
3074 (mve_vsubq_m_<supf><mode>): Likewise.
3076 2023-02-03 Martin Jambor <mjambor@suse.cz>
3079 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
3080 when comparing to an IPA-CP value.
3081 (dump_list_of_param_indices): New function.
3082 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
3083 Dump removed candidates using dump_list_of_param_indices.
3084 * ipa-param-manipulation.cc
3085 (ipa_param_body_adjustments::modify_expression): Add assert checking
3086 sizes of a VIEW_CONVERT_EXPR will match.
3087 (ipa_param_body_adjustments::modify_assignment): Likewise.
3089 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
3091 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
3092 * config/riscv/riscv.cc: Ditto.
3094 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3096 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
3100 * config/riscv/vector.md: Ditto.
3102 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3104 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
3105 * config/riscv/riscv-vector-builtins-bases.cc: New class.
3106 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
3109 * config/riscv/riscv-vector-builtins.cc: Ditto.
3110 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
3112 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
3114 * toplev.cc (toplev::main): Only print the version information header
3115 from toplevel main().
3117 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
3119 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
3120 cond_{ashl|ashr|lshr}
3122 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3124 PR rtl-optimization/108086
3125 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
3126 Adjust size-related commentary accordingly.
3128 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3130 PR rtl-optimization/108508
3131 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
3132 the splay tree search gives the first clobber in the second group,
3133 make sure that the root of the first clobber group is updated
3134 correctly. Enter the new clobber group into the definition splay
3137 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
3139 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
3140 Fix finding best match score.
3142 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3145 PR rtl-optimization/108463
3147 * cselib.cc (cselib_current_insn): Move declaration earlier.
3148 (cselib_hasher::equal): For debug only locs, temporarily override
3149 cselib_current_insn to their l->setting_insn for the
3150 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
3151 promote some debug locs.
3152 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
3153 when using cselib call cselib_lookup_from_insn on the address but
3154 don't substitute it.
3156 2023-02-02 Richard Biener <rguenther@suse.de>
3158 PR middle-end/108625
3159 * genmatch.cc (expr::gen_transform): Also disallow resimplification
3160 from pushing to lseq with force_leaf.
3161 (dt_simplify::gen_1): Likewise.
3163 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
3165 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
3166 (struct kernargs): Replace the common content with kernargs_abi.
3167 (struct heap): Delete.
3168 (main): Read GCN_STACK_SIZE envvar.
3169 Allocate space for the device stacks.
3170 Write the new kernargs fields.
3171 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
3172 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
3173 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
3174 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
3175 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
3176 Set up the stacks from the values in the kernargs, not private.
3177 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
3178 (gcn_hsa_declare_function_name): Turn off the private segment.
3179 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
3180 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
3181 * config/gcn/gcn.opt (mstack-size): Change the description.
3183 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3186 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
3187 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
3188 addressing MVE predicate modes.
3189 (mve_bool_vec_to_const): Change to represent correct MVE predicate
3191 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
3193 (arm_vector_mode_supported_p): Likewise.
3194 (arm_mode_to_pred_mode): Add V2QI.
3195 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
3197 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
3198 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
3199 (v2qi_UP): New macro.
3200 (v4bi_UP): New macro.
3201 (v8bi_UP): New macro.
3202 (v16bi_UP): New macro.
3203 (arm_expand_builtin_args): Make it able to expand the new predicate
3205 * config/arm/arm-modes.def (V2QI): New mode.
3206 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
3207 Pred4x4_t): Remove unused predicate builtin types.
3208 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
3209 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
3210 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
3211 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
3212 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
3213 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
3214 of MODE_VECTOR_BOOL.
3215 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
3216 (MVE_VPRED): Likewise.
3217 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
3218 (MVE_vctp): New mode attribute.
3222 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
3223 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
3225 (mve_vpnothi): Rename this...
3226 (mve_vpnotv16bi): ... to this.
3227 (mve_vctp<mode1>q_mhi): Rename this...
3228 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
3229 (mve_vldrdq_gather_base_z_<supf>v2di,
3230 mve_vldrdq_gather_offset_z_<supf>v2di,
3231 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
3232 mve_vstrdq_scatter_base_p_<supf>v2di,
3233 mve_vstrdq_scatter_offset_p_<supf>v2di,
3234 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
3235 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
3236 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
3237 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
3238 mve_vldrdq_gather_base_wb_z_<supf>v2di,
3239 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
3240 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
3242 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
3244 (VCTP): ... with this.
3245 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
3246 (VCTP_M): ... with this.
3247 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
3248 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
3250 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3253 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
3254 (arm_modes_tieable_p): Make MVE predicate modes tieable.
3255 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
3256 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
3257 simplify_subreg to simplify subregs where the outermode is not scalar.
3259 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
3262 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
3263 new qualifiers parameter and use unsigned short type for MVE predicate.
3264 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
3266 (arm_init_crypto_builtins): Likewise.
3268 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3271 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
3272 * internal-fn.def (TRAP): Remove.
3273 * internal-fn.cc (expand_TRAP): Remove.
3274 * tree.cc (build_common_builtin_nodes): Define
3275 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
3276 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
3277 instead of BUILT_IN_TRAP.
3278 * gimple.cc (gimple_build_builtin_unreachable): Remove
3279 emitting internal function for BUILT_IN_TRAP.
3280 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
3281 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
3282 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
3283 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
3284 BUILT_IN_UNREACHABLE_TRAP.
3285 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
3286 * tree-cfg.cc (verify_gimple_call,
3287 pass_warn_function_return::execute): Likewise.
3288 * attribs.cc (decl_attributes): Don't report exclusions on
3289 BUILT_IN_UNREACHABLE_TRAP either.
3291 2023-02-02 liuhongt <hongtao.liu@intel.com>
3293 PR tree-optimization/108601
3294 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
3296 (vectorizable_nonlinear_induction): Remove
3297 vect_can_peel_nonlinear_iv_p.
3298 (vect_can_peel_nonlinear_iv_p): Don't peel
3299 nonlinear iv(mult or shift) for epilog when vf is not
3300 constant and moved the defination to ..
3301 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
3304 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3306 PR middle-end/108435
3307 * tree-nested.cc (convert_nonlocal_omp_clauses)
3308 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
3309 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
3310 before calling declare_vars.
3311 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
3312 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
3313 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
3314 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
3316 2023-02-01 Tamar Christina <tamar.christina@arm.com>
3318 * common/config/aarch64/aarch64-common.cc
3319 (struct aarch64_option_extension): Add native_detect and document struct
3321 (all_extensions): Set new field native_detect.
3322 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
3325 2023-02-01 Martin Liska <mliska@suse.cz>
3327 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
3330 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
3332 PR tree-optimization/108356
3333 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
3334 do a search of the DOM tree for a range.
3336 2023-02-01 Martin Liska <mliska@suse.cz>
3339 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
3340 ony non-null values.
3341 * ipa.cc (walk_polymorphic_call_targets): Likewise.
3343 2023-02-01 Martin Liska <mliska@suse.cz>
3346 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
3349 2023-02-01 Jakub Jelinek <jakub@redhat.com>
3352 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
3353 subregs in DEBUG_INSNs.
3355 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
3357 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
3359 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3361 * config/s390/s390.cc (s390_restore_gpr_p): New function.
3362 (s390_preserve_gpr_arg_in_range_p): New function.
3363 (s390_preserve_gpr_arg_p): New function.
3364 (s390_preserve_fpr_arg_p): New function.
3365 (s390_register_info_stdarg_fpr): Rename to ...
3366 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
3367 (s390_register_info_stdarg_gpr): Rename to ...
3368 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
3369 (s390_register_info): Use the renamed functions above.
3370 (s390_optimize_register_info): Likewise.
3371 (save_fpr): Generate CFI for -mpreserve-args.
3372 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
3373 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
3374 (s390_optimize_prologue): Likewise.
3375 * config/s390/s390.opt: New option -mpreserve-args
3377 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3379 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
3380 (restore_gprs): Likewise.
3381 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
3382 frame pointer if a frame-pointer is used.
3383 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
3384 * config/s390/s390.md (stack_tie): Add a register operand and
3386 (@stack_tie<mode>): ... this.
3388 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
3390 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
3392 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
3393 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
3395 2023-02-01 Richard Biener <rguenther@suse.de>
3397 PR middle-end/108500
3398 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
3399 with tree traversal algorithm.
3401 2023-02-01 Jason Merrill <jason@redhat.com>
3403 * doc/invoke.texi: Document -Wno-changes-meaning.
3405 2023-02-01 David Malcolm <dmalcolm@redhat.com>
3407 * doc/invoke.texi (Static Analyzer Options): Add notes about
3408 limitations of -fanalyzer.
3410 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3412 * config/riscv/constraints.md (vj): New.
3414 * config/riscv/iterators.md: Add more opcode.
3415 * config/riscv/predicates.md (vector_arith_operand): New.
3416 (vector_neg_arith_operand): New.
3417 (vector_shift_operand): New.
3418 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
3419 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
3436 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
3453 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
3454 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
3455 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
3456 (DEF_RVV_U_OPS): New.
3457 (rvv_arg_type_info::get_base_vector_type): Handle
3458 RVV_BASE_shift_vector.
3459 (rvv_arg_type_info::get_tree_type): Ditto.
3460 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
3461 RVV_BASE_shift_vector.
3462 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
3463 * config/riscv/vector-iterators.md: Handle more opcode.
3464 * config/riscv/vector.md (@pred_<optab><mode>): New.
3466 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
3469 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
3472 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
3474 PR tree-optimization/108608
3475 * tree-vect-loop.cc (vect_transform_reduction): Handle single
3476 def-use cycles that involve function calls rather than tree codes.
3478 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3480 PR tree-optimization/108385
3481 * gimple-range-gori.cc (gori_compute::compute_operand_range):
3482 Allow VARYING computations to continue if there is a relation.
3483 * range-op.cc (pointer_plus_operator::op2_range): New.
3485 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3487 PR tree-optimization/108359
3488 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
3489 (range_operator::fold_range): If op1 is equivalent to op2 then
3490 invoke new fold_in_parts_equiv to operate on sub-components.
3491 * range-op.h (wi_fold_in_parts_equiv): New prototype.
3493 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
3495 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
3496 not abort calculations if there is a valid relation available.
3497 (gori_compute::refine_using_relation): Pass correct relation trio.
3498 (gori_compute::compute_operand1_range): Create trio and use it.
3499 (gori_compute::compute_operand2_range): Ditto.
3500 * range-op.cc (operator_plus::op1_range): Use correct trio member.
3501 (operator_minus::op1_range): Use correct trio member.
3502 * value-relation.cc (value_relation::create_trio): New.
3503 * value-relation.h (value_relation::create_trio): New prototype.
3505 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3508 * config/i386/i386-expand.cc
3509 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
3510 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
3511 equal to bitsize of mode.
3513 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3515 PR rtl-optimization/108596
3516 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
3517 ends with asm goto and has a crossing fallthrough edge to the same bb
3518 that contains at least one of its labels by restoring EDGE_CROSSING
3519 flag even on possible edge from cur_bb to new_bb successor.
3521 2023-01-31 Jakub Jelinek <jakub@redhat.com>
3524 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
3525 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
3526 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
3527 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
3528 uninitialized automatic variable __W.
3530 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
3532 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
3534 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3536 * config/riscv/riscv-protos.h (get_vector_mode): New function.
3537 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
3538 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
3539 (class loadstore): Adjust for indexed loads/stores support.
3541 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
3542 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
3558 * config/riscv/riscv-vector-builtins-shapes.cc
3559 (struct indexed_loadstore_def): New class.
3561 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3562 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
3563 for indexed loads/stores support.
3564 (check_required_extensions): Ditto.
3565 (rvv_arg_type_info::get_base_vector_type): New function.
3566 (rvv_arg_type_info::get_tree_type): Ditto.
3567 (function_builder::add_unique_function): Adjust for indexed loads/stores
3569 (function_expander::use_exact_insn): New function.
3570 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
3571 indexed loads/stores support.
3572 (struct rvv_arg_type_info): Ditto.
3573 (function_expander::index_mode): New function.
3574 (function_base::apply_tail_policy_p): Ditto.
3575 (function_base::apply_mask_policy_p): Ditto.
3576 * config/riscv/vector-iterators.md (unspec): New unspec.
3577 * config/riscv/vector.md (unspec): Ditto.
3578 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
3580 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
3581 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
3582 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
3583 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
3584 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
3585 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
3586 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
3587 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
3588 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
3589 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
3590 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
3591 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
3592 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
3594 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
3596 * config.gcc: Recognize x86_64-*-gnu* targets and include
3598 * config/i386/gnu64.h: Define configuration for new target
3599 including ld.so location.
3601 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
3603 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
3604 ampere1a to include SM4.
3606 2023-01-30 Andrew Pinski <apinski@marvell.com>
3608 PR tree-optimization/108582
3609 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
3610 for middlebb to have no phi nodes.
3612 2023-01-30 Richard Biener <rguenther@suse.de>
3614 PR tree-optimization/108574
3615 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
3616 sameval and def, ignore the equivalence if there's the
3617 danger of oscillating between two values.
3619 2023-01-30 Andreas Schwab <schwab@suse.de>
3621 * common/config/riscv/riscv-common.cc
3622 (riscv_option_optimization_table)
3623 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
3624 -fasynchronous-unwind-tables and -funwind-tables.
3625 * config.gcc (riscv*-*-linux*): Define
3626 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
3628 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
3630 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
3631 value of includedir.
3633 2023-01-30 Richard Biener <rguenther@suse.de>
3636 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
3639 2023-01-30 liuhongt <hongtao.liu@intel.com>
3641 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
3642 * doc/invoke.texi: Ditto.
3644 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
3646 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
3647 (stmt_may_terminate_function_p): If assuming return or EH
3648 volatile asm is safe.
3649 (find_always_executed_bbs): Fix handling of terminating BBS and
3650 infinite loops; add debug output.
3651 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
3653 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
3655 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
3656 off-by-one in checking the permissible shift-amount.
3658 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3660 * doc/extend.texi (Named Address Spaces): Update link to the
3663 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3665 * doc/standards.texi (Standards): Fix markup.
3667 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3669 * doc/standards.texi (Standards): Update link to Objective-C book.
3671 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3673 * doc/invoke.texi (Instrumentation Options): Update reference to
3676 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
3678 * doc/standards.texi: Update Go1 link.
3680 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3682 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
3683 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
3686 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3687 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
3689 * config/riscv/riscv-vector-builtins.cc
3690 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
3691 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
3692 (@pred_strided_store<mode>): Ditto.
3694 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3696 * config/riscv/vector.md (tail_policy_op_idx): Remove.
3697 (mask_policy_op_idx): Remove.
3698 (avl_type_op_idx): Remove.
3700 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3702 PR tree-optimization/96373
3703 * tree.h (sign_mask_for): Declare.
3704 * tree.cc (sign_mask_for): New function.
3705 (signed_or_unsigned_type_for): For vector types, try to use the
3706 related_int_vector_mode.
3707 * genmatch.cc (commutative_op): Handle conditional internal functions.
3708 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
3710 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3712 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
3713 Use the likely minimum VF when bounding the denominators to
3714 the estimated number of iterations.
3716 2023-01-27 Richard Biener <rguenther@suse.de>
3719 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
3720 and -Ofast FP environment side-effects.
3722 2023-01-27 Richard Biener <rguenther@suse.de>
3725 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3726 Don't add crtfastmath.o for -shared.
3728 2023-01-27 Richard Biener <rguenther@suse.de>
3731 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
3734 2023-01-27 Richard Biener <rguenther@suse.de>
3737 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
3738 crtfastmath.o for -shared.
3740 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3742 PR tree-optimization/108306
3743 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
3744 varying for shifts that are always out of void range.
3745 (operator_rshift::fold_range): Return [0, 0] not
3746 varying for shifts that are always out of void range.
3748 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3750 PR tree-optimization/108447
3751 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
3752 Do not attempt to fold HONOR_NAN types.
3754 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3756 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
3757 Remove _m suffix for "vop_m" C++ overloaded API name.
3759 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3761 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
3762 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3763 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
3765 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
3766 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
3774 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
3775 (rvv_arg_type_info::get_tree_type): Ditto.
3776 (function_expander::use_contiguous_load_insn): Ditto.
3777 * config/riscv/vector.md (@pred_store<mode>): Ditto.
3779 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3781 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
3782 (vsetvl_discard_result_insn_p): New function.
3783 (reg_killed_by_bb_p): rename to find_reg_killed_by.
3784 (find_reg_killed_by): New name.
3785 (get_vl): allow it to be called by more functions.
3786 (has_vsetvl_killed_avl_p): Add condition.
3787 (get_avl): allow it to be called by more functions.
3788 (insn_should_be_added_p): New function.
3789 (get_all_nonphi_defs): Refine function.
3790 (get_all_sets): Ditto.
3791 (get_same_bb_set): New function.
3792 (any_insn_in_bb_p): Ditto.
3793 (any_set_in_bb_p): Ditto.
3794 (get_vl_vtype_info): Add VLMAX forward optimization.
3795 (source_equal_p): Fix issues.
3796 (extract_single_source): Refine.
3797 (avl_info::multiple_source_equal_p): New function.
3798 (avl_info::operator==): Adjust for final version.
3799 (vl_vtype_info::operator==): Ditto.
3800 (vl_vtype_info::same_avl_p): Ditto.
3801 (vector_insn_info::parse_insn): Ditto.
3802 (vector_insn_info::available_p): New function.
3803 (vector_insn_info::merge): Adjust for final version.
3804 (vector_insn_info::dump): Add hard_empty.
3805 (pass_vsetvl::hard_empty_block_p): New function.
3806 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
3807 (pass_vsetvl::forward_demand_fusion): Ditto.
3808 (pass_vsetvl::demand_fusion): Ditto.
3809 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
3810 (pass_vsetvl::compute_local_properties): Adjust for final version.
3811 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
3812 (pass_vsetvl::refine_vsetvls): Ditto.
3813 (pass_vsetvl::commit_vsetvls): Ditto.
3814 (pass_vsetvl::propagate_avl): New function.
3815 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
3816 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
3818 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3821 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
3824 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3827 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
3828 redirection of calls to __builtin_trap in addition to redirection
3829 to __builtin_unreachable.
3831 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3833 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
3835 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3837 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
3838 (emit_vsetvl_insn): Ditto.
3840 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3842 * config/riscv/vector.md: Fix constraints.
3844 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3846 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
3848 2023-01-27 Patrick Palka <ppalka@redhat.com>
3849 Jakub Jelinek <jakub@redhat.com>
3851 * tree-core.h (tree_code_type, tree_code_length): For
3852 C++17 and later, add inline keyword, otherwise don't define
3853 the arrays, but declare extern arrays.
3854 * tree.cc (tree_code_type, tree_code_length): Define these
3855 arrays for C++14 and older.
3857 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3859 * config/riscv/riscv-vsetvl.h: Change it into public.
3861 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3863 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
3866 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3868 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
3870 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3872 * config/riscv/vector.md: Fix incorrect attributes.
3874 2023-01-27 Richard Biener <rguenther@suse.de>
3877 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3878 Don't add crtfastmath.o for -shared.
3880 2023-01-27 Alexandre Oliva <oliva@gnu.org>
3882 * doc/options.texi (option, RejectNegative): Mention that
3883 -g-started options are also implicitly negatable.
3885 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
3887 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
3888 Use get_typenode_from_name to get fixed-width integer type
3890 * config/riscv/riscv-vector-builtins.def: Update define with
3891 fixed-width integer type nodes.
3893 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3895 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
3896 (real_insn_and_same_bb_p): New function.
3897 (same_bb_and_after_or_equal_p): Remove it.
3898 (before_p): New function.
3899 (reg_killed_by_bb_p): Ditto.
3900 (has_vsetvl_killed_avl_p): Ditto.
3901 (get_vl): Move location so that we can call it.
3902 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
3903 (available_occurrence_p): Ditto.
3904 (dominate_probability_p): Remove it.
3905 (can_backward_propagate_p): Remove it.
3906 (get_all_nonphi_defs): New function.
3907 (get_all_predecessors): Ditto.
3908 (any_insn_in_bb_p): Ditto.
3909 (insert_vsetvl): Adjust AVL REG.
3910 (source_equal_p): New function.
3911 (extract_single_source): Ditto.
3912 (avl_info::single_source_equal_p): Ditto.
3913 (avl_info::operator==): Adjust for AVL=REG.
3914 (vl_vtype_info::same_avl_p): Ditto.
3915 (vector_insn_info::set_demand_info): Remove it.
3916 (vector_insn_info::compatible_p): Adjust for AVL=REG.
3917 (vector_insn_info::compatible_avl_p): New function.
3918 (vector_insn_info::merge): Adjust AVL=REG.
3919 (vector_insn_info::dump): Ditto.
3920 (pass_vsetvl::merge_successors): Remove it.
3921 (enum fusion_type): New enum.
3922 (pass_vsetvl::get_backward_fusion_type): New function.
3923 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
3924 (pass_vsetvl::forward_demand_fusion): Ditto.
3925 (pass_vsetvl::demand_fusion): Ditto.
3926 (pass_vsetvl::prune_expressions): Ditto.
3927 (pass_vsetvl::compute_local_properties): Ditto.
3928 (pass_vsetvl::cleanup_vsetvls): Ditto.
3929 (pass_vsetvl::commit_vsetvls): Ditto.
3930 (pass_vsetvl::init): Ditto.
3931 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
3932 (enum merge_type): New enum.
3934 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3936 * config/riscv/riscv-vsetvl.cc
3937 (vector_infos_manager::vector_infos_manager): Add probability.
3938 (vector_infos_manager::dump): Ditto.
3939 (pass_vsetvl::compute_probabilities): Ditto.
3940 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
3942 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3944 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
3945 (vector_insn_info::merge): Ditto.
3946 (vector_insn_info::dump): Ditto.
3947 (pass_vsetvl::merge_successors): Ditto.
3948 (pass_vsetvl::backward_demand_fusion): Ditto.
3949 (pass_vsetvl::forward_demand_fusion): Ditto.
3950 (pass_vsetvl::commit_vsetvls): Ditto.
3951 * config/riscv/riscv-vsetvl.h: Ditto.
3953 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3955 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
3958 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3960 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
3962 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3964 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
3965 Add pre-check for redundant flow.
3967 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3969 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
3970 (vector_infos_manager::free_bitmap_vectors): Ditto.
3971 (pass_vsetvl::pre_vsetvl): Adjust codes.
3972 * config/riscv/riscv-vsetvl.h: New function declaration.
3974 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3976 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
3977 (vector_insn_info::set_demand_info): New function.
3978 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
3979 (pass_vsetvl::merge_successors): Ditto.
3980 (pass_vsetvl::compute_global_backward_infos): Ditto.
3981 (pass_vsetvl::backward_demand_fusion): Ditto.
3982 (pass_vsetvl::forward_demand_fusion): Ditto.
3983 (pass_vsetvl::demand_fusion): New function.
3984 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
3985 * config/riscv/riscv-vsetvl.h: New function declaration.
3987 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3989 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
3991 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3993 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
3994 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
3996 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3998 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
3999 (backward_propagate_worthwhile_p): Fix non-worthwhile.
4001 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4003 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
4005 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4007 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
4008 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
4009 (pass_vsetvl::commit_vsetvls): Ditto.
4010 * config/riscv/riscv-vsetvl.h: New function declaration.
4012 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4014 * config/riscv/vector.md:
4016 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4018 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
4020 * config/riscv/riscv-vector-builtins.cc
4021 (function_expander::add_mem_operand): Refine function.
4022 (function_expander::use_contiguous_load_insn): Adjust new
4024 (function_expander::use_contiguous_store_insn): Ditto.
4025 * config/riscv/riscv-vector-builtins.h: Refine function.
4026 * config/riscv/vector.md (@pred_store<mode>): New pattern.
4028 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4030 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
4032 2023-01-26 Marek Polacek <polacek@redhat.com>
4034 PR middle-end/108543
4035 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
4036 if it was previously set.
4038 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4040 PR tree-optimization/108540
4041 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
4042 are singletons, use range_true even if op1 != op2
4043 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4044 even if intersection of the ranges is empty and one has
4045 zero low bound and another zero high bound, use range_true_and_false
4046 rather than range_false.
4047 (foperator_not_equal::fold_range): If both op1 and op2
4048 are singletons, use range_false even if op1 != op2
4049 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4050 even if intersection of the ranges is empty and one has
4051 zero low bound and another zero high bound, use range_true_and_false
4052 rather than range_true.
4054 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4056 * value-relation.cc (kind_string): Add const.
4057 (rr_negate_table, rr_swap_table, rr_intersect_table,
4058 rr_union_table, rr_transitive_table): Add static const, change
4059 element type from relation_kind to unsigned char.
4060 (relation_negate, relation_swap, relation_intersect, relation_union,
4061 relation_transitive): Cast rr_*_table element to relation_kind.
4062 (relation_to_code): Add static const.
4063 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
4065 2023-01-26 Richard Biener <rguenther@suse.de>
4067 PR tree-optimization/108547
4068 * gimple-predicate-analysis.cc (value_sat_pred_p):
4071 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
4073 PR tree-optimization/108522
4074 * tree-object-size.cc (compute_object_offset): Make EXPR
4075 argument non-const. Call component_ref_field_offset.
4077 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4079 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
4080 FEATURE_STRING field.
4082 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4084 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
4086 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
4090 * gcc.cc: Provide default specs for Modula-2 so that when the
4091 language is not built-in better diagnostics are emitted for
4092 attempts to use .mod or .m2i file extensions.
4094 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4096 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
4098 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4100 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
4102 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4104 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
4107 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4109 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
4111 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4113 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
4115 2023-01-25 Richard Biener <rguenther@suse.de>
4117 PR tree-optimization/108523
4118 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
4119 backedge value for the result when using predication to
4122 2023-01-25 Richard Biener <rguenther@suse.de>
4124 * doc/lto.texi (Command line options): Reword and update reference
4125 to removed lto_read_all_file_options.
4127 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
4129 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
4132 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
4134 * doc/contrib.texi: Add Jose E. Marchesi.
4136 2023-01-25 Jakub Jelinek <jakub@redhat.com>
4138 PR tree-optimization/108498
4139 * gimple-ssa-store-merging.cc (class store_operand_info):
4140 End coment with full stop rather than comma.
4141 (split_group): Likewise.
4142 (merged_store_group::apply_stores): Clear string_concatenation if
4143 start or end aren't on a byte boundary.
4145 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
4146 Jakub Jelinek <jakub@redhat.com>
4148 PR tree-optimization/108522
4149 * tree-object-size.cc (compute_object_offset): Use
4150 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
4152 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4154 * config/xtensa/xtensa.md:
4155 Fix exit from loops detecting references before overwriting in the
4158 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
4160 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
4161 do elimination but only for hard register.
4162 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
4163 calls of get_hard_regno.
4165 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4167 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
4170 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
4173 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
4174 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
4177 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4179 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
4180 and only include 'csky/t-csky-linux' when enable multilib.
4181 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
4182 define it when disable multilib.
4184 2023-01-24 Richard Biener <rguenther@suse.de>
4186 PR tree-optimization/108500
4187 * dominance.h (calculate_dominance_info): Add parameter
4188 to indicate fast-query compute, defaulted to true.
4189 * dominance.cc (calculate_dominance_info): Honor
4190 fast-query compute parameter.
4191 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
4192 not compute the dominator fast-query DFS numbers.
4194 2023-01-24 Eric Biggers <ebiggers@google.com>
4197 * optc-save-gen.awk: Fix copy-and-paste error.
4199 2023-01-24 Jakub Jelinek <jakub@redhat.com>
4202 * cgraphbuild.cc: Include gimplify.h.
4203 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
4204 their corresponding DECL_VALUE_EXPR expressions after unsharing.
4206 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4209 * config.gcc (tm_file): Move the variable out of loop.
4211 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
4212 Yang Yujie <yangyujie@loongson.cn>
4215 * config/loongarch/loongarch.cc (loongarch_classify_address):
4216 Add precessint for CONST_INT.
4217 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
4218 (loongarch_print_operand): Increase the processing of '%c'.
4219 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
4220 And port the public operand modifiers information to this document.
4222 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4224 * doc/invoke.texi (-mbranch-protection): Update documentation.
4226 2023-01-23 Richard Biener <rguenther@suse.de>
4229 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
4231 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
4232 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
4233 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
4234 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
4236 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4238 * config/arm/aout.h (ra_auth_code): Add entry in enum.
4239 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
4240 to dwarf frame expression.
4241 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
4242 (arm_expand_prologue): Update frame related information and reg notes
4243 for pac/pacbit insn.
4244 (arm_regno_class): Check for pac pseudo reigster.
4245 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
4246 (arm_init_machine_status): Set pacspval_needed to zero.
4247 (arm_debugger_regno): Check for PAC register.
4248 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
4250 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
4251 (arm_unwind_emit): Update REG_CFA_REGISTER case._
4252 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
4253 (DWARF_PAC_REGNUM): Define.
4254 (IS_PAC_REGNUM): Likewise.
4255 (enum reg_class): Add PAC_REG entry.
4256 (machine_function): Add pacbti_needed state to structure.
4257 * config/arm/arm.md (RA_AUTH_CODE): Define.
4259 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4261 * config.gcc ($tm_file): Update variable.
4262 * config/arm/arm-mlib.h: Create new header file.
4263 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
4264 multilib arch directory.
4265 (MULTILIB_REUSE): Add multilib reuse rules.
4266 (MULTILIB_MATCHES): Add multilib match rules.
4268 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4270 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
4271 * config/arm/arm-tables.opt: Regenerate.
4272 * config/arm/arm-tune.md: Likewise.
4273 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
4274 * (-mfix-cmse-cve-2021-35465): Likewise.
4276 2023-01-23 Richard Biener <rguenther@suse.de>
4278 PR tree-optimization/108482
4279 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
4280 .LOOP_DIST_ALIAS calls.
4282 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4284 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
4285 * config/arm/arm-protos.h: Update.
4286 * config/arm/aarch-common-protos.h: Declare
4287 'aarch_bti_arch_check'.
4288 * config/arm/arm.cc (aarch_bti_enabled) Update.
4289 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
4290 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
4291 * config/arm/arm.md (bti_nop): New insn.
4292 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
4293 (aarch-bti-insert.o): New target.
4294 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
4295 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
4297 (gate): Make use of 'aarch_bti_arch_check'.
4298 * config/arm/arm-passes.def: New file.
4299 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
4301 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4303 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
4304 'aarch-bti-insert.o'.
4305 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
4307 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
4308 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
4309 (aarch64_output_mi_thunk)
4310 (aarch64_print_patchable_function_entry)
4311 (aarch64_file_end_indicate_exec_stack): Update renamed function
4312 calls to renamed functions.
4313 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
4314 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
4316 * config/aarch64/aarch64-bti-insert.cc: Delete.
4317 * config/arm/aarch-bti-insert.cc: New file including and
4318 generalizing code from aarch64-bti-insert.cc.
4319 * config/arm/aarch-common-protos.h: Update.
4321 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4323 * config/arm/arm.h (arm_arch8m_main): Declare it.
4324 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
4326 * config/arm/arm.cc (arm_arch8m_main): Define it.
4327 (arm_option_reconfigure_globals): Set arm_arch8m_main.
4328 (arm_compute_frame_layout, arm_expand_prologue)
4329 (thumb2_expand_return, arm_expand_epilogue)
4330 (arm_conditional_register_usage): Update for pac codegen.
4331 (arm_current_function_pac_enabled_p): New function.
4332 (aarch_bti_enabled) New function.
4333 (use_return_insn): Return zero when pac is enabled.
4334 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
4336 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
4337 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
4339 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4341 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
4344 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4345 Tejas Belagod <tbelagod@arm.com>
4347 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
4348 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
4350 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4351 Tejas Belagod <tbelagod@arm.com>
4352 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4354 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
4355 new pseudo register class _UVRSC_PAC.
4357 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4358 Tejas Belagod <tbelagod@arm.com>
4360 * config/arm/arm-c.cc (arm_cpu_builtins): Define
4361 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
4362 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
4364 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4365 Tejas Belagod <tbelagod@arm.com>
4367 * doc/sourcebuild.texi: Document arm_pacbti_hw.
4369 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4370 Tejas Belagod <tbelagod@arm.com>
4371 Richard Earnshaw <Richard.Earnshaw@arm.com>
4373 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
4374 -mbranch-protection option and initialize appropriate data structures.
4375 * config/arm/arm.opt (-mbranch-protection): New option.
4376 * doc/invoke.texi (Arm Options): Document it.
4378 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4379 Tejas Belagod <tbelagod@arm.com>
4381 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
4382 * config/arm/arm-cpus.in (pacbti): New feature.
4383 * doc/invoke.texi (Arm Options): Document it.
4385 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
4386 Tejas Belagod <tbelagod@arm.com>
4388 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
4389 (all_architectures): Fix comment.
4390 (aarch64_parse_extension): Rename return type, enum value names.
4391 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
4392 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
4393 Also rename corresponding enum values.
4394 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
4395 out aarch64_function_type and move it to common code as
4396 aarch_function_type in aarch-common.h.
4397 * config/aarch64/aarch64-protos.h: Include common types header,
4398 move out types aarch64_parse_opt_result and aarch64_key_type to
4400 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
4401 and functions out into aarch-common.h and aarch-common.cc. Fix up
4402 all the name changes resulting from the move.
4403 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
4405 * config/aarch64/aarch64.opt: Include aarch-common.h to import
4406 type move. Fix up name changes from factoring out common code and
4408 * config/arm/aarch-common-protos.h: Export factored out routines to both
4410 * config/arm/aarch-common.cc: Include newly factored out types.
4411 Move all mbranch-protection code and data structures from
4413 * config/arm/aarch-common.h: New header that declares types shared
4414 between aarch32 and aarch64 backends.
4415 * config/arm/arm-protos.h: Declare types and variables that are
4416 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
4417 aarch_ra_sign_scope and aarch_enable_bti.
4418 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
4419 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
4420 * config/arm/arm.cc: Add missing includes.
4422 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
4424 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
4426 2023-01-23 Richard Biener <rguenther@suse.de>
4428 PR tree-optimization/108449
4429 * cgraphunit.cc (check_global_declaration): Do not turn
4430 undefined statics into externs.
4432 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
4434 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
4436 * config/pru/pru.md (clz): Fix generated code for QI and HI
4439 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
4441 * config/v850/v850.cc (v850_select_section): Put const volatile
4442 objects into read-only sections.
4444 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
4446 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
4447 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
4448 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
4450 2023-01-20 Jakub Jelinek <jakub@redhat.com>
4452 PR tree-optimization/108457
4453 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
4454 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
4455 argument instead of a temporary. Formatting fixes.
4457 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4459 PR tree-optimization/108447
4460 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
4461 (relation_tests): Add self-tests for relation_{intersect,union}
4463 * selftest.h (relation_tests): Declare.
4464 * function-tests.cc (test_ranges): Call it.
4466 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
4469 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
4470 invalid third argument to __builtin_ia32_prefetch.
4472 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4474 PR middle-end/108459
4475 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
4476 than fold_unary for NEGATE_EXPR.
4478 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
4481 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
4482 comment. Move assert about alignment a bit later.
4484 2023-01-19 Jakub Jelinek <jakub@redhat.com>
4486 PR tree-optimization/108440
4487 * tree-ssa-forwprop.cc: Include gimple-range.h.
4488 (simplify_rotate): For the forms with T2 wider than T and shift counts of
4489 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
4490 to B. For the forms with T2 wider than T and shift counts of
4491 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
4492 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
4493 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
4494 pass specific ranger instead of get_global_range_query.
4495 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
4498 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4500 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
4501 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
4503 (aarch64_simd_vec_copy_lane<mode>): Likewise.
4504 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
4506 2023-01-19 Alexandre Oliva <oliva@adacore.com>
4509 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
4512 2023-01-18 Martin Jambor <mjambor@suse.cz>
4515 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
4516 lcone_of chain also do not need the body.
4518 2023-01-18 Richard Biener <rguenther@suse.de>
4521 2022-12-16 Richard Biener <rguenther@suse.de>
4523 PR middle-end/108086
4524 * tree-inline.cc (remap_ssa_name): Do not unshare the
4525 result from the decl_map.
4527 2023-01-18 Murray Steele <murray.steele@arm.com>
4530 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
4532 (__arm_vst1q_p_s8): Likewise.
4533 (__arm_vld1q_z_u8): Likewise.
4534 (__arm_vld1q_z_s8): Likewise.
4535 (__arm_vst1q_p_u16): Likewise.
4536 (__arm_vst1q_p_s16): Likewise.
4537 (__arm_vld1q_z_u16): Likewise.
4538 (__arm_vld1q_z_s16): Likewise.
4539 (__arm_vst1q_p_u32): Likewise.
4540 (__arm_vst1q_p_s32): Likewise.
4541 (__arm_vld1q_z_u32): Likewise.
4542 (__arm_vld1q_z_s32): Likewise.
4543 (__arm_vld1q_z_f16): Likewise.
4544 (__arm_vst1q_p_f16): Likewise.
4545 (__arm_vld1q_z_f32): Likewise.
4546 (__arm_vst1q_p_f32): Likewise.
4548 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4550 * config/xtensa/xtensa.md (xorsi3_internal):
4551 Rename from the original of "xorsi3".
4552 (xorsi3): New expansion pattern that emits addition rather than
4553 bitwise-XOR when the second source is a constant of -2147483648
4556 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
4557 Andrew Pinski <apinski@marvell.com>
4560 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
4561 vec_vsubcuqP with vec_vsubcuq.
4563 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
4566 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
4567 support for invalid uses of MMA opaque type in function arguments.
4569 2023-01-18 liuhongt <hongtao.liu@intel.com>
4572 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
4573 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
4574 -share or -mno-daz-ftz is specified.
4575 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
4576 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
4578 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
4580 * config/bpf/bpf.cc (bpf_option_override): Disable
4583 2023-01-17 Jakub Jelinek <jakub@redhat.com>
4585 PR tree-optimization/106523
4586 * tree-ssa-forwprop.cc (simplify_rotate): For the
4587 patterns with (-Y) & (B - 1) in one operand's shift
4588 count and Y in another, if T2 has wider precision than T,
4589 punt if Y could have a value in [B, B2 - 1] range.
4591 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
4594 * config/i386/i386.cc (x86_output_mi_thunk): Disable
4595 -mforce-indirect-call for PIC in 32-bit mode.
4597 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
4600 * ipa-modref.cc (modref_access_analysis::analyze): Use
4601 find_always_executed_bbs.
4602 * ipa-sra.cc (process_scan_results): Likewise.
4603 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
4604 (find_always_executed_bbs): New function.
4605 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
4606 (find_always_executed_bbs): Declare.
4608 2023-01-16 Jan Hubicka <jh@suse.cz>
4610 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
4611 by TARGET_USE_SCATTER.
4612 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
4613 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
4614 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
4615 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
4616 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
4617 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
4619 2023-01-16 Richard Biener <rguenther@suse.de>
4622 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
4624 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
4628 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
4629 (__ARM_mve_coerce3): Likewise.
4631 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4633 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
4635 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4637 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
4638 (number_of_iterations_bitcount): Add call to the above.
4639 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
4640 c[lt]z idiom recognition.
4642 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4644 * doc/sourcebuild.texi: Add missing target attributes.
4646 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
4648 PR tree-optimization/94793
4649 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
4651 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
4652 (number_of_iterations_cltz_complement): New.
4653 (number_of_iterations_bitcount): Add call to the above.
4655 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
4657 * doc/extend.texi (Common Function Attributes): Fix grammar.
4659 2023-01-16 Jakub Jelinek <jakub@redhat.com>
4662 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
4663 * config/riscv/riscv-vsetvl.cc: Likewise.
4665 2023-01-16 Jakub Jelinek <jakub@redhat.com>
4668 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
4669 disable -Winit-self using pragma GCC diagnostic ignored.
4670 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
4672 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
4673 _mm256_undefined_si256): Likewise.
4674 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
4675 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
4676 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
4677 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
4679 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
4682 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
4683 support for invalid uses in inline asm, factor out the checking and
4684 erroring to lambda function check_and_error_invalid_use.
4686 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
4688 PR tree-optimization/107608
4689 * range-op-float.cc (range_operator_float::fold_range): Avoid
4690 folding into INF when flag_trapping_math.
4691 * value-range.h (frange::known_isinf): Return false for possible NANs.
4693 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4695 * config.gcc (csky-*-*): Support --with-float=softfp.
4697 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4699 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
4700 Rename to xtensa_adjust_reg_alloc_order.
4701 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
4702 Ditto. And also remove code to reorder register numbers for
4703 leaf functions, rename the tables, and adjust the allocation
4704 order for the call0 ABI to use register A0 more.
4705 (xtensa_leaf_regs): Remove.
4706 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
4707 (order_regs_for_local_alloc): Rename as the above.
4708 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
4710 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4712 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
4713 Change to define_insn_and_split to fold ldr+dup to ld1rq.
4714 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
4716 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4718 * hash-table.h (is_deleted): Precheck !is_empty.
4719 (mark_deleted): Postcheck !is_empty.
4720 (copy constructor): Test is_empty before is_deleted.
4722 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4725 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
4728 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
4730 PR rtl-optimization/108274
4731 * function.cc (thread_prologue_and_epilogue_insns): Also update the
4732 DF information for calls in a few more cases.
4734 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
4736 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
4737 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
4739 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
4740 (MAX_SYNC_LIBFUNC_SIZE): Define.
4741 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
4743 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
4744 libcall when sync libcalls are disabled.
4745 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
4746 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
4747 are disabled on 32-bit target.
4748 * config/pa/pa.opt (matomic-libcalls): New option.
4749 * doc/invoke.texi (HPPA Options): Update.
4751 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
4753 PR rtl-optimization/108117
4754 PR rtl-optimization/108132
4755 * sched-deps.cc (deps_analyze_insn): Do not schedule across
4756 calls before reload.
4758 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4760 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
4761 options for -mlibarch.
4762 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
4763 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
4765 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
4767 * attribs.cc (strict_flex_array_level_of): Move this function to ...
4768 * attribs.h (strict_flex_array_level_of): Remove the declaration.
4769 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
4770 replace the referece to strict_flex_array_level_of with
4772 * tree.cc (component_ref_size): Likewise.
4774 2023-01-13 Richard Biener <rguenther@suse.de>
4777 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
4778 crtfastmath.o for -shared.
4779 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
4781 2023-01-13 Richard Biener <rguenther@suse.de>
4784 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
4785 crtfastmath.o for -shared.
4786 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
4788 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
4791 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
4793 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
4795 (TARGET_DWARF_FRAME_REG_MODE): Define.
4797 2023-01-13 Richard Biener <rguenther@suse.de>
4800 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
4801 update EH info on the fly.
4803 2023-01-13 Richard Biener <rguenther@suse.de>
4805 PR tree-optimization/108387
4806 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
4807 value before inserting expression into the tables.
4809 2023-01-12 Andrew Pinski <apinski@marvell.com>
4810 Roger Sayle <roger@nextmovesoftware.com>
4812 PR tree-optimization/92342
4813 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
4814 Use tcc_comparison and :c for the multiply.
4815 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
4817 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4818 Richard Sandiford <richard.sandiford@arm.com>
4821 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
4822 Check DECL_PACKED for bitfield.
4823 (aarch64_layout_arg): Warn when parameter passing ABI changes.
4824 (aarch64_function_arg_boundary): Do not warn here.
4825 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
4828 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4829 Richard Sandiford <richard.sandiford@arm.com>
4831 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
4833 (aarch64_layout_arg): Factorize warning conditions.
4834 (aarch64_function_arg_boundary): Fix typo.
4835 * function.cc (currently_expanding_function_start): New variable.
4836 (expand_function_start): Handle
4837 currently_expanding_function_start.
4838 * function.h (currently_expanding_function_start): Declare.
4840 2023-01-12 Richard Biener <rguenther@suse.de>
4842 PR tree-optimization/99412
4843 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
4844 (swap_ops_for_binary_stmt): Remove reduction handling.
4845 (rewrite_expr_tree_parallel): Adjust.
4846 (reassociate_bb): Likewise.
4847 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
4849 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4851 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
4852 Rearrange the emitting codes.
4854 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4856 * config/xtensa/xtensa.md (*btrue):
4857 Correct value of the attribute "length" that depends on
4858 TARGET_DENSITY and operands, and add '?' character to the register
4859 constraint of the compared operand.
4861 2023-01-12 Alexandre Oliva <oliva@adacore.com>
4863 * hash-table.h (expand): Check elements and deleted counts.
4866 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
4868 PR tree-optimization/71343
4869 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
4870 the value number of the expression X << C the same as the value
4871 number for the multiplication X * (1<<C).
4873 2023-01-11 David Faust <david.faust@oracle.com>
4876 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
4877 floating point modes.
4879 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
4881 PR tree-optimization/108199
4882 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
4883 for bit-field references.
4885 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
4887 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
4888 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
4889 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
4890 OPTION_MASK_P10_FUSION.
4892 2023-01-11 Richard Biener <rguenther@suse.de>
4894 PR tree-optimization/107767
4895 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
4896 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
4897 * tree-switch-conversion.cc (switch_conversion::collect):
4898 Count unique non-default targets accounting for later
4899 merging opportunities.
4901 2023-01-11 Martin Liska <mliska@suse.cz>
4903 PR middle-end/107976
4904 * params.opt: Limit JT params.
4905 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
4907 2023-01-11 Richard Biener <rguenther@suse.de>
4909 PR tree-optimization/108352
4910 * tree-ssa-threadbackward.cc
4911 (back_threader_profitability::profitable_path_p): Adjust
4912 heuristic that allows non-multi-way branch threads creating
4914 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
4915 (--param fsm-scale-path-stmts): Adjust.
4916 * params.opt (--param=fsm-scale-path-blocks=): Remove.
4917 (-param=fsm-scale-path-stmts=): Adjust description.
4919 2023-01-11 Richard Biener <rguenther@suse.de>
4921 PR tree-optimization/108353
4922 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
4924 (add_ssa_edge): Simplify.
4925 (add_control_edge): Likewise.
4926 (ssa_prop_init): Likewise.
4927 (ssa_prop_fini): Likewise.
4928 (ssa_propagation_engine::ssa_propagate): Likewise.
4930 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
4932 * config/s390/s390.md (*not<mode>): New pattern.
4934 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4936 * config/xtensa/xtensa.cc (xtensa_insn_cost):
4937 Let insn cost for size be obtained by applying COSTS_N_INSNS()
4938 to instruction length and then dividing by 3.
4940 2023-01-10 Richard Biener <rguenther@suse.de>
4942 PR tree-optimization/106293
4943 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
4944 process degenerate PHI defs.
4946 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
4948 PR rtl-optimization/106421
4949 * cprop.cc (bypass_block): Check that DEST is local to this
4950 function (non-NULL) before calling find_edge.
4952 2023-01-10 Martin Jambor <mjambor@suse.cz>
4955 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
4956 sort_replacements, lookup_first_base_replacement and
4957 m_sorted_replacements_p.
4958 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
4959 (ipa_param_body_adjustments::register_replacement): Set
4960 m_sorted_replacements_p to false.
4961 (compare_param_body_replacement): New function.
4962 (ipa_param_body_adjustments::sort_replacements): Likewise.
4963 (ipa_param_body_adjustments::common_initialization): Call
4965 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
4966 m_sorted_replacements_p.
4967 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
4969 (ipa_param_body_adjustments::lookup_first_base_replacement): New
4971 (ipa_param_body_adjustments::modify_call_stmt): Use
4972 lookup_first_base_replacement.
4973 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
4974 adjustments->sort_replacements.
4976 2023-01-10 Richard Biener <rguenther@suse.de>
4978 PR tree-optimization/108314
4979 * tree-vect-stmts.cc (vectorizable_condition): Do not
4980 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
4982 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4984 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
4986 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4988 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
4990 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4992 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
4993 defines for soft float abi.
4995 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4997 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
4998 (smart_bclri): Likewise.
4999 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
5000 (fast_bclri): Likewise.
5001 (fast_cmpnesi_i): Likewise.
5002 (*fast_cmpltsi_i): Likewise.
5003 (*fast_cmpgeusi_i): Likewise.
5005 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5007 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
5008 flag_fp_int_builtin_inexact || !flag_trapping_math.
5009 (<frm_pattern><mode>2): Likewise.
5011 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
5013 * config/s390/s390.cc (s390_register_info): Check call_used_regs
5014 instead of hard-coding the register numbers for call saved
5016 (s390_optimize_register_info): Likewise.
5018 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
5020 * doc/gm2.texi (Overview): Fix @node markers.
5021 (Using): Likewise. Remove subsections that were moved to Overview
5022 from the menu and move others around.
5024 2023-01-09 Richard Biener <rguenther@suse.de>
5026 PR middle-end/108209
5027 * genmatch.cc (commutative_op): Fix return value for
5028 user-id with non-commutative first replacement.
5030 2023-01-09 Jakub Jelinek <jakub@redhat.com>
5033 * calls.cc (expand_call): For calls with
5034 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
5037 2023-01-09 Richard Biener <rguenther@suse.de>
5040 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
5041 qualified accesses also force objects to memory.
5043 2023-01-09 Martin Liska <mliska@suse.cz>
5046 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
5047 NULL (deleleted value) to a hash_set.
5049 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5051 * config/xtensa/xtensa.md (*splice_bits):
5052 New insn_and_split pattern.
5054 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5056 * config/xtensa/xtensa.cc
5057 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
5058 New helper functions.
5059 (xtensa_set_return_address, xtensa_output_mi_thunk):
5060 Change to use the helper function.
5061 (xtensa_emit_adjust_stack_ptr): Ditto.
5062 And also change to try reusing the content of scratch register
5063 A9 if the register is not modified in the function body.
5065 2023-01-07 LIU Hao <lh_mouse@126.com>
5067 PR middle-end/108300
5068 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
5070 * diagnostic-color.cc: Likewise.
5071 * plugin.cc: Likewise.
5072 * prefix.cc: Likewise.
5074 2023-01-06 Joseph Myers <joseph@codesourcery.com>
5076 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
5077 for handling real integer types.
5079 2023-01-06 Tamar Christina <tamar.christina@arm.com>
5082 2022-12-12 Tamar Christina <tamar.christina@arm.com>
5084 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
5085 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
5086 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
5087 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
5088 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
5089 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
5090 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
5091 (aarch64_simd_dupv2hf): New.
5092 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
5094 * config/aarch64/iterators.md (VHSDF_P): New.
5095 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
5096 Vel, q, vp): Add V2HF.
5097 * config/arm/types.md (neon_fp_reduc_add_h): New.
5099 2023-01-06 Martin Liska <mliska@suse.cz>
5101 PR middle-end/107966
5102 * doc/options.texi: Fix Var documentation in internal manual.
5104 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
5107 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5109 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
5110 RTL expansion to allow condition (mask) to be shared/reused,
5111 by avoiding overwriting pseudos and adding REG_EQUAL notes.
5113 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
5115 * common.opt: Add -static-libgm2.
5116 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
5117 * doc/gm2.texi: Document static-libgm2.
5118 * gcc.cc (driver_handle_option): Allow static-libgm2.
5120 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
5122 * common/config/i386/i386-common.cc (processor_alias_table):
5123 Use CPU_ZNVER4 for znver4.
5124 * config/i386/i386.md: Add znver4.md.
5125 * config/i386/znver4.md: New.
5127 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5129 PR tree-optimization/108253
5130 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
5133 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5135 PR middle-end/108237
5136 * generic-match-head.cc: Include tree-pass.h.
5137 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
5138 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
5139 resp. PROP_gimple_lvec property set.
5141 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5144 * convert.cc (do_narrow): Punt for MULT_EXPR if original
5145 type doesn't wrap around and -fsanitize=signed-integer-overflow
5147 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
5149 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5151 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
5152 * common/config/i386/i386-common.cc: Add Emeraldrapids.
5154 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5156 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
5159 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
5161 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
5162 default constructor to initialize it.
5163 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
5164 for last and iterate to handle recursive calls. Delete leftover
5165 candidates at the end.
5166 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
5168 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
5169 gc_candidate bit when a clone is used.
5171 2023-01-03 Florian Weimer <fweimer@redhat.com>
5174 2023-01-02 Florian Weimer <fweimer@redhat.com>
5176 * dwarf2cfi.cc (init_return_column_size): Remove.
5177 (init_one_dwarf_reg_size): Adjust.
5178 (generate_dwarf_reg_sizes): New function. Extracted
5179 from expand_builtin_init_dwarf_reg_sizes.
5180 (expand_builtin_init_dwarf_reg_sizes): Call
5181 generate_dwarf_reg_sizes.
5182 * target.def (init_dwarf_reg_sizes_extra): Adjust
5184 * config/msp430/msp430.cc
5185 (msp430_init_dwarf_reg_sizes_extra): Adjust.
5186 * config/rs6000/rs6000.cc
5187 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
5188 * doc/tm.texi: Update.
5190 2023-01-03 Florian Weimer <fweimer@redhat.com>
5193 2023-01-02 Florian Weimer <fweimer@redhat.com>
5195 * debug.h (dwarf_reg_sizes_constant): Declare.
5196 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
5198 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
5200 PR tree-optimization/105043
5201 * doc/extend.texi (Object Size Checking): Split out into two
5202 subsections and mention _FORTIFY_SOURCE.
5204 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5206 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
5207 RTL expansion to allow condition (mask) to be shared/reused,
5208 by avoiding overwriting pseudos and adding REG_EQUAL notes.
5210 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5213 * config/i386/i386-features.cc
5214 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
5215 the gain/cost of converting a MEM operand.
5217 2023-01-03 Jakub Jelinek <jakub@redhat.com>
5219 PR middle-end/108264
5220 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
5221 from source which doesn't have scalar integral mode first convert
5224 2023-01-03 Jakub Jelinek <jakub@redhat.com>
5226 PR rtl-optimization/108263
5227 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
5230 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
5233 * config/i386/lujiazui.md (lujiazui_div): New automaton.
5234 (lua_div): New unit.
5235 (lua_idiv_qi): Correct unit in the reservation.
5236 (lua_idiv_qi_load): Ditto.
5237 (lua_idiv_hi): Ditto.
5238 (lua_idiv_hi_load): Ditto.
5239 (lua_idiv_si): Ditto.
5240 (lua_idiv_si_load): Ditto.
5241 (lua_idiv_di): Ditto.
5242 (lua_idiv_di_load): Ditto.
5243 (lua_fdiv_SF): Ditto.
5244 (lua_fdiv_SF_load): Ditto.
5245 (lua_fdiv_DF): Ditto.
5246 (lua_fdiv_DF_load): Ditto.
5247 (lua_fdiv_XF): Ditto.
5248 (lua_fdiv_XF_load): Ditto.
5249 (lua_ssediv_SF): Ditto.
5250 (lua_ssediv_load_SF): Ditto.
5251 (lua_ssediv_V4SF): Ditto.
5252 (lua_ssediv_load_V4SF): Ditto.
5253 (lua_ssediv_V8SF): Ditto.
5254 (lua_ssediv_load_V8SF): Ditto.
5255 (lua_ssediv_SD): Ditto.
5256 (lua_ssediv_load_SD): Ditto.
5257 (lua_ssediv_V2DF): Ditto.
5258 (lua_ssediv_load_V2DF): Ditto.
5259 (lua_ssediv_V4DF): Ditto.
5260 (lua_ssediv_load_V4DF): Ditto.
5262 2023-01-02 Florian Weimer <fweimer@redhat.com>
5264 * debug.h (dwarf_reg_sizes_constant): Declare.
5265 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
5267 2023-01-02 Florian Weimer <fweimer@redhat.com>
5269 * dwarf2cfi.cc (init_return_column_size): Remove.
5270 (init_one_dwarf_reg_size): Adjust.
5271 (generate_dwarf_reg_sizes): New function. Extracted
5272 from expand_builtin_init_dwarf_reg_sizes.
5273 (expand_builtin_init_dwarf_reg_sizes): Call
5274 generate_dwarf_reg_sizes.
5275 * target.def (init_dwarf_reg_sizes_extra): Adjust
5277 * config/msp430/msp430.cc
5278 (msp430_init_dwarf_reg_sizes_extra): Adjust.
5279 * config/rs6000/rs6000.cc
5280 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
5281 * doc/tm.texi: Update.
5283 2023-01-02 Jakub Jelinek <jakub@redhat.com>
5285 * gcc.cc (process_command): Update copyright notice dates.
5286 * gcov-dump.cc (print_version): Ditto.
5287 * gcov.cc (print_version): Ditto.
5288 * gcov-tool.cc (print_version): Ditto.
5289 * gengtype.cc (create_file): Ditto.
5290 * doc/cpp.texi: Bump @copying's copyright year.
5291 * doc/cppinternals.texi: Ditto.
5292 * doc/gcc.texi: Ditto.
5293 * doc/gccint.texi: Ditto.
5294 * doc/gcov.texi: Ditto.
5295 * doc/install.texi: Ditto.
5296 * doc/invoke.texi: Ditto.
5298 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
5299 Uroš Bizjak <ubizjak@gmail.com>
5301 * config/i386/i386.md (extendditi2): New define_insn.
5302 (define_split): Use DWIH mode iterator to treat new extendditi2
5303 identically to existing extendsidi2_1.
5304 (define_peephole2): Likewise.
5305 (define_peephole2): Likewise.
5306 (define_Split): Likewise.
5309 Copyright (C) 2023 Free Software Foundation, Inc.
5311 Copying and distribution of this file, with or without modification,
5312 are permitted in any medium without royalty provided the copyright
5313 notice and this notice are preserved.