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
22 2023-04-01 Jakub Jelinek <jakub@redhat.com>
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
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>
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>
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.
74 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
76 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
77 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
79 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
81 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
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>):
90 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
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>):
108 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
110 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
111 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
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>
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):
159 2023-03-29 Martin Liska <mliska@suse.cz>
162 * configure.ac: Emit a warning for deprecated option
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>
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>
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>
212 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
213 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
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>
249 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
250 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
252 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
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
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
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>
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
292 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
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>
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>
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>
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
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
335 * config/i386/sym-mingw32.cc: prevent name mangling of
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>
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.
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
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>
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>
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>
411 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
413 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
415 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
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>
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>
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>
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
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>
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>
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
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>
531 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
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):
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):
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):
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.
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
639 2023-03-23 Pan Li <pan2.li@intel.com>
640 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
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>
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>
673 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
674 __riscv_vlenb support.
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.
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.
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):
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.
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
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
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
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
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
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
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>
910 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
911 (init_float128_ieee): Delete code to switch complex multiply and divide
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>
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>:
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>
937 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
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
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
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>
971 * config/riscv/riscv.md: Fix subreg bug.
973 2023-03-17 Jakub Jelinek <jakub@redhat.com>
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>
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
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
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
1005 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
1006 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
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
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
1050 (pass_waccess::check_pointer_uses): Process all PHIs.
1052 2023-03-15 David Malcolm <dmalcolm@redhat.com>
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
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"
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
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
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
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>
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
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):
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
1140 * config/riscv/riscv.cc (riscv_split_doubleword_move):
1141 Add split code for XTheadFmv.
1142 (riscv_secondary_memory_needed): XTheadFmv does not need
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):
1171 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
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
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>
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>
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>
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
1274 2023-03-14 Martin Jambor <mjambor@suse.cz>
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'
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>
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>
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>
1415 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
1418 2023-03-12 Tamar Christina <tamar.christina@arm.com>
1419 Andrew MacLeod <amacleod@redhat.com>
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):
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>
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
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
1469 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
1471 * doc/extend.texi (Named Address Spaces): Drop a redundant link
1474 2023-03-11 Jeff Law <jlaw@ventanamicro>
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
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>
1491 * optabs.cc (expand_fix): For conversions from BFmode to integral,
1492 use shifts to convert it to SFmode first and then convert SFmode
1495 2023-03-10 Andrew Pinski <apinski@marvell.com>
1497 * config/aarch64/aarch64.md: Add a new define_split
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>
1515 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
1517 * config/i386/t-cygwin-w64: Remove.
1519 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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
1531 * tree.cc (tree_code_type, tree_code_length): Remove.
1533 2023-03-10 Jakub Jelinek <jakub@redhat.com>
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
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>
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
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.
1580 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1581 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
1583 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
1584 (struct fault_load_def): 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>
1687 * doc/extend.texi (Type Traits):: Document __is_deducible.
1689 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
1692 * config.host: add object for x86_64-*-mingw*.
1693 * config/i386/sym-mingw32.cc: dummy file to attach
1695 * config/i386/utf8-mingw32.rc: windres resource file.
1696 * config/i386/winnt-utf8.manifest: XML manifest to
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>
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>
1738 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
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
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>
1770 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
1772 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
1773 (X86_TUNE_USE_SCATTER): Likewise.
1775 2023-03-06 Xi Ruoyao <xry111@xry111.site>
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
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
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.
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
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.
1864 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
1866 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
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.
1884 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
1885 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
1901 (vundefined): Add new intrinsic.
1902 (vreinterpret): Ditto.
1904 (vlmul_trunc): 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.
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.
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.
2024 (vuint8mf8_t): Ditto.
2025 (vuint8mf4_t): Ditto.
2026 (vuint8mf2_t): Ditto.
2027 (vuint8m1_t): Ditto.
2028 (vuint8m2_t): Ditto.
2030 (vuint8m4_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.
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.
2067 (unsigned_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.
2138 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2139 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
2140 (vslidedown): Ditto.
2142 (vslide1down): Ditto.
2143 (vfslide1up): Ditto.
2144 (vfslide1down): Ditto.
2146 (vrgatherei16): 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.
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.
2229 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2230 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
2234 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): 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.
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
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
2347 * read-rtl-function.cc (function_reader::parse_block): Likewise.
2348 * gdbhooks.py: Likewise.
2350 2023-03-04 Jakub Jelinek <jakub@redhat.com>
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>
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
2417 2023-03-03 Richard Biener <rguenther@suse.de>
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
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
2437 2023-03-03 Richard Biener <rguenther@suse.de>
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>
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
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
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
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>
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>
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
2552 2023-03-01 Jakub Jelinek <jakub@redhat.com>
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
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>
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
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>
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>
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
2631 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
2633 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
2635 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
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>
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>
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
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
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>
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>
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)
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
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>
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>
2870 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
2873 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
2875 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
2876 (sibcall_value, sibcall_value_internal): Add 'use' expression
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.
2911 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2912 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
2926 (vfwredosum): Ditto.
2927 (vfwredusum): Ditto.
2928 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): 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.
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.
3035 * config/riscv/riscv-vector-builtins-bases.h:
3036 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
3080 (vfcvt_rtz_x): Ditto.
3081 (vfcvt_rtz_xu): Ditto.
3085 (vfwcvt_rtz_x): Ditto.
3086 (vfwcvt_rtz_xu): Ditto.
3090 (vfncvt_rtz_x): Ditto.
3091 (vfncvt_rtz_xu): 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.
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.
3151 (fixuns_trunc): 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>
3230 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
3232 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
3235 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
3237 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
3238 (sibcall_value, sibcall_value_internal): Add 'use' expression
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>
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>
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
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
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
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>
3325 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
3326 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
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,
3339 (la_canonical_triplet): Set it after $triplet_abi is set
3341 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
3342 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
3345 2023-02-18 Andrew Pinski <apinski@marvell.com>
3347 * match.pd: Remove #if GIMPLE around the
3350 2023-02-18 Andrew Pinski <apinski@marvell.com>
3352 * value-query.h (get_range_query): Return the global ranges
3355 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
3357 * doc/invoke.texi (@item -Wall): Fix typo in
3360 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
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>
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
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.
3410 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3411 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
3430 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
3431 (struct mask_alu_def): 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.
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.
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.
3550 (get_avl_type): Ditto.
3551 (calculate_ratio): Ditto.
3552 (enum vlmul_type): 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.
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.
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.
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.
3615 * lra-int.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.
3628 * rtl-iter.h: Likewise.
3630 * sbitmap.h: Likewise.
3631 * sched-int.h: Likewise.
3632 * sel-sched-ir.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.
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
3689 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
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.
3709 (*insvqi_1_mem_rex64): Ditto.
3710 (@insv<mode>_1): 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>
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
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
3768 (class imac): New class.
3769 (enum widen_ternop_type): New enum.
3770 (class iwmac): New class.
3772 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3773 * config/riscv/riscv-vector-builtins-functions.def (vmacc): 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.
3819 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3820 * config/riscv/riscv-vector-builtins-functions.def (vmseq): 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>
3864 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
3865 creation of non-scalar replacements even if IPA-CP knows their
3868 2023-02-15 Jakub Jelinek <jakub@redhat.com>
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
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>
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
3899 2023-02-15 Richard Biener <rguenther@suse.de>
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>
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>
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
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>
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
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>
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
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.
4081 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4082 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
4091 * config/riscv/vector-iterators.md (su): Add instruction.
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.
4110 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4111 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
4118 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
4119 (struct move_def): 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.
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.
4148 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
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.
4181 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4182 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
4184 * config/riscv/riscv-vector-builtins-shapes.cc
4185 (struct no_mask_policy_def): 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
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.
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
4227 (struct widen_alu_def): 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"
4235 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
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
4243 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
4245 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
4246 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
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.
4258 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4259 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
4263 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
4265 (DEF_RVV_FULL_V_U_OPS): Ditto.
4266 (vint8mf8_t): Ditto.
4267 (vint8mf4_t): Ditto.
4268 (vint8mf2_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.
4328 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
4329 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
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
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
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.
4396 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
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.
4411 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4412 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
4433 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
4434 (struct alu_def): 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>
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.
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.
4502 (neg_simm5_p): Ditto.
4503 (has_vi_variant_p): Ditto.
4504 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
4506 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4507 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
4510 (vminu): Remove signed cases.
4512 (vdiv): Remove unsigned cases.
4514 (vdivu): Remove signed cases.
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
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>
4545 2023-02-09 Martin Liska <mliska@suse.cz>
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
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
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>
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
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>
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
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>
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
4637 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
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
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>
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
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
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
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
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
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>
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
4766 (operator_lt::op2_range, operator_le::op2_range,
4767 operator_gt::op2_range, operator_ge::op2_range): Return false if
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
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.
4816 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
4818 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
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>
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.
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.
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
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>
4894 PR rtl-optimization/108463
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>
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
4940 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
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
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
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.
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
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
4991 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
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>
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>
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
5015 (arm_init_crypto_builtins): Likewise.
5017 2023-02-02 Jakub Jelinek <jakub@redhat.com>
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.
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):
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
5070 (all_extensions): Set new field native_detect.
5071 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
5074 2023-02-01 Martin Liska <mliska@suse.cz>
5076 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
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>
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>
5095 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
5098 2023-02-01 Jakub Jelinek <jakub@redhat.com>
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
5135 (@stack_tie<mode>): ... this.
5137 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
5139 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
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.
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.
5185 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
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>
5218 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
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>
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>
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.
5290 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
5291 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
5307 * config/riscv/riscv-vector-builtins-shapes.cc
5308 (struct indexed_loadstore_def): New class.
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
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
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
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>
5385 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
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
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
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):
5435 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5436 * config/riscv/riscv-vector-builtins-functions.def (vlse): 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>
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>
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>
5480 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
5483 2023-01-27 Richard Biener <rguenther@suse.de>
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.
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.
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>
5570 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
5573 2023-01-27 Jakub Jelinek <jakub@redhat.com>
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
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>
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
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
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
5769 * config/riscv/riscv-vector-builtins.cc
5770 (function_expander::add_mem_operand): Refine function.
5771 (function_expander::use_contiguous_load_insn): Adjust new
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):
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>
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>):
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
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
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
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
5919 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
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
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>
5946 * optc-save-gen.awk: Fix copy-and-paste error.
5948 2023-01-24 Jakub Jelinek <jakub@redhat.com>
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>
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>
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>
5978 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
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
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
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'
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
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):
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):
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
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
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
6154 * config/aarch64/aarch64.opt: Include aarch-common.h to import
6155 type move. Fix up name changes from factoring out common code and
6157 * config/arm/aarch-common-protos.h: Export factored out routines to both
6159 * config/arm/aarch-common.cc: Include newly factored out types.
6160 Move all mbranch-protection code and data structures from
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
6185 * config/pru/pru.md (clz): Fix generated code for QI and HI
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}
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>
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>
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
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
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>
6258 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
6261 2023-01-18 Martin Jambor <mjambor@suse.cz>
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>
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>
6279 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
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
6305 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
6306 Andrew Pinski <apinski@marvell.com>
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>
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>
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
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>
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>
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>
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>
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
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>
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>
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):
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>
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>
6474 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
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
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
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
6521 * tree.cc (component_ref_size): Likewise.
6523 2023-01-13 Richard Biener <rguenther@suse.de>
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>
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):
6537 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
6540 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
6542 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
6544 (TARGET_DWARF_FRAME_REG_MODE): Define.
6546 2023-01-13 Richard Biener <rguenther@suse.de>
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>
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
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
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.
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>
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
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):
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>
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
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
6718 (ipa_param_body_adjustments::lookup_first_base_replacement): New
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
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>
6782 * calls.cc (expand_call): For calls with
6783 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
6786 2023-01-09 Richard Biener <rguenther@suse.de>
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>
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`
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>
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):
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>
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
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>
6893 * convert.cc (do_narrow): Punt for MULT_EXPR if original
6894 type doesn't wrap around and -fsanitize=signed-integer-overflow
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
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
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>
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
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>
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>
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
6973 2023-01-03 Jakub Jelinek <jakub@redhat.com>
6975 PR rtl-optimization/108263
6976 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
6979 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
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
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.