1 2023-04-05 Jeff Law <jlaw@ventanamicro>
4 * combine.cc (combine_instructions): Force re-recognition when
5 after restoring the body of an insn to its original form.
7 2023-04-05 Martin Jambor <mjambor@suse.cz>
10 * ipa-sra.cc (zap_useless_ipcp_results): New function.
11 (process_isra_node_results): Call it.
13 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
15 * config/riscv/vector.md: Fix incorrect operand order.
17 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
19 * config/riscv/riscv-vsetvl.cc
20 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
23 2023-04-05 Li Xu <xuli1@eswincomputing.com>
25 * config/riscv/riscv-vector-builtins.def: Fix typo.
26 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
27 * config/riscv/vector-iterators.md: Ditto.
29 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
31 * doc/md.texi (Including Patterns): Fix page break.
33 2023-04-04 Jakub Jelinek <jakub@redhat.com>
35 PR tree-optimization/109386
36 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
37 foperator_le::op1_range, foperator_le::op2_range,
38 foperator_gt::op1_range, foperator_gt::op2_range,
39 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
40 BRS_FALSE case even if the other op is maybe_isnan, not just
42 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
43 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
44 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
45 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
46 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
49 2023-04-04 Marek Polacek <polacek@redhat.com>
52 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
54 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
56 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
58 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
59 (mve_vcreateq_f<mode>): Swap operands.
61 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
63 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
65 2023-04-04 Jakub Jelinek <jakub@redhat.com>
68 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
69 Reword diagnostics about zfinx conflict with f, formatting fixes.
71 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
73 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
75 2023-04-04 Richard Biener <rguenther@suse.de>
77 PR tree-optimization/109304
78 * tree-profile.cc (tree_profiling): Use symtab node
79 availability to decide whether to skip adjusting calls.
80 Do not adjust calls to internal functions.
82 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
85 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
86 function for permutation control vector by considering big endianness.
88 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
91 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
92 (rs6000_vprtyb<mode>2): ... this.
93 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
95 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
96 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
97 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
98 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
100 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
101 Sandra Loosemore <sandra@codesourcery.com>
103 * doc/md.texi (Insn Splitting): Tweak wording for readability.
105 2023-04-03 Martin Jambor <mjambor@suse.cz>
108 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
109 offset + size will be representable in unsigned int.
111 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
113 * configure.ac (ZSTD_LIB): Move before zstd.h check.
114 Unset gcc_cv_header_zstd_h without libzstd.
115 * configure: Regenerate.
117 2023-04-03 Martin Liska <mliska@suse.cz>
119 * doc/invoke.texi: Document new param.
121 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
123 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
124 new check_effective_target function.
126 2023-04-03 Li Xu <xuli1@eswincomputing.com>
128 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
129 (vfloat32m8_t): Likewise
131 2023-04-03 liuhongt <hongtao.liu@intel.com>
133 * doc/md.texi: Document signbitm2.
135 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
136 kito-cheng <kito.cheng@sifive.com>
138 * config/riscv/vector.md: Fix RA constraint.
140 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
142 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
143 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
144 * config/riscv/vector.md: Fix scalar move bug.
146 2023-04-01 Jakub Jelinek <jakub@redhat.com>
148 * range-op-float.cc (foperator_equal::fold_range): If at least
149 one of the op ranges is not singleton and neither is NaN and all
150 4 bounds are zero, return [1, 1].
151 (foperator_not_equal::fold_range): In the same case return [0, 0].
153 2023-04-01 Jakub Jelinek <jakub@redhat.com>
155 * range-op-float.cc (foperator_equal::fold_range): Perform the
156 non-singleton handling regardless of maybe_isnan (op1, op2).
157 (foperator_not_equal::fold_range): Likewise.
158 (foperator_lt::fold_range, foperator_le::fold_range,
159 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
160 real_* comparison check which results in range_false (type)
161 even if maybe_isnan (op1, op2). Simplify.
162 (foperator_ltgt): New class.
163 (fop_ltgt): New variable.
164 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
167 2023-04-01 Jakub Jelinek <jakub@redhat.com>
170 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
171 returns VOIDmode, handle it like if the register isn't used for
172 passing arguments at all.
173 (apply_result_size): If targetm.calls.get_raw_result_mode returns
174 VOIDmode, handle it like if the register isn't used for returning
176 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
177 means to return VOIDmode.
178 * doc/tm.texi: Regenerated.
179 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
180 TARGET_SVE for P0_REGNUM.
181 (aarch64_function_arg_regno_p): Also return true for p0-p3.
182 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
184 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
186 * lra-constraints.cc: (combine_reload_insn): New function.
188 2023-03-31 Jakub Jelinek <jakub@redhat.com>
190 PR tree-optimization/91645
191 * range-op-float.cc (foperator_unordered_lt::fold_range,
192 foperator_unordered_le::fold_range,
193 foperator_unordered_gt::fold_range,
194 foperator_unordered_ge::fold_range,
195 foperator_unordered_equal::fold_range): Call the ordered
196 fold_range on ranges with cleared NaNs.
197 * value-query.cc (range_query::get_tree_range): Handle also
198 COMPARISON_CLASS_P trees.
200 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
201 Andrew Pinski <pinskia@gmail.com>
204 * config/riscv/t-riscv: Add missing dependencies.
206 2023-03-31 liuhongt <hongtao.liu@intel.com>
208 * config/i386/i386.cc (inline_memory_move_cost): Return 100
209 for MASK_REGS when MODE_SIZE > 8.
211 2023-03-31 liuhongt <hongtao.liu@intel.com>
214 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
215 ufloat/ufix to floatuns/fixuns.
216 * config/i386/i386-expand.cc
217 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
219 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
221 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
222 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
224 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
226 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
228 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
229 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
230 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
231 (ufloatv2siv2df2<mask_name>): Renamed to ..
232 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
233 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
235 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
237 (ufix_notruncv2dfv2si2): Renamed to ..
238 (fixuns_notruncv2dfv2si2):.. this.
239 (ufix_notruncv2dfv2si2_mask): Renamed to ..
240 (fixuns_notruncv2dfv2si2_mask): .. this.
241 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
242 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
243 (ufix_truncv2dfv2si2): Renamed to ..
244 (*fixuns_truncv2dfv2si2): .. this.
245 (ufix_truncv2dfv2si2_mask): Renamed to ..
246 (fixuns_truncv2dfv2si2_mask): .. this.
247 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
248 (*fixuns_truncv2dfv2si2_mask_1): .. this.
249 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
250 (fixuns_truncv4dfv4si2<mask_name>): .. this.
251 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
253 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
255 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
256 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
259 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
261 PR tree-optimization/109154
262 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
263 * gimple-range-gori.h (may_recompute_p): Add depth param.
264 * params.opt (ranger-recompute-depth): New param.
266 2023-03-30 Jason Merrill <jason@redhat.com>
270 * cgraph.h: Move reset() from cgraph_node to symtab_node.
271 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
272 remove_from_same_comdat_group.
274 2023-03-30 Richard Biener <rguenther@suse.de>
276 PR tree-optimization/107561
277 * gimple-ssa-warn-access.cc (get_size_range): Add flags
278 argument and pass it on.
279 (check_access): When querying for the size range pass
280 SR_ALLOW_ZERO when the known destination size is zero.
282 2023-03-30 Richard Biener <rguenther@suse.de>
284 PR tree-optimization/109342
285 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
286 overload for edge. When that edge is a backedge use
287 dominated_by_p directly.
289 2023-03-30 liuhongt <hongtao.liu@intel.com>
291 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
292 vpblendd instead of vpblendw for V4SI under avx2.
294 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
296 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
297 for many quick operands, for register-sized modes.
299 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
301 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
304 2023-03-29 Martin Liska <mliska@suse.cz>
307 * configure.ac: Emit a warning for deprecated option
309 * configure: Regenerate.
311 2023-03-29 Richard Biener <rguenther@suse.de>
313 PR tree-optimization/109331
314 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
315 discover a taken edge make sure to cleanup the CFG.
317 2023-03-29 Richard Biener <rguenther@suse.de>
319 PR tree-optimization/109327
320 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
321 already removed stmts when draining to_remove.
323 2023-03-29 Richard Biener <rguenther@suse.de>
326 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
327 so we can re-create the DIE for the type if required.
329 2023-03-29 Jakub Jelinek <jakub@redhat.com>
330 Richard Biener <rguenther@suse.de>
332 PR tree-optimization/109301
333 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
334 properties_provided from PROP_gimple_opt_math to 0.
335 (pass_data_expand_powcabs): Change properties_provided from 0 to
336 PROP_gimple_opt_math.
338 2023-03-29 Richard Biener <rguenther@suse.de>
340 PR tree-optimization/109154
341 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
342 inverted condition specially by inverting at the caller.
343 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
345 2023-03-28 David Malcolm <dmalcolm@redhat.com>
348 * diagnostic-show-locus.cc (column_range::column_range): Factor
349 out assertion conditional into...
350 (column_range::valid_p): ...this new function.
351 (line_corrections::add_hint): Don't attempt to consolidate hints
352 if it would lead to invalid column_range instances.
354 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
357 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
358 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
361 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
363 PR rtl-optimization/109187
364 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
365 subtraction in three-way comparison.
367 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
369 PR tree-optimization/109265
370 PR tree-optimization/109274
371 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
372 not create a relation record is op1 and op2 are the same symbol.
373 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
374 handler for this stmt, but create a new record only if this statement
375 generates a relation based on the ranges.
376 (gori_compute::compute_operand2_range): Ditto.
377 * value-relation.h (value_relation::set_relation): Always create the
378 record that is requested.
380 2023-03-28 Richard Biener <rguenther@suse.de>
382 PR tree-optimization/107087
383 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
384 executable regions to avoid useless work and to better
385 propagate degenerate PHIs.
387 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
389 * config/i386/x-mingw32-utf8: update comments.
391 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
394 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
395 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
397 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
399 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
400 after inlining. Record which decls are loaded from. Fix handling
401 of vops for loads and stores.
402 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
403 (aarch64_accesses_vector_load_decl_p): Likewise.
404 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
406 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
407 that loads from a decl, treat vector stores to those decls as
409 (aarch64_vector_costs::finish_cost): ...and in that case,
410 if the vector code does nothing more than a store, give the
411 prologue a zero cost as well.
413 2023-03-28 Richard Biener <rguenther@suse.de>
416 PR tree-optimization/108129
417 * genmatch.cc (lower_for): For (match ...) delay
418 substituting into the match operator if possible.
419 (dt_operand::gen_gimple_expr): For user_id look at the
420 first substitute for determining how to access operands.
421 (dt_operand::gen_generic_expr): Likewise.
422 (dt_node::gen_kids): Properly sort user_ids according
423 to their substitutes.
424 (dt_node::gen_kids_1): Code-generate user_id matching.
426 2023-03-28 Jakub Jelinek <jakub@redhat.com>
427 Jonathan Wakely <jwakely@redhat.com>
429 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
430 Use subcommand rather than sub-command in function comments.
432 2023-03-28 Jakub Jelinek <jakub@redhat.com>
434 PR tree-optimization/109154
435 * value-range.h (frange::flush_denormals_to_zero): Make it public
437 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
439 * range-op-float.cc (range_operator_float::fold_range): Call
440 flush_denormals_to_zero.
442 2023-03-28 Jakub Jelinek <jakub@redhat.com>
445 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
446 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
448 2023-03-28 Jakub Jelinek <jakub@redhat.com>
450 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
451 as 4th argument to set to avoid clear_nan and union_ calls.
453 2023-03-28 Jakub Jelinek <jakub@redhat.com>
456 * config/i386/i386.cc (assign_386_stack_local): For DImode
457 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
458 align 32 rather than 0 to assign_stack_local.
460 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
463 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
464 on operand #3 to get the final condition code. Use std::swap.
465 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
466 (fucmp<gcond:code>8<P:mode>_vis): Move around.
467 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
468 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
470 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
472 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
475 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
477 * config.host: Pull in i386/x-mingw32-utf8 Makefile
478 fragment and reference utf8rc-mingw32.o explicitly
480 * config/i386/sym-mingw32.cc: prevent name mangling of
482 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
483 depend on manifest file explicitly.
485 2023-03-28 Richard Biener <rguenther@suse.de>
488 2023-03-27 Richard Biener <rguenther@suse.de>
490 PR rtl-optimization/109237
491 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
493 2023-03-28 Richard Biener <rguenther@suse.de>
495 * common.opt (gdwarf): Remove Negative(gdwarf-).
497 2023-03-28 Richard Biener <rguenther@suse.de>
499 * common.opt (gdwarf): Add RejectNegative.
504 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
506 * config/cris/constraints.md ("T"): Correct to
507 define_memory_constraint.
509 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
511 * config/cris/cris.md (BW2): New mode-iterator.
512 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
515 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
517 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
518 for possible eliminable compares.
520 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
522 * config/cris/constraints.md ("R"): Remove unused constraint.
524 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
526 PR gcov-profile/109297
527 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
528 (merge_stream_usage): Likewise.
529 (overlap_usage): Likewise.
531 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
534 * config/riscv/thead.md: Add missing mode specifiers.
536 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
537 Jiangning Liu <jiangning.liu@amperecomputing.com>
538 Manolis Tsamis <manolis.tsamis@vrull.eu>
540 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
542 2023-03-27 Richard Biener <rguenther@suse.de>
544 PR rtl-optimization/109237
545 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
547 2023-03-27 Richard Biener <rguenther@suse.de>
550 * lto-wrapper.cc (run_gcc): Parse alternate debug options
551 as well, they always enable debug.
553 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
556 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
558 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
560 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
563 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
564 than zero when calling vec_sld.
565 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
566 zero when calling vec_sld.
567 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
568 than zero when calling vec_sld.
570 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
572 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
573 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
574 loops are represented and which fields are vectors. Add
575 documentation for OMP_FOR_PRE_BODY field. Document internal
576 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
577 * tree.def (OMP_FOR): Make documentation consistent with the
578 Texinfo manual, to fill some gaps and correct errors.
580 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
583 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
584 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
585 (handle_move_double): Call it before handle_movsi.
586 * config/m68k/m68k-protos.h: Declare it.
588 2023-03-26 Jakub Jelinek <jakub@redhat.com>
590 PR tree-optimization/109230
591 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
593 2023-03-26 Jakub Jelinek <jakub@redhat.com>
596 * predict.cc (compute_function_frequency): Don't call
597 warn_function_cold if function already has cold attribute.
599 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
601 * doc/install.texi: Remove anachronistic note
602 related to languages built and separate source tarballs.
604 2023-03-25 David Malcolm <dmalcolm@redhat.com>
607 * diagnostic-format-sarif.cc (read_until_eof): Delete.
608 (maybe_read_file): Delete.
609 (sarif_builder::maybe_make_artifact_content_object): Use
610 get_source_file_content rather than maybe_read_file.
611 Reject it if it's not valid UTF-8.
612 * input.cc (file_cache_slot::get_full_file_content): New.
613 (get_source_file_content): New.
614 (selftest::check_cpp_valid_utf8_p): New.
615 (selftest::test_cpp_valid_utf8_p): New.
616 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
617 * input.h (get_source_file_content): New prototype.
619 2023-03-24 David Malcolm <dmalcolm@redhat.com>
621 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
623 (Special Functions for Debugging the Analyzer): Convert to a
624 table, and rewrite in places.
625 (Other Debugging Techniques): Add notes on how to compare two
626 different exploded graphs.
628 2023-03-24 David Malcolm <dmalcolm@redhat.com>
631 * json.cc: Update comments to indicate that we now preserve
632 insertion order of keys within objects.
633 (object::print): Traverse keys in insertion order.
634 (object::set): Preserve insertion order of keys.
635 (selftest::test_writing_objects): Add an additional key to verify
636 that we preserve insertion order.
637 * json.h (object::m_keys): New field.
639 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
641 PR tree-optimization/109238
642 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
643 predecessors which this block dominates.
645 2023-03-24 Richard Biener <rguenther@suse.de>
647 PR tree-optimization/106912
648 * tree-profile.cc (tree_profiling): Update stmts only when
649 profiling or testing coverage. Make sure to update calls
650 fntype, stripping 'const' there.
652 2023-03-24 Jakub Jelinek <jakub@redhat.com>
655 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
656 if target == const0_rtx.
658 2023-03-24 Alexandre Oliva <oliva@adacore.com>
660 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
661 Document options and effective targets.
663 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
665 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
668 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
670 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
671 non-earlyclobber alternative.
673 2023-03-23 Andrew Pinski <apinski@marvell.com>
676 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
679 2023-03-23 Richard Biener <rguenther@suse.de>
681 PR tree-optimization/107569
682 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
683 Do not push SSA names with zero uses as available leader.
684 (process_bb): Likewise.
686 2023-03-23 Richard Biener <rguenther@suse.de>
688 PR tree-optimization/109262
689 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
690 combining a piecewise complex load avoid touching loads
691 that throw internally. Use fun, not cfun throughout.
693 2023-03-23 Jakub Jelinek <jakub@redhat.com>
695 * value-range.cc (irange::irange_union, irange::intersect): Fix
696 comment spelling bugs.
697 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
698 * gimple-range-trace.h: Likewise.
699 * gimple-range-edge.cc: Likewise.
700 (gimple_outgoing_range_stmt_p,
701 gimple_outgoing_range::switch_edge_range,
702 gimple_outgoing_range::edge_range_p): Likewise.
703 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
704 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
705 assume_query::assume_query, assume_query::calculate_phi): Likewise.
706 * gimple-range-edge.h: Likewise.
707 * value-range.h (Value_Range::set, Value_Range::lower_bound,
708 Value_Range::upper_bound, frange::set_undefined): Likewise.
709 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
710 gori_compute): Likewise.
711 * gimple-range-fold.h (fold_using_range): Likewise.
712 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
714 * gimple-range-gori.cc (range_def_chain::in_chain_p,
715 range_def_chain::dump, gori_map::calculate_gori,
716 gori_compute::compute_operand_range_switch,
717 gori_compute::logical_combine, gori_compute::refine_using_relation,
718 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
720 * gimple-range.h: Likewise.
721 (enable_ranger): Likewise.
722 * range-op.h (empty_range_varying): Likewise.
723 * value-query.h (value_query): Likewise.
724 * gimple-range-cache.cc (block_range_cache::set_bb_range,
725 block_range_cache::dump, ssa_global_cache::clear_global_range,
726 temporal_cache::temporal_value, temporal_cache::current_p,
727 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
728 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
730 * gimple-range-fold.cc (fur_edge::get_phi_operand,
731 fur_stmt::get_operand, gimple_range_adjustment,
732 fold_using_range::range_of_phi,
733 fold_using_range::relation_fold_and_or): Likewise.
734 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
735 * value-query.cc (range_query::value_of_expr,
736 range_query::value_on_edge, range_query::query_relation): Likewise.
737 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
738 intersect_range_with_nonzero_bits): Likewise.
739 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
740 exit_range): Likewise.
741 * value-relation.h: Likewise.
742 (equiv_oracle, relation_trio::relation_trio, value_relation,
743 value_relation::value_relation, pe_min): Likewise.
744 * range-op-float.cc (range_operator_float::rv_fold,
745 frange_arithmetic, foperator_unordered_equal::op1_range,
746 foperator_div::rv_fold): Likewise.
747 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
748 * value-relation.cc (equiv_oracle::query_relation,
749 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
750 value_relation::apply_transitive, relation_chain_head::find_relation,
751 dom_oracle::query_relation, dom_oracle::find_relation_block,
752 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
753 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
754 create_possibly_reversed_range, adjust_op1_for_overflow,
755 operator_mult::wi_fold, operator_exact_divide::op1_range,
756 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
757 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
758 range_op_lshift_tests): Likewise.
760 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
762 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
763 (move_callee_saved_registers): Detect the bug condition early.
765 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
767 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
768 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
770 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
771 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
772 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
773 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
774 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
776 2023-03-23 Jakub Jelinek <jakub@redhat.com>
778 PR tree-optimization/109176
779 * tree-vect-generic.cc (expand_vector_condition): If a has
780 vector boolean type and is a comparison, also check if both
781 the comparison and VEC_COND_EXPR could be successfully expanded
784 2023-03-23 Pan Li <pan2.li@intel.com>
785 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
789 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
790 for vector mask modes.
791 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
792 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
794 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
796 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
798 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
801 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
802 (emit_vlmax_op): Ditto.
803 * config/riscv/riscv-v.cc (get_sew): New function.
804 (emit_vlmax_vsetvl): Adapt function.
805 (emit_pred_op): Ditto.
806 (emit_vlmax_op): Ditto.
807 (emit_nonvlmax_op): Ditto.
808 (legitimize_move): Fix LRA ICE.
809 (gen_no_side_effects_vsetvl_rtx): Adapt function.
810 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
811 (@mov<VB:mode><P:mode>_lra): Ditto.
812 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
813 (*mov<VB:mode><P:mode>_lra): Ditto.
815 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
818 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
819 __riscv_vlenb support.
821 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
822 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
823 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
825 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
826 * config/riscv/riscv-vector-builtins.cc: Ditto.
828 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
829 kito-cheng <kito.cheng@sifive.com>
831 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
832 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
833 (pass_vsetvl::need_vsetvl): Fix bugs.
834 (pass_vsetvl::backward_demand_fusion): Fix bugs.
835 (pass_vsetvl::demand_fusion): Fix bugs.
836 (eliminate_insn): Fix bugs.
837 (insert_vsetvl): Ditto.
838 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
839 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
840 * config/riscv/vector.md: Ditto.
842 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
843 kito-cheng <kito.cheng@sifive.com>
845 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
846 * config/riscv/vector-iterators.md (nmsac): Ditto.
852 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
853 (@pred_mul_plus<mode>): Ditto.
854 (*pred_madd<mode>): Ditto.
855 (*pred_macc<mode>): Ditto.
856 (*pred_mul_plus<mode>): Ditto.
857 (@pred_mul_plus<mode>_scalar): Ditto.
858 (*pred_madd<mode>_scalar): Ditto.
859 (*pred_macc<mode>_scalar): Ditto.
860 (*pred_mul_plus<mode>_scalar): Ditto.
861 (*pred_madd<mode>_extended_scalar): Ditto.
862 (*pred_macc<mode>_extended_scalar): Ditto.
863 (*pred_mul_plus<mode>_extended_scalar): Ditto.
864 (@pred_minus_mul<mode>): Ditto.
865 (*pred_<madd_nmsub><mode>): Ditto.
866 (*pred_nmsub<mode>): Ditto.
867 (*pred_<macc_nmsac><mode>): Ditto.
868 (*pred_nmsac<mode>): Ditto.
869 (*pred_mul_<optab><mode>): Ditto.
870 (*pred_minus_mul<mode>): Ditto.
871 (@pred_mul_<optab><mode>_scalar): Ditto.
872 (@pred_minus_mul<mode>_scalar): Ditto.
873 (*pred_<madd_nmsub><mode>_scalar): Ditto.
874 (*pred_nmsub<mode>_scalar): Ditto.
875 (*pred_<macc_nmsac><mode>_scalar): Ditto.
876 (*pred_nmsac<mode>_scalar): Ditto.
877 (*pred_mul_<optab><mode>_scalar): Ditto.
878 (*pred_minus_mul<mode>_scalar): Ditto.
879 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
880 (*pred_nmsub<mode>_extended_scalar): Ditto.
881 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
882 (*pred_nmsac<mode>_extended_scalar): Ditto.
883 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
884 (*pred_minus_mul<mode>_extended_scalar): Ditto.
885 (*pred_<madd_msub><mode>): Ditto.
886 (*pred_<macc_msac><mode>): Ditto.
887 (*pred_<madd_msub><mode>_scalar): Ditto.
888 (*pred_<macc_msac><mode>_scalar): Ditto.
889 (@pred_neg_mul_<optab><mode>): Ditto.
890 (@pred_mul_neg_<optab><mode>): Ditto.
891 (*pred_<nmadd_msub><mode>): Ditto.
892 (*pred_<nmsub_nmadd><mode>): Ditto.
893 (*pred_<nmacc_msac><mode>): Ditto.
894 (*pred_<nmsac_nmacc><mode>): Ditto.
895 (*pred_neg_mul_<optab><mode>): Ditto.
896 (*pred_mul_neg_<optab><mode>): Ditto.
897 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
898 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
899 (*pred_<nmadd_msub><mode>_scalar): Ditto.
900 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
901 (*pred_<nmacc_msac><mode>_scalar): Ditto.
902 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
903 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
904 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
905 (@pred_widen_neg_mul_<optab><mode>): Ditto.
906 (@pred_widen_mul_neg_<optab><mode>): Ditto.
907 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
908 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
910 2023-03-23 liuhongt <hongtao.liu@intel.com>
912 * builtins.cc (builtin_memset_read_str): Replace
913 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
914 (builtin_memset_gen_str): Ditto.
915 * config/i386/i386-expand.cc
916 (ix86_convert_const_wide_int_to_broadcast): Replace
917 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
918 (ix86_expand_vector_move): Ditto.
919 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
921 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
922 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
923 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
924 * doc/tm.texi.in: Ditto.
927 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
929 * lra.cc (lra): Do not repeat inheritance and live range splitting
930 when asm error is found.
932 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
934 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
935 (gcn_expand_dpp_distribute_even_insn)
936 (gcn_expand_dpp_distribute_odd_insn): Declare.
937 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
938 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
939 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
940 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
941 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
942 (fms<mode>4_negop2): New patterns.
943 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
944 (gcn_expand_dpp_distribute_even_insn)
945 (gcn_expand_dpp_distribute_odd_insn): New functions.
946 * config/gcn/gcn.md: Add entries to unspec enum.
948 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
950 PR tree-optimization/109008
951 * value-range.cc (frange::set): Add nan_state argument.
952 * value-range.h (class nan_state): New.
953 (frange::get_nan_state): New.
955 2023-03-22 Martin Liska <mliska@suse.cz>
957 * configure: Regenerate.
959 2023-03-21 Joseph Myers <joseph@codesourcery.com>
961 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
964 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
966 PR tree-optimization/109192
967 * gimple-range-gori.cc (gori_compute::compute_operand_range):
968 Terminate gori calculations if a relation is not relevant.
969 * value-relation.h (value_relation::set_relation): Allow
970 equality between op1 and op2 if they are the same.
972 2023-03-21 Richard Biener <rguenther@suse.de>
974 PR tree-optimization/109219
975 * tree-vect-loop.cc (vectorizable_reduction): Check
976 slp_node, not STMT_SLP_TYPE.
977 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
978 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
979 Remove assertion on STMT_SLP_TYPE.
981 2023-03-21 Jakub Jelinek <jakub@redhat.com>
983 PR tree-optimization/109215
984 * tree.h (enum special_array_member): Adjust comments for int_0
986 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
987 has zero sized element type and the array has variable number of
988 elements or constant one or more elements.
989 (component_ref_size): Adjust comments, formatting fix.
991 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
993 * configure.ac: Add check for the Texinfo 6.8
994 CONTENTS_OUTPUT_LOCATION customization variable and set it if
996 * configure: Regenerate.
997 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
998 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
999 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
1000 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
1002 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1004 * doc/extend.texi: Associate use_hazard_barrier_return index
1005 entry with its attribute.
1006 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
1009 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1011 * doc/implement-c.texi: Remove usage of @gol.
1012 * doc/invoke.texi: Ditto.
1013 * doc/sourcebuild.texi: Ditto.
1014 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
1015 texinfo.tex versions, the bug it was working around appears to
1018 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1020 * doc/include/texinfo.tex: Update to 2023-01-17.19.
1022 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1024 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
1025 @enddefbuiltin for defining built-in functions.
1026 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
1027 places where it should be used.
1029 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1031 * doc/extend.texi (Formatted Output Function Checking): New
1032 subsection for grouping together printf et al.
1033 (Exception handling) Fix missing @ sign before copyright
1034 header, which lead to the copyright line leaking into
1035 '(gcc)Exception handling'.
1036 * doc/gcc.texi: Set document language to en_US.
1037 (@copying): Wrap front cover texts in quotations, move in manual
1040 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
1042 * doc/gcc.texi: Add the Indices appendix, to make texinfo
1043 generate nice indices overview page.
1045 2023-03-21 Richard Biener <rguenther@suse.de>
1047 PR tree-optimization/109170
1048 * gimple-range-op.cc (cfn_pass_through_arg1): New.
1049 (gimple_range_op_handler::maybe_builtin_call): Handle
1050 __builtin_expect via cfn_pass_through_arg1.
1052 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
1055 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
1056 (init_float128_ieee): Delete code to switch complex multiply and divide
1058 (complex_multiply_builtin_code): New helper function.
1059 (complex_divide_builtin_code): Likewise.
1060 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
1061 of complex 128-bit multiply and divide built-in functions.
1063 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
1066 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
1068 2023-03-19 Jonny Grant <jg@jguk.org>
1070 * doc/extend.texi (Common Function Attributes) <nonnull>:
1073 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
1075 PR rtl-optimization/109179
1076 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
1077 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
1079 2023-03-17 Jakub Jelinek <jakub@redhat.com>
1082 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
1084 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
1085 to allocate_struct_function instead of false.
1086 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
1087 nor DECL_RESULT here. Pass true as ABSTRACT_P to
1088 push_struct_function. Call targetm.target_option.relayout_function
1090 (tree_function_versioning): Formatting fix.
1092 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
1094 * lra-constraints.cc: Include hooks.h.
1095 (combine_reload_insn): New function.
1096 (lra_constraints): Call it.
1098 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1099 kito-cheng <kito.cheng@sifive.com>
1101 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
1102 as legitimate value.
1103 * config/riscv/riscv-vector-builtins.cc
1104 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
1105 (function_expander::use_widen_ternop_insn): Ditto.
1106 * config/riscv/vector.md (@vundefined<mode>): New pattern.
1107 (pred_mul_<optab><mode>_undef_merge): Remove.
1108 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
1109 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
1110 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
1111 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
1113 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1116 * config/riscv/riscv.md: Fix subreg bug.
1118 2023-03-17 Jakub Jelinek <jakub@redhat.com>
1120 PR middle-end/108685
1121 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
1122 use its loop_father rather than BODY_BB's loop_father.
1123 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
1124 If broken_loop with ordered > collapse and at least one of those
1125 extra loops aren't guaranteed to have at least one iteration, change
1126 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
1127 loop_father to l0_bb's loop_father rather than l1_bb's.
1129 2023-03-17 Jakub Jelinek <jakub@redhat.com>
1132 * gdbhooks.py (TreePrinter.to_string): Wrap
1133 gdb.parse_and_eval('tree_code_type') in a try block, parse
1134 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
1135 raises exception. Update comments for the recent tree_code_type
1138 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
1140 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
1141 issues. Add more line breaks to example so it doesn't overflow
1144 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
1146 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
1147 line breaks in examples.
1148 <malloc>: Fix bad line breaks in running text, also copy-edit
1150 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
1151 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
1153 (C++ Dialect Options) <-fcontracts>: Add line break in example.
1154 <-Wctad-maybe-unsupported>: Likewise.
1155 <-Winvalid-constexpr>: Likewise.
1156 (Warning Options) <-Wdangling-pointer>: Likewise.
1157 <-Winterference-size>: Likewise.
1158 <-Wvla-parameter>: Likewise.
1159 (Static Analyzer Options): Fix bad line breaks in running text,
1160 plus add some missing markup.
1161 (Optimize Options) <openacc-privatization>: Fix more bad line
1162 breaks in running text.
1164 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
1166 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
1167 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
1168 (expand_vec_perm_2perm_pblendv): Ditto.
1170 2023-03-16 Martin Liska <mliska@suse.cz>
1172 PR middle-end/106133
1173 * gcc.cc (driver_handle_option): Use x_main_input_basename
1174 if x_dump_base_name is null.
1175 * opts.cc (common_handle_option): Likewise.
1177 2023-03-16 Richard Biener <rguenther@suse.de>
1179 PR tree-optimization/109123
1180 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
1181 Do not emit -Wuse-after-free late.
1182 (pass_waccess::check_call): Always check call pointer uses.
1184 2023-03-16 Richard Biener <rguenther@suse.de>
1186 PR tree-optimization/109141
1187 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
1188 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
1190 (renumber_gimple_stmt_uids): ... here and
1191 (renumber_gimple_stmt_uids_in_blocks): ... here.
1192 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
1193 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
1195 (pass_waccess::check_pointer_uses): Process all PHIs.
1197 2023-03-15 David Malcolm <dmalcolm@redhat.com>
1200 * diagnostic-format-sarif.cc (class sarif_invocation): New.
1201 (class sarif_ice_notification): New.
1202 (sarif_builder::m_invocation_obj): New field.
1203 (sarif_invocation::add_notification_for_ice): New.
1204 (sarif_invocation::prepare_to_flush): New.
1205 (sarif_ice_notification::sarif_ice_notification): New.
1206 (sarif_builder::sarif_builder): Add m_invocation_obj.
1207 (sarif_builder::end_diagnostic): Special-case DK_ICE and
1209 (sarif_builder::flush_to_file): Call prepare_to_flush on
1210 m_invocation_obj. Pass the latter to make_top_level_object.
1211 (sarif_builder::make_result_object): Move creation of "locations"
1213 (sarif_builder::make_locations_arr): ...this new function.
1214 (sarif_builder::make_top_level_object): Add "invocation_obj" param
1215 and pass it to make_run_object.
1216 (sarif_builder::make_run_object): Add "invocation_obj" param and
1218 (sarif_ice_handler): New callback.
1219 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
1220 * diagnostic.cc (diagnostic_initialize): Initialize new field
1222 (diagnostic_action_after_output): If it is set, make one attempt
1223 to call ice_handler_cb.
1224 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
1226 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
1228 * config/i386/i386-expand.cc (expand_vec_perm_blend):
1229 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
1230 and fix V2HImode handling.
1231 (expand_vec_perm_1): Try to emit BLEND instruction
1233 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
1235 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
1237 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
1239 2023-03-15 Richard Biener <rguenther@suse.de>
1241 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
1242 Do not diagnose clobbers.
1244 2023-03-15 Richard Biener <rguenther@suse.de>
1246 PR tree-optimization/109139
1247 * tree-ssa-live.cc (remove_unused_locals): Look at the
1248 base address for unused decls on the LHS of .DEFERRED_INIT.
1250 2023-03-15 Xi Ruoyao <xry111@xry111.site>
1253 * builtins.cc (inline_string_cmp): Force the character
1254 difference into "result" pseudo-register, instead of reassign
1255 the pseudo-register.
1257 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1259 * config.gcc: Add thead.o to RISC-V extra_objs.
1260 * config/riscv/peephole.md: Add mempair peephole passes.
1261 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
1263 (th_mempair_operands_p): Likewise.
1264 (th_mempair_order_operands): Likewise.
1265 (th_mempair_prepare_save_restore_operands): Likewise.
1266 (th_mempair_save_restore_regs): Likewise.
1267 (th_mempair_output_move): Likewise.
1268 * config/riscv/riscv.cc (riscv_save_reg): Move code.
1269 (riscv_restore_reg): Move code.
1270 (riscv_for_each_saved_reg): Add code to emit mempair insns.
1271 * config/riscv/t-riscv: Add thead.cc.
1272 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
1274 (*th_mempair_store_<GPR:mode>2): Likewise.
1275 (*th_mempair_load_extendsidi2): Likewise.
1276 (*th_mempair_load_zero_extendsidi2): Likewise.
1277 * config/riscv/thead.cc: New file.
1279 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1281 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
1282 New constraint "th_f_fmv".
1283 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
1285 * config/riscv/riscv.cc (riscv_split_doubleword_move):
1286 Add split code for XTheadFmv.
1287 (riscv_secondary_memory_needed): XTheadFmv does not need
1289 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
1290 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
1291 movdf_hardfloat_rv32.
1292 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
1293 (th_fmv_x_w): New INSN.
1294 (th_fmv_x_hw): New INSN.
1296 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1298 * config/riscv/riscv.md (maddhisi4): New expand.
1299 (msubhisi4): New expand.
1300 * config/riscv/thead.md (*th_mula<mode>): New pattern.
1301 (*th_mulawsi): New pattern.
1302 (*th_mulawsi2): New pattern.
1303 (*th_maddhisi4): New pattern.
1304 (*th_sextw_maddhisi4): New pattern.
1305 (*th_muls<mode>): New pattern.
1306 (*th_mulswsi): New pattern.
1307 (*th_mulswsi2): New pattern.
1308 (*th_msubhisi4): New pattern.
1309 (*th_sextw_msubhisi4): New pattern.
1311 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1313 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
1314 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
1316 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
1318 (riscv_expand_conditional_move): New function.
1319 (riscv_expand_conditional_move_onesided): New function.
1320 * config/riscv/riscv.md: Add support for XTheadCondMov.
1321 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
1322 support for XTheadCondMov.
1323 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
1325 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1327 * config/riscv/bitmanip.md (clzdi2): New expand.
1328 (clzsi2): New expand.
1329 (ctz<mode>2): New expand.
1330 (popcount<mode>2): New expand.
1331 (<bitmanip_optab>si2): Rename INSN.
1332 (*<bitmanip_optab>si2): Hide INSN name.
1333 (<bitmanip_optab>di2): Rename INSN.
1334 (*<bitmanip_optab>di2): Hide INSN name.
1335 (rotrsi3): Remove INSN.
1336 (rotr<mode>3): Add expand.
1337 (*rotrsi3): New INSN.
1338 (rotrdi3): Rename INSN.
1339 (*rotrdi3): Hide INSN name.
1340 (rotrsi3_sext): Rename INSN.
1341 (*rotrsi3_sext): Hide INSN name.
1342 (bswap<mode>2): Remove INSN.
1343 (bswapdi2): Add expand.
1344 (bswapsi2): Add expand.
1345 (*bswap<mode>2): Hide INSN name.
1346 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
1348 * config/riscv/riscv.md (extv<mode>): New expand.
1349 (extzv<mode>): New expand.
1350 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
1351 (*th_ext<mode>): New INSN.
1352 (*th_extu<mode>): New INSN.
1353 (*th_clz<mode>2): New INSN.
1354 (*th_rev<mode>2): New INSN.
1356 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1358 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
1359 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
1361 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1363 * config/riscv/riscv.md: Include thead.md
1364 * config/riscv/thead.md: New file.
1366 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1368 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
1370 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
1372 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
1373 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
1374 (MASK_XTHEADBB): New.
1375 (MASK_XTHEADBS): New.
1376 (MASK_XTHEADCMO): New.
1377 (MASK_XTHEADCONDMOV): New.
1378 (MASK_XTHEADFMEMIDX): New.
1379 (MASK_XTHEADFMV): New.
1380 (MASK_XTHEADINT): New.
1381 (MASK_XTHEADMAC): New.
1382 (MASK_XTHEADMEMIDX): New.
1383 (MASK_XTHEADMEMPAIR): New.
1384 (MASK_XTHEADSYNC): New.
1385 (TARGET_XTHEADBA): New.
1386 (TARGET_XTHEADBB): New.
1387 (TARGET_XTHEADBS): New.
1388 (TARGET_XTHEADCMO): New.
1389 (TARGET_XTHEADCONDMOV): New.
1390 (TARGET_XTHEADFMEMIDX): New.
1391 (TARGET_XTHEADFMV): New.
1392 (TARGET_XTHEADINT): New.
1393 (TARGET_XTHEADMAC): New.
1394 (TARGET_XTHEADMEMIDX): New.
1395 (TARGET_XTHEADMEMPAIR): new.
1396 (TARGET_XTHEADSYNC): New.
1397 * config/riscv/riscv.opt: Add riscv_xthead_subext.
1399 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
1402 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
1403 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
1404 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
1406 2023-03-14 Jakub Jelinek <jakub@redhat.com>
1409 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
1410 when lo is equal to dhi and hi is a MEM which uses dlo register.
1412 2023-03-14 Martin Jambor <mjambor@suse.cz>
1415 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
1416 global0 instead of zeroing when it does not have as many counts as
1419 2023-03-14 Martin Jambor <mjambor@suse.cz>
1422 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
1423 ipa count, remove assert, lenient_count_portion_handling, dump
1424 also orig_node_count.
1426 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
1428 * config/i386/i386-expand.cc (expand_vec_perm_movs):
1429 Handle V2SImode for TARGET_MMX_WITH_SSE.
1430 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
1431 using V2FI mode iterator to handle both V2SI and V2SF modes.
1433 2023-03-14 Sam James <sam@gentoo.org>
1435 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
1436 including <sstream> earlier.
1437 * system.h: Add INCLUDE_SSTREAM.
1439 2023-03-14 Richard Biener <rguenther@suse.de>
1441 * tree-ssa-live.cc (remove_unused_locals): Do not treat
1442 the .DEFERRED_INIT of a variable as use, instead remove
1443 that if it is the only use.
1445 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
1447 PR rtl-optimization/107762
1448 * expr.cc (emit_group_store): Revert latest change.
1450 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
1452 PR tree-optimization/109005
1453 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
1454 aggregate type check.
1456 2023-03-14 Jakub Jelinek <jakub@redhat.com>
1458 PR tree-optimization/109115
1459 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
1460 r.upper_bound () on r.undefined_p () range.
1462 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
1464 PR tree-optimization/106896
1465 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
1466 implementatoin with probability_in; avoid some asserts.
1468 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
1470 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
1472 2023-03-13 Sean Bright <sean@seanbright.com>
1474 * doc/invoke.texi (Warning Options): Remove errant 'See'
1477 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1479 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
1480 REG_OK_FOR_BASE_P): Remove.
1482 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1484 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
1485 (=vd,vd,vr,vr): Ditto.
1486 * config/riscv/vector.md: Ditto.
1488 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1490 * config/riscv/riscv-vector-builtins.cc
1491 (function_expander::use_compare_insn): Add operand predicate check.
1493 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1495 * config/riscv/vector.md: Fine tune RA constraints.
1497 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
1499 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
1500 hsaco assemble/link.
1502 2023-03-13 Richard Biener <rguenther@suse.de>
1504 PR tree-optimization/109046
1505 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
1506 piecewise complex loads.
1508 2023-03-12 Jakub Jelinek <jakub@redhat.com>
1510 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
1511 (aarch64_bf16_ptr_type_node): Adjust comment.
1512 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
1513 bfloat16_type_node rather than aarch64_bf16_type_node.
1514 (aarch64_libgcc_floating_mode_supported_p,
1515 aarch64_scalar_mode_supported_p): Also support BFmode.
1516 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
1517 (aarch64_invalid_binary_op): Remove BFmode related rejections.
1518 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
1519 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
1520 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
1521 aarch64_bf16_type_node.
1522 (aarch64_init_simd_builtin_types): Likewise.
1523 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
1524 which is created in tree.cc already.
1525 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
1527 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
1529 PR middle-end/109031
1530 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
1531 ensure that the type of x is as wide or wider than the type of a.
1533 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1536 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
1537 (*bitmask_shift_plus<mode>): New.
1538 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
1539 (@aarch64_bitmask_udiv<mode>3): Remove.
1540 * config/aarch64/aarch64.cc
1541 (aarch64_vectorize_can_special_div_by_constant,
1542 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
1543 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
1544 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
1546 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1549 * target.def (preferred_div_as_shifts_over_mult): New.
1550 * doc/tm.texi.in: Document it.
1551 * doc/tm.texi: Regenerate.
1552 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
1553 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
1554 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
1556 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1557 Richard Sandiford <richard.sandiford@arm.com>
1560 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
1563 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1564 Andrew MacLeod <amacleod@redhat.com>
1567 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
1568 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
1570 (gimple_range_op_handler::maybe_non_standard): New.
1571 * range-op.cc (class operator_widen_plus_signed,
1572 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
1573 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
1574 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
1575 operator_widen_mult_unsigned::wi_fold,
1576 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
1577 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
1578 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
1579 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
1581 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1584 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
1585 * doc/tm.texi.in: Likewise.
1586 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
1587 * expmed.cc (expand_divmod): Likewise.
1588 * expmed.h (expand_divmod): Likewise.
1589 * expr.cc (force_operand, expand_expr_divmod): Likewise.
1590 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
1591 * target.def (can_special_div_by_const): Remove.
1592 * target.h: Remove tree-core.h include
1593 * targhooks.cc (default_can_special_div_by_const): Remove.
1594 * targhooks.h (default_can_special_div_by_const): Remove.
1595 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
1596 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
1597 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
1599 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
1601 * doc/install.texi2html: Fix issue number typo in comment.
1603 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
1605 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
1608 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
1610 * doc/invoke.texi (Optimize Options): Add markup to
1611 description of asan-kernel-mem-intrinsic-prefix, and clarify
1614 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
1616 * doc/extend.texi (Named Address Spaces): Drop a redundant link
1619 2023-03-11 Jeff Law <jlaw@ventanamicro>
1622 * doc/extend.texi: Clarify Attribute Syntax a bit.
1624 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
1626 * doc/install.texi (Prerequisites): Suggest using newer versions
1628 (Final install): Clean up and modernize discussion of how to
1629 build or obtain the GCC manuals.
1630 * doc/install.texi2html: Update comment to point to the PR instead
1631 of "makeinfo 4.7 brokenness" (it's not specific to that version).
1633 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1636 * optabs.cc (expand_fix): For conversions from BFmode to integral,
1637 use shifts to convert it to SFmode first and then convert SFmode
1640 2023-03-10 Andrew Pinski <apinski@marvell.com>
1642 * config/aarch64/aarch64.md: Add a new define_split
1645 2023-03-10 Richard Biener <rguenther@suse.de>
1647 * tree-ssa-structalias.cc (solve_graph): Immediately
1648 iterate self-cycles.
1650 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1652 PR tree-optimization/109008
1653 * range-op-float.cc (float_widen_lhs_range): If not
1654 -frounding-math and not IBM double double format, extend lhs
1655 range just by 0.5ulp rather than 1ulp in each direction.
1657 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1660 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
1662 * config/i386/t-cygwin-w64: Remove.
1664 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1667 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
1668 C++14, don't declare as extern const arrays.
1669 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
1670 static constexpr member arrays for C++11 or C++14.
1671 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
1672 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
1673 (TREE_CODE_LENGTH): For C++11 or C++14 use
1674 tree_code_length_tmpl <0>::tree_code_length instead of
1676 * tree.cc (tree_code_type, tree_code_length): Remove.
1678 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1681 * common.opt (fcanon-prefix-map): New option.
1682 * opts.cc: Include file-prefix-map.h.
1683 (flag_canon_prefix_map): New variable.
1684 (common_handle_option): Handle OPT_fcanon_prefix_map.
1685 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
1686 * file-prefix-map.h (flag_canon_prefix_map): Declare.
1687 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
1689 (add_prefix_map): Initialize canonicalize member from
1690 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
1691 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
1692 use lrealpath result only for map->canonicalize map entries.
1693 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
1694 * opts-global.cc (handle_common_deferred_options): Clear
1695 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
1696 * doc/invoke.texi (-fcanon-prefix-map): Document.
1697 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
1698 see also for -fcanon-prefix-map.
1699 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
1701 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1704 * cgraphunit.cc (check_global_declaration): Don't warn for unused
1705 variables which have OPT_Wunused_variable warning suppressed.
1707 2023-03-10 Jakub Jelinek <jakub@redhat.com>
1709 PR tree-optimization/109008
1710 * range-op-float.cc (float_widen_lhs_range): If lb is
1711 minimum representable finite number or ub is maximum
1712 representable finite number, instead of widening it to
1713 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
1714 Temporarily clear flag_finite_math_only when canonicalizing
1717 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1719 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
1720 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
1721 (gimple_fold_builtin): Ditto.
1722 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
1723 (class vleff): Ditto.
1725 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1726 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
1728 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
1729 (struct fault_load_def): Ditto.
1731 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
1732 * config/riscv/riscv-vector-builtins.cc
1733 (rvv_arg_type_info::get_tree_type): Add size_ptr.
1734 (gimple_folder::gimple_folder): New class.
1735 (gimple_folder::fold): Ditto.
1736 (gimple_fold_builtin): New function.
1737 (get_read_vl_instance): Ditto.
1738 (get_read_vl_decl): Ditto.
1739 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
1740 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
1741 (get_read_vl_instance): New function.
1742 (get_read_vl_decl): Ditto.
1743 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
1744 (read_vl_insn_p): Ditto.
1745 (available_occurrence_p): Ditto.
1746 (backward_propagate_worthwhile_p): Ditto.
1747 (gen_vsetvl_pat): Adapt for vleff support.
1748 (get_forward_read_vl_insn): New function.
1749 (get_backward_fault_first_load_insn): Ditto.
1750 (source_equal_p): Adapt for vleff support.
1751 (first_ratio_invalid_for_second_sew_p): Remove.
1752 (first_ratio_invalid_for_second_lmul_p): Ditto.
1753 (first_lmul_less_than_second_lmul_p): Ditto.
1754 (first_ratio_less_than_second_ratio_p): Ditto.
1755 (support_relaxed_compatible_p): New function.
1756 (vector_insn_info::operator>): Remove.
1757 (vector_insn_info::operator>=): Refine.
1758 (vector_insn_info::parse_insn): Adapt for vleff support.
1759 (vector_insn_info::compatible_p): Ditto.
1760 (vector_insn_info::update_fault_first_load_avl): New function.
1761 (pass_vsetvl::transfer_after): Adapt for vleff support.
1762 (pass_vsetvl::demand_fusion): Ditto.
1763 (pass_vsetvl::cleanup_insns): Ditto.
1764 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
1765 redundant condtions.
1766 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
1767 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
1768 * config/riscv/riscv.md: Adapt for vleff support.
1769 * config/riscv/t-riscv: Ditto.
1770 * config/riscv/vector-iterators.md: New iterator.
1771 * config/riscv/vector.md (read_vlsi): New pattern.
1772 (read_vldi_zero_extend): Ditto.
1773 (@pred_fault_load<mode>): Ditto.
1775 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1777 * config/riscv/riscv-vector-builtins.cc
1778 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
1779 (function_expander::use_widen_ternop_insn): Ditto.
1780 * optabs.cc (maybe_gen_insn): Extend nops handling.
1782 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1784 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
1785 patterns according to RVV ISA.
1786 * config/riscv/vector-iterators.md: New iterators.
1787 * config/riscv/vector.md
1788 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
1789 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
1790 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
1791 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
1792 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
1793 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
1794 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
1795 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
1796 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
1797 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
1798 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
1799 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
1800 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
1801 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
1803 2023-03-10 Michael Collison <collison@rivosinc.com>
1805 * tree-vect-loop-manip.cc (vect_do_peeling): Use
1806 result of constant_lower_bound instead of vf for the lower
1807 bound of the epilog loop trip count.
1809 2023-03-09 Tamar Christina <tamar.christina@arm.com>
1811 * passes.cc (emergency_dump_function): Finish graph generation.
1813 2023-03-09 Tamar Christina <tamar.christina@arm.com>
1815 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
1816 and bottom bit only.
1818 2023-03-09 Andrew Pinski <apinski@marvell.com>
1820 PR tree-optimization/108980
1821 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
1822 Reorgnize the call to warning for not strict flexible arrays
1823 to be before the check of warned.
1825 2023-03-09 Jason Merrill <jason@redhat.com>
1827 * doc/extend.texi: Comment out __is_deducible docs.
1829 2023-03-09 Jason Merrill <jason@redhat.com>
1832 * doc/extend.texi (Type Traits):: Document __is_deducible.
1834 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
1837 * config.host: add object for x86_64-*-mingw*.
1838 * config/i386/sym-mingw32.cc: dummy file to attach
1840 * config/i386/utf8-mingw32.rc: windres resource file.
1841 * config/i386/winnt-utf8.manifest: XML manifest to
1843 * config/i386/x-mingw32: reference to x-mingw32-utf8.
1844 * config/i386/x-mingw32-utf8: Makefile fragment to
1845 embed UTF-8 manifest.
1847 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
1849 * lra-constraints.cc (process_alt_operands): Use operand modes for
1850 clobbered regs instead of the biggest access mode.
1852 2023-03-09 Richard Biener <rguenther@suse.de>
1854 PR middle-end/108995
1855 * fold-const.cc (extract_muldiv_1): Avoid folding
1856 (CST * b) / CST2 when sanitizing overflow and we rely on
1857 overflow being undefined.
1859 2023-03-09 Jakub Jelinek <jakub@redhat.com>
1860 Richard Biener <rguenther@suse.de>
1862 PR tree-optimization/109008
1863 * range-op-float.cc (float_widen_lhs_range): New function.
1864 (foperator_plus::op1_range, foperator_minus::op1_range,
1865 foperator_minus::op2_range, foperator_mult::op1_range,
1866 foperator_div::op1_range, foperator_div::op2_range): Use it.
1868 2023-03-07 Jonathan Grant <jg@jguk.org>
1871 * doc/invoke.texi (Instrumentation Options): Clarify
1872 LeakSanitizer behavior.
1874 2023-03-07 Benson Muite <benson_muite@emailplus.org>
1876 * doc/install.texi (Prerequisites): Add link to gmplib.org.
1878 2023-03-07 Pan Li <pan2.li@intel.com>
1879 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1883 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
1885 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
1886 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
1887 * genmodes.cc (adj_precision): New.
1888 (ADJUST_PRECISION): New.
1889 (emit_mode_adjustments): Handle ADJUST_PRECISION.
1891 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
1893 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
1895 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
1897 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
1898 {s|u}{max|min} in QI, HI and DI modes.
1899 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
1900 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
1901 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
1902 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
1905 2023-03-06 Richard Biener <rguenther@suse.de>
1907 PR tree-optimization/109025
1908 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
1909 the inner LC PHI use is the inner loop PHI latch definition
1910 before classifying an outer PHI as double reduction.
1912 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
1915 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
1917 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
1918 (X86_TUNE_USE_SCATTER): Likewise.
1920 2023-03-06 Xi Ruoyao <xry111@xry111.site>
1923 * config/loongarch/loongarch.h (FP_RETURN): Use
1924 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
1925 (UNITS_PER_FP_ARG): Likewise.
1927 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1929 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
1930 (pass_vsetvl::backward_demand_fusion): Ditto.
1932 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
1933 SiYu Wu <siyu@isrc.iscas.ac.cn>
1935 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
1937 (riscv_sm3p1_<mode>): New.
1938 (riscv_sm4ed_<mode>): New.
1939 (riscv_sm4ks_<mode>): New.
1940 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
1941 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
1942 ZKSH's built-in functions.
1944 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
1945 SiYu Wu <siyu@isrc.iscas.ac.cn>
1947 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
1948 (riscv_sha256sig1_<mode>): New.
1949 (riscv_sha256sum0_<mode>): New.
1950 (riscv_sha256sum1_<mode>): New.
1951 (riscv_sha512sig0h): New.
1952 (riscv_sha512sig0l): New.
1953 (riscv_sha512sig1h): New.
1954 (riscv_sha512sig1l): New.
1955 (riscv_sha512sum0r): New.
1956 (riscv_sha512sum1r): New.
1957 (riscv_sha512sig0): New.
1958 (riscv_sha512sig1): New.
1959 (riscv_sha512sum0): New.
1960 (riscv_sha512sum1): New.
1961 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
1962 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
1964 (DIRECT_BUILTIN): Add new.
1966 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
1967 SiYu Wu <siyu@isrc.iscas.ac.cn>
1969 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
1971 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
1972 (riscv_aes32dsmi): New.
1973 (riscv_aes64ds): New.
1974 (riscv_aes64dsm): New.
1975 (riscv_aes64im): New.
1976 (riscv_aes64ks1i): New.
1977 (riscv_aes64ks2): New.
1978 (riscv_aes32esi): New.
1979 (riscv_aes32esmi): New.
1980 (riscv_aes64es): New.
1981 (riscv_aes64esm): New.
1982 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
1983 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
1984 ZKNE's built-in functions.
1986 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
1987 SiYu Wu <siyu@isrc.iscas.ac.cn>
1989 * config/riscv/bitmanip.md: Add ZBKB's instructions.
1990 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
1991 * config/riscv/riscv.md: Add new type for crypto instructions.
1992 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
1994 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
1995 extension's built-in function file.
1997 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
1998 SiYu Wu <siyu@isrc.iscas.ac.cn>
2000 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
2001 (RISCV_FTYPE_NAME3): New.
2002 (RISCV_ATYPE_QI): New.
2003 (RISCV_ATYPE_HI): New.
2004 (RISCV_FTYPE_ATYPES2): New.
2005 (RISCV_FTYPE_ATYPES3): New.
2006 * config/riscv/riscv-ftypes.def (2): New.
2009 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
2011 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
2014 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2015 kito-cheng <kito.cheng@sifive.com>
2017 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
2018 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
2019 (riscv_register_pragmas): Add builtin function check call.
2020 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
2021 (check_builtin_call): New function.
2022 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
2023 (class vreinterpret): Ditto.
2024 (class vlmul_ext): Ditto.
2025 (class vlmul_trunc): Ditto.
2026 (class vset): Ditto.
2027 (class vget): Ditto.
2029 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2030 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
2046 (vundefined): Add new intrinsic.
2047 (vreinterpret): Ditto.
2049 (vlmul_trunc): Ditto.
2052 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
2053 (struct narrow_alu_def): Ditto.
2054 (struct reduc_alu_def): Ditto.
2055 (struct vundefined_def): Ditto.
2056 (struct misc_def): Ditto.
2057 (struct vset_def): Ditto.
2058 (struct vget_def): Ditto.
2060 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2061 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
2062 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
2063 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
2064 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
2065 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
2066 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
2067 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
2068 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
2069 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
2070 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
2071 (DEF_RVV_LMUL1_OPS): Ditto.
2072 (DEF_RVV_LMUL2_OPS): Ditto.
2073 (DEF_RVV_LMUL4_OPS): Ditto.
2074 (vint16mf4_t): Ditto.
2075 (vint16mf2_t): Ditto.
2076 (vint16m1_t): Ditto.
2077 (vint16m2_t): Ditto.
2078 (vint16m4_t): Ditto.
2079 (vint16m8_t): Ditto.
2080 (vint32mf2_t): Ditto.
2081 (vint32m1_t): Ditto.
2082 (vint32m2_t): Ditto.
2083 (vint32m4_t): Ditto.
2084 (vint32m8_t): Ditto.
2085 (vint64m1_t): Ditto.
2086 (vint64m2_t): Ditto.
2087 (vint64m4_t): Ditto.
2088 (vint64m8_t): Ditto.
2089 (vuint16mf4_t): Ditto.
2090 (vuint16mf2_t): Ditto.
2091 (vuint16m1_t): Ditto.
2092 (vuint16m2_t): Ditto.
2093 (vuint16m4_t): Ditto.
2094 (vuint16m8_t): Ditto.
2095 (vuint32mf2_t): Ditto.
2096 (vuint32m1_t): Ditto.
2097 (vuint32m2_t): Ditto.
2098 (vuint32m4_t): Ditto.
2099 (vuint32m8_t): Ditto.
2100 (vuint64m1_t): Ditto.
2101 (vuint64m2_t): Ditto.
2102 (vuint64m4_t): Ditto.
2103 (vuint64m8_t): Ditto.
2104 (vint8mf4_t): Ditto.
2105 (vint8mf2_t): Ditto.
2110 (vuint8mf4_t): Ditto.
2111 (vuint8mf2_t): Ditto.
2112 (vuint8m1_t): Ditto.
2113 (vuint8m2_t): Ditto.
2114 (vuint8m4_t): Ditto.
2115 (vuint8m8_t): Ditto.
2116 (vint8mf8_t): Ditto.
2117 (vuint8mf8_t): Ditto.
2118 (vfloat32mf2_t): Ditto.
2119 (vfloat32m1_t): Ditto.
2120 (vfloat32m2_t): Ditto.
2121 (vfloat32m4_t): Ditto.
2122 (vfloat64m1_t): Ditto.
2123 (vfloat64m2_t): Ditto.
2124 (vfloat64m4_t): Ditto.
2125 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
2126 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
2127 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
2128 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
2129 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
2130 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
2131 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
2132 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
2133 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
2134 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
2135 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
2136 (DEF_RVV_LMUL1_OPS): Ditto.
2137 (DEF_RVV_LMUL2_OPS): Ditto.
2138 (DEF_RVV_LMUL4_OPS): Ditto.
2139 (DEF_RVV_TYPE_INDEX): Ditto.
2140 (required_extensions_p): Adapt for new intrinsic support/
2141 (get_required_extensions): New function.
2142 (check_required_extensions): Ditto.
2143 (unsigned_base_type_p): Remove.
2144 (rvv_arg_type_info::get_scalar_ptr_type): New function.
2145 (get_mode_for_bitsize): Remove.
2146 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
2147 (rvv_arg_type_info::get_base_vector_type): Ditto.
2148 (rvv_arg_type_info::get_function_type_index): Ditto.
2149 (DEF_RVV_BASE_TYPE): New def.
2150 (function_builder::apply_predication): New class.
2151 (function_expander::mask_mode): Ditto.
2152 (function_checker::function_checker): Ditto.
2153 (function_checker::report_non_ice): Ditto.
2154 (function_checker::report_out_of_range): Ditto.
2155 (function_checker::require_immediate): Ditto.
2156 (function_checker::require_immediate_range): Ditto.
2157 (function_checker::check): Ditto.
2158 (check_builtin_call): Ditto.
2159 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
2160 (DEF_RVV_BASE_TYPE): Ditto.
2161 (DEF_RVV_TYPE_INDEX): Ditto.
2169 (vuint8mf8_t): Ditto.
2170 (vuint8mf4_t): Ditto.
2171 (vuint8mf2_t): Ditto.
2172 (vuint8m1_t): Ditto.
2173 (vuint8m2_t): Ditto.
2175 (vuint8m4_t): Ditto.
2177 (vuint8m8_t): Ditto.
2178 (vint16mf4_t): Ditto.
2179 (vuint16mf2_t): Ditto.
2180 (vuint16m1_t): Ditto.
2181 (vuint16m2_t): Ditto.
2182 (vuint16m4_t): Ditto.
2183 (vuint16m8_t): Ditto.
2184 (vint32mf2_t): Ditto.
2185 (vuint32m1_t): Ditto.
2186 (vuint32m2_t): Ditto.
2187 (vuint32m4_t): Ditto.
2188 (vuint32m8_t): Ditto.
2189 (vuint64m1_t): Ditto.
2190 (vuint64m2_t): Ditto.
2191 (vuint64m4_t): Ditto.
2192 (vuint64m8_t): Ditto.
2193 (vfloat32mf2_t): Ditto.
2194 (vfloat32m1_t): Ditto.
2195 (vfloat32m2_t): Ditto.
2196 (vfloat32m4_t): Ditto.
2197 (vfloat32m8_t): Ditto.
2198 (vfloat64m1_t): Ditto.
2199 (vfloat64m4_t): Ditto.
2200 (vector): Move it def.
2203 (signed_vector): Ditto.
2204 (unsigned_vector): Ditto.
2205 (unsigned_scalar): Ditto.
2206 (vector_ptr): Ditto.
2207 (scalar_ptr): Ditto.
2208 (scalar_const_ptr): Ditto.
2212 (unsigned_long): Ditto.
2214 (eew8_index): Ditto.
2215 (eew16_index): Ditto.
2216 (eew32_index): Ditto.
2217 (eew64_index): Ditto.
2218 (shift_vector): Ditto.
2219 (double_trunc_vector): Ditto.
2220 (quad_trunc_vector): Ditto.
2221 (oct_trunc_vector): Ditto.
2222 (double_trunc_scalar): Ditto.
2223 (double_trunc_signed_vector): Ditto.
2224 (double_trunc_unsigned_vector): Ditto.
2225 (double_trunc_unsigned_scalar): Ditto.
2226 (double_trunc_float_vector): Ditto.
2227 (float_vector): Ditto.
2228 (lmul1_vector): Ditto.
2229 (widen_lmul1_vector): Ditto.
2230 (eew8_interpret): Ditto.
2231 (eew16_interpret): Ditto.
2232 (eew32_interpret): Ditto.
2233 (eew64_interpret): Ditto.
2234 (vlmul_ext_x2): Ditto.
2235 (vlmul_ext_x4): Ditto.
2236 (vlmul_ext_x8): Ditto.
2237 (vlmul_ext_x16): Ditto.
2238 (vlmul_ext_x32): Ditto.
2239 (vlmul_ext_x64): Ditto.
2240 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
2241 (struct function_type_info): New function.
2242 (struct rvv_arg_type_info): Ditto.
2243 (class function_checker): New class.
2244 (rvv_arg_type_info::get_scalar_type): New function.
2245 (rvv_arg_type_info::get_vector_type): Ditto.
2246 (function_expander::ret_mode): New function.
2247 (function_checker::arg_mode): Ditto.
2248 (function_checker::ret_mode): Ditto.
2249 * config/riscv/t-riscv: Add generator.
2250 * config/riscv/vector-iterators.md: New iterators.
2251 * config/riscv/vector.md (vundefined<mode>): New pattern.
2252 (@vundefined<mode>): Ditto.
2253 (@vreinterpret<mode>): Ditto.
2254 (@vlmul_extx2<mode>): Ditto.
2255 (@vlmul_extx4<mode>): Ditto.
2256 (@vlmul_extx8<mode>): Ditto.
2257 (@vlmul_extx16<mode>): Ditto.
2258 (@vlmul_extx32<mode>): Ditto.
2259 (@vlmul_extx64<mode>): Ditto.
2260 (*vlmul_extx2<mode>): Ditto.
2261 (*vlmul_extx4<mode>): Ditto.
2262 (*vlmul_extx8<mode>): Ditto.
2263 (*vlmul_extx16<mode>): Ditto.
2264 (*vlmul_extx32<mode>): Ditto.
2265 (*vlmul_extx64<mode>): Ditto.
2266 * config/riscv/genrvv-type-indexer.cc: New file.
2268 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2270 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
2271 (slide1_sew64_helper): New function.
2272 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
2273 (get_unknown_min_value): Ditto.
2274 (force_vector_length_operand): Ditto.
2275 (gen_no_side_effects_vsetvl_rtx): Ditto.
2276 (get_vl_x2_rtx): Ditto.
2277 (slide1_sew64_helper): Ditto.
2278 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
2279 (class vrgather): Ditto.
2280 (class vrgatherei16): Ditto.
2281 (class vcompress): Ditto.
2283 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2284 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
2285 (vslidedown): Ditto.
2287 (vslide1down): Ditto.
2288 (vfslide1up): Ditto.
2289 (vfslide1down): Ditto.
2291 (vrgatherei16): Ditto.
2293 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
2294 (vint8mf8_t): Ditto.
2295 (vint8mf4_t): Ditto.
2296 (vint8mf2_t): Ditto.
2300 (vint16mf4_t): Ditto.
2301 (vint16mf2_t): Ditto.
2302 (vint16m1_t): Ditto.
2303 (vint16m2_t): Ditto.
2304 (vint16m4_t): Ditto.
2305 (vint16m8_t): Ditto.
2306 (vint32mf2_t): Ditto.
2307 (vint32m1_t): Ditto.
2308 (vint32m2_t): Ditto.
2309 (vint32m4_t): Ditto.
2310 (vint32m8_t): Ditto.
2311 (vint64m1_t): Ditto.
2312 (vint64m2_t): Ditto.
2313 (vint64m4_t): Ditto.
2314 (vint64m8_t): Ditto.
2315 (vuint8mf8_t): Ditto.
2316 (vuint8mf4_t): Ditto.
2317 (vuint8mf2_t): Ditto.
2318 (vuint8m1_t): Ditto.
2319 (vuint8m2_t): Ditto.
2320 (vuint8m4_t): Ditto.
2321 (vuint16mf4_t): Ditto.
2322 (vuint16mf2_t): Ditto.
2323 (vuint16m1_t): Ditto.
2324 (vuint16m2_t): Ditto.
2325 (vuint16m4_t): Ditto.
2326 (vuint16m8_t): Ditto.
2327 (vuint32mf2_t): Ditto.
2328 (vuint32m1_t): Ditto.
2329 (vuint32m2_t): Ditto.
2330 (vuint32m4_t): Ditto.
2331 (vuint32m8_t): Ditto.
2332 (vuint64m1_t): Ditto.
2333 (vuint64m2_t): Ditto.
2334 (vuint64m4_t): Ditto.
2335 (vuint64m8_t): Ditto.
2336 (vfloat32mf2_t): Ditto.
2337 (vfloat32m1_t): Ditto.
2338 (vfloat32m2_t): Ditto.
2339 (vfloat32m4_t): Ditto.
2340 (vfloat32m8_t): Ditto.
2341 (vfloat64m1_t): Ditto.
2342 (vfloat64m2_t): Ditto.
2343 (vfloat64m4_t): Ditto.
2344 (vfloat64m8_t): Ditto.
2345 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
2346 * config/riscv/riscv.md: Adjust RVV instruction types.
2347 * config/riscv/vector-iterators.md (down): New iterator.
2348 (=vd,vr): New attribute.
2349 (UNSPEC_VSLIDE1UP): New unspec.
2350 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
2351 (*pred_slide<ud><mode>): Ditto.
2352 (*pred_slide<ud><mode>_extended): Ditto.
2353 (@pred_gather<mode>): Ditto.
2354 (@pred_gather<mode>_scalar): Ditto.
2355 (@pred_gatherei16<mode>): Ditto.
2356 (@pred_compress<mode>): Ditto.
2358 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2360 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
2362 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2364 * config/riscv/constraints.md (Wb1): New constraint.
2365 * config/riscv/predicates.md
2366 (vector_least_significant_set_mask_operand): New predicate.
2367 (vector_broadcast_mask_operand): Ditto.
2368 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
2369 (gen_scalar_move_mask): New function.
2370 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
2371 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
2372 (class vmv_s): Ditto.
2374 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2375 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
2379 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
2381 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2382 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
2383 (function_expander::use_exact_insn): New function.
2384 (function_expander::use_contiguous_load_insn): New function.
2385 (function_expander::use_contiguous_store_insn): New function.
2386 (function_expander::use_ternop_insn): New function.
2387 (function_expander::use_widen_ternop_insn): New function.
2388 (function_expander::use_scalar_move_insn): New function.
2389 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
2390 * config/riscv/riscv-vector-builtins.h
2391 (function_expander::add_scalar_move_mask_operand): New class.
2392 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
2393 (scalar_move_insn_p): Ditto.
2394 (has_vsetvl_killed_avl_p): Ditto.
2395 (anticipatable_occurrence_p): Ditto.
2396 (insert_vsetvl): Ditto.
2397 (get_vl_vtype_info): Ditto.
2398 (calculate_sew): Ditto.
2399 (calculate_vlmul): Ditto.
2400 (incompatible_avl_p): Ditto.
2401 (different_sew_p): Ditto.
2402 (different_lmul_p): Ditto.
2403 (different_ratio_p): Ditto.
2404 (different_tail_policy_p): Ditto.
2405 (different_mask_policy_p): Ditto.
2406 (possible_zero_avl_p): Ditto.
2407 (first_ratio_invalid_for_second_sew_p): Ditto.
2408 (first_ratio_invalid_for_second_lmul_p): Ditto.
2409 (second_ratio_invalid_for_first_sew_p): Ditto.
2410 (second_ratio_invalid_for_first_lmul_p): Ditto.
2411 (second_sew_less_than_first_sew_p): Ditto.
2412 (first_sew_less_than_second_sew_p): Ditto.
2413 (compare_lmul): Ditto.
2414 (second_lmul_less_than_first_lmul_p): Ditto.
2415 (first_lmul_less_than_second_lmul_p): Ditto.
2416 (first_ratio_less_than_second_ratio_p): Ditto.
2417 (second_ratio_less_than_first_ratio_p): Ditto.
2418 (DEF_INCOMPATIBLE_COND): Ditto.
2419 (greatest_sew): Ditto.
2421 (second_sew): Ditto.
2422 (first_vlmul): Ditto.
2423 (second_vlmul): Ditto.
2424 (first_ratio): Ditto.
2425 (second_ratio): Ditto.
2426 (vlmul_for_first_sew_second_ratio): Ditto.
2427 (ratio_for_second_sew_first_vlmul): Ditto.
2428 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
2429 (always_unavailable): Ditto.
2430 (avl_unavailable_p): Ditto.
2431 (sew_unavailable_p): Ditto.
2432 (lmul_unavailable_p): Ditto.
2433 (ge_sew_unavailable_p): Ditto.
2434 (ge_sew_lmul_unavailable_p): Ditto.
2435 (ge_sew_ratio_unavailable_p): Ditto.
2436 (DEF_UNAVAILABLE_COND): Ditto.
2437 (same_sew_lmul_demand_p): Ditto.
2438 (propagate_avl_across_demands_p): Ditto.
2439 (reg_available_p): Ditto.
2440 (avl_info::has_non_zero_avl): Ditto.
2441 (vl_vtype_info::has_non_zero_avl): Ditto.
2442 (vector_insn_info::operator>=): Refactor.
2443 (vector_insn_info::parse_insn): Adjust for scalar move.
2444 (vector_insn_info::demand_vl_vtype): Remove.
2445 (vector_insn_info::compatible_p): New function.
2446 (vector_insn_info::compatible_avl_p): Ditto.
2447 (vector_insn_info::compatible_vtype_p): Ditto.
2448 (vector_insn_info::available_p): Ditto.
2449 (vector_insn_info::merge): Ditto.
2450 (vector_insn_info::fuse_avl): Ditto.
2451 (vector_insn_info::fuse_sew_lmul): Ditto.
2452 (vector_insn_info::fuse_tail_policy): Ditto.
2453 (vector_insn_info::fuse_mask_policy): Ditto.
2454 (vector_insn_info::dump): Ditto.
2455 (vector_infos_manager::release): Ditto.
2456 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
2457 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
2458 (pass_vsetvl::hard_empty_block_p): Ditto.
2459 (pass_vsetvl::backward_demand_fusion): Ditto.
2460 (pass_vsetvl::forward_demand_fusion): Ditto.
2461 (pass_vsetvl::refine_vsetvls): Ditto.
2462 (pass_vsetvl::cleanup_vsetvls): Ditto.
2463 (pass_vsetvl::commit_vsetvls): Ditto.
2464 (pass_vsetvl::propagate_avl): Ditto.
2465 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
2466 (struct demands_pair): Ditto.
2467 (struct demands_cond): Ditto.
2468 (struct demands_fuse_rule): Ditto.
2469 * config/riscv/vector-iterators.md: New iterator.
2470 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
2471 (*pred_broadcast<mode>): Ditto.
2472 (*pred_broadcast<mode>_extended_scalar): Ditto.
2473 (@pred_extract_first<mode>): Ditto.
2474 (*pred_extract_first<mode>): Ditto.
2475 (@pred_extract_first_trunc<mode>): Ditto.
2476 * config/riscv/riscv-vsetvl.def: New file.
2478 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
2480 * config/riscv/bitmanip.md: allow 0 constant in max/min
2483 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
2485 * config/riscv/bitmanip.md: Fix wrong index in the check.
2487 2023-03-04 Jakub Jelinek <jakub@redhat.com>
2489 PR middle-end/109006
2490 * vec.cc (test_auto_alias): Adjust comment for removal of
2492 * read-rtl-function.cc (function_reader::parse_block): Likewise.
2493 * gdbhooks.py: Likewise.
2495 2023-03-04 Jakub Jelinek <jakub@redhat.com>
2498 * selftest-diagnostic.cc
2499 (test_diagnostic_context::test_diagnostic_context): Set
2500 caret_max_width to 80.
2502 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2504 * gimple-ssa-warn-access.cc
2505 (pass_waccess::check_dangling_stores): Skip non-stores.
2507 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2509 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
2510 after vmsr and vmrs, and lower the case of P0.
2512 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
2514 PR middle-end/109006
2515 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
2517 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
2519 PR middle-end/109006
2520 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
2522 2023-03-03 Jakub Jelinek <jakub@redhat.com>
2525 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
2526 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
2527 suppressed on stmt. For [static %E] warning, print access_nelts
2528 rather than access_size. Fix up comment wording.
2530 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
2532 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
2533 arch14 instead of z16.
2535 2023-03-03 Anthony Green <green@moxielogic.com>
2537 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
2539 2023-03-03 Anthony Green <green@moxielogic.com>
2541 * config/moxie/constraints.md (A, B, W): Change
2542 define_constraint to define_memory_constraint.
2544 2023-03-03 Xi Ruoyao <xry111@xry111.site>
2546 * toplev.cc (process_options): Fix the spelling of
2547 "-fstack-clash-protection".
2549 2023-03-03 Richard Biener <rguenther@suse.de>
2551 PR tree-optimization/109002
2552 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
2553 PHI-translate ANTIC_IN.
2555 2023-03-03 Jakub Jelinek <jakub@redhat.com>
2557 PR tree-optimization/108988
2558 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
2559 size_type_node before passing it as argument to fwrite. Formatting
2562 2023-03-03 Richard Biener <rguenther@suse.de>
2565 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
2566 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
2567 * config/i386/i386-features.h (scalar_chain::max_visits): New.
2568 (scalar_chain::build): Add bitmap parameter, return boolean.
2569 (scalar_chain::add_insn): Likewise.
2570 (scalar_chain::analyze_register_chain): Likewise.
2571 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
2572 Initialize max_visits.
2573 (scalar_chain::analyze_register_chain): When we exhaust
2574 max_visits, abort. Also abort when running into any
2576 (scalar_chain::add_insn): Propagate abort.
2577 (scalar_chain::build): Likewise. When aborting amend
2578 the set of disallowed insn with the insns set.
2579 (convert_scalars_to_vector): Adjust. Do not convert aborted
2582 2023-03-03 Richard Biener <rguenther@suse.de>
2585 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
2586 generate a DIE for a function scope static.
2588 2023-03-03 Alexandre Oliva <oliva@adacore.com>
2590 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
2592 2023-03-02 Jakub Jelinek <jakub@redhat.com>
2595 * target.h (emit_support_tinfos_callback): New typedef.
2596 * targhooks.h (default_emit_support_tinfos): Declare.
2597 * targhooks.cc (default_emit_support_tinfos): New function.
2598 * target.def (emit_support_tinfos): New target hook.
2599 * doc/tm.texi.in (emit_support_tinfos): Document it.
2600 * doc/tm.texi: Regenerated.
2601 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
2602 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
2604 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
2606 * ira-costs.cc: Include print-rtl.h.
2607 (record_reg_classes, scan_one_insn): Add code to print debug info.
2608 (record_operand_costs): Find and use smaller cost for hard reg
2611 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
2612 Paul-Antoine Arras <pa@codesourcery.com>
2614 * builtins.cc (mathfn_built_in_explicit): New.
2615 * config/gcn/gcn.cc: Include case-cfn-macros.h.
2616 (mathfn_built_in_explicit): Add prototype.
2617 (gcn_vectorize_builtin_vectorized_function): New.
2618 (gcn_libc_has_function): New.
2619 (TARGET_LIBC_HAS_FUNCTION): Define.
2620 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
2622 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
2624 PR tree-optimization/108979
2625 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
2626 operations on invariants.
2628 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
2630 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
2631 * config/s390/s390.cc (s390_option_override_internal): Make
2632 partial vector usage the default from z13 on.
2633 * config/s390/vector.md (len_load_v16qi): Add.
2634 (len_store_v16qi): Add.
2636 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
2638 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
2639 of constant 0 offset.
2641 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
2643 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
2645 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
2647 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
2649 * config.gcc: add -with-{no-}msa build option.
2650 * config/mips/mips.h: Likewise.
2651 * doc/install.texi: Likewise.
2653 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
2655 PR tree-optimization/108603
2656 * explow.cc (convert_memory_address_addr_space_1): Only wrap
2657 the result of a recursive call in a CONST if no instructions
2660 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
2662 PR tree-optimization/108430
2663 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
2664 of inverted condition.
2666 2023-03-02 Jakub Jelinek <jakub@redhat.com>
2669 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
2670 comparison copy the bytes from ptr to a temporary buffer and clearing
2671 padding bits in there.
2673 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
2675 PR middle-end/108545
2676 * gimplify.cc (struct tree_operand_hash_no_se): New.
2677 (omp_index_mapping_groups_1, omp_index_mapping_groups,
2678 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
2679 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
2680 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
2681 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
2682 of tree_operand_hash.
2684 2023-03-01 LIU Hao <lh_mouse@126.com>
2687 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
2688 Remove the size limit `pch_VA_max_size`
2690 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
2692 PR middle-end/108546
2693 * omp-low.cc (lower_omp_target): Remove optional handling
2694 on the receiver side, i.e. inside target (data), for
2697 2023-03-01 Jakub Jelinek <jakub@redhat.com>
2700 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
2701 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
2703 2023-03-01 Richard Biener <rguenther@suse.de>
2705 PR tree-optimization/108970
2706 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
2707 Check we can copy the BBs.
2708 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
2710 (vect_do_peeling): Streamline error handling.
2712 2023-03-01 Richard Biener <rguenther@suse.de>
2714 PR tree-optimization/108950
2715 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
2716 Check oprnd0 is defined in the loop.
2717 * tree-vect-loop.cc (vectorizable_reduction): Record all
2718 operands vector types, compute that of invariants and
2719 properly update their SLP nodes.
2721 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
2724 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
2725 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
2727 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
2729 PR middle-end/107411
2730 PR middle-end/107411
2731 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
2733 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
2734 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
2736 2023-02-28 Jakub Jelinek <jakub@redhat.com>
2739 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
2740 comparison rather than index > bound.
2741 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
2742 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
2743 * doc/invoke.texi (-fsanitize=bounds): Document that whether
2744 flexible array member-like arrays are instrumented or not depends
2745 on -fstrict-flex-arrays* options of strict_flex_array attributes.
2746 (-fsanitize=bounds-strict): Document that flexible array members
2747 are not instrumented.
2749 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
2753 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
2754 (fmod<mode>3): Ditto.
2755 (fpremxf4_i387): Ditto.
2756 (reminderxf3): Ditto.
2757 (reminder<mode>3): Ditto.
2758 (fprem1xf4_i387): Ditto.
2760 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
2762 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
2763 generating FFS with mismatched operand and result modes, by using
2764 an explicit SIGN_EXTEND/ZERO_EXTEND.
2765 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
2766 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
2768 2023-02-27 Patrick Palka <ppalka@redhat.com>
2770 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
2771 * lra-int.h (lra_change_class): Likewise.
2772 * recog.h (which_op_alt): Likewise.
2773 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
2776 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2778 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
2780 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
2782 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
2783 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
2785 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
2787 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
2788 (xtensa_get_config_v3): New functions.
2790 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2792 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
2794 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
2796 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
2797 the macro to 0x1000000000.
2799 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
2802 * doc/gm2.texi (-fm2-pathname): New option documented.
2803 (-fm2-pathnameI): New option documented.
2804 (-fm2-prefix=): New option documented.
2805 (-fruntime-modules=): Update default module list.
2807 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
2810 * config/xtensa/xtensa-protos.h
2811 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
2812 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
2813 to xtensa_expand_call.
2814 (xtensa_expand_call): Emit the call and add a clobber expression
2815 for the static chain to it in case of windowed ABI.
2816 * config/xtensa/xtensa.md (call, call_value, sibcall)
2817 (sibcall_value): Call xtensa_expand_call and complete expansion
2818 right after that call.
2820 2023-02-24 Richard Biener <rguenther@suse.de>
2822 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
2823 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
2824 changing alignment of vec<T, A, vl_embed> and simplifying
2826 (vec<T, A, vl_embed>::address): Compute as this + 1.
2827 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
2828 vector instead of the offset of the m_vecdata member.
2829 (auto_vec<T, N>::m_data): Turn storage into
2830 uninitialized unsigned char.
2831 (auto_vec<T, N>::auto_vec): Allow allocation of one
2832 stack member. Initialize m_vec in a special way to
2833 avoid later stringop overflow diagnostics.
2834 * vec.cc (test_auto_alias): New.
2835 (vec_cc_tests): Call it.
2837 2023-02-24 Richard Biener <rguenther@suse.de>
2839 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
2840 take a const reference to the object, use address to
2842 (vec<T, A, vl_embed>::contains): Use address to access data.
2843 (vec<T, A, vl_embed>::operator[]): Use address instead of
2844 m_vecdata to access data.
2845 (vec<T, A, vl_embed>::iterate): Likewise.
2846 (vec<T, A, vl_embed>::copy): Likewise.
2847 (vec<T, A, vl_embed>::quick_push): Likewise.
2848 (vec<T, A, vl_embed>::pop): Likewise.
2849 (vec<T, A, vl_embed>::quick_insert): Likewise.
2850 (vec<T, A, vl_embed>::ordered_remove): Likewise.
2851 (vec<T, A, vl_embed>::unordered_remove): Likewise.
2852 (vec<T, A, vl_embed>::block_remove): Likewise.
2853 (vec<T, A, vl_heap>::address): Likewise.
2855 2023-02-24 Martin Liska <mliska@suse.cz>
2858 * asan.cc (asan_add_global): Use proper TU name for normal
2859 global variables (and aux_base_name for the artificial one).
2861 2023-02-24 Jakub Jelinek <jakub@redhat.com>
2863 * config/i386/i386-builtin.def: Update description of BDESC
2864 and BDESC_FIRST in file comment to include mask2.
2866 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2868 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
2870 2023-02-24 Jakub Jelinek <jakub@redhat.com>
2872 PR middle-end/108854
2873 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
2874 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
2875 nodes and adjust their DECL_CONTEXT.
2877 2023-02-24 Jakub Jelinek <jakub@redhat.com>
2880 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
2881 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
2882 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
2883 __builtin_ia32_cvtne2ps2bf16_v8bf,
2884 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
2885 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
2886 __builtin_ia32_cvtneps2bf16_v8sf_mask,
2887 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
2888 __builtin_ia32_cvtneps2bf16_v4sf_mask,
2889 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
2890 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
2891 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
2892 __builtin_ia32_dpbf16ps_v4sf_mask,
2893 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
2894 OPTION_MASK_ISA_AVX512VL.
2896 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
2898 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
2899 Add non-compact 32-bit multilibs.
2901 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
2903 * config/mips/mips.md (*clo<mode>2): New pattern.
2905 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
2907 * config/mips/mips.h (machine_function): New variable
2908 use_hazard_barrier_return_p.
2909 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
2910 (mips_hb_return_internal): New insn pattern.
2911 * config/mips/mips.cc (mips_attribute_table): Add attribute
2912 use_hazard_barrier_return.
2913 (mips_use_hazard_barrier_return_p): New static function.
2914 (mips_function_attr_inlinable_p): Likewise.
2915 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
2916 Emit error for unsupported architecture choice.
2917 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
2918 Return false for use_hazard_barrier_return.
2919 (mips_expand_epilogue): Emit hazard barrier return.
2920 * doc/extend.texi: Document use_hazard_barrier_return.
2922 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
2924 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
2925 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
2926 for the gcc-internal headers.
2928 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
2930 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
2931 and $(POSTCOMPILE) instead of manual dependency listing.
2932 * config/xtensa/xtensa-dynconfig.c: Rename to ...
2933 * config/xtensa/xtensa-dynconfig.cc: ... this.
2935 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
2937 * doc/cfg.texi: Reorder index entries around @items.
2938 * doc/cpp.texi: Ditto.
2939 * doc/cppenv.texi: Ditto.
2940 * doc/cppopts.texi: Ditto.
2941 * doc/generic.texi: Ditto.
2942 * doc/install.texi: Ditto.
2943 * doc/extend.texi: Ditto.
2944 * doc/invoke.texi: Ditto.
2945 * doc/md.texi: Ditto.
2946 * doc/rtl.texi: Ditto.
2947 * doc/tm.texi.in: Ditto.
2948 * doc/trouble.texi: Ditto.
2949 * doc/tm.texi: Regenerate.
2951 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2953 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
2954 the occurrence of general-purpose register used only once and for
2955 transferring intermediate value.
2957 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2959 * config/xtensa/xtensa.cc (machine_function): Add new member
2960 'eliminated_callee_saved_bmp'.
2961 (xtensa_can_eliminate_callee_saved_reg_p): New function to
2962 determine whether the register can be eliminated or not.
2963 (xtensa_expand_prologue): Add invoking the above function and
2964 elimination the use of callee-saved register by using its stack
2965 slot through the stack pointer (or the frame pointer if needed)
2967 (xtensa_expand_prologue): Modify to not emit register restoration
2968 insn from its stack slot if the register is already eliminated.
2970 2023-02-23 Jakub Jelinek <jakub@redhat.com>
2972 PR translation/108890
2973 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
2974 around fatal_error format strings.
2976 2023-02-23 Richard Biener <rguenther@suse.de>
2978 * tree-ssa-structalias.cc (handle_lhs_call): Do not
2979 re-create rhsc, only truncate it.
2981 2023-02-23 Jakub Jelinek <jakub@redhat.com>
2983 PR middle-end/106258
2984 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
2985 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
2987 2023-02-23 Richard Biener <rguenther@suse.de>
2989 * tree-if-conv.cc (tree_if_conversion): Properly manage
2990 memory of refs and the contained data references.
2992 2023-02-23 Richard Biener <rguenther@suse.de>
2994 PR tree-optimization/108888
2995 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
2997 (predicate_statements): Only predicate calls with PLF_2.
2999 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3001 * config/xtensa/xtensa.md
3002 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
3003 Add missing "SI:" to PLUS RTXes.
3005 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
3008 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
3009 Emit (use (reg:SI A0_REG)) at the end in the sibling call
3010 (i.e. the same place as (return) in the normal call).
3012 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
3015 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
3018 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
3020 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
3021 (sibcall_value, sibcall_value_internal): Add 'use' expression
3024 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
3026 * doc/cppdiropts.texi: Reorder @opindex commands to precede
3027 @items they relate to.
3028 * doc/cppopts.texi: Ditto.
3029 * doc/cppwarnopts.texi: Ditto.
3030 * doc/invoke.texi: Ditto.
3031 * doc/lto.texi: Ditto.
3033 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
3035 * internal-fn.cc (expand_MASK_CALL): New.
3036 * internal-fn.def (MASK_CALL): New.
3037 * internal-fn.h (expand_MASK_CALL): New prototype.
3038 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
3039 for mask arguments also.
3040 * tree-if-conv.cc: Include cgraph.h.
3041 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
3042 (predicate_statements): Convert functions to IFN_MASK_CALL.
3043 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
3044 IFN_MASK_CALL as a SIMD function call.
3045 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
3046 IFN_MASK_CALL as an inbranch SIMD function call.
3047 Generate the mask vector arguments.
3049 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3051 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
3052 (class widen_reducop): Ditto.
3053 (class freducop): Ditto.
3054 (class widen_freducop): Ditto.
3056 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3057 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
3071 (vfwredosum): Ditto.
3072 (vfwredusum): Ditto.
3073 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
3075 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3076 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
3077 (DEF_RVV_WU_OPS): Ditto.
3078 (DEF_RVV_WF_OPS): Ditto.
3079 (vint8mf8_t): Ditto.
3080 (vint8mf4_t): Ditto.
3081 (vint8mf2_t): Ditto.
3086 (vint16mf4_t): Ditto.
3087 (vint16mf2_t): Ditto.
3088 (vint16m1_t): Ditto.
3089 (vint16m2_t): Ditto.
3090 (vint16m4_t): Ditto.
3091 (vint16m8_t): Ditto.
3092 (vint32mf2_t): Ditto.
3093 (vint32m1_t): Ditto.
3094 (vint32m2_t): Ditto.
3095 (vint32m4_t): Ditto.
3096 (vint32m8_t): Ditto.
3097 (vuint8mf8_t): Ditto.
3098 (vuint8mf4_t): Ditto.
3099 (vuint8mf2_t): Ditto.
3100 (vuint8m1_t): Ditto.
3101 (vuint8m2_t): Ditto.
3102 (vuint8m4_t): Ditto.
3103 (vuint8m8_t): Ditto.
3104 (vuint16mf4_t): Ditto.
3105 (vuint16mf2_t): Ditto.
3106 (vuint16m1_t): Ditto.
3107 (vuint16m2_t): Ditto.
3108 (vuint16m4_t): Ditto.
3109 (vuint16m8_t): Ditto.
3110 (vuint32mf2_t): Ditto.
3111 (vuint32m1_t): Ditto.
3112 (vuint32m2_t): Ditto.
3113 (vuint32m4_t): Ditto.
3114 (vuint32m8_t): Ditto.
3115 (vfloat32mf2_t): Ditto.
3116 (vfloat32m1_t): Ditto.
3117 (vfloat32m2_t): Ditto.
3118 (vfloat32m4_t): Ditto.
3119 (vfloat32m8_t): Ditto.
3120 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
3121 (DEF_RVV_WU_OPS): Ditto.
3122 (DEF_RVV_WF_OPS): Ditto.
3123 (required_extensions_p): Add reduction support.
3124 (rvv_arg_type_info::get_base_vector_type): Ditto.
3125 (rvv_arg_type_info::get_tree_type): Ditto.
3126 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
3127 * config/riscv/riscv.md: Ditto.
3128 * config/riscv/vector-iterators.md (minu): Ditto.
3129 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
3130 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
3131 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
3132 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
3133 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
3134 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
3135 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
3137 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3139 * config/riscv/iterators.md: New iterator.
3140 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
3141 (enum ternop_type): New enum.
3142 (class vmacc): New class.
3143 (class imac): Ditto.
3144 (class vnmsac): Ditto.
3145 (enum widen_ternop_type): New enum.
3146 (class vmadd): Ditto.
3147 (class vnmsub): Ditto.
3148 (class iwmac): Ditto.
3149 (class vwmacc): Ditto.
3150 (class vwmaccu): Ditto.
3151 (class vwmaccsu): Ditto.
3152 (class vwmaccus): Ditto.
3153 (class reverse_binop): Ditto.
3154 (class vfmacc): Ditto.
3155 (class vfnmsac): Ditto.
3156 (class vfmadd): Ditto.
3157 (class vfnmsub): Ditto.
3158 (class vfnmacc): Ditto.
3159 (class vfmsac): Ditto.
3160 (class vfnmadd): Ditto.
3161 (class vfmsub): Ditto.
3162 (class vfwmacc): Ditto.
3163 (class vfwnmacc): Ditto.
3164 (class vfwmsac): Ditto.
3165 (class vfwnmsac): Ditto.
3166 (class float_misc): Ditto.
3167 (class fcmp): Ditto.
3168 (class vfclass): Ditto.
3169 (class vfcvt_x): Ditto.
3170 (class vfcvt_rtz_x): Ditto.
3171 (class vfcvt_f): Ditto.
3172 (class vfwcvt_x): Ditto.
3173 (class vfwcvt_rtz_x): Ditto.
3174 (class vfwcvt_f): Ditto.
3175 (class vfncvt_x): Ditto.
3176 (class vfncvt_rtz_x): Ditto.
3177 (class vfncvt_f): Ditto.
3178 (class vfncvt_rod_f): Ditto.
3180 * config/riscv/riscv-vector-builtins-bases.h:
3181 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
3225 (vfcvt_rtz_x): Ditto.
3226 (vfcvt_rtz_xu): Ditto.
3230 (vfwcvt_rtz_x): Ditto.
3231 (vfwcvt_rtz_xu): Ditto.
3235 (vfncvt_rtz_x): Ditto.
3236 (vfncvt_rtz_xu): Ditto.
3238 (vfncvt_rod_f): Ditto.
3239 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
3240 (struct move_def): Ditto.
3241 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
3242 (DEF_RVV_CONVERT_I_OPS): Ditto.
3243 (DEF_RVV_CONVERT_U_OPS): Ditto.
3244 (DEF_RVV_WCONVERT_I_OPS): Ditto.
3245 (DEF_RVV_WCONVERT_U_OPS): Ditto.
3246 (DEF_RVV_WCONVERT_F_OPS): Ditto.
3247 (vfloat64m1_t): Ditto.
3248 (vfloat64m2_t): Ditto.
3249 (vfloat64m4_t): Ditto.
3250 (vfloat64m8_t): Ditto.
3251 (vint32mf2_t): Ditto.
3252 (vint32m1_t): Ditto.
3253 (vint32m2_t): Ditto.
3254 (vint32m4_t): Ditto.
3255 (vint32m8_t): Ditto.
3256 (vint64m1_t): Ditto.
3257 (vint64m2_t): Ditto.
3258 (vint64m4_t): Ditto.
3259 (vint64m8_t): Ditto.
3260 (vuint32mf2_t): Ditto.
3261 (vuint32m1_t): Ditto.
3262 (vuint32m2_t): Ditto.
3263 (vuint32m4_t): Ditto.
3264 (vuint32m8_t): Ditto.
3265 (vuint64m1_t): Ditto.
3266 (vuint64m2_t): Ditto.
3267 (vuint64m4_t): Ditto.
3268 (vuint64m8_t): Ditto.
3269 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
3270 (DEF_RVV_CONVERT_U_OPS): Ditto.
3271 (DEF_RVV_WCONVERT_I_OPS): Ditto.
3272 (DEF_RVV_WCONVERT_U_OPS): Ditto.
3273 (DEF_RVV_WCONVERT_F_OPS): Ditto.
3274 (DEF_RVV_F_OPS): Ditto.
3275 (DEF_RVV_WEXTF_OPS): Ditto.
3276 (required_extensions_p): Adjust for floating-point support.
3277 (check_required_extensions): Ditto.
3278 (unsigned_base_type_p): Ditto.
3279 (get_mode_for_bitsize): Ditto.
3280 (rvv_arg_type_info::get_base_vector_type): Ditto.
3281 (rvv_arg_type_info::get_tree_type): Ditto.
3282 * config/riscv/riscv-vector-builtins.def (v_f): New define.
3288 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
3289 (function_expander::arg_mode): New function.
3290 * config/riscv/vector-iterators.md (sof): New iterator.
3296 (fixuns_trunc): Ditto.
3298 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
3299 (@pred_<optab><mode>): Ditto.
3300 (@pred_<optab><mode>_scalar): Ditto.
3301 (@pred_<optab><mode>_reverse_scalar): Ditto.
3302 (@pred_<copysign><mode>): Ditto.
3303 (@pred_<copysign><mode>_scalar): Ditto.
3304 (@pred_mul_<optab><mode>): Ditto.
3305 (pred_mul_<optab><mode>_undef_merge): Ditto.
3306 (*pred_<madd_nmsub><mode>): Ditto.
3307 (*pred_<macc_nmsac><mode>): Ditto.
3308 (*pred_mul_<optab><mode>): Ditto.
3309 (@pred_mul_<optab><mode>_scalar): Ditto.
3310 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
3311 (*pred_<madd_nmsub><mode>_scalar): Ditto.
3312 (*pred_<macc_nmsac><mode>_scalar): Ditto.
3313 (*pred_mul_<optab><mode>_scalar): Ditto.
3314 (@pred_neg_mul_<optab><mode>): Ditto.
3315 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
3316 (*pred_<nmadd_msub><mode>): Ditto.
3317 (*pred_<nmacc_msac><mode>): Ditto.
3318 (*pred_neg_mul_<optab><mode>): Ditto.
3319 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
3320 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
3321 (*pred_<nmadd_msub><mode>_scalar): Ditto.
3322 (*pred_<nmacc_msac><mode>_scalar): Ditto.
3323 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
3324 (@pred_<misc_op><mode>): Ditto.
3325 (@pred_class<mode>): Ditto.
3326 (@pred_dual_widen_<optab><mode>): Ditto.
3327 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
3328 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
3329 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
3330 (@pred_widen_mul_<optab><mode>): Ditto.
3331 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
3332 (@pred_widen_neg_mul_<optab><mode>): Ditto.
3333 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
3334 (@pred_cmp<mode>): Ditto.
3335 (*pred_cmp<mode>): Ditto.
3336 (*pred_cmp<mode>_narrow): Ditto.
3337 (@pred_cmp<mode>_scalar): Ditto.
3338 (*pred_cmp<mode>_scalar): Ditto.
3339 (*pred_cmp<mode>_scalar_narrow): Ditto.
3340 (@pred_eqne<mode>_scalar): Ditto.
3341 (*pred_eqne<mode>_scalar): Ditto.
3342 (*pred_eqne<mode>_scalar_narrow): Ditto.
3343 (@pred_merge<mode>_scalar): Ditto.
3344 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
3345 (@pred_<fix_cvt><mode>): Ditto.
3346 (@pred_<float_cvt><mode>): Ditto.
3347 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
3348 (@pred_widen_<fix_cvt><mode>): Ditto.
3349 (@pred_widen_<float_cvt><mode>): Ditto.
3350 (@pred_extend<mode>): Ditto.
3351 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
3352 (@pred_narrow_<fix_cvt><mode>): Ditto.
3353 (@pred_narrow_<float_cvt><mode>): Ditto.
3354 (@pred_trunc<mode>): Ditto.
3355 (@pred_rod_trunc<mode>): Ditto.
3357 2023-02-22 Jakub Jelinek <jakub@redhat.com>
3359 PR middle-end/106258
3360 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
3361 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
3362 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
3363 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
3365 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
3367 * common.opt (-Wcomplain-wrong-lang): New.
3368 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
3369 * opts-common.cc (prune_options): Handle it.
3370 * opts-global.cc (complain_wrong_lang): Use it.
3372 2023-02-21 David Malcolm <dmalcolm@redhat.com>
3375 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
3377 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
3380 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
3382 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
3383 (sibcall_value, sibcall_value_internal): Add 'use' expression
3386 2023-02-21 Richard Biener <rguenther@suse.de>
3388 PR tree-optimization/108691
3389 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
3390 assert about calls_setjmp not becoming true when it was false.
3392 2023-02-21 Richard Biener <rguenther@suse.de>
3394 PR tree-optimization/108793
3395 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
3396 Use convert operands to niter_type when computing num.
3398 2023-02-21 Richard Biener <rguenther@suse.de>
3401 2023-02-13 Richard Biener <rguenther@suse.de>
3403 PR tree-optimization/108691
3404 * tree-cfg.cc (notice_special_calls): When the CFG is built
3405 honor gimple_call_ctrl_altering_p.
3406 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
3407 temporarily if the call is not control-altering.
3408 * calls.cc (emit_call_1): Do not add REG_SETJMP if
3409 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
3411 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3413 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
3414 true if register A0 (return address register) when -Og is specified.
3416 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
3418 * config/i386/predicates.md
3419 (general_x64constmem_operand): New predicate.
3420 * config/i386/i386.md (*cmpqi_ext<mode>_1):
3421 Use nonimm_x64constmem_operand.
3422 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
3423 (*addqi_ext<mode>_1): Ditto.
3424 (*testqi_ext<mode>_1): Ditto.
3425 (*andqi_ext<mode>_1): Ditto.
3426 (*andqi_ext<mode>_1_cc): Ditto.
3427 (*<any_or:code>qi_ext<mode>_1): Ditto.
3428 (*xorqi_ext<mode>_1_cc): Ditto.
3430 2023-02-20 Jakub Jelinek <jakub2redhat.com>
3433 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
3434 gen_umadddi4_highpart{,_le}.
3436 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
3438 * config/riscv/riscv.md (prefetch): Use r instead of p for the
3440 (riscv_prefetchi_<mode>): Ditto.
3442 2023-02-20 Richard Biener <rguenther@suse.de>
3444 PR tree-optimization/108816
3445 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
3446 versioning condition split prerequesite, assert required
3449 2023-02-20 Richard Biener <rguenther@suse.de>
3451 PR tree-optimization/108825
3452 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
3453 loop-local verfication only verify there's no pending SSA
3456 2023-02-20 Richard Biener <rguenther@suse.de>
3458 PR tree-optimization/108819
3459 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
3460 we have an SSA name as iv_2 as expected.
3462 2023-02-18 Jakub Jelinek <jakub@redhat.com>
3464 PR tree-optimization/108819
3465 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
3467 2023-02-18 Jakub Jelinek <jakub@redhat.com>
3470 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
3471 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
3473 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
3474 with ix86_replace_reg_with_reg.
3476 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
3478 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
3480 2023-02-18 Xi Ruoyao <xry111@xry111.site>
3482 * config.gcc (triplet_abi): Set its value based on $with_abi,
3484 (la_canonical_triplet): Set it after $triplet_abi is set
3486 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
3487 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
3490 2023-02-18 Andrew Pinski <apinski@marvell.com>
3492 * match.pd: Remove #if GIMPLE around the
3495 2023-02-18 Andrew Pinski <apinski@marvell.com>
3497 * value-query.h (get_range_query): Return the global ranges
3500 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
3502 * doc/invoke.texi (@item -Wall): Fix typo in
3505 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
3508 * config/i386/predicates.md
3509 (nonimm_x64constmem_operand): New predicate.
3510 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
3511 (*subqi_ext<mode>_0): Ditto.
3512 (*andqi_ext<mode>_0): Ditto.
3513 (*<any_or:code>qi_ext<mode>_0): Ditto.
3515 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
3518 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
3519 int_outermode instead of GET_MODE (tem) to prevent
3520 VOIDmode from entering simplify_gen_subreg.
3522 2023-02-17 Richard Biener <rguenther@suse.de>
3524 PR tree-optimization/108821
3525 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
3526 move volatile accesses.
3528 2023-02-17 Richard Biener <rguenther@suse.de>
3530 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
3531 called on virtual operands.
3532 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
3533 ssa_undefined_value_p calls.
3534 (vn_phi_insert): Likewise.
3535 (set_ssa_val_to): Likewise.
3536 (visit_phi): Avoid extra work with equivalences for
3537 virtual operand PHIs.
3539 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3541 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
3543 (class mask_nlogic): Ditto.
3544 (class mask_notlogic): Ditto.
3545 (class vmmv): Ditto.
3546 (class vmclr): Ditto.
3547 (class vmset): Ditto.
3548 (class vmnot): Ditto.
3549 (class vcpop): Ditto.
3550 (class vfirst): Ditto.
3551 (class mask_misc): Ditto.
3552 (class viota): Ditto.
3555 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3556 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
3575 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
3576 (struct mask_alu_def): Ditto.
3578 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3579 * config/riscv/riscv-vector-builtins.cc: Ditto.
3580 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
3581 for dest it scalar RVV intrinsics.
3582 * config/riscv/vector-iterators.md (sof): New iterator.
3583 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
3584 (@pred_<optab>not<mode>): New pattern.
3585 (@pred_popcount<VB:mode><P:mode>): New pattern.
3586 (@pred_ffs<VB:mode><P:mode>): New pattern.
3587 (@pred_<misc_op><mode>): New pattern.
3588 (@pred_iota<mode>): New pattern.
3589 (@pred_series<mode>): New pattern.
3591 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3593 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
3597 * config/riscv/riscv-vector-builtins.cc: Ditto.
3599 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3600 kito-cheng <kito.cheng@sifive.com>
3602 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
3603 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
3604 (sew64_scalar_helper): New function.
3605 * config/riscv/vector.md: Normalization.
3607 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3609 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
3671 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3673 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
3674 (@pred_<optab><mode>_scalar): Ditto.
3675 (*pred_<optab><mode>_scalar): Ditto.
3676 (*pred_<optab><mode>_extended_scalar): Ditto.
3678 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3680 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
3681 (init_builtins): Ditto.
3682 (mangle_builtin_type): Ditto.
3683 (verify_type_context): Ditto.
3684 (handle_pragma_vector): Ditto.
3685 (builtin_decl): Ditto.
3686 (expand_builtin): Ditto.
3687 (const_vec_all_same_in_range_p): Ditto.
3688 (legitimize_move): Ditto.
3689 (emit_vlmax_op): Ditto.
3690 (emit_nonvlmax_op): Ditto.
3695 (get_avl_type): Ditto.
3696 (calculate_ratio): Ditto.
3697 (enum vlmul_type): Ditto.
3699 (neg_simm5_p): Ditto.
3700 (has_vi_variant_p): Ditto.
3702 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3704 * config/riscv/riscv-protos.h (simm32_p): Remove.
3705 * config/riscv/riscv-v.cc (simm32_p): Ditto.
3706 * config/riscv/vector.md: Use immediate_operand
3707 instead of riscv_vector::simm32_p.
3709 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
3711 * doc/invoke.texi (Optimize Options): Reword the explanation
3712 getting minimal, maximal and default values of a parameter.
3714 2023-02-16 Patrick Palka <ppalka@redhat.com>
3716 * addresses.h: Mechanically drop 'static' from 'static inline'
3717 functions via s/^static inline/inline/g.
3719 * attribs.h: Likewise.
3720 * basic-block.h: Likewise.
3721 * bitmap.h: Likewise.
3722 * cfghooks.h: Likewise.
3723 * cfgloop.h: Likewise.
3724 * cgraph.h: Likewise.
3725 * cselib.h: Likewise.
3726 * data-streamer.h: Likewise.
3727 * debug.h: Likewise.
3729 * diagnostic.h: Likewise.
3730 * dominance.h: Likewise.
3731 * dumpfile.h: Likewise.
3732 * emit-rtl.h: Likewise.
3733 * except.h: Likewise.
3734 * expmed.h: Likewise.
3736 * fixed-value.h: Likewise.
3737 * gengtype.h: Likewise.
3738 * gimple-expr.h: Likewise.
3739 * gimple-iterator.h: Likewise.
3740 * gimple-predict.h: Likewise.
3741 * gimple-range-fold.h: Likewise.
3742 * gimple-ssa.h: Likewise.
3743 * gimple.h: Likewise.
3744 * graphite.h: Likewise.
3745 * hard-reg-set.h: Likewise.
3746 * hash-map.h: Likewise.
3747 * hash-set.h: Likewise.
3748 * hash-table.h: Likewise.
3749 * hwint.h: Likewise.
3750 * input.h: Likewise.
3751 * insn-addr.h: Likewise.
3752 * internal-fn.h: Likewise.
3753 * ipa-fnsummary.h: Likewise.
3754 * ipa-icf-gimple.h: Likewise.
3755 * ipa-inline.h: Likewise.
3756 * ipa-modref.h: Likewise.
3757 * ipa-prop.h: Likewise.
3758 * ira-int.h: Likewise.
3760 * lra-int.h: Likewise.
3762 * lto-streamer.h: Likewise.
3763 * memmodel.h: Likewise.
3764 * omp-general.h: Likewise.
3765 * optabs-query.h: Likewise.
3766 * optabs.h: Likewise.
3767 * plugin.h: Likewise.
3768 * pretty-print.h: Likewise.
3769 * range.h: Likewise.
3770 * read-md.h: Likewise.
3771 * recog.h: Likewise.
3773 * rtl-iter.h: Likewise.
3775 * sbitmap.h: Likewise.
3776 * sched-int.h: Likewise.
3777 * sel-sched-ir.h: Likewise.
3779 * sparseset.h: Likewise.
3780 * ssa-iterators.h: Likewise.
3781 * system.h: Likewise.
3782 * target-globals.h: Likewise.
3783 * target.h: Likewise.
3784 * timevar.h: Likewise.
3785 * tree-chrec.h: Likewise.
3786 * tree-data-ref.h: Likewise.
3787 * tree-iterator.h: Likewise.
3788 * tree-outof-ssa.h: Likewise.
3789 * tree-phinodes.h: Likewise.
3790 * tree-scalar-evolution.h: Likewise.
3791 * tree-sra.h: Likewise.
3792 * tree-ssa-alias.h: Likewise.
3793 * tree-ssa-live.h: Likewise.
3794 * tree-ssa-loop-manip.h: Likewise.
3795 * tree-ssa-loop.h: Likewise.
3796 * tree-ssa-operands.h: Likewise.
3797 * tree-ssa-propagate.h: Likewise.
3798 * tree-ssa-sccvn.h: Likewise.
3799 * tree-ssa.h: Likewise.
3800 * tree-ssanames.h: Likewise.
3801 * tree-streamer.h: Likewise.
3802 * tree-switch-conversion.h: Likewise.
3803 * tree-vectorizer.h: Likewise.
3805 * wide-int.h: Likewise.
3807 2023-02-16 Jakub Jelinek <jakub@redhat.com>
3809 PR tree-optimization/108657
3810 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
3811 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
3812 is a call to internal or builtin function.
3814 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
3816 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
3817 using-declaration to unhide functions.
3819 2023-02-16 Jakub Jelinek <jakub@redhat.com>
3821 PR tree-optimization/108783
3822 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
3823 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
3824 t to curr->op. Otherwise, punt if either newop1 or newop2 are
3825 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
3827 2023-02-16 Richard Biener <rguenther@suse.de>
3829 PR tree-optimization/108791
3830 * tree-ssa-forwprop.cc (optimize_vector_load): Build
3831 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
3834 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
3837 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
3838 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
3839 (ix86_expand_prologue): Likewise.
3841 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
3843 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
3845 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
3847 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
3848 int248_register_operand predicate in zero_extract sub-RTX.
3849 (*cmpqi_ext<mode>_2): Ditto.
3850 (*cmpqi_ext<mode>_3): Ditto.
3851 (*cmpqi_ext<mode>_4): Ditto.
3852 (*extzvqi_mem_rex64): Ditto.
3854 (*insvqi_1_mem_rex64): Ditto.
3855 (@insv<mode>_1): Ditto.
3859 (*extendqi<SWI24:mode>_ext_1): Ditto.
3860 (*addqi_ext<mode>_1): Ditto.
3861 (*addqi_ext<mode>_2): Ditto.
3862 (*subqi_ext<mode>_2): Ditto.
3863 (*testqi_ext<mode>_1): Ditto.
3864 (*testqi_ext<mode>_2): Ditto.
3865 (*andqi_ext<mode>_1): Ditto.
3866 (*andqi_ext<mode>_1_cc): Ditto.
3867 (*andqi_ext<mode>_2): Ditto.
3868 (*<any_or:code>qi_ext<mode>_1): Ditto.
3869 (*<any_or:code>qi_ext<mode>_2): Ditto.
3870 (*xorqi_ext<mode>_1_cc): Ditto.
3871 (*negqi_ext<mode>_2): Ditto.
3872 (*ashlqi_ext<mode>_2): Ditto.
3873 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
3875 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
3877 * config/i386/predicates.md (int248_register_operand):
3878 Rename from extr_register_operand.
3879 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
3880 (*extzx<mode>): Ditto.
3881 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
3882 (*ashl<mode>3_mask): Ditto.
3883 (*<any_shiftrt:insn><mode>3_mask): Ditto.
3884 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
3885 (*<any_rotate:insn><mode>3_mask): Ditto.
3886 (*<btsc><mode>_mask): Ditto.
3887 (*btr<mode>_mask): Ditto.
3888 (*jcc_bt<mode>_mask_1): Ditto.
3890 2023-02-15 Richard Biener <rguenther@suse.de>
3893 * df-core.cc (df_worklist_propagate_forward): Put later
3894 blocks on worklist and only earlier blocks on pending.
3895 (df_worklist_propagate_backward): Likewise.
3896 (df_worklist_dataflow_doublequeue): Change the iteration
3897 to process new blocks in the same iteration if that
3898 maintains the iteration order.
3900 2023-02-15 Marek Polacek <polacek@redhat.com>
3902 PR middle-end/106080
3903 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
3906 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3908 * config/riscv/predicates.md: Refine codes.
3909 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
3910 * config/riscv/riscv-v.cc: Refine codes.
3911 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
3913 (class imac): New class.
3914 (enum widen_ternop_type): New enum.
3915 (class iwmac): New class.
3917 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3918 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
3926 * config/riscv/riscv-vector-builtins.cc
3927 (function_builder::apply_predication): Adjust for multiply-add support.
3928 (function_expander::add_vundef_operand): Refine codes.
3929 (function_expander::use_ternop_insn): New function.
3930 (function_expander::use_widen_ternop_insn): Ditto.
3931 * config/riscv/riscv-vector-builtins.h: New function.
3932 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
3933 (pred_mul_<optab><mode>_undef_merge): Ditto.
3934 (*pred_<madd_nmsub><mode>): Ditto.
3935 (*pred_<macc_nmsac><mode>): Ditto.
3936 (*pred_mul_<optab><mode>): Ditto.
3937 (@pred_mul_<optab><mode>_scalar): Ditto.
3938 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
3939 (*pred_<madd_nmsub><mode>_scalar): Ditto.
3940 (*pred_<macc_nmsac><mode>_scalar): Ditto.
3941 (*pred_mul_<optab><mode>_scalar): Ditto.
3942 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
3943 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
3944 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
3945 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
3946 (@pred_widen_mul_plus<su><mode>): Ditto.
3947 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
3948 (@pred_widen_mul_plussu<mode>): Ditto.
3949 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
3950 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
3952 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3954 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
3955 (vector_all_trues_mask_operand): New predicate.
3956 (vector_undef_operand): New predicate.
3957 (ltge_operator): New predicate.
3958 (comparison_except_ltge_operator): New predicate.
3959 (comparison_except_eqge_operator): New predicate.
3960 (ge_operator): New predicate.
3961 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
3962 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
3964 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3965 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
3975 * config/riscv/riscv-vector-builtins-shapes.cc
3976 (struct return_mask_def): Adjust for compare support.
3977 * config/riscv/riscv-vector-builtins.cc
3978 (function_expander::use_compare_insn): New function.
3979 * config/riscv/riscv-vector-builtins.h
3980 (function_expander::add_integer_operand): Ditto.
3981 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
3982 * config/riscv/riscv.md: Add vector min/max attributes.
3983 * config/riscv/vector-iterators.md (xnor): New iterator.
3984 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
3985 (*pred_cmp<mode>): Ditto.
3986 (*pred_cmp<mode>_narrow): Ditto.
3987 (@pred_ltge<mode>): Ditto.
3988 (*pred_ltge<mode>): Ditto.
3989 (*pred_ltge<mode>_narrow): Ditto.
3990 (@pred_cmp<mode>_scalar): Ditto.
3991 (*pred_cmp<mode>_scalar): Ditto.
3992 (*pred_cmp<mode>_scalar_narrow): Ditto.
3993 (@pred_eqne<mode>_scalar): Ditto.
3994 (*pred_eqne<mode>_scalar): Ditto.
3995 (*pred_eqne<mode>_scalar_narrow): Ditto.
3996 (*pred_cmp<mode>_extended_scalar): Ditto.
3997 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
3998 (*pred_eqne<mode>_extended_scalar): Ditto.
3999 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
4000 (@pred_ge<mode>_scalar): Ditto.
4001 (@pred_<optab><mode>): Ditto.
4002 (@pred_n<optab><mode>): Ditto.
4003 (@pred_<optab>n<mode>): Ditto.
4004 (@pred_not<mode>): Ditto.
4006 2023-02-15 Martin Jambor <mjambor@suse.cz>
4009 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
4010 creation of non-scalar replacements even if IPA-CP knows their
4013 2023-02-15 Jakub Jelinek <jakub@redhat.com>
4017 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
4018 expander, change operand 3 to be TImode, emit maddlddi4 and
4019 umadddi4_highpart{,_le} with its low half and finally add the high
4022 2023-02-15 Martin Liska <mliska@suse.cz>
4024 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
4026 2023-02-15 Richard Biener <rguenther@suse.de>
4028 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
4029 for with_poison and alias worklist to it.
4030 (sanitize_asan_mark_poison): Likewise.
4032 2023-02-15 Richard Biener <rguenther@suse.de>
4035 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
4036 Combine bitmap test and set.
4037 (scalar_chain::add_insn): Likewise.
4038 (scalar_chain::analyze_register_chain): Remove redundant
4039 attempt to add to queue and instead strengthen assert.
4040 Sink common attempts to mark the def dual-mode.
4041 (scalar_chain::add_to_queue): Remove redundant insn bitmap
4044 2023-02-15 Richard Biener <rguenther@suse.de>
4047 * config/i386/i386-features.cc (convert_scalars_to_vector):
4048 Switch candidates bitmaps to tree view before building the chains.
4050 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
4052 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
4053 "failure trying to reload" call.
4055 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
4057 * gdbinit.in (phrs): New command.
4058 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
4059 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
4061 2023-02-14 David Faust <david.faust@oracle.com>
4064 * config/bpf/constraints.md (q): New memory constraint.
4065 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
4066 (zero_extendqidi2): Likewise.
4067 (zero_extendsidi2): Likewise.
4068 (*mov<MM:mode>): Likewise.
4070 2023-02-14 Andrew Pinski <apinski@marvell.com>
4072 PR tree-optimization/108355
4073 PR tree-optimization/96921
4074 * match.pd: Add pattern for "1 - bool_val".
4076 2023-02-14 Richard Biener <rguenther@suse.de>
4078 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
4079 basic block index hashing on the availability of ->cclhs.
4080 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
4081 rely on ->cclhs availability.
4082 (vn_phi_lookup): Set ->cclhs only when we are eventually
4083 going to CSE the PHI.
4084 (vn_phi_insert): Likewise.
4086 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
4088 * gimplify.cc (gimplify_save_expr): Add missing guard.
4090 2023-02-14 Richard Biener <rguenther@suse.de>
4092 PR tree-optimization/108782
4093 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
4094 Make sure we're not vectorizing an inner loop.
4096 2023-02-14 Jakub Jelinek <jakub@redhat.com>
4099 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
4100 * asan.h (asan_memfn_rtl): Declare.
4101 * asan.cc (asan_memfn_rtls): New variable.
4102 (asan_memfn_rtl): New function.
4103 * builtins.cc (expand_builtin): If
4104 param_asan_kernel_mem_intrinsic_prefix and function is
4105 kernel-{,hw}address sanitized, emit calls to
4106 __{,hw}asan_{memcpy,memmove,memset} rather than
4107 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
4108 instead of flag_sanitize & SANITIZE_ADDRESS to check if
4109 asan_intercepted_p functions shouldn't be expanded inline.
4111 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
4113 PR tree-optimization/96373
4114 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
4115 operations on the loop mask. Reject partial vectors if this isn't
4118 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
4120 PR rtl-optimization/108681
4121 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
4122 code to handle bare uses and clobbers.
4124 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
4126 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
4127 caller_save_p flag when clearing defined_p flag.
4128 (setup_reg_equiv): Ditto.
4129 * lra-constraints.cc (lra_constraints): Ditto.
4131 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
4134 * config/i386/predicates.md (extr_register_operand):
4135 New special predicate.
4136 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
4137 as operand 1 predicate.
4138 (*exzv<mode>): Ditto.
4139 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
4141 2023-02-13 Richard Biener <rguenther@suse.de>
4143 PR tree-optimization/28614
4144 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
4145 walking all edges in most cases.
4146 (vn_nary_op_insert_pieces_predicated): Avoid repeated
4147 calls to can_track_predicate_on_edge unless checking is
4149 (process_bb): Instead call it once here for each edge
4150 we register possibly multiple predicates on.
4152 2023-02-13 Richard Biener <rguenther@suse.de>
4154 PR tree-optimization/108691
4155 * tree-cfg.cc (notice_special_calls): When the CFG is built
4156 honor gimple_call_ctrl_altering_p.
4157 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
4158 temporarily if the call is not control-altering.
4159 * calls.cc (emit_call_1): Do not add REG_SETJMP if
4160 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
4162 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4165 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
4166 (struct s390_sched_state): Initialise to zero.
4167 (s390_sched_variable_issue): For better debuggability also emit
4169 (s390_sched_init): Unconditionally reset scheduler state.
4171 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
4173 * ifcvt.h (noce_if_info::cond_inverted): New field.
4174 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
4175 values when cond_inverted is true.
4176 (noce_find_if_block): Allow the condition to be inverted when
4177 handling conditional moves.
4179 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
4181 * config/s390/predicates.md (execute_operation): Use
4182 constrain_operands instead of extract_constrain_insn in order to
4183 determine wheter there exists a valid alternative.
4185 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
4187 * common/config/arc/arc-common.cc (arc_option_optimization_table):
4188 Remove millicode from list.
4190 2023-02-13 Martin Liska <mliska@suse.cz>
4192 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
4194 2023-02-13 Richard Biener <rguenther@suse.de>
4196 PR tree-optimization/106722
4197 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
4198 whether we marked a stmt.
4199 (mark_control_dependent_edges_necessary): When
4200 mark_last_stmt_necessary didn't mark any stmt make sure
4201 to mark its control dependent edges.
4202 (propagate_necessity): Likewise.
4204 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
4206 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
4207 (DWARF_FRAME_REGISTERS): New.
4208 (DWARF_REG_TO_UNWIND_COLUMN): New.
4210 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
4212 * doc/sourcebuild.texi: Remove (broken) direct reference to
4213 "The GNU configure and build system".
4215 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
4217 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
4218 gen_add3_insn to gen_rtx_SET.
4219 (riscv_adjust_libcall_cfi_epilogue): Likewise.
4221 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4223 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
4224 (class vnclip): Ditto.
4226 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4227 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
4236 * config/riscv/vector-iterators.md (su): Add instruction.
4239 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
4240 (@pred_<sat_op><mode>_scalar): Ditto.
4241 (*pred_<sat_op><mode>_scalar): Ditto.
4242 (*pred_<sat_op><mode>_extended_scalar): Ditto.
4243 (@pred_narrow_clip<v_su><mode>): Ditto.
4244 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
4246 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4248 * config/riscv/constraints.md (Wbr): Remove unused constraint.
4249 * config/riscv/predicates.md: Fix move operand predicate.
4250 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
4251 (class vncvt_x): Ditto.
4252 (class vmerge): Ditto.
4253 (class vmv_v): Ditto.
4255 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4256 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
4263 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
4264 (struct move_def): Ditto.
4266 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4267 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
4268 (DEF_RVV_WEXTU_OPS): Ditto
4269 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
4274 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
4275 * config/riscv/vector-iterators.md (nmsac):New iterator.
4276 (nmsub): New iterator.
4277 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
4278 (@pred_merge<mode>_scalar): New pattern.
4279 (*pred_merge<mode>_scalar): New pattern.
4280 (*pred_merge<mode>_extended_scalar): New pattern.
4281 (@pred_narrow_<optab><mode>): New pattern.
4282 (@pred_narrow_<optab><mode>_scalar): New pattern.
4283 (@pred_trunc<mode>): New pattern.
4285 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4287 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
4288 (class vmsbc): Ditto.
4289 (BASE): Define new class.
4290 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4291 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
4293 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
4296 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4297 * config/riscv/riscv-vector-builtins.cc
4298 (function_expander::use_exact_insn): Adjust for new support
4299 * config/riscv/riscv-vector-builtins.h
4300 (function_base::has_merge_operand_p): New function.
4301 * config/riscv/vector-iterators.md: New iterator.
4302 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
4303 (@pred_msbc<mode>): Ditto.
4304 (@pred_madc<mode>_scalar): Ditto.
4305 (@pred_msbc<mode>_scalar): Ditto.
4306 (*pred_madc<mode>_scalar): Ditto.
4307 (*pred_madc<mode>_extended_scalar): Ditto.
4308 (*pred_msbc<mode>_scalar): Ditto.
4309 (*pred_msbc<mode>_extended_scalar): Ditto.
4310 (@pred_madc<mode>_overflow): Ditto.
4311 (@pred_msbc<mode>_overflow): Ditto.
4312 (@pred_madc<mode>_overflow_scalar): Ditto.
4313 (@pred_msbc<mode>_overflow_scalar): Ditto.
4314 (*pred_madc<mode>_overflow_scalar): Ditto.
4315 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
4316 (*pred_msbc<mode>_overflow_scalar): Ditto.
4317 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
4319 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4321 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
4322 * config/riscv/riscv-v.cc (simm32_p): Ditto.
4323 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
4324 (class vsbc): Ditto.
4326 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4327 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
4329 * config/riscv/riscv-vector-builtins-shapes.cc
4330 (struct no_mask_policy_def): Ditto.
4332 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4333 * config/riscv/riscv-vector-builtins.cc
4334 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
4335 (rvv_arg_type_info::get_tree_type): Ditto.
4336 (function_expander::use_exact_insn): Ditto.
4337 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
4338 (function_base::use_mask_predication_p): New function.
4339 * config/riscv/vector-iterators.md: New iterator.
4340 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
4341 (@pred_sbc<mode>): Ditto.
4342 (@pred_adc<mode>_scalar): Ditto.
4343 (@pred_sbc<mode>_scalar): Ditto.
4344 (*pred_adc<mode>_scalar): Ditto.
4345 (*pred_adc<mode>_extended_scalar): Ditto.
4346 (*pred_sbc<mode>_scalar): Ditto.
4347 (*pred_sbc<mode>_extended_scalar): Ditto.
4349 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4351 * config/riscv/vector.md: use "zero" reg.
4353 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4355 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
4357 (class vwmulsu): Ditto.
4358 (class vwcvt): Ditto.
4359 (BASE): Add integer widening support.
4360 * config/riscv/riscv-vector-builtins-bases.h: Ditto
4361 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
4364 (vwmulu): New class.
4365 (vwmulsu): New class.
4366 (vwaddu): New class.
4367 (vwsubu): New class.
4368 (vwcvt_x): New class.
4369 (vwcvtu_x): New class.
4370 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
4372 (struct widen_alu_def): New class.
4374 * config/riscv/riscv-vector-builtins-shapes.h: New class.
4375 * config/riscv/riscv-vector-builtins.cc
4376 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
4377 (rvv_arg_type_info::get_tree_type): Ditto.
4378 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
4380 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
4382 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
4383 * config/riscv/riscv.h (X0_REGNUM): New constant.
4384 * config/riscv/vector-iterators.md: New iterators.
4385 * config/riscv/vector.md
4386 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
4388 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
4390 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
4391 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
4393 (@pred_widen_mulsu<mode>): Ditto.
4394 (@pred_widen_mulsu<mode>_scalar): Ditto.
4395 (@pred_<optab><mode>): Ditto.
4397 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4398 kito-cheng <kito.cheng@sifive.com>
4400 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
4401 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
4403 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4404 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
4408 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
4410 (DEF_RVV_FULL_V_U_OPS): Ditto.
4411 (vint8mf8_t): Ditto.
4412 (vint8mf4_t): Ditto.
4413 (vint8mf2_t): Ditto.
4418 (vint16mf4_t): Ditto.
4419 (vint16mf2_t): Ditto.
4420 (vint16m1_t): Ditto.
4421 (vint16m2_t): Ditto.
4422 (vint16m4_t): Ditto.
4423 (vint16m8_t): Ditto.
4424 (vint32mf2_t): Ditto.
4425 (vint32m1_t): Ditto.
4426 (vint32m2_t): Ditto.
4427 (vint32m4_t): Ditto.
4428 (vint32m8_t): Ditto.
4429 (vint64m1_t): Ditto.
4430 (vint64m2_t): Ditto.
4431 (vint64m4_t): Ditto.
4432 (vint64m8_t): Ditto.
4433 (vuint8mf8_t): Ditto.
4434 (vuint8mf4_t): Ditto.
4435 (vuint8mf2_t): Ditto.
4436 (vuint8m1_t): Ditto.
4437 (vuint8m2_t): Ditto.
4438 (vuint8m4_t): Ditto.
4439 (vuint8m8_t): Ditto.
4440 (vuint16mf4_t): Ditto.
4441 (vuint16mf2_t): Ditto.
4442 (vuint16m1_t): Ditto.
4443 (vuint16m2_t): Ditto.
4444 (vuint16m4_t): Ditto.
4445 (vuint16m8_t): Ditto.
4446 (vuint32mf2_t): Ditto.
4447 (vuint32m1_t): Ditto.
4448 (vuint32m2_t): Ditto.
4449 (vuint32m4_t): Ditto.
4450 (vuint32m8_t): Ditto.
4451 (vuint64m1_t): Ditto.
4452 (vuint64m2_t): Ditto.
4453 (vuint64m4_t): Ditto.
4454 (vuint64m8_t): Ditto.
4455 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
4456 (DEF_RVV_FULL_V_U_OPS): Ditto.
4457 (check_required_extensions): Add vmulh support.
4458 (rvv_arg_type_info::get_tree_type): Ditto.
4459 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
4460 (enum rvv_base_type): Ditto.
4461 * config/riscv/riscv.opt: Add 'V' extension flag.
4462 * config/riscv/vector-iterators.md (su): New iterator.
4463 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
4464 (@pred_mulh<v_su><mode>_scalar): Ditto.
4465 (*pred_mulh<v_su><mode>_scalar): Ditto.
4466 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
4468 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4470 * config/riscv/iterators.md: Add sign_extend/zero_extend.
4471 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
4473 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
4474 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
4477 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
4478 for vsext/vzext support.
4479 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
4481 (DEF_RVV_QEXTI_OPS): Ditto.
4482 (DEF_RVV_OEXTI_OPS): Ditto.
4483 (DEF_RVV_WEXTU_OPS): Ditto.
4484 (DEF_RVV_QEXTU_OPS): Ditto.
4485 (DEF_RVV_OEXTU_OPS): Ditto.
4486 (vint16mf4_t): Ditto.
4487 (vint16mf2_t): Ditto.
4488 (vint16m1_t): Ditto.
4489 (vint16m2_t): Ditto.
4490 (vint16m4_t): Ditto.
4491 (vint16m8_t): Ditto.
4492 (vint32mf2_t): Ditto.
4493 (vint32m1_t): Ditto.
4494 (vint32m2_t): Ditto.
4495 (vint32m4_t): Ditto.
4496 (vint32m8_t): Ditto.
4497 (vint64m1_t): Ditto.
4498 (vint64m2_t): Ditto.
4499 (vint64m4_t): Ditto.
4500 (vint64m8_t): Ditto.
4501 (vuint16mf4_t): Ditto.
4502 (vuint16mf2_t): Ditto.
4503 (vuint16m1_t): Ditto.
4504 (vuint16m2_t): Ditto.
4505 (vuint16m4_t): Ditto.
4506 (vuint16m8_t): Ditto.
4507 (vuint32mf2_t): Ditto.
4508 (vuint32m1_t): Ditto.
4509 (vuint32m2_t): Ditto.
4510 (vuint32m4_t): Ditto.
4511 (vuint32m8_t): Ditto.
4512 (vuint64m1_t): Ditto.
4513 (vuint64m2_t): Ditto.
4514 (vuint64m4_t): Ditto.
4515 (vuint64m8_t): Ditto.
4516 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
4517 (DEF_RVV_QEXTI_OPS): Ditto.
4518 (DEF_RVV_OEXTI_OPS): Ditto.
4519 (DEF_RVV_WEXTU_OPS): Ditto.
4520 (DEF_RVV_QEXTU_OPS): Ditto.
4521 (DEF_RVV_OEXTU_OPS): Ditto.
4522 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
4524 (rvv_arg_type_info::get_tree_type): Ditto.
4525 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
4526 * config/riscv/vector-iterators.md (z): New attribute.
4527 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
4528 (@pred_<optab><mode>_vf4): Ditto.
4529 (@pred_<optab><mode>_vf8): Ditto.
4531 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4533 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
4534 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
4535 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
4536 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4537 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
4541 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
4546 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
4547 (@pred_<optab><mode>_scalar): New pattern.
4548 (*pred_<optab><mode>_scalar): New pattern.
4549 (*pred_<optab><mode>_extended_scalar): New pattern.
4551 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4553 * config/riscv/iterators.md: Add neg and not.
4554 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
4556 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4557 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
4578 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
4579 (struct alu_def): Ditto.
4581 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4582 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
4583 * config/riscv/vector-iterators.md: New iterator.
4584 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
4586 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4588 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
4590 2023-02-11 Jakub Jelinek <jakub@redhat.com>
4593 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
4594 item->offset bit position is too large to be representable as
4595 unsigned int byte position.
4597 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
4599 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
4601 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
4603 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
4604 valid_combine only when ira_use_lra_p is true.
4606 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
4608 * params.opt (ira-simple-lra-insn-threshold): Add new param.
4609 * ira.cc (ira): Use the param to switch on simple LRA.
4611 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
4613 PR tree-optimization/108687
4614 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
4615 back to RFD_NONE mode for calculations.
4616 (ranger_cache::propagate_cache): Call the internal edge range API
4617 with RFD_READ_ONLY instead of changing the external routine.
4619 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
4621 PR tree-optimization/108520
4622 * gimple-range-infer.cc (check_assume_func): Invoke
4623 gimple_range_global directly instead using global_range_query.
4624 * value-query.cc (get_range_global): Add function context and
4625 avoid calling nonnull_arg_p if not cfun.
4626 (gimple_range_global): Add function context pointer.
4627 * value-query.h (imple_range_global): Add function context.
4629 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4631 * config/riscv/constraints.md (Wdm): Adjust constraint.
4632 (Wbr): New constraint.
4633 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
4634 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
4635 (emit_vlmax_op): New function.
4636 (emit_nonvlmax_op): Ditto.
4638 (neg_simm5_p): Ditto.
4639 (has_vi_variant_p): Ditto.
4640 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
4641 (emit_vlmax_op): New function.
4642 (emit_nonvlmax_op): Ditto.
4643 (expand_const_vector): Adjust function.
4644 (legitimize_move): Ditto.
4645 (simm32_p): New function.
4647 (neg_simm5_p): Ditto.
4648 (has_vi_variant_p): Ditto.
4649 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
4651 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4652 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
4655 (vminu): Remove signed cases.
4657 (vdiv): Remove unsigned cases.
4659 (vdivu): Remove signed cases.
4668 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
4669 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
4670 * config/riscv/vector-iterators.md: New iterators.
4671 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
4673 (@pred_<optab><mode>_scalar): New pattern.
4674 (@pred_sub<mode>_reverse_scalar): Ditto.
4675 (*pred_<optab><mode>_scalar): Ditto.
4676 (*pred_<optab><mode>_extended_scalar): Ditto.
4677 (*pred_sub<mode>_reverse_scalar): Ditto.
4678 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
4680 2023-02-10 Richard Biener <rguenther@suse.de>
4682 PR tree-optimization/108724
4683 * tree-vect-stmts.cc (vectorizable_operation): Avoid
4684 using word_mode vectors when vector lowering will
4685 decompose them to elementwise operations.
4687 2023-02-10 Jakub Jelinek <jakub@redhat.com>
4690 2023-02-09 Martin Liska <mliska@suse.cz>
4693 * doc/extend.texi: Document that the function
4694 does not work correctly for old VIA processors.
4696 2023-02-10 Andrew Pinski <apinski@marvell.com>
4697 Andrew Macleod <amacleod@redhat.com>
4699 PR tree-optimization/108684
4700 * tree-ssa-dce.cc (simple_dce_from_worklist):
4701 Check all ssa names and not just non-vdef ones
4702 before accepting the inline-asm.
4703 Call unlink_stmt_vdef on the statement before
4706 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
4708 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
4709 * ira.cc (validate_equiv_mem): Check memref address variance.
4710 (no_equiv): Clear caller_save_p flag.
4711 (update_equiv_regs): Define caller save equivalence for
4713 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
4714 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
4715 call_save_p. Use caller save equivalence depending on the arg.
4716 (split_reg): Adjust the call.
4718 2023-02-09 Jakub Jelinek <jakub@redhat.com>
4721 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
4722 (cpu_indicator_init): Call get_available_features for all CPUs with
4723 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
4726 2023-02-09 Jakub Jelinek <jakub@redhat.com>
4728 PR tree-optimization/108688
4729 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
4730 of BIT_INSERT_EXPR extracting exactly all inserted bits even
4731 when without mode precision. Formatting fixes.
4733 2023-02-09 Andrew Pinski <apinski@marvell.com>
4735 PR tree-optimization/108688
4736 * match.pd (bit_field_ref [bit_insert]): Avoid generating
4737 BIT_FIELD_REFs of non-mode-precision integral operands.
4739 2023-02-09 Martin Liska <mliska@suse.cz>
4742 * doc/extend.texi: Document that the function
4743 does not work correctly for old VIA processors.
4745 2023-02-09 Andreas Schwab <schwab@suse.de>
4747 * lto-wrapper.cc (merge_and_complain): Handle
4748 -funwind-tables and -fasynchronous-unwind-tables.
4749 (append_compiler_options): Likewise.
4751 2023-02-09 Richard Biener <rguenther@suse.de>
4753 PR tree-optimization/26854
4754 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
4755 view around insert_updated_phi_nodes_for.
4756 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
4758 (walk_aliased_vdefs_1): Likewise.
4760 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
4762 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
4764 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
4767 * config.gcc (tm_mlib_file): Define new variable.
4769 2023-02-08 Jakub Jelinek <jakub@redhat.com>
4771 PR tree-optimization/108692
4772 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
4773 widened_code which is different from code, don't call
4774 vect_look_through_possible_promotion but instead just check op is
4775 SSA_NAME with integral type for which vect_is_simple_use is true
4776 and call set_op on this_unprom.
4778 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
4780 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
4782 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
4784 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
4785 to 'aarch_ra_sign_key'.
4786 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
4788 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
4789 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
4790 * config/arm/arm.opt: Define.
4792 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
4794 PR tree-optimization/108316
4795 * tree-vect-stmts.cc (get_load_store_type): When using
4796 internal functions for gather/scatter, make sure that the type
4797 of the offset argument is consistent with the offset vector type.
4799 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
4802 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
4804 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
4805 * ira.cc (validate_equiv_mem): Check memref address variance.
4806 (update_equiv_regs): Define caller save equivalence for
4808 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
4809 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
4810 call_save_p. Use caller save equivalence depending on the arg.
4811 (split_reg): Adjust the call.
4813 2023-02-08 Jakub Jelinek <jakub@redhat.com>
4815 * tree.def (SAD_EXPR): Remove outdated comment about missing
4818 2023-02-07 Marek Polacek <polacek@redhat.com>
4820 * doc/invoke.texi: Update -fchar8_t documentation.
4822 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
4824 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
4825 * ira.cc (validate_equiv_mem): Check memref address variance.
4826 (update_equiv_regs): Define caller save equivalence for
4828 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
4829 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
4830 call_save_p. Use caller save equivalence depending on the arg.
4831 (split_reg): Adjust the call.
4833 2023-02-07 Richard Biener <rguenther@suse.de>
4835 PR tree-optimization/26854
4836 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
4837 instead of immediate uses.
4839 2023-02-07 Jakub Jelinek <jakub@redhat.com>
4841 PR tree-optimization/106923
4842 * ipa-split.cc (execute_split_functions): Don't split returns_twice
4845 2023-02-07 Jakub Jelinek <jakub@redhat.com>
4847 PR tree-optimization/106433
4848 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
4849 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
4851 2023-02-07 Jan Hubicka <jh@suse.cz>
4853 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
4856 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
4858 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
4859 (process_asm): Create a constructor for GCN_STACK_SIZE.
4860 (main): Parse the -mstack-size option.
4862 2023-02-06 Alex Coplan <alex.coplan@arm.com>
4865 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
4866 Use correct constraint for operand 3.
4868 2023-02-06 Martin Jambor <mjambor@suse.cz>
4870 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
4872 2023-02-06 Xi Ruoyao <xry111@xry111.site>
4874 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
4875 New define_int_iterator.
4876 (bytepick_d_ashift_amount): Likewise.
4877 (bytepick_imm): New define_int_attr.
4878 (bytepick_w_lshiftrt_amount): Likewise.
4879 (bytepick_d_lshiftrt_amount): Likewise.
4880 (bytepick_w_<bytepick_imm>): New define_insn template.
4881 (bytepick_w_<bytepick_imm>_extend): Likewise.
4882 (bytepick_d_<bytepick_imm>): Likewise.
4883 (bytepick_w): Remove unused define_insn.
4884 (bytepick_d): Likewise.
4885 (UNSPEC_BYTEPICK_W): Remove unused unspec.
4886 (UNSPEC_BYTEPICK_D): Likewise.
4887 * config/loongarch/predicates.md (const_0_to_3_operand):
4888 Remove unused define_predicate.
4889 (const_0_to_7_operand): Likewise.
4891 2023-02-06 Jakub Jelinek <jakub@redhat.com>
4893 PR tree-optimization/108655
4894 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
4895 or -fsanitize=unreachable -fsanitize-trap=unreachable return
4896 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
4898 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
4900 * doc/install.texi (Specific): Remove PW32.
4902 2023-02-03 Jakub Jelinek <jakub@redhat.com>
4904 PR tree-optimization/108647
4905 * range-op.cc (operator_equal::op1_range,
4906 operator_not_equal::op1_range): Don't test op2 bound
4907 equality if op2.undefined_p (), instead set_varying.
4908 (operator_lt::op1_range, operator_le::op1_range,
4909 operator_gt::op1_range, operator_ge::op1_range): Return false if
4911 (operator_lt::op2_range, operator_le::op2_range,
4912 operator_gt::op2_range, operator_ge::op2_range): Return false if
4915 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
4917 PR tree-optimization/108639
4918 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
4920 (irange::operator==): Same.
4922 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
4924 PR tree-optimization/108647
4925 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
4926 (foperator_lt::op2_range): Same.
4927 (foperator_le::op1_range): Same.
4928 (foperator_le::op2_range): Same.
4929 (foperator_gt::op1_range): Same.
4930 (foperator_gt::op2_range): Same.
4931 (foperator_ge::op1_range): Same.
4932 (foperator_ge::op2_range): Same.
4933 (foperator_unordered_lt::op1_range): Same.
4934 (foperator_unordered_lt::op2_range): Same.
4935 (foperator_unordered_le::op1_range): Same.
4936 (foperator_unordered_le::op2_range): Same.
4937 (foperator_unordered_gt::op1_range): Same.
4938 (foperator_unordered_gt::op2_range): Same.
4939 (foperator_unordered_ge::op1_range): Same.
4940 (foperator_unordered_ge::op2_range): Same.
4942 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
4944 PR tree-optimization/107570
4945 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
4947 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
4949 * doc/gm2.texi (Internals): Remove from menu.
4950 (Using): Comment out ifnohtml conditional.
4951 (Documentation): Use gcc url.
4952 (License): Node simplified.
4953 (Copying): New node. Include gpl_v3_without_node.
4954 (Contributing): Node simplified.
4955 (Internals): Commented out.
4956 (Libraries): Node simplified.
4961 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
4963 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
4965 (mve_vqshluq_m_n_s<mode>): Likewise.
4966 (mve_vshlq_m_<supf><mode>): Likewise.
4967 (mve_vsriq_m_n_<supf><mode>): Likewise.
4968 (mve_vsubq_m_<supf><mode>): Likewise.
4970 2023-02-03 Martin Jambor <mjambor@suse.cz>
4973 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
4974 when comparing to an IPA-CP value.
4975 (dump_list_of_param_indices): New function.
4976 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
4977 Dump removed candidates using dump_list_of_param_indices.
4978 * ipa-param-manipulation.cc
4979 (ipa_param_body_adjustments::modify_expression): Add assert checking
4980 sizes of a VIEW_CONVERT_EXPR will match.
4981 (ipa_param_body_adjustments::modify_assignment): Likewise.
4983 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
4985 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
4986 * config/riscv/riscv.cc: Ditto.
4988 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4990 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
4994 * config/riscv/vector.md: Ditto.
4996 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4998 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
4999 * config/riscv/riscv-vector-builtins-bases.cc: New class.
5000 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
5003 * config/riscv/riscv-vector-builtins.cc: Ditto.
5004 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
5006 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
5008 * toplev.cc (toplev::main): Only print the version information header
5009 from toplevel main().
5011 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
5013 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
5014 cond_{ashl|ashr|lshr}
5016 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
5018 PR rtl-optimization/108086
5019 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
5020 Adjust size-related commentary accordingly.
5022 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
5024 PR rtl-optimization/108508
5025 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
5026 the splay tree search gives the first clobber in the second group,
5027 make sure that the root of the first clobber group is updated
5028 correctly. Enter the new clobber group into the definition splay
5031 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
5033 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
5034 Fix finding best match score.
5036 2023-02-02 Jakub Jelinek <jakub@redhat.com>
5039 PR rtl-optimization/108463
5041 * cselib.cc (cselib_current_insn): Move declaration earlier.
5042 (cselib_hasher::equal): For debug only locs, temporarily override
5043 cselib_current_insn to their l->setting_insn for the
5044 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
5045 promote some debug locs.
5046 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
5047 when using cselib call cselib_lookup_from_insn on the address but
5048 don't substitute it.
5050 2023-02-02 Richard Biener <rguenther@suse.de>
5052 PR middle-end/108625
5053 * genmatch.cc (expr::gen_transform): Also disallow resimplification
5054 from pushing to lseq with force_leaf.
5055 (dt_simplify::gen_1): Likewise.
5057 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
5059 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
5060 (struct kernargs): Replace the common content with kernargs_abi.
5061 (struct heap): Delete.
5062 (main): Read GCN_STACK_SIZE envvar.
5063 Allocate space for the device stacks.
5064 Write the new kernargs fields.
5065 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
5066 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
5067 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
5068 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
5069 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
5070 Set up the stacks from the values in the kernargs, not private.
5071 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
5072 (gcn_hsa_declare_function_name): Turn off the private segment.
5073 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
5074 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
5075 * config/gcn/gcn.opt (mstack-size): Change the description.
5077 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
5080 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
5081 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
5082 addressing MVE predicate modes.
5083 (mve_bool_vec_to_const): Change to represent correct MVE predicate
5085 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
5087 (arm_vector_mode_supported_p): Likewise.
5088 (arm_mode_to_pred_mode): Add V2QI.
5089 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
5091 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
5092 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
5093 (v2qi_UP): New macro.
5094 (v4bi_UP): New macro.
5095 (v8bi_UP): New macro.
5096 (v16bi_UP): New macro.
5097 (arm_expand_builtin_args): Make it able to expand the new predicate
5099 * config/arm/arm-modes.def (V2QI): New mode.
5100 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
5101 Pred4x4_t): Remove unused predicate builtin types.
5102 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
5103 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
5104 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
5105 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
5106 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
5107 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
5108 of MODE_VECTOR_BOOL.
5109 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
5110 (MVE_VPRED): Likewise.
5111 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
5112 (MVE_vctp): New mode attribute.
5116 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
5117 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
5119 (mve_vpnothi): Rename this...
5120 (mve_vpnotv16bi): ... to this.
5121 (mve_vctp<mode1>q_mhi): Rename this...
5122 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
5123 (mve_vldrdq_gather_base_z_<supf>v2di,
5124 mve_vldrdq_gather_offset_z_<supf>v2di,
5125 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
5126 mve_vstrdq_scatter_base_p_<supf>v2di,
5127 mve_vstrdq_scatter_offset_p_<supf>v2di,
5128 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
5129 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
5130 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
5131 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
5132 mve_vldrdq_gather_base_wb_z_<supf>v2di,
5133 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
5134 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
5136 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
5138 (VCTP): ... with this.
5139 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
5140 (VCTP_M): ... with this.
5141 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
5142 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
5144 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
5147 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
5148 (arm_modes_tieable_p): Make MVE predicate modes tieable.
5149 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
5150 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
5151 simplify_subreg to simplify subregs where the outermode is not scalar.
5153 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
5156 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
5157 new qualifiers parameter and use unsigned short type for MVE predicate.
5158 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
5160 (arm_init_crypto_builtins): Likewise.
5162 2023-02-02 Jakub Jelinek <jakub@redhat.com>
5165 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
5166 * internal-fn.def (TRAP): Remove.
5167 * internal-fn.cc (expand_TRAP): Remove.
5168 * tree.cc (build_common_builtin_nodes): Define
5169 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
5170 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
5171 instead of BUILT_IN_TRAP.
5172 * gimple.cc (gimple_build_builtin_unreachable): Remove
5173 emitting internal function for BUILT_IN_TRAP.
5174 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
5175 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
5176 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
5177 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
5178 BUILT_IN_UNREACHABLE_TRAP.
5179 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
5180 * tree-cfg.cc (verify_gimple_call,
5181 pass_warn_function_return::execute): Likewise.
5182 * attribs.cc (decl_attributes): Don't report exclusions on
5183 BUILT_IN_UNREACHABLE_TRAP either.
5185 2023-02-02 liuhongt <hongtao.liu@intel.com>
5187 PR tree-optimization/108601
5188 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
5190 (vectorizable_nonlinear_induction): Remove
5191 vect_can_peel_nonlinear_iv_p.
5192 (vect_can_peel_nonlinear_iv_p): Don't peel
5193 nonlinear iv(mult or shift) for epilog when vf is not
5194 constant and moved the defination to ..
5195 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
5198 2023-02-02 Jakub Jelinek <jakub@redhat.com>
5200 PR middle-end/108435
5201 * tree-nested.cc (convert_nonlocal_omp_clauses)
5202 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
5203 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
5204 before calling declare_vars.
5205 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
5206 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
5207 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
5208 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
5210 2023-02-01 Tamar Christina <tamar.christina@arm.com>
5212 * common/config/aarch64/aarch64-common.cc
5213 (struct aarch64_option_extension): Add native_detect and document struct
5215 (all_extensions): Set new field native_detect.
5216 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
5219 2023-02-01 Martin Liska <mliska@suse.cz>
5221 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
5224 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
5226 PR tree-optimization/108356
5227 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
5228 do a search of the DOM tree for a range.
5230 2023-02-01 Martin Liska <mliska@suse.cz>
5233 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
5234 ony non-null values.
5235 * ipa.cc (walk_polymorphic_call_targets): Likewise.
5237 2023-02-01 Martin Liska <mliska@suse.cz>
5240 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
5243 2023-02-01 Jakub Jelinek <jakub@redhat.com>
5246 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
5247 subregs in DEBUG_INSNs.
5249 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
5251 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
5253 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
5255 * config/s390/s390.cc (s390_restore_gpr_p): New function.
5256 (s390_preserve_gpr_arg_in_range_p): New function.
5257 (s390_preserve_gpr_arg_p): New function.
5258 (s390_preserve_fpr_arg_p): New function.
5259 (s390_register_info_stdarg_fpr): Rename to ...
5260 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
5261 (s390_register_info_stdarg_gpr): Rename to ...
5262 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
5263 (s390_register_info): Use the renamed functions above.
5264 (s390_optimize_register_info): Likewise.
5265 (save_fpr): Generate CFI for -mpreserve-args.
5266 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
5267 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
5268 (s390_optimize_prologue): Likewise.
5269 * config/s390/s390.opt: New option -mpreserve-args
5271 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
5273 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
5274 (restore_gprs): Likewise.
5275 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
5276 frame pointer if a frame-pointer is used.
5277 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
5278 * config/s390/s390.md (stack_tie): Add a register operand and
5280 (@stack_tie<mode>): ... this.
5282 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
5284 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
5286 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
5287 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
5289 2023-02-01 Richard Biener <rguenther@suse.de>
5291 PR middle-end/108500
5292 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
5293 with tree traversal algorithm.
5295 2023-02-01 Jason Merrill <jason@redhat.com>
5297 * doc/invoke.texi: Document -Wno-changes-meaning.
5299 2023-02-01 David Malcolm <dmalcolm@redhat.com>
5301 * doc/invoke.texi (Static Analyzer Options): Add notes about
5302 limitations of -fanalyzer.
5304 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5306 * config/riscv/constraints.md (vj): New.
5308 * config/riscv/iterators.md: Add more opcode.
5309 * config/riscv/predicates.md (vector_arith_operand): New.
5310 (vector_neg_arith_operand): New.
5311 (vector_shift_operand): New.
5312 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
5313 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
5330 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
5347 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
5348 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
5349 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
5350 (DEF_RVV_U_OPS): New.
5351 (rvv_arg_type_info::get_base_vector_type): Handle
5352 RVV_BASE_shift_vector.
5353 (rvv_arg_type_info::get_tree_type): Ditto.
5354 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
5355 RVV_BASE_shift_vector.
5356 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
5357 * config/riscv/vector-iterators.md: Handle more opcode.
5358 * config/riscv/vector.md (@pred_<optab><mode>): New.
5360 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
5363 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
5366 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
5368 PR tree-optimization/108608
5369 * tree-vect-loop.cc (vect_transform_reduction): Handle single
5370 def-use cycles that involve function calls rather than tree codes.
5372 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
5374 PR tree-optimization/108385
5375 * gimple-range-gori.cc (gori_compute::compute_operand_range):
5376 Allow VARYING computations to continue if there is a relation.
5377 * range-op.cc (pointer_plus_operator::op2_range): New.
5379 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
5381 PR tree-optimization/108359
5382 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
5383 (range_operator::fold_range): If op1 is equivalent to op2 then
5384 invoke new fold_in_parts_equiv to operate on sub-components.
5385 * range-op.h (wi_fold_in_parts_equiv): New prototype.
5387 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
5389 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
5390 not abort calculations if there is a valid relation available.
5391 (gori_compute::refine_using_relation): Pass correct relation trio.
5392 (gori_compute::compute_operand1_range): Create trio and use it.
5393 (gori_compute::compute_operand2_range): Ditto.
5394 * range-op.cc (operator_plus::op1_range): Use correct trio member.
5395 (operator_minus::op1_range): Use correct trio member.
5396 * value-relation.cc (value_relation::create_trio): New.
5397 * value-relation.h (value_relation::create_trio): New prototype.
5399 2023-01-31 Jakub Jelinek <jakub@redhat.com>
5402 * config/i386/i386-expand.cc
5403 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
5404 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
5405 equal to bitsize of mode.
5407 2023-01-31 Jakub Jelinek <jakub@redhat.com>
5409 PR rtl-optimization/108596
5410 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
5411 ends with asm goto and has a crossing fallthrough edge to the same bb
5412 that contains at least one of its labels by restoring EDGE_CROSSING
5413 flag even on possible edge from cur_bb to new_bb successor.
5415 2023-01-31 Jakub Jelinek <jakub@redhat.com>
5418 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
5419 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
5420 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
5421 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
5422 uninitialized automatic variable __W.
5424 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
5426 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
5428 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5430 * config/riscv/riscv-protos.h (get_vector_mode): New function.
5431 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
5432 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
5433 (class loadstore): Adjust for indexed loads/stores support.
5435 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
5436 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
5452 * config/riscv/riscv-vector-builtins-shapes.cc
5453 (struct indexed_loadstore_def): New class.
5455 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
5456 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
5457 for indexed loads/stores support.
5458 (check_required_extensions): Ditto.
5459 (rvv_arg_type_info::get_base_vector_type): New function.
5460 (rvv_arg_type_info::get_tree_type): Ditto.
5461 (function_builder::add_unique_function): Adjust for indexed loads/stores
5463 (function_expander::use_exact_insn): New function.
5464 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
5465 indexed loads/stores support.
5466 (struct rvv_arg_type_info): Ditto.
5467 (function_expander::index_mode): New function.
5468 (function_base::apply_tail_policy_p): Ditto.
5469 (function_base::apply_mask_policy_p): Ditto.
5470 * config/riscv/vector-iterators.md (unspec): New unspec.
5471 * config/riscv/vector.md (unspec): Ditto.
5472 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
5474 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
5475 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
5476 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
5477 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
5478 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
5479 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
5480 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
5481 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
5482 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
5483 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
5484 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
5485 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
5486 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
5488 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
5490 * config.gcc: Recognize x86_64-*-gnu* targets and include
5492 * config/i386/gnu64.h: Define configuration for new target
5493 including ld.so location.
5495 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
5497 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
5498 ampere1a to include SM4.
5500 2023-01-30 Andrew Pinski <apinski@marvell.com>
5502 PR tree-optimization/108582
5503 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
5504 for middlebb to have no phi nodes.
5506 2023-01-30 Richard Biener <rguenther@suse.de>
5508 PR tree-optimization/108574
5509 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
5510 sameval and def, ignore the equivalence if there's the
5511 danger of oscillating between two values.
5513 2023-01-30 Andreas Schwab <schwab@suse.de>
5515 * common/config/riscv/riscv-common.cc
5516 (riscv_option_optimization_table)
5517 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
5518 -fasynchronous-unwind-tables and -funwind-tables.
5519 * config.gcc (riscv*-*-linux*): Define
5520 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
5522 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
5524 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
5525 value of includedir.
5527 2023-01-30 Richard Biener <rguenther@suse.de>
5530 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
5533 2023-01-30 liuhongt <hongtao.liu@intel.com>
5535 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
5536 * doc/invoke.texi: Ditto.
5538 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
5540 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
5541 (stmt_may_terminate_function_p): If assuming return or EH
5542 volatile asm is safe.
5543 (find_always_executed_bbs): Fix handling of terminating BBS and
5544 infinite loops; add debug output.
5545 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
5547 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
5549 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
5550 off-by-one in checking the permissible shift-amount.
5552 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
5554 * doc/extend.texi (Named Address Spaces): Update link to the
5557 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
5559 * doc/standards.texi (Standards): Fix markup.
5561 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
5563 * doc/standards.texi (Standards): Update link to Objective-C book.
5565 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
5567 * doc/invoke.texi (Instrumentation Options): Update reference to
5570 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
5572 * doc/standards.texi: Update Go1 link.
5574 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5576 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
5577 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
5580 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5581 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
5583 * config/riscv/riscv-vector-builtins.cc
5584 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
5585 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
5586 (@pred_strided_store<mode>): Ditto.
5588 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5590 * config/riscv/vector.md (tail_policy_op_idx): Remove.
5591 (mask_policy_op_idx): Remove.
5592 (avl_type_op_idx): Remove.
5594 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
5596 PR tree-optimization/96373
5597 * tree.h (sign_mask_for): Declare.
5598 * tree.cc (sign_mask_for): New function.
5599 (signed_or_unsigned_type_for): For vector types, try to use the
5600 related_int_vector_mode.
5601 * genmatch.cc (commutative_op): Handle conditional internal functions.
5602 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
5604 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
5606 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
5607 Use the likely minimum VF when bounding the denominators to
5608 the estimated number of iterations.
5610 2023-01-27 Richard Biener <rguenther@suse.de>
5613 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
5614 and -Ofast FP environment side-effects.
5616 2023-01-27 Richard Biener <rguenther@suse.de>
5619 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
5620 Don't add crtfastmath.o for -shared.
5622 2023-01-27 Richard Biener <rguenther@suse.de>
5625 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
5628 2023-01-27 Richard Biener <rguenther@suse.de>
5631 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
5632 crtfastmath.o for -shared.
5634 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
5636 PR tree-optimization/108306
5637 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
5638 varying for shifts that are always out of void range.
5639 (operator_rshift::fold_range): Return [0, 0] not
5640 varying for shifts that are always out of void range.
5642 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
5644 PR tree-optimization/108447
5645 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
5646 Do not attempt to fold HONOR_NAN types.
5648 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5650 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
5651 Remove _m suffix for "vop_m" C++ overloaded API name.
5653 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5655 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
5656 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5657 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
5659 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
5660 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
5668 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
5669 (rvv_arg_type_info::get_tree_type): Ditto.
5670 (function_expander::use_contiguous_load_insn): Ditto.
5671 * config/riscv/vector.md (@pred_store<mode>): Ditto.
5673 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5675 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
5676 (vsetvl_discard_result_insn_p): New function.
5677 (reg_killed_by_bb_p): rename to find_reg_killed_by.
5678 (find_reg_killed_by): New name.
5679 (get_vl): allow it to be called by more functions.
5680 (has_vsetvl_killed_avl_p): Add condition.
5681 (get_avl): allow it to be called by more functions.
5682 (insn_should_be_added_p): New function.
5683 (get_all_nonphi_defs): Refine function.
5684 (get_all_sets): Ditto.
5685 (get_same_bb_set): New function.
5686 (any_insn_in_bb_p): Ditto.
5687 (any_set_in_bb_p): Ditto.
5688 (get_vl_vtype_info): Add VLMAX forward optimization.
5689 (source_equal_p): Fix issues.
5690 (extract_single_source): Refine.
5691 (avl_info::multiple_source_equal_p): New function.
5692 (avl_info::operator==): Adjust for final version.
5693 (vl_vtype_info::operator==): Ditto.
5694 (vl_vtype_info::same_avl_p): Ditto.
5695 (vector_insn_info::parse_insn): Ditto.
5696 (vector_insn_info::available_p): New function.
5697 (vector_insn_info::merge): Adjust for final version.
5698 (vector_insn_info::dump): Add hard_empty.
5699 (pass_vsetvl::hard_empty_block_p): New function.
5700 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
5701 (pass_vsetvl::forward_demand_fusion): Ditto.
5702 (pass_vsetvl::demand_fusion): Ditto.
5703 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
5704 (pass_vsetvl::compute_local_properties): Adjust for final version.
5705 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
5706 (pass_vsetvl::refine_vsetvls): Ditto.
5707 (pass_vsetvl::commit_vsetvls): Ditto.
5708 (pass_vsetvl::propagate_avl): New function.
5709 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
5710 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
5712 2023-01-27 Jakub Jelinek <jakub@redhat.com>
5715 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
5718 2023-01-27 Jakub Jelinek <jakub@redhat.com>
5721 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
5722 redirection of calls to __builtin_trap in addition to redirection
5723 to __builtin_unreachable.
5725 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5727 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
5729 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5731 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
5732 (emit_vsetvl_insn): Ditto.
5734 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5736 * config/riscv/vector.md: Fix constraints.
5738 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5740 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
5742 2023-01-27 Patrick Palka <ppalka@redhat.com>
5743 Jakub Jelinek <jakub@redhat.com>
5745 * tree-core.h (tree_code_type, tree_code_length): For
5746 C++17 and later, add inline keyword, otherwise don't define
5747 the arrays, but declare extern arrays.
5748 * tree.cc (tree_code_type, tree_code_length): Define these
5749 arrays for C++14 and older.
5751 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5753 * config/riscv/riscv-vsetvl.h: Change it into public.
5755 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5757 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
5760 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5762 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
5764 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5766 * config/riscv/vector.md: Fix incorrect attributes.
5768 2023-01-27 Richard Biener <rguenther@suse.de>
5771 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
5772 Don't add crtfastmath.o for -shared.
5774 2023-01-27 Alexandre Oliva <oliva@gnu.org>
5776 * doc/options.texi (option, RejectNegative): Mention that
5777 -g-started options are also implicitly negatable.
5779 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
5781 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
5782 Use get_typenode_from_name to get fixed-width integer type
5784 * config/riscv/riscv-vector-builtins.def: Update define with
5785 fixed-width integer type nodes.
5787 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5789 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
5790 (real_insn_and_same_bb_p): New function.
5791 (same_bb_and_after_or_equal_p): Remove it.
5792 (before_p): New function.
5793 (reg_killed_by_bb_p): Ditto.
5794 (has_vsetvl_killed_avl_p): Ditto.
5795 (get_vl): Move location so that we can call it.
5796 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
5797 (available_occurrence_p): Ditto.
5798 (dominate_probability_p): Remove it.
5799 (can_backward_propagate_p): Remove it.
5800 (get_all_nonphi_defs): New function.
5801 (get_all_predecessors): Ditto.
5802 (any_insn_in_bb_p): Ditto.
5803 (insert_vsetvl): Adjust AVL REG.
5804 (source_equal_p): New function.
5805 (extract_single_source): Ditto.
5806 (avl_info::single_source_equal_p): Ditto.
5807 (avl_info::operator==): Adjust for AVL=REG.
5808 (vl_vtype_info::same_avl_p): Ditto.
5809 (vector_insn_info::set_demand_info): Remove it.
5810 (vector_insn_info::compatible_p): Adjust for AVL=REG.
5811 (vector_insn_info::compatible_avl_p): New function.
5812 (vector_insn_info::merge): Adjust AVL=REG.
5813 (vector_insn_info::dump): Ditto.
5814 (pass_vsetvl::merge_successors): Remove it.
5815 (enum fusion_type): New enum.
5816 (pass_vsetvl::get_backward_fusion_type): New function.
5817 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
5818 (pass_vsetvl::forward_demand_fusion): Ditto.
5819 (pass_vsetvl::demand_fusion): Ditto.
5820 (pass_vsetvl::prune_expressions): Ditto.
5821 (pass_vsetvl::compute_local_properties): Ditto.
5822 (pass_vsetvl::cleanup_vsetvls): Ditto.
5823 (pass_vsetvl::commit_vsetvls): Ditto.
5824 (pass_vsetvl::init): Ditto.
5825 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
5826 (enum merge_type): New enum.
5828 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5830 * config/riscv/riscv-vsetvl.cc
5831 (vector_infos_manager::vector_infos_manager): Add probability.
5832 (vector_infos_manager::dump): Ditto.
5833 (pass_vsetvl::compute_probabilities): Ditto.
5834 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
5836 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5838 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
5839 (vector_insn_info::merge): Ditto.
5840 (vector_insn_info::dump): Ditto.
5841 (pass_vsetvl::merge_successors): Ditto.
5842 (pass_vsetvl::backward_demand_fusion): Ditto.
5843 (pass_vsetvl::forward_demand_fusion): Ditto.
5844 (pass_vsetvl::commit_vsetvls): Ditto.
5845 * config/riscv/riscv-vsetvl.h: Ditto.
5847 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5849 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
5852 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5854 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
5856 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5858 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
5859 Add pre-check for redundant flow.
5861 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5863 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
5864 (vector_infos_manager::free_bitmap_vectors): Ditto.
5865 (pass_vsetvl::pre_vsetvl): Adjust codes.
5866 * config/riscv/riscv-vsetvl.h: New function declaration.
5868 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5870 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
5871 (vector_insn_info::set_demand_info): New function.
5872 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
5873 (pass_vsetvl::merge_successors): Ditto.
5874 (pass_vsetvl::compute_global_backward_infos): Ditto.
5875 (pass_vsetvl::backward_demand_fusion): Ditto.
5876 (pass_vsetvl::forward_demand_fusion): Ditto.
5877 (pass_vsetvl::demand_fusion): New function.
5878 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
5879 * config/riscv/riscv-vsetvl.h: New function declaration.
5881 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5883 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
5885 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5887 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
5888 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
5890 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5892 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
5893 (backward_propagate_worthwhile_p): Fix non-worthwhile.
5895 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5897 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
5899 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5901 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
5902 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
5903 (pass_vsetvl::commit_vsetvls): Ditto.
5904 * config/riscv/riscv-vsetvl.h: New function declaration.
5906 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5908 * config/riscv/vector.md:
5910 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5912 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
5914 * config/riscv/riscv-vector-builtins.cc
5915 (function_expander::add_mem_operand): Refine function.
5916 (function_expander::use_contiguous_load_insn): Adjust new
5918 (function_expander::use_contiguous_store_insn): Ditto.
5919 * config/riscv/riscv-vector-builtins.h: Refine function.
5920 * config/riscv/vector.md (@pred_store<mode>): New pattern.
5922 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5924 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
5926 2023-01-26 Marek Polacek <polacek@redhat.com>
5928 PR middle-end/108543
5929 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
5930 if it was previously set.
5932 2023-01-26 Jakub Jelinek <jakub@redhat.com>
5934 PR tree-optimization/108540
5935 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
5936 are singletons, use range_true even if op1 != op2
5937 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
5938 even if intersection of the ranges is empty and one has
5939 zero low bound and another zero high bound, use range_true_and_false
5940 rather than range_false.
5941 (foperator_not_equal::fold_range): If both op1 and op2
5942 are singletons, use range_false even if op1 != op2
5943 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
5944 even if intersection of the ranges is empty and one has
5945 zero low bound and another zero high bound, use range_true_and_false
5946 rather than range_true.
5948 2023-01-26 Jakub Jelinek <jakub@redhat.com>
5950 * value-relation.cc (kind_string): Add const.
5951 (rr_negate_table, rr_swap_table, rr_intersect_table,
5952 rr_union_table, rr_transitive_table): Add static const, change
5953 element type from relation_kind to unsigned char.
5954 (relation_negate, relation_swap, relation_intersect, relation_union,
5955 relation_transitive): Cast rr_*_table element to relation_kind.
5956 (relation_to_code): Add static const.
5957 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
5959 2023-01-26 Richard Biener <rguenther@suse.de>
5961 PR tree-optimization/108547
5962 * gimple-predicate-analysis.cc (value_sat_pred_p):
5965 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
5967 PR tree-optimization/108522
5968 * tree-object-size.cc (compute_object_offset): Make EXPR
5969 argument non-const. Call component_ref_field_offset.
5971 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5973 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
5974 FEATURE_STRING field.
5976 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
5978 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
5980 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
5984 * gcc.cc: Provide default specs for Modula-2 so that when the
5985 language is not built-in better diagnostics are emitted for
5986 attempts to use .mod or .m2i file extensions.
5988 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
5990 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
5992 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
5994 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
5996 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
5998 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
6001 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
6003 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
6005 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
6007 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
6009 2023-01-25 Richard Biener <rguenther@suse.de>
6011 PR tree-optimization/108523
6012 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
6013 backedge value for the result when using predication to
6016 2023-01-25 Richard Biener <rguenther@suse.de>
6018 * doc/lto.texi (Command line options): Reword and update reference
6019 to removed lto_read_all_file_options.
6021 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
6023 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
6026 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
6028 * doc/contrib.texi: Add Jose E. Marchesi.
6030 2023-01-25 Jakub Jelinek <jakub@redhat.com>
6032 PR tree-optimization/108498
6033 * gimple-ssa-store-merging.cc (class store_operand_info):
6034 End coment with full stop rather than comma.
6035 (split_group): Likewise.
6036 (merged_store_group::apply_stores): Clear string_concatenation if
6037 start or end aren't on a byte boundary.
6039 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
6040 Jakub Jelinek <jakub@redhat.com>
6042 PR tree-optimization/108522
6043 * tree-object-size.cc (compute_object_offset): Use
6044 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
6046 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6048 * config/xtensa/xtensa.md:
6049 Fix exit from loops detecting references before overwriting in the
6052 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
6054 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
6055 do elimination but only for hard register.
6056 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
6057 calls of get_hard_regno.
6059 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
6061 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
6064 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
6067 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
6068 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
6071 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6073 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
6074 and only include 'csky/t-csky-linux' when enable multilib.
6075 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
6076 define it when disable multilib.
6078 2023-01-24 Richard Biener <rguenther@suse.de>
6080 PR tree-optimization/108500
6081 * dominance.h (calculate_dominance_info): Add parameter
6082 to indicate fast-query compute, defaulted to true.
6083 * dominance.cc (calculate_dominance_info): Honor
6084 fast-query compute parameter.
6085 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
6086 not compute the dominator fast-query DFS numbers.
6088 2023-01-24 Eric Biggers <ebiggers@google.com>
6091 * optc-save-gen.awk: Fix copy-and-paste error.
6093 2023-01-24 Jakub Jelinek <jakub@redhat.com>
6096 * cgraphbuild.cc: Include gimplify.h.
6097 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
6098 their corresponding DECL_VALUE_EXPR expressions after unsharing.
6100 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6103 * config.gcc (tm_file): Move the variable out of loop.
6105 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
6106 Yang Yujie <yangyujie@loongson.cn>
6109 * config/loongarch/loongarch.cc (loongarch_classify_address):
6110 Add precessint for CONST_INT.
6111 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
6112 (loongarch_print_operand): Increase the processing of '%c'.
6113 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
6114 And port the public operand modifiers information to this document.
6116 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6118 * doc/invoke.texi (-mbranch-protection): Update documentation.
6120 2023-01-23 Richard Biener <rguenther@suse.de>
6123 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
6125 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
6126 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
6127 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
6128 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
6130 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6132 * config/arm/aout.h (ra_auth_code): Add entry in enum.
6133 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
6134 to dwarf frame expression.
6135 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
6136 (arm_expand_prologue): Update frame related information and reg notes
6137 for pac/pacbit insn.
6138 (arm_regno_class): Check for pac pseudo reigster.
6139 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
6140 (arm_init_machine_status): Set pacspval_needed to zero.
6141 (arm_debugger_regno): Check for PAC register.
6142 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
6144 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
6145 (arm_unwind_emit): Update REG_CFA_REGISTER case._
6146 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
6147 (DWARF_PAC_REGNUM): Define.
6148 (IS_PAC_REGNUM): Likewise.
6149 (enum reg_class): Add PAC_REG entry.
6150 (machine_function): Add pacbti_needed state to structure.
6151 * config/arm/arm.md (RA_AUTH_CODE): Define.
6153 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6155 * config.gcc ($tm_file): Update variable.
6156 * config/arm/arm-mlib.h: Create new header file.
6157 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
6158 multilib arch directory.
6159 (MULTILIB_REUSE): Add multilib reuse rules.
6160 (MULTILIB_MATCHES): Add multilib match rules.
6162 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6164 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
6165 * config/arm/arm-tables.opt: Regenerate.
6166 * config/arm/arm-tune.md: Likewise.
6167 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
6168 * (-mfix-cmse-cve-2021-35465): Likewise.
6170 2023-01-23 Richard Biener <rguenther@suse.de>
6172 PR tree-optimization/108482
6173 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
6174 .LOOP_DIST_ALIAS calls.
6176 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6178 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
6179 * config/arm/arm-protos.h: Update.
6180 * config/arm/aarch-common-protos.h: Declare
6181 'aarch_bti_arch_check'.
6182 * config/arm/arm.cc (aarch_bti_enabled) Update.
6183 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
6184 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
6185 * config/arm/arm.md (bti_nop): New insn.
6186 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
6187 (aarch-bti-insert.o): New target.
6188 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
6189 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
6191 (gate): Make use of 'aarch_bti_arch_check'.
6192 * config/arm/arm-passes.def: New file.
6193 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
6195 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6197 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
6198 'aarch-bti-insert.o'.
6199 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
6201 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
6202 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
6203 (aarch64_output_mi_thunk)
6204 (aarch64_print_patchable_function_entry)
6205 (aarch64_file_end_indicate_exec_stack): Update renamed function
6206 calls to renamed functions.
6207 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
6208 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
6210 * config/aarch64/aarch64-bti-insert.cc: Delete.
6211 * config/arm/aarch-bti-insert.cc: New file including and
6212 generalizing code from aarch64-bti-insert.cc.
6213 * config/arm/aarch-common-protos.h: Update.
6215 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6217 * config/arm/arm.h (arm_arch8m_main): Declare it.
6218 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
6220 * config/arm/arm.cc (arm_arch8m_main): Define it.
6221 (arm_option_reconfigure_globals): Set arm_arch8m_main.
6222 (arm_compute_frame_layout, arm_expand_prologue)
6223 (thumb2_expand_return, arm_expand_epilogue)
6224 (arm_conditional_register_usage): Update for pac codegen.
6225 (arm_current_function_pac_enabled_p): New function.
6226 (aarch_bti_enabled) New function.
6227 (use_return_insn): Return zero when pac is enabled.
6228 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
6230 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
6231 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
6233 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6235 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
6238 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6239 Tejas Belagod <tbelagod@arm.com>
6241 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
6242 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
6244 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6245 Tejas Belagod <tbelagod@arm.com>
6246 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6248 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
6249 new pseudo register class _UVRSC_PAC.
6251 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6252 Tejas Belagod <tbelagod@arm.com>
6254 * config/arm/arm-c.cc (arm_cpu_builtins): Define
6255 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
6256 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
6258 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6259 Tejas Belagod <tbelagod@arm.com>
6261 * doc/sourcebuild.texi: Document arm_pacbti_hw.
6263 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6264 Tejas Belagod <tbelagod@arm.com>
6265 Richard Earnshaw <Richard.Earnshaw@arm.com>
6267 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
6268 -mbranch-protection option and initialize appropriate data structures.
6269 * config/arm/arm.opt (-mbranch-protection): New option.
6270 * doc/invoke.texi (Arm Options): Document it.
6272 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6273 Tejas Belagod <tbelagod@arm.com>
6275 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
6276 * config/arm/arm-cpus.in (pacbti): New feature.
6277 * doc/invoke.texi (Arm Options): Document it.
6279 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
6280 Tejas Belagod <tbelagod@arm.com>
6282 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
6283 (all_architectures): Fix comment.
6284 (aarch64_parse_extension): Rename return type, enum value names.
6285 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
6286 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
6287 Also rename corresponding enum values.
6288 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
6289 out aarch64_function_type and move it to common code as
6290 aarch_function_type in aarch-common.h.
6291 * config/aarch64/aarch64-protos.h: Include common types header,
6292 move out types aarch64_parse_opt_result and aarch64_key_type to
6294 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
6295 and functions out into aarch-common.h and aarch-common.cc. Fix up
6296 all the name changes resulting from the move.
6297 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
6299 * config/aarch64/aarch64.opt: Include aarch-common.h to import
6300 type move. Fix up name changes from factoring out common code and
6302 * config/arm/aarch-common-protos.h: Export factored out routines to both
6304 * config/arm/aarch-common.cc: Include newly factored out types.
6305 Move all mbranch-protection code and data structures from
6307 * config/arm/aarch-common.h: New header that declares types shared
6308 between aarch32 and aarch64 backends.
6309 * config/arm/arm-protos.h: Declare types and variables that are
6310 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
6311 aarch_ra_sign_scope and aarch_enable_bti.
6312 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
6313 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
6314 * config/arm/arm.cc: Add missing includes.
6316 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
6318 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
6320 2023-01-23 Richard Biener <rguenther@suse.de>
6322 PR tree-optimization/108449
6323 * cgraphunit.cc (check_global_declaration): Do not turn
6324 undefined statics into externs.
6326 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
6328 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
6330 * config/pru/pru.md (clz): Fix generated code for QI and HI
6333 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
6335 * config/v850/v850.cc (v850_select_section): Put const volatile
6336 objects into read-only sections.
6338 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
6340 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
6341 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
6342 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
6344 2023-01-20 Jakub Jelinek <jakub@redhat.com>
6346 PR tree-optimization/108457
6347 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
6348 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
6349 argument instead of a temporary. Formatting fixes.
6351 2023-01-19 Jakub Jelinek <jakub@redhat.com>
6353 PR tree-optimization/108447
6354 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
6355 (relation_tests): Add self-tests for relation_{intersect,union}
6357 * selftest.h (relation_tests): Declare.
6358 * function-tests.cc (test_ranges): Call it.
6360 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
6363 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
6364 invalid third argument to __builtin_ia32_prefetch.
6366 2023-01-19 Jakub Jelinek <jakub@redhat.com>
6368 PR middle-end/108459
6369 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
6370 than fold_unary for NEGATE_EXPR.
6372 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
6375 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
6376 comment. Move assert about alignment a bit later.
6378 2023-01-19 Jakub Jelinek <jakub@redhat.com>
6380 PR tree-optimization/108440
6381 * tree-ssa-forwprop.cc: Include gimple-range.h.
6382 (simplify_rotate): For the forms with T2 wider than T and shift counts of
6383 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
6384 to B. For the forms with T2 wider than T and shift counts of
6385 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
6386 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
6387 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
6388 pass specific ranger instead of get_global_range_query.
6389 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
6392 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6394 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
6395 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
6397 (aarch64_simd_vec_copy_lane<mode>): Likewise.
6398 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
6400 2023-01-19 Alexandre Oliva <oliva@adacore.com>
6403 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
6406 2023-01-18 Martin Jambor <mjambor@suse.cz>
6409 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
6410 lcone_of chain also do not need the body.
6412 2023-01-18 Richard Biener <rguenther@suse.de>
6415 2022-12-16 Richard Biener <rguenther@suse.de>
6417 PR middle-end/108086
6418 * tree-inline.cc (remap_ssa_name): Do not unshare the
6419 result from the decl_map.
6421 2023-01-18 Murray Steele <murray.steele@arm.com>
6424 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
6426 (__arm_vst1q_p_s8): Likewise.
6427 (__arm_vld1q_z_u8): Likewise.
6428 (__arm_vld1q_z_s8): Likewise.
6429 (__arm_vst1q_p_u16): Likewise.
6430 (__arm_vst1q_p_s16): Likewise.
6431 (__arm_vld1q_z_u16): Likewise.
6432 (__arm_vld1q_z_s16): Likewise.
6433 (__arm_vst1q_p_u32): Likewise.
6434 (__arm_vst1q_p_s32): Likewise.
6435 (__arm_vld1q_z_u32): Likewise.
6436 (__arm_vld1q_z_s32): Likewise.
6437 (__arm_vld1q_z_f16): Likewise.
6438 (__arm_vst1q_p_f16): Likewise.
6439 (__arm_vld1q_z_f32): Likewise.
6440 (__arm_vst1q_p_f32): Likewise.
6442 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6444 * config/xtensa/xtensa.md (xorsi3_internal):
6445 Rename from the original of "xorsi3".
6446 (xorsi3): New expansion pattern that emits addition rather than
6447 bitwise-XOR when the second source is a constant of -2147483648
6450 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
6451 Andrew Pinski <apinski@marvell.com>
6454 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
6455 vec_vsubcuqP with vec_vsubcuq.
6457 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
6460 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
6461 support for invalid uses of MMA opaque type in function arguments.
6463 2023-01-18 liuhongt <hongtao.liu@intel.com>
6466 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
6467 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
6468 -share or -mno-daz-ftz is specified.
6469 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
6470 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
6472 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
6474 * config/bpf/bpf.cc (bpf_option_override): Disable
6477 2023-01-17 Jakub Jelinek <jakub@redhat.com>
6479 PR tree-optimization/106523
6480 * tree-ssa-forwprop.cc (simplify_rotate): For the
6481 patterns with (-Y) & (B - 1) in one operand's shift
6482 count and Y in another, if T2 has wider precision than T,
6483 punt if Y could have a value in [B, B2 - 1] range.
6485 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
6488 * config/i386/i386.cc (x86_output_mi_thunk): Disable
6489 -mforce-indirect-call for PIC in 32-bit mode.
6491 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
6494 * ipa-modref.cc (modref_access_analysis::analyze): Use
6495 find_always_executed_bbs.
6496 * ipa-sra.cc (process_scan_results): Likewise.
6497 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
6498 (find_always_executed_bbs): New function.
6499 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
6500 (find_always_executed_bbs): Declare.
6502 2023-01-16 Jan Hubicka <jh@suse.cz>
6504 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
6505 by TARGET_USE_SCATTER.
6506 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
6507 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
6508 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
6509 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
6510 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
6511 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
6513 2023-01-16 Richard Biener <rguenther@suse.de>
6516 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
6518 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
6522 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
6523 (__ARM_mve_coerce3): Likewise.
6525 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
6527 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
6529 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
6531 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
6532 (number_of_iterations_bitcount): Add call to the above.
6533 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
6534 c[lt]z idiom recognition.
6536 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
6538 * doc/sourcebuild.texi: Add missing target attributes.
6540 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
6542 PR tree-optimization/94793
6543 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
6545 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
6546 (number_of_iterations_cltz_complement): New.
6547 (number_of_iterations_bitcount): Add call to the above.
6549 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
6551 * doc/extend.texi (Common Function Attributes): Fix grammar.
6553 2023-01-16 Jakub Jelinek <jakub@redhat.com>
6556 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
6557 * config/riscv/riscv-vsetvl.cc: Likewise.
6559 2023-01-16 Jakub Jelinek <jakub@redhat.com>
6562 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
6563 disable -Winit-self using pragma GCC diagnostic ignored.
6564 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
6566 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
6567 _mm256_undefined_si256): Likewise.
6568 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
6569 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
6570 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
6571 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
6573 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
6576 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
6577 support for invalid uses in inline asm, factor out the checking and
6578 erroring to lambda function check_and_error_invalid_use.
6580 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
6582 PR tree-optimization/107608
6583 * range-op-float.cc (range_operator_float::fold_range): Avoid
6584 folding into INF when flag_trapping_math.
6585 * value-range.h (frange::known_isinf): Return false for possible NANs.
6587 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6589 * config.gcc (csky-*-*): Support --with-float=softfp.
6591 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6593 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
6594 Rename to xtensa_adjust_reg_alloc_order.
6595 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
6596 Ditto. And also remove code to reorder register numbers for
6597 leaf functions, rename the tables, and adjust the allocation
6598 order for the call0 ABI to use register A0 more.
6599 (xtensa_leaf_regs): Remove.
6600 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
6601 (order_regs_for_local_alloc): Rename as the above.
6602 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
6604 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6606 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
6607 Change to define_insn_and_split to fold ldr+dup to ld1rq.
6608 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
6610 2023-01-14 Alexandre Oliva <oliva@adacore.com>
6612 * hash-table.h (is_deleted): Precheck !is_empty.
6613 (mark_deleted): Postcheck !is_empty.
6614 (copy constructor): Test is_empty before is_deleted.
6616 2023-01-14 Alexandre Oliva <oliva@adacore.com>
6619 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
6622 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
6624 PR rtl-optimization/108274
6625 * function.cc (thread_prologue_and_epilogue_insns): Also update the
6626 DF information for calls in a few more cases.
6628 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
6630 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
6631 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
6633 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
6634 (MAX_SYNC_LIBFUNC_SIZE): Define.
6635 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
6637 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
6638 libcall when sync libcalls are disabled.
6639 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
6640 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
6641 are disabled on 32-bit target.
6642 * config/pa/pa.opt (matomic-libcalls): New option.
6643 * doc/invoke.texi (HPPA Options): Update.
6645 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
6647 PR rtl-optimization/108117
6648 PR rtl-optimization/108132
6649 * sched-deps.cc (deps_analyze_insn): Do not schedule across
6650 calls before reload.
6652 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6654 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
6655 options for -mlibarch.
6656 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
6657 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
6659 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
6661 * attribs.cc (strict_flex_array_level_of): Move this function to ...
6662 * attribs.h (strict_flex_array_level_of): Remove the declaration.
6663 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
6664 replace the referece to strict_flex_array_level_of with
6666 * tree.cc (component_ref_size): Likewise.
6668 2023-01-13 Richard Biener <rguenther@suse.de>
6671 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
6672 crtfastmath.o for -shared.
6673 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
6675 2023-01-13 Richard Biener <rguenther@suse.de>
6678 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
6679 crtfastmath.o for -shared.
6680 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
6682 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
6685 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
6687 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
6689 (TARGET_DWARF_FRAME_REG_MODE): Define.
6691 2023-01-13 Richard Biener <rguenther@suse.de>
6694 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
6695 update EH info on the fly.
6697 2023-01-13 Richard Biener <rguenther@suse.de>
6699 PR tree-optimization/108387
6700 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
6701 value before inserting expression into the tables.
6703 2023-01-12 Andrew Pinski <apinski@marvell.com>
6704 Roger Sayle <roger@nextmovesoftware.com>
6706 PR tree-optimization/92342
6707 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
6708 Use tcc_comparison and :c for the multiply.
6709 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
6711 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
6712 Richard Sandiford <richard.sandiford@arm.com>
6715 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
6716 Check DECL_PACKED for bitfield.
6717 (aarch64_layout_arg): Warn when parameter passing ABI changes.
6718 (aarch64_function_arg_boundary): Do not warn here.
6719 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
6722 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
6723 Richard Sandiford <richard.sandiford@arm.com>
6725 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
6727 (aarch64_layout_arg): Factorize warning conditions.
6728 (aarch64_function_arg_boundary): Fix typo.
6729 * function.cc (currently_expanding_function_start): New variable.
6730 (expand_function_start): Handle
6731 currently_expanding_function_start.
6732 * function.h (currently_expanding_function_start): Declare.
6734 2023-01-12 Richard Biener <rguenther@suse.de>
6736 PR tree-optimization/99412
6737 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
6738 (swap_ops_for_binary_stmt): Remove reduction handling.
6739 (rewrite_expr_tree_parallel): Adjust.
6740 (reassociate_bb): Likewise.
6741 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
6743 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6745 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
6746 Rearrange the emitting codes.
6748 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6750 * config/xtensa/xtensa.md (*btrue):
6751 Correct value of the attribute "length" that depends on
6752 TARGET_DENSITY and operands, and add '?' character to the register
6753 constraint of the compared operand.
6755 2023-01-12 Alexandre Oliva <oliva@adacore.com>
6757 * hash-table.h (expand): Check elements and deleted counts.
6760 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
6762 PR tree-optimization/71343
6763 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
6764 the value number of the expression X << C the same as the value
6765 number for the multiplication X * (1<<C).
6767 2023-01-11 David Faust <david.faust@oracle.com>
6770 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
6771 floating point modes.
6773 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
6775 PR tree-optimization/108199
6776 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
6777 for bit-field references.
6779 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
6781 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
6782 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
6783 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
6784 OPTION_MASK_P10_FUSION.
6786 2023-01-11 Richard Biener <rguenther@suse.de>
6788 PR tree-optimization/107767
6789 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
6790 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
6791 * tree-switch-conversion.cc (switch_conversion::collect):
6792 Count unique non-default targets accounting for later
6793 merging opportunities.
6795 2023-01-11 Martin Liska <mliska@suse.cz>
6797 PR middle-end/107976
6798 * params.opt: Limit JT params.
6799 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
6801 2023-01-11 Richard Biener <rguenther@suse.de>
6803 PR tree-optimization/108352
6804 * tree-ssa-threadbackward.cc
6805 (back_threader_profitability::profitable_path_p): Adjust
6806 heuristic that allows non-multi-way branch threads creating
6808 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
6809 (--param fsm-scale-path-stmts): Adjust.
6810 * params.opt (--param=fsm-scale-path-blocks=): Remove.
6811 (-param=fsm-scale-path-stmts=): Adjust description.
6813 2023-01-11 Richard Biener <rguenther@suse.de>
6815 PR tree-optimization/108353
6816 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
6818 (add_ssa_edge): Simplify.
6819 (add_control_edge): Likewise.
6820 (ssa_prop_init): Likewise.
6821 (ssa_prop_fini): Likewise.
6822 (ssa_propagation_engine::ssa_propagate): Likewise.
6824 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
6826 * config/s390/s390.md (*not<mode>): New pattern.
6828 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6830 * config/xtensa/xtensa.cc (xtensa_insn_cost):
6831 Let insn cost for size be obtained by applying COSTS_N_INSNS()
6832 to instruction length and then dividing by 3.
6834 2023-01-10 Richard Biener <rguenther@suse.de>
6836 PR tree-optimization/106293
6837 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
6838 process degenerate PHI defs.
6840 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
6842 PR rtl-optimization/106421
6843 * cprop.cc (bypass_block): Check that DEST is local to this
6844 function (non-NULL) before calling find_edge.
6846 2023-01-10 Martin Jambor <mjambor@suse.cz>
6849 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
6850 sort_replacements, lookup_first_base_replacement and
6851 m_sorted_replacements_p.
6852 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
6853 (ipa_param_body_adjustments::register_replacement): Set
6854 m_sorted_replacements_p to false.
6855 (compare_param_body_replacement): New function.
6856 (ipa_param_body_adjustments::sort_replacements): Likewise.
6857 (ipa_param_body_adjustments::common_initialization): Call
6859 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
6860 m_sorted_replacements_p.
6861 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
6863 (ipa_param_body_adjustments::lookup_first_base_replacement): New
6865 (ipa_param_body_adjustments::modify_call_stmt): Use
6866 lookup_first_base_replacement.
6867 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
6868 adjustments->sort_replacements.
6870 2023-01-10 Richard Biener <rguenther@suse.de>
6872 PR tree-optimization/108314
6873 * tree-vect-stmts.cc (vectorizable_condition): Do not
6874 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
6876 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6878 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
6880 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6882 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
6884 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6886 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
6887 defines for soft float abi.
6889 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6891 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
6892 (smart_bclri): Likewise.
6893 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
6894 (fast_bclri): Likewise.
6895 (fast_cmpnesi_i): Likewise.
6896 (*fast_cmpltsi_i): Likewise.
6897 (*fast_cmpgeusi_i): Likewise.
6899 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
6901 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
6902 flag_fp_int_builtin_inexact || !flag_trapping_math.
6903 (<frm_pattern><mode>2): Likewise.
6905 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
6907 * config/s390/s390.cc (s390_register_info): Check call_used_regs
6908 instead of hard-coding the register numbers for call saved
6910 (s390_optimize_register_info): Likewise.
6912 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
6914 * doc/gm2.texi (Overview): Fix @node markers.
6915 (Using): Likewise. Remove subsections that were moved to Overview
6916 from the menu and move others around.
6918 2023-01-09 Richard Biener <rguenther@suse.de>
6920 PR middle-end/108209
6921 * genmatch.cc (commutative_op): Fix return value for
6922 user-id with non-commutative first replacement.
6924 2023-01-09 Jakub Jelinek <jakub@redhat.com>
6927 * calls.cc (expand_call): For calls with
6928 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
6931 2023-01-09 Richard Biener <rguenther@suse.de>
6934 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
6935 qualified accesses also force objects to memory.
6937 2023-01-09 Martin Liska <mliska@suse.cz>
6940 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
6941 NULL (deleleted value) to a hash_set.
6943 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6945 * config/xtensa/xtensa.md (*splice_bits):
6946 New insn_and_split pattern.
6948 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6950 * config/xtensa/xtensa.cc
6951 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
6952 New helper functions.
6953 (xtensa_set_return_address, xtensa_output_mi_thunk):
6954 Change to use the helper function.
6955 (xtensa_emit_adjust_stack_ptr): Ditto.
6956 And also change to try reusing the content of scratch register
6957 A9 if the register is not modified in the function body.
6959 2023-01-07 LIU Hao <lh_mouse@126.com>
6961 PR middle-end/108300
6962 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
6964 * diagnostic-color.cc: Likewise.
6965 * plugin.cc: Likewise.
6966 * prefix.cc: Likewise.
6968 2023-01-06 Joseph Myers <joseph@codesourcery.com>
6970 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
6971 for handling real integer types.
6973 2023-01-06 Tamar Christina <tamar.christina@arm.com>
6976 2022-12-12 Tamar Christina <tamar.christina@arm.com>
6978 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
6979 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
6980 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
6981 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
6982 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
6983 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
6984 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
6985 (aarch64_simd_dupv2hf): New.
6986 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
6988 * config/aarch64/iterators.md (VHSDF_P): New.
6989 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
6990 Vel, q, vp): Add V2HF.
6991 * config/arm/types.md (neon_fp_reduc_add_h): New.
6993 2023-01-06 Martin Liska <mliska@suse.cz>
6995 PR middle-end/107966
6996 * doc/options.texi: Fix Var documentation in internal manual.
6998 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
7001 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
7003 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
7004 RTL expansion to allow condition (mask) to be shared/reused,
7005 by avoiding overwriting pseudos and adding REG_EQUAL notes.
7007 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
7009 * common.opt: Add -static-libgm2.
7010 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
7011 * doc/gm2.texi: Document static-libgm2.
7012 * gcc.cc (driver_handle_option): Allow static-libgm2.
7014 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
7016 * common/config/i386/i386-common.cc (processor_alias_table):
7017 Use CPU_ZNVER4 for znver4.
7018 * config/i386/i386.md: Add znver4.md.
7019 * config/i386/znver4.md: New.
7021 2023-01-04 Jakub Jelinek <jakub@redhat.com>
7023 PR tree-optimization/108253
7024 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
7027 2023-01-04 Jakub Jelinek <jakub@redhat.com>
7029 PR middle-end/108237
7030 * generic-match-head.cc: Include tree-pass.h.
7031 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
7032 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
7033 resp. PROP_gimple_lvec property set.
7035 2023-01-04 Jakub Jelinek <jakub@redhat.com>
7038 * convert.cc (do_narrow): Punt for MULT_EXPR if original
7039 type doesn't wrap around and -fsanitize=signed-integer-overflow
7041 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
7043 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
7045 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
7046 * common/config/i386/i386-common.cc: Add Emeraldrapids.
7048 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
7050 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
7053 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
7055 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
7056 default constructor to initialize it.
7057 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
7058 for last and iterate to handle recursive calls. Delete leftover
7059 candidates at the end.
7060 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
7062 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
7063 gc_candidate bit when a clone is used.
7065 2023-01-03 Florian Weimer <fweimer@redhat.com>
7068 2023-01-02 Florian Weimer <fweimer@redhat.com>
7070 * dwarf2cfi.cc (init_return_column_size): Remove.
7071 (init_one_dwarf_reg_size): Adjust.
7072 (generate_dwarf_reg_sizes): New function. Extracted
7073 from expand_builtin_init_dwarf_reg_sizes.
7074 (expand_builtin_init_dwarf_reg_sizes): Call
7075 generate_dwarf_reg_sizes.
7076 * target.def (init_dwarf_reg_sizes_extra): Adjust
7078 * config/msp430/msp430.cc
7079 (msp430_init_dwarf_reg_sizes_extra): Adjust.
7080 * config/rs6000/rs6000.cc
7081 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
7082 * doc/tm.texi: Update.
7084 2023-01-03 Florian Weimer <fweimer@redhat.com>
7087 2023-01-02 Florian Weimer <fweimer@redhat.com>
7089 * debug.h (dwarf_reg_sizes_constant): Declare.
7090 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
7092 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
7094 PR tree-optimization/105043
7095 * doc/extend.texi (Object Size Checking): Split out into two
7096 subsections and mention _FORTIFY_SOURCE.
7098 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
7100 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
7101 RTL expansion to allow condition (mask) to be shared/reused,
7102 by avoiding overwriting pseudos and adding REG_EQUAL notes.
7104 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
7107 * config/i386/i386-features.cc
7108 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
7109 the gain/cost of converting a MEM operand.
7111 2023-01-03 Jakub Jelinek <jakub@redhat.com>
7113 PR middle-end/108264
7114 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
7115 from source which doesn't have scalar integral mode first convert
7118 2023-01-03 Jakub Jelinek <jakub@redhat.com>
7120 PR rtl-optimization/108263
7121 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
7124 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
7127 * config/i386/lujiazui.md (lujiazui_div): New automaton.
7128 (lua_div): New unit.
7129 (lua_idiv_qi): Correct unit in the reservation.
7130 (lua_idiv_qi_load): Ditto.
7131 (lua_idiv_hi): Ditto.
7132 (lua_idiv_hi_load): Ditto.
7133 (lua_idiv_si): Ditto.
7134 (lua_idiv_si_load): Ditto.
7135 (lua_idiv_di): Ditto.
7136 (lua_idiv_di_load): Ditto.
7137 (lua_fdiv_SF): Ditto.
7138 (lua_fdiv_SF_load): Ditto.
7139 (lua_fdiv_DF): Ditto.
7140 (lua_fdiv_DF_load): Ditto.
7141 (lua_fdiv_XF): Ditto.
7142 (lua_fdiv_XF_load): Ditto.
7143 (lua_ssediv_SF): Ditto.
7144 (lua_ssediv_load_SF): Ditto.
7145 (lua_ssediv_V4SF): Ditto.
7146 (lua_ssediv_load_V4SF): Ditto.
7147 (lua_ssediv_V8SF): Ditto.
7148 (lua_ssediv_load_V8SF): Ditto.
7149 (lua_ssediv_SD): Ditto.
7150 (lua_ssediv_load_SD): Ditto.
7151 (lua_ssediv_V2DF): Ditto.
7152 (lua_ssediv_load_V2DF): Ditto.
7153 (lua_ssediv_V4DF): Ditto.
7154 (lua_ssediv_load_V4DF): Ditto.
7156 2023-01-02 Florian Weimer <fweimer@redhat.com>
7158 * debug.h (dwarf_reg_sizes_constant): Declare.
7159 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
7161 2023-01-02 Florian Weimer <fweimer@redhat.com>
7163 * dwarf2cfi.cc (init_return_column_size): Remove.
7164 (init_one_dwarf_reg_size): Adjust.
7165 (generate_dwarf_reg_sizes): New function. Extracted
7166 from expand_builtin_init_dwarf_reg_sizes.
7167 (expand_builtin_init_dwarf_reg_sizes): Call
7168 generate_dwarf_reg_sizes.
7169 * target.def (init_dwarf_reg_sizes_extra): Adjust
7171 * config/msp430/msp430.cc
7172 (msp430_init_dwarf_reg_sizes_extra): Adjust.
7173 * config/rs6000/rs6000.cc
7174 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
7175 * doc/tm.texi: Update.
7177 2023-01-02 Jakub Jelinek <jakub@redhat.com>
7179 * gcc.cc (process_command): Update copyright notice dates.
7180 * gcov-dump.cc (print_version): Ditto.
7181 * gcov.cc (print_version): Ditto.
7182 * gcov-tool.cc (print_version): Ditto.
7183 * gengtype.cc (create_file): Ditto.
7184 * doc/cpp.texi: Bump @copying's copyright year.
7185 * doc/cppinternals.texi: Ditto.
7186 * doc/gcc.texi: Ditto.
7187 * doc/gccint.texi: Ditto.
7188 * doc/gcov.texi: Ditto.
7189 * doc/install.texi: Ditto.
7190 * doc/invoke.texi: Ditto.
7192 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
7193 Uroš Bizjak <ubizjak@gmail.com>
7195 * config/i386/i386.md (extendditi2): New define_insn.
7196 (define_split): Use DWIH mode iterator to treat new extendditi2
7197 identically to existing extendsidi2_1.
7198 (define_peephole2): Likewise.
7199 (define_peephole2): Likewise.
7200 (define_Split): Likewise.
7203 Copyright (C) 2023 Free Software Foundation, Inc.
7205 Copying and distribution of this file, with or without modification,
7206 are permitted in any medium without royalty provided the copyright
7207 notice and this notice are preserved.