gccrs: Add test
[official-gcc.git] / gcc / ChangeLog
blobb1ab528cf9a08685522662723579bd695ec0be20
1 2023-04-05  Jeff Law  <jlaw@ventanamicro>
3         PR target/108892
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>
9         PR ipa/108959
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
21         demand fusion.
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
41         known_isnan.
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,
47         not just known_isnan.
49 2023-04-04  Marek Polacek  <polacek@redhat.com>
51         PR sanitizer/109107
52         * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
53         when associating.
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>
67         PR target/109384
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>
84         PR target/108807
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>
90         PR target/108699
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
94         rs6000_vprtybv2di2.
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>
107         PR ipa/109303
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
165         fop_ltgt.
167 2023-04-01  Jakub Jelinek  <jakub@redhat.com>
169         PR target/109254
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
175         results at all.
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>
203         PR target/109328
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>
213         PR target/85048
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.
218         * config/i386/sse.md
219         (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
220         Renamed to ..
221         (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
222         (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
223         Renamed to ..
224         (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
225         .. this.
226         (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
227         Renamed to ..
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>):
234         Renamed to ..
235         (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
236         .. this.
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>):
252         Renamed to ..
253         (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
254         .. this.
255         (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
256         (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
257         .. this.
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>
268         PR c++/107897
269         PR c++/108887
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):
302         New check.
304 2023-03-29  Martin Liska  <mliska@suse.cz>
306         PR bootstrap/109310
307         * configure.ac: Emit a warning for deprecated option
308         --enable-link-mutex.
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>
325         PR ipa/106124
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>
347         PR c/107002
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>
356         PR target/109312
357         * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
358         (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
359         minor refactor.
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>
393         PR target/109072
394         * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
395         * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
396         variable.
397         * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
398         New function.
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
405         variable.
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
408         zero cost.
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>
415         PR bootstrap/84402
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
436         rather than private.
437         * value-range.cc (frange::set): Don't call flush_denormals_to_zero
438         here.
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>
444         PR middle-end/106190
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>
455         PR target/109276
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>
462         PR target/109140
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
473         top-level sections.
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
479         for mingw hosts.
480         * config/i386/sym-mingw32.cc: prevent name mangling of
481         stub symbol.
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>
487         Revert:
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.
500         (gdwarf-): Likewise.
501         (ggdb): Likewise.
502         (gvms): Likewise.
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
513         peephole2s.
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>
533         PR target/109296
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>
549         PR lto/109263
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>
555         PR target/109167
556         * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
557         from ...
558         (_mm_slli_si128): ... here.  Change to call _mm_bslli_si128 directly.
560 2023-03-27  Kewen Lin  <linkw@linux.ibm.com>
562         PR target/109082
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>
582         PR target/106282
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>
595         PR ipa/105685
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>
606         PR analyzer/109098
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
622         debugging options.
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>
630         PR other/109163
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>
654         PR middle-end/109258
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
666         optional.
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>
675         PR c/84900
676         * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
677         as a lvalue.
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):
713         Likewise.
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):
719         Likewise.
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):
729         Likewise.
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.
769         (V_2REG_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
782         individually.
784 2023-03-23  Pan Li  <pan2.li@intel.com>
785             Ju-Zhe Zhong  <juzhe.zhong@rivai.ai>
787         PR target/108654
788         PR target/108185
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>
800         PR target/109244
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>
817         PR target/109228
818         * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
819         __riscv_vlenb support.
820         (BASE): Ditto.
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.
824         (SHAPE): 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.
847         (nmsub): Ditto.
848         (msac): Ditto.
849         (msub): Ditto.
850         (nmadd): Ditto.
851         (nmacc): 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):
920         Removed.
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.
925         * target.def: 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
962         to variants.
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
985         and trail_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
995         supported.
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
1007         its attribute
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
1016         be gone.
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
1038         description text.
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>
1054         PR target/109067
1055         * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
1056         (init_float128_ieee): Delete code to switch complex multiply and divide
1057         for long double.
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>
1065         PR target/109178
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>:
1071         Correct typo.
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>
1081         PR target/105554
1082         * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
1083         to false.
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
1089         after it.
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>
1115         PR target/109092
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>
1131         PR plugins/108634
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
1136         changes.
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
1142         the margins.
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
1149         for consistency.
1150         (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
1151         * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
1152         @gol.
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
1189         out from ...
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
1194         to PHIs.
1195         (pass_waccess::check_pointer_uses): Process all PHIs.
1197 2023-03-15  David Malcolm  <dmalcolm@redhat.com>
1199         PR analyzer/109097
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
1208         DK_ICE_NOBT.
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"
1212         array to...
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
1217         use it.
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
1221         "ice_handler_cb".
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
1232         before MOVSS/MOVSD.
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>
1252         PR other/109086
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
1262         prototype.
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):
1273         New insn.
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
1284         "th_r_fmv".
1285         * config/riscv/riscv.cc (riscv_split_doubleword_move):
1286         Add split code for XTheadFmv.
1287         (riscv_secondary_memory_needed): XTheadFmv does not need
1288         secondary memory.
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):
1315         Add prototype.
1316         * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
1317         XTheadCondMov.
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
1347         extraction.
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>
1401         PR target/109117
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>
1408         PR target/109109
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>
1414         PR ipa/107925
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
1417         it should.
1419 2023-03-14  Martin Jambor  <mjambor@suse.cz>
1421         PR ipa/107925
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'
1475         before @xref.
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>
1535         PR target/108583
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>
1548         PR target/108583
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>
1559         PR target/108583
1560         * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
1561         single use.
1563 2023-03-12  Tamar Christina  <tamar.christina@arm.com>
1564             Andrew MacLeod  <amacleod@redhat.com>
1566         PR target/108583
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):
1569         Use it.
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>
1583         PR target/108583
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
1606         bool.
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
1612         wording slightly.
1614 2023-03-11  Gerald Pfeifer  <gerald@pfeifer.com>
1616         * doc/extend.texi (Named Address Spaces): Drop a redundant link
1617         to AVR-LibC.
1619 2023-03-11  Jeff Law  <jlaw@ventanamicro>
1621         PR web/88860
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
1627         of Texinfo.
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>
1635         PR target/107703
1636         * optabs.cc (expand_fix): For conversions from BFmode to integral,
1637         use shifts to convert it to SFmode first and then convert SFmode
1638         to integral.
1640 2023-03-10  Andrew Pinski  <apinski@marvell.com>
1642         * config/aarch64/aarch64.md: Add a new define_split
1643         to help combine.
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>
1659         PR target/107998
1660         * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
1661         $tmake_file.
1662         * config/i386/t-cygwin-w64: Remove.
1664 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
1666         PR plugins/108634
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
1675         tree_code_length.
1676         * tree.cc (tree_code_type, tree_code_length): Remove.
1678 2023-03-10  Jakub Jelinek  <jakub@redhat.com>
1680         PR other/108464
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
1688         member.
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>
1703         PR c/108079
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
1715         the widened range.
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.
1724         (BASE): Ditto.
1725         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1726         * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
1727         (vleff): Ditto.
1728         * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
1729         (struct fault_load_def): Ditto.
1730         (SHAPE): 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>
1831         PR c++/105841
1832         * doc/extend.texi (Type Traits):: Document __is_deducible.
1834 2023-03-09  Costas Argyris  <costas.argyris@gmail.com>
1836         PR driver/108865
1837         * config.host: add object for x86_64-*-mingw*.
1838         * config/i386/sym-mingw32.cc: dummy file to attach
1839         symbol.
1840         * config/i386/utf8-mingw32.rc: windres resource file.
1841         * config/i386/winnt-utf8.manifest: XML manifest to
1842         enable UTF-8.
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>
1870         PR sanitizer/81649
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>
1881         PR target/108185
1882         PR target/108654
1883         * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
1884         modes.
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
1903         saved in SGPRs.
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>
1914         PR target/108429
1915         * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
1916         generic.
1917         (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
1918         (X86_TUNE_USE_SCATTER): Likewise.
1920 2023-03-06  Xi Ruoyao  <xry111@xry111.site>
1922         PR target/109000
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
1936         instructions.
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
1963         built-in functions.
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.
1970         (DsA): New.
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
1993         description file.
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.
2007         (3): New.
2009 2023-03-05  Vineet Gupta  <vineetg@rivosinc.com>
2011         * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
2012         use exact_log2().
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.
2028         (BASE): Ditto.
2029         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2030         * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
2031         (vluxei16): Ditto.
2032         (vluxei32): Ditto.
2033         (vluxei64): Ditto.
2034         (vloxei8): Ditto.
2035         (vloxei16): Ditto.
2036         (vloxei32): Ditto.
2037         (vloxei64): Ditto.
2038         (vsuxei8): Ditto.
2039         (vsuxei16): Ditto.
2040         (vsuxei32): Ditto.
2041         (vsuxei64): Ditto.
2042         (vsoxei8): Ditto.
2043         (vsoxei16): Ditto.
2044         (vsoxei32): Ditto.
2045         (vsoxei64): Ditto.
2046         (vundefined): Add new intrinsic.
2047         (vreinterpret): Ditto.
2048         (vlmul_ext): Ditto.
2049         (vlmul_trunc): Ditto.
2050         (vset): Ditto.
2051         (vget): 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.
2059         (SHAPE): 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.
2106         (vint8m1_t): Ditto.
2107         (vint8m2_t): Ditto.
2108         (vint8m4_t): Ditto.
2109         (vint8m8_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.
2162         (vbool64_t): Ditto.
2163         (vbool32_t): Ditto.
2164         (vbool16_t): Ditto.
2165         (vbool8_t): Ditto.
2166         (vbool4_t): Ditto.
2167         (vbool2_t): Ditto.
2168         (vbool1_t): Ditto.
2169         (vuint8mf8_t): Ditto.
2170         (vuint8mf4_t): Ditto.
2171         (vuint8mf2_t): Ditto.
2172         (vuint8m1_t): Ditto.
2173         (vuint8m2_t): Ditto.
2174         (vint8m4_t): Ditto.
2175         (vuint8m4_t): Ditto.
2176         (vint8m8_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.
2201         (scalar): Ditto.
2202         (mask): Ditto.
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.
2209         (void): Ditto.
2210         (size): Ditto.
2211         (ptrdiff): Ditto.
2212         (unsigned_long): Ditto.
2213         (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.
2282         (BASE): Ditto.
2283         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2284         * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
2285         (vslidedown): Ditto.
2286         (vslide1up): Ditto.
2287         (vslide1down): Ditto.
2288         (vfslide1up): Ditto.
2289         (vfslide1down): Ditto.
2290         (vrgather): Ditto.
2291         (vrgatherei16): Ditto.
2292         (vcompress): 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.
2297         (vint8m1_t): Ditto.
2298         (vint8m2_t): Ditto.
2299         (vint8m4_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.
2373         (BASE): Ditto.
2374         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2375         * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
2376         (vmv_s): Ditto.
2377         (vfmv_f): Ditto.
2378         (vfmv_s): Ditto.
2379         * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
2380         (SHAPE): 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.
2420         (first_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
2481         pattern.
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
2491         m_vecdata.
2492         * read-rtl-function.cc (function_reader::parse_block): Likewise.
2493         * gdbhooks.py: Likewise.
2495 2023-03-04  Jakub Jelinek  <jakub@redhat.com>
2497         PR testsuite/108973
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>
2524         PR c/108986
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
2560         fixes.
2562 2023-03-03  Richard Biener  <rguenther@suse.de>
2564         PR target/108738
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
2575         disallowed insn.
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
2580         chains.
2582 2023-03-03  Richard Biener  <rguenther@suse.de>
2584         PR debug/108772
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>
2594         PR target/108883
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
2609         move.
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
2644         instead of long.
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
2658         were emitted.
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>
2668         PR c++/108934
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>
2686         PR pch/14940
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
2695         use_device_ptr.
2697 2023-03-01  Jakub Jelinek  <jakub@redhat.com>
2699         PR debug/108967
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
2709         check.
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>
2723         PR target/108240
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
2732         xasprintf.
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>
2738         PR sanitizer/108894
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>
2751         PR target/108922
2752         Revert:
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
2774         instead of static.
2776 2023-02-27  Takayuki 'January June' Suwa  <jjsuwa_sys3175@yahoo.co.jp>
2778         * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
2779         New prototype.
2780         * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
2781         New function.
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>
2801         PR modula2/108261
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>
2809         PR target/108919
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
2825         address.
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
2841         access data.
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>
2857         PR sanitizer/108834
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>
2879         PR target/108881
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)
2966         directly.
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
2996         calls to predicate.
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>
3007         PR target/108876
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>
3014         Revert:
3015         2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
3017         PR target/108876
3018         * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
3019         for A0_REG.
3020         * config/xtensa/xtensa.md (sibcall, sibcall_internal)
3021         (sibcall_value, sibcall_value_internal): Add 'use' expression
3022         for A0_REG.
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.
3055         (BASE): Ditto.
3056         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3057         * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
3058         (vredmaxu): Ditto.
3059         (vredmax): Ditto.
3060         (vredminu): Ditto.
3061         (vredmin): Ditto.
3062         (vredand): Ditto.
3063         (vredor): Ditto.
3064         (vredxor): Ditto.
3065         (vwredsum): Ditto.
3066         (vwredsumu): Ditto.
3067         (vfredusum): Ditto.
3068         (vfredosum): Ditto.
3069         (vfredmax): Ditto.
3070         (vfredmin): Ditto.
3071         (vfwredosum): Ditto.
3072         (vfwredusum): Ditto.
3073         * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
3074         (SHAPE): 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.
3082         (vint8m1_t): Ditto.
3083         (vint8m2_t): Ditto.
3084         (vint8m4_t): Ditto.
3085         (vint8m8_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.
3179         (BASE): Ditto.
3180         * config/riscv/riscv-vector-builtins-bases.h:
3181         * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
3182         (vsext): Ditto.
3183         (vfadd): Ditto.
3184         (vfsub): Ditto.
3185         (vfrsub): Ditto.
3186         (vfwadd): Ditto.
3187         (vfwsub): Ditto.
3188         (vfmul): Ditto.
3189         (vfdiv): Ditto.
3190         (vfrdiv): Ditto.
3191         (vfwmul): Ditto.
3192         (vfmacc): Ditto.
3193         (vfnmsac): Ditto.
3194         (vfmadd): Ditto.
3195         (vfnmsub): Ditto.
3196         (vfnmacc): Ditto.
3197         (vfmsac): Ditto.
3198         (vfnmadd): Ditto.
3199         (vfmsub): Ditto.
3200         (vfwmacc): Ditto.
3201         (vfwnmacc): Ditto.
3202         (vfwmsac): Ditto.
3203         (vfwnmsac): Ditto.
3204         (vfsqrt): Ditto.
3205         (vfrsqrt7): Ditto.
3206         (vfrec7): Ditto.
3207         (vfmin): Ditto.
3208         (vfmax): Ditto.
3209         (vfsgnj): Ditto.
3210         (vfsgnjn): Ditto.
3211         (vfsgnjx): Ditto.
3212         (vfneg): Ditto.
3213         (vfabs): Ditto.
3214         (vmfeq): Ditto.
3215         (vmfne): Ditto.
3216         (vmflt): Ditto.
3217         (vmfle): Ditto.
3218         (vmfgt): Ditto.
3219         (vmfge): Ditto.
3220         (vfclass): Ditto.
3221         (vfmerge): Ditto.
3222         (vfmv_v): Ditto.
3223         (vfcvt_x): Ditto.
3224         (vfcvt_xu): Ditto.
3225         (vfcvt_rtz_x): Ditto.
3226         (vfcvt_rtz_xu): Ditto.
3227         (vfcvt_f): Ditto.
3228         (vfwcvt_x): Ditto.
3229         (vfwcvt_xu): Ditto.
3230         (vfwcvt_rtz_x): Ditto.
3231         (vfwcvt_rtz_xu): Ditto.
3232         (vfwcvt_f): Ditto.
3233         (vfncvt_x): Ditto.
3234         (vfncvt_xu): Ditto.
3235         (vfncvt_rtz_x): Ditto.
3236         (vfncvt_rtz_xu): Ditto.
3237         (vfncvt_f): 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.
3283         (f): New define.
3284         (f_v): New define.
3285         (xu_v): New define.
3286         (f_w): New define.
3287         (xu_w): 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.
3291         (vfrecp): Ditto.
3292         (copysign): Ditto.
3293         (n): Ditto.
3294         (msac): Ditto.
3295         (msub): Ditto.
3296         (fixuns_trunc): Ditto.
3297         (floatuns): 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>
3374         PR analyzer/108830
3375         * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
3377 2023-02-21  Max Filippov  <jcmvbkbc@gmail.com>
3379         PR target/108876
3380         * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
3381         for A0_REG.
3382         * config/xtensa/xtensa.md (sibcall, sibcall_internal)
3383         (sibcall_value, sibcall_value_internal): Add 'use' expression
3384         for A0_REG.
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>
3400         Revert:
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>
3432         PR target/108862
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
3439         address operand.
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
3447         invariant.
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
3454         update.
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>
3469         PR target/108832
3470         * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
3471         * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
3472         function.
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,
3483         instead of $target.
3484         (la_canonical_triplet): Set it after $triplet_abi is set
3485         correctly.
3486         * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
3487         multiarch tuple for lp64d "loongarch64-linux-gnu" (without
3488         "f64" suffix).
3490 2023-02-18  Andrew Pinski  <apinski@marvell.com>
3492         * match.pd: Remove #if GIMPLE around the
3493         "1 - a" pattern
3495 2023-02-18  Andrew Pinski  <apinski@marvell.com>
3497         * value-query.h (get_range_query): Return the global ranges
3498         for a nullptr func.
3500 2023-02-17  Siddhesh Poyarekar  <siddhesh@gotplt.org>
3502         * doc/invoke.texi (@item -Wall): Fix typo in
3503         -Wuse-after-free.
3505 2023-02-17  Uroš Bizjak  <ubizjak@gmail.com>
3507         PR target/108831
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>
3517         PR target/108805
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
3542         class.
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.
3553         (class vid): Ditto.
3554         (BASE): Ditto.
3555         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3556         * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
3557         (vmnand): Ditto.
3558         (vmandn): Ditto.
3559         (vmxor): Ditto.
3560         (vmor): Ditto.
3561         (vmnor): Ditto.
3562         (vmorn): Ditto.
3563         (vmxnor): Ditto.
3564         (vmmv): Ditto.
3565         (vmclr): Ditto.
3566         (vmset): Ditto.
3567         (vmnot): Ditto.
3568         (vcpop): Ditto.
3569         (vfirst): Ditto.
3570         (vmsbf): Ditto.
3571         (vmsif): Ditto.
3572         (vmsof): Ditto.
3573         (viota): Ditto.
3574         (vid): Ditto.
3575         * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
3576         (struct mask_alu_def): Ditto.
3577         (SHAPE): 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.
3594         (vsbc): Ditto.
3595         (vmerge): Ditto.
3596         (vmv_v): Ditto.
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.
3610         (vsm): Ditto.
3611         (vsse): Ditto.
3612         (vsoxei64): Ditto.
3613         (vsub): Ditto.
3614         (vand): Ditto.
3615         (vor): Ditto.
3616         (vxor): Ditto.
3617         (vsll): Ditto.
3618         (vsra): Ditto.
3619         (vsrl): Ditto.
3620         (vmin): Ditto.
3621         (vmax): Ditto.
3622         (vminu): Ditto.
3623         (vmaxu): Ditto.
3624         (vmul): Ditto.
3625         (vmulh): Ditto.
3626         (vmulhu): Ditto.
3627         (vmulhsu): Ditto.
3628         (vdiv): Ditto.
3629         (vrem): Ditto.
3630         (vdivu): Ditto.
3631         (vremu): Ditto.
3632         (vnot): Ditto.
3633         (vsext): Ditto.
3634         (vzext): Ditto.
3635         (vwadd): Ditto.
3636         (vwsub): Ditto.
3637         (vwmul): Ditto.
3638         (vwmulu): Ditto.
3639         (vwmulsu): Ditto.
3640         (vwaddu): Ditto.
3641         (vwsubu): Ditto.
3642         (vsbc): Ditto.
3643         (vmsbc): Ditto.
3644         (vnsra): Ditto.
3645         (vmerge): Ditto.
3646         (vmv_v): Ditto.
3647         (vmsne): Ditto.
3648         (vmslt): Ditto.
3649         (vmsgt): Ditto.
3650         (vmsle): Ditto.
3651         (vmsge): Ditto.
3652         (vmsltu): Ditto.
3653         (vmsgtu): Ditto.
3654         (vmsleu): Ditto.
3655         (vmsgeu): Ditto.
3656         (vnmsac): Ditto.
3657         (vmadd): Ditto.
3658         (vnmsub): Ditto.
3659         (vwmacc): Ditto.
3660         (vsadd): Ditto.
3661         (vssub): Ditto.
3662         (vssubu): Ditto.
3663         (vaadd): Ditto.
3664         (vasub): Ditto.
3665         (vasubu): Ditto.
3666         (vsmul): Ditto.
3667         (vssra): Ditto.
3668         (vssrl): Ditto.
3669         (vnclip): Ditto.
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.
3691         (get_vlmul): Ditto.
3692         (get_ratio): Ditto.
3693         (get_ta): Ditto.
3694         (get_ma): Ditto.
3695         (get_avl_type): Ditto.
3696         (calculate_ratio): Ditto.
3697         (enum vlmul_type): Ditto.
3698         (simm5_p): 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.
3718         * asan.h: Likewise.
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.
3728         * df.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.
3735         * expr.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.
3759         * ira.h: Likewise.
3760         * lra-int.h: Likewise.
3761         * lra.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.
3772         * regs.h: Likewise.
3773         * rtl-iter.h: Likewise.
3774         * rtl.h: Likewise.
3775         * sbitmap.h: Likewise.
3776         * sched-int.h: Likewise.
3777         * sel-sched-ir.h: Likewise.
3778         * sese.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.
3804         * tree.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
3832         type.
3834 2023-02-15  Eric Botcazou  <ebotcazou@adacore.com>
3836         PR target/90458
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.
3853         (*extzvqi): Ditto.
3854         (*insvqi_1_mem_rex64): Ditto.
3855         (@insv<mode>_1): Ditto.
3856         (*insvqi_1): Ditto.
3857         (*insvqi_2): Ditto.
3858         (*insvqi_3): 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>
3892         PR middle-end/26854
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
3904         instead.
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
3912         enum.
3913         (class imac): New class.
3914         (enum widen_ternop_type): New enum.
3915         (class iwmac): New class.
3916         (BASE): New class.
3917         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3918         * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
3919         (vnmsac): Ditto.
3920         (vmadd): Ditto.
3921         (vnmsub): Ditto.
3922         (vwmacc): Ditto.
3923         (vwmaccu): Ditto.
3924         (vwmaccsu): Ditto.
3925         (vwmaccus): 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.
3963         (BASE): Ditto.
3964         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3965         * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
3966         (vmsne): Ditto.
3967         (vmslt): Ditto.
3968         (vmsgt): Ditto.
3969         (vmsle): Ditto.
3970         (vmsge): Ditto.
3971         (vmsltu): Ditto.
3972         (vmsgtu): Ditto.
3973         (vmsleu): Ditto.
3974         (vmsgeu): 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>
4008         PR ipa/108679
4009         * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
4010         creation of non-scalar replacements even if IPA-CP knows their
4011         contents.
4013 2023-02-15  Jakub Jelinek  <jakub@redhat.com>
4015         PR target/108787
4016         PR target/103109
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
4020         half to the result.
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>
4034         PR target/108738
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
4042         check.
4044 2023-02-15  Richard Biener  <rguenther@suse.de>
4046         PR target/108738
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>
4063         PR target/108790
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>
4098         PR sanitizer/108777
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
4116         possible.
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>
4133         PR target/108516
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
4148         enabled.
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>
4164         PR target/108102
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
4168         the current side.
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.
4225         (BASE): Ditto.
4226         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4227         * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
4228         (vasub): Ditto.
4229         (vaaddu): Ditto.
4230         (vasubu): Ditto.
4231         (vsmul): Ditto.
4232         (vssra): Ditto.
4233         (vssrl): Ditto.
4234         (vnclipu): Ditto.
4235         (vnclip): Ditto.
4236         * config/riscv/vector-iterators.md (su): Add instruction.
4237         (aadd): Ditto.
4238         (vaalu): Ditto.
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.
4254         (BASE): Ditto.
4255         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4256         * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
4257         (vsrl): Ditto.
4258         (vnsrl): Ditto.
4259         (vnsra): Ditto.
4260         (vncvt_x): Ditto.
4261         (vmerge): Ditto.
4262         (vmv_v): Ditto.
4263         * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
4264         (struct move_def): Ditto.
4265         (SHAPE): 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.
4270         (v_v): Ditto.
4271         (v_x): Ditto.
4272         (x_w): Ditto.
4273         (x): Ditto.
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.
4292         (vmsbc): Ditto.
4293         * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
4294         New class.
4295         (SHAPE): Ditto.
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.
4325         (BASE): Ditto.
4326         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4327         * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
4328         (vsbc): Ditto.
4329         * config/riscv/riscv-vector-builtins-shapes.cc
4330         (struct no_mask_policy_def): Ditto.
4331         (SHAPE): 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
4356         class.
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.
4362         (vwsub): New class.
4363         (vwmul): 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
4371         class.
4372         (struct widen_alu_def): New class.
4373         (SHAPE): 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"
4379         (x_v): Ditto.
4380         * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
4381         widening support.
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
4387         pattern.
4388         (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
4389         Ditto.
4390         (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
4391         (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
4392         Ditto.
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.
4402         (BASE): Ditto.
4403         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4404         * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
4405         API support.
4406         (vmulhu): Ditto.
4407         (vmulhsu): Ditto.
4408         * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
4409         New macro.
4410         (DEF_RVV_FULL_V_U_OPS): Ditto.
4411         (vint8mf8_t): Ditto.
4412         (vint8mf4_t): Ditto.
4413         (vint8mf2_t): Ditto.
4414         (vint8m1_t): Ditto.
4415         (vint8m2_t): Ditto.
4416         (vint8m4_t): Ditto.
4417         (vint8m8_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.
4472         (BASE): Ditto.
4473         * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
4474         * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
4475         define.
4476         (vzext): Ditto.
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
4480         macro define.
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
4523         support.
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.
4538         (vssub): Ditto.
4539         (vsaddu): Ditto.
4540         (vssubu): Ditto.
4541         * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
4542         support.
4543         (sll.vv): Ditto.
4544         (%3,%v4): Ditto.
4545         (%3,%4): Ditto.
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.
4555         (BASE): Ditto.
4556         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4557         * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
4558         into alu.
4559         (vsub): Ditto.
4560         (vand): Ditto.
4561         (vor): Ditto.
4562         (vxor): Ditto.
4563         (vsll): Ditto.
4564         (vsra): Ditto.
4565         (vsrl): Ditto.
4566         (vmin): Ditto.
4567         (vmax): Ditto.
4568         (vminu): Ditto.
4569         (vmaxu): Ditto.
4570         (vmul): Ditto.
4571         (vdiv): Ditto.
4572         (vrem): Ditto.
4573         (vdivu): Ditto.
4574         (vremu): Ditto.
4575         (vrsub): Ditto.
4576         (vneg): Ditto.
4577         (vnot): Ditto.
4578         * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
4579         (struct alu_def): Ditto.
4580         (SHAPE): 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>
4592         PR ipa/108605
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.
4637         (simm32_p): 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.
4646         (simm5_p): Ditto.
4647         (neg_simm5_p): Ditto.
4648         (has_vi_variant_p): Ditto.
4649         * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
4650         (BASE): Ditto.
4651         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4652         * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
4653         unsigned cases.
4654         (vmax): Ditto.
4655         (vminu): Remove signed cases.
4656         (vmaxu): Ditto.
4657         (vdiv): Remove unsigned cases.
4658         (vrem): Ditto.
4659         (vdivu): Remove signed cases.
4660         (vremu): Ditto.
4661         (vadd): Adjust.
4662         (vsub): Ditto.
4663         (vrsub): New class.
4664         (vand): Adjust.
4665         (vor): Ditto.
4666         (vxor): Ditto.
4667         (vmul): Ditto.
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
4672         support.
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>
4689         Revert:
4690         2023-02-09  Martin Liska  <mliska@suse.cz>
4692         PR target/100758
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
4704         removing it.
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
4712         valid_combine.
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>
4720         PR target/100758
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
4724         fixes.
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>
4741         PR target/100758
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
4757         in tree view.
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>
4766         PR target/108505
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
4781         declaration.
4782         * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
4783         definition.
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
4787         declaration.
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>
4801         Revert:
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
4807         valid_combine.
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
4816         WIDEN_MINUS_EXPR.
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
4827         valid_combine.
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
4843         functions.
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
4854         for znver4.
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>
4864         PR target/104921
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
4910         op2.undefined_p ().
4911         (operator_lt::op2_range, operator_le::op2_range,
4912         operator_gt::op2_range, operator_ge::op2_range): Return false if
4913         op1.undefined_p ().
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
4919         widest_int.
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.
4957         (Indices): Ditto.
4958         (Contents): Ditto.
4959         (Functions): Ditto.
4961 2023-02-03  Christophe Lyon  <christophe.lyon@arm.com>
4963         * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
4964         attribute.
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>
4972         PR ipa/108384
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.
4991         (sll.vv): Ditto.
4992         (%3,%4): Ditto.
4993         (%3,%v4): Ditto.
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.
5001         (vsra): Ditto.
5002         (vsrl): 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
5029         tree.
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>
5038         PR debug/106746
5039         PR rtl-optimization/108463
5040         PR target/108484
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>
5079         PR target/108443
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
5084         format.
5085         (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
5086         modes.
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
5090         qualifier.
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
5098         modes.
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.
5113         (mode1): Remove.
5114         (VCTPQ): Remove.
5115         (VCTPQ_M): Remove.
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
5118         attributes.
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
5135         predicates.
5136         * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
5137         these...
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>
5146         PR target/107674
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>
5155         PR target/107674
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
5159         parameter.
5160         (arm_init_crypto_builtins): Likewise.
5162 2023-02-02  Jakub Jelinek  <jakub@redhat.com>
5164         PR ipa/107300
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.
5189         * tree-vect-loop.cc
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):
5196         .. Here.
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
5214         a bit more.
5215         (all_extensions): Set new field native_detect.
5216         * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
5217         unused struct.
5219 2023-02-01  Martin Liska  <mliska@suse.cz>
5221         * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
5222         value if set.
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>
5232         PR ipa/108509
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>
5239         PR driver/108572
5240         * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
5241         -gz=zstd.
5243 2023-02-01  Jakub Jelinek  <jakub@redhat.com>
5245         PR debug/108573
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
5279         rename to ...
5280         (@stack_tie<mode>): ... this.
5282 2023-02-01  Andreas Krebbel  <krebbel@linux.ibm.com>
5284         * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
5285         EMIT_CFI parameter.
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.
5307         (vk): Ditto
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.
5314         (vsub): Ditto.
5315         (vand): Ditto.
5316         (vor): Ditto.
5317         (vxor): Ditto.
5318         (vsll): Ditto.
5319         (vsra): Ditto.
5320         (vsrl): Ditto.
5321         (vmin): Ditto.
5322         (vmax): Ditto.
5323         (vminu): Ditto.
5324         (vmaxu): Ditto.
5325         (vmul): Ditto.
5326         (vdiv): Ditto.
5327         (vrem): Ditto.
5328         (vdivu): Ditto.
5329         (vremu): Ditto.
5330         * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
5331         (vsub): Ditto.
5332         (vand): Ditto.
5333         (vor): Ditto.
5334         (vxor): Ditto.
5335         (vsll): Ditto.
5336         (vsra): Ditto.
5337         (vsrl): Ditto.
5338         (vmin): Ditto.
5339         (vmax): Ditto.
5340         (vminu): Ditto.
5341         (vmaxu): Ditto.
5342         (vmul): Ditto.
5343         (vdiv): Ditto.
5344         (vrem): Ditto.
5345         (vdivu): Ditto.
5346         (vremu): Ditto.
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>
5362         PR target/108589
5363         * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
5364         REG_P on SET_DEST.
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>
5401         PR target/108599
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>
5417         PR c++/105593
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.
5434         (BASE): Ditto.
5435         * config/riscv/riscv-vector-builtins-bases.h: New function declare.
5436         * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
5437         (vluxei16): Ditto.
5438         (vluxei32): Ditto.
5439         (vluxei64): Ditto.
5440         (vloxei8): Ditto.
5441         (vloxei16): Ditto.
5442         (vloxei32): Ditto.
5443         (vloxei64): Ditto.
5444         (vsuxei8): Ditto.
5445         (vsuxei16): Ditto.
5446         (vsuxei32): Ditto.
5447         (vsuxei64): Ditto.
5448         (vsoxei8): Ditto.
5449         (vsoxei16): Ditto.
5450         (vsoxei32): Ditto.
5451         (vsoxei64): Ditto.
5452         * config/riscv/riscv-vector-builtins-shapes.cc
5453         (struct indexed_loadstore_def): New class.
5454         (SHAPE): Ditto.
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
5462         support.
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
5473         pattern.
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
5491         i386/gnu64.h.
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>
5529         PR ipa/108511
5530         * cgraph.cc (possibly_call_in_translation_unit_p): Relax
5531         assert.
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
5555         AVR-Libc manual.
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
5568         AddressSanitizer.
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):
5578         Support vlse/vsse.
5579         (BASE): Ditto.
5580         * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5581         * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
5582         (vsse): 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>
5612         PR target/55522
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>
5618         PR target/55522
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>
5624         PR target/55522
5625         * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
5626         for -shared.
5628 2023-01-27  Richard Biener  <rguenther@suse.de>
5630         PR target/55522
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.
5658         (vsm): Ditto.
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.
5661         (vbool64_t): Ditto.
5662         (vbool32_t): Ditto.
5663         (vbool16_t): Ditto.
5664         (vbool8_t): Ditto.
5665         (vbool4_t): Ditto.
5666         (vbool2_t): Ditto.
5667         (vbool1_t): 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>
5714         PR other/108560
5715         * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
5716         from size_t to int.
5718 2023-01-27  Jakub Jelinek  <jakub@redhat.com>
5720         PR ipa/106061
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
5758         pass.
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>
5770         PR target/55522
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
5783         nodes.
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
5850         rinsn.
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
5913         pred_store for vse.
5914         * config/riscv/riscv-vector-builtins.cc
5915         (function_expander::add_mem_operand): Refine function.
5916         (function_expander::use_contiguous_load_insn): Adjust new
5917         implementation.
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):
5963         Use widest_int.
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>
5982         PR modula2/102343
5983         PR modula2/108182
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>):
5999         Fix spacing.
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
6014         prove equivalence.
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
6024         tests.
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
6050         split pattern.
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
6062         of CPU version.
6064 2023-01-24  Andre Vieira  <andre.simoesdiasvieira@arm.com>
6066         PR target/108177
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
6069         as input 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>
6090         PR bootstrap/90543
6091         * optc-save-gen.awk: Fix copy-and-paste error.
6093 2023-01-24  Jakub Jelinek  <jakub@redhat.com>
6095         PR c++/108474
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>
6102         PR target/108505
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>
6108         PR target/107731
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>
6122         PR target/55522
6123         * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
6124         for -shared.
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
6143         register.
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
6190         compatibility.
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'
6200         proto.
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
6209         target.
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):
6219         Declare it.
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):
6229         Add new patterns.
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
6236         mbranch-protection.
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
6293         aarch-common.h
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
6298         and enum value.
6299         * config/aarch64/aarch64.opt: Include aarch-common.h to import
6300         type move.  Fix up name changes from factoring out common code and
6301         data.
6302         * config/arm/aarch-common-protos.h: Export factored out routines to both
6303         backends.
6304         * config/arm/aarch-common.cc: Include newly factored out types.
6305         Move all mbranch-protection code and data structures from
6306         aarch64.cc.
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
6329         and HI input modes.
6330         * config/pru/pru.md (clz): Fix generated code for QI and HI
6331         input modes.
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}
6356         commutativity.
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>
6362         PR target/108436
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>
6374         PR target/108411
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
6390         been created.
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
6396         the pattern.
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>
6402         PR debug/106746
6403         * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
6404         within debug insns.
6406 2023-01-18  Martin Jambor  <mjambor@suse.cz>
6408         PR ipa/107944
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>
6414         Revert:
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>
6423         PR target/108442
6424         * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
6425         function.
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
6448         if TARGET_DENSITY.
6450 2023-01-18  Kewen Lin  <linkw@linux.ibm.com>
6451             Andrew Pinski  <apinski@marvell.com>
6453         PR target/108396
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>
6459         PR target/108348
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>
6465         PR target/55522
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
6475         -fstack-protector.
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>
6487         PR target/105980
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>
6493         PR ipa/106077
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>
6515         PR target/55522
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>
6520         PR target/96795
6521         PR target/107515
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
6544         for c[lt]z optabs.
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>
6555         PR other/108413
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>
6561         PR c++/105593
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):
6565         Likewise.
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>
6575         PR target/108272
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>
6618         PR target/40457
6619         * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
6620         moves.
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
6632         define.
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
6636         enabled.
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
6665         DECL_NOT_FLEXARRAY.
6666         * tree.cc (component_ref_size): Likewise.
6668 2023-01-13  Richard Biener  <rguenther@suse.de>
6670         PR target/55522
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>
6677         PR target/55522
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):
6681         Likewise.
6682         * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
6683         Likewise.
6685 2023-01-13  Richard Sandiford  <richard.sandiford@arm.com>
6687         * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
6688         function.
6689         (TARGET_DWARF_FRAME_REG_MODE): Define.
6691 2023-01-13  Richard Biener  <rguenther@suse.de>
6693         PR target/107209
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>
6714         PR target/105549
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
6720         changes.
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
6726         comment.
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.
6758         (verify): Likewise.
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>
6769         PR target/108293
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
6807         irreducible loops.
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):
6817         Remove.
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>
6848         PR ipa/108110
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
6858         sort_replacements.
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
6862         std::lower_bound.
6863         (ipa_param_body_adjustments::lookup_first_base_replacement): New
6864         function.
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
6909         registers.
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>
6926         PR target/107453
6927         * calls.cc (expand_call): For calls with
6928         TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
6929         Formatting fix.
6931 2023-01-09  Richard Biener  <rguenther@suse.de>
6933         PR middle-end/69482
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>
6939         PR lto/108330
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`
6963         before <windows.h>.
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>
6975         Revert:
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):
6987         Add E_V2HFmode.
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>
7000         Revert:
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
7025         types.
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>
7037         PR sanitizer/108256
7038         * convert.cc (do_narrow): Punt for MULT_EXPR if original
7039         type doesn't wrap around and -fsanitize=signed-integer-overflow
7040         is on.
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
7051         for meteorlake.
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
7061         on local clones.
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>
7067         Revert:
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
7077         hook signature.
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>
7086         Revert:
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>
7106         PR target/108229
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
7116         it to outer_mode.
7118 2023-01-03  Jakub Jelinek  <jakub@redhat.com>
7120         PR rtl-optimization/108263
7121         * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
7122         asm goto to EXIT.
7124 2023-01-02  Alexander Monakov  <amonakov@ispras.ru>
7126         PR target/87832
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
7170         hook signature.
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.