]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
83857bf81a93f77227431998d1290afc85a30d72
[thirdparty/gcc.git] / gcc / ChangeLog
1 2023-04-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2
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.
6
7 2023-04-24 Andrew Pinski <apinski@marvell.com>
8
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
12
13 2023-04-24 Andrew Pinski <apinski@marvell.com>
14
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
17 manually.
18
19 2023-04-24 Andrew Pinski <apinski@marvell.com>
20
21 * tree-ssa-phiopt.cc (empty_bb_or_one_feeding_into_p):
22 New function.
23 (match_simplify_replacement): Call
24 empty_bb_or_one_feeding_into_p instead of doing it inline.
25
26 2023-04-24 Andrew Pinski <apinski@marvell.com>
27
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.
31
32 2023-04-24 Andrew Pinski <apinski@marvell.com>
33
34 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Rearrange
35 code for better code readability.
36
37 2023-04-24 Andrew Pinski <apinski@marvell.com>
38
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.
43
44 2023-04-24 Patrick Palka <ppalka@redhat.com>
45
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.
52
53 2023-04-24 Frederik Harwath <frederik@codesourcery.com>
54
55 * doc/generic.texi (OpenMP): Add != to allowed
56 conditions and state that vars can be unsigned.
57 * tree.def (OMP_FOR): Likewise.
58
59 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
60
61 * config/aarch64/aarch64-simd.md (mulv2di3): New expander.
62
63 2023-04-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
64
65 * doc/install.texi: Consistently use Solaris rather than Solaris 2.
66 Remove explicit Solaris 11 references.
67 Markup fixes.
68 (Options specification, --with-gnu-as): as and gas always differ
69 on Solaris.
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.
83
84 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
85
86 PR target/109406
87 * config/aarch64/aarch64-sve.md (<optab><mode>3): Handle TARGET_SVE2 MUL
88 case.
89 * config/aarch64/aarch64-sve2.md (*aarch64_mul_unpredicated_<mode>): New
90 pattern.
91
92 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
93
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.
102
103 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
104
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.
114
115 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
116
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.
123
124 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
125
126 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): Rename to...
127 (aarch64_<su>abdl<mode>): ... This. Use standard RTL ops instead of
128 unspec.
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.
132
133 2023-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
134
135 * config/aarch64/aarch64-simd.md
136 (*aarch64_<su>addlv<VDQV_L:mode>_ze<GPI:mode>): New pattern.
137
138 2023-04-24 Richard Biener <rguenther@suse.de>
139
140 * gimple-ssa-split-paths.cc (is_feasible_trace): Avoid
141 last_stmt.
142 * graphite-scop-detection.cc (single_pred_cond_non_loop_exit):
143 Likewise.
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):
154 Likewise.
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):
169 Likewise.
170 (back_threader_profitability::possibly_profitable_path_p):
171 Likewise.
172 * tree-ssa-threadedge.cc (jump_threader::thread_outgoing_edges):
173 Likewise.
174 * tree-switch-conversion.cc (pass_convert_switch::execute):
175 Likewise.
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.
183
184 2023-04-24 Richard Biener <rguenther@suse.de>
185
186 * cfgcleanup.cc (outgoing_edges_match): Use FORWARDER_BLOCK_P.
187
188 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
189
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.
194
195 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
196
197 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::pre_vsetvl): Add function
198 comment for cleanup_insns.
199
200 2023-04-24 Juzhe-Zhong <juzhe.zhong@rivai.ai>
201
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.
205
206 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
207
208 * config/aarch64/aarch64-simd.md (aarch64_float_truncate_lo_): Rename to...
209 (aarch64_float_truncate_lo_<mode><vczle><vczbe>): ... This.
210
211 2023-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
212
213 PR target/99195
214 * config/aarch64/aarch64-simd.md (aarch64_addp<mode>): Rename to...
215 (aarch64_addp<mode><vczle><vczbe>): ... This.
216
217 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
218
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).
222
223 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
224
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.
231
232 2023-04-23 Roger Sayle <roger@nextmovesoftware.com>
233
234 * config/stormy16/stormy16.cc (xstormy16_output_shift): Implement
235 SImode shifts by two by performing a single bit SImode shift twice.
236
237 2023-04-23 Aldy Hernandez <aldyh@redhat.com>
238
239 PR tree-optimization/109593
240 * value-range.cc (frange::operator==): Handle NANs.
241
242 2023-04-23 liuhongt <hongtao.liu@intel.com>
243
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.
247
248 2023-04-22 Andrew Pinski <apinski@marvell.com>
249
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
253 the big if/else.
254
255 2023-04-22 Andrew Pinski <apinski@marvell.com>
256
257 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker):
258 Remove check on empty_block_p.
259
260 2023-04-22 Jakub Jelinek <jakub@redhat.com>
261
262 PR bootstrap/109589
263 * system.h (class auto_mpz): Workaround PR62101 bug in GCC 4.8 and 4.9.
264 * realmpfr.h (class auto_mpfr): Likewise.
265
266 2023-04-22 Jakub Jelinek <jakub@redhat.com>
267
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.
271
272 2023-04-22 Jan Hubicka <hubicka@ucw.cz>
273 Ondrej Kubanek <kubanek0ondrej@gmail.com>
274
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.
281
282 2023-04-21 Andrew MacLeod <amacleod@redhat.com>
283
284 PR tree-optimization/109546
285 * tree-vrp.cc (remove_unreachable::remove_and_update_globals): Do
286 not fold conditions with ADDR_EXPR early.
287
288 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
289
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
292 for umax.
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.
297
298 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
299
300 PR target/108779
301 * config/aarch64/aarch64-opts.h (enum aarch64_tp_reg): Define.
302 * config/aarch64/aarch64-protos.h (aarch64_output_load_tp):
303 Define prototype.
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.
310 (mtp=): New option.
311 * doc/invoke.texi (AArch64 Options): Document -mtp=.
312
313 2023-04-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
314
315 PR target/99195
316 * config/aarch64/aarch64-simd.md (add_vec_concat_subst_le): Define.
317 (add_vec_concat_subst_be): Likewise.
318 (vczle): Likewise.
319 (vczbe): 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.
333
334 2023-04-21 Patrick Palka <ppalka@redhat.com>
335
336 * tree.cc (walk_tree_1): Avoid repeatedly dereferencing tp
337 and type_p.
338
339 2023-04-21 Jan Hubicka <jh@suse.cz>
340
341 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Fix previous
342 commit.
343
344 2023-04-21 Vineet Gupta <vineetg@rivosinc.com>
345
346 * expmed.h (x_shift*_cost): convert to int [speed][mode][shift].
347 (shift*_cost_ptr ()): Access x_shift*_cost array directly.
348
349 2023-04-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
350
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.
354
355 2023-04-21 Uroš Bizjak <ubizjak@gmail.com>
356
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.
371
372 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
373 Ondrej Kubanek <kubanek0ondrej@gmail.com>
374
375 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Update loop header and
376 latch.
377
378 2023-04-21 Richard Biener <rguenther@suse.de>
379
380 * is-a.h (safe_is_a): New.
381
382 2023-04-21 Richard Biener <rguenther@suse.de>
383
384 * gimple-iterator.h (gimple_stmt_iterator::operator*): Add.
385 (gphi_iterator::operator*): Likewise.
386
387 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
388 Michal Jires <michal@jires.eu>
389
390 * ipa-inline.cc (class inline_badness): New class.
391 (edge_heap_t, edge_heap_node_t): Use inline_badness for badness instead
392 of sreal.
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.
398
399 2023-04-21 Jan Hubicka <hubicka@ucw.cz>
400
401 * ipa-devirt.cc (odr_types_equivalent_p): Cleanup warned checks.
402
403 2023-04-21 Richard Biener <rguenther@suse.de>
404
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.
408
409 2023-04-21 Richard Biener <rguenther@suse.de>
410
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.
419
420 2023-04-21 Richard Biener <rguenther@suse.de>
421
422 * cfganal.h (inverted_rev_post_order_compute): Rename
423 from ...
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.
431
432 2023-04-21 Richard Biener <rguenther@suse.de>
433
434 * df.h (df_d::postorder_inverted): Change back to int *,
435 clarify comments.
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
439 graph. Adjust.
440 (loop_inverted_post_order_compute): Adjust API.
441 (df_analyze_loop): Adjust.
442 (df_get_n_blocks): Likewise.
443 (df_get_postorder): Likewise.
444
445 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
446
447 PR target/108270
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.
452
453 2023-04-21 Robin Dapp <rdapp@ventanamicro.com>
454
455 PR target/109582
456 * config/riscv/generic.md: Change standard names to insn names.
457
458 2023-04-21 Richard Biener <rguenther@suse.de>
459
460 * lcm.cc (compute_antinout_edge): Use RPO on the inverted graph.
461 (compute_laterin): Use RPO.
462 (compute_available): Likewise.
463
464 2023-04-21 Peng Fan <fanpeng@loongson.cn>
465
466 * config/loongarch/gnu-user.h (MUSL_DYNAMIC_LINKER): Redefine.
467
468 2023-04-21 Juzhe-Zhong <juzhe.zhong@rivai.ai>
469
470 PR target/109547
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.
477
478 2023-04-20 Alejandro Colomar <alx.manpages@gmail.com>
479
480 * doc/extend.texi (Common Function Attributes): Remove duplicate
481 word.
482
483 2023-04-20 Andrew MacLeod <amacleod@redhat.com>
484
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,
488
489 2023-04-20 Jakub Jelinek <jakub@redhat.com>
490
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).
495
496 2023-04-20 Vladimir N. Makarov <vmakarov@redhat.com>
497
498 * lra-constraints.cc (match_reload): Exclude some hard regs for
499 multi-reg inout reload pseudos used in asm in different mode.
500
501 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
502
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.
512
513 2023-04-20 Uros Bizjak <ubizjak@gmail.com>
514
515 PR target/78952
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.
525 (*extzvqi): Ditto.
526 (*insvqi_2): 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.
546
547 2023-04-20 Raphael Zinsly <rzinsly@ventanamicro.com>
548
549 PR target/108248
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,
554 min, max.
555 * config/riscv/riscv.md (type attribute): Add types for clz, ctz,
556 pcnt, signed and unsigned min/max.
557
558 2023-04-20 Juzhe-Zhong <juzhe.zhong@rivai.ai>
559 kito-cheng <kito.cheng@sifive.com>
560
561 * config/riscv/riscv.h (enum reg_class): Fix RVV register order.
562
563 2023-04-20 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
564 kito-cheng <kito.cheng@sifive.com>
565
566 PR target/109535
567 * config/riscv/riscv-vsetvl.cc (count_regno_occurrences): New function.
568 (pass_vsetvl::cleanup_insns): Fix bug.
569
570 2023-04-20 Andrew Stubbs <ams@codesourcery.com>
571
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".
575
576 2023-04-20 Jakub Jelinek <jakub@redhat.com>
577 Jonathan Wakely <jwakely@redhat.com>
578
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.
594
595 2023-04-20 Jakub Jelinek <jakub@redhat.com>
596
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
603 case.
604 (vect_vect_recog_func_ptrs): Add ctz_ffs entry.
605
606 2023-04-20 Richard Biener <rguenther@suse.de>
607
608 * df-core.cc (rest_of_handle_df_initialize): Remove
609 computation of df->postorder, df->postorder_inverted and
610 df->n_blocks.
611
612 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
613
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):
621 Ditto.
622 * config/i386/i386.md (aes): New isa attribute.
623 * config/i386/sse.md (aesenc): Add pattern for VAES with xmm.
624 (aesenclast): Ditto.
625 (aesdec): Ditto.
626 (aesdeclast): Ditto.
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.
632
633 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
634
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.
709
710 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
711
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
721 push.
722
723 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
724
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
742 to VF_AVX512HFBFVL.
743
744 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
745
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
759 VI12_AVX512VL.
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
764 VI12_VI48F_AVX512VL.
765
766 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
767
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.
782
783 2023-04-20 Haochen Jiang <haochen.jiang@intel.com>
784
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
788 clauses to macro.
789
790 2023-04-20 Mo, Zewei <zewei.mo@intel.com>
791
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,
794 %ecx == 1).
795
796 2023-04-20 Hu, Lin1 <lin1.hu@intel.com>
797
798 * config/i386/sse.md: Modify insn vperm{i,f}
799 and vshuf{i,f}.
800
801 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
802
803 * config/xtensa/xtensa-opts.h: New header.
804 * config/xtensa/xtensa.h (STRICT_ALIGNMENT): Redefine as
805 xtensa_strict_align.
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.
812
813 2023-04-19 Max Filippov <jcmvbkbc@gmail.com>
814
815 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v4): New
816 function.
817
818 2023-04-19 Andrew Pinski <apinski@marvell.com>
819
820 * config/i386/i386.md (*movsicc_noc_zext_1): New pattern.
821
822 2023-04-19 Juzhe-Zhong <juzhe.zhong@rivai.ai>
823
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.
830 (RVV_MODES): Ditto.
831 (VECTOR_MODE_WITH_PREFIX): Ditto.
832 * config/riscv/riscv-v.cc (ENTRY): Ditto.
833 (get_vlmul): Ditto.
834 (get_ratio): Ditto.
835 * config/riscv/riscv-vector-builtins.cc (DEF_RVV_TYPE): Ditto.
836 * config/riscv/riscv-vector-builtins.def (DEF_RVV_TYPE): Ditto.
837 (vbool64_t): Ditto.
838 (vbool32_t): Ditto.
839 (vbool16_t): Ditto.
840 (vbool8_t): Ditto.
841 (vbool4_t): Ditto.
842 (vbool2_t): Ditto.
843 (vbool1_t): Ditto.
844 (vint8mf8_t): Ditto.
845 (vuint8mf8_t): Ditto.
846 (vint8mf4_t): Ditto.
847 (vuint8mf4_t): Ditto.
848 (vint8mf2_t): Ditto.
849 (vuint8mf2_t): Ditto.
850 (vint8m1_t): Ditto.
851 (vuint8m1_t): Ditto.
852 (vint8m2_t): Ditto.
853 (vuint8m2_t): Ditto.
854 (vint8m4_t): Ditto.
855 (vuint8m4_t): Ditto.
856 (vint8m8_t): Ditto.
857 (vuint8m8_t): Ditto.
858 (vint16mf4_t): Ditto.
859 (vuint16mf4_t): Ditto.
860 (vint16mf2_t): Ditto.
861 (vuint16mf2_t): Ditto.
862 (vint16m1_t): Ditto.
863 (vuint16m1_t): Ditto.
864 (vint16m2_t): Ditto.
865 (vuint16m2_t): Ditto.
866 (vint16m4_t): Ditto.
867 (vuint16m4_t): Ditto.
868 (vint16m8_t): Ditto.
869 (vuint16m8_t): Ditto.
870 (vint32mf2_t): Ditto.
871 (vuint32mf2_t): Ditto.
872 (vint32m1_t): Ditto.
873 (vuint32m1_t): Ditto.
874 (vint32m2_t): Ditto.
875 (vuint32m2_t): Ditto.
876 (vint32m4_t): Ditto.
877 (vuint32m4_t): Ditto.
878 (vint32m8_t): Ditto.
879 (vuint32m8_t): Ditto.
880 (vint64m1_t): Ditto.
881 (vuint64m1_t): Ditto.
882 (vint64m2_t): Ditto.
883 (vuint64m2_t): Ditto.
884 (vint64m4_t): Ditto.
885 (vuint64m4_t): Ditto.
886 (vint64m8_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.
912
913 2023-04-19 Pan Li <pan2.li@intel.com>
914
915 * simplify-rtx.cc (simplify_context::simplify_binary_operation_1):
916 Align IOR (A | (~A) -> -1) optimization MODE_CLASS condition to AND.
917
918 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
919
920 PR target/78904
921 PR target/78952
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.
932
933 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
934
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.
940
941 2023-04-19 Richard Biener <rguenther@suse.de>
942
943 * tree-ssa-structalias.cc (do_ds_constraint): Use
944 solve_add_graph_edge.
945
946 2023-04-19 Richard Biener <rguenther@suse.de>
947
948 * tree-ssa-structalias.cc (solve_add_graph_edge): New function,
949 split out from ...
950 (do_sd_constraint): ... here.
951
952 2023-04-19 Richard Biener <rguenther@suse.de>
953
954 * tree-cfg.cc (gimple_can_merge_blocks_p): Remove condition
955 rejecting the merge when A contains only a non-local label.
956
957 2023-04-19 Uros Bizjak <ubizjak@gmail.com>
958
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.
967
968 2023-04-19 Aldy Hernandez <aldyh@redhat.com>
969
970 * value-range.h (Value_Range::Value_Range): Avoid pointer sharing.
971
972 2023-04-19 Richard Biener <rguenther@suse.de>
973
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):
981 Use auto_mpz.
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.
987
988 2023-04-19 Richard Biener <rguenther@suse.de>
989
990 * tree-ssa-structalias.cc (solve_graph): Remove self-copy
991 edges, remove edges from escaped after special-casing them.
992
993 2023-04-19 Richard Biener <rguenther@suse.de>
994
995 * tree-ssa-structalias.cc (do_sd_constraint): Fixup escape
996 special casing.
997
998 2023-04-19 Richard Biener <rguenther@suse.de>
999
1000 * tree-ssa-structalias.cc (do_sd_constraint): Do not write
1001 to the LHS varinfo solution member.
1002
1003 2023-04-19 Richard Biener <rguenther@suse.de>
1004
1005 * tree-ssa-structalias.cc (topo_visit): Look at the real
1006 destination of edges.
1007
1008 2023-04-19 Richard Biener <rguenther@suse.de>
1009
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.
1013
1014 2023-04-19 Xi Ruoyao <xry111@xry111.site>
1015
1016 PR target/109465
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.
1038
1039 2023-04-19 Xi Ruoyao <xry111@xry111.site>
1040
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.
1044
1045 2023-04-19 Richard Biener <rguenther@suse.de>
1046
1047 * tree-ssa-loop-manip.cc (determine_exit_conditions): Fix
1048 no epilogue condition.
1049
1050 2023-04-19 Richard Biener <rguenther@suse.de>
1051
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
1056 as load.
1057
1058 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1059
1060 * config/aarch64/aarch64-simd-builtins.def (neg): Delete builtins
1061 definition.
1062 * config/aarch64/arm_fp16.h (vnegh_f16): Reimplement using normal negation.
1063
1064 2023-04-19 Jakub Jelinek <jakub@redhat.com>
1065
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.
1072
1073 2023-04-19 Jakub Jelinek <jakub@redhat.com>
1074
1075 PR target/109040
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.
1079
1080 2023-04-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1081
1082 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set_zero<mode>):
1083 New pattern.
1084
1085 2023-04-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1086
1087 PR target/108840
1088 * config/aarch64/aarch64.cc (aarch64_rtx_costs): Merge ASHIFT and
1089 ROTATE, ROTATERT, LSHIFTRT, ASHIFTRT cases. Handle subregs in op1.
1090
1091 2023-04-19 Richard Biener <rguenther@suse.de>
1092
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.
1098
1099 2023-04-19 Richard Biener <rguenther@suse.de>
1100
1101 PR rtl-optimization/109237
1102 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
1103
1104 2023-04-19 Christophe Lyon <christophe.lyon@arm.com>
1105
1106 * doc/install.texi (enable-decimal-float): Add AArch64.
1107
1108 2023-04-19 liuhongt <hongtao.liu@intel.com>
1109
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.
1114
1115 2023-04-18 Jason Merrill <jason@redhat.com>
1116
1117 * doc/invoke.texi: Remove stray @gol.
1118
1119 2023-04-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
1120
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.
1124
1125 2023-04-18 Mark Harmstone <mark@harmstone.com>
1126
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.
1131
1132 2023-04-18 Andrew Pinski <apinski@marvell.com>
1133
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.
1138
1139 2023-04-18 Sam James <sam@gentoo.org>
1140
1141 * system.h: Drop unused INCLUDE_PTHREAD_H.
1142
1143 2023-04-18 Kevin Lee <kevinl@rivosinc.com>
1144
1145 * tree-vect-data-refs.cc (vect_grouped_store_supported): Add new
1146 condition.
1147
1148 2023-04-18 Sinan Lin <sinan.lin@linux.alibaba.com>
1149
1150 * config/riscv/bitmanip.md (rotr<mode>3 expander): Enable for ZBKB.
1151 (bswapdi2, bswapsi2): Similarly.
1152
1153 2023-04-18 Uros Bizjak <ubizjak@gmail.com>
1154
1155 PR target/94908
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.
1165
1166 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1167
1168 * value-range.cc (gt_ggc_mx): New.
1169 (gt_pch_nx): New.
1170 * value-range.h (class vrange): Add GTY marker.
1171 (class frange): Same.
1172 (gt_ggc_mx): Remove.
1173 (gt_pch_nx): Remove.
1174
1175 2023-04-18 Victor L. Do Nascimento <victor.donascimento@arm.com>
1176
1177 * lra-constraints.cc (constraint_unique): New.
1178 (process_address_1): Apply constraint_unique test.
1179 * recog.cc (constrain_operands): Allow relaxed memory
1180 constaints.
1181
1182 2023-04-18 Kito Cheng <kito.cheng@sifive.com>
1183
1184 * doc/extend.texi (Target Builtins): Add RISC-V Vector
1185 Intrinsics.
1186 (RISC-V Vector Intrinsics): Document GCC implemented which
1187 version of RISC-V vector intrinsics and its reference.
1188
1189 2023-04-18 Richard Biener <rguenther@suse.de>
1190
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):
1200 Likewise.
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.
1207
1208 2023-04-18 Richard Biener <rguenther@suse.de>
1209
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.
1217
1218 2023-04-18 Andrew Pinski <apinski@marvell.com>
1219
1220 * tree-ssa-phiopt.cc (gimple_simplify_phiopt): Dump
1221 the expression that is being tried when TDF_FOLDING
1222 is true.
1223 (phiopt_worker::match_simplify_replacement): Dump
1224 the sequence which was created by gimple_simplify_phiopt
1225 when TDF_FOLDING is true.
1226
1227 2023-04-18 Andrew Pinski <apinski@marvell.com>
1228
1229 * tree-ssa-phiopt.cc (match_simplify_replacement):
1230 Simplify code that does the movement slightly.
1231
1232 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1233
1234 * config/aarch64/aarch64.md (@aarch64_rev16<mode>): Change to
1235 define_expand.
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.
1240
1241 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1242
1243 * emit-rtl.cc (init_emit_once): Initialize dconstm0.
1244 * gimple-range-op.cc (class cfn_signbit): Remove dconstm0
1245 declaration.
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.
1251
1252 2023-04-18 Richard Biener <rguenther@suse.de>
1253
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;
1259
1260 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1261
1262 * config/aarch64/aarch64-builtins.cc (aarch64_init_simd_intrinsics): Take
1263 builtin flags from intrinsic data rather than hardcoded FLAG_AUTO_FP.
1264
1265 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1266
1267 * value-range.cc (frange::operator==): Adjust for NAN.
1268 (range_tests_nan): Remove some NAN tests.
1269
1270 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1271
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.
1276
1277 2023-04-18 Richard Biener <rguenther@suse.de>
1278
1279 PR tree-optimization/109539
1280 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
1281 Re-implement pointer relatedness for PHIs.
1282
1283 2023-04-18 Andrew Stubbs <ams@codesourcery.com>
1284
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.
1297
1298 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1299
1300 * config/aarch64/aarch64.cc (aarch64_validate_mcpu): Add hint to use -march
1301 if the argument matches that.
1302
1303 2023-04-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1304
1305 * config/aarch64/atomics.md
1306 (*aarch64_atomic_load<ALLX:mode>_rcpc_zext):
1307 Use SD_HSDI for destination mode iterator.
1308
1309 2023-04-18 Jin Ma <jinma@linux.alibaba.com>
1310
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.
1314
1315 2023-04-18 Jakub Jelinek <jakub@redhat.com>
1316
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.
1321
1322 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1323
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
1331 bp_pack_real_value.
1332
1333 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1334
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.
1339
1340 2023-04-18 Xi Ruoyao <xry111@xry111.site>
1341
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
1352 constraint.
1353 * config/loongarch/predicates.md (const_dual_imm12_operand): New
1354 predicate.
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,
1364 and Le constraints.
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.
1368
1369 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1370
1371 * value-range.h (Value_Range::Value_Range): New.
1372 (Value_Range::contains_p): New.
1373
1374 2023-04-18 Aldy Hernandez <aldyh@redhat.com>
1375
1376 * value-range.h (class vrange): Make m_discriminator const.
1377 (class irange): Make m_max_ranges const. Adjust constructors
1378 accordingly.
1379 (class unsupported_range): Construct vrange appropriately.
1380 (class frange): Same.
1381
1382 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
1383
1384 * config/loongarch/loongarch.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Remove the macro
1385 definition.
1386
1387 2023-04-18 Lulu Cheng <chenglulu@loongson.cn>
1388
1389 * doc/extend.texi: Add section for LoongArch Base Built-in functions.
1390
1391 2023-04-18 Fei Gao <gaofei@eswincomputing.com>
1392
1393 * config/riscv/riscv.cc (riscv_first_stack_step): Make codes more
1394 readable.
1395 (riscv_expand_epilogue): Likewise.
1396
1397 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
1398
1399 * config/riscv/riscv.cc (riscv_expand_prologue): Consider save-restore in
1400 stack allocation.
1401 (riscv_expand_epilogue): Consider save-restore in stack deallocation.
1402
1403 2023-04-17 Andrew Pinski <apinski@marvell.com>
1404
1405 * tree-ssa-phiopt.cc (gate_hoist_loads): Remove
1406 prototype.
1407
1408 2023-04-17 Aldy Hernandez <aldyh@redhat.com>
1409
1410 * gimple-ssa-warn-alloca.cc (pass_walloca::execute): Do not export
1411 global ranges.
1412
1413 2023-04-17 Fei Gao <gaofei@eswincomputing.com>
1414
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.
1420
1421 2023-04-17 Feng Wang <wangfeng@eswincomputing.com>
1422
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.
1429
1430 2023-04-17 Martin Jambor <mjambor@suse.cz>
1431
1432 PR ipa/107769
1433 PR ipa/109318
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
1450 find_reference.
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
1458 streamed.
1459 * symtab.cc (symtab_node::find_reference): Add parameter use_type, use
1460 it in searching.
1461
1462 2023-04-17 Philipp Tomsich <philipp.tomsich@vrull.eu>
1463 Di Zhao <di.zhao@amperecomputing.com>
1464
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.
1469
1470 2023-04-17 Richard Biener <rguenther@suse.de>
1471
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.
1478
1479 2023-04-16 Jeff Law <jlaw@ventanamicro>
1480
1481 PR target/109508
1482 * config/riscv/riscv.cc (riscv_expand_conditional_move): For
1483 TARGET_SFB_ALU, force the true arm into a register.
1484
1485 2023-04-15 John David Anglin <danglin@gcc.gnu.org>
1486
1487 PR target/104989
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
1490 size is zero.
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.
1494
1495 2023-04-15 Jakub Jelinek <jakub@redhat.com>
1496
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.
1500
1501 2023-04-15 Jason Merrill <jason@redhat.com>
1502
1503 PR c++/109514
1504 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
1505 Overhaul lhs_ref.ref analysis.
1506
1507 2023-04-14 Richard Biener <rguenther@suse.de>
1508
1509 PR tree-optimization/109502
1510 * tree-vect-stmts.cc (vectorizable_assignment): Fix
1511 check for conversion between mask and non-mask types.
1512
1513 2023-04-14 Jeff Law <jlaw@ventanamicro.com>
1514 Jakub Jelinek <jakub@redhat.com>
1515
1516 PR target/108947
1517 PR target/109040
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.
1523
1524 2023-04-14 Jakub Jelinek <jakub@redhat.com>
1525
1526 * loop-iv.cc (iv_number_of_iterations): Use gen_int_mode instead
1527 of GEN_INT.
1528
1529 2023-04-13 Andrew MacLeod <amacleod@redhat.com>
1530
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.
1537
1538 2023-04-13 Richard Sandiford <richard.sandiford@arm.com>
1539
1540 PR target/108910
1541 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Do
1542 not trust TYPE_ALIGN for pointer types; use POINTER_SIZE instead.
1543
1544 2023-04-13 Richard Biener <rguenther@suse.de>
1545
1546 PR tree-optimization/109491
1547 * tree-ssa-sccvn.cc (expressions_equal_p): Restore the
1548 NULL operands test.
1549
1550 2023-04-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1551
1552 PR target/109479
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.
1568 (vbool64_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.
1579
1580 2023-04-12 Jakub Jelinek <jakub@redhat.com>
1581
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
1585 function.
1586
1587 2023-04-12 Jakub Jelinek <jakub@redhat.com>
1588
1589 PR target/109458
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.
1594
1595 2023-04-12 Costas Argyris <costas.argyris@gmail.com>
1596
1597 * config/i386/x-mingw32-utf8: Remove extrataneous $@
1598
1599 2023-04-12 Andrew MacLeod <amacleod@redhat.com>
1600
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.
1604
1605 2023-04-12 Richard Biener <rguenther@suse.de>
1606
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.
1611
1612 2023-04-12 Richard Biener <rguenther@suse.de>
1613
1614 PR tree-optimization/109469
1615 * tree-vect-slp.cc (vect_slp_function): Skip region starts with
1616 a returns-twice call.
1617
1618 2023-04-12 Richard Biener <rguenther@suse.de>
1619
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.
1624
1625 2023-04-11 Lin Sinan <mynameisxiaou@gmail.com>
1626
1627 * config/riscv/predicates.md (uimm_extra_bit_or_twobits): Adjust
1628 predicate to avoid splitting arith constants.
1629
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>
1634
1635 PR target/109104
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.
1642
1643 2023-04-11 Martin Liska <mliska@suse.cz>
1644
1645 PR driver/108241
1646 * opts.cc (finish_options): Drop also
1647 x_flag_var_tracking_assignments.
1648
1649 2023-04-11 Andre Vieira <andre.simoesdiasvieira@arm.com>
1650
1651 PR tree-optimization/108888
1652 * tree-if-conv.cc (predicate_statements): Fix gimple call check.
1653
1654 2023-04-11 Haochen Gui <guihaoc@gcc.gnu.org>
1655
1656 PR target/108812
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.
1691
1692 2023-04-10 Michael Meissner <meissner@linux.ibm.com>
1693
1694 PR target/70243
1695 * config/rs6000/vsx.md (vsx_fmav4sf4): Do not generate vmaddfp.
1696 (vsx_nfmsv4sf4): Do not generate vnmsubfp.
1697
1698 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
1699
1700 * config/i386/i386.h (PTA_GRANITERAPIDS): Add PTA_AMX_COMPLEX.
1701
1702 2023-04-10 Haochen Jiang <haochen.jiang@intel.com>
1703
1704 * common/config/i386/cpuinfo.h (get_available_features):
1705 Detect AMX-COMPLEX.
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
1713 amx-complex.
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
1717 __AMX_COMPLEX__.
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):
1720 Handle amx-complex.
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.
1727
1728 2023-04-08 Jakub Jelinek <jakub@redhat.com>
1729
1730 PR tree-optimization/109392
1731 * tree-vect-generic.cc (tree_vec_extract): Handle failure
1732 of maybe_push_res_to_seq better.
1733
1734 2023-04-08 Jakub Jelinek <jakub@redhat.com>
1735
1736 * Makefile.in (CORETYPES_H): Depend on align.h, poly-int.h and
1737 poly-int-types.h.
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
1741 insn-modes.h.
1742
1743 2023-04-06 Richard Earnshaw <rearnsha@arm.com>
1744
1745 PR target/107674
1746 * config/arm/arm.cc (arm_effective_regno): New function.
1747 (mve_vector_mem_operand): Use it.
1748
1749 2023-04-06 Andrew MacLeod <amacleod@redhat.com>
1750
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.
1754
1755 2023-04-06 Andrew Pinski <apinski@marvell.com>
1756
1757 PR tree-optimization/109427
1758 * params.opt (-param=vect-induction-float=):
1759 Fix option attribute typo for IntegerRange.
1760
1761 2023-04-05 Jeff Law <jlaw@ventanamicro>
1762
1763 PR target/108892
1764 * combine.cc (combine_instructions): Force re-recognition when
1765 after restoring the body of an insn to its original form.
1766
1767 2023-04-05 Martin Jambor <mjambor@suse.cz>
1768
1769 PR ipa/108959
1770 * ipa-sra.cc (zap_useless_ipcp_results): New function.
1771 (process_isra_node_results): Call it.
1772
1773 2023-04-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
1774
1775 * config/riscv/vector.md: Fix incorrect operand order.
1776
1777 2023-04-05 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1778
1779 * config/riscv/riscv-vsetvl.cc
1780 (pass_vsetvl::compute_local_backward_infos): Update user vsetvl in local
1781 demand fusion.
1782
1783 2023-04-05 Li Xu <xuli1@eswincomputing.com>
1784
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.
1788
1789 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
1790
1791 * doc/md.texi (Including Patterns): Fix page break.
1792
1793 2023-04-04 Jakub Jelinek <jakub@redhat.com>
1794
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
1801 known_isnan.
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.
1808
1809 2023-04-04 Marek Polacek <polacek@redhat.com>
1810
1811 PR sanitizer/109107
1812 * fold-const.cc (fold_binary_loc): Use TYPE_OVERFLOW_SANITIZED
1813 when associating.
1814 * match.pd: Use TYPE_OVERFLOW_SANITIZED.
1815
1816 2023-04-04 Stam Markianos-Wright <stam.markianos-wright@arm.com>
1817
1818 * config/arm/mve.md (mve_vcvtq_n_to_f_<supf><mode>): Swap operands.
1819 (mve_vcreateq_f<mode>): Swap operands.
1820
1821 2023-04-04 Andrew Stubbs <ams@codesourcery.com>
1822
1823 * config/gcn/gcn-valu.md (one_cmpl<mode>2<exec>): New.
1824
1825 2023-04-04 Jakub Jelinek <jakub@redhat.com>
1826
1827 PR target/109384
1828 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
1829 Reword diagnostics about zfinx conflict with f, formatting fixes.
1830
1831 2023-04-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1832
1833 * config/sol2.h (LIB_SPEC): Don't link with -lpthread.
1834
1835 2023-04-04 Richard Biener <rguenther@suse.de>
1836
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.
1841
1842 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
1843
1844 PR target/108807
1845 * config/rs6000/rs6000.cc (rs6000_expand_vector_set_var_p9): Fix gen
1846 function for permutation control vector by considering big endianness.
1847
1848 2023-04-04 Kewen Lin <linkw@linux.ibm.com>
1849
1850 PR target/108699
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
1854 rs6000_vprtybv2di2.
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.
1859
1860 2023-04-04 Hans-Peter Nilsson <hp@axis.com>
1861 Sandra Loosemore <sandra@codesourcery.com>
1862
1863 * doc/md.texi (Insn Splitting): Tweak wording for readability.
1864
1865 2023-04-03 Martin Jambor <mjambor@suse.cz>
1866
1867 PR ipa/109303
1868 * ipa-prop.cc (determine_known_aggregate_parts): Check that the
1869 offset + size will be representable in unsigned int.
1870
1871 2023-04-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1872
1873 * configure.ac (ZSTD_LIB): Move before zstd.h check.
1874 Unset gcc_cv_header_zstd_h without libzstd.
1875 * configure: Regenerate.
1876
1877 2023-04-03 Martin Liska <mliska@suse.cz>
1878
1879 * doc/invoke.texi: Document new param.
1880
1881 2023-04-03 Cupertino Miranda <cupertino.miranda@oracle.com>
1882
1883 * doc/sourcebuild.texi (const_volatile_readonly_section): Document
1884 new check_effective_target function.
1885
1886 2023-04-03 Li Xu <xuli1@eswincomputing.com>
1887
1888 * config/riscv/riscv-vector-builtins.def (vuint32m8_t): Fix typo.
1889 (vfloat32m8_t): Likewise
1890
1891 2023-04-03 liuhongt <hongtao.liu@intel.com>
1892
1893 * doc/md.texi: Document signbitm2.
1894
1895 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1896 kito-cheng <kito.cheng@sifive.com>
1897
1898 * config/riscv/vector.md: Fix RA constraint.
1899
1900 2023-04-02 Juzhe-Zhong <juzhe.zhong@rivai.ai>
1901
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.
1905
1906 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1907
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].
1912
1913 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1914
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
1925 fop_ltgt.
1926
1927 2023-04-01 Jakub Jelinek <jakub@redhat.com>
1928
1929 PR target/109254
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
1935 results at all.
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.
1943
1944 2023-03-31 Vladimir N. Makarov <vmakarov@redhat.com>
1945
1946 * lra-constraints.cc: (combine_reload_insn): New function.
1947
1948 2023-03-31 Jakub Jelinek <jakub@redhat.com>
1949
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.
1959
1960 2023-03-31 Kito Cheng <kito.cheng@sifive.com>
1961 Andrew Pinski <pinskia@gmail.com>
1962
1963 PR target/109328
1964 * config/riscv/t-riscv: Add missing dependencies.
1965
1966 2023-03-31 liuhongt <hongtao.liu@intel.com>
1967
1968 * config/i386/i386.cc (inline_memory_move_cost): Return 100
1969 for MASK_REGS when MODE_SIZE > 8.
1970
1971 2023-03-31 liuhongt <hongtao.liu@intel.com>
1972
1973 PR target/85048
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>):
1980 Renamed to ..
1981 (<mask_codefor>floatuns<sseintvecmodelower><mode>2<mask_name><round_name>):.. this.
1982 (<mask_codefor><avx512>_ufix_notrunc<sf2simodelower><mode><mask_name><round_name>):
1983 Renamed to ..
1984 (<mask_codefor><avx512>_fixuns_notrunc<sf2simodelower><mode><mask_name><round_name>):
1985 .. this.
1986 (<fixsuffix>fix_truncv16sfv16si2<mask_name><round_saeonly_name>):
1987 Renamed to ..
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>):
1994 Renamed to ..
1995 (fixuns_notrunc<mode><si2dfmodelower>2<mask_name><round_name>):
1996 .. this.
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>):
2012 Renamed to ..
2013 (fixuns_notrunc<mode><sseintvecmodelower>2<mask_name><round_name>):
2014 .. this.
2015 (ufix_trunc<mode><sseintvecmodelower>2<mask_name>): Renamed to ..
2016 (<mask_codefor>fixuns_trunc<mode><sseintvecmodelower>2<mask_name>):
2017 .. this.
2018
2019 2023-03-30 Andrew MacLeod <amacleod@redhat.com>
2020
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.
2025
2026 2023-03-30 Jason Merrill <jason@redhat.com>
2027
2028 PR c++/107897
2029 PR c++/108887
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.
2033
2034 2023-03-30 Richard Biener <rguenther@suse.de>
2035
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.
2041
2042 2023-03-30 Richard Biener <rguenther@suse.de>
2043
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.
2048
2049 2023-03-30 liuhongt <hongtao.liu@intel.com>
2050
2051 * config/i386/i386-expand.cc (expand_vec_perm_blend): Generate
2052 vpblendd instead of vpblendw for V4SI under avx2.
2053
2054 2023-03-29 Hans-Peter Nilsson <hp@axis.com>
2055
2056 * config/cris/cris.cc (cris_rtx_costs) [CONST_INT]: Return 0
2057 for many quick operands, for register-sized modes.
2058
2059 2023-03-29 Jiawei <jiawei@iscas.ac.cn>
2060
2061 * common/config/riscv/riscv-common.cc (riscv_subset_list::parse):
2062 New check.
2063
2064 2023-03-29 Martin Liska <mliska@suse.cz>
2065
2066 PR bootstrap/109310
2067 * configure.ac: Emit a warning for deprecated option
2068 --enable-link-mutex.
2069 * configure: Regenerate.
2070
2071 2023-03-29 Richard Biener <rguenther@suse.de>
2072
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.
2076
2077 2023-03-29 Richard Biener <rguenther@suse.de>
2078
2079 PR tree-optimization/109327
2080 * tree-ssa-forwprop.cc (pass_forwprop::execute): Deal with
2081 already removed stmts when draining to_remove.
2082
2083 2023-03-29 Richard Biener <rguenther@suse.de>
2084
2085 PR ipa/106124
2086 * dwarf2out.cc (lookup_type_die): Reset TREE_ASM_WRITTEN
2087 so we can re-create the DIE for the type if required.
2088
2089 2023-03-29 Jakub Jelinek <jakub@redhat.com>
2090 Richard Biener <rguenther@suse.de>
2091
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.
2097
2098 2023-03-29 Richard Biener <rguenther@suse.de>
2099
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.
2104
2105 2023-03-28 David Malcolm <dmalcolm@redhat.com>
2106
2107 PR c/107002
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.
2113
2114 2023-03-28 Kito Cheng <kito.cheng@sifive.com>
2115
2116 PR target/109312
2117 * config/riscv/riscv-c.cc (riscv_ext_version_value): New.
2118 (riscv_cpu_cpp_builtins): Define __riscv_v_intrinsic and
2119 minor refactor.
2120
2121 2023-03-28 Alexander Monakov <amonakov@ispras.ru>
2122
2123 PR rtl-optimization/109187
2124 * haifa-sched.cc (autopref_rank_for_schedule): Avoid use of overflowing
2125 subtraction in three-way comparison.
2126
2127 2023-03-28 Andrew MacLeod <amacleod@redhat.com>
2128
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.
2139
2140 2023-03-28 Richard Biener <rguenther@suse.de>
2141
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.
2146
2147 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
2148
2149 * config/i386/x-mingw32-utf8: update comments.
2150
2151 2023-03-28 Richard Sandiford <richard.sandiford@arm.com>
2152
2153 PR target/109072
2154 * config/aarch64/aarch64-protos.h (aarch64_vector_load_decl): Declare.
2155 * config/aarch64/aarch64.h (machine_function::vector_load_decls): New
2156 variable.
2157 * config/aarch64/aarch64-builtins.cc (aarch64_record_vector_load_arg):
2158 New function.
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
2165 variable.
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
2168 zero cost.
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.
2172
2173 2023-03-28 Richard Biener <rguenther@suse.de>
2174
2175 PR bootstrap/84402
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.
2185
2186 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2187 Jonathan Wakely <jwakely@redhat.com>
2188
2189 * gcov-tool.cc (do_merge, do_merge_stream, do_rewrite, do_overlap):
2190 Use subcommand rather than sub-command in function comments.
2191
2192 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2193
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
2198 here.
2199 * range-op-float.cc (range_operator_float::fold_range): Call
2200 flush_denormals_to_zero.
2201
2202 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2203
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.
2207
2208 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2209
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.
2212
2213 2023-03-28 Jakub Jelinek <jakub@redhat.com>
2214
2215 PR target/109276
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.
2219
2220 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
2221
2222 PR target/109140
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.
2229
2230 2023-03-28 Eric Botcazou <ebotcazou@adacore.com>
2231
2232 * doc/gm2.texi: Add missing Next, Previous and Top fields to most
2233 top-level sections.
2234
2235 2023-03-28 Costas Argyris <costas.argyris@gmail.com>
2236
2237 * config.host: Pull in i386/x-mingw32-utf8 Makefile
2238 fragment and reference utf8rc-mingw32.o explicitly
2239 for mingw hosts.
2240 * config/i386/sym-mingw32.cc: prevent name mangling of
2241 stub symbol.
2242 * config/i386/x-mingw32-utf8: Make utf8rc-mingw32.o
2243 depend on manifest file explicitly.
2244
2245 2023-03-28 Richard Biener <rguenther@suse.de>
2246
2247 Revert:
2248 2023-03-27 Richard Biener <rguenther@suse.de>
2249
2250 PR rtl-optimization/109237
2251 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
2252
2253 2023-03-28 Richard Biener <rguenther@suse.de>
2254
2255 * common.opt (gdwarf): Remove Negative(gdwarf-).
2256
2257 2023-03-28 Richard Biener <rguenther@suse.de>
2258
2259 * common.opt (gdwarf): Add RejectNegative.
2260 (gdwarf-): Likewise.
2261 (ggdb): Likewise.
2262 (gvms): Likewise.
2263
2264 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2265
2266 * config/cris/constraints.md ("T"): Correct to
2267 define_memory_constraint.
2268
2269 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2270
2271 * config/cris/cris.md (BW2): New mode-iterator.
2272 (lra_szext_decomposed, lra_szext_decomposed_indirect_with_offset): New
2273 peephole2s.
2274
2275 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2276
2277 * config/cris/cris.md ("*add<mode>3_addi"): Improve to bail only
2278 for possible eliminable compares.
2279
2280 2023-03-28 Hans-Peter Nilsson <hp@axis.com>
2281
2282 * config/cris/constraints.md ("R"): Remove unused constraint.
2283
2284 2023-03-27 Jonathan Wakely <jwakely@redhat.com>
2285
2286 PR gcov-profile/109297
2287 * gcov-tool.cc (merge_usage): Fix "subcomand" typo.
2288 (merge_stream_usage): Likewise.
2289 (overlap_usage): Likewise.
2290
2291 2023-03-27 Christoph Müllner <christoph.muellner@vrull.eu>
2292
2293 PR target/109296
2294 * config/riscv/thead.md: Add missing mode specifiers.
2295
2296 2023-03-27 Philipp Tomsich <philipp.tomsich@vrull.eu>
2297 Jiangning Liu <jiangning.liu@amperecomputing.com>
2298 Manolis Tsamis <manolis.tsamis@vrull.eu>
2299
2300 * config/aarch64/aarch64.cc: Update vector costs for ampere1.
2301
2302 2023-03-27 Richard Biener <rguenther@suse.de>
2303
2304 PR rtl-optimization/109237
2305 * cfgcleanup.cc (bb_is_just_return): Walk insns backwards.
2306
2307 2023-03-27 Richard Biener <rguenther@suse.de>
2308
2309 PR lto/109263
2310 * lto-wrapper.cc (run_gcc): Parse alternate debug options
2311 as well, they always enable debug.
2312
2313 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
2314
2315 PR target/109167
2316 * config/rs6000/emmintrin.h (_mm_bslli_si128): Move the implementation
2317 from ...
2318 (_mm_slli_si128): ... here. Change to call _mm_bslli_si128 directly.
2319
2320 2023-03-27 Kewen Lin <linkw@linux.ibm.com>
2321
2322 PR target/109082
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.
2329
2330 2023-03-27 Sandra Loosemore <sandra@codesourcery.com>
2331
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.
2339
2340 2023-03-26 Andreas Schwab <schwab@linux-m68k.org>
2341
2342 PR target/106282
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.
2347
2348 2023-03-26 Jakub Jelinek <jakub@redhat.com>
2349
2350 PR tree-optimization/109230
2351 * match.pd (fneg/fadd simplify): Verify also odd permutation indexes.
2352
2353 2023-03-26 Jakub Jelinek <jakub@redhat.com>
2354
2355 PR ipa/105685
2356 * predict.cc (compute_function_frequency): Don't call
2357 warn_function_cold if function already has cold attribute.
2358
2359 2023-03-26 Gerald Pfeifer <gerald@pfeifer.com>
2360
2361 * doc/install.texi: Remove anachronistic note
2362 related to languages built and separate source tarballs.
2363
2364 2023-03-25 David Malcolm <dmalcolm@redhat.com>
2365
2366 PR analyzer/109098
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.
2378
2379 2023-03-24 David Malcolm <dmalcolm@redhat.com>
2380
2381 * doc/analyzer.texi (Debugging the Analyzer): Add notes on useful
2382 debugging options.
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.
2387
2388 2023-03-24 David Malcolm <dmalcolm@redhat.com>
2389
2390 PR other/109163
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.
2398
2399 2023-03-24 Andrew MacLeod <amacleod@redhat.com>
2400
2401 PR tree-optimization/109238
2402 * gimple-range-cache.cc (ranger_cache::resolve_dom): Ignore
2403 predecessors which this block dominates.
2404
2405 2023-03-24 Richard Biener <rguenther@suse.de>
2406
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.
2411
2412 2023-03-24 Jakub Jelinek <jakub@redhat.com>
2413
2414 PR middle-end/109258
2415 * builtins.cc (inline_expand_builtin_bytecmp): Return NULL_RTX early
2416 if target == const0_rtx.
2417
2418 2023-03-24 Alexandre Oliva <oliva@adacore.com>
2419
2420 * doc/sourcebuild.texi (weak_undefined, posix_memalign):
2421 Document options and effective targets.
2422
2423 2023-03-24 Costas Argyris <costas.argyris@gmail.com>
2424
2425 * config/i386/x-mingw32-utf8: Make HOST_EXTRA_OBJS_SYMBOL
2426 optional.
2427
2428 2023-03-23 Pat Haugen <pthaugen@linux.ibm.com>
2429
2430 * config/rs6000/rs6000.md (*mod<mode>3, umod<mode>3): Add
2431 non-earlyclobber alternative.
2432
2433 2023-03-23 Andrew Pinski <apinski@marvell.com>
2434
2435 PR c/84900
2436 * fold-const.cc (maybe_lvalue_p): Treat COMPOUND_LITERAL_EXPR
2437 as a lvalue.
2438
2439 2023-03-23 Richard Biener <rguenther@suse.de>
2440
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.
2445
2446 2023-03-23 Richard Biener <rguenther@suse.de>
2447
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.
2452
2453 2023-03-23 Jakub Jelinek <jakub@redhat.com>
2454
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):
2473 Likewise.
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):
2479 Likewise.
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):
2489 Likewise.
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.
2519
2520 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
2521
2522 * config/gcn/gcn.cc (gcn_class_max_nregs): Handle vectors in SGPRs.
2523 (move_callee_saved_registers): Detect the bug condition early.
2524
2525 2023-03-23 Andrew Stubbs <ams@codesourcery.com>
2526
2527 * config/gcn/gcn-protos.h (gcn_stepped_zero_int_parallel_p): New.
2528 * config/gcn/gcn-valu.md (V_1REG_ALT): New.
2529 (V_2REG_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.
2535
2536 2023-03-23 Jakub Jelinek <jakub@redhat.com>
2537
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
2542 individually.
2543
2544 2023-03-23 Pan Li <pan2.li@intel.com>
2545 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2546
2547 PR target/108654
2548 PR target/108185
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.
2553
2554 2023-03-23 Songhe Zhu <zhusonghe@eswincomputing.com>
2555
2556 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 'alts'.
2557
2558 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2559
2560 PR target/109244
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.
2574
2575 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2576
2577 PR target/109228
2578 * config/riscv/riscv-vector-builtins-bases.cc (class vlenb): Add
2579 __riscv_vlenb support.
2580 (BASE): Ditto.
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.
2584 (SHAPE): Ditto.
2585 * config/riscv/riscv-vector-builtins-shapes.h: Ditto.
2586 * config/riscv/riscv-vector-builtins.cc: Ditto.
2587
2588 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2589 kito-cheng <kito.cheng@sifive.com>
2590
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.
2601
2602 2023-03-23 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2603 kito-cheng <kito.cheng@sifive.com>
2604
2605 * config/riscv/riscv-vector-builtins-bases.cc: Fix ternary bug.
2606 * config/riscv/vector-iterators.md (nmsac): Ditto.
2607 (nmsub): Ditto.
2608 (msac): Ditto.
2609 (msub): Ditto.
2610 (nmadd): Ditto.
2611 (nmacc): 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.
2669
2670 2023-03-23 liuhongt <hongtao.liu@intel.com>
2671
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):
2680 Removed.
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.
2686
2687 2023-03-22 Vladimir N. Makarov <vmakarov@redhat.com>
2688
2689 * lra.cc (lra): Do not repeat inheritance and live range splitting
2690 when asm error is found.
2691
2692 2023-03-22 Andrew Jenner <andrew@codesourcery.com>
2693
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.
2707
2708 2023-03-22 Aldy Hernandez <aldyh@redhat.com>
2709
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.
2714
2715 2023-03-22 Martin Liska <mliska@suse.cz>
2716
2717 * configure: Regenerate.
2718
2719 2023-03-21 Joseph Myers <joseph@codesourcery.com>
2720
2721 * stor-layout.cc (finalize_type_size): Copy TYPE_TYPELESS_STORAGE
2722 to variants.
2723
2724 2023-03-21 Andrew MacLeod <amacleod@redhat.com>
2725
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.
2731
2732 2023-03-21 Richard Biener <rguenther@suse.de>
2733
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.
2740
2741 2023-03-21 Jakub Jelinek <jakub@redhat.com>
2742
2743 PR tree-optimization/109215
2744 * tree.h (enum special_array_member): Adjust comments for int_0
2745 and trail_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.
2750
2751 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2752
2753 * configure.ac: Add check for the Texinfo 6.8
2754 CONTENTS_OUTPUT_LOCATION customization variable and set it if
2755 supported.
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.
2761
2762 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2763
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
2767 its attribute
2768
2769 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2770
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
2776 be gone.
2777
2778 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2779
2780 * doc/include/texinfo.tex: Update to 2023-01-17.19.
2781
2782 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2783
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.
2788
2789 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2790
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
2798 description text.
2799
2800 2023-03-21 Arsen Arsenović <arsen@aarsen.me>
2801
2802 * doc/gcc.texi: Add the Indices appendix, to make texinfo
2803 generate nice indices overview page.
2804
2805 2023-03-21 Richard Biener <rguenther@suse.de>
2806
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.
2811
2812 2023-03-20 Michael Meissner <meissner@linux.ibm.com>
2813
2814 PR target/109067
2815 * config/rs6000/rs6000.cc (create_complex_muldiv): Delete.
2816 (init_float128_ieee): Delete code to switch complex multiply and divide
2817 for long double.
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.
2822
2823 2023-03-20 Peter Bergner <bergner@linux.ibm.com>
2824
2825 PR target/109178
2826 * config/rs6000/rs6000-builtin.cc (stv_expand_builtin): Use tmode.
2827
2828 2023-03-19 Jonny Grant <jg@jguk.org>
2829
2830 * doc/extend.texi (Common Function Attributes) <nonnull>:
2831 Correct typo.
2832
2833 2023-03-18 Peter Bergner <bergner@linux.ibm.com>
2834
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.
2838
2839 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2840
2841 PR target/105554
2842 * function.h (push_struct_function): Add ABSTRACT_P argument defaulted
2843 to false.
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
2849 after it.
2850 (tree_function_versioning): Formatting fix.
2851
2852 2023-03-17 Vladimir N. Makarov <vmakarov@redhat.com>
2853
2854 * lra-constraints.cc: Include hooks.h.
2855 (combine_reload_insn): New function.
2856 (lra_constraints): Call it.
2857
2858 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2859 kito-cheng <kito.cheng@sifive.com>
2860
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.
2872
2873 2023-03-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
2874
2875 PR target/109092
2876 * config/riscv/riscv.md: Fix subreg bug.
2877
2878 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2879
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.
2888
2889 2023-03-17 Jakub Jelinek <jakub@redhat.com>
2890
2891 PR plugins/108634
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
2896 changes.
2897
2898 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
2899
2900 * doc/extend.texi (BPF Built-in Functions): Fix numerous markup
2901 issues. Add more line breaks to example so it doesn't overflow
2902 the margins.
2903
2904 2023-03-17 Sandra Loosemore <sandra@codesourcery.com>
2905
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
2909 for consistency.
2910 (Extended Asm) <Generic Operand Modifiers>: Fix @multitable width.
2911 * doc/invoke.texi (Option Summary) <Developer Options>: Fix misplaced
2912 @gol.
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.
2923
2924 2023-03-16 Uros Bizjak <ubizjak@gmail.com>
2925
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.
2929
2930 2023-03-16 Martin Liska <mliska@suse.cz>
2931
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.
2936
2937 2023-03-16 Richard Biener <rguenther@suse.de>
2938
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.
2943
2944 2023-03-16 Richard Biener <rguenther@suse.de>
2945
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
2949 out from ...
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
2954 to PHIs.
2955 (pass_waccess::check_pointer_uses): Process all PHIs.
2956
2957 2023-03-15 David Malcolm <dmalcolm@redhat.com>
2958
2959 PR analyzer/109097
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
2968 DK_ICE_NOBT.
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"
2972 array to...
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
2977 use it.
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
2981 "ice_handler_cb".
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.
2985
2986 2023-03-15 Uros Bizjak <ubizjak@gmail.com>
2987
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
2992 before MOVSS/MOVSD.
2993 * config/i386/mmx.md (*mmx_blendps): New insn pattern.
2994
2995 2023-03-15 Tobias Burnus <tobias@codesourcery.com>
2996
2997 * omp-low.cc (omp_runtime_api_call): Add omp_in_explicit_task.
2998
2999 2023-03-15 Richard Biener <rguenther@suse.de>
3000
3001 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses):
3002 Do not diagnose clobbers.
3003
3004 2023-03-15 Richard Biener <rguenther@suse.de>
3005
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.
3009
3010 2023-03-15 Xi Ruoyao <xry111@xry111.site>
3011
3012 PR other/109086
3013 * builtins.cc (inline_string_cmp): Force the character
3014 difference into "result" pseudo-register, instead of reassign
3015 the pseudo-register.
3016
3017 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3018
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
3022 prototype.
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):
3033 New insn.
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.
3038
3039 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3040
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
3044 "th_r_fmv".
3045 * config/riscv/riscv.cc (riscv_split_doubleword_move):
3046 Add split code for XTheadFmv.
3047 (riscv_secondary_memory_needed): XTheadFmv does not need
3048 secondary memory.
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.
3055
3056 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3057
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.
3070
3071 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3072
3073 * config/riscv/iterators.md (TARGET_64BIT): Add GPR2 iterator.
3074 * config/riscv/riscv-protos.h (riscv_expand_conditional_move):
3075 Add prototype.
3076 * config/riscv/riscv.cc (riscv_rtx_costs): Add costs for
3077 XTheadCondMov.
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.
3084
3085 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3086
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
3107 extraction.
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.
3115
3116 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3117
3118 * config/riscv/riscv.cc (riscv_rtx_costs): Add xthead:tst cost.
3119 * config/riscv/thead.md (*th_tst<mode>3): New INSN.
3120
3121 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3122
3123 * config/riscv/riscv.md: Include thead.md
3124 * config/riscv/thead.md: New file.
3125
3126 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3127
3128 * config/riscv/riscv-cores.def (RISCV_CORE): Add "thead-c906".
3129
3130 2023-03-15 Christoph Müllner <christoph.muellner@vrull.eu>
3131
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.
3158
3159 2023-03-15 Hu, Lin1 <lin1.hu@intel.com>
3160
3161 PR target/109117
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.
3165
3166 2023-03-14 Jakub Jelinek <jakub@redhat.com>
3167
3168 PR target/109109
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.
3171
3172 2023-03-14 Martin Jambor <mjambor@suse.cz>
3173
3174 PR ipa/107925
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
3177 it should.
3178
3179 2023-03-14 Martin Jambor <mjambor@suse.cz>
3180
3181 PR ipa/107925
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.
3185
3186 2023-03-14 Uros Bizjak <ubizjak@gmail.com>
3187
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.
3192
3193 2023-03-14 Sam James <sam@gentoo.org>
3194
3195 * config/riscv/genrvv-type-indexer.cc: Avoid calloc() poisoning on musl by
3196 including <sstream> earlier.
3197 * system.h: Add INCLUDE_SSTREAM.
3198
3199 2023-03-14 Richard Biener <rguenther@suse.de>
3200
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.
3204
3205 2023-03-14 Eric Botcazou <ebotcazou@adacore.com>
3206
3207 PR rtl-optimization/107762
3208 * expr.cc (emit_group_store): Revert latest change.
3209
3210 2023-03-14 Andre Vieira <andre.simoesdiasvieira@arm.com>
3211
3212 PR tree-optimization/109005
3213 * tree-if-conv.cc (get_bitfield_rep): Replace BLKmode check with
3214 aggregate type check.
3215
3216 2023-03-14 Jakub Jelinek <jakub@redhat.com>
3217
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.
3221
3222 2023-03-14 Jan Hubicka <hubicka@ucw.cz>
3223
3224 PR tree-optimization/106896
3225 * profile-count.cc (profile_count::to_sreal_scale): Synchronize
3226 implementatoin with probability_in; avoid some asserts.
3227
3228 2023-03-13 Max Filippov <jcmvbkbc@gmail.com>
3229
3230 * config/xtensa/linux.h (TARGET_ASM_FILE_END): New macro.
3231
3232 2023-03-13 Sean Bright <sean@seanbright.com>
3233
3234 * doc/invoke.texi (Warning Options): Remove errant 'See'
3235 before @xref.
3236
3237 2023-03-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3238
3239 * config/xtensa/xtensa.h (REG_OK_STRICT, REG_OK_FOR_INDEX_P,
3240 REG_OK_FOR_BASE_P): Remove.
3241
3242 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3243
3244 * config/riscv/vector-iterators.md (=vd,vr): Fine tune.
3245 (=vd,vd,vr,vr): Ditto.
3246 * config/riscv/vector.md: Ditto.
3247
3248 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3249
3250 * config/riscv/riscv-vector-builtins.cc
3251 (function_expander::use_compare_insn): Add operand predicate check.
3252
3253 2023-03-13 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3254
3255 * config/riscv/vector.md: Fine tune RA constraints.
3256
3257 2023-03-13 Tobias Burnus <tobias@codesourcery.com>
3258
3259 * config/gcn/mkoffload.cc (main): Pass -save-temps on for the
3260 hsaco assemble/link.
3261
3262 2023-03-13 Richard Biener <rguenther@suse.de>
3263
3264 PR tree-optimization/109046
3265 * tree-ssa-forwprop.cc (pass_forwprop::execute): Combine
3266 piecewise complex loads.
3267
3268 2023-03-12 Jakub Jelinek <jakub@redhat.com>
3269
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.
3286
3287 2023-03-12 Roger Sayle <roger@nextmovesoftware.com>
3288
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.
3292
3293 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3294
3295 PR target/108583
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.
3305
3306 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3307
3308 PR target/108583
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.
3315
3316 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3317 Richard Sandiford <richard.sandiford@arm.com>
3318
3319 PR target/108583
3320 * tree-ssa-math-opts.cc (convert_mult_to_fma): Inhibit FMA in case not
3321 single use.
3322
3323 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3324 Andrew MacLeod <amacleod@redhat.com>
3325
3326 PR target/108583
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):
3329 Use it.
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
3340
3341 2023-03-12 Tamar Christina <tamar.christina@arm.com>
3342
3343 PR target/108583
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.
3358
3359 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
3360
3361 * doc/install.texi2html: Fix issue number typo in comment.
3362
3363 2023-03-12 Gaius Mulley <gaiusmod2@gmail.com>
3364
3365 * doc/gm2.texi (Elementary data types): Equivalence BOOLEAN with
3366 bool.
3367
3368 2023-03-12 Sandra Loosemore <sandra@codesourcery.com>
3369
3370 * doc/invoke.texi (Optimize Options): Add markup to
3371 description of asan-kernel-mem-intrinsic-prefix, and clarify
3372 wording slightly.
3373
3374 2023-03-11 Gerald Pfeifer <gerald@pfeifer.com>
3375
3376 * doc/extend.texi (Named Address Spaces): Drop a redundant link
3377 to AVR-LibC.
3378
3379 2023-03-11 Jeff Law <jlaw@ventanamicro>
3380
3381 PR web/88860
3382 * doc/extend.texi: Clarify Attribute Syntax a bit.
3383
3384 2023-03-11 Sandra Loosemore <sandra@codesourcery.com>
3385
3386 * doc/install.texi (Prerequisites): Suggest using newer versions
3387 of Texinfo.
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).
3392
3393 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3394
3395 PR target/107703
3396 * optabs.cc (expand_fix): For conversions from BFmode to integral,
3397 use shifts to convert it to SFmode first and then convert SFmode
3398 to integral.
3399
3400 2023-03-10 Andrew Pinski <apinski@marvell.com>
3401
3402 * config/aarch64/aarch64.md: Add a new define_split
3403 to help combine.
3404
3405 2023-03-10 Richard Biener <rguenther@suse.de>
3406
3407 * tree-ssa-structalias.cc (solve_graph): Immediately
3408 iterate self-cycles.
3409
3410 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3411
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.
3416
3417 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3418
3419 PR target/107998
3420 * config.gcc (x86_64-*-cygwin*): Don't add i386/t-cygwin-w64 into
3421 $tmake_file.
3422 * config/i386/t-cygwin-w64: Remove.
3423
3424 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3425
3426 PR plugins/108634
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
3435 tree_code_length.
3436 * tree.cc (tree_code_type, tree_code_length): Remove.
3437
3438 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3439
3440 PR other/108464
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
3448 member.
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.
3460
3461 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3462
3463 PR c/108079
3464 * cgraphunit.cc (check_global_declaration): Don't warn for unused
3465 variables which have OPT_Wunused_variable warning suppressed.
3466
3467 2023-03-10 Jakub Jelinek <jakub@redhat.com>
3468
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
3475 the widened range.
3476
3477 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3478
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.
3484 (BASE): Ditto.
3485 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3486 * config/riscv/riscv-vector-builtins-functions.def (read_vl): Ditto.
3487 (vleff): Ditto.
3488 * config/riscv/riscv-vector-builtins-shapes.cc (struct read_vl_def): Ditto.
3489 (struct fault_load_def): Ditto.
3490 (SHAPE): 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.
3534
3535 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3536
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.
3541
3542 2023-03-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3543
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.
3562
3563 2023-03-10 Michael Collison <collison@rivosinc.com>
3564
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.
3568
3569 2023-03-09 Tamar Christina <tamar.christina@arm.com>
3570
3571 * passes.cc (emergency_dump_function): Finish graph generation.
3572
3573 2023-03-09 Tamar Christina <tamar.christina@arm.com>
3574
3575 * config/aarch64/aarch64.md (tbranch_<code><mode>3): Restrict to SHORT
3576 and bottom bit only.
3577
3578 2023-03-09 Andrew Pinski <apinski@marvell.com>
3579
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.
3584
3585 2023-03-09 Jason Merrill <jason@redhat.com>
3586
3587 * doc/extend.texi: Comment out __is_deducible docs.
3588
3589 2023-03-09 Jason Merrill <jason@redhat.com>
3590
3591 PR c++/105841
3592 * doc/extend.texi (Type Traits):: Document __is_deducible.
3593
3594 2023-03-09 Costas Argyris <costas.argyris@gmail.com>
3595
3596 PR driver/108865
3597 * config.host: add object for x86_64-*-mingw*.
3598 * config/i386/sym-mingw32.cc: dummy file to attach
3599 symbol.
3600 * config/i386/utf8-mingw32.rc: windres resource file.
3601 * config/i386/winnt-utf8.manifest: XML manifest to
3602 enable UTF-8.
3603 * config/i386/x-mingw32: reference to x-mingw32-utf8.
3604 * config/i386/x-mingw32-utf8: Makefile fragment to
3605 embed UTF-8 manifest.
3606
3607 2023-03-09 Vladimir N. Makarov <vmakarov@redhat.com>
3608
3609 * lra-constraints.cc (process_alt_operands): Use operand modes for
3610 clobbered regs instead of the biggest access mode.
3611
3612 2023-03-09 Richard Biener <rguenther@suse.de>
3613
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.
3618
3619 2023-03-09 Jakub Jelinek <jakub@redhat.com>
3620 Richard Biener <rguenther@suse.de>
3621
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.
3627
3628 2023-03-07 Jonathan Grant <jg@jguk.org>
3629
3630 PR sanitizer/81649
3631 * doc/invoke.texi (Instrumentation Options): Clarify
3632 LeakSanitizer behavior.
3633
3634 2023-03-07 Benson Muite <benson_muite@emailplus.org>
3635
3636 * doc/install.texi (Prerequisites): Add link to gmplib.org.
3637
3638 2023-03-07 Pan Li <pan2.li@intel.com>
3639 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3640
3641 PR target/108185
3642 PR target/108654
3643 * config/riscv/riscv-modes.def (ADJUST_PRECISION): Adjust VNx*BI
3644 modes.
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.
3650
3651 2023-03-07 Hans-Peter Nilsson <hp@axis.com>
3652
3653 * doc/sourcebuild.texi: Document check_effective_target_tail_call.
3654
3655 2023-03-06 Paul-Antoine Arras <pa@codesourcery.com>
3656
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
3663 saved in SGPRs.
3664
3665 2023-03-06 Richard Biener <rguenther@suse.de>
3666
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.
3671
3672 2023-03-06 Jan Hubicka <hubicka@ucw.cz>
3673
3674 PR target/108429
3675 * config/i386/x86-tune.def (X86_TUNE_USE_SCATTER_2PARTS): Enable for
3676 generic.
3677 (X86_TUNE_USE_SCATTER_4PARTS): Likewise.
3678 (X86_TUNE_USE_SCATTER): Likewise.
3679
3680 2023-03-06 Xi Ruoyao <xry111@xry111.site>
3681
3682 PR target/109000
3683 * config/loongarch/loongarch.h (FP_RETURN): Use
3684 TARGET_*_FLOAT_ABI instead of TARGET_*_FLOAT.
3685 (UNITS_PER_FP_ARG): Likewise.
3686
3687 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3688
3689 * config/riscv/riscv-vsetvl.cc (reg_available_p): Fix bug.
3690 (pass_vsetvl::backward_demand_fusion): Ditto.
3691
3692 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3693 SiYu Wu <siyu@isrc.iscas.ac.cn>
3694
3695 * config/riscv/crypto.md (riscv_sm3p0_<mode>): Add ZKSED's and ZKSH's
3696 instructions.
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.
3703
3704 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3705 SiYu Wu <siyu@isrc.iscas.ac.cn>
3706
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
3723 built-in functions.
3724 (DIRECT_BUILTIN): Add new.
3725
3726 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3727 SiYu Wu <siyu@isrc.iscas.ac.cn>
3728
3729 * config/riscv/constraints.md (D03): Add constants of bs and rnum.
3730 (DsA): New.
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.
3745
3746 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3747 SiYu Wu <siyu@isrc.iscas.ac.cn>
3748
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
3753 description file.
3754 * config/riscv/riscv-scalar-crypto.def: Add Scalar Cryptography
3755 extension's built-in function file.
3756
3757 2023-03-05 Liao Shihua <shihua@iscas.ac.cn>
3758 SiYu Wu <siyu@isrc.iscas.ac.cn>
3759
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.
3767 (3): New.
3768
3769 2023-03-05 Vineet Gupta <vineetg@rivosinc.com>
3770
3771 * config/riscv/riscv.cc (riscv_rtx_costs): Fixed IN_RANGE() to
3772 use exact_log2().
3773
3774 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
3775 kito-cheng <kito.cheng@sifive.com>
3776
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.
3788 (BASE): Ditto.
3789 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
3790 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Change name.
3791 (vluxei16): Ditto.
3792 (vluxei32): Ditto.
3793 (vluxei64): Ditto.
3794 (vloxei8): Ditto.
3795 (vloxei16): Ditto.
3796 (vloxei32): Ditto.
3797 (vloxei64): Ditto.
3798 (vsuxei8): Ditto.
3799 (vsuxei16): Ditto.
3800 (vsuxei32): Ditto.
3801 (vsuxei64): Ditto.
3802 (vsoxei8): Ditto.
3803 (vsoxei16): Ditto.
3804 (vsoxei32): Ditto.
3805 (vsoxei64): Ditto.
3806 (vundefined): Add new intrinsic.
3807 (vreinterpret): Ditto.
3808 (vlmul_ext): Ditto.
3809 (vlmul_trunc): Ditto.
3810 (vset): Ditto.
3811 (vget): 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.
3819 (SHAPE): 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.
3866 (vint8m1_t): Ditto.
3867 (vint8m2_t): Ditto.
3868 (vint8m4_t): Ditto.
3869 (vint8m8_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.
3922 (vbool64_t): Ditto.
3923 (vbool32_t): Ditto.
3924 (vbool16_t): Ditto.
3925 (vbool8_t): Ditto.
3926 (vbool4_t): Ditto.
3927 (vbool2_t): Ditto.
3928 (vbool1_t): Ditto.
3929 (vuint8mf8_t): Ditto.
3930 (vuint8mf4_t): Ditto.
3931 (vuint8mf2_t): Ditto.
3932 (vuint8m1_t): Ditto.
3933 (vuint8m2_t): Ditto.
3934 (vint8m4_t): Ditto.
3935 (vuint8m4_t): Ditto.
3936 (vint8m8_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.
3961 (scalar): Ditto.
3962 (mask): Ditto.
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.
3969 (void): Ditto.
3970 (size): Ditto.
3971 (ptrdiff): Ditto.
3972 (unsigned_long): Ditto.
3973 (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.
4027
4028 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4029
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.
4042 (BASE): Ditto.
4043 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4044 * config/riscv/riscv-vector-builtins-functions.def (vslideup): Ditto.
4045 (vslidedown): Ditto.
4046 (vslide1up): Ditto.
4047 (vslide1down): Ditto.
4048 (vfslide1up): Ditto.
4049 (vfslide1down): Ditto.
4050 (vrgather): Ditto.
4051 (vrgatherei16): Ditto.
4052 (vcompress): 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.
4057 (vint8m1_t): Ditto.
4058 (vint8m2_t): Ditto.
4059 (vint8m4_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.
4117
4118 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4119
4120 * config/riscv/riscv-vector-builtins.cc: Remove void_type_node.
4121
4122 2023-03-05 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4123
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.
4133 (BASE): Ditto.
4134 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4135 * config/riscv/riscv-vector-builtins-functions.def (vmv_x): Ditto.
4136 (vmv_s): Ditto.
4137 (vfmv_f): Ditto.
4138 (vfmv_s): Ditto.
4139 * config/riscv/riscv-vector-builtins-shapes.cc (struct scalar_move_def): Ditto.
4140 (SHAPE): 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.
4180 (first_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.
4237
4238 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
4239
4240 * config/riscv/bitmanip.md: allow 0 constant in max/min
4241 pattern.
4242
4243 2023-03-05 Lin Sinan <sinan.lin@linux.alibaba.com>
4244
4245 * config/riscv/bitmanip.md: Fix wrong index in the check.
4246
4247 2023-03-04 Jakub Jelinek <jakub@redhat.com>
4248
4249 PR middle-end/109006
4250 * vec.cc (test_auto_alias): Adjust comment for removal of
4251 m_vecdata.
4252 * read-rtl-function.cc (function_reader::parse_block): Likewise.
4253 * gdbhooks.py: Likewise.
4254
4255 2023-03-04 Jakub Jelinek <jakub@redhat.com>
4256
4257 PR testsuite/108973
4258 * selftest-diagnostic.cc
4259 (test_diagnostic_context::test_diagnostic_context): Set
4260 caret_max_width to 80.
4261
4262 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4263
4264 * gimple-ssa-warn-access.cc
4265 (pass_waccess::check_dangling_stores): Skip non-stores.
4266
4267 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4268
4269 * config/arm/vfp.md (*thumb2_movsi_vfp): Drop blank after tab
4270 after vmsr and vmrs, and lower the case of P0.
4271
4272 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
4273
4274 PR middle-end/109006
4275 * gdbhooks.py (VecPrinter): Handle vec<T> as well as vec<T>*.
4276
4277 2023-03-03 Jonathan Wakely <jwakely@redhat.com>
4278
4279 PR middle-end/109006
4280 * gdbhooks.py (VecPrinter): Adjust for new vec layout.
4281
4282 2023-03-03 Jakub Jelinek <jakub@redhat.com>
4283
4284 PR c/108986
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.
4289
4290 2023-03-03 Robin Dapp <rdapp@linux.ibm.com>
4291
4292 * config/s390/driver-native.cc (s390_host_detect_local_cpu): Use
4293 arch14 instead of z16.
4294
4295 2023-03-03 Anthony Green <green@moxielogic.com>
4296
4297 * config/moxie/moxie.cc (TARGET_LRA_P): Remove.
4298
4299 2023-03-03 Anthony Green <green@moxielogic.com>
4300
4301 * config/moxie/constraints.md (A, B, W): Change
4302 define_constraint to define_memory_constraint.
4303
4304 2023-03-03 Xi Ruoyao <xry111@xry111.site>
4305
4306 * toplev.cc (process_options): Fix the spelling of
4307 "-fstack-clash-protection".
4308
4309 2023-03-03 Richard Biener <rguenther@suse.de>
4310
4311 PR tree-optimization/109002
4312 * tree-ssa-pre.cc (compute_partial_antic_aux): Properly
4313 PHI-translate ANTIC_IN.
4314
4315 2023-03-03 Jakub Jelinek <jakub@redhat.com>
4316
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
4320 fixes.
4321
4322 2023-03-03 Richard Biener <rguenther@suse.de>
4323
4324 PR target/108738
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
4335 disallowed insn.
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
4340 chains.
4341
4342 2023-03-03 Richard Biener <rguenther@suse.de>
4343
4344 PR debug/108772
4345 * dwarf2out.cc (dwarf2out_late_global_decl): Do not
4346 generate a DIE for a function scope static.
4347
4348 2023-03-03 Alexandre Oliva <oliva@adacore.com>
4349
4350 * config/vx-common.h (WINT_TYPE): Alias to "wchar_t".
4351
4352 2023-03-02 Jakub Jelinek <jakub@redhat.com>
4353
4354 PR target/108883
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.
4363
4364 2023-03-02 Vladimir N. Makarov <vmakarov@redhat.com>
4365
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
4369 move.
4370
4371 2023-03-02 Kwok Cheung Yeung <kcy@codesourcery.com>
4372 Paul-Antoine Arras <pa@codesourcery.com>
4373
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.
4381
4382 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4383
4384 PR tree-optimization/108979
4385 * tree-vect-stmts.cc (vectorizable_operation): Don't mask
4386 operations on invariants.
4387
4388 2023-03-02 Robin Dapp <rdapp@linux.ibm.com>
4389
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.
4395
4396 2023-03-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
4397
4398 * simplify-rtx.cc (simplify_context::simplify_subreg): Use byte instead
4399 of constant 0 offset.
4400
4401 2023-03-02 Robert Suchanek <robert.suchanek@imgtec.com>
4402
4403 * config/mips/mips.cc (mips_set_text_contents_type): Use HOST_WIDE_INT
4404 instead of long.
4405 * config/mips/mips-protos.h (mips_set_text_contents_type): Likewise.
4406
4407 2023-03-02 Junxian Zhu <zhujunxian@oss.cipunited.com>
4408
4409 * config.gcc: add -with-{no-}msa build option.
4410 * config/mips/mips.h: Likewise.
4411 * doc/install.texi: Likewise.
4412
4413 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4414
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
4418 were emitted.
4419
4420 2023-03-02 Richard Sandiford <richard.sandiford@arm.com>
4421
4422 PR tree-optimization/108430
4423 * tree-vect-stmts.cc (vectorizable_condition): Fix handling
4424 of inverted condition.
4425
4426 2023-03-02 Jakub Jelinek <jakub@redhat.com>
4427
4428 PR c++/108934
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.
4432
4433 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
4434
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.
4443
4444 2023-03-01 LIU Hao <lh_mouse@126.com>
4445
4446 PR pch/14940
4447 * config/i386/host-mingw32.cc (mingw32_gt_pch_get_address):
4448 Remove the size limit `pch_VA_max_size`
4449
4450 2023-03-01 Tobias Burnus <tobias@codesourcery.com>
4451
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
4455 use_device_ptr.
4456
4457 2023-03-01 Jakub Jelinek <jakub@redhat.com>
4458
4459 PR debug/108967
4460 * cfgexpand.cc (expand_debug_expr): Handle WIDEN_{PLUS,MINUS}_EXPR
4461 and VEC_WIDEN_{PLUS,MINUS}_{HI,LO}_EXPR.
4462
4463 2023-03-01 Richard Biener <rguenther@suse.de>
4464
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
4469 check.
4470 (vect_do_peeling): Streamline error handling.
4471
4472 2023-03-01 Richard Biener <rguenther@suse.de>
4473
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.
4480
4481 2023-03-01 Kewen Lin <linkw@linux.ibm.com>
4482
4483 PR target/108240
4484 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Allow
4485 implicit powerpc64 setting to be unset if 64 bit is enabled implicitly.
4486
4487 2023-02-28 Qing Zhao <qing.zhao@oracle.com>
4488
4489 PR middle-end/107411
4490 PR middle-end/107411
4491 * gimplify.cc (gimple_add_init_for_auto_var): Use sprintf to replace
4492 xasprintf.
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.
4495
4496 2023-02-28 Jakub Jelinek <jakub@redhat.com>
4497
4498 PR sanitizer/108894
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.
4508
4509 2023-02-27 Uroš Bizjak <ubizjak@gmail.com>
4510
4511 PR target/108922
4512 Revert:
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.
4519
4520 2023-02-27 Roger Sayle <roger@nextmovesoftware.com>
4521
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.
4527
4528 2023-02-27 Patrick Palka <ppalka@redhat.com>
4529
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
4534 instead of static.
4535
4536 2023-02-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4537
4538 * config/xtensa/xtensa-protos.h (xtensa_match_CLAMPS_imms_p):
4539 New prototype.
4540 * config/xtensa/xtensa.cc (xtensa_match_CLAMPS_imms_p):
4541 New function.
4542 * config/xtensa/xtensa.h (TARGET_CLAMPS): New macro definition.
4543 * config/xtensa/xtensa.md (*xtensa_clamps): New insn pattern.
4544
4545 2023-02-27 Max Filippov <jcmvbkbc@gmail.com>
4546
4547 * config/xtensa/xtensa-dynconfig.cc (xtensa_get_config_v2)
4548 (xtensa_get_config_v3): New functions.
4549
4550 2023-02-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4551
4552 * config/aarch64/aarch64-simd.md (aarch64_abs<mode>): Fix typo in comment.
4553
4554 2023-02-27 Lulu Cheng <chenglulu@loongson.cn>
4555
4556 * config/host-linux.cc (TRY_EMPTY_VM_SPACE): Modify the value of
4557 the macro to 0x1000000000.
4558
4559 2023-02-25 Gaius Mulley <gaiusmod2@gmail.com>
4560
4561 PR modula2/108261
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.
4566
4567 2023-02-25 Max Filippov <jcmvbkbc@gmail.com>
4568
4569 PR target/108919
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.
4579
4580 2023-02-24 Richard Biener <rguenther@suse.de>
4581
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
4585 address.
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.
4596
4597 2023-02-24 Richard Biener <rguenther@suse.de>
4598
4599 * vec.h (vec<T, A, vl_embed>::lower_bound): Adjust to
4600 take a const reference to the object, use address to
4601 access data.
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.
4614
4615 2023-02-24 Martin Liska <mliska@suse.cz>
4616
4617 PR sanitizer/108834
4618 * asan.cc (asan_add_global): Use proper TU name for normal
4619 global variables (and aux_base_name for the artificial one).
4620
4621 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4622
4623 * config/i386/i386-builtin.def: Update description of BDESC
4624 and BDESC_FIRST in file comment to include mask2.
4625
4626 2023-02-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
4627
4628 * config/aarch64/aarch64-cores.def (FLAGS): Update comment.
4629
4630 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4631
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.
4636
4637 2023-02-24 Jakub Jelinek <jakub@redhat.com>
4638
4639 PR target/108881
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.
4655
4656 2023-02-24 Sebastian Huber <sebastian.huber@embedded-brains.de>
4657
4658 * config/riscv/t-rtems: Keep only -mcmodel=medany 64-bit multilibs.
4659 Add non-compact 32-bit multilibs.
4660
4661 2023-02-24 Junxian Zhu <zhujunxian@oss.cipunited.com>
4662
4663 * config/mips/mips.md (*clo<mode>2): New pattern.
4664
4665 2023-02-24 Prachi Godbole <prachi.godbole@imgtec.com>
4666
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.
4681
4682 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4683
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.
4687
4688 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4689
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.
4694
4695 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
4696
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.
4710
4711 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4712
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.
4716
4717 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4718
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)
4726 directly.
4727 (xtensa_expand_prologue): Modify to not emit register restoration
4728 insn from its stack slot if the register is already eliminated.
4729
4730 2023-02-23 Jakub Jelinek <jakub@redhat.com>
4731
4732 PR translation/108890
4733 * config/xtensa/xtensa-dynconfig.c (xtensa_load_config): Drop _()s
4734 around fatal_error format strings.
4735
4736 2023-02-23 Richard Biener <rguenther@suse.de>
4737
4738 * tree-ssa-structalias.cc (handle_lhs_call): Do not
4739 re-create rhsc, only truncate it.
4740
4741 2023-02-23 Jakub Jelinek <jakub@redhat.com>
4742
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.
4746
4747 2023-02-23 Richard Biener <rguenther@suse.de>
4748
4749 * tree-if-conv.cc (tree_if_conversion): Properly manage
4750 memory of refs and the contained data references.
4751
4752 2023-02-23 Richard Biener <rguenther@suse.de>
4753
4754 PR tree-optimization/108888
4755 * tree-if-conv.cc (if_convertible_stmt_p): Set PLF_2 on
4756 calls to predicate.
4757 (predicate_statements): Only predicate calls with PLF_2.
4758
4759 2023-02-23 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4760
4761 * config/xtensa/xtensa.md
4762 (zero_cost_loop_start, zero_cost_loop_end, loop_end):
4763 Add missing "SI:" to PLUS RTXes.
4764
4765 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4766
4767 PR target/108876
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).
4771
4772 2023-02-23 Max Filippov <jcmvbkbc@gmail.com>
4773
4774 Revert:
4775 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
4776
4777 PR target/108876
4778 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
4779 for A0_REG.
4780 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
4781 (sibcall_value, sibcall_value_internal): Add 'use' expression
4782 for A0_REG.
4783
4784 2023-02-23 Arsen Arsenović <arsen@aarsen.me>
4785
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.
4792
4793 2023-02-22 Andrew Stubbs <ams@codesourcery.com>
4794
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.
4808
4809 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4810
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.
4815 (BASE): Ditto.
4816 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
4817 * config/riscv/riscv-vector-builtins-functions.def (vredsum): Add reduction support.
4818 (vredmaxu): Ditto.
4819 (vredmax): Ditto.
4820 (vredminu): Ditto.
4821 (vredmin): Ditto.
4822 (vredand): Ditto.
4823 (vredor): Ditto.
4824 (vredxor): Ditto.
4825 (vwredsum): Ditto.
4826 (vwredsumu): Ditto.
4827 (vfredusum): Ditto.
4828 (vfredosum): Ditto.
4829 (vfredmax): Ditto.
4830 (vfredmin): Ditto.
4831 (vfwredosum): Ditto.
4832 (vfwredusum): Ditto.
4833 * config/riscv/riscv-vector-builtins-shapes.cc (struct reduc_alu_def): Ditto.
4834 (SHAPE): 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.
4842 (vint8m1_t): Ditto.
4843 (vint8m2_t): Ditto.
4844 (vint8m4_t): Ditto.
4845 (vint8m8_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.
4896
4897 2023-02-22 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
4898
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.
4939 (BASE): Ditto.
4940 * config/riscv/riscv-vector-builtins-bases.h:
4941 * config/riscv/riscv-vector-builtins-functions.def (vzext): Ditto.
4942 (vsext): Ditto.
4943 (vfadd): Ditto.
4944 (vfsub): Ditto.
4945 (vfrsub): Ditto.
4946 (vfwadd): Ditto.
4947 (vfwsub): Ditto.
4948 (vfmul): Ditto.
4949 (vfdiv): Ditto.
4950 (vfrdiv): Ditto.
4951 (vfwmul): Ditto.
4952 (vfmacc): Ditto.
4953 (vfnmsac): Ditto.
4954 (vfmadd): Ditto.
4955 (vfnmsub): Ditto.
4956 (vfnmacc): Ditto.
4957 (vfmsac): Ditto.
4958 (vfnmadd): Ditto.
4959 (vfmsub): Ditto.
4960 (vfwmacc): Ditto.
4961 (vfwnmacc): Ditto.
4962 (vfwmsac): Ditto.
4963 (vfwnmsac): Ditto.
4964 (vfsqrt): Ditto.
4965 (vfrsqrt7): Ditto.
4966 (vfrec7): Ditto.
4967 (vfmin): Ditto.
4968 (vfmax): Ditto.
4969 (vfsgnj): Ditto.
4970 (vfsgnjn): Ditto.
4971 (vfsgnjx): Ditto.
4972 (vfneg): Ditto.
4973 (vfabs): Ditto.
4974 (vmfeq): Ditto.
4975 (vmfne): Ditto.
4976 (vmflt): Ditto.
4977 (vmfle): Ditto.
4978 (vmfgt): Ditto.
4979 (vmfge): Ditto.
4980 (vfclass): Ditto.
4981 (vfmerge): Ditto.
4982 (vfmv_v): Ditto.
4983 (vfcvt_x): Ditto.
4984 (vfcvt_xu): Ditto.
4985 (vfcvt_rtz_x): Ditto.
4986 (vfcvt_rtz_xu): Ditto.
4987 (vfcvt_f): Ditto.
4988 (vfwcvt_x): Ditto.
4989 (vfwcvt_xu): Ditto.
4990 (vfwcvt_rtz_x): Ditto.
4991 (vfwcvt_rtz_xu): Ditto.
4992 (vfwcvt_f): Ditto.
4993 (vfncvt_x): Ditto.
4994 (vfncvt_xu): Ditto.
4995 (vfncvt_rtz_x): Ditto.
4996 (vfncvt_rtz_xu): Ditto.
4997 (vfncvt_f): 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.
5043 (f): New define.
5044 (f_v): New define.
5045 (xu_v): New define.
5046 (f_w): New define.
5047 (xu_w): 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.
5051 (vfrecp): Ditto.
5052 (copysign): Ditto.
5053 (n): Ditto.
5054 (msac): Ditto.
5055 (msub): Ditto.
5056 (fixuns_trunc): Ditto.
5057 (floatuns): 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.
5116
5117 2023-02-22 Jakub Jelinek <jakub@redhat.com>
5118
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.
5124
5125 2023-02-22 Thomas Schwinge <thomas@codesourcery.com>
5126
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.
5131
5132 2023-02-21 David Malcolm <dmalcolm@redhat.com>
5133
5134 PR analyzer/108830
5135 * doc/invoke.texi: Document -fno-analyzer-suppress-followups.
5136
5137 2023-02-21 Max Filippov <jcmvbkbc@gmail.com>
5138
5139 PR target/108876
5140 * config/xtensa/xtensa.cc (xtensa_expand_epilogue): Drop emit_use
5141 for A0_REG.
5142 * config/xtensa/xtensa.md (sibcall, sibcall_internal)
5143 (sibcall_value, sibcall_value_internal): Add 'use' expression
5144 for A0_REG.
5145
5146 2023-02-21 Richard Biener <rguenther@suse.de>
5147
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.
5151
5152 2023-02-21 Richard Biener <rguenther@suse.de>
5153
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.
5157
5158 2023-02-21 Richard Biener <rguenther@suse.de>
5159
5160 Revert:
5161 2023-02-13 Richard Biener <rguenther@suse.de>
5162
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.
5170
5171 2023-02-21 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5172
5173 * config/xtensa/xtensa.cc (xtensa_call_save_reg): Change to return
5174 true if register A0 (return address register) when -Og is specified.
5175
5176 2023-02-20 Uroš Bizjak <ubizjak@gmail.com>
5177
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.
5189
5190 2023-02-20 Jakub Jelinek <jakub2redhat.com>
5191
5192 PR target/108862
5193 * config/rs6000/rs6000.md (umaddditi4): Swap gen_maddlddi4 with
5194 gen_umadddi4_highpart{,_le}.
5195
5196 2023-02-20 Kito Cheng <kito.cheng@sifive.com>
5197
5198 * config/riscv/riscv.md (prefetch): Use r instead of p for the
5199 address operand.
5200 (riscv_prefetchi_<mode>): Ditto.
5201
5202 2023-02-20 Richard Biener <rguenther@suse.de>
5203
5204 PR tree-optimization/108816
5205 * tree-vect-loop-manip.cc (vect_loop_versioning): Adjust
5206 versioning condition split prerequesite, assert required
5207 invariant.
5208
5209 2023-02-20 Richard Biener <rguenther@suse.de>
5210
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
5214 update.
5215
5216 2023-02-20 Richard Biener <rguenther@suse.de>
5217
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.
5221
5222 2023-02-18 Jakub Jelinek <jakub@redhat.com>
5223
5224 PR tree-optimization/108819
5225 * tree-ssa-reassoc.cc (update_ops): Fold new stmt in place.
5226
5227 2023-02-18 Jakub Jelinek <jakub@redhat.com>
5228
5229 PR target/108832
5230 * config/i386/i386-protos.h (ix86_replace_reg_with_reg): Declare.
5231 * config/i386/i386-expand.cc (ix86_replace_reg_with_reg): New
5232 function.
5233 * config/i386/i386.md: Replace replace_rtx calls in all peephole2s
5234 with ix86_replace_reg_with_reg.
5235
5236 2023-02-18 Gerald Pfeifer <gerald@pfeifer.com>
5237
5238 * doc/invoke.texi (AVR Options): Update link to AVR-LibC.
5239
5240 2023-02-18 Xi Ruoyao <xry111@xry111.site>
5241
5242 * config.gcc (triplet_abi): Set its value based on $with_abi,
5243 instead of $target.
5244 (la_canonical_triplet): Set it after $triplet_abi is set
5245 correctly.
5246 * config/loongarch/t-linux (MULTILIB_OSDIRNAMES): Make the
5247 multiarch tuple for lp64d "loongarch64-linux-gnu" (without
5248 "f64" suffix).
5249
5250 2023-02-18 Andrew Pinski <apinski@marvell.com>
5251
5252 * match.pd: Remove #if GIMPLE around the
5253 "1 - a" pattern
5254
5255 2023-02-18 Andrew Pinski <apinski@marvell.com>
5256
5257 * value-query.h (get_range_query): Return the global ranges
5258 for a nullptr func.
5259
5260 2023-02-17 Siddhesh Poyarekar <siddhesh@gotplt.org>
5261
5262 * doc/invoke.texi (@item -Wall): Fix typo in
5263 -Wuse-after-free.
5264
5265 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
5266
5267 PR target/108831
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.
5274
5275 2023-02-17 Uroš Bizjak <ubizjak@gmail.com>
5276
5277 PR target/108805
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.
5281
5282 2023-02-17 Richard Biener <rguenther@suse.de>
5283
5284 PR tree-optimization/108821
5285 * tree-ssa-loop-im.cc (sm_seq_valid_bb): We can also not
5286 move volatile accesses.
5287
5288 2023-02-17 Richard Biener <rguenther@suse.de>
5289
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.
5298
5299 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5300
5301 * config/riscv/riscv-vector-builtins-bases.cc (class mask_logic): New
5302 class.
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.
5313 (class vid): Ditto.
5314 (BASE): Ditto.
5315 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5316 * config/riscv/riscv-vector-builtins-functions.def (vmand): Ditto.
5317 (vmnand): Ditto.
5318 (vmandn): Ditto.
5319 (vmxor): Ditto.
5320 (vmor): Ditto.
5321 (vmnor): Ditto.
5322 (vmorn): Ditto.
5323 (vmxnor): Ditto.
5324 (vmmv): Ditto.
5325 (vmclr): Ditto.
5326 (vmset): Ditto.
5327 (vmnot): Ditto.
5328 (vcpop): Ditto.
5329 (vfirst): Ditto.
5330 (vmsbf): Ditto.
5331 (vmsif): Ditto.
5332 (vmsof): Ditto.
5333 (viota): Ditto.
5334 (vid): Ditto.
5335 * config/riscv/riscv-vector-builtins-shapes.cc (struct alu_def): Ditto.
5336 (struct mask_alu_def): Ditto.
5337 (SHAPE): 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.
5350
5351 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5352
5353 * config/riscv/riscv-vector-builtins-functions.def (vadc): Rename.
5354 (vsbc): Ditto.
5355 (vmerge): Ditto.
5356 (vmv_v): Ditto.
5357 * config/riscv/riscv-vector-builtins.cc: Ditto.
5358
5359 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5360 kito-cheng <kito.cheng@sifive.com>
5361
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.
5366
5367 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5368
5369 * config/riscv/riscv-vector-builtins-functions.def (vsetvlmax): Rearrange.
5370 (vsm): Ditto.
5371 (vsse): Ditto.
5372 (vsoxei64): Ditto.
5373 (vsub): Ditto.
5374 (vand): Ditto.
5375 (vor): Ditto.
5376 (vxor): Ditto.
5377 (vsll): Ditto.
5378 (vsra): Ditto.
5379 (vsrl): Ditto.
5380 (vmin): Ditto.
5381 (vmax): Ditto.
5382 (vminu): Ditto.
5383 (vmaxu): Ditto.
5384 (vmul): Ditto.
5385 (vmulh): Ditto.
5386 (vmulhu): Ditto.
5387 (vmulhsu): Ditto.
5388 (vdiv): Ditto.
5389 (vrem): Ditto.
5390 (vdivu): Ditto.
5391 (vremu): Ditto.
5392 (vnot): Ditto.
5393 (vsext): Ditto.
5394 (vzext): Ditto.
5395 (vwadd): Ditto.
5396 (vwsub): Ditto.
5397 (vwmul): Ditto.
5398 (vwmulu): Ditto.
5399 (vwmulsu): Ditto.
5400 (vwaddu): Ditto.
5401 (vwsubu): Ditto.
5402 (vsbc): Ditto.
5403 (vmsbc): Ditto.
5404 (vnsra): Ditto.
5405 (vmerge): Ditto.
5406 (vmv_v): Ditto.
5407 (vmsne): Ditto.
5408 (vmslt): Ditto.
5409 (vmsgt): Ditto.
5410 (vmsle): Ditto.
5411 (vmsge): Ditto.
5412 (vmsltu): Ditto.
5413 (vmsgtu): Ditto.
5414 (vmsleu): Ditto.
5415 (vmsgeu): Ditto.
5416 (vnmsac): Ditto.
5417 (vmadd): Ditto.
5418 (vnmsub): Ditto.
5419 (vwmacc): Ditto.
5420 (vsadd): Ditto.
5421 (vssub): Ditto.
5422 (vssubu): Ditto.
5423 (vaadd): Ditto.
5424 (vasub): Ditto.
5425 (vasubu): Ditto.
5426 (vsmul): Ditto.
5427 (vssra): Ditto.
5428 (vssrl): Ditto.
5429 (vnclip): Ditto.
5430
5431 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5432
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.
5437
5438 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5439
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.
5451 (get_vlmul): Ditto.
5452 (get_ratio): Ditto.
5453 (get_ta): Ditto.
5454 (get_ma): Ditto.
5455 (get_avl_type): Ditto.
5456 (calculate_ratio): Ditto.
5457 (enum vlmul_type): Ditto.
5458 (simm5_p): Ditto.
5459 (neg_simm5_p): Ditto.
5460 (has_vi_variant_p): Ditto.
5461
5462 2023-02-17 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5463
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.
5468
5469 2023-02-16 Gerald Pfeifer <gerald@pfeifer.com>
5470
5471 * doc/invoke.texi (Optimize Options): Reword the explanation
5472 getting minimal, maximal and default values of a parameter.
5473
5474 2023-02-16 Patrick Palka <ppalka@redhat.com>
5475
5476 * addresses.h: Mechanically drop 'static' from 'static inline'
5477 functions via s/^static inline/inline/g.
5478 * asan.h: Likewise.
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.
5488 * df.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.
5495 * expr.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.
5519 * ira.h: Likewise.
5520 * lra-int.h: Likewise.
5521 * lra.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.
5532 * regs.h: Likewise.
5533 * rtl-iter.h: Likewise.
5534 * rtl.h: Likewise.
5535 * sbitmap.h: Likewise.
5536 * sched-int.h: Likewise.
5537 * sel-sched-ir.h: Likewise.
5538 * sese.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.
5564 * tree.h: Likewise.
5565 * wide-int.h: Likewise.
5566
5567 2023-02-16 Jakub Jelinek <jakub@redhat.com>
5568
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.
5573
5574 2023-02-16 Jonathan Wakely <jwakely@redhat.com>
5575
5576 * doc/invoke.texi (C++ Dialect Options): Suggest adding a
5577 using-declaration to unhide functions.
5578
5579 2023-02-16 Jakub Jelinek <jakub@redhat.com>
5580
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.
5586
5587 2023-02-16 Richard Biener <rguenther@suse.de>
5588
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
5592 type.
5593
5594 2023-02-15 Eric Botcazou <ebotcazou@adacore.com>
5595
5596 PR target/90458
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.
5600
5601 2023-02-15 Jan-Benedict Glaw <jbglaw@lug-owl.de>
5602
5603 * config/bpf/bpf.cc (bpf_option_override): Fix doubled space.
5604
5605 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
5606
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.
5613 (*extzvqi): Ditto.
5614 (*insvqi_1_mem_rex64): Ditto.
5615 (@insv<mode>_1): Ditto.
5616 (*insvqi_1): Ditto.
5617 (*insvqi_2): Ditto.
5618 (*insvqi_3): 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.
5634
5635 2023-02-15 Uroš Bizjak <ubizjak@gmail.com>
5636
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.
5649
5650 2023-02-15 Richard Biener <rguenther@suse.de>
5651
5652 PR middle-end/26854
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.
5659
5660 2023-02-15 Marek Polacek <polacek@redhat.com>
5661
5662 PR middle-end/106080
5663 * gimple-ssa-warn-access.cc (is_auto_decl): Remove. Use auto_var_p
5664 instead.
5665
5666 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5667
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
5672 enum.
5673 (class imac): New class.
5674 (enum widen_ternop_type): New enum.
5675 (class iwmac): New class.
5676 (BASE): New class.
5677 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5678 * config/riscv/riscv-vector-builtins-functions.def (vmacc): Ditto.
5679 (vnmsac): Ditto.
5680 (vmadd): Ditto.
5681 (vnmsub): Ditto.
5682 (vwmacc): Ditto.
5683 (vwmaccu): Ditto.
5684 (vwmaccsu): Ditto.
5685 (vwmaccus): 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.
5711
5712 2023-02-15 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5713
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.
5723 (BASE): Ditto.
5724 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5725 * config/riscv/riscv-vector-builtins-functions.def (vmseq): Ditto.
5726 (vmsne): Ditto.
5727 (vmslt): Ditto.
5728 (vmsgt): Ditto.
5729 (vmsle): Ditto.
5730 (vmsge): Ditto.
5731 (vmsltu): Ditto.
5732 (vmsgtu): Ditto.
5733 (vmsleu): Ditto.
5734 (vmsgeu): 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.
5765
5766 2023-02-15 Martin Jambor <mjambor@suse.cz>
5767
5768 PR ipa/108679
5769 * ipa-sra.cc (push_param_adjustments_for_index): Do not omit
5770 creation of non-scalar replacements even if IPA-CP knows their
5771 contents.
5772
5773 2023-02-15 Jakub Jelinek <jakub@redhat.com>
5774
5775 PR target/108787
5776 PR target/103109
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
5780 half to the result.
5781
5782 2023-02-15 Martin Liska <mliska@suse.cz>
5783
5784 * doc/invoke.texi: Document --param=asan-kernel-mem-intrinsic-prefix.
5785
5786 2023-02-15 Richard Biener <rguenther@suse.de>
5787
5788 * sanopt.cc (sanitize_asan_mark_unpoison): Use bitmap
5789 for with_poison and alias worklist to it.
5790 (sanitize_asan_mark_poison): Likewise.
5791
5792 2023-02-15 Richard Biener <rguenther@suse.de>
5793
5794 PR target/108738
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
5802 check.
5803
5804 2023-02-15 Richard Biener <rguenther@suse.de>
5805
5806 PR target/108738
5807 * config/i386/i386-features.cc (convert_scalars_to_vector):
5808 Switch candidates bitmaps to tree view before building the chains.
5809
5810 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
5811
5812 * reload1.cc (gen_reload): Correct rtx parameter for fatal_insn
5813 "failure trying to reload" call.
5814
5815 2023-02-15 Hans-Peter Nilsson <hp@axis.com>
5816
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.
5820
5821 2023-02-14 David Faust <david.faust@oracle.com>
5822
5823 PR target/108790
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.
5829
5830 2023-02-14 Andrew Pinski <apinski@marvell.com>
5831
5832 PR tree-optimization/108355
5833 PR tree-optimization/96921
5834 * match.pd: Add pattern for "1 - bool_val".
5835
5836 2023-02-14 Richard Biener <rguenther@suse.de>
5837
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.
5845
5846 2023-02-14 Eric Botcazou <ebotcazou@adacore.com>
5847
5848 * gimplify.cc (gimplify_save_expr): Add missing guard.
5849
5850 2023-02-14 Richard Biener <rguenther@suse.de>
5851
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.
5855
5856 2023-02-14 Jakub Jelinek <jakub@redhat.com>
5857
5858 PR sanitizer/108777
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.
5870
5871 2023-02-14 Richard Sandiford <richard.sandiford@arm.com>
5872
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
5876 possible.
5877
5878 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
5879
5880 PR rtl-optimization/108681
5881 * lra-spills.cc (lra_final_code_change): Extend subreg replacement
5882 code to handle bare uses and clobbers.
5883
5884 2023-02-13 Vladimir N. Makarov <vmakarov@redhat.com>
5885
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.
5890
5891 2023-02-13 Uroš Bizjak <ubizjak@gmail.com>
5892
5893 PR target/108516
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.
5900
5901 2023-02-13 Richard Biener <rguenther@suse.de>
5902
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
5908 enabled.
5909 (process_bb): Instead call it once here for each edge
5910 we register possibly multiple predicates on.
5911
5912 2023-02-13 Richard Biener <rguenther@suse.de>
5913
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.
5921
5922 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
5923
5924 PR target/108102
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
5928 the current side.
5929 (s390_sched_init): Unconditionally reset scheduler state.
5930
5931 2023-02-13 Richard Sandiford <richard.sandiford@arm.com>
5932
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.
5938
5939 2023-02-13 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
5940
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.
5944
5945 2023-02-13 Claudiu Zissulescu <claziss@gmail.com>
5946
5947 * common/config/arc/arc-common.cc (arc_option_optimization_table):
5948 Remove millicode from list.
5949
5950 2023-02-13 Martin Liska <mliska@suse.cz>
5951
5952 * doc/invoke.texi: Document ira-simple-lra-insn-threshold.
5953
5954 2023-02-13 Richard Biener <rguenther@suse.de>
5955
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.
5963
5964 2023-02-13 Kito Cheng <kito.cheng@sifive.com>
5965
5966 * config/riscv/riscv.h (RISCV_DWARF_VLENB): New.
5967 (DWARF_FRAME_REGISTERS): New.
5968 (DWARF_REG_TO_UNWIND_COLUMN): New.
5969
5970 2023-02-12 Gerald Pfeifer <gerald@pfeifer.com>
5971
5972 * doc/sourcebuild.texi: Remove (broken) direct reference to
5973 "The GNU configure and build system".
5974
5975 2023-02-12 Jin Ma <jinma@linux.alibaba.com>
5976
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.
5980
5981 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
5982
5983 * config/riscv/riscv-vector-builtins-bases.cc (class sat_op): New class.
5984 (class vnclip): Ditto.
5985 (BASE): Ditto.
5986 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
5987 * config/riscv/riscv-vector-builtins-functions.def (vaadd): Ditto.
5988 (vasub): Ditto.
5989 (vaaddu): Ditto.
5990 (vasubu): Ditto.
5991 (vsmul): Ditto.
5992 (vssra): Ditto.
5993 (vssrl): Ditto.
5994 (vnclipu): Ditto.
5995 (vnclip): Ditto.
5996 * config/riscv/vector-iterators.md (su): Add instruction.
5997 (aadd): Ditto.
5998 (vaalu): Ditto.
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.
6005
6006 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6007
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.
6014 (BASE): Ditto.
6015 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6016 * config/riscv/riscv-vector-builtins-functions.def (vsra): Ditto.
6017 (vsrl): Ditto.
6018 (vnsrl): Ditto.
6019 (vnsra): Ditto.
6020 (vncvt_x): Ditto.
6021 (vmerge): Ditto.
6022 (vmv_v): Ditto.
6023 * config/riscv/riscv-vector-builtins-shapes.cc (struct narrow_alu_def): Ditto.
6024 (struct move_def): Ditto.
6025 (SHAPE): 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.
6030 (v_v): Ditto.
6031 (v_x): Ditto.
6032 (x_w): Ditto.
6033 (x): Ditto.
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.
6044
6045 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6046
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.
6052 (vmsbc): Ditto.
6053 * config/riscv/riscv-vector-builtins-shapes.cc (struct return_mask_def):
6054 New class.
6055 (SHAPE): Ditto.
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.
6078
6079 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6080
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.
6085 (BASE): Ditto.
6086 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6087 * config/riscv/riscv-vector-builtins-functions.def (vadc): Ditto.
6088 (vsbc): Ditto.
6089 * config/riscv/riscv-vector-builtins-shapes.cc
6090 (struct no_mask_policy_def): Ditto.
6091 (SHAPE): 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.
6108
6109 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6110
6111 * config/riscv/vector.md: use "zero" reg.
6112
6113 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6114
6115 * config/riscv/riscv-vector-builtins-bases.cc (class widen_binop): New
6116 class.
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.
6122 (vwsub): New class.
6123 (vwmul): 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
6131 class.
6132 (struct widen_alu_def): New class.
6133 (SHAPE): 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"
6139 (x_v): Ditto.
6140 * config/riscv/riscv-vector-builtins.h (enum rvv_base_type): Add integer
6141 widening support.
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
6147 pattern.
6148 (@pred_dual_widen_<any_widen_binop:optab><any_extend:su><mode>_scalar):
6149 Ditto.
6150 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>): Ditto.
6151 (@pred_single_widen_<plus_minus:optab><any_extend:su><mode>_scalar):
6152 Ditto.
6153 (@pred_widen_mulsu<mode>): Ditto.
6154 (@pred_widen_mulsu<mode>_scalar): Ditto.
6155 (@pred_<optab><mode>): Ditto.
6156
6157 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6158 kito-cheng <kito.cheng@sifive.com>
6159
6160 * common/config/riscv/riscv-common.cc: Add flag for 'V' extension.
6161 * config/riscv/riscv-vector-builtins-bases.cc (class vmulh): New class.
6162 (BASE): Ditto.
6163 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6164 * config/riscv/riscv-vector-builtins-functions.def (vmulh): Add vmulh
6165 API support.
6166 (vmulhu): Ditto.
6167 (vmulhsu): Ditto.
6168 * config/riscv/riscv-vector-builtins-types.def (DEF_RVV_FULL_V_I_OPS):
6169 New macro.
6170 (DEF_RVV_FULL_V_U_OPS): Ditto.
6171 (vint8mf8_t): Ditto.
6172 (vint8mf4_t): Ditto.
6173 (vint8mf2_t): Ditto.
6174 (vint8m1_t): Ditto.
6175 (vint8m2_t): Ditto.
6176 (vint8m4_t): Ditto.
6177 (vint8m8_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.
6227
6228 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6229
6230 * config/riscv/iterators.md: Add sign_extend/zero_extend.
6231 * config/riscv/riscv-vector-builtins-bases.cc (class ext): New class.
6232 (BASE): Ditto.
6233 * config/riscv/riscv-vector-builtins-bases.h: Add vsext/vzext support.
6234 * config/riscv/riscv-vector-builtins-functions.def (vsext): New macro
6235 define.
6236 (vzext): Ditto.
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
6240 macro define.
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
6283 support.
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.
6290
6291 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6292
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.
6298 (vssub): Ditto.
6299 (vsaddu): Ditto.
6300 (vssubu): Ditto.
6301 * config/riscv/vector-iterators.md (sll.vi): Adjust for Saturating
6302 support.
6303 (sll.vv): Ditto.
6304 (%3,%v4): Ditto.
6305 (%3,%4): Ditto.
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.
6310
6311 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6312
6313 * config/riscv/iterators.md: Add neg and not.
6314 * config/riscv/riscv-vector-builtins-bases.cc (class unop): New class.
6315 (BASE): Ditto.
6316 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6317 * config/riscv/riscv-vector-builtins-functions.def (vadd): Rename binop
6318 into alu.
6319 (vsub): Ditto.
6320 (vand): Ditto.
6321 (vor): Ditto.
6322 (vxor): Ditto.
6323 (vsll): Ditto.
6324 (vsra): Ditto.
6325 (vsrl): Ditto.
6326 (vmin): Ditto.
6327 (vmax): Ditto.
6328 (vminu): Ditto.
6329 (vmaxu): Ditto.
6330 (vmul): Ditto.
6331 (vdiv): Ditto.
6332 (vrem): Ditto.
6333 (vdivu): Ditto.
6334 (vremu): Ditto.
6335 (vrsub): Ditto.
6336 (vneg): Ditto.
6337 (vnot): Ditto.
6338 * config/riscv/riscv-vector-builtins-shapes.cc (struct binop_def): Ditto.
6339 (struct alu_def): Ditto.
6340 (SHAPE): 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
6345
6346 2023-02-12 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6347
6348 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::compute_probabilities): Skip exit block.
6349
6350 2023-02-11 Jakub Jelinek <jakub@redhat.com>
6351
6352 PR ipa/108605
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.
6356
6357 2023-02-11 Gerald Pfeifer <gerald@pfeifer.com>
6358
6359 * doc/extend.texi (Other Builtins): Adjust link to WG14 N965.
6360
6361 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
6362
6363 * ira.cc (update_equiv_regs): Set up ira_reg_equiv for
6364 valid_combine only when ira_use_lra_p is true.
6365
6366 2023-02-10 Vladimir N. Makarov <vmakarov@redhat.com>
6367
6368 * params.opt (ira-simple-lra-insn-threshold): Add new param.
6369 * ira.cc (ira): Use the param to switch on simple LRA.
6370
6371 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
6372
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.
6378
6379 2023-02-10 Andrew MacLeod <amacleod@redhat.com>
6380
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.
6388
6389 2023-02-10 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6390
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.
6397 (simm32_p): 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.
6406 (simm5_p): Ditto.
6407 (neg_simm5_p): Ditto.
6408 (has_vi_variant_p): Ditto.
6409 * config/riscv/riscv-vector-builtins-bases.cc (class vrsub): New class.
6410 (BASE): Ditto.
6411 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
6412 * config/riscv/riscv-vector-builtins-functions.def (vmin): Remove
6413 unsigned cases.
6414 (vmax): Ditto.
6415 (vminu): Remove signed cases.
6416 (vmaxu): Ditto.
6417 (vdiv): Remove unsigned cases.
6418 (vrem): Ditto.
6419 (vdivu): Remove signed cases.
6420 (vremu): Ditto.
6421 (vadd): Adjust.
6422 (vsub): Ditto.
6423 (vrsub): New class.
6424 (vand): Adjust.
6425 (vor): Ditto.
6426 (vxor): Ditto.
6427 (vmul): Ditto.
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
6432 support.
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.
6439
6440 2023-02-10 Richard Biener <rguenther@suse.de>
6441
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.
6446
6447 2023-02-10 Jakub Jelinek <jakub@redhat.com>
6448
6449 Revert:
6450 2023-02-09 Martin Liska <mliska@suse.cz>
6451
6452 PR target/100758
6453 * doc/extend.texi: Document that the function
6454 does not work correctly for old VIA processors.
6455
6456 2023-02-10 Andrew Pinski <apinski@marvell.com>
6457 Andrew Macleod <amacleod@redhat.com>
6458
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
6464 removing it.
6465
6466 2023-02-09 Vladimir N. Makarov <vmakarov@redhat.com>
6467
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
6472 valid_combine.
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.
6477
6478 2023-02-09 Jakub Jelinek <jakub@redhat.com>
6479
6480 PR target/100758
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
6484 fixes.
6485
6486 2023-02-09 Jakub Jelinek <jakub@redhat.com>
6487
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.
6492
6493 2023-02-09 Andrew Pinski <apinski@marvell.com>
6494
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.
6498
6499 2023-02-09 Martin Liska <mliska@suse.cz>
6500
6501 PR target/100758
6502 * doc/extend.texi: Document that the function
6503 does not work correctly for old VIA processors.
6504
6505 2023-02-09 Andreas Schwab <schwab@suse.de>
6506
6507 * lto-wrapper.cc (merge_and_complain): Handle
6508 -funwind-tables and -fasynchronous-unwind-tables.
6509 (append_compiler_options): Likewise.
6510
6511 2023-02-09 Richard Biener <rguenther@suse.de>
6512
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
6517 in tree view.
6518 (walk_aliased_vdefs_1): Likewise.
6519
6520 2023-02-08 Gerald Pfeifer <gerald@pfeifer.com>
6521
6522 * doc/include/gpl_v3.texi: Change fsf.org to www.fsf.org.
6523
6524 2023-02-08 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
6525
6526 PR target/108505
6527 * config.gcc (tm_mlib_file): Define new variable.
6528
6529 2023-02-08 Jakub Jelinek <jakub@redhat.com>
6530
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.
6537
6538 2023-02-08 Andrea Corallo <andrea.corallo@arm.com>
6539
6540 * config/aarch64/aarch64-protos.h (aarch_ra_sign_key): Remove
6541 declaration.
6542 * config/aarch64/aarch64.cc (aarch_ra_sign_key): Remove
6543 definition.
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
6547 declaration.
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.
6551
6552 2023-02-08 Richard Sandiford <richard.sandiford@arm.com>
6553
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.
6558
6559 2023-02-08 Vladimir N. Makarov <vmakarov@redhat.com>
6560
6561 Revert:
6562 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
6563
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
6567 valid_combine.
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.
6572
6573 2023-02-08 Jakub Jelinek <jakub@redhat.com>
6574
6575 * tree.def (SAD_EXPR): Remove outdated comment about missing
6576 WIDEN_MINUS_EXPR.
6577
6578 2023-02-07 Marek Polacek <polacek@redhat.com>
6579
6580 * doc/invoke.texi: Update -fchar8_t documentation.
6581
6582 2023-02-07 Vladimir N. Makarov <vmakarov@redhat.com>
6583
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
6587 valid_combine.
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.
6592
6593 2023-02-07 Richard Biener <rguenther@suse.de>
6594
6595 PR tree-optimization/26854
6596 * gimple-fold.cc (has_use_on_stmt): Look at stmt operands
6597 instead of immediate uses.
6598
6599 2023-02-07 Jakub Jelinek <jakub@redhat.com>
6600
6601 PR tree-optimization/106923
6602 * ipa-split.cc (execute_split_functions): Don't split returns_twice
6603 functions.
6604
6605 2023-02-07 Jakub Jelinek <jakub@redhat.com>
6606
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.
6610
6611 2023-02-07 Jan Hubicka <jh@suse.cz>
6612
6613 * config/i386/x86-tune.def (X86_TUNE_AVX256_OPTIMAL): Turn off
6614 for znver4.
6615
6616 2023-02-06 Andrew Stubbs <ams@codesourcery.com>
6617
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.
6621
6622 2023-02-06 Alex Coplan <alex.coplan@arm.com>
6623
6624 PR target/104921
6625 * config/aarch64/aarch64-simd.md (aarch64_bfmlal<bt>_lane<q>v4sf):
6626 Use correct constraint for operand 3.
6627
6628 2023-02-06 Martin Jambor <mjambor@suse.cz>
6629
6630 * ipa-sra.cc (adjust_parameter_descriptions): Fix a typo in a dump.
6631
6632 2023-02-06 Xi Ruoyao <xry111@xry111.site>
6633
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.
6650
6651 2023-02-06 Jakub Jelinek <jakub@redhat.com>
6652
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.
6657
6658 2023-02-05 Gerald Pfeifer <gerald@pfeifer.com>
6659
6660 * doc/install.texi (Specific): Remove PW32.
6661
6662 2023-02-03 Jakub Jelinek <jakub@redhat.com>
6663
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
6670 op2.undefined_p ().
6671 (operator_lt::op2_range, operator_le::op2_range,
6672 operator_gt::op2_range, operator_ge::op2_range): Return false if
6673 op1.undefined_p ().
6674
6675 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
6676
6677 PR tree-optimization/108639
6678 * value-range.cc (irange::legacy_equal_p): Compare nonzero bits as
6679 widest_int.
6680 (irange::operator==): Same.
6681
6682 2023-02-03 Aldy Hernandez <aldyh@redhat.com>
6683
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.
6701
6702 2023-02-03 Andrew MacLeod <amacleod@redhat.com>
6703
6704 PR tree-optimization/107570
6705 * tree-vrp.cc (remove_and_update_globals): Reset SCEV.
6706
6707 2023-02-03 Gaius Mulley <gaiusmod2@gmail.com>
6708
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.
6717 (Indices): Ditto.
6718 (Contents): Ditto.
6719 (Functions): Ditto.
6720
6721 2023-02-03 Christophe Lyon <christophe.lyon@arm.com>
6722
6723 * config/arm/mve.md (mve_vabavq_p_<supf><mode>): Add length
6724 attribute.
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.
6729
6730 2023-02-03 Martin Jambor <mjambor@suse.cz>
6731
6732 PR ipa/108384
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.
6742
6743 2023-02-03 Monk Chiang <monk.chiang@sifive.com>
6744
6745 * config/riscv/riscv.h: Remove VL_REGS, VTYPE_REGS class.
6746 * config/riscv/riscv.cc: Ditto.
6747
6748 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6749
6750 * config/riscv/vector-iterators.md (sll.vi): Fix constraint bug.
6751 (sll.vv): Ditto.
6752 (%3,%4): Ditto.
6753 (%3,%v4): Ditto.
6754 * config/riscv/vector.md: Ditto.
6755
6756 2023-02-03 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
6757
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.
6761 (vsra): Ditto.
6762 (vsrl): Ditto.
6763 * config/riscv/riscv-vector-builtins.cc: Ditto.
6764 * config/riscv/vector.md (@pred_<optab><mode>_scalar): New pattern.
6765
6766 2023-02-02 Iain Sandoe <iain@sandoe.co.uk>
6767
6768 * toplev.cc (toplev::main): Only print the version information header
6769 from toplevel main().
6770
6771 2023-02-02 Paul-Antoine Arras <pa@codesourcery.com>
6772
6773 * config/gcn/gcn-valu.md (cond_<expander><mode>): Add
6774 cond_{ashl|ashr|lshr}
6775
6776 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
6777
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.
6781
6782 2023-02-02 Richard Sandiford <richard.sandiford@arm.com>
6783
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
6789 tree.
6790
6791 2023-02-02 Jin Ma <jinma@linux.alibaba.com>
6792
6793 * common/config/riscv/riscv-common.cc (riscv_compute_multilib):
6794 Fix finding best match score.
6795
6796 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6797
6798 PR debug/106746
6799 PR rtl-optimization/108463
6800 PR target/108484
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.
6809
6810 2023-02-02 Richard Biener <rguenther@suse.de>
6811
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.
6816
6817 2023-02-02 Andrew Stubbs <ams@codesourcery.com>
6818
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.
6836
6837 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6838
6839 PR target/108443
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
6844 format.
6845 (arm_hard_regno_mode_ok): Use VALID_MVE_PRED_MODE instead of checking
6846 modes.
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
6850 qualifier.
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
6858 modes.
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.
6873 (mode1): Remove.
6874 (VCTPQ): Remove.
6875 (VCTPQ_M): Remove.
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
6878 attributes.
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
6895 predicates.
6896 * config/arm/unspecs.md (VCTP8Q, VCTP16Q, VCTP32Q, VCTP64Q): Replace
6897 these...
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.
6903
6904 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6905
6906 PR target/107674
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.
6912
6913 2023-02-02 Andre Vieira <andre.simoesdiasvieira@arm.com>
6914
6915 PR target/107674
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
6919 parameter.
6920 (arm_init_crypto_builtins): Likewise.
6921
6922 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6923
6924 PR ipa/107300
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.
6944
6945 2023-02-02 liuhongt <hongtao.liu@intel.com>
6946
6947 PR tree-optimization/108601
6948 * tree-vectorizer.h (vect_can_peel_nonlinear_iv_p): Removed.
6949 * tree-vect-loop.cc
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):
6956 .. Here.
6957
6958 2023-02-02 Jakub Jelinek <jakub@redhat.com>
6959
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).
6969
6970 2023-02-01 Tamar Christina <tamar.christina@arm.com>
6971
6972 * common/config/aarch64/aarch64-common.cc
6973 (struct aarch64_option_extension): Add native_detect and document struct
6974 a bit more.
6975 (all_extensions): Set new field native_detect.
6976 * config/aarch64/aarch64.cc (struct aarch64_option_extension): Delete
6977 unused struct.
6978
6979 2023-02-01 Martin Liska <mliska@suse.cz>
6980
6981 * ipa-devirt.cc (odr_types_equivalent_p): Respect *warned
6982 value if set.
6983
6984 2023-02-01 Andrew MacLeod <amacleod@redhat.com>
6985
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.
6989
6990 2023-02-01 Martin Liska <mliska@suse.cz>
6991
6992 PR ipa/108509
6993 * cgraphunit.cc (walk_polymorphic_call_targets): Insert
6994 ony non-null values.
6995 * ipa.cc (walk_polymorphic_call_targets): Likewise.
6996
6997 2023-02-01 Martin Liska <mliska@suse.cz>
6998
6999 PR driver/108572
7000 * gcc.cc (LINK_COMPRESS_DEBUG_SPEC): Report error only for
7001 -gz=zstd.
7002
7003 2023-02-01 Jakub Jelinek <jakub@redhat.com>
7004
7005 PR debug/108573
7006 * ree.cc (combine_reaching_defs): Don't return false for paradoxical
7007 subregs in DEBUG_INSNs.
7008
7009 2023-02-01 Richard Sandiford <richard.sandiford@arm.com>
7010
7011 * compare-elim.cc (find_flags_uses_in_insn): Guard use of SET_SRC.
7012
7013 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7014
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
7030
7031 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7032
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
7039 rename to ...
7040 (@stack_tie<mode>): ... this.
7041
7042 2023-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
7043
7044 * dwarf2cfi.cc (dwarf2out_frame_debug_cfa_restore): Add
7045 EMIT_CFI parameter.
7046 (dwarf2out_frame_debug): Add case for REG_CFA_NORESTORE.
7047 * reg-notes.def (REG_CFA_NOTE): New reg note definition.
7048
7049 2023-02-01 Richard Biener <rguenther@suse.de>
7050
7051 PR middle-end/108500
7052 * dominance.cc (assign_dfs_numbers): Replace recursive DFS
7053 with tree traversal algorithm.
7054
7055 2023-02-01 Jason Merrill <jason@redhat.com>
7056
7057 * doc/invoke.texi: Document -Wno-changes-meaning.
7058
7059 2023-02-01 David Malcolm <dmalcolm@redhat.com>
7060
7061 * doc/invoke.texi (Static Analyzer Options): Add notes about
7062 limitations of -fanalyzer.
7063
7064 2023-01-31 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7065
7066 * config/riscv/constraints.md (vj): New.
7067 (vk): Ditto
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.
7074 (vsub): Ditto.
7075 (vand): Ditto.
7076 (vor): Ditto.
7077 (vxor): Ditto.
7078 (vsll): Ditto.
7079 (vsra): Ditto.
7080 (vsrl): Ditto.
7081 (vmin): Ditto.
7082 (vmax): Ditto.
7083 (vminu): Ditto.
7084 (vmaxu): Ditto.
7085 (vmul): Ditto.
7086 (vdiv): Ditto.
7087 (vrem): Ditto.
7088 (vdivu): Ditto.
7089 (vremu): Ditto.
7090 * config/riscv/riscv-vector-builtins-functions.def (vadd): New.
7091 (vsub): Ditto.
7092 (vand): Ditto.
7093 (vor): Ditto.
7094 (vxor): Ditto.
7095 (vsll): Ditto.
7096 (vsra): Ditto.
7097 (vsrl): Ditto.
7098 (vmin): Ditto.
7099 (vmax): Ditto.
7100 (vminu): Ditto.
7101 (vmaxu): Ditto.
7102 (vmul): Ditto.
7103 (vdiv): Ditto.
7104 (vrem): Ditto.
7105 (vdivu): Ditto.
7106 (vremu): Ditto.
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.
7119
7120 2023-01-31 Philipp Tomsich <philipp.tomsich@vrull.eu>
7121
7122 PR target/108589
7123 * config/aarch64/aarch64.cc (aarch_macro_fusion_pair_p): Check
7124 REG_P on SET_DEST.
7125
7126 2023-01-31 Richard Sandiford <richard.sandiford@arm.com>
7127
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.
7131
7132 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7133
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.
7138
7139 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7140
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.
7146
7147 2023-01-31 Andrew MacLeod <amacleod@redhat.com>
7148
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.
7158
7159 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7160
7161 PR target/108599
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.
7166
7167 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7168
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.
7174
7175 2023-01-31 Jakub Jelinek <jakub@redhat.com>
7176
7177 PR c++/105593
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.
7183
7184 2023-01-31 Gerald Pfeifer <gerald@pfeifer.com>
7185
7186 * doc/include/fdl.texi: Change fsf.org to www.fsf.org.
7187
7188 2023-01-30 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7189
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.
7194 (BASE): Ditto.
7195 * config/riscv/riscv-vector-builtins-bases.h: New function declare.
7196 * config/riscv/riscv-vector-builtins-functions.def (vluxei8): Ditto.
7197 (vluxei16): Ditto.
7198 (vluxei32): Ditto.
7199 (vluxei64): Ditto.
7200 (vloxei8): Ditto.
7201 (vloxei16): Ditto.
7202 (vloxei32): Ditto.
7203 (vloxei64): Ditto.
7204 (vsuxei8): Ditto.
7205 (vsuxei16): Ditto.
7206 (vsuxei32): Ditto.
7207 (vsuxei64): Ditto.
7208 (vsoxei8): Ditto.
7209 (vsoxei16): Ditto.
7210 (vsoxei32): Ditto.
7211 (vsoxei64): Ditto.
7212 * config/riscv/riscv-vector-builtins-shapes.cc
7213 (struct indexed_loadstore_def): New class.
7214 (SHAPE): Ditto.
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
7222 support.
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
7233 pattern.
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.
7247
7248 2023-01-30 Flavio Cruz <flaviocruz@gmail.com>
7249
7250 * config.gcc: Recognize x86_64-*-gnu* targets and include
7251 i386/gnu64.h.
7252 * config/i386/gnu64.h: Define configuration for new target
7253 including ld.so location.
7254
7255 2023-01-30 Philipp Tomsich <philipp.tomsich@vrull.eu>
7256
7257 * config/aarch64/aarch64-cores.def (AARCH64_CORE): Update
7258 ampere1a to include SM4.
7259
7260 2023-01-30 Andrew Pinski <apinski@marvell.com>
7261
7262 PR tree-optimization/108582
7263 * tree-ssa-phiopt.cc (match_simplify_replacement): Add check
7264 for middlebb to have no phi nodes.
7265
7266 2023-01-30 Richard Biener <rguenther@suse.de>
7267
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.
7272
7273 2023-01-30 Andreas Schwab <schwab@suse.de>
7274
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.
7281
7282 2023-01-30 YunQiang Su <yunqiang.su@cipunited.com>
7283
7284 * Makefile.in (CROSS_SYSTEM_HEADER_DIR): set according the
7285 value of includedir.
7286
7287 2023-01-30 Richard Biener <rguenther@suse.de>
7288
7289 PR ipa/108511
7290 * cgraph.cc (possibly_call_in_translation_unit_p): Relax
7291 assert.
7292
7293 2023-01-30 liuhongt <hongtao.liu@intel.com>
7294
7295 * config/i386/i386.opt: Change AVX512FP16 to AVX512-FP16.
7296 * doc/invoke.texi: Ditto.
7297
7298 2023-01-29 Jan Hubicka <hubicka@ucw.cz>
7299
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
7306
7307 2023-01-28 Philipp Tomsich <philipp.tomsich@vrull.eu>
7308
7309 * config/aarch64/aarch64.cc (aarch64_uxt_size): fix an
7310 off-by-one in checking the permissible shift-amount.
7311
7312 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7313
7314 * doc/extend.texi (Named Address Spaces): Update link to the
7315 AVR-Libc manual.
7316
7317 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7318
7319 * doc/standards.texi (Standards): Fix markup.
7320
7321 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7322
7323 * doc/standards.texi (Standards): Update link to Objective-C book.
7324
7325 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7326
7327 * doc/invoke.texi (Instrumentation Options): Update reference to
7328 AddressSanitizer.
7329
7330 2023-01-28 Gerald Pfeifer <gerald@pfeifer.com>
7331
7332 * doc/standards.texi: Update Go1 link.
7333
7334 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7335
7336 * config/riscv/predicates.md (pmode_reg_or_0_operand): New predicate.
7337 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore):
7338 Support vlse/vsse.
7339 (BASE): Ditto.
7340 * config/riscv/riscv-vector-builtins-bases.h: Ditto.
7341 * config/riscv/riscv-vector-builtins-functions.def (vlse): New class.
7342 (vsse): 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.
7347
7348 2023-01-28 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7349
7350 * config/riscv/vector.md (tail_policy_op_idx): Remove.
7351 (mask_policy_op_idx): Remove.
7352 (avl_type_op_idx): Remove.
7353
7354 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
7355
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.
7363
7364 2023-01-27 Richard Sandiford <richard.sandiford@arm.com>
7365
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.
7369
7370 2023-01-27 Richard Biener <rguenther@suse.de>
7371
7372 PR target/55522
7373 * doc/invoke.texi (-shared): Clarify effect on -ffast-math
7374 and -Ofast FP environment side-effects.
7375
7376 2023-01-27 Richard Biener <rguenther@suse.de>
7377
7378 PR target/55522
7379 * config/mips/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
7380 Don't add crtfastmath.o for -shared.
7381
7382 2023-01-27 Richard Biener <rguenther@suse.de>
7383
7384 PR target/55522
7385 * config/ia64/linux.h (ENDFILE_SPEC): Don't add crtfastmath.o
7386 for -shared.
7387
7388 2023-01-27 Richard Biener <rguenther@suse.de>
7389
7390 PR target/55522
7391 * config/alpha/linux.h (ENDFILE_SPEC): Don't add
7392 crtfastmath.o for -shared.
7393
7394 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
7395
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.
7401
7402 2023-01-27 Andrew MacLeod <amacleod@redhat.com>
7403
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.
7407
7408 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7409
7410 * config/riscv/riscv-vector-builtins-shapes.cc (struct loadstore_def):
7411 Remove _m suffix for "vop_m" C++ overloaded API name.
7412
7413 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7414
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.
7418 (vsm): Ditto.
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.
7421 (vbool64_t): Ditto.
7422 (vbool32_t): Ditto.
7423 (vbool16_t): Ditto.
7424 (vbool8_t): Ditto.
7425 (vbool4_t): Ditto.
7426 (vbool2_t): Ditto.
7427 (vbool1_t): 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.
7432
7433 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7434
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.
7471
7472 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7473
7474 PR other/108560
7475 * doc/extend.texi: Fix up return type of __builtin_va_arg_pack_len
7476 from size_t to int.
7477
7478 2023-01-27 Jakub Jelinek <jakub@redhat.com>
7479
7480 PR ipa/106061
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.
7484
7485 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7486
7487 * config/riscv/riscv-vsetvl.cc (before_p): Fix bug.
7488
7489 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7490
7491 * config/riscv/riscv-vsetvl.cc (gen_vsetvl_pat): Refine function args.
7492 (emit_vsetvl_insn): Ditto.
7493
7494 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7495
7496 * config/riscv/vector.md: Fix constraints.
7497
7498 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7499
7500 * config/riscv/vector-iterators.md: Add TARGET_MIN_VLEN > 32 predicates.
7501
7502 2023-01-27 Patrick Palka <ppalka@redhat.com>
7503 Jakub Jelinek <jakub@redhat.com>
7504
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.
7510
7511 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7512
7513 * config/riscv/riscv-vsetvl.h: Change it into public.
7514
7515 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7516
7517 * config/riscv/riscv-passes.def (INSERT_PASS_BEFORE): Reorder VSETVL
7518 pass.
7519
7520 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7521
7522 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::execute): Always call split_all_insns.
7523
7524 2023-01-27 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7525
7526 * config/riscv/vector.md: Fix incorrect attributes.
7527
7528 2023-01-27 Richard Biener <rguenther@suse.de>
7529
7530 PR target/55522
7531 * config/loongarch/gnu-user.h (GNU_USER_TARGET_MATHFILE_SPEC):
7532 Don't add crtfastmath.o for -shared.
7533
7534 2023-01-27 Alexandre Oliva <oliva@gnu.org>
7535
7536 * doc/options.texi (option, RejectNegative): Mention that
7537 -g-started options are also implicitly negatable.
7538
7539 2023-01-26 Kito Cheng <kito.cheng@sifive.com>
7540
7541 * config/riscv/riscv-vector-builtins.cc (register_builtin_types):
7542 Use get_typenode_from_name to get fixed-width integer type
7543 nodes.
7544 * config/riscv/riscv-vector-builtins.def: Update define with
7545 fixed-width integer type nodes.
7546
7547 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7548
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.
7587
7588 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7589
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.
7595
7596 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7597
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.
7606
7607 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7608
7609 * config/riscv/riscv-vsetvl.cc (add_label_notes): Rename insn to
7610 rinsn.
7611
7612 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7613
7614 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::backward_demand_fusion): Refine codes.
7615
7616 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7617
7618 * config/riscv/riscv-vsetvl.cc (pass_vsetvl::forward_demand_fusion):
7619 Add pre-check for redundant flow.
7620
7621 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7622
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.
7627
7628 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7629
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.
7640
7641 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7642
7643 * config/riscv/riscv-vsetvl.cc (vector_insn_info::operator>=): Fix available condition.
7644
7645 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7646
7647 * config/riscv/riscv-vsetvl.cc (change_vsetvl_insn): New function.
7648 (pass_vsetvl::compute_global_backward_infos): Simplify codes.
7649
7650 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7651
7652 * config/riscv/riscv-vsetvl.cc (loop_basic_block_p): Adjust function.
7653 (backward_propagate_worthwhile_p): Fix non-worthwhile.
7654
7655 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7656
7657 * config/riscv/riscv-vsetvl.cc (change_insn): Adjust in_group in validate_change.
7658
7659 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7660
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.
7665
7666 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7667
7668 * config/riscv/vector.md:
7669
7670 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7671
7672 * config/riscv/riscv-vector-builtins-bases.cc (class loadstore): use
7673 pred_store for vse.
7674 * config/riscv/riscv-vector-builtins.cc
7675 (function_expander::add_mem_operand): Refine function.
7676 (function_expander::use_contiguous_load_insn): Adjust new
7677 implementation.
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.
7681
7682 2023-01-26 Ju-Zhe Zhong <juzhe.zhong@rivai.ai>
7683
7684 * config/riscv/riscv-vector-builtins.cc: Change to scalar pointer.
7685
7686 2023-01-26 Marek Polacek <polacek@redhat.com>
7687
7688 PR middle-end/108543
7689 * opts.cc (parse_sanitizer_options): Don't always clear SANITIZE_ADDRESS
7690 if it was previously set.
7691
7692 2023-01-26 Jakub Jelinek <jakub@redhat.com>
7693
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.
7707
7708 2023-01-26 Jakub Jelinek <jakub@redhat.com>
7709
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.
7718
7719 2023-01-26 Richard Biener <rguenther@suse.de>
7720
7721 PR tree-optimization/108547
7722 * gimple-predicate-analysis.cc (value_sat_pred_p):
7723 Use widest_int.
7724
7725 2023-01-26 Siddhesh Poyarekar <siddhesh@gotplt.org>
7726
7727 PR tree-optimization/108522
7728 * tree-object-size.cc (compute_object_offset): Make EXPR
7729 argument non-const. Call component_ref_field_offset.
7730
7731 2023-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7732
7733 * config/aarch64/aarch64-option-extensions.def (cssc): Specify
7734 FEATURE_STRING field.
7735
7736 2023-01-26 Gerald Pfeifer <gerald@pfeifer.com>
7737
7738 * doc/sourcebuild.texi: Refer to projects as GCC and GDB.
7739
7740 2023-01-25 Iain Sandoe <iain@sandoe.co.uk>
7741
7742 PR modula2/102343
7743 PR modula2/108182
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.
7747
7748 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7749
7750 * config/arm/mve.md (mve_vqnegq_s<mode>): Fix spacing.
7751
7752 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7753
7754 * config/arm/mve.md (mve_vqabsq_s<mode>): Fix spacing.
7755
7756 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7757
7758 * config/arm/mve.md (mve_vnegq_f<mode>, mve_vnegq_s<mode>):
7759 Fix spacing.
7760
7761 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7762
7763 * config/arm/mve.md (@mve_vclzq_s<mode>): Fix spacing.
7764
7765 2023-01-25 Andrea Corallo <andrea.corallo@arm.com>
7766
7767 * config/arm/mve.md (mve_vclsq_s<mode>): Fix spacing.
7768
7769 2023-01-25 Richard Biener <rguenther@suse.de>
7770
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
7774 prove equivalence.
7775
7776 2023-01-25 Richard Biener <rguenther@suse.de>
7777
7778 * doc/lto.texi (Command line options): Reword and update reference
7779 to removed lto_read_all_file_options.
7780
7781 2023-01-25 Richard Sandiford <richard.sandiford@arm.com>
7782
7783 * config/aarch64/aarch64.md (umax<mode>3): Separate the CNT and CSSC
7784 tests.
7785
7786 2023-01-25 Gerald Pfeifer <gerald@pfeifer.com>
7787
7788 * doc/contrib.texi: Add Jose E. Marchesi.
7789
7790 2023-01-25 Jakub Jelinek <jakub@redhat.com>
7791
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.
7798
7799 2023-01-25 Siddhesh Poyarekar <siddhesh@gotplt.org>
7800 Jakub Jelinek <jakub@redhat.com>
7801
7802 PR tree-optimization/108522
7803 * tree-object-size.cc (compute_object_offset): Use
7804 TREE_OPERAND(ref, 2) for COMPONENT_REF when available.
7805
7806 2023-01-24 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7807
7808 * config/xtensa/xtensa.md:
7809 Fix exit from loops detecting references before overwriting in the
7810 split pattern.
7811
7812 2023-01-24 Vladimir N. Makarov <vmakarov@redhat.com>
7813
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.
7818
7819 2023-01-24 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com>
7820
7821 * config/s390/s390-d.cc (s390_d_target_versions): Fix detection
7822 of CPU version.
7823
7824 2023-01-24 Andre Vieira <andre.simoesdiasvieira@arm.com>
7825
7826 PR target/108177
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
7829 as input operand.
7830
7831 2023-01-24 Xianmiao Qu <cooper.qu@linux.alibaba.com>
7832
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.
7837
7838 2023-01-24 Richard Biener <rguenther@suse.de>
7839
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.
7847
7848 2023-01-24 Eric Biggers <ebiggers@google.com>
7849
7850 PR bootstrap/90543
7851 * optc-save-gen.awk: Fix copy-and-paste error.
7852
7853 2023-01-24 Jakub Jelinek <jakub@redhat.com>
7854
7855 PR c++/108474
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.
7859
7860 2023-01-24 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7861
7862 PR target/108505
7863 * config.gcc (tm_file): Move the variable out of loop.
7864
7865 2023-01-24 Lulu Cheng <chenglulu@loongson.cn>
7866 Yang Yujie <yangyujie@loongson.cn>
7867
7868 PR target/107731
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.
7875
7876 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7877
7878 * doc/invoke.texi (-mbranch-protection): Update documentation.
7879
7880 2023-01-23 Richard Biener <rguenther@suse.de>
7881
7882 PR target/55522
7883 * config/sparc/freebsd.h (ENDFILE_SPEC): Don't add crtfastmath.o
7884 for -shared.
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.
7889
7890 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7891
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
7903 register.
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.
7912
7913 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7914
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.
7921
7922 2023-01-23 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
7923
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.
7929
7930 2023-01-23 Richard Biener <rguenther@suse.de>
7931
7932 PR tree-optimization/108482
7933 * tree-vect-generic.cc (expand_vector_operations): Fold remaining
7934 .LOOP_DIST_ALIAS calls.
7935
7936 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7937
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
7950 compatibility.
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.
7954
7955 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7956
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'
7960 proto.
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
7969 target.
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.
7974
7975 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7976
7977 * config/arm/arm.h (arm_arch8m_main): Declare it.
7978 * config/arm/arm-protos.h (arm_current_function_pac_enabled_p):
7979 Declare it.
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):
7989 Add new patterns.
7990 * config/arm/unspecs.md (UNSPEC_PAC_NOP)
7991 (VUNSPEC_PACBTI_NOP, VUNSPEC_AUT_NOP): Add unspecs.
7992
7993 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7994
7995 * config/arm/t-rmprofile: Add multilib rules for march +pacbti and
7996 mbranch-protection.
7997
7998 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
7999 Tejas Belagod <tbelagod@arm.com>
8000
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.
8003
8004 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8005 Tejas Belagod <tbelagod@arm.com>
8006 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8007
8008 * ginclude/unwind-arm-common.h (_Unwind_VRS_RegClass): Introduce
8009 new pseudo register class _UVRSC_PAC.
8010
8011 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8012 Tejas Belagod <tbelagod@arm.com>
8013
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.
8017
8018 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8019 Tejas Belagod <tbelagod@arm.com>
8020
8021 * doc/sourcebuild.texi: Document arm_pacbti_hw.
8022
8023 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8024 Tejas Belagod <tbelagod@arm.com>
8025 Richard Earnshaw <Richard.Earnshaw@arm.com>
8026
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.
8031
8032 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8033 Tejas Belagod <tbelagod@arm.com>
8034
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.
8038
8039 2023-01-23 Andrea Corallo <andrea.corallo@arm.com>
8040 Tejas Belagod <tbelagod@arm.com>
8041
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
8053 aarch-common.h
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
8058 and enum value.
8059 * config/aarch64/aarch64.opt: Include aarch-common.h to import
8060 type move. Fix up name changes from factoring out common code and
8061 data.
8062 * config/arm/aarch-common-protos.h: Export factored out routines to both
8063 backends.
8064 * config/arm/aarch-common.cc: Include newly factored out types.
8065 Move all mbranch-protection code and data structures from
8066 aarch64.cc.
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.
8075
8076 2023-01-23 Tobias Burnus <tobias@codesourcery.com>
8077
8078 * doc/install.texi (amdgcn, nvptx): Require newlib 4.3.0.
8079
8080 2023-01-23 Richard Biener <rguenther@suse.de>
8081
8082 PR tree-optimization/108449
8083 * cgraphunit.cc (check_global_declaration): Do not turn
8084 undefined statics into externs.
8085
8086 2023-01-22 Dimitar Dimitrov <dimitar@dinux.eu>
8087
8088 * config/pru/pru.h (CLZ_DEFINED_VALUE_AT_ZERO): Fix value for QI
8089 and HI input modes.
8090 * config/pru/pru.md (clz): Fix generated code for QI and HI
8091 input modes.
8092
8093 2023-01-22 Cupertino Miranda <cupertino.miranda@oracle.com>
8094
8095 * config/v850/v850.cc (v850_select_section): Put const volatile
8096 objects into read-only sections.
8097
8098 2023-01-20 Tejas Belagod <tejas.belagod@arm.com>
8099
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".
8103
8104 2023-01-20 Jakub Jelinek <jakub@redhat.com>
8105
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.
8110
8111 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8112
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}
8116 commutativity.
8117 * selftest.h (relation_tests): Declare.
8118 * function-tests.cc (test_ranges): Call it.
8119
8120 2023-01-19 H.J. Lu <hjl.tools@gmail.com>
8121
8122 PR target/108436
8123 * config/i386/i386-expand.cc (ix86_expand_builtin): Check
8124 invalid third argument to __builtin_ia32_prefetch.
8125
8126 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8127
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.
8131
8132 2023-01-19 Christophe Lyon <christophe.lyon@arm.com>
8133
8134 PR target/108411
8135 * config/aarch64/aarch64.cc (aarch64_layout_arg): Improve
8136 comment. Move assert about alignment a bit later.
8137
8138 2023-01-19 Jakub Jelinek <jakub@redhat.com>
8139
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
8150 been created.
8151
8152 2023-01-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8153
8154 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
8155 exact_log2 (INTVAL (operands[2])) >= 0 as condition for gating
8156 the pattern.
8157 (aarch64_simd_vec_copy_lane<mode>): Likewise.
8158 (aarch64_simd_vec_copy_lane_<vswap_width_name><mode>): Likewise.
8159
8160 2023-01-19 Alexandre Oliva <oliva@adacore.com>
8161
8162 PR debug/106746
8163 * sched-deps.cc (sched_analyze_2): Skip cselib address lookup
8164 within debug insns.
8165
8166 2023-01-18 Martin Jambor <mjambor@suse.cz>
8167
8168 PR ipa/107944
8169 * cgraph.cc (cgraph_node::remove): Check whether nodes up the
8170 lcone_of chain also do not need the body.
8171
8172 2023-01-18 Richard Biener <rguenther@suse.de>
8173
8174 Revert:
8175 2022-12-16 Richard Biener <rguenther@suse.de>
8176
8177 PR middle-end/108086
8178 * tree-inline.cc (remap_ssa_name): Do not unshare the
8179 result from the decl_map.
8180
8181 2023-01-18 Murray Steele <murray.steele@arm.com>
8182
8183 PR target/108442
8184 * config/arm/arm_mve.h (__arm_vst1q_p_u8): Use prefixed intrinsic
8185 function.
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.
8201
8202 2023-01-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8203
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
8208 if TARGET_DENSITY.
8209
8210 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
8211 Andrew Pinski <apinski@marvell.com>
8212
8213 PR target/108396
8214 * config/rs6000/rs6000-overload.def (VEC_VSUBCUQ): Fix typo
8215 vec_vsubcuqP with vec_vsubcuq.
8216
8217 2023-01-18 Kewen Lin <linkw@linux.ibm.com>
8218
8219 PR target/108348
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.
8222
8223 2023-01-18 liuhongt <hongtao.liu@intel.com>
8224
8225 PR target/55522
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.
8231
8232 2023-01-17 Jose E. Marchesi <jose.marchesi@oracle.com>
8233
8234 * config/bpf/bpf.cc (bpf_option_override): Disable
8235 -fstack-protector.
8236
8237 2023-01-17 Jakub Jelinek <jakub@redhat.com>
8238
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.
8244
8245 2023-01-16 H.J. Lu <hjl.tools@gmail.com>
8246
8247 PR target/105980
8248 * config/i386/i386.cc (x86_output_mi_thunk): Disable
8249 -mforce-indirect-call for PIC in 32-bit mode.
8250
8251 2023-01-16 Jan Hubicka <hubicka@ucw.cz>
8252
8253 PR ipa/106077
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.
8261
8262 2023-01-16 Jan Hubicka <jh@suse.cz>
8263
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.
8272
8273 2023-01-16 Richard Biener <rguenther@suse.de>
8274
8275 PR target/55522
8276 * config/sol2.h (ENDFILE_SPEC): Don't add crtfastmath.o for -shared.
8277
8278 2023-01-16 Stam Markianos-Wright <stam.markianos-wright@arm.com>
8279
8280 PR target/96795
8281 PR target/107515
8282 * config/arm/arm_mve.h (__ARM_mve_coerce2): Split types.
8283 (__ARM_mve_coerce3): Likewise.
8284
8285 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8286
8287 * tree-ssa-loop-niter.cc (build_popcount_expr): Add IFN support.
8288
8289 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8290
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.
8295
8296 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8297
8298 * doc/sourcebuild.texi: Add missing target attributes.
8299
8300 2023-01-16 Andrew Carlotti <andrew.carlotti@arm.com>
8301
8302 PR tree-optimization/94793
8303 * tree-scalar-evolution.cc (expression_expensive_p): Add checks
8304 for c[lt]z optabs.
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.
8308
8309 2023-01-16 Jonathan Wakely <jwakely@redhat.com>
8310
8311 * doc/extend.texi (Common Function Attributes): Fix grammar.
8312
8313 2023-01-16 Jakub Jelinek <jakub@redhat.com>
8314
8315 PR other/108413
8316 * config/riscv/riscv-vsetvl.h: Add space in between Copyright and (C).
8317 * config/riscv/riscv-vsetvl.cc: Likewise.
8318
8319 2023-01-16 Jakub Jelinek <jakub@redhat.com>
8320
8321 PR c++/105593
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):
8325 Likewise.
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.
8332
8333 2023-01-16 Kewen Lin <linkw@linux.ibm.com>
8334
8335 PR target/108272
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.
8339
8340 2023-01-15 Aldy Hernandez <aldyh@redhat.com>
8341
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.
8346
8347 2023-01-15 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8348
8349 * config.gcc (csky-*-*): Support --with-float=softfp.
8350
8351 2023-01-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8352
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.
8363
8364 2023-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8365
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.
8369
8370 2023-01-14 Alexandre Oliva <oliva@adacore.com>
8371
8372 * hash-table.h (is_deleted): Precheck !is_empty.
8373 (mark_deleted): Postcheck !is_empty.
8374 (copy constructor): Test is_empty before is_deleted.
8375
8376 2023-01-14 Alexandre Oliva <oliva@adacore.com>
8377
8378 PR target/40457
8379 * config/arm/arm.md (movmisaligndi): Prefer aligned SImode
8380 moves.
8381
8382 2023-01-13 Eric Botcazou <ebotcazou@adacore.com>
8383
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.
8387
8388 2023-01-13 John David Anglin <danglin@gcc.gnu.org>
8389
8390 * config/pa/pa-linux.h (TARGET_SYNC_LIBCALL): Delete define.
8391 * config/pa/pa.cc (pa_init_libfuncs): Use MAX_SYNC_LIBFUNC_SIZE
8392 define.
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
8396 enabled.
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.
8404
8405 2023-01-13 Alexander Monakov <amonakov@ispras.ru>
8406
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.
8411
8412 2023-01-13 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
8413
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.
8418
8419 2023-01-13 Qing Zhao <qing.zhao@oracle.com>
8420
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
8425 DECL_NOT_FLEXARRAY.
8426 * tree.cc (component_ref_size): Likewise.
8427
8428 2023-01-13 Richard Biener <rguenther@suse.de>
8429
8430 PR target/55522
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.
8434
8435 2023-01-13 Richard Biener <rguenther@suse.de>
8436
8437 PR target/55522
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):
8441 Likewise.
8442 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATHFILE_SPEC):
8443 Likewise.
8444
8445 2023-01-13 Richard Sandiford <richard.sandiford@arm.com>
8446
8447 * config/aarch64/aarch64.cc (aarch64_dwarf_frame_reg_mode): New
8448 function.
8449 (TARGET_DWARF_FRAME_REG_MODE): Define.
8450
8451 2023-01-13 Richard Biener <rguenther@suse.de>
8452
8453 PR target/107209
8454 * config/aarch64/aarch64.cc (aarch64_gimple_fold_builtin): Don't
8455 update EH info on the fly.
8456
8457 2023-01-13 Richard Biener <rguenther@suse.de>
8458
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.
8462
8463 2023-01-12 Andrew Pinski <apinski@marvell.com>
8464 Roger Sayle <roger@nextmovesoftware.com>
8465
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.
8470
8471 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
8472 Richard Sandiford <richard.sandiford@arm.com>
8473
8474 PR target/105549
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
8480 changes.
8481
8482 2023-01-12 Christophe Lyon <christophe.lyon@arm.com>
8483 Richard Sandiford <richard.sandiford@arm.com>
8484
8485 * config/aarch64/aarch64.cc (aarch64_function_arg_alignment): Fix
8486 comment.
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.
8493
8494 2023-01-12 Richard Biener <rguenther@suse.de>
8495
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.
8502
8503 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8504
8505 * config/xtensa/xtensa.md (ctzsi2, ffssi2):
8506 Rearrange the emitting codes.
8507
8508 2023-01-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8509
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.
8514
8515 2023-01-12 Alexandre Oliva <oliva@adacore.com>
8516
8517 * hash-table.h (expand): Check elements and deleted counts.
8518 (verify): Likewise.
8519
8520 2023-01-11 Roger Sayle <roger@nextmovesoftware.com>
8521
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).
8526
8527 2023-01-11 David Faust <david.faust@oracle.com>
8528
8529 PR target/108293
8530 * config/bpf/bpf.cc (bpf_print_operand): Correct handling for
8531 floating point modes.
8532
8533 2023-01-11 Eric Botcazou <ebotcazou@adacore.com>
8534
8535 PR tree-optimization/108199
8536 * tree-sra.cc (sra_modify_expr): Deal with reverse storage order
8537 for bit-field references.
8538
8539 2023-01-11 Kewen Lin <linkw@linux.ibm.com>
8540
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.
8545
8546 2023-01-11 Richard Biener <rguenther@suse.de>
8547
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.
8554
8555 2023-01-11 Martin Liska <mliska@suse.cz>
8556
8557 PR middle-end/107976
8558 * params.opt: Limit JT params.
8559 * stmt.cc (emit_case_dispatch_table): Use auto_vec.
8560
8561 2023-01-11 Richard Biener <rguenther@suse.de>
8562
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
8567 irreducible loops.
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.
8572
8573 2023-01-11 Richard Biener <rguenther@suse.de>
8574
8575 PR tree-optimization/108353
8576 * tree-ssa-propagate.cc (cfg_blocks_back, ssa_edge_worklist_back):
8577 Remove.
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.
8583
8584 2023-01-11 Andreas Krebbel <krebbel@linux.ibm.com>
8585
8586 * config/s390/s390.md (*not<mode>): New pattern.
8587
8588 2023-01-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8589
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.
8593
8594 2023-01-10 Richard Biener <rguenther@suse.de>
8595
8596 PR tree-optimization/106293
8597 * tree-ssa-dse.cc (dse_classify_store): Use a worklist to
8598 process degenerate PHI defs.
8599
8600 2023-01-10 Roger Sayle <roger@nextmovesoftware.com>
8601
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.
8605
8606 2023-01-10 Martin Jambor <mjambor@suse.cz>
8607
8608 PR ipa/108110
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
8618 sort_replacements.
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
8622 std::lower_bound.
8623 (ipa_param_body_adjustments::lookup_first_base_replacement): New
8624 function.
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.
8629
8630 2023-01-10 Richard Biener <rguenther@suse.de>
8631
8632 PR tree-optimization/108314
8633 * tree-vect-stmts.cc (vectorizable_condition): Do not
8634 perform BIT_NOT_EXPR optimization for EXTRACT_LAST_REDUCTION.
8635
8636 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8637
8638 * config/csky/csky-linux-elf.h (SYSROOT_SUFFIX_SPEC): New.
8639
8640 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8641
8642 * config/csky/csky.h (MULTILIB_DEFAULTS): Fix float abi option.
8643
8644 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8645
8646 * config/csky/csky.cc (csky_cpu_cpp_builtins): Add builtin
8647 defines for soft float abi.
8648
8649 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8650
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.
8658
8659 2023-01-10 Xianmiao Qu <cooper.qu@linux.alibaba.com>
8660
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.
8664
8665 2023-01-10 Andreas Krebbel <krebbel@linux.ibm.com>
8666
8667 * config/s390/s390.cc (s390_register_info): Check call_used_regs
8668 instead of hard-coding the register numbers for call saved
8669 registers.
8670 (s390_optimize_register_info): Likewise.
8671
8672 2023-01-09 Eric Botcazou <ebotcazou@adacore.com>
8673
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.
8677
8678 2023-01-09 Richard Biener <rguenther@suse.de>
8679
8680 PR middle-end/108209
8681 * genmatch.cc (commutative_op): Fix return value for
8682 user-id with non-commutative first replacement.
8683
8684 2023-01-09 Jakub Jelinek <jakub@redhat.com>
8685
8686 PR target/107453
8687 * calls.cc (expand_call): For calls with
8688 TYPE_NO_NAMED_ARGS_STDARG_P (funtype) use zero for n_named_args.
8689 Formatting fix.
8690
8691 2023-01-09 Richard Biener <rguenther@suse.de>
8692
8693 PR middle-end/69482
8694 * cfgexpand.cc (discover_nonconstant_array_refs_r): Volatile
8695 qualified accesses also force objects to memory.
8696
8697 2023-01-09 Martin Liska <mliska@suse.cz>
8698
8699 PR lto/108330
8700 * lto-cgraph.cc (compute_ltrans_boundary): Do not insert
8701 NULL (deleleted value) to a hash_set.
8702
8703 2023-01-08 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8704
8705 * config/xtensa/xtensa.md (*splice_bits):
8706 New insn_and_split pattern.
8707
8708 2023-01-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8709
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.
8718
8719 2023-01-07 LIU Hao <lh_mouse@126.com>
8720
8721 PR middle-end/108300
8722 * config/xtensa/xtensa-dynconfig.c: Define `WIN32_LEAN_AND_MEAN`
8723 before <windows.h>.
8724 * diagnostic-color.cc: Likewise.
8725 * plugin.cc: Likewise.
8726 * prefix.cc: Likewise.
8727
8728 2023-01-06 Joseph Myers <joseph@codesourcery.com>
8729
8730 * doc/extend.texi (__builtin_tgmath): Do not restate standard rule
8731 for handling real integer types.
8732
8733 2023-01-06 Tamar Christina <tamar.christina@arm.com>
8734
8735 Revert:
8736 2022-12-12 Tamar Christina <tamar.christina@arm.com>
8737
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):
8747 Add E_V2HFmode.
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.
8752
8753 2023-01-06 Martin Liska <mliska@suse.cz>
8754
8755 PR middle-end/107966
8756 * doc/options.texi: Fix Var documentation in internal manual.
8757
8758 2023-01-05 Roger Sayle <roger@nextmovesoftware.com>
8759
8760 Revert:
8761 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8762
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.
8766
8767 2023-01-05 Iain Sandoe <iain@sandoe.co.uk>
8768
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.
8773
8774 2023-01-05 Tejas Joshi <TejasSanjay.Joshi@amd.com>
8775
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.
8780
8781 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8782
8783 PR tree-optimization/108253
8784 * tree-vrp.cc (maybe_set_nonzero_bits): Handle var with pointer
8785 types.
8786
8787 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8788
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.
8794
8795 2023-01-04 Jakub Jelinek <jakub@redhat.com>
8796
8797 PR sanitizer/108256
8798 * convert.cc (do_narrow): Punt for MULT_EXPR if original
8799 type doesn't wrap around and -fsanitize=signed-integer-overflow
8800 is on.
8801 * fold-const.cc (fold_unary_loc) <CASE_CONVERT>: Likewise.
8802
8803 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
8804
8805 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle Emeraldrapids.
8806 * common/config/i386/i386-common.cc: Add Emeraldrapids.
8807
8808 2023-01-04 Hu, Lin1 <lin1.hu@intel.com>
8809
8810 * common/config/i386/cpuinfo.h (get_intel_cpu): Remove case 0xb5
8811 for meteorlake.
8812
8813 2023-01-03 Sandra Loosemore <sandra@codesourcery.com>
8814
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
8821 on local clones.
8822 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Clear
8823 gc_candidate bit when a clone is used.
8824
8825 2023-01-03 Florian Weimer <fweimer@redhat.com>
8826
8827 Revert:
8828 2023-01-02 Florian Weimer <fweimer@redhat.com>
8829
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
8837 hook signature.
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.
8843
8844 2023-01-03 Florian Weimer <fweimer@redhat.com>
8845
8846 Revert:
8847 2023-01-02 Florian Weimer <fweimer@redhat.com>
8848
8849 * debug.h (dwarf_reg_sizes_constant): Declare.
8850 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
8851
8852 2023-01-03 Siddhesh Poyarekar <siddhesh@gotplt.org>
8853
8854 PR tree-optimization/105043
8855 * doc/extend.texi (Object Size Checking): Split out into two
8856 subsections and mention _FORTIFY_SOURCE.
8857
8858 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8859
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.
8863
8864 2023-01-03 Roger Sayle <roger@nextmovesoftware.com>
8865
8866 PR target/108229
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.
8870
8871 2023-01-03 Jakub Jelinek <jakub@redhat.com>
8872
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
8876 it to outer_mode.
8877
8878 2023-01-03 Jakub Jelinek <jakub@redhat.com>
8879
8880 PR rtl-optimization/108263
8881 * cfgrtl.cc (fixup_reorder_chain): Avoid trying to redirect
8882 asm goto to EXIT.
8883
8884 2023-01-02 Alexander Monakov <amonakov@ispras.ru>
8885
8886 PR target/87832
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.
8915
8916 2023-01-02 Florian Weimer <fweimer@redhat.com>
8917
8918 * debug.h (dwarf_reg_sizes_constant): Declare.
8919 * dwarf2cfi.cc (dwarf_reg_sizes_constant): New function.
8920
8921 2023-01-02 Florian Weimer <fweimer@redhat.com>
8922
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
8930 hook signature.
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.
8936
8937 2023-01-02 Jakub Jelinek <jakub@redhat.com>
8938
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.
8951
8952 2023-01-01 Roger Sayle <roger@nextmovesoftware.com>
8953 Uroš Bizjak <ubizjak@gmail.com>
8954
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.
8961
8962 \f
8963 Copyright (C) 2023 Free Software Foundation, Inc.
8964
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.