1 2023-03-02 Jakub Jelinek <jakub@redhat.com>
4 * target.h (emit_support_tinfos_callback): New typedef.
5 * targhooks.h (default_emit_support_tinfos): Declare.
6 * targhooks.cc (default_emit_support_tinfos): New function.
7 * target.def (emit_support_tinfos): New target hook.
8 * doc/tm.texi.in (emit_support_tinfos): Document it.
9 * doc/tm.texi: Regenerated.
10 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
11 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
13 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
15 * ira-costs.cc: Include print-rtl.h.
16 (record_reg_classes, scan_one_insn): Add code to print debug info.
17 (record_operand_costs): Find and use smaller cost for hard reg
20 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
21 Paul-Antoine Arras <pa@codesourcery.com>
23 * builtins.cc (mathfn_built_in_explicit): New.
24 * config/gcn/gcn.cc: Include case-cfn-macros.h.
25 (mathfn_built_in_explicit): Add prototype.
26 (gcn_vectorize_builtin_vectorized_function): New.
27 (gcn_libc_has_function): New.
28 (TARGET_LIBC_HAS_FUNCTION): Define.
29 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
31 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
33 PR tree-optimization/108979
34 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
35 operations on invariants.
37 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
39 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
40 * config/s390/s390.cc (s390_option_override_internal): Make
41 partial vector usage the default from z13 on.
42 * config/s390/vector.md (len_load_v16qi): Add.
43 (len_store_v16qi): Add.
45 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
47 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
50 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
52 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
54 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
56 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
58 * config.gcc: add -with-{no-}msa build option.
59 * config/mips/mips.h: Likewise.
60 * doc/install.texi: Likewise.
62 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
64 PR tree-optimization/108603
65 * explow.cc (convert_memory_address_addr_space_1): Only wrap
66 the result of a recursive call in a CONST if no instructions
69 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
71 PR tree-optimization/108430
72 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
73 of inverted condition.
75 2023-03-02 Jakub Jelinek <jakub@redhat.com>
78 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
79 comparison copy the bytes from ptr to a temporary buffer and clearing
80 padding bits in there.
82 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
85 * gimplify.cc (struct tree_operand_hash_no_se): New.
86 (omp_index_mapping_groups_1, omp_index_mapping_groups,
87 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
88 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
89 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
90 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
93 2023-03-01 LIU Hao <lh_mouse@126.com>
96 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
97 Remove the size limit `pch_VA_max_size`
99 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
102 * omp-low.cc (lower_omp_target): Remove optional handling
103 on the receiver side, i.e. inside target (data), for
106 2023-03-01 Jakub Jelinek <jakub@redhat.com>
109 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
110 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
112 2023-03-01 Richard Biener <rguenther@suse.de>
114 PR tree-optimization/108970
115 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
116 Check we can copy the BBs.
117 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
119 (vect_do_peeling): Streamline error handling.
121 2023-03-01 Richard Biener <rguenther@suse.de>
123 PR tree-optimization/108950
124 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
125 Check oprnd0 is defined in the loop.
126 * tree-vect-loop.cc (vectorizable_reduction): Record all
127 operands vector types, compute that of invariants and
128 properly update their SLP nodes.
130 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
133 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
134 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
136 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
140 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
142 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
143 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
145 2023-02-28 Jakub Jelinek <jakub@redhat.com>
148 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
149 comparison rather than index > bound.
150 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
151 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
152 * doc/invoke.texi (-fsanitize=bounds): Document that whether
153 flexible array member-like arrays are instrumented or not depends
154 on -fstrict-flex-arrays* options of strict_flex_array attributes.
155 (-fsanitize=bounds-strict): Document that flexible array members
156 are not instrumented.
158 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
162 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
163 (fmod<mode>3): Ditto.
164 (fpremxf4_i387): Ditto.
165 (reminderxf3): Ditto.
166 (reminder<mode>3): Ditto.
167 (fprem1xf4_i387): Ditto.
169 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
171 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
172 generating FFS with mismatched operand and result modes, by using
173 an explicit SIGN_EXTEND/ZERO_EXTEND.
174 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
175 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
177 2023-02-27 Patrick Palka <ppalka@redhat.com>
179 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
180 * lra-int.h (lra_change_class): Likewise.
181 * recog.h (which_op_alt): Likewise.
182 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
185 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
187 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
189 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
191 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
192 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
194 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
196 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
197 (xtensa_get_config_v3): New functions.
199 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
201 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
203 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
205 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
206 the macro to 0x1000000000.
208 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
211 * doc/gm2.texi (-fm2-pathname): New option documented.
212 (-fm2-pathnameI): New option documented.
213 (-fm2-prefix=): New option documented.
214 (-fruntime-modules=): Update default module list.
216 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
219 * config/xtensa/xtensa-protos.h
220 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
221 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
222 to xtensa_expand_call.
223 (xtensa_expand_call): Emit the call and add a clobber expression
224 for the static chain to it in case of windowed ABI.
225 * config/xtensa/xtensa.md (call, call_value, sibcall)
226 (sibcall_value): Call xtensa_expand_call and complete expansion
227 right after that call.
229 2023-02-24 Richard Biener <rguenther@suse.de>
231 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
232 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
233 changing alignment of vec<T, A, vl_embed> and simplifying
235 (vec<T, A, vl_embed>::address): Compute as this + 1.
236 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
237 vector instead of the offset of the m_vecdata member.
238 (auto_vec<T, N>::m_data): Turn storage into
239 uninitialized unsigned char.
240 (auto_vec<T, N>::auto_vec): Allow allocation of one
241 stack member. Initialize m_vec in a special way to
242 avoid later stringop overflow diagnostics.
243 * vec.cc (test_auto_alias): New.
244 (vec_cc_tests): Call it.
246 2023-02-24 Richard Biener <rguenther@suse.de>
248 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
249 take a const reference to the object, use address to
251 (vec<T, A, vl_embed>::contains): Use address to access data.
252 (vec<T, A, vl_embed>::operator[]): Use address instead of
253 m_vecdata to access data.
254 (vec<T, A, vl_embed>::iterate): Likewise.
255 (vec<T, A, vl_embed>::copy): Likewise.
256 (vec<T, A, vl_embed>::quick_push): Likewise.
257 (vec<T, A, vl_embed>::pop): Likewise.
258 (vec<T, A, vl_embed>::quick_insert): Likewise.
259 (vec<T, A, vl_embed>::ordered_remove): Likewise.
260 (vec<T, A, vl_embed>::unordered_remove): Likewise.
261 (vec<T, A, vl_embed>::block_remove): Likewise.
262 (vec<T, A, vl_heap>::address): Likewise.
264 2023-02-24 Martin Liska <mliska@suse.cz>
267 * asan.cc (asan_add_global): Use proper TU name for normal
268 global variables (and aux_base_name for the artificial one).
270 2023-02-24 Jakub Jelinek <jakub@redhat.com>
272 * config/i386/i386-builtin.def: Update description of BDESC
273 and BDESC_FIRST in file comment to include mask2.
275 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
277 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
279 2023-02-24 Jakub Jelinek <jakub@redhat.com>
282 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
283 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
284 nodes and adjust their DECL_CONTEXT.
286 2023-02-24 Jakub Jelinek <jakub@redhat.com>
289 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
290 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
291 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
292 __builtin_ia32_cvtne2ps2bf16_v8bf,
293 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
294 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
295 __builtin_ia32_cvtneps2bf16_v8sf_mask,
296 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
297 __builtin_ia32_cvtneps2bf16_v4sf_mask,
298 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
299 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
300 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
301 __builtin_ia32_dpbf16ps_v4sf_mask,
302 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
303 OPTION_MASK_ISA_AVX512VL.
305 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
307 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
308 Add non-compact 32-bit multilibs.
310 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
312 * config/mips/mips.md (*clo<mode>2): New pattern.
314 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
316 * config/mips/mips.h (machine_function): New variable
317 use_hazard_barrier_return_p.
318 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
319 (mips_hb_return_internal): New insn pattern.
320 * config/mips/mips.cc (mips_attribute_table): Add attribute
321 use_hazard_barrier_return.
322 (mips_use_hazard_barrier_return_p): New static function.
323 (mips_function_attr_inlinable_p): Likewise.
324 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
325 Emit error for unsupported architecture choice.
326 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
327 Return false for use_hazard_barrier_return.
328 (mips_expand_epilogue): Emit hazard barrier return.
329 * doc/extend.texi: Document use_hazard_barrier_return.
331 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
333 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
334 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
335 for the gcc-internal headers.
337 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
339 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
340 and $(POSTCOMPILE) instead of manual dependency listing.
341 * config/xtensa/xtensa-dynconfig.c: Rename to ...
342 * config/xtensa/xtensa-dynconfig.cc: ... this.
344 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
346 * doc/cfg.texi: Reorder index entries around @items.
347 * doc/cpp.texi: Ditto.
348 * doc/cppenv.texi: Ditto.
349 * doc/cppopts.texi: Ditto.
350 * doc/generic.texi: Ditto.
351 * doc/install.texi: Ditto.
352 * doc/extend.texi: Ditto.
353 * doc/invoke.texi: Ditto.
354 * doc/md.texi: Ditto.
355 * doc/rtl.texi: Ditto.
356 * doc/tm.texi.in: Ditto.
357 * doc/trouble.texi: Ditto.
358 * doc/tm.texi: Regenerate.
360 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
362 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
363 the occurrence of general-purpose register used only once and for
364 transferring intermediate value.
366 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
368 * config/xtensa/xtensa.cc (machine_function): Add new member
369 'eliminated_callee_saved_bmp'.
370 (xtensa_can_eliminate_callee_saved_reg_p): New function to
371 determine whether the register can be eliminated or not.
372 (xtensa_expand_prologue): Add invoking the above function and
373 elimination the use of callee-saved register by using its stack
374 slot through the stack pointer (or the frame pointer if needed)
376 (xtensa_expand_prologue): Modify to not emit register restoration
377 insn from its stack slot if the register is already eliminated.
379 2023-02-23 Jakub Jelinek <jakub@redhat.com>
381 PR translation/108890
382 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
383 around fatal_error format strings.
385 2023-02-23 Richard Biener <rguenther@suse.de>
387 * tree-ssa-structalias.cc (handle_lhs_call): Do not
388 re-create rhsc, only truncate it.
390 2023-02-23 Jakub Jelinek <jakub@redhat.com>
393 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
394 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
396 2023-02-23 Richard Biener <rguenther@suse.de>
398 * tree-if-conv.cc (tree_if_conversion): Properly manage
399 memory of refs and the contained data references.
401 2023-02-23 Richard Biener <rguenther@suse.de>
403 PR tree-optimization/108888
404 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
406 (predicate_statements): Only predicate calls with PLF_2.
408 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
410 * config/xtensa/xtensa.md
411 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
412 Add missing "SI:" to PLUS RTXes.
414 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
417 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
418 Emit (use (reg:SI A0_REG)) at the end in the sibling call
419 (i.e. the same place as (return) in the normal call).
421 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
424 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
427 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
429 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
430 (sibcall_value, sibcall_value_internal): Add 'use' expression
433 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
435 * doc/cppdiropts.texi: Reorder @opindex commands to precede
436 @items they relate to.
437 * doc/cppopts.texi: Ditto.
438 * doc/cppwarnopts.texi: Ditto.
439 * doc/invoke.texi: Ditto.
440 * doc/lto.texi: Ditto.
442 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
444 * internal-fn.cc (expand_MASK_CALL): New.
445 * internal-fn.def (MASK_CALL): New.
446 * internal-fn.h (expand_MASK_CALL): New prototype.
447 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
448 for mask arguments also.
449 * tree-if-conv.cc: Include cgraph.h.
450 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
451 (predicate_statements): Convert functions to IFN_MASK_CALL.
452 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
453 IFN_MASK_CALL as a SIMD function call.
454 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
455 IFN_MASK_CALL as an inbranch SIMD function call.
456 Generate the mask vector arguments.
458 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
460 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
461 (class widen_reducop): Ditto.
462 (class freducop): Ditto.
463 (class widen_freducop): Ditto.
465 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
466 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
482 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
484 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
485 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
486 (DEF_RVV_WU_OPS): Ditto.
487 (DEF_RVV_WF_OPS): Ditto.
495 (vint16mf4_t): Ditto.
496 (vint16mf2_t): Ditto.
501 (vint32mf2_t): Ditto.
506 (vuint8mf8_t): Ditto.
507 (vuint8mf4_t): Ditto.
508 (vuint8mf2_t): Ditto.
513 (vuint16mf4_t): Ditto.
514 (vuint16mf2_t): Ditto.
515 (vuint16m1_t): Ditto.
516 (vuint16m2_t): Ditto.
517 (vuint16m4_t): Ditto.
518 (vuint16m8_t): Ditto.
519 (vuint32mf2_t): Ditto.
520 (vuint32m1_t): Ditto.
521 (vuint32m2_t): Ditto.
522 (vuint32m4_t): Ditto.
523 (vuint32m8_t): Ditto.
524 (vfloat32mf2_t): Ditto.
525 (vfloat32m1_t): Ditto.
526 (vfloat32m2_t): Ditto.
527 (vfloat32m4_t): Ditto.
528 (vfloat32m8_t): Ditto.
529 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
530 (DEF_RVV_WU_OPS): Ditto.
531 (DEF_RVV_WF_OPS): Ditto.
532 (required_extensions_p): Add reduction support.
533 (rvv_arg_type_info::get_base_vector_type): Ditto.
534 (rvv_arg_type_info::get_tree_type): Ditto.
535 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
536 * config/riscv/riscv.md: Ditto.
537 * config/riscv/vector-iterators.md (minu): Ditto.
538 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
539 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
540 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
541 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
542 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
543 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
544 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
546 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
548 * config/riscv/iterators.md: New iterator.
549 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
550 (enum ternop_type): New enum.
551 (class vmacc): New class.
553 (class vnmsac): Ditto.
554 (enum widen_ternop_type): New enum.
555 (class vmadd): Ditto.
556 (class vnmsub): Ditto.
557 (class iwmac): Ditto.
558 (class vwmacc): Ditto.
559 (class vwmaccu): Ditto.
560 (class vwmaccsu): Ditto.
561 (class vwmaccus): Ditto.
562 (class reverse_binop): Ditto.
563 (class vfmacc): Ditto.
564 (class vfnmsac): Ditto.
565 (class vfmadd): Ditto.
566 (class vfnmsub): Ditto.
567 (class vfnmacc): Ditto.
568 (class vfmsac): Ditto.
569 (class vfnmadd): Ditto.
570 (class vfmsub): Ditto.
571 (class vfwmacc): Ditto.
572 (class vfwnmacc): Ditto.
573 (class vfwmsac): Ditto.
574 (class vfwnmsac): Ditto.
575 (class float_misc): Ditto.
577 (class vfclass): Ditto.
578 (class vfcvt_x): Ditto.
579 (class vfcvt_rtz_x): Ditto.
580 (class vfcvt_f): Ditto.
581 (class vfwcvt_x): Ditto.
582 (class vfwcvt_rtz_x): Ditto.
583 (class vfwcvt_f): Ditto.
584 (class vfncvt_x): Ditto.
585 (class vfncvt_rtz_x): Ditto.
586 (class vfncvt_f): Ditto.
587 (class vfncvt_rod_f): Ditto.
589 * config/riscv/riscv-vector-builtins-bases.h:
590 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
634 (vfcvt_rtz_x): Ditto.
635 (vfcvt_rtz_xu): Ditto.
639 (vfwcvt_rtz_x): Ditto.
640 (vfwcvt_rtz_xu): Ditto.
644 (vfncvt_rtz_x): Ditto.
645 (vfncvt_rtz_xu): Ditto.
647 (vfncvt_rod_f): Ditto.
648 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
649 (struct move_def): Ditto.
650 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
651 (DEF_RVV_CONVERT_I_OPS): Ditto.
652 (DEF_RVV_CONVERT_U_OPS): Ditto.
653 (DEF_RVV_WCONVERT_I_OPS): Ditto.
654 (DEF_RVV_WCONVERT_U_OPS): Ditto.
655 (DEF_RVV_WCONVERT_F_OPS): Ditto.
656 (vfloat64m1_t): Ditto.
657 (vfloat64m2_t): Ditto.
658 (vfloat64m4_t): Ditto.
659 (vfloat64m8_t): Ditto.
660 (vint32mf2_t): Ditto.
669 (vuint32mf2_t): Ditto.
670 (vuint32m1_t): Ditto.
671 (vuint32m2_t): Ditto.
672 (vuint32m4_t): Ditto.
673 (vuint32m8_t): Ditto.
674 (vuint64m1_t): Ditto.
675 (vuint64m2_t): Ditto.
676 (vuint64m4_t): Ditto.
677 (vuint64m8_t): Ditto.
678 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
679 (DEF_RVV_CONVERT_U_OPS): Ditto.
680 (DEF_RVV_WCONVERT_I_OPS): Ditto.
681 (DEF_RVV_WCONVERT_U_OPS): Ditto.
682 (DEF_RVV_WCONVERT_F_OPS): Ditto.
683 (DEF_RVV_F_OPS): Ditto.
684 (DEF_RVV_WEXTF_OPS): Ditto.
685 (required_extensions_p): Adjust for floating-point support.
686 (check_required_extensions): Ditto.
687 (unsigned_base_type_p): Ditto.
688 (get_mode_for_bitsize): Ditto.
689 (rvv_arg_type_info::get_base_vector_type): Ditto.
690 (rvv_arg_type_info::get_tree_type): Ditto.
691 * config/riscv/riscv-vector-builtins.def (v_f): New define.
697 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
698 (function_expander::arg_mode): New function.
699 * config/riscv/vector-iterators.md (sof): New iterator.
705 (fixuns_trunc): Ditto.
707 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
708 (@pred_<optab><mode>): Ditto.
709 (@pred_<optab><mode>_scalar): Ditto.
710 (@pred_<optab><mode>_reverse_scalar): Ditto.
711 (@pred_<copysign><mode>): Ditto.
712 (@pred_<copysign><mode>_scalar): Ditto.
713 (@pred_mul_<optab><mode>): Ditto.
714 (pred_mul_<optab><mode>_undef_merge): Ditto.
715 (*pred_<madd_nmsub><mode>): Ditto.
716 (*pred_<macc_nmsac><mode>): Ditto.
717 (*pred_mul_<optab><mode>): Ditto.
718 (@pred_mul_<optab><mode>_scalar): Ditto.
719 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
720 (*pred_<madd_nmsub><mode>_scalar): Ditto.
721 (*pred_<macc_nmsac><mode>_scalar): Ditto.
722 (*pred_mul_<optab><mode>_scalar): Ditto.
723 (@pred_neg_mul_<optab><mode>): Ditto.
724 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
725 (*pred_<nmadd_msub><mode>): Ditto.
726 (*pred_<nmacc_msac><mode>): Ditto.
727 (*pred_neg_mul_<optab><mode>): Ditto.
728 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
729 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
730 (*pred_<nmadd_msub><mode>_scalar): Ditto.
731 (*pred_<nmacc_msac><mode>_scalar): Ditto.
732 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
733 (@pred_<misc_op><mode>): Ditto.
734 (@pred_class<mode>): Ditto.
735 (@pred_dual_widen_<optab><mode>): Ditto.
736 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
737 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
738 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
739 (@pred_widen_mul_<optab><mode>): Ditto.
740 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
741 (@pred_widen_neg_mul_<optab><mode>): Ditto.
742 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
743 (@pred_cmp<mode>): Ditto.
744 (*pred_cmp<mode>): Ditto.
745 (*pred_cmp<mode>_narrow): Ditto.
746 (@pred_cmp<mode>_scalar): Ditto.
747 (*pred_cmp<mode>_scalar): Ditto.
748 (*pred_cmp<mode>_scalar_narrow): Ditto.
749 (@pred_eqne<mode>_scalar): Ditto.
750 (*pred_eqne<mode>_scalar): Ditto.
751 (*pred_eqne<mode>_scalar_narrow): Ditto.
752 (@pred_merge<mode>_scalar): Ditto.
753 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
754 (@pred_<fix_cvt><mode>): Ditto.
755 (@pred_<float_cvt><mode>): Ditto.
756 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
757 (@pred_widen_<fix_cvt><mode>): Ditto.
758 (@pred_widen_<float_cvt><mode>): Ditto.
759 (@pred_extend<mode>): Ditto.
760 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
761 (@pred_narrow_<fix_cvt><mode>): Ditto.
762 (@pred_narrow_<float_cvt><mode>): Ditto.
763 (@pred_trunc<mode>): Ditto.
764 (@pred_rod_trunc<mode>): Ditto.
766 2023-02-22 Jakub Jelinek <jakub@redhat.com>
769 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
770 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
771 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
772 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
774 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
776 * common.opt (-Wcomplain-wrong-lang): New.
777 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
778 * opts-common.cc (prune_options): Handle it.
779 * opts-global.cc (complain_wrong_lang): Use it.
781 2023-02-21 David Malcolm <dmalcolm@redhat.com>
784 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
786 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
789 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
791 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
792 (sibcall_value, sibcall_value_internal): Add 'use' expression
795 2023-02-21 Richard Biener <rguenther@suse.de>
797 PR tree-optimization/108691
798 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
799 assert about calls_setjmp not becoming true when it was false.
801 2023-02-21 Richard Biener <rguenther@suse.de>
803 PR tree-optimization/108793
804 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
805 Use convert operands to niter_type when computing num.
807 2023-02-21 Richard Biener <rguenther@suse.de>
810 2023-02-13 Richard Biener <rguenther@suse.de>
812 PR tree-optimization/108691
813 * tree-cfg.cc (notice_special_calls): When the CFG is built
814 honor gimple_call_ctrl_altering_p.
815 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
816 temporarily if the call is not control-altering.
817 * calls.cc (emit_call_1): Do not add REG_SETJMP if
818 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
820 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
822 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
823 true if register A0 (return address register) when -Og is specified.
825 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
827 * config/i386/predicates.md
828 (general_x64constmem_operand): New predicate.
829 * config/i386/i386.md (*cmpqi_ext<mode>_1):
830 Use nonimm_x64constmem_operand.
831 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
832 (*addqi_ext<mode>_1): Ditto.
833 (*testqi_ext<mode>_1): Ditto.
834 (*andqi_ext<mode>_1): Ditto.
835 (*andqi_ext<mode>_1_cc): Ditto.
836 (*<any_or:code>qi_ext<mode>_1): Ditto.
837 (*xorqi_ext<mode>_1_cc): Ditto.
839 2023-02-20 Jakub Jelinek <jakub2redhat.com>
842 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
843 gen_umadddi4_highpart{,_le}.
845 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
847 * config/riscv/riscv.md (prefetch): Use r instead of p for the
849 (riscv_prefetchi_<mode>): Ditto.
851 2023-02-20 Richard Biener <rguenther@suse.de>
853 PR tree-optimization/108816
854 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
855 versioning condition split prerequesite, assert required
858 2023-02-20 Richard Biener <rguenther@suse.de>
860 PR tree-optimization/108825
861 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
862 loop-local verfication only verify there's no pending SSA
865 2023-02-20 Richard Biener <rguenther@suse.de>
867 PR tree-optimization/108819
868 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
869 we have an SSA name as iv_2 as expected.
871 2023-02-18 Jakub Jelinek <jakub@redhat.com>
873 PR tree-optimization/108819
874 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
876 2023-02-18 Jakub Jelinek <jakub@redhat.com>
879 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
880 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
882 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
883 with ix86_replace_reg_with_reg.
885 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
887 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
889 2023-02-18 Xi Ruoyao <xry111@xry111.site>
891 * config.gcc (triplet_abi): Set its value based on $with_abi,
893 (la_canonical_triplet): Set it after $triplet_abi is set
895 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
896 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
899 2023-02-18 Andrew Pinski <apinski@marvell.com>
901 * match.pd: Remove #if GIMPLE around the
904 2023-02-18 Andrew Pinski <apinski@marvell.com>
906 * value-query.h (get_range_query): Return the global ranges
909 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
911 * doc/invoke.texi (@item -Wall): Fix typo in
914 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
917 * config/i386/predicates.md
918 (nonimm_x64constmem_operand): New predicate.
919 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
920 (*subqi_ext<mode>_0): Ditto.
921 (*andqi_ext<mode>_0): Ditto.
922 (*<any_or:code>qi_ext<mode>_0): Ditto.
924 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
927 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
928 int_outermode instead of GET_MODE (tem) to prevent
929 VOIDmode from entering simplify_gen_subreg.
931 2023-02-17 Richard Biener <rguenther@suse.de>
933 PR tree-optimization/108821
934 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
935 move volatile accesses.
937 2023-02-17 Richard Biener <rguenther@suse.de>
939 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
940 called on virtual operands.
941 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
942 ssa_undefined_value_p calls.
943 (vn_phi_insert): Likewise.
944 (set_ssa_val_to): Likewise.
945 (visit_phi): Avoid extra work with equivalences for
946 virtual operand PHIs.
948 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
950 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
952 (class mask_nlogic): Ditto.
953 (class mask_notlogic): Ditto.
955 (class vmclr): Ditto.
956 (class vmset): Ditto.
957 (class vmnot): Ditto.
958 (class vcpop): Ditto.
959 (class vfirst): Ditto.
960 (class mask_misc): Ditto.
961 (class viota): Ditto.
964 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
965 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
984 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
985 (struct mask_alu_def): Ditto.
987 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
988 * config/riscv/riscv-vector-builtins.cc: Ditto.
989 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
990 for dest it scalar RVV intrinsics.
991 * config/riscv/vector-iterators.md (sof): New iterator.
992 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
993 (@pred_<optab>not<mode>): New pattern.
994 (@pred_popcount<VB:mode><P:mode>): New pattern.
995 (@pred_ffs<VB:mode><P:mode>): New pattern.
996 (@pred_<misc_op><mode>): New pattern.
997 (@pred_iota<mode>): New pattern.
998 (@pred_series<mode>): New pattern.
1000 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1002 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
1006 * config/riscv/riscv-vector-builtins.cc: Ditto.
1008 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1009 kito-cheng <kito.cheng@sifive.com>
1011 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
1012 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
1013 (sew64_scalar_helper): New function.
1014 * config/riscv/vector.md: Normalization.
1016 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1018 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
1080 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1082 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
1083 (@pred_<optab><mode>_scalar): Ditto.
1084 (*pred_<optab><mode>_scalar): Ditto.
1085 (*pred_<optab><mode>_extended_scalar): Ditto.
1087 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1089 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
1090 (init_builtins): Ditto.
1091 (mangle_builtin_type): Ditto.
1092 (verify_type_context): Ditto.
1093 (handle_pragma_vector): Ditto.
1094 (builtin_decl): Ditto.
1095 (expand_builtin): Ditto.
1096 (const_vec_all_same_in_range_p): Ditto.
1097 (legitimize_move): Ditto.
1098 (emit_vlmax_op): Ditto.
1099 (emit_nonvlmax_op): Ditto.
1104 (get_avl_type): Ditto.
1105 (calculate_ratio): Ditto.
1106 (enum vlmul_type): Ditto.
1108 (neg_simm5_p): Ditto.
1109 (has_vi_variant_p): Ditto.
1111 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1113 * config/riscv/riscv-protos.h (simm32_p): Remove.
1114 * config/riscv/riscv-v.cc (simm32_p): Ditto.
1115 * config/riscv/vector.md: Use immediate_operand
1116 instead of riscv_vector::simm32_p.
1118 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
1120 * doc/invoke.texi (Optimize Options): Reword the explanation
1121 getting minimal, maximal and default values of a parameter.
1123 2023-02-16 Patrick Palka <ppalka@redhat.com>
1125 * addresses.h: Mechanically drop 'static' from 'static inline'
1126 functions via s/^static inline/inline/g.
1128 * attribs.h: Likewise.
1129 * basic-block.h: Likewise.
1130 * bitmap.h: Likewise.
1131 * cfghooks.h: Likewise.
1132 * cfgloop.h: Likewise.
1133 * cgraph.h: Likewise.
1134 * cselib.h: Likewise.
1135 * data-streamer.h: Likewise.
1136 * debug.h: Likewise.
1138 * diagnostic.h: Likewise.
1139 * dominance.h: Likewise.
1140 * dumpfile.h: Likewise.
1141 * emit-rtl.h: Likewise.
1142 * except.h: Likewise.
1143 * expmed.h: Likewise.
1145 * fixed-value.h: Likewise.
1146 * gengtype.h: Likewise.
1147 * gimple-expr.h: Likewise.
1148 * gimple-iterator.h: Likewise.
1149 * gimple-predict.h: Likewise.
1150 * gimple-range-fold.h: Likewise.
1151 * gimple-ssa.h: Likewise.
1152 * gimple.h: Likewise.
1153 * graphite.h: Likewise.
1154 * hard-reg-set.h: Likewise.
1155 * hash-map.h: Likewise.
1156 * hash-set.h: Likewise.
1157 * hash-table.h: Likewise.
1158 * hwint.h: Likewise.
1159 * input.h: Likewise.
1160 * insn-addr.h: Likewise.
1161 * internal-fn.h: Likewise.
1162 * ipa-fnsummary.h: Likewise.
1163 * ipa-icf-gimple.h: Likewise.
1164 * ipa-inline.h: Likewise.
1165 * ipa-modref.h: Likewise.
1166 * ipa-prop.h: Likewise.
1167 * ira-int.h: Likewise.
1169 * lra-int.h: Likewise.
1171 * lto-streamer.h: Likewise.
1172 * memmodel.h: Likewise.
1173 * omp-general.h: Likewise.
1174 * optabs-query.h: Likewise.
1175 * optabs.h: Likewise.
1176 * plugin.h: Likewise.
1177 * pretty-print.h: Likewise.
1178 * range.h: Likewise.
1179 * read-md.h: Likewise.
1180 * recog.h: Likewise.
1182 * rtl-iter.h: Likewise.
1184 * sbitmap.h: Likewise.
1185 * sched-int.h: Likewise.
1186 * sel-sched-ir.h: Likewise.
1188 * sparseset.h: Likewise.
1189 * ssa-iterators.h: Likewise.
1190 * system.h: Likewise.
1191 * target-globals.h: Likewise.
1192 * target.h: Likewise.
1193 * timevar.h: Likewise.
1194 * tree-chrec.h: Likewise.
1195 * tree-data-ref.h: Likewise.
1196 * tree-iterator.h: Likewise.
1197 * tree-outof-ssa.h: Likewise.
1198 * tree-phinodes.h: Likewise.
1199 * tree-scalar-evolution.h: Likewise.
1200 * tree-sra.h: Likewise.
1201 * tree-ssa-alias.h: Likewise.
1202 * tree-ssa-live.h: Likewise.
1203 * tree-ssa-loop-manip.h: Likewise.
1204 * tree-ssa-loop.h: Likewise.
1205 * tree-ssa-operands.h: Likewise.
1206 * tree-ssa-propagate.h: Likewise.
1207 * tree-ssa-sccvn.h: Likewise.
1208 * tree-ssa.h: Likewise.
1209 * tree-ssanames.h: Likewise.
1210 * tree-streamer.h: Likewise.
1211 * tree-switch-conversion.h: Likewise.
1212 * tree-vectorizer.h: Likewise.
1214 * wide-int.h: Likewise.
1216 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1218 PR tree-optimization/108657
1219 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
1220 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
1221 is a call to internal or builtin function.
1223 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
1225 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
1226 using-declaration to unhide functions.
1228 2023-02-16 Jakub Jelinek <jakub@redhat.com>
1230 PR tree-optimization/108783
1231 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
1232 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
1233 t to curr->op. Otherwise, punt if either newop1 or newop2 are
1234 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
1236 2023-02-16 Richard Biener <rguenther@suse.de>
1238 PR tree-optimization/108791
1239 * tree-ssa-forwprop.cc (optimize_vector_load): Build
1240 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
1243 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
1246 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
1247 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
1248 (ix86_expand_prologue): Likewise.
1250 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1252 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
1254 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1256 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
1257 int248_register_operand predicate in zero_extract sub-RTX.
1258 (*cmpqi_ext<mode>_2): Ditto.
1259 (*cmpqi_ext<mode>_3): Ditto.
1260 (*cmpqi_ext<mode>_4): Ditto.
1261 (*extzvqi_mem_rex64): Ditto.
1263 (*insvqi_1_mem_rex64): Ditto.
1264 (@insv<mode>_1): Ditto.
1268 (*extendqi<SWI24:mode>_ext_1): Ditto.
1269 (*addqi_ext<mode>_1): Ditto.
1270 (*addqi_ext<mode>_2): Ditto.
1271 (*subqi_ext<mode>_2): Ditto.
1272 (*testqi_ext<mode>_1): Ditto.
1273 (*testqi_ext<mode>_2): Ditto.
1274 (*andqi_ext<mode>_1): Ditto.
1275 (*andqi_ext<mode>_1_cc): Ditto.
1276 (*andqi_ext<mode>_2): Ditto.
1277 (*<any_or:code>qi_ext<mode>_1): Ditto.
1278 (*<any_or:code>qi_ext<mode>_2): Ditto.
1279 (*xorqi_ext<mode>_1_cc): Ditto.
1280 (*negqi_ext<mode>_2): Ditto.
1281 (*ashlqi_ext<mode>_2): Ditto.
1282 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
1284 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
1286 * config/i386/predicates.md (int248_register_operand):
1287 Rename from extr_register_operand.
1288 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
1289 (*extzx<mode>): Ditto.
1290 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
1291 (*ashl<mode>3_mask): Ditto.
1292 (*<any_shiftrt:insn><mode>3_mask): Ditto.
1293 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
1294 (*<any_rotate:insn><mode>3_mask): Ditto.
1295 (*<btsc><mode>_mask): Ditto.
1296 (*btr<mode>_mask): Ditto.
1297 (*jcc_bt<mode>_mask_1): Ditto.
1299 2023-02-15 Richard Biener <rguenther@suse.de>
1302 * df-core.cc (df_worklist_propagate_forward): Put later
1303 blocks on worklist and only earlier blocks on pending.
1304 (df_worklist_propagate_backward): Likewise.
1305 (df_worklist_dataflow_doublequeue): Change the iteration
1306 to process new blocks in the same iteration if that
1307 maintains the iteration order.
1309 2023-02-15 Marek Polacek <polacek@redhat.com>
1311 PR middle-end/106080
1312 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
1315 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1317 * config/riscv/predicates.md: Refine codes.
1318 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
1319 * config/riscv/riscv-v.cc: Refine codes.
1320 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
1322 (class imac): New class.
1323 (enum widen_ternop_type): New enum.
1324 (class iwmac): New class.
1326 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1327 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
1335 * config/riscv/riscv-vector-builtins.cc
1336 (function_builder::apply_predication): Adjust for multiply-add support.
1337 (function_expander::add_vundef_operand): Refine codes.
1338 (function_expander::use_ternop_insn): New function.
1339 (function_expander::use_widen_ternop_insn): Ditto.
1340 * config/riscv/riscv-vector-builtins.h: New function.
1341 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
1342 (pred_mul_<optab><mode>_undef_merge): Ditto.
1343 (*pred_<madd_nmsub><mode>): Ditto.
1344 (*pred_<macc_nmsac><mode>): Ditto.
1345 (*pred_mul_<optab><mode>): Ditto.
1346 (@pred_mul_<optab><mode>_scalar): Ditto.
1347 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
1348 (*pred_<madd_nmsub><mode>_scalar): Ditto.
1349 (*pred_<macc_nmsac><mode>_scalar): Ditto.
1350 (*pred_mul_<optab><mode>_scalar): Ditto.
1351 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
1352 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
1353 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
1354 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
1355 (@pred_widen_mul_plus<su><mode>): Ditto.
1356 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
1357 (@pred_widen_mul_plussu<mode>): Ditto.
1358 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
1359 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
1361 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1363 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
1364 (vector_all_trues_mask_operand): New predicate.
1365 (vector_undef_operand): New predicate.
1366 (ltge_operator): New predicate.
1367 (comparison_except_ltge_operator): New predicate.
1368 (comparison_except_eqge_operator): New predicate.
1369 (ge_operator): New predicate.
1370 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
1371 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
1373 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1374 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
1384 * config/riscv/riscv-vector-builtins-shapes.cc
1385 (struct return_mask_def): Adjust for compare support.
1386 * config/riscv/riscv-vector-builtins.cc
1387 (function_expander::use_compare_insn): New function.
1388 * config/riscv/riscv-vector-builtins.h
1389 (function_expander::add_integer_operand): Ditto.
1390 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
1391 * config/riscv/riscv.md: Add vector min/max attributes.
1392 * config/riscv/vector-iterators.md (xnor): New iterator.
1393 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
1394 (*pred_cmp<mode>): Ditto.
1395 (*pred_cmp<mode>_narrow): Ditto.
1396 (@pred_ltge<mode>): Ditto.
1397 (*pred_ltge<mode>): Ditto.
1398 (*pred_ltge<mode>_narrow): Ditto.
1399 (@pred_cmp<mode>_scalar): Ditto.
1400 (*pred_cmp<mode>_scalar): Ditto.
1401 (*pred_cmp<mode>_scalar_narrow): Ditto.
1402 (@pred_eqne<mode>_scalar): Ditto.
1403 (*pred_eqne<mode>_scalar): Ditto.
1404 (*pred_eqne<mode>_scalar_narrow): Ditto.
1405 (*pred_cmp<mode>_extended_scalar): Ditto.
1406 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
1407 (*pred_eqne<mode>_extended_scalar): Ditto.
1408 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
1409 (@pred_ge<mode>_scalar): Ditto.
1410 (@pred_<optab><mode>): Ditto.
1411 (@pred_n<optab><mode>): Ditto.
1412 (@pred_<optab>n<mode>): Ditto.
1413 (@pred_not<mode>): Ditto.
1415 2023-02-15 Martin Jambor <mjambor@suse.cz>
1418 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
1419 creation of non-scalar replacements even if IPA-CP knows their
1422 2023-02-15 Jakub Jelinek <jakub@redhat.com>
1426 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
1427 expander, change operand 3 to be TImode, emit maddlddi4 and
1428 umadddi4_highpart{,_le} with its low half and finally add the high
1431 2023-02-15 Martin Liska <mliska@suse.cz>
1433 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
1435 2023-02-15 Richard Biener <rguenther@suse.de>
1437 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
1438 for with_poison and alias worklist to it.
1439 (sanitize_asan_mark_poison): Likewise.
1441 2023-02-15 Richard Biener <rguenther@suse.de>
1444 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
1445 Combine bitmap test and set.
1446 (scalar_chain::add_insn): Likewise.
1447 (scalar_chain::analyze_register_chain): Remove redundant
1448 attempt to add to queue and instead strengthen assert.
1449 Sink common attempts to mark the def dual-mode.
1450 (scalar_chain::add_to_queue): Remove redundant insn bitmap
1453 2023-02-15 Richard Biener <rguenther@suse.de>
1456 * config/i386/i386-features.cc (convert_scalars_to_vector):
1457 Switch candidates bitmaps to tree view before building the chains.
1459 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
1461 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
1462 "failure trying to reload" call.
1464 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
1466 * gdbinit.in (phrs): New command.
1467 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
1468 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
1470 2023-02-14 David Faust <david.faust@oracle.com>
1473 * config/bpf/constraints.md (q): New memory constraint.
1474 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
1475 (zero_extendqidi2): Likewise.
1476 (zero_extendsidi2): Likewise.
1477 (*mov<MM:mode>): Likewise.
1479 2023-02-14 Andrew Pinski <apinski@marvell.com>
1481 PR tree-optimization/108355
1482 PR tree-optimization/96921
1483 * match.pd: Add pattern for "1 - bool_val".
1485 2023-02-14 Richard Biener <rguenther@suse.de>
1487 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
1488 basic block index hashing on the availability of ->cclhs.
1489 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
1490 rely on ->cclhs availability.
1491 (vn_phi_lookup): Set ->cclhs only when we are eventually
1492 going to CSE the PHI.
1493 (vn_phi_insert): Likewise.
1495 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
1497 * gimplify.cc (gimplify_save_expr): Add missing guard.
1499 2023-02-14 Richard Biener <rguenther@suse.de>
1501 PR tree-optimization/108782
1502 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
1503 Make sure we're not vectorizing an inner loop.
1505 2023-02-14 Jakub Jelinek <jakub@redhat.com>
1508 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
1509 * asan.h (asan_memfn_rtl): Declare.
1510 * asan.cc (asan_memfn_rtls): New variable.
1511 (asan_memfn_rtl): New function.
1512 * builtins.cc (expand_builtin): If
1513 param_asan_kernel_mem_intrinsic_prefix and function is
1514 kernel-{,hw}address sanitized, emit calls to
1515 __{,hw}asan_{memcpy,memmove,memset} rather than
1516 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
1517 instead of flag_sanitize & SANITIZE_ADDRESS to check if
1518 asan_intercepted_p functions shouldn't be expanded inline.
1520 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
1522 PR tree-optimization/96373
1523 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
1524 operations on the loop mask. Reject partial vectors if this isn't
1527 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
1529 PR rtl-optimization/108681
1530 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
1531 code to handle bare uses and clobbers.
1533 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
1535 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
1536 caller_save_p flag when clearing defined_p flag.
1537 (setup_reg_equiv): Ditto.
1538 * lra-constraints.cc (lra_constraints): Ditto.
1540 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
1543 * config/i386/predicates.md (extr_register_operand):
1544 New special predicate.
1545 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
1546 as operand 1 predicate.
1547 (*exzv<mode>): Ditto.
1548 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
1550 2023-02-13 Richard Biener <rguenther@suse.de>
1552 PR tree-optimization/28614
1553 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
1554 walking all edges in most cases.
1555 (vn_nary_op_insert_pieces_predicated): Avoid repeated
1556 calls to can_track_predicate_on_edge unless checking is
1558 (process_bb): Instead call it once here for each edge
1559 we register possibly multiple predicates on.
1561 2023-02-13 Richard Biener <rguenther@suse.de>
1563 PR tree-optimization/108691
1564 * tree-cfg.cc (notice_special_calls): When the CFG is built
1565 honor gimple_call_ctrl_altering_p.
1566 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
1567 temporarily if the call is not control-altering.
1568 * calls.cc (emit_call_1): Do not add REG_SETJMP if
1569 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
1571 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1574 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
1575 (struct s390_sched_state): Initialise to zero.
1576 (s390_sched_variable_issue): For better debuggability also emit
1578 (s390_sched_init): Unconditionally reset scheduler state.
1580 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
1582 * ifcvt.h (noce_if_info::cond_inverted): New field.
1583 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
1584 values when cond_inverted is true.
1585 (noce_find_if_block): Allow the condition to be inverted when
1586 handling conditional moves.
1588 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
1590 * config/s390/predicates.md (execute_operation): Use
1591 constrain_operands instead of extract_constrain_insn in order to
1592 determine wheter there exists a valid alternative.
1594 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
1596 * common/config/arc/arc-common.cc (arc_option_optimization_table):
1597 Remove millicode from list.
1599 2023-02-13 Martin Liska <mliska@suse.cz>
1601 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
1603 2023-02-13 Richard Biener <rguenther@suse.de>
1605 PR tree-optimization/106722
1606 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
1607 whether we marked a stmt.
1608 (mark_control_dependent_edges_necessary): When
1609 mark_last_stmt_necessary didn't mark any stmt make sure
1610 to mark its control dependent edges.
1611 (propagate_necessity): Likewise.
1613 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
1615 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
1616 (DWARF_FRAME_REGISTERS): New.
1617 (DWARF_REG_TO_UNWIND_COLUMN): New.
1619 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
1621 * doc/sourcebuild.texi: Remove (broken) direct reference to
1622 "The GNU configure and build system".
1624 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
1626 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
1627 gen_add3_insn to gen_rtx_SET.
1628 (riscv_adjust_libcall_cfi_epilogue): Likewise.
1630 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1632 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
1633 (class vnclip): Ditto.
1635 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1636 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
1645 * config/riscv/vector-iterators.md (su): Add instruction.
1648 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
1649 (@pred_<sat_op><mode>_scalar): Ditto.
1650 (*pred_<sat_op><mode>_scalar): Ditto.
1651 (*pred_<sat_op><mode>_extended_scalar): Ditto.
1652 (@pred_narrow_clip<v_su><mode>): Ditto.
1653 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
1655 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1657 * config/riscv/constraints.md (Wbr): Remove unused constraint.
1658 * config/riscv/predicates.md: Fix move operand predicate.
1659 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
1660 (class vncvt_x): Ditto.
1661 (class vmerge): Ditto.
1662 (class vmv_v): Ditto.
1664 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1665 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
1672 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
1673 (struct move_def): Ditto.
1675 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1676 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
1677 (DEF_RVV_WEXTU_OPS): Ditto
1678 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
1683 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
1684 * config/riscv/vector-iterators.md (nmsac):New iterator.
1685 (nmsub): New iterator.
1686 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
1687 (@pred_merge<mode>_scalar): New pattern.
1688 (*pred_merge<mode>_scalar): New pattern.
1689 (*pred_merge<mode>_extended_scalar): New pattern.
1690 (@pred_narrow_<optab><mode>): New pattern.
1691 (@pred_narrow_<optab><mode>_scalar): New pattern.
1692 (@pred_trunc<mode>): New pattern.
1694 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1696 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
1697 (class vmsbc): Ditto.
1698 (BASE): Define new class.
1699 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1700 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
1702 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
1705 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1706 * config/riscv/riscv-vector-builtins.cc
1707 (function_expander::use_exact_insn): Adjust for new support
1708 * config/riscv/riscv-vector-builtins.h
1709 (function_base::has_merge_operand_p): New function.
1710 * config/riscv/vector-iterators.md: New iterator.
1711 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
1712 (@pred_msbc<mode>): Ditto.
1713 (@pred_madc<mode>_scalar): Ditto.
1714 (@pred_msbc<mode>_scalar): Ditto.
1715 (*pred_madc<mode>_scalar): Ditto.
1716 (*pred_madc<mode>_extended_scalar): Ditto.
1717 (*pred_msbc<mode>_scalar): Ditto.
1718 (*pred_msbc<mode>_extended_scalar): Ditto.
1719 (@pred_madc<mode>_overflow): Ditto.
1720 (@pred_msbc<mode>_overflow): Ditto.
1721 (@pred_madc<mode>_overflow_scalar): Ditto.
1722 (@pred_msbc<mode>_overflow_scalar): Ditto.
1723 (*pred_madc<mode>_overflow_scalar): Ditto.
1724 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
1725 (*pred_msbc<mode>_overflow_scalar): Ditto.
1726 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
1728 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1730 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
1731 * config/riscv/riscv-v.cc (simm32_p): Ditto.
1732 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
1733 (class vsbc): Ditto.
1735 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1736 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
1738 * config/riscv/riscv-vector-builtins-shapes.cc
1739 (struct no_mask_policy_def): Ditto.
1741 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1742 * config/riscv/riscv-vector-builtins.cc
1743 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
1744 (rvv_arg_type_info::get_tree_type): Ditto.
1745 (function_expander::use_exact_insn): Ditto.
1746 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
1747 (function_base::use_mask_predication_p): New function.
1748 * config/riscv/vector-iterators.md: New iterator.
1749 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
1750 (@pred_sbc<mode>): Ditto.
1751 (@pred_adc<mode>_scalar): Ditto.
1752 (@pred_sbc<mode>_scalar): Ditto.
1753 (*pred_adc<mode>_scalar): Ditto.
1754 (*pred_adc<mode>_extended_scalar): Ditto.
1755 (*pred_sbc<mode>_scalar): Ditto.
1756 (*pred_sbc<mode>_extended_scalar): Ditto.
1758 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1760 * config/riscv/vector.md: use "zero" reg.
1762 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1764 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
1766 (class vwmulsu): Ditto.
1767 (class vwcvt): Ditto.
1768 (BASE): Add integer widening support.
1769 * config/riscv/riscv-vector-builtins-bases.h: Ditto
1770 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
1773 (vwmulu): New class.
1774 (vwmulsu): New class.
1775 (vwaddu): New class.
1776 (vwsubu): New class.
1777 (vwcvt_x): New class.
1778 (vwcvtu_x): New class.
1779 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
1781 (struct widen_alu_def): New class.
1783 * config/riscv/riscv-vector-builtins-shapes.h: New class.
1784 * config/riscv/riscv-vector-builtins.cc
1785 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
1786 (rvv_arg_type_info::get_tree_type): Ditto.
1787 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
1789 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
1791 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
1792 * config/riscv/riscv.h (X0_REGNUM): New constant.
1793 * config/riscv/vector-iterators.md: New iterators.
1794 * config/riscv/vector.md
1795 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
1797 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
1799 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
1800 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
1802 (@pred_widen_mulsu<mode>): Ditto.
1803 (@pred_widen_mulsu<mode>_scalar): Ditto.
1804 (@pred_<optab><mode>): Ditto.
1806 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1807 kito-cheng <kito.cheng@sifive.com>
1809 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
1810 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
1812 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1813 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
1817 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
1819 (DEF_RVV_FULL_V_U_OPS): Ditto.
1820 (vint8mf8_t): Ditto.
1821 (vint8mf4_t): Ditto.
1822 (vint8mf2_t): Ditto.
1827 (vint16mf4_t): Ditto.
1828 (vint16mf2_t): Ditto.
1829 (vint16m1_t): Ditto.
1830 (vint16m2_t): Ditto.
1831 (vint16m4_t): Ditto.
1832 (vint16m8_t): Ditto.
1833 (vint32mf2_t): Ditto.
1834 (vint32m1_t): Ditto.
1835 (vint32m2_t): Ditto.
1836 (vint32m4_t): Ditto.
1837 (vint32m8_t): Ditto.
1838 (vint64m1_t): Ditto.
1839 (vint64m2_t): Ditto.
1840 (vint64m4_t): Ditto.
1841 (vint64m8_t): Ditto.
1842 (vuint8mf8_t): Ditto.
1843 (vuint8mf4_t): Ditto.
1844 (vuint8mf2_t): Ditto.
1845 (vuint8m1_t): Ditto.
1846 (vuint8m2_t): Ditto.
1847 (vuint8m4_t): Ditto.
1848 (vuint8m8_t): Ditto.
1849 (vuint16mf4_t): Ditto.
1850 (vuint16mf2_t): Ditto.
1851 (vuint16m1_t): Ditto.
1852 (vuint16m2_t): Ditto.
1853 (vuint16m4_t): Ditto.
1854 (vuint16m8_t): Ditto.
1855 (vuint32mf2_t): Ditto.
1856 (vuint32m1_t): Ditto.
1857 (vuint32m2_t): Ditto.
1858 (vuint32m4_t): Ditto.
1859 (vuint32m8_t): Ditto.
1860 (vuint64m1_t): Ditto.
1861 (vuint64m2_t): Ditto.
1862 (vuint64m4_t): Ditto.
1863 (vuint64m8_t): Ditto.
1864 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
1865 (DEF_RVV_FULL_V_U_OPS): Ditto.
1866 (check_required_extensions): Add vmulh support.
1867 (rvv_arg_type_info::get_tree_type): Ditto.
1868 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
1869 (enum rvv_base_type): Ditto.
1870 * config/riscv/riscv.opt: Add 'V' extension flag.
1871 * config/riscv/vector-iterators.md (su): New iterator.
1872 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
1873 (@pred_mulh<v_su><mode>_scalar): Ditto.
1874 (*pred_mulh<v_su><mode>_scalar): Ditto.
1875 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
1877 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1879 * config/riscv/iterators.md: Add sign_extend/zero_extend.
1880 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
1882 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
1883 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
1886 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
1887 for vsext/vzext support.
1888 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
1890 (DEF_RVV_QEXTI_OPS): Ditto.
1891 (DEF_RVV_OEXTI_OPS): Ditto.
1892 (DEF_RVV_WEXTU_OPS): Ditto.
1893 (DEF_RVV_QEXTU_OPS): Ditto.
1894 (DEF_RVV_OEXTU_OPS): Ditto.
1895 (vint16mf4_t): Ditto.
1896 (vint16mf2_t): Ditto.
1897 (vint16m1_t): Ditto.
1898 (vint16m2_t): Ditto.
1899 (vint16m4_t): Ditto.
1900 (vint16m8_t): Ditto.
1901 (vint32mf2_t): Ditto.
1902 (vint32m1_t): Ditto.
1903 (vint32m2_t): Ditto.
1904 (vint32m4_t): Ditto.
1905 (vint32m8_t): Ditto.
1906 (vint64m1_t): Ditto.
1907 (vint64m2_t): Ditto.
1908 (vint64m4_t): Ditto.
1909 (vint64m8_t): Ditto.
1910 (vuint16mf4_t): Ditto.
1911 (vuint16mf2_t): Ditto.
1912 (vuint16m1_t): Ditto.
1913 (vuint16m2_t): Ditto.
1914 (vuint16m4_t): Ditto.
1915 (vuint16m8_t): Ditto.
1916 (vuint32mf2_t): Ditto.
1917 (vuint32m1_t): Ditto.
1918 (vuint32m2_t): Ditto.
1919 (vuint32m4_t): Ditto.
1920 (vuint32m8_t): Ditto.
1921 (vuint64m1_t): Ditto.
1922 (vuint64m2_t): Ditto.
1923 (vuint64m4_t): Ditto.
1924 (vuint64m8_t): Ditto.
1925 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
1926 (DEF_RVV_QEXTI_OPS): Ditto.
1927 (DEF_RVV_OEXTI_OPS): Ditto.
1928 (DEF_RVV_WEXTU_OPS): Ditto.
1929 (DEF_RVV_QEXTU_OPS): Ditto.
1930 (DEF_RVV_OEXTU_OPS): Ditto.
1931 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
1933 (rvv_arg_type_info::get_tree_type): Ditto.
1934 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
1935 * config/riscv/vector-iterators.md (z): New attribute.
1936 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
1937 (@pred_<optab><mode>_vf4): Ditto.
1938 (@pred_<optab><mode>_vf8): Ditto.
1940 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1942 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
1943 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
1944 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
1945 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1946 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
1950 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
1955 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
1956 (@pred_<optab><mode>_scalar): New pattern.
1957 (*pred_<optab><mode>_scalar): New pattern.
1958 (*pred_<optab><mode>_extended_scalar): New pattern.
1960 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1962 * config/riscv/iterators.md: Add neg and not.
1963 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
1965 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1966 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
1987 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
1988 (struct alu_def): Ditto.
1990 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1991 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
1992 * config/riscv/vector-iterators.md: New iterator.
1993 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
1995 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1997 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
1999 2023-02-11 Jakub Jelinek <jakub@redhat.com>
2002 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
2003 item->offset bit position is too large to be representable as
2004 unsigned int byte position.
2006 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
2008 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
2010 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2012 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
2013 valid_combine only when ira_use_lra_p is true.
2015 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
2017 * params.opt (ira-simple-lra-insn-threshold): Add new param.
2018 * ira.cc (ira): Use the param to switch on simple LRA.
2020 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2022 PR tree-optimization/108687
2023 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
2024 back to RFD_NONE mode for calculations.
2025 (ranger_cache::propagate_cache): Call the internal edge range API
2026 with RFD_READ_ONLY instead of changing the external routine.
2028 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
2030 PR tree-optimization/108520
2031 * gimple-range-infer.cc (check_assume_func): Invoke
2032 gimple_range_global directly instead using global_range_query.
2033 * value-query.cc (get_range_global): Add function context and
2034 avoid calling nonnull_arg_p if not cfun.
2035 (gimple_range_global): Add function context pointer.
2036 * value-query.h (imple_range_global): Add function context.
2038 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2040 * config/riscv/constraints.md (Wdm): Adjust constraint.
2041 (Wbr): New constraint.
2042 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
2043 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
2044 (emit_vlmax_op): New function.
2045 (emit_nonvlmax_op): Ditto.
2047 (neg_simm5_p): Ditto.
2048 (has_vi_variant_p): Ditto.
2049 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
2050 (emit_vlmax_op): New function.
2051 (emit_nonvlmax_op): Ditto.
2052 (expand_const_vector): Adjust function.
2053 (legitimize_move): Ditto.
2054 (simm32_p): New function.
2056 (neg_simm5_p): Ditto.
2057 (has_vi_variant_p): Ditto.
2058 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
2060 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2061 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
2064 (vminu): Remove signed cases.
2066 (vdiv): Remove unsigned cases.
2068 (vdivu): Remove signed cases.
2077 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
2078 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
2079 * config/riscv/vector-iterators.md: New iterators.
2080 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
2082 (@pred_<optab><mode>_scalar): New pattern.
2083 (@pred_sub<mode>_reverse_scalar): Ditto.
2084 (*pred_<optab><mode>_scalar): Ditto.
2085 (*pred_<optab><mode>_extended_scalar): Ditto.
2086 (*pred_sub<mode>_reverse_scalar): Ditto.
2087 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
2089 2023-02-10 Richard Biener <rguenther@suse.de>
2091 PR tree-optimization/108724
2092 * tree-vect-stmts.cc (vectorizable_operation): Avoid
2093 using word_mode vectors when vector lowering will
2094 decompose them to elementwise operations.
2096 2023-02-10 Jakub Jelinek <jakub@redhat.com>
2099 2023-02-09 Martin Liska <mliska@suse.cz>
2102 * doc/extend.texi: Document that the function
2103 does not work correctly for old VIA processors.
2105 2023-02-10 Andrew Pinski <apinski@marvell.com>
2106 Andrew Macleod <amacleod@redhat.com>
2108 PR tree-optimization/108684
2109 * tree-ssa-dce.cc (simple_dce_from_worklist):
2110 Check all ssa names and not just non-vdef ones
2111 before accepting the inline-asm.
2112 Call unlink_stmt_vdef on the statement before
2115 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
2117 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2118 * ira.cc (validate_equiv_mem): Check memref address variance.
2119 (no_equiv): Clear caller_save_p flag.
2120 (update_equiv_regs): Define caller save equivalence for
2122 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2123 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2124 call_save_p. Use caller save equivalence depending on the arg.
2125 (split_reg): Adjust the call.
2127 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2130 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
2131 (cpu_indicator_init): Call get_available_features for all CPUs with
2132 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
2135 2023-02-09 Jakub Jelinek <jakub@redhat.com>
2137 PR tree-optimization/108688
2138 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
2139 of BIT_INSERT_EXPR extracting exactly all inserted bits even
2140 when without mode precision. Formatting fixes.
2142 2023-02-09 Andrew Pinski <apinski@marvell.com>
2144 PR tree-optimization/108688
2145 * match.pd (bit_field_ref [bit_insert]): Avoid generating
2146 BIT_FIELD_REFs of non-mode-precision integral operands.
2148 2023-02-09 Martin Liska <mliska@suse.cz>
2151 * doc/extend.texi: Document that the function
2152 does not work correctly for old VIA processors.
2154 2023-02-09 Andreas Schwab <schwab@suse.de>
2156 * lto-wrapper.cc (merge_and_complain): Handle
2157 -funwind-tables and -fasynchronous-unwind-tables.
2158 (append_compiler_options): Likewise.
2160 2023-02-09 Richard Biener <rguenther@suse.de>
2162 PR tree-optimization/26854
2163 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
2164 view around insert_updated_phi_nodes_for.
2165 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
2167 (walk_aliased_vdefs_1): Likewise.
2169 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
2171 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
2173 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
2176 * config.gcc (tm_mlib_file): Define new variable.
2178 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2180 PR tree-optimization/108692
2181 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
2182 widened_code which is different from code, don't call
2183 vect_look_through_possible_promotion but instead just check op is
2184 SSA_NAME with integral type for which vect_is_simple_use is true
2185 and call set_op on this_unprom.
2187 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
2189 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
2191 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
2193 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
2194 to 'aarch_ra_sign_key'.
2195 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
2197 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
2198 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
2199 * config/arm/arm.opt: Define.
2201 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
2203 PR tree-optimization/108316
2204 * tree-vect-stmts.cc (get_load_store_type): When using
2205 internal functions for gather/scatter, make sure that the type
2206 of the offset argument is consistent with the offset vector type.
2208 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
2211 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2213 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2214 * ira.cc (validate_equiv_mem): Check memref address variance.
2215 (update_equiv_regs): Define caller save equivalence for
2217 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2218 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2219 call_save_p. Use caller save equivalence depending on the arg.
2220 (split_reg): Adjust the call.
2222 2023-02-08 Jakub Jelinek <jakub@redhat.com>
2224 * tree.def (SAD_EXPR): Remove outdated comment about missing
2227 2023-02-07 Marek Polacek <polacek@redhat.com>
2229 * doc/invoke.texi: Update -fchar8_t documentation.
2231 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
2233 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
2234 * ira.cc (validate_equiv_mem): Check memref address variance.
2235 (update_equiv_regs): Define caller save equivalence for
2237 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
2238 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
2239 call_save_p. Use caller save equivalence depending on the arg.
2240 (split_reg): Adjust the call.
2242 2023-02-07 Richard Biener <rguenther@suse.de>
2244 PR tree-optimization/26854
2245 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
2246 instead of immediate uses.
2248 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2250 PR tree-optimization/106923
2251 * ipa-split.cc (execute_split_functions): Don't split returns_twice
2254 2023-02-07 Jakub Jelinek <jakub@redhat.com>
2256 PR tree-optimization/106433
2257 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
2258 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
2260 2023-02-07 Jan Hubicka <jh@suse.cz>
2262 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
2265 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
2267 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
2268 (process_asm): Create a constructor for GCN_STACK_SIZE.
2269 (main): Parse the -mstack-size option.
2271 2023-02-06 Alex Coplan <alex.coplan@arm.com>
2274 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
2275 Use correct constraint for operand 3.
2277 2023-02-06 Martin Jambor <mjambor@suse.cz>
2279 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
2281 2023-02-06 Xi Ruoyao <xry111@xry111.site>
2283 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
2284 New define_int_iterator.
2285 (bytepick_d_ashift_amount): Likewise.
2286 (bytepick_imm): New define_int_attr.
2287 (bytepick_w_lshiftrt_amount): Likewise.
2288 (bytepick_d_lshiftrt_amount): Likewise.
2289 (bytepick_w_<bytepick_imm>): New define_insn template.
2290 (bytepick_w_<bytepick_imm>_extend): Likewise.
2291 (bytepick_d_<bytepick_imm>): Likewise.
2292 (bytepick_w): Remove unused define_insn.
2293 (bytepick_d): Likewise.
2294 (UNSPEC_BYTEPICK_W): Remove unused unspec.
2295 (UNSPEC_BYTEPICK_D): Likewise.
2296 * config/loongarch/predicates.md (const_0_to_3_operand):
2297 Remove unused define_predicate.
2298 (const_0_to_7_operand): Likewise.
2300 2023-02-06 Jakub Jelinek <jakub@redhat.com>
2302 PR tree-optimization/108655
2303 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
2304 or -fsanitize=unreachable -fsanitize-trap=unreachable return
2305 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
2307 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
2309 * doc/install.texi (Specific): Remove PW32.
2311 2023-02-03 Jakub Jelinek <jakub@redhat.com>
2313 PR tree-optimization/108647
2314 * range-op.cc (operator_equal::op1_range,
2315 operator_not_equal::op1_range): Don't test op2 bound
2316 equality if op2.undefined_p (), instead set_varying.
2317 (operator_lt::op1_range, operator_le::op1_range,
2318 operator_gt::op1_range, operator_ge::op1_range): Return false if
2320 (operator_lt::op2_range, operator_le::op2_range,
2321 operator_gt::op2_range, operator_ge::op2_range): Return false if
2324 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
2326 PR tree-optimization/108639
2327 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
2329 (irange::operator==): Same.
2331 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
2333 PR tree-optimization/108647
2334 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
2335 (foperator_lt::op2_range): Same.
2336 (foperator_le::op1_range): Same.
2337 (foperator_le::op2_range): Same.
2338 (foperator_gt::op1_range): Same.
2339 (foperator_gt::op2_range): Same.
2340 (foperator_ge::op1_range): Same.
2341 (foperator_ge::op2_range): Same.
2342 (foperator_unordered_lt::op1_range): Same.
2343 (foperator_unordered_lt::op2_range): Same.
2344 (foperator_unordered_le::op1_range): Same.
2345 (foperator_unordered_le::op2_range): Same.
2346 (foperator_unordered_gt::op1_range): Same.
2347 (foperator_unordered_gt::op2_range): Same.
2348 (foperator_unordered_ge::op1_range): Same.
2349 (foperator_unordered_ge::op2_range): Same.
2351 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
2353 PR tree-optimization/107570
2354 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
2356 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
2358 * doc/gm2.texi (Internals): Remove from menu.
2359 (Using): Comment out ifnohtml conditional.
2360 (Documentation): Use gcc url.
2361 (License): Node simplified.
2362 (Copying): New node. Include gpl_v3_without_node.
2363 (Contributing): Node simplified.
2364 (Internals): Commented out.
2365 (Libraries): Node simplified.
2370 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
2372 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
2374 (mve_vqshluq_m_n_s<mode>): Likewise.
2375 (mve_vshlq_m_<supf><mode>): Likewise.
2376 (mve_vsriq_m_n_<supf><mode>): Likewise.
2377 (mve_vsubq_m_<supf><mode>): Likewise.
2379 2023-02-03 Martin Jambor <mjambor@suse.cz>
2382 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
2383 when comparing to an IPA-CP value.
2384 (dump_list_of_param_indices): New function.
2385 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
2386 Dump removed candidates using dump_list_of_param_indices.
2387 * ipa-param-manipulation.cc
2388 (ipa_param_body_adjustments::modify_expression): Add assert checking
2389 sizes of a VIEW_CONVERT_EXPR will match.
2390 (ipa_param_body_adjustments::modify_assignment): Likewise.
2392 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
2394 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
2395 * config/riscv/riscv.cc: Ditto.
2397 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2399 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
2403 * config/riscv/vector.md: Ditto.
2405 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2407 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
2408 * config/riscv/riscv-vector-builtins-bases.cc: New class.
2409 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
2412 * config/riscv/riscv-vector-builtins.cc: Ditto.
2413 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
2415 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
2417 * toplev.cc (toplev::main): Only print the version information header
2418 from toplevel main().
2420 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
2422 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
2423 cond_{ashl|ashr|lshr}
2425 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
2427 PR rtl-optimization/108086
2428 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
2429 Adjust size-related commentary accordingly.
2431 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
2433 PR rtl-optimization/108508
2434 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
2435 the splay tree search gives the first clobber in the second group,
2436 make sure that the root of the first clobber group is updated
2437 correctly. Enter the new clobber group into the definition splay
2440 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
2442 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
2443 Fix finding best match score.
2445 2023-02-02 Jakub Jelinek <jakub@redhat.com>
2448 PR rtl-optimization/108463
2450 * cselib.cc (cselib_current_insn): Move declaration earlier.
2451 (cselib_hasher::equal): For debug only locs, temporarily override
2452 cselib_current_insn to their l->setting_insn for the
2453 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
2454 promote some debug locs.
2455 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
2456 when using cselib call cselib_lookup_from_insn on the address but
2457 don't substitute it.
2459 2023-02-02 Richard Biener <rguenther@suse.de>
2461 PR middle-end/108625
2462 * genmatch.cc (expr::gen_transform): Also disallow resimplification
2463 from pushing to lseq with force_leaf.
2464 (dt_simplify::gen_1): Likewise.
2466 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
2468 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
2469 (struct kernargs): Replace the common content with kernargs_abi.
2470 (struct heap): Delete.
2471 (main): Read GCN_STACK_SIZE envvar.
2472 Allocate space for the device stacks.
2473 Write the new kernargs fields.
2474 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
2475 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
2476 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
2477 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
2478 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
2479 Set up the stacks from the values in the kernargs, not private.
2480 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
2481 (gcn_hsa_declare_function_name): Turn off the private segment.
2482 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
2483 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
2484 * config/gcn/gcn.opt (mstack-size): Change the description.
2486 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2489 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
2490 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
2491 addressing MVE predicate modes.
2492 (mve_bool_vec_to_const): Change to represent correct MVE predicate
2494 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
2496 (arm_vector_mode_supported_p): Likewise.
2497 (arm_mode_to_pred_mode): Add V2QI.
2498 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
2500 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
2501 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
2502 (v2qi_UP): New macro.
2503 (v4bi_UP): New macro.
2504 (v8bi_UP): New macro.
2505 (v16bi_UP): New macro.
2506 (arm_expand_builtin_args): Make it able to expand the new predicate
2508 * config/arm/arm-modes.def (V2QI): New mode.
2509 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
2510 Pred4x4_t): Remove unused predicate builtin types.
2511 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
2512 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
2513 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
2514 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
2515 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
2516 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
2517 of MODE_VECTOR_BOOL.
2518 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
2519 (MVE_VPRED): Likewise.
2520 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
2521 (MVE_vctp): New mode attribute.
2525 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
2526 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
2528 (mve_vpnothi): Rename this...
2529 (mve_vpnotv16bi): ... to this.
2530 (mve_vctp<mode1>q_mhi): Rename this...
2531 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
2532 (mve_vldrdq_gather_base_z_<supf>v2di,
2533 mve_vldrdq_gather_offset_z_<supf>v2di,
2534 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
2535 mve_vstrdq_scatter_base_p_<supf>v2di,
2536 mve_vstrdq_scatter_offset_p_<supf>v2di,
2537 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
2538 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
2539 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
2540 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
2541 mve_vldrdq_gather_base_wb_z_<supf>v2di,
2542 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
2543 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
2545 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
2547 (VCTP): ... with this.
2548 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
2549 (VCTP_M): ... with this.
2550 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
2551 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
2553 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2556 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
2557 (arm_modes_tieable_p): Make MVE predicate modes tieable.
2558 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
2559 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
2560 simplify_subreg to simplify subregs where the outermode is not scalar.
2562 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2565 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
2566 new qualifiers parameter and use unsigned short type for MVE predicate.
2567 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
2569 (arm_init_crypto_builtins): Likewise.
2571 2023-02-02 Jakub Jelinek <jakub@redhat.com>
2574 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
2575 * internal-fn.def (TRAP): Remove.
2576 * internal-fn.cc (expand_TRAP): Remove.
2577 * tree.cc (build_common_builtin_nodes): Define
2578 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
2579 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
2580 instead of BUILT_IN_TRAP.
2581 * gimple.cc (gimple_build_builtin_unreachable): Remove
2582 emitting internal function for BUILT_IN_TRAP.
2583 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
2584 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
2585 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
2586 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
2587 BUILT_IN_UNREACHABLE_TRAP.
2588 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
2589 * tree-cfg.cc (verify_gimple_call,
2590 pass_warn_function_return::execute): Likewise.
2591 * attribs.cc (decl_attributes): Don't report exclusions on
2592 BUILT_IN_UNREACHABLE_TRAP either.
2594 2023-02-02 liuhongt <hongtao.liu@intel.com>
2596 PR tree-optimization/108601
2597 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
2599 (vectorizable_nonlinear_induction): Remove
2600 vect_can_peel_nonlinear_iv_p.
2601 (vect_can_peel_nonlinear_iv_p): Don't peel
2602 nonlinear iv(mult or shift) for epilog when vf is not
2603 constant and moved the defination to ..
2604 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
2607 2023-02-02 Jakub Jelinek <jakub@redhat.com>
2609 PR middle-end/108435
2610 * tree-nested.cc (convert_nonlocal_omp_clauses)
2611 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
2612 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
2613 before calling declare_vars.
2614 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
2615 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
2616 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
2617 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
2619 2023-02-01 Tamar Christina <tamar.christina@arm.com>
2621 * common/config/aarch64/aarch64-common.cc
2622 (struct aarch64_option_extension): Add native_detect and document struct
2624 (all_extensions): Set new field native_detect.
2625 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
2628 2023-02-01 Martin Liska <mliska@suse.cz>
2630 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
2633 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
2635 PR tree-optimization/108356
2636 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
2637 do a search of the DOM tree for a range.
2639 2023-02-01 Martin Liska <mliska@suse.cz>
2642 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
2643 ony non-null values.
2644 * ipa.cc (walk_polymorphic_call_targets): Likewise.
2646 2023-02-01 Martin Liska <mliska@suse.cz>
2649 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
2652 2023-02-01 Jakub Jelinek <jakub@redhat.com>
2655 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
2656 subregs in DEBUG_INSNs.
2658 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
2660 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
2662 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
2664 * config/s390/s390.cc (s390_restore_gpr_p): New function.
2665 (s390_preserve_gpr_arg_in_range_p): New function.
2666 (s390_preserve_gpr_arg_p): New function.
2667 (s390_preserve_fpr_arg_p): New function.
2668 (s390_register_info_stdarg_fpr): Rename to ...
2669 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
2670 (s390_register_info_stdarg_gpr): Rename to ...
2671 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
2672 (s390_register_info): Use the renamed functions above.
2673 (s390_optimize_register_info): Likewise.
2674 (save_fpr): Generate CFI for -mpreserve-args.
2675 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
2676 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
2677 (s390_optimize_prologue): Likewise.
2678 * config/s390/s390.opt: New option -mpreserve-args
2680 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
2682 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
2683 (restore_gprs): Likewise.
2684 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
2685 frame pointer if a frame-pointer is used.
2686 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
2687 * config/s390/s390.md (stack_tie): Add a register operand and
2689 (@stack_tie<mode>): ... this.
2691 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
2693 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
2695 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
2696 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
2698 2023-02-01 Richard Biener <rguenther@suse.de>
2700 PR middle-end/108500
2701 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
2702 with tree traversal algorithm.
2704 2023-02-01 Jason Merrill <jason@redhat.com>
2706 * doc/invoke.texi: Document -Wno-changes-meaning.
2708 2023-02-01 David Malcolm <dmalcolm@redhat.com>
2710 * doc/invoke.texi (Static Analyzer Options): Add notes about
2711 limitations of -fanalyzer.
2713 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2715 * config/riscv/constraints.md (vj): New.
2717 * config/riscv/iterators.md: Add more opcode.
2718 * config/riscv/predicates.md (vector_arith_operand): New.
2719 (vector_neg_arith_operand): New.
2720 (vector_shift_operand): New.
2721 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
2722 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
2739 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
2756 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
2757 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
2758 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
2759 (DEF_RVV_U_OPS): New.
2760 (rvv_arg_type_info::get_base_vector_type): Handle
2761 RVV_BASE_shift_vector.
2762 (rvv_arg_type_info::get_tree_type): Ditto.
2763 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
2764 RVV_BASE_shift_vector.
2765 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
2766 * config/riscv/vector-iterators.md: Handle more opcode.
2767 * config/riscv/vector.md (@pred_<optab><mode>): New.
2769 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
2772 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
2775 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
2777 PR tree-optimization/108608
2778 * tree-vect-loop.cc (vect_transform_reduction): Handle single
2779 def-use cycles that involve function calls rather than tree codes.
2781 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
2783 PR tree-optimization/108385
2784 * gimple-range-gori.cc (gori_compute::compute_operand_range):
2785 Allow VARYING computations to continue if there is a relation.
2786 * range-op.cc (pointer_plus_operator::op2_range): New.
2788 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
2790 PR tree-optimization/108359
2791 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
2792 (range_operator::fold_range): If op1 is equivalent to op2 then
2793 invoke new fold_in_parts_equiv to operate on sub-components.
2794 * range-op.h (wi_fold_in_parts_equiv): New prototype.
2796 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
2798 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
2799 not abort calculations if there is a valid relation available.
2800 (gori_compute::refine_using_relation): Pass correct relation trio.
2801 (gori_compute::compute_operand1_range): Create trio and use it.
2802 (gori_compute::compute_operand2_range): Ditto.
2803 * range-op.cc (operator_plus::op1_range): Use correct trio member.
2804 (operator_minus::op1_range): Use correct trio member.
2805 * value-relation.cc (value_relation::create_trio): New.
2806 * value-relation.h (value_relation::create_trio): New prototype.
2808 2023-01-31 Jakub Jelinek <jakub@redhat.com>
2811 * config/i386/i386-expand.cc
2812 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
2813 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
2814 equal to bitsize of mode.
2816 2023-01-31 Jakub Jelinek <jakub@redhat.com>
2818 PR rtl-optimization/108596
2819 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
2820 ends with asm goto and has a crossing fallthrough edge to the same bb
2821 that contains at least one of its labels by restoring EDGE_CROSSING
2822 flag even on possible edge from cur_bb to new_bb successor.
2824 2023-01-31 Jakub Jelinek <jakub@redhat.com>
2827 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
2828 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
2829 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
2830 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
2831 uninitialized automatic variable __W.
2833 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
2835 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
2837 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2839 * config/riscv/riscv-protos.h (get_vector_mode): New function.
2840 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
2841 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
2842 (class loadstore): Adjust for indexed loads/stores support.
2844 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
2845 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
2861 * config/riscv/riscv-vector-builtins-shapes.cc
2862 (struct indexed_loadstore_def): New class.
2864 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2865 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
2866 for indexed loads/stores support.
2867 (check_required_extensions): Ditto.
2868 (rvv_arg_type_info::get_base_vector_type): New function.
2869 (rvv_arg_type_info::get_tree_type): Ditto.
2870 (function_builder::add_unique_function): Adjust for indexed loads/stores
2872 (function_expander::use_exact_insn): New function.
2873 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
2874 indexed loads/stores support.
2875 (struct rvv_arg_type_info): Ditto.
2876 (function_expander::index_mode): New function.
2877 (function_base::apply_tail_policy_p): Ditto.
2878 (function_base::apply_mask_policy_p): Ditto.
2879 * config/riscv/vector-iterators.md (unspec): New unspec.
2880 * config/riscv/vector.md (unspec): Ditto.
2881 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
2883 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
2884 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
2885 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
2886 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
2887 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
2888 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
2889 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
2890 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
2891 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
2892 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
2893 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
2894 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
2895 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
2897 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
2899 * config.gcc: Recognize x86_64-*-gnu* targets and include
2901 * config/i386/gnu64.h: Define configuration for new target
2902 including ld.so location.
2904 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
2906 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
2907 ampere1a to include SM4.
2909 2023-01-30 Andrew Pinski <apinski@marvell.com>
2911 PR tree-optimization/108582
2912 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
2913 for middlebb to have no phi nodes.
2915 2023-01-30 Richard Biener <rguenther@suse.de>
2917 PR tree-optimization/108574
2918 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
2919 sameval and def, ignore the equivalence if there's the
2920 danger of oscillating between two values.
2922 2023-01-30 Andreas Schwab <schwab@suse.de>
2924 * common/config/riscv/riscv-common.cc
2925 (riscv_option_optimization_table)
2926 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
2927 -fasynchronous-unwind-tables and -funwind-tables.
2928 * config.gcc (riscv*-*-linux*): Define
2929 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
2931 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
2933 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
2934 value of includedir.
2936 2023-01-30 Richard Biener <rguenther@suse.de>
2939 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
2942 2023-01-30 liuhongt <hongtao.liu@intel.com>
2944 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
2945 * doc/invoke.texi: Ditto.
2947 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
2949 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
2950 (stmt_may_terminate_function_p): If assuming return or EH
2951 volatile asm is safe.
2952 (find_always_executed_bbs): Fix handling of terminating BBS and
2953 infinite loops; add debug output.
2954 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
2956 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
2958 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
2959 off-by-one in checking the permissible shift-amount.
2961 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2963 * doc/extend.texi (Named Address Spaces): Update link to the
2966 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2968 * doc/standards.texi (Standards): Fix markup.
2970 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2972 * doc/standards.texi (Standards): Update link to Objective-C book.
2974 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2976 * doc/invoke.texi (Instrumentation Options): Update reference to
2979 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
2981 * doc/standards.texi: Update Go1 link.
2983 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2985 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
2986 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
2989 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2990 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
2992 * config/riscv/riscv-vector-builtins.cc
2993 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
2994 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
2995 (@pred_strided_store<mode>): Ditto.
2997 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2999 * config/riscv/vector.md (tail_policy_op_idx): Remove.
3000 (mask_policy_op_idx): Remove.
3001 (avl_type_op_idx): Remove.
3003 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3005 PR tree-optimization/96373
3006 * tree.h (sign_mask_for): Declare.
3007 * tree.cc (sign_mask_for): New function.
3008 (signed_or_unsigned_type_for): For vector types, try to use the
3009 related_int_vector_mode.
3010 * genmatch.cc (commutative_op): Handle conditional internal functions.
3011 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
3013 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
3015 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
3016 Use the likely minimum VF when bounding the denominators to
3017 the estimated number of iterations.
3019 2023-01-27 Richard Biener <rguenther@suse.de>
3022 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
3023 and -Ofast FP environment side-effects.
3025 2023-01-27 Richard Biener <rguenther@suse.de>
3028 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3029 Don't add crtfastmath.o for -shared.
3031 2023-01-27 Richard Biener <rguenther@suse.de>
3034 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
3037 2023-01-27 Richard Biener <rguenther@suse.de>
3040 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
3041 crtfastmath.o for -shared.
3043 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3045 PR tree-optimization/108306
3046 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
3047 varying for shifts that are always out of void range.
3048 (operator_rshift::fold_range): Return [0, 0] not
3049 varying for shifts that are always out of void range.
3051 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
3053 PR tree-optimization/108447
3054 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
3055 Do not attempt to fold HONOR_NAN types.
3057 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3059 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
3060 Remove _m suffix for "vop_m" C++ overloaded API name.
3062 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3064 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
3065 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3066 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
3068 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
3069 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
3077 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
3078 (rvv_arg_type_info::get_tree_type): Ditto.
3079 (function_expander::use_contiguous_load_insn): Ditto.
3080 * config/riscv/vector.md (@pred_store<mode>): Ditto.
3082 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3084 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
3085 (vsetvl_discard_result_insn_p): New function.
3086 (reg_killed_by_bb_p): rename to find_reg_killed_by.
3087 (find_reg_killed_by): New name.
3088 (get_vl): allow it to be called by more functions.
3089 (has_vsetvl_killed_avl_p): Add condition.
3090 (get_avl): allow it to be called by more functions.
3091 (insn_should_be_added_p): New function.
3092 (get_all_nonphi_defs): Refine function.
3093 (get_all_sets): Ditto.
3094 (get_same_bb_set): New function.
3095 (any_insn_in_bb_p): Ditto.
3096 (any_set_in_bb_p): Ditto.
3097 (get_vl_vtype_info): Add VLMAX forward optimization.
3098 (source_equal_p): Fix issues.
3099 (extract_single_source): Refine.
3100 (avl_info::multiple_source_equal_p): New function.
3101 (avl_info::operator==): Adjust for final version.
3102 (vl_vtype_info::operator==): Ditto.
3103 (vl_vtype_info::same_avl_p): Ditto.
3104 (vector_insn_info::parse_insn): Ditto.
3105 (vector_insn_info::available_p): New function.
3106 (vector_insn_info::merge): Adjust for final version.
3107 (vector_insn_info::dump): Add hard_empty.
3108 (pass_vsetvl::hard_empty_block_p): New function.
3109 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
3110 (pass_vsetvl::forward_demand_fusion): Ditto.
3111 (pass_vsetvl::demand_fusion): Ditto.
3112 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
3113 (pass_vsetvl::compute_local_properties): Adjust for final version.
3114 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
3115 (pass_vsetvl::refine_vsetvls): Ditto.
3116 (pass_vsetvl::commit_vsetvls): Ditto.
3117 (pass_vsetvl::propagate_avl): New function.
3118 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
3119 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
3121 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3124 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
3127 2023-01-27 Jakub Jelinek <jakub@redhat.com>
3130 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
3131 redirection of calls to __builtin_trap in addition to redirection
3132 to __builtin_unreachable.
3134 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3136 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
3138 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3140 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
3141 (emit_vsetvl_insn): Ditto.
3143 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3145 * config/riscv/vector.md: Fix constraints.
3147 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3149 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
3151 2023-01-27 Patrick Palka <ppalka@redhat.com>
3152 Jakub Jelinek <jakub@redhat.com>
3154 * tree-core.h (tree_code_type, tree_code_length): For
3155 C++17 and later, add inline keyword, otherwise don't define
3156 the arrays, but declare extern arrays.
3157 * tree.cc (tree_code_type, tree_code_length): Define these
3158 arrays for C++14 and older.
3160 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3162 * config/riscv/riscv-vsetvl.h: Change it into public.
3164 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3166 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
3169 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3171 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
3173 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3175 * config/riscv/vector.md: Fix incorrect attributes.
3177 2023-01-27 Richard Biener <rguenther@suse.de>
3180 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
3181 Don't add crtfastmath.o for -shared.
3183 2023-01-27 Alexandre Oliva <oliva@gnu.org>
3185 * doc/options.texi (option, RejectNegative): Mention that
3186 -g-started options are also implicitly negatable.
3188 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
3190 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
3191 Use get_typenode_from_name to get fixed-width integer type
3193 * config/riscv/riscv-vector-builtins.def: Update define with
3194 fixed-width integer type nodes.
3196 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3198 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
3199 (real_insn_and_same_bb_p): New function.
3200 (same_bb_and_after_or_equal_p): Remove it.
3201 (before_p): New function.
3202 (reg_killed_by_bb_p): Ditto.
3203 (has_vsetvl_killed_avl_p): Ditto.
3204 (get_vl): Move location so that we can call it.
3205 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
3206 (available_occurrence_p): Ditto.
3207 (dominate_probability_p): Remove it.
3208 (can_backward_propagate_p): Remove it.
3209 (get_all_nonphi_defs): New function.
3210 (get_all_predecessors): Ditto.
3211 (any_insn_in_bb_p): Ditto.
3212 (insert_vsetvl): Adjust AVL REG.
3213 (source_equal_p): New function.
3214 (extract_single_source): Ditto.
3215 (avl_info::single_source_equal_p): Ditto.
3216 (avl_info::operator==): Adjust for AVL=REG.
3217 (vl_vtype_info::same_avl_p): Ditto.
3218 (vector_insn_info::set_demand_info): Remove it.
3219 (vector_insn_info::compatible_p): Adjust for AVL=REG.
3220 (vector_insn_info::compatible_avl_p): New function.
3221 (vector_insn_info::merge): Adjust AVL=REG.
3222 (vector_insn_info::dump): Ditto.
3223 (pass_vsetvl::merge_successors): Remove it.
3224 (enum fusion_type): New enum.
3225 (pass_vsetvl::get_backward_fusion_type): New function.
3226 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
3227 (pass_vsetvl::forward_demand_fusion): Ditto.
3228 (pass_vsetvl::demand_fusion): Ditto.
3229 (pass_vsetvl::prune_expressions): Ditto.
3230 (pass_vsetvl::compute_local_properties): Ditto.
3231 (pass_vsetvl::cleanup_vsetvls): Ditto.
3232 (pass_vsetvl::commit_vsetvls): Ditto.
3233 (pass_vsetvl::init): Ditto.
3234 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
3235 (enum merge_type): New enum.
3237 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3239 * config/riscv/riscv-vsetvl.cc
3240 (vector_infos_manager::vector_infos_manager): Add probability.
3241 (vector_infos_manager::dump): Ditto.
3242 (pass_vsetvl::compute_probabilities): Ditto.
3243 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
3245 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3247 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
3248 (vector_insn_info::merge): Ditto.
3249 (vector_insn_info::dump): Ditto.
3250 (pass_vsetvl::merge_successors): Ditto.
3251 (pass_vsetvl::backward_demand_fusion): Ditto.
3252 (pass_vsetvl::forward_demand_fusion): Ditto.
3253 (pass_vsetvl::commit_vsetvls): Ditto.
3254 * config/riscv/riscv-vsetvl.h: Ditto.
3256 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3258 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
3261 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3263 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
3265 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3267 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
3268 Add pre-check for redundant flow.
3270 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3272 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
3273 (vector_infos_manager::free_bitmap_vectors): Ditto.
3274 (pass_vsetvl::pre_vsetvl): Adjust codes.
3275 * config/riscv/riscv-vsetvl.h: New function declaration.
3277 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3279 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
3280 (vector_insn_info::set_demand_info): New function.
3281 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
3282 (pass_vsetvl::merge_successors): Ditto.
3283 (pass_vsetvl::compute_global_backward_infos): Ditto.
3284 (pass_vsetvl::backward_demand_fusion): Ditto.
3285 (pass_vsetvl::forward_demand_fusion): Ditto.
3286 (pass_vsetvl::demand_fusion): New function.
3287 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
3288 * config/riscv/riscv-vsetvl.h: New function declaration.
3290 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3292 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
3294 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3296 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
3297 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
3299 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3301 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
3302 (backward_propagate_worthwhile_p): Fix non-worthwhile.
3304 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3306 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
3308 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3310 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
3311 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
3312 (pass_vsetvl::commit_vsetvls): Ditto.
3313 * config/riscv/riscv-vsetvl.h: New function declaration.
3315 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3317 * config/riscv/vector.md:
3319 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3321 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
3323 * config/riscv/riscv-vector-builtins.cc
3324 (function_expander::add_mem_operand): Refine function.
3325 (function_expander::use_contiguous_load_insn): Adjust new
3327 (function_expander::use_contiguous_store_insn): Ditto.
3328 * config/riscv/riscv-vector-builtins.h: Refine function.
3329 * config/riscv/vector.md (@pred_store<mode>): New pattern.
3331 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3333 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
3335 2023-01-26 Marek Polacek <polacek@redhat.com>
3337 PR middle-end/108543
3338 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
3339 if it was previously set.
3341 2023-01-26 Jakub Jelinek <jakub@redhat.com>
3343 PR tree-optimization/108540
3344 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
3345 are singletons, use range_true even if op1 != op2
3346 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
3347 even if intersection of the ranges is empty and one has
3348 zero low bound and another zero high bound, use range_true_and_false
3349 rather than range_false.
3350 (foperator_not_equal::fold_range): If both op1 and op2
3351 are singletons, use range_false even if op1 != op2
3352 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
3353 even if intersection of the ranges is empty and one has
3354 zero low bound and another zero high bound, use range_true_and_false
3355 rather than range_true.
3357 2023-01-26 Jakub Jelinek <jakub@redhat.com>
3359 * value-relation.cc (kind_string): Add const.
3360 (rr_negate_table, rr_swap_table, rr_intersect_table,
3361 rr_union_table, rr_transitive_table): Add static const, change
3362 element type from relation_kind to unsigned char.
3363 (relation_negate, relation_swap, relation_intersect, relation_union,
3364 relation_transitive): Cast rr_*_table element to relation_kind.
3365 (relation_to_code): Add static const.
3366 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
3368 2023-01-26 Richard Biener <rguenther@suse.de>
3370 PR tree-optimization/108547
3371 * gimple-predicate-analysis.cc (value_sat_pred_p):
3374 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
3376 PR tree-optimization/108522
3377 * tree-object-size.cc (compute_object_offset): Make EXPR
3378 argument non-const. Call component_ref_field_offset.
3380 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3382 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
3383 FEATURE_STRING field.
3385 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
3387 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
3389 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
3393 * gcc.cc: Provide default specs for Modula-2 so that when the
3394 language is not built-in better diagnostics are emitted for
3395 attempts to use .mod or .m2i file extensions.
3397 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
3399 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
3401 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
3403 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
3405 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
3407 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
3410 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
3412 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
3414 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
3416 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
3418 2023-01-25 Richard Biener <rguenther@suse.de>
3420 PR tree-optimization/108523
3421 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
3422 backedge value for the result when using predication to
3425 2023-01-25 Richard Biener <rguenther@suse.de>
3427 * doc/lto.texi (Command line options): Reword and update reference
3428 to removed lto_read_all_file_options.
3430 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
3432 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
3435 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
3437 * doc/contrib.texi: Add Jose E. Marchesi.
3439 2023-01-25 Jakub Jelinek <jakub@redhat.com>
3441 PR tree-optimization/108498
3442 * gimple-ssa-store-merging.cc (class store_operand_info):
3443 End coment with full stop rather than comma.
3444 (split_group): Likewise.
3445 (merged_store_group::apply_stores): Clear string_concatenation if
3446 start or end aren't on a byte boundary.
3448 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
3449 Jakub Jelinek <jakub@redhat.com>
3451 PR tree-optimization/108522
3452 * tree-object-size.cc (compute_object_offset): Use
3453 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
3455 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3457 * config/xtensa/xtensa.md:
3458 Fix exit from loops detecting references before overwriting in the
3461 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
3463 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
3464 do elimination but only for hard register.
3465 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
3466 calls of get_hard_regno.
3468 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
3470 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
3473 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
3476 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
3477 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
3480 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
3482 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
3483 and only include 'csky/t-csky-linux' when enable multilib.
3484 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
3485 define it when disable multilib.
3487 2023-01-24 Richard Biener <rguenther@suse.de>
3489 PR tree-optimization/108500
3490 * dominance.h (calculate_dominance_info): Add parameter
3491 to indicate fast-query compute, defaulted to true.
3492 * dominance.cc (calculate_dominance_info): Honor
3493 fast-query compute parameter.
3494 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
3495 not compute the dominator fast-query DFS numbers.
3497 2023-01-24 Eric Biggers <ebiggers@google.com>
3500 * optc-save-gen.awk: Fix copy-and-paste error.
3502 2023-01-24 Jakub Jelinek <jakub@redhat.com>
3505 * cgraphbuild.cc: Include gimplify.h.
3506 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
3507 their corresponding DECL_VALUE_EXPR expressions after unsharing.
3509 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3512 * config.gcc (tm_file): Move the variable out of loop.
3514 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
3515 Yang Yujie <yangyujie@loongson.cn>
3518 * config/loongarch/loongarch.cc (loongarch_classify_address):
3519 Add precessint for CONST_INT.
3520 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
3521 (loongarch_print_operand): Increase the processing of '%c'.
3522 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
3523 And port the public operand modifiers information to this document.
3525 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3527 * doc/invoke.texi (-mbranch-protection): Update documentation.
3529 2023-01-23 Richard Biener <rguenther@suse.de>
3532 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
3534 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
3535 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
3536 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
3537 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
3539 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3541 * config/arm/aout.h (ra_auth_code): Add entry in enum.
3542 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
3543 to dwarf frame expression.
3544 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
3545 (arm_expand_prologue): Update frame related information and reg notes
3546 for pac/pacbit insn.
3547 (arm_regno_class): Check for pac pseudo reigster.
3548 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
3549 (arm_init_machine_status): Set pacspval_needed to zero.
3550 (arm_debugger_regno): Check for PAC register.
3551 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
3553 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
3554 (arm_unwind_emit): Update REG_CFA_REGISTER case._
3555 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
3556 (DWARF_PAC_REGNUM): Define.
3557 (IS_PAC_REGNUM): Likewise.
3558 (enum reg_class): Add PAC_REG entry.
3559 (machine_function): Add pacbti_needed state to structure.
3560 * config/arm/arm.md (RA_AUTH_CODE): Define.
3562 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3564 * config.gcc ($tm_file): Update variable.
3565 * config/arm/arm-mlib.h: Create new header file.
3566 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
3567 multilib arch directory.
3568 (MULTILIB_REUSE): Add multilib reuse rules.
3569 (MULTILIB_MATCHES): Add multilib match rules.
3571 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3573 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
3574 * config/arm/arm-tables.opt: Regenerate.
3575 * config/arm/arm-tune.md: Likewise.
3576 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
3577 * (-mfix-cmse-cve-2021-35465): Likewise.
3579 2023-01-23 Richard Biener <rguenther@suse.de>
3581 PR tree-optimization/108482
3582 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
3583 .LOOP_DIST_ALIAS calls.
3585 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3587 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
3588 * config/arm/arm-protos.h: Update.
3589 * config/arm/aarch-common-protos.h: Declare
3590 'aarch_bti_arch_check'.
3591 * config/arm/arm.cc (aarch_bti_enabled) Update.
3592 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
3593 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
3594 * config/arm/arm.md (bti_nop): New insn.
3595 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
3596 (aarch-bti-insert.o): New target.
3597 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
3598 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
3600 (gate): Make use of 'aarch_bti_arch_check'.
3601 * config/arm/arm-passes.def: New file.
3602 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
3604 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3606 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
3607 'aarch-bti-insert.o'.
3608 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
3610 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
3611 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
3612 (aarch64_output_mi_thunk)
3613 (aarch64_print_patchable_function_entry)
3614 (aarch64_file_end_indicate_exec_stack): Update renamed function
3615 calls to renamed functions.
3616 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
3617 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
3619 * config/aarch64/aarch64-bti-insert.cc: Delete.
3620 * config/arm/aarch-bti-insert.cc: New file including and
3621 generalizing code from aarch64-bti-insert.cc.
3622 * config/arm/aarch-common-protos.h: Update.
3624 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3626 * config/arm/arm.h (arm_arch8m_main): Declare it.
3627 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
3629 * config/arm/arm.cc (arm_arch8m_main): Define it.
3630 (arm_option_reconfigure_globals): Set arm_arch8m_main.
3631 (arm_compute_frame_layout, arm_expand_prologue)
3632 (thumb2_expand_return, arm_expand_epilogue)
3633 (arm_conditional_register_usage): Update for pac codegen.
3634 (arm_current_function_pac_enabled_p): New function.
3635 (aarch_bti_enabled) New function.
3636 (use_return_insn): Return zero when pac is enabled.
3637 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
3639 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
3640 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
3642 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3644 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
3647 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3648 Tejas Belagod <tbelagod@arm.com>
3650 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
3651 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
3653 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3654 Tejas Belagod <tbelagod@arm.com>
3655 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3657 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
3658 new pseudo register class _UVRSC_PAC.
3660 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3661 Tejas Belagod <tbelagod@arm.com>
3663 * config/arm/arm-c.cc (arm_cpu_builtins): Define
3664 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
3665 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
3667 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3668 Tejas Belagod <tbelagod@arm.com>
3670 * doc/sourcebuild.texi: Document arm_pacbti_hw.
3672 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3673 Tejas Belagod <tbelagod@arm.com>
3674 Richard Earnshaw <Richard.Earnshaw@arm.com>
3676 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
3677 -mbranch-protection option and initialize appropriate data structures.
3678 * config/arm/arm.opt (-mbranch-protection): New option.
3679 * doc/invoke.texi (Arm Options): Document it.
3681 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3682 Tejas Belagod <tbelagod@arm.com>
3684 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
3685 * config/arm/arm-cpus.in (pacbti): New feature.
3686 * doc/invoke.texi (Arm Options): Document it.
3688 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
3689 Tejas Belagod <tbelagod@arm.com>
3691 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
3692 (all_architectures): Fix comment.
3693 (aarch64_parse_extension): Rename return type, enum value names.
3694 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
3695 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
3696 Also rename corresponding enum values.
3697 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
3698 out aarch64_function_type and move it to common code as
3699 aarch_function_type in aarch-common.h.
3700 * config/aarch64/aarch64-protos.h: Include common types header,
3701 move out types aarch64_parse_opt_result and aarch64_key_type to
3703 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
3704 and functions out into aarch-common.h and aarch-common.cc. Fix up
3705 all the name changes resulting from the move.
3706 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
3708 * config/aarch64/aarch64.opt: Include aarch-common.h to import
3709 type move. Fix up name changes from factoring out common code and
3711 * config/arm/aarch-common-protos.h: Export factored out routines to both
3713 * config/arm/aarch-common.cc: Include newly factored out types.
3714 Move all mbranch-protection code and data structures from
3716 * config/arm/aarch-common.h: New header that declares types shared
3717 between aarch32 and aarch64 backends.
3718 * config/arm/arm-protos.h: Declare types and variables that are
3719 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
3720 aarch_ra_sign_scope and aarch_enable_bti.
3721 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
3722 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
3723 * config/arm/arm.cc: Add missing includes.
3725 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
3727 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
3729 2023-01-23 Richard Biener <rguenther@suse.de>
3731 PR tree-optimization/108449
3732 * cgraphunit.cc (check_global_declaration): Do not turn
3733 undefined statics into externs.
3735 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
3737 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
3739 * config/pru/pru.md (clz): Fix generated code for QI and HI
3742 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
3744 * config/v850/v850.cc (v850_select_section): Put const volatile
3745 objects into read-only sections.
3747 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
3749 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
3750 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
3751 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
3753 2023-01-20 Jakub Jelinek <jakub@redhat.com>
3755 PR tree-optimization/108457
3756 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
3757 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
3758 argument instead of a temporary. Formatting fixes.
3760 2023-01-19 Jakub Jelinek <jakub@redhat.com>
3762 PR tree-optimization/108447
3763 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
3764 (relation_tests): Add self-tests for relation_{intersect,union}
3766 * selftest.h (relation_tests): Declare.
3767 * function-tests.cc (test_ranges): Call it.
3769 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
3772 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
3773 invalid third argument to __builtin_ia32_prefetch.
3775 2023-01-19 Jakub Jelinek <jakub@redhat.com>
3777 PR middle-end/108459
3778 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
3779 than fold_unary for NEGATE_EXPR.
3781 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
3784 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
3785 comment. Move assert about alignment a bit later.
3787 2023-01-19 Jakub Jelinek <jakub@redhat.com>
3789 PR tree-optimization/108440
3790 * tree-ssa-forwprop.cc: Include gimple-range.h.
3791 (simplify_rotate): For the forms with T2 wider than T and shift counts of
3792 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
3793 to B. For the forms with T2 wider than T and shift counts of
3794 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
3795 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
3796 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
3797 pass specific ranger instead of get_global_range_query.
3798 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
3801 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3803 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
3804 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
3806 (aarch64_simd_vec_copy_lane<mode>): Likewise.
3807 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
3809 2023-01-19 Alexandre Oliva <oliva@adacore.com>
3812 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
3815 2023-01-18 Martin Jambor <mjambor@suse.cz>
3818 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
3819 lcone_of chain also do not need the body.
3821 2023-01-18 Richard Biener <rguenther@suse.de>
3824 2022-12-16 Richard Biener <rguenther@suse.de>
3826 PR middle-end/108086
3827 * tree-inline.cc (remap_ssa_name): Do not unshare the
3828 result from the decl_map.
3830 2023-01-18 Murray Steele <murray.steele@arm.com>
3833 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
3835 (__arm_vst1q_p_s8): Likewise.
3836 (__arm_vld1q_z_u8): Likewise.
3837 (__arm_vld1q_z_s8): Likewise.
3838 (__arm_vst1q_p_u16): Likewise.
3839 (__arm_vst1q_p_s16): Likewise.
3840 (__arm_vld1q_z_u16): Likewise.
3841 (__arm_vld1q_z_s16): Likewise.
3842 (__arm_vst1q_p_u32): Likewise.
3843 (__arm_vst1q_p_s32): Likewise.
3844 (__arm_vld1q_z_u32): Likewise.
3845 (__arm_vld1q_z_s32): Likewise.
3846 (__arm_vld1q_z_f16): Likewise.
3847 (__arm_vst1q_p_f16): Likewise.
3848 (__arm_vld1q_z_f32): Likewise.
3849 (__arm_vst1q_p_f32): Likewise.
3851 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3853 * config/xtensa/xtensa.md (xorsi3_internal):
3854 Rename from the original of "xorsi3".
3855 (xorsi3): New expansion pattern that emits addition rather than
3856 bitwise-XOR when the second source is a constant of -2147483648
3859 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
3860 Andrew Pinski <apinski@marvell.com>
3863 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
3864 vec_vsubcuqP with vec_vsubcuq.
3866 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
3869 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
3870 support for invalid uses of MMA opaque type in function arguments.
3872 2023-01-18 liuhongt <hongtao.liu@intel.com>
3875 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
3876 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
3877 -share or -mno-daz-ftz is specified.
3878 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
3879 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
3881 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
3883 * config/bpf/bpf.cc (bpf_option_override): Disable
3886 2023-01-17 Jakub Jelinek <jakub@redhat.com>
3888 PR tree-optimization/106523
3889 * tree-ssa-forwprop.cc (simplify_rotate): For the
3890 patterns with (-Y) & (B - 1) in one operand's shift
3891 count and Y in another, if T2 has wider precision than T,
3892 punt if Y could have a value in [B, B2 - 1] range.
3894 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
3897 * config/i386/i386.cc (x86_output_mi_thunk): Disable
3898 -mforce-indirect-call for PIC in 32-bit mode.
3900 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
3903 * ipa-modref.cc (modref_access_analysis::analyze): Use
3904 find_always_executed_bbs.
3905 * ipa-sra.cc (process_scan_results): Likewise.
3906 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
3907 (find_always_executed_bbs): New function.
3908 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
3909 (find_always_executed_bbs): Declare.
3911 2023-01-16 Jan Hubicka <jh@suse.cz>
3913 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
3914 by TARGET_USE_SCATTER.
3915 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
3916 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
3917 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
3918 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
3919 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
3920 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
3922 2023-01-16 Richard Biener <rguenther@suse.de>
3925 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
3927 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
3931 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
3932 (__ARM_mve_coerce3): Likewise.
3934 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
3936 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
3938 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
3940 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
3941 (number_of_iterations_bitcount): Add call to the above.
3942 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
3943 c[lt]z idiom recognition.
3945 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
3947 * doc/sourcebuild.texi: Add missing target attributes.
3949 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
3951 PR tree-optimization/94793
3952 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
3954 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
3955 (number_of_iterations_cltz_complement): New.
3956 (number_of_iterations_bitcount): Add call to the above.
3958 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
3960 * doc/extend.texi (Common Function Attributes): Fix grammar.
3962 2023-01-16 Jakub Jelinek <jakub@redhat.com>
3965 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
3966 * config/riscv/riscv-vsetvl.cc: Likewise.
3968 2023-01-16 Jakub Jelinek <jakub@redhat.com>
3971 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
3972 disable -Winit-self using pragma GCC diagnostic ignored.
3973 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
3975 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
3976 _mm256_undefined_si256): Likewise.
3977 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
3978 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
3979 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
3980 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
3982 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
3985 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
3986 support for invalid uses in inline asm, factor out the checking and
3987 erroring to lambda function check_and_error_invalid_use.
3989 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
3991 PR tree-optimization/107608
3992 * range-op-float.cc (range_operator_float::fold_range): Avoid
3993 folding into INF when flag_trapping_math.
3994 * value-range.h (frange::known_isinf): Return false for possible NANs.
3996 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
3998 * config.gcc (csky-*-*): Support --with-float=softfp.
4000 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4002 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
4003 Rename to xtensa_adjust_reg_alloc_order.
4004 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
4005 Ditto. And also remove code to reorder register numbers for
4006 leaf functions, rename the tables, and adjust the allocation
4007 order for the call0 ABI to use register A0 more.
4008 (xtensa_leaf_regs): Remove.
4009 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
4010 (order_regs_for_local_alloc): Rename as the above.
4011 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
4013 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4015 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
4016 Change to define_insn_and_split to fold ldr+dup to ld1rq.
4017 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
4019 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4021 * hash-table.h (is_deleted): Precheck !is_empty.
4022 (mark_deleted): Postcheck !is_empty.
4023 (copy constructor): Test is_empty before is_deleted.
4025 2023-01-14 Alexandre Oliva <oliva@adacore.com>
4028 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
4031 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
4033 PR rtl-optimization/108274
4034 * function.cc (thread_prologue_and_epilogue_insns): Also update the
4035 DF information for calls in a few more cases.
4037 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
4039 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
4040 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
4042 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
4043 (MAX_SYNC_LIBFUNC_SIZE): Define.
4044 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
4046 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
4047 libcall when sync libcalls are disabled.
4048 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
4049 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
4050 are disabled on 32-bit target.
4051 * config/pa/pa.opt (matomic-libcalls): New option.
4052 * doc/invoke.texi (HPPA Options): Update.
4054 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
4056 PR rtl-optimization/108117
4057 PR rtl-optimization/108132
4058 * sched-deps.cc (deps_analyze_insn): Do not schedule across
4059 calls before reload.
4061 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4063 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
4064 options for -mlibarch.
4065 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
4066 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
4068 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
4070 * attribs.cc (strict_flex_array_level_of): Move this function to ...
4071 * attribs.h (strict_flex_array_level_of): Remove the declaration.
4072 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
4073 replace the referece to strict_flex_array_level_of with
4075 * tree.cc (component_ref_size): Likewise.
4077 2023-01-13 Richard Biener <rguenther@suse.de>
4080 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
4081 crtfastmath.o for -shared.
4082 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
4084 2023-01-13 Richard Biener <rguenther@suse.de>
4087 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
4088 crtfastmath.o for -shared.
4089 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
4091 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
4094 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
4096 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
4098 (TARGET_DWARF_FRAME_REG_MODE): Define.
4100 2023-01-13 Richard Biener <rguenther@suse.de>
4103 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
4104 update EH info on the fly.
4106 2023-01-13 Richard Biener <rguenther@suse.de>
4108 PR tree-optimization/108387
4109 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
4110 value before inserting expression into the tables.
4112 2023-01-12 Andrew Pinski <apinski@marvell.com>
4113 Roger Sayle <roger@nextmovesoftware.com>
4115 PR tree-optimization/92342
4116 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
4117 Use tcc_comparison and :c for the multiply.
4118 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
4120 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4121 Richard Sandiford <richard.sandiford@arm.com>
4124 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
4125 Check DECL_PACKED for bitfield.
4126 (aarch64_layout_arg): Warn when parameter passing ABI changes.
4127 (aarch64_function_arg_boundary): Do not warn here.
4128 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
4131 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
4132 Richard Sandiford <richard.sandiford@arm.com>
4134 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
4136 (aarch64_layout_arg): Factorize warning conditions.
4137 (aarch64_function_arg_boundary): Fix typo.
4138 * function.cc (currently_expanding_function_start): New variable.
4139 (expand_function_start): Handle
4140 currently_expanding_function_start.
4141 * function.h (currently_expanding_function_start): Declare.
4143 2023-01-12 Richard Biener <rguenther@suse.de>
4145 PR tree-optimization/99412
4146 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
4147 (swap_ops_for_binary_stmt): Remove reduction handling.
4148 (rewrite_expr_tree_parallel): Adjust.
4149 (reassociate_bb): Likewise.
4150 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
4152 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4154 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
4155 Rearrange the emitting codes.
4157 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4159 * config/xtensa/xtensa.md (*btrue):
4160 Correct value of the attribute "length" that depends on
4161 TARGET_DENSITY and operands, and add '?' character to the register
4162 constraint of the compared operand.
4164 2023-01-12 Alexandre Oliva <oliva@adacore.com>
4166 * hash-table.h (expand): Check elements and deleted counts.
4169 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
4171 PR tree-optimization/71343
4172 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
4173 the value number of the expression X << C the same as the value
4174 number for the multiplication X * (1<<C).
4176 2023-01-11 David Faust <david.faust@oracle.com>
4179 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
4180 floating point modes.
4182 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
4184 PR tree-optimization/108199
4185 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
4186 for bit-field references.
4188 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
4190 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
4191 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
4192 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
4193 OPTION_MASK_P10_FUSION.
4195 2023-01-11 Richard Biener <rguenther@suse.de>
4197 PR tree-optimization/107767
4198 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
4199 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
4200 * tree-switch-conversion.cc (switch_conversion::collect):
4201 Count unique non-default targets accounting for later
4202 merging opportunities.
4204 2023-01-11 Martin Liska <mliska@suse.cz>
4206 PR middle-end/107976
4207 * params.opt: Limit JT params.
4208 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
4210 2023-01-11 Richard Biener <rguenther@suse.de>
4212 PR tree-optimization/108352
4213 * tree-ssa-threadbackward.cc
4214 (back_threader_profitability::profitable_path_p): Adjust
4215 heuristic that allows non-multi-way branch threads creating
4217 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
4218 (--param fsm-scale-path-stmts): Adjust.
4219 * params.opt (--param=fsm-scale-path-blocks=): Remove.
4220 (-param=fsm-scale-path-stmts=): Adjust description.
4222 2023-01-11 Richard Biener <rguenther@suse.de>
4224 PR tree-optimization/108353
4225 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
4227 (add_ssa_edge): Simplify.
4228 (add_control_edge): Likewise.
4229 (ssa_prop_init): Likewise.
4230 (ssa_prop_fini): Likewise.
4231 (ssa_propagation_engine::ssa_propagate): Likewise.
4233 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
4235 * config/s390/s390.md (*not<mode>): New pattern.
4237 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4239 * config/xtensa/xtensa.cc (xtensa_insn_cost):
4240 Let insn cost for size be obtained by applying COSTS_N_INSNS()
4241 to instruction length and then dividing by 3.
4243 2023-01-10 Richard Biener <rguenther@suse.de>
4245 PR tree-optimization/106293
4246 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
4247 process degenerate PHI defs.
4249 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
4251 PR rtl-optimization/106421
4252 * cprop.cc (bypass_block): Check that DEST is local to this
4253 function (non-NULL) before calling find_edge.
4255 2023-01-10 Martin Jambor <mjambor@suse.cz>
4258 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
4259 sort_replacements, lookup_first_base_replacement and
4260 m_sorted_replacements_p.
4261 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
4262 (ipa_param_body_adjustments::register_replacement): Set
4263 m_sorted_replacements_p to false.
4264 (compare_param_body_replacement): New function.
4265 (ipa_param_body_adjustments::sort_replacements): Likewise.
4266 (ipa_param_body_adjustments::common_initialization): Call
4268 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
4269 m_sorted_replacements_p.
4270 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
4272 (ipa_param_body_adjustments::lookup_first_base_replacement): New
4274 (ipa_param_body_adjustments::modify_call_stmt): Use
4275 lookup_first_base_replacement.
4276 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
4277 adjustments->sort_replacements.
4279 2023-01-10 Richard Biener <rguenther@suse.de>
4281 PR tree-optimization/108314
4282 * tree-vect-stmts.cc (vectorizable_condition): Do not
4283 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
4285 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4287 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
4289 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4291 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
4293 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4295 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
4296 defines for soft float abi.
4298 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4300 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
4301 (smart_bclri): Likewise.
4302 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
4303 (fast_bclri): Likewise.
4304 (fast_cmpnesi_i): Likewise.
4305 (*fast_cmpltsi_i): Likewise.
4306 (*fast_cmpgeusi_i): Likewise.
4308 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
4310 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
4311 flag_fp_int_builtin_inexact || !flag_trapping_math.
4312 (<frm_pattern><mode>2): Likewise.
4314 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
4316 * config/s390/s390.cc (s390_register_info): Check call_used_regs
4317 instead of hard-coding the register numbers for call saved
4319 (s390_optimize_register_info): Likewise.
4321 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
4323 * doc/gm2.texi (Overview): Fix @node markers.
4324 (Using): Likewise. Remove subsections that were moved to Overview
4325 from the menu and move others around.
4327 2023-01-09 Richard Biener <rguenther@suse.de>
4329 PR middle-end/108209
4330 * genmatch.cc (commutative_op): Fix return value for
4331 user-id with non-commutative first replacement.
4333 2023-01-09 Jakub Jelinek <jakub@redhat.com>
4336 * calls.cc (expand_call): For calls with
4337 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
4340 2023-01-09 Richard Biener <rguenther@suse.de>
4343 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
4344 qualified accesses also force objects to memory.
4346 2023-01-09 Martin Liska <mliska@suse.cz>
4349 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
4350 NULL (deleleted value) to a hash_set.
4352 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4354 * config/xtensa/xtensa.md (*splice_bits):
4355 New insn_and_split pattern.
4357 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4359 * config/xtensa/xtensa.cc
4360 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
4361 New helper functions.
4362 (xtensa_set_return_address, xtensa_output_mi_thunk):
4363 Change to use the helper function.
4364 (xtensa_emit_adjust_stack_ptr): Ditto.
4365 And also change to try reusing the content of scratch register
4366 A9 if the register is not modified in the function body.
4368 2023-01-07 LIU Hao <lh_mouse@126.com>
4370 PR middle-end/108300
4371 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
4373 * diagnostic-color.cc: Likewise.
4374 * plugin.cc: Likewise.
4375 * prefix.cc: Likewise.
4377 2023-01-06 Joseph Myers <joseph@codesourcery.com>
4379 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
4380 for handling real integer types.
4382 2023-01-06 Tamar Christina <tamar.christina@arm.com>
4385 2022-12-12 Tamar Christina <tamar.christina@arm.com>
4387 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
4388 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
4389 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
4390 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
4391 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
4392 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
4393 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
4394 (aarch64_simd_dupv2hf): New.
4395 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
4397 * config/aarch64/iterators.md (VHSDF_P): New.
4398 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
4399 Vel, q, vp): Add V2HF.
4400 * config/arm/types.md (neon_fp_reduc_add_h): New.
4402 2023-01-06 Martin Liska <mliska@suse.cz>
4404 PR middle-end/107966
4405 * doc/options.texi: Fix Var documentation in internal manual.
4407 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
4410 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
4412 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
4413 RTL expansion to allow condition (mask) to be shared/reused,
4414 by avoiding overwriting pseudos and adding REG_EQUAL notes.
4416 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
4418 * common.opt: Add -static-libgm2.
4419 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
4420 * doc/gm2.texi: Document static-libgm2.
4421 * gcc.cc (driver_handle_option): Allow static-libgm2.
4423 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
4425 * common/config/i386/i386-common.cc (processor_alias_table):
4426 Use CPU_ZNVER4 for znver4.
4427 * config/i386/i386.md: Add znver4.md.
4428 * config/i386/znver4.md: New.
4430 2023-01-04 Jakub Jelinek <jakub@redhat.com>
4432 PR tree-optimization/108253
4433 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
4436 2023-01-04 Jakub Jelinek <jakub@redhat.com>
4438 PR middle-end/108237
4439 * generic-match-head.cc: Include tree-pass.h.
4440 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
4441 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
4442 resp. PROP_gimple_lvec property set.
4444 2023-01-04 Jakub Jelinek <jakub@redhat.com>
4447 * convert.cc (do_narrow): Punt for MULT_EXPR if original
4448 type doesn't wrap around and -fsanitize=signed-integer-overflow
4450 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
4452 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
4454 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
4455 * common/config/i386/i386-common.cc: Add Emeraldrapids.
4457 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
4459 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
4462 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
4464 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
4465 default constructor to initialize it.
4466 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
4467 for last and iterate to handle recursive calls. Delete leftover
4468 candidates at the end.
4469 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
4471 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
4472 gc_candidate bit when a clone is used.
4474 2023-01-03 Florian Weimer <fweimer@redhat.com>
4477 2023-01-02 Florian Weimer <fweimer@redhat.com>
4479 * dwarf2cfi.cc (init_return_column_size): Remove.
4480 (init_one_dwarf_reg_size): Adjust.
4481 (generate_dwarf_reg_sizes): New function. Extracted
4482 from expand_builtin_init_dwarf_reg_sizes.
4483 (expand_builtin_init_dwarf_reg_sizes): Call
4484 generate_dwarf_reg_sizes.
4485 * target.def (init_dwarf_reg_sizes_extra): Adjust
4487 * config/msp430/msp430.cc
4488 (msp430_init_dwarf_reg_sizes_extra): Adjust.
4489 * config/rs6000/rs6000.cc
4490 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
4491 * doc/tm.texi: Update.
4493 2023-01-03 Florian Weimer <fweimer@redhat.com>
4496 2023-01-02 Florian Weimer <fweimer@redhat.com>
4498 * debug.h (dwarf_reg_sizes_constant): Declare.
4499 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
4501 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
4503 PR tree-optimization/105043
4504 * doc/extend.texi (Object Size Checking): Split out into two
4505 subsections and mention _FORTIFY_SOURCE.
4507 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
4509 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
4510 RTL expansion to allow condition (mask) to be shared/reused,
4511 by avoiding overwriting pseudos and adding REG_EQUAL notes.
4513 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
4516 * config/i386/i386-features.cc
4517 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
4518 the gain/cost of converting a MEM operand.
4520 2023-01-03 Jakub Jelinek <jakub@redhat.com>
4522 PR middle-end/108264
4523 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
4524 from source which doesn't have scalar integral mode first convert
4527 2023-01-03 Jakub Jelinek <jakub@redhat.com>
4529 PR rtl-optimization/108263
4530 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
4533 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
4536 * config/i386/lujiazui.md (lujiazui_div): New automaton.
4537 (lua_div): New unit.
4538 (lua_idiv_qi): Correct unit in the reservation.
4539 (lua_idiv_qi_load): Ditto.
4540 (lua_idiv_hi): Ditto.
4541 (lua_idiv_hi_load): Ditto.
4542 (lua_idiv_si): Ditto.
4543 (lua_idiv_si_load): Ditto.
4544 (lua_idiv_di): Ditto.
4545 (lua_idiv_di_load): Ditto.
4546 (lua_fdiv_SF): Ditto.
4547 (lua_fdiv_SF_load): Ditto.
4548 (lua_fdiv_DF): Ditto.
4549 (lua_fdiv_DF_load): Ditto.
4550 (lua_fdiv_XF): Ditto.
4551 (lua_fdiv_XF_load): Ditto.
4552 (lua_ssediv_SF): Ditto.
4553 (lua_ssediv_load_SF): Ditto.
4554 (lua_ssediv_V4SF): Ditto.
4555 (lua_ssediv_load_V4SF): Ditto.
4556 (lua_ssediv_V8SF): Ditto.
4557 (lua_ssediv_load_V8SF): Ditto.
4558 (lua_ssediv_SD): Ditto.
4559 (lua_ssediv_load_SD): Ditto.
4560 (lua_ssediv_V2DF): Ditto.
4561 (lua_ssediv_load_V2DF): Ditto.
4562 (lua_ssediv_V4DF): Ditto.
4563 (lua_ssediv_load_V4DF): Ditto.
4565 2023-01-02 Florian Weimer <fweimer@redhat.com>
4567 * debug.h (dwarf_reg_sizes_constant): Declare.
4568 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
4570 2023-01-02 Florian Weimer <fweimer@redhat.com>
4572 * dwarf2cfi.cc (init_return_column_size): Remove.
4573 (init_one_dwarf_reg_size): Adjust.
4574 (generate_dwarf_reg_sizes): New function. Extracted
4575 from expand_builtin_init_dwarf_reg_sizes.
4576 (expand_builtin_init_dwarf_reg_sizes): Call
4577 generate_dwarf_reg_sizes.
4578 * target.def (init_dwarf_reg_sizes_extra): Adjust
4580 * config/msp430/msp430.cc
4581 (msp430_init_dwarf_reg_sizes_extra): Adjust.
4582 * config/rs6000/rs6000.cc
4583 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
4584 * doc/tm.texi: Update.
4586 2023-01-02 Jakub Jelinek <jakub@redhat.com>
4588 * gcc.cc (process_command): Update copyright notice dates.
4589 * gcov-dump.cc (print_version): Ditto.
4590 * gcov.cc (print_version): Ditto.
4591 * gcov-tool.cc (print_version): Ditto.
4592 * gengtype.cc (create_file): Ditto.
4593 * doc/cpp.texi: Bump @copying's copyright year.
4594 * doc/cppinternals.texi: Ditto.
4595 * doc/gcc.texi: Ditto.
4596 * doc/gccint.texi: Ditto.
4597 * doc/gcov.texi: Ditto.
4598 * doc/install.texi: Ditto.
4599 * doc/invoke.texi: Ditto.
4601 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
4602 Uroš Bizjak <ubizjak@gmail.com>
4604 * config/i386/i386.md (extendditi2): New define_insn.
4605 (define_split): Use DWIH mode iterator to treat new extendditi2
4606 identically to existing extendsidi2_1.
4607 (define_peephole2): Likewise.
4608 (define_peephole2): Likewise.
4609 (define_Split): Likewise.
4612 Copyright (C) 2023 Free Software Foundation, Inc.
4614 Copying and distribution of this file, with or without modification,
4615 are permitted in any medium without royalty provided the copyright
4616 notice and this notice are preserved.