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