]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
Daily bump.
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-03-19 Jonny Grant <jg@jguk.org>
2
3 * doc/extend.texi (Common Function Attributes) <nonnull>:
4 Correct typo.
5
6 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
7
8 PR rtl-optimization/109179
9 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
10 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
11
12 2023-03-17 Jakub Jelinek <jakub@redhat.com>
13
14 PR target/105554
15 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
16 to false.
17 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
18 to allocate_struct_function instead of false.
19 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
20 nor DECL_RESULT here. Pass true as ABSTRACT_P to
21 push_struct_function. Call targetm.target_option.relayout_function
22 after it.
23 (tree_function_versioning): Formatting fix.
24
25 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
26
27 * lra-constraints.cc: Include hooks.h.
28 (combine_reload_insn): New function.
29 (lra_constraints): Call it.
30
31 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
32 kito-cheng <kito.cheng@sifive.com>
33
34 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
35 as legitimate value.
36 * config/riscv/riscv-vector-builtins.cc
37 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
38 (function_expander::use_widen_ternop_insn): Ditto.
39 * config/riscv/vector.md (@vundefined<mode>): New pattern.
40 (pred_mul_<optab><mode>_undef_merge): Remove.
41 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
42 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
43 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
44 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
45
46 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
47
48 PR target/109092
49 * config/riscv/riscv.md: Fix subreg bug.
50
51 2023-03-17 Jakub Jelinek <jakub@redhat.com>
52
53 PR middle-end/108685
54 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
55 use its loop_father rather than BODY_BB's loop_father.
56 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
57 If broken_loop with ordered > collapse and at least one of those
58 extra loops aren't guaranteed to have at least one iteration, change
59 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
60 loop_father to l0_bb's loop_father rather than l1_bb's.
61
62 2023-03-17 Jakub Jelinek <jakub@redhat.com>
63
64 PR plugins/108634
65 * gdbhooks.py (TreePrinter.to_string): Wrap
66 gdb.parse_and_eval('tree_code_type') in a try block, parse
67 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
68 raises exception. Update comments for the recent tree_code_type
69 changes.
70
71 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
72
73 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
74 issues. Add more line breaks to example so it doesn't overflow
75 the margins.
76
77 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
78
79 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
80 line breaks in examples.
81 <malloc>: Fix bad line breaks in running text, also copy-edit
82 for consistency.
83 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
84 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
85 @gol.
86 (C++ Dialect Options) <-fcontracts>: Add line break in example.
87 <-Wctad-maybe-unsupported>: Likewise.
88 <-Winvalid-constexpr>: Likewise.
89 (Warning Options) <-Wdangling-pointer>: Likewise.
90 <-Winterference-size>: Likewise.
91 <-Wvla-parameter>: Likewise.
92 (Static Analyzer Options): Fix bad line breaks in running text,
93 plus add some missing markup.
94 (Optimize Options) <openacc-privatization>: Fix more bad line
95 breaks in running text.
96
97 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
98
99 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
100 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
101 (expand_vec_perm_2perm_pblendv): Ditto.
102
103 2023-03-16 Martin Liska <mliska@suse.cz>
104
105 PR middle-end/106133
106 * gcc.cc (driver_handle_option): Use x_main_input_basename
107 if x_dump_base_name is null.
108 * opts.cc (common_handle_option): Likewise.
109
110 2023-03-16 Richard Biener <rguenther@suse.de>
111
112 PR tree-optimization/109123
113 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
114 Do not emit -Wuse-after-free late.
115 (pass_waccess::check_call): Always check call pointer uses.
116
117 2023-03-16 Richard Biener <rguenther@suse.de>
118
119 PR tree-optimization/109141
120 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
121 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
122 out from ...
123 (renumber_gimple_stmt_uids): ... here and
124 (renumber_gimple_stmt_uids_in_blocks): ... here.
125 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
126 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
127 to PHIs.
128 (pass_waccess::check_pointer_uses): Process all PHIs.
129
130 2023-03-15 David Malcolm <dmalcolm@redhat.com>
131
132 PR analyzer/109097
133 * diagnostic-format-sarif.cc (class sarif_invocation): New.
134 (class sarif_ice_notification): New.
135 (sarif_builder::m_invocation_obj): New field.
136 (sarif_invocation::add_notification_for_ice): New.
137 (sarif_invocation::prepare_to_flush): New.
138 (sarif_ice_notification::sarif_ice_notification): New.
139 (sarif_builder::sarif_builder): Add m_invocation_obj.
140 (sarif_builder::end_diagnostic): Special-case DK_ICE and
141 DK_ICE_NOBT.
142 (sarif_builder::flush_to_file): Call prepare_to_flush on
143 m_invocation_obj. Pass the latter to make_top_level_object.
144 (sarif_builder::make_result_object): Move creation of "locations"
145 array to...
146 (sarif_builder::make_locations_arr): ...this new function.
147 (sarif_builder::make_top_level_object): Add "invocation_obj" param
148 and pass it to make_run_object.
149 (sarif_builder::make_run_object): Add "invocation_obj" param and
150 use it.
151 (sarif_ice_handler): New callback.
152 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
153 * diagnostic.cc (diagnostic_initialize): Initialize new field
154 "ice_handler_cb".
155 (diagnostic_action_after_output): If it is set, make one attempt
156 to call ice_handler_cb.
157 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
158
159 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
160
161 * config/i386/i386-expand.cc (expand_vec_perm_blend):
162 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
163 and fix V2HImode handling.
164 (expand_vec_perm_1): Try to emit BLEND instruction
165 before MOVSS/MOVSD.
166 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
167
168 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
169
170 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
171
172 2023-03-15 Richard Biener <rguenther@suse.de>
173
174 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
175 Do not diagnose clobbers.
176
177 2023-03-15 Richard Biener <rguenther@suse.de>
178
179 PR tree-optimization/109139
180 * tree-ssa-live.cc (remove_unused_locals): Look at the
181 base address for unused decls on the LHS of .DEFERRED_INIT.
182
183 2023-03-15 Xi Ruoyao <xry111@xry111.site>
184
185 PR other/109086
186 * builtins.cc (inline_string_cmp): Force the character
187 difference into "result" pseudo-register, instead of reassign
188 the pseudo-register.
189
190 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
191
192 * config.gcc: Add thead.o to RISC-V extra_objs.
193 * config/riscv/peephole.md: Add mempair peephole passes.
194 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
195 prototype.
196 (th_mempair_operands_p): Likewise.
197 (th_mempair_order_operands): Likewise.
198 (th_mempair_prepare_save_restore_operands): Likewise.
199 (th_mempair_save_restore_regs): Likewise.
200 (th_mempair_output_move): Likewise.
201 * config/riscv/riscv.cc (riscv_save_reg): Move code.
202 (riscv_restore_reg): Move code.
203 (riscv_for_each_saved_reg): Add code to emit mempair insns.
204 * config/riscv/t-riscv: Add thead.cc.
205 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
206 New insn.
207 (*th_mempair_store_<GPR:mode>2): Likewise.
208 (*th_mempair_load_extendsidi2): Likewise.
209 (*th_mempair_load_zero_extendsidi2): Likewise.
210 * config/riscv/thead.cc: New file.
211
212 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
213
214 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
215 New constraint "th_f_fmv".
216 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
217 "th_r_fmv".
218 * config/riscv/riscv.cc (riscv_split_doubleword_move):
219 Add split code for XTheadFmv.
220 (riscv_secondary_memory_needed): XTheadFmv does not need
221 secondary memory.
222 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
223 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
224 movdf_hardfloat_rv32.
225 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
226 (th_fmv_x_w): New INSN.
227 (th_fmv_x_hw): New INSN.
228
229 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
230
231 * config/riscv/riscv.md (maddhisi4): New expand.
232 (msubhisi4): New expand.
233 * config/riscv/thead.md (*th_mula<mode>): New pattern.
234 (*th_mulawsi): New pattern.
235 (*th_mulawsi2): New pattern.
236 (*th_maddhisi4): New pattern.
237 (*th_sextw_maddhisi4): New pattern.
238 (*th_muls<mode>): New pattern.
239 (*th_mulswsi): New pattern.
240 (*th_mulswsi2): New pattern.
241 (*th_msubhisi4): New pattern.
242 (*th_sextw_msubhisi4): New pattern.
243
244 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
245
246 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
247 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
248 Add prototype.
249 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
250 XTheadCondMov.
251 (riscv_expand_conditional_move): New function.
252 (riscv_expand_conditional_move_onesided): New function.
253 * config/riscv/riscv.md: Add support for XTheadCondMov.
254 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
255 support for XTheadCondMov.
256 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
257
258 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
259
260 * config/riscv/bitmanip.md (clzdi2): New expand.
261 (clzsi2): New expand.
262 (ctz<mode>2): New expand.
263 (popcount<mode>2): New expand.
264 (<bitmanip_optab>si2): Rename INSN.
265 (*<bitmanip_optab>si2): Hide INSN name.
266 (<bitmanip_optab>di2): Rename INSN.
267 (*<bitmanip_optab>di2): Hide INSN name.
268 (rotrsi3): Remove INSN.
269 (rotr<mode>3): Add expand.
270 (*rotrsi3): New INSN.
271 (rotrdi3): Rename INSN.
272 (*rotrdi3): Hide INSN name.
273 (rotrsi3_sext): Rename INSN.
274 (*rotrsi3_sext): Hide INSN name.
275 (bswap<mode>2): Remove INSN.
276 (bswapdi2): Add expand.
277 (bswapsi2): Add expand.
278 (*bswap<mode>2): Hide INSN name.
279 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
280 extraction.
281 * config/riscv/riscv.md (extv<mode>): New expand.
282 (extzv<mode>): New expand.
283 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
284 (*th_ext<mode>): New INSN.
285 (*th_extu<mode>): New INSN.
286 (*th_clz<mode>2): New INSN.
287 (*th_rev<mode>2): New INSN.
288
289 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
290
291 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
292 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
293
294 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
295
296 * config/riscv/riscv.md: Include thead.md
297 * config/riscv/thead.md: New file.
298
299 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
300
301 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
302
303 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
304
305 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
306 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
307 (MASK_XTHEADBB): New.
308 (MASK_XTHEADBS): New.
309 (MASK_XTHEADCMO): New.
310 (MASK_XTHEADCONDMOV): New.
311 (MASK_XTHEADFMEMIDX): New.
312 (MASK_XTHEADFMV): New.
313 (MASK_XTHEADINT): New.
314 (MASK_XTHEADMAC): New.
315 (MASK_XTHEADMEMIDX): New.
316 (MASK_XTHEADMEMPAIR): New.
317 (MASK_XTHEADSYNC): New.
318 (TARGET_XTHEADBA): New.
319 (TARGET_XTHEADBB): New.
320 (TARGET_XTHEADBS): New.
321 (TARGET_XTHEADCMO): New.
322 (TARGET_XTHEADCONDMOV): New.
323 (TARGET_XTHEADFMEMIDX): New.
324 (TARGET_XTHEADFMV): New.
325 (TARGET_XTHEADINT): New.
326 (TARGET_XTHEADMAC): New.
327 (TARGET_XTHEADMEMIDX): New.
328 (TARGET_XTHEADMEMPAIR): new.
329 (TARGET_XTHEADSYNC): New.
330 * config/riscv/riscv.opt: Add riscv_xthead_subext.
331
332 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
333
334 PR target/109117
335 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
336 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
337 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
338
339 2023-03-14 Jakub Jelinek <jakub@redhat.com>
340
341 PR target/109109
342 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
343 when lo is equal to dhi and hi is a MEM which uses dlo register.
344
345 2023-03-14 Martin Jambor <mjambor@suse.cz>
346
347 PR ipa/107925
348 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
349 global0 instead of zeroing when it does not have as many counts as
350 it should.
351
352 2023-03-14 Martin Jambor <mjambor@suse.cz>
353
354 PR ipa/107925
355 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
356 ipa count, remove assert, lenient_count_portion_handling, dump
357 also orig_node_count.
358
359 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
360
361 * config/i386/i386-expand.cc (expand_vec_perm_movs):
362 Handle V2SImode for TARGET_MMX_WITH_SSE.
363 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
364 using V2FI mode iterator to handle both V2SI and V2SF modes.
365
366 2023-03-14 Sam James <sam@gentoo.org>
367
368 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
369 including <sstream> earlier.
370 * system.h: Add INCLUDE_SSTREAM.
371
372 2023-03-14 Richard Biener <rguenther@suse.de>
373
374 * tree-ssa-live.cc (remove_unused_locals): Do not treat
375 the .DEFERRED_INIT of a variable as use, instead remove
376 that if it is the only use.
377
378 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
379
380 PR rtl-optimization/107762
381 * expr.cc (emit_group_store): Revert latest change.
382
383 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
384
385 PR tree-optimization/109005
386 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
387 aggregate type check.
388
389 2023-03-14 Jakub Jelinek <jakub@redhat.com>
390
391 PR tree-optimization/109115
392 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
393 r.upper_bound () on r.undefined_p () range.
394
395 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
396
397 PR tree-optimization/106896
398 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
399 implementatoin with probability_in; avoid some asserts.
400
401 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
402
403 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
404
405 2023-03-13 Sean Bright <sean@seanbright.com>
406
407 * doc/invoke.texi (Warning Options): Remove errant 'See'
408 before @xref.
409
410 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
411
412 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
413 REG_OK_FOR_BASE_P): Remove.
414
415 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
416
417 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
418 (=vd,vd,vr,vr): Ditto.
419 * config/riscv/vector.md: Ditto.
420
421 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
422
423 * config/riscv/riscv-vector-builtins.cc
424 (function_expander::use_compare_insn): Add operand predicate check.
425
426 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
427
428 * config/riscv/vector.md: Fine tune RA constraints.
429
430 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
431
432 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
433 hsaco assemble/link.
434
435 2023-03-13 Richard Biener <rguenther@suse.de>
436
437 PR tree-optimization/109046
438 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
439 piecewise complex loads.
440
441 2023-03-12 Jakub Jelinek <jakub@redhat.com>
442
443 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
444 (aarch64_bf16_ptr_type_node): Adjust comment.
445 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
446 bfloat16_type_node rather than aarch64_bf16_type_node.
447 (aarch64_libgcc_floating_mode_supported_p,
448 aarch64_scalar_mode_supported_p): Also support BFmode.
449 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
450 (aarch64_invalid_binary_op): Remove BFmode related rejections.
451 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
452 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
453 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
454 aarch64_bf16_type_node.
455 (aarch64_init_simd_builtin_types): Likewise.
456 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
457 which is created in tree.cc already.
458 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
459
460 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
461
462 PR middle-end/109031
463 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
464 ensure that the type of x is as wide or wider than the type of a.
465
466 2023-03-12 Tamar Christina <tamar.christina@arm.com>
467
468 PR target/108583
469 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
470 (*bitmask_shift_plus<mode>): New.
471 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
472 (@aarch64_bitmask_udiv<mode>3): Remove.
473 * config/aarch64/aarch64.cc
474 (aarch64_vectorize_can_special_div_by_constant,
475 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
476 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
477 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
478
479 2023-03-12 Tamar Christina <tamar.christina@arm.com>
480
481 PR target/108583
482 * target.def (preferred_div_as_shifts_over_mult): New.
483 * doc/tm.texi.in: Document it.
484 * doc/tm.texi: Regenerate.
485 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
486 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
487 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
488
489 2023-03-12 Tamar Christina <tamar.christina@arm.com>
490 Richard Sandiford <richard.sandiford@arm.com>
491
492 PR target/108583
493 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
494 single use.
495
496 2023-03-12 Tamar Christina <tamar.christina@arm.com>
497 Andrew MacLeod <amacleod@redhat.com>
498
499 PR target/108583
500 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
501 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
502 Use it.
503 (gimple_range_op_handler::maybe_non_standard): New.
504 * range-op.cc (class operator_widen_plus_signed,
505 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
506 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
507 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
508 operator_widen_mult_unsigned::wi_fold,
509 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
510 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
511 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
512 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
513
514 2023-03-12 Tamar Christina <tamar.christina@arm.com>
515
516 PR target/108583
517 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
518 * doc/tm.texi.in: Likewise.
519 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
520 * expmed.cc (expand_divmod): Likewise.
521 * expmed.h (expand_divmod): Likewise.
522 * expr.cc (force_operand, expand_expr_divmod): Likewise.
523 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
524 * target.def (can_special_div_by_const): Remove.
525 * target.h: Remove tree-core.h include
526 * targhooks.cc (default_can_special_div_by_const): Remove.
527 * targhooks.h (default_can_special_div_by_const): Remove.
528 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
529 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
530 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
531
532 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
533
534 * doc/install.texi2html: Fix issue number typo in comment.
535
536 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
537
538 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
539 bool.
540
541 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
542
543 * doc/invoke.texi (Optimize Options): Add markup to
544 description of asan-kernel-mem-intrinsic-prefix, and clarify
545 wording slightly.
546
547 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
548
549 * doc/extend.texi (Named Address Spaces): Drop a redundant link
550 to AVR-LibC.
551
552 2023-03-11 Jeff Law <jlaw@ventanamicro>
553
554 PR web/88860
555 * doc/extend.texi: Clarify Attribute Syntax a bit.
556
557 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
558
559 * doc/install.texi (Prerequisites): Suggest using newer versions
560 of Texinfo.
561 (Final install): Clean up and modernize discussion of how to
562 build or obtain the GCC manuals.
563 * doc/install.texi2html: Update comment to point to the PR instead
564 of "makeinfo 4.7 brokenness" (it's not specific to that version).
565
566 2023-03-10 Jakub Jelinek <jakub@redhat.com>
567
568 PR target/107703
569 * optabs.cc (expand_fix): For conversions from BFmode to integral,
570 use shifts to convert it to SFmode first and then convert SFmode
571 to integral.
572
573 2023-03-10 Andrew Pinski <apinski@marvell.com>
574
575 * config/aarch64/aarch64.md: Add a new define_split
576 to help combine.
577
578 2023-03-10 Richard Biener <rguenther@suse.de>
579
580 * tree-ssa-structalias.cc (solve_graph): Immediately
581 iterate self-cycles.
582
583 2023-03-10 Jakub Jelinek <jakub@redhat.com>
584
585 PR tree-optimization/109008
586 * range-op-float.cc (float_widen_lhs_range): If not
587 -frounding-math and not IBM double double format, extend lhs
588 range just by 0.5ulp rather than 1ulp in each direction.
589
590 2023-03-10 Jakub Jelinek <jakub@redhat.com>
591
592 PR target/107998
593 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
594 $tmake_file.
595 * config/i386/t-cygwin-w64: Remove.
596
597 2023-03-10 Jakub Jelinek <jakub@redhat.com>
598
599 PR plugins/108634
600 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
601 C++14, don't declare as extern const arrays.
602 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
603 static constexpr member arrays for C++11 or C++14.
604 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
605 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
606 (TREE_CODE_LENGTH): For C++11 or C++14 use
607 tree_code_length_tmpl <0>::tree_code_length instead of
608 tree_code_length.
609 * tree.cc (tree_code_type, tree_code_length): Remove.
610
611 2023-03-10 Jakub Jelinek <jakub@redhat.com>
612
613 PR other/108464
614 * common.opt (fcanon-prefix-map): New option.
615 * opts.cc: Include file-prefix-map.h.
616 (flag_canon_prefix_map): New variable.
617 (common_handle_option): Handle OPT_fcanon_prefix_map.
618 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
619 * file-prefix-map.h (flag_canon_prefix_map): Declare.
620 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
621 member.
622 (add_prefix_map): Initialize canonicalize member from
623 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
624 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
625 use lrealpath result only for map->canonicalize map entries.
626 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
627 * opts-global.cc (handle_common_deferred_options): Clear
628 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
629 * doc/invoke.texi (-fcanon-prefix-map): Document.
630 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
631 see also for -fcanon-prefix-map.
632 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
633
634 2023-03-10 Jakub Jelinek <jakub@redhat.com>
635
636 PR c/108079
637 * cgraphunit.cc (check_global_declaration): Don't warn for unused
638 variables which have OPT_Wunused_variable warning suppressed.
639
640 2023-03-10 Jakub Jelinek <jakub@redhat.com>
641
642 PR tree-optimization/109008
643 * range-op-float.cc (float_widen_lhs_range): If lb is
644 minimum representable finite number or ub is maximum
645 representable finite number, instead of widening it to
646 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
647 Temporarily clear flag_finite_math_only when canonicalizing
648 the widened range.
649
650 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
651
652 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
653 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
654 (gimple_fold_builtin): Ditto.
655 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
656 (class vleff): Ditto.
657 (BASE): Ditto.
658 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
659 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
660 (vleff): Ditto.
661 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
662 (struct fault_load_def): Ditto.
663 (SHAPE): Ditto.
664 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
665 * config/riscv/riscv-vector-builtins.cc
666 (rvv_arg_type_info::get_tree_type): Add size_ptr.
667 (gimple_folder::gimple_folder): New class.
668 (gimple_folder::fold): Ditto.
669 (gimple_fold_builtin): New function.
670 (get_read_vl_instance): Ditto.
671 (get_read_vl_decl): Ditto.
672 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
673 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
674 (get_read_vl_instance): New function.
675 (get_read_vl_decl): Ditto.
676 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
677 (read_vl_insn_p): Ditto.
678 (available_occurrence_p): Ditto.
679 (backward_propagate_worthwhile_p): Ditto.
680 (gen_vsetvl_pat): Adapt for vleff support.
681 (get_forward_read_vl_insn): New function.
682 (get_backward_fault_first_load_insn): Ditto.
683 (source_equal_p): Adapt for vleff support.
684 (first_ratio_invalid_for_second_sew_p): Remove.
685 (first_ratio_invalid_for_second_lmul_p): Ditto.
686 (first_lmul_less_than_second_lmul_p): Ditto.
687 (first_ratio_less_than_second_ratio_p): Ditto.
688 (support_relaxed_compatible_p): New function.
689 (vector_insn_info::operator>): Remove.
690 (vector_insn_info::operator>=): Refine.
691 (vector_insn_info::parse_insn): Adapt for vleff support.
692 (vector_insn_info::compatible_p): Ditto.
693 (vector_insn_info::update_fault_first_load_avl): New function.
694 (pass_vsetvl::transfer_after): Adapt for vleff support.
695 (pass_vsetvl::demand_fusion): Ditto.
696 (pass_vsetvl::cleanup_insns): Ditto.
697 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
698 redundant condtions.
699 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
700 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
701 * config/riscv/riscv.md: Adapt for vleff support.
702 * config/riscv/t-riscv: Ditto.
703 * config/riscv/vector-iterators.md: New iterator.
704 * config/riscv/vector.md (read_vlsi): New pattern.
705 (read_vldi_zero_extend): Ditto.
706 (@pred_fault_load<mode>): Ditto.
707
708 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
709
710 * config/riscv/riscv-vector-builtins.cc
711 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
712 (function_expander::use_widen_ternop_insn): Ditto.
713 * optabs.cc (maybe_gen_insn): Extend nops handling.
714
715 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
716
717 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
718 patterns according to RVV ISA.
719 * config/riscv/vector-iterators.md: New iterators.
720 * config/riscv/vector.md
721 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
722 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
723 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
724 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
725 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
726 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
727 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
728 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
729 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
730 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
731 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
732 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
733 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
734 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
735
736 2023-03-10 Michael Collison <collison@rivosinc.com>
737
738 * tree-vect-loop-manip.cc (vect_do_peeling): Use
739 result of constant_lower_bound instead of vf for the lower
740 bound of the epilog loop trip count.
741
742 2023-03-09 Tamar Christina <tamar.christina@arm.com>
743
744 * passes.cc (emergency_dump_function): Finish graph generation.
745
746 2023-03-09 Tamar Christina <tamar.christina@arm.com>
747
748 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
749 and bottom bit only.
750
751 2023-03-09 Andrew Pinski <apinski@marvell.com>
752
753 PR tree-optimization/108980
754 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
755 Reorgnize the call to warning for not strict flexible arrays
756 to be before the check of warned.
757
758 2023-03-09 Jason Merrill <jason@redhat.com>
759
760 * doc/extend.texi: Comment out __is_deducible docs.
761
762 2023-03-09 Jason Merrill <jason@redhat.com>
763
764 PR c++/105841
765 * doc/extend.texi (Type Traits):: Document __is_deducible.
766
767 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
768
769 PR driver/108865
770 * config.host: add object for x86_64-*-mingw*.
771 * config/i386/sym-mingw32.cc: dummy file to attach
772 symbol.
773 * config/i386/utf8-mingw32.rc: windres resource file.
774 * config/i386/winnt-utf8.manifest: XML manifest to
775 enable UTF-8.
776 * config/i386/x-mingw32: reference to x-mingw32-utf8.
777 * config/i386/x-mingw32-utf8: Makefile fragment to
778 embed UTF-8 manifest.
779
780 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
781
782 * lra-constraints.cc (process_alt_operands): Use operand modes for
783 clobbered regs instead of the biggest access mode.
784
785 2023-03-09 Richard Biener <rguenther@suse.de>
786
787 PR middle-end/108995
788 * fold-const.cc (extract_muldiv_1): Avoid folding
789 (CST * b) / CST2 when sanitizing overflow and we rely on
790 overflow being undefined.
791
792 2023-03-09 Jakub Jelinek <jakub@redhat.com>
793 Richard Biener <rguenther@suse.de>
794
795 PR tree-optimization/109008
796 * range-op-float.cc (float_widen_lhs_range): New function.
797 (foperator_plus::op1_range, foperator_minus::op1_range,
798 foperator_minus::op2_range, foperator_mult::op1_range,
799 foperator_div::op1_range, foperator_div::op2_range): Use it.
800
801 2023-03-07 Jonathan Grant <jg@jguk.org>
802
803 PR sanitizer/81649
804 * doc/invoke.texi (Instrumentation Options): Clarify
805 LeakSanitizer behavior.
806
807 2023-03-07 Benson Muite <benson_muite@emailplus.org>
808
809 * doc/install.texi (Prerequisites): Add link to gmplib.org.
810
811 2023-03-07 Pan Li <pan2.li@intel.com>
812 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
813
814 PR target/108185
815 PR target/108654
816 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
817 modes.
818 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
819 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
820 * genmodes.cc (adj_precision): New.
821 (ADJUST_PRECISION): New.
822 (emit_mode_adjustments): Handle ADJUST_PRECISION.
823
824 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
825
826 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
827
828 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
829
830 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
831 {s|u}{max|min} in QI, HI and DI modes.
832 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
833 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
834 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
835 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
836 saved in SGPRs.
837
838 2023-03-06 Richard Biener <rguenther@suse.de>
839
840 PR tree-optimization/109025
841 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
842 the inner LC PHI use is the inner loop PHI latch definition
843 before classifying an outer PHI as double reduction.
844
845 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
846
847 PR target/108429
848 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
849 generic.
850 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
851 (X86_TUNE_USE_SCATTER): Likewise.
852
853 2023-03-06 Xi Ruoyao <xry111@xry111.site>
854
855 PR target/109000
856 * config/loongarch/loongarch.h (FP_RETURN): Use
857 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
858 (UNITS_PER_FP_ARG): Likewise.
859
860 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
861
862 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
863 (pass_vsetvl::backward_demand_fusion): Ditto.
864
865 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
866 SiYu Wu <siyu@isrc.iscas.ac.cn>
867
868 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
869 instructions.
870 (riscv_sm3p1_<mode>): New.
871 (riscv_sm4ed_<mode>): New.
872 (riscv_sm4ks_<mode>): New.
873 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
874 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
875 ZKSH's built-in functions.
876
877 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
878 SiYu Wu <siyu@isrc.iscas.ac.cn>
879
880 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
881 (riscv_sha256sig1_<mode>): New.
882 (riscv_sha256sum0_<mode>): New.
883 (riscv_sha256sum1_<mode>): New.
884 (riscv_sha512sig0h): New.
885 (riscv_sha512sig0l): New.
886 (riscv_sha512sig1h): New.
887 (riscv_sha512sig1l): New.
888 (riscv_sha512sum0r): New.
889 (riscv_sha512sum1r): New.
890 (riscv_sha512sig0): New.
891 (riscv_sha512sig1): New.
892 (riscv_sha512sum0): New.
893 (riscv_sha512sum1): New.
894 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
895 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
896 built-in functions.
897 (DIRECT_BUILTIN): Add new.
898
899 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
900 SiYu Wu <siyu@isrc.iscas.ac.cn>
901
902 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
903 (DsA): New.
904 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
905 (riscv_aes32dsmi): New.
906 (riscv_aes64ds): New.
907 (riscv_aes64dsm): New.
908 (riscv_aes64im): New.
909 (riscv_aes64ks1i): New.
910 (riscv_aes64ks2): New.
911 (riscv_aes32esi): New.
912 (riscv_aes32esmi): New.
913 (riscv_aes64es): New.
914 (riscv_aes64esm): New.
915 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
916 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
917 ZKNE's built-in functions.
918
919 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
920 SiYu Wu <siyu@isrc.iscas.ac.cn>
921
922 * config/riscv/bitmanip.md: Add ZBKB's instructions.
923 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
924 * config/riscv/riscv.md: Add new type for crypto instructions.
925 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
926 description file.
927 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
928 extension's built-in function file.
929
930 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
931 SiYu Wu <siyu@isrc.iscas.ac.cn>
932
933 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
934 (RISCV_FTYPE_NAME3): New.
935 (RISCV_ATYPE_QI): New.
936 (RISCV_ATYPE_HI): New.
937 (RISCV_FTYPE_ATYPES2): New.
938 (RISCV_FTYPE_ATYPES3): New.
939 * config/riscv/riscv-ftypes.def (2): New.
940 (3): New.
941
942 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
943
944 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
945 use exact_log2().
946
947 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
948 kito-cheng <kito.cheng@sifive.com>
949
950 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
951 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
952 (riscv_register_pragmas): Add builtin function check call.
953 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
954 (check_builtin_call): New function.
955 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
956 (class vreinterpret): Ditto.
957 (class vlmul_ext): Ditto.
958 (class vlmul_trunc): Ditto.
959 (class vset): Ditto.
960 (class vget): Ditto.
961 (BASE): Ditto.
962 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
963 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
964 (vluxei16): Ditto.
965 (vluxei32): Ditto.
966 (vluxei64): Ditto.
967 (vloxei8): Ditto.
968 (vloxei16): Ditto.
969 (vloxei32): Ditto.
970 (vloxei64): Ditto.
971 (vsuxei8): Ditto.
972 (vsuxei16): Ditto.
973 (vsuxei32): Ditto.
974 (vsuxei64): Ditto.
975 (vsoxei8): Ditto.
976 (vsoxei16): Ditto.
977 (vsoxei32): Ditto.
978 (vsoxei64): Ditto.
979 (vundefined): Add new intrinsic.
980 (vreinterpret): Ditto.
981 (vlmul_ext): Ditto.
982 (vlmul_trunc): Ditto.
983 (vset): Ditto.
984 (vget): Ditto.
985 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
986 (struct narrow_alu_def): Ditto.
987 (struct reduc_alu_def): Ditto.
988 (struct vundefined_def): Ditto.
989 (struct misc_def): Ditto.
990 (struct vset_def): Ditto.
991 (struct vget_def): Ditto.
992 (SHAPE): Ditto.
993 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
994 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
995 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
996 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
997 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
998 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
999 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
1000 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
1001 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
1002 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
1003 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
1004 (DEF_RVV_LMUL1_OPS): Ditto.
1005 (DEF_RVV_LMUL2_OPS): Ditto.
1006 (DEF_RVV_LMUL4_OPS): Ditto.
1007 (vint16mf4_t): Ditto.
1008 (vint16mf2_t): Ditto.
1009 (vint16m1_t): Ditto.
1010 (vint16m2_t): Ditto.
1011 (vint16m4_t): Ditto.
1012 (vint16m8_t): Ditto.
1013 (vint32mf2_t): Ditto.
1014 (vint32m1_t): Ditto.
1015 (vint32m2_t): Ditto.
1016 (vint32m4_t): Ditto.
1017 (vint32m8_t): Ditto.
1018 (vint64m1_t): Ditto.
1019 (vint64m2_t): Ditto.
1020 (vint64m4_t): Ditto.
1021 (vint64m8_t): Ditto.
1022 (vuint16mf4_t): Ditto.
1023 (vuint16mf2_t): Ditto.
1024 (vuint16m1_t): Ditto.
1025 (vuint16m2_t): Ditto.
1026 (vuint16m4_t): Ditto.
1027 (vuint16m8_t): Ditto.
1028 (vuint32mf2_t): Ditto.
1029 (vuint32m1_t): Ditto.
1030 (vuint32m2_t): Ditto.
1031 (vuint32m4_t): Ditto.
1032 (vuint32m8_t): Ditto.
1033 (vuint64m1_t): Ditto.
1034 (vuint64m2_t): Ditto.
1035 (vuint64m4_t): Ditto.
1036 (vuint64m8_t): Ditto.
1037 (vint8mf4_t): Ditto.
1038 (vint8mf2_t): Ditto.
1039 (vint8m1_t): Ditto.
1040 (vint8m2_t): Ditto.
1041 (vint8m4_t): Ditto.
1042 (vint8m8_t): Ditto.
1043 (vuint8mf4_t): Ditto.
1044 (vuint8mf2_t): Ditto.
1045 (vuint8m1_t): Ditto.
1046 (vuint8m2_t): Ditto.
1047 (vuint8m4_t): Ditto.
1048 (vuint8m8_t): Ditto.
1049 (vint8mf8_t): Ditto.
1050 (vuint8mf8_t): Ditto.
1051 (vfloat32mf2_t): Ditto.
1052 (vfloat32m1_t): Ditto.
1053 (vfloat32m2_t): Ditto.
1054 (vfloat32m4_t): Ditto.
1055 (vfloat64m1_t): Ditto.
1056 (vfloat64m2_t): Ditto.
1057 (vfloat64m4_t): Ditto.
1058 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
1059 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
1060 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
1061 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
1062 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
1063 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
1064 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
1065 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
1066 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
1067 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
1068 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
1069 (DEF_RVV_LMUL1_OPS): Ditto.
1070 (DEF_RVV_LMUL2_OPS): Ditto.
1071 (DEF_RVV_LMUL4_OPS): Ditto.
1072 (DEF_RVV_TYPE_INDEX): Ditto.
1073 (required_extensions_p): Adapt for new intrinsic support/
1074 (get_required_extensions): New function.
1075 (check_required_extensions): Ditto.
1076 (unsigned_base_type_p): Remove.
1077 (rvv_arg_type_info::get_scalar_ptr_type): New function.
1078 (get_mode_for_bitsize): Remove.
1079 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
1080 (rvv_arg_type_info::get_base_vector_type): Ditto.
1081 (rvv_arg_type_info::get_function_type_index): Ditto.
1082 (DEF_RVV_BASE_TYPE): New def.
1083 (function_builder::apply_predication): New class.
1084 (function_expander::mask_mode): Ditto.
1085 (function_checker::function_checker): Ditto.
1086 (function_checker::report_non_ice): Ditto.
1087 (function_checker::report_out_of_range): Ditto.
1088 (function_checker::require_immediate): Ditto.
1089 (function_checker::require_immediate_range): Ditto.
1090 (function_checker::check): Ditto.
1091 (check_builtin_call): Ditto.
1092 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
1093 (DEF_RVV_BASE_TYPE): Ditto.
1094 (DEF_RVV_TYPE_INDEX): Ditto.
1095 (vbool64_t): Ditto.
1096 (vbool32_t): Ditto.
1097 (vbool16_t): Ditto.
1098 (vbool8_t): Ditto.
1099 (vbool4_t): Ditto.
1100 (vbool2_t): Ditto.
1101 (vbool1_t): Ditto.
1102 (vuint8mf8_t): Ditto.
1103 (vuint8mf4_t): Ditto.
1104 (vuint8mf2_t): Ditto.
1105 (vuint8m1_t): Ditto.
1106 (vuint8m2_t): Ditto.
1107 (vint8m4_t): Ditto.
1108 (vuint8m4_t): Ditto.
1109 (vint8m8_t): Ditto.
1110 (vuint8m8_t): Ditto.
1111 (vint16mf4_t): Ditto.
1112 (vuint16mf2_t): Ditto.
1113 (vuint16m1_t): Ditto.
1114 (vuint16m2_t): Ditto.
1115 (vuint16m4_t): Ditto.
1116 (vuint16m8_t): Ditto.
1117 (vint32mf2_t): Ditto.
1118 (vuint32m1_t): Ditto.
1119 (vuint32m2_t): Ditto.
1120 (vuint32m4_t): Ditto.
1121 (vuint32m8_t): Ditto.
1122 (vuint64m1_t): Ditto.
1123 (vuint64m2_t): Ditto.
1124 (vuint64m4_t): Ditto.
1125 (vuint64m8_t): Ditto.
1126 (vfloat32mf2_t): Ditto.
1127 (vfloat32m1_t): Ditto.
1128 (vfloat32m2_t): Ditto.
1129 (vfloat32m4_t): Ditto.
1130 (vfloat32m8_t): Ditto.
1131 (vfloat64m1_t): Ditto.
1132 (vfloat64m4_t): Ditto.
1133 (vector): Move it def.
1134 (scalar): Ditto.
1135 (mask): Ditto.
1136 (signed_vector): Ditto.
1137 (unsigned_vector): Ditto.
1138 (unsigned_scalar): Ditto.
1139 (vector_ptr): Ditto.
1140 (scalar_ptr): Ditto.
1141 (scalar_const_ptr): Ditto.
1142 (void): Ditto.
1143 (size): Ditto.
1144 (ptrdiff): Ditto.
1145 (unsigned_long): Ditto.
1146 (long): Ditto.
1147 (eew8_index): Ditto.
1148 (eew16_index): Ditto.
1149 (eew32_index): Ditto.
1150 (eew64_index): Ditto.
1151 (shift_vector): Ditto.
1152 (double_trunc_vector): Ditto.
1153 (quad_trunc_vector): Ditto.
1154 (oct_trunc_vector): Ditto.
1155 (double_trunc_scalar): Ditto.
1156 (double_trunc_signed_vector): Ditto.
1157 (double_trunc_unsigned_vector): Ditto.
1158 (double_trunc_unsigned_scalar): Ditto.
1159 (double_trunc_float_vector): Ditto.
1160 (float_vector): Ditto.
1161 (lmul1_vector): Ditto.
1162 (widen_lmul1_vector): Ditto.
1163 (eew8_interpret): Ditto.
1164 (eew16_interpret): Ditto.
1165 (eew32_interpret): Ditto.
1166 (eew64_interpret): Ditto.
1167 (vlmul_ext_x2): Ditto.
1168 (vlmul_ext_x4): Ditto.
1169 (vlmul_ext_x8): Ditto.
1170 (vlmul_ext_x16): Ditto.
1171 (vlmul_ext_x32): Ditto.
1172 (vlmul_ext_x64): Ditto.
1173 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
1174 (struct function_type_info): New function.
1175 (struct rvv_arg_type_info): Ditto.
1176 (class function_checker): New class.
1177 (rvv_arg_type_info::get_scalar_type): New function.
1178 (rvv_arg_type_info::get_vector_type): Ditto.
1179 (function_expander::ret_mode): New function.
1180 (function_checker::arg_mode): Ditto.
1181 (function_checker::ret_mode): Ditto.
1182 * config/riscv/t-riscv: Add generator.
1183 * config/riscv/vector-iterators.md: New iterators.
1184 * config/riscv/vector.md (vundefined<mode>): New pattern.
1185 (@vundefined<mode>): Ditto.
1186 (@vreinterpret<mode>): Ditto.
1187 (@vlmul_extx2<mode>): Ditto.
1188 (@vlmul_extx4<mode>): Ditto.
1189 (@vlmul_extx8<mode>): Ditto.
1190 (@vlmul_extx16<mode>): Ditto.
1191 (@vlmul_extx32<mode>): Ditto.
1192 (@vlmul_extx64<mode>): Ditto.
1193 (*vlmul_extx2<mode>): Ditto.
1194 (*vlmul_extx4<mode>): Ditto.
1195 (*vlmul_extx8<mode>): Ditto.
1196 (*vlmul_extx16<mode>): Ditto.
1197 (*vlmul_extx32<mode>): Ditto.
1198 (*vlmul_extx64<mode>): Ditto.
1199 * config/riscv/genrvv-type-indexer.cc: New file.
1200
1201 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1202
1203 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
1204 (slide1_sew64_helper): New function.
1205 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
1206 (get_unknown_min_value): Ditto.
1207 (force_vector_length_operand): Ditto.
1208 (gen_no_side_effects_vsetvl_rtx): Ditto.
1209 (get_vl_x2_rtx): Ditto.
1210 (slide1_sew64_helper): Ditto.
1211 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
1212 (class vrgather): Ditto.
1213 (class vrgatherei16): Ditto.
1214 (class vcompress): Ditto.
1215 (BASE): Ditto.
1216 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1217 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
1218 (vslidedown): Ditto.
1219 (vslide1up): Ditto.
1220 (vslide1down): Ditto.
1221 (vfslide1up): Ditto.
1222 (vfslide1down): Ditto.
1223 (vrgather): Ditto.
1224 (vrgatherei16): Ditto.
1225 (vcompress): Ditto.
1226 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
1227 (vint8mf8_t): Ditto.
1228 (vint8mf4_t): Ditto.
1229 (vint8mf2_t): Ditto.
1230 (vint8m1_t): Ditto.
1231 (vint8m2_t): Ditto.
1232 (vint8m4_t): Ditto.
1233 (vint16mf4_t): Ditto.
1234 (vint16mf2_t): Ditto.
1235 (vint16m1_t): Ditto.
1236 (vint16m2_t): Ditto.
1237 (vint16m4_t): Ditto.
1238 (vint16m8_t): Ditto.
1239 (vint32mf2_t): Ditto.
1240 (vint32m1_t): Ditto.
1241 (vint32m2_t): Ditto.
1242 (vint32m4_t): Ditto.
1243 (vint32m8_t): Ditto.
1244 (vint64m1_t): Ditto.
1245 (vint64m2_t): Ditto.
1246 (vint64m4_t): Ditto.
1247 (vint64m8_t): Ditto.
1248 (vuint8mf8_t): Ditto.
1249 (vuint8mf4_t): Ditto.
1250 (vuint8mf2_t): Ditto.
1251 (vuint8m1_t): Ditto.
1252 (vuint8m2_t): Ditto.
1253 (vuint8m4_t): Ditto.
1254 (vuint16mf4_t): Ditto.
1255 (vuint16mf2_t): Ditto.
1256 (vuint16m1_t): Ditto.
1257 (vuint16m2_t): Ditto.
1258 (vuint16m4_t): Ditto.
1259 (vuint16m8_t): Ditto.
1260 (vuint32mf2_t): Ditto.
1261 (vuint32m1_t): Ditto.
1262 (vuint32m2_t): Ditto.
1263 (vuint32m4_t): Ditto.
1264 (vuint32m8_t): Ditto.
1265 (vuint64m1_t): Ditto.
1266 (vuint64m2_t): Ditto.
1267 (vuint64m4_t): Ditto.
1268 (vuint64m8_t): Ditto.
1269 (vfloat32mf2_t): Ditto.
1270 (vfloat32m1_t): Ditto.
1271 (vfloat32m2_t): Ditto.
1272 (vfloat32m4_t): Ditto.
1273 (vfloat32m8_t): Ditto.
1274 (vfloat64m1_t): Ditto.
1275 (vfloat64m2_t): Ditto.
1276 (vfloat64m4_t): Ditto.
1277 (vfloat64m8_t): Ditto.
1278 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
1279 * config/riscv/riscv.md: Adjust RVV instruction types.
1280 * config/riscv/vector-iterators.md (down): New iterator.
1281 (=vd,vr): New attribute.
1282 (UNSPEC_VSLIDE1UP): New unspec.
1283 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
1284 (*pred_slide<ud><mode>): Ditto.
1285 (*pred_slide<ud><mode>_extended): Ditto.
1286 (@pred_gather<mode>): Ditto.
1287 (@pred_gather<mode>_scalar): Ditto.
1288 (@pred_gatherei16<mode>): Ditto.
1289 (@pred_compress<mode>): Ditto.
1290
1291 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1292
1293 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
1294
1295 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1296
1297 * config/riscv/constraints.md (Wb1): New constraint.
1298 * config/riscv/predicates.md
1299 (vector_least_significant_set_mask_operand): New predicate.
1300 (vector_broadcast_mask_operand): Ditto.
1301 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
1302 (gen_scalar_move_mask): New function.
1303 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
1304 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
1305 (class vmv_s): Ditto.
1306 (BASE): Ditto.
1307 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1308 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
1309 (vmv_s): Ditto.
1310 (vfmv_f): Ditto.
1311 (vfmv_s): Ditto.
1312 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
1313 (SHAPE): Ditto.
1314 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1315 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
1316 (function_expander::use_exact_insn): New function.
1317 (function_expander::use_contiguous_load_insn): New function.
1318 (function_expander::use_contiguous_store_insn): New function.
1319 (function_expander::use_ternop_insn): New function.
1320 (function_expander::use_widen_ternop_insn): New function.
1321 (function_expander::use_scalar_move_insn): New function.
1322 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
1323 * config/riscv/riscv-vector-builtins.h
1324 (function_expander::add_scalar_move_mask_operand): New class.
1325 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
1326 (scalar_move_insn_p): Ditto.
1327 (has_vsetvl_killed_avl_p): Ditto.
1328 (anticipatable_occurrence_p): Ditto.
1329 (insert_vsetvl): Ditto.
1330 (get_vl_vtype_info): Ditto.
1331 (calculate_sew): Ditto.
1332 (calculate_vlmul): Ditto.
1333 (incompatible_avl_p): Ditto.
1334 (different_sew_p): Ditto.
1335 (different_lmul_p): Ditto.
1336 (different_ratio_p): Ditto.
1337 (different_tail_policy_p): Ditto.
1338 (different_mask_policy_p): Ditto.
1339 (possible_zero_avl_p): Ditto.
1340 (first_ratio_invalid_for_second_sew_p): Ditto.
1341 (first_ratio_invalid_for_second_lmul_p): Ditto.
1342 (second_ratio_invalid_for_first_sew_p): Ditto.
1343 (second_ratio_invalid_for_first_lmul_p): Ditto.
1344 (second_sew_less_than_first_sew_p): Ditto.
1345 (first_sew_less_than_second_sew_p): Ditto.
1346 (compare_lmul): Ditto.
1347 (second_lmul_less_than_first_lmul_p): Ditto.
1348 (first_lmul_less_than_second_lmul_p): Ditto.
1349 (first_ratio_less_than_second_ratio_p): Ditto.
1350 (second_ratio_less_than_first_ratio_p): Ditto.
1351 (DEF_INCOMPATIBLE_COND): Ditto.
1352 (greatest_sew): Ditto.
1353 (first_sew): Ditto.
1354 (second_sew): Ditto.
1355 (first_vlmul): Ditto.
1356 (second_vlmul): Ditto.
1357 (first_ratio): Ditto.
1358 (second_ratio): Ditto.
1359 (vlmul_for_first_sew_second_ratio): Ditto.
1360 (ratio_for_second_sew_first_vlmul): Ditto.
1361 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
1362 (always_unavailable): Ditto.
1363 (avl_unavailable_p): Ditto.
1364 (sew_unavailable_p): Ditto.
1365 (lmul_unavailable_p): Ditto.
1366 (ge_sew_unavailable_p): Ditto.
1367 (ge_sew_lmul_unavailable_p): Ditto.
1368 (ge_sew_ratio_unavailable_p): Ditto.
1369 (DEF_UNAVAILABLE_COND): Ditto.
1370 (same_sew_lmul_demand_p): Ditto.
1371 (propagate_avl_across_demands_p): Ditto.
1372 (reg_available_p): Ditto.
1373 (avl_info::has_non_zero_avl): Ditto.
1374 (vl_vtype_info::has_non_zero_avl): Ditto.
1375 (vector_insn_info::operator>=): Refactor.
1376 (vector_insn_info::parse_insn): Adjust for scalar move.
1377 (vector_insn_info::demand_vl_vtype): Remove.
1378 (vector_insn_info::compatible_p): New function.
1379 (vector_insn_info::compatible_avl_p): Ditto.
1380 (vector_insn_info::compatible_vtype_p): Ditto.
1381 (vector_insn_info::available_p): Ditto.
1382 (vector_insn_info::merge): Ditto.
1383 (vector_insn_info::fuse_avl): Ditto.
1384 (vector_insn_info::fuse_sew_lmul): Ditto.
1385 (vector_insn_info::fuse_tail_policy): Ditto.
1386 (vector_insn_info::fuse_mask_policy): Ditto.
1387 (vector_insn_info::dump): Ditto.
1388 (vector_infos_manager::release): Ditto.
1389 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
1390 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
1391 (pass_vsetvl::hard_empty_block_p): Ditto.
1392 (pass_vsetvl::backward_demand_fusion): Ditto.
1393 (pass_vsetvl::forward_demand_fusion): Ditto.
1394 (pass_vsetvl::refine_vsetvls): Ditto.
1395 (pass_vsetvl::cleanup_vsetvls): Ditto.
1396 (pass_vsetvl::commit_vsetvls): Ditto.
1397 (pass_vsetvl::propagate_avl): Ditto.
1398 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
1399 (struct demands_pair): Ditto.
1400 (struct demands_cond): Ditto.
1401 (struct demands_fuse_rule): Ditto.
1402 * config/riscv/vector-iterators.md: New iterator.
1403 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
1404 (*pred_broadcast<mode>): Ditto.
1405 (*pred_broadcast<mode>_extended_scalar): Ditto.
1406 (@pred_extract_first<mode>): Ditto.
1407 (*pred_extract_first<mode>): Ditto.
1408 (@pred_extract_first_trunc<mode>): Ditto.
1409 * config/riscv/riscv-vsetvl.def: New file.
1410
1411 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
1412
1413 * config/riscv/bitmanip.md: allow 0 constant in max/min
1414 pattern.
1415
1416 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
1417
1418 * config/riscv/bitmanip.md: Fix wrong index in the check.
1419
1420 2023-03-04 Jakub Jelinek <jakub@redhat.com>
1421
1422 PR middle-end/109006
1423 * vec.cc (test_auto_alias): Adjust comment for removal of
1424 m_vecdata.
1425 * read-rtl-function.cc (function_reader::parse_block): Likewise.
1426 * gdbhooks.py: Likewise.
1427
1428 2023-03-04 Jakub Jelinek <jakub@redhat.com>
1429
1430 PR testsuite/108973
1431 * selftest-diagnostic.cc
1432 (test_diagnostic_context::test_diagnostic_context): Set
1433 caret_max_width to 80.
1434
1435 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1436
1437 * gimple-ssa-warn-access.cc
1438 (pass_waccess::check_dangling_stores): Skip non-stores.
1439
1440 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1441
1442 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
1443 after vmsr and vmrs, and lower the case of P0.
1444
1445 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
1446
1447 PR middle-end/109006
1448 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
1449
1450 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
1451
1452 PR middle-end/109006
1453 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
1454
1455 2023-03-03 Jakub Jelinek <jakub@redhat.com>
1456
1457 PR c/108986
1458 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
1459 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
1460 suppressed on stmt. For [static %E] warning, print access_nelts
1461 rather than access_size. Fix up comment wording.
1462
1463 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
1464
1465 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
1466 arch14 instead of z16.
1467
1468 2023-03-03 Anthony Green <green@moxielogic.com>
1469
1470 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
1471
1472 2023-03-03 Anthony Green <green@moxielogic.com>
1473
1474 * config/moxie/constraints.md (A, B, W): Change
1475 define_constraint to define_memory_constraint.
1476
1477 2023-03-03 Xi Ruoyao <xry111@xry111.site>
1478
1479 * toplev.cc (process_options): Fix the spelling of
1480 "-fstack-clash-protection".
1481
1482 2023-03-03 Richard Biener <rguenther@suse.de>
1483
1484 PR tree-optimization/109002
1485 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
1486 PHI-translate ANTIC_IN.
1487
1488 2023-03-03 Jakub Jelinek <jakub@redhat.com>
1489
1490 PR tree-optimization/108988
1491 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
1492 size_type_node before passing it as argument to fwrite. Formatting
1493 fixes.
1494
1495 2023-03-03 Richard Biener <rguenther@suse.de>
1496
1497 PR target/108738
1498 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
1499 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
1500 * config/i386/i386-features.h (scalar_chain::max_visits): New.
1501 (scalar_chain::build): Add bitmap parameter, return boolean.
1502 (scalar_chain::add_insn): Likewise.
1503 (scalar_chain::analyze_register_chain): Likewise.
1504 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
1505 Initialize max_visits.
1506 (scalar_chain::analyze_register_chain): When we exhaust
1507 max_visits, abort. Also abort when running into any
1508 disallowed insn.
1509 (scalar_chain::add_insn): Propagate abort.
1510 (scalar_chain::build): Likewise. When aborting amend
1511 the set of disallowed insn with the insns set.
1512 (convert_scalars_to_vector): Adjust. Do not convert aborted
1513 chains.
1514
1515 2023-03-03 Richard Biener <rguenther@suse.de>
1516
1517 PR debug/108772
1518 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
1519 generate a DIE for a function scope static.
1520
1521 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1522
1523 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
1524
1525 2023-03-02 Jakub Jelinek <jakub@redhat.com>
1526
1527 PR target/108883
1528 * target.h (emit_support_tinfos_callback): New typedef.
1529 * targhooks.h (default_emit_support_tinfos): Declare.
1530 * targhooks.cc (default_emit_support_tinfos): New function.
1531 * target.def (emit_support_tinfos): New target hook.
1532 * doc/tm.texi.in (emit_support_tinfos): Document it.
1533 * doc/tm.texi: Regenerated.
1534 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
1535 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
1536
1537 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
1538
1539 * ira-costs.cc: Include print-rtl.h.
1540 (record_reg_classes, scan_one_insn): Add code to print debug info.
1541 (record_operand_costs): Find and use smaller cost for hard reg
1542 move.
1543
1544 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
1545 Paul-Antoine Arras <pa@codesourcery.com>
1546
1547 * builtins.cc (mathfn_built_in_explicit): New.
1548 * config/gcn/gcn.cc: Include case-cfn-macros.h.
1549 (mathfn_built_in_explicit): Add prototype.
1550 (gcn_vectorize_builtin_vectorized_function): New.
1551 (gcn_libc_has_function): New.
1552 (TARGET_LIBC_HAS_FUNCTION): Define.
1553 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
1554
1555 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
1556
1557 PR tree-optimization/108979
1558 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
1559 operations on invariants.
1560
1561 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
1562
1563 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
1564 * config/s390/s390.cc (s390_option_override_internal): Make
1565 partial vector usage the default from z13 on.
1566 * config/s390/vector.md (len_load_v16qi): Add.
1567 (len_store_v16qi): Add.
1568
1569 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
1570
1571 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
1572 of constant 0 offset.
1573
1574 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
1575
1576 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
1577 instead of long.
1578 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
1579
1580 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
1581
1582 * config.gcc: add -with-{no-}msa build option.
1583 * config/mips/mips.h: Likewise.
1584 * doc/install.texi: Likewise.
1585
1586 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
1587
1588 PR tree-optimization/108603
1589 * explow.cc (convert_memory_address_addr_space_1): Only wrap
1590 the result of a recursive call in a CONST if no instructions
1591 were emitted.
1592
1593 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
1594
1595 PR tree-optimization/108430
1596 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
1597 of inverted condition.
1598
1599 2023-03-02 Jakub Jelinek <jakub@redhat.com>
1600
1601 PR c++/108934
1602 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
1603 comparison copy the bytes from ptr to a temporary buffer and clearing
1604 padding bits in there.
1605
1606 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
1607
1608 PR middle-end/108545
1609 * gimplify.cc (struct tree_operand_hash_no_se): New.
1610 (omp_index_mapping_groups_1, omp_index_mapping_groups,
1611 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
1612 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
1613 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
1614 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
1615 of tree_operand_hash.
1616
1617 2023-03-01 LIU Hao <lh_mouse@126.com>
1618
1619 PR pch/14940
1620 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
1621 Remove the size limit `pch_VA_max_size`
1622
1623 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
1624
1625 PR middle-end/108546
1626 * omp-low.cc (lower_omp_target): Remove optional handling
1627 on the receiver side, i.e. inside target (data), for
1628 use_device_ptr.
1629
1630 2023-03-01 Jakub Jelinek <jakub@redhat.com>
1631
1632 PR debug/108967
1633 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
1634 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
1635
1636 2023-03-01 Richard Biener <rguenther@suse.de>
1637
1638 PR tree-optimization/108970
1639 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
1640 Check we can copy the BBs.
1641 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
1642 check.
1643 (vect_do_peeling): Streamline error handling.
1644
1645 2023-03-01 Richard Biener <rguenther@suse.de>
1646
1647 PR tree-optimization/108950
1648 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
1649 Check oprnd0 is defined in the loop.
1650 * tree-vect-loop.cc (vectorizable_reduction): Record all
1651 operands vector types, compute that of invariants and
1652 properly update their SLP nodes.
1653
1654 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
1655
1656 PR target/108240
1657 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
1658 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
1659
1660 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
1661
1662 PR middle-end/107411
1663 PR middle-end/107411
1664 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
1665 xasprintf.
1666 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
1667 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
1668
1669 2023-02-28 Jakub Jelinek <jakub@redhat.com>
1670
1671 PR sanitizer/108894
1672 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
1673 comparison rather than index > bound.
1674 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
1675 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
1676 * doc/invoke.texi (-fsanitize=bounds): Document that whether
1677 flexible array member-like arrays are instrumented or not depends
1678 on -fstrict-flex-arrays* options of strict_flex_array attributes.
1679 (-fsanitize=bounds-strict): Document that flexible array members
1680 are not instrumented.
1681
1682 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
1683
1684 PR target/108922
1685 Revert:
1686 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
1687 (fmod<mode>3): Ditto.
1688 (fpremxf4_i387): Ditto.
1689 (reminderxf3): Ditto.
1690 (reminder<mode>3): Ditto.
1691 (fprem1xf4_i387): Ditto.
1692
1693 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
1694
1695 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
1696 generating FFS with mismatched operand and result modes, by using
1697 an explicit SIGN_EXTEND/ZERO_EXTEND.
1698 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
1699 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
1700
1701 2023-02-27 Patrick Palka <ppalka@redhat.com>
1702
1703 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
1704 * lra-int.h (lra_change_class): Likewise.
1705 * recog.h (which_op_alt): Likewise.
1706 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
1707 instead of static.
1708
1709 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1710
1711 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
1712 New prototype.
1713 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
1714 New function.
1715 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
1716 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
1717
1718 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
1719
1720 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
1721 (xtensa_get_config_v3): New functions.
1722
1723 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1724
1725 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
1726
1727 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
1728
1729 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
1730 the macro to 0x1000000000.
1731
1732 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
1733
1734 PR modula2/108261
1735 * doc/gm2.texi (-fm2-pathname): New option documented.
1736 (-fm2-pathnameI): New option documented.
1737 (-fm2-prefix=): New option documented.
1738 (-fruntime-modules=): Update default module list.
1739
1740 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
1741
1742 PR target/108919
1743 * config/xtensa/xtensa-protos.h
1744 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
1745 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
1746 to xtensa_expand_call.
1747 (xtensa_expand_call): Emit the call and add a clobber expression
1748 for the static chain to it in case of windowed ABI.
1749 * config/xtensa/xtensa.md (call, call_value, sibcall)
1750 (sibcall_value): Call xtensa_expand_call and complete expansion
1751 right after that call.
1752
1753 2023-02-24 Richard Biener <rguenther@suse.de>
1754
1755 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
1756 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
1757 changing alignment of vec<T, A, vl_embed> and simplifying
1758 address.
1759 (vec<T, A, vl_embed>::address): Compute as this + 1.
1760 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
1761 vector instead of the offset of the m_vecdata member.
1762 (auto_vec<T, N>::m_data): Turn storage into
1763 uninitialized unsigned char.
1764 (auto_vec<T, N>::auto_vec): Allow allocation of one
1765 stack member. Initialize m_vec in a special way to
1766 avoid later stringop overflow diagnostics.
1767 * vec.cc (test_auto_alias): New.
1768 (vec_cc_tests): Call it.
1769
1770 2023-02-24 Richard Biener <rguenther@suse.de>
1771
1772 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
1773 take a const reference to the object, use address to
1774 access data.
1775 (vec<T, A, vl_embed>::contains): Use address to access data.
1776 (vec<T, A, vl_embed>::operator[]): Use address instead of
1777 m_vecdata to access data.
1778 (vec<T, A, vl_embed>::iterate): Likewise.
1779 (vec<T, A, vl_embed>::copy): Likewise.
1780 (vec<T, A, vl_embed>::quick_push): Likewise.
1781 (vec<T, A, vl_embed>::pop): Likewise.
1782 (vec<T, A, vl_embed>::quick_insert): Likewise.
1783 (vec<T, A, vl_embed>::ordered_remove): Likewise.
1784 (vec<T, A, vl_embed>::unordered_remove): Likewise.
1785 (vec<T, A, vl_embed>::block_remove): Likewise.
1786 (vec<T, A, vl_heap>::address): Likewise.
1787
1788 2023-02-24 Martin Liska <mliska@suse.cz>
1789
1790 PR sanitizer/108834
1791 * asan.cc (asan_add_global): Use proper TU name for normal
1792 global variables (and aux_base_name for the artificial one).
1793
1794 2023-02-24 Jakub Jelinek <jakub@redhat.com>
1795
1796 * config/i386/i386-builtin.def: Update description of BDESC
1797 and BDESC_FIRST in file comment to include mask2.
1798
1799 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1800
1801 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
1802
1803 2023-02-24 Jakub Jelinek <jakub@redhat.com>
1804
1805 PR middle-end/108854
1806 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
1807 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
1808 nodes and adjust their DECL_CONTEXT.
1809
1810 2023-02-24 Jakub Jelinek <jakub@redhat.com>
1811
1812 PR target/108881
1813 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
1814 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
1815 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
1816 __builtin_ia32_cvtne2ps2bf16_v8bf,
1817 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
1818 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
1819 __builtin_ia32_cvtneps2bf16_v8sf_mask,
1820 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
1821 __builtin_ia32_cvtneps2bf16_v4sf_mask,
1822 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
1823 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
1824 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
1825 __builtin_ia32_dpbf16ps_v4sf_mask,
1826 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
1827 OPTION_MASK_ISA_AVX512VL.
1828
1829 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1830
1831 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
1832 Add non-compact 32-bit multilibs.
1833
1834 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
1835
1836 * config/mips/mips.md (*clo<mode>2): New pattern.
1837
1838 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
1839
1840 * config/mips/mips.h (machine_function): New variable
1841 use_hazard_barrier_return_p.
1842 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
1843 (mips_hb_return_internal): New insn pattern.
1844 * config/mips/mips.cc (mips_attribute_table): Add attribute
1845 use_hazard_barrier_return.
1846 (mips_use_hazard_barrier_return_p): New static function.
1847 (mips_function_attr_inlinable_p): Likewise.
1848 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
1849 Emit error for unsupported architecture choice.
1850 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
1851 Return false for use_hazard_barrier_return.
1852 (mips_expand_epilogue): Emit hazard barrier return.
1853 * doc/extend.texi: Document use_hazard_barrier_return.
1854
1855 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1856
1857 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
1858 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
1859 for the gcc-internal headers.
1860
1861 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1862
1863 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
1864 and $(POSTCOMPILE) instead of manual dependency listing.
1865 * config/xtensa/xtensa-dynconfig.c: Rename to ...
1866 * config/xtensa/xtensa-dynconfig.cc: ... this.
1867
1868 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1869
1870 * doc/cfg.texi: Reorder index entries around @items.
1871 * doc/cpp.texi: Ditto.
1872 * doc/cppenv.texi: Ditto.
1873 * doc/cppopts.texi: Ditto.
1874 * doc/generic.texi: Ditto.
1875 * doc/install.texi: Ditto.
1876 * doc/extend.texi: Ditto.
1877 * doc/invoke.texi: Ditto.
1878 * doc/md.texi: Ditto.
1879 * doc/rtl.texi: Ditto.
1880 * doc/tm.texi.in: Ditto.
1881 * doc/trouble.texi: Ditto.
1882 * doc/tm.texi: Regenerate.
1883
1884 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1885
1886 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
1887 the occurrence of general-purpose register used only once and for
1888 transferring intermediate value.
1889
1890 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1891
1892 * config/xtensa/xtensa.cc (machine_function): Add new member
1893 'eliminated_callee_saved_bmp'.
1894 (xtensa_can_eliminate_callee_saved_reg_p): New function to
1895 determine whether the register can be eliminated or not.
1896 (xtensa_expand_prologue): Add invoking the above function and
1897 elimination the use of callee-saved register by using its stack
1898 slot through the stack pointer (or the frame pointer if needed)
1899 directly.
1900 (xtensa_expand_prologue): Modify to not emit register restoration
1901 insn from its stack slot if the register is already eliminated.
1902
1903 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1904
1905 PR translation/108890
1906 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
1907 around fatal_error format strings.
1908
1909 2023-02-23 Richard Biener <rguenther@suse.de>
1910
1911 * tree-ssa-structalias.cc (handle_lhs_call): Do not
1912 re-create rhsc, only truncate it.
1913
1914 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1915
1916 PR middle-end/106258
1917 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
1918 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
1919
1920 2023-02-23 Richard Biener <rguenther@suse.de>
1921
1922 * tree-if-conv.cc (tree_if_conversion): Properly manage
1923 memory of refs and the contained data references.
1924
1925 2023-02-23 Richard Biener <rguenther@suse.de>
1926
1927 PR tree-optimization/108888
1928 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
1929 calls to predicate.
1930 (predicate_statements): Only predicate calls with PLF_2.
1931
1932 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1933
1934 * config/xtensa/xtensa.md
1935 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
1936 Add missing "SI:" to PLUS RTXes.
1937
1938 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1939
1940 PR target/108876
1941 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
1942 Emit (use (reg:SI A0_REG)) at the end in the sibling call
1943 (i.e. the same place as (return) in the normal call).
1944
1945 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1946
1947 Revert:
1948 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1949
1950 PR target/108876
1951 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1952 for A0_REG.
1953 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1954 (sibcall_value, sibcall_value_internal): Add 'use' expression
1955 for A0_REG.
1956
1957 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
1958
1959 * doc/cppdiropts.texi: Reorder @opindex commands to precede
1960 @items they relate to.
1961 * doc/cppopts.texi: Ditto.
1962 * doc/cppwarnopts.texi: Ditto.
1963 * doc/invoke.texi: Ditto.
1964 * doc/lto.texi: Ditto.
1965
1966 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
1967
1968 * internal-fn.cc (expand_MASK_CALL): New.
1969 * internal-fn.def (MASK_CALL): New.
1970 * internal-fn.h (expand_MASK_CALL): New prototype.
1971 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
1972 for mask arguments also.
1973 * tree-if-conv.cc: Include cgraph.h.
1974 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
1975 (predicate_statements): Convert functions to IFN_MASK_CALL.
1976 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
1977 IFN_MASK_CALL as a SIMD function call.
1978 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
1979 IFN_MASK_CALL as an inbranch SIMD function call.
1980 Generate the mask vector arguments.
1981
1982 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1983
1984 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
1985 (class widen_reducop): Ditto.
1986 (class freducop): Ditto.
1987 (class widen_freducop): Ditto.
1988 (BASE): Ditto.
1989 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1990 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
1991 (vredmaxu): Ditto.
1992 (vredmax): Ditto.
1993 (vredminu): Ditto.
1994 (vredmin): Ditto.
1995 (vredand): Ditto.
1996 (vredor): Ditto.
1997 (vredxor): Ditto.
1998 (vwredsum): Ditto.
1999 (vwredsumu): Ditto.
2000 (vfredusum): Ditto.
2001 (vfredosum): Ditto.
2002 (vfredmax): Ditto.
2003 (vfredmin): Ditto.
2004 (vfwredosum): Ditto.
2005 (vfwredusum): Ditto.
2006 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
2007 (SHAPE): Ditto.
2008 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2009 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
2010 (DEF_RVV_WU_OPS): Ditto.
2011 (DEF_RVV_WF_OPS): Ditto.
2012 (vint8mf8_t): Ditto.
2013 (vint8mf4_t): Ditto.
2014 (vint8mf2_t): Ditto.
2015 (vint8m1_t): Ditto.
2016 (vint8m2_t): Ditto.
2017 (vint8m4_t): Ditto.
2018 (vint8m8_t): Ditto.
2019 (vint16mf4_t): Ditto.
2020 (vint16mf2_t): Ditto.
2021 (vint16m1_t): Ditto.
2022 (vint16m2_t): Ditto.
2023 (vint16m4_t): Ditto.
2024 (vint16m8_t): Ditto.
2025 (vint32mf2_t): Ditto.
2026 (vint32m1_t): Ditto.
2027 (vint32m2_t): Ditto.
2028 (vint32m4_t): Ditto.
2029 (vint32m8_t): Ditto.
2030 (vuint8mf8_t): Ditto.
2031 (vuint8mf4_t): Ditto.
2032 (vuint8mf2_t): Ditto.
2033 (vuint8m1_t): Ditto.
2034 (vuint8m2_t): Ditto.
2035 (vuint8m4_t): Ditto.
2036 (vuint8m8_t): Ditto.
2037 (vuint16mf4_t): Ditto.
2038 (vuint16mf2_t): Ditto.
2039 (vuint16m1_t): Ditto.
2040 (vuint16m2_t): Ditto.
2041 (vuint16m4_t): Ditto.
2042 (vuint16m8_t): Ditto.
2043 (vuint32mf2_t): Ditto.
2044 (vuint32m1_t): Ditto.
2045 (vuint32m2_t): Ditto.
2046 (vuint32m4_t): Ditto.
2047 (vuint32m8_t): Ditto.
2048 (vfloat32mf2_t): Ditto.
2049 (vfloat32m1_t): Ditto.
2050 (vfloat32m2_t): Ditto.
2051 (vfloat32m4_t): Ditto.
2052 (vfloat32m8_t): Ditto.
2053 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
2054 (DEF_RVV_WU_OPS): Ditto.
2055 (DEF_RVV_WF_OPS): Ditto.
2056 (required_extensions_p): Add reduction support.
2057 (rvv_arg_type_info::get_base_vector_type): Ditto.
2058 (rvv_arg_type_info::get_tree_type): Ditto.
2059 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
2060 * config/riscv/riscv.md: Ditto.
2061 * config/riscv/vector-iterators.md (minu): Ditto.
2062 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
2063 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
2064 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
2065 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
2066 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
2067 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
2068 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
2069
2070 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2071
2072 * config/riscv/iterators.md: New iterator.
2073 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
2074 (enum ternop_type): New enum.
2075 (class vmacc): New class.
2076 (class imac): Ditto.
2077 (class vnmsac): Ditto.
2078 (enum widen_ternop_type): New enum.
2079 (class vmadd): Ditto.
2080 (class vnmsub): Ditto.
2081 (class iwmac): Ditto.
2082 (class vwmacc): Ditto.
2083 (class vwmaccu): Ditto.
2084 (class vwmaccsu): Ditto.
2085 (class vwmaccus): Ditto.
2086 (class reverse_binop): Ditto.
2087 (class vfmacc): Ditto.
2088 (class vfnmsac): Ditto.
2089 (class vfmadd): Ditto.
2090 (class vfnmsub): Ditto.
2091 (class vfnmacc): Ditto.
2092 (class vfmsac): Ditto.
2093 (class vfnmadd): Ditto.
2094 (class vfmsub): Ditto.
2095 (class vfwmacc): Ditto.
2096 (class vfwnmacc): Ditto.
2097 (class vfwmsac): Ditto.
2098 (class vfwnmsac): Ditto.
2099 (class float_misc): Ditto.
2100 (class fcmp): Ditto.
2101 (class vfclass): Ditto.
2102 (class vfcvt_x): Ditto.
2103 (class vfcvt_rtz_x): Ditto.
2104 (class vfcvt_f): Ditto.
2105 (class vfwcvt_x): Ditto.
2106 (class vfwcvt_rtz_x): Ditto.
2107 (class vfwcvt_f): Ditto.
2108 (class vfncvt_x): Ditto.
2109 (class vfncvt_rtz_x): Ditto.
2110 (class vfncvt_f): Ditto.
2111 (class vfncvt_rod_f): Ditto.
2112 (BASE): Ditto.
2113 * config/riscv/riscv-vector-builtins-bases.h:
2114 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
2115 (vsext): Ditto.
2116 (vfadd): Ditto.
2117 (vfsub): Ditto.
2118 (vfrsub): Ditto.
2119 (vfwadd): Ditto.
2120 (vfwsub): Ditto.
2121 (vfmul): Ditto.
2122 (vfdiv): Ditto.
2123 (vfrdiv): Ditto.
2124 (vfwmul): Ditto.
2125 (vfmacc): Ditto.
2126 (vfnmsac): Ditto.
2127 (vfmadd): Ditto.
2128 (vfnmsub): Ditto.
2129 (vfnmacc): Ditto.
2130 (vfmsac): Ditto.
2131 (vfnmadd): Ditto.
2132 (vfmsub): Ditto.
2133 (vfwmacc): Ditto.
2134 (vfwnmacc): Ditto.
2135 (vfwmsac): Ditto.
2136 (vfwnmsac): Ditto.
2137 (vfsqrt): Ditto.
2138 (vfrsqrt7): Ditto.
2139 (vfrec7): Ditto.
2140 (vfmin): Ditto.
2141 (vfmax): Ditto.
2142 (vfsgnj): Ditto.
2143 (vfsgnjn): Ditto.
2144 (vfsgnjx): Ditto.
2145 (vfneg): Ditto.
2146 (vfabs): Ditto.
2147 (vmfeq): Ditto.
2148 (vmfne): Ditto.
2149 (vmflt): Ditto.
2150 (vmfle): Ditto.
2151 (vmfgt): Ditto.
2152 (vmfge): Ditto.
2153 (vfclass): Ditto.
2154 (vfmerge): Ditto.
2155 (vfmv_v): Ditto.
2156 (vfcvt_x): Ditto.
2157 (vfcvt_xu): Ditto.
2158 (vfcvt_rtz_x): Ditto.
2159 (vfcvt_rtz_xu): Ditto.
2160 (vfcvt_f): Ditto.
2161 (vfwcvt_x): Ditto.
2162 (vfwcvt_xu): Ditto.
2163 (vfwcvt_rtz_x): Ditto.
2164 (vfwcvt_rtz_xu): Ditto.
2165 (vfwcvt_f): Ditto.
2166 (vfncvt_x): Ditto.
2167 (vfncvt_xu): Ditto.
2168 (vfncvt_rtz_x): Ditto.
2169 (vfncvt_rtz_xu): Ditto.
2170 (vfncvt_f): Ditto.
2171 (vfncvt_rod_f): Ditto.
2172 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
2173 (struct move_def): Ditto.
2174 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
2175 (DEF_RVV_CONVERT_I_OPS): Ditto.
2176 (DEF_RVV_CONVERT_U_OPS): Ditto.
2177 (DEF_RVV_WCONVERT_I_OPS): Ditto.
2178 (DEF_RVV_WCONVERT_U_OPS): Ditto.
2179 (DEF_RVV_WCONVERT_F_OPS): Ditto.
2180 (vfloat64m1_t): Ditto.
2181 (vfloat64m2_t): Ditto.
2182 (vfloat64m4_t): Ditto.
2183 (vfloat64m8_t): Ditto.
2184 (vint32mf2_t): Ditto.
2185 (vint32m1_t): Ditto.
2186 (vint32m2_t): Ditto.
2187 (vint32m4_t): Ditto.
2188 (vint32m8_t): Ditto.
2189 (vint64m1_t): Ditto.
2190 (vint64m2_t): Ditto.
2191 (vint64m4_t): Ditto.
2192 (vint64m8_t): Ditto.
2193 (vuint32mf2_t): Ditto.
2194 (vuint32m1_t): Ditto.
2195 (vuint32m2_t): Ditto.
2196 (vuint32m4_t): Ditto.
2197 (vuint32m8_t): Ditto.
2198 (vuint64m1_t): Ditto.
2199 (vuint64m2_t): Ditto.
2200 (vuint64m4_t): Ditto.
2201 (vuint64m8_t): Ditto.
2202 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
2203 (DEF_RVV_CONVERT_U_OPS): Ditto.
2204 (DEF_RVV_WCONVERT_I_OPS): Ditto.
2205 (DEF_RVV_WCONVERT_U_OPS): Ditto.
2206 (DEF_RVV_WCONVERT_F_OPS): Ditto.
2207 (DEF_RVV_F_OPS): Ditto.
2208 (DEF_RVV_WEXTF_OPS): Ditto.
2209 (required_extensions_p): Adjust for floating-point support.
2210 (check_required_extensions): Ditto.
2211 (unsigned_base_type_p): Ditto.
2212 (get_mode_for_bitsize): Ditto.
2213 (rvv_arg_type_info::get_base_vector_type): Ditto.
2214 (rvv_arg_type_info::get_tree_type): Ditto.
2215 * config/riscv/riscv-vector-builtins.def (v_f): New define.
2216 (f): New define.
2217 (f_v): New define.
2218 (xu_v): New define.
2219 (f_w): New define.
2220 (xu_w): New define.
2221 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
2222 (function_expander::arg_mode): New function.
2223 * config/riscv/vector-iterators.md (sof): New iterator.
2224 (vfrecp): Ditto.
2225 (copysign): Ditto.
2226 (n): Ditto.
2227 (msac): Ditto.
2228 (msub): Ditto.
2229 (fixuns_trunc): Ditto.
2230 (floatuns): Ditto.
2231 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
2232 (@pred_<optab><mode>): Ditto.
2233 (@pred_<optab><mode>_scalar): Ditto.
2234 (@pred_<optab><mode>_reverse_scalar): Ditto.
2235 (@pred_<copysign><mode>): Ditto.
2236 (@pred_<copysign><mode>_scalar): Ditto.
2237 (@pred_mul_<optab><mode>): Ditto.
2238 (pred_mul_<optab><mode>_undef_merge): Ditto.
2239 (*pred_<madd_nmsub><mode>): Ditto.
2240 (*pred_<macc_nmsac><mode>): Ditto.
2241 (*pred_mul_<optab><mode>): Ditto.
2242 (@pred_mul_<optab><mode>_scalar): Ditto.
2243 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
2244 (*pred_<madd_nmsub><mode>_scalar): Ditto.
2245 (*pred_<macc_nmsac><mode>_scalar): Ditto.
2246 (*pred_mul_<optab><mode>_scalar): Ditto.
2247 (@pred_neg_mul_<optab><mode>): Ditto.
2248 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
2249 (*pred_<nmadd_msub><mode>): Ditto.
2250 (*pred_<nmacc_msac><mode>): Ditto.
2251 (*pred_neg_mul_<optab><mode>): Ditto.
2252 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
2253 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
2254 (*pred_<nmadd_msub><mode>_scalar): Ditto.
2255 (*pred_<nmacc_msac><mode>_scalar): Ditto.
2256 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
2257 (@pred_<misc_op><mode>): Ditto.
2258 (@pred_class<mode>): Ditto.
2259 (@pred_dual_widen_<optab><mode>): Ditto.
2260 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
2261 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
2262 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
2263 (@pred_widen_mul_<optab><mode>): Ditto.
2264 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
2265 (@pred_widen_neg_mul_<optab><mode>): Ditto.
2266 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
2267 (@pred_cmp<mode>): Ditto.
2268 (*pred_cmp<mode>): Ditto.
2269 (*pred_cmp<mode>_narrow): Ditto.
2270 (@pred_cmp<mode>_scalar): Ditto.
2271 (*pred_cmp<mode>_scalar): Ditto.
2272 (*pred_cmp<mode>_scalar_narrow): Ditto.
2273 (@pred_eqne<mode>_scalar): Ditto.
2274 (*pred_eqne<mode>_scalar): Ditto.
2275 (*pred_eqne<mode>_scalar_narrow): Ditto.
2276 (@pred_merge<mode>_scalar): Ditto.
2277 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
2278 (@pred_<fix_cvt><mode>): Ditto.
2279 (@pred_<float_cvt><mode>): Ditto.
2280 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
2281 (@pred_widen_<fix_cvt><mode>): Ditto.
2282 (@pred_widen_<float_cvt><mode>): Ditto.
2283 (@pred_extend<mode>): Ditto.
2284 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
2285 (@pred_narrow_<fix_cvt><mode>): Ditto.
2286 (@pred_narrow_<float_cvt><mode>): Ditto.
2287 (@pred_trunc<mode>): Ditto.
2288 (@pred_rod_trunc<mode>): Ditto.
2289
2290 2023-02-22 Jakub Jelinek <jakub@redhat.com>
2291
2292 PR middle-end/106258
2293 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
2294 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
2295 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
2296 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
2297
2298 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
2299
2300 * common.opt (-Wcomplain-wrong-lang): New.
2301 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
2302 * opts-common.cc (prune_options): Handle it.
2303 * opts-global.cc (complain_wrong_lang): Use it.
2304
2305 2023-02-21 David Malcolm <dmalcolm@redhat.com>
2306
2307 PR analyzer/108830
2308 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
2309
2310 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
2311
2312 PR target/108876
2313 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
2314 for A0_REG.
2315 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
2316 (sibcall_value, sibcall_value_internal): Add 'use' expression
2317 for A0_REG.
2318
2319 2023-02-21 Richard Biener <rguenther@suse.de>
2320
2321 PR tree-optimization/108691
2322 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
2323 assert about calls_setjmp not becoming true when it was false.
2324
2325 2023-02-21 Richard Biener <rguenther@suse.de>
2326
2327 PR tree-optimization/108793
2328 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
2329 Use convert operands to niter_type when computing num.
2330
2331 2023-02-21 Richard Biener <rguenther@suse.de>
2332
2333 Revert:
2334 2023-02-13 Richard Biener <rguenther@suse.de>
2335
2336 PR tree-optimization/108691
2337 * tree-cfg.cc (notice_special_calls): When the CFG is built
2338 honor gimple_call_ctrl_altering_p.
2339 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
2340 temporarily if the call is not control-altering.
2341 * calls.cc (emit_call_1): Do not add REG_SETJMP if
2342 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
2343
2344 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2345
2346 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
2347 true if register A0 (return address register) when -Og is specified.
2348
2349 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
2350
2351 * config/i386/predicates.md
2352 (general_x64constmem_operand): New predicate.
2353 * config/i386/i386.md (*cmpqi_ext<mode>_1):
2354 Use nonimm_x64constmem_operand.
2355 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
2356 (*addqi_ext<mode>_1): Ditto.
2357 (*testqi_ext<mode>_1): Ditto.
2358 (*andqi_ext<mode>_1): Ditto.
2359 (*andqi_ext<mode>_1_cc): Ditto.
2360 (*<any_or:code>qi_ext<mode>_1): Ditto.
2361 (*xorqi_ext<mode>_1_cc): Ditto.
2362
2363 2023-02-20 Jakub Jelinek <jakub2redhat.com>
2364
2365 PR target/108862
2366 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
2367 gen_umadddi4_highpart{,_le}.
2368
2369 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
2370
2371 * config/riscv/riscv.md (prefetch): Use r instead of p for the
2372 address operand.
2373 (riscv_prefetchi_<mode>): Ditto.
2374
2375 2023-02-20 Richard Biener <rguenther@suse.de>
2376
2377 PR tree-optimization/108816
2378 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
2379 versioning condition split prerequesite, assert required
2380 invariant.
2381
2382 2023-02-20 Richard Biener <rguenther@suse.de>
2383
2384 PR tree-optimization/108825
2385 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
2386 loop-local verfication only verify there's no pending SSA
2387 update.
2388
2389 2023-02-20 Richard Biener <rguenther@suse.de>
2390
2391 PR tree-optimization/108819
2392 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
2393 we have an SSA name as iv_2 as expected.
2394
2395 2023-02-18 Jakub Jelinek <jakub@redhat.com>
2396
2397 PR tree-optimization/108819
2398 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
2399
2400 2023-02-18 Jakub Jelinek <jakub@redhat.com>
2401
2402 PR target/108832
2403 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
2404 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
2405 function.
2406 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
2407 with ix86_replace_reg_with_reg.
2408
2409 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2410
2411 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
2412
2413 2023-02-18 Xi Ruoyao <xry111@xry111.site>
2414
2415 * config.gcc (triplet_abi): Set its value based on $with_abi,
2416 instead of $target.
2417 (la_canonical_triplet): Set it after $triplet_abi is set
2418 correctly.
2419 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
2420 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
2421 "f64" suffix).
2422
2423 2023-02-18 Andrew Pinski <apinski@marvell.com>
2424
2425 * match.pd: Remove #if GIMPLE around the
2426 "1 - a" pattern
2427
2428 2023-02-18 Andrew Pinski <apinski@marvell.com>
2429
2430 * value-query.h (get_range_query): Return the global ranges
2431 for a nullptr func.
2432
2433 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
2434
2435 * doc/invoke.texi (@item -Wall): Fix typo in
2436 -Wuse-after-free.
2437
2438 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
2439
2440 PR target/108831
2441 * config/i386/predicates.md
2442 (nonimm_x64constmem_operand): New predicate.
2443 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
2444 (*subqi_ext<mode>_0): Ditto.
2445 (*andqi_ext<mode>_0): Ditto.
2446 (*<any_or:code>qi_ext<mode>_0): Ditto.
2447
2448 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
2449
2450 PR target/108805
2451 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
2452 int_outermode instead of GET_MODE (tem) to prevent
2453 VOIDmode from entering simplify_gen_subreg.
2454
2455 2023-02-17 Richard Biener <rguenther@suse.de>
2456
2457 PR tree-optimization/108821
2458 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
2459 move volatile accesses.
2460
2461 2023-02-17 Richard Biener <rguenther@suse.de>
2462
2463 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
2464 called on virtual operands.
2465 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
2466 ssa_undefined_value_p calls.
2467 (vn_phi_insert): Likewise.
2468 (set_ssa_val_to): Likewise.
2469 (visit_phi): Avoid extra work with equivalences for
2470 virtual operand PHIs.
2471
2472 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2473
2474 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
2475 class.
2476 (class mask_nlogic): Ditto.
2477 (class mask_notlogic): Ditto.
2478 (class vmmv): Ditto.
2479 (class vmclr): Ditto.
2480 (class vmset): Ditto.
2481 (class vmnot): Ditto.
2482 (class vcpop): Ditto.
2483 (class vfirst): Ditto.
2484 (class mask_misc): Ditto.
2485 (class viota): Ditto.
2486 (class vid): Ditto.
2487 (BASE): Ditto.
2488 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2489 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
2490 (vmnand): Ditto.
2491 (vmandn): Ditto.
2492 (vmxor): Ditto.
2493 (vmor): Ditto.
2494 (vmnor): Ditto.
2495 (vmorn): Ditto.
2496 (vmxnor): Ditto.
2497 (vmmv): Ditto.
2498 (vmclr): Ditto.
2499 (vmset): Ditto.
2500 (vmnot): Ditto.
2501 (vcpop): Ditto.
2502 (vfirst): Ditto.
2503 (vmsbf): Ditto.
2504 (vmsif): Ditto.
2505 (vmsof): Ditto.
2506 (viota): Ditto.
2507 (vid): Ditto.
2508 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
2509 (struct mask_alu_def): Ditto.
2510 (SHAPE): Ditto.
2511 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2512 * config/riscv/riscv-vector-builtins.cc: Ditto.
2513 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
2514 for dest it scalar RVV intrinsics.
2515 * config/riscv/vector-iterators.md (sof): New iterator.
2516 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
2517 (@pred_<optab>not<mode>): New pattern.
2518 (@pred_popcount<VB:mode><P:mode>): New pattern.
2519 (@pred_ffs<VB:mode><P:mode>): New pattern.
2520 (@pred_<misc_op><mode>): New pattern.
2521 (@pred_iota<mode>): New pattern.
2522 (@pred_series<mode>): New pattern.
2523
2524 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2525
2526 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
2527 (vsbc): Ditto.
2528 (vmerge): Ditto.
2529 (vmv_v): Ditto.
2530 * config/riscv/riscv-vector-builtins.cc: Ditto.
2531
2532 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2533 kito-cheng <kito.cheng@sifive.com>
2534
2535 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
2536 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
2537 (sew64_scalar_helper): New function.
2538 * config/riscv/vector.md: Normalization.
2539
2540 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2541
2542 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
2543 (vsm): Ditto.
2544 (vsse): Ditto.
2545 (vsoxei64): Ditto.
2546 (vsub): Ditto.
2547 (vand): Ditto.
2548 (vor): Ditto.
2549 (vxor): Ditto.
2550 (vsll): Ditto.
2551 (vsra): Ditto.
2552 (vsrl): Ditto.
2553 (vmin): Ditto.
2554 (vmax): Ditto.
2555 (vminu): Ditto.
2556 (vmaxu): Ditto.
2557 (vmul): Ditto.
2558 (vmulh): Ditto.
2559 (vmulhu): Ditto.
2560 (vmulhsu): Ditto.
2561 (vdiv): Ditto.
2562 (vrem): Ditto.
2563 (vdivu): Ditto.
2564 (vremu): Ditto.
2565 (vnot): Ditto.
2566 (vsext): Ditto.
2567 (vzext): Ditto.
2568 (vwadd): Ditto.
2569 (vwsub): Ditto.
2570 (vwmul): Ditto.
2571 (vwmulu): Ditto.
2572 (vwmulsu): Ditto.
2573 (vwaddu): Ditto.
2574 (vwsubu): Ditto.
2575 (vsbc): Ditto.
2576 (vmsbc): Ditto.
2577 (vnsra): Ditto.
2578 (vmerge): Ditto.
2579 (vmv_v): Ditto.
2580 (vmsne): Ditto.
2581 (vmslt): Ditto.
2582 (vmsgt): Ditto.
2583 (vmsle): Ditto.
2584 (vmsge): Ditto.
2585 (vmsltu): Ditto.
2586 (vmsgtu): Ditto.
2587 (vmsleu): Ditto.
2588 (vmsgeu): Ditto.
2589 (vnmsac): Ditto.
2590 (vmadd): Ditto.
2591 (vnmsub): Ditto.
2592 (vwmacc): Ditto.
2593 (vsadd): Ditto.
2594 (vssub): Ditto.
2595 (vssubu): Ditto.
2596 (vaadd): Ditto.
2597 (vasub): Ditto.
2598 (vasubu): Ditto.
2599 (vsmul): Ditto.
2600 (vssra): Ditto.
2601 (vssrl): Ditto.
2602 (vnclip): Ditto.
2603
2604 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2605
2606 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
2607 (@pred_<optab><mode>_scalar): Ditto.
2608 (*pred_<optab><mode>_scalar): Ditto.
2609 (*pred_<optab><mode>_extended_scalar): Ditto.
2610
2611 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2612
2613 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
2614 (init_builtins): Ditto.
2615 (mangle_builtin_type): Ditto.
2616 (verify_type_context): Ditto.
2617 (handle_pragma_vector): Ditto.
2618 (builtin_decl): Ditto.
2619 (expand_builtin): Ditto.
2620 (const_vec_all_same_in_range_p): Ditto.
2621 (legitimize_move): Ditto.
2622 (emit_vlmax_op): Ditto.
2623 (emit_nonvlmax_op): Ditto.
2624 (get_vlmul): Ditto.
2625 (get_ratio): Ditto.
2626 (get_ta): Ditto.
2627 (get_ma): Ditto.
2628 (get_avl_type): Ditto.
2629 (calculate_ratio): Ditto.
2630 (enum vlmul_type): Ditto.
2631 (simm5_p): Ditto.
2632 (neg_simm5_p): Ditto.
2633 (has_vi_variant_p): Ditto.
2634
2635 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2636
2637 * config/riscv/riscv-protos.h (simm32_p): Remove.
2638 * config/riscv/riscv-v.cc (simm32_p): Ditto.
2639 * config/riscv/vector.md: Use immediate_operand
2640 instead of riscv_vector::simm32_p.
2641
2642 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
2643
2644 * doc/invoke.texi (Optimize Options): Reword the explanation
2645 getting minimal, maximal and default values of a parameter.
2646
2647 2023-02-16 Patrick Palka <ppalka@redhat.com>
2648
2649 * addresses.h: Mechanically drop 'static' from 'static inline'
2650 functions via s/^static inline/inline/g.
2651 * asan.h: Likewise.
2652 * attribs.h: Likewise.
2653 * basic-block.h: Likewise.
2654 * bitmap.h: Likewise.
2655 * cfghooks.h: Likewise.
2656 * cfgloop.h: Likewise.
2657 * cgraph.h: Likewise.
2658 * cselib.h: Likewise.
2659 * data-streamer.h: Likewise.
2660 * debug.h: Likewise.
2661 * df.h: Likewise.
2662 * diagnostic.h: Likewise.
2663 * dominance.h: Likewise.
2664 * dumpfile.h: Likewise.
2665 * emit-rtl.h: Likewise.
2666 * except.h: Likewise.
2667 * expmed.h: Likewise.
2668 * expr.h: Likewise.
2669 * fixed-value.h: Likewise.
2670 * gengtype.h: Likewise.
2671 * gimple-expr.h: Likewise.
2672 * gimple-iterator.h: Likewise.
2673 * gimple-predict.h: Likewise.
2674 * gimple-range-fold.h: Likewise.
2675 * gimple-ssa.h: Likewise.
2676 * gimple.h: Likewise.
2677 * graphite.h: Likewise.
2678 * hard-reg-set.h: Likewise.
2679 * hash-map.h: Likewise.
2680 * hash-set.h: Likewise.
2681 * hash-table.h: Likewise.
2682 * hwint.h: Likewise.
2683 * input.h: Likewise.
2684 * insn-addr.h: Likewise.
2685 * internal-fn.h: Likewise.
2686 * ipa-fnsummary.h: Likewise.
2687 * ipa-icf-gimple.h: Likewise.
2688 * ipa-inline.h: Likewise.
2689 * ipa-modref.h: Likewise.
2690 * ipa-prop.h: Likewise.
2691 * ira-int.h: Likewise.
2692 * ira.h: Likewise.
2693 * lra-int.h: Likewise.
2694 * lra.h: Likewise.
2695 * lto-streamer.h: Likewise.
2696 * memmodel.h: Likewise.
2697 * omp-general.h: Likewise.
2698 * optabs-query.h: Likewise.
2699 * optabs.h: Likewise.
2700 * plugin.h: Likewise.
2701 * pretty-print.h: Likewise.
2702 * range.h: Likewise.
2703 * read-md.h: Likewise.
2704 * recog.h: Likewise.
2705 * regs.h: Likewise.
2706 * rtl-iter.h: Likewise.
2707 * rtl.h: Likewise.
2708 * sbitmap.h: Likewise.
2709 * sched-int.h: Likewise.
2710 * sel-sched-ir.h: Likewise.
2711 * sese.h: Likewise.
2712 * sparseset.h: Likewise.
2713 * ssa-iterators.h: Likewise.
2714 * system.h: Likewise.
2715 * target-globals.h: Likewise.
2716 * target.h: Likewise.
2717 * timevar.h: Likewise.
2718 * tree-chrec.h: Likewise.
2719 * tree-data-ref.h: Likewise.
2720 * tree-iterator.h: Likewise.
2721 * tree-outof-ssa.h: Likewise.
2722 * tree-phinodes.h: Likewise.
2723 * tree-scalar-evolution.h: Likewise.
2724 * tree-sra.h: Likewise.
2725 * tree-ssa-alias.h: Likewise.
2726 * tree-ssa-live.h: Likewise.
2727 * tree-ssa-loop-manip.h: Likewise.
2728 * tree-ssa-loop.h: Likewise.
2729 * tree-ssa-operands.h: Likewise.
2730 * tree-ssa-propagate.h: Likewise.
2731 * tree-ssa-sccvn.h: Likewise.
2732 * tree-ssa.h: Likewise.
2733 * tree-ssanames.h: Likewise.
2734 * tree-streamer.h: Likewise.
2735 * tree-switch-conversion.h: Likewise.
2736 * tree-vectorizer.h: Likewise.
2737 * tree.h: Likewise.
2738 * wide-int.h: Likewise.
2739
2740 2023-02-16 Jakub Jelinek <jakub@redhat.com>
2741
2742 PR tree-optimization/108657
2743 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
2744 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
2745 is a call to internal or builtin function.
2746
2747 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2748
2749 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
2750 using-declaration to unhide functions.
2751
2752 2023-02-16 Jakub Jelinek <jakub@redhat.com>
2753
2754 PR tree-optimization/108783
2755 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
2756 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
2757 t to curr->op. Otherwise, punt if either newop1 or newop2 are
2758 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
2759
2760 2023-02-16 Richard Biener <rguenther@suse.de>
2761
2762 PR tree-optimization/108791
2763 * tree-ssa-forwprop.cc (optimize_vector_load): Build
2764 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
2765 type.
2766
2767 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
2768
2769 PR target/90458
2770 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
2771 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
2772 (ix86_expand_prologue): Likewise.
2773
2774 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2775
2776 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
2777
2778 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
2779
2780 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
2781 int248_register_operand predicate in zero_extract sub-RTX.
2782 (*cmpqi_ext<mode>_2): Ditto.
2783 (*cmpqi_ext<mode>_3): Ditto.
2784 (*cmpqi_ext<mode>_4): Ditto.
2785 (*extzvqi_mem_rex64): Ditto.
2786 (*extzvqi): Ditto.
2787 (*insvqi_1_mem_rex64): Ditto.
2788 (@insv<mode>_1): Ditto.
2789 (*insvqi_1): Ditto.
2790 (*insvqi_2): Ditto.
2791 (*insvqi_3): Ditto.
2792 (*extendqi<SWI24:mode>_ext_1): Ditto.
2793 (*addqi_ext<mode>_1): Ditto.
2794 (*addqi_ext<mode>_2): Ditto.
2795 (*subqi_ext<mode>_2): Ditto.
2796 (*testqi_ext<mode>_1): Ditto.
2797 (*testqi_ext<mode>_2): Ditto.
2798 (*andqi_ext<mode>_1): Ditto.
2799 (*andqi_ext<mode>_1_cc): Ditto.
2800 (*andqi_ext<mode>_2): Ditto.
2801 (*<any_or:code>qi_ext<mode>_1): Ditto.
2802 (*<any_or:code>qi_ext<mode>_2): Ditto.
2803 (*xorqi_ext<mode>_1_cc): Ditto.
2804 (*negqi_ext<mode>_2): Ditto.
2805 (*ashlqi_ext<mode>_2): Ditto.
2806 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
2807
2808 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
2809
2810 * config/i386/predicates.md (int248_register_operand):
2811 Rename from extr_register_operand.
2812 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
2813 (*extzx<mode>): Ditto.
2814 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
2815 (*ashl<mode>3_mask): Ditto.
2816 (*<any_shiftrt:insn><mode>3_mask): Ditto.
2817 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
2818 (*<any_rotate:insn><mode>3_mask): Ditto.
2819 (*<btsc><mode>_mask): Ditto.
2820 (*btr<mode>_mask): Ditto.
2821 (*jcc_bt<mode>_mask_1): Ditto.
2822
2823 2023-02-15 Richard Biener <rguenther@suse.de>
2824
2825 PR middle-end/26854
2826 * df-core.cc (df_worklist_propagate_forward): Put later
2827 blocks on worklist and only earlier blocks on pending.
2828 (df_worklist_propagate_backward): Likewise.
2829 (df_worklist_dataflow_doublequeue): Change the iteration
2830 to process new blocks in the same iteration if that
2831 maintains the iteration order.
2832
2833 2023-02-15 Marek Polacek <polacek@redhat.com>
2834
2835 PR middle-end/106080
2836 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
2837 instead.
2838
2839 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2840
2841 * config/riscv/predicates.md: Refine codes.
2842 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
2843 * config/riscv/riscv-v.cc: Refine codes.
2844 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
2845 enum.
2846 (class imac): New class.
2847 (enum widen_ternop_type): New enum.
2848 (class iwmac): New class.
2849 (BASE): New class.
2850 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2851 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
2852 (vnmsac): Ditto.
2853 (vmadd): Ditto.
2854 (vnmsub): Ditto.
2855 (vwmacc): Ditto.
2856 (vwmaccu): Ditto.
2857 (vwmaccsu): Ditto.
2858 (vwmaccus): Ditto.
2859 * config/riscv/riscv-vector-builtins.cc
2860 (function_builder::apply_predication): Adjust for multiply-add support.
2861 (function_expander::add_vundef_operand): Refine codes.
2862 (function_expander::use_ternop_insn): New function.
2863 (function_expander::use_widen_ternop_insn): Ditto.
2864 * config/riscv/riscv-vector-builtins.h: New function.
2865 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
2866 (pred_mul_<optab><mode>_undef_merge): Ditto.
2867 (*pred_<madd_nmsub><mode>): Ditto.
2868 (*pred_<macc_nmsac><mode>): Ditto.
2869 (*pred_mul_<optab><mode>): Ditto.
2870 (@pred_mul_<optab><mode>_scalar): Ditto.
2871 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
2872 (*pred_<madd_nmsub><mode>_scalar): Ditto.
2873 (*pred_<macc_nmsac><mode>_scalar): Ditto.
2874 (*pred_mul_<optab><mode>_scalar): Ditto.
2875 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
2876 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
2877 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
2878 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
2879 (@pred_widen_mul_plus<su><mode>): Ditto.
2880 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
2881 (@pred_widen_mul_plussu<mode>): Ditto.
2882 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
2883 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
2884
2885 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2886
2887 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
2888 (vector_all_trues_mask_operand): New predicate.
2889 (vector_undef_operand): New predicate.
2890 (ltge_operator): New predicate.
2891 (comparison_except_ltge_operator): New predicate.
2892 (comparison_except_eqge_operator): New predicate.
2893 (ge_operator): New predicate.
2894 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
2895 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
2896 (BASE): Ditto.
2897 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2898 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
2899 (vmsne): Ditto.
2900 (vmslt): Ditto.
2901 (vmsgt): Ditto.
2902 (vmsle): Ditto.
2903 (vmsge): Ditto.
2904 (vmsltu): Ditto.
2905 (vmsgtu): Ditto.
2906 (vmsleu): Ditto.
2907 (vmsgeu): Ditto.
2908 * config/riscv/riscv-vector-builtins-shapes.cc
2909 (struct return_mask_def): Adjust for compare support.
2910 * config/riscv/riscv-vector-builtins.cc
2911 (function_expander::use_compare_insn): New function.
2912 * config/riscv/riscv-vector-builtins.h
2913 (function_expander::add_integer_operand): Ditto.
2914 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
2915 * config/riscv/riscv.md: Add vector min/max attributes.
2916 * config/riscv/vector-iterators.md (xnor): New iterator.
2917 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
2918 (*pred_cmp<mode>): Ditto.
2919 (*pred_cmp<mode>_narrow): Ditto.
2920 (@pred_ltge<mode>): Ditto.
2921 (*pred_ltge<mode>): Ditto.
2922 (*pred_ltge<mode>_narrow): Ditto.
2923 (@pred_cmp<mode>_scalar): Ditto.
2924 (*pred_cmp<mode>_scalar): Ditto.
2925 (*pred_cmp<mode>_scalar_narrow): Ditto.
2926 (@pred_eqne<mode>_scalar): Ditto.
2927 (*pred_eqne<mode>_scalar): Ditto.
2928 (*pred_eqne<mode>_scalar_narrow): Ditto.
2929 (*pred_cmp<mode>_extended_scalar): Ditto.
2930 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
2931 (*pred_eqne<mode>_extended_scalar): Ditto.
2932 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
2933 (@pred_ge<mode>_scalar): Ditto.
2934 (@pred_<optab><mode>): Ditto.
2935 (@pred_n<optab><mode>): Ditto.
2936 (@pred_<optab>n<mode>): Ditto.
2937 (@pred_not<mode>): Ditto.
2938
2939 2023-02-15 Martin Jambor <mjambor@suse.cz>
2940
2941 PR ipa/108679
2942 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
2943 creation of non-scalar replacements even if IPA-CP knows their
2944 contents.
2945
2946 2023-02-15 Jakub Jelinek <jakub@redhat.com>
2947
2948 PR target/108787
2949 PR target/103109
2950 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
2951 expander, change operand 3 to be TImode, emit maddlddi4 and
2952 umadddi4_highpart{,_le} with its low half and finally add the high
2953 half to the result.
2954
2955 2023-02-15 Martin Liska <mliska@suse.cz>
2956
2957 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
2958
2959 2023-02-15 Richard Biener <rguenther@suse.de>
2960
2961 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
2962 for with_poison and alias worklist to it.
2963 (sanitize_asan_mark_poison): Likewise.
2964
2965 2023-02-15 Richard Biener <rguenther@suse.de>
2966
2967 PR target/108738
2968 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
2969 Combine bitmap test and set.
2970 (scalar_chain::add_insn): Likewise.
2971 (scalar_chain::analyze_register_chain): Remove redundant
2972 attempt to add to queue and instead strengthen assert.
2973 Sink common attempts to mark the def dual-mode.
2974 (scalar_chain::add_to_queue): Remove redundant insn bitmap
2975 check.
2976
2977 2023-02-15 Richard Biener <rguenther@suse.de>
2978
2979 PR target/108738
2980 * config/i386/i386-features.cc (convert_scalars_to_vector):
2981 Switch candidates bitmaps to tree view before building the chains.
2982
2983 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2984
2985 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
2986 "failure trying to reload" call.
2987
2988 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2989
2990 * gdbinit.in (phrs): New command.
2991 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
2992 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
2993
2994 2023-02-14 David Faust <david.faust@oracle.com>
2995
2996 PR target/108790
2997 * config/bpf/constraints.md (q): New memory constraint.
2998 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
2999 (zero_extendqidi2): Likewise.
3000 (zero_extendsidi2): Likewise.
3001 (*mov<MM:mode>): Likewise.
3002
3003 2023-02-14 Andrew Pinski <apinski@marvell.com>
3004
3005 PR tree-optimization/108355
3006 PR tree-optimization/96921
3007 * match.pd: Add pattern for "1 - bool_val".
3008
3009 2023-02-14 Richard Biener <rguenther@suse.de>
3010
3011 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
3012 basic block index hashing on the availability of ->cclhs.
3013 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
3014 rely on ->cclhs availability.
3015 (vn_phi_lookup): Set ->cclhs only when we are eventually
3016 going to CSE the PHI.
3017 (vn_phi_insert): Likewise.
3018
3019 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
3020
3021 * gimplify.cc (gimplify_save_expr): Add missing guard.
3022
3023 2023-02-14 Richard Biener <rguenther@suse.de>
3024
3025 PR tree-optimization/108782
3026 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
3027 Make sure we're not vectorizing an inner loop.
3028
3029 2023-02-14 Jakub Jelinek <jakub@redhat.com>
3030
3031 PR sanitizer/108777
3032 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
3033 * asan.h (asan_memfn_rtl): Declare.
3034 * asan.cc (asan_memfn_rtls): New variable.
3035 (asan_memfn_rtl): New function.
3036 * builtins.cc (expand_builtin): If
3037 param_asan_kernel_mem_intrinsic_prefix and function is
3038 kernel-{,hw}address sanitized, emit calls to
3039 __{,hw}asan_{memcpy,memmove,memset} rather than
3040 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
3041 instead of flag_sanitize & SANITIZE_ADDRESS to check if
3042 asan_intercepted_p functions shouldn't be expanded inline.
3043
3044 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
3045
3046 PR tree-optimization/96373
3047 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
3048 operations on the loop mask. Reject partial vectors if this isn't
3049 possible.
3050
3051 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
3052
3053 PR rtl-optimization/108681
3054 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
3055 code to handle bare uses and clobbers.
3056
3057 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
3058
3059 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
3060 caller_save_p flag when clearing defined_p flag.
3061 (setup_reg_equiv): Ditto.
3062 * lra-constraints.cc (lra_constraints): Ditto.
3063
3064 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
3065
3066 PR target/108516
3067 * config/i386/predicates.md (extr_register_operand):
3068 New special predicate.
3069 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
3070 as operand 1 predicate.
3071 (*exzv<mode>): Ditto.
3072 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
3073
3074 2023-02-13 Richard Biener <rguenther@suse.de>
3075
3076 PR tree-optimization/28614
3077 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
3078 walking all edges in most cases.
3079 (vn_nary_op_insert_pieces_predicated): Avoid repeated
3080 calls to can_track_predicate_on_edge unless checking is
3081 enabled.
3082 (process_bb): Instead call it once here for each edge
3083 we register possibly multiple predicates on.
3084
3085 2023-02-13 Richard Biener <rguenther@suse.de>
3086
3087 PR tree-optimization/108691
3088 * tree-cfg.cc (notice_special_calls): When the CFG is built
3089 honor gimple_call_ctrl_altering_p.
3090 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
3091 temporarily if the call is not control-altering.
3092 * calls.cc (emit_call_1): Do not add REG_SETJMP if
3093 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
3094
3095 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3096
3097 PR target/108102
3098 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
3099 (struct s390_sched_state): Initialise to zero.
3100 (s390_sched_variable_issue): For better debuggability also emit
3101 the current side.
3102 (s390_sched_init): Unconditionally reset scheduler state.
3103
3104 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
3105
3106 * ifcvt.h (noce_if_info::cond_inverted): New field.
3107 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
3108 values when cond_inverted is true.
3109 (noce_find_if_block): Allow the condition to be inverted when
3110 handling conditional moves.
3111
3112 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3113
3114 * config/s390/predicates.md (execute_operation): Use
3115 constrain_operands instead of extract_constrain_insn in order to
3116 determine wheter there exists a valid alternative.
3117
3118 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
3119
3120 * common/config/arc/arc-common.cc (arc_option_optimization_table):
3121 Remove millicode from list.
3122
3123 2023-02-13 Martin Liska <mliska@suse.cz>
3124
3125 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
3126
3127 2023-02-13 Richard Biener <rguenther@suse.de>
3128
3129 PR tree-optimization/106722
3130 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
3131 whether we marked a stmt.
3132 (mark_control_dependent_edges_necessary): When
3133 mark_last_stmt_necessary didn't mark any stmt make sure
3134 to mark its control dependent edges.
3135 (propagate_necessity): Likewise.
3136
3137 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
3138
3139 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
3140 (DWARF_FRAME_REGISTERS): New.
3141 (DWARF_REG_TO_UNWIND_COLUMN): New.
3142
3143 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3144
3145 * doc/sourcebuild.texi: Remove (broken) direct reference to
3146 "The GNU configure and build system".
3147
3148 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
3149
3150 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
3151 gen_add3_insn to gen_rtx_SET.
3152 (riscv_adjust_libcall_cfi_epilogue): Likewise.
3153
3154 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3155
3156 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
3157 (class vnclip): Ditto.
3158 (BASE): Ditto.
3159 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3160 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
3161 (vasub): Ditto.
3162 (vaaddu): Ditto.
3163 (vasubu): Ditto.
3164 (vsmul): Ditto.
3165 (vssra): Ditto.
3166 (vssrl): Ditto.
3167 (vnclipu): Ditto.
3168 (vnclip): Ditto.
3169 * config/riscv/vector-iterators.md (su): Add instruction.
3170 (aadd): Ditto.
3171 (vaalu): Ditto.
3172 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
3173 (@pred_<sat_op><mode>_scalar): Ditto.
3174 (*pred_<sat_op><mode>_scalar): Ditto.
3175 (*pred_<sat_op><mode>_extended_scalar): Ditto.
3176 (@pred_narrow_clip<v_su><mode>): Ditto.
3177 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
3178
3179 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3180
3181 * config/riscv/constraints.md (Wbr): Remove unused constraint.
3182 * config/riscv/predicates.md: Fix move operand predicate.
3183 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
3184 (class vncvt_x): Ditto.
3185 (class vmerge): Ditto.
3186 (class vmv_v): Ditto.
3187 (BASE): Ditto.
3188 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3189 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
3190 (vsrl): Ditto.
3191 (vnsrl): Ditto.
3192 (vnsra): Ditto.
3193 (vncvt_x): Ditto.
3194 (vmerge): Ditto.
3195 (vmv_v): Ditto.
3196 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
3197 (struct move_def): Ditto.
3198 (SHAPE): Ditto.
3199 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3200 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
3201 (DEF_RVV_WEXTU_OPS): Ditto
3202 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
3203 (v_v): Ditto.
3204 (v_x): Ditto.
3205 (x_w): Ditto.
3206 (x): Ditto.
3207 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
3208 * config/riscv/vector-iterators.md (nmsac):New iterator.
3209 (nmsub): New iterator.
3210 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
3211 (@pred_merge<mode>_scalar): New pattern.
3212 (*pred_merge<mode>_scalar): New pattern.
3213 (*pred_merge<mode>_extended_scalar): New pattern.
3214 (@pred_narrow_<optab><mode>): New pattern.
3215 (@pred_narrow_<optab><mode>_scalar): New pattern.
3216 (@pred_trunc<mode>): New pattern.
3217
3218 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3219
3220 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
3221 (class vmsbc): Ditto.
3222 (BASE): Define new class.
3223 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3224 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
3225 (vmsbc): Ditto.
3226 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
3227 New class.
3228 (SHAPE): Ditto.
3229 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3230 * config/riscv/riscv-vector-builtins.cc
3231 (function_expander::use_exact_insn): Adjust for new support
3232 * config/riscv/riscv-vector-builtins.h
3233 (function_base::has_merge_operand_p): New function.
3234 * config/riscv/vector-iterators.md: New iterator.
3235 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
3236 (@pred_msbc<mode>): Ditto.
3237 (@pred_madc<mode>_scalar): Ditto.
3238 (@pred_msbc<mode>_scalar): Ditto.
3239 (*pred_madc<mode>_scalar): Ditto.
3240 (*pred_madc<mode>_extended_scalar): Ditto.
3241 (*pred_msbc<mode>_scalar): Ditto.
3242 (*pred_msbc<mode>_extended_scalar): Ditto.
3243 (@pred_madc<mode>_overflow): Ditto.
3244 (@pred_msbc<mode>_overflow): Ditto.
3245 (@pred_madc<mode>_overflow_scalar): Ditto.
3246 (@pred_msbc<mode>_overflow_scalar): Ditto.
3247 (*pred_madc<mode>_overflow_scalar): Ditto.
3248 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
3249 (*pred_msbc<mode>_overflow_scalar): Ditto.
3250 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
3251
3252 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3253
3254 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
3255 * config/riscv/riscv-v.cc (simm32_p): Ditto.
3256 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
3257 (class vsbc): Ditto.
3258 (BASE): Ditto.
3259 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3260 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
3261 (vsbc): Ditto.
3262 * config/riscv/riscv-vector-builtins-shapes.cc
3263 (struct no_mask_policy_def): Ditto.
3264 (SHAPE): Ditto.
3265 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3266 * config/riscv/riscv-vector-builtins.cc
3267 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
3268 (rvv_arg_type_info::get_tree_type): Ditto.
3269 (function_expander::use_exact_insn): Ditto.
3270 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
3271 (function_base::use_mask_predication_p): New function.
3272 * config/riscv/vector-iterators.md: New iterator.
3273 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
3274 (@pred_sbc<mode>): Ditto.
3275 (@pred_adc<mode>_scalar): Ditto.
3276 (@pred_sbc<mode>_scalar): Ditto.
3277 (*pred_adc<mode>_scalar): Ditto.
3278 (*pred_adc<mode>_extended_scalar): Ditto.
3279 (*pred_sbc<mode>_scalar): Ditto.
3280 (*pred_sbc<mode>_extended_scalar): Ditto.
3281
3282 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3283
3284 * config/riscv/vector.md: use "zero" reg.
3285
3286 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3287
3288 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
3289 class.
3290 (class vwmulsu): Ditto.
3291 (class vwcvt): Ditto.
3292 (BASE): Add integer widening support.
3293 * config/riscv/riscv-vector-builtins-bases.h: Ditto
3294 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
3295 (vwsub): New class.
3296 (vwmul): New class.
3297 (vwmulu): New class.
3298 (vwmulsu): New class.
3299 (vwaddu): New class.
3300 (vwsubu): New class.
3301 (vwcvt_x): New class.
3302 (vwcvtu_x): New class.
3303 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
3304 class.
3305 (struct widen_alu_def): New class.
3306 (SHAPE): New class.
3307 * config/riscv/riscv-vector-builtins-shapes.h: New class.
3308 * config/riscv/riscv-vector-builtins.cc
3309 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
3310 (rvv_arg_type_info::get_tree_type): Ditto.
3311 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
3312 (x_v): Ditto.
3313 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
3314 widening support.
3315 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
3316 * config/riscv/riscv.h (X0_REGNUM): New constant.
3317 * config/riscv/vector-iterators.md: New iterators.
3318 * config/riscv/vector.md
3319 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
3320 pattern.
3321 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
3322 Ditto.
3323 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
3324 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
3325 Ditto.
3326 (@pred_widen_mulsu<mode>): Ditto.
3327 (@pred_widen_mulsu<mode>_scalar): Ditto.
3328 (@pred_<optab><mode>): Ditto.
3329
3330 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3331 kito-cheng <kito.cheng@sifive.com>
3332
3333 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
3334 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
3335 (BASE): Ditto.
3336 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3337 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
3338 API support.
3339 (vmulhu): Ditto.
3340 (vmulhsu): Ditto.
3341 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
3342 New macro.
3343 (DEF_RVV_FULL_V_U_OPS): Ditto.
3344 (vint8mf8_t): Ditto.
3345 (vint8mf4_t): Ditto.
3346 (vint8mf2_t): Ditto.
3347 (vint8m1_t): Ditto.
3348 (vint8m2_t): Ditto.
3349 (vint8m4_t): Ditto.
3350 (vint8m8_t): Ditto.
3351 (vint16mf4_t): Ditto.
3352 (vint16mf2_t): Ditto.
3353 (vint16m1_t): Ditto.
3354 (vint16m2_t): Ditto.
3355 (vint16m4_t): Ditto.
3356 (vint16m8_t): Ditto.
3357 (vint32mf2_t): Ditto.
3358 (vint32m1_t): Ditto.
3359 (vint32m2_t): Ditto.
3360 (vint32m4_t): Ditto.
3361 (vint32m8_t): Ditto.
3362 (vint64m1_t): Ditto.
3363 (vint64m2_t): Ditto.
3364 (vint64m4_t): Ditto.
3365 (vint64m8_t): Ditto.
3366 (vuint8mf8_t): Ditto.
3367 (vuint8mf4_t): Ditto.
3368 (vuint8mf2_t): Ditto.
3369 (vuint8m1_t): Ditto.
3370 (vuint8m2_t): Ditto.
3371 (vuint8m4_t): Ditto.
3372 (vuint8m8_t): Ditto.
3373 (vuint16mf4_t): Ditto.
3374 (vuint16mf2_t): Ditto.
3375 (vuint16m1_t): Ditto.
3376 (vuint16m2_t): Ditto.
3377 (vuint16m4_t): Ditto.
3378 (vuint16m8_t): Ditto.
3379 (vuint32mf2_t): Ditto.
3380 (vuint32m1_t): Ditto.
3381 (vuint32m2_t): Ditto.
3382 (vuint32m4_t): Ditto.
3383 (vuint32m8_t): Ditto.
3384 (vuint64m1_t): Ditto.
3385 (vuint64m2_t): Ditto.
3386 (vuint64m4_t): Ditto.
3387 (vuint64m8_t): Ditto.
3388 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
3389 (DEF_RVV_FULL_V_U_OPS): Ditto.
3390 (check_required_extensions): Add vmulh support.
3391 (rvv_arg_type_info::get_tree_type): Ditto.
3392 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
3393 (enum rvv_base_type): Ditto.
3394 * config/riscv/riscv.opt: Add 'V' extension flag.
3395 * config/riscv/vector-iterators.md (su): New iterator.
3396 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
3397 (@pred_mulh<v_su><mode>_scalar): Ditto.
3398 (*pred_mulh<v_su><mode>_scalar): Ditto.
3399 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
3400
3401 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3402
3403 * config/riscv/iterators.md: Add sign_extend/zero_extend.
3404 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
3405 (BASE): Ditto.
3406 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
3407 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
3408 define.
3409 (vzext): Ditto.
3410 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
3411 for vsext/vzext support.
3412 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
3413 macro define.
3414 (DEF_RVV_QEXTI_OPS): Ditto.
3415 (DEF_RVV_OEXTI_OPS): Ditto.
3416 (DEF_RVV_WEXTU_OPS): Ditto.
3417 (DEF_RVV_QEXTU_OPS): Ditto.
3418 (DEF_RVV_OEXTU_OPS): Ditto.
3419 (vint16mf4_t): Ditto.
3420 (vint16mf2_t): Ditto.
3421 (vint16m1_t): Ditto.
3422 (vint16m2_t): Ditto.
3423 (vint16m4_t): Ditto.
3424 (vint16m8_t): Ditto.
3425 (vint32mf2_t): Ditto.
3426 (vint32m1_t): Ditto.
3427 (vint32m2_t): Ditto.
3428 (vint32m4_t): Ditto.
3429 (vint32m8_t): Ditto.
3430 (vint64m1_t): Ditto.
3431 (vint64m2_t): Ditto.
3432 (vint64m4_t): Ditto.
3433 (vint64m8_t): Ditto.
3434 (vuint16mf4_t): Ditto.
3435 (vuint16mf2_t): Ditto.
3436 (vuint16m1_t): Ditto.
3437 (vuint16m2_t): Ditto.
3438 (vuint16m4_t): Ditto.
3439 (vuint16m8_t): Ditto.
3440 (vuint32mf2_t): Ditto.
3441 (vuint32m1_t): Ditto.
3442 (vuint32m2_t): Ditto.
3443 (vuint32m4_t): Ditto.
3444 (vuint32m8_t): Ditto.
3445 (vuint64m1_t): Ditto.
3446 (vuint64m2_t): Ditto.
3447 (vuint64m4_t): Ditto.
3448 (vuint64m8_t): Ditto.
3449 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
3450 (DEF_RVV_QEXTI_OPS): Ditto.
3451 (DEF_RVV_OEXTI_OPS): Ditto.
3452 (DEF_RVV_WEXTU_OPS): Ditto.
3453 (DEF_RVV_QEXTU_OPS): Ditto.
3454 (DEF_RVV_OEXTU_OPS): Ditto.
3455 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
3456 support.
3457 (rvv_arg_type_info::get_tree_type): Ditto.
3458 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
3459 * config/riscv/vector-iterators.md (z): New attribute.
3460 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
3461 (@pred_<optab><mode>_vf4): Ditto.
3462 (@pred_<optab><mode>_vf8): Ditto.
3463
3464 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3465
3466 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
3467 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
3468 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
3469 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3470 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
3471 (vssub): Ditto.
3472 (vsaddu): Ditto.
3473 (vssubu): Ditto.
3474 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
3475 support.
3476 (sll.vv): Ditto.
3477 (%3,%v4): Ditto.
3478 (%3,%4): Ditto.
3479 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
3480 (@pred_<optab><mode>_scalar): New pattern.
3481 (*pred_<optab><mode>_scalar): New pattern.
3482 (*pred_<optab><mode>_extended_scalar): New pattern.
3483
3484 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3485
3486 * config/riscv/iterators.md: Add neg and not.
3487 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
3488 (BASE): Ditto.
3489 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3490 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
3491 into alu.
3492 (vsub): Ditto.
3493 (vand): Ditto.
3494 (vor): Ditto.
3495 (vxor): Ditto.
3496 (vsll): Ditto.
3497 (vsra): Ditto.
3498 (vsrl): Ditto.
3499 (vmin): Ditto.
3500 (vmax): Ditto.
3501 (vminu): Ditto.
3502 (vmaxu): Ditto.
3503 (vmul): Ditto.
3504 (vdiv): Ditto.
3505 (vrem): Ditto.
3506 (vdivu): Ditto.
3507 (vremu): Ditto.
3508 (vrsub): Ditto.
3509 (vneg): Ditto.
3510 (vnot): Ditto.
3511 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
3512 (struct alu_def): Ditto.
3513 (SHAPE): Ditto.
3514 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3515 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
3516 * config/riscv/vector-iterators.md: New iterator.
3517 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
3518
3519 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3520
3521 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
3522
3523 2023-02-11 Jakub Jelinek <jakub@redhat.com>
3524
3525 PR ipa/108605
3526 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
3527 item->offset bit position is too large to be representable as
3528 unsigned int byte position.
3529
3530 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3531
3532 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
3533
3534 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
3535
3536 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
3537 valid_combine only when ira_use_lra_p is true.
3538
3539 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
3540
3541 * params.opt (ira-simple-lra-insn-threshold): Add new param.
3542 * ira.cc (ira): Use the param to switch on simple LRA.
3543
3544 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
3545
3546 PR tree-optimization/108687
3547 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
3548 back to RFD_NONE mode for calculations.
3549 (ranger_cache::propagate_cache): Call the internal edge range API
3550 with RFD_READ_ONLY instead of changing the external routine.
3551
3552 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
3553
3554 PR tree-optimization/108520
3555 * gimple-range-infer.cc (check_assume_func): Invoke
3556 gimple_range_global directly instead using global_range_query.
3557 * value-query.cc (get_range_global): Add function context and
3558 avoid calling nonnull_arg_p if not cfun.
3559 (gimple_range_global): Add function context pointer.
3560 * value-query.h (imple_range_global): Add function context.
3561
3562 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3563
3564 * config/riscv/constraints.md (Wdm): Adjust constraint.
3565 (Wbr): New constraint.
3566 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
3567 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
3568 (emit_vlmax_op): New function.
3569 (emit_nonvlmax_op): Ditto.
3570 (simm32_p): Ditto.
3571 (neg_simm5_p): Ditto.
3572 (has_vi_variant_p): Ditto.
3573 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
3574 (emit_vlmax_op): New function.
3575 (emit_nonvlmax_op): Ditto.
3576 (expand_const_vector): Adjust function.
3577 (legitimize_move): Ditto.
3578 (simm32_p): New function.
3579 (simm5_p): Ditto.
3580 (neg_simm5_p): Ditto.
3581 (has_vi_variant_p): Ditto.
3582 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
3583 (BASE): Ditto.
3584 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3585 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
3586 unsigned cases.
3587 (vmax): Ditto.
3588 (vminu): Remove signed cases.
3589 (vmaxu): Ditto.
3590 (vdiv): Remove unsigned cases.
3591 (vrem): Ditto.
3592 (vdivu): Remove signed cases.
3593 (vremu): Ditto.
3594 (vadd): Adjust.
3595 (vsub): Ditto.
3596 (vrsub): New class.
3597 (vand): Adjust.
3598 (vor): Ditto.
3599 (vxor): Ditto.
3600 (vmul): Ditto.
3601 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
3602 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
3603 * config/riscv/vector-iterators.md: New iterators.
3604 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
3605 support.
3606 (@pred_<optab><mode>_scalar): New pattern.
3607 (@pred_sub<mode>_reverse_scalar): Ditto.
3608 (*pred_<optab><mode>_scalar): Ditto.
3609 (*pred_<optab><mode>_extended_scalar): Ditto.
3610 (*pred_sub<mode>_reverse_scalar): Ditto.
3611 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
3612
3613 2023-02-10 Richard Biener <rguenther@suse.de>
3614
3615 PR tree-optimization/108724
3616 * tree-vect-stmts.cc (vectorizable_operation): Avoid
3617 using word_mode vectors when vector lowering will
3618 decompose them to elementwise operations.
3619
3620 2023-02-10 Jakub Jelinek <jakub@redhat.com>
3621
3622 Revert:
3623 2023-02-09 Martin Liska <mliska@suse.cz>
3624
3625 PR target/100758
3626 * doc/extend.texi: Document that the function
3627 does not work correctly for old VIA processors.
3628
3629 2023-02-10 Andrew Pinski <apinski@marvell.com>
3630 Andrew Macleod <amacleod@redhat.com>
3631
3632 PR tree-optimization/108684
3633 * tree-ssa-dce.cc (simple_dce_from_worklist):
3634 Check all ssa names and not just non-vdef ones
3635 before accepting the inline-asm.
3636 Call unlink_stmt_vdef on the statement before
3637 removing it.
3638
3639 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
3640
3641 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
3642 * ira.cc (validate_equiv_mem): Check memref address variance.
3643 (no_equiv): Clear caller_save_p flag.
3644 (update_equiv_regs): Define caller save equivalence for
3645 valid_combine.
3646 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
3647 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
3648 call_save_p. Use caller save equivalence depending on the arg.
3649 (split_reg): Adjust the call.
3650
3651 2023-02-09 Jakub Jelinek <jakub@redhat.com>
3652
3653 PR target/100758
3654 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
3655 (cpu_indicator_init): Call get_available_features for all CPUs with
3656 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
3657 fixes.
3658
3659 2023-02-09 Jakub Jelinek <jakub@redhat.com>
3660
3661 PR tree-optimization/108688
3662 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
3663 of BIT_INSERT_EXPR extracting exactly all inserted bits even
3664 when without mode precision. Formatting fixes.
3665
3666 2023-02-09 Andrew Pinski <apinski@marvell.com>
3667
3668 PR tree-optimization/108688
3669 * match.pd (bit_field_ref [bit_insert]): Avoid generating
3670 BIT_FIELD_REFs of non-mode-precision integral operands.
3671
3672 2023-02-09 Martin Liska <mliska@suse.cz>
3673
3674 PR target/100758
3675 * doc/extend.texi: Document that the function
3676 does not work correctly for old VIA processors.
3677
3678 2023-02-09 Andreas Schwab <schwab@suse.de>
3679
3680 * lto-wrapper.cc (merge_and_complain): Handle
3681 -funwind-tables and -fasynchronous-unwind-tables.
3682 (append_compiler_options): Likewise.
3683
3684 2023-02-09 Richard Biener <rguenther@suse.de>
3685
3686 PR tree-optimization/26854
3687 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
3688 view around insert_updated_phi_nodes_for.
3689 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
3690 in tree view.
3691 (walk_aliased_vdefs_1): Likewise.
3692
3693 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3694
3695 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
3696
3697 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3698
3699 PR target/108505
3700 * config.gcc (tm_mlib_file): Define new variable.
3701
3702 2023-02-08 Jakub Jelinek <jakub@redhat.com>
3703
3704 PR tree-optimization/108692
3705 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
3706 widened_code which is different from code, don't call
3707 vect_look_through_possible_promotion but instead just check op is
3708 SSA_NAME with integral type for which vect_is_simple_use is true
3709 and call set_op on this_unprom.
3710
3711 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
3712
3713 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
3714 declaration.
3715 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
3716 definition.
3717 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
3718 to 'aarch_ra_sign_key'.
3719 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
3720 declaration.
3721 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
3722 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
3723 * config/arm/arm.opt: Define.
3724
3725 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
3726
3727 PR tree-optimization/108316
3728 * tree-vect-stmts.cc (get_load_store_type): When using
3729 internal functions for gather/scatter, make sure that the type
3730 of the offset argument is consistent with the offset vector type.
3731
3732 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
3733
3734 Revert:
3735 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
3736
3737 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
3738 * ira.cc (validate_equiv_mem): Check memref address variance.
3739 (update_equiv_regs): Define caller save equivalence for
3740 valid_combine.
3741 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
3742 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
3743 call_save_p. Use caller save equivalence depending on the arg.
3744 (split_reg): Adjust the call.
3745
3746 2023-02-08 Jakub Jelinek <jakub@redhat.com>
3747
3748 * tree.def (SAD_EXPR): Remove outdated comment about missing
3749 WIDEN_MINUS_EXPR.
3750
3751 2023-02-07 Marek Polacek <polacek@redhat.com>
3752
3753 * doc/invoke.texi: Update -fchar8_t documentation.
3754
3755 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
3756
3757 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
3758 * ira.cc (validate_equiv_mem): Check memref address variance.
3759 (update_equiv_regs): Define caller save equivalence for
3760 valid_combine.
3761 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
3762 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
3763 call_save_p. Use caller save equivalence depending on the arg.
3764 (split_reg): Adjust the call.
3765
3766 2023-02-07 Richard Biener <rguenther@suse.de>
3767
3768 PR tree-optimization/26854
3769 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
3770 instead of immediate uses.
3771
3772 2023-02-07 Jakub Jelinek <jakub@redhat.com>
3773
3774 PR tree-optimization/106923
3775 * ipa-split.cc (execute_split_functions): Don't split returns_twice
3776 functions.
3777
3778 2023-02-07 Jakub Jelinek <jakub@redhat.com>
3779
3780 PR tree-optimization/106433
3781 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
3782 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
3783
3784 2023-02-07 Jan Hubicka <jh@suse.cz>
3785
3786 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
3787 for znver4.
3788
3789 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
3790
3791 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
3792 (process_asm): Create a constructor for GCN_STACK_SIZE.
3793 (main): Parse the -mstack-size option.
3794
3795 2023-02-06 Alex Coplan <alex.coplan@arm.com>
3796
3797 PR target/104921
3798 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
3799 Use correct constraint for operand 3.
3800
3801 2023-02-06 Martin Jambor <mjambor@suse.cz>
3802
3803 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
3804
3805 2023-02-06 Xi Ruoyao <xry111@xry111.site>
3806
3807 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
3808 New define_int_iterator.
3809 (bytepick_d_ashift_amount): Likewise.
3810 (bytepick_imm): New define_int_attr.
3811 (bytepick_w_lshiftrt_amount): Likewise.
3812 (bytepick_d_lshiftrt_amount): Likewise.
3813 (bytepick_w_<bytepick_imm>): New define_insn template.
3814 (bytepick_w_<bytepick_imm>_extend): Likewise.
3815 (bytepick_d_<bytepick_imm>): Likewise.
3816 (bytepick_w): Remove unused define_insn.
3817 (bytepick_d): Likewise.
3818 (UNSPEC_BYTEPICK_W): Remove unused unspec.
3819 (UNSPEC_BYTEPICK_D): Likewise.
3820 * config/loongarch/predicates.md (const_0_to_3_operand):
3821 Remove unused define_predicate.
3822 (const_0_to_7_operand): Likewise.
3823
3824 2023-02-06 Jakub Jelinek <jakub@redhat.com>
3825
3826 PR tree-optimization/108655
3827 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
3828 or -fsanitize=unreachable -fsanitize-trap=unreachable return
3829 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
3830
3831 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
3832
3833 * doc/install.texi (Specific): Remove PW32.
3834
3835 2023-02-03 Jakub Jelinek <jakub@redhat.com>
3836
3837 PR tree-optimization/108647
3838 * range-op.cc (operator_equal::op1_range,
3839 operator_not_equal::op1_range): Don't test op2 bound
3840 equality if op2.undefined_p (), instead set_varying.
3841 (operator_lt::op1_range, operator_le::op1_range,
3842 operator_gt::op1_range, operator_ge::op1_range): Return false if
3843 op2.undefined_p ().
3844 (operator_lt::op2_range, operator_le::op2_range,
3845 operator_gt::op2_range, operator_ge::op2_range): Return false if
3846 op1.undefined_p ().
3847
3848 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3849
3850 PR tree-optimization/108639
3851 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
3852 widest_int.
3853 (irange::operator==): Same.
3854
3855 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3856
3857 PR tree-optimization/108647
3858 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
3859 (foperator_lt::op2_range): Same.
3860 (foperator_le::op1_range): Same.
3861 (foperator_le::op2_range): Same.
3862 (foperator_gt::op1_range): Same.
3863 (foperator_gt::op2_range): Same.
3864 (foperator_ge::op1_range): Same.
3865 (foperator_ge::op2_range): Same.
3866 (foperator_unordered_lt::op1_range): Same.
3867 (foperator_unordered_lt::op2_range): Same.
3868 (foperator_unordered_le::op1_range): Same.
3869 (foperator_unordered_le::op2_range): Same.
3870 (foperator_unordered_gt::op1_range): Same.
3871 (foperator_unordered_gt::op2_range): Same.
3872 (foperator_unordered_ge::op1_range): Same.
3873 (foperator_unordered_ge::op2_range): Same.
3874
3875 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
3876
3877 PR tree-optimization/107570
3878 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
3879
3880 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
3881
3882 * doc/gm2.texi (Internals): Remove from menu.
3883 (Using): Comment out ifnohtml conditional.
3884 (Documentation): Use gcc url.
3885 (License): Node simplified.
3886 (Copying): New node. Include gpl_v3_without_node.
3887 (Contributing): Node simplified.
3888 (Internals): Commented out.
3889 (Libraries): Node simplified.
3890 (Indices): Ditto.
3891 (Contents): Ditto.
3892 (Functions): Ditto.
3893
3894 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
3895
3896 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
3897 attribute.
3898 (mve_vqshluq_m_n_s<mode>): Likewise.
3899 (mve_vshlq_m_<supf><mode>): Likewise.
3900 (mve_vsriq_m_n_<supf><mode>): Likewise.
3901 (mve_vsubq_m_<supf><mode>): Likewise.
3902
3903 2023-02-03 Martin Jambor <mjambor@suse.cz>
3904
3905 PR ipa/108384
3906 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
3907 when comparing to an IPA-CP value.
3908 (dump_list_of_param_indices): New function.
3909 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
3910 Dump removed candidates using dump_list_of_param_indices.
3911 * ipa-param-manipulation.cc
3912 (ipa_param_body_adjustments::modify_expression): Add assert checking
3913 sizes of a VIEW_CONVERT_EXPR will match.
3914 (ipa_param_body_adjustments::modify_assignment): Likewise.
3915
3916 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
3917
3918 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
3919 * config/riscv/riscv.cc: Ditto.
3920
3921 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3922
3923 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
3924 (sll.vv): Ditto.
3925 (%3,%4): Ditto.
3926 (%3,%v4): Ditto.
3927 * config/riscv/vector.md: Ditto.
3928
3929 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3930
3931 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
3932 * config/riscv/riscv-vector-builtins-bases.cc: New class.
3933 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
3934 (vsra): Ditto.
3935 (vsrl): Ditto.
3936 * config/riscv/riscv-vector-builtins.cc: Ditto.
3937 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
3938
3939 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
3940
3941 * toplev.cc (toplev::main): Only print the version information header
3942 from toplevel main().
3943
3944 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
3945
3946 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
3947 cond_{ashl|ashr|lshr}
3948
3949 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3950
3951 PR rtl-optimization/108086
3952 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
3953 Adjust size-related commentary accordingly.
3954
3955 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
3956
3957 PR rtl-optimization/108508
3958 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
3959 the splay tree search gives the first clobber in the second group,
3960 make sure that the root of the first clobber group is updated
3961 correctly. Enter the new clobber group into the definition splay
3962 tree.
3963
3964 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
3965
3966 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
3967 Fix finding best match score.
3968
3969 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3970
3971 PR debug/106746
3972 PR rtl-optimization/108463
3973 PR target/108484
3974 * cselib.cc (cselib_current_insn): Move declaration earlier.
3975 (cselib_hasher::equal): For debug only locs, temporarily override
3976 cselib_current_insn to their l->setting_insn for the
3977 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
3978 promote some debug locs.
3979 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
3980 when using cselib call cselib_lookup_from_insn on the address but
3981 don't substitute it.
3982
3983 2023-02-02 Richard Biener <rguenther@suse.de>
3984
3985 PR middle-end/108625
3986 * genmatch.cc (expr::gen_transform): Also disallow resimplification
3987 from pushing to lseq with force_leaf.
3988 (dt_simplify::gen_1): Likewise.
3989
3990 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
3991
3992 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
3993 (struct kernargs): Replace the common content with kernargs_abi.
3994 (struct heap): Delete.
3995 (main): Read GCN_STACK_SIZE envvar.
3996 Allocate space for the device stacks.
3997 Write the new kernargs fields.
3998 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
3999 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
4000 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
4001 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
4002 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
4003 Set up the stacks from the values in the kernargs, not private.
4004 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
4005 (gcn_hsa_declare_function_name): Turn off the private segment.
4006 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
4007 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
4008 * config/gcn/gcn.opt (mstack-size): Change the description.
4009
4010 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
4011
4012 PR target/108443
4013 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
4014 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
4015 addressing MVE predicate modes.
4016 (mve_bool_vec_to_const): Change to represent correct MVE predicate
4017 format.
4018 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
4019 modes.
4020 (arm_vector_mode_supported_p): Likewise.
4021 (arm_mode_to_pred_mode): Add V2QI.
4022 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
4023 qualifier.
4024 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
4025 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
4026 (v2qi_UP): New macro.
4027 (v4bi_UP): New macro.
4028 (v8bi_UP): New macro.
4029 (v16bi_UP): New macro.
4030 (arm_expand_builtin_args): Make it able to expand the new predicate
4031 modes.
4032 * config/arm/arm-modes.def (V2QI): New mode.
4033 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
4034 Pred4x4_t): Remove unused predicate builtin types.
4035 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
4036 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
4037 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
4038 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
4039 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
4040 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
4041 of MODE_VECTOR_BOOL.
4042 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
4043 (MVE_VPRED): Likewise.
4044 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
4045 (MVE_vctp): New mode attribute.
4046 (mode1): Remove.
4047 (VCTPQ): Remove.
4048 (VCTPQ_M): Remove.
4049 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
4050 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
4051 attributes.
4052 (mve_vpnothi): Rename this...
4053 (mve_vpnotv16bi): ... to this.
4054 (mve_vctp<mode1>q_mhi): Rename this...
4055 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
4056 (mve_vldrdq_gather_base_z_<supf>v2di,
4057 mve_vldrdq_gather_offset_z_<supf>v2di,
4058 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
4059 mve_vstrdq_scatter_base_p_<supf>v2di,
4060 mve_vstrdq_scatter_offset_p_<supf>v2di,
4061 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
4062 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
4063 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
4064 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
4065 mve_vldrdq_gather_base_wb_z_<supf>v2di,
4066 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
4067 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
4068 predicates.
4069 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
4070 these...
4071 (VCTP): ... with this.
4072 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
4073 (VCTP_M): ... with this.
4074 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
4075 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
4076
4077 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
4078
4079 PR target/107674
4080 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
4081 (arm_modes_tieable_p): Make MVE predicate modes tieable.
4082 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
4083 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
4084 simplify_subreg to simplify subregs where the outermode is not scalar.
4085
4086 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
4087
4088 PR target/107674
4089 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
4090 new qualifiers parameter and use unsigned short type for MVE predicate.
4091 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
4092 parameter.
4093 (arm_init_crypto_builtins): Likewise.
4094
4095 2023-02-02 Jakub Jelinek <jakub@redhat.com>
4096
4097 PR ipa/107300
4098 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
4099 * internal-fn.def (TRAP): Remove.
4100 * internal-fn.cc (expand_TRAP): Remove.
4101 * tree.cc (build_common_builtin_nodes): Define
4102 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
4103 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
4104 instead of BUILT_IN_TRAP.
4105 * gimple.cc (gimple_build_builtin_unreachable): Remove
4106 emitting internal function for BUILT_IN_TRAP.
4107 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
4108 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
4109 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
4110 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
4111 BUILT_IN_UNREACHABLE_TRAP.
4112 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
4113 * tree-cfg.cc (verify_gimple_call,
4114 pass_warn_function_return::execute): Likewise.
4115 * attribs.cc (decl_attributes): Don't report exclusions on
4116 BUILT_IN_UNREACHABLE_TRAP either.
4117
4118 2023-02-02 liuhongt <hongtao.liu@intel.com>
4119
4120 PR tree-optimization/108601
4121 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
4122 * tree-vect-loop.cc
4123 (vectorizable_nonlinear_induction): Remove
4124 vect_can_peel_nonlinear_iv_p.
4125 (vect_can_peel_nonlinear_iv_p): Don't peel
4126 nonlinear iv(mult or shift) for epilog when vf is not
4127 constant and moved the defination to ..
4128 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
4129 .. Here.
4130
4131 2023-02-02 Jakub Jelinek <jakub@redhat.com>
4132
4133 PR middle-end/108435
4134 * tree-nested.cc (convert_nonlocal_omp_clauses)
4135 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
4136 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
4137 before calling declare_vars.
4138 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
4139 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
4140 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
4141 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
4142
4143 2023-02-01 Tamar Christina <tamar.christina@arm.com>
4144
4145 * common/config/aarch64/aarch64-common.cc
4146 (struct aarch64_option_extension): Add native_detect and document struct
4147 a bit more.
4148 (all_extensions): Set new field native_detect.
4149 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
4150 unused struct.
4151
4152 2023-02-01 Martin Liska <mliska@suse.cz>
4153
4154 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
4155 value if set.
4156
4157 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
4158
4159 PR tree-optimization/108356
4160 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
4161 do a search of the DOM tree for a range.
4162
4163 2023-02-01 Martin Liska <mliska@suse.cz>
4164
4165 PR ipa/108509
4166 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
4167 ony non-null values.
4168 * ipa.cc (walk_polymorphic_call_targets): Likewise.
4169
4170 2023-02-01 Martin Liska <mliska@suse.cz>
4171
4172 PR driver/108572
4173 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
4174 -gz=zstd.
4175
4176 2023-02-01 Jakub Jelinek <jakub@redhat.com>
4177
4178 PR debug/108573
4179 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
4180 subregs in DEBUG_INSNs.
4181
4182 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
4183
4184 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
4185
4186 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
4187
4188 * config/s390/s390.cc (s390_restore_gpr_p): New function.
4189 (s390_preserve_gpr_arg_in_range_p): New function.
4190 (s390_preserve_gpr_arg_p): New function.
4191 (s390_preserve_fpr_arg_p): New function.
4192 (s390_register_info_stdarg_fpr): Rename to ...
4193 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
4194 (s390_register_info_stdarg_gpr): Rename to ...
4195 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
4196 (s390_register_info): Use the renamed functions above.
4197 (s390_optimize_register_info): Likewise.
4198 (save_fpr): Generate CFI for -mpreserve-args.
4199 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
4200 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
4201 (s390_optimize_prologue): Likewise.
4202 * config/s390/s390.opt: New option -mpreserve-args
4203
4204 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
4205
4206 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
4207 (restore_gprs): Likewise.
4208 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
4209 frame pointer if a frame-pointer is used.
4210 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
4211 * config/s390/s390.md (stack_tie): Add a register operand and
4212 rename to ...
4213 (@stack_tie<mode>): ... this.
4214
4215 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
4216
4217 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
4218 EMIT_CFI parameter.
4219 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
4220 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
4221
4222 2023-02-01 Richard Biener <rguenther@suse.de>
4223
4224 PR middle-end/108500
4225 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
4226 with tree traversal algorithm.
4227
4228 2023-02-01 Jason Merrill <jason@redhat.com>
4229
4230 * doc/invoke.texi: Document -Wno-changes-meaning.
4231
4232 2023-02-01 David Malcolm <dmalcolm@redhat.com>
4233
4234 * doc/invoke.texi (Static Analyzer Options): Add notes about
4235 limitations of -fanalyzer.
4236
4237 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4238
4239 * config/riscv/constraints.md (vj): New.
4240 (vk): Ditto
4241 * config/riscv/iterators.md: Add more opcode.
4242 * config/riscv/predicates.md (vector_arith_operand): New.
4243 (vector_neg_arith_operand): New.
4244 (vector_shift_operand): New.
4245 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
4246 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
4247 (vsub): Ditto.
4248 (vand): Ditto.
4249 (vor): Ditto.
4250 (vxor): Ditto.
4251 (vsll): Ditto.
4252 (vsra): Ditto.
4253 (vsrl): Ditto.
4254 (vmin): Ditto.
4255 (vmax): Ditto.
4256 (vminu): Ditto.
4257 (vmaxu): Ditto.
4258 (vmul): Ditto.
4259 (vdiv): Ditto.
4260 (vrem): Ditto.
4261 (vdivu): Ditto.
4262 (vremu): Ditto.
4263 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
4264 (vsub): Ditto.
4265 (vand): Ditto.
4266 (vor): Ditto.
4267 (vxor): Ditto.
4268 (vsll): Ditto.
4269 (vsra): Ditto.
4270 (vsrl): Ditto.
4271 (vmin): Ditto.
4272 (vmax): Ditto.
4273 (vminu): Ditto.
4274 (vmaxu): Ditto.
4275 (vmul): Ditto.
4276 (vdiv): Ditto.
4277 (vrem): Ditto.
4278 (vdivu): Ditto.
4279 (vremu): Ditto.
4280 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
4281 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
4282 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
4283 (DEF_RVV_U_OPS): New.
4284 (rvv_arg_type_info::get_base_vector_type): Handle
4285 RVV_BASE_shift_vector.
4286 (rvv_arg_type_info::get_tree_type): Ditto.
4287 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
4288 RVV_BASE_shift_vector.
4289 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
4290 * config/riscv/vector-iterators.md: Handle more opcode.
4291 * config/riscv/vector.md (@pred_<optab><mode>): New.
4292
4293 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
4294
4295 PR target/108589
4296 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
4297 REG_P on SET_DEST.
4298
4299 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
4300
4301 PR tree-optimization/108608
4302 * tree-vect-loop.cc (vect_transform_reduction): Handle single
4303 def-use cycles that involve function calls rather than tree codes.
4304
4305 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
4306
4307 PR tree-optimization/108385
4308 * gimple-range-gori.cc (gori_compute::compute_operand_range):
4309 Allow VARYING computations to continue if there is a relation.
4310 * range-op.cc (pointer_plus_operator::op2_range): New.
4311
4312 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
4313
4314 PR tree-optimization/108359
4315 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
4316 (range_operator::fold_range): If op1 is equivalent to op2 then
4317 invoke new fold_in_parts_equiv to operate on sub-components.
4318 * range-op.h (wi_fold_in_parts_equiv): New prototype.
4319
4320 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
4321
4322 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
4323 not abort calculations if there is a valid relation available.
4324 (gori_compute::refine_using_relation): Pass correct relation trio.
4325 (gori_compute::compute_operand1_range): Create trio and use it.
4326 (gori_compute::compute_operand2_range): Ditto.
4327 * range-op.cc (operator_plus::op1_range): Use correct trio member.
4328 (operator_minus::op1_range): Use correct trio member.
4329 * value-relation.cc (value_relation::create_trio): New.
4330 * value-relation.h (value_relation::create_trio): New prototype.
4331
4332 2023-01-31 Jakub Jelinek <jakub@redhat.com>
4333
4334 PR target/108599
4335 * config/i386/i386-expand.cc
4336 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
4337 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
4338 equal to bitsize of mode.
4339
4340 2023-01-31 Jakub Jelinek <jakub@redhat.com>
4341
4342 PR rtl-optimization/108596
4343 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
4344 ends with asm goto and has a crossing fallthrough edge to the same bb
4345 that contains at least one of its labels by restoring EDGE_CROSSING
4346 flag even on possible edge from cur_bb to new_bb successor.
4347
4348 2023-01-31 Jakub Jelinek <jakub@redhat.com>
4349
4350 PR c++/105593
4351 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
4352 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
4353 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
4354 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
4355 uninitialized automatic variable __W.
4356
4357 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
4358
4359 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
4360
4361 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4362
4363 * config/riscv/riscv-protos.h (get_vector_mode): New function.
4364 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
4365 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
4366 (class loadstore): Adjust for indexed loads/stores support.
4367 (BASE): Ditto.
4368 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
4369 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
4370 (vluxei16): Ditto.
4371 (vluxei32): Ditto.
4372 (vluxei64): Ditto.
4373 (vloxei8): Ditto.
4374 (vloxei16): Ditto.
4375 (vloxei32): Ditto.
4376 (vloxei64): Ditto.
4377 (vsuxei8): Ditto.
4378 (vsuxei16): Ditto.
4379 (vsuxei32): Ditto.
4380 (vsuxei64): Ditto.
4381 (vsoxei8): Ditto.
4382 (vsoxei16): Ditto.
4383 (vsoxei32): Ditto.
4384 (vsoxei64): Ditto.
4385 * config/riscv/riscv-vector-builtins-shapes.cc
4386 (struct indexed_loadstore_def): New class.
4387 (SHAPE): Ditto.
4388 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4389 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
4390 for indexed loads/stores support.
4391 (check_required_extensions): Ditto.
4392 (rvv_arg_type_info::get_base_vector_type): New function.
4393 (rvv_arg_type_info::get_tree_type): Ditto.
4394 (function_builder::add_unique_function): Adjust for indexed loads/stores
4395 support.
4396 (function_expander::use_exact_insn): New function.
4397 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
4398 indexed loads/stores support.
4399 (struct rvv_arg_type_info): Ditto.
4400 (function_expander::index_mode): New function.
4401 (function_base::apply_tail_policy_p): Ditto.
4402 (function_base::apply_mask_policy_p): Ditto.
4403 * config/riscv/vector-iterators.md (unspec): New unspec.
4404 * config/riscv/vector.md (unspec): Ditto.
4405 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
4406 pattern.
4407 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
4408 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
4409 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
4410 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
4411 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
4412 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
4413 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
4414 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
4415 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
4416 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
4417 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
4418 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
4419 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
4420
4421 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
4422
4423 * config.gcc: Recognize x86_64-*-gnu* targets and include
4424 i386/gnu64.h.
4425 * config/i386/gnu64.h: Define configuration for new target
4426 including ld.so location.
4427
4428 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
4429
4430 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
4431 ampere1a to include SM4.
4432
4433 2023-01-30 Andrew Pinski <apinski@marvell.com>
4434
4435 PR tree-optimization/108582
4436 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
4437 for middlebb to have no phi nodes.
4438
4439 2023-01-30 Richard Biener <rguenther@suse.de>
4440
4441 PR tree-optimization/108574
4442 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
4443 sameval and def, ignore the equivalence if there's the
4444 danger of oscillating between two values.
4445
4446 2023-01-30 Andreas Schwab <schwab@suse.de>
4447
4448 * common/config/riscv/riscv-common.cc
4449 (riscv_option_optimization_table)
4450 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
4451 -fasynchronous-unwind-tables and -funwind-tables.
4452 * config.gcc (riscv*-*-linux*): Define
4453 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
4454
4455 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
4456
4457 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
4458 value of includedir.
4459
4460 2023-01-30 Richard Biener <rguenther@suse.de>
4461
4462 PR ipa/108511
4463 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
4464 assert.
4465
4466 2023-01-30 liuhongt <hongtao.liu@intel.com>
4467
4468 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
4469 * doc/invoke.texi: Ditto.
4470
4471 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
4472
4473 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
4474 (stmt_may_terminate_function_p): If assuming return or EH
4475 volatile asm is safe.
4476 (find_always_executed_bbs): Fix handling of terminating BBS and
4477 infinite loops; add debug output.
4478 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
4479
4480 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
4481
4482 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
4483 off-by-one in checking the permissible shift-amount.
4484
4485 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4486
4487 * doc/extend.texi (Named Address Spaces): Update link to the
4488 AVR-Libc manual.
4489
4490 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4491
4492 * doc/standards.texi (Standards): Fix markup.
4493
4494 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4495
4496 * doc/standards.texi (Standards): Update link to Objective-C book.
4497
4498 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4499
4500 * doc/invoke.texi (Instrumentation Options): Update reference to
4501 AddressSanitizer.
4502
4503 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4504
4505 * doc/standards.texi: Update Go1 link.
4506
4507 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4508
4509 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
4510 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
4511 Support vlse/vsse.
4512 (BASE): Ditto.
4513 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4514 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
4515 (vsse): New class.
4516 * config/riscv/riscv-vector-builtins.cc
4517 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
4518 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
4519 (@pred_strided_store<mode>): Ditto.
4520
4521 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4522
4523 * config/riscv/vector.md (tail_policy_op_idx): Remove.
4524 (mask_policy_op_idx): Remove.
4525 (avl_type_op_idx): Remove.
4526
4527 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
4528
4529 PR tree-optimization/96373
4530 * tree.h (sign_mask_for): Declare.
4531 * tree.cc (sign_mask_for): New function.
4532 (signed_or_unsigned_type_for): For vector types, try to use the
4533 related_int_vector_mode.
4534 * genmatch.cc (commutative_op): Handle conditional internal functions.
4535 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
4536
4537 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
4538
4539 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
4540 Use the likely minimum VF when bounding the denominators to
4541 the estimated number of iterations.
4542
4543 2023-01-27 Richard Biener <rguenther@suse.de>
4544
4545 PR target/55522
4546 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
4547 and -Ofast FP environment side-effects.
4548
4549 2023-01-27 Richard Biener <rguenther@suse.de>
4550
4551 PR target/55522
4552 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
4553 Don't add crtfastmath.o for -shared.
4554
4555 2023-01-27 Richard Biener <rguenther@suse.de>
4556
4557 PR target/55522
4558 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
4559 for -shared.
4560
4561 2023-01-27 Richard Biener <rguenther@suse.de>
4562
4563 PR target/55522
4564 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
4565 crtfastmath.o for -shared.
4566
4567 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
4568
4569 PR tree-optimization/108306
4570 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
4571 varying for shifts that are always out of void range.
4572 (operator_rshift::fold_range): Return [0, 0] not
4573 varying for shifts that are always out of void range.
4574
4575 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
4576
4577 PR tree-optimization/108447
4578 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
4579 Do not attempt to fold HONOR_NAN types.
4580
4581 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4582
4583 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
4584 Remove _m suffix for "vop_m" C++ overloaded API name.
4585
4586 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4587
4588 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
4589 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4590 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
4591 (vsm): Ditto.
4592 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
4593 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
4594 (vbool64_t): Ditto.
4595 (vbool32_t): Ditto.
4596 (vbool16_t): Ditto.
4597 (vbool8_t): Ditto.
4598 (vbool4_t): Ditto.
4599 (vbool2_t): Ditto.
4600 (vbool1_t): Ditto.
4601 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
4602 (rvv_arg_type_info::get_tree_type): Ditto.
4603 (function_expander::use_contiguous_load_insn): Ditto.
4604 * config/riscv/vector.md (@pred_store<mode>): Ditto.
4605
4606 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4607
4608 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
4609 (vsetvl_discard_result_insn_p): New function.
4610 (reg_killed_by_bb_p): rename to find_reg_killed_by.
4611 (find_reg_killed_by): New name.
4612 (get_vl): allow it to be called by more functions.
4613 (has_vsetvl_killed_avl_p): Add condition.
4614 (get_avl): allow it to be called by more functions.
4615 (insn_should_be_added_p): New function.
4616 (get_all_nonphi_defs): Refine function.
4617 (get_all_sets): Ditto.
4618 (get_same_bb_set): New function.
4619 (any_insn_in_bb_p): Ditto.
4620 (any_set_in_bb_p): Ditto.
4621 (get_vl_vtype_info): Add VLMAX forward optimization.
4622 (source_equal_p): Fix issues.
4623 (extract_single_source): Refine.
4624 (avl_info::multiple_source_equal_p): New function.
4625 (avl_info::operator==): Adjust for final version.
4626 (vl_vtype_info::operator==): Ditto.
4627 (vl_vtype_info::same_avl_p): Ditto.
4628 (vector_insn_info::parse_insn): Ditto.
4629 (vector_insn_info::available_p): New function.
4630 (vector_insn_info::merge): Adjust for final version.
4631 (vector_insn_info::dump): Add hard_empty.
4632 (pass_vsetvl::hard_empty_block_p): New function.
4633 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
4634 (pass_vsetvl::forward_demand_fusion): Ditto.
4635 (pass_vsetvl::demand_fusion): Ditto.
4636 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
4637 (pass_vsetvl::compute_local_properties): Adjust for final version.
4638 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
4639 (pass_vsetvl::refine_vsetvls): Ditto.
4640 (pass_vsetvl::commit_vsetvls): Ditto.
4641 (pass_vsetvl::propagate_avl): New function.
4642 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
4643 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
4644
4645 2023-01-27 Jakub Jelinek <jakub@redhat.com>
4646
4647 PR other/108560
4648 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
4649 from size_t to int.
4650
4651 2023-01-27 Jakub Jelinek <jakub@redhat.com>
4652
4653 PR ipa/106061
4654 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
4655 redirection of calls to __builtin_trap in addition to redirection
4656 to __builtin_unreachable.
4657
4658 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4659
4660 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
4661
4662 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4663
4664 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
4665 (emit_vsetvl_insn): Ditto.
4666
4667 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4668
4669 * config/riscv/vector.md: Fix constraints.
4670
4671 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4672
4673 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
4674
4675 2023-01-27 Patrick Palka <ppalka@redhat.com>
4676 Jakub Jelinek <jakub@redhat.com>
4677
4678 * tree-core.h (tree_code_type, tree_code_length): For
4679 C++17 and later, add inline keyword, otherwise don't define
4680 the arrays, but declare extern arrays.
4681 * tree.cc (tree_code_type, tree_code_length): Define these
4682 arrays for C++14 and older.
4683
4684 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4685
4686 * config/riscv/riscv-vsetvl.h: Change it into public.
4687
4688 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4689
4690 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
4691 pass.
4692
4693 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4694
4695 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
4696
4697 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4698
4699 * config/riscv/vector.md: Fix incorrect attributes.
4700
4701 2023-01-27 Richard Biener <rguenther@suse.de>
4702
4703 PR target/55522
4704 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
4705 Don't add crtfastmath.o for -shared.
4706
4707 2023-01-27 Alexandre Oliva <oliva@gnu.org>
4708
4709 * doc/options.texi (option, RejectNegative): Mention that
4710 -g-started options are also implicitly negatable.
4711
4712 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
4713
4714 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
4715 Use get_typenode_from_name to get fixed-width integer type
4716 nodes.
4717 * config/riscv/riscv-vector-builtins.def: Update define with
4718 fixed-width integer type nodes.
4719
4720 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4721
4722 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
4723 (real_insn_and_same_bb_p): New function.
4724 (same_bb_and_after_or_equal_p): Remove it.
4725 (before_p): New function.
4726 (reg_killed_by_bb_p): Ditto.
4727 (has_vsetvl_killed_avl_p): Ditto.
4728 (get_vl): Move location so that we can call it.
4729 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
4730 (available_occurrence_p): Ditto.
4731 (dominate_probability_p): Remove it.
4732 (can_backward_propagate_p): Remove it.
4733 (get_all_nonphi_defs): New function.
4734 (get_all_predecessors): Ditto.
4735 (any_insn_in_bb_p): Ditto.
4736 (insert_vsetvl): Adjust AVL REG.
4737 (source_equal_p): New function.
4738 (extract_single_source): Ditto.
4739 (avl_info::single_source_equal_p): Ditto.
4740 (avl_info::operator==): Adjust for AVL=REG.
4741 (vl_vtype_info::same_avl_p): Ditto.
4742 (vector_insn_info::set_demand_info): Remove it.
4743 (vector_insn_info::compatible_p): Adjust for AVL=REG.
4744 (vector_insn_info::compatible_avl_p): New function.
4745 (vector_insn_info::merge): Adjust AVL=REG.
4746 (vector_insn_info::dump): Ditto.
4747 (pass_vsetvl::merge_successors): Remove it.
4748 (enum fusion_type): New enum.
4749 (pass_vsetvl::get_backward_fusion_type): New function.
4750 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
4751 (pass_vsetvl::forward_demand_fusion): Ditto.
4752 (pass_vsetvl::demand_fusion): Ditto.
4753 (pass_vsetvl::prune_expressions): Ditto.
4754 (pass_vsetvl::compute_local_properties): Ditto.
4755 (pass_vsetvl::cleanup_vsetvls): Ditto.
4756 (pass_vsetvl::commit_vsetvls): Ditto.
4757 (pass_vsetvl::init): Ditto.
4758 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
4759 (enum merge_type): New enum.
4760
4761 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4762
4763 * config/riscv/riscv-vsetvl.cc
4764 (vector_infos_manager::vector_infos_manager): Add probability.
4765 (vector_infos_manager::dump): Ditto.
4766 (pass_vsetvl::compute_probabilities): Ditto.
4767 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
4768
4769 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4770
4771 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
4772 (vector_insn_info::merge): Ditto.
4773 (vector_insn_info::dump): Ditto.
4774 (pass_vsetvl::merge_successors): Ditto.
4775 (pass_vsetvl::backward_demand_fusion): Ditto.
4776 (pass_vsetvl::forward_demand_fusion): Ditto.
4777 (pass_vsetvl::commit_vsetvls): Ditto.
4778 * config/riscv/riscv-vsetvl.h: Ditto.
4779
4780 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4781
4782 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
4783 rinsn.
4784
4785 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4786
4787 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
4788
4789 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4790
4791 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
4792 Add pre-check for redundant flow.
4793
4794 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4795
4796 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
4797 (vector_infos_manager::free_bitmap_vectors): Ditto.
4798 (pass_vsetvl::pre_vsetvl): Adjust codes.
4799 * config/riscv/riscv-vsetvl.h: New function declaration.
4800
4801 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4802
4803 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
4804 (vector_insn_info::set_demand_info): New function.
4805 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
4806 (pass_vsetvl::merge_successors): Ditto.
4807 (pass_vsetvl::compute_global_backward_infos): Ditto.
4808 (pass_vsetvl::backward_demand_fusion): Ditto.
4809 (pass_vsetvl::forward_demand_fusion): Ditto.
4810 (pass_vsetvl::demand_fusion): New function.
4811 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
4812 * config/riscv/riscv-vsetvl.h: New function declaration.
4813
4814 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4815
4816 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
4817
4818 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4819
4820 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
4821 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
4822
4823 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4824
4825 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
4826 (backward_propagate_worthwhile_p): Fix non-worthwhile.
4827
4828 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4829
4830 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
4831
4832 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4833
4834 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
4835 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
4836 (pass_vsetvl::commit_vsetvls): Ditto.
4837 * config/riscv/riscv-vsetvl.h: New function declaration.
4838
4839 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4840
4841 * config/riscv/vector.md:
4842
4843 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4844
4845 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
4846 pred_store for vse.
4847 * config/riscv/riscv-vector-builtins.cc
4848 (function_expander::add_mem_operand): Refine function.
4849 (function_expander::use_contiguous_load_insn): Adjust new
4850 implementation.
4851 (function_expander::use_contiguous_store_insn): Ditto.
4852 * config/riscv/riscv-vector-builtins.h: Refine function.
4853 * config/riscv/vector.md (@pred_store<mode>): New pattern.
4854
4855 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4856
4857 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
4858
4859 2023-01-26 Marek Polacek <polacek@redhat.com>
4860
4861 PR middle-end/108543
4862 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
4863 if it was previously set.
4864
4865 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4866
4867 PR tree-optimization/108540
4868 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
4869 are singletons, use range_true even if op1 != op2
4870 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4871 even if intersection of the ranges is empty and one has
4872 zero low bound and another zero high bound, use range_true_and_false
4873 rather than range_false.
4874 (foperator_not_equal::fold_range): If both op1 and op2
4875 are singletons, use range_false even if op1 != op2
4876 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
4877 even if intersection of the ranges is empty and one has
4878 zero low bound and another zero high bound, use range_true_and_false
4879 rather than range_true.
4880
4881 2023-01-26 Jakub Jelinek <jakub@redhat.com>
4882
4883 * value-relation.cc (kind_string): Add const.
4884 (rr_negate_table, rr_swap_table, rr_intersect_table,
4885 rr_union_table, rr_transitive_table): Add static const, change
4886 element type from relation_kind to unsigned char.
4887 (relation_negate, relation_swap, relation_intersect, relation_union,
4888 relation_transitive): Cast rr_*_table element to relation_kind.
4889 (relation_to_code): Add static const.
4890 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
4891
4892 2023-01-26 Richard Biener <rguenther@suse.de>
4893
4894 PR tree-optimization/108547
4895 * gimple-predicate-analysis.cc (value_sat_pred_p):
4896 Use widest_int.
4897
4898 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
4899
4900 PR tree-optimization/108522
4901 * tree-object-size.cc (compute_object_offset): Make EXPR
4902 argument non-const. Call component_ref_field_offset.
4903
4904 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4905
4906 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
4907 FEATURE_STRING field.
4908
4909 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4910
4911 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
4912
4913 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
4914
4915 PR modula2/102343
4916 PR modula2/108182
4917 * gcc.cc: Provide default specs for Modula-2 so that when the
4918 language is not built-in better diagnostics are emitted for
4919 attempts to use .mod or .m2i file extensions.
4920
4921 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4922
4923 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
4924
4925 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4926
4927 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
4928
4929 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4930
4931 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
4932 Fix spacing.
4933
4934 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4935
4936 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
4937
4938 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4939
4940 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
4941
4942 2023-01-25 Richard Biener <rguenther@suse.de>
4943
4944 PR tree-optimization/108523
4945 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
4946 backedge value for the result when using predication to
4947 prove equivalence.
4948
4949 2023-01-25 Richard Biener <rguenther@suse.de>
4950
4951 * doc/lto.texi (Command line options): Reword and update reference
4952 to removed lto_read_all_file_options.
4953
4954 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
4955
4956 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
4957 tests.
4958
4959 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
4960
4961 * doc/contrib.texi: Add Jose E. Marchesi.
4962
4963 2023-01-25 Jakub Jelinek <jakub@redhat.com>
4964
4965 PR tree-optimization/108498
4966 * gimple-ssa-store-merging.cc (class store_operand_info):
4967 End coment with full stop rather than comma.
4968 (split_group): Likewise.
4969 (merged_store_group::apply_stores): Clear string_concatenation if
4970 start or end aren't on a byte boundary.
4971
4972 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
4973 Jakub Jelinek <jakub@redhat.com>
4974
4975 PR tree-optimization/108522
4976 * tree-object-size.cc (compute_object_offset): Use
4977 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
4978
4979 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4980
4981 * config/xtensa/xtensa.md:
4982 Fix exit from loops detecting references before overwriting in the
4983 split pattern.
4984
4985 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
4986
4987 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
4988 do elimination but only for hard register.
4989 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
4990 calls of get_hard_regno.
4991
4992 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4993
4994 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
4995 of CPU version.
4996
4997 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
4998
4999 PR target/108177
5000 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
5001 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
5002 as input operand.
5003
5004 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5005
5006 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
5007 and only include 'csky/t-csky-linux' when enable multilib.
5008 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
5009 define it when disable multilib.
5010
5011 2023-01-24 Richard Biener <rguenther@suse.de>
5012
5013 PR tree-optimization/108500
5014 * dominance.h (calculate_dominance_info): Add parameter
5015 to indicate fast-query compute, defaulted to true.
5016 * dominance.cc (calculate_dominance_info): Honor
5017 fast-query compute parameter.
5018 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
5019 not compute the dominator fast-query DFS numbers.
5020
5021 2023-01-24 Eric Biggers <ebiggers@google.com>
5022
5023 PR bootstrap/90543
5024 * optc-save-gen.awk: Fix copy-and-paste error.
5025
5026 2023-01-24 Jakub Jelinek <jakub@redhat.com>
5027
5028 PR c++/108474
5029 * cgraphbuild.cc: Include gimplify.h.
5030 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
5031 their corresponding DECL_VALUE_EXPR expressions after unsharing.
5032
5033 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5034
5035 PR target/108505
5036 * config.gcc (tm_file): Move the variable out of loop.
5037
5038 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
5039 Yang Yujie <yangyujie@loongson.cn>
5040
5041 PR target/107731
5042 * config/loongarch/loongarch.cc (loongarch_classify_address):
5043 Add precessint for CONST_INT.
5044 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
5045 (loongarch_print_operand): Increase the processing of '%c'.
5046 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
5047 And port the public operand modifiers information to this document.
5048
5049 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5050
5051 * doc/invoke.texi (-mbranch-protection): Update documentation.
5052
5053 2023-01-23 Richard Biener <rguenther@suse.de>
5054
5055 PR target/55522
5056 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
5057 for -shared.
5058 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
5059 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
5060 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
5061 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
5062
5063 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5064
5065 * config/arm/aout.h (ra_auth_code): Add entry in enum.
5066 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
5067 to dwarf frame expression.
5068 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
5069 (arm_expand_prologue): Update frame related information and reg notes
5070 for pac/pacbit insn.
5071 (arm_regno_class): Check for pac pseudo reigster.
5072 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
5073 (arm_init_machine_status): Set pacspval_needed to zero.
5074 (arm_debugger_regno): Check for PAC register.
5075 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
5076 register.
5077 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
5078 (arm_unwind_emit): Update REG_CFA_REGISTER case._
5079 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
5080 (DWARF_PAC_REGNUM): Define.
5081 (IS_PAC_REGNUM): Likewise.
5082 (enum reg_class): Add PAC_REG entry.
5083 (machine_function): Add pacbti_needed state to structure.
5084 * config/arm/arm.md (RA_AUTH_CODE): Define.
5085
5086 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5087
5088 * config.gcc ($tm_file): Update variable.
5089 * config/arm/arm-mlib.h: Create new header file.
5090 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
5091 multilib arch directory.
5092 (MULTILIB_REUSE): Add multilib reuse rules.
5093 (MULTILIB_MATCHES): Add multilib match rules.
5094
5095 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5096
5097 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
5098 * config/arm/arm-tables.opt: Regenerate.
5099 * config/arm/arm-tune.md: Likewise.
5100 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
5101 * (-mfix-cmse-cve-2021-35465): Likewise.
5102
5103 2023-01-23 Richard Biener <rguenther@suse.de>
5104
5105 PR tree-optimization/108482
5106 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
5107 .LOOP_DIST_ALIAS calls.
5108
5109 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5110
5111 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
5112 * config/arm/arm-protos.h: Update.
5113 * config/arm/aarch-common-protos.h: Declare
5114 'aarch_bti_arch_check'.
5115 * config/arm/arm.cc (aarch_bti_enabled) Update.
5116 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
5117 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
5118 * config/arm/arm.md (bti_nop): New insn.
5119 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
5120 (aarch-bti-insert.o): New target.
5121 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
5122 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
5123 compatibility.
5124 (gate): Make use of 'aarch_bti_arch_check'.
5125 * config/arm/arm-passes.def: New file.
5126 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
5127
5128 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5129
5130 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
5131 'aarch-bti-insert.o'.
5132 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
5133 proto.
5134 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
5135 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
5136 (aarch64_output_mi_thunk)
5137 (aarch64_print_patchable_function_entry)
5138 (aarch64_file_end_indicate_exec_stack): Update renamed function
5139 calls to renamed functions.
5140 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
5141 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
5142 target.
5143 * config/aarch64/aarch64-bti-insert.cc: Delete.
5144 * config/arm/aarch-bti-insert.cc: New file including and
5145 generalizing code from aarch64-bti-insert.cc.
5146 * config/arm/aarch-common-protos.h: Update.
5147
5148 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5149
5150 * config/arm/arm.h (arm_arch8m_main): Declare it.
5151 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
5152 Declare it.
5153 * config/arm/arm.cc (arm_arch8m_main): Define it.
5154 (arm_option_reconfigure_globals): Set arm_arch8m_main.
5155 (arm_compute_frame_layout, arm_expand_prologue)
5156 (thumb2_expand_return, arm_expand_epilogue)
5157 (arm_conditional_register_usage): Update for pac codegen.
5158 (arm_current_function_pac_enabled_p): New function.
5159 (aarch_bti_enabled) New function.
5160 (use_return_insn): Return zero when pac is enabled.
5161 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
5162 Add new patterns.
5163 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
5164 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
5165
5166 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5167
5168 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
5169 mbranch-protection.
5170
5171 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5172 Tejas Belagod <tbelagod@arm.com>
5173
5174 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
5175 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
5176
5177 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5178 Tejas Belagod <tbelagod@arm.com>
5179 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5180
5181 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
5182 new pseudo register class _UVRSC_PAC.
5183
5184 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5185 Tejas Belagod <tbelagod@arm.com>
5186
5187 * config/arm/arm-c.cc (arm_cpu_builtins): Define
5188 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
5189 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
5190
5191 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5192 Tejas Belagod <tbelagod@arm.com>
5193
5194 * doc/sourcebuild.texi: Document arm_pacbti_hw.
5195
5196 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5197 Tejas Belagod <tbelagod@arm.com>
5198 Richard Earnshaw <Richard.Earnshaw@arm.com>
5199
5200 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
5201 -mbranch-protection option and initialize appropriate data structures.
5202 * config/arm/arm.opt (-mbranch-protection): New option.
5203 * doc/invoke.texi (Arm Options): Document it.
5204
5205 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5206 Tejas Belagod <tbelagod@arm.com>
5207
5208 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
5209 * config/arm/arm-cpus.in (pacbti): New feature.
5210 * doc/invoke.texi (Arm Options): Document it.
5211
5212 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5213 Tejas Belagod <tbelagod@arm.com>
5214
5215 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
5216 (all_architectures): Fix comment.
5217 (aarch64_parse_extension): Rename return type, enum value names.
5218 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
5219 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
5220 Also rename corresponding enum values.
5221 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
5222 out aarch64_function_type and move it to common code as
5223 aarch_function_type in aarch-common.h.
5224 * config/aarch64/aarch64-protos.h: Include common types header,
5225 move out types aarch64_parse_opt_result and aarch64_key_type to
5226 aarch-common.h
5227 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
5228 and functions out into aarch-common.h and aarch-common.cc. Fix up
5229 all the name changes resulting from the move.
5230 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
5231 and enum value.
5232 * config/aarch64/aarch64.opt: Include aarch-common.h to import
5233 type move. Fix up name changes from factoring out common code and
5234 data.
5235 * config/arm/aarch-common-protos.h: Export factored out routines to both
5236 backends.
5237 * config/arm/aarch-common.cc: Include newly factored out types.
5238 Move all mbranch-protection code and data structures from
5239 aarch64.cc.
5240 * config/arm/aarch-common.h: New header that declares types shared
5241 between aarch32 and aarch64 backends.
5242 * config/arm/arm-protos.h: Declare types and variables that are
5243 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
5244 aarch_ra_sign_scope and aarch_enable_bti.
5245 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
5246 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
5247 * config/arm/arm.cc: Add missing includes.
5248
5249 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
5250
5251 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
5252
5253 2023-01-23 Richard Biener <rguenther@suse.de>
5254
5255 PR tree-optimization/108449
5256 * cgraphunit.cc (check_global_declaration): Do not turn
5257 undefined statics into externs.
5258
5259 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
5260
5261 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
5262 and HI input modes.
5263 * config/pru/pru.md (clz): Fix generated code for QI and HI
5264 input modes.
5265
5266 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
5267
5268 * config/v850/v850.cc (v850_select_section): Put const volatile
5269 objects into read-only sections.
5270
5271 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
5272
5273 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
5274 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
5275 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
5276
5277 2023-01-20 Jakub Jelinek <jakub@redhat.com>
5278
5279 PR tree-optimization/108457
5280 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
5281 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
5282 argument instead of a temporary. Formatting fixes.
5283
5284 2023-01-19 Jakub Jelinek <jakub@redhat.com>
5285
5286 PR tree-optimization/108447
5287 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
5288 (relation_tests): Add self-tests for relation_{intersect,union}
5289 commutativity.
5290 * selftest.h (relation_tests): Declare.
5291 * function-tests.cc (test_ranges): Call it.
5292
5293 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
5294
5295 PR target/108436
5296 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
5297 invalid third argument to __builtin_ia32_prefetch.
5298
5299 2023-01-19 Jakub Jelinek <jakub@redhat.com>
5300
5301 PR middle-end/108459
5302 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
5303 than fold_unary for NEGATE_EXPR.
5304
5305 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
5306
5307 PR target/108411
5308 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
5309 comment. Move assert about alignment a bit later.
5310
5311 2023-01-19 Jakub Jelinek <jakub@redhat.com>
5312
5313 PR tree-optimization/108440
5314 * tree-ssa-forwprop.cc: Include gimple-range.h.
5315 (simplify_rotate): For the forms with T2 wider than T and shift counts of
5316 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
5317 to B. For the forms with T2 wider than T and shift counts of
5318 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
5319 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
5320 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
5321 pass specific ranger instead of get_global_range_query.
5322 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
5323 been created.
5324
5325 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5326
5327 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
5328 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
5329 the pattern.
5330 (aarch64_simd_vec_copy_lane<mode>): Likewise.
5331 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5332
5333 2023-01-19 Alexandre Oliva <oliva@adacore.com>
5334
5335 PR debug/106746
5336 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
5337 within debug insns.
5338
5339 2023-01-18 Martin Jambor <mjambor@suse.cz>
5340
5341 PR ipa/107944
5342 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
5343 lcone_of chain also do not need the body.
5344
5345 2023-01-18 Richard Biener <rguenther@suse.de>
5346
5347 Revert:
5348 2022-12-16 Richard Biener <rguenther@suse.de>
5349
5350 PR middle-end/108086
5351 * tree-inline.cc (remap_ssa_name): Do not unshare the
5352 result from the decl_map.
5353
5354 2023-01-18 Murray Steele <murray.steele@arm.com>
5355
5356 PR target/108442
5357 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
5358 function.
5359 (__arm_vst1q_p_s8): Likewise.
5360 (__arm_vld1q_z_u8): Likewise.
5361 (__arm_vld1q_z_s8): Likewise.
5362 (__arm_vst1q_p_u16): Likewise.
5363 (__arm_vst1q_p_s16): Likewise.
5364 (__arm_vld1q_z_u16): Likewise.
5365 (__arm_vld1q_z_s16): Likewise.
5366 (__arm_vst1q_p_u32): Likewise.
5367 (__arm_vst1q_p_s32): Likewise.
5368 (__arm_vld1q_z_u32): Likewise.
5369 (__arm_vld1q_z_s32): Likewise.
5370 (__arm_vld1q_z_f16): Likewise.
5371 (__arm_vst1q_p_f16): Likewise.
5372 (__arm_vld1q_z_f32): Likewise.
5373 (__arm_vst1q_p_f32): Likewise.
5374
5375 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5376
5377 * config/xtensa/xtensa.md (xorsi3_internal):
5378 Rename from the original of "xorsi3".
5379 (xorsi3): New expansion pattern that emits addition rather than
5380 bitwise-XOR when the second source is a constant of -2147483648
5381 if TARGET_DENSITY.
5382
5383 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
5384 Andrew Pinski <apinski@marvell.com>
5385
5386 PR target/108396
5387 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
5388 vec_vsubcuqP with vec_vsubcuq.
5389
5390 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
5391
5392 PR target/108348
5393 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
5394 support for invalid uses of MMA opaque type in function arguments.
5395
5396 2023-01-18 liuhongt <hongtao.liu@intel.com>
5397
5398 PR target/55522
5399 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
5400 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
5401 -share or -mno-daz-ftz is specified.
5402 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
5403 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
5404
5405 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
5406
5407 * config/bpf/bpf.cc (bpf_option_override): Disable
5408 -fstack-protector.
5409
5410 2023-01-17 Jakub Jelinek <jakub@redhat.com>
5411
5412 PR tree-optimization/106523
5413 * tree-ssa-forwprop.cc (simplify_rotate): For the
5414 patterns with (-Y) & (B - 1) in one operand's shift
5415 count and Y in another, if T2 has wider precision than T,
5416 punt if Y could have a value in [B, B2 - 1] range.
5417
5418 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
5419
5420 PR target/105980
5421 * config/i386/i386.cc (x86_output_mi_thunk): Disable
5422 -mforce-indirect-call for PIC in 32-bit mode.
5423
5424 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
5425
5426 PR ipa/106077
5427 * ipa-modref.cc (modref_access_analysis::analyze): Use
5428 find_always_executed_bbs.
5429 * ipa-sra.cc (process_scan_results): Likewise.
5430 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
5431 (find_always_executed_bbs): New function.
5432 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
5433 (find_always_executed_bbs): Declare.
5434
5435 2023-01-16 Jan Hubicka <jh@suse.cz>
5436
5437 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
5438 by TARGET_USE_SCATTER.
5439 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
5440 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
5441 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
5442 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
5443 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
5444 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
5445
5446 2023-01-16 Richard Biener <rguenther@suse.de>
5447
5448 PR target/55522
5449 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
5450
5451 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
5452
5453 PR target/96795
5454 PR target/107515
5455 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
5456 (__ARM_mve_coerce3): Likewise.
5457
5458 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5459
5460 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
5461
5462 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5463
5464 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
5465 (number_of_iterations_bitcount): Add call to the above.
5466 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
5467 c[lt]z idiom recognition.
5468
5469 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5470
5471 * doc/sourcebuild.texi: Add missing target attributes.
5472
5473 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5474
5475 PR tree-optimization/94793
5476 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
5477 for c[lt]z optabs.
5478 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
5479 (number_of_iterations_cltz_complement): New.
5480 (number_of_iterations_bitcount): Add call to the above.
5481
5482 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
5483
5484 * doc/extend.texi (Common Function Attributes): Fix grammar.
5485
5486 2023-01-16 Jakub Jelinek <jakub@redhat.com>
5487
5488 PR other/108413
5489 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
5490 * config/riscv/riscv-vsetvl.cc: Likewise.
5491
5492 2023-01-16 Jakub Jelinek <jakub@redhat.com>
5493
5494 PR c++/105593
5495 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
5496 disable -Winit-self using pragma GCC diagnostic ignored.
5497 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
5498 Likewise.
5499 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
5500 _mm256_undefined_si256): Likewise.
5501 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
5502 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
5503 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
5504 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
5505
5506 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
5507
5508 PR target/108272
5509 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
5510 support for invalid uses in inline asm, factor out the checking and
5511 erroring to lambda function check_and_error_invalid_use.
5512
5513 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
5514
5515 PR tree-optimization/107608
5516 * range-op-float.cc (range_operator_float::fold_range): Avoid
5517 folding into INF when flag_trapping_math.
5518 * value-range.h (frange::known_isinf): Return false for possible NANs.
5519
5520 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5521
5522 * config.gcc (csky-*-*): Support --with-float=softfp.
5523
5524 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5525
5526 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
5527 Rename to xtensa_adjust_reg_alloc_order.
5528 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
5529 Ditto. And also remove code to reorder register numbers for
5530 leaf functions, rename the tables, and adjust the allocation
5531 order for the call0 ABI to use register A0 more.
5532 (xtensa_leaf_regs): Remove.
5533 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
5534 (order_regs_for_local_alloc): Rename as the above.
5535 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
5536
5537 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5538
5539 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
5540 Change to define_insn_and_split to fold ldr+dup to ld1rq.
5541 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
5542
5543 2023-01-14 Alexandre Oliva <oliva@adacore.com>
5544
5545 * hash-table.h (is_deleted): Precheck !is_empty.
5546 (mark_deleted): Postcheck !is_empty.
5547 (copy constructor): Test is_empty before is_deleted.
5548
5549 2023-01-14 Alexandre Oliva <oliva@adacore.com>
5550
5551 PR target/40457
5552 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
5553 moves.
5554
5555 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
5556
5557 PR rtl-optimization/108274
5558 * function.cc (thread_prologue_and_epilogue_insns): Also update the
5559 DF information for calls in a few more cases.
5560
5561 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
5562
5563 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
5564 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
5565 define.
5566 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
5567 (MAX_SYNC_LIBFUNC_SIZE): Define.
5568 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
5569 enabled.
5570 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
5571 libcall when sync libcalls are disabled.
5572 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
5573 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
5574 are disabled on 32-bit target.
5575 * config/pa/pa.opt (matomic-libcalls): New option.
5576 * doc/invoke.texi (HPPA Options): Update.
5577
5578 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
5579
5580 PR rtl-optimization/108117
5581 PR rtl-optimization/108132
5582 * sched-deps.cc (deps_analyze_insn): Do not schedule across
5583 calls before reload.
5584
5585 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5586
5587 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
5588 options for -mlibarch.
5589 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
5590 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
5591
5592 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
5593
5594 * attribs.cc (strict_flex_array_level_of): Move this function to ...
5595 * attribs.h (strict_flex_array_level_of): Remove the declaration.
5596 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
5597 replace the referece to strict_flex_array_level_of with
5598 DECL_NOT_FLEXARRAY.
5599 * tree.cc (component_ref_size): Likewise.
5600
5601 2023-01-13 Richard Biener <rguenther@suse.de>
5602
5603 PR target/55522
5604 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
5605 crtfastmath.o for -shared.
5606 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
5607
5608 2023-01-13 Richard Biener <rguenther@suse.de>
5609
5610 PR target/55522
5611 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
5612 crtfastmath.o for -shared.
5613 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
5614 Likewise.
5615 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
5616 Likewise.
5617
5618 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
5619
5620 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
5621 function.
5622 (TARGET_DWARF_FRAME_REG_MODE): Define.
5623
5624 2023-01-13 Richard Biener <rguenther@suse.de>
5625
5626 PR target/107209
5627 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
5628 update EH info on the fly.
5629
5630 2023-01-13 Richard Biener <rguenther@suse.de>
5631
5632 PR tree-optimization/108387
5633 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
5634 value before inserting expression into the tables.
5635
5636 2023-01-12 Andrew Pinski <apinski@marvell.com>
5637 Roger Sayle <roger@nextmovesoftware.com>
5638
5639 PR tree-optimization/92342
5640 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
5641 Use tcc_comparison and :c for the multiply.
5642 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
5643
5644 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
5645 Richard Sandiford <richard.sandiford@arm.com>
5646
5647 PR target/105549
5648 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
5649 Check DECL_PACKED for bitfield.
5650 (aarch64_layout_arg): Warn when parameter passing ABI changes.
5651 (aarch64_function_arg_boundary): Do not warn here.
5652 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
5653 changes.
5654
5655 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
5656 Richard Sandiford <richard.sandiford@arm.com>
5657
5658 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
5659 comment.
5660 (aarch64_layout_arg): Factorize warning conditions.
5661 (aarch64_function_arg_boundary): Fix typo.
5662 * function.cc (currently_expanding_function_start): New variable.
5663 (expand_function_start): Handle
5664 currently_expanding_function_start.
5665 * function.h (currently_expanding_function_start): Declare.
5666
5667 2023-01-12 Richard Biener <rguenther@suse.de>
5668
5669 PR tree-optimization/99412
5670 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
5671 (swap_ops_for_binary_stmt): Remove reduction handling.
5672 (rewrite_expr_tree_parallel): Adjust.
5673 (reassociate_bb): Likewise.
5674 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
5675
5676 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5677
5678 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
5679 Rearrange the emitting codes.
5680
5681 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5682
5683 * config/xtensa/xtensa.md (*btrue):
5684 Correct value of the attribute "length" that depends on
5685 TARGET_DENSITY and operands, and add '?' character to the register
5686 constraint of the compared operand.
5687
5688 2023-01-12 Alexandre Oliva <oliva@adacore.com>
5689
5690 * hash-table.h (expand): Check elements and deleted counts.
5691 (verify): Likewise.
5692
5693 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
5694
5695 PR tree-optimization/71343
5696 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
5697 the value number of the expression X << C the same as the value
5698 number for the multiplication X * (1<<C).
5699
5700 2023-01-11 David Faust <david.faust@oracle.com>
5701
5702 PR target/108293
5703 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
5704 floating point modes.
5705
5706 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
5707
5708 PR tree-optimization/108199
5709 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
5710 for bit-field references.
5711
5712 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
5713
5714 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
5715 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
5716 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
5717 OPTION_MASK_P10_FUSION.
5718
5719 2023-01-11 Richard Biener <rguenther@suse.de>
5720
5721 PR tree-optimization/107767
5722 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
5723 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
5724 * tree-switch-conversion.cc (switch_conversion::collect):
5725 Count unique non-default targets accounting for later
5726 merging opportunities.
5727
5728 2023-01-11 Martin Liska <mliska@suse.cz>
5729
5730 PR middle-end/107976
5731 * params.opt: Limit JT params.
5732 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
5733
5734 2023-01-11 Richard Biener <rguenther@suse.de>
5735
5736 PR tree-optimization/108352
5737 * tree-ssa-threadbackward.cc
5738 (back_threader_profitability::profitable_path_p): Adjust
5739 heuristic that allows non-multi-way branch threads creating
5740 irreducible loops.
5741 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
5742 (--param fsm-scale-path-stmts): Adjust.
5743 * params.opt (--param=fsm-scale-path-blocks=): Remove.
5744 (-param=fsm-scale-path-stmts=): Adjust description.
5745
5746 2023-01-11 Richard Biener <rguenther@suse.de>
5747
5748 PR tree-optimization/108353
5749 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
5750 Remove.
5751 (add_ssa_edge): Simplify.
5752 (add_control_edge): Likewise.
5753 (ssa_prop_init): Likewise.
5754 (ssa_prop_fini): Likewise.
5755 (ssa_propagation_engine::ssa_propagate): Likewise.
5756
5757 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
5758
5759 * config/s390/s390.md (*not<mode>): New pattern.
5760
5761 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5762
5763 * config/xtensa/xtensa.cc (xtensa_insn_cost):
5764 Let insn cost for size be obtained by applying COSTS_N_INSNS()
5765 to instruction length and then dividing by 3.
5766
5767 2023-01-10 Richard Biener <rguenther@suse.de>
5768
5769 PR tree-optimization/106293
5770 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
5771 process degenerate PHI defs.
5772
5773 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
5774
5775 PR rtl-optimization/106421
5776 * cprop.cc (bypass_block): Check that DEST is local to this
5777 function (non-NULL) before calling find_edge.
5778
5779 2023-01-10 Martin Jambor <mjambor@suse.cz>
5780
5781 PR ipa/108110
5782 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
5783 sort_replacements, lookup_first_base_replacement and
5784 m_sorted_replacements_p.
5785 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
5786 (ipa_param_body_adjustments::register_replacement): Set
5787 m_sorted_replacements_p to false.
5788 (compare_param_body_replacement): New function.
5789 (ipa_param_body_adjustments::sort_replacements): Likewise.
5790 (ipa_param_body_adjustments::common_initialization): Call
5791 sort_replacements.
5792 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
5793 m_sorted_replacements_p.
5794 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
5795 std::lower_bound.
5796 (ipa_param_body_adjustments::lookup_first_base_replacement): New
5797 function.
5798 (ipa_param_body_adjustments::modify_call_stmt): Use
5799 lookup_first_base_replacement.
5800 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
5801 adjustments->sort_replacements.
5802
5803 2023-01-10 Richard Biener <rguenther@suse.de>
5804
5805 PR tree-optimization/108314
5806 * tree-vect-stmts.cc (vectorizable_condition): Do not
5807 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
5808
5809 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5810
5811 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
5812
5813 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5814
5815 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
5816
5817 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5818
5819 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
5820 defines for soft float abi.
5821
5822 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5823
5824 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
5825 (smart_bclri): Likewise.
5826 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
5827 (fast_bclri): Likewise.
5828 (fast_cmpnesi_i): Likewise.
5829 (*fast_cmpltsi_i): Likewise.
5830 (*fast_cmpgeusi_i): Likewise.
5831
5832 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5833
5834 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
5835 flag_fp_int_builtin_inexact || !flag_trapping_math.
5836 (<frm_pattern><mode>2): Likewise.
5837
5838 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
5839
5840 * config/s390/s390.cc (s390_register_info): Check call_used_regs
5841 instead of hard-coding the register numbers for call saved
5842 registers.
5843 (s390_optimize_register_info): Likewise.
5844
5845 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
5846
5847 * doc/gm2.texi (Overview): Fix @node markers.
5848 (Using): Likewise. Remove subsections that were moved to Overview
5849 from the menu and move others around.
5850
5851 2023-01-09 Richard Biener <rguenther@suse.de>
5852
5853 PR middle-end/108209
5854 * genmatch.cc (commutative_op): Fix return value for
5855 user-id with non-commutative first replacement.
5856
5857 2023-01-09 Jakub Jelinek <jakub@redhat.com>
5858
5859 PR target/107453
5860 * calls.cc (expand_call): For calls with
5861 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
5862 Formatting fix.
5863
5864 2023-01-09 Richard Biener <rguenther@suse.de>
5865
5866 PR middle-end/69482
5867 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
5868 qualified accesses also force objects to memory.
5869
5870 2023-01-09 Martin Liska <mliska@suse.cz>
5871
5872 PR lto/108330
5873 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
5874 NULL (deleleted value) to a hash_set.
5875
5876 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5877
5878 * config/xtensa/xtensa.md (*splice_bits):
5879 New insn_and_split pattern.
5880
5881 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5882
5883 * config/xtensa/xtensa.cc
5884 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
5885 New helper functions.
5886 (xtensa_set_return_address, xtensa_output_mi_thunk):
5887 Change to use the helper function.
5888 (xtensa_emit_adjust_stack_ptr): Ditto.
5889 And also change to try reusing the content of scratch register
5890 A9 if the register is not modified in the function body.
5891
5892 2023-01-07 LIU Hao <lh_mouse@126.com>
5893
5894 PR middle-end/108300
5895 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
5896 before <windows.h>.
5897 * diagnostic-color.cc: Likewise.
5898 * plugin.cc: Likewise.
5899 * prefix.cc: Likewise.
5900
5901 2023-01-06 Joseph Myers <joseph@codesourcery.com>
5902
5903 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
5904 for handling real integer types.
5905
5906 2023-01-06 Tamar Christina <tamar.christina@arm.com>
5907
5908 Revert:
5909 2022-12-12 Tamar Christina <tamar.christina@arm.com>
5910
5911 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
5912 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
5913 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
5914 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
5915 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
5916 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
5917 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
5918 (aarch64_simd_dupv2hf): New.
5919 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
5920 Add E_V2HFmode.
5921 * config/aarch64/iterators.md (VHSDF_P): New.
5922 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
5923 Vel, q, vp): Add V2HF.
5924 * config/arm/types.md (neon_fp_reduc_add_h): New.
5925
5926 2023-01-06 Martin Liska <mliska@suse.cz>
5927
5928 PR middle-end/107966
5929 * doc/options.texi: Fix Var documentation in internal manual.
5930
5931 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
5932
5933 Revert:
5934 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
5935
5936 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
5937 RTL expansion to allow condition (mask) to be shared/reused,
5938 by avoiding overwriting pseudos and adding REG_EQUAL notes.
5939
5940 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
5941
5942 * common.opt: Add -static-libgm2.
5943 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
5944 * doc/gm2.texi: Document static-libgm2.
5945 * gcc.cc (driver_handle_option): Allow static-libgm2.
5946
5947 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
5948
5949 * common/config/i386/i386-common.cc (processor_alias_table):
5950 Use CPU_ZNVER4 for znver4.
5951 * config/i386/i386.md: Add znver4.md.
5952 * config/i386/znver4.md: New.
5953
5954 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5955
5956 PR tree-optimization/108253
5957 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
5958 types.
5959
5960 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5961
5962 PR middle-end/108237
5963 * generic-match-head.cc: Include tree-pass.h.
5964 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
5965 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
5966 resp. PROP_gimple_lvec property set.
5967
5968 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5969
5970 PR sanitizer/108256
5971 * convert.cc (do_narrow): Punt for MULT_EXPR if original
5972 type doesn't wrap around and -fsanitize=signed-integer-overflow
5973 is on.
5974 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
5975
5976 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5977
5978 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
5979 * common/config/i386/i386-common.cc: Add Emeraldrapids.
5980
5981 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5982
5983 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
5984 for meteorlake.
5985
5986 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
5987
5988 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
5989 default constructor to initialize it.
5990 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
5991 for last and iterate to handle recursive calls. Delete leftover
5992 candidates at the end.
5993 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
5994 on local clones.
5995 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
5996 gc_candidate bit when a clone is used.
5997
5998 2023-01-03 Florian Weimer <fweimer@redhat.com>
5999
6000 Revert:
6001 2023-01-02 Florian Weimer <fweimer@redhat.com>
6002
6003 * dwarf2cfi.cc (init_return_column_size): Remove.
6004 (init_one_dwarf_reg_size): Adjust.
6005 (generate_dwarf_reg_sizes): New function. Extracted
6006 from expand_builtin_init_dwarf_reg_sizes.
6007 (expand_builtin_init_dwarf_reg_sizes): Call
6008 generate_dwarf_reg_sizes.
6009 * target.def (init_dwarf_reg_sizes_extra): Adjust
6010 hook signature.
6011 * config/msp430/msp430.cc
6012 (msp430_init_dwarf_reg_sizes_extra): Adjust.
6013 * config/rs6000/rs6000.cc
6014 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
6015 * doc/tm.texi: Update.
6016
6017 2023-01-03 Florian Weimer <fweimer@redhat.com>
6018
6019 Revert:
6020 2023-01-02 Florian Weimer <fweimer@redhat.com>
6021
6022 * debug.h (dwarf_reg_sizes_constant): Declare.
6023 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
6024
6025 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
6026
6027 PR tree-optimization/105043
6028 * doc/extend.texi (Object Size Checking): Split out into two
6029 subsections and mention _FORTIFY_SOURCE.
6030
6031 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
6032
6033 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
6034 RTL expansion to allow condition (mask) to be shared/reused,
6035 by avoiding overwriting pseudos and adding REG_EQUAL notes.
6036
6037 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
6038
6039 PR target/108229
6040 * config/i386/i386-features.cc
6041 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
6042 the gain/cost of converting a MEM operand.
6043
6044 2023-01-03 Jakub Jelinek <jakub@redhat.com>
6045
6046 PR middle-end/108264
6047 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
6048 from source which doesn't have scalar integral mode first convert
6049 it to outer_mode.
6050
6051 2023-01-03 Jakub Jelinek <jakub@redhat.com>
6052
6053 PR rtl-optimization/108263
6054 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
6055 asm goto to EXIT.
6056
6057 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
6058
6059 PR target/87832
6060 * config/i386/lujiazui.md (lujiazui_div): New automaton.
6061 (lua_div): New unit.
6062 (lua_idiv_qi): Correct unit in the reservation.
6063 (lua_idiv_qi_load): Ditto.
6064 (lua_idiv_hi): Ditto.
6065 (lua_idiv_hi_load): Ditto.
6066 (lua_idiv_si): Ditto.
6067 (lua_idiv_si_load): Ditto.
6068 (lua_idiv_di): Ditto.
6069 (lua_idiv_di_load): Ditto.
6070 (lua_fdiv_SF): Ditto.
6071 (lua_fdiv_SF_load): Ditto.
6072 (lua_fdiv_DF): Ditto.
6073 (lua_fdiv_DF_load): Ditto.
6074 (lua_fdiv_XF): Ditto.
6075 (lua_fdiv_XF_load): Ditto.
6076 (lua_ssediv_SF): Ditto.
6077 (lua_ssediv_load_SF): Ditto.
6078 (lua_ssediv_V4SF): Ditto.
6079 (lua_ssediv_load_V4SF): Ditto.
6080 (lua_ssediv_V8SF): Ditto.
6081 (lua_ssediv_load_V8SF): Ditto.
6082 (lua_ssediv_SD): Ditto.
6083 (lua_ssediv_load_SD): Ditto.
6084 (lua_ssediv_V2DF): Ditto.
6085 (lua_ssediv_load_V2DF): Ditto.
6086 (lua_ssediv_V4DF): Ditto.
6087 (lua_ssediv_load_V4DF): Ditto.
6088
6089 2023-01-02 Florian Weimer <fweimer@redhat.com>
6090
6091 * debug.h (dwarf_reg_sizes_constant): Declare.
6092 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
6093
6094 2023-01-02 Florian Weimer <fweimer@redhat.com>
6095
6096 * dwarf2cfi.cc (init_return_column_size): Remove.
6097 (init_one_dwarf_reg_size): Adjust.
6098 (generate_dwarf_reg_sizes): New function. Extracted
6099 from expand_builtin_init_dwarf_reg_sizes.
6100 (expand_builtin_init_dwarf_reg_sizes): Call
6101 generate_dwarf_reg_sizes.
6102 * target.def (init_dwarf_reg_sizes_extra): Adjust
6103 hook signature.
6104 * config/msp430/msp430.cc
6105 (msp430_init_dwarf_reg_sizes_extra): Adjust.
6106 * config/rs6000/rs6000.cc
6107 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
6108 * doc/tm.texi: Update.
6109
6110 2023-01-02 Jakub Jelinek <jakub@redhat.com>
6111
6112 * gcc.cc (process_command): Update copyright notice dates.
6113 * gcov-dump.cc (print_version): Ditto.
6114 * gcov.cc (print_version): Ditto.
6115 * gcov-tool.cc (print_version): Ditto.
6116 * gengtype.cc (create_file): Ditto.
6117 * doc/cpp.texi: Bump @copying's copyright year.
6118 * doc/cppinternals.texi: Ditto.
6119 * doc/gcc.texi: Ditto.
6120 * doc/gccint.texi: Ditto.
6121 * doc/gcov.texi: Ditto.
6122 * doc/install.texi: Ditto.
6123 * doc/invoke.texi: Ditto.
6124
6125 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
6126 Uroš Bizjak <ubizjak@gmail.com>
6127
6128 * config/i386/i386.md (extendditi2): New define_insn.
6129 (define_split): Use DWIH mode iterator to treat new extendditi2
6130 identically to existing extendsidi2_1.
6131 (define_peephole2): Likewise.
6132 (define_peephole2): Likewise.
6133 (define_Split): Likewise.
6134
6135 \f
6136 Copyright (C) 2023 Free Software Foundation, Inc.
6137
6138 Copying and distribution of this file, with or without modification,
6139 are permitted in any medium without royalty provided the copyright
6140 notice and this notice are preserved.