1 2023-03-19 Jonny Grant <jg@jguk.org>
3 * doc/extend.texi (Common Function Attributes) <nonnull>:
6 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
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.
12 2023-03-17 Jakub Jelinek <jakub@redhat.com>
15 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
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
23 (tree_function_versioning): Formatting fix.
25 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
27 * lra-constraints.cc: Include hooks.h.
28 (combine_reload_insn): New function.
29 (lra_constraints): Call it.
31 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
32 kito-cheng <kito.cheng@sifive.com>
34 * config/riscv/riscv-v.cc (legitimize_move): Allow undef 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.
46 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
49 * config/riscv/riscv.md: Fix subreg bug.
51 2023-03-17 Jakub Jelinek <jakub@redhat.com>
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.
62 2023-03-17 Jakub Jelinek <jakub@redhat.com>
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
71 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
73 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
74 issues. Add more line breaks to example so it doesn't overflow
77 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
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
83 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
84 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
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.
97 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
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.
103 2023-03-16 Martin Liska <mliska@suse.cz>
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.
110 2023-03-16 Richard Biener <rguenther@suse.de>
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.
117 2023-03-16 Richard Biener <rguenther@suse.de>
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
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
128 (pass_waccess::check_pointer_uses): Process all PHIs.
130 2023-03-15 David Malcolm <dmalcolm@redhat.com>
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
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"
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
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
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.
159 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
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
166 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
168 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
170 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
172 2023-03-15 Richard Biener <rguenther@suse.de>
174 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
175 Do not diagnose clobbers.
177 2023-03-15 Richard Biener <rguenther@suse.de>
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.
183 2023-03-15 Xi Ruoyao <xry111@xry111.site>
186 * builtins.cc (inline_string_cmp): Force the character
187 difference into "result" pseudo-register, instead of reassign
190 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
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
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):
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.
212 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
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
218 * config/riscv/riscv.cc (riscv_split_doubleword_move):
219 Add split code for XTheadFmv.
220 (riscv_secondary_memory_needed): XTheadFmv does not need
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.
229 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
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.
244 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
246 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
247 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
249 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
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.
258 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
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
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.
289 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
291 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
292 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
294 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
296 * config/riscv/riscv.md: Include thead.md
297 * config/riscv/thead.md: New file.
299 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
301 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
303 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
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.
332 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
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.
339 2023-03-14 Jakub Jelinek <jakub@redhat.com>
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.
345 2023-03-14 Martin Jambor <mjambor@suse.cz>
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
352 2023-03-14 Martin Jambor <mjambor@suse.cz>
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.
359 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
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.
366 2023-03-14 Sam James <sam@gentoo.org>
368 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
369 including <sstream> earlier.
370 * system.h: Add INCLUDE_SSTREAM.
372 2023-03-14 Richard Biener <rguenther@suse.de>
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.
378 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
380 PR rtl-optimization/107762
381 * expr.cc (emit_group_store): Revert latest change.
383 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
385 PR tree-optimization/109005
386 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
387 aggregate type check.
389 2023-03-14 Jakub Jelinek <jakub@redhat.com>
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.
395 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
397 PR tree-optimization/106896
398 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
399 implementatoin with probability_in; avoid some asserts.
401 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
403 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
405 2023-03-13 Sean Bright <sean@seanbright.com>
407 * doc/invoke.texi (Warning Options): Remove errant 'See'
410 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
412 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
413 REG_OK_FOR_BASE_P): Remove.
415 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
417 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
418 (=vd,vd,vr,vr): Ditto.
419 * config/riscv/vector.md: Ditto.
421 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
423 * config/riscv/riscv-vector-builtins.cc
424 (function_expander::use_compare_insn): Add operand predicate check.
426 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
428 * config/riscv/vector.md: Fine tune RA constraints.
430 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
432 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
435 2023-03-13 Richard Biener <rguenther@suse.de>
437 PR tree-optimization/109046
438 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
439 piecewise complex loads.
441 2023-03-12 Jakub Jelinek <jakub@redhat.com>
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.
460 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
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.
466 2023-03-12 Tamar Christina <tamar.christina@arm.com>
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.
479 2023-03-12 Tamar Christina <tamar.christina@arm.com>
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.
489 2023-03-12 Tamar Christina <tamar.christina@arm.com>
490 Richard Sandiford <richard.sandiford@arm.com>
493 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
496 2023-03-12 Tamar Christina <tamar.christina@arm.com>
497 Andrew MacLeod <amacleod@redhat.com>
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):
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
514 2023-03-12 Tamar Christina <tamar.christina@arm.com>
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.
532 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
534 * doc/install.texi2html: Fix issue number typo in comment.
536 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
538 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
541 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
543 * doc/invoke.texi (Optimize Options): Add markup to
544 description of asan-kernel-mem-intrinsic-prefix, and clarify
547 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
549 * doc/extend.texi (Named Address Spaces): Drop a redundant link
552 2023-03-11 Jeff Law <jlaw@ventanamicro>
555 * doc/extend.texi: Clarify Attribute Syntax a bit.
557 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
559 * doc/install.texi (Prerequisites): Suggest using newer versions
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).
566 2023-03-10 Jakub Jelinek <jakub@redhat.com>
569 * optabs.cc (expand_fix): For conversions from BFmode to integral,
570 use shifts to convert it to SFmode first and then convert SFmode
573 2023-03-10 Andrew Pinski <apinski@marvell.com>
575 * config/aarch64/aarch64.md: Add a new define_split
578 2023-03-10 Richard Biener <rguenther@suse.de>
580 * tree-ssa-structalias.cc (solve_graph): Immediately
583 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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.
590 2023-03-10 Jakub Jelinek <jakub@redhat.com>
593 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
595 * config/i386/t-cygwin-w64: Remove.
597 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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
609 * tree.cc (tree_code_type, tree_code_length): Remove.
611 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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
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.
634 2023-03-10 Jakub Jelinek <jakub@redhat.com>
637 * cgraphunit.cc (check_global_declaration): Don't warn for unused
638 variables which have OPT_Wunused_variable warning suppressed.
640 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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
650 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
658 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
659 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
661 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
662 (struct fault_load_def): 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
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.
708 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
715 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
736 2023-03-10 Michael Collison <collison@rivosinc.com>
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.
742 2023-03-09 Tamar Christina <tamar.christina@arm.com>
744 * passes.cc (emergency_dump_function): Finish graph generation.
746 2023-03-09 Tamar Christina <tamar.christina@arm.com>
748 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
751 2023-03-09 Andrew Pinski <apinski@marvell.com>
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.
758 2023-03-09 Jason Merrill <jason@redhat.com>
760 * doc/extend.texi: Comment out __is_deducible docs.
762 2023-03-09 Jason Merrill <jason@redhat.com>
765 * doc/extend.texi (Type Traits):: Document __is_deducible.
767 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
770 * config.host: add object for x86_64-*-mingw*.
771 * config/i386/sym-mingw32.cc: dummy file to attach
773 * config/i386/utf8-mingw32.rc: windres resource file.
774 * config/i386/winnt-utf8.manifest: XML manifest to
776 * config/i386/x-mingw32: reference to x-mingw32-utf8.
777 * config/i386/x-mingw32-utf8: Makefile fragment to
778 embed UTF-8 manifest.
780 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
782 * lra-constraints.cc (process_alt_operands): Use operand modes for
783 clobbered regs instead of the biggest access mode.
785 2023-03-09 Richard Biener <rguenther@suse.de>
788 * fold-const.cc (extract_muldiv_1): Avoid folding
789 (CST * b) / CST2 when sanitizing overflow and we rely on
790 overflow being undefined.
792 2023-03-09 Jakub Jelinek <jakub@redhat.com>
793 Richard Biener <rguenther@suse.de>
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.
801 2023-03-07 Jonathan Grant <jg@jguk.org>
804 * doc/invoke.texi (Instrumentation Options): Clarify
805 LeakSanitizer behavior.
807 2023-03-07 Benson Muite <benson_muite@emailplus.org>
809 * doc/install.texi (Prerequisites): Add link to gmplib.org.
811 2023-03-07 Pan Li <pan2.li@intel.com>
812 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
816 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
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.
824 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
826 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
828 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
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
838 2023-03-06 Richard Biener <rguenther@suse.de>
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.
845 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
848 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
850 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
851 (X86_TUNE_USE_SCATTER): Likewise.
853 2023-03-06 Xi Ruoyao <xry111@xry111.site>
856 * config/loongarch/loongarch.h (FP_RETURN): Use
857 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
858 (UNITS_PER_FP_ARG): Likewise.
860 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
862 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
863 (pass_vsetvl::backward_demand_fusion): Ditto.
865 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
866 SiYu Wu <siyu@isrc.iscas.ac.cn>
868 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
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.
877 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
878 SiYu Wu <siyu@isrc.iscas.ac.cn>
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
897 (DIRECT_BUILTIN): Add new.
899 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
900 SiYu Wu <siyu@isrc.iscas.ac.cn>
902 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
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.
919 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
920 SiYu Wu <siyu@isrc.iscas.ac.cn>
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
927 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
928 extension's built-in function file.
930 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
931 SiYu Wu <siyu@isrc.iscas.ac.cn>
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.
942 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
944 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
947 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
948 kito-cheng <kito.cheng@sifive.com>
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.
962 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
963 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
979 (vundefined): Add new intrinsic.
980 (vreinterpret): Ditto.
982 (vlmul_trunc): 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.
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.
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.
1102 (vuint8mf8_t): Ditto.
1103 (vuint8mf4_t): Ditto.
1104 (vuint8mf2_t): Ditto.
1105 (vuint8m1_t): Ditto.
1106 (vuint8m2_t): Ditto.
1108 (vuint8m4_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.
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.
1145 (unsigned_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.
1201 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
1216 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1217 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
1218 (vslidedown): Ditto.
1220 (vslide1down): Ditto.
1221 (vfslide1up): Ditto.
1222 (vfslide1down): Ditto.
1224 (vrgatherei16): 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.
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.
1291 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1293 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
1295 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
1307 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1308 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
1312 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): 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.
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.
1411 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
1413 * config/riscv/bitmanip.md: allow 0 constant in max/min
1416 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
1418 * config/riscv/bitmanip.md: Fix wrong index in the check.
1420 2023-03-04 Jakub Jelinek <jakub@redhat.com>
1422 PR middle-end/109006
1423 * vec.cc (test_auto_alias): Adjust comment for removal of
1425 * read-rtl-function.cc (function_reader::parse_block): Likewise.
1426 * gdbhooks.py: Likewise.
1428 2023-03-04 Jakub Jelinek <jakub@redhat.com>
1431 * selftest-diagnostic.cc
1432 (test_diagnostic_context::test_diagnostic_context): Set
1433 caret_max_width to 80.
1435 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1437 * gimple-ssa-warn-access.cc
1438 (pass_waccess::check_dangling_stores): Skip non-stores.
1440 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1442 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
1443 after vmsr and vmrs, and lower the case of P0.
1445 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
1447 PR middle-end/109006
1448 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
1450 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
1452 PR middle-end/109006
1453 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
1455 2023-03-03 Jakub Jelinek <jakub@redhat.com>
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.
1463 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
1465 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
1466 arch14 instead of z16.
1468 2023-03-03 Anthony Green <green@moxielogic.com>
1470 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
1472 2023-03-03 Anthony Green <green@moxielogic.com>
1474 * config/moxie/constraints.md (A, B, W): Change
1475 define_constraint to define_memory_constraint.
1477 2023-03-03 Xi Ruoyao <xry111@xry111.site>
1479 * toplev.cc (process_options): Fix the spelling of
1480 "-fstack-clash-protection".
1482 2023-03-03 Richard Biener <rguenther@suse.de>
1484 PR tree-optimization/109002
1485 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
1486 PHI-translate ANTIC_IN.
1488 2023-03-03 Jakub Jelinek <jakub@redhat.com>
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
1495 2023-03-03 Richard Biener <rguenther@suse.de>
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
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
1515 2023-03-03 Richard Biener <rguenther@suse.de>
1518 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
1519 generate a DIE for a function scope static.
1521 2023-03-03 Alexandre Oliva <oliva@adacore.com>
1523 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
1525 2023-03-02 Jakub Jelinek <jakub@redhat.com>
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.
1537 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
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
1544 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
1545 Paul-Antoine Arras <pa@codesourcery.com>
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.
1555 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
1557 PR tree-optimization/108979
1558 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
1559 operations on invariants.
1561 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
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.
1569 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
1571 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
1572 of constant 0 offset.
1574 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
1576 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
1578 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
1580 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
1582 * config.gcc: add -with-{no-}msa build option.
1583 * config/mips/mips.h: Likewise.
1584 * doc/install.texi: Likewise.
1586 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
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
1593 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
1595 PR tree-optimization/108430
1596 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
1597 of inverted condition.
1599 2023-03-02 Jakub Jelinek <jakub@redhat.com>
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.
1606 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
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.
1617 2023-03-01 LIU Hao <lh_mouse@126.com>
1620 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
1621 Remove the size limit `pch_VA_max_size`
1623 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
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
1630 2023-03-01 Jakub Jelinek <jakub@redhat.com>
1633 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
1634 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
1636 2023-03-01 Richard Biener <rguenther@suse.de>
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
1643 (vect_do_peeling): Streamline error handling.
1645 2023-03-01 Richard Biener <rguenther@suse.de>
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.
1654 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
1657 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
1658 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
1660 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
1662 PR middle-end/107411
1663 PR middle-end/107411
1664 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
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.
1669 2023-02-28 Jakub Jelinek <jakub@redhat.com>
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.
1682 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
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.
1693 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
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.
1701 2023-02-27 Patrick Palka <ppalka@redhat.com>
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
1709 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1711 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
1713 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
1715 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
1716 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
1718 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
1720 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
1721 (xtensa_get_config_v3): New functions.
1723 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1725 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
1727 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
1729 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
1730 the macro to 0x1000000000.
1732 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
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.
1740 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
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.
1753 2023-02-24 Richard Biener <rguenther@suse.de>
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
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.
1770 2023-02-24 Richard Biener <rguenther@suse.de>
1772 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
1773 take a const reference to the object, use address to
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.
1788 2023-02-24 Martin Liska <mliska@suse.cz>
1791 * asan.cc (asan_add_global): Use proper TU name for normal
1792 global variables (and aux_base_name for the artificial one).
1794 2023-02-24 Jakub Jelinek <jakub@redhat.com>
1796 * config/i386/i386-builtin.def: Update description of BDESC
1797 and BDESC_FIRST in file comment to include mask2.
1799 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1801 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
1803 2023-02-24 Jakub Jelinek <jakub@redhat.com>
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.
1810 2023-02-24 Jakub Jelinek <jakub@redhat.com>
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.
1829 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
1831 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
1832 Add non-compact 32-bit multilibs.
1834 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
1836 * config/mips/mips.md (*clo<mode>2): New pattern.
1838 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
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.
1855 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
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.
1861 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
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.
1868 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
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.
1884 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
1890 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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)
1900 (xtensa_expand_prologue): Modify to not emit register restoration
1901 insn from its stack slot if the register is already eliminated.
1903 2023-02-23 Jakub Jelinek <jakub@redhat.com>
1905 PR translation/108890
1906 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
1907 around fatal_error format strings.
1909 2023-02-23 Richard Biener <rguenther@suse.de>
1911 * tree-ssa-structalias.cc (handle_lhs_call): Do not
1912 re-create rhsc, only truncate it.
1914 2023-02-23 Jakub Jelinek <jakub@redhat.com>
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.
1920 2023-02-23 Richard Biener <rguenther@suse.de>
1922 * tree-if-conv.cc (tree_if_conversion): Properly manage
1923 memory of refs and the contained data references.
1925 2023-02-23 Richard Biener <rguenther@suse.de>
1927 PR tree-optimization/108888
1928 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
1930 (predicate_statements): Only predicate calls with PLF_2.
1932 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1934 * config/xtensa/xtensa.md
1935 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
1936 Add missing "SI:" to PLUS RTXes.
1938 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
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).
1945 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
1948 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
1951 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
1953 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
1954 (sibcall_value, sibcall_value_internal): Add 'use' expression
1957 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
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.
1966 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
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.
1982 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
1989 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1990 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
2004 (vfwredosum): Ditto.
2005 (vfwredusum): Ditto.
2006 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): 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.
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.
2070 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2113 * config/riscv/riscv-vector-builtins-bases.h:
2114 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
2158 (vfcvt_rtz_x): Ditto.
2159 (vfcvt_rtz_xu): Ditto.
2163 (vfwcvt_rtz_x): Ditto.
2164 (vfwcvt_rtz_xu): Ditto.
2168 (vfncvt_rtz_x): Ditto.
2169 (vfncvt_rtz_xu): 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.
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.
2229 (fixuns_trunc): 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.
2290 2023-02-22 Jakub Jelinek <jakub@redhat.com>
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.
2298 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
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.
2305 2023-02-21 David Malcolm <dmalcolm@redhat.com>
2308 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
2310 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
2313 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
2315 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
2316 (sibcall_value, sibcall_value_internal): Add 'use' expression
2319 2023-02-21 Richard Biener <rguenther@suse.de>
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.
2325 2023-02-21 Richard Biener <rguenther@suse.de>
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.
2331 2023-02-21 Richard Biener <rguenther@suse.de>
2334 2023-02-13 Richard Biener <rguenther@suse.de>
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.
2344 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2346 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
2347 true if register A0 (return address register) when -Og is specified.
2349 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
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.
2363 2023-02-20 Jakub Jelinek <jakub2redhat.com>
2366 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
2367 gen_umadddi4_highpart{,_le}.
2369 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
2371 * config/riscv/riscv.md (prefetch): Use r instead of p for the
2373 (riscv_prefetchi_<mode>): Ditto.
2375 2023-02-20 Richard Biener <rguenther@suse.de>
2377 PR tree-optimization/108816
2378 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
2379 versioning condition split prerequesite, assert required
2382 2023-02-20 Richard Biener <rguenther@suse.de>
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
2389 2023-02-20 Richard Biener <rguenther@suse.de>
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.
2395 2023-02-18 Jakub Jelinek <jakub@redhat.com>
2397 PR tree-optimization/108819
2398 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
2400 2023-02-18 Jakub Jelinek <jakub@redhat.com>
2403 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
2404 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
2406 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
2407 with ix86_replace_reg_with_reg.
2409 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
2411 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
2413 2023-02-18 Xi Ruoyao <xry111@xry111.site>
2415 * config.gcc (triplet_abi): Set its value based on $with_abi,
2417 (la_canonical_triplet): Set it after $triplet_abi is set
2419 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
2420 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
2423 2023-02-18 Andrew Pinski <apinski@marvell.com>
2425 * match.pd: Remove #if GIMPLE around the
2428 2023-02-18 Andrew Pinski <apinski@marvell.com>
2430 * value-query.h (get_range_query): Return the global ranges
2433 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
2435 * doc/invoke.texi (@item -Wall): Fix typo in
2438 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
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.
2448 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
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.
2455 2023-02-17 Richard Biener <rguenther@suse.de>
2457 PR tree-optimization/108821
2458 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
2459 move volatile accesses.
2461 2023-02-17 Richard Biener <rguenther@suse.de>
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.
2472 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2474 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
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.
2488 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2489 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
2508 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
2509 (struct mask_alu_def): 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.
2524 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2526 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
2530 * config/riscv/riscv-vector-builtins.cc: Ditto.
2532 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2533 kito-cheng <kito.cheng@sifive.com>
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.
2540 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2542 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
2604 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2611 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2628 (get_avl_type): Ditto.
2629 (calculate_ratio): Ditto.
2630 (enum vlmul_type): Ditto.
2632 (neg_simm5_p): Ditto.
2633 (has_vi_variant_p): Ditto.
2635 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2642 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
2644 * doc/invoke.texi (Optimize Options): Reword the explanation
2645 getting minimal, maximal and default values of a parameter.
2647 2023-02-16 Patrick Palka <ppalka@redhat.com>
2649 * addresses.h: Mechanically drop 'static' from 'static inline'
2650 functions via s/^static inline/inline/g.
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.
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.
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.
2693 * lra-int.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.
2706 * rtl-iter.h: Likewise.
2708 * sbitmap.h: Likewise.
2709 * sched-int.h: Likewise.
2710 * sel-sched-ir.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.
2738 * wide-int.h: Likewise.
2740 2023-02-16 Jakub Jelinek <jakub@redhat.com>
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.
2747 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
2749 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
2750 using-declaration to unhide functions.
2752 2023-02-16 Jakub Jelinek <jakub@redhat.com>
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.
2760 2023-02-16 Richard Biener <rguenther@suse.de>
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
2767 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
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.
2774 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
2776 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
2778 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
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.
2787 (*insvqi_1_mem_rex64): Ditto.
2788 (@insv<mode>_1): 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.
2808 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
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.
2823 2023-02-15 Richard Biener <rguenther@suse.de>
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.
2833 2023-02-15 Marek Polacek <polacek@redhat.com>
2835 PR middle-end/106080
2836 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
2839 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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
2846 (class imac): New class.
2847 (enum widen_ternop_type): New enum.
2848 (class iwmac): New class.
2850 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2851 * config/riscv/riscv-vector-builtins-functions.def (vmacc): 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.
2885 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
2897 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2898 * config/riscv/riscv-vector-builtins-functions.def (vmseq): 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.
2939 2023-02-15 Martin Jambor <mjambor@suse.cz>
2942 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
2943 creation of non-scalar replacements even if IPA-CP knows their
2946 2023-02-15 Jakub Jelinek <jakub@redhat.com>
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
2955 2023-02-15 Martin Liska <mliska@suse.cz>
2957 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
2959 2023-02-15 Richard Biener <rguenther@suse.de>
2961 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
2962 for with_poison and alias worklist to it.
2963 (sanitize_asan_mark_poison): Likewise.
2965 2023-02-15 Richard Biener <rguenther@suse.de>
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
2977 2023-02-15 Richard Biener <rguenther@suse.de>
2980 * config/i386/i386-features.cc (convert_scalars_to_vector):
2981 Switch candidates bitmaps to tree view before building the chains.
2983 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
2985 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
2986 "failure trying to reload" call.
2988 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
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.
2994 2023-02-14 David Faust <david.faust@oracle.com>
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.
3003 2023-02-14 Andrew Pinski <apinski@marvell.com>
3005 PR tree-optimization/108355
3006 PR tree-optimization/96921
3007 * match.pd: Add pattern for "1 - bool_val".
3009 2023-02-14 Richard Biener <rguenther@suse.de>
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.
3019 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
3021 * gimplify.cc (gimplify_save_expr): Add missing guard.
3023 2023-02-14 Richard Biener <rguenther@suse.de>
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.
3029 2023-02-14 Jakub Jelinek <jakub@redhat.com>
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.
3044 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
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
3051 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
3053 PR rtl-optimization/108681
3054 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
3055 code to handle bare uses and clobbers.
3057 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
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.
3064 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
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.
3074 2023-02-13 Richard Biener <rguenther@suse.de>
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
3082 (process_bb): Instead call it once here for each edge
3083 we register possibly multiple predicates on.
3085 2023-02-13 Richard Biener <rguenther@suse.de>
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.
3095 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
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
3102 (s390_sched_init): Unconditionally reset scheduler state.
3104 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
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.
3112 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
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.
3118 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
3120 * common/config/arc/arc-common.cc (arc_option_optimization_table):
3121 Remove millicode from list.
3123 2023-02-13 Martin Liska <mliska@suse.cz>
3125 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
3127 2023-02-13 Richard Biener <rguenther@suse.de>
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.
3137 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
3139 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
3140 (DWARF_FRAME_REGISTERS): New.
3141 (DWARF_REG_TO_UNWIND_COLUMN): New.
3143 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
3145 * doc/sourcebuild.texi: Remove (broken) direct reference to
3146 "The GNU configure and build system".
3148 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
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.
3154 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3156 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
3157 (class vnclip): Ditto.
3159 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3160 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
3169 * config/riscv/vector-iterators.md (su): Add instruction.
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.
3179 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
3188 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3189 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
3196 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
3197 (struct move_def): 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.
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.
3218 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
3226 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
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.
3252 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
3259 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3260 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
3262 * config/riscv/riscv-vector-builtins-shapes.cc
3263 (struct no_mask_policy_def): 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.
3282 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3284 * config/riscv/vector.md: use "zero" reg.
3286 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3288 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
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.
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
3305 (struct widen_alu_def): 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"
3313 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
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
3321 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
3323 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
3324 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
3326 (@pred_widen_mulsu<mode>): Ditto.
3327 (@pred_widen_mulsu<mode>_scalar): Ditto.
3328 (@pred_<optab><mode>): Ditto.
3330 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3331 kito-cheng <kito.cheng@sifive.com>
3333 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
3334 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
3336 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3337 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
3341 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
3343 (DEF_RVV_FULL_V_U_OPS): Ditto.
3344 (vint8mf8_t): Ditto.
3345 (vint8mf4_t): Ditto.
3346 (vint8mf2_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.
3401 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3403 * config/riscv/iterators.md: Add sign_extend/zero_extend.
3404 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
3406 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
3407 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
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
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
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.
3464 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
3474 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
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.
3484 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3486 * config/riscv/iterators.md: Add neg and not.
3487 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
3489 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3490 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
3511 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
3512 (struct alu_def): 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
3519 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3521 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
3523 2023-02-11 Jakub Jelinek <jakub@redhat.com>
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.
3530 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
3532 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
3534 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
3536 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
3537 valid_combine only when ira_use_lra_p is true.
3539 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
3541 * params.opt (ira-simple-lra-insn-threshold): Add new param.
3542 * ira.cc (ira): Use the param to switch on simple LRA.
3544 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
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.
3552 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
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.
3562 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
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.
3580 (neg_simm5_p): Ditto.
3581 (has_vi_variant_p): Ditto.
3582 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
3584 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3585 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
3588 (vminu): Remove signed cases.
3590 (vdiv): Remove unsigned cases.
3592 (vdivu): Remove signed cases.
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
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.
3613 2023-02-10 Richard Biener <rguenther@suse.de>
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.
3620 2023-02-10 Jakub Jelinek <jakub@redhat.com>
3623 2023-02-09 Martin Liska <mliska@suse.cz>
3626 * doc/extend.texi: Document that the function
3627 does not work correctly for old VIA processors.
3629 2023-02-10 Andrew Pinski <apinski@marvell.com>
3630 Andrew Macleod <amacleod@redhat.com>
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
3639 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
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
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.
3651 2023-02-09 Jakub Jelinek <jakub@redhat.com>
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
3659 2023-02-09 Jakub Jelinek <jakub@redhat.com>
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.
3666 2023-02-09 Andrew Pinski <apinski@marvell.com>
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.
3672 2023-02-09 Martin Liska <mliska@suse.cz>
3675 * doc/extend.texi: Document that the function
3676 does not work correctly for old VIA processors.
3678 2023-02-09 Andreas Schwab <schwab@suse.de>
3680 * lto-wrapper.cc (merge_and_complain): Handle
3681 -funwind-tables and -fasynchronous-unwind-tables.
3682 (append_compiler_options): Likewise.
3684 2023-02-09 Richard Biener <rguenther@suse.de>
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
3691 (walk_aliased_vdefs_1): Likewise.
3693 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
3695 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
3697 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3700 * config.gcc (tm_mlib_file): Define new variable.
3702 2023-02-08 Jakub Jelinek <jakub@redhat.com>
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.
3711 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
3713 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
3715 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
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
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.
3725 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
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.
3732 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
3735 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
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
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.
3746 2023-02-08 Jakub Jelinek <jakub@redhat.com>
3748 * tree.def (SAD_EXPR): Remove outdated comment about missing
3751 2023-02-07 Marek Polacek <polacek@redhat.com>
3753 * doc/invoke.texi: Update -fchar8_t documentation.
3755 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
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
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.
3766 2023-02-07 Richard Biener <rguenther@suse.de>
3768 PR tree-optimization/26854
3769 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
3770 instead of immediate uses.
3772 2023-02-07 Jakub Jelinek <jakub@redhat.com>
3774 PR tree-optimization/106923
3775 * ipa-split.cc (execute_split_functions): Don't split returns_twice
3778 2023-02-07 Jakub Jelinek <jakub@redhat.com>
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.
3784 2023-02-07 Jan Hubicka <jh@suse.cz>
3786 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
3789 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
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.
3795 2023-02-06 Alex Coplan <alex.coplan@arm.com>
3798 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
3799 Use correct constraint for operand 3.
3801 2023-02-06 Martin Jambor <mjambor@suse.cz>
3803 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
3805 2023-02-06 Xi Ruoyao <xry111@xry111.site>
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.
3824 2023-02-06 Jakub Jelinek <jakub@redhat.com>
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.
3831 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
3833 * doc/install.texi (Specific): Remove PW32.
3835 2023-02-03 Jakub Jelinek <jakub@redhat.com>
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
3844 (operator_lt::op2_range, operator_le::op2_range,
3845 operator_gt::op2_range, operator_ge::op2_range): Return false if
3848 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
3850 PR tree-optimization/108639
3851 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
3853 (irange::operator==): Same.
3855 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
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.
3875 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
3877 PR tree-optimization/107570
3878 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
3880 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
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.
3894 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
3896 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
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.
3903 2023-02-03 Martin Jambor <mjambor@suse.cz>
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.
3916 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
3918 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
3919 * config/riscv/riscv.cc: Ditto.
3921 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3923 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
3927 * config/riscv/vector.md: Ditto.
3929 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
3936 * config/riscv/riscv-vector-builtins.cc: Ditto.
3937 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
3939 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
3941 * toplev.cc (toplev::main): Only print the version information header
3942 from toplevel main().
3944 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
3946 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
3947 cond_{ashl|ashr|lshr}
3949 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
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.
3955 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
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
3964 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
3966 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
3967 Fix finding best match score.
3969 2023-02-02 Jakub Jelinek <jakub@redhat.com>
3972 PR rtl-optimization/108463
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.
3983 2023-02-02 Richard Biener <rguenther@suse.de>
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.
3990 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
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.
4010 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
4018 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
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
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
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.
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
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
4069 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
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.
4077 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
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.
4086 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
4093 (arm_init_crypto_builtins): Likewise.
4095 2023-02-02 Jakub Jelinek <jakub@redhat.com>
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.
4118 2023-02-02 liuhongt <hongtao.liu@intel.com>
4120 PR tree-optimization/108601
4121 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
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):
4131 2023-02-02 Jakub Jelinek <jakub@redhat.com>
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).
4143 2023-02-01 Tamar Christina <tamar.christina@arm.com>
4145 * common/config/aarch64/aarch64-common.cc
4146 (struct aarch64_option_extension): Add native_detect and document struct
4148 (all_extensions): Set new field native_detect.
4149 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
4152 2023-02-01 Martin Liska <mliska@suse.cz>
4154 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
4157 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
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.
4163 2023-02-01 Martin Liska <mliska@suse.cz>
4166 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
4167 ony non-null values.
4168 * ipa.cc (walk_polymorphic_call_targets): Likewise.
4170 2023-02-01 Martin Liska <mliska@suse.cz>
4173 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
4176 2023-02-01 Jakub Jelinek <jakub@redhat.com>
4179 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
4180 subregs in DEBUG_INSNs.
4182 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
4184 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
4186 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
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
4204 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
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
4213 (@stack_tie<mode>): ... this.
4215 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
4217 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
4219 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
4220 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
4222 2023-02-01 Richard Biener <rguenther@suse.de>
4224 PR middle-end/108500
4225 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
4226 with tree traversal algorithm.
4228 2023-02-01 Jason Merrill <jason@redhat.com>
4230 * doc/invoke.texi: Document -Wno-changes-meaning.
4232 2023-02-01 David Malcolm <dmalcolm@redhat.com>
4234 * doc/invoke.texi (Static Analyzer Options): Add notes about
4235 limitations of -fanalyzer.
4237 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4239 * config/riscv/constraints.md (vj): New.
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.
4263 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
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.
4293 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
4296 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
4299 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
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.
4305 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
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.
4312 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
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.
4320 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
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.
4332 2023-01-31 Jakub Jelinek <jakub@redhat.com>
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.
4340 2023-01-31 Jakub Jelinek <jakub@redhat.com>
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.
4348 2023-01-31 Jakub Jelinek <jakub@redhat.com>
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.
4357 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
4359 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
4361 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4368 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
4369 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
4385 * config/riscv/riscv-vector-builtins-shapes.cc
4386 (struct indexed_loadstore_def): New class.
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
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
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.
4421 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
4423 * config.gcc: Recognize x86_64-*-gnu* targets and include
4425 * config/i386/gnu64.h: Define configuration for new target
4426 including ld.so location.
4428 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
4430 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
4431 ampere1a to include SM4.
4433 2023-01-30 Andrew Pinski <apinski@marvell.com>
4435 PR tree-optimization/108582
4436 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
4437 for middlebb to have no phi nodes.
4439 2023-01-30 Richard Biener <rguenther@suse.de>
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.
4446 2023-01-30 Andreas Schwab <schwab@suse.de>
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.
4455 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
4457 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
4458 value of includedir.
4460 2023-01-30 Richard Biener <rguenther@suse.de>
4463 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
4466 2023-01-30 liuhongt <hongtao.liu@intel.com>
4468 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
4469 * doc/invoke.texi: Ditto.
4471 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
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
4480 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
4482 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
4483 off-by-one in checking the permissible shift-amount.
4485 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4487 * doc/extend.texi (Named Address Spaces): Update link to the
4490 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4492 * doc/standards.texi (Standards): Fix markup.
4494 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4496 * doc/standards.texi (Standards): Update link to Objective-C book.
4498 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4500 * doc/invoke.texi (Instrumentation Options): Update reference to
4503 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
4505 * doc/standards.texi: Update Go1 link.
4507 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4509 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
4510 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
4513 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4514 * config/riscv/riscv-vector-builtins-functions.def (vlse): 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.
4521 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4523 * config/riscv/vector.md (tail_policy_op_idx): Remove.
4524 (mask_policy_op_idx): Remove.
4525 (avl_type_op_idx): Remove.
4527 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
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.
4537 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
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.
4543 2023-01-27 Richard Biener <rguenther@suse.de>
4546 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
4547 and -Ofast FP environment side-effects.
4549 2023-01-27 Richard Biener <rguenther@suse.de>
4552 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
4553 Don't add crtfastmath.o for -shared.
4555 2023-01-27 Richard Biener <rguenther@suse.de>
4558 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
4561 2023-01-27 Richard Biener <rguenther@suse.de>
4564 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
4565 crtfastmath.o for -shared.
4567 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
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.
4575 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
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.
4581 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4583 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
4584 Remove _m suffix for "vop_m" C++ overloaded API name.
4586 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
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.
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.
4606 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4645 2023-01-27 Jakub Jelinek <jakub@redhat.com>
4648 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
4651 2023-01-27 Jakub Jelinek <jakub@redhat.com>
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.
4658 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4660 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
4662 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4664 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
4665 (emit_vsetvl_insn): Ditto.
4667 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4669 * config/riscv/vector.md: Fix constraints.
4671 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4673 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
4675 2023-01-27 Patrick Palka <ppalka@redhat.com>
4676 Jakub Jelinek <jakub@redhat.com>
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.
4684 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4686 * config/riscv/riscv-vsetvl.h: Change it into public.
4688 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4690 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
4693 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4695 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
4697 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4699 * config/riscv/vector.md: Fix incorrect attributes.
4701 2023-01-27 Richard Biener <rguenther@suse.de>
4704 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
4705 Don't add crtfastmath.o for -shared.
4707 2023-01-27 Alexandre Oliva <oliva@gnu.org>
4709 * doc/options.texi (option, RejectNegative): Mention that
4710 -g-started options are also implicitly negatable.
4712 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
4714 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
4715 Use get_typenode_from_name to get fixed-width integer type
4717 * config/riscv/riscv-vector-builtins.def: Update define with
4718 fixed-width integer type nodes.
4720 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4761 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4769 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4780 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4782 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
4785 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4787 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
4789 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4791 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
4792 Add pre-check for redundant flow.
4794 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4801 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4814 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4816 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
4818 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4820 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
4821 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
4823 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4825 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
4826 (backward_propagate_worthwhile_p): Fix non-worthwhile.
4828 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4830 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
4832 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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.
4839 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4841 * config/riscv/vector.md:
4843 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4845 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
4847 * config/riscv/riscv-vector-builtins.cc
4848 (function_expander::add_mem_operand): Refine function.
4849 (function_expander::use_contiguous_load_insn): Adjust new
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.
4855 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4857 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
4859 2023-01-26 Marek Polacek <polacek@redhat.com>
4861 PR middle-end/108543
4862 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
4863 if it was previously set.
4865 2023-01-26 Jakub Jelinek <jakub@redhat.com>
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.
4881 2023-01-26 Jakub Jelinek <jakub@redhat.com>
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.
4892 2023-01-26 Richard Biener <rguenther@suse.de>
4894 PR tree-optimization/108547
4895 * gimple-predicate-analysis.cc (value_sat_pred_p):
4898 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
4900 PR tree-optimization/108522
4901 * tree-object-size.cc (compute_object_offset): Make EXPR
4902 argument non-const. Call component_ref_field_offset.
4904 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4906 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
4907 FEATURE_STRING field.
4909 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
4911 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
4913 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
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.
4921 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4923 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
4925 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4927 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
4929 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4931 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
4934 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4936 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
4938 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
4940 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
4942 2023-01-25 Richard Biener <rguenther@suse.de>
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
4949 2023-01-25 Richard Biener <rguenther@suse.de>
4951 * doc/lto.texi (Command line options): Reword and update reference
4952 to removed lto_read_all_file_options.
4954 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
4956 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
4959 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
4961 * doc/contrib.texi: Add Jose E. Marchesi.
4963 2023-01-25 Jakub Jelinek <jakub@redhat.com>
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.
4972 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
4973 Jakub Jelinek <jakub@redhat.com>
4975 PR tree-optimization/108522
4976 * tree-object-size.cc (compute_object_offset): Use
4977 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
4979 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4981 * config/xtensa/xtensa.md:
4982 Fix exit from loops detecting references before overwriting in the
4985 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
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.
4992 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4994 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
4997 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
5004 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
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.
5011 2023-01-24 Richard Biener <rguenther@suse.de>
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.
5021 2023-01-24 Eric Biggers <ebiggers@google.com>
5024 * optc-save-gen.awk: Fix copy-and-paste error.
5026 2023-01-24 Jakub Jelinek <jakub@redhat.com>
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.
5033 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5036 * config.gcc (tm_file): Move the variable out of loop.
5038 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
5039 Yang Yujie <yangyujie@loongson.cn>
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.
5049 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5051 * doc/invoke.texi (-mbranch-protection): Update documentation.
5053 2023-01-23 Richard Biener <rguenther@suse.de>
5056 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
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.
5063 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
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
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.
5086 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
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.
5095 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
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.
5103 2023-01-23 Richard Biener <rguenther@suse.de>
5105 PR tree-optimization/108482
5106 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
5107 .LOOP_DIST_ALIAS calls.
5109 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
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
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.
5128 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
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'
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
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.
5148 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5150 * config/arm/arm.h (arm_arch8m_main): Declare it.
5151 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
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):
5163 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
5164 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
5166 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5168 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
5171 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5172 Tejas Belagod <tbelagod@arm.com>
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.
5177 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5178 Tejas Belagod <tbelagod@arm.com>
5179 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
5181 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
5182 new pseudo register class _UVRSC_PAC.
5184 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5185 Tejas Belagod <tbelagod@arm.com>
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.
5191 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5192 Tejas Belagod <tbelagod@arm.com>
5194 * doc/sourcebuild.texi: Document arm_pacbti_hw.
5196 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5197 Tejas Belagod <tbelagod@arm.com>
5198 Richard Earnshaw <Richard.Earnshaw@arm.com>
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.
5205 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5206 Tejas Belagod <tbelagod@arm.com>
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.
5212 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
5213 Tejas Belagod <tbelagod@arm.com>
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
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
5232 * config/aarch64/aarch64.opt: Include aarch-common.h to import
5233 type move. Fix up name changes from factoring out common code and
5235 * config/arm/aarch-common-protos.h: Export factored out routines to both
5237 * config/arm/aarch-common.cc: Include newly factored out types.
5238 Move all mbranch-protection code and data structures from
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.
5249 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
5251 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
5253 2023-01-23 Richard Biener <rguenther@suse.de>
5255 PR tree-optimization/108449
5256 * cgraphunit.cc (check_global_declaration): Do not turn
5257 undefined statics into externs.
5259 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
5261 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
5263 * config/pru/pru.md (clz): Fix generated code for QI and HI
5266 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
5268 * config/v850/v850.cc (v850_select_section): Put const volatile
5269 objects into read-only sections.
5271 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
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".
5277 2023-01-20 Jakub Jelinek <jakub@redhat.com>
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.
5284 2023-01-19 Jakub Jelinek <jakub@redhat.com>
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}
5290 * selftest.h (relation_tests): Declare.
5291 * function-tests.cc (test_ranges): Call it.
5293 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
5296 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
5297 invalid third argument to __builtin_ia32_prefetch.
5299 2023-01-19 Jakub Jelinek <jakub@redhat.com>
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.
5305 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
5308 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
5309 comment. Move assert about alignment a bit later.
5311 2023-01-19 Jakub Jelinek <jakub@redhat.com>
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
5325 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5327 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
5328 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
5330 (aarch64_simd_vec_copy_lane<mode>): Likewise.
5331 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
5333 2023-01-19 Alexandre Oliva <oliva@adacore.com>
5336 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
5339 2023-01-18 Martin Jambor <mjambor@suse.cz>
5342 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
5343 lcone_of chain also do not need the body.
5345 2023-01-18 Richard Biener <rguenther@suse.de>
5348 2022-12-16 Richard Biener <rguenther@suse.de>
5350 PR middle-end/108086
5351 * tree-inline.cc (remap_ssa_name): Do not unshare the
5352 result from the decl_map.
5354 2023-01-18 Murray Steele <murray.steele@arm.com>
5357 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
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.
5375 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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
5383 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
5384 Andrew Pinski <apinski@marvell.com>
5387 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
5388 vec_vsubcuqP with vec_vsubcuq.
5390 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
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.
5396 2023-01-18 liuhongt <hongtao.liu@intel.com>
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.
5405 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
5407 * config/bpf/bpf.cc (bpf_option_override): Disable
5410 2023-01-17 Jakub Jelinek <jakub@redhat.com>
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.
5418 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
5421 * config/i386/i386.cc (x86_output_mi_thunk): Disable
5422 -mforce-indirect-call for PIC in 32-bit mode.
5424 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
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.
5435 2023-01-16 Jan Hubicka <jh@suse.cz>
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.
5446 2023-01-16 Richard Biener <rguenther@suse.de>
5449 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
5451 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
5455 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
5456 (__ARM_mve_coerce3): Likewise.
5458 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5460 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
5462 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
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.
5469 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5471 * doc/sourcebuild.texi: Add missing target attributes.
5473 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
5475 PR tree-optimization/94793
5476 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
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.
5482 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
5484 * doc/extend.texi (Common Function Attributes): Fix grammar.
5486 2023-01-16 Jakub Jelinek <jakub@redhat.com>
5489 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
5490 * config/riscv/riscv-vsetvl.cc: Likewise.
5492 2023-01-16 Jakub Jelinek <jakub@redhat.com>
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):
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.
5506 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
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.
5513 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
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.
5520 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5522 * config.gcc (csky-*-*): Support --with-float=softfp.
5524 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
5537 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
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.
5543 2023-01-14 Alexandre Oliva <oliva@adacore.com>
5545 * hash-table.h (is_deleted): Precheck !is_empty.
5546 (mark_deleted): Postcheck !is_empty.
5547 (copy constructor): Test is_empty before is_deleted.
5549 2023-01-14 Alexandre Oliva <oliva@adacore.com>
5552 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
5555 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
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.
5561 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
5563 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
5564 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
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
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.
5578 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
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.
5585 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
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.
5592 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
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
5599 * tree.cc (component_ref_size): Likewise.
5601 2023-01-13 Richard Biener <rguenther@suse.de>
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.
5608 2023-01-13 Richard Biener <rguenther@suse.de>
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):
5615 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
5618 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
5620 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
5622 (TARGET_DWARF_FRAME_REG_MODE): Define.
5624 2023-01-13 Richard Biener <rguenther@suse.de>
5627 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
5628 update EH info on the fly.
5630 2023-01-13 Richard Biener <rguenther@suse.de>
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.
5636 2023-01-12 Andrew Pinski <apinski@marvell.com>
5637 Roger Sayle <roger@nextmovesoftware.com>
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.
5644 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
5645 Richard Sandiford <richard.sandiford@arm.com>
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
5655 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
5656 Richard Sandiford <richard.sandiford@arm.com>
5658 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
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.
5667 2023-01-12 Richard Biener <rguenther@suse.de>
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.
5676 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5678 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
5679 Rearrange the emitting codes.
5681 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
5688 2023-01-12 Alexandre Oliva <oliva@adacore.com>
5690 * hash-table.h (expand): Check elements and deleted counts.
5693 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
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).
5700 2023-01-11 David Faust <david.faust@oracle.com>
5703 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
5704 floating point modes.
5706 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
5708 PR tree-optimization/108199
5709 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
5710 for bit-field references.
5712 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
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.
5719 2023-01-11 Richard Biener <rguenther@suse.de>
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.
5728 2023-01-11 Martin Liska <mliska@suse.cz>
5730 PR middle-end/107976
5731 * params.opt: Limit JT params.
5732 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
5734 2023-01-11 Richard Biener <rguenther@suse.de>
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
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.
5746 2023-01-11 Richard Biener <rguenther@suse.de>
5748 PR tree-optimization/108353
5749 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
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.
5757 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
5759 * config/s390/s390.md (*not<mode>): New pattern.
5761 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
5767 2023-01-10 Richard Biener <rguenther@suse.de>
5769 PR tree-optimization/106293
5770 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
5771 process degenerate PHI defs.
5773 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
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.
5779 2023-01-10 Martin Jambor <mjambor@suse.cz>
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
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
5796 (ipa_param_body_adjustments::lookup_first_base_replacement): New
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.
5803 2023-01-10 Richard Biener <rguenther@suse.de>
5805 PR tree-optimization/108314
5806 * tree-vect-stmts.cc (vectorizable_condition): Do not
5807 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
5809 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5811 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
5813 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5815 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
5817 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
5819 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
5820 defines for soft float abi.
5822 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
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.
5832 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
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.
5838 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
5840 * config/s390/s390.cc (s390_register_info): Check call_used_regs
5841 instead of hard-coding the register numbers for call saved
5843 (s390_optimize_register_info): Likewise.
5845 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
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.
5851 2023-01-09 Richard Biener <rguenther@suse.de>
5853 PR middle-end/108209
5854 * genmatch.cc (commutative_op): Fix return value for
5855 user-id with non-commutative first replacement.
5857 2023-01-09 Jakub Jelinek <jakub@redhat.com>
5860 * calls.cc (expand_call): For calls with
5861 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
5864 2023-01-09 Richard Biener <rguenther@suse.de>
5867 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
5868 qualified accesses also force objects to memory.
5870 2023-01-09 Martin Liska <mliska@suse.cz>
5873 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
5874 NULL (deleleted value) to a hash_set.
5876 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5878 * config/xtensa/xtensa.md (*splice_bits):
5879 New insn_and_split pattern.
5881 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
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.
5892 2023-01-07 LIU Hao <lh_mouse@126.com>
5894 PR middle-end/108300
5895 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
5897 * diagnostic-color.cc: Likewise.
5898 * plugin.cc: Likewise.
5899 * prefix.cc: Likewise.
5901 2023-01-06 Joseph Myers <joseph@codesourcery.com>
5903 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
5904 for handling real integer types.
5906 2023-01-06 Tamar Christina <tamar.christina@arm.com>
5909 2022-12-12 Tamar Christina <tamar.christina@arm.com>
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):
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.
5926 2023-01-06 Martin Liska <mliska@suse.cz>
5928 PR middle-end/107966
5929 * doc/options.texi: Fix Var documentation in internal manual.
5931 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
5934 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
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.
5940 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
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.
5947 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
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.
5954 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5956 PR tree-optimization/108253
5957 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
5960 2023-01-04 Jakub Jelinek <jakub@redhat.com>
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.
5968 2023-01-04 Jakub Jelinek <jakub@redhat.com>
5971 * convert.cc (do_narrow): Punt for MULT_EXPR if original
5972 type doesn't wrap around and -fsanitize=signed-integer-overflow
5974 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
5976 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5978 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
5979 * common/config/i386/i386-common.cc: Add Emeraldrapids.
5981 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
5983 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
5986 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
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
5995 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
5996 gc_candidate bit when a clone is used.
5998 2023-01-03 Florian Weimer <fweimer@redhat.com>
6001 2023-01-02 Florian Weimer <fweimer@redhat.com>
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
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.
6017 2023-01-03 Florian Weimer <fweimer@redhat.com>
6020 2023-01-02 Florian Weimer <fweimer@redhat.com>
6022 * debug.h (dwarf_reg_sizes_constant): Declare.
6023 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
6025 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
6027 PR tree-optimization/105043
6028 * doc/extend.texi (Object Size Checking): Split out into two
6029 subsections and mention _FORTIFY_SOURCE.
6031 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
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.
6037 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
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.
6044 2023-01-03 Jakub Jelinek <jakub@redhat.com>
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
6051 2023-01-03 Jakub Jelinek <jakub@redhat.com>
6053 PR rtl-optimization/108263
6054 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
6057 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
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.
6089 2023-01-02 Florian Weimer <fweimer@redhat.com>
6091 * debug.h (dwarf_reg_sizes_constant): Declare.
6092 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
6094 2023-01-02 Florian Weimer <fweimer@redhat.com>
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
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.
6110 2023-01-02 Jakub Jelinek <jakub@redhat.com>
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.
6125 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
6126 Uroš Bizjak <ubizjak@gmail.com>
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.
6136 Copyright (C) 2023 Free Software Foundation, Inc.
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.