1 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3 * tree-ssa-forwprop.cc (is_combined_permutation_identity): Try to
4 simplify two successive VEC_PERM_EXPRs with same VLA mask,
5 where mask chooses elements in reverse order.
7 2023-04-24 Andrew Pinski <apinski@marvell.com>
9 * tree-ssa-phiopt.cc (match_simplify_replacement): Add new arguments
10 and support diamond shaped basic block form.
11 (tree_ssa_phiopt_worker): Update call to match_simplify_replacement
13 2023-04-24 Andrew Pinski <apinski@marvell.com>
15 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
16 Instead of calling last_and_only_stmt, look for the last statement
19 2023-04-24 Andrew Pinski <apinski@marvell.com>
21 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
23 (match_simplify_replacement): Call
24 empty_bb_or_one_feeding_into_p instead of doing it inline.
26 2023-04-24 Andrew Pinski <apinski@marvell.com>
28 PR tree-optimization/68894
29 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove the
30 continue for the do_hoist_loads diamond case.
32 2023-04-24 Andrew Pinski <apinski@marvell.com>
34 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
35 code for better code readability.
37 2023-04-24 Andrew Pinski <apinski@marvell.com>
39 PR tree-optimization/109604
40 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Move the
41 diamond form check from ...
42 (minmax_replacement): Here.
44 2023-04-24 Patrick Palka <ppalka@redhat.com>
46 * tree.cc (strip_array_types): Don't define here.
47 (is_typedef_decl): Don't define here.
48 (typedef_variant_p): Don't define here.
49 * tree.h (strip_array_types): Define here.
50 (is_typedef_decl): Define here.
51 (typedef_variant_p): Define here.
53 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
55 * doc/generic.texi (OpenMP): Add != to allowed
56 conditions and state that vars can be unsigned.
57 * tree.def (OMP_FOR): Likewise.
59 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
61 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
63 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
65 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
66 Remove explicit Solaris 11 references.
68 (Options specification, --with-gnu-as): as and gas always differ
70 Remove /usr/ccs/bin reference.
71 (Installing GCC: Binaries, Solaris (SPARC, Intel)): Remove.
72 (i?86-*-solaris2*): Merge assembler, linker recommendations ...
73 (*-*-solaris2*): ... here.
74 Update bundled GCC versions.
75 Don't refer to pre-built binaries.
76 Remove /bin/sh warning.
77 Update assembler, linker recommendations.
78 Document GNAT bootstrap compiler.
79 (sparc-sun-solaris2*): Remove non-UltraSPARC reference.
80 (sparc64-*-solaris2*): Move content...
81 (sparcv9-*-solaris2*): ...here.
82 Add GDC for 64-bit bootstrap compilers.
84 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
87 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
89 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
92 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
94 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): Rename to...
95 (aarch64_<su>abal2<mode>_insn): ... This. Use RTL codes instead of unspec.
96 (aarch64_<su>abal2<mode>): New define_expand.
97 * config/aarch64/aarch64.cc (aarch64_abd_rtx_p): New function.
98 (aarch64_rtx_costs): Handle ABD rtxes.
99 * config/aarch64/aarch64.md (UNSPEC_SABAL2, UNSPEC_UABAL2): Delete.
100 * config/aarch64/iterators.md (ABAL2): Delete.
101 (sur): Remove handling of UNSPEC_UABAL2 and UNSPEC_SABAL2.
103 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
105 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>): Rename to...
106 (aarch64_<su>abal<mode>): ... This. Use RTL codes instead of unspec.
107 (<sur>sadv16qi): Rename to...
108 (<su>sadv16qi): ... This. Adjust for the above.
109 * config/aarch64/aarch64-sve.md (<sur>sad<vsi2qi>): Rename to...
110 (<su>sad<vsi2qi>): ... This. Adjust for the above.
111 * config/aarch64/aarch64.md (UNSPEC_SABAL, UNSPEC_UABAL): Delete.
112 * config/aarch64/iterators.md (ABAL): Delete.
113 (sur): Remove handling of UNSPEC_SABAL and UNSPEC_UABAL.
115 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
117 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>): Rename to...
118 (aarch64_<su>abdl2<mode>_insn): ... This. Use RTL codes instead of unspec.
119 (aarch64_<su>abdl2<mode>): New define_expand.
120 * config/aarch64/aarch64.md (UNSPEC_SABDL2, UNSPEC_UABDL2): Delete.
121 * config/aarch64/iterators.md (ABDL2): Delete.
122 (sur): Remove handling of UNSPEC_SABDL2 and UNSPEC_UABDL2.
124 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
126 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
127 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
129 * config/aarch64/aarch64.md (UNSPEC_SABDL, UNSPEC_UABDL): Delete.
130 * config/aarch64/iterators.md (ABDL): Delete.
131 (sur): Remove handling of UNSPEC_SABDL and UNSPEC_UABDL.
133 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
135 * config/aarch64/aarch64-simd.md
136 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
138 2023-04-24 Richard Biener <rguenther@suse.de>
140 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
142 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
144 * ipa-fnsummary.cc (set_cond_stmt_execution_predicate): Likewise.
145 (set_switch_stmt_execution_predicate): Likewise.
146 (phi_result_unknown_predicate): Likewise.
147 * ipa-prop.cc (compute_complex_ancestor_jump_func): Likewise.
148 (ipa_analyze_indirect_call_uses): Likewise.
149 * predict.cc (predict_iv_comparison): Likewise.
150 (predict_extra_loop_exits): Likewise.
151 (predict_loops): Likewise.
152 (tree_predict_by_opcode): Likewise.
153 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
155 * gimple-pretty-print.cc (dump_implicit_edges): Likewise.
156 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Likewise.
157 (replace_phi_edge_with_variable): Likewise.
158 (two_value_replacement): Likewise.
159 (value_replacement): Likewise.
160 (minmax_replacement): Likewise.
161 (spaceship_replacement): Likewise.
162 (cond_removal_in_builtin_zero_pattern): Likewise.
163 * tree-ssa-reassoc.cc (maybe_optimize_range_tests): Likewise.
164 * tree-ssa-sccvn.cc (vn_phi_eq): Likewise.
165 (vn_phi_lookup): Likewise.
166 (vn_phi_insert): Likewise.
167 * tree-ssa-structalias.cc (compute_points_to_sets): Likewise.
168 * tree-ssa-threadbackward.cc (back_threader::maybe_thread_block):
170 (back_threader_profitability::possibly_profitable_path_p):
172 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
174 * tree-switch-conversion.cc (pass_convert_switch::execute):
176 (pass_lower_switch<O0>::execute): Likewise.
177 * tree-tailcall.cc (tree_optimize_tail_calls_1): Likewise.
178 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
179 * tree-vect-slp.cc (vect_slp_function): Likewise.
180 * tree-vect-stmts.cc (cfun_returns): Likewise.
181 * tree-vectorizer.cc (vect_loop_vectorized_call): Likewise.
182 (vect_loop_dist_alias_call): Likewise.
184 2023-04-24 Richard Biener <rguenther@suse.de>
186 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
188 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
190 * config/riscv/riscv-vsetvl.cc
191 (vector_infos_manager::all_avail_in_compatible_p): New function.
192 (pass_vsetvl::refine_vsetvls): Optimize vsetvls.
193 * config/riscv/riscv-vsetvl.h: New function.
195 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
197 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
198 comment for cleanup_insns.
200 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
202 * config/riscv/vector-iterators.md: New unspec to refine fault first load pattern.
203 * config/riscv/vector.md: Refine fault first load pattern to erase avl from instructions
204 with the fault first load property.
206 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
208 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
209 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
211 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
214 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
215 (aarch64_addp<mode><vczle><vczbe>): ... This.
217 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
219 * config/stormy16/stormy16.cc (xstormy16_rtx_costs): Rewrite to
220 provide reasonable values for common arithmetic operations and
221 immediate operands (in several machine modes).
223 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
225 * config/stormy16/stormy16.cc (xstormy16_print_operand): Add %h
226 format specifier to output high_part register name of SImode reg.
227 * config/stormy16/stormy16.md (extendhisi2): New define_insn.
228 (zero_extendqihi2): Fix lengths, consistent formatting and add
229 "and Rx,#255" alternative, for documentation purposes.
230 (zero_extendhisi2): New define_insn.
232 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
234 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
235 SImode shifts by two by performing a single bit SImode shift twice.
237 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
239 PR tree-optimization/109593
240 * value-range.cc (frange::operator==): Handle NANs.
242 2023-04-23 liuhongt <hongtao.liu@intel.com>
244 PR rtl-optimization/108707
245 * ira-costs.cc (scan_one_insn): Use NO_REGS instead of
246 GENERAL_REGS when preferred reg_class is not known.
248 2023-04-22 Andrew Pinski <apinski@marvell.com>
250 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
251 Change the code around slightly to move diamond
252 handling for do_store_elim/do_hoist_loads out of
255 2023-04-22 Andrew Pinski <apinski@marvell.com>
257 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
258 Remove check on empty_block_p.
260 2023-04-22 Jakub Jelinek <jakub@redhat.com>
263 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
264 * realmpfr.h (class auto_mpfr): Likewise.
266 2023-04-22 Jakub Jelinek <jakub@redhat.com>
268 PR tree-optimization/109583
269 * match.pd (fneg/fadd simplify): Don't call related_vector_mode
270 if vec_mode is not VECTOR_MODE_P.
272 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
273 Ondrej Kubanek <kubanek0ondrej@gmail.com>
275 * cfgloopmanip.h (adjust_loop_info_after_peeling): Declare.
276 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix updating of
277 loop profile and bounds after header duplication.
278 * tree-ssa-loop-ivcanon.cc (adjust_loop_info_after_peeling):
279 Break out from try_peel_loop; fix handling of 0 iterations.
280 (try_peel_loop): Use adjust_loop_info_after_peeling.
282 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
284 PR tree-optimization/109546
285 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
286 not fold conditions with ADDR_EXPR early.
288 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
290 * config/aarch64/aarch64.md (aarch64_umax<mode>3_insn): Delete.
291 (umax<mode>3): Emit raw UMAX RTL instead of going through gen_ function
293 (<optab><mode>3): New define_expand for MAXMIN_NOUMAX codes.
294 (*aarch64_<optab><mode>3_zero): Define.
295 (*aarch64_<optab><mode>3_cssc): Likewise.
296 * config/aarch64/iterators.md (maxminand): New code attribute.
298 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
301 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
302 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
304 * config/aarch64/aarch64.cc (aarch64_tpidr_register): Declare.
305 (aarch64_override_options_internal): Handle the above.
306 (aarch64_output_load_tp): New function.
307 * config/aarch64/aarch64.md (aarch64_load_tp_hard): Call
308 aarch64_output_load_tp.
309 * config/aarch64/aarch64.opt (aarch64_tp_reg): Define enum.
311 * doc/invoke.texi (AArch64 Options): Document -mtp=.
313 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
316 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
317 (add_vec_concat_subst_be): Likewise.
320 (add<mode>3): Rename to...
321 (add<mode>3<vczle><vczbe>): ... This.
322 (sub<mode>3): Rename to...
323 (sub<mode>3<vczle><vczbe>): ... This.
324 (mul<mode>3): Rename to...
325 (mul<mode>3<vczle><vczbe>): ... This.
326 (and<mode>3): Rename to...
327 (and<mode>3<vczle><vczbe>): ... This.
328 (ior<mode>3): Rename to...
329 (ior<mode>3<vczle><vczbe>): ... This.
330 (xor<mode>3): Rename to...
331 (xor<mode>3<vczle><vczbe>): ... This.
332 * config/aarch64/iterators.md (VDZ): Define.
334 2023-04-21 Patrick Palka <ppalka@redhat.com>
336 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
339 2023-04-21 Jan Hubicka <jh@suse.cz>
341 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
344 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
346 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
347 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
349 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
351 * config/aarch64/aarch64.cc (aarch64_simd_dup_constant): Use
352 force_reg instead of copy_to_mode_reg.
353 (aarch64_expand_vector_init): Likewise.
355 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
357 * config/i386/i386.h (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Remove.
358 (REG_OK_FOR_INDEX_NONSTRICT_P, REG_OK_FOR_BASE_NONSTRICT_P): Ditto.
359 (REG_OK_FOR_INDEX_STRICT_P, REG_OK_FOR_BASE_STRICT_P): Ditto.
360 (FIRST_INDEX_REG, LAST_INDEX_REG): New defines.
361 (LEGACY_INDEX_REG_P, LEGACY_INDEX_REGNO_P): New macros.
362 (INDEX_REG_P, INDEX_REGNO_P): Ditto.
363 (REGNO_OK_FOR_INDEX_P): Use INDEX_REGNO_P predicates.
364 (REGNO_OK_FOR_INDEX_NONSTRICT_P): New macro.
365 (EG_OK_FOR_BASE_NONSTRICT_P): Ditto.
366 * config/i386/predicates.md (index_register_operand):
367 Use REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
368 * config/i386/i386.cc (ix86_legitimate_address_p): Use
369 REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_BASE_NONSTRICT_P,
370 REGNO_OK_FOR_INDEX_P and REGNO_OK_FOR_INDEX_NONSTRICT_P macros.
372 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
373 Ondrej Kubanek <kubanek0ondrej@gmail.com>
375 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
378 2023-04-21 Richard Biener <rguenther@suse.de>
380 * is-a.h (safe_is_a): New.
382 2023-04-21 Richard Biener <rguenther@suse.de>
384 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
385 (gphi_iterator::operator*): Likewise.
387 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
388 Michal Jires <michal@jires.eu>
390 * ipa-inline.cc (class inline_badness): New class.
391 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
393 (update_edge_key): Update.
394 (lookup_recursive_calls): Likewise.
395 (recursive_inlining): Likewise.
396 (add_new_edges_to_heap): Likewise.
397 (inline_small_functions): Likewise.
399 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
401 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
403 2023-04-21 Richard Biener <rguenther@suse.de>
405 PR tree-optimization/109573
406 * tree-vect-loop.cc (vectorizable_live_operation): Allow
407 unhandled SSA copy as well. Demote assert to checking only.
409 2023-04-21 Richard Biener <rguenther@suse.de>
411 * df-core.cc (df_analyze): Compute RPO on the reverse graph
412 for DF_BACKWARD problems.
413 (loop_post_order_compute): Rename to ...
414 (loop_rev_post_order_compute): ... this, compute a RPO.
415 (loop_inverted_post_order_compute): Rename to ...
416 (loop_inverted_rev_post_order_compute): ... this, compute a RPO.
417 (df_analyze_loop): Use RPO on the forward graph for DF_FORWARD
418 problems, RPO on the inverted graph for DF_BACKWARD.
420 2023-04-21 Richard Biener <rguenther@suse.de>
422 * cfganal.h (inverted_rev_post_order_compute): Rename
424 (inverted_post_order_compute): ... this. Add struct function
425 argument, change allocation to a C array.
426 * cfganal.cc (inverted_rev_post_order_compute): Likewise.
427 * lcm.cc (compute_antinout_edge): Adjust.
428 * lra-lives.cc (lra_create_live_ranges_1): Likewise.
429 * tree-ssa-dce.cc (remove_dead_stmt): Likewise.
430 * tree-ssa-pre.cc (compute_antic): Likewise.
432 2023-04-21 Richard Biener <rguenther@suse.de>
434 * df.h (df_d::postorder_inverted): Change back to int *,
436 * df-core.cc (rest_of_handle_df_finish): Adjust.
437 (df_analyze_1): Likewise.
438 (df_analyze): For DF_FORWARD problems use RPO on the forward
440 (loop_inverted_post_order_compute): Adjust API.
441 (df_analyze_loop): Adjust.
442 (df_get_n_blocks): Likewise.
443 (df_get_postorder): Likewise.
445 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
448 * config/riscv/riscv-vsetvl.cc
449 (vector_infos_manager::all_empty_predecessor_p): New function.
450 (pass_vsetvl::backward_demand_fusion): Ditto.
451 * config/riscv/riscv-vsetvl.h: Ditto.
453 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
456 * config/riscv/generic.md: Change standard names to insn names.
458 2023-04-21 Richard Biener <rguenther@suse.de>
460 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
461 (compute_laterin): Use RPO.
462 (compute_available): Likewise.
464 2023-04-21 Peng Fan <fanpeng@loongson.cn>
466 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
468 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
471 * config/riscv/riscv-vsetvl.cc (local_eliminate_vsetvl_insn): New function.
472 (vector_insn_info::skip_avl_compatible_p): Ditto.
473 (vector_insn_info::merge): Remove default value.
474 (pass_vsetvl::compute_local_backward_infos): Ditto.
475 (pass_vsetvl::cleanup_insns): Add local vsetvl elimination.
476 * config/riscv/riscv-vsetvl.h: Ditto.
478 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
480 * doc/extend.texi (Common Function Attributes): Remove duplicate
483 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
485 PR tree-optimization/109564
486 * gimple-range-fold.cc (fold_using_range::range_of_phi): Do no ignore
487 UNDEFINED range names when deciding if all PHI arguments are the same,
489 2023-04-20 Jakub Jelinek <jakub@redhat.com>
491 PR tree-optimization/109011
492 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): Use
493 .CTZ (X) = .POPCOUNT ((X - 1) & ~X) in preference to
494 .CTZ (X) = PREC - .POPCOUNT (X | -X).
496 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
498 * lra-constraints.cc (match_reload): Exclude some hard regs for
499 multi-reg inout reload pseudos used in asm in different mode.
501 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
503 * config/arm/arm.cc (thumb1_legitimate_address_p):
504 Use VIRTUAL_REGISTER_P predicate.
505 (arm_eliminable_register): Ditto.
506 * config/avr/avr.md (push<mode>_1): Ditto.
507 * config/bfin/predicates.md (register_no_elim_operand): Ditto.
508 * config/h8300/predicates.md (register_no_sp_elim_operand): Ditto.
509 * config/i386/predicates.md (register_no_elim_operand): Ditto.
510 * config/iq2000/predicates.md (call_insn_operand): Ditto.
511 * config/microblaze/microblaze.h (CALL_INSN_OP): Ditto.
513 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
516 * config/i386/predicates.md (extract_operator): New predicate.
517 * config/i386/i386.md (any_extract): Remove code iterator.
518 (*cmpqi_ext<mode>_1_mem_rex64): Use extract_operator predicate.
519 (*cmpqi_ext<mode>_1): Ditto.
520 (*cmpqi_ext<mode>_2): Ditto.
521 (*cmpqi_ext<mode>_3_mem_rex64): Ditto.
522 (*cmpqi_ext<mode>_3): Ditto.
523 (*cmpqi_ext<mode>_4): Ditto.
524 (*extzvqi_mem_rex64): Ditto.
527 (*extendqi<SWI24:mode>_ext_1): Ditto.
528 (*addqi_ext<mode>_0): Ditto.
529 (*addqi_ext<mode>_1): Ditto.
530 (*addqi_ext<mode>_2): Ditto.
531 (*subqi_ext<mode>_0): Ditto.
532 (*subqi_ext<mode>_2): Ditto.
533 (*testqi_ext<mode>_1): Ditto.
534 (*testqi_ext<mode>_2): Ditto.
535 (*andqi_ext<mode>_0): Ditto.
536 (*andqi_ext<mode>_1): Ditto.
537 (*andqi_ext<mode>_1_cc): Ditto.
538 (*andqi_ext<mode>_2): Ditto.
539 (*<any_or:code>qi_ext<mode>_0): Ditto.
540 (*<any_or:code>qi_ext<mode>_1): Ditto.
541 (*<any_or:code>qi_ext<mode>_2): Ditto.
542 (*xorqi_ext<mode>_1_cc): Ditto.
543 (*negqi_ext<mode>_2): Ditto.
544 (*ashlqi_ext<mode>_2): Ditto.
545 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
547 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
550 * config/riscv/bitmanip.md (clz, ctz, pcnt, min, max patterns): Use
551 <bitmanip_insn> as the type to allow for fine grained control of
552 scheduling these insns.
553 * config/riscv/generic.md (generic_alu): Add bitmanip, clz, ctz, pcnt,
555 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
556 pcnt, signed and unsigned min/max.
558 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
559 kito-cheng <kito.cheng@sifive.com>
561 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
563 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
564 kito-cheng <kito.cheng@sifive.com>
567 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
568 (pass_vsetvl::cleanup_insns): Fix bug.
570 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
572 * config/gcn/gcn-valu.md (vnsi, VnSI): Add scalar modes.
573 (ldexp<mode>3): Delete.
574 (ldexp<mode>3<exec>): Change "B" to "A".
576 2023-04-20 Jakub Jelinek <jakub@redhat.com>
577 Jonathan Wakely <jwakely@redhat.com>
579 * tree.h (built_in_function_equal_p): New helper function.
580 (fndecl_built_in_p): Turn into variadic template to support
581 1 or more built_in_function arguments.
582 * builtins.cc (fold_builtin_expect): Use 3 argument fndecl_built_in_p.
583 * gimplify.cc (goa_stabilize_expr): Likewise.
584 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
585 * ipa-fnsummary.cc (compute_fn_summary): Likewise.
586 * omp-low.cc (setjmp_or_longjmp_p): Likewise.
587 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
588 cgraph_update_edges_for_call_stmt_node,
589 cgraph_edge::verify_corresponds_to_fndecl,
590 cgraph_node::verify_node): Likewise.
591 * tree-stdarg.cc (optimize_va_list_gpr_fpr_size): Likewise.
592 * gimple-ssa-warn-access.cc (matching_alloc_calls_p): Likewise.
593 * ipa-prop.cc (try_make_edge_direct_virtual_call): Likewise.
595 2023-04-20 Jakub Jelinek <jakub@redhat.com>
597 PR tree-optimization/109011
598 * tree-vect-patterns.cc (vect_recog_ctz_ffs_pattern): New function.
599 (vect_recog_popcount_clz_ctz_ffs_pattern): Move vect_pattern_detected
600 call later. Don't punt for IFN_CTZ or IFN_FFS if it doesn't have
601 direct optab support, but has instead IFN_CLZ, IFN_POPCOUNT or
602 for IFN_FFS IFN_CTZ support, use vect_recog_ctz_ffs_pattern for that
604 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
606 2023-04-20 Richard Biener <rguenther@suse.de>
608 * df-core.cc (rest_of_handle_df_initialize): Remove
609 computation of df->postorder, df->postorder_inverted and
612 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
614 * common/config/i386/i386-common.cc
615 (OPTION_MASK_ISA2_AVX_UNSET): Add OPTION_MASK_ISA2_VAES_UNSET.
616 (ix86_handle_option): Set AVX flag for VAES.
617 * config/i386/i386-builtins.cc (ix86_init_mmx_sse_builtins):
618 Add OPTION_MASK_ISA2_VAES_UNSET.
619 (def_builtin): Share builtin between AES and VAES.
620 * config/i386/i386-expand.cc (ix86_check_builtin_isa_match):
622 * config/i386/i386.md (aes): New isa attribute.
623 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
627 * config/i386/vaesintrin.h: Remove redundant avx target push.
628 * config/i386/wmmintrin.h (_mm_aesdec_si128): Change to macro.
629 (_mm_aesdeclast_si128): Ditto.
630 (_mm_aesenc_si128): Ditto.
631 (_mm_aesenclast_si128): Ditto.
633 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
635 * config/i386/avx2intrin.h
636 (_MM_REDUCE_OPERATOR_BASIC_EPI16): New macro.
637 (_MM_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
638 (_MM256_REDUCE_OPERATOR_BASIC_EPI16): Ditto.
639 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP16): Ditto.
640 (_MM_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
641 (_MM_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
642 (_MM256_REDUCE_OPERATOR_BASIC_EPI8): Ditto.
643 (_MM256_REDUCE_OPERATOR_MAX_MIN_EP8): Ditto.
644 (_mm_reduce_add_epi16): New instrinsics.
645 (_mm_reduce_mul_epi16): Ditto.
646 (_mm_reduce_and_epi16): Ditto.
647 (_mm_reduce_or_epi16): Ditto.
648 (_mm_reduce_max_epi16): Ditto.
649 (_mm_reduce_max_epu16): Ditto.
650 (_mm_reduce_min_epi16): Ditto.
651 (_mm_reduce_min_epu16): Ditto.
652 (_mm256_reduce_add_epi16): Ditto.
653 (_mm256_reduce_mul_epi16): Ditto.
654 (_mm256_reduce_and_epi16): Ditto.
655 (_mm256_reduce_or_epi16): Ditto.
656 (_mm256_reduce_max_epi16): Ditto.
657 (_mm256_reduce_max_epu16): Ditto.
658 (_mm256_reduce_min_epi16): Ditto.
659 (_mm256_reduce_min_epu16): Ditto.
660 (_mm_reduce_add_epi8): Ditto.
661 (_mm_reduce_mul_epi8): Ditto.
662 (_mm_reduce_and_epi8): Ditto.
663 (_mm_reduce_or_epi8): Ditto.
664 (_mm_reduce_max_epi8): Ditto.
665 (_mm_reduce_max_epu8): Ditto.
666 (_mm_reduce_min_epi8): Ditto.
667 (_mm_reduce_min_epu8): Ditto.
668 (_mm256_reduce_add_epi8): Ditto.
669 (_mm256_reduce_mul_epi8): Ditto.
670 (_mm256_reduce_and_epi8): Ditto.
671 (_mm256_reduce_or_epi8): Ditto.
672 (_mm256_reduce_max_epi8): Ditto.
673 (_mm256_reduce_max_epu8): Ditto.
674 (_mm256_reduce_min_epi8): Ditto.
675 (_mm256_reduce_min_epu8): Ditto.
676 * config/i386/avx512vlbwintrin.h:
677 (_mm_mask_reduce_add_epi16): Ditto.
678 (_mm_mask_reduce_mul_epi16): Ditto.
679 (_mm_mask_reduce_and_epi16): Ditto.
680 (_mm_mask_reduce_or_epi16): Ditto.
681 (_mm_mask_reduce_max_epi16): Ditto.
682 (_mm_mask_reduce_max_epu16): Ditto.
683 (_mm_mask_reduce_min_epi16): Ditto.
684 (_mm_mask_reduce_min_epu16): Ditto.
685 (_mm256_mask_reduce_add_epi16): Ditto.
686 (_mm256_mask_reduce_mul_epi16): Ditto.
687 (_mm256_mask_reduce_and_epi16): Ditto.
688 (_mm256_mask_reduce_or_epi16): Ditto.
689 (_mm256_mask_reduce_max_epi16): Ditto.
690 (_mm256_mask_reduce_max_epu16): Ditto.
691 (_mm256_mask_reduce_min_epi16): Ditto.
692 (_mm256_mask_reduce_min_epu16): Ditto.
693 (_mm_mask_reduce_add_epi8): Ditto.
694 (_mm_mask_reduce_mul_epi8): Ditto.
695 (_mm_mask_reduce_and_epi8): Ditto.
696 (_mm_mask_reduce_or_epi8): Ditto.
697 (_mm_mask_reduce_max_epi8): Ditto.
698 (_mm_mask_reduce_max_epu8): Ditto.
699 (_mm_mask_reduce_min_epi8): Ditto.
700 (_mm_mask_reduce_min_epu8): Ditto.
701 (_mm256_mask_reduce_add_epi8): Ditto.
702 (_mm256_mask_reduce_mul_epi8): Ditto.
703 (_mm256_mask_reduce_and_epi8): Ditto.
704 (_mm256_mask_reduce_or_epi8): Ditto.
705 (_mm256_mask_reduce_max_epi8): Ditto.
706 (_mm256_mask_reduce_max_epu8): Ditto.
707 (_mm256_mask_reduce_min_epi8): Ditto.
708 (_mm256_mask_reduce_min_epu8): Ditto.
710 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
712 * common/config/i386/i386-common.cc
713 (OPTION_MASK_ISA_VPCLMULQDQ_SET):
714 Add OPTION_MASK_ISA_PCLMUL_SET and OPTION_MASK_ISA_AVX_SET.
715 (OPTION_MASK_ISA_AVX_UNSET):
716 Add OPTION_MASK_ISA_VPCLMULQDQ_UNSET.
717 (OPTION_MASK_ISA_PCLMUL_UNSET): Ditto.
718 * config/i386/i386.md (vpclmulqdqvl): New.
719 * config/i386/sse.md (pclmulqdq): Add evex encoding.
720 * config/i386/vpclmulqdqintrin.h: Remove redudant avx target
723 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
725 * config/i386/avx512vlbwintrin.h
726 (_mm_mask_blend_epi16): Remove __OPTIMIZE__ wrapper.
727 (_mm_mask_blend_epi8): Ditto.
728 (_mm256_mask_blend_epi16): Ditto.
729 (_mm256_mask_blend_epi8): Ditto.
730 * config/i386/avx512vlintrin.h
731 (_mm256_mask_blend_pd): Ditto.
732 (_mm256_mask_blend_ps): Ditto.
733 (_mm256_mask_blend_epi64): Ditto.
734 (_mm256_mask_blend_epi32): Ditto.
735 (_mm_mask_blend_pd): Ditto.
736 (_mm_mask_blend_ps): Ditto.
737 (_mm_mask_blend_epi64): Ditto.
738 (_mm_mask_blend_epi32): Ditto.
739 * config/i386/sse.md (VF_AVX512BWHFBF16): Removed.
740 (VF_AVX512HFBFVL): Move it before the first usage.
741 (<avx512>_blendm<mode>): Change iterator from VF_AVX512BWHFBF16
744 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
746 * common/config/i386/i386-common.cc
747 (OPTION_MASK_ISA_AVX512VBMI2_SET): Change OPTION_MASK_ISA_AVX512F_SET
748 to OPTION_MASK_ISA_AVX512BW_SET.
749 (OPTION_MASK_ISA_AVX512F_UNSET):
750 Remove OPTION_MASK_ISA_AVX512VBMI2_UNSET.
751 (OPTION_MASK_ISA_AVX512BW_UNSET):
752 Add OPTION_MASK_ISA_AVX512VBMI2_UNSET.
753 * config/i386/avx512vbmi2intrin.h: Do not push avx512bw.
754 * config/i386/avx512vbmi2vlintrin.h: Ditto.
755 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_AVX512BW.
756 * config/i386/sse.md (VI12_AVX512VLBW): Removed.
757 (VI12_VI48F_AVX512VLBW): Rename to VI12_VI48F_AVX512VL.
758 (compress<mode>_mask): Change iterator from VI12_AVX512VLBW to
760 (compressstore<mode>_mask): Ditto.
761 (expand<mode>_mask): Ditto.
762 (expand<mode>_maskz): Ditto.
763 (*expand<mode>_mask): Change iterator from VI12_VI48F_AVX512VLBW to
766 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
768 * common/config/i386/i386-common.cc
769 (OPTION_MASK_ISA_AVX512BITALG_SET):
770 Change OPTION_MASK_ISA_AVX512F_SET
771 to OPTION_MASK_ISA_AVX512BW_SET.
772 (OPTION_MASK_ISA_AVX512F_UNSET):
773 Remove OPTION_MASK_ISA_AVX512BITALG_SET.
774 (OPTION_MASK_ISA_AVX512BW_UNSET):
775 Add OPTION_MASK_ISA_AVX512BITALG_SET.
776 * config/i386/avx512bitalgintrin.h: Do not push avx512bw.
777 * config/i386/i386-builtin.def:
778 Remove redundant OPTION_MASK_ISA_AVX512BW.
779 * config/i386/sse.md (VI1_AVX512VLBW): Removed.
780 (avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>):
781 Change the iterator from VI1_AVX512VLBW to VI1_AVX512VL.
783 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
785 * config/i386/i386-expand.cc
786 (ix86_check_builtin_isa_match): Correct wrong comments.
787 Add a new macro SHARE_BUILTIN and refactor the current if
790 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
792 * config/i386/cpuid.h: Open a new section for Extended Features
793 Leaf (%eax == 7, %ecx == 0) and Extended Features Sub-leaf (%eax == 7,
796 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
798 * config/i386/sse.md: Modify insn vperm{i,f}
801 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
803 * config/xtensa/xtensa-opts.h: New header.
804 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
806 * config/xtensa/xtensa.cc (xtensa_option_override): When
807 -m[no-]strict-align is not specified in the command line set
808 xtensa_strict_align to 0 if the hardware supports both unaligned
809 loads and stores or to 1 otherwise.
810 * config/xtensa/xtensa.opt (mstrict-align): New option.
811 * doc/invoke.texi (Xtensa Options): Document -m[no-]strict-align.
813 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
815 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
818 2023-04-19 Andrew Pinski <apinski@marvell.com>
820 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
822 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
824 * config/riscv/riscv-modes.def (FLOAT_MODE): Add chunk 128 support.
825 (VECTOR_BOOL_MODE): Ditto.
826 (ADJUST_NUNITS): Ditto.
827 (ADJUST_ALIGNMENT): Ditto.
828 (ADJUST_BYTESIZE): Ditto.
829 (ADJUST_PRECISION): Ditto.
831 (VECTOR_MODE_WITH_PREFIX): Ditto.
832 * config/riscv/riscv-v.cc (ENTRY): Ditto.
835 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
836 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
845 (vuint8mf8_t): Ditto.
847 (vuint8mf4_t): Ditto.
849 (vuint8mf2_t): Ditto.
858 (vint16mf4_t): Ditto.
859 (vuint16mf4_t): Ditto.
860 (vint16mf2_t): Ditto.
861 (vuint16mf2_t): Ditto.
863 (vuint16m1_t): Ditto.
865 (vuint16m2_t): Ditto.
867 (vuint16m4_t): Ditto.
869 (vuint16m8_t): Ditto.
870 (vint32mf2_t): Ditto.
871 (vuint32mf2_t): Ditto.
873 (vuint32m1_t): Ditto.
875 (vuint32m2_t): Ditto.
877 (vuint32m4_t): Ditto.
879 (vuint32m8_t): Ditto.
881 (vuint64m1_t): Ditto.
883 (vuint64m2_t): Ditto.
885 (vuint64m4_t): Ditto.
887 (vuint64m8_t): Ditto.
888 (vfloat32mf2_t): Ditto.
889 (vfloat32m1_t): Ditto.
890 (vfloat32m2_t): Ditto.
891 (vfloat32m4_t): Ditto.
892 (vfloat32m8_t): Ditto.
893 (vfloat64m1_t): Ditto.
894 (vfloat64m2_t): Ditto.
895 (vfloat64m4_t): Ditto.
896 (vfloat64m8_t): Ditto.
897 * config/riscv/riscv-vector-switch.def (ENTRY): Ditto.
898 * config/riscv/riscv.cc (riscv_legitimize_poly_move): Ditto.
899 (riscv_convert_vector_bits): Ditto.
900 * config/riscv/riscv.md:
901 * config/riscv/vector-iterators.md:
902 * config/riscv/vector.md
903 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
904 (@pred_indexed_<order>store<VNX32_QHS:mode><VNX32_QHSI:mode>): Ditto.
905 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
906 (@pred_indexed_<order>store<VNX64_QH:mode><VNX64_QHI:mode>): Ditto.
907 (@pred_indexed_<order>store<VNX128_Q:mode><VNX128_Q:mode>): Ditto.
908 (@pred_reduc_<reduc><mode><vlmul1_zve64>): Ditto.
909 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve64>): Ditto.
910 (@pred_reduc_plus<order><mode><vlmul1_zve64>): Ditto.
911 (@pred_widen_reduc_plus<order><mode><vwlmul1_zve64>): Ditto.
913 2023-04-19 Pan Li <pan2.li@intel.com>
915 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
916 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
918 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
922 * config/i386/i386.md (*cmpqi_ext<mode>_1_mem_rex64): New insn pattern.
923 (*cmpqi_ext<mode>_1): Use nonimmediate_operand predicate
924 for operand 0. Use any_extract code iterator.
925 (*cmpqi_ext<mode>_1 peephole2): New peephole2 pattern.
926 (*cmpqi_ext<mode>_2): Use any_extract code iterator.
927 (*cmpqi_ext<mode>_3_mem_rex64): New insn pattern.
928 (*cmpqi_ext<mode>_1): Use general_operand predicate
929 for operand 1. Use any_extract code iterator.
930 (*cmpqi_ext<mode>_3 peephole2): New peephole2 pattern.
931 (*cmpqi_ext<mode>_4): Use any_extract code iterator.
933 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
935 * config/aarch64/aarch64-simd.md (aarch64_saddw2<mode>): Delete.
936 (aarch64_uaddw2<mode>): Delete.
937 (aarch64_ssubw2<mode>): Delete.
938 (aarch64_usubw2<mode>): Delete.
939 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>): New define_expand.
941 2023-04-19 Richard Biener <rguenther@suse.de>
943 * tree-ssa-structalias.cc (do_ds_constraint): Use
944 solve_add_graph_edge.
946 2023-04-19 Richard Biener <rguenther@suse.de>
948 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
950 (do_sd_constraint): ... here.
952 2023-04-19 Richard Biener <rguenther@suse.de>
954 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
955 rejecting the merge when A contains only a non-local label.
957 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
959 * rtl.h (VIRTUAL_REGISTER_P): New predicate.
960 (VIRTUAL_REGISTER_NUM_P): Ditto.
961 (REGNO_PTR_FRAME_P): Use VIRTUAL_REGISTER_NUM_P predicate.
962 * expr.cc (force_operand): Use VIRTUAL_REGISTER_P predicate.
963 * function.cc (instantiate_decl_rtl): Ditto.
964 * rtlanal.cc (rtx_addr_can_trap_p_1): Ditto.
965 (nonzero_address_p): Ditto.
966 (refers_to_regno_p): Use VIRTUAL_REGISTER_NUM_P predicate.
968 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
970 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
972 2023-04-19 Richard Biener <rguenther@suse.de>
974 * system.h (auto_mpz::operator->()): New.
975 * realmpfr.h (auto_mpfr::operator->()): New.
976 * builtins.cc (do_mpfr_lgamma_r): Use auto_mpfr.
977 * real.cc (real_from_string): Likewise.
978 (dconst_e_ptr): Likewise.
979 (dconst_sqrt2_ptr): Likewise.
980 * tree-ssa-loop-niter.cc (refine_value_range_using_guard):
982 (bound_difference_of_offsetted_base): Likewise.
983 (number_of_iterations_ne): Likewise.
984 (number_of_iterations_lt_to_ne): Likewise.
985 * ubsan.cc: Include realmpfr.h.
986 (ubsan_instrument_float_cast): Use auto_mpfr.
988 2023-04-19 Richard Biener <rguenther@suse.de>
990 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
991 edges, remove edges from escaped after special-casing them.
993 2023-04-19 Richard Biener <rguenther@suse.de>
995 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
998 2023-04-19 Richard Biener <rguenther@suse.de>
1000 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
1001 to the LHS varinfo solution member.
1003 2023-04-19 Richard Biener <rguenther@suse.de>
1005 * tree-ssa-structalias.cc (topo_visit): Look at the real
1006 destination of edges.
1008 2023-04-19 Richard Biener <rguenther@suse.de>
1010 PR tree-optimization/44794
1011 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
1012 If an epilogue loop is required set its iteration upper bound.
1014 2023-04-19 Xi Ruoyao <xry111@xry111.site>
1017 * config/loongarch/loongarch-protos.h
1018 (loongarch_expand_block_move): Add a parameter as alignment RTX.
1019 * config/loongarch/loongarch.h:
1020 (LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER): Remove.
1021 (LARCH_MAX_MOVE_BYTES_STRAIGHT): Remove.
1022 (LARCH_MAX_MOVE_OPS_PER_LOOP_ITER): Define.
1023 (LARCH_MAX_MOVE_OPS_STRAIGHT): Define.
1024 (MOVE_RATIO): Use LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
1025 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
1026 * config/loongarch/loongarch.cc (loongarch_expand_block_move):
1027 Take the alignment from the parameter, but set it to
1028 UNITS_PER_WORD if !TARGET_STRICT_ALIGN. Limit the length of
1029 straight-line implementation with LARCH_MAX_MOVE_OPS_STRAIGHT
1030 instead of LARCH_MAX_MOVE_BYTES_STRAIGHT.
1031 (loongarch_block_move_straight): When there are left-over bytes,
1032 half the mode size instead of falling back to byte mode at once.
1033 (loongarch_block_move_loop): Limit the length of loop body with
1034 LARCH_MAX_MOVE_OPS_PER_LOOP_ITER instead of
1035 LARCH_MAX_MOVE_BYTES_PER_LOOP_ITER.
1036 * config/loongarch/loongarch.md (cpymemsi): Pass the alignment
1037 to loongarch_expand_block_move.
1039 2023-04-19 Xi Ruoyao <xry111@xry111.site>
1041 * config/loongarch/loongarch.cc
1042 (loongarch_setup_incoming_varargs): Don't save more GARs than
1043 cfun->va_list_gpr_size / UNITS_PER_WORD.
1045 2023-04-19 Richard Biener <rguenther@suse.de>
1047 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
1048 no epilogue condition.
1050 2023-04-19 Richard Biener <rguenther@suse.de>
1052 * gimple.h (gimple_assign_load): Outline...
1053 * gimple.cc (gimple_assign_load): ... here. Avoid
1054 get_base_address and instead just strip the outermost
1055 handled component, treating a remaining handled component
1058 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1060 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
1062 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
1064 2023-04-19 Jakub Jelinek <jakub@redhat.com>
1066 PR tree-optimization/109011
1067 * tree-vect-patterns.cc (vect_recog_popcount_pattern): Rename to ...
1068 (vect_recog_popcount_clz_ctz_ffs_pattern): ... this. Handle also
1069 CLZ, CTZ and FFS. Remove vargs variable, use
1070 gimple_build_call_internal rather than gimple_build_call_internal_vec.
1071 (vect_vect_recog_func_ptrs): Adjust popcount entry.
1073 2023-04-19 Jakub Jelinek <jakub@redhat.com>
1076 * dse.cc (replace_read): If read_reg is a SUBREG of a word mode
1077 REG, for WORD_REGISTER_OPERATIONS copy SUBREG_REG of it into
1078 a new REG rather than the SUBREG.
1080 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1082 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
1085 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1088 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
1089 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
1091 2023-04-19 Richard Biener <rguenther@suse.de>
1093 PR rtl-optimization/109237
1094 * cse.cc (insn_live_p): Remove NEXT_INSN walk, instead check
1095 TREE_VISITED on INSN_VAR_LOCATION_DECL.
1096 (delete_trivially_dead_insns): Maintain TREE_VISITED on
1097 active debug bind INSN_VAR_LOCATION_DECL.
1099 2023-04-19 Richard Biener <rguenther@suse.de>
1101 PR rtl-optimization/109237
1102 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
1104 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
1106 * doc/install.texi (enable-decimal-float): Add AArch64.
1108 2023-04-19 liuhongt <hongtao.liu@intel.com>
1110 PR rtl-optimization/109351
1111 * ira.cc (setup_class_subset_and_memory_move_costs): Check
1112 hard_regno_mode_ok before setting lowest memory move cost for
1113 the mode with different reg classes.
1115 2023-04-18 Jason Merrill <jason@redhat.com>
1117 * doc/invoke.texi: Remove stray @gol.
1119 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1121 * ifcvt.cc (cond_move_process_if_block): Consider the result of
1122 targetm.noce_conversion_profitable_p() when replacing the original
1123 sequence with the converted one.
1125 2023-04-18 Mark Harmstone <mark@harmstone.com>
1127 * common.opt (gcodeview): Add new option.
1128 * gcc.cc (driver_handle_option); Handle OPT_gcodeview.
1129 * opts.cc (command_handle_option): Similarly.
1130 * doc/invoke.texi: Add documentation for -gcodeview.
1132 2023-04-18 Andrew Pinski <apinski@marvell.com>
1134 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Remove declaration.
1135 (make_pass_phiopt): Make execute out of line.
1136 (tree_ssa_cs_elim): Move code into ...
1137 (pass_cselim::execute): here.
1139 2023-04-18 Sam James <sam@gentoo.org>
1141 * system.h: Drop unused INCLUDE_PTHREAD_H.
1143 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
1145 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
1148 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
1150 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
1151 (bswapdi2, bswapsi2): Similarly.
1153 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
1156 * config/i386/i386-builtin.def (__builtin_ia32_insertps128):
1157 Use CODE_FOR_sse4_1_insertps_v4sf.
1158 * config/i386/i386-expand.cc (expand_vec_perm_insertps): New.
1159 (expand_vec_perm_1): Call expand_vec_per_insertps.
1160 * config/i386/i386.md ("unspec"): Declare UNSPEC_INSERTPS here.
1161 * config/i386/mmx.md (mmxscalarmode): New mode attribute.
1162 (@sse4_1_insertps_<mode>): New insn pattern.
1163 * config/i386/sse.md (@sse4_1_insertps_<mode>): Macroize insn
1164 pattern from sse4_1_insertps using VI4F_128 mode iterator.
1166 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1168 * value-range.cc (gt_ggc_mx): New.
1170 * value-range.h (class vrange): Add GTY marker.
1171 (class frange): Same.
1172 (gt_ggc_mx): Remove.
1173 (gt_pch_nx): Remove.
1175 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
1177 * lra-constraints.cc (constraint_unique): New.
1178 (process_address_1): Apply constraint_unique test.
1179 * recog.cc (constrain_operands): Allow relaxed memory
1182 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
1184 * doc/extend.texi (Target Builtins): Add RISC-V Vector
1186 (RISC-V Vector Intrinsics): Document GCC implemented which
1187 version of RISC-V vector intrinsics and its reference.
1189 2023-04-18 Richard Biener <rguenther@suse.de>
1191 PR middle-end/108786
1192 * bitmap.h (bitmap_clear_first_set_bit): New.
1193 * bitmap.cc (bitmap_first_set_bit_worker): Rename from
1194 bitmap_first_set_bit and add optional clearing of the bit.
1195 (bitmap_first_set_bit): Wrap bitmap_first_set_bit_worker.
1196 (bitmap_clear_first_set_bit): Likewise.
1197 * df-core.cc (df_worklist_dataflow_doublequeue): Use
1198 bitmap_clear_first_set_bit.
1199 * graphite-scop-detection.cc (scop_detection::merge_sese):
1201 * sanopt.cc (sanitize_asan_mark_unpoison): Likewise.
1202 (sanitize_asan_mark_poison): Likewise.
1203 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Likewise.
1204 * tree-into-ssa.cc (rewrite_blocks): Likewise.
1205 * tree-ssa-dce.cc (simple_dce_from_worklist): Likewise.
1206 * tree-ssa-sccvn.cc (do_rpo_vn_1): Likewise.
1208 2023-04-18 Richard Biener <rguenther@suse.de>
1210 * tree-ssa-structalias.cc (dump_sa_stats): Split out from...
1211 (dump_sa_points_to_info): ... this function.
1212 (compute_points_to_sets): Guard large dumps with TDF_DETAILS,
1213 and call dump_sa_stats guarded with TDF_STATS.
1214 (ipa_pta_execute): Likewise.
1215 (compute_may_aliases): Guard dump_alias_info with
1216 TDF_DETAILS|TDF_ALIAS.
1218 2023-04-18 Andrew Pinski <apinski@marvell.com>
1220 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
1221 the expression that is being tried when TDF_FOLDING
1223 (phiopt_worker::match_simplify_replacement): Dump
1224 the sequence which was created by gimple_simplify_phiopt
1225 when TDF_FOLDING is true.
1227 2023-04-18 Andrew Pinski <apinski@marvell.com>
1229 * tree-ssa-phiopt.cc (match_simplify_replacement):
1230 Simplify code that does the movement slightly.
1232 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1234 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
1236 (rev16<mode>2): Rename to...
1237 (aarch64_rev16<mode>2_alt1): ... This.
1238 (rev16<mode>2_alt): Rename to...
1239 (*aarch64_rev16<mode>2_alt2): ... This.
1241 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1243 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
1244 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
1246 * range-op-float.cc (zero_range): Use dconstm0.
1247 (zero_to_inf_range): Same.
1248 * real.h (dconstm0): New.
1249 * value-range.cc (frange::flush_denormals_to_zero): Use dconstm0.
1250 (frange::set_zero): Do not declare dconstm0.
1252 2023-04-18 Richard Biener <rguenther@suse.de>
1254 * system.h (class auto_mpz): New,
1255 * realmpfr.h (class auto_mpfr): Likewise.
1256 * fold-const-call.cc (do_mpfr_arg1): Use auto_mpfr.
1257 (do_mpfr_arg2): Likewise.
1258 * tree-ssa-loop-niter.cc (bound_difference): Use auto_mpz;
1260 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1262 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
1263 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
1265 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1267 * value-range.cc (frange::operator==): Adjust for NAN.
1268 (range_tests_nan): Remove some NAN tests.
1270 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1272 * inchash.cc (hash::add_real_value): New.
1273 * inchash.h (class hash): Add add_real_value.
1274 * value-range.cc (add_vrange): New.
1275 * value-range.h (inchash::add_vrange): New.
1277 2023-04-18 Richard Biener <rguenther@suse.de>
1279 PR tree-optimization/109539
1280 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
1281 Re-implement pointer relatedness for PHIs.
1283 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
1285 * config/gcn/gcn-valu.md (SV_SFDF): New iterator.
1286 (SV_FP): New iterator.
1287 (scalar_mode, SCALAR_MODE): Add identity mappings for scalar modes.
1288 (recip<mode>2): Unify the two patterns using SV_FP.
1289 (div_scale<mode><exec_vcc>): New insn.
1290 (div_fmas<mode><exec>): New insn.
1291 (div_fixup<mode><exec>): New insn.
1292 (div<mode>3): Unify the two expanders and rewrite using hardfp.
1293 * config/gcn/gcn.cc (gcn_md_reorg): Support "vccwait" attribute.
1294 * config/gcn/gcn.md (unspec): Add UNSPEC_DIV_SCALE, UNSPEC_DIV_FMAS,
1295 and UNSPEC_DIV_FIXUP.
1296 (vccwait): New attribute.
1298 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1300 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
1301 if the argument matches that.
1303 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1305 * config/aarch64/atomics.md
1306 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
1307 Use SD_HSDI for destination mode iterator.
1309 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
1311 * common/config/riscv/riscv-common.cc (multi_letter_subset_rank): Swap the order
1312 of z-extensions and s-extensions.
1313 (riscv_subset_list::parse): Likewise.
1315 2023-04-18 Jakub Jelinek <jakub@redhat.com>
1317 PR tree-optimization/109240
1318 * match.pd (fneg/fadd): Rewrite such that it handles both plus as
1319 first vec_perm operand and minus as second using fneg/fadd and
1320 minus as first vec_perm operand and plus as second using fneg/fsub.
1322 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1324 * data-streamer.cc (bp_pack_real_value): New.
1325 (bp_unpack_real_value): New.
1326 * data-streamer.h (bp_pack_real_value): New.
1327 (bp_unpack_real_value): New.
1328 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields): Use
1329 bp_unpack_real_value.
1330 * tree-streamer-out.cc (pack_ts_real_cst_value_fields): Use
1333 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1335 * wide-int.h (WIDE_INT_MAX_HWIS): New.
1336 (class fixed_wide_int_storage): Use it.
1337 (trailing_wide_ints <N>::set_precision): Use it.
1338 (trailing_wide_ints <N>::extra_size): Use it.
1340 2023-04-18 Xi Ruoyao <xry111@xry111.site>
1342 * config/loongarch/loongarch-protos.h
1343 (loongarch_addu16i_imm12_operand_p): New function prototype.
1344 (loongarch_split_plus_constant): Likewise.
1345 * config/loongarch/loongarch.cc
1346 (loongarch_addu16i_imm12_operand_p): New function.
1347 (loongarch_split_plus_constant): Likewise.
1348 * config/loongarch/loongarch.h (ADDU16I_OPERAND): New macro.
1349 (DUAL_IMM12_OPERAND): Likewise.
1350 (DUAL_ADDU16I_OPERAND): Likewise.
1351 * config/loongarch/constraints.md (La, Lb, Lc, Ld, Le): New
1353 * config/loongarch/predicates.md (const_dual_imm12_operand): New
1355 (const_addu16i_operand): Likewise.
1356 (const_addu16i_imm12_di_operand): Likewise.
1357 (const_addu16i_imm12_si_operand): Likewise.
1358 (plus_di_operand): Likewise.
1359 (plus_si_operand): Likewise.
1360 (plus_si_extend_operand): Likewise.
1361 * config/loongarch/loongarch.md (add<mode>3): Convert to
1362 define_insn_and_split. Use plus_<mode>_operand predicate
1363 instead of arith_operand. Add alternatives for La, Lb, Lc, Ld,
1365 (*addsi3_extended): Convert to define_insn_and_split. Use
1366 plus_si_extend_operand instead of arith_operand. Add
1367 alternatives for La and Le alternatives.
1369 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1371 * value-range.h (Value_Range::Value_Range): New.
1372 (Value_Range::contains_p): New.
1374 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1376 * value-range.h (class vrange): Make m_discriminator const.
1377 (class irange): Make m_max_ranges const. Adjust constructors
1379 (class unsupported_range): Construct vrange appropriately.
1380 (class frange): Same.
1382 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
1384 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
1387 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
1389 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
1391 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
1393 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
1395 (riscv_expand_epilogue): Likewise.
1397 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
1399 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
1401 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
1403 2023-04-17 Andrew Pinski <apinski@marvell.com>
1405 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
1408 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
1410 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
1413 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
1415 * config/riscv/riscv.cc (riscv_first_stack_step): Add a new function
1416 parameter remaining_size.
1417 (riscv_compute_frame_info): Adapt new riscv_first_stack_step interface.
1418 (riscv_expand_prologue): Likewise.
1419 (riscv_expand_epilogue): Likewise.
1421 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
1423 * config/riscv/bitmanip.md (rotrsi3_sext): Support generating
1424 roriw for constant counts.
1425 * rtl.h (reverse_rotate_by_imm_p): Add function declartion
1426 * simplify-rtx.cc (reverse_rotate_by_imm_p): New function.
1427 (simplify_context::simplify_binary_operation_1): Use it.
1428 * expmed.cc (expand_shift_1): Likewise.
1430 2023-04-17 Martin Jambor <mjambor@suse.cz>
1434 * cgraph.h (symtab_node::find_reference): Add parameter use_type.
1435 * ipa-prop.h (ipa_pass_through_data): New flag refdesc_decremented.
1436 (ipa_zap_jf_refdesc): New function.
1437 (ipa_get_jf_pass_through_refdesc_decremented): Likewise.
1438 (ipa_set_jf_pass_through_refdesc_decremented): Likewise.
1439 * ipa-cp.cc (ipcp_discover_new_direct_edges): Provide a value for
1440 the new parameter of find_reference.
1441 (adjust_references_in_caller): Likewise. Make sure the constant jump
1442 function is not used to decrement a refdec counter again. Only
1443 decrement refdesc counters when the pass_through jump function allows
1444 it. Added a detailed dump when decrementing refdesc counters.
1445 * ipa-prop.cc (ipa_print_node_jump_functions_for_edge): Dump new flag.
1446 (ipa_set_jf_simple_pass_through): Initialize the new flag.
1447 (ipa_set_jf_unary_pass_through): Likewise.
1448 (ipa_set_jf_arith_pass_through): Likewise.
1449 (remove_described_reference): Provide a value for the new parameter of
1451 (update_jump_functions_after_inlining): Zap refdesc of new jfunc if
1452 the previous pass_through had a flag mandating that we do so.
1453 (propagate_controlled_uses): Likewise. Only decrement refdesc
1454 counters when the pass_through jump function allows it.
1455 (ipa_edge_args_sum_t::duplicate): Provide a value for the new
1456 parameter of find_reference.
1457 (ipa_write_jump_function): Assert the new flag does not have to be
1459 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
1462 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
1463 Di Zhao <di.zhao@amperecomputing.com>
1465 * config/aarch64/aarch64-tuning-flags.def (AARCH64_EXTRA_TUNING_OPTION):
1466 Add AARCH64_EXTRA_TUNE_NO_LDP_COMBINE.
1467 * config/aarch64/aarch64.cc (aarch64_operands_ok_for_ldpstp):
1468 Check for the above tuning option when processing loads.
1470 2023-04-17 Richard Biener <rguenther@suse.de>
1472 PR tree-optimization/109524
1473 * tree-vrp.cc (remove_unreachable::m_list): Change to a
1474 vector of pairs of block indices.
1475 (remove_unreachable::maybe_register_block): Adjust.
1476 (remove_unreachable::remove_and_update_globals): Likewise.
1477 Deal with removed blocks.
1479 2023-04-16 Jeff Law <jlaw@ventanamicro>
1482 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
1483 TARGET_SFB_ALU, force the true arm into a register.
1485 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
1488 * config/pa/pa-protos.h (pa_function_arg_size): Update prototype.
1489 * config/pa/pa.cc (pa_function_arg): Return NULL_RTX if argument
1491 (pa_arg_partial_bytes): Don't call pa_function_arg_size twice.
1492 (pa_function_arg_size): Change return type to int. Return zero
1493 for arguments larger than 1 GB. Update comments.
1495 2023-04-15 Jakub Jelinek <jakub@redhat.com>
1497 PR tree-optimization/109154
1498 * tree-if-conv.cc (predicate_scalar_phi): For complex PHIs, emit just
1499 args_len - 1 COND_EXPRs rather than args_len. Formatting fix.
1501 2023-04-15 Jason Merrill <jason@redhat.com>
1504 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
1505 Overhaul lhs_ref.ref analysis.
1507 2023-04-14 Richard Biener <rguenther@suse.de>
1509 PR tree-optimization/109502
1510 * tree-vect-stmts.cc (vectorizable_assignment): Fix
1511 check for conversion between mask and non-mask types.
1513 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
1514 Jakub Jelinek <jakub@redhat.com>
1518 * combine.cc (simplify_and_const_int_1): Compute nonzero_bits in
1519 word_mode rather than mode if WORD_REGISTER_OPERATIONS and mode is
1520 smaller than word_mode.
1521 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1)
1522 <case AND>: Likewise.
1524 2023-04-14 Jakub Jelinek <jakub@redhat.com>
1526 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
1529 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
1531 PR tree-optimization/108139
1532 PR tree-optimization/109462
1533 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Remove
1534 equivalency check for PHI nodes.
1535 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ensure def
1536 does not dominate single-arg equivalency edges.
1538 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
1541 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
1542 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
1544 2023-04-13 Richard Biener <rguenther@suse.de>
1546 PR tree-optimization/109491
1547 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
1550 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1553 * config/riscv/riscv-vector-builtins-types.def (vint8mf8_t): Fix predicate.
1554 (vint16mf4_t): Ditto.
1555 (vint32mf2_t): Ditto.
1556 (vint64m1_t): Ditto.
1557 (vint64m2_t): Ditto.
1558 (vint64m4_t): Ditto.
1559 (vint64m8_t): Ditto.
1560 (vuint8mf8_t): Ditto.
1561 (vuint16mf4_t): Ditto.
1562 (vuint32mf2_t): Ditto.
1563 (vuint64m1_t): Ditto.
1564 (vuint64m2_t): Ditto.
1565 (vuint64m4_t): Ditto.
1566 (vuint64m8_t): Ditto.
1567 (vfloat32mf2_t): Ditto.
1569 * config/riscv/riscv-vector-builtins.cc (register_builtin_type): Add comments.
1570 (register_vector_type): Ditto.
1571 (check_required_extensions): Fix condition.
1572 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_ZVE64): Remove it.
1573 (RVV_REQUIRE_ELEN_64): New define.
1574 (RVV_REQUIRE_MIN_VLEN_64): Ditto.
1575 * config/riscv/riscv-vector-switch.def (TARGET_VECTOR_FP32): Remove it.
1576 (TARGET_VECTOR_FP64): Ditto.
1577 (ENTRY): Fix predicate.
1578 * config/riscv/vector-iterators.md: Fix predicate.
1580 2023-04-12 Jakub Jelinek <jakub@redhat.com>
1582 PR tree-optimization/109410
1583 * tree-ssa-reassoc.cc (build_and_add_sum): Split edge from entry
1584 block if first statement of the function is a call to returns_twice
1587 2023-04-12 Jakub Jelinek <jakub@redhat.com>
1590 * config/i386/i386.cc: Include rtl-error.h.
1591 (ix86_print_operand): For z modifier warning, use warning_for_asm
1592 if this_is_asm_operands. For Z modifier errors, use %c and code
1593 instead of hardcoded Z.
1595 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
1597 * config/i386/x-mingw32-utf8: Remove extrataneous $@
1599 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
1601 PR tree-optimization/109462
1602 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Don't
1603 check for equivalences if NAME is a phi node.
1605 2023-04-12 Richard Biener <rguenther@suse.de>
1607 PR tree-optimization/109473
1608 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
1609 Convert scalar result to the computation type before performing
1610 the reduction adjustment.
1612 2023-04-12 Richard Biener <rguenther@suse.de>
1614 PR tree-optimization/109469
1615 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
1616 a returns-twice call.
1618 2023-04-12 Richard Biener <rguenther@suse.de>
1620 PR tree-optimization/109434
1621 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Properly
1622 handle possibly throwing calls when processing the LHS
1623 and may-defs are not OK.
1625 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
1627 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
1628 predicate to avoid splitting arith constants.
1630 2023-04-11 Yanzhang Wang <yanzhang.wang@intel.com>
1631 Pan Li <pan2.li@intel.com>
1632 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1633 Kito Cheng <kito.cheng@sifive.com>
1636 * config/riscv/riscv-protos.h (emit_hard_vlmax_vsetvl): New.
1637 * config/riscv/riscv-v.cc (emit_hard_vlmax_vsetvl): New.
1638 (emit_vlmax_vsetvl): Use emit_hard_vlmax_vsetvl.
1639 * config/riscv/riscv.cc (vector_zero_call_used_regs): New.
1640 (riscv_zero_call_used_regs): New.
1641 (TARGET_ZERO_CALL_USED_REGS): New.
1643 2023-04-11 Martin Liska <mliska@suse.cz>
1646 * opts.cc (finish_options): Drop also
1647 x_flag_var_tracking_assignments.
1649 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
1651 PR tree-optimization/108888
1652 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
1654 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
1657 * config/rs6000/vsx.md (vsx_sign_extend_qi_<mode>): Rename to...
1658 (vsx_sign_extend_v16qi_<mode>): ... this.
1659 (vsx_sign_extend_hi_<mode>): Rename to...
1660 (vsx_sign_extend_v8hi_<mode>): ... this.
1661 (vsx_sign_extend_si_v2di): Rename to...
1662 (vsx_sign_extend_v4si_v2di): ... this.
1663 (vsignextend_qi_<mode>): Remove.
1664 (vsignextend_hi_<mode>): Remove.
1665 (vsignextend_si_v2di): Remove.
1666 (vsignextend_v2di_v1ti): Remove.
1667 (*xxspltib_<mode>_split): Replace gen_vsx_sign_extend_qi_v2di with
1668 gen_vsx_sign_extend_v16qi_v2di and gen_vsx_sign_extend_qi_v4si
1669 with gen_vsx_sign_extend_v16qi_v4si.
1670 * config/rs6000/rs6000.md (split for DI constant generation):
1671 Replace gen_vsx_sign_extend_qi_si with gen_vsx_sign_extend_v16qi_si.
1672 (split for HSDI constant generation): Replace gen_vsx_sign_extend_qi_di
1673 with gen_vsx_sign_extend_v16qi_di and gen_vsx_sign_extend_qi_si
1674 with gen_vsx_sign_extend_v16qi_si.
1675 * config/rs6000/rs6000-builtins.def (__builtin_altivec_vsignextsb2d):
1676 Set bif-pattern to vsx_sign_extend_v16qi_v2di.
1677 (__builtin_altivec_vsignextsb2w): Set bif-pattern to
1678 vsx_sign_extend_v16qi_v4si.
1679 (__builtin_altivec_visgnextsh2d): Set bif-pattern to
1680 vsx_sign_extend_v8hi_v2di.
1681 (__builtin_altivec_vsignextsh2w): Set bif-pattern to
1682 vsx_sign_extend_v8hi_v4si.
1683 (__builtin_altivec_vsignextsw2d): Set bif-pattern to
1684 vsx_sign_extend_si_v2di.
1685 (__builtin_altivec_vsignext): Set bif-pattern to
1686 vsx_sign_extend_v2di_v1ti.
1687 * config/rs6000/rs6000-builtin.cc (lxvrse_expand_builtin): Replace
1688 gen_vsx_sign_extend_qi_v2di with gen_vsx_sign_extend_v16qi_v2di,
1689 gen_vsx_sign_extend_hi_v2di with gen_vsx_sign_extend_v8hi_v2di and
1690 gen_vsx_sign_extend_si_v2di with gen_vsx_sign_extend_v4si_v2di.
1692 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
1695 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
1696 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
1698 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
1700 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
1702 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
1704 * common/config/i386/cpuinfo.h (get_available_features):
1706 * common/config/i386/i386-common.cc
1707 (OPTION_MASK_ISA2_AMX_COMPLEX_SET,
1708 OPTION_MASK_ISA2_AMX_COMPLEX_UNSET): New.
1709 (ix86_handle_option): Handle -mamx-complex.
1710 * common/config/i386/i386-cpuinfo.h (enum processor_features):
1711 Add FEATURE_AMX_COMPLEX.
1712 * common/config/i386/i386-isas.h: Add ISA_NAME_TABLE_ENTRY for
1714 * config.gcc: Add amxcomplexintrin.h.
1715 * config/i386/cpuid.h (bit_AMX_COMPLEX): New.
1716 * config/i386/i386-c.cc (ix86_target_macros_internal): Define
1718 * config/i386/i386-isa.def (AMX_COMPLEX): Add DEF_PTA(AMX_COMPLEX).
1719 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
1721 * config/i386/i386.opt: Add option -mamx-complex.
1722 * config/i386/immintrin.h: Include amxcomplexintrin.h.
1723 * doc/extend.texi: Document amx-complex.
1724 * doc/invoke.texi: Document -mamx-complex.
1725 * doc/sourcebuild.texi: Document target amx-complex.
1726 * config/i386/amxcomplexintrin.h: New file.
1728 2023-04-08 Jakub Jelinek <jakub@redhat.com>
1730 PR tree-optimization/109392
1731 * tree-vect-generic.cc (tree_vec_extract): Handle failure
1732 of maybe_push_res_to_seq better.
1734 2023-04-08 Jakub Jelinek <jakub@redhat.com>
1736 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
1738 (SYSTEM_H): Depend on $(HASHTAB_H).
1739 * config/riscv/t-riscv (build/genrvv-type-indexer.o): Remove unused
1740 dependency on $(RTL_BASE_H), remove redundant dependency on
1743 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
1746 * config/arm/arm.cc (arm_effective_regno): New function.
1747 (mve_vector_mem_operand): Use it.
1749 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
1751 PR tree-optimization/109417
1752 * gimple-range-gori.cc (gori_compute::may_recompute_p): Check if
1753 dependency is in SSA_NAME_FREE_LIST.
1755 2023-04-06 Andrew Pinski <apinski@marvell.com>
1757 PR tree-optimization/109427
1758 * params.opt (-param=vect-induction-float=):
1759 Fix option attribute typo for IntegerRange.
1761 2023-04-05 Jeff Law <jlaw@ventanamicro>
1764 * combine.cc (combine_instructions): Force re-recognition when
1765 after restoring the body of an insn to its original form.
1767 2023-04-05 Martin Jambor <mjambor@suse.cz>
1770 * ipa-sra.cc (zap_useless_ipcp_results): New function.
1771 (process_isra_node_results): Call it.
1773 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1775 * config/riscv/vector.md: Fix incorrect operand order.
1777 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1779 * config/riscv/riscv-vsetvl.cc
1780 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
1783 2023-04-05 Li Xu <xuli1@eswincomputing.com>
1785 * config/riscv/riscv-vector-builtins.def: Fix typo.
1786 * config/riscv/riscv.cc (riscv_dwarf_poly_indeterminate_value): Ditto.
1787 * config/riscv/vector-iterators.md: Ditto.
1789 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
1791 * doc/md.texi (Including Patterns): Fix page break.
1793 2023-04-04 Jakub Jelinek <jakub@redhat.com>
1795 PR tree-optimization/109386
1796 * range-op-float.cc (foperator_lt::op1_range, foperator_lt::op2_range,
1797 foperator_le::op1_range, foperator_le::op2_range,
1798 foperator_gt::op1_range, foperator_gt::op2_range,
1799 foperator_ge::op1_range, foperator_ge::op2_range): Make r varying for
1800 BRS_FALSE case even if the other op is maybe_isnan, not just
1802 (foperator_unordered_lt::op1_range, foperator_unordered_lt::op2_range,
1803 foperator_unordered_le::op1_range, foperator_unordered_le::op2_range,
1804 foperator_unordered_gt::op1_range, foperator_unordered_gt::op2_range,
1805 foperator_unordered_ge::op1_range, foperator_unordered_ge::op2_range):
1806 Make r varying for BRS_TRUE case even if the other op is maybe_isnan,
1807 not just known_isnan.
1809 2023-04-04 Marek Polacek <polacek@redhat.com>
1812 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
1814 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
1816 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
1818 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
1819 (mve_vcreateq_f<mode>): Swap operands.
1821 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
1823 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
1825 2023-04-04 Jakub Jelinek <jakub@redhat.com>
1828 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1829 Reword diagnostics about zfinx conflict with f, formatting fixes.
1831 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1833 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
1835 2023-04-04 Richard Biener <rguenther@suse.de>
1837 PR tree-optimization/109304
1838 * tree-profile.cc (tree_profiling): Use symtab node
1839 availability to decide whether to skip adjusting calls.
1840 Do not adjust calls to internal functions.
1842 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
1845 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
1846 function for permutation control vector by considering big endianness.
1848 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
1851 * config/rs6000/altivec.md (*p9v_parity<mode>2): Rename to ...
1852 (rs6000_vprtyb<mode>2): ... this.
1853 * config/rs6000/rs6000-builtins.def (VPRTYBD): Replace parityv2di2 with
1855 (VPRTYBW): Replace parityv4si2 with rs6000_vprtybv4si2.
1856 (VPRTYBQ): Replace parityv1ti2 with rs6000_vprtybv1ti2.
1857 * config/rs6000/vector.md (parity<mode>2 with VEC_IP): Expand with
1858 popcountv16qi2 and the corresponding rs6000_vprtyb<mode>2.
1860 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
1861 Sandra Loosemore <sandra@codesourcery.com>
1863 * doc/md.texi (Insn Splitting): Tweak wording for readability.
1865 2023-04-03 Martin Jambor <mjambor@suse.cz>
1868 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
1869 offset + size will be representable in unsigned int.
1871 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1873 * configure.ac (ZSTD_LIB): Move before zstd.h check.
1874 Unset gcc_cv_header_zstd_h without libzstd.
1875 * configure: Regenerate.
1877 2023-04-03 Martin Liska <mliska@suse.cz>
1879 * doc/invoke.texi: Document new param.
1881 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
1883 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
1884 new check_effective_target function.
1886 2023-04-03 Li Xu <xuli1@eswincomputing.com>
1888 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
1889 (vfloat32m8_t): Likewise
1891 2023-04-03 liuhongt <hongtao.liu@intel.com>
1893 * doc/md.texi: Document signbitm2.
1895 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1896 kito-cheng <kito.cheng@sifive.com>
1898 * config/riscv/vector.md: Fix RA constraint.
1900 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1902 * config/riscv/riscv-protos.h (gen_avl_for_scalar_move): New function.
1903 * config/riscv/riscv-v.cc (gen_avl_for_scalar_move): New function.
1904 * config/riscv/vector.md: Fix scalar move bug.
1906 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1908 * range-op-float.cc (foperator_equal::fold_range): If at least
1909 one of the op ranges is not singleton and neither is NaN and all
1910 4 bounds are zero, return [1, 1].
1911 (foperator_not_equal::fold_range): In the same case return [0, 0].
1913 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1915 * range-op-float.cc (foperator_equal::fold_range): Perform the
1916 non-singleton handling regardless of maybe_isnan (op1, op2).
1917 (foperator_not_equal::fold_range): Likewise.
1918 (foperator_lt::fold_range, foperator_le::fold_range,
1919 foperator_gt::fold_range, foperator_ge::fold_range): Perform the
1920 real_* comparison check which results in range_false (type)
1921 even if maybe_isnan (op1, op2). Simplify.
1922 (foperator_ltgt): New class.
1923 (fop_ltgt): New variable.
1924 (floating_op_table::floating_op_table): Handle LTGT_EXPR using
1927 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1930 * builtins.cc (apply_args_size): If targetm.calls.get_raw_arg_mode
1931 returns VOIDmode, handle it like if the register isn't used for
1932 passing arguments at all.
1933 (apply_result_size): If targetm.calls.get_raw_result_mode returns
1934 VOIDmode, handle it like if the register isn't used for returning
1936 * target.def (get_raw_result_mode, get_raw_arg_mode): Document what it
1937 means to return VOIDmode.
1938 * doc/tm.texi: Regenerated.
1939 * config/aarch64/aarch64.cc (aarch64_function_value_regno_p): Return
1940 TARGET_SVE for P0_REGNUM.
1941 (aarch64_function_arg_regno_p): Also return true for p0-p3.
1942 (aarch64_get_reg_raw_mode): Return VOIDmode for PR_REGNUM_P regs.
1944 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
1946 * lra-constraints.cc: (combine_reload_insn): New function.
1948 2023-03-31 Jakub Jelinek <jakub@redhat.com>
1950 PR tree-optimization/91645
1951 * range-op-float.cc (foperator_unordered_lt::fold_range,
1952 foperator_unordered_le::fold_range,
1953 foperator_unordered_gt::fold_range,
1954 foperator_unordered_ge::fold_range,
1955 foperator_unordered_equal::fold_range): Call the ordered
1956 fold_range on ranges with cleared NaNs.
1957 * value-query.cc (range_query::get_tree_range): Handle also
1958 COMPARISON_CLASS_P trees.
1960 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
1961 Andrew Pinski <pinskia@gmail.com>
1964 * config/riscv/t-riscv: Add missing dependencies.
1966 2023-03-31 liuhongt <hongtao.liu@intel.com>
1968 * config/i386/i386.cc (inline_memory_move_cost): Return 100
1969 for MASK_REGS when MODE_SIZE > 8.
1971 2023-03-31 liuhongt <hongtao.liu@intel.com>
1974 * config/i386/i386-builtin.def (BDESC): Adjust icode name from
1975 ufloat/ufix to floatuns/fixuns.
1976 * config/i386/i386-expand.cc
1977 (ix86_expand_vector_convert_uns_vsivsf): Adjust comments.
1978 * config/i386/sse.md
1979 (ufloat<sseintvecmodelower><mode>2<mask_name><round_name>):
1981 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
1982 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
1984 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
1986 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
1988 (fix<fixunssuffix>_truncv16sfv16si2<mask_name><round_saeonly_name>):.. this.
1989 (ufloat<si2dfmodelower><mode>2<mask_name>): Renamed to ..
1990 (floatuns<si2dfmodelower><mode>2<mask_name>): .. this.
1991 (ufloatv2siv2df2<mask_name>): Renamed to ..
1992 (<mask_codefor>floatunsv2siv2df2<mask_name>): .. this.
1993 (ufix_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
1995 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
1997 (ufix_notruncv2dfv2si2): Renamed to ..
1998 (fixuns_notruncv2dfv2si2):.. this.
1999 (ufix_notruncv2dfv2si2_mask): Renamed to ..
2000 (fixuns_notruncv2dfv2si2_mask): .. this.
2001 (*ufix_notruncv2dfv2si2_mask_1): Renamed to ..
2002 (*fixuns_notruncv2dfv2si2_mask_1): .. this.
2003 (ufix_truncv2dfv2si2): Renamed to ..
2004 (*fixuns_truncv2dfv2si2): .. this.
2005 (ufix_truncv2dfv2si2_mask): Renamed to ..
2006 (fixuns_truncv2dfv2si2_mask): .. this.
2007 (*ufix_truncv2dfv2si2_mask_1): Renamed to ..
2008 (*fixuns_truncv2dfv2si2_mask_1): .. this.
2009 (ufix_truncv4dfv4si2<mask_name>): Renamed to ..
2010 (fixuns_truncv4dfv4si2<mask_name>): .. this.
2011 (ufix_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
2013 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
2015 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
2016 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
2019 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
2021 PR tree-optimization/109154
2022 * gimple-range-gori.cc (gori_compute::may_recompute_p): Add depth limit.
2023 * gimple-range-gori.h (may_recompute_p): Add depth param.
2024 * params.opt (ranger-recompute-depth): New param.
2026 2023-03-30 Jason Merrill <jason@redhat.com>
2030 * cgraph.h: Move reset() from cgraph_node to symtab_node.
2031 * cgraphunit.cc (symtab_node::reset): Adjust. Also call
2032 remove_from_same_comdat_group.
2034 2023-03-30 Richard Biener <rguenther@suse.de>
2036 PR tree-optimization/107561
2037 * gimple-ssa-warn-access.cc (get_size_range): Add flags
2038 argument and pass it on.
2039 (check_access): When querying for the size range pass
2040 SR_ALLOW_ZERO when the known destination size is zero.
2042 2023-03-30 Richard Biener <rguenther@suse.de>
2044 PR tree-optimization/109342
2045 * tree-ssa-sccvn.cc (vn_nary_op_get_predicated_value): New
2046 overload for edge. When that edge is a backedge use
2047 dominated_by_p directly.
2049 2023-03-30 liuhongt <hongtao.liu@intel.com>
2051 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
2052 vpblendd instead of vpblendw for V4SI under avx2.
2054 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
2056 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
2057 for many quick operands, for register-sized modes.
2059 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
2061 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
2064 2023-03-29 Martin Liska <mliska@suse.cz>
2067 * configure.ac: Emit a warning for deprecated option
2068 --enable-link-mutex.
2069 * configure: Regenerate.
2071 2023-03-29 Richard Biener <rguenther@suse.de>
2073 PR tree-optimization/109331
2074 * tree-ssa-forwprop.cc (pass_forwprop::execute): When we
2075 discover a taken edge make sure to cleanup the CFG.
2077 2023-03-29 Richard Biener <rguenther@suse.de>
2079 PR tree-optimization/109327
2080 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
2081 already removed stmts when draining to_remove.
2083 2023-03-29 Richard Biener <rguenther@suse.de>
2086 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
2087 so we can re-create the DIE for the type if required.
2089 2023-03-29 Jakub Jelinek <jakub@redhat.com>
2090 Richard Biener <rguenther@suse.de>
2092 PR tree-optimization/109301
2093 * tree-ssa-math-opts.cc (pass_data_cse_sincos): Change
2094 properties_provided from PROP_gimple_opt_math to 0.
2095 (pass_data_expand_powcabs): Change properties_provided from 0 to
2096 PROP_gimple_opt_math.
2098 2023-03-29 Richard Biener <rguenther@suse.de>
2100 PR tree-optimization/109154
2101 * tree-if-conv.cc (gen_phi_arg_condition): Handle single
2102 inverted condition specially by inverting at the caller.
2103 (gen_phi_arg_condition): Swap COND_EXPR arms if requested.
2105 2023-03-28 David Malcolm <dmalcolm@redhat.com>
2108 * diagnostic-show-locus.cc (column_range::column_range): Factor
2109 out assertion conditional into...
2110 (column_range::valid_p): ...this new function.
2111 (line_corrections::add_hint): Don't attempt to consolidate hints
2112 if it would lead to invalid column_range instances.
2114 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
2117 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
2118 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
2121 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
2123 PR rtl-optimization/109187
2124 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
2125 subtraction in three-way comparison.
2127 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
2129 PR tree-optimization/109265
2130 PR tree-optimization/109274
2131 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
2132 not create a relation record is op1 and op2 are the same symbol.
2133 (gori_compute::compute_operand1_range): Pass op1 == op2 to the
2134 handler for this stmt, but create a new record only if this statement
2135 generates a relation based on the ranges.
2136 (gori_compute::compute_operand2_range): Ditto.
2137 * value-relation.h (value_relation::set_relation): Always create the
2138 record that is requested.
2140 2023-03-28 Richard Biener <rguenther@suse.de>
2142 PR tree-optimization/107087
2143 * tree-ssa-forwprop.cc (pass_forwprop::execute): Track
2144 executable regions to avoid useless work and to better
2145 propagate degenerate PHIs.
2147 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
2149 * config/i386/x-mingw32-utf8: update comments.
2151 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
2154 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
2155 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
2157 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
2159 (aarch64_general_gimple_fold_builtin): Delay folding of vld1 until
2160 after inlining. Record which decls are loaded from. Fix handling
2161 of vops for loads and stores.
2162 * config/aarch64/aarch64.cc (aarch64_vector_load_decl): New function.
2163 (aarch64_accesses_vector_load_decl_p): Likewise.
2164 (aarch64_vector_costs::m_stores_to_vector_load_decl): New member
2166 (aarch64_vector_costs::add_stmt_cost): If the function has a vld1
2167 that loads from a decl, treat vector stores to those decls as
2169 (aarch64_vector_costs::finish_cost): ...and in that case,
2170 if the vector code does nothing more than a store, give the
2171 prologue a zero cost as well.
2173 2023-03-28 Richard Biener <rguenther@suse.de>
2176 PR tree-optimization/108129
2177 * genmatch.cc (lower_for): For (match ...) delay
2178 substituting into the match operator if possible.
2179 (dt_operand::gen_gimple_expr): For user_id look at the
2180 first substitute for determining how to access operands.
2181 (dt_operand::gen_generic_expr): Likewise.
2182 (dt_node::gen_kids): Properly sort user_ids according
2183 to their substitutes.
2184 (dt_node::gen_kids_1): Code-generate user_id matching.
2186 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2187 Jonathan Wakely <jwakely@redhat.com>
2189 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
2190 Use subcommand rather than sub-command in function comments.
2192 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2194 PR tree-optimization/109154
2195 * value-range.h (frange::flush_denormals_to_zero): Make it public
2196 rather than private.
2197 * value-range.cc (frange::set): Don't call flush_denormals_to_zero
2199 * range-op-float.cc (range_operator_float::fold_range): Call
2200 flush_denormals_to_zero.
2202 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2204 PR middle-end/106190
2205 * sanopt.cc (pass_sanopt::execute): Return TODO_cleanup_cfg if any
2206 of the IFN_{UB,HWA,A}SAN_* internal fns are lowered.
2208 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2210 * range-op-float.cc (float_widen_lhs_range): Use pass get_nan_state
2211 as 4th argument to set to avoid clear_nan and union_ calls.
2213 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2216 * config/i386/i386.cc (assign_386_stack_local): For DImode
2217 with SLOT_FLOATxFDI_387 and -m32 -mpreferred-stack-boundary=2 pass
2218 align 32 rather than 0 to assign_stack_local.
2220 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
2223 * config/sparc/sparc.cc (sparc_expand_vcond): Call signed_condition
2224 on operand #3 to get the final condition code. Use std::swap.
2225 * config/sparc/sparc.md (vcondv8qiv8qi): New VIS 4 expander.
2226 (fucmp<gcond:code>8<P:mode>_vis): Move around.
2227 (fpcmpu<gcond:code><GCM:gcm_name><P:mode>_vis): Likewise.
2228 (vcondu<GCM:mode><GCM:mode>): New VIS 4 expander.
2230 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
2232 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
2235 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
2237 * config.host: Pull in i386/x-mingw32-utf8 Makefile
2238 fragment and reference utf8rc-mingw32.o explicitly
2240 * config/i386/sym-mingw32.cc: prevent name mangling of
2242 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
2243 depend on manifest file explicitly.
2245 2023-03-28 Richard Biener <rguenther@suse.de>
2248 2023-03-27 Richard Biener <rguenther@suse.de>
2250 PR rtl-optimization/109237
2251 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
2253 2023-03-28 Richard Biener <rguenther@suse.de>
2255 * common.opt (gdwarf): Remove Negative(gdwarf-).
2257 2023-03-28 Richard Biener <rguenther@suse.de>
2259 * common.opt (gdwarf): Add RejectNegative.
2260 (gdwarf-): Likewise.
2264 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2266 * config/cris/constraints.md ("T"): Correct to
2267 define_memory_constraint.
2269 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2271 * config/cris/cris.md (BW2): New mode-iterator.
2272 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
2275 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2277 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
2278 for possible eliminable compares.
2280 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2282 * config/cris/constraints.md ("R"): Remove unused constraint.
2284 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
2286 PR gcov-profile/109297
2287 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
2288 (merge_stream_usage): Likewise.
2289 (overlap_usage): Likewise.
2291 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
2294 * config/riscv/thead.md: Add missing mode specifiers.
2296 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
2297 Jiangning Liu <jiangning.liu@amperecomputing.com>
2298 Manolis Tsamis <manolis.tsamis@vrull.eu>
2300 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
2302 2023-03-27 Richard Biener <rguenther@suse.de>
2304 PR rtl-optimization/109237
2305 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
2307 2023-03-27 Richard Biener <rguenther@suse.de>
2310 * lto-wrapper.cc (run_gcc): Parse alternate debug options
2311 as well, they always enable debug.
2313 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
2316 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
2318 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
2320 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
2323 * config/rs6000/emmintrin.h (_mm_bslli_si128): Check __N is not less
2324 than zero when calling vec_sld.
2325 (_mm_bsrli_si128): Return __A if __N is zero, check __N is bigger than
2326 zero when calling vec_sld.
2327 (_mm_slli_si128): Return __A if _imm5 is zero, check _imm5 is bigger
2328 than zero when calling vec_sld.
2330 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
2332 * doc/generic.texi (OpenMP): Document OMP_SIMD, OMP_DISTRIBUTE,
2333 OMP_TASKLOOP, and OMP_LOOP with OMP_FOR. Document how collapsed
2334 loops are represented and which fields are vectors. Add
2335 documentation for OMP_FOR_PRE_BODY field. Document internal
2336 form of non-rectangular loops and OMP_FOR_NON_RECTANGULAR.
2337 * tree.def (OMP_FOR): Make documentation consistent with the
2338 Texinfo manual, to fill some gaps and correct errors.
2340 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
2343 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Define.
2344 * config/m68k/m68k.cc (m68k_final_prescan_insn): Define.
2345 (handle_move_double): Call it before handle_movsi.
2346 * config/m68k/m68k-protos.h: Declare it.
2348 2023-03-26 Jakub Jelinek <jakub@redhat.com>
2350 PR tree-optimization/109230
2351 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
2353 2023-03-26 Jakub Jelinek <jakub@redhat.com>
2356 * predict.cc (compute_function_frequency): Don't call
2357 warn_function_cold if function already has cold attribute.
2359 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
2361 * doc/install.texi: Remove anachronistic note
2362 related to languages built and separate source tarballs.
2364 2023-03-25 David Malcolm <dmalcolm@redhat.com>
2367 * diagnostic-format-sarif.cc (read_until_eof): Delete.
2368 (maybe_read_file): Delete.
2369 (sarif_builder::maybe_make_artifact_content_object): Use
2370 get_source_file_content rather than maybe_read_file.
2371 Reject it if it's not valid UTF-8.
2372 * input.cc (file_cache_slot::get_full_file_content): New.
2373 (get_source_file_content): New.
2374 (selftest::check_cpp_valid_utf8_p): New.
2375 (selftest::test_cpp_valid_utf8_p): New.
2376 (selftest::input_cc_tests): Call selftest::test_cpp_valid_utf8_p.
2377 * input.h (get_source_file_content): New prototype.
2379 2023-03-24 David Malcolm <dmalcolm@redhat.com>
2381 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
2383 (Special Functions for Debugging the Analyzer): Convert to a
2384 table, and rewrite in places.
2385 (Other Debugging Techniques): Add notes on how to compare two
2386 different exploded graphs.
2388 2023-03-24 David Malcolm <dmalcolm@redhat.com>
2391 * json.cc: Update comments to indicate that we now preserve
2392 insertion order of keys within objects.
2393 (object::print): Traverse keys in insertion order.
2394 (object::set): Preserve insertion order of keys.
2395 (selftest::test_writing_objects): Add an additional key to verify
2396 that we preserve insertion order.
2397 * json.h (object::m_keys): New field.
2399 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
2401 PR tree-optimization/109238
2402 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
2403 predecessors which this block dominates.
2405 2023-03-24 Richard Biener <rguenther@suse.de>
2407 PR tree-optimization/106912
2408 * tree-profile.cc (tree_profiling): Update stmts only when
2409 profiling or testing coverage. Make sure to update calls
2410 fntype, stripping 'const' there.
2412 2023-03-24 Jakub Jelinek <jakub@redhat.com>
2414 PR middle-end/109258
2415 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
2416 if target == const0_rtx.
2418 2023-03-24 Alexandre Oliva <oliva@adacore.com>
2420 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
2421 Document options and effective targets.
2423 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
2425 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
2428 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
2430 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
2431 non-earlyclobber alternative.
2433 2023-03-23 Andrew Pinski <apinski@marvell.com>
2436 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
2439 2023-03-23 Richard Biener <rguenther@suse.de>
2441 PR tree-optimization/107569
2442 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
2443 Do not push SSA names with zero uses as available leader.
2444 (process_bb): Likewise.
2446 2023-03-23 Richard Biener <rguenther@suse.de>
2448 PR tree-optimization/109262
2449 * tree-ssa-forwprop.cc (pass_forwprop::execute): When
2450 combining a piecewise complex load avoid touching loads
2451 that throw internally. Use fun, not cfun throughout.
2453 2023-03-23 Jakub Jelinek <jakub@redhat.com>
2455 * value-range.cc (irange::irange_union, irange::intersect): Fix
2456 comment spelling bugs.
2457 * gimple-range-trace.cc (range_tracer::do_header): Likewise.
2458 * gimple-range-trace.h: Likewise.
2459 * gimple-range-edge.cc: Likewise.
2460 (gimple_outgoing_range_stmt_p,
2461 gimple_outgoing_range::switch_edge_range,
2462 gimple_outgoing_range::edge_range_p): Likewise.
2463 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies,
2464 gimple_ranger::fold_stmt, gimple_ranger::register_transitive_infer,
2465 assume_query::assume_query, assume_query::calculate_phi): Likewise.
2466 * gimple-range-edge.h: Likewise.
2467 * value-range.h (Value_Range::set, Value_Range::lower_bound,
2468 Value_Range::upper_bound, frange::set_undefined): Likewise.
2469 * gimple-range-gori.h (range_def_chain::depend, gori_map::m_outgoing,
2470 gori_compute): Likewise.
2471 * gimple-range-fold.h (fold_using_range): Likewise.
2472 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis):
2474 * gimple-range-gori.cc (range_def_chain::in_chain_p,
2475 range_def_chain::dump, gori_map::calculate_gori,
2476 gori_compute::compute_operand_range_switch,
2477 gori_compute::logical_combine, gori_compute::refine_using_relation,
2478 gori_compute::compute_operand1_range, gori_compute::may_recompute_p):
2480 * gimple-range.h: Likewise.
2481 (enable_ranger): Likewise.
2482 * range-op.h (empty_range_varying): Likewise.
2483 * value-query.h (value_query): Likewise.
2484 * gimple-range-cache.cc (block_range_cache::set_bb_range,
2485 block_range_cache::dump, ssa_global_cache::clear_global_range,
2486 temporal_cache::temporal_value, temporal_cache::current_p,
2487 ranger_cache::range_of_def, ranger_cache::propagate_updated_value,
2488 ranger_cache::range_from_dom, ranger_cache::register_inferred_value):
2490 * gimple-range-fold.cc (fur_edge::get_phi_operand,
2491 fur_stmt::get_operand, gimple_range_adjustment,
2492 fold_using_range::range_of_phi,
2493 fold_using_range::relation_fold_and_or): Likewise.
2494 * value-range-storage.h (irange_storage_slot::MAX_INTS): Likewise.
2495 * value-query.cc (range_query::value_of_expr,
2496 range_query::value_on_edge, range_query::query_relation): Likewise.
2497 * tree-vrp.cc (remove_unreachable::remove_and_update_globals,
2498 intersect_range_with_nonzero_bits): Likewise.
2499 * gimple-range-infer.cc (gimple_infer_range::check_assume_func,
2500 exit_range): Likewise.
2501 * value-relation.h: Likewise.
2502 (equiv_oracle, relation_trio::relation_trio, value_relation,
2503 value_relation::value_relation, pe_min): Likewise.
2504 * range-op-float.cc (range_operator_float::rv_fold,
2505 frange_arithmetic, foperator_unordered_equal::op1_range,
2506 foperator_div::rv_fold): Likewise.
2507 * gimple-range-op.cc (cfn_clz::fold_range): Likewise.
2508 * value-relation.cc (equiv_oracle::query_relation,
2509 equiv_oracle::register_equiv, equiv_oracle::add_equiv_to_block,
2510 value_relation::apply_transitive, relation_chain_head::find_relation,
2511 dom_oracle::query_relation, dom_oracle::find_relation_block,
2512 dom_oracle::find_relation_dom, path_oracle::register_equiv): Likewise.
2513 * range-op.cc (range_operator::wi_fold_in_parts_equiv,
2514 create_possibly_reversed_range, adjust_op1_for_overflow,
2515 operator_mult::wi_fold, operator_exact_divide::op1_range,
2516 operator_cast::lhs_op1_relation, operator_cast::fold_pair,
2517 operator_cast::fold_range, operator_abs::wi_fold, range_op_cast_tests,
2518 range_op_lshift_tests): Likewise.
2520 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
2522 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
2523 (move_callee_saved_registers): Detect the bug condition early.
2525 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
2527 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
2528 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
2530 (vec_extract<V_1REG:mode><V_1REG_ALT:mode>_nop): New.
2531 (vec_extract<V_2REG:mode><V_2REG_ALT:mode>_nop): New.
2532 (vec_extract<V_ALL:mode><V_ALL_ALT:mode>): Use new patterns.
2533 * config/gcn/gcn.cc (gcn_stepped_zero_int_parallel_p): New.
2534 * config/gcn/predicates.md (ascending_zero_int_parallel): New.
2536 2023-03-23 Jakub Jelinek <jakub@redhat.com>
2538 PR tree-optimization/109176
2539 * tree-vect-generic.cc (expand_vector_condition): If a has
2540 vector boolean type and is a comparison, also check if both
2541 the comparison and VEC_COND_EXPR could be successfully expanded
2544 2023-03-23 Pan Li <pan2.li@intel.com>
2545 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2549 * config/riscv/riscv-modes.def (ADJUST_BYTESIZE): Adjust size
2550 for vector mask modes.
2551 * config/riscv/riscv.cc (riscv_v_adjust_bytesize): New.
2552 * config/riscv/riscv.h (riscv_v_adjust_bytesize): New.
2554 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
2556 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
2558 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2561 * config/riscv/riscv-protos.h (emit_vlmax_vsetvl): Define as global.
2562 (emit_vlmax_op): Ditto.
2563 * config/riscv/riscv-v.cc (get_sew): New function.
2564 (emit_vlmax_vsetvl): Adapt function.
2565 (emit_pred_op): Ditto.
2566 (emit_vlmax_op): Ditto.
2567 (emit_nonvlmax_op): Ditto.
2568 (legitimize_move): Fix LRA ICE.
2569 (gen_no_side_effects_vsetvl_rtx): Adapt function.
2570 * config/riscv/vector.md (@mov<V_FRACT:mode><P:mode>_lra): New pattern.
2571 (@mov<VB:mode><P:mode>_lra): Ditto.
2572 (*mov<V_FRACT:mode><P:mode>_lra): Ditto.
2573 (*mov<VB:mode><P:mode>_lra): Ditto.
2575 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2578 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
2579 __riscv_vlenb support.
2581 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
2582 * config/riscv/riscv-vector-builtins-functions.def (vlenb): Ditto.
2583 * config/riscv/riscv-vector-builtins-shapes.cc (struct vlenb_def): Ditto.
2585 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2586 * config/riscv/riscv-vector-builtins.cc: Ditto.
2588 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2589 kito-cheng <kito.cheng@sifive.com>
2591 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bugs.
2592 (pass_vsetvl::compute_local_backward_infos): Fix bugs.
2593 (pass_vsetvl::need_vsetvl): Fix bugs.
2594 (pass_vsetvl::backward_demand_fusion): Fix bugs.
2595 (pass_vsetvl::demand_fusion): Fix bugs.
2596 (eliminate_insn): Fix bugs.
2597 (insert_vsetvl): Ditto.
2598 (pass_vsetvl::emit_local_forward_vsetvls): Ditto.
2599 * config/riscv/riscv-vsetvl.h (enum vsetvl_type): Ditto.
2600 * config/riscv/vector.md: Ditto.
2602 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2603 kito-cheng <kito.cheng@sifive.com>
2605 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
2606 * config/riscv/vector-iterators.md (nmsac): Ditto.
2612 * config/riscv/vector.md (@pred_mul_<optab><mode>): Ditto.
2613 (@pred_mul_plus<mode>): Ditto.
2614 (*pred_madd<mode>): Ditto.
2615 (*pred_macc<mode>): Ditto.
2616 (*pred_mul_plus<mode>): Ditto.
2617 (@pred_mul_plus<mode>_scalar): Ditto.
2618 (*pred_madd<mode>_scalar): Ditto.
2619 (*pred_macc<mode>_scalar): Ditto.
2620 (*pred_mul_plus<mode>_scalar): Ditto.
2621 (*pred_madd<mode>_extended_scalar): Ditto.
2622 (*pred_macc<mode>_extended_scalar): Ditto.
2623 (*pred_mul_plus<mode>_extended_scalar): Ditto.
2624 (@pred_minus_mul<mode>): Ditto.
2625 (*pred_<madd_nmsub><mode>): Ditto.
2626 (*pred_nmsub<mode>): Ditto.
2627 (*pred_<macc_nmsac><mode>): Ditto.
2628 (*pred_nmsac<mode>): Ditto.
2629 (*pred_mul_<optab><mode>): Ditto.
2630 (*pred_minus_mul<mode>): Ditto.
2631 (@pred_mul_<optab><mode>_scalar): Ditto.
2632 (@pred_minus_mul<mode>_scalar): Ditto.
2633 (*pred_<madd_nmsub><mode>_scalar): Ditto.
2634 (*pred_nmsub<mode>_scalar): Ditto.
2635 (*pred_<macc_nmsac><mode>_scalar): Ditto.
2636 (*pred_nmsac<mode>_scalar): Ditto.
2637 (*pred_mul_<optab><mode>_scalar): Ditto.
2638 (*pred_minus_mul<mode>_scalar): Ditto.
2639 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
2640 (*pred_nmsub<mode>_extended_scalar): Ditto.
2641 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
2642 (*pred_nmsac<mode>_extended_scalar): Ditto.
2643 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
2644 (*pred_minus_mul<mode>_extended_scalar): Ditto.
2645 (*pred_<madd_msub><mode>): Ditto.
2646 (*pred_<macc_msac><mode>): Ditto.
2647 (*pred_<madd_msub><mode>_scalar): Ditto.
2648 (*pred_<macc_msac><mode>_scalar): Ditto.
2649 (@pred_neg_mul_<optab><mode>): Ditto.
2650 (@pred_mul_neg_<optab><mode>): Ditto.
2651 (*pred_<nmadd_msub><mode>): Ditto.
2652 (*pred_<nmsub_nmadd><mode>): Ditto.
2653 (*pred_<nmacc_msac><mode>): Ditto.
2654 (*pred_<nmsac_nmacc><mode>): Ditto.
2655 (*pred_neg_mul_<optab><mode>): Ditto.
2656 (*pred_mul_neg_<optab><mode>): Ditto.
2657 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
2658 (@pred_mul_neg_<optab><mode>_scalar): Ditto.
2659 (*pred_<nmadd_msub><mode>_scalar): Ditto.
2660 (*pred_<nmsub_nmadd><mode>_scalar): Ditto.
2661 (*pred_<nmacc_msac><mode>_scalar): Ditto.
2662 (*pred_<nmsac_nmacc><mode>_scalar): Ditto.
2663 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
2664 (*pred_mul_neg_<optab><mode>_scalar): Ditto.
2665 (@pred_widen_neg_mul_<optab><mode>): Ditto.
2666 (@pred_widen_mul_neg_<optab><mode>): Ditto.
2667 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
2668 (@pred_widen_mul_neg_<optab><mode>_scalar): Ditto.
2670 2023-03-23 liuhongt <hongtao.liu@intel.com>
2672 * builtins.cc (builtin_memset_read_str): Replace
2673 targetm.gen_memset_scratch_rtx with gen_reg_rtx.
2674 (builtin_memset_gen_str): Ditto.
2675 * config/i386/i386-expand.cc
2676 (ix86_convert_const_wide_int_to_broadcast): Replace
2677 ix86_gen_scratch_sse_rtx with gen_reg_rtx.
2678 (ix86_expand_vector_move): Ditto.
2679 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx):
2681 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Removed.
2682 (TARGET_GEN_MEMSET_SCRATCH_RTX): Removed.
2683 * doc/tm.texi: Remove TARGET_GEN_MEMSET_SCRATCH_RTX.
2684 * doc/tm.texi.in: Ditto.
2685 * target.def: Ditto.
2687 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
2689 * lra.cc (lra): Do not repeat inheritance and live range splitting
2690 when asm error is found.
2692 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
2694 * config/gcn/gcn-protos.h (gcn_expand_dpp_swap_pairs_insn)
2695 (gcn_expand_dpp_distribute_even_insn)
2696 (gcn_expand_dpp_distribute_odd_insn): Declare.
2697 * config/gcn/gcn-valu.md (@dpp_swap_pairs<mode>)
2698 (@dpp_distribute_even<mode>, @dpp_distribute_odd<mode>)
2699 (cmul<conj_op><mode>3, cml<addsub_as><mode>4, vec_addsub<mode>3)
2700 (cadd<rot><mode>3, vec_fmaddsub<mode>4, vec_fmsubadd<mode>4)
2701 (fms<mode>4<exec>, fms<mode>4_negop2<exec>, fms<mode>4)
2702 (fms<mode>4_negop2): New patterns.
2703 * config/gcn/gcn.cc (gcn_expand_dpp_swap_pairs_insn)
2704 (gcn_expand_dpp_distribute_even_insn)
2705 (gcn_expand_dpp_distribute_odd_insn): New functions.
2706 * config/gcn/gcn.md: Add entries to unspec enum.
2708 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
2710 PR tree-optimization/109008
2711 * value-range.cc (frange::set): Add nan_state argument.
2712 * value-range.h (class nan_state): New.
2713 (frange::get_nan_state): New.
2715 2023-03-22 Martin Liska <mliska@suse.cz>
2717 * configure: Regenerate.
2719 2023-03-21 Joseph Myers <joseph@codesourcery.com>
2721 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
2724 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
2726 PR tree-optimization/109192
2727 * gimple-range-gori.cc (gori_compute::compute_operand_range):
2728 Terminate gori calculations if a relation is not relevant.
2729 * value-relation.h (value_relation::set_relation): Allow
2730 equality between op1 and op2 if they are the same.
2732 2023-03-21 Richard Biener <rguenther@suse.de>
2734 PR tree-optimization/109219
2735 * tree-vect-loop.cc (vectorizable_reduction): Check
2736 slp_node, not STMT_SLP_TYPE.
2737 * tree-vect-stmts.cc (vectorizable_condition): Likewise.
2738 * tree-vect-slp.cc (vect_slp_analyze_node_operations_1):
2739 Remove assertion on STMT_SLP_TYPE.
2741 2023-03-21 Jakub Jelinek <jakub@redhat.com>
2743 PR tree-optimization/109215
2744 * tree.h (enum special_array_member): Adjust comments for int_0
2746 * tree.cc (component_ref_sam_type): Clear zero_elts if memtype
2747 has zero sized element type and the array has variable number of
2748 elements or constant one or more elements.
2749 (component_ref_size): Adjust comments, formatting fix.
2751 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2753 * configure.ac: Add check for the Texinfo 6.8
2754 CONTENTS_OUTPUT_LOCATION customization variable and set it if
2756 * configure: Regenerate.
2757 * Makefile.in (MAKEINFO_TOC_INLINE_FLAG): New variable. Set by
2758 configure.ac to -c CONTENTS_OUTPUT_LOCATION=inline if
2759 CONTENTS_OUTPUT_LOCATION support is detected, empty otherwise.
2760 ($(build_htmldir)/%/index.html): Pass MAKEINFO_TOC_INLINE_FLAG.
2762 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2764 * doc/extend.texi: Associate use_hazard_barrier_return index
2765 entry with its attribute.
2766 * doc/invoke.texi: Associate -fcanon-prefix-map index entry with
2769 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2771 * doc/implement-c.texi: Remove usage of @gol.
2772 * doc/invoke.texi: Ditto.
2773 * doc/sourcebuild.texi: Ditto.
2774 * doc/include/gcc-common.texi: Remove @gol. In new Makeinfo and
2775 texinfo.tex versions, the bug it was working around appears to
2778 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2780 * doc/include/texinfo.tex: Update to 2023-01-17.19.
2782 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2784 * doc/include/gcc-common.texi: Add @defbuiltin{,x} and
2785 @enddefbuiltin for defining built-in functions.
2786 * doc/extend.texi: Apply @defbuiltin{,x} to many, but not all,
2787 places where it should be used.
2789 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2791 * doc/extend.texi (Formatted Output Function Checking): New
2792 subsection for grouping together printf et al.
2793 (Exception handling) Fix missing @ sign before copyright
2794 header, which lead to the copyright line leaking into
2795 '(gcc)Exception handling'.
2796 * doc/gcc.texi: Set document language to en_US.
2797 (@copying): Wrap front cover texts in quotations, move in manual
2800 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2802 * doc/gcc.texi: Add the Indices appendix, to make texinfo
2803 generate nice indices overview page.
2805 2023-03-21 Richard Biener <rguenther@suse.de>
2807 PR tree-optimization/109170
2808 * gimple-range-op.cc (cfn_pass_through_arg1): New.
2809 (gimple_range_op_handler::maybe_builtin_call): Handle
2810 __builtin_expect via cfn_pass_through_arg1.
2812 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
2815 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
2816 (init_float128_ieee): Delete code to switch complex multiply and divide
2818 (complex_multiply_builtin_code): New helper function.
2819 (complex_divide_builtin_code): Likewise.
2820 (rs6000_mangle_decl_assembler_name): Add support for mangling the name
2821 of complex 128-bit multiply and divide built-in functions.
2823 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
2826 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
2828 2023-03-19 Jonny Grant <jg@jguk.org>
2830 * doc/extend.texi (Common Function Attributes) <nonnull>:
2833 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
2835 PR rtl-optimization/109179
2836 * lra-constraints.cc (combine_reload_insn): Enforce TO is not a debug
2837 insn or note. Move the tests earlier to guard lra_get_insn_recog_data.
2839 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2842 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
2844 * function.cc (push_struct_function): Add ABSTRACT_P argument, pass it
2845 to allocate_struct_function instead of false.
2846 * tree-inline.cc (initialize_cfun): Don't copy DECL_ARGUMENTS
2847 nor DECL_RESULT here. Pass true as ABSTRACT_P to
2848 push_struct_function. Call targetm.target_option.relayout_function
2850 (tree_function_versioning): Formatting fix.
2852 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
2854 * lra-constraints.cc: Include hooks.h.
2855 (combine_reload_insn): New function.
2856 (lra_constraints): Call it.
2858 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2859 kito-cheng <kito.cheng@sifive.com>
2861 * config/riscv/riscv-v.cc (legitimize_move): Allow undef value
2862 as legitimate value.
2863 * config/riscv/riscv-vector-builtins.cc
2864 (function_expander::use_ternop_insn): Fix bugs of ternary intrinsic.
2865 (function_expander::use_widen_ternop_insn): Ditto.
2866 * config/riscv/vector.md (@vundefined<mode>): New pattern.
2867 (pred_mul_<optab><mode>_undef_merge): Remove.
2868 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
2869 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
2870 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
2871 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
2873 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2876 * config/riscv/riscv.md: Fix subreg bug.
2878 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2880 PR middle-end/108685
2881 * omp-expand.cc (expand_omp_for_ordered_loops): Add L0_BB argument,
2882 use its loop_father rather than BODY_BB's loop_father.
2883 (expand_omp_for_generic): Adjust expand_omp_for_ordered_loops caller.
2884 If broken_loop with ordered > collapse and at least one of those
2885 extra loops aren't guaranteed to have at least one iteration, change
2886 l0_bb's loop_father to entry_bb's loop_father. Set cont_bb's
2887 loop_father to l0_bb's loop_father rather than l1_bb's.
2889 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2892 * gdbhooks.py (TreePrinter.to_string): Wrap
2893 gdb.parse_and_eval('tree_code_type') in a try block, parse
2894 and eval 'tree_code_type_tmpl<0>::tree_code_type' instead if it
2895 raises exception. Update comments for the recent tree_code_type
2898 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
2900 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
2901 issues. Add more line breaks to example so it doesn't overflow
2904 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
2906 * doc/extend.texi (Common Function Attributes) <access>: Fix bad
2907 line breaks in examples.
2908 <malloc>: Fix bad line breaks in running text, also copy-edit
2910 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
2911 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
2913 (C++ Dialect Options) <-fcontracts>: Add line break in example.
2914 <-Wctad-maybe-unsupported>: Likewise.
2915 <-Winvalid-constexpr>: Likewise.
2916 (Warning Options) <-Wdangling-pointer>: Likewise.
2917 <-Winterference-size>: Likewise.
2918 <-Wvla-parameter>: Likewise.
2919 (Static Analyzer Options): Fix bad line breaks in running text,
2920 plus add some missing markup.
2921 (Optimize Options) <openacc-privatization>: Fix more bad line
2922 breaks in running text.
2924 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
2926 * config/i386/i386-expand.cc (expand_vec_perm_pblendv):
2927 Handle 8-byte modes only with TARGET_MMX_WITH_SSE.
2928 (expand_vec_perm_2perm_pblendv): Ditto.
2930 2023-03-16 Martin Liska <mliska@suse.cz>
2932 PR middle-end/106133
2933 * gcc.cc (driver_handle_option): Use x_main_input_basename
2934 if x_dump_base_name is null.
2935 * opts.cc (common_handle_option): Likewise.
2937 2023-03-16 Richard Biener <rguenther@suse.de>
2939 PR tree-optimization/109123
2940 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
2941 Do not emit -Wuse-after-free late.
2942 (pass_waccess::check_call): Always check call pointer uses.
2944 2023-03-16 Richard Biener <rguenther@suse.de>
2946 PR tree-optimization/109141
2947 * tree-dfa.h (renumber_gimple_stmt_uids_in_block): New.
2948 * tree-dfa.cc (renumber_gimple_stmt_uids_in_block): Split
2950 (renumber_gimple_stmt_uids): ... here and
2951 (renumber_gimple_stmt_uids_in_blocks): ... here.
2952 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p):
2953 Use renumber_gimple_stmt_uids_in_block to also assign UIDs
2955 (pass_waccess::check_pointer_uses): Process all PHIs.
2957 2023-03-15 David Malcolm <dmalcolm@redhat.com>
2960 * diagnostic-format-sarif.cc (class sarif_invocation): New.
2961 (class sarif_ice_notification): New.
2962 (sarif_builder::m_invocation_obj): New field.
2963 (sarif_invocation::add_notification_for_ice): New.
2964 (sarif_invocation::prepare_to_flush): New.
2965 (sarif_ice_notification::sarif_ice_notification): New.
2966 (sarif_builder::sarif_builder): Add m_invocation_obj.
2967 (sarif_builder::end_diagnostic): Special-case DK_ICE and
2969 (sarif_builder::flush_to_file): Call prepare_to_flush on
2970 m_invocation_obj. Pass the latter to make_top_level_object.
2971 (sarif_builder::make_result_object): Move creation of "locations"
2973 (sarif_builder::make_locations_arr): ...this new function.
2974 (sarif_builder::make_top_level_object): Add "invocation_obj" param
2975 and pass it to make_run_object.
2976 (sarif_builder::make_run_object): Add "invocation_obj" param and
2978 (sarif_ice_handler): New callback.
2979 (diagnostic_output_format_init_sarif): Wire up sarif_ice_handler.
2980 * diagnostic.cc (diagnostic_initialize): Initialize new field
2982 (diagnostic_action_after_output): If it is set, make one attempt
2983 to call ice_handler_cb.
2984 * diagnostic.h (diagnostic_context::ice_handler_cb): New field.
2986 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
2988 * config/i386/i386-expand.cc (expand_vec_perm_blend):
2989 Handle 8-byte modes only with TARGET_MMX_WITH_SSE. Handle V2SFmode
2990 and fix V2HImode handling.
2991 (expand_vec_perm_1): Try to emit BLEND instruction
2993 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
2995 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
2997 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
2999 2023-03-15 Richard Biener <rguenther@suse.de>
3001 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
3002 Do not diagnose clobbers.
3004 2023-03-15 Richard Biener <rguenther@suse.de>
3006 PR tree-optimization/109139
3007 * tree-ssa-live.cc (remove_unused_locals): Look at the
3008 base address for unused decls on the LHS of .DEFERRED_INIT.
3010 2023-03-15 Xi Ruoyao <xry111@xry111.site>
3013 * builtins.cc (inline_string_cmp): Force the character
3014 difference into "result" pseudo-register, instead of reassign
3015 the pseudo-register.
3017 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3019 * config.gcc: Add thead.o to RISC-V extra_objs.
3020 * config/riscv/peephole.md: Add mempair peephole passes.
3021 * config/riscv/riscv-protos.h (riscv_split_64bit_move_p): New
3023 (th_mempair_operands_p): Likewise.
3024 (th_mempair_order_operands): Likewise.
3025 (th_mempair_prepare_save_restore_operands): Likewise.
3026 (th_mempair_save_restore_regs): Likewise.
3027 (th_mempair_output_move): Likewise.
3028 * config/riscv/riscv.cc (riscv_save_reg): Move code.
3029 (riscv_restore_reg): Move code.
3030 (riscv_for_each_saved_reg): Add code to emit mempair insns.
3031 * config/riscv/t-riscv: Add thead.cc.
3032 * config/riscv/thead.md (*th_mempair_load_<GPR:mode>2):
3034 (*th_mempair_store_<GPR:mode>2): Likewise.
3035 (*th_mempair_load_extendsidi2): Likewise.
3036 (*th_mempair_load_zero_extendsidi2): Likewise.
3037 * config/riscv/thead.cc: New file.
3039 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3041 * config/riscv/constraints.md (TARGET_XTHEADFMV ? FP_REGS : NO_REGS)
3042 New constraint "th_f_fmv".
3043 (TARGET_XTHEADFMV ? GR_REGS : NO_REGS): New constraint
3045 * config/riscv/riscv.cc (riscv_split_doubleword_move):
3046 Add split code for XTheadFmv.
3047 (riscv_secondary_memory_needed): XTheadFmv does not need
3049 * config/riscv/riscv.md: Add new UNSPEC_XTHEADFMV and
3050 UNSPEC_XTHEADFMV_HW. Add support for XTheadFmv to
3051 movdf_hardfloat_rv32.
3052 * config/riscv/thead.md (th_fmv_hw_w_x): New INSN.
3053 (th_fmv_x_w): New INSN.
3054 (th_fmv_x_hw): New INSN.
3056 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3058 * config/riscv/riscv.md (maddhisi4): New expand.
3059 (msubhisi4): New expand.
3060 * config/riscv/thead.md (*th_mula<mode>): New pattern.
3061 (*th_mulawsi): New pattern.
3062 (*th_mulawsi2): New pattern.
3063 (*th_maddhisi4): New pattern.
3064 (*th_sextw_maddhisi4): New pattern.
3065 (*th_muls<mode>): New pattern.
3066 (*th_mulswsi): New pattern.
3067 (*th_mulswsi2): New pattern.
3068 (*th_msubhisi4): New pattern.
3069 (*th_sextw_msubhisi4): New pattern.
3071 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3073 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
3074 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
3076 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
3078 (riscv_expand_conditional_move): New function.
3079 (riscv_expand_conditional_move_onesided): New function.
3080 * config/riscv/riscv.md: Add support for XTheadCondMov.
3081 * config/riscv/thead.md (*th_cond_mov<GPR:mode><GPR2:mode>): Add
3082 support for XTheadCondMov.
3083 (*th_cond_gpr_mov<GPR:mode><GPR2:mode>): Likewise.
3085 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3087 * config/riscv/bitmanip.md (clzdi2): New expand.
3088 (clzsi2): New expand.
3089 (ctz<mode>2): New expand.
3090 (popcount<mode>2): New expand.
3091 (<bitmanip_optab>si2): Rename INSN.
3092 (*<bitmanip_optab>si2): Hide INSN name.
3093 (<bitmanip_optab>di2): Rename INSN.
3094 (*<bitmanip_optab>di2): Hide INSN name.
3095 (rotrsi3): Remove INSN.
3096 (rotr<mode>3): Add expand.
3097 (*rotrsi3): New INSN.
3098 (rotrdi3): Rename INSN.
3099 (*rotrdi3): Hide INSN name.
3100 (rotrsi3_sext): Rename INSN.
3101 (*rotrsi3_sext): Hide INSN name.
3102 (bswap<mode>2): Remove INSN.
3103 (bswapdi2): Add expand.
3104 (bswapsi2): Add expand.
3105 (*bswap<mode>2): Hide INSN name.
3106 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for sign
3108 * config/riscv/riscv.md (extv<mode>): New expand.
3109 (extzv<mode>): New expand.
3110 * config/riscv/thead.md (*th_srri<mode>3): New INSN.
3111 (*th_ext<mode>): New INSN.
3112 (*th_extu<mode>): New INSN.
3113 (*th_clz<mode>2): New INSN.
3114 (*th_rev<mode>2): New INSN.
3116 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3118 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
3119 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
3121 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3123 * config/riscv/riscv.md: Include thead.md
3124 * config/riscv/thead.md: New file.
3126 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3128 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
3130 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3132 * common/config/riscv/riscv-common.cc: Add xthead* extensions.
3133 * config/riscv/riscv-opts.h (MASK_XTHEADBA): New.
3134 (MASK_XTHEADBB): New.
3135 (MASK_XTHEADBS): New.
3136 (MASK_XTHEADCMO): New.
3137 (MASK_XTHEADCONDMOV): New.
3138 (MASK_XTHEADFMEMIDX): New.
3139 (MASK_XTHEADFMV): New.
3140 (MASK_XTHEADINT): New.
3141 (MASK_XTHEADMAC): New.
3142 (MASK_XTHEADMEMIDX): New.
3143 (MASK_XTHEADMEMPAIR): New.
3144 (MASK_XTHEADSYNC): New.
3145 (TARGET_XTHEADBA): New.
3146 (TARGET_XTHEADBB): New.
3147 (TARGET_XTHEADBS): New.
3148 (TARGET_XTHEADCMO): New.
3149 (TARGET_XTHEADCONDMOV): New.
3150 (TARGET_XTHEADFMEMIDX): New.
3151 (TARGET_XTHEADFMV): New.
3152 (TARGET_XTHEADINT): New.
3153 (TARGET_XTHEADMAC): New.
3154 (TARGET_XTHEADMEMIDX): New.
3155 (TARGET_XTHEADMEMPAIR): new.
3156 (TARGET_XTHEADSYNC): New.
3157 * config/riscv/riscv.opt: Add riscv_xthead_subext.
3159 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
3162 * config/i386/i386-builtin.def (__builtin_ia32_vaesdec_v16qi,
3163 __builtin_ia32_vaesdeclast_v16qi,__builtin_ia32_vaesenc_v16qi,
3164 __builtin_ia32_vaesenclast_v16qi): Require OPTION_MASK_ISA_AVX512VL.
3166 2023-03-14 Jakub Jelinek <jakub@redhat.com>
3169 * config/i386/i386-expand.cc (split_double_concat): Fix splitting
3170 when lo is equal to dhi and hi is a MEM which uses dlo register.
3172 2023-03-14 Martin Jambor <mjambor@suse.cz>
3175 * ipa-cp.cc (update_profiling_info): Drop counts of orig_node to
3176 global0 instead of zeroing when it does not have as many counts as
3179 2023-03-14 Martin Jambor <mjambor@suse.cz>
3182 * ipa-cp.cc (update_specialized_profile): Drop orig_node_count to
3183 ipa count, remove assert, lenient_count_portion_handling, dump
3184 also orig_node_count.
3186 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
3188 * config/i386/i386-expand.cc (expand_vec_perm_movs):
3189 Handle V2SImode for TARGET_MMX_WITH_SSE.
3190 * config/i386/mmx.md (*mmx_movss_<mode>): Rename from *mmx_movss
3191 using V2FI mode iterator to handle both V2SI and V2SF modes.
3193 2023-03-14 Sam James <sam@gentoo.org>
3195 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
3196 including <sstream> earlier.
3197 * system.h: Add INCLUDE_SSTREAM.
3199 2023-03-14 Richard Biener <rguenther@suse.de>
3201 * tree-ssa-live.cc (remove_unused_locals): Do not treat
3202 the .DEFERRED_INIT of a variable as use, instead remove
3203 that if it is the only use.
3205 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
3207 PR rtl-optimization/107762
3208 * expr.cc (emit_group_store): Revert latest change.
3210 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
3212 PR tree-optimization/109005
3213 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
3214 aggregate type check.
3216 2023-03-14 Jakub Jelinek <jakub@redhat.com>
3218 PR tree-optimization/109115
3219 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Don't use
3220 r.upper_bound () on r.undefined_p () range.
3222 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
3224 PR tree-optimization/106896
3225 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
3226 implementatoin with probability_in; avoid some asserts.
3228 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
3230 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
3232 2023-03-13 Sean Bright <sean@seanbright.com>
3234 * doc/invoke.texi (Warning Options): Remove errant 'See'
3237 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3239 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
3240 REG_OK_FOR_BASE_P): Remove.
3242 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3244 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
3245 (=vd,vd,vr,vr): Ditto.
3246 * config/riscv/vector.md: Ditto.
3248 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3250 * config/riscv/riscv-vector-builtins.cc
3251 (function_expander::use_compare_insn): Add operand predicate check.
3253 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3255 * config/riscv/vector.md: Fine tune RA constraints.
3257 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
3259 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
3260 hsaco assemble/link.
3262 2023-03-13 Richard Biener <rguenther@suse.de>
3264 PR tree-optimization/109046
3265 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
3266 piecewise complex loads.
3268 2023-03-12 Jakub Jelinek <jakub@redhat.com>
3270 * config/aarch64/aarch64.h (aarch64_bf16_type_node): Remove.
3271 (aarch64_bf16_ptr_type_node): Adjust comment.
3272 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr): Use
3273 bfloat16_type_node rather than aarch64_bf16_type_node.
3274 (aarch64_libgcc_floating_mode_supported_p,
3275 aarch64_scalar_mode_supported_p): Also support BFmode.
3276 (aarch64_invalid_conversion, aarch64_invalid_unary_op): Remove.
3277 (aarch64_invalid_binary_op): Remove BFmode related rejections.
3278 (TARGET_INVALID_CONVERSION, TARGET_INVALID_UNARY_OP): Don't redefine.
3279 * config/aarch64/aarch64-builtins.cc (aarch64_bf16_type_node): Remove.
3280 (aarch64_int_or_fp_type): Use bfloat16_type_node rather than
3281 aarch64_bf16_type_node.
3282 (aarch64_init_simd_builtin_types): Likewise.
3283 (aarch64_init_bf16_types): Likewise. Don't create bfloat16_type_node,
3284 which is created in tree.cc already.
3285 * config/aarch64/aarch64-sve-builtins.def (svbfloat16_t): Likewise.
3287 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
3289 PR middle-end/109031
3290 * tree-chrec.cc (chrec_apply): When folding "{a, +, a} (x-1)",
3291 ensure that the type of x is as wide or wider than the type of a.
3293 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3296 * config/aarch64/aarch64-simd.md (@aarch64_bitmask_udiv<mode>3): Remove.
3297 (*bitmask_shift_plus<mode>): New.
3298 * config/aarch64/aarch64-sve2.md (*bitmask_shift_plus<mode>): New.
3299 (@aarch64_bitmask_udiv<mode>3): Remove.
3300 * config/aarch64/aarch64.cc
3301 (aarch64_vectorize_can_special_div_by_constant,
3302 TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Removed.
3303 (TARGET_VECTORIZE_PREFERRED_DIV_AS_SHIFTS_OVER_MULT,
3304 aarch64_vectorize_preferred_div_as_shifts_over_mult): New.
3306 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3309 * target.def (preferred_div_as_shifts_over_mult): New.
3310 * doc/tm.texi.in: Document it.
3311 * doc/tm.texi: Regenerate.
3312 * targhooks.cc (default_preferred_div_as_shifts_over_mult): New.
3313 * targhooks.h (default_preferred_div_as_shifts_over_mult): New.
3314 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Use it.
3316 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3317 Richard Sandiford <richard.sandiford@arm.com>
3320 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
3323 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3324 Andrew MacLeod <amacleod@redhat.com>
3327 * gimple-range-op.h (gimple_range_op_handler): Add maybe_non_standard.
3328 * gimple-range-op.cc (gimple_range_op_handler::gimple_range_op_handler):
3330 (gimple_range_op_handler::maybe_non_standard): New.
3331 * range-op.cc (class operator_widen_plus_signed,
3332 operator_widen_plus_signed::wi_fold, class operator_widen_plus_unsigned,
3333 operator_widen_plus_unsigned::wi_fold, class operator_widen_mult_signed,
3334 operator_widen_mult_signed::wi_fold, class operator_widen_mult_unsigned,
3335 operator_widen_mult_unsigned::wi_fold,
3336 ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
3337 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New.
3338 * range-op.h (ptr_op_widen_mult_signed, ptr_op_widen_mult_unsigned,
3339 ptr_op_widen_plus_signed, ptr_op_widen_plus_unsigned): New
3341 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3344 * doc/tm.texi (TARGET_VECTORIZE_CAN_SPECIAL_DIV_BY_CONST): Remove.
3345 * doc/tm.texi.in: Likewise.
3346 * explow.cc (round_push, align_dynamic_address): Revert previous patch.
3347 * expmed.cc (expand_divmod): Likewise.
3348 * expmed.h (expand_divmod): Likewise.
3349 * expr.cc (force_operand, expand_expr_divmod): Likewise.
3350 * optabs.cc (expand_doubleword_mod, expand_doubleword_divmod): Likewise.
3351 * target.def (can_special_div_by_const): Remove.
3352 * target.h: Remove tree-core.h include
3353 * targhooks.cc (default_can_special_div_by_const): Remove.
3354 * targhooks.h (default_can_special_div_by_const): Remove.
3355 * tree-vect-generic.cc (expand_vector_operation): Remove hook.
3356 * tree-vect-patterns.cc (vect_recog_divmod_pattern): Remove hook.
3357 * tree-vect-stmts.cc (vectorizable_operation): Remove hook.
3359 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
3361 * doc/install.texi2html: Fix issue number typo in comment.
3363 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
3365 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
3368 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
3370 * doc/invoke.texi (Optimize Options): Add markup to
3371 description of asan-kernel-mem-intrinsic-prefix, and clarify
3374 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
3376 * doc/extend.texi (Named Address Spaces): Drop a redundant link
3379 2023-03-11 Jeff Law <jlaw@ventanamicro>
3382 * doc/extend.texi: Clarify Attribute Syntax a bit.
3384 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
3386 * doc/install.texi (Prerequisites): Suggest using newer versions
3388 (Final install): Clean up and modernize discussion of how to
3389 build or obtain the GCC manuals.
3390 * doc/install.texi2html: Update comment to point to the PR instead
3391 of "makeinfo 4.7 brokenness" (it's not specific to that version).
3393 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3396 * optabs.cc (expand_fix): For conversions from BFmode to integral,
3397 use shifts to convert it to SFmode first and then convert SFmode
3400 2023-03-10 Andrew Pinski <apinski@marvell.com>
3402 * config/aarch64/aarch64.md: Add a new define_split
3405 2023-03-10 Richard Biener <rguenther@suse.de>
3407 * tree-ssa-structalias.cc (solve_graph): Immediately
3408 iterate self-cycles.
3410 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3412 PR tree-optimization/109008
3413 * range-op-float.cc (float_widen_lhs_range): If not
3414 -frounding-math and not IBM double double format, extend lhs
3415 range just by 0.5ulp rather than 1ulp in each direction.
3417 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3420 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
3422 * config/i386/t-cygwin-w64: Remove.
3424 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3427 * tree-core.h (tree_code_type, tree_code_length): For C++11 or
3428 C++14, don't declare as extern const arrays.
3429 (tree_code_type_tmpl, tree_code_length_tmpl): New types with
3430 static constexpr member arrays for C++11 or C++14.
3431 * tree.h (TREE_CODE_CLASS): For C++11 or C++14 use
3432 tree_code_type_tmpl <0>::tree_code_type instead of tree_code_type.
3433 (TREE_CODE_LENGTH): For C++11 or C++14 use
3434 tree_code_length_tmpl <0>::tree_code_length instead of
3436 * tree.cc (tree_code_type, tree_code_length): Remove.
3438 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3441 * common.opt (fcanon-prefix-map): New option.
3442 * opts.cc: Include file-prefix-map.h.
3443 (flag_canon_prefix_map): New variable.
3444 (common_handle_option): Handle OPT_fcanon_prefix_map.
3445 (gen_command_line_string): Ignore OPT_fcanon_prefix_map.
3446 * file-prefix-map.h (flag_canon_prefix_map): Declare.
3447 * file-prefix-map.cc (struct file_prefix_map): Add canonicalize
3449 (add_prefix_map): Initialize canonicalize member from
3450 flag_canon_prefix_map, and if true canonicalize it using lrealpath.
3451 (remap_filename): Revert 2022-11-01 and 2022-11-07 changes,
3452 use lrealpath result only for map->canonicalize map entries.
3453 * lto-opts.cc (lto_write_options): Ignore OPT_fcanon_prefix_map.
3454 * opts-global.cc (handle_common_deferred_options): Clear
3455 flag_canon_prefix_map at the start and handle OPT_fcanon_prefix_map.
3456 * doc/invoke.texi (-fcanon-prefix-map): Document.
3457 (-ffile-prefix-map, -fdebug-prefix-map, -fprofile-prefix-map): Add
3458 see also for -fcanon-prefix-map.
3459 * doc/cppopts.texi (-fmacro-prefix-map): Likewise.
3461 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3464 * cgraphunit.cc (check_global_declaration): Don't warn for unused
3465 variables which have OPT_Wunused_variable warning suppressed.
3467 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3469 PR tree-optimization/109008
3470 * range-op-float.cc (float_widen_lhs_range): If lb is
3471 minimum representable finite number or ub is maximum
3472 representable finite number, instead of widening it to
3473 -inf or inf widen it to negative or positive 0x0.8p+(EMAX+1).
3474 Temporarily clear flag_finite_math_only when canonicalizing
3477 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3479 * config/riscv/riscv-builtins.cc (riscv_gimple_fold_builtin): New function.
3480 * config/riscv/riscv-protos.h (riscv_gimple_fold_builtin): Ditto.
3481 (gimple_fold_builtin): Ditto.
3482 * config/riscv/riscv-vector-builtins-bases.cc (class read_vl): New class.
3483 (class vleff): Ditto.
3485 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3486 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
3488 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
3489 (struct fault_load_def): Ditto.
3491 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3492 * config/riscv/riscv-vector-builtins.cc
3493 (rvv_arg_type_info::get_tree_type): Add size_ptr.
3494 (gimple_folder::gimple_folder): New class.
3495 (gimple_folder::fold): Ditto.
3496 (gimple_fold_builtin): New function.
3497 (get_read_vl_instance): Ditto.
3498 (get_read_vl_decl): Ditto.
3499 * config/riscv/riscv-vector-builtins.def (size_ptr): Add size_ptr.
3500 * config/riscv/riscv-vector-builtins.h (class gimple_folder): New class.
3501 (get_read_vl_instance): New function.
3502 (get_read_vl_decl): Ditto.
3503 * config/riscv/riscv-vsetvl.cc (fault_first_load_p): Ditto.
3504 (read_vl_insn_p): Ditto.
3505 (available_occurrence_p): Ditto.
3506 (backward_propagate_worthwhile_p): Ditto.
3507 (gen_vsetvl_pat): Adapt for vleff support.
3508 (get_forward_read_vl_insn): New function.
3509 (get_backward_fault_first_load_insn): Ditto.
3510 (source_equal_p): Adapt for vleff support.
3511 (first_ratio_invalid_for_second_sew_p): Remove.
3512 (first_ratio_invalid_for_second_lmul_p): Ditto.
3513 (first_lmul_less_than_second_lmul_p): Ditto.
3514 (first_ratio_less_than_second_ratio_p): Ditto.
3515 (support_relaxed_compatible_p): New function.
3516 (vector_insn_info::operator>): Remove.
3517 (vector_insn_info::operator>=): Refine.
3518 (vector_insn_info::parse_insn): Adapt for vleff support.
3519 (vector_insn_info::compatible_p): Ditto.
3520 (vector_insn_info::update_fault_first_load_avl): New function.
3521 (pass_vsetvl::transfer_after): Adapt for vleff support.
3522 (pass_vsetvl::demand_fusion): Ditto.
3523 (pass_vsetvl::cleanup_insns): Ditto.
3524 * config/riscv/riscv-vsetvl.def (DEF_INCOMPATIBLE_COND): Remove
3525 redundant condtions.
3526 * config/riscv/riscv-vsetvl.h (struct demands_cond): New function.
3527 * config/riscv/riscv.cc (TARGET_GIMPLE_FOLD_BUILTIN): New target hook.
3528 * config/riscv/riscv.md: Adapt for vleff support.
3529 * config/riscv/t-riscv: Ditto.
3530 * config/riscv/vector-iterators.md: New iterator.
3531 * config/riscv/vector.md (read_vlsi): New pattern.
3532 (read_vldi_zero_extend): Ditto.
3533 (@pred_fault_load<mode>): Ditto.
3535 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3537 * config/riscv/riscv-vector-builtins.cc
3538 (function_expander::use_ternop_insn): Use maybe_gen_insn instead.
3539 (function_expander::use_widen_ternop_insn): Ditto.
3540 * optabs.cc (maybe_gen_insn): Extend nops handling.
3542 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3544 * config/riscv/riscv-vector-builtins-bases.cc: Split indexed load
3545 patterns according to RVV ISA.
3546 * config/riscv/vector-iterators.md: New iterators.
3547 * config/riscv/vector.md
3548 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Remove.
3549 (@pred_indexed_<order>load<mode>_same_eew): New pattern.
3550 (@pred_indexed_<order>load<mode>_x2_greater_eew): Ditto.
3551 (@pred_indexed_<order>load<mode>_x4_greater_eew): Ditto.
3552 (@pred_indexed_<order>load<mode>_x8_greater_eew): Ditto.
3553 (@pred_indexed_<order>load<mode>_x2_smaller_eew): Ditto.
3554 (@pred_indexed_<order>load<mode>_x4_smaller_eew): Ditto.
3555 (@pred_indexed_<order>load<mode>_x8_smaller_eew): Ditto.
3556 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Remove.
3557 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
3558 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
3559 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
3560 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
3561 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
3563 2023-03-10 Michael Collison <collison@rivosinc.com>
3565 * tree-vect-loop-manip.cc (vect_do_peeling): Use
3566 result of constant_lower_bound instead of vf for the lower
3567 bound of the epilog loop trip count.
3569 2023-03-09 Tamar Christina <tamar.christina@arm.com>
3571 * passes.cc (emergency_dump_function): Finish graph generation.
3573 2023-03-09 Tamar Christina <tamar.christina@arm.com>
3575 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
3576 and bottom bit only.
3578 2023-03-09 Andrew Pinski <apinski@marvell.com>
3580 PR tree-optimization/108980
3581 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
3582 Reorgnize the call to warning for not strict flexible arrays
3583 to be before the check of warned.
3585 2023-03-09 Jason Merrill <jason@redhat.com>
3587 * doc/extend.texi: Comment out __is_deducible docs.
3589 2023-03-09 Jason Merrill <jason@redhat.com>
3592 * doc/extend.texi (Type Traits):: Document __is_deducible.
3594 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
3597 * config.host: add object for x86_64-*-mingw*.
3598 * config/i386/sym-mingw32.cc: dummy file to attach
3600 * config/i386/utf8-mingw32.rc: windres resource file.
3601 * config/i386/winnt-utf8.manifest: XML manifest to
3603 * config/i386/x-mingw32: reference to x-mingw32-utf8.
3604 * config/i386/x-mingw32-utf8: Makefile fragment to
3605 embed UTF-8 manifest.
3607 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
3609 * lra-constraints.cc (process_alt_operands): Use operand modes for
3610 clobbered regs instead of the biggest access mode.
3612 2023-03-09 Richard Biener <rguenther@suse.de>
3614 PR middle-end/108995
3615 * fold-const.cc (extract_muldiv_1): Avoid folding
3616 (CST * b) / CST2 when sanitizing overflow and we rely on
3617 overflow being undefined.
3619 2023-03-09 Jakub Jelinek <jakub@redhat.com>
3620 Richard Biener <rguenther@suse.de>
3622 PR tree-optimization/109008
3623 * range-op-float.cc (float_widen_lhs_range): New function.
3624 (foperator_plus::op1_range, foperator_minus::op1_range,
3625 foperator_minus::op2_range, foperator_mult::op1_range,
3626 foperator_div::op1_range, foperator_div::op2_range): Use it.
3628 2023-03-07 Jonathan Grant <jg@jguk.org>
3631 * doc/invoke.texi (Instrumentation Options): Clarify
3632 LeakSanitizer behavior.
3634 2023-03-07 Benson Muite <benson_muite@emailplus.org>
3636 * doc/install.texi (Prerequisites): Add link to gmplib.org.
3638 2023-03-07 Pan Li <pan2.li@intel.com>
3639 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3643 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
3645 * config/riscv/riscv.cc (riscv_v_adjust_precision): New.
3646 * config/riscv/riscv.h (riscv_v_adjust_precision): New.
3647 * genmodes.cc (adj_precision): New.
3648 (ADJUST_PRECISION): New.
3649 (emit_mode_adjustments): Handle ADJUST_PRECISION.
3651 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
3653 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
3655 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
3657 * config/gcn/gcn-valu.md (<expander><mode>3_exec): Add patterns for
3658 {s|u}{max|min} in QI, HI and DI modes.
3659 (<expander><mode>3): Add pattern for {s|u}{max|min} in DI mode.
3660 (cond_<fexpander><mode>): Add pattern for cond_f{max|min}.
3661 (cond_<expander><mode>): Add pattern for cond_{s|u}{max|min}.
3662 * config/gcn/gcn.cc (gcn_spill_class): Allow the exec register to be
3665 2023-03-06 Richard Biener <rguenther@suse.de>
3667 PR tree-optimization/109025
3668 * tree-vect-loop.cc (vect_is_simple_reduction): Verify
3669 the inner LC PHI use is the inner loop PHI latch definition
3670 before classifying an outer PHI as double reduction.
3672 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
3675 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
3677 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
3678 (X86_TUNE_USE_SCATTER): Likewise.
3680 2023-03-06 Xi Ruoyao <xry111@xry111.site>
3683 * config/loongarch/loongarch.h (FP_RETURN): Use
3684 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
3685 (UNITS_PER_FP_ARG): Likewise.
3687 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3689 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
3690 (pass_vsetvl::backward_demand_fusion): Ditto.
3692 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3693 SiYu Wu <siyu@isrc.iscas.ac.cn>
3695 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
3697 (riscv_sm3p1_<mode>): New.
3698 (riscv_sm4ed_<mode>): New.
3699 (riscv_sm4ks_<mode>): New.
3700 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKSED's and ZKSH's AVAIL.
3701 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): Add ZKSED's and
3702 ZKSH's built-in functions.
3704 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3705 SiYu Wu <siyu@isrc.iscas.ac.cn>
3707 * config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
3708 (riscv_sha256sig1_<mode>): New.
3709 (riscv_sha256sum0_<mode>): New.
3710 (riscv_sha256sum1_<mode>): New.
3711 (riscv_sha512sig0h): New.
3712 (riscv_sha512sig0l): New.
3713 (riscv_sha512sig1h): New.
3714 (riscv_sha512sig1l): New.
3715 (riscv_sha512sum0r): New.
3716 (riscv_sha512sum1r): New.
3717 (riscv_sha512sig0): New.
3718 (riscv_sha512sig1): New.
3719 (riscv_sha512sum0): New.
3720 (riscv_sha512sum1): New.
3721 * config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
3722 * config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
3724 (DIRECT_BUILTIN): Add new.
3726 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3727 SiYu Wu <siyu@isrc.iscas.ac.cn>
3729 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
3731 * config/riscv/crypto.md (riscv_aes32dsi): Add ZKND's and ZKNE's instructions.
3732 (riscv_aes32dsmi): New.
3733 (riscv_aes64ds): New.
3734 (riscv_aes64dsm): New.
3735 (riscv_aes64im): New.
3736 (riscv_aes64ks1i): New.
3737 (riscv_aes64ks2): New.
3738 (riscv_aes32esi): New.
3739 (riscv_aes32esmi): New.
3740 (riscv_aes64es): New.
3741 (riscv_aes64esm): New.
3742 * config/riscv/riscv-builtins.cc (AVAIL): Add ZKND's and ZKNE's AVAIL.
3743 * config/riscv/riscv-scalar-crypto.def (DIRECT_BUILTIN): Add ZKND's and
3744 ZKNE's built-in functions.
3746 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3747 SiYu Wu <siyu@isrc.iscas.ac.cn>
3749 * config/riscv/bitmanip.md: Add ZBKB's instructions.
3750 * config/riscv/riscv-builtins.cc (AVAIL): Add new.
3751 * config/riscv/riscv.md: Add new type for crypto instructions.
3752 * config/riscv/crypto.md: Add Scalar Cryptography extension's machine
3754 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
3755 extension's built-in function file.
3757 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3758 SiYu Wu <siyu@isrc.iscas.ac.cn>
3760 * config/riscv/riscv-builtins.cc (RISCV_FTYPE_NAME2): New.
3761 (RISCV_FTYPE_NAME3): New.
3762 (RISCV_ATYPE_QI): New.
3763 (RISCV_ATYPE_HI): New.
3764 (RISCV_FTYPE_ATYPES2): New.
3765 (RISCV_FTYPE_ATYPES3): New.
3766 * config/riscv/riscv-ftypes.def (2): New.
3769 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
3771 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
3774 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3775 kito-cheng <kito.cheng@sifive.com>
3777 * config/riscv/predicates.md (vector_any_register_operand): New predicate.
3778 * config/riscv/riscv-c.cc (riscv_check_builtin_call): New function.
3779 (riscv_register_pragmas): Add builtin function check call.
3780 * config/riscv/riscv-protos.h (RVV_VUNDEF): Adapt macro.
3781 (check_builtin_call): New function.
3782 * config/riscv/riscv-vector-builtins-bases.cc (class vundefined): New class.
3783 (class vreinterpret): Ditto.
3784 (class vlmul_ext): Ditto.
3785 (class vlmul_trunc): Ditto.
3786 (class vset): Ditto.
3787 (class vget): Ditto.
3789 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3790 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
3806 (vundefined): Add new intrinsic.
3807 (vreinterpret): Ditto.
3809 (vlmul_trunc): Ditto.
3812 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def): New class.
3813 (struct narrow_alu_def): Ditto.
3814 (struct reduc_alu_def): Ditto.
3815 (struct vundefined_def): Ditto.
3816 (struct misc_def): Ditto.
3817 (struct vset_def): Ditto.
3818 (struct vget_def): Ditto.
3820 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
3821 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EEW8_INTERPRET_OPS): New def.
3822 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
3823 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
3824 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
3825 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
3826 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
3827 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
3828 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
3829 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
3830 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
3831 (DEF_RVV_LMUL1_OPS): Ditto.
3832 (DEF_RVV_LMUL2_OPS): Ditto.
3833 (DEF_RVV_LMUL4_OPS): Ditto.
3834 (vint16mf4_t): Ditto.
3835 (vint16mf2_t): Ditto.
3836 (vint16m1_t): Ditto.
3837 (vint16m2_t): Ditto.
3838 (vint16m4_t): Ditto.
3839 (vint16m8_t): Ditto.
3840 (vint32mf2_t): Ditto.
3841 (vint32m1_t): Ditto.
3842 (vint32m2_t): Ditto.
3843 (vint32m4_t): Ditto.
3844 (vint32m8_t): Ditto.
3845 (vint64m1_t): Ditto.
3846 (vint64m2_t): Ditto.
3847 (vint64m4_t): Ditto.
3848 (vint64m8_t): Ditto.
3849 (vuint16mf4_t): Ditto.
3850 (vuint16mf2_t): Ditto.
3851 (vuint16m1_t): Ditto.
3852 (vuint16m2_t): Ditto.
3853 (vuint16m4_t): Ditto.
3854 (vuint16m8_t): Ditto.
3855 (vuint32mf2_t): Ditto.
3856 (vuint32m1_t): Ditto.
3857 (vuint32m2_t): Ditto.
3858 (vuint32m4_t): Ditto.
3859 (vuint32m8_t): Ditto.
3860 (vuint64m1_t): Ditto.
3861 (vuint64m2_t): Ditto.
3862 (vuint64m4_t): Ditto.
3863 (vuint64m8_t): Ditto.
3864 (vint8mf4_t): Ditto.
3865 (vint8mf2_t): Ditto.
3870 (vuint8mf4_t): Ditto.
3871 (vuint8mf2_t): Ditto.
3872 (vuint8m1_t): Ditto.
3873 (vuint8m2_t): Ditto.
3874 (vuint8m4_t): Ditto.
3875 (vuint8m8_t): Ditto.
3876 (vint8mf8_t): Ditto.
3877 (vuint8mf8_t): Ditto.
3878 (vfloat32mf2_t): Ditto.
3879 (vfloat32m1_t): Ditto.
3880 (vfloat32m2_t): Ditto.
3881 (vfloat32m4_t): Ditto.
3882 (vfloat64m1_t): Ditto.
3883 (vfloat64m2_t): Ditto.
3884 (vfloat64m4_t): Ditto.
3885 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
3886 (DEF_RVV_EEW8_INTERPRET_OPS): Ditto.
3887 (DEF_RVV_EEW16_INTERPRET_OPS): Ditto.
3888 (DEF_RVV_EEW32_INTERPRET_OPS): Ditto.
3889 (DEF_RVV_EEW64_INTERPRET_OPS): Ditto.
3890 (DEF_RVV_X2_VLMUL_EXT_OPS): Ditto.
3891 (DEF_RVV_X4_VLMUL_EXT_OPS): Ditto.
3892 (DEF_RVV_X8_VLMUL_EXT_OPS): Ditto.
3893 (DEF_RVV_X16_VLMUL_EXT_OPS): Ditto.
3894 (DEF_RVV_X32_VLMUL_EXT_OPS): Ditto.
3895 (DEF_RVV_X64_VLMUL_EXT_OPS): Ditto.
3896 (DEF_RVV_LMUL1_OPS): Ditto.
3897 (DEF_RVV_LMUL2_OPS): Ditto.
3898 (DEF_RVV_LMUL4_OPS): Ditto.
3899 (DEF_RVV_TYPE_INDEX): Ditto.
3900 (required_extensions_p): Adapt for new intrinsic support/
3901 (get_required_extensions): New function.
3902 (check_required_extensions): Ditto.
3903 (unsigned_base_type_p): Remove.
3904 (rvv_arg_type_info::get_scalar_ptr_type): New function.
3905 (get_mode_for_bitsize): Remove.
3906 (rvv_arg_type_info::get_scalar_const_ptr_type): New function.
3907 (rvv_arg_type_info::get_base_vector_type): Ditto.
3908 (rvv_arg_type_info::get_function_type_index): Ditto.
3909 (DEF_RVV_BASE_TYPE): New def.
3910 (function_builder::apply_predication): New class.
3911 (function_expander::mask_mode): Ditto.
3912 (function_checker::function_checker): Ditto.
3913 (function_checker::report_non_ice): Ditto.
3914 (function_checker::report_out_of_range): Ditto.
3915 (function_checker::require_immediate): Ditto.
3916 (function_checker::require_immediate_range): Ditto.
3917 (function_checker::check): Ditto.
3918 (check_builtin_call): Ditto.
3919 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): New def.
3920 (DEF_RVV_BASE_TYPE): Ditto.
3921 (DEF_RVV_TYPE_INDEX): Ditto.
3929 (vuint8mf8_t): Ditto.
3930 (vuint8mf4_t): Ditto.
3931 (vuint8mf2_t): Ditto.
3932 (vuint8m1_t): Ditto.
3933 (vuint8m2_t): Ditto.
3935 (vuint8m4_t): Ditto.
3937 (vuint8m8_t): Ditto.
3938 (vint16mf4_t): Ditto.
3939 (vuint16mf2_t): Ditto.
3940 (vuint16m1_t): Ditto.
3941 (vuint16m2_t): Ditto.
3942 (vuint16m4_t): Ditto.
3943 (vuint16m8_t): Ditto.
3944 (vint32mf2_t): Ditto.
3945 (vuint32m1_t): Ditto.
3946 (vuint32m2_t): Ditto.
3947 (vuint32m4_t): Ditto.
3948 (vuint32m8_t): Ditto.
3949 (vuint64m1_t): Ditto.
3950 (vuint64m2_t): Ditto.
3951 (vuint64m4_t): Ditto.
3952 (vuint64m8_t): Ditto.
3953 (vfloat32mf2_t): Ditto.
3954 (vfloat32m1_t): Ditto.
3955 (vfloat32m2_t): Ditto.
3956 (vfloat32m4_t): Ditto.
3957 (vfloat32m8_t): Ditto.
3958 (vfloat64m1_t): Ditto.
3959 (vfloat64m4_t): Ditto.
3960 (vector): Move it def.
3963 (signed_vector): Ditto.
3964 (unsigned_vector): Ditto.
3965 (unsigned_scalar): Ditto.
3966 (vector_ptr): Ditto.
3967 (scalar_ptr): Ditto.
3968 (scalar_const_ptr): Ditto.
3972 (unsigned_long): Ditto.
3974 (eew8_index): Ditto.
3975 (eew16_index): Ditto.
3976 (eew32_index): Ditto.
3977 (eew64_index): Ditto.
3978 (shift_vector): Ditto.
3979 (double_trunc_vector): Ditto.
3980 (quad_trunc_vector): Ditto.
3981 (oct_trunc_vector): Ditto.
3982 (double_trunc_scalar): Ditto.
3983 (double_trunc_signed_vector): Ditto.
3984 (double_trunc_unsigned_vector): Ditto.
3985 (double_trunc_unsigned_scalar): Ditto.
3986 (double_trunc_float_vector): Ditto.
3987 (float_vector): Ditto.
3988 (lmul1_vector): Ditto.
3989 (widen_lmul1_vector): Ditto.
3990 (eew8_interpret): Ditto.
3991 (eew16_interpret): Ditto.
3992 (eew32_interpret): Ditto.
3993 (eew64_interpret): Ditto.
3994 (vlmul_ext_x2): Ditto.
3995 (vlmul_ext_x4): Ditto.
3996 (vlmul_ext_x8): Ditto.
3997 (vlmul_ext_x16): Ditto.
3998 (vlmul_ext_x32): Ditto.
3999 (vlmul_ext_x64): Ditto.
4000 * config/riscv/riscv-vector-builtins.h (DEF_RVV_BASE_TYPE): New def.
4001 (struct function_type_info): New function.
4002 (struct rvv_arg_type_info): Ditto.
4003 (class function_checker): New class.
4004 (rvv_arg_type_info::get_scalar_type): New function.
4005 (rvv_arg_type_info::get_vector_type): Ditto.
4006 (function_expander::ret_mode): New function.
4007 (function_checker::arg_mode): Ditto.
4008 (function_checker::ret_mode): Ditto.
4009 * config/riscv/t-riscv: Add generator.
4010 * config/riscv/vector-iterators.md: New iterators.
4011 * config/riscv/vector.md (vundefined<mode>): New pattern.
4012 (@vundefined<mode>): Ditto.
4013 (@vreinterpret<mode>): Ditto.
4014 (@vlmul_extx2<mode>): Ditto.
4015 (@vlmul_extx4<mode>): Ditto.
4016 (@vlmul_extx8<mode>): Ditto.
4017 (@vlmul_extx16<mode>): Ditto.
4018 (@vlmul_extx32<mode>): Ditto.
4019 (@vlmul_extx64<mode>): Ditto.
4020 (*vlmul_extx2<mode>): Ditto.
4021 (*vlmul_extx4<mode>): Ditto.
4022 (*vlmul_extx8<mode>): Ditto.
4023 (*vlmul_extx16<mode>): Ditto.
4024 (*vlmul_extx32<mode>): Ditto.
4025 (*vlmul_extx64<mode>): Ditto.
4026 * config/riscv/genrvv-type-indexer.cc: New file.
4028 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4030 * config/riscv/riscv-protos.h (enum vlen_enum): New enum.
4031 (slide1_sew64_helper): New function.
4032 * config/riscv/riscv-v.cc (compute_vlmax): Ditto.
4033 (get_unknown_min_value): Ditto.
4034 (force_vector_length_operand): Ditto.
4035 (gen_no_side_effects_vsetvl_rtx): Ditto.
4036 (get_vl_x2_rtx): Ditto.
4037 (slide1_sew64_helper): Ditto.
4038 * config/riscv/riscv-vector-builtins-bases.cc (class slideop): New class.
4039 (class vrgather): Ditto.
4040 (class vrgatherei16): Ditto.
4041 (class vcompress): Ditto.
4043 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4044 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
4045 (vslidedown): Ditto.
4047 (vslide1down): Ditto.
4048 (vfslide1up): Ditto.
4049 (vfslide1down): Ditto.
4051 (vrgatherei16): Ditto.
4053 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_EI16_OPS): New macro.
4054 (vint8mf8_t): Ditto.
4055 (vint8mf4_t): Ditto.
4056 (vint8mf2_t): Ditto.
4060 (vint16mf4_t): Ditto.
4061 (vint16mf2_t): Ditto.
4062 (vint16m1_t): Ditto.
4063 (vint16m2_t): Ditto.
4064 (vint16m4_t): Ditto.
4065 (vint16m8_t): Ditto.
4066 (vint32mf2_t): Ditto.
4067 (vint32m1_t): Ditto.
4068 (vint32m2_t): Ditto.
4069 (vint32m4_t): Ditto.
4070 (vint32m8_t): Ditto.
4071 (vint64m1_t): Ditto.
4072 (vint64m2_t): Ditto.
4073 (vint64m4_t): Ditto.
4074 (vint64m8_t): Ditto.
4075 (vuint8mf8_t): Ditto.
4076 (vuint8mf4_t): Ditto.
4077 (vuint8mf2_t): Ditto.
4078 (vuint8m1_t): Ditto.
4079 (vuint8m2_t): Ditto.
4080 (vuint8m4_t): Ditto.
4081 (vuint16mf4_t): Ditto.
4082 (vuint16mf2_t): Ditto.
4083 (vuint16m1_t): Ditto.
4084 (vuint16m2_t): Ditto.
4085 (vuint16m4_t): Ditto.
4086 (vuint16m8_t): Ditto.
4087 (vuint32mf2_t): Ditto.
4088 (vuint32m1_t): Ditto.
4089 (vuint32m2_t): Ditto.
4090 (vuint32m4_t): Ditto.
4091 (vuint32m8_t): Ditto.
4092 (vuint64m1_t): Ditto.
4093 (vuint64m2_t): Ditto.
4094 (vuint64m4_t): Ditto.
4095 (vuint64m8_t): Ditto.
4096 (vfloat32mf2_t): Ditto.
4097 (vfloat32m1_t): Ditto.
4098 (vfloat32m2_t): Ditto.
4099 (vfloat32m4_t): Ditto.
4100 (vfloat32m8_t): Ditto.
4101 (vfloat64m1_t): Ditto.
4102 (vfloat64m2_t): Ditto.
4103 (vfloat64m4_t): Ditto.
4104 (vfloat64m8_t): Ditto.
4105 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_EI16_OPS): Ditto.
4106 * config/riscv/riscv.md: Adjust RVV instruction types.
4107 * config/riscv/vector-iterators.md (down): New iterator.
4108 (=vd,vr): New attribute.
4109 (UNSPEC_VSLIDE1UP): New unspec.
4110 * config/riscv/vector.md (@pred_slide<ud><mode>): New pattern.
4111 (*pred_slide<ud><mode>): Ditto.
4112 (*pred_slide<ud><mode>_extended): Ditto.
4113 (@pred_gather<mode>): Ditto.
4114 (@pred_gather<mode>_scalar): Ditto.
4115 (@pred_gatherei16<mode>): Ditto.
4116 (@pred_compress<mode>): Ditto.
4118 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4120 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
4122 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4124 * config/riscv/constraints.md (Wb1): New constraint.
4125 * config/riscv/predicates.md
4126 (vector_least_significant_set_mask_operand): New predicate.
4127 (vector_broadcast_mask_operand): Ditto.
4128 * config/riscv/riscv-protos.h (enum vlmul_type): Adjust.
4129 (gen_scalar_move_mask): New function.
4130 * config/riscv/riscv-v.cc (gen_scalar_move_mask): Ditto.
4131 * config/riscv/riscv-vector-builtins-bases.cc (class vmv): New class.
4132 (class vmv_s): Ditto.
4134 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4135 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
4139 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
4141 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4142 * config/riscv/riscv-vector-builtins.cc (function_expander::mask_mode): Ditto.
4143 (function_expander::use_exact_insn): New function.
4144 (function_expander::use_contiguous_load_insn): New function.
4145 (function_expander::use_contiguous_store_insn): New function.
4146 (function_expander::use_ternop_insn): New function.
4147 (function_expander::use_widen_ternop_insn): New function.
4148 (function_expander::use_scalar_move_insn): New function.
4149 * config/riscv/riscv-vector-builtins.def (s): New operand suffix.
4150 * config/riscv/riscv-vector-builtins.h
4151 (function_expander::add_scalar_move_mask_operand): New class.
4152 * config/riscv/riscv-vsetvl.cc (ignore_vlmul_insn_p): New function.
4153 (scalar_move_insn_p): Ditto.
4154 (has_vsetvl_killed_avl_p): Ditto.
4155 (anticipatable_occurrence_p): Ditto.
4156 (insert_vsetvl): Ditto.
4157 (get_vl_vtype_info): Ditto.
4158 (calculate_sew): Ditto.
4159 (calculate_vlmul): Ditto.
4160 (incompatible_avl_p): Ditto.
4161 (different_sew_p): Ditto.
4162 (different_lmul_p): Ditto.
4163 (different_ratio_p): Ditto.
4164 (different_tail_policy_p): Ditto.
4165 (different_mask_policy_p): Ditto.
4166 (possible_zero_avl_p): Ditto.
4167 (first_ratio_invalid_for_second_sew_p): Ditto.
4168 (first_ratio_invalid_for_second_lmul_p): Ditto.
4169 (second_ratio_invalid_for_first_sew_p): Ditto.
4170 (second_ratio_invalid_for_first_lmul_p): Ditto.
4171 (second_sew_less_than_first_sew_p): Ditto.
4172 (first_sew_less_than_second_sew_p): Ditto.
4173 (compare_lmul): Ditto.
4174 (second_lmul_less_than_first_lmul_p): Ditto.
4175 (first_lmul_less_than_second_lmul_p): Ditto.
4176 (first_ratio_less_than_second_ratio_p): Ditto.
4177 (second_ratio_less_than_first_ratio_p): Ditto.
4178 (DEF_INCOMPATIBLE_COND): Ditto.
4179 (greatest_sew): Ditto.
4181 (second_sew): Ditto.
4182 (first_vlmul): Ditto.
4183 (second_vlmul): Ditto.
4184 (first_ratio): Ditto.
4185 (second_ratio): Ditto.
4186 (vlmul_for_first_sew_second_ratio): Ditto.
4187 (ratio_for_second_sew_first_vlmul): Ditto.
4188 (DEF_SEW_LMUL_FUSE_RULE): Ditto.
4189 (always_unavailable): Ditto.
4190 (avl_unavailable_p): Ditto.
4191 (sew_unavailable_p): Ditto.
4192 (lmul_unavailable_p): Ditto.
4193 (ge_sew_unavailable_p): Ditto.
4194 (ge_sew_lmul_unavailable_p): Ditto.
4195 (ge_sew_ratio_unavailable_p): Ditto.
4196 (DEF_UNAVAILABLE_COND): Ditto.
4197 (same_sew_lmul_demand_p): Ditto.
4198 (propagate_avl_across_demands_p): Ditto.
4199 (reg_available_p): Ditto.
4200 (avl_info::has_non_zero_avl): Ditto.
4201 (vl_vtype_info::has_non_zero_avl): Ditto.
4202 (vector_insn_info::operator>=): Refactor.
4203 (vector_insn_info::parse_insn): Adjust for scalar move.
4204 (vector_insn_info::demand_vl_vtype): Remove.
4205 (vector_insn_info::compatible_p): New function.
4206 (vector_insn_info::compatible_avl_p): Ditto.
4207 (vector_insn_info::compatible_vtype_p): Ditto.
4208 (vector_insn_info::available_p): Ditto.
4209 (vector_insn_info::merge): Ditto.
4210 (vector_insn_info::fuse_avl): Ditto.
4211 (vector_insn_info::fuse_sew_lmul): Ditto.
4212 (vector_insn_info::fuse_tail_policy): Ditto.
4213 (vector_insn_info::fuse_mask_policy): Ditto.
4214 (vector_insn_info::dump): Ditto.
4215 (vector_infos_manager::release): Ditto.
4216 (pass_vsetvl::compute_local_backward_infos): Adjust for scalar move support.
4217 (pass_vsetvl::get_backward_fusion_type): Adjust for scalar move support.
4218 (pass_vsetvl::hard_empty_block_p): Ditto.
4219 (pass_vsetvl::backward_demand_fusion): Ditto.
4220 (pass_vsetvl::forward_demand_fusion): Ditto.
4221 (pass_vsetvl::refine_vsetvls): Ditto.
4222 (pass_vsetvl::cleanup_vsetvls): Ditto.
4223 (pass_vsetvl::commit_vsetvls): Ditto.
4224 (pass_vsetvl::propagate_avl): Ditto.
4225 * config/riscv/riscv-vsetvl.h (enum demand_status): New class.
4226 (struct demands_pair): Ditto.
4227 (struct demands_cond): Ditto.
4228 (struct demands_fuse_rule): Ditto.
4229 * config/riscv/vector-iterators.md: New iterator.
4230 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
4231 (*pred_broadcast<mode>): Ditto.
4232 (*pred_broadcast<mode>_extended_scalar): Ditto.
4233 (@pred_extract_first<mode>): Ditto.
4234 (*pred_extract_first<mode>): Ditto.
4235 (@pred_extract_first_trunc<mode>): Ditto.
4236 * config/riscv/riscv-vsetvl.def: New file.
4238 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
4240 * config/riscv/bitmanip.md: allow 0 constant in max/min
4243 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
4245 * config/riscv/bitmanip.md: Fix wrong index in the check.
4247 2023-03-04 Jakub Jelinek <jakub@redhat.com>
4249 PR middle-end/109006
4250 * vec.cc (test_auto_alias): Adjust comment for removal of
4252 * read-rtl-function.cc (function_reader::parse_block): Likewise.
4253 * gdbhooks.py: Likewise.
4255 2023-03-04 Jakub Jelinek <jakub@redhat.com>
4258 * selftest-diagnostic.cc
4259 (test_diagnostic_context::test_diagnostic_context): Set
4260 caret_max_width to 80.
4262 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4264 * gimple-ssa-warn-access.cc
4265 (pass_waccess::check_dangling_stores): Skip non-stores.
4267 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4269 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
4270 after vmsr and vmrs, and lower the case of P0.
4272 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
4274 PR middle-end/109006
4275 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
4277 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
4279 PR middle-end/109006
4280 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
4282 2023-03-03 Jakub Jelinek <jakub@redhat.com>
4285 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes):
4286 Return immediately if OPT_Wnonnull or OPT_Wstringop_overflow_ is
4287 suppressed on stmt. For [static %E] warning, print access_nelts
4288 rather than access_size. Fix up comment wording.
4290 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
4292 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
4293 arch14 instead of z16.
4295 2023-03-03 Anthony Green <green@moxielogic.com>
4297 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
4299 2023-03-03 Anthony Green <green@moxielogic.com>
4301 * config/moxie/constraints.md (A, B, W): Change
4302 define_constraint to define_memory_constraint.
4304 2023-03-03 Xi Ruoyao <xry111@xry111.site>
4306 * toplev.cc (process_options): Fix the spelling of
4307 "-fstack-clash-protection".
4309 2023-03-03 Richard Biener <rguenther@suse.de>
4311 PR tree-optimization/109002
4312 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
4313 PHI-translate ANTIC_IN.
4315 2023-03-03 Jakub Jelinek <jakub@redhat.com>
4317 PR tree-optimization/108988
4318 * gimple-fold.cc (gimple_fold_builtin_fputs): Fold len to
4319 size_type_node before passing it as argument to fwrite. Formatting
4322 2023-03-03 Richard Biener <rguenther@suse.de>
4325 * config/i386/i386.opt (--param x86-stv-max-visits): New param.
4326 * doc/invoke.texi (--param x86-stv-max-visits): Document it.
4327 * config/i386/i386-features.h (scalar_chain::max_visits): New.
4328 (scalar_chain::build): Add bitmap parameter, return boolean.
4329 (scalar_chain::add_insn): Likewise.
4330 (scalar_chain::analyze_register_chain): Likewise.
4331 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
4332 Initialize max_visits.
4333 (scalar_chain::analyze_register_chain): When we exhaust
4334 max_visits, abort. Also abort when running into any
4336 (scalar_chain::add_insn): Propagate abort.
4337 (scalar_chain::build): Likewise. When aborting amend
4338 the set of disallowed insn with the insns set.
4339 (convert_scalars_to_vector): Adjust. Do not convert aborted
4342 2023-03-03 Richard Biener <rguenther@suse.de>
4345 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
4346 generate a DIE for a function scope static.
4348 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4350 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
4352 2023-03-02 Jakub Jelinek <jakub@redhat.com>
4355 * target.h (emit_support_tinfos_callback): New typedef.
4356 * targhooks.h (default_emit_support_tinfos): Declare.
4357 * targhooks.cc (default_emit_support_tinfos): New function.
4358 * target.def (emit_support_tinfos): New target hook.
4359 * doc/tm.texi.in (emit_support_tinfos): Document it.
4360 * doc/tm.texi: Regenerated.
4361 * config/i386/i386.cc (ix86_emit_support_tinfos): New function.
4362 (TARGET_EMIT_SUPPORT_TINFOS): Redefine.
4364 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
4366 * ira-costs.cc: Include print-rtl.h.
4367 (record_reg_classes, scan_one_insn): Add code to print debug info.
4368 (record_operand_costs): Find and use smaller cost for hard reg
4371 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
4372 Paul-Antoine Arras <pa@codesourcery.com>
4374 * builtins.cc (mathfn_built_in_explicit): New.
4375 * config/gcn/gcn.cc: Include case-cfn-macros.h.
4376 (mathfn_built_in_explicit): Add prototype.
4377 (gcn_vectorize_builtin_vectorized_function): New.
4378 (gcn_libc_has_function): New.
4379 (TARGET_LIBC_HAS_FUNCTION): Define.
4380 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Define.
4382 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4384 PR tree-optimization/108979
4385 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
4386 operations on invariants.
4388 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
4390 * config/s390/predicates.md (vll_bias_operand): Add -1 bias.
4391 * config/s390/s390.cc (s390_option_override_internal): Make
4392 partial vector usage the default from z13 on.
4393 * config/s390/vector.md (len_load_v16qi): Add.
4394 (len_store_v16qi): Add.
4396 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
4398 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
4399 of constant 0 offset.
4401 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
4403 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
4405 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
4407 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
4409 * config.gcc: add -with-{no-}msa build option.
4410 * config/mips/mips.h: Likewise.
4411 * doc/install.texi: Likewise.
4413 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4415 PR tree-optimization/108603
4416 * explow.cc (convert_memory_address_addr_space_1): Only wrap
4417 the result of a recursive call in a CONST if no instructions
4420 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4422 PR tree-optimization/108430
4423 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
4424 of inverted condition.
4426 2023-03-02 Jakub Jelinek <jakub@redhat.com>
4429 * fold-const.cc (native_interpret_expr) <case REAL_CST>: Before memcmp
4430 comparison copy the bytes from ptr to a temporary buffer and clearing
4431 padding bits in there.
4433 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
4435 PR middle-end/108545
4436 * gimplify.cc (struct tree_operand_hash_no_se): New.
4437 (omp_index_mapping_groups_1, omp_index_mapping_groups,
4438 omp_reindex_mapping_groups, omp_mapped_by_containing_struct,
4439 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
4440 oacc_resolve_clause_dependencies, omp_build_struct_sibling_lists,
4441 gimplify_scan_omp_clauses): Use tree_operand_hash_no_se instead
4442 of tree_operand_hash.
4444 2023-03-01 LIU Hao <lh_mouse@126.com>
4447 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
4448 Remove the size limit `pch_VA_max_size`
4450 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
4452 PR middle-end/108546
4453 * omp-low.cc (lower_omp_target): Remove optional handling
4454 on the receiver side, i.e. inside target (data), for
4457 2023-03-01 Jakub Jelinek <jakub@redhat.com>
4460 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
4461 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
4463 2023-03-01 Richard Biener <rguenther@suse.de>
4465 PR tree-optimization/108970
4466 * tree-vect-loop-manip.cc (slpeel_can_duplicate_loop_p):
4467 Check we can copy the BBs.
4468 (slpeel_tree_duplicate_loop_to_edge_cfg): Avoid redundant
4470 (vect_do_peeling): Streamline error handling.
4472 2023-03-01 Richard Biener <rguenther@suse.de>
4474 PR tree-optimization/108950
4475 * tree-vect-patterns.cc (vect_recog_widen_sum_pattern):
4476 Check oprnd0 is defined in the loop.
4477 * tree-vect-loop.cc (vectorizable_reduction): Record all
4478 operands vector types, compute that of invariants and
4479 properly update their SLP nodes.
4481 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
4484 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
4485 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
4487 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
4489 PR middle-end/107411
4490 PR middle-end/107411
4491 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
4493 * tree-ssa-uninit.cc (warn_uninit): Handle the case when the
4494 LHS varaible of a .DEFERRED_INIT call doesn't have a DECL_NAME.
4496 2023-02-28 Jakub Jelinek <jakub@redhat.com>
4499 * ubsan.cc (ubsan_expand_bounds_ifn): Emit index >= bound
4500 comparison rather than index > bound.
4501 * gimple-fold.cc (gimple_fold_call): Use tree_int_cst_lt
4502 rather than tree_int_cst_le for IFN_UBSAN_BOUND comparison.
4503 * doc/invoke.texi (-fsanitize=bounds): Document that whether
4504 flexible array member-like arrays are instrumented or not depends
4505 on -fstrict-flex-arrays* options of strict_flex_array attributes.
4506 (-fsanitize=bounds-strict): Document that flexible array members
4507 are not instrumented.
4509 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
4513 * config/i386/i386.md (fmodxf3): Enable for flag_finite_math_only only.
4514 (fmod<mode>3): Ditto.
4515 (fpremxf4_i387): Ditto.
4516 (reminderxf3): Ditto.
4517 (reminder<mode>3): Ditto.
4518 (fprem1xf4_i387): Ditto.
4520 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
4522 * simplify-rtx.cc (simplify_unary_operation_1) <case FFS>: Avoid
4523 generating FFS with mismatched operand and result modes, by using
4524 an explicit SIGN_EXTEND/ZERO_EXTEND.
4525 <case POPCOUNT>: Likewise, for POPCOUNT of ZERO_EXTEND.
4526 <case PARITY>: Likewise, for PARITY of {ZERO,SIGN}_EXTEND.
4528 2023-02-27 Patrick Palka <ppalka@redhat.com>
4530 * hash-table.h (gt_pch_nx(hash_table<D>)): Remove static.
4531 * lra-int.h (lra_change_class): Likewise.
4532 * recog.h (which_op_alt): Likewise.
4533 * sel-sched-ir.h (sel_bb_empty_or_nop_p): Declare inline
4536 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4538 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
4540 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
4542 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
4543 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
4545 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
4547 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
4548 (xtensa_get_config_v3): New functions.
4550 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4552 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
4554 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
4556 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
4557 the macro to 0x1000000000.
4559 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
4562 * doc/gm2.texi (-fm2-pathname): New option documented.
4563 (-fm2-pathnameI): New option documented.
4564 (-fm2-prefix=): New option documented.
4565 (-fruntime-modules=): Update default module list.
4567 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
4570 * config/xtensa/xtensa-protos.h
4571 (xtensa_prepare_expand_call): Rename to xtensa_expand_call.
4572 * config/xtensa/xtensa.cc (xtensa_prepare_expand_call): Rename
4573 to xtensa_expand_call.
4574 (xtensa_expand_call): Emit the call and add a clobber expression
4575 for the static chain to it in case of windowed ABI.
4576 * config/xtensa/xtensa.md (call, call_value, sibcall)
4577 (sibcall_value): Call xtensa_expand_call and complete expansion
4578 right after that call.
4580 2023-02-24 Richard Biener <rguenther@suse.de>
4582 * vec.h (vec<T, A, vl_embed>::m_vecdata): Remove.
4583 (vec<T, A, vl_embed>::m_vecpfx): Align as T to avoid
4584 changing alignment of vec<T, A, vl_embed> and simplifying
4586 (vec<T, A, vl_embed>::address): Compute as this + 1.
4587 (vec<T, A, vl_embed>::embedded_size): Use sizeof the
4588 vector instead of the offset of the m_vecdata member.
4589 (auto_vec<T, N>::m_data): Turn storage into
4590 uninitialized unsigned char.
4591 (auto_vec<T, N>::auto_vec): Allow allocation of one
4592 stack member. Initialize m_vec in a special way to
4593 avoid later stringop overflow diagnostics.
4594 * vec.cc (test_auto_alias): New.
4595 (vec_cc_tests): Call it.
4597 2023-02-24 Richard Biener <rguenther@suse.de>
4599 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
4600 take a const reference to the object, use address to
4602 (vec<T, A, vl_embed>::contains): Use address to access data.
4603 (vec<T, A, vl_embed>::operator[]): Use address instead of
4604 m_vecdata to access data.
4605 (vec<T, A, vl_embed>::iterate): Likewise.
4606 (vec<T, A, vl_embed>::copy): Likewise.
4607 (vec<T, A, vl_embed>::quick_push): Likewise.
4608 (vec<T, A, vl_embed>::pop): Likewise.
4609 (vec<T, A, vl_embed>::quick_insert): Likewise.
4610 (vec<T, A, vl_embed>::ordered_remove): Likewise.
4611 (vec<T, A, vl_embed>::unordered_remove): Likewise.
4612 (vec<T, A, vl_embed>::block_remove): Likewise.
4613 (vec<T, A, vl_heap>::address): Likewise.
4615 2023-02-24 Martin Liska <mliska@suse.cz>
4618 * asan.cc (asan_add_global): Use proper TU name for normal
4619 global variables (and aux_base_name for the artificial one).
4621 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4623 * config/i386/i386-builtin.def: Update description of BDESC
4624 and BDESC_FIRST in file comment to include mask2.
4626 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4628 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
4630 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4632 PR middle-end/108854
4633 * cgraphclones.cc (duplicate_thunk_for_node): If no parameter
4634 changes are needed, copy at least DECL_ARGUMENTS PARM_DECL
4635 nodes and adjust their DECL_CONTEXT.
4637 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4640 * config/i386/i386-builtin.def (__builtin_ia32_cvtne2ps2bf16_v16bf,
4641 __builtin_ia32_cvtne2ps2bf16_v16bf_mask,
4642 __builtin_ia32_cvtne2ps2bf16_v16bf_maskz,
4643 __builtin_ia32_cvtne2ps2bf16_v8bf,
4644 __builtin_ia32_cvtne2ps2bf16_v8bf_mask,
4645 __builtin_ia32_cvtne2ps2bf16_v8bf_maskz,
4646 __builtin_ia32_cvtneps2bf16_v8sf_mask,
4647 __builtin_ia32_cvtneps2bf16_v8sf_maskz,
4648 __builtin_ia32_cvtneps2bf16_v4sf_mask,
4649 __builtin_ia32_cvtneps2bf16_v4sf_maskz,
4650 __builtin_ia32_dpbf16ps_v8sf, __builtin_ia32_dpbf16ps_v8sf_mask,
4651 __builtin_ia32_dpbf16ps_v8sf_maskz, __builtin_ia32_dpbf16ps_v4sf,
4652 __builtin_ia32_dpbf16ps_v4sf_mask,
4653 __builtin_ia32_dpbf16ps_v4sf_maskz): Require also
4654 OPTION_MASK_ISA_AVX512VL.
4656 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4658 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
4659 Add non-compact 32-bit multilibs.
4661 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
4663 * config/mips/mips.md (*clo<mode>2): New pattern.
4665 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
4667 * config/mips/mips.h (machine_function): New variable
4668 use_hazard_barrier_return_p.
4669 * config/mips/mips.md (UNSPEC_JRHB): New unspec.
4670 (mips_hb_return_internal): New insn pattern.
4671 * config/mips/mips.cc (mips_attribute_table): Add attribute
4672 use_hazard_barrier_return.
4673 (mips_use_hazard_barrier_return_p): New static function.
4674 (mips_function_attr_inlinable_p): Likewise.
4675 (mips_compute_frame_info): Set use_hazard_barrier_return_p.
4676 Emit error for unsupported architecture choice.
4677 (mips_function_ok_for_sibcall, mips_can_use_return_insn):
4678 Return false for use_hazard_barrier_return.
4679 (mips_expand_epilogue): Emit hazard barrier return.
4680 * doc/extend.texi: Document use_hazard_barrier_return.
4682 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4684 * config/xtensa/xtensa-dynconfig.cc (config.h, system.h)
4685 (coretypes.h, diagnostic.h, intl.h): Use "..." instead of <...>
4686 for the gcc-internal headers.
4688 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4690 * config/xtensa/t-xtensa (xtensa-dynconfig.o): Use $(COMPILE)
4691 and $(POSTCOMPILE) instead of manual dependency listing.
4692 * config/xtensa/xtensa-dynconfig.c: Rename to ...
4693 * config/xtensa/xtensa-dynconfig.cc: ... this.
4695 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
4697 * doc/cfg.texi: Reorder index entries around @items.
4698 * doc/cpp.texi: Ditto.
4699 * doc/cppenv.texi: Ditto.
4700 * doc/cppopts.texi: Ditto.
4701 * doc/generic.texi: Ditto.
4702 * doc/install.texi: Ditto.
4703 * doc/extend.texi: Ditto.
4704 * doc/invoke.texi: Ditto.
4705 * doc/md.texi: Ditto.
4706 * doc/rtl.texi: Ditto.
4707 * doc/tm.texi.in: Ditto.
4708 * doc/trouble.texi: Ditto.
4709 * doc/tm.texi: Regenerate.
4711 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4713 * config/xtensa/xtensa.md: New peephole2 pattern that eliminates
4714 the occurrence of general-purpose register used only once and for
4715 transferring intermediate value.
4717 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4719 * config/xtensa/xtensa.cc (machine_function): Add new member
4720 'eliminated_callee_saved_bmp'.
4721 (xtensa_can_eliminate_callee_saved_reg_p): New function to
4722 determine whether the register can be eliminated or not.
4723 (xtensa_expand_prologue): Add invoking the above function and
4724 elimination the use of callee-saved register by using its stack
4725 slot through the stack pointer (or the frame pointer if needed)
4727 (xtensa_expand_prologue): Modify to not emit register restoration
4728 insn from its stack slot if the register is already eliminated.
4730 2023-02-23 Jakub Jelinek <jakub@redhat.com>
4732 PR translation/108890
4733 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
4734 around fatal_error format strings.
4736 2023-02-23 Richard Biener <rguenther@suse.de>
4738 * tree-ssa-structalias.cc (handle_lhs_call): Do not
4739 re-create rhsc, only truncate it.
4741 2023-02-23 Jakub Jelinek <jakub@redhat.com>
4743 PR middle-end/106258
4744 * ipa-prop.cc (try_make_edge_direct_virtual_call): Handle
4745 BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
4747 2023-02-23 Richard Biener <rguenther@suse.de>
4749 * tree-if-conv.cc (tree_if_conversion): Properly manage
4750 memory of refs and the contained data references.
4752 2023-02-23 Richard Biener <rguenther@suse.de>
4754 PR tree-optimization/108888
4755 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
4757 (predicate_statements): Only predicate calls with PLF_2.
4759 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4761 * config/xtensa/xtensa.md
4762 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
4763 Add missing "SI:" to PLUS RTXes.
4765 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4768 * config/xtensa/xtensa.cc (xtensa_expand_epilogue):
4769 Emit (use (reg:SI A0_REG)) at the end in the sibling call
4770 (i.e. the same place as (return) in the normal call).
4772 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4775 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
4778 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
4780 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
4781 (sibcall_value, sibcall_value_internal): Add 'use' expression
4784 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
4786 * doc/cppdiropts.texi: Reorder @opindex commands to precede
4787 @items they relate to.
4788 * doc/cppopts.texi: Ditto.
4789 * doc/cppwarnopts.texi: Ditto.
4790 * doc/invoke.texi: Ditto.
4791 * doc/lto.texi: Ditto.
4793 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
4795 * internal-fn.cc (expand_MASK_CALL): New.
4796 * internal-fn.def (MASK_CALL): New.
4797 * internal-fn.h (expand_MASK_CALL): New prototype.
4798 * omp-simd-clone.cc (simd_clone_adjust_argument_types): Set vector_type
4799 for mask arguments also.
4800 * tree-if-conv.cc: Include cgraph.h.
4801 (if_convertible_stmt_p): Do if conversions for calls to SIMD calls.
4802 (predicate_statements): Convert functions to IFN_MASK_CALL.
4803 * tree-vect-loop.cc (vect_get_datarefs_in_loop): Recognise
4804 IFN_MASK_CALL as a SIMD function call.
4805 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Handle
4806 IFN_MASK_CALL as an inbranch SIMD function call.
4807 Generate the mask vector arguments.
4809 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4811 * config/riscv/riscv-vector-builtins-bases.cc (class reducop): New class.
4812 (class widen_reducop): Ditto.
4813 (class freducop): Ditto.
4814 (class widen_freducop): Ditto.
4816 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4817 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
4831 (vfwredosum): Ditto.
4832 (vfwredusum): Ditto.
4833 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
4835 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
4836 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WI_OPS): New macro.
4837 (DEF_RVV_WU_OPS): Ditto.
4838 (DEF_RVV_WF_OPS): Ditto.
4839 (vint8mf8_t): Ditto.
4840 (vint8mf4_t): Ditto.
4841 (vint8mf2_t): Ditto.
4846 (vint16mf4_t): Ditto.
4847 (vint16mf2_t): Ditto.
4848 (vint16m1_t): Ditto.
4849 (vint16m2_t): Ditto.
4850 (vint16m4_t): Ditto.
4851 (vint16m8_t): Ditto.
4852 (vint32mf2_t): Ditto.
4853 (vint32m1_t): Ditto.
4854 (vint32m2_t): Ditto.
4855 (vint32m4_t): Ditto.
4856 (vint32m8_t): Ditto.
4857 (vuint8mf8_t): Ditto.
4858 (vuint8mf4_t): Ditto.
4859 (vuint8mf2_t): Ditto.
4860 (vuint8m1_t): Ditto.
4861 (vuint8m2_t): Ditto.
4862 (vuint8m4_t): Ditto.
4863 (vuint8m8_t): Ditto.
4864 (vuint16mf4_t): Ditto.
4865 (vuint16mf2_t): Ditto.
4866 (vuint16m1_t): Ditto.
4867 (vuint16m2_t): Ditto.
4868 (vuint16m4_t): Ditto.
4869 (vuint16m8_t): Ditto.
4870 (vuint32mf2_t): Ditto.
4871 (vuint32m1_t): Ditto.
4872 (vuint32m2_t): Ditto.
4873 (vuint32m4_t): Ditto.
4874 (vuint32m8_t): Ditto.
4875 (vfloat32mf2_t): Ditto.
4876 (vfloat32m1_t): Ditto.
4877 (vfloat32m2_t): Ditto.
4878 (vfloat32m4_t): Ditto.
4879 (vfloat32m8_t): Ditto.
4880 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WI_OPS): Ditto.
4881 (DEF_RVV_WU_OPS): Ditto.
4882 (DEF_RVV_WF_OPS): Ditto.
4883 (required_extensions_p): Add reduction support.
4884 (rvv_arg_type_info::get_base_vector_type): Ditto.
4885 (rvv_arg_type_info::get_tree_type): Ditto.
4886 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
4887 * config/riscv/riscv.md: Ditto.
4888 * config/riscv/vector-iterators.md (minu): Ditto.
4889 * config/riscv/vector.md (@pred_reduc_<reduc><mode><vlmul1>): New patern.
4890 (@pred_reduc_<reduc><mode><vlmul1_zve32>): Ditto.
4891 (@pred_widen_reduc_plus<v_su><mode><vwlmul1>): Ditto.
4892 (@pred_widen_reduc_plus<v_su><mode><vwlmul1_zve32>):Ditto.
4893 (@pred_reduc_plus<order><mode><vlmul1>): Ditto.
4894 (@pred_reduc_plus<order><mode><vlmul1_zve32>): Ditto.
4895 (@pred_widen_reduc_plus<order><mode><vwlmul1>): Ditto.
4897 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4899 * config/riscv/iterators.md: New iterator.
4900 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New class.
4901 (enum ternop_type): New enum.
4902 (class vmacc): New class.
4903 (class imac): Ditto.
4904 (class vnmsac): Ditto.
4905 (enum widen_ternop_type): New enum.
4906 (class vmadd): Ditto.
4907 (class vnmsub): Ditto.
4908 (class iwmac): Ditto.
4909 (class vwmacc): Ditto.
4910 (class vwmaccu): Ditto.
4911 (class vwmaccsu): Ditto.
4912 (class vwmaccus): Ditto.
4913 (class reverse_binop): Ditto.
4914 (class vfmacc): Ditto.
4915 (class vfnmsac): Ditto.
4916 (class vfmadd): Ditto.
4917 (class vfnmsub): Ditto.
4918 (class vfnmacc): Ditto.
4919 (class vfmsac): Ditto.
4920 (class vfnmadd): Ditto.
4921 (class vfmsub): Ditto.
4922 (class vfwmacc): Ditto.
4923 (class vfwnmacc): Ditto.
4924 (class vfwmsac): Ditto.
4925 (class vfwnmsac): Ditto.
4926 (class float_misc): Ditto.
4927 (class fcmp): Ditto.
4928 (class vfclass): Ditto.
4929 (class vfcvt_x): Ditto.
4930 (class vfcvt_rtz_x): Ditto.
4931 (class vfcvt_f): Ditto.
4932 (class vfwcvt_x): Ditto.
4933 (class vfwcvt_rtz_x): Ditto.
4934 (class vfwcvt_f): Ditto.
4935 (class vfncvt_x): Ditto.
4936 (class vfncvt_rtz_x): Ditto.
4937 (class vfncvt_f): Ditto.
4938 (class vfncvt_rod_f): Ditto.
4940 * config/riscv/riscv-vector-builtins-bases.h:
4941 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
4985 (vfcvt_rtz_x): Ditto.
4986 (vfcvt_rtz_xu): Ditto.
4990 (vfwcvt_rtz_x): Ditto.
4991 (vfwcvt_rtz_xu): Ditto.
4995 (vfncvt_rtz_x): Ditto.
4996 (vfncvt_rtz_xu): Ditto.
4998 (vfncvt_rod_f): Ditto.
4999 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
5000 (struct move_def): Ditto.
5001 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTF_OPS): New macro.
5002 (DEF_RVV_CONVERT_I_OPS): Ditto.
5003 (DEF_RVV_CONVERT_U_OPS): Ditto.
5004 (DEF_RVV_WCONVERT_I_OPS): Ditto.
5005 (DEF_RVV_WCONVERT_U_OPS): Ditto.
5006 (DEF_RVV_WCONVERT_F_OPS): Ditto.
5007 (vfloat64m1_t): Ditto.
5008 (vfloat64m2_t): Ditto.
5009 (vfloat64m4_t): Ditto.
5010 (vfloat64m8_t): Ditto.
5011 (vint32mf2_t): Ditto.
5012 (vint32m1_t): Ditto.
5013 (vint32m2_t): Ditto.
5014 (vint32m4_t): Ditto.
5015 (vint32m8_t): Ditto.
5016 (vint64m1_t): Ditto.
5017 (vint64m2_t): Ditto.
5018 (vint64m4_t): Ditto.
5019 (vint64m8_t): Ditto.
5020 (vuint32mf2_t): Ditto.
5021 (vuint32m1_t): Ditto.
5022 (vuint32m2_t): Ditto.
5023 (vuint32m4_t): Ditto.
5024 (vuint32m8_t): Ditto.
5025 (vuint64m1_t): Ditto.
5026 (vuint64m2_t): Ditto.
5027 (vuint64m4_t): Ditto.
5028 (vuint64m8_t): Ditto.
5029 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_CONVERT_I_OPS): Ditto.
5030 (DEF_RVV_CONVERT_U_OPS): Ditto.
5031 (DEF_RVV_WCONVERT_I_OPS): Ditto.
5032 (DEF_RVV_WCONVERT_U_OPS): Ditto.
5033 (DEF_RVV_WCONVERT_F_OPS): Ditto.
5034 (DEF_RVV_F_OPS): Ditto.
5035 (DEF_RVV_WEXTF_OPS): Ditto.
5036 (required_extensions_p): Adjust for floating-point support.
5037 (check_required_extensions): Ditto.
5038 (unsigned_base_type_p): Ditto.
5039 (get_mode_for_bitsize): Ditto.
5040 (rvv_arg_type_info::get_base_vector_type): Ditto.
5041 (rvv_arg_type_info::get_tree_type): Ditto.
5042 * config/riscv/riscv-vector-builtins.def (v_f): New define.
5048 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): New enum.
5049 (function_expander::arg_mode): New function.
5050 * config/riscv/vector-iterators.md (sof): New iterator.
5056 (fixuns_trunc): Ditto.
5058 * config/riscv/vector.md (@pred_broadcast<mode>): New pattern.
5059 (@pred_<optab><mode>): Ditto.
5060 (@pred_<optab><mode>_scalar): Ditto.
5061 (@pred_<optab><mode>_reverse_scalar): Ditto.
5062 (@pred_<copysign><mode>): Ditto.
5063 (@pred_<copysign><mode>_scalar): Ditto.
5064 (@pred_mul_<optab><mode>): Ditto.
5065 (pred_mul_<optab><mode>_undef_merge): Ditto.
5066 (*pred_<madd_nmsub><mode>): Ditto.
5067 (*pred_<macc_nmsac><mode>): Ditto.
5068 (*pred_mul_<optab><mode>): Ditto.
5069 (@pred_mul_<optab><mode>_scalar): Ditto.
5070 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
5071 (*pred_<madd_nmsub><mode>_scalar): Ditto.
5072 (*pred_<macc_nmsac><mode>_scalar): Ditto.
5073 (*pred_mul_<optab><mode>_scalar): Ditto.
5074 (@pred_neg_mul_<optab><mode>): Ditto.
5075 (pred_neg_mul_<optab><mode>_undef_merge): Ditto.
5076 (*pred_<nmadd_msub><mode>): Ditto.
5077 (*pred_<nmacc_msac><mode>): Ditto.
5078 (*pred_neg_mul_<optab><mode>): Ditto.
5079 (@pred_neg_mul_<optab><mode>_scalar): Ditto.
5080 (*pred_neg_mul_<optab><mode>_undef_merge_scalar): Ditto.
5081 (*pred_<nmadd_msub><mode>_scalar): Ditto.
5082 (*pred_<nmacc_msac><mode>_scalar): Ditto.
5083 (*pred_neg_mul_<optab><mode>_scalar): Ditto.
5084 (@pred_<misc_op><mode>): Ditto.
5085 (@pred_class<mode>): Ditto.
5086 (@pred_dual_widen_<optab><mode>): Ditto.
5087 (@pred_dual_widen_<optab><mode>_scalar): Ditto.
5088 (@pred_single_widen_<plus_minus:optab><mode>): Ditto.
5089 (@pred_single_widen_<plus_minus:optab><mode>_scalar): Ditto.
5090 (@pred_widen_mul_<optab><mode>): Ditto.
5091 (@pred_widen_mul_<optab><mode>_scalar): Ditto.
5092 (@pred_widen_neg_mul_<optab><mode>): Ditto.
5093 (@pred_widen_neg_mul_<optab><mode>_scalar): Ditto.
5094 (@pred_cmp<mode>): Ditto.
5095 (*pred_cmp<mode>): Ditto.
5096 (*pred_cmp<mode>_narrow): Ditto.
5097 (@pred_cmp<mode>_scalar): Ditto.
5098 (*pred_cmp<mode>_scalar): Ditto.
5099 (*pred_cmp<mode>_scalar_narrow): Ditto.
5100 (@pred_eqne<mode>_scalar): Ditto.
5101 (*pred_eqne<mode>_scalar): Ditto.
5102 (*pred_eqne<mode>_scalar_narrow): Ditto.
5103 (@pred_merge<mode>_scalar): Ditto.
5104 (@pred_fcvt_x<v_su>_f<mode>): Ditto.
5105 (@pred_<fix_cvt><mode>): Ditto.
5106 (@pred_<float_cvt><mode>): Ditto.
5107 (@pred_widen_fcvt_x<v_su>_f<mode>): Ditto.
5108 (@pred_widen_<fix_cvt><mode>): Ditto.
5109 (@pred_widen_<float_cvt><mode>): Ditto.
5110 (@pred_extend<mode>): Ditto.
5111 (@pred_narrow_fcvt_x<v_su>_f<mode>): Ditto.
5112 (@pred_narrow_<fix_cvt><mode>): Ditto.
5113 (@pred_narrow_<float_cvt><mode>): Ditto.
5114 (@pred_trunc<mode>): Ditto.
5115 (@pred_rod_trunc<mode>): Ditto.
5117 2023-02-22 Jakub Jelinek <jakub@redhat.com>
5119 PR middle-end/106258
5120 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee,
5121 cgraph_update_edges_for_call_stmt_node, cgraph_node::verify_node):
5122 Handle BUILT_IN_UNREACHABLE_TRAP like BUILT_IN_UNREACHABLE.
5123 * cgraphclones.cc (cgraph_node::create_clone): Likewise.
5125 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
5127 * common.opt (-Wcomplain-wrong-lang): New.
5128 * doc/invoke.texi (-Wno-complain-wrong-lang): Document it.
5129 * opts-common.cc (prune_options): Handle it.
5130 * opts-global.cc (complain_wrong_lang): Use it.
5132 2023-02-21 David Malcolm <dmalcolm@redhat.com>
5135 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
5137 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
5140 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
5142 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
5143 (sibcall_value, sibcall_value_internal): Add 'use' expression
5146 2023-02-21 Richard Biener <rguenther@suse.de>
5148 PR tree-optimization/108691
5149 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): Remove
5150 assert about calls_setjmp not becoming true when it was false.
5152 2023-02-21 Richard Biener <rguenther@suse.de>
5154 PR tree-optimization/108793
5155 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
5156 Use convert operands to niter_type when computing num.
5158 2023-02-21 Richard Biener <rguenther@suse.de>
5161 2023-02-13 Richard Biener <rguenther@suse.de>
5163 PR tree-optimization/108691
5164 * tree-cfg.cc (notice_special_calls): When the CFG is built
5165 honor gimple_call_ctrl_altering_p.
5166 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
5167 temporarily if the call is not control-altering.
5168 * calls.cc (emit_call_1): Do not add REG_SETJMP if
5169 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
5171 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5173 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
5174 true if register A0 (return address register) when -Og is specified.
5176 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
5178 * config/i386/predicates.md
5179 (general_x64constmem_operand): New predicate.
5180 * config/i386/i386.md (*cmpqi_ext<mode>_1):
5181 Use nonimm_x64constmem_operand.
5182 (*cmpqi_ext<mode>_3): Use general_x64constmem_operand.
5183 (*addqi_ext<mode>_1): Ditto.
5184 (*testqi_ext<mode>_1): Ditto.
5185 (*andqi_ext<mode>_1): Ditto.
5186 (*andqi_ext<mode>_1_cc): Ditto.
5187 (*<any_or:code>qi_ext<mode>_1): Ditto.
5188 (*xorqi_ext<mode>_1_cc): Ditto.
5190 2023-02-20 Jakub Jelinek <jakub2redhat.com>
5193 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
5194 gen_umadddi4_highpart{,_le}.
5196 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
5198 * config/riscv/riscv.md (prefetch): Use r instead of p for the
5200 (riscv_prefetchi_<mode>): Ditto.
5202 2023-02-20 Richard Biener <rguenther@suse.de>
5204 PR tree-optimization/108816
5205 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
5206 versioning condition split prerequesite, assert required
5209 2023-02-20 Richard Biener <rguenther@suse.de>
5211 PR tree-optimization/108825
5212 * tree-ssa-loop-manip.cc (verify_loop_closed_ssa): For
5213 loop-local verfication only verify there's no pending SSA
5216 2023-02-20 Richard Biener <rguenther@suse.de>
5218 PR tree-optimization/108819
5219 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): Check
5220 we have an SSA name as iv_2 as expected.
5222 2023-02-18 Jakub Jelinek <jakub@redhat.com>
5224 PR tree-optimization/108819
5225 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
5227 2023-02-18 Jakub Jelinek <jakub@redhat.com>
5230 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
5231 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
5233 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
5234 with ix86_replace_reg_with_reg.
5236 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
5238 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
5240 2023-02-18 Xi Ruoyao <xry111@xry111.site>
5242 * config.gcc (triplet_abi): Set its value based on $with_abi,
5244 (la_canonical_triplet): Set it after $triplet_abi is set
5246 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
5247 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
5250 2023-02-18 Andrew Pinski <apinski@marvell.com>
5252 * match.pd: Remove #if GIMPLE around the
5255 2023-02-18 Andrew Pinski <apinski@marvell.com>
5257 * value-query.h (get_range_query): Return the global ranges
5260 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
5262 * doc/invoke.texi (@item -Wall): Fix typo in
5265 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
5268 * config/i386/predicates.md
5269 (nonimm_x64constmem_operand): New predicate.
5270 * config/i386/i386.md (*addqi_ext<mode>_0): New insn pattern.
5271 (*subqi_ext<mode>_0): Ditto.
5272 (*andqi_ext<mode>_0): Ditto.
5273 (*<any_or:code>qi_ext<mode>_0): Ditto.
5275 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
5278 * simplify-rtx.cc (simplify_context::simplify_subreg): Use
5279 int_outermode instead of GET_MODE (tem) to prevent
5280 VOIDmode from entering simplify_gen_subreg.
5282 2023-02-17 Richard Biener <rguenther@suse.de>
5284 PR tree-optimization/108821
5285 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
5286 move volatile accesses.
5288 2023-02-17 Richard Biener <rguenther@suse.de>
5290 * tree-ssa.cc (ssa_undefined_value_p): Assert we are not
5291 called on virtual operands.
5292 * tree-ssa-sccvn.cc (vn_phi_lookup): Guard
5293 ssa_undefined_value_p calls.
5294 (vn_phi_insert): Likewise.
5295 (set_ssa_val_to): Likewise.
5296 (visit_phi): Avoid extra work with equivalences for
5297 virtual operand PHIs.
5299 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5301 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
5303 (class mask_nlogic): Ditto.
5304 (class mask_notlogic): Ditto.
5305 (class vmmv): Ditto.
5306 (class vmclr): Ditto.
5307 (class vmset): Ditto.
5308 (class vmnot): Ditto.
5309 (class vcpop): Ditto.
5310 (class vfirst): Ditto.
5311 (class mask_misc): Ditto.
5312 (class viota): Ditto.
5315 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5316 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
5335 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
5336 (struct mask_alu_def): Ditto.
5338 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
5339 * config/riscv/riscv-vector-builtins.cc: Ditto.
5340 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::cleanup_insns): Fix bug
5341 for dest it scalar RVV intrinsics.
5342 * config/riscv/vector-iterators.md (sof): New iterator.
5343 * config/riscv/vector.md (@pred_<optab>n<mode>): New pattern.
5344 (@pred_<optab>not<mode>): New pattern.
5345 (@pred_popcount<VB:mode><P:mode>): New pattern.
5346 (@pred_ffs<VB:mode><P:mode>): New pattern.
5347 (@pred_<misc_op><mode>): New pattern.
5348 (@pred_iota<mode>): New pattern.
5349 (@pred_series<mode>): New pattern.
5351 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5353 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
5357 * config/riscv/riscv-vector-builtins.cc: Ditto.
5359 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5360 kito-cheng <kito.cheng@sifive.com>
5362 * config/riscv/riscv-protos.h (sew64_scalar_helper): New function.
5363 * config/riscv/riscv-v.cc (has_vi_variant_p): Adjust.
5364 (sew64_scalar_helper): New function.
5365 * config/riscv/vector.md: Normalization.
5367 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5369 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
5431 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5433 * config/riscv/vector.md (@pred_<optab><mode>): Rearrange.
5434 (@pred_<optab><mode>_scalar): Ditto.
5435 (*pred_<optab><mode>_scalar): Ditto.
5436 (*pred_<optab><mode>_extended_scalar): Ditto.
5438 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5440 * config/riscv/riscv-protos.h (riscv_run_selftests): Remove 'extern'.
5441 (init_builtins): Ditto.
5442 (mangle_builtin_type): Ditto.
5443 (verify_type_context): Ditto.
5444 (handle_pragma_vector): Ditto.
5445 (builtin_decl): Ditto.
5446 (expand_builtin): Ditto.
5447 (const_vec_all_same_in_range_p): Ditto.
5448 (legitimize_move): Ditto.
5449 (emit_vlmax_op): Ditto.
5450 (emit_nonvlmax_op): Ditto.
5455 (get_avl_type): Ditto.
5456 (calculate_ratio): Ditto.
5457 (enum vlmul_type): Ditto.
5459 (neg_simm5_p): Ditto.
5460 (has_vi_variant_p): Ditto.
5462 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5464 * config/riscv/riscv-protos.h (simm32_p): Remove.
5465 * config/riscv/riscv-v.cc (simm32_p): Ditto.
5466 * config/riscv/vector.md: Use immediate_operand
5467 instead of riscv_vector::simm32_p.
5469 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
5471 * doc/invoke.texi (Optimize Options): Reword the explanation
5472 getting minimal, maximal and default values of a parameter.
5474 2023-02-16 Patrick Palka <ppalka@redhat.com>
5476 * addresses.h: Mechanically drop 'static' from 'static inline'
5477 functions via s/^static inline/inline/g.
5479 * attribs.h: Likewise.
5480 * basic-block.h: Likewise.
5481 * bitmap.h: Likewise.
5482 * cfghooks.h: Likewise.
5483 * cfgloop.h: Likewise.
5484 * cgraph.h: Likewise.
5485 * cselib.h: Likewise.
5486 * data-streamer.h: Likewise.
5487 * debug.h: Likewise.
5489 * diagnostic.h: Likewise.
5490 * dominance.h: Likewise.
5491 * dumpfile.h: Likewise.
5492 * emit-rtl.h: Likewise.
5493 * except.h: Likewise.
5494 * expmed.h: Likewise.
5496 * fixed-value.h: Likewise.
5497 * gengtype.h: Likewise.
5498 * gimple-expr.h: Likewise.
5499 * gimple-iterator.h: Likewise.
5500 * gimple-predict.h: Likewise.
5501 * gimple-range-fold.h: Likewise.
5502 * gimple-ssa.h: Likewise.
5503 * gimple.h: Likewise.
5504 * graphite.h: Likewise.
5505 * hard-reg-set.h: Likewise.
5506 * hash-map.h: Likewise.
5507 * hash-set.h: Likewise.
5508 * hash-table.h: Likewise.
5509 * hwint.h: Likewise.
5510 * input.h: Likewise.
5511 * insn-addr.h: Likewise.
5512 * internal-fn.h: Likewise.
5513 * ipa-fnsummary.h: Likewise.
5514 * ipa-icf-gimple.h: Likewise.
5515 * ipa-inline.h: Likewise.
5516 * ipa-modref.h: Likewise.
5517 * ipa-prop.h: Likewise.
5518 * ira-int.h: Likewise.
5520 * lra-int.h: Likewise.
5522 * lto-streamer.h: Likewise.
5523 * memmodel.h: Likewise.
5524 * omp-general.h: Likewise.
5525 * optabs-query.h: Likewise.
5526 * optabs.h: Likewise.
5527 * plugin.h: Likewise.
5528 * pretty-print.h: Likewise.
5529 * range.h: Likewise.
5530 * read-md.h: Likewise.
5531 * recog.h: Likewise.
5533 * rtl-iter.h: Likewise.
5535 * sbitmap.h: Likewise.
5536 * sched-int.h: Likewise.
5537 * sel-sched-ir.h: Likewise.
5539 * sparseset.h: Likewise.
5540 * ssa-iterators.h: Likewise.
5541 * system.h: Likewise.
5542 * target-globals.h: Likewise.
5543 * target.h: Likewise.
5544 * timevar.h: Likewise.
5545 * tree-chrec.h: Likewise.
5546 * tree-data-ref.h: Likewise.
5547 * tree-iterator.h: Likewise.
5548 * tree-outof-ssa.h: Likewise.
5549 * tree-phinodes.h: Likewise.
5550 * tree-scalar-evolution.h: Likewise.
5551 * tree-sra.h: Likewise.
5552 * tree-ssa-alias.h: Likewise.
5553 * tree-ssa-live.h: Likewise.
5554 * tree-ssa-loop-manip.h: Likewise.
5555 * tree-ssa-loop.h: Likewise.
5556 * tree-ssa-operands.h: Likewise.
5557 * tree-ssa-propagate.h: Likewise.
5558 * tree-ssa-sccvn.h: Likewise.
5559 * tree-ssa.h: Likewise.
5560 * tree-ssanames.h: Likewise.
5561 * tree-streamer.h: Likewise.
5562 * tree-switch-conversion.h: Likewise.
5563 * tree-vectorizer.h: Likewise.
5565 * wide-int.h: Likewise.
5567 2023-02-16 Jakub Jelinek <jakub@redhat.com>
5569 PR tree-optimization/108657
5570 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): If lhs of stmt
5571 exists and is not a SSA_NAME, call ao_ref_init even if the stmt
5572 is a call to internal or builtin function.
5574 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
5576 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
5577 using-declaration to unhide functions.
5579 2023-02-16 Jakub Jelinek <jakub@redhat.com>
5581 PR tree-optimization/108783
5582 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): If lcode
5583 is equal to TREE_CODE (t), op1 to newop1 and op2 to newop2, set
5584 t to curr->op. Otherwise, punt if either newop1 or newop2 are
5585 SSA_NAME_OCCURS_IN_ABNORMAL_PHI SSA_NAMEs.
5587 2023-02-16 Richard Biener <rguenther@suse.de>
5589 PR tree-optimization/108791
5590 * tree-ssa-forwprop.cc (optimize_vector_load): Build
5591 the ADDR_EXPR of a TARGET_MEM_REF using a more meaningful
5594 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
5597 * config/i386/i386.cc (ix86_compute_frame_layout): Disable the
5598 effects of -fstack-clash-protection for TARGET_STACK_PROBE.
5599 (ix86_expand_prologue): Likewise.
5601 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5603 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
5605 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
5607 * config/i386/i386.md (*cmpqi_ext<mode>_1): Use
5608 int248_register_operand predicate in zero_extract sub-RTX.
5609 (*cmpqi_ext<mode>_2): Ditto.
5610 (*cmpqi_ext<mode>_3): Ditto.
5611 (*cmpqi_ext<mode>_4): Ditto.
5612 (*extzvqi_mem_rex64): Ditto.
5614 (*insvqi_1_mem_rex64): Ditto.
5615 (@insv<mode>_1): Ditto.
5619 (*extendqi<SWI24:mode>_ext_1): Ditto.
5620 (*addqi_ext<mode>_1): Ditto.
5621 (*addqi_ext<mode>_2): Ditto.
5622 (*subqi_ext<mode>_2): Ditto.
5623 (*testqi_ext<mode>_1): Ditto.
5624 (*testqi_ext<mode>_2): Ditto.
5625 (*andqi_ext<mode>_1): Ditto.
5626 (*andqi_ext<mode>_1_cc): Ditto.
5627 (*andqi_ext<mode>_2): Ditto.
5628 (*<any_or:code>qi_ext<mode>_1): Ditto.
5629 (*<any_or:code>qi_ext<mode>_2): Ditto.
5630 (*xorqi_ext<mode>_1_cc): Ditto.
5631 (*negqi_ext<mode>_2): Ditto.
5632 (*ashlqi_ext<mode>_2): Ditto.
5633 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
5635 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
5637 * config/i386/predicates.md (int248_register_operand):
5638 Rename from extr_register_operand.
5639 * config/i386/i386.md (*extv<mode>): Update for renamed predicate.
5640 (*extzx<mode>): Ditto.
5641 (*ashl<dwi>3_doubleword_mask): Use int248_register_operand predicate.
5642 (*ashl<mode>3_mask): Ditto.
5643 (*<any_shiftrt:insn><mode>3_mask): Ditto.
5644 (*<any_shiftrt:insn><dwi>3_doubleword_mask): Ditto.
5645 (*<any_rotate:insn><mode>3_mask): Ditto.
5646 (*<btsc><mode>_mask): Ditto.
5647 (*btr<mode>_mask): Ditto.
5648 (*jcc_bt<mode>_mask_1): Ditto.
5650 2023-02-15 Richard Biener <rguenther@suse.de>
5653 * df-core.cc (df_worklist_propagate_forward): Put later
5654 blocks on worklist and only earlier blocks on pending.
5655 (df_worklist_propagate_backward): Likewise.
5656 (df_worklist_dataflow_doublequeue): Change the iteration
5657 to process new blocks in the same iteration if that
5658 maintains the iteration order.
5660 2023-02-15 Marek Polacek <polacek@redhat.com>
5662 PR middle-end/106080
5663 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
5666 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5668 * config/riscv/predicates.md: Refine codes.
5669 * config/riscv/riscv-protos.h (RVV_VUNDEF): New macro.
5670 * config/riscv/riscv-v.cc: Refine codes.
5671 * config/riscv/riscv-vector-builtins-bases.cc (enum ternop_type): New
5673 (class imac): New class.
5674 (enum widen_ternop_type): New enum.
5675 (class iwmac): New class.
5677 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5678 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
5686 * config/riscv/riscv-vector-builtins.cc
5687 (function_builder::apply_predication): Adjust for multiply-add support.
5688 (function_expander::add_vundef_operand): Refine codes.
5689 (function_expander::use_ternop_insn): New function.
5690 (function_expander::use_widen_ternop_insn): Ditto.
5691 * config/riscv/riscv-vector-builtins.h: New function.
5692 * config/riscv/vector.md (@pred_mul_<optab><mode>): New pattern.
5693 (pred_mul_<optab><mode>_undef_merge): Ditto.
5694 (*pred_<madd_nmsub><mode>): Ditto.
5695 (*pred_<macc_nmsac><mode>): Ditto.
5696 (*pred_mul_<optab><mode>): Ditto.
5697 (@pred_mul_<optab><mode>_scalar): Ditto.
5698 (*pred_mul_<optab><mode>_undef_merge_scalar): Ditto.
5699 (*pred_<madd_nmsub><mode>_scalar): Ditto.
5700 (*pred_<macc_nmsac><mode>_scalar): Ditto.
5701 (*pred_mul_<optab><mode>_scalar): Ditto.
5702 (*pred_mul_<optab><mode>_undef_merge_extended_scalar): Ditto.
5703 (*pred_<madd_nmsub><mode>_extended_scalar): Ditto.
5704 (*pred_<macc_nmsac><mode>_extended_scalar): Ditto.
5705 (*pred_mul_<optab><mode>_extended_scalar): Ditto.
5706 (@pred_widen_mul_plus<su><mode>): Ditto.
5707 (@pred_widen_mul_plus<su><mode>_scalar): Ditto.
5708 (@pred_widen_mul_plussu<mode>): Ditto.
5709 (@pred_widen_mul_plussu<mode>_scalar): Ditto.
5710 (@pred_widen_mul_plusus<mode>_scalar): Ditto.
5712 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5714 * config/riscv/predicates.md (vector_mask_operand): Refine the codes.
5715 (vector_all_trues_mask_operand): New predicate.
5716 (vector_undef_operand): New predicate.
5717 (ltge_operator): New predicate.
5718 (comparison_except_ltge_operator): New predicate.
5719 (comparison_except_eqge_operator): New predicate.
5720 (ge_operator): New predicate.
5721 * config/riscv/riscv-v.cc (has_vi_variant_p): Add compare support.
5722 * config/riscv/riscv-vector-builtins-bases.cc (class icmp): New class.
5724 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5725 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
5735 * config/riscv/riscv-vector-builtins-shapes.cc
5736 (struct return_mask_def): Adjust for compare support.
5737 * config/riscv/riscv-vector-builtins.cc
5738 (function_expander::use_compare_insn): New function.
5739 * config/riscv/riscv-vector-builtins.h
5740 (function_expander::add_integer_operand): Ditto.
5741 * config/riscv/riscv.cc (riscv_print_operand): Add compare support.
5742 * config/riscv/riscv.md: Add vector min/max attributes.
5743 * config/riscv/vector-iterators.md (xnor): New iterator.
5744 * config/riscv/vector.md (@pred_cmp<mode>): New pattern.
5745 (*pred_cmp<mode>): Ditto.
5746 (*pred_cmp<mode>_narrow): Ditto.
5747 (@pred_ltge<mode>): Ditto.
5748 (*pred_ltge<mode>): Ditto.
5749 (*pred_ltge<mode>_narrow): Ditto.
5750 (@pred_cmp<mode>_scalar): Ditto.
5751 (*pred_cmp<mode>_scalar): Ditto.
5752 (*pred_cmp<mode>_scalar_narrow): Ditto.
5753 (@pred_eqne<mode>_scalar): Ditto.
5754 (*pred_eqne<mode>_scalar): Ditto.
5755 (*pred_eqne<mode>_scalar_narrow): Ditto.
5756 (*pred_cmp<mode>_extended_scalar): Ditto.
5757 (*pred_cmp<mode>_extended_scalar_narrow): Ditto.
5758 (*pred_eqne<mode>_extended_scalar): Ditto.
5759 (*pred_eqne<mode>_extended_scalar_narrow): Ditto.
5760 (@pred_ge<mode>_scalar): Ditto.
5761 (@pred_<optab><mode>): Ditto.
5762 (@pred_n<optab><mode>): Ditto.
5763 (@pred_<optab>n<mode>): Ditto.
5764 (@pred_not<mode>): Ditto.
5766 2023-02-15 Martin Jambor <mjambor@suse.cz>
5769 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
5770 creation of non-scalar replacements even if IPA-CP knows their
5773 2023-02-15 Jakub Jelinek <jakub@redhat.com>
5777 * config/rs6000/rs6000.md (<u>maddditi4): Change into umaddditi4 only
5778 expander, change operand 3 to be TImode, emit maddlddi4 and
5779 umadddi4_highpart{,_le} with its low half and finally add the high
5782 2023-02-15 Martin Liska <mliska@suse.cz>
5784 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
5786 2023-02-15 Richard Biener <rguenther@suse.de>
5788 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
5789 for with_poison and alias worklist to it.
5790 (sanitize_asan_mark_poison): Likewise.
5792 2023-02-15 Richard Biener <rguenther@suse.de>
5795 * config/i386/i386-features.cc (scalar_chain::add_to_queue):
5796 Combine bitmap test and set.
5797 (scalar_chain::add_insn): Likewise.
5798 (scalar_chain::analyze_register_chain): Remove redundant
5799 attempt to add to queue and instead strengthen assert.
5800 Sink common attempts to mark the def dual-mode.
5801 (scalar_chain::add_to_queue): Remove redundant insn bitmap
5804 2023-02-15 Richard Biener <rguenther@suse.de>
5807 * config/i386/i386-features.cc (convert_scalars_to_vector):
5808 Switch candidates bitmaps to tree view before building the chains.
5810 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
5812 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
5813 "failure trying to reload" call.
5815 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
5817 * gdbinit.in (phrs): New command.
5818 * sel-sched-dump.cc (debug_hard_reg_set): Remove debug-function.
5819 * ira-color.cc (debug_hard_reg_set): New, calling print_hard_reg_set.
5821 2023-02-14 David Faust <david.faust@oracle.com>
5824 * config/bpf/constraints.md (q): New memory constraint.
5825 * config/bpf/bpf.md (zero_extendhidi2): Use it here.
5826 (zero_extendqidi2): Likewise.
5827 (zero_extendsidi2): Likewise.
5828 (*mov<MM:mode>): Likewise.
5830 2023-02-14 Andrew Pinski <apinski@marvell.com>
5832 PR tree-optimization/108355
5833 PR tree-optimization/96921
5834 * match.pd: Add pattern for "1 - bool_val".
5836 2023-02-14 Richard Biener <rguenther@suse.de>
5838 * tree-ssa-sccvn.cc (vn_phi_compute_hash): Key skipping
5839 basic block index hashing on the availability of ->cclhs.
5840 (vn_phi_eq): Avoid re-doing sanity checks for CSE but
5841 rely on ->cclhs availability.
5842 (vn_phi_lookup): Set ->cclhs only when we are eventually
5843 going to CSE the PHI.
5844 (vn_phi_insert): Likewise.
5846 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
5848 * gimplify.cc (gimplify_save_expr): Add missing guard.
5850 2023-02-14 Richard Biener <rguenther@suse.de>
5852 PR tree-optimization/108782
5853 * tree-vect-loop.cc (vect_phi_first_order_recurrence_p):
5854 Make sure we're not vectorizing an inner loop.
5856 2023-02-14 Jakub Jelinek <jakub@redhat.com>
5859 * params.opt (-param=asan-kernel-mem-intrinsic-prefix=): New param.
5860 * asan.h (asan_memfn_rtl): Declare.
5861 * asan.cc (asan_memfn_rtls): New variable.
5862 (asan_memfn_rtl): New function.
5863 * builtins.cc (expand_builtin): If
5864 param_asan_kernel_mem_intrinsic_prefix and function is
5865 kernel-{,hw}address sanitized, emit calls to
5866 __{,hw}asan_{memcpy,memmove,memset} rather than
5867 {memcpy,memmove,memset}. Use sanitize_flags_p (SANITIZE_ADDRESS)
5868 instead of flag_sanitize & SANITIZE_ADDRESS to check if
5869 asan_intercepted_p functions shouldn't be expanded inline.
5871 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
5873 PR tree-optimization/96373
5874 * tree-vect-stmts.cc (vectorizable_operation): Predicate trapping
5875 operations on the loop mask. Reject partial vectors if this isn't
5878 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
5880 PR rtl-optimization/108681
5881 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
5882 code to handle bare uses and clobbers.
5884 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
5886 * ira.cc (ira_update_equiv_info_by_shuffle_insn): Clear equiv
5887 caller_save_p flag when clearing defined_p flag.
5888 (setup_reg_equiv): Ditto.
5889 * lra-constraints.cc (lra_constraints): Ditto.
5891 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
5894 * config/i386/predicates.md (extr_register_operand):
5895 New special predicate.
5896 * config/i386/i386.md (*extv<mode>): Use extr_register_operand
5897 as operand 1 predicate.
5898 (*exzv<mode>): Ditto.
5899 (*extendqi<SWI24:mode>_ext_1): New insn pattern.
5901 2023-02-13 Richard Biener <rguenther@suse.de>
5903 PR tree-optimization/28614
5904 * tree-ssa-sccvn.cc (can_track_predicate_on_edge): Avoid
5905 walking all edges in most cases.
5906 (vn_nary_op_insert_pieces_predicated): Avoid repeated
5907 calls to can_track_predicate_on_edge unless checking is
5909 (process_bb): Instead call it once here for each edge
5910 we register possibly multiple predicates on.
5912 2023-02-13 Richard Biener <rguenther@suse.de>
5914 PR tree-optimization/108691
5915 * tree-cfg.cc (notice_special_calls): When the CFG is built
5916 honor gimple_call_ctrl_altering_p.
5917 * cfgexpand.cc (expand_call_stmt): Clear cfun->calls_setjmp
5918 temporarily if the call is not control-altering.
5919 * calls.cc (emit_call_1): Do not add REG_SETJMP if
5920 cfun->calls_setjmp is not set. Do not alter cfun->calls_setjmp.
5922 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
5925 * config/s390/s390.cc (s390_bb_fallthru_entry_likely): Remove.
5926 (struct s390_sched_state): Initialise to zero.
5927 (s390_sched_variable_issue): For better debuggability also emit
5929 (s390_sched_init): Unconditionally reset scheduler state.
5931 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
5933 * ifcvt.h (noce_if_info::cond_inverted): New field.
5934 * ifcvt.cc (cond_move_convert_if_block): Swap the then and else
5935 values when cond_inverted is true.
5936 (noce_find_if_block): Allow the condition to be inverted when
5937 handling conditional moves.
5939 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
5941 * config/s390/predicates.md (execute_operation): Use
5942 constrain_operands instead of extract_constrain_insn in order to
5943 determine wheter there exists a valid alternative.
5945 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
5947 * common/config/arc/arc-common.cc (arc_option_optimization_table):
5948 Remove millicode from list.
5950 2023-02-13 Martin Liska <mliska@suse.cz>
5952 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
5954 2023-02-13 Richard Biener <rguenther@suse.de>
5956 PR tree-optimization/106722
5957 * tree-ssa-dce.cc (mark_last_stmt_necessary): Return
5958 whether we marked a stmt.
5959 (mark_control_dependent_edges_necessary): When
5960 mark_last_stmt_necessary didn't mark any stmt make sure
5961 to mark its control dependent edges.
5962 (propagate_necessity): Likewise.
5964 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
5966 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
5967 (DWARF_FRAME_REGISTERS): New.
5968 (DWARF_REG_TO_UNWIND_COLUMN): New.
5970 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
5972 * doc/sourcebuild.texi: Remove (broken) direct reference to
5973 "The GNU configure and build system".
5975 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
5977 * config/riscv/riscv.cc (riscv_adjust_libcall_cfi_prologue): Change
5978 gen_add3_insn to gen_rtx_SET.
5979 (riscv_adjust_libcall_cfi_epilogue): Likewise.
5981 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5983 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
5984 (class vnclip): Ditto.
5986 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5987 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
5996 * config/riscv/vector-iterators.md (su): Add instruction.
5999 * config/riscv/vector.md (@pred_<sat_op><mode>): New pattern.
6000 (@pred_<sat_op><mode>_scalar): Ditto.
6001 (*pred_<sat_op><mode>_scalar): Ditto.
6002 (*pred_<sat_op><mode>_extended_scalar): Ditto.
6003 (@pred_narrow_clip<v_su><mode>): Ditto.
6004 (@pred_narrow_clip<v_su><mode>_scalar): Ditto.
6006 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6008 * config/riscv/constraints.md (Wbr): Remove unused constraint.
6009 * config/riscv/predicates.md: Fix move operand predicate.
6010 * config/riscv/riscv-vector-builtins-bases.cc (class vnshift): New class.
6011 (class vncvt_x): Ditto.
6012 (class vmerge): Ditto.
6013 (class vmv_v): Ditto.
6015 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6016 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
6023 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
6024 (struct move_def): Ditto.
6026 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6027 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): New variable.
6028 (DEF_RVV_WEXTU_OPS): Ditto
6029 * config/riscv/riscv-vector-builtins.def (x_x_w): Fix type for suffix.
6034 * config/riscv/riscv.cc (riscv_print_operand): Refine ASM printting rule.
6035 * config/riscv/vector-iterators.md (nmsac):New iterator.
6036 (nmsub): New iterator.
6037 * config/riscv/vector.md (@pred_merge<mode>): New pattern.
6038 (@pred_merge<mode>_scalar): New pattern.
6039 (*pred_merge<mode>_scalar): New pattern.
6040 (*pred_merge<mode>_extended_scalar): New pattern.
6041 (@pred_narrow_<optab><mode>): New pattern.
6042 (@pred_narrow_<optab><mode>_scalar): New pattern.
6043 (@pred_trunc<mode>): New pattern.
6045 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6047 * config/riscv/riscv-vector-builtins-bases.cc (class vmadc): New class.
6048 (class vmsbc): Ditto.
6049 (BASE): Define new class.
6050 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6051 * config/riscv/riscv-vector-builtins-functions.def (vmadc): New define.
6053 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
6056 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6057 * config/riscv/riscv-vector-builtins.cc
6058 (function_expander::use_exact_insn): Adjust for new support
6059 * config/riscv/riscv-vector-builtins.h
6060 (function_base::has_merge_operand_p): New function.
6061 * config/riscv/vector-iterators.md: New iterator.
6062 * config/riscv/vector.md (@pred_madc<mode>): New pattern.
6063 (@pred_msbc<mode>): Ditto.
6064 (@pred_madc<mode>_scalar): Ditto.
6065 (@pred_msbc<mode>_scalar): Ditto.
6066 (*pred_madc<mode>_scalar): Ditto.
6067 (*pred_madc<mode>_extended_scalar): Ditto.
6068 (*pred_msbc<mode>_scalar): Ditto.
6069 (*pred_msbc<mode>_extended_scalar): Ditto.
6070 (@pred_madc<mode>_overflow): Ditto.
6071 (@pred_msbc<mode>_overflow): Ditto.
6072 (@pred_madc<mode>_overflow_scalar): Ditto.
6073 (@pred_msbc<mode>_overflow_scalar): Ditto.
6074 (*pred_madc<mode>_overflow_scalar): Ditto.
6075 (*pred_madc<mode>_overflow_extended_scalar): Ditto.
6076 (*pred_msbc<mode>_overflow_scalar): Ditto.
6077 (*pred_msbc<mode>_overflow_extended_scalar): Ditto.
6079 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6081 * config/riscv/riscv-protos.h (simm5_p): Add vadc/vsbc support.
6082 * config/riscv/riscv-v.cc (simm32_p): Ditto.
6083 * config/riscv/riscv-vector-builtins-bases.cc (class vadc): New class.
6084 (class vsbc): Ditto.
6086 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6087 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
6089 * config/riscv/riscv-vector-builtins-shapes.cc
6090 (struct no_mask_policy_def): Ditto.
6092 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6093 * config/riscv/riscv-vector-builtins.cc
6094 (rvv_arg_type_info::get_base_vector_type): Add vadc/vsbc support.
6095 (rvv_arg_type_info::get_tree_type): Ditto.
6096 (function_expander::use_exact_insn): Ditto.
6097 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
6098 (function_base::use_mask_predication_p): New function.
6099 * config/riscv/vector-iterators.md: New iterator.
6100 * config/riscv/vector.md (@pred_adc<mode>): New pattern.
6101 (@pred_sbc<mode>): Ditto.
6102 (@pred_adc<mode>_scalar): Ditto.
6103 (@pred_sbc<mode>_scalar): Ditto.
6104 (*pred_adc<mode>_scalar): Ditto.
6105 (*pred_adc<mode>_extended_scalar): Ditto.
6106 (*pred_sbc<mode>_scalar): Ditto.
6107 (*pred_sbc<mode>_extended_scalar): Ditto.
6109 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6111 * config/riscv/vector.md: use "zero" reg.
6113 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6115 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
6117 (class vwmulsu): Ditto.
6118 (class vwcvt): Ditto.
6119 (BASE): Add integer widening support.
6120 * config/riscv/riscv-vector-builtins-bases.h: Ditto
6121 * config/riscv/riscv-vector-builtins-functions.def (vwadd): New class.
6124 (vwmulu): New class.
6125 (vwmulsu): New class.
6126 (vwaddu): New class.
6127 (vwsubu): New class.
6128 (vwcvt_x): New class.
6129 (vwcvtu_x): New class.
6130 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): New
6132 (struct widen_alu_def): New class.
6134 * config/riscv/riscv-vector-builtins-shapes.h: New class.
6135 * config/riscv/riscv-vector-builtins.cc
6136 (rvv_arg_type_info::get_base_vector_type): Add integer widening support.
6137 (rvv_arg_type_info::get_tree_type): Ditto.
6138 * config/riscv/riscv-vector-builtins.def (x_x_v): Change into "x_v"
6140 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
6142 * config/riscv/riscv-vsetvl.cc (change_insn): Fix reg_equal use bug.
6143 * config/riscv/riscv.h (X0_REGNUM): New constant.
6144 * config/riscv/vector-iterators.md: New iterators.
6145 * config/riscv/vector.md
6146 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>): New
6148 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
6150 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
6151 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
6153 (@pred_widen_mulsu<mode>): Ditto.
6154 (@pred_widen_mulsu<mode>_scalar): Ditto.
6155 (@pred_<optab><mode>): Ditto.
6157 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6158 kito-cheng <kito.cheng@sifive.com>
6160 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
6161 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
6163 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6164 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
6168 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
6170 (DEF_RVV_FULL_V_U_OPS): Ditto.
6171 (vint8mf8_t): Ditto.
6172 (vint8mf4_t): Ditto.
6173 (vint8mf2_t): Ditto.
6178 (vint16mf4_t): Ditto.
6179 (vint16mf2_t): Ditto.
6180 (vint16m1_t): Ditto.
6181 (vint16m2_t): Ditto.
6182 (vint16m4_t): Ditto.
6183 (vint16m8_t): Ditto.
6184 (vint32mf2_t): Ditto.
6185 (vint32m1_t): Ditto.
6186 (vint32m2_t): Ditto.
6187 (vint32m4_t): Ditto.
6188 (vint32m8_t): Ditto.
6189 (vint64m1_t): Ditto.
6190 (vint64m2_t): Ditto.
6191 (vint64m4_t): Ditto.
6192 (vint64m8_t): Ditto.
6193 (vuint8mf8_t): Ditto.
6194 (vuint8mf4_t): Ditto.
6195 (vuint8mf2_t): Ditto.
6196 (vuint8m1_t): Ditto.
6197 (vuint8m2_t): Ditto.
6198 (vuint8m4_t): Ditto.
6199 (vuint8m8_t): Ditto.
6200 (vuint16mf4_t): Ditto.
6201 (vuint16mf2_t): Ditto.
6202 (vuint16m1_t): Ditto.
6203 (vuint16m2_t): Ditto.
6204 (vuint16m4_t): Ditto.
6205 (vuint16m8_t): Ditto.
6206 (vuint32mf2_t): Ditto.
6207 (vuint32m1_t): Ditto.
6208 (vuint32m2_t): Ditto.
6209 (vuint32m4_t): Ditto.
6210 (vuint32m8_t): Ditto.
6211 (vuint64m1_t): Ditto.
6212 (vuint64m2_t): Ditto.
6213 (vuint64m4_t): Ditto.
6214 (vuint64m8_t): Ditto.
6215 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_FULL_V_I_OPS): Ditto.
6216 (DEF_RVV_FULL_V_U_OPS): Ditto.
6217 (check_required_extensions): Add vmulh support.
6218 (rvv_arg_type_info::get_tree_type): Ditto.
6219 * config/riscv/riscv-vector-builtins.h (RVV_REQUIRE_FULL_V): Ditto.
6220 (enum rvv_base_type): Ditto.
6221 * config/riscv/riscv.opt: Add 'V' extension flag.
6222 * config/riscv/vector-iterators.md (su): New iterator.
6223 * config/riscv/vector.md (@pred_mulh<v_su><mode>): New pattern.
6224 (@pred_mulh<v_su><mode>_scalar): Ditto.
6225 (*pred_mulh<v_su><mode>_scalar): Ditto.
6226 (*pred_mulh<v_su><mode>_extended_scalar): Ditto.
6228 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6230 * config/riscv/iterators.md: Add sign_extend/zero_extend.
6231 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
6233 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
6234 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
6237 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Adjust
6238 for vsext/vzext support.
6239 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_WEXTI_OPS): New
6241 (DEF_RVV_QEXTI_OPS): Ditto.
6242 (DEF_RVV_OEXTI_OPS): Ditto.
6243 (DEF_RVV_WEXTU_OPS): Ditto.
6244 (DEF_RVV_QEXTU_OPS): Ditto.
6245 (DEF_RVV_OEXTU_OPS): Ditto.
6246 (vint16mf4_t): Ditto.
6247 (vint16mf2_t): Ditto.
6248 (vint16m1_t): Ditto.
6249 (vint16m2_t): Ditto.
6250 (vint16m4_t): Ditto.
6251 (vint16m8_t): Ditto.
6252 (vint32mf2_t): Ditto.
6253 (vint32m1_t): Ditto.
6254 (vint32m2_t): Ditto.
6255 (vint32m4_t): Ditto.
6256 (vint32m8_t): Ditto.
6257 (vint64m1_t): Ditto.
6258 (vint64m2_t): Ditto.
6259 (vint64m4_t): Ditto.
6260 (vint64m8_t): Ditto.
6261 (vuint16mf4_t): Ditto.
6262 (vuint16mf2_t): Ditto.
6263 (vuint16m1_t): Ditto.
6264 (vuint16m2_t): Ditto.
6265 (vuint16m4_t): Ditto.
6266 (vuint16m8_t): Ditto.
6267 (vuint32mf2_t): Ditto.
6268 (vuint32m1_t): Ditto.
6269 (vuint32m2_t): Ditto.
6270 (vuint32m4_t): Ditto.
6271 (vuint32m8_t): Ditto.
6272 (vuint64m1_t): Ditto.
6273 (vuint64m2_t): Ditto.
6274 (vuint64m4_t): Ditto.
6275 (vuint64m8_t): Ditto.
6276 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_WEXTI_OPS): Ditto.
6277 (DEF_RVV_QEXTI_OPS): Ditto.
6278 (DEF_RVV_OEXTI_OPS): Ditto.
6279 (DEF_RVV_WEXTU_OPS): Ditto.
6280 (DEF_RVV_QEXTU_OPS): Ditto.
6281 (DEF_RVV_OEXTU_OPS): Ditto.
6282 (rvv_arg_type_info::get_base_vector_type): Add sign_exted/zero_extend
6284 (rvv_arg_type_info::get_tree_type): Ditto.
6285 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Ditto.
6286 * config/riscv/vector-iterators.md (z): New attribute.
6287 * config/riscv/vector.md (@pred_<optab><mode>_vf2): New pattern.
6288 (@pred_<optab><mode>_vf4): Ditto.
6289 (@pred_<optab><mode>_vf8): Ditto.
6291 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6293 * config/riscv/iterators.md: Add saturating Addition && Subtraction.
6294 * config/riscv/riscv-v.cc (has_vi_variant_p): Ditto.
6295 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Ditto.
6296 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6297 * config/riscv/riscv-vector-builtins-functions.def (vsadd): New def.
6301 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
6306 * config/riscv/vector.md (@pred_<optab><mode>): New pattern.
6307 (@pred_<optab><mode>_scalar): New pattern.
6308 (*pred_<optab><mode>_scalar): New pattern.
6309 (*pred_<optab><mode>_extended_scalar): New pattern.
6311 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6313 * config/riscv/iterators.md: Add neg and not.
6314 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
6316 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6317 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
6338 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
6339 (struct alu_def): Ditto.
6341 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
6342 * config/riscv/riscv-vector-builtins.cc: Support unary C/C/++.
6343 * config/riscv/vector-iterators.md: New iterator.
6344 * config/riscv/vector.md (@pred_<optab><mode>): New pattern
6346 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6348 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
6350 2023-02-11 Jakub Jelinek <jakub@redhat.com>
6353 * ipa-cp.cc (ipa_agg_value_from_jfunc): Return NULL_TREE also if
6354 item->offset bit position is too large to be representable as
6355 unsigned int byte position.
6357 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
6359 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
6361 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
6363 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
6364 valid_combine only when ira_use_lra_p is true.
6366 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
6368 * params.opt (ira-simple-lra-insn-threshold): Add new param.
6369 * ira.cc (ira): Use the param to switch on simple LRA.
6371 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
6373 PR tree-optimization/108687
6374 * gimple-range-cache.cc (ranger_cache::range_on_edge): Revert
6375 back to RFD_NONE mode for calculations.
6376 (ranger_cache::propagate_cache): Call the internal edge range API
6377 with RFD_READ_ONLY instead of changing the external routine.
6379 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
6381 PR tree-optimization/108520
6382 * gimple-range-infer.cc (check_assume_func): Invoke
6383 gimple_range_global directly instead using global_range_query.
6384 * value-query.cc (get_range_global): Add function context and
6385 avoid calling nonnull_arg_p if not cfun.
6386 (gimple_range_global): Add function context pointer.
6387 * value-query.h (imple_range_global): Add function context.
6389 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6391 * config/riscv/constraints.md (Wdm): Adjust constraint.
6392 (Wbr): New constraint.
6393 * config/riscv/predicates.md (reg_or_int_operand): New predicate.
6394 * config/riscv/riscv-protos.h (emit_pred_op): Remove function.
6395 (emit_vlmax_op): New function.
6396 (emit_nonvlmax_op): Ditto.
6398 (neg_simm5_p): Ditto.
6399 (has_vi_variant_p): Ditto.
6400 * config/riscv/riscv-v.cc (emit_pred_op): Adjust function.
6401 (emit_vlmax_op): New function.
6402 (emit_nonvlmax_op): Ditto.
6403 (expand_const_vector): Adjust function.
6404 (legitimize_move): Ditto.
6405 (simm32_p): New function.
6407 (neg_simm5_p): Ditto.
6408 (has_vi_variant_p): Ditto.
6409 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
6411 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6412 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
6415 (vminu): Remove signed cases.
6417 (vdiv): Remove unsigned cases.
6419 (vdivu): Remove signed cases.
6428 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_U_OPS): New macro.
6429 * config/riscv/riscv.h: change VL/VTYPE as fixed reg.
6430 * config/riscv/vector-iterators.md: New iterators.
6431 * config/riscv/vector.md (@pred_broadcast<mode>): Adjust pattern for vx
6433 (@pred_<optab><mode>_scalar): New pattern.
6434 (@pred_sub<mode>_reverse_scalar): Ditto.
6435 (*pred_<optab><mode>_scalar): Ditto.
6436 (*pred_<optab><mode>_extended_scalar): Ditto.
6437 (*pred_sub<mode>_reverse_scalar): Ditto.
6438 (*pred_sub<mode>_extended_reverse_scalar): Ditto.
6440 2023-02-10 Richard Biener <rguenther@suse.de>
6442 PR tree-optimization/108724
6443 * tree-vect-stmts.cc (vectorizable_operation): Avoid
6444 using word_mode vectors when vector lowering will
6445 decompose them to elementwise operations.
6447 2023-02-10 Jakub Jelinek <jakub@redhat.com>
6450 2023-02-09 Martin Liska <mliska@suse.cz>
6453 * doc/extend.texi: Document that the function
6454 does not work correctly for old VIA processors.
6456 2023-02-10 Andrew Pinski <apinski@marvell.com>
6457 Andrew Macleod <amacleod@redhat.com>
6459 PR tree-optimization/108684
6460 * tree-ssa-dce.cc (simple_dce_from_worklist):
6461 Check all ssa names and not just non-vdef ones
6462 before accepting the inline-asm.
6463 Call unlink_stmt_vdef on the statement before
6466 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
6468 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
6469 * ira.cc (validate_equiv_mem): Check memref address variance.
6470 (no_equiv): Clear caller_save_p flag.
6471 (update_equiv_regs): Define caller save equivalence for
6473 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
6474 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
6475 call_save_p. Use caller save equivalence depending on the arg.
6476 (split_reg): Adjust the call.
6478 2023-02-09 Jakub Jelinek <jakub@redhat.com>
6481 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Formatting fixes.
6482 (cpu_indicator_init): Call get_available_features for all CPUs with
6483 max_level >= 1, rather than just Intel, AMD or Zhaoxin. Formatting
6486 2023-02-09 Jakub Jelinek <jakub@redhat.com>
6488 PR tree-optimization/108688
6489 * match.pd (bit_field_ref [bit_insert]): Simplify BIT_FIELD_REF
6490 of BIT_INSERT_EXPR extracting exactly all inserted bits even
6491 when without mode precision. Formatting fixes.
6493 2023-02-09 Andrew Pinski <apinski@marvell.com>
6495 PR tree-optimization/108688
6496 * match.pd (bit_field_ref [bit_insert]): Avoid generating
6497 BIT_FIELD_REFs of non-mode-precision integral operands.
6499 2023-02-09 Martin Liska <mliska@suse.cz>
6502 * doc/extend.texi: Document that the function
6503 does not work correctly for old VIA processors.
6505 2023-02-09 Andreas Schwab <schwab@suse.de>
6507 * lto-wrapper.cc (merge_and_complain): Handle
6508 -funwind-tables and -fasynchronous-unwind-tables.
6509 (append_compiler_options): Likewise.
6511 2023-02-09 Richard Biener <rguenther@suse.de>
6513 PR tree-optimization/26854
6514 * tree-into-ssa.cc (update_ssa): Turn blocks_to_update to tree
6515 view around insert_updated_phi_nodes_for.
6516 * tree-ssa-alias.cc (maybe_skip_until): Allocate visited bitmap
6518 (walk_aliased_vdefs_1): Likewise.
6520 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
6522 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
6524 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6527 * config.gcc (tm_mlib_file): Define new variable.
6529 2023-02-08 Jakub Jelinek <jakub@redhat.com>
6531 PR tree-optimization/108692
6532 * tree-vect-patterns.cc (vect_widened_op_tree): If rhs_code is
6533 widened_code which is different from code, don't call
6534 vect_look_through_possible_promotion but instead just check op is
6535 SSA_NAME with integral type for which vect_is_simple_use is true
6536 and call set_op on this_unprom.
6538 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
6540 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
6542 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
6544 * config/aarch64/aarch64.opt (aarch64_ra_sign_key): Rename
6545 to 'aarch_ra_sign_key'.
6546 * config/arm/aarch-common.cc (aarch_ra_sign_key): Remove
6548 * config/arm/arm-protos.h (aarch_ra_sign_key): Likewise.
6549 * config/arm/arm.cc (enum aarch_key_type): Remove definition.
6550 * config/arm/arm.opt: Define.
6552 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
6554 PR tree-optimization/108316
6555 * tree-vect-stmts.cc (get_load_store_type): When using
6556 internal functions for gather/scatter, make sure that the type
6557 of the offset argument is consistent with the offset vector type.
6559 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
6562 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
6564 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
6565 * ira.cc (validate_equiv_mem): Check memref address variance.
6566 (update_equiv_regs): Define caller save equivalence for
6568 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
6569 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
6570 call_save_p. Use caller save equivalence depending on the arg.
6571 (split_reg): Adjust the call.
6573 2023-02-08 Jakub Jelinek <jakub@redhat.com>
6575 * tree.def (SAD_EXPR): Remove outdated comment about missing
6578 2023-02-07 Marek Polacek <polacek@redhat.com>
6580 * doc/invoke.texi: Update -fchar8_t documentation.
6582 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
6584 * ira.h (struct ira_reg_equiv_s): Add new field caller_save_p.
6585 * ira.cc (validate_equiv_mem): Check memref address variance.
6586 (update_equiv_regs): Define caller save equivalence for
6588 (setup_reg_equiv): Clear defined_p flag for caller save equivalence.
6589 * lra-constraints.cc (lra_copy_reg_equiv): Add new arg
6590 call_save_p. Use caller save equivalence depending on the arg.
6591 (split_reg): Adjust the call.
6593 2023-02-07 Richard Biener <rguenther@suse.de>
6595 PR tree-optimization/26854
6596 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
6597 instead of immediate uses.
6599 2023-02-07 Jakub Jelinek <jakub@redhat.com>
6601 PR tree-optimization/106923
6602 * ipa-split.cc (execute_split_functions): Don't split returns_twice
6605 2023-02-07 Jakub Jelinek <jakub@redhat.com>
6607 PR tree-optimization/106433
6608 * cgraph.cc (set_const_flag_1): Recurse on simd clones too.
6609 (cgraph_node::set_pure_flag): Call set_pure_flag_1 on simd clones too.
6611 2023-02-07 Jan Hubicka <jh@suse.cz>
6613 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
6616 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
6618 * config/gcn/mkoffload.cc (gcn_stack_size): New global variable.
6619 (process_asm): Create a constructor for GCN_STACK_SIZE.
6620 (main): Parse the -mstack-size option.
6622 2023-02-06 Alex Coplan <alex.coplan@arm.com>
6625 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
6626 Use correct constraint for operand 3.
6628 2023-02-06 Martin Jambor <mjambor@suse.cz>
6630 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
6632 2023-02-06 Xi Ruoyao <xry111@xry111.site>
6634 * config/loongarch/loongarch.md (bytepick_w_ashift_amount):
6635 New define_int_iterator.
6636 (bytepick_d_ashift_amount): Likewise.
6637 (bytepick_imm): New define_int_attr.
6638 (bytepick_w_lshiftrt_amount): Likewise.
6639 (bytepick_d_lshiftrt_amount): Likewise.
6640 (bytepick_w_<bytepick_imm>): New define_insn template.
6641 (bytepick_w_<bytepick_imm>_extend): Likewise.
6642 (bytepick_d_<bytepick_imm>): Likewise.
6643 (bytepick_w): Remove unused define_insn.
6644 (bytepick_d): Likewise.
6645 (UNSPEC_BYTEPICK_W): Remove unused unspec.
6646 (UNSPEC_BYTEPICK_D): Likewise.
6647 * config/loongarch/predicates.md (const_0_to_3_operand):
6648 Remove unused define_predicate.
6649 (const_0_to_7_operand): Likewise.
6651 2023-02-06 Jakub Jelinek <jakub@redhat.com>
6653 PR tree-optimization/108655
6654 * ubsan.cc (sanitize_unreachable_fn): For -funreachable-traps
6655 or -fsanitize=unreachable -fsanitize-trap=unreachable return
6656 BUILT_IN_UNREACHABLE_TRAP decl rather than BUILT_IN_TRAP.
6658 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
6660 * doc/install.texi (Specific): Remove PW32.
6662 2023-02-03 Jakub Jelinek <jakub@redhat.com>
6664 PR tree-optimization/108647
6665 * range-op.cc (operator_equal::op1_range,
6666 operator_not_equal::op1_range): Don't test op2 bound
6667 equality if op2.undefined_p (), instead set_varying.
6668 (operator_lt::op1_range, operator_le::op1_range,
6669 operator_gt::op1_range, operator_ge::op1_range): Return false if
6671 (operator_lt::op2_range, operator_le::op2_range,
6672 operator_gt::op2_range, operator_ge::op2_range): Return false if
6675 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
6677 PR tree-optimization/108639
6678 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
6680 (irange::operator==): Same.
6682 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
6684 PR tree-optimization/108647
6685 * range-op-float.cc (foperator_lt::op1_range): Handle undefined ranges.
6686 (foperator_lt::op2_range): Same.
6687 (foperator_le::op1_range): Same.
6688 (foperator_le::op2_range): Same.
6689 (foperator_gt::op1_range): Same.
6690 (foperator_gt::op2_range): Same.
6691 (foperator_ge::op1_range): Same.
6692 (foperator_ge::op2_range): Same.
6693 (foperator_unordered_lt::op1_range): Same.
6694 (foperator_unordered_lt::op2_range): Same.
6695 (foperator_unordered_le::op1_range): Same.
6696 (foperator_unordered_le::op2_range): Same.
6697 (foperator_unordered_gt::op1_range): Same.
6698 (foperator_unordered_gt::op2_range): Same.
6699 (foperator_unordered_ge::op1_range): Same.
6700 (foperator_unordered_ge::op2_range): Same.
6702 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
6704 PR tree-optimization/107570
6705 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
6707 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
6709 * doc/gm2.texi (Internals): Remove from menu.
6710 (Using): Comment out ifnohtml conditional.
6711 (Documentation): Use gcc url.
6712 (License): Node simplified.
6713 (Copying): New node. Include gpl_v3_without_node.
6714 (Contributing): Node simplified.
6715 (Internals): Commented out.
6716 (Libraries): Node simplified.
6721 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
6723 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
6725 (mve_vqshluq_m_n_s<mode>): Likewise.
6726 (mve_vshlq_m_<supf><mode>): Likewise.
6727 (mve_vsriq_m_n_<supf><mode>): Likewise.
6728 (mve_vsubq_m_<supf><mode>): Likewise.
6730 2023-02-03 Martin Jambor <mjambor@suse.cz>
6733 * ipa-sra.cc (push_param_adjustments_for_index): Remove a size check
6734 when comparing to an IPA-CP value.
6735 (dump_list_of_param_indices): New function.
6736 (adjust_parameter_descriptions): Check for mismatching IPA-CP values.
6737 Dump removed candidates using dump_list_of_param_indices.
6738 * ipa-param-manipulation.cc
6739 (ipa_param_body_adjustments::modify_expression): Add assert checking
6740 sizes of a VIEW_CONVERT_EXPR will match.
6741 (ipa_param_body_adjustments::modify_assignment): Likewise.
6743 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
6745 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
6746 * config/riscv/riscv.cc: Ditto.
6748 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6750 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
6754 * config/riscv/vector.md: Ditto.
6756 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6758 * config/riscv/predicates.md (pmode_reg_or_uimm5_operand): New predicate.
6759 * config/riscv/riscv-vector-builtins-bases.cc: New class.
6760 * config/riscv/riscv-vector-builtins-functions.def (vsll): Ditto.
6763 * config/riscv/riscv-vector-builtins.cc: Ditto.
6764 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
6766 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
6768 * toplev.cc (toplev::main): Only print the version information header
6769 from toplevel main().
6771 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
6773 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
6774 cond_{ashl|ashr|lshr}
6776 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
6778 PR rtl-optimization/108086
6779 * rtl-ssa/insns.h (insn_info): Make m_num_defs a full unsigned int.
6780 Adjust size-related commentary accordingly.
6782 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
6784 PR rtl-optimization/108508
6785 * rtl-ssa/accesses.cc (function_info::split_clobber_group): When
6786 the splay tree search gives the first clobber in the second group,
6787 make sure that the root of the first clobber group is updated
6788 correctly. Enter the new clobber group into the definition splay
6791 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
6793 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
6794 Fix finding best match score.
6796 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6799 PR rtl-optimization/108463
6801 * cselib.cc (cselib_current_insn): Move declaration earlier.
6802 (cselib_hasher::equal): For debug only locs, temporarily override
6803 cselib_current_insn to their l->setting_insn for the
6804 rtx_equal_for_cselib_1 call, so that unsuccessful comparisons don't
6805 promote some debug locs.
6806 * sched-deps.cc (sched_analyze_2) <case MEM>: For MEMs in DEBUG_INSNs
6807 when using cselib call cselib_lookup_from_insn on the address but
6808 don't substitute it.
6810 2023-02-02 Richard Biener <rguenther@suse.de>
6812 PR middle-end/108625
6813 * genmatch.cc (expr::gen_transform): Also disallow resimplification
6814 from pushing to lseq with force_leaf.
6815 (dt_simplify::gen_1): Likewise.
6817 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
6819 * config/gcn/gcn-run.cc: Include libgomp-gcn.h.
6820 (struct kernargs): Replace the common content with kernargs_abi.
6821 (struct heap): Delete.
6822 (main): Read GCN_STACK_SIZE envvar.
6823 Allocate space for the device stacks.
6824 Write the new kernargs fields.
6825 * config/gcn/gcn.cc (gcn_option_override): Remove stack_size_opt.
6826 (default_requested_args): Remove PRIVATE_SEGMENT_BUFFER_ARG and
6827 PRIVATE_SEGMENT_WAVE_OFFSET_ARG.
6828 (gcn_addr_space_convert): Mask the QUEUE_PTR_ARG content.
6829 (gcn_expand_prologue): Move the TARGET_PACKED_WORK_ITEMS to the top.
6830 Set up the stacks from the values in the kernargs, not private.
6831 (gcn_expand_builtin_1): Match the stack configuration in the prologue.
6832 (gcn_hsa_declare_function_name): Turn off the private segment.
6833 (gcn_conditional_register_usage): Ensure QUEUE_PTR is fixed.
6834 * config/gcn/gcn.h (FIXED_REGISTERS): Fix the QUEUE_PTR register.
6835 * config/gcn/gcn.opt (mstack-size): Change the description.
6837 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6840 * config/arm/arm.h (VALID_MVE_PRED_MODE): Add V2QI.
6841 * config/arm/arm.cc (thumb2_legitimate_address_p): Use HImode for
6842 addressing MVE predicate modes.
6843 (mve_bool_vec_to_const): Change to represent correct MVE predicate
6845 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
6847 (arm_vector_mode_supported_p): Likewise.
6848 (arm_mode_to_pred_mode): Add V2QI.
6849 * config/arm/arm-builtins.cc (UNOP_PRED_UNONE_QUALIFIERS): New
6851 (UNOP_PRED_PRED_QUALIFIERS): New qualifier
6852 (BINOP_PRED_UNONE_PRED_QUALIFIERS): New qualifier.
6853 (v2qi_UP): New macro.
6854 (v4bi_UP): New macro.
6855 (v8bi_UP): New macro.
6856 (v16bi_UP): New macro.
6857 (arm_expand_builtin_args): Make it able to expand the new predicate
6859 * config/arm/arm-modes.def (V2QI): New mode.
6860 * config/arm/arm-simd-builtin-types.def (Pred1x16_t, Pred2x8_t
6861 Pred4x4_t): Remove unused predicate builtin types.
6862 * config/arm/arm_mve.h (__arm_vctp16q, __arm_vctp32q, __arm_vctp64q,
6863 __arm_vctp8q, __arm_vpnot, __arm_vctp8q_m, __arm_vctp64q_m,
6864 __arm_vctp32q_m, __arm_vctp16q_m): Use predicate modes.
6865 * config/arm/arm_mve_builtins.def (vctp16q, vctp32q, vctp64q, vctp8q,
6866 vpnot, vctp8q_m, vctp16q_m, vctp32q_m, vctp64q_m): Likewise.
6867 * config/arm/constraints.md (DB): Check for VALID_MVE_PRED_MODE instead
6868 of MODE_VECTOR_BOOL.
6869 * config/arm/iterators.md (MVE_7, MVE_7_HI): Add V2QI
6870 (MVE_VPRED): Likewise.
6871 (MVE_vpred): Add V2QI and map upper case predicate modes to lower case.
6872 (MVE_vctp): New mode attribute.
6876 * config/arm/mve.md (mve_vctp<mode1>qhi): Rename this...
6877 (mve_vctp<MVE_vctp>q<MVE_vpred>): ... to this. And use new mode
6879 (mve_vpnothi): Rename this...
6880 (mve_vpnotv16bi): ... to this.
6881 (mve_vctp<mode1>q_mhi): Rename this...
6882 (mve_vctp<MVE_vctp>q_m<MVE_vpred>):... to this.
6883 (mve_vldrdq_gather_base_z_<supf>v2di,
6884 mve_vldrdq_gather_offset_z_<supf>v2di,
6885 mve_vldrdq_gather_shifted_offset_z_<supf>v2di,
6886 mve_vstrdq_scatter_base_p_<supf>v2di,
6887 mve_vstrdq_scatter_offset_p_<supf>v2di,
6888 mve_vstrdq_scatter_offset_p_<supf>v2di_insn,
6889 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di,
6890 mve_vstrdq_scatter_shifted_offset_p_<supf>v2di_insn,
6891 mve_vstrdq_scatter_base_wb_p_<supf>v2di,
6892 mve_vldrdq_gather_base_wb_z_<supf>v2di,
6893 mve_vldrdq_gather_base_nowb_z_<supf>v2di,
6894 mve_vldrdq_gather_base_wb_z_<supf>v2di_insn): Use V2QI insead of HI for
6896 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
6898 (VCTP): ... with this.
6899 (VCTP8Q_M, VCTP16Q_M, VCTP32Q_M, VCTP64Q_M): Replace these...
6900 (VCTP_M): ... with this.
6901 * config/arm/vfp.md (*thumb2_movhi_vfp, *thumb2_movhi_fp16): Use
6902 VALID_MVE_PRED_MODE instead of checking for MODE_VECTOR_BOOL class.
6904 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6907 * config/arm/arm.cc (arm_hard_regno_mode_ok): Use new MACRO.
6908 (arm_modes_tieable_p): Make MVE predicate modes tieable.
6909 * config/arm/arm.h (VALID_MVE_PRED_MODE): New define.
6910 * simplify-rtx.cc (simplify_context::simplify_subreg): Teach
6911 simplify_subreg to simplify subregs where the outermode is not scalar.
6913 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6916 * config/arm/arm-builtins.cc (arm_simd_builtin_type): Rewrite to use
6917 new qualifiers parameter and use unsigned short type for MVE predicate.
6918 (arm_init_builtin): Call arm_simd_builtin_type with qualifiers
6920 (arm_init_crypto_builtins): Likewise.
6922 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6925 * builtins.def (BUILT_IN_UNREACHABLE_TRAP): New builtin.
6926 * internal-fn.def (TRAP): Remove.
6927 * internal-fn.cc (expand_TRAP): Remove.
6928 * tree.cc (build_common_builtin_nodes): Define
6929 BUILT_IN_UNREACHABLE_TRAP if not yet defined.
6930 (builtin_decl_unreachable): Use BUILT_IN_UNREACHABLE_TRAP
6931 instead of BUILT_IN_TRAP.
6932 * gimple.cc (gimple_build_builtin_unreachable): Remove
6933 emitting internal function for BUILT_IN_TRAP.
6934 * asan.cc (maybe_instrument_call): Handle BUILT_IN_UNREACHABLE_TRAP.
6935 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Handle
6936 BUILT_IN_UNREACHABLE_TRAP instead of BUILT_IN_TRAP.
6937 * ipa-devirt.cc (possible_polymorphic_call_target_p): Handle
6938 BUILT_IN_UNREACHABLE_TRAP.
6939 * builtins.cc (expand_builtin, is_inexpensive_builtin): Likewise.
6940 * tree-cfg.cc (verify_gimple_call,
6941 pass_warn_function_return::execute): Likewise.
6942 * attribs.cc (decl_attributes): Don't report exclusions on
6943 BUILT_IN_UNREACHABLE_TRAP either.
6945 2023-02-02 liuhongt <hongtao.liu@intel.com>
6947 PR tree-optimization/108601
6948 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
6950 (vectorizable_nonlinear_induction): Remove
6951 vect_can_peel_nonlinear_iv_p.
6952 (vect_can_peel_nonlinear_iv_p): Don't peel
6953 nonlinear iv(mult or shift) for epilog when vf is not
6954 constant and moved the defination to ..
6955 * tree-vect-loop-manip.cc (vect_can_peel_nonlinear_iv_p):
6958 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6960 PR middle-end/108435
6961 * tree-nested.cc (convert_nonlocal_omp_clauses)
6962 <case OMP_CLAUSE_LASTPRIVATE>: If info->new_local_var_chain and *seq
6963 is not a GIMPLE_BIND, wrap the sequence into a new GIMPLE_BIND
6964 before calling declare_vars.
6965 (convert_nonlocal_omp_clauses) <case OMP_CLAUSE_LINEAR>: Merge
6966 with the OMP_CLAUSE_LASTPRIVATE handling except for whether
6967 seq is initialized to &OMP_CLAUSE_LASTPRIVATE_GIMPLE_SEQ (clause)
6968 or &OMP_CLAUSE_LINEAR_GIMPLE_SEQ (clause).
6970 2023-02-01 Tamar Christina <tamar.christina@arm.com>
6972 * common/config/aarch64/aarch64-common.cc
6973 (struct aarch64_option_extension): Add native_detect and document struct
6975 (all_extensions): Set new field native_detect.
6976 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
6979 2023-02-01 Martin Liska <mliska@suse.cz>
6981 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
6984 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
6986 PR tree-optimization/108356
6987 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always
6988 do a search of the DOM tree for a range.
6990 2023-02-01 Martin Liska <mliska@suse.cz>
6993 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
6994 ony non-null values.
6995 * ipa.cc (walk_polymorphic_call_targets): Likewise.
6997 2023-02-01 Martin Liska <mliska@suse.cz>
7000 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
7003 2023-02-01 Jakub Jelinek <jakub@redhat.com>
7006 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
7007 subregs in DEBUG_INSNs.
7009 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
7011 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
7013 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7015 * config/s390/s390.cc (s390_restore_gpr_p): New function.
7016 (s390_preserve_gpr_arg_in_range_p): New function.
7017 (s390_preserve_gpr_arg_p): New function.
7018 (s390_preserve_fpr_arg_p): New function.
7019 (s390_register_info_stdarg_fpr): Rename to ...
7020 (s390_register_info_arg_fpr): ... this. Add -mpreserve-args handling.
7021 (s390_register_info_stdarg_gpr): Rename to ...
7022 (s390_register_info_arg_gpr): ... this. Add -mpreserve-args handling.
7023 (s390_register_info): Use the renamed functions above.
7024 (s390_optimize_register_info): Likewise.
7025 (save_fpr): Generate CFI for -mpreserve-args.
7026 (save_gprs): Generate CFI for -mpreserve-args. Drop return value.
7027 (s390_emit_prologue): Adjust to changed calling convention of save_gprs.
7028 (s390_optimize_prologue): Likewise.
7029 * config/s390/s390.opt: New option -mpreserve-args
7031 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7033 * config/s390/s390.cc (save_gprs): Use gen_frame_mem.
7034 (restore_gprs): Likewise.
7035 (s390_emit_stack_tie): Make the stack_tie to be dependent on the
7036 frame pointer if a frame-pointer is used.
7037 (s390_emit_prologue): Emit stack_tie when frame-pointer is needed.
7038 * config/s390/s390.md (stack_tie): Add a register operand and
7040 (@stack_tie<mode>): ... this.
7042 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7044 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
7046 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
7047 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
7049 2023-02-01 Richard Biener <rguenther@suse.de>
7051 PR middle-end/108500
7052 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
7053 with tree traversal algorithm.
7055 2023-02-01 Jason Merrill <jason@redhat.com>
7057 * doc/invoke.texi: Document -Wno-changes-meaning.
7059 2023-02-01 David Malcolm <dmalcolm@redhat.com>
7061 * doc/invoke.texi (Static Analyzer Options): Add notes about
7062 limitations of -fanalyzer.
7064 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7066 * config/riscv/constraints.md (vj): New.
7068 * config/riscv/iterators.md: Add more opcode.
7069 * config/riscv/predicates.md (vector_arith_operand): New.
7070 (vector_neg_arith_operand): New.
7071 (vector_shift_operand): New.
7072 * config/riscv/riscv-vector-builtins-bases.cc (class binop): New.
7073 * config/riscv/riscv-vector-builtins-bases.h: (vadd): New.
7090 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
7107 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): New.
7108 * config/riscv/riscv-vector-builtins-shapes.h (binop): New.
7109 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_I_OPS): New.
7110 (DEF_RVV_U_OPS): New.
7111 (rvv_arg_type_info::get_base_vector_type): Handle
7112 RVV_BASE_shift_vector.
7113 (rvv_arg_type_info::get_tree_type): Ditto.
7114 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add
7115 RVV_BASE_shift_vector.
7116 * config/riscv/riscv.cc (riscv_print_operand): Handle 'V'.
7117 * config/riscv/vector-iterators.md: Handle more opcode.
7118 * config/riscv/vector.md (@pred_<optab><mode>): New.
7120 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
7123 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
7126 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
7128 PR tree-optimization/108608
7129 * tree-vect-loop.cc (vect_transform_reduction): Handle single
7130 def-use cycles that involve function calls rather than tree codes.
7132 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7134 PR tree-optimization/108385
7135 * gimple-range-gori.cc (gori_compute::compute_operand_range):
7136 Allow VARYING computations to continue if there is a relation.
7137 * range-op.cc (pointer_plus_operator::op2_range): New.
7139 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7141 PR tree-optimization/108359
7142 * range-op.cc (range_operator::wi_fold_in_parts_equiv): New.
7143 (range_operator::fold_range): If op1 is equivalent to op2 then
7144 invoke new fold_in_parts_equiv to operate on sub-components.
7145 * range-op.h (wi_fold_in_parts_equiv): New prototype.
7147 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7149 * gimple-range-gori.cc (gori_compute::compute_operand_range): Do
7150 not abort calculations if there is a valid relation available.
7151 (gori_compute::refine_using_relation): Pass correct relation trio.
7152 (gori_compute::compute_operand1_range): Create trio and use it.
7153 (gori_compute::compute_operand2_range): Ditto.
7154 * range-op.cc (operator_plus::op1_range): Use correct trio member.
7155 (operator_minus::op1_range): Use correct trio member.
7156 * value-relation.cc (value_relation::create_trio): New.
7157 * value-relation.h (value_relation::create_trio): New prototype.
7159 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7162 * config/i386/i386-expand.cc
7163 (ix86_convert_const_wide_int_to_broadcast): Return nullptr if
7164 CONST_WIDE_INT_NUNITS (op) times HOST_BITS_PER_WIDE_INT isn't
7165 equal to bitsize of mode.
7167 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7169 PR rtl-optimization/108596
7170 * bb-reorder.cc (fix_up_fall_thru_edges): Handle the case where cur_bb
7171 ends with asm goto and has a crossing fallthrough edge to the same bb
7172 that contains at least one of its labels by restoring EDGE_CROSSING
7173 flag even on possible edge from cur_bb to new_bb successor.
7175 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7178 * config/i386/avx512erintrin.h (_mm512_exp2a23_round_pd,
7179 _mm512_exp2a23_round_ps, _mm512_rcp28_round_pd, _mm512_rcp28_round_ps,
7180 _mm512_rsqrt28_round_pd, _mm512_rsqrt28_round_ps): Use
7181 _mm512_undefined_pd () or _mm512_undefined_ps () instead of using
7182 uninitialized automatic variable __W.
7184 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
7186 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
7188 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7190 * config/riscv/riscv-protos.h (get_vector_mode): New function.
7191 * config/riscv/riscv-v.cc (get_vector_mode): Ditto.
7192 * config/riscv/riscv-vector-builtins-bases.cc (enum lst_type): New enum.
7193 (class loadstore): Adjust for indexed loads/stores support.
7195 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
7196 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
7212 * config/riscv/riscv-vector-builtins-shapes.cc
7213 (struct indexed_loadstore_def): New class.
7215 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
7216 * config/riscv/riscv-vector-builtins.cc (required_extensions_p): Adjust
7217 for indexed loads/stores support.
7218 (check_required_extensions): Ditto.
7219 (rvv_arg_type_info::get_base_vector_type): New function.
7220 (rvv_arg_type_info::get_tree_type): Ditto.
7221 (function_builder::add_unique_function): Adjust for indexed loads/stores
7223 (function_expander::use_exact_insn): New function.
7224 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Adjust for
7225 indexed loads/stores support.
7226 (struct rvv_arg_type_info): Ditto.
7227 (function_expander::index_mode): New function.
7228 (function_base::apply_tail_policy_p): Ditto.
7229 (function_base::apply_mask_policy_p): Ditto.
7230 * config/riscv/vector-iterators.md (unspec): New unspec.
7231 * config/riscv/vector.md (unspec): Ditto.
7232 (@pred_indexed_<order>load<VNX1_QHSD:mode><VNX1_QHSDI:mode>): New
7234 (@pred_indexed_<order>store<VNX1_QHSD:mode><VNX1_QHSDI:mode>): Ditto.
7235 (@pred_indexed_<order>load<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
7236 (@pred_indexed_<order>store<VNX2_QHSD:mode><VNX2_QHSDI:mode>): Ditto.
7237 (@pred_indexed_<order>load<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
7238 (@pred_indexed_<order>store<VNX4_QHSD:mode><VNX4_QHSDI:mode>): Ditto.
7239 (@pred_indexed_<order>load<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
7240 (@pred_indexed_<order>store<VNX8_QHSD:mode><VNX8_QHSDI:mode>): Ditto.
7241 (@pred_indexed_<order>load<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
7242 (@pred_indexed_<order>store<VNX16_QHS:mode><VNX16_QHSI:mode>): Ditto.
7243 (@pred_indexed_<order>load<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
7244 (@pred_indexed_<order>store<VNX32_QH:mode><VNX32_QHI:mode>): Ditto.
7245 (@pred_indexed_<order>load<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
7246 (@pred_indexed_<order>store<VNX64_Q:mode><VNX64_Q:mode>): Ditto.
7248 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
7250 * config.gcc: Recognize x86_64-*-gnu* targets and include
7252 * config/i386/gnu64.h: Define configuration for new target
7253 including ld.so location.
7255 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
7257 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
7258 ampere1a to include SM4.
7260 2023-01-30 Andrew Pinski <apinski@marvell.com>
7262 PR tree-optimization/108582
7263 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
7264 for middlebb to have no phi nodes.
7266 2023-01-30 Richard Biener <rguenther@suse.de>
7268 PR tree-optimization/108574
7269 * tree-ssa-sccvn.cc (visit_phi): Instead of swapping
7270 sameval and def, ignore the equivalence if there's the
7271 danger of oscillating between two values.
7273 2023-01-30 Andreas Schwab <schwab@suse.de>
7275 * common/config/riscv/riscv-common.cc
7276 (riscv_option_optimization_table)
7277 [TARGET_DEFAULT_ASYNC_UNWIND_TABLES]: Enable
7278 -fasynchronous-unwind-tables and -funwind-tables.
7279 * config.gcc (riscv*-*-linux*): Define
7280 TARGET_DEFAULT_ASYNC_UNWIND_TABLES.
7282 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
7284 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
7285 value of includedir.
7287 2023-01-30 Richard Biener <rguenther@suse.de>
7290 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
7293 2023-01-30 liuhongt <hongtao.liu@intel.com>
7295 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
7296 * doc/invoke.texi: Ditto.
7298 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
7300 * ipa-utils.cc: Include calls.h, cfgloop.h and cfganal.h
7301 (stmt_may_terminate_function_p): If assuming return or EH
7302 volatile asm is safe.
7303 (find_always_executed_bbs): Fix handling of terminating BBS and
7304 infinite loops; add debug output.
7305 * tree-ssa-alias.cc (stmt_kills_ref_p): Fix debug output
7307 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
7309 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
7310 off-by-one in checking the permissible shift-amount.
7312 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7314 * doc/extend.texi (Named Address Spaces): Update link to the
7317 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7319 * doc/standards.texi (Standards): Fix markup.
7321 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7323 * doc/standards.texi (Standards): Update link to Objective-C book.
7325 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7327 * doc/invoke.texi (Instrumentation Options): Update reference to
7330 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7332 * doc/standards.texi: Update Go1 link.
7334 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7336 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
7337 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
7340 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7341 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
7343 * config/riscv/riscv-vector-builtins.cc
7344 (function_expander::use_contiguous_load_insn): Support vlse/vsse.
7345 * config/riscv/vector.md (@pred_strided_load<mode>): New md pattern.
7346 (@pred_strided_store<mode>): Ditto.
7348 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7350 * config/riscv/vector.md (tail_policy_op_idx): Remove.
7351 (mask_policy_op_idx): Remove.
7352 (avl_type_op_idx): Remove.
7354 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
7356 PR tree-optimization/96373
7357 * tree.h (sign_mask_for): Declare.
7358 * tree.cc (sign_mask_for): New function.
7359 (signed_or_unsigned_type_for): For vector types, try to use the
7360 related_int_vector_mode.
7361 * genmatch.cc (commutative_op): Handle conditional internal functions.
7362 * match.pd: Fold an IFN_COND_MUL+copysign into an IFN_COND_XOR+and.
7364 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
7366 * tree-vectorizer.cc (vector_costs::compare_inside_loop_cost):
7367 Use the likely minimum VF when bounding the denominators to
7368 the estimated number of iterations.
7370 2023-01-27 Richard Biener <rguenther@suse.de>
7373 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
7374 and -Ofast FP environment side-effects.
7376 2023-01-27 Richard Biener <rguenther@suse.de>
7379 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
7380 Don't add crtfastmath.o for -shared.
7382 2023-01-27 Richard Biener <rguenther@suse.de>
7385 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
7388 2023-01-27 Richard Biener <rguenther@suse.de>
7391 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
7392 crtfastmath.o for -shared.
7394 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
7396 PR tree-optimization/108306
7397 * range-op.cc (operator_lshift::fold_range): Return [0, 0] not
7398 varying for shifts that are always out of void range.
7399 (operator_rshift::fold_range): Return [0, 0] not
7400 varying for shifts that are always out of void range.
7402 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
7404 PR tree-optimization/108447
7405 * gimple-range-fold.cc (old_using_range::relation_fold_and_or):
7406 Do not attempt to fold HONOR_NAN types.
7408 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7410 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
7411 Remove _m suffix for "vop_m" C++ overloaded API name.
7413 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7415 * config/riscv/riscv-vector-builtins-bases.cc (BASE): Add vlm/vsm support.
7416 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7417 * config/riscv/riscv-vector-builtins-functions.def (vlm): New define.
7419 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def): Add vlm/vsm support.
7420 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_B_OPS): Ditto.
7428 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_B_OPS): Ditto.
7429 (rvv_arg_type_info::get_tree_type): Ditto.
7430 (function_expander::use_contiguous_load_insn): Ditto.
7431 * config/riscv/vector.md (@pred_store<mode>): Ditto.
7433 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7435 * config/riscv/riscv-vsetvl.cc (vsetvl_insn_p): Add condition to avoid ICE.
7436 (vsetvl_discard_result_insn_p): New function.
7437 (reg_killed_by_bb_p): rename to find_reg_killed_by.
7438 (find_reg_killed_by): New name.
7439 (get_vl): allow it to be called by more functions.
7440 (has_vsetvl_killed_avl_p): Add condition.
7441 (get_avl): allow it to be called by more functions.
7442 (insn_should_be_added_p): New function.
7443 (get_all_nonphi_defs): Refine function.
7444 (get_all_sets): Ditto.
7445 (get_same_bb_set): New function.
7446 (any_insn_in_bb_p): Ditto.
7447 (any_set_in_bb_p): Ditto.
7448 (get_vl_vtype_info): Add VLMAX forward optimization.
7449 (source_equal_p): Fix issues.
7450 (extract_single_source): Refine.
7451 (avl_info::multiple_source_equal_p): New function.
7452 (avl_info::operator==): Adjust for final version.
7453 (vl_vtype_info::operator==): Ditto.
7454 (vl_vtype_info::same_avl_p): Ditto.
7455 (vector_insn_info::parse_insn): Ditto.
7456 (vector_insn_info::available_p): New function.
7457 (vector_insn_info::merge): Adjust for final version.
7458 (vector_insn_info::dump): Add hard_empty.
7459 (pass_vsetvl::hard_empty_block_p): New function.
7460 (pass_vsetvl::backward_demand_fusion): Adjust for final version.
7461 (pass_vsetvl::forward_demand_fusion): Ditto.
7462 (pass_vsetvl::demand_fusion): Ditto.
7463 (pass_vsetvl::cleanup_illegal_dirty_blocks): New function.
7464 (pass_vsetvl::compute_local_properties): Adjust for final version.
7465 (pass_vsetvl::can_refine_vsetvl_p): Ditto.
7466 (pass_vsetvl::refine_vsetvls): Ditto.
7467 (pass_vsetvl::commit_vsetvls): Ditto.
7468 (pass_vsetvl::propagate_avl): New function.
7469 (pass_vsetvl::lazy_vsetvl): Adjust for new version.
7470 * config/riscv/riscv-vsetvl.h (enum def_type): New enum.
7472 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7475 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
7478 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7481 * cgraph.cc (cgraph_edge::verify_corresponds_to_fndecl): Allow
7482 redirection of calls to __builtin_trap in addition to redirection
7483 to __builtin_unreachable.
7485 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7487 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
7489 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7491 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
7492 (emit_vsetvl_insn): Ditto.
7494 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7496 * config/riscv/vector.md: Fix constraints.
7498 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7500 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
7502 2023-01-27 Patrick Palka <ppalka@redhat.com>
7503 Jakub Jelinek <jakub@redhat.com>
7505 * tree-core.h (tree_code_type, tree_code_length): For
7506 C++17 and later, add inline keyword, otherwise don't define
7507 the arrays, but declare extern arrays.
7508 * tree.cc (tree_code_type, tree_code_length): Define these
7509 arrays for C++14 and older.
7511 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7513 * config/riscv/riscv-vsetvl.h: Change it into public.
7515 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7517 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
7520 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7522 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
7524 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7526 * config/riscv/vector.md: Fix incorrect attributes.
7528 2023-01-27 Richard Biener <rguenther@suse.de>
7531 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
7532 Don't add crtfastmath.o for -shared.
7534 2023-01-27 Alexandre Oliva <oliva@gnu.org>
7536 * doc/options.texi (option, RejectNegative): Mention that
7537 -g-started options are also implicitly negatable.
7539 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
7541 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
7542 Use get_typenode_from_name to get fixed-width integer type
7544 * config/riscv/riscv-vector-builtins.def: Update define with
7545 fixed-width integer type nodes.
7547 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7549 * config/riscv/riscv-vsetvl.cc (same_bb_and_before_p): Remove it.
7550 (real_insn_and_same_bb_p): New function.
7551 (same_bb_and_after_or_equal_p): Remove it.
7552 (before_p): New function.
7553 (reg_killed_by_bb_p): Ditto.
7554 (has_vsetvl_killed_avl_p): Ditto.
7555 (get_vl): Move location so that we can call it.
7556 (anticipatable_occurrence_p): Fix issue of AVL=REG support.
7557 (available_occurrence_p): Ditto.
7558 (dominate_probability_p): Remove it.
7559 (can_backward_propagate_p): Remove it.
7560 (get_all_nonphi_defs): New function.
7561 (get_all_predecessors): Ditto.
7562 (any_insn_in_bb_p): Ditto.
7563 (insert_vsetvl): Adjust AVL REG.
7564 (source_equal_p): New function.
7565 (extract_single_source): Ditto.
7566 (avl_info::single_source_equal_p): Ditto.
7567 (avl_info::operator==): Adjust for AVL=REG.
7568 (vl_vtype_info::same_avl_p): Ditto.
7569 (vector_insn_info::set_demand_info): Remove it.
7570 (vector_insn_info::compatible_p): Adjust for AVL=REG.
7571 (vector_insn_info::compatible_avl_p): New function.
7572 (vector_insn_info::merge): Adjust AVL=REG.
7573 (vector_insn_info::dump): Ditto.
7574 (pass_vsetvl::merge_successors): Remove it.
7575 (enum fusion_type): New enum.
7576 (pass_vsetvl::get_backward_fusion_type): New function.
7577 (pass_vsetvl::backward_demand_fusion): Adjust for AVL=REG.
7578 (pass_vsetvl::forward_demand_fusion): Ditto.
7579 (pass_vsetvl::demand_fusion): Ditto.
7580 (pass_vsetvl::prune_expressions): Ditto.
7581 (pass_vsetvl::compute_local_properties): Ditto.
7582 (pass_vsetvl::cleanup_vsetvls): Ditto.
7583 (pass_vsetvl::commit_vsetvls): Ditto.
7584 (pass_vsetvl::init): Ditto.
7585 * config/riscv/riscv-vsetvl.h (enum fusion_type): New enum.
7586 (enum merge_type): New enum.
7588 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7590 * config/riscv/riscv-vsetvl.cc
7591 (vector_infos_manager::vector_infos_manager): Add probability.
7592 (vector_infos_manager::dump): Ditto.
7593 (pass_vsetvl::compute_probabilities): Ditto.
7594 * config/riscv/riscv-vsetvl.h (struct vector_block_info): Ditto.
7596 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7598 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator==): Remove dirty_pat.
7599 (vector_insn_info::merge): Ditto.
7600 (vector_insn_info::dump): Ditto.
7601 (pass_vsetvl::merge_successors): Ditto.
7602 (pass_vsetvl::backward_demand_fusion): Ditto.
7603 (pass_vsetvl::forward_demand_fusion): Ditto.
7604 (pass_vsetvl::commit_vsetvls): Ditto.
7605 * config/riscv/riscv-vsetvl.h: Ditto.
7607 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7609 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
7612 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7614 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
7616 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7618 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
7619 Add pre-check for redundant flow.
7621 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7623 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::create_bitmap_vectors): New function.
7624 (vector_infos_manager::free_bitmap_vectors): Ditto.
7625 (pass_vsetvl::pre_vsetvl): Adjust codes.
7626 * config/riscv/riscv-vsetvl.h: New function declaration.
7628 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7630 * config/riscv/riscv-vsetvl.cc (can_backward_propagate_p): Fix for null iter_bb.
7631 (vector_insn_info::set_demand_info): New function.
7632 (pass_vsetvl::emit_local_forward_vsetvls): Adjust for refinement of Phase 3.
7633 (pass_vsetvl::merge_successors): Ditto.
7634 (pass_vsetvl::compute_global_backward_infos): Ditto.
7635 (pass_vsetvl::backward_demand_fusion): Ditto.
7636 (pass_vsetvl::forward_demand_fusion): Ditto.
7637 (pass_vsetvl::demand_fusion): New function.
7638 (pass_vsetvl::lazy_vsetvl): Adjust for refinement of phase 3.
7639 * config/riscv/riscv-vsetvl.h: New function declaration.
7641 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7643 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
7645 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7647 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
7648 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
7650 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7652 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
7653 (backward_propagate_worthwhile_p): Fix non-worthwhile.
7655 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7657 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
7659 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7661 * config/riscv/riscv-vsetvl.cc (vector_infos_manager::all_same_avl_p): New function.
7662 (pass_vsetvl::can_refine_vsetvl_p): Add AVL check.
7663 (pass_vsetvl::commit_vsetvls): Ditto.
7664 * config/riscv/riscv-vsetvl.h: New function declaration.
7666 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7668 * config/riscv/vector.md:
7670 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7672 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
7674 * config/riscv/riscv-vector-builtins.cc
7675 (function_expander::add_mem_operand): Refine function.
7676 (function_expander::use_contiguous_load_insn): Adjust new
7678 (function_expander::use_contiguous_store_insn): Ditto.
7679 * config/riscv/riscv-vector-builtins.h: Refine function.
7680 * config/riscv/vector.md (@pred_store<mode>): New pattern.
7682 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7684 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
7686 2023-01-26 Marek Polacek <polacek@redhat.com>
7688 PR middle-end/108543
7689 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
7690 if it was previously set.
7692 2023-01-26 Jakub Jelinek <jakub@redhat.com>
7694 PR tree-optimization/108540
7695 * range-op-float.cc (foperator_equal::fold_range): If both op1 and op2
7696 are singletons, use range_true even if op1 != op2
7697 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
7698 even if intersection of the ranges is empty and one has
7699 zero low bound and another zero high bound, use range_true_and_false
7700 rather than range_false.
7701 (foperator_not_equal::fold_range): If both op1 and op2
7702 are singletons, use range_false even if op1 != op2
7703 when one range is [-0.0, -0.0] and another [0.0, 0.0]. Similarly,
7704 even if intersection of the ranges is empty and one has
7705 zero low bound and another zero high bound, use range_true_and_false
7706 rather than range_true.
7708 2023-01-26 Jakub Jelinek <jakub@redhat.com>
7710 * value-relation.cc (kind_string): Add const.
7711 (rr_negate_table, rr_swap_table, rr_intersect_table,
7712 rr_union_table, rr_transitive_table): Add static const, change
7713 element type from relation_kind to unsigned char.
7714 (relation_negate, relation_swap, relation_intersect, relation_union,
7715 relation_transitive): Cast rr_*_table element to relation_kind.
7716 (relation_to_code): Add static const.
7717 (relation_tests): Assert VREL_LAST is smaller than UCHAR_MAX.
7719 2023-01-26 Richard Biener <rguenther@suse.de>
7721 PR tree-optimization/108547
7722 * gimple-predicate-analysis.cc (value_sat_pred_p):
7725 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
7727 PR tree-optimization/108522
7728 * tree-object-size.cc (compute_object_offset): Make EXPR
7729 argument non-const. Call component_ref_field_offset.
7731 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7733 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
7734 FEATURE_STRING field.
7736 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7738 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
7740 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
7744 * gcc.cc: Provide default specs for Modula-2 so that when the
7745 language is not built-in better diagnostics are emitted for
7746 attempts to use .mod or .m2i file extensions.
7748 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7750 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
7752 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7754 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
7756 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7758 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
7761 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7763 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
7765 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7767 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
7769 2023-01-25 Richard Biener <rguenther@suse.de>
7771 PR tree-optimization/108523
7772 * tree-ssa-sccvn.cc (visit_phi): Avoid using the exclusive
7773 backedge value for the result when using predication to
7776 2023-01-25 Richard Biener <rguenther@suse.de>
7778 * doc/lto.texi (Command line options): Reword and update reference
7779 to removed lto_read_all_file_options.
7781 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
7783 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
7786 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
7788 * doc/contrib.texi: Add Jose E. Marchesi.
7790 2023-01-25 Jakub Jelinek <jakub@redhat.com>
7792 PR tree-optimization/108498
7793 * gimple-ssa-store-merging.cc (class store_operand_info):
7794 End coment with full stop rather than comma.
7795 (split_group): Likewise.
7796 (merged_store_group::apply_stores): Clear string_concatenation if
7797 start or end aren't on a byte boundary.
7799 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
7800 Jakub Jelinek <jakub@redhat.com>
7802 PR tree-optimization/108522
7803 * tree-object-size.cc (compute_object_offset): Use
7804 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
7806 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7808 * config/xtensa/xtensa.md:
7809 Fix exit from loops detecting references before overwriting in the
7812 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
7814 * lra-constraints.cc (get_hard_regno): Remove final_p arg. Always
7815 do elimination but only for hard register.
7816 (operands_match_p, uses_hard_regs_p, process_alt_operands): Adjust
7817 calls of get_hard_regno.
7819 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
7821 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
7824 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
7827 * config/arm/mve.md (mve_vstrbq_p_<supf><mode>, mve_vstrhq_p_fv8hf,
7828 mve_vstrhq_p_<supf><mode>, mve_vstrwq_p_<supf>v4si): Add memory operand
7831 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
7833 * config.gcc(csky-*-linux*): Define CSKY_ENABLE_MULTILIB
7834 and only include 'csky/t-csky-linux' when enable multilib.
7835 * config/csky/csky-linux-elf.h(SYSROOT_SUFFIX_SPEC): Don't
7836 define it when disable multilib.
7838 2023-01-24 Richard Biener <rguenther@suse.de>
7840 PR tree-optimization/108500
7841 * dominance.h (calculate_dominance_info): Add parameter
7842 to indicate fast-query compute, defaulted to true.
7843 * dominance.cc (calculate_dominance_info): Honor
7844 fast-query compute parameter.
7845 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Do
7846 not compute the dominator fast-query DFS numbers.
7848 2023-01-24 Eric Biggers <ebiggers@google.com>
7851 * optc-save-gen.awk: Fix copy-and-paste error.
7853 2023-01-24 Jakub Jelinek <jakub@redhat.com>
7856 * cgraphbuild.cc: Include gimplify.h.
7857 (record_reference): Replace VAR_DECLs with DECL_HAS_VALUE_EXPR_P with
7858 their corresponding DECL_VALUE_EXPR expressions after unsharing.
7860 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7863 * config.gcc (tm_file): Move the variable out of loop.
7865 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
7866 Yang Yujie <yangyujie@loongson.cn>
7869 * config/loongarch/loongarch.cc (loongarch_classify_address):
7870 Add precessint for CONST_INT.
7871 (loongarch_print_operand_reloc): Operand modifier 'c' is supported.
7872 (loongarch_print_operand): Increase the processing of '%c'.
7873 * doc/extend.texi: Adds documents for LoongArch operand modifiers.
7874 And port the public operand modifiers information to this document.
7876 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7878 * doc/invoke.texi (-mbranch-protection): Update documentation.
7880 2023-01-23 Richard Biener <rguenther@suse.de>
7883 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
7885 * config/sparc/linux.h (ENDFILE_SPEC): Likewise.
7886 * config/sparc/linux64.h (ENDFILE_SPEC): Likewise.
7887 * config/sparc/sp-elf.h (ENDFILE_SPEC): Likewise.
7888 * config/sparc/sp64-elf.h (ENDFILE_SPEC): Likewise.
7890 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7892 * config/arm/aout.h (ra_auth_code): Add entry in enum.
7893 * config/arm/arm.cc (emit_multi_reg_push): Add RA_AUTH_CODE register
7894 to dwarf frame expression.
7895 (arm_emit_multi_reg_pop): Restore RA_AUTH_CODE register.
7896 (arm_expand_prologue): Update frame related information and reg notes
7897 for pac/pacbit insn.
7898 (arm_regno_class): Check for pac pseudo reigster.
7899 (arm_dbx_register_number): Assign ra_auth_code register number in dwarf.
7900 (arm_init_machine_status): Set pacspval_needed to zero.
7901 (arm_debugger_regno): Check for PAC register.
7902 (arm_unwind_emit_sequence): Print .save directive with ra_auth_code
7904 (arm_unwind_emit_set): Add entry for IP_REGNUM in switch case.
7905 (arm_unwind_emit): Update REG_CFA_REGISTER case._
7906 * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Modify.
7907 (DWARF_PAC_REGNUM): Define.
7908 (IS_PAC_REGNUM): Likewise.
7909 (enum reg_class): Add PAC_REG entry.
7910 (machine_function): Add pacbti_needed state to structure.
7911 * config/arm/arm.md (RA_AUTH_CODE): Define.
7913 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7915 * config.gcc ($tm_file): Update variable.
7916 * config/arm/arm-mlib.h: Create new header file.
7917 * config/arm/t-rmprofile (MULTI_ARCH_DIRS_RM): Rename mbranch-protection
7918 multilib arch directory.
7919 (MULTILIB_REUSE): Add multilib reuse rules.
7920 (MULTILIB_MATCHES): Add multilib match rules.
7922 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7924 * config/arm/arm-cpus.in (cortex-m85): Define new CPU.
7925 * config/arm/arm-tables.opt: Regenerate.
7926 * config/arm/arm-tune.md: Likewise.
7927 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m85.
7928 * (-mfix-cmse-cve-2021-35465): Likewise.
7930 2023-01-23 Richard Biener <rguenther@suse.de>
7932 PR tree-optimization/108482
7933 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
7934 .LOOP_DIST_ALIAS calls.
7936 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7938 * config.gcc (arm*-*-*): Add 'aarch-bti-insert.o' object.
7939 * config/arm/arm-protos.h: Update.
7940 * config/arm/aarch-common-protos.h: Declare
7941 'aarch_bti_arch_check'.
7942 * config/arm/arm.cc (aarch_bti_enabled) Update.
7943 (aarch_bti_j_insn_p, aarch_pac_insn_p, aarch_gen_bti_c)
7944 (aarch_gen_bti_j, aarch_bti_arch_check): New functions.
7945 * config/arm/arm.md (bti_nop): New insn.
7946 * config/arm/t-arm (PASSES_EXTRA): Add 'arm-passes.def'.
7947 (aarch-bti-insert.o): New target.
7948 * config/arm/unspecs.md (VUNSPEC_BTI_NOP): New unspec.
7949 * config/arm/aarch-bti-insert.cc (rest_of_insert_bti): Verify arch
7951 (gate): Make use of 'aarch_bti_arch_check'.
7952 * config/arm/arm-passes.def: New file.
7953 * config/aarch64/aarch64.cc (aarch_bti_arch_check): New function.
7955 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7957 * config.gcc (aarch64*-*-*): Rename 'aarch64-bti-insert.o' into
7958 'aarch-bti-insert.o'.
7959 * config/aarch64/aarch64-protos.h: Remove 'aarch64_bti_enabled'
7961 * config/aarch64/aarch64.cc (aarch_bti_enabled): Rename.
7962 (aarch_bti_j_insn_p, aarch_pac_insn_p): New functions.
7963 (aarch64_output_mi_thunk)
7964 (aarch64_print_patchable_function_entry)
7965 (aarch64_file_end_indicate_exec_stack): Update renamed function
7966 calls to renamed functions.
7967 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Likewise.
7968 * config/aarch64/t-aarch64 (aarch-bti-insert.o): Update
7970 * config/aarch64/aarch64-bti-insert.cc: Delete.
7971 * config/arm/aarch-bti-insert.cc: New file including and
7972 generalizing code from aarch64-bti-insert.cc.
7973 * config/arm/aarch-common-protos.h: Update.
7975 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7977 * config/arm/arm.h (arm_arch8m_main): Declare it.
7978 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
7980 * config/arm/arm.cc (arm_arch8m_main): Define it.
7981 (arm_option_reconfigure_globals): Set arm_arch8m_main.
7982 (arm_compute_frame_layout, arm_expand_prologue)
7983 (thumb2_expand_return, arm_expand_epilogue)
7984 (arm_conditional_register_usage): Update for pac codegen.
7985 (arm_current_function_pac_enabled_p): New function.
7986 (aarch_bti_enabled) New function.
7987 (use_return_insn): Return zero when pac is enabled.
7988 * config/arm/arm.md (pac_ip_lr_sp, pacbti_ip_lr_sp, aut_ip_lr_sp):
7990 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
7991 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
7993 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7995 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
7998 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7999 Tejas Belagod <tbelagod@arm.com>
8001 * config/arm/arm.cc (arm_file_start): Emit EABI attributes for
8002 Tag_PAC_extension, Tag_BTI_extension, TAG_BTI_use, TAG_PACRET_use.
8004 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8005 Tejas Belagod <tbelagod@arm.com>
8006 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8008 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
8009 new pseudo register class _UVRSC_PAC.
8011 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8012 Tejas Belagod <tbelagod@arm.com>
8014 * config/arm/arm-c.cc (arm_cpu_builtins): Define
8015 __ARM_FEATURE_BTI_DEFAULT, __ARM_FEATURE_PAC_DEFAULT,
8016 __ARM_FEATURE_PAUTH and __ARM_FEATURE_BTI.
8018 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8019 Tejas Belagod <tbelagod@arm.com>
8021 * doc/sourcebuild.texi: Document arm_pacbti_hw.
8023 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8024 Tejas Belagod <tbelagod@arm.com>
8025 Richard Earnshaw <Richard.Earnshaw@arm.com>
8027 * config/arm/arm.cc (arm_configure_build_target): Parse and validate
8028 -mbranch-protection option and initialize appropriate data structures.
8029 * config/arm/arm.opt (-mbranch-protection): New option.
8030 * doc/invoke.texi (Arm Options): Document it.
8032 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8033 Tejas Belagod <tbelagod@arm.com>
8035 * config/arm/arm.h (TARGET_HAVE_PACBTI): New macro.
8036 * config/arm/arm-cpus.in (pacbti): New feature.
8037 * doc/invoke.texi (Arm Options): Document it.
8039 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8040 Tejas Belagod <tbelagod@arm.com>
8042 * common/config/aarch64/aarch64-common.cc: Include aarch-common.h.
8043 (all_architectures): Fix comment.
8044 (aarch64_parse_extension): Rename return type, enum value names.
8045 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Rename
8046 factored out aarch_ra_sign_scope and aarch_ra_sign_key variables.
8047 Also rename corresponding enum values.
8048 * config/aarch64/aarch64-opts.h (aarch64_function_type): Factor
8049 out aarch64_function_type and move it to common code as
8050 aarch_function_type in aarch-common.h.
8051 * config/aarch64/aarch64-protos.h: Include common types header,
8052 move out types aarch64_parse_opt_result and aarch64_key_type to
8054 * config/aarch64/aarch64.cc: Move mbranch-protection parsing types
8055 and functions out into aarch-common.h and aarch-common.cc. Fix up
8056 all the name changes resulting from the move.
8057 * config/aarch64/aarch64.md: Fix up aarch64_ra_sign_key type name change
8059 * config/aarch64/aarch64.opt: Include aarch-common.h to import
8060 type move. Fix up name changes from factoring out common code and
8062 * config/arm/aarch-common-protos.h: Export factored out routines to both
8064 * config/arm/aarch-common.cc: Include newly factored out types.
8065 Move all mbranch-protection code and data structures from
8067 * config/arm/aarch-common.h: New header that declares types shared
8068 between aarch32 and aarch64 backends.
8069 * config/arm/arm-protos.h: Declare types and variables that are
8070 made common to aarch64 and aarch32 backends - aarch_ra_sign_key,
8071 aarch_ra_sign_scope and aarch_enable_bti.
8072 * config/arm/arm.opt (config/arm/aarch-common.h): Include header.
8073 (aarch_ra_sign_scope, aarch_enable_bti): Declare variable.
8074 * config/arm/arm.cc: Add missing includes.
8076 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
8078 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
8080 2023-01-23 Richard Biener <rguenther@suse.de>
8082 PR tree-optimization/108449
8083 * cgraphunit.cc (check_global_declaration): Do not turn
8084 undefined statics into externs.
8086 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
8088 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
8090 * config/pru/pru.md (clz): Fix generated code for QI and HI
8093 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
8095 * config/v850/v850.cc (v850_select_section): Put const volatile
8096 objects into read-only sections.
8098 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
8100 * config/aarch64/arm_neon.h (vmull_p64, vmull_high_p64, vaeseq_u8,
8101 vaesdq_u8, vaesmcq_u8, vaesimcq_u8): Gate under "nothing+aes".
8102 (vsha1*_u32, vsha256*_u32): Gate under "nothing+sha2".
8104 2023-01-20 Jakub Jelinek <jakub@redhat.com>
8106 PR tree-optimization/108457
8107 * tree-ssa-loop-niter.cc (build_cltz_expr): Use
8108 SCALAR_INT_TYPE_MODE (utype) directly as C[LT]Z_DEFINED_VALUE_AT_ZERO
8109 argument instead of a temporary. Formatting fixes.
8111 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8113 PR tree-optimization/108447
8114 * value-relation.cc (rr_union_table): Fix VREL_UNDEFINED row order.
8115 (relation_tests): Add self-tests for relation_{intersect,union}
8117 * selftest.h (relation_tests): Declare.
8118 * function-tests.cc (test_ranges): Call it.
8120 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
8123 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
8124 invalid third argument to __builtin_ia32_prefetch.
8126 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8128 PR middle-end/108459
8129 * omp-expand.cc (expand_omp_for_init_counts): Use fold_build1 rather
8130 than fold_unary for NEGATE_EXPR.
8132 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
8135 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
8136 comment. Move assert about alignment a bit later.
8138 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8140 PR tree-optimization/108440
8141 * tree-ssa-forwprop.cc: Include gimple-range.h.
8142 (simplify_rotate): For the forms with T2 wider than T and shift counts of
8143 Y and B - Y add & (B - 1) masking for the rotate count if Y could be equal
8144 to B. For the forms with T2 wider than T and shift counts of
8145 Y and (-Y) & (B - 1), don't punt if range could be [B, B2], but only if
8146 range doesn't guarantee Y < B or Y = N * B. If range doesn't guarantee
8147 Y < B, also add & (B - 1) masking for the rotate count. Use lazily created
8148 pass specific ranger instead of get_global_range_query.
8149 (pass_forwprop::execute): Disable that ranger at the end of pass if it has
8152 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8154 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
8155 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
8157 (aarch64_simd_vec_copy_lane<mode>): Likewise.
8158 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8160 2023-01-19 Alexandre Oliva <oliva@adacore.com>
8163 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
8166 2023-01-18 Martin Jambor <mjambor@suse.cz>
8169 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
8170 lcone_of chain also do not need the body.
8172 2023-01-18 Richard Biener <rguenther@suse.de>
8175 2022-12-16 Richard Biener <rguenther@suse.de>
8177 PR middle-end/108086
8178 * tree-inline.cc (remap_ssa_name): Do not unshare the
8179 result from the decl_map.
8181 2023-01-18 Murray Steele <murray.steele@arm.com>
8184 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
8186 (__arm_vst1q_p_s8): Likewise.
8187 (__arm_vld1q_z_u8): Likewise.
8188 (__arm_vld1q_z_s8): Likewise.
8189 (__arm_vst1q_p_u16): Likewise.
8190 (__arm_vst1q_p_s16): Likewise.
8191 (__arm_vld1q_z_u16): Likewise.
8192 (__arm_vld1q_z_s16): Likewise.
8193 (__arm_vst1q_p_u32): Likewise.
8194 (__arm_vst1q_p_s32): Likewise.
8195 (__arm_vld1q_z_u32): Likewise.
8196 (__arm_vld1q_z_s32): Likewise.
8197 (__arm_vld1q_z_f16): Likewise.
8198 (__arm_vst1q_p_f16): Likewise.
8199 (__arm_vld1q_z_f32): Likewise.
8200 (__arm_vst1q_p_f32): Likewise.
8202 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8204 * config/xtensa/xtensa.md (xorsi3_internal):
8205 Rename from the original of "xorsi3".
8206 (xorsi3): New expansion pattern that emits addition rather than
8207 bitwise-XOR when the second source is a constant of -2147483648
8210 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
8211 Andrew Pinski <apinski@marvell.com>
8214 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
8215 vec_vsubcuqP with vec_vsubcuq.
8217 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
8220 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
8221 support for invalid uses of MMA opaque type in function arguments.
8223 2023-01-18 liuhongt <hongtao.liu@intel.com>
8226 * config/i386/cygwin.h (ENDFILE_SPEC): Link crtfastmath.o
8227 whenever -mdaz-ftz is specified. Don't link crtfastmath.o when
8228 -share or -mno-daz-ftz is specified.
8229 * config/i386/darwin.h (ENDFILE_SPEC): Ditto.
8230 * config/i386/mingw32.h (ENDFILE_SPEC): Ditto.
8232 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
8234 * config/bpf/bpf.cc (bpf_option_override): Disable
8237 2023-01-17 Jakub Jelinek <jakub@redhat.com>
8239 PR tree-optimization/106523
8240 * tree-ssa-forwprop.cc (simplify_rotate): For the
8241 patterns with (-Y) & (B - 1) in one operand's shift
8242 count and Y in another, if T2 has wider precision than T,
8243 punt if Y could have a value in [B, B2 - 1] range.
8245 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
8248 * config/i386/i386.cc (x86_output_mi_thunk): Disable
8249 -mforce-indirect-call for PIC in 32-bit mode.
8251 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
8254 * ipa-modref.cc (modref_access_analysis::analyze): Use
8255 find_always_executed_bbs.
8256 * ipa-sra.cc (process_scan_results): Likewise.
8257 * ipa-utils.cc (stmt_may_terminate_function_p): New function.
8258 (find_always_executed_bbs): New function.
8259 * ipa-utils.h (stmt_may_terminate_function_p): Declare.
8260 (find_always_executed_bbs): Declare.
8262 2023-01-16 Jan Hubicka <jh@suse.cz>
8264 * config/i386/i386.cc (ix86_vectorize_builtin_scatter): Guard scatter
8265 by TARGET_USE_SCATTER.
8266 * config/i386/i386.h (TARGET_USE_SCATTER_2PARTS,
8267 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New macros.
8268 * config/i386/x86-tune.def (TARGET_USE_SCATTER_2PARTS,
8269 TARGET_USE_SCATTER_4PARTS, TARGET_USE_SCATTER): New tunes.
8270 (X86_TUNE_AVOID_256FMA_CHAINS, X86_TUNE_AVOID_512FMA_CHAINS): Disable
8271 for znver4. (X86_TUNE_USE_GATHER): Disable for zen4.
8273 2023-01-16 Richard Biener <rguenther@suse.de>
8276 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
8278 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
8282 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
8283 (__ARM_mve_coerce3): Likewise.
8285 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8287 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
8289 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8291 * tree-ssa-loop-niter.cc (number_of_iterations_cltz): New.
8292 (number_of_iterations_bitcount): Add call to the above.
8293 (number_of_iterations_exit_assumptions): Add EQ_EXPR case for
8294 c[lt]z idiom recognition.
8296 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8298 * doc/sourcebuild.texi: Add missing target attributes.
8300 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8302 PR tree-optimization/94793
8303 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
8305 * tree-ssa-loop-niter.cc (build_cltz_expr): New.
8306 (number_of_iterations_cltz_complement): New.
8307 (number_of_iterations_bitcount): Add call to the above.
8309 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
8311 * doc/extend.texi (Common Function Attributes): Fix grammar.
8313 2023-01-16 Jakub Jelinek <jakub@redhat.com>
8316 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
8317 * config/riscv/riscv-vsetvl.cc: Likewise.
8319 2023-01-16 Jakub Jelinek <jakub@redhat.com>
8322 * config/i386/xmmintrin.h (_mm_undefined_ps): Temporarily
8323 disable -Winit-self using pragma GCC diagnostic ignored.
8324 * config/i386/emmintrin.h (_mm_undefined_pd, _mm_undefined_si128):
8326 * config/i386/avxintrin.h (_mm256_undefined_pd, _mm256_undefined_ps,
8327 _mm256_undefined_si256): Likewise.
8328 * config/i386/avx512fintrin.h (_mm512_undefined_pd,
8329 _mm512_undefined_ps, _mm512_undefined_epi32): Likewise.
8330 * config/i386/avx512fp16intrin.h (_mm_undefined_ph,
8331 _mm256_undefined_ph, _mm512_undefined_ph): Likewise.
8333 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
8336 * config/rs6000/rs6000.cc (rs6000_opaque_type_invalid_use_p): Add the
8337 support for invalid uses in inline asm, factor out the checking and
8338 erroring to lambda function check_and_error_invalid_use.
8340 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
8342 PR tree-optimization/107608
8343 * range-op-float.cc (range_operator_float::fold_range): Avoid
8344 folding into INF when flag_trapping_math.
8345 * value-range.h (frange::known_isinf): Return false for possible NANs.
8347 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8349 * config.gcc (csky-*-*): Support --with-float=softfp.
8351 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8353 * config/xtensa/xtensa-protos.h (order_regs_for_local_alloc):
8354 Rename to xtensa_adjust_reg_alloc_order.
8355 * config/xtensa/xtensa.cc (xtensa_adjust_reg_alloc_order):
8356 Ditto. And also remove code to reorder register numbers for
8357 leaf functions, rename the tables, and adjust the allocation
8358 order for the call0 ABI to use register A0 more.
8359 (xtensa_leaf_regs): Remove.
8360 * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Cosmetics.
8361 (order_regs_for_local_alloc): Rename as the above.
8362 (LEAF_REGISTERS, LEAF_REG_REMAP, leaf_function): Remove.
8364 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8366 * config/aarch64/aarch64-sve.md (aarch64_vec_duplicate_vq<mode>_le):
8367 Change to define_insn_and_split to fold ldr+dup to ld1rq.
8368 * config/aarch64/predicates.md (aarch64_sve_dup_ld1rq_operand): New.
8370 2023-01-14 Alexandre Oliva <oliva@adacore.com>
8372 * hash-table.h (is_deleted): Precheck !is_empty.
8373 (mark_deleted): Postcheck !is_empty.
8374 (copy constructor): Test is_empty before is_deleted.
8376 2023-01-14 Alexandre Oliva <oliva@adacore.com>
8379 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
8382 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
8384 PR rtl-optimization/108274
8385 * function.cc (thread_prologue_and_epilogue_insns): Also update the
8386 DF information for calls in a few more cases.
8388 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
8390 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
8391 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
8393 * config/pa/pa.h (TARGET_SYNC_LIBCALLS): Use flag_sync_libcalls.
8394 (MAX_SYNC_LIBFUNC_SIZE): Define.
8395 (TARGET_CPU_CPP_BUILTINS): Define __SOFTFP__ when soft float is
8397 * config/pa/pa.md (atomic_storeqi): Emit __atomic_exchange_1
8398 libcall when sync libcalls are disabled.
8399 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
8400 (atomic_loaddi): Emit __atomic_load_8 libcall when sync libcalls
8401 are disabled on 32-bit target.
8402 * config/pa/pa.opt (matomic-libcalls): New option.
8403 * doc/invoke.texi (HPPA Options): Update.
8405 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
8407 PR rtl-optimization/108117
8408 PR rtl-optimization/108132
8409 * sched-deps.cc (deps_analyze_insn): Do not schedule across
8410 calls before reload.
8412 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8414 * common/config/arm/arm-common.cc (arm_canon_arch_option_1): Ignore cde
8415 options for -mlibarch.
8416 * config/arm/arm-cpus.in (begin cpu cortex-m55): Add cde options.
8417 * doc/invoke.texi (CDE): Document options for Cortex-M55 CPU.
8419 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
8421 * attribs.cc (strict_flex_array_level_of): Move this function to ...
8422 * attribs.h (strict_flex_array_level_of): Remove the declaration.
8423 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref):
8424 replace the referece to strict_flex_array_level_of with
8426 * tree.cc (component_ref_size): Likewise.
8428 2023-01-13 Richard Biener <rguenther@suse.de>
8431 * config/arm/linux-eabi.h (ENDFILE_SPEC): Don't add
8432 crtfastmath.o for -shared.
8433 * config/arm/unknown-elf.h (STARTFILE_SPEC): Likewise.
8435 2023-01-13 Richard Biener <rguenther@suse.de>
8438 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Don't add
8439 crtfastmath.o for -shared.
8440 * config/aarch64/aarch64-freebsd.h (GNU_USER_TARGET_MATHFILE_SPEC):
8442 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
8445 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
8447 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
8449 (TARGET_DWARF_FRAME_REG_MODE): Define.
8451 2023-01-13 Richard Biener <rguenther@suse.de>
8454 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
8455 update EH info on the fly.
8457 2023-01-13 Richard Biener <rguenther@suse.de>
8459 PR tree-optimization/108387
8460 * tree-ssa-sccvn.cc (visit_nary_op): Check for SSA_NAME
8461 value before inserting expression into the tables.
8463 2023-01-12 Andrew Pinski <apinski@marvell.com>
8464 Roger Sayle <roger@nextmovesoftware.com>
8466 PR tree-optimization/92342
8467 * match.pd ((m1 CMP m2) * d -> (m1 CMP m2) ? d : 0):
8468 Use tcc_comparison and :c for the multiply.
8469 (b & -(a CMP c) -> (a CMP c)?b:0): New pattern.
8471 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
8472 Richard Sandiford <richard.sandiford@arm.com>
8475 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment):
8476 Check DECL_PACKED for bitfield.
8477 (aarch64_layout_arg): Warn when parameter passing ABI changes.
8478 (aarch64_function_arg_boundary): Do not warn here.
8479 (aarch64_gimplify_va_arg_expr): Warn when parameter passing ABI
8482 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
8483 Richard Sandiford <richard.sandiford@arm.com>
8485 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
8487 (aarch64_layout_arg): Factorize warning conditions.
8488 (aarch64_function_arg_boundary): Fix typo.
8489 * function.cc (currently_expanding_function_start): New variable.
8490 (expand_function_start): Handle
8491 currently_expanding_function_start.
8492 * function.h (currently_expanding_function_start): Declare.
8494 2023-01-12 Richard Biener <rguenther@suse.de>
8496 PR tree-optimization/99412
8497 * tree-ssa-reassoc.cc (is_phi_for_stmt): Remove.
8498 (swap_ops_for_binary_stmt): Remove reduction handling.
8499 (rewrite_expr_tree_parallel): Adjust.
8500 (reassociate_bb): Likewise.
8501 * tree-parloops.cc (build_new_reduction): Handle MINUS_EXPR.
8503 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8505 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
8506 Rearrange the emitting codes.
8508 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8510 * config/xtensa/xtensa.md (*btrue):
8511 Correct value of the attribute "length" that depends on
8512 TARGET_DENSITY and operands, and add '?' character to the register
8513 constraint of the compared operand.
8515 2023-01-12 Alexandre Oliva <oliva@adacore.com>
8517 * hash-table.h (expand): Check elements and deleted counts.
8520 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
8522 PR tree-optimization/71343
8523 * tree-ssa-sccvn.cc (visit_nary_op) <case LSHIFT_EXPR>: Make
8524 the value number of the expression X << C the same as the value
8525 number for the multiplication X * (1<<C).
8527 2023-01-11 David Faust <david.faust@oracle.com>
8530 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
8531 floating point modes.
8533 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
8535 PR tree-optimization/108199
8536 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
8537 for bit-field references.
8539 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
8541 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make
8542 OPTION_MASK_P10_FUSION implicit setting honour Power10 tuning setting.
8543 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Remove
8544 OPTION_MASK_P10_FUSION.
8546 2023-01-11 Richard Biener <rguenther@suse.de>
8548 PR tree-optimization/107767
8549 * tree-cfgcleanup.cc (phi_alternatives_equal): Export.
8550 * tree-cfgcleanup.h (phi_alternatives_equal): Declare.
8551 * tree-switch-conversion.cc (switch_conversion::collect):
8552 Count unique non-default targets accounting for later
8553 merging opportunities.
8555 2023-01-11 Martin Liska <mliska@suse.cz>
8557 PR middle-end/107976
8558 * params.opt: Limit JT params.
8559 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
8561 2023-01-11 Richard Biener <rguenther@suse.de>
8563 PR tree-optimization/108352
8564 * tree-ssa-threadbackward.cc
8565 (back_threader_profitability::profitable_path_p): Adjust
8566 heuristic that allows non-multi-way branch threads creating
8568 * doc/invoke.texi (--param fsm-scale-path-blocks): Remove.
8569 (--param fsm-scale-path-stmts): Adjust.
8570 * params.opt (--param=fsm-scale-path-blocks=): Remove.
8571 (-param=fsm-scale-path-stmts=): Adjust description.
8573 2023-01-11 Richard Biener <rguenther@suse.de>
8575 PR tree-optimization/108353
8576 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
8578 (add_ssa_edge): Simplify.
8579 (add_control_edge): Likewise.
8580 (ssa_prop_init): Likewise.
8581 (ssa_prop_fini): Likewise.
8582 (ssa_propagation_engine::ssa_propagate): Likewise.
8584 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
8586 * config/s390/s390.md (*not<mode>): New pattern.
8588 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8590 * config/xtensa/xtensa.cc (xtensa_insn_cost):
8591 Let insn cost for size be obtained by applying COSTS_N_INSNS()
8592 to instruction length and then dividing by 3.
8594 2023-01-10 Richard Biener <rguenther@suse.de>
8596 PR tree-optimization/106293
8597 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
8598 process degenerate PHI defs.
8600 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
8602 PR rtl-optimization/106421
8603 * cprop.cc (bypass_block): Check that DEST is local to this
8604 function (non-NULL) before calling find_edge.
8606 2023-01-10 Martin Jambor <mjambor@suse.cz>
8609 * ipa-param-manipulation.h (ipa_param_body_adjustments): New members
8610 sort_replacements, lookup_first_base_replacement and
8611 m_sorted_replacements_p.
8612 * ipa-param-manipulation.cc: Define INCLUDE_ALGORITHM.
8613 (ipa_param_body_adjustments::register_replacement): Set
8614 m_sorted_replacements_p to false.
8615 (compare_param_body_replacement): New function.
8616 (ipa_param_body_adjustments::sort_replacements): Likewise.
8617 (ipa_param_body_adjustments::common_initialization): Call
8619 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize
8620 m_sorted_replacements_p.
8621 (ipa_param_body_adjustments::lookup_replacement_1): Rework to use
8623 (ipa_param_body_adjustments::lookup_first_base_replacement): New
8625 (ipa_param_body_adjustments::modify_call_stmt): Use
8626 lookup_first_base_replacement.
8627 * omp-simd-clone.cc (ipa_simd_modify_function_body): Call
8628 adjustments->sort_replacements.
8630 2023-01-10 Richard Biener <rguenther@suse.de>
8632 PR tree-optimization/108314
8633 * tree-vect-stmts.cc (vectorizable_condition): Do not
8634 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
8636 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8638 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
8640 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8642 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
8644 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8646 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
8647 defines for soft float abi.
8649 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8651 * config/csky/csky.md (smart_bseti): Change condition to CSKY_ISA_FEATURE (E1).
8652 (smart_bclri): Likewise.
8653 (fast_bseti): Change condition to CSKY_ISA_FEATURE (E2).
8654 (fast_bclri): Likewise.
8655 (fast_cmpnesi_i): Likewise.
8656 (*fast_cmpltsi_i): Likewise.
8657 (*fast_cmpgeusi_i): Likewise.
8659 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8661 * config/csky/csky_insn_fpuv3.md (l<frm_pattern><fixsuop><mode>si2): Test
8662 flag_fp_int_builtin_inexact || !flag_trapping_math.
8663 (<frm_pattern><mode>2): Likewise.
8665 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
8667 * config/s390/s390.cc (s390_register_info): Check call_used_regs
8668 instead of hard-coding the register numbers for call saved
8670 (s390_optimize_register_info): Likewise.
8672 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
8674 * doc/gm2.texi (Overview): Fix @node markers.
8675 (Using): Likewise. Remove subsections that were moved to Overview
8676 from the menu and move others around.
8678 2023-01-09 Richard Biener <rguenther@suse.de>
8680 PR middle-end/108209
8681 * genmatch.cc (commutative_op): Fix return value for
8682 user-id with non-commutative first replacement.
8684 2023-01-09 Jakub Jelinek <jakub@redhat.com>
8687 * calls.cc (expand_call): For calls with
8688 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
8691 2023-01-09 Richard Biener <rguenther@suse.de>
8694 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
8695 qualified accesses also force objects to memory.
8697 2023-01-09 Martin Liska <mliska@suse.cz>
8700 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
8701 NULL (deleleted value) to a hash_set.
8703 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8705 * config/xtensa/xtensa.md (*splice_bits):
8706 New insn_and_split pattern.
8708 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8710 * config/xtensa/xtensa.cc
8711 (xtensa_split_imm_two_addends, xtensa_emit_add_imm):
8712 New helper functions.
8713 (xtensa_set_return_address, xtensa_output_mi_thunk):
8714 Change to use the helper function.
8715 (xtensa_emit_adjust_stack_ptr): Ditto.
8716 And also change to try reusing the content of scratch register
8717 A9 if the register is not modified in the function body.
8719 2023-01-07 LIU Hao <lh_mouse@126.com>
8721 PR middle-end/108300
8722 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
8724 * diagnostic-color.cc: Likewise.
8725 * plugin.cc: Likewise.
8726 * prefix.cc: Likewise.
8728 2023-01-06 Joseph Myers <joseph@codesourcery.com>
8730 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
8731 for handling real integer types.
8733 2023-01-06 Tamar Christina <tamar.christina@arm.com>
8736 2022-12-12 Tamar Christina <tamar.christina@arm.com>
8738 * config/aarch64/aarch64-simd.md (*aarch64_simd_movv2hf): New.
8739 (mov<mode>, movmisalign<mode>, aarch64_dup_lane<mode>,
8740 aarch64_store_lane0<mode>, aarch64_simd_vec_set<mode>,
8741 @aarch64_simd_vec_copy_lane<mode>, vec_set<mode>,
8742 reduc_<optab>_scal_<mode>, reduc_<fmaxmin>_scal_<mode>,
8743 aarch64_reduc_<optab>_internal<mode>, aarch64_get_lane<mode>,
8744 vec_init<mode><Vel>, vec_extract<mode><Vel>): Support V2HF.
8745 (aarch64_simd_dupv2hf): New.
8746 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode):
8748 * config/aarch64/iterators.md (VHSDF_P): New.
8749 (V2F, VMOVE, nunits, Vtype, Vmtype, Vetype, stype, VEL,
8750 Vel, q, vp): Add V2HF.
8751 * config/arm/types.md (neon_fp_reduc_add_h): New.
8753 2023-01-06 Martin Liska <mliska@suse.cz>
8755 PR middle-end/107966
8756 * doc/options.texi: Fix Var documentation in internal manual.
8758 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
8761 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8763 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
8764 RTL expansion to allow condition (mask) to be shared/reused,
8765 by avoiding overwriting pseudos and adding REG_EQUAL notes.
8767 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
8769 * common.opt: Add -static-libgm2.
8770 * config/darwin.h (LINK_SPEC): Handle static-libgm2.
8771 * doc/gm2.texi: Document static-libgm2.
8772 * gcc.cc (driver_handle_option): Allow static-libgm2.
8774 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
8776 * common/config/i386/i386-common.cc (processor_alias_table):
8777 Use CPU_ZNVER4 for znver4.
8778 * config/i386/i386.md: Add znver4.md.
8779 * config/i386/znver4.md: New.
8781 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8783 PR tree-optimization/108253
8784 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
8787 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8789 PR middle-end/108237
8790 * generic-match-head.cc: Include tree-pass.h.
8791 (canonicalize_math_p, optimize_vectors_before_lowering_p): Define
8792 to false if cfun and cfun->curr_properties has PROP_gimple_opt_math
8793 resp. PROP_gimple_lvec property set.
8795 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8798 * convert.cc (do_narrow): Punt for MULT_EXPR if original
8799 type doesn't wrap around and -fsanitize=signed-integer-overflow
8801 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
8803 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
8805 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
8806 * common/config/i386/i386-common.cc: Add Emeraldrapids.
8808 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
8810 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
8813 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
8815 * cgraph.h (struct cgraph_node): Add gc_candidate bit, modify
8816 default constructor to initialize it.
8817 * cgraphunit.cc (expand_all_functions): Save gc_candidate functions
8818 for last and iterate to handle recursive calls. Delete leftover
8819 candidates at the end.
8820 * omp-simd-clone.cc (simd_clone_create): Set gc_candidate bit
8822 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
8823 gc_candidate bit when a clone is used.
8825 2023-01-03 Florian Weimer <fweimer@redhat.com>
8828 2023-01-02 Florian Weimer <fweimer@redhat.com>
8830 * dwarf2cfi.cc (init_return_column_size): Remove.
8831 (init_one_dwarf_reg_size): Adjust.
8832 (generate_dwarf_reg_sizes): New function. Extracted
8833 from expand_builtin_init_dwarf_reg_sizes.
8834 (expand_builtin_init_dwarf_reg_sizes): Call
8835 generate_dwarf_reg_sizes.
8836 * target.def (init_dwarf_reg_sizes_extra): Adjust
8838 * config/msp430/msp430.cc
8839 (msp430_init_dwarf_reg_sizes_extra): Adjust.
8840 * config/rs6000/rs6000.cc
8841 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
8842 * doc/tm.texi: Update.
8844 2023-01-03 Florian Weimer <fweimer@redhat.com>
8847 2023-01-02 Florian Weimer <fweimer@redhat.com>
8849 * debug.h (dwarf_reg_sizes_constant): Declare.
8850 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
8852 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
8854 PR tree-optimization/105043
8855 * doc/extend.texi (Object Size Checking): Split out into two
8856 subsections and mention _FORTIFY_SOURCE.
8858 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8860 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Rewrite
8861 RTL expansion to allow condition (mask) to be shared/reused,
8862 by avoiding overwriting pseudos and adding REG_EQUAL notes.
8864 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8867 * config/i386/i386-features.cc
8868 (general_scalar_chain::compute_convert_gain) <case PLUS>: Consider
8869 the gain/cost of converting a MEM operand.
8871 2023-01-03 Jakub Jelinek <jakub@redhat.com>
8873 PR middle-end/108264
8874 * expr.cc (store_expr): For stores into SUBREG_PROMOTED_* targets
8875 from source which doesn't have scalar integral mode first convert
8878 2023-01-03 Jakub Jelinek <jakub@redhat.com>
8880 PR rtl-optimization/108263
8881 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
8884 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
8887 * config/i386/lujiazui.md (lujiazui_div): New automaton.
8888 (lua_div): New unit.
8889 (lua_idiv_qi): Correct unit in the reservation.
8890 (lua_idiv_qi_load): Ditto.
8891 (lua_idiv_hi): Ditto.
8892 (lua_idiv_hi_load): Ditto.
8893 (lua_idiv_si): Ditto.
8894 (lua_idiv_si_load): Ditto.
8895 (lua_idiv_di): Ditto.
8896 (lua_idiv_di_load): Ditto.
8897 (lua_fdiv_SF): Ditto.
8898 (lua_fdiv_SF_load): Ditto.
8899 (lua_fdiv_DF): Ditto.
8900 (lua_fdiv_DF_load): Ditto.
8901 (lua_fdiv_XF): Ditto.
8902 (lua_fdiv_XF_load): Ditto.
8903 (lua_ssediv_SF): Ditto.
8904 (lua_ssediv_load_SF): Ditto.
8905 (lua_ssediv_V4SF): Ditto.
8906 (lua_ssediv_load_V4SF): Ditto.
8907 (lua_ssediv_V8SF): Ditto.
8908 (lua_ssediv_load_V8SF): Ditto.
8909 (lua_ssediv_SD): Ditto.
8910 (lua_ssediv_load_SD): Ditto.
8911 (lua_ssediv_V2DF): Ditto.
8912 (lua_ssediv_load_V2DF): Ditto.
8913 (lua_ssediv_V4DF): Ditto.
8914 (lua_ssediv_load_V4DF): Ditto.
8916 2023-01-02 Florian Weimer <fweimer@redhat.com>
8918 * debug.h (dwarf_reg_sizes_constant): Declare.
8919 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
8921 2023-01-02 Florian Weimer <fweimer@redhat.com>
8923 * dwarf2cfi.cc (init_return_column_size): Remove.
8924 (init_one_dwarf_reg_size): Adjust.
8925 (generate_dwarf_reg_sizes): New function. Extracted
8926 from expand_builtin_init_dwarf_reg_sizes.
8927 (expand_builtin_init_dwarf_reg_sizes): Call
8928 generate_dwarf_reg_sizes.
8929 * target.def (init_dwarf_reg_sizes_extra): Adjust
8931 * config/msp430/msp430.cc
8932 (msp430_init_dwarf_reg_sizes_extra): Adjust.
8933 * config/rs6000/rs6000.cc
8934 (rs6000_init_dwarf_reg_sizes_extra): Likewise.
8935 * doc/tm.texi: Update.
8937 2023-01-02 Jakub Jelinek <jakub@redhat.com>
8939 * gcc.cc (process_command): Update copyright notice dates.
8940 * gcov-dump.cc (print_version): Ditto.
8941 * gcov.cc (print_version): Ditto.
8942 * gcov-tool.cc (print_version): Ditto.
8943 * gengtype.cc (create_file): Ditto.
8944 * doc/cpp.texi: Bump @copying's copyright year.
8945 * doc/cppinternals.texi: Ditto.
8946 * doc/gcc.texi: Ditto.
8947 * doc/gccint.texi: Ditto.
8948 * doc/gcov.texi: Ditto.
8949 * doc/install.texi: Ditto.
8950 * doc/invoke.texi: Ditto.
8952 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
8953 Uroš Bizjak <ubizjak@gmail.com>
8955 * config/i386/i386.md (extendditi2): New define_insn.
8956 (define_split): Use DWIH mode iterator to treat new extendditi2
8957 identically to existing extendsidi2_1.
8958 (define_peephole2): Likewise.
8959 (define_peephole2): Likewise.
8960 (define_Split): Likewise.
8963 Copyright (C) 2023 Free Software Foundation, Inc.
8965 Copying and distribution of this file, with or without modification,
8966 are permitted in any medium without royalty provided the copyright
8967 notice and this notice are preserved.