]> gcc.gnu.org Git - gcc.git/blob - gcc/ChangeLog
Daily bump.
[gcc.git] / gcc / ChangeLog
1 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
2
3 PR tree-optimization/106967
4 * value-range.cc (frange::set): Set known NANs to undefined for
5 flag_finite_math_only.
6
7 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
8
9 * value-range.cc (frange::combine_zeros): Call set_undefined.
10 (frange::intersect_nans): Same.
11 (frange::intersect): Same.
12 (frange::verify_range): Undefined ranges do not have a type.
13 * value-range.h (frange::set_undefined): Clear NAN flags and type.
14
15 2022-09-21 Richard Biener <rguenther@suse.de>
16
17 PR tree-optimization/106984
18 * tsan.cc (instrument_builtin_call): Build the COND_EXPR condition in
19 a separate statement.
20
21 2022-09-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
22
23 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT,
24 EXTRA_SPEC_FUNCTIONS, MCPU_MTUNE_NATIVE_SPECS): Move definitions up before
25 OPTION_DEFAULT_SPECS.
26 (MCPU_MTUNE_NATIVE_SPECS): Pass "cpu" to
27 local_cpu_detect when rewriting -march=native and no -mcpu or -mtune
28 is given.
29 (CONFIG_TUNE_SPEC): Define.
30 (OPTION_DEFAULT_SPECS): Use CONFIG_TUNE_SPEC for "tune".
31
32 2022-09-21 Aldy Hernandez <aldyh@redhat.com>
33
34 PR tree-optimization/106967
35 * range-op-float.cc (foperator_equal::fold_range): Adjust for NAN.
36 (foperator_equal::op1_range): Same.
37 (foperator_not_equal::fold_range): Same.
38 (foperator_not_equal::op1_range): Same.
39 (foperator_lt::fold_range): Same.
40 (foperator_lt::op1_range): Same.
41 (foperator_lt::op2_range): Same.
42 (foperator_le::fold_range): Same.
43 (foperator_le::op1_range): Same.
44 (foperator_le::op2_range): Same.
45 (foperator_gt::fold_range): Same.
46 (foperator_gt::op1_range): Same.
47 (foperator_gt::op2_range): Same.
48 (foperator_ge::fold_range): Same.
49 (foperator_ge::op1_range): Same.
50 (foperator_ge::op2_range): Same.
51 (foperator_unordered::op1_range): Same.
52 (foperator_ordered::fold_range): Same.
53 (foperator_ordered::op1_range): Same.
54 (build_le): Assert that we don't have a NAN.
55 (build_lt): Same.
56 (build_gt): Same.
57 (build_ge): Same.
58
59 2022-09-21 liuhongt <hongtao.liu@intel.com>
60
61 PR tree-optimization/106963
62 * tree-vect-loop.cc (vect_create_nonlinear_iv_init): Use
63 vec_gen_perm_mask_any instead of vec_gen_perm_mask_check.
64
65 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
66
67 * value-range.h (frange::maybe_isnan): Return false for
68 undefined ranges.
69
70 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
71
72 * value-range.cc (frange::set_nonnegative): Set +NAN.
73 (range_tests_signed_zeros): New test.
74 * value-range.h (frange::update_nan): New overload to set NAN sign.
75
76 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
77
78 PR target/106491
79 * config/aarch64/aarch64-sve-builtins.cc (scalar_types)
80 (acle_vector_types, acle_svpattern, acle_svprfop): Add GTY
81 markup to (new) extern declarations instead of to the main
82 definition.
83
84 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
85
86 PR tree-optimization/106794
87 PR tree-optimization/106914
88 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
89 Only consider loads that already have a permutation.
90 (vect_optimize_slp_pass::start_choosing_layouts): Assert that
91 loads with permutations are leaf nodes. Prevent any kind of grouped
92 access from changing layout if it doesn't have a load permutation.
93
94 2022-09-20 Richard Sandiford <richard.sandiford@arm.com>
95
96 * tree-vect-data-refs.cc (vect_check_gather_scatter): Restrict
97 early-out optimisation to SSA_NAMEs.
98
99 2022-09-20 Martin Liska <mliska@suse.cz>
100
101 * ctfc.cc (ctf_add_string): Replace "the the" with "the".
102 * doc/md.texi: Likewise.
103 * gimple-range-infer.cc (non_null_loadstore): Likewise.
104
105 2022-09-20 liuhongt <hongtao.liu@intel.com>
106
107 PR target/106910
108 * config/i386/mmx.md (nearbyintv2sf2): New expander.
109 (rintv2sf2): Ditto.
110 (ceilv2sf2): Ditto.
111 (lceilv2sfv2si2): Ditto.
112 (floorv2sf2): Ditto.
113 (lfloorv2sfv2si2): Ditto.
114 (btruncv2sf2): Ditto.
115 (lrintv2sfv2si2): Ditto.
116 (roundv2sf2): Ditto.
117 (lroundv2sfv2si2): Ditto.
118 (*mmx_roundv2sf2): New define_insn.
119
120 2022-09-20 konglin1 <lingling.kong@intel.com>
121
122 PR middle-end/105735
123 * tree-scalar-evolution.cc
124 (analyze_and_compute_bitop_with_inv_effect): New function.
125 (final_value_replacement_loop): Enhanced to handle bitop
126 with inv induction.
127
128 2022-09-20 Xi Ruoyao <xry111@xry111.site>
129
130 * config/loongarch/gnu-user.h (GNU_USER_TARGET_LINK_SPEC): For
131 -static-pie, pass -static -pie --no-dynamic-linker -z text to
132 the linker, and do not pass --dynamic-linker.
133
134 2022-09-20 Aldy Hernandez <aldyh@redhat.com>
135
136 * value-range.cc (frange::flush_denormals_to_zero): New.
137 (frange::set): Call flush_denormals_to_zero.
138 * value-range.h (class frange): Add flush_denormals_to_zero.
139
140 2022-09-20 liuhongt <hongtao.liu@intel.com>
141
142 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Adjust for
143 latest Intel processors.
144
145 2022-09-20 konglin1 <lingling.kong@intel.com>
146
147 PR target/106887
148 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
149 Fixed V16BF mode case.
150
151 2022-09-19 Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
152
153 * targhooks.cc (default_zero_call_used_regs): Improve sorry
154 message.
155
156 2022-09-18 Julian Brown <julian@codesourcery.com>
157
158 * gimplify.cc (omp_segregate_mapping_groups): Update comment.
159 (gimplify_adjust_omp_clauses): Move ATTACH and
160 ATTACH_ZERO_LENGTH_ARRAY_SECTION nodes to the end of the clause list
161 for offloaded OpenMP regions.
162
163 2022-09-18 Jakub Jelinek <jakub@redhat.com>
164
165 PR middle-end/106831
166 * value-range.cc (frange::singleton_p): Avoid propagating long
167 doubles that may have multiple representations.
168
169 2022-09-18 Aldy Hernandez <aldyh@redhat.com>
170
171 * range-op-float.cc (frange_add_zeros): Replace set_signbit with
172 union of zero.
173 * value-query.cc (range_query::get_tree_range): Remove set_signbit
174 use.
175 * value-range-pretty-print.cc (vrange_printer::print_frange_prop):
176 Remove.
177 (vrange_printer::print_frange_nan): New.
178 * value-range-pretty-print.h (print_frange_prop): Remove.
179 (print_frange_nan): New.
180 * value-range-storage.cc (frange_storage_slot::set_frange): Set
181 kind and NAN fields.
182 (frange_storage_slot::get_frange): Restore kind and NAN fields.
183 * value-range-storage.h (class frange_storage_slot): Add kind and
184 NAN fields.
185 * value-range.cc (frange::update_nan): Remove.
186 (frange::set_signbit): Remove.
187 (frange::set): Adjust for NAN fields.
188 (frange::normalize_kind): Remove m_props.
189 (frange::combine_zeros): New.
190 (frange::union_nans): New.
191 (frange::union_): Handle new NAN fields.
192 (frange::intersect_nans): New.
193 (frange::intersect): Handle new NAN fields.
194 (frange::operator=): Same.
195 (frange::operator==): Same.
196 (frange::contains_p): Same.
197 (frange::singleton_p): Remove special case for signed zeros.
198 (frange::verify_range): Adjust for new NAN fields.
199 (frange::set_zero): Handle signed zeros.
200 (frange::set_nonnegative): Same.
201 (range_tests_nan): Adjust tests.
202 (range_tests_signed_zeros): Same.
203 (range_tests_signbit): Same.
204 (range_tests_floats): Same.
205 * value-range.h (class fp_prop): Remove.
206 (FP_PROP_ACCESSOR): Remove.
207 (class frange_props): Remove
208 (frange::lower_bound): NANs don't have endpoints.
209 (frange::upper_bound): Same.
210 (frange_props::operator==): Remove.
211 (frange_props::union_): Remove.
212 (frange_props::intersect): Remove.
213 (frange::update_nan): New.
214 (frange::clear_nan): New.
215 (frange::undefined_p): New.
216 (frange::set_nan): New.
217 (frange::known_finite): Adjust for new NAN representation.
218 (frange::maybe_isnan): Same.
219 (frange::known_isnan): Same.
220 (frange::signbit_p): Same.
221 * gimple-range-fold.cc (range_of_builtin_int_call): Rename
222 known_signbit_p into signbit_p.
223
224 2022-09-17 Jan-Benedict Glaw <jbglaw@lug-owl.de>
225
226 * config/csky/csky.h (FUNCTION_ARG_REGNO_P): Cast REGNO to (int)
227 to prevent warning.
228
229 2022-09-17 Jakub Jelinek <jakub@redhat.com>
230
231 PR tree-optimization/106958
232 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): If
233 id >= l, cast op to type1, otherwise to pointer_sized_int_node.
234 If type has pointer type, cast exp to pointer_sized_int_node
235 even when id < l.
236
237 2022-09-16 liuhongt <hongtao.liu@intel.com>
238
239 PR target/106910
240 * config/i386/i386-builtins.cc
241 (ix86_builtin_vectorized_function): Modernized with
242 corresponding expanders.
243 * config/i386/sse.md (lrint<mode><sseintvecmodelower>2): New
244 expander.
245 (floor<mode>2): Ditto.
246 (lfloor<mode><sseintvecmodelower>2): Ditto.
247 (ceil<mode>2): Ditto.
248 (lceil<mode><sseintvecmodelower>2): Ditto.
249 (btrunc<mode>2): Ditto.
250 (lround<mode><sseintvecmodelower>2): Ditto.
251 (exp2<mode>2): Ditto.
252
253 2022-09-15 Joseph Myers <joseph@codesourcery.com>
254
255 * ginclude/float.h (INFINITY): Define only if
256 [__FLT_HAS_INFINITY__].
257
258 2022-09-15 Richard Biener <rguenther@suse.de>
259
260 PR tree-optimization/106922
261 * tree-ssa-pre.cc (translate_vuse_through_block): Only
262 keep the VUSE if its def dominates PHIBLOCK.
263 (prune_clobbered_mems): Rewrite logic so we check whether
264 a value dies in a block when the VUSE def doesn't dominate it.
265
266 2022-09-15 Richard Biener <rguenther@suse.de>
267
268 * tree.cc (build_common_tree_nodes): Initialize void_list_node
269 here.
270
271 2022-09-15 Jiufu Guo <guojiufu@linux.ibm.com>
272
273 PR target/106550
274 * config/rs6000/rs6000.cc (rs6000_emit_set_long_const): Use pli.
275
276 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
277
278 * range-op-float.cc (frange_add_zeros): New.
279 (build_le): Call frange_add_zeros.
280 (build_ge): Same.
281 (foperator_equal::op1_range): Same.
282 (foperator_not_equal::op1_range): Same.
283
284 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
285
286 * range-op-float.cc (build_le): Accept frange instead of number.
287 (build_lt): Same.
288 (build_ge): Same.
289 (build_gt): Same.
290 (foperator_lt::op1_range): Pass full range to build_*.
291 (foperator_lt::op2_range): Same.
292 (foperator_le::op1_range): Same.
293 (foperator_le::op2_range): Same.
294 (foperator_gt::op1_range): Same.
295 (foperator_gt::op2_range): Same.
296 (foperator_ge::op1_range): Same.
297 (foperator_ge::op2_range): Same.
298
299 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
300
301 * value-range.cc (frange::set): Use set_nan.
302 * value-range.h (frange::set_nan): Inline code originally in
303 set().
304
305 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
306
307 * range-op-float.cc (frange_set_nan): Remove.
308 (build_lt): Use set_nan, update_nan, clear_nan.
309 (build_gt): Same.
310 (foperator_equal::op1_range): Same.
311 (foperator_not_equal::op1_range): Same.
312 (foperator_lt::op1_range): Same.
313 (foperator_lt::op2_range): Same.
314 (foperator_le::op1_range): Same.
315 (foperator_le::op2_range): Same.
316 (foperator_gt::op1_range): Same.
317 (foperator_gt::op2_range): Same.
318 (foperator_ge::op1_range): Same.
319 (foperator_ge::op2_range): Same.
320 (foperator_unordered::op1_range): Same.
321 (foperator_ordered::op1_range): Same.
322 * value-query.cc (range_query::get_tree_range): Same.
323 * value-range.cc (frange::set_nan): Same.
324 (frange::update_nan): Same.
325 (frange::union_): Same.
326 (frange::intersect): Same.
327 (range_tests_nan): Same.
328 (range_tests_signed_zeros): Same.
329 (range_tests_signbit): Same.
330 (range_tests_floats): Same.
331 * value-range.h (class frange): Add update_nan and clear_nan.
332 (frange::set_nan): New.
333
334 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
335
336 * value-query.cc (range_query::get_tree_range): Remove check for overflow.
337 * value-range-pretty-print.cc (vrange_printer::visit): Move read
338 of type until after undefined_p is checked.
339 * value-range.cc (frange::set): Remove asserts for REAL_CST.
340 (frange::contains_p): Tidy up.
341 (range_tests_nan): Add comment.
342 * value-range.h (frange::type): Check for undefined_p.
343 (frange::set_undefined): Remove set of endpoints.
344
345 2022-09-14 Julian Brown <julian@codesourcery.com>
346
347 * gimplify.cc (omp_group_last): Allow GOMP_MAP_ATTACH_DETACH after
348 GOMP_MAP_STRUCT (for reindexing).
349 (omp_gather_mapping_groups): Reimplement using...
350 (omp_gather_mapping_groups_1): This new function. Stop processing at
351 GATHER_SENTINEL.
352 (omp_group_base): Allow GOMP_MAP_TO_PSET without any following node.
353 (omp_index_mapping_groups): Reimplement using...
354 (omp_index_mapping_groups_1): This new function. Handle
355 REINDEX_SENTINEL.
356 (omp_reindex_mapping_groups, omp_mapped_by_containing_struct): New
357 functions.
358 (omp_tsort_mapping_groups_1): Adjust handling of base group being the
359 same as current group. Use omp_mapped_by_containing_struct.
360 (omp_build_struct_sibling_lists): Use omp_mapped_by_containing_struct
361 and omp_reindex_mapping_groups. Robustify group deletion for reordered
362 lists.
363 (gimplify_scan_omp_clauses): Update calls to
364 omp_build_struct_sibling_lists.
365
366 2022-09-14 Julian Brown <julian@codesourcery.com>
367
368 * gimplify.cc (gimplify_omp_var_data): Remove GOVD_MAP_HAS_ATTACHMENTS.
369 (GOMP_FIRSTPRIVATE_IMPLICIT): Renumber.
370 (insert_struct_comp_map): Refactor function into...
371 (build_omp_struct_comp_nodes): This new function. Remove list handling
372 and improve self-documentation.
373 (extract_base_bit_offset): Remove BASE_REF, OFFSETP parameters. Move
374 code to strip outer parts of address out of function, but strip no-op
375 conversions.
376 (omp_mapping_group): Add DELETED field for use during reindexing.
377 (omp_strip_components_and_deref, omp_strip_indirections): New functions.
378 (omp_group_last, omp_group_base): Add GOMP_MAP_STRUCT handling.
379 (omp_gather_mapping_groups): Initialise DELETED field for new groups.
380 (omp_index_mapping_groups): Notice DELETED groups when (re)indexing.
381 (omp_siblist_insert_node_after, omp_siblist_move_node_after,
382 omp_siblist_move_nodes_after, omp_siblist_move_concat_nodes_after): New
383 helper functions.
384 (omp_accumulate_sibling_list): New function to build up GOMP_MAP_STRUCT
385 node groups for sibling lists. Outlined from gimplify_scan_omp_clauses.
386 (omp_build_struct_sibling_lists): New function.
387 (gimplify_scan_omp_clauses): Remove struct_map_to_clause,
388 struct_seen_clause, struct_deref_set. Call
389 omp_build_struct_sibling_lists as pre-pass instead of handling sibling
390 lists in the function's main processing loop.
391 (gimplify_adjust_omp_clauses_1): Remove GOVD_MAP_HAS_ATTACHMENTS
392 handling, unused now.
393 * omp-low.cc (scan_sharing_clauses): Handle pointer-type indirect
394 struct references, and references to pointers to structs also.
395
396 2022-09-14 Richard Biener <rguenther@suse.de>
397
398 PR tree-optimization/106938
399 * tree-cfg.cc (execute_fixup_cfg): Purge dead abnormal
400 edges for all last stmts in a block. Do EH cleanup
401 only on the last stmt in a block.
402
403 2022-09-14 Aldy Hernandez <aldyh@redhat.com>
404
405 PR tree-optimization/106936
406 * value-query.cc (range_query::get_value_range): Remove assert.
407
408 2022-09-14 Jan-Benedict Glaw <jbglaw@lug-owl.de>
409
410 * config/mips/mips.cc (mips_option_override): Drop unused variable.
411
412 2022-09-14 Julian Brown <julian@codesourcery.com>
413
414 * gimplify.cc (is_or_contains_p, omp_target_reorder_clauses): Delete
415 functions.
416 (omp_tsort_mark): Add enum.
417 (omp_mapping_group): Add struct.
418 (debug_mapping_group, omp_get_base_pointer, omp_get_attachment,
419 omp_group_last, omp_gather_mapping_groups, omp_group_base,
420 omp_index_mapping_groups, omp_containing_struct,
421 omp_tsort_mapping_groups_1, omp_tsort_mapping_groups,
422 omp_segregate_mapping_groups, omp_reorder_mapping_groups): New
423 functions.
424 (gimplify_scan_omp_clauses): Call above functions instead of
425 omp_target_reorder_clauses, unless we've seen an error.
426 * omp-low.cc (scan_sharing_clauses): Avoid strict test if we haven't
427 sorted mapping groups.
428
429 2022-09-14 Jakub Jelinek <jakub@redhat.com>
430
431 PR tree-optimization/106878
432 * tree-cfg.cc (verify_gimple_assign_binary): Disallow pointer,
433 reference or OFFSET_TYPE BIT_IOR_EXPR, BIT_XOR_EXPR or, unless
434 the second argument is INTEGER_CST, BIT_AND_EXPR.
435 * match.pd ((type) X op CST -> (type) (X op ((type-x) CST)),
436 (type) (((type2) X) op Y) -> (X op (type) Y)): Punt for
437 POINTER_TYPE_P or OFFSET_TYPE.
438 * tree-ssa-reassoc.cc (optimize_range_tests_cmp_bitwise): For
439 pointers cast them to pointer sized integers first.
440
441 2022-09-14 Richard Biener <rguenther@suse.de>
442
443 PR tree-optimization/106934
444 * tree-ssa.cc (non_rewritable_mem_ref_base): Avoid BIT_FIELD_REFs
445 of bitfields.
446 (maybe_rewrite_mem_ref_base): Likewise.
447
448 2022-09-14 liuhongt <hongtao.liu@intel.com>
449
450 PR tree-optimization/106905
451 * tree-vect-loop.cc (vectorizable_nonlinear_induction): Return
452 false when !vect_use_loop_mask_for_alignment_p (loop_vinfo) &&
453 LOOP_VINFO_PEELING_FOR_ALIGNMENT (loop_vinfo) < 0.
454
455 2022-09-13 Roger Sayle <roger@nextmovesoftware.com>
456
457 PR target/106877
458 * reg-stack.cc (move_for_stack_reg): Check for any_malformed_asm
459 in gcc_assert.
460
461 2022-09-13 Max Filippov <jcmvbkbc@gmail.com>
462
463 Revert:
464 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
465
466 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
467 New macro definition.
468 (xtensa_constant_ok_for_cprop_p):
469 Implement the hook as mentioned above.
470
471 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
472
473 PR target/104482
474 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin): Fix
475 the equality check for argument number, and move this hunk ahead.
476
477 2022-09-13 Kewen.Lin <linkw@gcc.gnu.org>
478
479 PR target/105485
480 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Add
481 the handling for unresolved overloaded builtin function.
482 (rs6000_expand_builtin): Likewise.
483
484 2022-09-13 Kewen Lin <linkw@linux.ibm.com>
485
486 * config/rs6000/rs6000.cc (class rs6000_cost_data): Add new members
487 m_nstores, m_reduc_factor, m_gather_load and member function
488 determine_suggested_unroll_factor.
489 (rs6000_cost_data::update_target_cost_per_stmt): Update for m_nstores,
490 m_reduc_factor and m_gather_load.
491 (rs6000_cost_data::determine_suggested_unroll_factor): New function.
492 (rs6000_cost_data::finish_cost): Use determine_suggested_unroll_factor.
493 * config/rs6000/rs6000.opt (rs6000-vect-unroll-limit): New parameter.
494 (rs6000-vect-unroll-issue): Likewise.
495 (rs6000-vect-unroll-reduc-threshold): Likewise.
496 * doc/invoke.texi (rs6000-vect-unroll-limit): Document new parameter.
497
498 2022-09-13 Richard Biener <rguenther@suse.de>
499
500 PR middle-end/106909
501 * gimple-fold.cc (gimple_fold_call): Clear the ctrl-altering
502 flag of a unreachable call.
503
504 2022-09-13 Richard Biener <rguenther@suse.de>
505
506 PR tree-optimization/106913
507 * tree-ssa-uninit.cc (warn_uninitialized_vars): Do not set
508 ft_reachable on EXIT_BLOCK.
509
510 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
511
512 * config/aarch64/aarch64.cc (aarch64_classify_vector_mode): Use
513 TARGET_FLOAT instead of TARGET_SIMD.
514 (aarch64_vectorize_related_mode): Restrict ADVSIMD handling to
515 TARGET_SIMD.
516 (aarch64_hard_regno_mode_ok): Don't allow tuples of 2 64-bit vectors
517 in GPRs.
518 (aarch64_classify_address): Treat little-endian structure moves
519 like big-endian for TARGET_FLOAT && !TARGET_SIMD.
520 (aarch64_secondary_memory_needed): New function.
521 (aarch64_secondary_reload): Handle 128-bit Advanced SIMD vectors
522 in the same way as TF, TI and TD.
523 (aarch64_rtx_mult_cost): Restrict ADVSIMD handling to TARGET_SIMD.
524 (aarch64_rtx_costs): Likewise.
525 (aarch64_register_move_cost): Treat a pair of 64-bit vectors
526 separately from a single 128-bit vector. Handle the cost implied
527 by aarch64_secondary_memory_needed.
528 (aarch64_simd_valid_immediate): Restrict ADVSIMD handling to
529 TARGET_SIMD.
530 (aarch64_expand_vec_perm_const_1): Likewise.
531 (TARGET_SECONDARY_MEMORY_NEEDED): New macro.
532 * config/aarch64/iterators.md (VTX): New iterator.
533 * config/aarch64/aarch64.md (arches): Add fp_q as a synonym of simd.
534 (arch_enabled): Adjust accordingly.
535 (@aarch64_reload_mov<TX:mode>): Extend to...
536 (@aarch64_reload_mov<VTX:mode>): ...this.
537 * config/aarch64/aarch64-simd.md (mov<mode>): Require TARGET_FLOAT
538 rather than TARGET_SIMD.
539 (movmisalign<mode>): Likewise.
540 (load_pair<DREG:mode><DREG2:mode>): Likewise.
541 (vec_store_pair<DREG:mode><DREG2:mode>): Likewise.
542 (load_pair<VQ:mode><VQ2:mode>): Likewise.
543 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise.
544 (@aarch64_split_simd_mov<mode>): Likewise.
545 (aarch64_get_low<mode>): Likewise.
546 (aarch64_get_high<mode>): Likewise.
547 (aarch64_get_half<mode>): Likewise. Canonicalize to a move for
548 lowpart extracts.
549 (*aarch64_simd_mov<VDMOV:mode>): Require TARGET_FLOAT rather than
550 TARGET_SIMD. Use different w<-w and r<-w instructions for
551 !TARGET_SIMD. Disable immediate moves for !TARGET_SIMD but
552 add an alternative specifically for w<-Z.
553 (*aarch64_simd_mov<VQMOV:mode>): Require TARGET_FLOAT rather than
554 TARGET_SIMD. Likewise for the associated define_splits. Disable
555 FPR moves and immediate moves for !TARGET_SIMD but add an alternative
556 specifically for w<-Z.
557 (aarch64_simd_mov_from_<mode>high): Require TARGET_FLOAT rather than
558 TARGET_SIMD. Restrict the existing alternatives to TARGET_SIMD
559 but add a new r<-w one for !TARGET_SIMD.
560 (*aarch64_get_high<mode>): New pattern.
561 (load_pair_lanes<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
562 (store_pair_lanes<mode>): Likewise.
563 (*aarch64_combine_internal<mode>): Likewise. Restrict existing
564 w<-w, w<-r and w<-m alternatives to TARGET_SIMD but add a new w<-r
565 alternative for !TARGET_SIMD.
566 (*aarch64_combine_internal_be<mode>): Likewise.
567 (aarch64_combinez<mode>): Require TARGET_FLOAT rather than TARGET_SIMD.
568 Remove bogus arch attribute.
569 (*aarch64_combinez_be<mode>): Likewise.
570 (@aarch64_vec_concat<mode>): Require TARGET_FLOAT rather than
571 TARGET_SIMD.
572 (aarch64_combine<mode>): Likewise.
573 (aarch64_rev_reglist<mode>): Likewise.
574 (mov<mode>): Likewise.
575 (*aarch64_be_mov<VSTRUCT_2D:mode>): Extend to TARGET_FLOAT &&
576 !TARGET_SIMD, regardless of endianness. Extend associated
577 define_splits in the same way, both for this pattern and the
578 ones below.
579 (*aarch64_be_mov<VSTRUCT_2Qmode>): Likewise. Restrict w<-w
580 alternative to TARGET_SIMD.
581 (*aarch64_be_movoi): Likewise.
582 (*aarch64_be_movci): Likewise.
583 (*aarch64_be_movxi): Likewise.
584 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Extend to TARGET_FLOAT
585 && !TARGET_SIMD, regardless of endianness. Restrict w<-w alternative
586 to TARGET_SIMD for tuples of 128-bit vectors.
587 (*aarch64_be_mov<VSTRUCT_4QD:mode>): Likewise.
588 * config/aarch64/aarch64-ldpstp.md: Remove TARGET_SIMD condition
589 from DREG STP peephole. Change TARGET_SIMD to TARGET_FLOAT in
590 the VQ and VP_2E LDP and STP peepholes.
591
592 2022-09-13 Richard Sandiford <richard.sandiford@arm.com>
593
594 * config/aarch64/aarch64-simd.md (movv8di): Remove TARGET_SIMD
595 condition. Likewise for the related define_split. Tweak formatting.
596
597 2022-09-12 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
598
599 * config/xtensa/xtensa.cc (TARGET_CONSTANT_OK_FOR_CPROP_P):
600 New macro definition.
601 (xtensa_constant_ok_for_cprop_p):
602 Implement the hook as mentioned above.
603
604 2022-09-12 Joseph Myers <joseph@codesourcery.com>
605
606 * ginclude/stdatomic.h [defined __STDC_VERSION__ &&
607 __STDC_VERSION__ > 201710L] (ATOMIC_VAR_INIT): Do not define.
608
609 2022-09-12 Tobias Burnus <tobias@codesourcery.com>
610
611 * config/nvptx/mkoffload.cc (process): Replace a fatal_error by
612 a warning + not enabling offloading if -misa=sm_30 prevents
613 reverse offload.
614 (main): Use tool_name as progname for diagnostic.
615 * config/gcn/mkoffload.cc (main): Likewise.
616
617 2022-09-12 Aldy Hernandez <aldyh@redhat.com>
618
619 * value-range.cc (frange::set_signbit): Avoid changing sign when
620 already in the correct sign.
621
622 2022-09-12 Max Filippov <jcmvbkbc@gmail.com>
623
624 * config/xtensa/xtensa.cc (xtensa_function_value_regno_p):
625 Recognize all 4 return registers.
626 * config/xtensa/xtensa.h (GP_RETURN_REG_COUNT): New definition.
627 * config/xtensa/xtensa.md (untyped_call): New pattern.
628
629 2022-09-12 Jonathan Wakely <jwakely@redhat.com>
630
631 * doc/extend.texi (Floating Types): Fix "_float128" typo.
632
633 2022-09-10 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
634
635 * config/xtensa/xtensa.cc (xtensa_constantsynth):
636 Add new pattern for the abovementioned case.
637
638 2022-09-10 Akari Takahashi <akaritakahashioss@gmail.com>
639 Segher Boessenkool <segher@kernel.crashing.org>
640
641 * config/rs6000/rs6000.cc (get_memref_parts): Regularize some code.
642
643 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
644
645 * config/xtensa/xtensa.md: Rewrite the split pattern that performs
646 the abovementioned process so that insns that overwrite clobbered
647 register no longer need to be contiguous.
648 (DSC): Remove as no longer needed.
649
650 2022-09-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
651
652 * config/xtensa/xtensa.cc (machine_function): New boolean member as
653 a flag that controls whether to emit the insns for stack pointer
654 adjustment inside of the pro/epilogue.
655 (xtensa_emit_adjust_stack_ptr): New function to share the common
656 codes and to emit insns if not inhibited.
657 (xtensa_expand_epilogue): Change to use the function mentioned
658 above when using the CALL0 ABI.
659 (xtensa_expand_prologue): Ditto.
660 And also change to set the inhibit flag used by
661 xtensa_emit_adjust_stack_ptr() to true if the stack pointer is only
662 used for its own adjustment.
663
664 2022-09-09 David Malcolm <dmalcolm@redhat.com>
665
666 * doc/invoke.texi (Static Analyzer Options): Add
667 -Wanalyzer-exposure-through-uninit-copy.
668
669 2022-09-09 David Malcolm <dmalcolm@redhat.com>
670
671 * Makefile.in (ANALYZER_OBJS): Add
672 analyzer/known-function-manager.o.
673
674 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
675
676 * config/nvptx/mkoffload.cc (struct id_map): Add 'dim' member.
677 (record_id): Store func name without quotes, store dim separately.
678 (process): For GOMP_REQUIRES_REVERSE_OFFLOAD, check that -march is
679 at least sm_35, create '$offload_func_table' global array and init
680 with reverse-offload function addresses.
681 * config/nvptx/nvptx.cc (write_fn_proto_1, write_fn_proto): New
682 force_public attribute to force .visible.
683 (nvptx_declare_function_name): For "omp target
684 device_ancestor_nohost" attribut, force .visible/TREE_PUBLIC.
685
686 2022-09-09 Tobias Burnus <tobias@codesourcery.com>
687
688 * config/gcn/mkoffload.cc (process_asm): Create .offload_func_table,
689 similar to pre-existing .offload_var_table.
690
691 2022-09-09 Joseph Myers <joseph@codesourcery.com>
692
693 * ginclude/stddef.h [__STDC_VERSION__ > 201710L] (unreachable):
694 New macro.
695
696 2022-09-09 Kewen Lin <linkw@linux.ibm.com>
697
698 PR middle-end/106833
699 * tree.cc (verify_opaque_type): New function.
700 (verify_type): Call verify_opaque_type for OPAQUE_TYPE.
701
702 2022-09-09 Kwok Cheung Yeung <kcy@codesourcery.com>
703
704 * config/gcn/gcn-builtins.def (FABSVF, LDEXPVF, LDEXPV, FREXPVF_EXP,
705 FREXPVF_MANT, FREXPV_EXP, FREXPV_MANT): Add new builtins.
706 * config/gcn/gcn-protos.h (gcn_dconst1over2pi): New prototype.
707 * config/gcn/gcn-valu.md (MATH_UNOP_1OR2REG, MATH_UNOP_1REG,
708 MATH_UNOP_TRIG): New iterators.
709 (math_unop): New attributes.
710 (<math_unop><mode>2, <math_unop><mode>2<exec>,
711 <math_unop><mode>2, <math_unop><mode>2<exec>,
712 *<math_unop><mode>2_insn, *<math_unop><mode>2<exec>_insn,
713 ldexp<mode>3, ldexp<mode>3<exec>,
714 frexp<mode>_exp2, frexp<mode>_mant2,
715 frexp<mode>_exp2<exec>, frexp<mode>_mant2<exec>): New instructions.
716 (<math_unop><mode>2, <math_unop><mode>2<exec>): New expanders.
717 * config/gcn/gcn.cc (init_ext_gcn_constants): Update definition of
718 dconst1over2pi.
719 (gcn_dconst1over2pi): New.
720 (gcn_builtin_type_index): Add entry for v64df type.
721 (v64df_type_node): New.
722 (gcn_init_builtin_types): Initialize v64df_type_node.
723 (gcn_expand_builtin_1): Expand new builtins to instructions.
724 (print_operand): Fix assembler output for 1/(2*PI) constant.
725 * config/gcn/gcn.md (unspec): Add new entries.
726
727 2022-09-09 Richard Biener <rguenther@suse.de>
728
729 PR tree-optimization/106722
730 * tree-predcom.cc (ref_at_iteration): Do not associate the
731 constant part of the offset into the MEM_REF offset
732 operand, across a non-zero offset.
733
734 2022-09-09 Kito Cheng <kito.cheng@sifive.com>
735
736 * common/config/riscv/riscv-common.cc (RISCV_USE_CUSTOMISED_MULTI_LIB):
737 Move forward for cover all all necessary functions for suppress
738 unused function warnings.
739 (riscv_multi_lib_check): Move forward, and tweak message to suppress
740 -Werror=format-diag warning.
741
742 2022-09-09 Richard Biener <rguenther@suse.de>
743
744 PR tree-optimization/106881
745 * gimple-predicate-analysis.cc (simple_control_dep_chain):
746 Add only non-fallthru edges and avoid the same set of edges
747 as compute_control_dep_chain_pdom does.
748
749 2022-09-09 Jan-Benedict Glaw <jbglaw@lug-owl.de>
750
751 * doc/tm.texi.in (TARGET_OVERRIDES_FORMAT_ATTRIBUTES): Document requirement
752 of TARGET_OVERRIDES_FORMAT_ATTRIBUTES_COUNT being defined as well.
753 * doc/tm.texi: Regenerate.
754
755 2022-09-09 Martin Liska <mliska@suse.cz>
756
757 * optc-save-gen.awk: Always compare array option values with memcmp.
758
759 2022-09-08 Jonathan Wakely <jwakely@redhat.com>
760
761 PR c++/106838
762 * doc/extend.texi (Type Traits): Fix requirements. Document
763 __is_aggregate and __is_final.
764
765 2022-09-08 Tim Lange <mail@tim-lange.me>
766
767 PR analyzer/106625
768 * doc/invoke.texi:
769 State that the checker also reasons about symbolic values.
770
771 2022-09-08 Richard Sandiford <richard.sandiford@arm.com>
772
773 PR tree-optimization/106886
774 * tree-vect-slp.cc (vect_optimize_slp_pass::get_result_with_layout):
775 Fix copying of scalar stmts.
776
777 2022-09-08 Chung-Lin Tang <cltang@codesourcery.com>
778
779 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add #undef before #define.
780
781 2022-09-08 Richard Biener <rguenther@suse.de>
782
783 PR middle-end/106870
784 * gimple-harden-conditionals.cc (insert_check_and_trap):
785 Set the control-altering flag on the built IFN_TRAP.
786 * gimple.cc (gimple_build_builtin_unreachable): Likewise.
787 * tree-cfg.cc (handle_abnormal_edges): Set the control-altering
788 flag on the .ABNORMAL_DISPATCHER call.
789 * tree-cfgcleanup.cc (cleanup_call_ctrl_altering_flag): Avoid
790 resetting the control altering flag for ECF_NORETURN calls.
791 (cleanup_control_flow_bb): Set the control altering flag on
792 discovered noreturn calls.
793 * symtab-thunks.cc (expand_thunk): Set the control altering
794 flag for the noreturn tailcall case.
795 * tree-eh.cc (lower_resx): Likewisw for trap and unwind_resume
796 calls.
797
798 2022-09-08 Jakub Jelinek <jakub@redhat.com>
799
800 * omp-expand.cc (expand_omp_ordered_sink): Add CONT_BB argument.
801 Add doacross(sink:omp_cur_iteration-1) support.
802 (expand_omp_ordered_source_sink): Clear counts[fd->ordered + 1].
803 Adjust expand_omp_ordered_sink caller.
804 (expand_omp_for_ordered_loops): If counts[fd->ordered + 1] is
805 non-NULL, set that variable to true at the start of outermost
806 non-collapsed loop and set it to false at the end of innermost
807 ordered loop.
808 (expand_omp_for_generic): If fd->ordered, allocate
809 1 + (fd->ordered - fd->collapse) further elements in counts array.
810 Copy to counts + 2 + fd->ordered the counts of fd->collapse ..
811 fd->ordered - 1 loop if any.
812
813 2022-09-08 Richard Biener <rguenther@suse.de>
814
815 PR tree-optimization/106881
816 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
817 Add only non-fallthru edges and avoid the same set of edges
818 as the caller does.
819
820 2022-09-08 Aldy Hernandez <aldyh@redhat.com>
821
822 * gimple-range-fold.cc
823 (fold_using_range::range_of_builtin_int_call): Use fpclassify like API.
824 * range-op-float.cc (finite_operand_p): Same.
825 (finite_operands_p): Same.
826 (foperator_lt::fold_range): Same.
827 (foperator_le::fold_range): Same.
828 (foperator_gt::fold_range): Same.
829 (foperator_ge::fold_range): Same.
830 (foperator_unordered::fold_range): Same.
831 (foperator_unordered::op1_range): Same.
832 (foperator_ordered::fold_range): Same.
833 * value-range.cc (frange::set_nan): Same.
834 (frange::set_signbit): Same.
835 (frange::union_): Same.
836 (frange::intersect): Same.
837 (frange::operator==): Same.
838 (frange::singleton_p): Same.
839 (frange::verify_range): Same.
840 (range_tests_nan): Same.
841 (range_tests_floats): Same.
842 * value-range.h(frange::known_finite): New.
843 (frange::maybe_inf): New.
844 (frange::known_inf): New.
845 (frange::maybe_nan): New.
846 (frange::known_nan): New.
847 (frange::known_signbit): New.
848
849 2022-09-08 Iain Buclaw <ibuclaw@gdcproject.org>
850
851 * config/darwin-d.cc: Include tm.h.
852 * config/dragonfly-d.cc: Likewise.
853 * config/freebsd-d.cc: Remove memmodel.h.
854 * config/glibc-d.cc: Likewise.
855 * config/netbsd-d.cc: Include tm.h.
856 * config/openbsd-d.cc: Likewise.
857 * config/sol2-d.cc: Likewise.
858
859 2022-09-08 Christophe Lyon <christophe.lyon@arm.com>
860
861 * config/arm/mve.md (mve_vqshluq_n_s<mode>): Use
862 MVE_pred/MVE_constraint instead of mve_imm_7/Ra.
863 (mve_vqshluq_m_n_s<mode>): Likewise.
864 (mve_vqrshrnbq_n_<supf><mode>): Use MVE_pred3/MVE_constraint3
865 instead of mve_imm_8/Rb.
866 (mve_vqrshrunbq_n_s<mode>): Likewise.
867 (mve_vqrshrntq_n_<supf><mode>): Likewise.
868 (mve_vqrshruntq_n_s<mode>): Likewise.
869 (mve_vrshrnbq_n_<supf><mode>): Likewise.
870 (mve_vrshrntq_n_<supf><mode>): Likewise.
871 (mve_vqrshrnbq_m_n_<supf><mode>): Likewise.
872 (mve_vqrshrntq_m_n_<supf><mode>): Likewise.
873 (mve_vrshrnbq_m_n_<supf><mode>): Likewise.
874 (mve_vrshrntq_m_n_<supf><mode>): Likewise.
875 (mve_vqrshrunbq_m_n_s<mode>): Likewise.
876 (mve_vsriq_n_<supf><mode): Use MVE_pred2/MVE_constraint2 instead
877 of mve_imm_selective_upto_8/Rg.
878 (mve_vsriq_m_n_<supf><mode>): Likewise.
879
880 2022-09-08 Jiufu Guo <guojiufu@linux.ibm.com>
881
882 * config/rs6000/rs6000.md (splitter for set to and_mask constants):
883 Use int_reg_operand (instead of int_reg_operand_not_pseudo).
884 (splitter for multi-insn constant loads): Ditto.
885
886 2022-09-08 Sebastian Huber <sebastian.huber@embedded-brains.de>
887
888 * config/rs6000/rtems.h (CPP_OS_DEFAULT_SPEC): Define __PPC_VRSAVE__ if
889 -mvrsave is present.
890 * config/rs6000/t-rtems: Add -mvrsave multilib variants for
891 -mcpu=e6500.
892
893 2022-09-07 Martin Liska <mliska@suse.cz>
894
895 * configure.ac: Restore detection of HAVE_XCOFF_DWARF_EXTRAS.
896 * config/rs6000/rs6000.cc (HAVE_XCOFF_DWARF_EXTRAS): Reset it.
897 * configure: Regenerate.
898 * config.in: Regenerate.
899
900 2022-09-07 Surya Kumari Jangala <jskumari@linux.ibm.com>
901
902 PR rtl-optimization/105586
903 * sched-rgn.cc (save_state_for_fallthru_edge): New function.
904 (schedule_region): Use it for all blocks.
905
906 2022-09-07 Joseph Myers <joseph@codesourcery.com>
907
908 * ginclude/stdalign.h [defined __STDC_VERSION__ &&
909 __STDC_VERSION__ > 201710L]: Disable all content.
910 * ginclude/stdbool.h [defined __STDC_VERSION__ && __STDC_VERSION__
911 > 201710L] (bool, true, false): Do not define.
912
913 2022-09-07 Martin Liska <mliska@suse.cz>
914
915 PR bootstrap/106855
916 * collect2.cc (scan_prog_file): Restore if XCOFF_DEBUGGING_INFO.
917 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
918 Restore usage of XCOFF_DEBUGGING_INFO.
919 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Restore.
920 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Restore support for
921 XCOFF_DEBUGGING_INFO.
922 (dw2_asm_output_nstring): Likewise.
923 (USE_LINKONCE_INDIRECT): Likewise.
924 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
925 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
926 (output_fde): Likewise.
927 (output_call_frame_info): Likewise.
928 (have_macinfo): Likewise.
929 (add_AT_loc_list): Likewise.
930 (add_AT_view_list): Likewise.
931 (output_compilation_unit_header): Likewise.
932 (output_pubnames): Likewise.
933 (output_aranges): Likewise.
934 (output_line_info): Likewise.
935 (output_macinfo): Likewise.
936 (dwarf2out_finish): Likewise.
937 (dwarf2out_early_finish): Likewise.
938
939 2022-09-07 Richard Biener <rguenther@suse.de>
940
941 PR tree-optimization/106866
942 * tree-ssa-dce.cc (eliminate_unnecessary_stmts): When
943 we changed cfun->calls_setjmp make sure to purge all
944 abnormal call edges.
945
946 2022-09-07 Xianmiao Qu <cooper.qu@linux.alibaba.com>
947
948 * config/csky/csky.cc (csky_emit_compare_float): Fix the expanding of
949 float LE comparing with zero for fpuv3.
950 * config/csky/csky.h (TARGET_SUPPORT_FPV2): New, true if any fpuv2
951 features are enabled.
952
953 2022-09-07 Richard Biener <rguenther@suse.de>
954
955 PR tree-optimization/106860
956 * tree-ssa-loop-split.cc (split_loop): Find the exit to
957 latch edge from the loop exit edge instead of from the
958 latch. Verify we're going to find it.
959
960 2022-09-07 Richard Biener <rguenther@suse.de>
961
962 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
963 Adjust to take the region exit source as argument.
964 (uninit_analysis::init_from_phi_def): Adjust.
965 (uninit_analysis::init_use_preds): Mark the dominating region
966 before computing control dependences.
967
968 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
969
970 * config/aarch64/aarch64.md (*mov<SHORT:mode>_aarch64): Extend
971 w<-w, r<-w and w<-r alternatives to !simd, using 32-bit moves
972 in that case. Extend w<-r to w<-Z.
973 (*mov<HFBF:mode>_aarch64): Likewise, but with Y instead of Z.
974 (*movti_aarch64): Use an FMOV from XZR for w<-Z if MOVI is not
975 available.
976 (define_split): Do not apply the floating-point immediate-to-register
977 split to zeros, even if MOVI is not available.
978
979 2022-09-07 Richard Sandiford <richard.sandiford@arm.com>
980
981 * config/aarch64/aarch64.cc (aarch64_conditional_register_usage):
982 Disallow use of FPRs in register asms for !TARGET_FLOAT.
983
984 2022-09-07 Lulu Cheng <chenglulu@loongson.cn>
985
986 PR target/106828
987 * config/loongarch/loongarch.cc (loongarch_asan_shadow_offset): New.
988 (TARGET_ASAN_SHADOW_OFFSET): New.
989
990 2022-09-07 Jakub Jelinek <jakub@redhat.com>
991
992 * doc/invoke.texi (-Wno-unicode): Document.
993
994 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
995
996 * config/rs6000/rs6000.md (const_scalar_int splitter): Remove.
997
998 2022-09-07 Jiufu Guo <guojiufu@linux.ibm.com>
999
1000 * config/rs6000/rs6000.md: (constant splitters): Use "(pc)" as the
1001 replacements.
1002
1003 2022-09-07 liuhongt <hongtao.liu@intel.com>
1004
1005 PR tree-optimization/103144
1006 * tree-vect-loop.cc (vect_is_nonlinear_iv_evolution): New function.
1007 (vect_analyze_scalar_cycles_1): Detect nonlinear iv by upper function.
1008 (vect_create_nonlinear_iv_init): New function.
1009 (vect_peel_nonlinear_iv_init): Ditto.
1010 (vect_create_nonlinear_iv_step): Ditto
1011 (vect_create_nonlinear_iv_vec_step): Ditto
1012 (vect_update_nonlinear_iv): Ditto
1013 (vectorizable_nonlinear_induction): Ditto.
1014 (vectorizable_induction): Call
1015 vectorizable_nonlinear_induction when induction_type is not
1016 vect_step_op_add.
1017 * tree-vect-loop-manip.cc (vect_update_ivs_after_vectorizer):
1018 Update nonlinear iv for epilogue loop.
1019 * tree-vectorizer.h (enum vect_induction_op_type): New enum.
1020 (STMT_VINFO_LOOP_PHI_EVOLUTION_TYPE): New Macro.
1021
1022 2022-09-06 Richard Biener <rguenther@suse.de>
1023
1024 PR tree-optimization/106754
1025 * gimple-predicate-analysis.cc (compute_control_dep_chain_pdom):
1026 New function, split out from compute_control_dep_chain. Handle
1027 loop-exit like conditions here by pushing to the control vector.
1028 (compute_control_dep_chain): Adjust and streamline dumping.
1029 In the wrapper perform a post-dominator walk as well.
1030 (uninit_analysis::init_use_preds): Remove premature early exit.
1031
1032 2022-09-06 Max Filippov <jcmvbkbc@gmail.com>
1033
1034 * config/xtensa/linux.h (LINK_SPEC): Add static-pie.
1035
1036 2022-09-06 Aldy Hernandez <aldyh@redhat.com>
1037
1038 * range-op-float.cc (build_le): Handle NANs and going past infinity.
1039 (build_lt): Same.
1040 (build_ge): Same.
1041 (build_gt): Same.
1042 (foperator_lt::op1_range): Avoid adjustments to range if build_*
1043 returned false.
1044 (foperator_lt::op2_range): Same.
1045 (foperator_le::op1_range): Same.
1046 (foperator_le::op2_range): Same.
1047 (foperator_gt::op1_range): Same.
1048 (foperator_gt::op2_range): Same.
1049
1050 2022-09-06 Richard Biener <rguenther@suse.de>
1051
1052 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1053 Add output flag to indicate whether we possibly have dropped
1054 any chains. Return whether the info is complete from the
1055 wrapping overload.
1056 (uninit_analysis::init_use_preds): Adjust accordingly, with
1057 a workaround for PR106754.
1058 (uninit_analysis::init_from_phi_def): Properly guard the
1059 case where we complete an empty chain.
1060
1061 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1062
1063 * config/msp430/msp430.cc (msp430_single_op_cost): Document unused argument.
1064
1065 2022-09-06 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1066
1067 * tree-ssa-forwprop.cc (simplify_permutation): Set res_type to a vector
1068 type with same element type as arg0, and length as op2.
1069
1070 2022-09-06 Richard Biener <rguenther@suse.de>
1071
1072 PR tree-optimization/106844
1073 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1074 Return whether we found a chain.
1075
1076 2022-09-06 Richard Biener <rguenther@suse.de>
1077
1078 PR tree-optimization/106841
1079 * tree-vect-slp.cc (vect_detect_hybrid_slp): Also process
1080 scatter/gather offset.
1081
1082 2022-09-06 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1083
1084 * config/bpf/bpf.h (REGNO_REG_CLASS): Reference arguments as (void).
1085
1086 2022-09-06 Jakub Jelinek <jakub@redhat.com>
1087
1088 * gimple.h (enum gf_mask): Add GF_OMP_ORDERED_STANDALONE enumerator.
1089 (gimple_omp_subcode): Use GIMPLE_OMP_ORDERED instead of
1090 GIMPLE_OMP_TEAMS as upper bound.
1091 (gimple_omp_ordered_standalone_p, gimple_omp_ordered_standalone): New
1092 inline functions.
1093 * gimplify.cc (find_standalone_omp_ordered): Look for OMP_ORDERED with
1094 NULL OMP_ORDERED_BODY rather than with OMP_DOACROSS clause.
1095 (gimplify_expr): Call gimple_omp_ordered_standalone for OMP_ORDERED
1096 with NULL OMP_ORDERED_BODY.
1097 * omp-low.cc (check_omp_nesting_restrictions): Use
1098 gimple_omp_ordered_standalone_p test instead of
1099 omp_find_clause (..., OMP_CLAUSE_DOACROSS).
1100 (lower_omp_ordered): Likewise.
1101 * omp-expand.cc (expand_omp, build_omp_regions_1,
1102 omp_make_gimple_edges): Likewise.
1103
1104 2022-09-06 Xianmiao Qu <cooper.qu@linux.alibaba.com>
1105
1106 * config/csky/csky.md (cskyv2_addcc): Fix missing operand.
1107 (cskyv2_addcc_invert): Likewise.
1108
1109 2022-09-06 Jose E. Marchesi <jose.marchesi@oracle.com>
1110
1111 * config/bpf/bpf.cc (bpf_expand_prologue): Remove unused automatic
1112 `insn'.
1113 (bpf_expand_epilogue): Likewise.
1114
1115 2022-09-06 liuhongt <hongtao.liu@intel.com>
1116
1117 * config/i386/i386-builtin.def (IX86_BUILTIN_CVTPS2PH512):
1118 Map to CODE_FOR_avx512f_vcvtps2ph512_mask_sae.
1119 * config/i386/sse.md (<mask_codefor>avx512f_vcvtps2ph512<mask_name>): Extend to ..
1120 (<mask_codefor>avx512f_vcvtps2ph512<mask_name><round_saeonly_name>): .. this.
1121 (avx512f_vcvtps2ph512_mask_sae): New expander
1122
1123 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1124
1125 * gimple-range-fold.cc
1126 (fold_using_range::range_of_builtin_int_call): Ignore sign bit
1127 when there's the possibility of a NAN.
1128
1129 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1130
1131 * gimple-range-fold.cc
1132 (fold_using_range::range_of_builtin_int_call): Fold a set signbit
1133 in __builtin_signbit to nonzero.
1134
1135 2022-09-05 Alexander Monakov <amonakov@ispras.ru>
1136
1137 PR target/106453
1138 * config/i386/i386.md (sse4_2_crc32di): Model that only low 32
1139 bits of operand 0 are consumed, and the result is zero-extended
1140 to 64 bits.
1141
1142 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1143
1144 PR middle-end/106831
1145 * value-range.h (frange::supports_p): Disable decimal floats.
1146 * range-op-float.cc (frange_drop_inf): Remove DECIMAL_FLOAT_MODE_P
1147 check.
1148 (frange_drop_ninf): Same.
1149
1150 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1151
1152 PR middle-end/106824
1153 * value-range.cc (frange::set_nan): Set undefined when updating a
1154 NAN to a non-NAN.
1155
1156 2022-09-05 Kito Cheng <kito.cheng@sifive.com>
1157
1158 * config/riscv/riscv.cc (riscv_option_override): Fix wrong
1159 condition for MASK_DIV and simplify incompatible checking.
1160 * config/riscv/riscv.md (muldi3): Adding parentheses.
1161
1162 2022-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1163
1164 * config/aarch64/aarch64.cc (aarch64_validate_march): Check if invalid arch
1165 string is a valid -mcpu string and emit hint.
1166
1167 2022-09-05 LiaoShihua <shihua@iscas.ac.cn>
1168
1169 * common/config/riscv/riscv-common.cc: Add Zmmul.
1170 * config/riscv/riscv-opts.h (MASK_ZMMUL): New.
1171 (TARGET_ZMMUL): Ditto.
1172 * config/riscv/riscv.cc (riscv_option_override):Ditto.
1173 * config/riscv/riscv.md: Add Zmmul
1174 * config/riscv/riscv.opt: Ditto.
1175
1176 2022-09-05 Richard Biener <rguenther@suse.de>
1177
1178 * tree-cfg.h (get_cases_for_edge): Declare.
1179 * tree-cfg.cc (get_cases_for_edge): Export.
1180 * tree-ssa-uninit.cc (execute_late_warn_uninitialized):
1181 Start and end recording case labels.
1182 * gimple-predicate-analysis.cc (MAX_SWITCH_CASES): Remove.
1183 (predicate::init_from_control_deps): Use get_cases_for_edge.
1184
1185 2022-09-05 Richard Biener <rguenther@suse.de>
1186
1187 * gimple-predicate-analysis.cc (MAX_POSTDOM_CHECK): Remove.
1188 (compute_control_dep_chain): Move uninit-control-dep-attempts
1189 checking where it also counts the post-dominator check
1190 invocations.
1191
1192 2022-09-05 Richard Biener <rguenther@suse.de>
1193
1194 * gimple-predicate-analysis.h (predicate::debug): New.
1195 (predicate::dump): Add FILE * argument, add base overload.
1196 * gimple-predicate-analysis.cc (debug): New.
1197 (dump_pred_info): Add FILE * argument.
1198 (dump_pred_chain): Likewise.
1199 (predicate::dump): Split out preamble into overload. Add
1200 FILE * argument.
1201 (predicate::debug): New.
1202 (predicate::simplify): Adjust.
1203 (predicate::normalize): Likewise.
1204 (predicate::init_from_control_deps): Likewise.
1205
1206 2022-09-05 Richard Sandiford <richard.sandiford@arm.com>
1207
1208 * config/aarch64/aarch64-protos.h
1209 (aarch64_init_simd_builtins): Remove prototype.
1210 * config/aarch64/aarch64-builtins.cc
1211 (aarch64_simd_builtins_initialized_p): Delete.
1212 (aarch64_init_simd_builtins): Make static. Remove protection
1213 against multiple calls.
1214 * config/aarch64/aarch64-c.cc (aarch64_pragma_target_parse): Remove
1215 lazy SIMD builtin initialization.
1216 * config/aarch64/aarch64.cc
1217 (aarch64_option_valid_attribute_p): Likewise.
1218
1219 2022-09-05 Xi Ruoyao <xry111@xry111.site>
1220
1221 * config/loongarch/genopts/loongarch.opt.in: Add
1222 -mdirect-extern-access option.
1223 * config/loongarch/loongarch.opt: Regenerate.
1224 * config/loongarch/loongarch.cc
1225 (loongarch_symbol_binds_local_p): Return true if
1226 TARGET_DIRECT_EXTERN_ACCESS.
1227 (loongarch_option_override_internal): Complain if
1228 -mdirect-extern-access is used with -fPIC or -fpic.
1229 * doc/invoke.texi: Document -mdirect-extern-access for
1230 LoongArch.
1231
1232 2022-09-05 Martin Liska <mliska@suse.cz>
1233
1234 * doc/tm.texi.in: Rename DEBUGGER_REGISTER_NUMBER to
1235 DEBUGGER_REGNO.
1236 * doc/tm.texi: Regenerate.
1237
1238 2022-09-05 Martin Liska <mliska@suse.cz>
1239
1240 * config/aarch64/aarch64-protos.h (aarch64_dbx_regno):
1241 Rename DBX_REGISTER_NUMBER to DEBUGGER_REGNO.
1242 (aarch64_debugger_regno): Likewise.
1243 * config/aarch64/aarch64.cc (aarch64_dbx_regno): Likewise.
1244 (aarch64_debugger_regno): Likewise.
1245 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
1246 (DEBUGGER_REGNO): Likewise.
1247 (DWARF_FRAME_REGNUM): Likewise.
1248 * config/alpha/alpha.h (DWARF_FRAME_REGNUM): Likewise.
1249 * config/arc/arc.cc (arc_init_reg_tables): Likewise.
1250 * config/arc/arc.h (DBX_REGISTER_NUMBER): Likewise.
1251 (DEBUGGER_REGNO): Likewise.
1252 * config/arm/arm-protos.h (arm_dbx_regno): Likewise.
1253 (arm_debugger_regno): Likewise.
1254 * config/arm/arm.cc (arm_dbx_regno): Likewise.
1255 (arm_debugger_regno): Likewise.
1256 * config/arm/arm.h (DBX_REGISTER_NUMBER): Likewise.
1257 (DEBUGGER_REGNO): Likewise.
1258 * config/bfin/bfin.h (DBX_REGISTER_NUMBER): Likewise.
1259 (DEBUGGER_REGNO): Likewise.
1260 * config/c6x/c6x.cc: Likewise.
1261 * config/c6x/c6x.h (DBX_REGISTER_NUMBER): Likewise.
1262 (DEBUGGER_REGNO): Likewise.
1263 * config/cris/cris.h (enum reg_class): Likewise.
1264 (DBX_REGISTER_NUMBER): Likewise.
1265 (DEBUGGER_REGNO): Likewise.
1266 * config/csky/csky.cc (enum reg_class): Likewise.
1267 * config/csky/csky.h (DWARF_FRAME_REGNUM): Likewise.
1268 (DBX_REGISTER_NUMBER): Likewise.
1269 (DEBUGGER_REGNO): Likewise.
1270 * config/frv/frv.h (DBX_REGISTER_NUMBER): Likewise.
1271 (DEBUGGER_REGNO): Likewise.
1272 * config/gcn/gcn-hsa.h (DBX_REGISTER_NUMBER): Likewise.
1273 (DEBUGGER_REGNO): Likewise.
1274 * config/gcn/gcn.cc (print_operand): Likewise.
1275 * config/i386/bsd.h (ASM_QUAD): Likewise.
1276 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise.
1277 (DEBUGGER_REGNO): Likewise.
1278 (DWARF_FRAME_REGNUM): Likewise.
1279 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise.
1280 (DEBUGGER_REGNO): Likewise.
1281 * config/i386/djgpp.h (DBX_REGISTER_NUMBER): Likewise.
1282 (DEBUGGER_REGNO): Likewise.
1283 * config/i386/dragonfly.h (DBX_REGISTER_NUMBER): Likewise.
1284 (DEBUGGER_REGNO): Likewise.
1285 * config/i386/freebsd.h (DBX_REGISTER_NUMBER): Likewise.
1286 (DEBUGGER_REGNO): Likewise.
1287 * config/i386/gas.h: Likewise.
1288 * config/i386/gnu-user.h (DBX_REGISTER_NUMBER): Likewise.
1289 (DEBUGGER_REGNO): Likewise.
1290 * config/i386/i386.cc (enum reg_class): Likewise.
1291 * config/i386/i386.h (DBX_REGISTER_NUMBER): Likewise.
1292 (DEBUGGER_REGNO): Likewise.
1293 * config/i386/i386elf.h (DBX_REGISTER_NUMBER): Likewise.
1294 (DEBUGGER_REGNO): Likewise.
1295 * config/i386/iamcu.h (DBX_REGISTER_NUMBER): Likewise.
1296 (DEBUGGER_REGNO): Likewise.
1297 * config/i386/lynx.h (DBX_REGISTER_NUMBER): Likewise.
1298 (DEBUGGER_REGNO): Likewise.
1299 * config/i386/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
1300 (DEBUGGER_REGNO): Likewise.
1301 * config/i386/nto.h (DBX_REGISTER_NUMBER): Likewise.
1302 (DEBUGGER_REGNO): Likewise.
1303 * config/i386/openbsdelf.h (DBX_REGISTER_NUMBER): Likewise.
1304 (DEBUGGER_REGNO): Likewise.
1305 * config/i386/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1306 (DEBUGGER_REGNO): Likewise.
1307 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
1308 (DEBUGGER_REGNO): Likewise.
1309 * config/i386/x86-64.h (DBX_REGISTER_NUMBER): Likewise.
1310 (DEBUGGER_REGNO): Likewise.
1311 * config/ia64/ia64-protos.h (ia64_dbx_regno): Likewise.
1312 (ia64_debugger_regno): Likewise.
1313 * config/ia64/ia64.cc (ia64_output_function_prologue): Likewise.
1314 (ia64_dbx_regno): Likewise.
1315 (ia64_debugger_regno): Likewise.
1316 (process_cfa_adjust_cfa): Likewise.
1317 (process_cfa_register): Likewise.
1318 (ia64_asm_unwind_emit): Likewise.
1319 * config/ia64/ia64.h: Likewise.
1320 * config/ia64/sysv4.h (DBX_REGISTER_NUMBER): Likewise.
1321 (DEBUGGER_REGNO): Likewise.
1322 * config/lm32/lm32.h (DBX_REGISTER_NUMBER): Likewise.
1323 (DEBUGGER_REGNO): Likewise.
1324 * config/m32c/m32c.cc (m32c_eh_return_stackadj_rtx): Likewise.
1325 * config/m32c/m32c.h (DBX_REGISTER_NUMBER): Likewise.
1326 (DEBUGGER_REGNO): Likewise.
1327 * config/m68k/linux.h (DBX_REGISTER_NUMBER): Likewise.
1328 (DEBUGGER_REGNO): Likewise.
1329 * config/m68k/m68k.h (DBX_REGISTER_NUMBER): Likewise.
1330 (DEBUGGER_REGNO): Likewise.
1331 (__transfer_from_trampoline): Likewise.
1332 * config/m68k/m68kelf.h (DBX_REGISTER_NUMBER): Likewise.
1333 (DEBUGGER_REGNO): Likewise.
1334 * config/m68k/netbsd-elf.h (M68K_STATIC_CHAIN_REG_NAME): Likewise.
1335 (DBX_REGISTER_NUMBER): Likewise.
1336 (DEBUGGER_REGNO): Likewise.
1337 * config/microblaze/microblaze.cc (microblaze_option_override): Likewise.
1338 * config/microblaze/microblaze.h (DBX_REGISTER_NUMBER): Likewise.
1339 (DEBUGGER_REGNO): Likewise.
1340 (GP_DBX_FIRST): Likewise.
1341 (GP_DEBUGGER_FIRST): Likewise.
1342 * config/mips/vxworks.h (DBX_REGISTER_NUMBER): Likewise.
1343 (DEBUGGER_REGNO): Likewise.
1344 * config/mmix/mmix-protos.h (mmix_dbx_regno): Likewise.
1345 (mmix_debugger_regno): Likewise.
1346 * config/mmix/mmix.cc (mmix_dbx_regno): Likewise.
1347 (mmix_debugger_regno): Likewise.
1348 * config/mmix/mmix.h (DBX_REGISTER_NUMBER): Likewise.
1349 (DEBUGGER_REGNO): Likewise.
1350 * config/nds32/nds32-protos.h (nds32_dbx_regno): Likewise.
1351 (nds32_debugger_regno): Likewise.
1352 * config/nds32/nds32.cc (nds32_dbx_regno): Likewise.
1353 (nds32_debugger_regno): Likewise.
1354 (nds32_use_blocks_for_constant_p): Likewise.
1355 * config/nds32/nds32.h (DBX_REGISTER_NUMBER): Likewise.
1356 (DEBUGGER_REGNO): Likewise.
1357 * config/nvptx/nvptx.h (DBX_REGISTER_NUMBER): Likewise.
1358 (DEBUGGER_REGNO): Likewise.
1359 * config/or1k/or1k.h (DBX_REGISTER_NUMBER): Likewise.
1360 (DEBUGGER_REGNO): Likewise.
1361 * config/pa/pa32-regs.h (DBX_REGISTER_NUMBER): Likewise.
1362 (DEBUGGER_REGNO): Likewise.
1363 * config/pa/pa64-regs.h (DBX_REGISTER_NUMBER): Likewise.
1364 (DEBUGGER_REGNO): Likewise.
1365 * config/rs6000/rs6000-protos.h (rs6000_dbx_regno): Likewise.
1366 (rs6000_debugger_regno): Likewise.
1367 * config/rs6000/rs6000.cc (rs6000_dbx_regno): Likewise.
1368 (rs6000_debugger_regno): Likewise.
1369 * config/rs6000/rs6000.h (DBX_REGISTER_NUMBER): Likewise.
1370 (DEBUGGER_REGNO): Likewise.
1371 (DWARF2_FRAME_REG_OUT): Likewise.
1372 * config/s390/s390.h (DBX_REGISTER_NUMBER): Likewise.
1373 (DEBUGGER_REGNO): Likewise.
1374 * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise.
1375 (DEBUGGER_REGNO): Likewise.
1376 * config/sh/linux.h (DBX_REGISTER_NUMBER): Likewise.
1377 (DEBUGGER_REGNO): Likewise.
1378 * config/sh/sh.h (DBX_REGISTER_NUMBER): Likewise.
1379 (DEBUGGER_REGNO): Likewise.
1380 (SH_DBX_REGISTER_NUMBER): Likewise.
1381 (SH_DEBUGGER_REGNO): Likewise.
1382 * config/visium/visium.h (DBX_REGISTER_NUMBER): Likewise.
1383 (DEBUGGER_REGNO): Likewise.
1384 * config/xtensa/elf.h (DBX_REGISTER_NUMBER): Likewise.
1385 (DEBUGGER_REGNO): Likewise.
1386 * config/xtensa/linux.h (DBX_REGISTER_NUMBER): Likewise.
1387 (DEBUGGER_REGNO): Likewise.
1388 * config/xtensa/uclinux.h (DBX_REGISTER_NUMBER): Likewise.
1389 (DEBUGGER_REGNO): Likewise.
1390 * config/xtensa/xtensa-protos.h (xtensa_dbx_regno): Likewise.
1391 (xtensa_debugger_regno): Likewise.
1392 * config/xtensa/xtensa.cc (xtensa_dbx_regno): Likewise.
1393 (xtensa_debugger_regno): Likewise.
1394 * config/xtensa/xtensa.h (DBX_REGISTER_NUMBER): Likewise.
1395 (DEBUGGER_REGNO): Likewise.
1396 * defaults.h (DBX_REGISTER_NUMBER): Likewise.
1397 (DEBUGGER_REGNO): Likewise.
1398 (DWARF_FRAME_REGNUM): Likewise.
1399 * doc/tm.texi: Likewise.
1400 * doc/tm.texi.in: Likewise.
1401 * dwarf2out.cc (dbx_reg_number): Likewise.
1402 (debugger_reg_number): Likewise.
1403 (reg_loc_descriptor): Likewise.
1404 (multiple_reg_loc_descriptor): Likewise.
1405 (mem_loc_descriptor): Likewise.
1406 * except.cc: Likewise.
1407
1408 2022-09-05 konglin1 <lingling.kong@intel.com>
1409
1410 PR target/106742
1411 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
1412 Handle V8BF mode.
1413 (expand_vec_perm_broadcast_1): Ditto.
1414 * config/i386/sse.md (avx512fmaskhalfmode): Add BF vector mode.
1415 (vec_set<mode>_0): Add @ to it.
1416 (@vec_set<mode>_0): Ditto.
1417 (vec_interleave_high<mode><mask_name>): Ditto.
1418 (@vec_interleave_high<mode><mask_name>): Ditto.
1419 (vec_interleave_low<mode><mask_name>): Ditto.
1420 (@vec_interleave_low<mode><mask_name>): Ditto.
1421 * config/i386/subst.md (SUBST_V): Add BF vector mode.
1422
1423 2022-09-05 Aldy Hernandez <aldyh@redhat.com>
1424
1425 * value-range.cc (early_nan_resolve): Remove.
1426 (frange::intersect): Handle NANs.
1427
1428 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
1429
1430 * value-range.cc (frange::union_): Do not drop properties when
1431 unioning a NAN with something else.
1432 (range_tests_signed_zeros): Add tests.
1433
1434 2022-09-04 Aldy Hernandez <aldyh@redhat.com>
1435
1436 * real.cc (encode_ieee_single): Use real_isdenormal.
1437 (encode_ieee_double): Same.
1438 (encode_ieee_extended): Same.
1439 (encode_ieee_quad): Same.
1440 (encode_ieee_half): Same.
1441 (encode_arm_bfloat_half): Same.
1442 * real.h (real_isdenormal): New.
1443
1444 2022-09-03 Aldy Hernandez <aldyh@redhat.com>
1445
1446 * value-range.cc (frange::singleton_p): Move NAN check to the top.
1447
1448 2022-09-03 Jan-Benedict Glaw <jbglaw@lug-owl.de>
1449
1450 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): Reference macro arguments.
1451
1452 2022-09-03 Jakub Jelinek <jakub@redhat.com>
1453
1454 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DOACROSS.
1455 (enum omp_clause_depend_kind): Remove OMP_CLAUSE_DEPEND_SOURCE
1456 and OMP_CLAUSE_DEPEND_SINK, add OMP_CLAUSE_DEPEND_INVALID.
1457 (enum omp_clause_doacross_kind): New type.
1458 (struct tree_omp_clause): Add subcode.doacross_kind member.
1459 * tree.h (OMP_CLAUSE_DEPEND_SINK_NEGATIVE): Remove.
1460 (OMP_CLAUSE_DOACROSS_KIND): Define.
1461 (OMP_CLAUSE_DOACROSS_SINK_NEGATIVE): Define.
1462 (OMP_CLAUSE_DOACROSS_DEPEND): Define.
1463 (OMP_CLAUSE_ORDERED_DOACROSS): Define.
1464 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Add
1465 OMP_CLAUSE_DOACROSS entries.
1466 * tree-nested.cc (convert_nonlocal_omp_clauses,
1467 convert_local_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
1468 * tree-pretty-print.cc (dump_omp_clause): Don't handle
1469 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK. Handle
1470 OMP_CLAUSE_DOACROSS.
1471 * gimplify.cc (gimplify_omp_depend): Don't handle
1472 OMP_CLAUSE_DEPEND_SOURCE and OMP_CLAUSE_DEPEND_SINK.
1473 (gimplify_scan_omp_clauses): Likewise. Handle OMP_CLAUSE_DOACROSS.
1474 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_DOACROSS.
1475 (find_standalone_omp_ordered): New function.
1476 (gimplify_omp_for): When OMP_CLAUSE_ORDERED is present, search
1477 body for OMP_ORDERED with OMP_CLAUSE_DOACROSS and if found,
1478 set OMP_CLAUSE_ORDERED_DOACROSS.
1479 (gimplify_omp_ordered): Don't handle OMP_CLAUSE_DEPEND_SINK or
1480 OMP_CLAUSE_DEPEND_SOURCE, instead check OMP_CLAUSE_DOACROSS, adjust
1481 diagnostics that presence or absence of ordered clause parameter
1482 is irrelevant. Handle doacross(sink:omp_cur_iteration-1). Use
1483 actual user name of the clause - doacross or depend - in diagnostics.
1484 * omp-general.cc (omp_extract_for_data): Don't set fd->ordered
1485 if !OMP_CLAUSE_ORDERED_DOACROSS (t). If
1486 OMP_CLAUSE_ORDERED_DOACROSS (t) but !OMP_CLAUSE_ORDERED_EXPR (t),
1487 set fd->ordered to -1 and set it after the loop in that case to
1488 fd->collapse.
1489 * omp-low.cc (check_omp_nesting_restrictions): Don't handle
1490 OMP_CLAUSE_DEPEND_SOURCE nor OMP_CLAUSE_DEPEND_SINK, instead check
1491 OMP_CLAUSE_DOACROSS. Use actual user name of the clause - doacross
1492 or depend - in diagnostics. Diagnose mixing of stand-alone and
1493 block associated ordered constructs binding to the same loop.
1494 (lower_omp_ordered_clauses): Don't handle OMP_CLAUSE_DEPEND_SINK,
1495 instead handle OMP_CLAUSE_DOACROSS.
1496 (lower_omp_ordered): Look for OMP_CLAUSE_DOACROSS instead of
1497 OMP_CLAUSE_DEPEND.
1498 (lower_depend_clauses): Don't handle OMP_CLAUSE_DEPEND_SOURCE and
1499 OMP_CLAUSE_DEPEND_SINK.
1500 * omp-expand.cc (expand_omp_ordered_sink): Emit a sorry for
1501 doacross(sink:omp_cur_iteration-1).
1502 (expand_omp_ordered_source_sink): Use
1503 OMP_CLAUSE_DOACROSS_SINK_NEGATIVE instead of
1504 OMP_CLAUSE_DEPEND_SINK_NEGATIVE. Use actual user name of the clause
1505 - doacross or depend - in diagnostics.
1506 (expand_omp): Look for OMP_CLAUSE_DOACROSS clause instead of
1507 OMP_CLAUSE_DEPEND.
1508 (build_omp_regions_1): Likewise.
1509 (omp_make_gimple_edges): Likewise.
1510 * lto-streamer-out.cc (hash_tree): Handle OMP_CLAUSE_DOACROSS.
1511 * tree-streamer-in.cc (unpack_ts_omp_clause_value_fields): Likewise.
1512 * tree-streamer-out.cc (pack_ts_omp_clause_value_fields): Likewise.
1513
1514 2022-09-02 David Malcolm <dmalcolm@redhat.com>
1515
1516 PR c/90885
1517 * doc/invoke.texi (Warning Options): Add -Wxor-used-as-pow.
1518
1519 2022-09-02 Iain Buclaw <ibuclaw@gdcproject.org>
1520
1521 PR d/105659
1522 * config.gcc: Set tm_d_file to ${cpu_type}/${cpu_type}-d.h.
1523 * config/aarch64/aarch64-d.cc: Include tm_d.h.
1524 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): Move to
1525 config/aarch64/aarch64-d.h.
1526 (aarch64_d_register_target_info): Likewise.
1527 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Likewise.
1528 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1529 * config/arm/arm-d.cc: Include tm_d.h and arm-protos.h instead of
1530 tm_p.h.
1531 * config/arm/arm-protos.h (arm_d_target_versions): Move to
1532 config/arm/arm-d.h.
1533 (arm_d_register_target_info): Likewise.
1534 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Likewise.
1535 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1536 * config/default-d.cc: Remove memmodel.h include.
1537 * config/freebsd-d.cc: Include tm_d.h instead of tm_p.h.
1538 * config/glibc-d.cc: Likewise.
1539 * config/i386/i386-d.cc: Include tm_d.h.
1540 * config/i386/i386-protos.h (ix86_d_target_versions): Move to
1541 config/i386/i386-d.h.
1542 (ix86_d_register_target_info): Likewise.
1543 (ix86_d_has_stdcall_convention): Likewise.
1544 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Likewise.
1545 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1546 (TARGET_D_HAS_STDCALL_CONVENTION): Likewise.
1547 * config/i386/winnt-d.cc: Include tm_d.h instead of tm_p.h.
1548 * config/mips/mips-d.cc: Include tm_d.h.
1549 * config/mips/mips-protos.h (mips_d_target_versions): Move to
1550 config/mips/mips-d.h.
1551 (mips_d_register_target_info): Likewise.
1552 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Likewise.
1553 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1554 * config/netbsd-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
1555 * config/openbsd-d.cc: Likewise.
1556 * config/pa/pa-d.cc: Include tm_d.h.
1557 * config/pa/pa-protos.h (pa_d_target_versions): Move to
1558 config/pa/pa-d.h.
1559 (pa_d_register_target_info): Likewise.
1560 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Likewise.
1561 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1562 * config/riscv/riscv-d.cc: Include tm_d.h.
1563 * config/riscv/riscv-protos.h (riscv_d_target_versions): Move to
1564 config/riscv/riscv-d.h.
1565 (riscv_d_register_target_info): Likewise.
1566 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Likewise.
1567 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1568 * config/rs6000/rs6000-d.cc: Include tm_d.h.
1569 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): Move to
1570 config/rs6000/rs6000-d.h.
1571 (rs6000_d_register_target_info): Likewise.
1572 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS) Likewise.:
1573 (TARGET_D_REGISTER_CPU_TARGET_INFO) Likewise.:
1574 * config/s390/s390-d.cc: Include tm_d.h.
1575 * config/s390/s390-protos.h (s390_d_target_versions): Move to
1576 config/s390/s390-d.h.
1577 (s390_d_register_target_info): Likewise.
1578 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Likewise.
1579 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1580 * config/sol2-d.cc: Include tm_d.h instead of tm.h and memmodel.h.
1581 * config/sparc/sparc-d.cc: Include tm_d.h.
1582 * config/sparc/sparc-protos.h (sparc_d_target_versions): Move to
1583 config/sparc/sparc-d.h.
1584 (sparc_d_register_target_info): Likewise.
1585 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Likewise.
1586 (TARGET_D_REGISTER_CPU_TARGET_INFO): Likewise.
1587 * configure: Regenerate.
1588 * configure.ac (tm_d_file): Remove defaults.h.
1589 (tm_d_include_list): Remove options.h and insn-constants.h.
1590 * config/aarch64/aarch64-d.h: New file.
1591 * config/arm/arm-d.h: New file.
1592 * config/i386/i386-d.h: New file.
1593 * config/mips/mips-d.h: New file.
1594 * config/pa/pa-d.h: New file.
1595 * config/riscv/riscv-d.h: New file.
1596 * config/rs6000/rs6000-d.h: New file.
1597 * config/s390/s390-d.h: New file.
1598 * config/sparc/sparc-d.h: New file.
1599
1600 2022-09-02 Aldy Hernandez <aldyh@redhat.com>
1601
1602 * builtins.cc (fold_builtin_inf): Convert use of real_info to dconstinf.
1603 (fold_builtin_fpclassify): Same.
1604 * fold-const-call.cc (fold_const_call_cc): Same.
1605 * match.pd: Same.
1606 * omp-low.cc (omp_reduction_init_op): Same.
1607 * realmpfr.cc (real_from_mpfr): Same.
1608 * tree.cc (build_complex_inf): Same.
1609
1610 2022-09-02 Peter Bergner <bergner@linux.ibm.com>
1611
1612 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin): Use
1613 NOP_EXPR for MMA pointer casting.
1614
1615 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
1616
1617 * tree-vect-slp.cc (vect_optimize_slp_pass::internal_node_cost):
1618 Reduce the fallback cost to 1. Only use it if the number of
1619 input lanes is equal to the number of output lanes.
1620
1621 2022-09-02 Richard Sandiford <richard.sandiford@arm.com>
1622
1623 PR tree-optimization/106787
1624 * tree-vect-slp.cc (vect_map_to_instance): New function, split out
1625 from...
1626 (vect_bb_partition_graph_r): ...here. Replace the visited set
1627 with a map from nodes to instances. Ensure that a node only
1628 appears in one partition.
1629 (vect_bb_partition_graph): Update accordingly.
1630
1631 2022-09-02 Richard Biener <rguenther@suse.de>
1632
1633 * timevar.def (TV_TREE_RPO_VN): New.
1634 * tree-ssa-sccvn.h (do_rpo_vn): Remove one overload.
1635 * tree-ssa-sccvn.cc (do_rpo_vn_1): Rename the worker.
1636 (do_rpo_vn): Unify the public API, track with TV_TREE_RPO_VN.
1637 (pass_fre::execute): Adjust.
1638 * tree-ssa-uninit.cc (execute_early_warn_uninitialized): Adjust.
1639
1640 2022-09-02 Richard Biener <rguenther@suse.de>
1641
1642 PR tree-optimization/106809
1643 * tree-ssa-sccvn.cc (dominaged_by_p_w_unex): Check we have
1644 more than one successor before doing extra work.
1645
1646 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
1647
1648 * common/config/riscv/riscv-common.cc: Include <vector>.
1649 (struct riscv_multi_lib_info_t): New.
1650 (riscv_subset_list::match_score): Ditto.
1651 (find_last_appear_switch): Ditto.
1652 (prefixed_with): Ditto.
1653 (struct multi_lib_info_t): Ditto.
1654 (riscv_current_arch_str): Ditto.
1655 (riscv_current_abi_str): Ditto.
1656 (riscv_multi_lib_info_t::parse): Ditto.
1657 (riscv_check_cond): Ditto.
1658 (riscv_check_conds): Ditto.
1659 (riscv_compute_multilib): Ditto.
1660 (TARGET_COMPUTE_MULTILIB): Defined.
1661 * config/riscv/elf.h (LIB_SPEC): Call riscv_multi_lib_check if
1662 doing link.
1663 (RISCV_USE_CUSTOMISED_MULTI_LIB): New.
1664 * config/riscv/riscv.h (riscv_multi_lib_check): New.
1665 (EXTRA_SPEC_FUNCTIONS): Add riscv_multi_lib_check.
1666 * config/riscv/riscv-subset.h (riscv_subset_list::match_score): New.
1667
1668 2022-09-02 Kito Cheng <kito.cheng@sifive.com>
1669
1670 * common/common-target.def (compute_multilib): New.
1671 * common/common-targhooks.h (default_compute_multilib): New.
1672 * common/common-targhooks.cc (default_compute_multilib): New.
1673 * doc/tm.texi.in (TARGET_COMPUTE_MULTILIB): New.
1674 * doc/tm.texi: Regen.
1675 * gcc.cc: Include common/common-target.h.
1676 (set_multilib_dir) Call targetm_common.compute_multilib.
1677 (SWITCH_LIVE): Move to opts.h.
1678 (SWITCH_FALSE): Ditto.
1679 (SWITCH_IGNORE): Ditto.
1680 (SWITCH_IGNORE_PERMANENTLY): Ditto.
1681 (SWITCH_KEEP_FOR_GCC): Ditto.
1682 (struct switchstr): Ditto.
1683 * opts.h (SWITCH_LIVE): Move from gcc.c.
1684 (SWITCH_FALSE): Ditto.
1685 (SWITCH_IGNORE): Ditto.
1686 (SWITCH_IGNORE_PERMANENTLY): Ditto.
1687 (SWITCH_KEEP_FOR_GCC): Ditto.
1688 (struct switchstr): Ditto.
1689
1690 2022-09-02 Martin Liska <mliska@suse.cz>
1691
1692 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Disable
1693 debugging format.
1694
1695 2022-09-02 Martin Liska <mliska@suse.cz>
1696
1697 * Makefile.in: Remove -gstabs option support, DBX-related
1698 macros and DBX debugging info support.
1699 * collect2.cc (scan_prog_file): Likewise.
1700 * common.opt: Likewise.
1701 * config.gcc: Likewise.
1702 * config.in: Likewise.
1703 * config/aarch64/aarch64-elf.h (DBX_DEBUGGING_INFO): Likewise.
1704 * config/alpha/alpha.cc: Likewise.
1705 * config/alpha/elf.h (ASM_SPEC): Likewise.
1706 * config/arc/arc.h (DBX_DEBUGGING_INFO): Likewise.
1707 (DBX_CONTIN_LENGTH): Likewise.
1708 * config/arm/aout.h (DBX_DEBUGGING_INFO): Likewise.
1709 (DBX_CONTIN_LENGTH): Likewise.
1710 * config/arm/netbsd-elf.h (DBX_CONTIN_LENGTH): Likewise.
1711 * config/darwin.h (DSYMUTIL_SPEC): Likewise.
1712 (ASM_DEBUG_SPEC): Likewise.
1713 (DBX_DEBUGGING_INFO): Likewise.
1714 (DBX_USE_BINCL): Likewise.
1715 (DBX_CONTIN_LENGTH): Likewise.
1716 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
1717 * config/epiphany/epiphany.h (DBX_DEBUGGING_INFO): Likewise.
1718 (DBX_CONTIN_LENGTH): Likewise.
1719 * config/i386/bsd.h (DBX_NO_XREFS): Likewise.
1720 (DBX_CONTIN_LENGTH): Likewise.
1721 * config/i386/gas.h (DBX_NO_XREFS): Likewise.
1722 (DBX_CONTIN_LENGTH): Likewise.
1723 * config/ia64/ia64.h: Likewise.
1724 * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
1725 * config/m68k/linux.h (DBX_CONTIN_LENGTH): Likewise.
1726 * config/m68k/openbsd.h (DBX_DEBUGGING_INFO): Likewise.
1727 (DBX_CONTIN_LENGTH): Likewise.
1728 (DBX_CONTIN_CHAR): Likewise.
1729 * config/mips/mips.cc (mips_output_filename): Likewise.
1730 (mips_option_override): Likewise.
1731 * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Likewise.
1732 (DBX_DEBUGGING_INFO): Likewise.
1733 (DBX_CONTIN_LENGTH): Likewise.
1734 (DBX_REGISTER_NUMBER): Likewise.
1735 (GP_DBX_FIRST): Likewise.
1736 (FP_DBX_FIRST): Likewise.
1737 (MD_DBX_FIRST): Likewise.
1738 * config/nvptx/nvptx.cc: Likewise.
1739 * config/openbsd.h (DBX_NO_XREFS): Likewise.
1740 * config/pa/pa-64.h (DBX_DEBUGGING_INFO): Likewise.
1741 * config/pa/pa.h (ASSEMBLER_DIALECT): Likewise.
1742 (DBX_CONTIN_LENGTH): Likewise.
1743 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Likewise.
1744 (DBX_USE_BINCL): Likewise.
1745 (DBX_LINES_FUNCTION_RELATIVE): Likewise.
1746 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
1747 * config/pdp11/pdp11.cc: Likewise.
1748 * config/pdp11/pdp11.h (DBX_DEBUGGING_INFO): Likewise.
1749 (PREFERRED_DEBUGGING_TYPE): Likewise.
1750 (DBX_CONTIN_LENGTH): Likewise.
1751 * config/rs6000/rs6000-builtin.cc: Likewise.
1752 * config/rs6000/rs6000-call.cc: Likewise.
1753 * config/rs6000/rs6000-logue.cc (defined): Likewise.
1754 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
1755 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
1756 (rs6000_xcoff_declare_function_name): Likewise.
1757 * config/rs6000/sysv4.h (DBX_DEBUGGING_INFO): Likewise.
1758 (DBX_FUNCTION_FIRST): Likewise.
1759 * config/rs6000/xcoff.h (XCOFF_DEBUGGING_INFO): Likewise.
1760 * config/rx/rx.h (DBX_DEBUGGING_INFO): Likewise.
1761 * config/sh/elf.h (DBX_LINES_FUNCTION_RELATIVE): Likewise.
1762 (DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END): Likewise.
1763 * config/sol2.h (NO_DBX_BNSYM_ENSYM): Likewise.
1764 * config/sparc/freebsd.h (DBX_CONTIN_CHAR): Likewise.
1765 * config/sparc/netbsd-elf.h (DBX_CONTIN_CHAR): Likewise.
1766 * config/sparc/sparc.h (DBX_CONTIN_LENGTH): Likewise.
1767 * config/vax/vax.cc (vax_file_start): Likewise.
1768 * config/vax/vax.h (DBX_DEBUGGING_INFO): Likewise.
1769 (DBX_CONTIN_LENGTH): Likewise.
1770 (DBX_CONTIN_CHAR): Likewise.
1771 (DBX_NO_XREFS): Likewise.
1772 (DBX_STATIC_STAB_DATA_SECTION): Likewise.
1773 * config/vx-common.h (DBX_DEBUGGING_INFO): Likewise.
1774 (XCOFF_DEBUGGING_INFO): Likewise.
1775 * configure: Regenerate. Likewise.
1776 * configure.ac: Likewise.
1777 * debug.h: Likewise.
1778 * doc/install.texi: Likewise.
1779 * doc/invoke.texi: Likewise.
1780 * doc/passes.texi: Likewise.
1781 * doc/tm.texi: Likewise.
1782 * doc/tm.texi.in: Likewise.
1783 * dwarf2asm.cc (XCOFF_DEBUGGING_INFO): Likewise.
1784 (dw2_asm_output_nstring): Likewise.
1785 (USE_LINKONCE_INDIRECT): Likewise.
1786 * dwarf2out.cc (XCOFF_DEBUGGING_INFO): Likewise.
1787 (HAVE_XCOFF_DWARF_EXTRAS): Likewise.
1788 (output_fde): Likewise.
1789 (output_call_frame_info): Likewise.
1790 (have_macinfo): Likewise.
1791 (add_AT_loc_list): Likewise.
1792 (add_AT_view_list): Likewise.
1793 (output_compilation_unit_header): Likewise.
1794 (output_pubnames): Likewise.
1795 (output_aranges): Likewise.
1796 (output_line_info): Likewise.
1797 (output_macinfo): Likewise.
1798 (dwarf2out_finish): Likewise.
1799 (dwarf2out_early_finish): Likewise.
1800 * final.cc (final_scan_insn_1): Likewise.
1801 (rest_of_handle_final): Likewise.
1802 * flag-types.h (enum debug_info_type): Likewise.
1803 (DBX_DEBUG): Likewise.
1804 (XCOFF_DEBUG): Likewise.
1805 * function.cc (defined): Likewise.
1806 * gcc.cc (defined): Likewise.
1807 (ASM_DEBUG_SPEC): Likewise.
1808 (ASM_DEBUG_OPTION_SPEC): Likewise.
1809 * opts.cc (common_handle_option): Likewise.
1810 (set_debug_level): Likewise.
1811 * system.h (fancy_abort): Likewise.
1812 * target-def.h (TARGET_ASM_CONSTRUCTOR): Likewise.
1813 (TARGET_ASM_DESTRUCTOR): Likewise.
1814 * toplev.cc (defined): Likewise.
1815 * varasm.cc: Likewise.
1816 * config/dbxcoff.h: Removed.
1817 * config/dbxelf.h: Removed.
1818 * dbxout.cc: Removed.
1819 * dbxout.h: Removed.
1820 * gstab.h: Removed.
1821 * stab.def: Removed.
1822 * xcoffout.cc: Removed.
1823 * xcoffout.h: Removed.
1824
1825 2022-09-02 Simon Rainer <gcc.gnu@vvalter.com>
1826
1827 PR ipa/106627
1828 * config/i386/i386-features.cc (ix86_get_function_versions_dispatcher):
1829 Set TREE_NOTHROW correctly for dispatcher declaration.
1830 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
1831 Likewise.
1832
1833 2022-09-01 Tamar Christina <tamar.christina@arm.com>
1834
1835 PR other/106782
1836 * config/aarch64/aarch64.cc
1837 (aarch64_vector_costs::prefer_unrolled_loop): Replace %u with
1838 HOST_WIDE_INT_PRINT_UNSIGNED.
1839
1840 2022-09-01 Richard Sandiford <richard.sandiford@arm.com>
1841
1842 * tree-vect-slp.cc (vect_build_slp_tree_2): When building a
1843 VEC_PERM_EXPR of an existing vector, set the SLP_TREE_LANES
1844 to the number of vector elements, if that's a known constant.
1845 (vect_optimize_slp_pass::is_compatible_layout): Remove associated
1846 comment about zero SLP_TREE_LANES.
1847 (vect_optimize_slp_pass::start_choosing_layouts): Iterate over
1848 all partition members when looking for potential layouts.
1849 Handle existing permutes of fixed-length vectors.
1850
1851 2022-09-01 Uroš Bizjak <ubizjak@gmail.com>
1852
1853 PR target/106707
1854 * config/i386/i386.md (moves to/from AX_REG into xchg peephole2):
1855 Do not convert a move pattern where both operands are AX_REG.
1856
1857 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
1858
1859 * range-op-float.cc (build_le): Convert to dconst*inf.
1860 (build_ge): Same.
1861 * value-range.cc (frange::set_signbit): Same.
1862 (frange::normalize_kind): Same.
1863 (range_tests_floats): Same.
1864 * value-range.h (vrp_val_max): Same.
1865 (vrp_val_min): Same.
1866 (frange::set_varying): Same.
1867
1868 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
1869
1870 * emit-rtl.cc (init_emit_once): Initialize dconstinf and
1871 dconstninf.
1872 * real.h: Add dconstinf and dconstninf.
1873
1874 2022-09-01 Richard Biener <rguenther@suse.de>
1875
1876 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1877 Remove cycle detection, instead avoid walking backedges.
1878
1879 2022-09-01 Richard Biener <rguenther@suse.de>
1880
1881 * gimple-predicate-analysis.cc (compute_control_dep_chain):
1882 New wrapping overload.
1883 (uninit_analysis::init_use_preds): Simplify.
1884 (uninit_analysis::init_from_phi_def): Likewise.
1885
1886 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
1887
1888 * gimple-range-fold.cc
1889 (fold_using_range::range_of_builtin_int_call): Add case for
1890 CFN_BUILT_IN_SIGNBIT.
1891
1892 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
1893
1894 * range-op-float.cc (foperator_equal::op1_range): Do not copy sign
1895 bit.
1896 (foperator_not_equal::op1_range): Same.
1897 * value-query.cc (range_query::get_tree_range): Set sign bit.
1898 * value-range-pretty-print.cc (vrange_printer::visit): Dump sign bit.
1899 * value-range.cc (frange::set_signbit): New.
1900 (frange::set): Adjust for sign bit.
1901 (frange::normalize_kind): Same.
1902 (frange::union_): Remove useless comment.
1903 (frange::intersect): Same.
1904 (frange::contains_p): Adjust for sign bit.
1905 (frange::singleton_p): Same.
1906 (frange::verify_range): Same.
1907 (range_tests_signbit): New tests.
1908 (range_tests_floats): Call range_tests_signbit.
1909 * value-range.h (class frange_props): Add signbit
1910 (class frange): Same.
1911
1912 2022-09-01 Jakub Jelinek <jakub@redhat.com>
1913
1914 PR other/106782
1915 * dumpfile.h (dump_printf_loc): Use ATTRIBUTE_GCC_DUMP_PRINTF (3, 4)
1916 instead of ATTRIBUTE_GCC_DUMP_PRINTF (3, 0).
1917 * tree-parloops.cc (parloops_is_slp_reduction): Cast pointers to
1918 derived types of gimple to gimple * to avoid -Wformat warnings.
1919 * tree-vect-loop-manip.cc (vect_set_loop_condition,
1920 vect_update_ivs_after_vectorizer): Likewise.
1921 * tree-vect-stmts.cc (vectorizable_load): Likewise.
1922 * tree-vect-patterns.cc (vect_split_statement,
1923 vect_recog_mulhs_pattern, vect_recog_average_pattern,
1924 vect_determine_precisions_from_range,
1925 vect_determine_precisions_from_users): Likewise.
1926 * gimple-loop-versioning.cc
1927 (loop_versioning::analyze_term_using_scevs): Likewise.
1928 * tree-vect-slp.cc (vect_build_slp_tree_1): Likewise.
1929 (vect_build_slp_tree): Cast slp_tree to void * to avoid
1930 -Wformat warnings.
1931 (optimize_load_redistribution_1, vect_match_slp_patterns,
1932 vect_build_slp_instance, vect_optimize_slp_pass::materialize,
1933 vect_optimize_slp_pass::dump, vect_slp_convert_to_external,
1934 vect_slp_analyze_node_operations, vect_bb_partition_graph): Likewise.
1935 (vect_print_slp_tree): Likewise. Also use
1936 HOST_WIDE_INT_PRINT_UNSIGNED instead of %u.
1937 * tree-vect-loop.cc (vect_determine_vectorization_factor,
1938 vect_analyze_scalar_cycles_1, vect_analyze_loop_operations,
1939 vectorizable_induction, vect_transform_loop): Cast pointers to derived
1940 types of gimple to gimple * to avoid -Wformat warnings.
1941 (vect_analyze_loop_2): Cast slp_tree to void * to avoid
1942 -Wformat warnings.
1943 (vect_estimate_min_profitable_iters): Use HOST_WIDE_INT_PRINT_UNSIGNED
1944 instead of %d.
1945 * tree-vect-slp-patterns.cc (vect_pattern_validate_optab): Use %G
1946 instead of %T and STMT_VINFO_STMT (SLP_TREE_REPRESENTATIVE (node))
1947 instead of SLP_TREE_DEF_TYPE (node).
1948
1949 2022-09-01 Jakub Jelinek <jakub@redhat.com>
1950
1951 PR c++/106655
1952 * doc/invoke.texi (-Winvalid-utf8): Document it.
1953
1954 2022-09-01 Aldy Hernandez <aldyh@redhat.com>
1955
1956 PR tree-optimization/106785
1957 * value-range.cc (range_tests_nan): Adjust tests for !HONOR_NANS.
1958 (range_tests_floats): Same.
1959
1960 2022-09-01 konglin1 <lingling.kong@intel.com>
1961
1962 * tree-if-conv.cc (is_cond_scalar_reduction): Add MULT_EXPR
1963 recognition.
1964
1965 2022-09-01 Peter Bergner <bergner@linux.ibm.com>
1966
1967 PR target/101322
1968 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_mma_builtin):
1969 Enforce the use of a valid MMA pointer type.
1970
1971 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
1972
1973 * config/riscv/riscv.cc (riscv_conditional_register_usage): Add vector
1974 registers.
1975
1976 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
1977
1978 * config/riscv/riscv.cc (riscv_const_insns): Add cost of poly_int.
1979 (riscv_output_move): Add csrr vlenb assembly.
1980 * config/riscv/riscv.md (move_type): Add csrr vlenb type.
1981 (ext): New attribute.
1982 (ext_enabled): Ditto.
1983 (enabled): Ditto.
1984
1985 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
1986
1987 * config/riscv/constraints.md (TARGET_VECTOR ? V_REGS : NO_REGS): Add
1988 "vr" constraint.
1989 (TARGET_VECTOR ? VD_REGS : NO_REGS): Add "vd" constraint.
1990 (TARGET_VECTOR ? VM_REGS : NO_REGS): Add "vm" constraint.
1991 (vp): Add poly constraint.
1992
1993 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
1994
1995 * config/riscv/riscv.h (enum reg_class): Change vype to vtype.
1996
1997 2022-09-01 zhongjuzhe <juzhe.zhong@rivai.ai>
1998
1999 * config/riscv/riscv.cc (riscv_convert_vector_bits): Change
2000 configuration according to TARGET_MIN_VLEN.
2001 * config/riscv/riscv.h (UNITS_PER_FP_REG): Fix comment.
2002
2003 2022-08-31 Martin Liska <mliska@suse.cz>
2004
2005 * config.build: Remove deprecated ports.
2006 * config.gcc: Likewise.
2007 * config.host: Likewise.
2008 * configure.ac: Likewise.
2009 * configure: Regenerate.
2010 * config/pa/pa-hpux10.h: Removed.
2011 * config/pa/pa-hpux10.opt: Removed.
2012 * config/pa/t-dce-thr: Removed.
2013
2014 2022-08-31 Martin Liska <mliska@suse.cz>
2015
2016 * Makefile.in: Always install limits.h and syslimits.h to
2017 include folder.
2018 * configure.ac: Assign STMP_FIXINC blank if
2019 --disable-fixincludes is used.
2020 * configure: Regenerate.
2021
2022 2022-08-31 Richard Biener <rguenther@suse.de>
2023
2024 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2025 Assert the guard_bb isn't empty and has more than one successor.
2026 Drop appropriate parts of the predicate when an edge fails to
2027 register a predicate.
2028 (predicate::dump): Dump empty predicate as TRUE.
2029
2030 2022-08-31 Richard Biener <rguenther@suse.de>
2031
2032 PR tree-optimization/90994
2033 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2034 Ignore exceptional control flow and skip the edge for the purpose of
2035 predicate generation also for non-calls.
2036
2037 2022-08-31 Aldy Hernandez <aldyh@redhat.com>
2038
2039 * value-range-storage.cc (frange_storage_slot::set_frange): Save
2040 endpoints.
2041 (frange_storage_slot::get_frange): Restore endpoints.
2042 * value-range-storage.h (class frange_storage_slot): Add endpoint
2043 fields.
2044
2045 2022-08-31 Martin Liska <mliska@suse.cz>
2046
2047 PR tree-optimization/106789
2048 * range-op-float.cc (default_frelop_fold_range): Remove the
2049 function.
2050
2051 2022-08-31 Martin Liska <mliska@suse.cz>
2052
2053 * value-range.h: Add more override keywords.
2054
2055 2022-08-31 Martin Liska <mliska@suse.cz>
2056
2057 * value-range.h: Add override.
2058
2059 2022-08-31 Richard Biener <rguenther@suse.de>
2060
2061 PR tree-optimization/65244
2062 * gimple-predicate-analysis.h (predicate::init_from_control_deps):
2063 Add argument to specify whether the predicate is for the USE.
2064 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2065 Also include predicates effective fallthru control edges when
2066 the predicate is for the USE.
2067
2068 2022-08-31 Richard Biener <rguenther@suse.de>
2069
2070 PR tree-optimization/73550
2071 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2072 Sanitize debug dumping. Handle case labels with a CASE_HIGH.
2073 (predicate::dump): Adjust for better readability.
2074
2075 2022-08-31 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2076 Jakub Jelinek <jakub@redhat.com>
2077
2078 * omp-simd-clone.cc (simd_clone_adjust_return_type,
2079 simd_clone_adjust_argument_types): Use known_eq (veclen, 0U)
2080 instead of known_eq (veclen, 0) to avoid -Wsign-compare warnings.
2081
2082 2022-08-31 Richard Sandiford <richard.sandiford@arm.com>
2083
2084 * tree-vect-slp.cc (vect_optimize_slp_pass::dump): Remove bogus
2085 argument.
2086
2087 2022-08-31 zhongjuzhe <juzhe.zhong@rivai.ai>
2088
2089 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Simply
2090 initialize const_vf to 0.
2091
2092 2022-08-31 Martin Liska <mliska@suse.cz>
2093
2094 * config.gcc: Remove cr16.
2095
2096 2022-08-30 Martin Jambor <mjambor@suse.cz>
2097
2098 * vec.h (array_slice): Add constructors for non-const reference to
2099 heap vector and pointers to heap vectors.
2100
2101 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2102
2103 * value-range.cc (early_nan_resolve): Change comment.
2104 (frange::union_): Handle union when one side is a NAN.
2105 (range_tests_nan): Add tests for NAN union.
2106
2107 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
2108
2109 * config/gcn/gcn.cc (gcn_simd_clone_compute_vecsize_and_simdlen): New.
2110 (gcn_simd_clone_adjust): New.
2111 (gcn_simd_clone_usable): New.
2112 (TARGET_SIMD_CLONE_ADJUST): New.
2113 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New.
2114 (TARGET_SIMD_CLONE_USABLE): New.
2115
2116 2022-08-30 Andrew Stubbs <ams@codesourcery.com>
2117
2118 * doc/tm.texi: Regenerate.
2119 * omp-simd-clone.cc (simd_clone_adjust_return_type): Allow zero
2120 vecsize.
2121 (simd_clone_adjust_argument_types): Likewise.
2122 * target.def (compute_vecsize_and_simdlen): Document the new
2123 vecsize_int and vecsize_float semantics.
2124
2125 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2126
2127 * expmed.cc (store_bit_field_1): Fix byte offset calculation
2128 for undefined structures.
2129
2130 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2131
2132 * params.opt (-param=vect-max-layout-candidates=): New parameter.
2133 * doc/invoke.texi (vect-max-layout-candidates): Document it.
2134 * tree-vectorizer.h (auto_lane_permutation_t): New typedef.
2135 (auto_load_permutation_t): Likewise.
2136 * tree-vect-slp.cc (vect_slp_node_weight): New function.
2137 (slpg_layout_cost): New class.
2138 (slpg_vertex): Replace perm_in and perm_out with partition,
2139 out_degree, weight and out_weight.
2140 (slpg_partition_info, slpg_partition_layout_costs): New classes.
2141 (vect_optimize_slp_pass): Likewise, cannibalizing some part of
2142 the previous vect_optimize_slp.
2143 (vect_optimize_slp): Use it.
2144
2145 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2146
2147 * hash-traits.h (vec_hash_base): New class.
2148 (vec_free_hash_base): Likewise.
2149
2150 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2151
2152 * hash-traits.h (int_hash_base): New struct, split out from...
2153 (int_hash): ...this class, which now inherits from int_hash_base.
2154 * hash-map-traits.h (unbounded_hashmap_traits): Take a template
2155 parameter for the key that provides hash and equality functions.
2156 (unbounded_int_hashmap_traits): Turn into a type alias of
2157 unbounded_hashmap_traits.
2158
2159 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2160
2161 * graphds.cc (graphds_scc): Add a pass-back parameter for the
2162 final node order.
2163 * graphds.h (graphds_scc): Update prototype accordingly.
2164
2165 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2166
2167 * tree-vect-slp.cc (vect_transform_slp_perm_load_1): Split out from...
2168 (vect_transform_slp_perm_load): ...here. Use SLP_TREE_VECTYPE instead
2169 of STMT_VINFO_VECTYPE.
2170
2171 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2172
2173 * tree-vect-slp.cc (vectorizable_slp_permutation_1): Split out from...
2174 (vectorizable_slp_permutation): ...here.
2175
2176 2022-08-30 Richard Sandiford <richard.sandiford@arm.com>
2177
2178 * tree-vect-stmts.cc (get_related_vectype_for_scalar_type): Check
2179 that the requested number of units is interoperable with the requested
2180 prevailing mode.
2181
2182 2022-08-30 Martin Liska <mliska@suse.cz>
2183
2184 * config.gcc: Remove the port.
2185 * config/m32c/rtems.h: Removed.
2186
2187 2022-08-30 Richard Biener <rguenther@suse.de>
2188
2189 PR tree-optimization/73550
2190 * gimple-predicate-analysis.cc (predicate::init_from_control_deps):
2191 Do not apply MAX_NUM_CHAINS again.
2192
2193 2022-08-30 Richard Biener <rguenther@suse.de>
2194
2195 * gimple-predicate-analysis.cc (format_edge_vec): Dump
2196 both source and destination.
2197 (dump_dep_chains): Remove.
2198 (uninit_analysis::init_use_preds): Remove redundant
2199 dumping of chains.
2200
2201 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2202
2203 * value-range-storage.cc (frange_storage_slot::get_frange): Use
2204 frange_nan.
2205 * value-range.cc (frange::set_nan): New.
2206 (frange_nan): Move to header file.
2207 (range_tests_nan): Adjust frange_nan callers to pass type.
2208 New test.
2209 * value-range.h (FRANGE_PROP_ACCESSOR): Remove.
2210 (frange_nan): New.
2211
2212 2022-08-30 Richard Biener <rguenther@suse.de>
2213
2214 PR tree-optimization/67196
2215 * gimple-predicate-analysis.cc (uninit_analysis::is_use_guarded):
2216 Simplify and normalize use prediates before first use.
2217
2218 2022-08-30 Richard Biener <rguenther@suse.de>
2219
2220 * gimple-predicate-analysis.cc (dump_pred_chain): Fix
2221 parentizing and AND prepending.
2222 (predicate::dump): Do not dump the GENERIC expanded
2223 predicate, properly parentize and prepend ORs to the
2224 piecewise predicate dump.
2225 (build_pred_expr): Remove.
2226
2227 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2228
2229 * range-op-float.cc (finite_operand_p): New.
2230 (build_le): New.
2231 (build_lt): New.
2232 (build_ge): New.
2233 (build_gt): New.
2234 (foperator_equal::fold_range): New implementation with endpoints.
2235 (foperator_equal::op1_range): Same.
2236 (foperator_not_equal::fold_range): Same.
2237 (foperator_not_equal::op1_range): Same.
2238 (foperator_lt::fold_range): Same.
2239 (foperator_lt::op1_range): Same.
2240 (foperator_lt::op2_range): Same.
2241 (foperator_le::fold_range): Same.
2242 (foperator_le::op1_range): Same.
2243 (foperator_le::op2_range): Same.
2244 (foperator_gt::fold_range): Same.
2245 (foperator_gt::op1_range): Same.
2246 (foperator_gt::op2_range): Same.
2247 (foperator_ge::fold_range): Same.
2248 (foperator_ge::op1_range): Same.
2249 (foperator_ge::op2_range): Same.
2250
2251 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2252
2253 * range-op-float.cc (frange_set_nan): New.
2254 (frange_drop_inf): New.
2255 (frange_drop_ninf): New.
2256 (foperator_equal::op1_range): Adjust for endpoints.
2257 (foperator_lt::op1_range): Same.
2258 (foperator_lt::op2_range): Same.
2259 (foperator_gt::op1_range): Same.
2260 (foperator_gt::op2_range): Same.
2261 (foperator_unordered::op1_range): Same.
2262 * value-query.cc (range_query::get_tree_range): Same.
2263 * value-range-pretty-print.cc (vrange_printer::visit): Same.
2264 * value-range-storage.cc (frange_storage_slot::get_frange): Same.
2265 * value-range.cc (frange::set): Same.
2266 (frange::normalize_kind): Same.
2267 (frange::union_): Same.
2268 (frange::intersect): Same.
2269 (frange::operator=): Same.
2270 (early_nan_resolve): New.
2271 (frange::contains_p): New.
2272 (frange::singleton_p): New.
2273 (frange::set_nonzero): New.
2274 (frange::nonzero_p): New.
2275 (frange::set_zero): New.
2276 (frange::zero_p): New.
2277 (frange::set_nonnegative): New.
2278 (frange_float): New.
2279 (frange_nan): New.
2280 (range_tests_nan): New.
2281 (range_tests_signed_zeros): New.
2282 (range_tests_floats): New.
2283 (range_tests): New.
2284 * value-range.h (frange::lower_bound): New.
2285 (frange::upper_bound): New.
2286 (vrp_val_min): Use real_inf with a sign instead of negating inf.
2287 (frange::frange): New.
2288 (frange::set_varying): Adjust for endpoints.
2289 (real_max_representable): New.
2290 (real_min_representable): New.
2291
2292 2022-08-30 Aldy Hernandez <aldyh@redhat.com>
2293
2294 * match.pd ((cmp @0 zerop) real_zerop (negate@1 @0)): Add variant
2295 for real zero.
2296
2297 2022-08-30 Martin Liska <mliska@suse.cz>
2298
2299 * config/s390/s390.cc (s390_rtx_costs): Use proper type as
2300 argument.
2301
2302 2022-08-30 Richard Biener <rguenther@suse.de>
2303
2304 * tree-ssa-uninit.cc (warn_uninitialized_vars): Pre-compute
2305 the set of fallthru reachable blocks from function entry
2306 and use that to determine wlims.always_executed.
2307
2308 2022-08-30 Richard Biener <rguenther@suse.de>
2309
2310 PR tree-optimization/56654
2311 * tree-ssa-uninit.cc (cand_cmp): New.
2312 (find_uninit_use): First process all PHIs and collect candidate
2313 stmts, then sort those after RPO.
2314 (warn_uninitialized_phi): Pass on bb_to_rpo.
2315 (execute_late_warn_uninitialized): Compute and pass on
2316 reverse lookup of RPO number from basic block index.
2317
2318 2022-08-30 Richard Biener <rguenther@suse.de>
2319
2320 * gimple-predicate-analysis.h (uninit_analysis::operator()):
2321 Remove.
2322 * gimple-predicate-analysis.cc
2323 (uninit_analysis::collect_phi_def_edges): Use phi_arg_set,
2324 simplify a bit.
2325 * tree-ssa-uninit.cc (defined_args): New global.
2326 (compute_uninit_opnds_pos): Mask with the recorded set
2327 of guarded maybe-uninitialized uses.
2328 (uninit_undef_val_t::operator()): Remove.
2329 (find_uninit_use): Process all PHI uses, recording the
2330 guarded ones and marking the PHI result as uninitialized
2331 consistently.
2332 (warn_uninitialized_phi): Adjust.
2333 (execute_late_warn_uninitialized): Get rid of the PHI worklist
2334 and instead walk the function in RPO order.
2335 * spellcheck.h (best_match::m_best_candidate_len): Initialize.
2336
2337 2022-08-30 Tamar Christina <tamar.christina@arm.com>
2338
2339 PR tree-optimization/106744
2340 * tree-ssa-phiopt.cc (minmax_replacement): Correct arguments.
2341
2342 2022-08-30 Tamar Christina <tamar.christina@arm.com>
2343
2344 * expmed.cc (store_bit_field_1): Initialize regnum to 0.
2345
2346 2022-08-29 David Faust <david.faust@oracle.com>
2347
2348 PR target/106745
2349 * config/bpf/coreout.cc (bpf_core_get_sou_member_index): Fix
2350 computation of index for anonymous members.
2351
2352 2022-08-29 Jose E. Marchesi <jose.marchesi@oracle.com>
2353
2354 * config/bpf/bpf.cc (bpf_target_macros): Define __bpf__ as a
2355 target macro.
2356
2357 2022-08-29 H.J. Lu <hjl.tools@gmail.com>
2358
2359 PR target/106748
2360 * config/i386/i386-expand.cc
2361 (ix86_avx256_split_vector_move_misalign): Handle E_V16BFmode.
2362 * config/i386/sse.md (V_256H): Add V16BF.
2363
2364 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2365
2366 * config/s390/s390.cc (s390_address_cost): Declare.
2367 (s390_hard_regno_nregs): Declare.
2368 (s390_rtx_costs): Add handling for REG and MEM in SET.
2369
2370 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2371
2372 * config/s390/s390.cc (expand_perm_with_vpdi): Recognize swap pattern.
2373 (is_reverse_perm_mask): New function.
2374 (expand_perm_with_rot): Recognize reverse pattern.
2375 (expand_perm_with_vstbrq): New function.
2376 (expand_perm_with_vster): Use vler/vster for element reversal on z15.
2377 (vectorize_vec_perm_const_1): Use.
2378 (s390_vectorize_vec_perm_const): Add expand functions.
2379 * config/s390/vx-builtins.md: Prefer vster over vler.
2380
2381 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2382
2383 * config/s390/s390.md: Remove UNSPEC_VEC_EXTRACT.
2384 * config/s390/vector.md: Rewrite patterns to use vec_select.
2385 * config/s390/vx-builtins.md (vec_scatter_element<V_HW_2:mode>_SI):
2386 Likewise.
2387
2388 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2389
2390 PR target/100869
2391 * config/s390/vector.md (@vpdi4_2<mode>): New pattern.
2392 (rotl<mode>3_di): New pattern.
2393 * config/s390/vx-builtins.md: Use vpdi and verll for reversing
2394 elements.
2395
2396 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2397
2398 * config/s390/s390.cc (s390_issue_rate): Add z15.
2399
2400 2022-08-29 Robin Dapp <rdapp@linux.ibm.com>
2401
2402 * common/config/s390/s390-common.cc: Enable -funroll-loops and
2403 -munroll-only-small-loops for OPT_LEVELS_2_PLUS_SPEED_ONLY.
2404 * config/s390/s390.cc (s390_loop_unroll_adjust): Do not unroll
2405 loops larger than 12 instructions.
2406 (s390_override_options_after_change): Set unroll options.
2407 (s390_option_override_internal): Likewise.
2408 * config/s390/s390.opt: Document munroll-only-small-loops.
2409
2410 2022-08-29 Richard Biener <rguenther@suse.de>
2411
2412 * gimple-predicate-analysis.cc (is_loop_exit,
2413 find_control_equiv_block): Inline into single caller ...
2414 (uninit_analysis::init_use_preds): ... here and refactor.
2415
2416 2022-08-29 Richard Biener <rguenther@suse.de>
2417
2418 * gimple-predicate-analysis.cc (compute_control_dep_chain):
2419 Inline is_loop_exit and refactor, add comment about
2420 loop exits.
2421
2422 2022-08-29 Kito Cheng <kito.cheng@sifive.com>
2423
2424 * config/riscv/riscv.cc (riscv_frame_info): Introduce `reset(void)`;
2425 (riscv_frame_info::reset(void)): New.
2426 (riscv_compute_frame_info): Use riscv_frame_info::reset instead
2427 of memset when clean frame.
2428
2429 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
2430
2431 * config/riscv/riscv.cc (riscv_v_ext_vector_mode_p): New function.
2432 (riscv_classify_address): Disallow PLUS/LO_SUM/CONST_INT address types for RVV.
2433 (riscv_address_insns): Add RVV modes condition.
2434 (riscv_binary_cost): Ditto.
2435 (riscv_rtx_costs): Adjust cost for RVV.
2436 (riscv_secondary_memory_needed): Add RVV modes condition.
2437 (riscv_hard_regno_nregs): Add RVV register allocation.
2438 (riscv_hard_regno_mode_ok): Add RVV register allocation.
2439 (riscv_class_max_nregs): Add RVV register allocation.
2440 * config/riscv/riscv.h (DWARF_FRAME_REGNUM): Add VL/VTYPE and vector registers in Dwarf.
2441 (UNITS_PER_V_REG): New macro.
2442 (FIRST_PSEUDO_REGISTER): Adjust first pseudo num for RVV.
2443 (V_REG_FIRST): New macro.
2444 (V_REG_LAST): Ditto.
2445 (V_REG_NUM): Ditto.
2446 (V_REG_P): Ditto.
2447 (VL_REG_P): Ditto.
2448 (VTYPE_REG_P): Ditto.
2449 (RISCV_DWARF_VL): Ditto.
2450 (RISCV_DWARF_VTYPE): Ditto.
2451 (enum reg_class): Add RVV register types.
2452 (REG_CLASS_CONTENTS): Add RVV register types.
2453 * config/riscv/riscv.md: Add VL/VTYPE register number constants.
2454
2455 2022-08-29 zhongjuzhe <juzhe.zhong@rivai.ai>
2456
2457 * config/riscv/riscv.md: Add new type for vector instructions.
2458
2459 2022-08-28 Peter Bergner <bergner@linux.ibm.com>
2460
2461 PR target/106017
2462 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Remove handling
2463 of MMA pointer conversions.
2464
2465 2022-08-27 Xi Ruoyao <xry111@xry111.site>
2466
2467 * config/i386/gcc-auto-profile: Regenerate.
2468
2469 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2470
2471 * real.cc (real_iszero): New.
2472 * real.h (real_iszero): New.
2473
2474 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2475
2476 * real.cc (real_isinf): New overload.
2477 (real_inf): Add sign argument.
2478 * real.h (real_isinf): New overload.
2479 (real_inf): Add sign argument.
2480
2481 2022-08-26 Marek Polacek <polacek@redhat.com>
2482
2483 PR c++/81159
2484 * doc/invoke.texi: Document -Wself-move.
2485
2486 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2487
2488 * value-range.cc (vrange::set): Set varying.
2489 (vrange::set_nonzero): Same.
2490 (vrange::set_zero): Same.
2491 (vrange::set_nonnegative): Same.
2492
2493 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2494
2495 * range-op-float.cc (foperator_equal::op1_range): Do not blindly
2496 copy op2 range when honoring signed zeros.
2497
2498 2022-08-26 Aldy Hernandez <aldyh@redhat.com>
2499
2500 * tree-ssa-threadbackward.cc (possibly_profitable_path_p): Always
2501 add newline.
2502 (profitable_path_p): Same.
2503
2504 2022-08-26 Richard Biener <rguenther@suse.de>
2505
2506 * gimple-predicate-analysis.h
2507 (uninit_analysis::use_cannot_happen): Remove.
2508 * gimple-predicate-analysis.cc (can_be_invalidated_p): Remove.
2509 (uninit_analysis::use_cannot_happen): Likewise.
2510 (uninit_analysis::is_use_guarded): Do not call
2511 use_cannot_happen.
2512 (dump_predicates): Remove.
2513 (simple_control_dep_chain): Remove edge overload.
2514
2515 2022-08-26 Tobias Burnus <tobias@codesourcery.com>
2516
2517 * internal-fn.cc (expand_GOMP_TARGET_REV): New.
2518 * internal-fn.def (GOMP_TARGET_REV): New.
2519 * lto-cgraph.cc (lto_output_node, verify_node_partition): Mark
2520 'omp target device_ancestor_host' as in_other_partition and don't
2521 error if absent.
2522 * omp-low.cc (create_omp_child_function): Mark as 'noclone'.
2523 * omp-expand.cc (expand_omp_target): For reverse offload, remove
2524 sorry, use device = GOMP_DEVICE_HOST_FALLBACK and create
2525 empty-body nohost function.
2526 * omp-offload.cc (execute_omp_device_lower): Handle
2527 IFN_GOMP_TARGET_REV.
2528 (pass_omp_target_link::execute): For ACCEL_COMPILER, don't
2529 nullify fn argument for reverse offload
2530
2531 2022-08-26 Jakub Jelinek <jakub@redhat.com>
2532
2533 * builtins.def (BUILT_IN_ISSIGNALING): New built-in.
2534 * builtins.cc (expand_builtin_issignaling): New function.
2535 (expand_builtin_signbit): Don't overwrite target.
2536 (expand_builtin): Handle BUILT_IN_ISSIGNALING.
2537 (fold_builtin_classify): Likewise.
2538 (fold_builtin_1): Likewise.
2539 * optabs.def (issignaling_optab): New.
2540 * fold-const-call.cc (fold_const_call_ss): Handle
2541 BUILT_IN_ISSIGNALING.
2542 * config/i386/i386.md (issignalingxf2): New expander.
2543 * doc/extend.texi (__builtin_issignaling): Document.
2544 (__builtin_isinf, __builtin_isnan): Clarify behavior with
2545 -ffinite-math-only.
2546 * doc/md.texi (issignaling<mode>2): Likewise.
2547
2548 2022-08-26 Jakub Jelinek <jakub@redhat.com>
2549
2550 PR tree-optimization/106099
2551 * internal-fn.def (TRAP): Add ECF_LOOPING_CONST_OR_PURE flag.
2552 * tree-cfg.cc (execute_fixup_cfg): Add IFN_TRAP instead of
2553 __builtin_trap to avoid the need of vops.
2554
2555 2022-08-26 Richard Biener <rguenther@suse.de>
2556
2557 * gimple-predicate-analysis.cc (dfs_mark_dominating_region):
2558 New helper.
2559 (compute_control_dep_chain): Adjust to honor marked region
2560 if provided.
2561 (uninit_analysis::init_from_phi_def): Pre-mark the dominating
2562 region to improve compute_control_dep_chain walking.
2563 * vec.h (vec<T, va_heap, vl_ptr>::allocated): Add forwarder.
2564
2565 2022-08-26 Richard Biener <rguenther@suse.de>
2566
2567 * gimple-predicate-analysis.cc
2568 (uninit_analysis::collect_phi_def_edges): Only expand a
2569 PHI def edge when it is possibly undefined.
2570
2571 2022-08-26 Martin Liska <mliska@suse.cz>
2572
2573 * doc/extend.texi: Remove cr16 related stuff.
2574 * doc/install.texi: Likewise.
2575 * doc/invoke.texi: Likewise.
2576 * doc/md.texi: Likewise.
2577 * function-tests.cc (test_expansion_to_rtl): Likewise.
2578 * common/config/cr16/cr16-common.cc: Removed.
2579 * config/cr16/constraints.md: Removed.
2580 * config/cr16/cr16-protos.h: Removed.
2581 * config/cr16/cr16.cc: Removed.
2582 * config/cr16/cr16.h: Removed.
2583 * config/cr16/cr16.md: Removed.
2584 * config/cr16/cr16.opt: Removed.
2585 * config/cr16/predicates.md: Removed.
2586 * config/cr16/t-cr16: Removed.
2587
2588 2022-08-26 liuhongt <hongtao.liu@intel.com>
2589
2590 PR target/106704
2591 * config/i386/i386-builtin.def (BDESC): Add
2592 CODE_FOR_avx_blendvpd256/CODE_FOR_avx_blendvps256 to
2593 corresponding builtins.
2594 * config/i386/i386.cc (ix86_gimple_fold_builtin):
2595 Don't fold IX86_BUILTIN_PBLENDVB256, IX86_BUILTIN_BLENDVPS256,
2596 IX86_BUILTIN_BLENDVPD256 w/o TARGET_AVX2.
2597
2598 2022-08-25 Marek Polacek <polacek@redhat.com>
2599
2600 * ginclude/stddef.h: Define nullptr_t.
2601
2602 2022-08-25 Joseph Myers <joseph@codesourcery.com>
2603
2604 * gimplify.cc (gimplify_modify_expr): Convert initialization from
2605 a variable-size CONSTRUCTOR to memset before call to
2606 gimplify_modify_expr_rhs.
2607
2608 2022-08-25 Jason Merrill <jason@redhat.com>
2609
2610 * dwarf2out.cc (base_type_die): Also use DW_ATE_UTF for char8_t.
2611
2612 2022-08-25 Andreas Krebbel <krebbel@linux.ibm.com>
2613
2614 PR target/106101
2615 * config/s390/predicates.md (subreg_register_operand): New
2616 predicate.
2617 * config/s390/s390-protos.h (s390_gen_lowpart_subreg): New
2618 function prototype.
2619 * config/s390/s390.cc (s390_gen_lowpart_subreg): New function.
2620 (s390_expand_insv): Use s390_gen_lowpart_subreg instead of
2621 gen_lowpart.
2622 * config/s390/s390.md ("*get_tp_64", "*zero_extendhisi2_31")
2623 ("*zero_extendqisi2_31", "*zero_extendqihi2_31"): Likewise.
2624 ("movstrictqi", "movstricthi", "movstrictsi"): Use the
2625 subreg_register_operand predicate instead of register_operand.
2626
2627 2022-08-25 Xi Ruoyao <xry111@xry111.site>
2628
2629 * config/loongarch/loongarch-protos.h (loongarch_symbol_type):
2630 Add SYMBOL_PCREL64 and change the description for SYMBOL_PCREL.
2631 * config/loongarch/loongarch.cc (loongarch_attribute_table):
2632 New attribute table.
2633 (TARGET_ATTRIBUTE_TABLE): Define the target hook.
2634 (loongarch_handle_model_attribute): New static function.
2635 (loongarch_classify_symbol): Take TARGET_CMODEL_EXTREME and the
2636 model attribute of SYMBOL_REF_DECL into account returning
2637 SYMBOL_PCREL or SYMBOL_PCREL64.
2638 (loongarch_use_anchors_for_symbol_p): New static function.
2639 (TARGET_USE_ANCHORS_FOR_SYMBOL_P): Define the target hook.
2640 (loongarch_symbol_extreme_p): New static function.
2641 (loongarch_symbolic_constant_p): Handle SYMBOL_PCREL64.
2642 (loongarch_symbol_insns): Likewise.
2643 (loongarch_split_symbol_type): Likewise.
2644 (loongarch_split_symbol): Check SYMBOL_PCREL64 instead of
2645 TARGET_CMODEL_EXTREME for PC-relative addressing.
2646 (loongarch_print_operand_reloc): Likewise.
2647 * doc/extend.texi (Variable Attributes): Document new
2648 LoongArch specific attribute.
2649
2650 2022-08-25 Xi Ruoyao <xry111@xry111.site>
2651
2652 * config/loongarch/loongarch.cc (loongarch_classify_symbol):
2653 Return early if the rtx is not SYMBOL_REF.
2654
2655 2022-08-25 Richard Biener <rguenther@suse.de>
2656
2657 PR tree-optimization/106737
2658 * tree-parloops.cc (transform_to_exit_first_loop_alt): Do not
2659 verify SSA form.
2660
2661 2022-08-25 Chenghua Xu <xuchenghua@loongson.cn>
2662
2663 PR target/106459
2664 * config/loongarch/loongarch.cc (loongarch_build_integer):
2665 Use HOST_WIDE_INT.
2666 * config/loongarch/loongarch.h (IMM_REACH): Likewise.
2667 (HWIT_1U): New Defined.
2668 (LU12I_OPERAND): Use HOST_WIDE_INT.
2669 (LU32I_OPERAND): Likewise.
2670 (LU52I_OPERAND): Likewise.
2671 (HWIT_UC_0xFFF): Likwise.
2672
2673 2022-08-24 Andrew Pinski <apinski@marvell.com>
2674
2675 PR target/106632
2676 PR target/106588
2677 * config/riscv/bitmanip.md (*shNadduw): Use n constraint
2678 instead of i.
2679 (*slliuw): Likewise.
2680 (*bexti): Likewise. Also add a check for operands[2] to be less
2681 than the mode bitsize.
2682
2683 2022-08-24 Andrew Pinski <apinski@marvell.com>
2684
2685 * config/riscv/constraints.md (DbS): New constraint.
2686 (DnS): New constraint.
2687 * config/riscv/bitmanip.md (*bset<mode>_1_mask): Use new constraint.
2688 (*bclr<mode>): Likewise.
2689 (*binvi<mode>): Likewise.
2690
2691 2022-08-24 Andrew Pinski <apinski@marvell.com>
2692
2693 PR target/106586
2694 * config/riscv/predicates.md (single_bit_mask_operand):
2695 Use SINGLE_BIT_MASK_OPERAND instead of directly calling pow2p_hwi.
2696 (not_single_bit_mask_operand): Likewise.
2697 * config/riscv/riscv.cc (riscv_build_integer_1): Don't special case
2698 1<<31 for 32bits as it is already handled.
2699 Call trunc_int_for_mode on the upper part after the subtraction.
2700 (riscv_move_integer): Call trunc_int_for_mode before generating
2701 the integer just make sure the constant has been sign extended
2702 corectly.
2703 (riscv_emit_int_compare): Call trunc_int_for_mode after doing the
2704 addition for the new rhs.
2705 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): If !TARGET64BIT,
2706 then mask off the upper 32bits of the HWI as it will be sign extended.
2707
2708 2022-08-24 Andrew Pinski <apinski@marvell.com>
2709
2710 * config/riscv/constraints.md (DsS): New constraint.
2711 (DsD): New constraint.
2712 * config/riscv/iterators.md (shiftm1c): New iterator.
2713 * config/riscv/bitmanip.md (*bset<mode>_mask):
2714 Use shiftm1c.
2715 (*bset<mode>_1_mask): Likewise.
2716
2717 2022-08-24 Andrew Pinski <apinski@marvell.com>
2718
2719 * config/riscv/constraints.md (Ds3): New constraint.
2720 * config/riscv/predicates.md (imm123_operand): New predicate.
2721 * config/riscv/bitmanip.md (*shNadd): Use Ds3 and imm123_operand.
2722 (*shNadduw): Likewise.
2723
2724 2022-08-24 Andrew Pinski <apinski@marvell.com>
2725
2726 * config/riscv/riscv.cc (riscv_print_operand):
2727 Handle '~'.
2728 (riscv_print_operand_punct_valid_p): New function
2729 (TARGET_PRINT_OPERAND_PUNCT_VALID_P): Define.
2730 * config/riscv/bitmanip.md (<bitmanip_optab>si2/clz_ctz_pcnt):
2731 Use %~ instead of conditional the pattern on TARGET_64BIT.
2732 (rotrsi3): Likewise.
2733 (rotlsi3): Likewise.
2734 * config/riscv/riscv.md: Add ~ to the list of modifiers.
2735 (addsi3): Use %~ instead of conditional the pattern on TARGET_64BIT.
2736 (subsi3): Likewise.
2737 (negsi2): Likewise.
2738 (mulsi3): Likewise.
2739 (optab>si3/any_div): Likewise.
2740 (*add<mode>hi3): Likewise.
2741 (<optab>si3/any_shift): Likewise.
2742
2743 2022-08-24 Andrew Pinski <apinski@marvell.com>
2744
2745 * config/riscv/riscv.cc (riscv_print_operand): Make a mention to
2746 keep the list in riscv.md in sync with this list.
2747 * config/riscv/riscv.md: Add list of modifiers as comments.
2748
2749 2022-08-24 Andrew Pinski <apinski@marvell.com>
2750
2751 * config/riscv/sync.md (any_atomic, atomic_optab): Move to ...
2752 * config/riscv/iterators.md: Here.
2753
2754 2022-08-24 Andrew Pinski <apinski@marvell.com>
2755
2756 * config/riscv/bitmanip.md
2757 (bitmanip_bitwise, bitmanip_minmax, clz_ctz_pcna,
2758 tbitmanip_optab, bitmanip_insn, shiftm1): Move to ...
2759 * config/riscv/iterators.md: Here.
2760
2761 2022-08-24 Andrew Pinski <apinski@marvell.com>
2762
2763 * config/riscv/riscv.md (GPR): Move to new file.
2764 (P, X, BR): Likewise.
2765 (MOVE32, MOVE64, SHORT): Likewise.
2766 (HISI, SUPERQI, SUBX): Likewise.
2767 (ANYI, ANYF, SOFTF): Likewise.
2768 (size, load, default_load): Likewise.
2769 (softload, store, softstore): Likewise.
2770 (reg, fmt, ifmt, amo): Likewise.
2771 (UNITMODE, HALFMODE): Likewise.
2772 (RINT, rint_pattern, rint_rm): Likewise.
2773 (QUIET_COMPARISON, quiet_pattern, QUIET_PATTERN): Likewise.
2774 (any_extend, any_shiftrt, any_shift): Likewise.
2775 (any_bitwise): Likewise.
2776 (any_div, any_mod): Likewise.
2777 (any_gt, any_ge, any_lt, any_le): Likewise.
2778 (u, su): Likewise.
2779 (optab, insn): Likewise.
2780 * config/riscv/iterators.md: New file.
2781
2782 2022-08-24 Andrew Pinski <apinski@marvell.com>
2783
2784 PR target/106601
2785 * config/riscv/bitmanip.md (bswaphi2): New pattern.
2786
2787 2022-08-24 Andrew Pinski <apinski@marvell.com>
2788
2789 PR target/106600
2790 * config/riscv/bitmanip.md (bswap<mode>2): Remove
2791 condition on TARGET_64BIT as X is already conditional there.
2792
2793 2022-08-24 Joseph Myers <joseph@codesourcery.com>
2794
2795 * tree.cc (build_real): Give DFP dconst0 the minimum quantum
2796 exponent for the type.
2797
2798 2022-08-24 Jose E. Marchesi <jose.marchesi@oracle.com>
2799
2800 PR target/106733
2801 * config/bpf/bpf.cc (bpf_legitimate_address_p): Recognize integer
2802 constants as legitimate addresses for functions.
2803 (bpf_small_register_classes_for_mode_p): Define target hook.
2804
2805 2022-08-24 Richard Biener <rguenther@suse.de>
2806
2807 * gimple-predicate-analysis.cc: Move predicate normalization
2808 after the comment documenting it.
2809
2810 2022-08-24 Richard Biener <rguenther@suse.de>
2811
2812 * gimple-predicate-analysis.h (predicate): Split out
2813 non-predicate related functionality into ..
2814 (uninit_analysis): .. this new class.
2815 * gimple-predicate-analysis.cc: Refactor into two classes.
2816 * tree-ssa-uninit.cc (find_uninit_use): Use uninit_analysis.
2817
2818 2022-08-24 Richard Biener <rguenther@suse.de>
2819
2820 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
2821 Do simple_control_dep_chain only up to cd_root, add the PHI
2822 operand edge to the chains like init_from_phi_def does.
2823 (predicate::is_use_guarded): Speedup early out, avoid half-way
2824 initializing the PHI def predicate.
2825
2826 2022-08-24 Jakub Jelinek <jakub@redhat.com>
2827
2828 PR target/106721
2829 * config/i386/sse.md (shuffletype): Add V32BF, V16BF and V8BF entries.
2830 Change V32HF, V16HF and V8HF entries from "f" to "i".
2831 (iptr): Add V32BF, V16BF, V8BF and BF entries.
2832 (i128vldq): Add V16HF and V16BF entries.
2833 (avx512er_vmrcp28<mode><mask_name><round_saeonly_name>): Fix typo,
2834 mask_opernad3 -> mask_operand3.
2835
2836 2022-08-24 Martin Liska <mliska@suse.cz>
2837 Jørgen Kvalsvik <j@lambda.is>
2838
2839 * gcov.cc (add_line_counts): Add group functions to coverage
2840 summary.
2841 (accumulate_line_counts): Similarly for files.
2842
2843 2022-08-24 Lulu Cheng <chenglulu@loongson.cn>
2844
2845 * config/loongarch/genopts/loongarch-strings: Support code model medium.
2846 * config/loongarch/genopts/loongarch.opt.in: Likewise.
2847 * config/loongarch/loongarch-def.c: Likewise.
2848 * config/loongarch/loongarch-def.h (CMODEL_LARGE): Likewise.
2849 (CMODEL_EXTREME): Likewise.
2850 (N_CMODEL_TYPES): Likewise.
2851 (CMODEL_MEDIUM): Likewise.
2852 * config/loongarch/loongarch-opts.cc: Likewise.
2853 * config/loongarch/loongarch-opts.h (TARGET_CMODEL_MEDIUM): Likewise.
2854 * config/loongarch/loongarch-str.h (STR_CMODEL_MEDIUM): Likewise.
2855 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
2856 Tls symbol Loading support medium mode.
2857 (loongarch_legitimize_call_address): When medium mode, make a symbolic
2858 jump with two instructions.
2859 (loongarch_option_override_internal): Support medium.
2860 * config/loongarch/loongarch.md (@pcalau12i<mode>): New template.
2861 (@sibcall_internal_1<mode>): New function call templates added to support
2862 medium mode.
2863 (@sibcall_value_internal_1<mode>): Likewise.
2864 (@sibcall_value_multiple_internal_1<mode>): Likewise.
2865 (@call_internal_1<mode>): Likewise.
2866 (@call_value_internal_1<mode>): Likewise.
2867 (@call_value_multiple_internal_1<mode>): Likewise.
2868 * config/loongarch/loongarch.opt: Support medium.
2869 * config/loongarch/predicates.md: Add processing about medium mode.
2870 * doc/invoke.texi: Document for '-mcmodel=medium'.
2871
2872 2022-08-24 Richard Biener <rguenther@suse.de>
2873
2874 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
2875 Start the compute_control_dep_chain walk from the immediate
2876 dominator of the PHI.
2877
2878 2022-08-23 H.J. Lu <hjl.tools@gmail.com>
2879
2880 PR target/106714
2881 * config/i386/amxtileintrin.h (_tile_loadd_internal): Cast to
2882 __PTRDIFF_TYPE__.
2883 (_tile_stream_loadd_internal): Likewise.
2884 (_tile_stored_internal): Likewise.
2885
2886 2022-08-23 Richard Biener <rguenther@suse.de>
2887
2888 PR tree-optimization/106722
2889 * gimple-predicate-analysis.h (MAX_NUM_CHAINS, MAX_CHAIN_LEN,
2890 MAX_POSTDOM_CHECK, MAX_SWITCH_CASES): Move ...
2891 * gimple-predicate-analysis.cc: ... here and document.
2892 (simple_control_dep_chain): New function, factored from
2893 predicate::use_cannot_happen.
2894 (predicate::use_cannot_happen): Adjust.
2895 (predicate::predicate): Use simple_control_dep_chain as fallback.
2896
2897 2022-08-23 Aldy Hernandez <aldyh@redhat.com>
2898
2899 * range-op-float.cc (foperator_equal::op1_range): Set range to
2900 range of op2.
2901
2902 2022-08-23 Richard Biener <rguenther@suse.de>
2903
2904 * gimple-predicate-analysis.cc (is_loop_exit): Split out
2905 from ...
2906 (is_non_loop_exit_postdominating): ... here. Remove after
2907 inlining ...
2908 (find_control_equiv_block): ... here.
2909 (compute_control_dep_chain): ... and here.
2910 (predicate::is_use_guarded): Do not excempt loop exits
2911 from short-cutting the case of the use post-dominating the
2912 PHI definition.
2913
2914 2022-08-23 Andrew MacLeod <amacleod@redhat.com>
2915
2916 PR tree-optimization/106687
2917 * range-op.cc (operator_minus::lhs_op1_relation): Return VREL_LE
2918 for the VREL_GT case as well.
2919
2920 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
2921
2922 * config/pru/pru.md (pru_<code>di3): New alternative for
2923 two operands but without earlyclobber.
2924
2925 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
2926
2927 * config/pru/pru.md (prumov<mode>, mov<mode>): Add
2928 variants for loading -1 consts.
2929
2930 2022-08-22 Dimitar Dimitrov <dimitar@dinux.eu>
2931
2932 PR target/106564
2933 * config/pru/constraints.md (Um): New constraint for -1.
2934 (Uf): New constraint for IOR fill-bytes constants.
2935 (Uz): New constraint for AND zero-bytes constants.
2936 * config/pru/predicates.md (const_fillbytes_operand): New
2937 predicate for IOR fill-bytes constants.
2938 (const_zerobytes_operand): New predicate for AND zero-bytes
2939 constants.
2940 * config/pru/pru-protos.h (pru_output_sign_extend): Remove.
2941 (struct pru_byterange): New struct to describe a byte range.
2942 (pru_calc_byterange): New declaration.
2943 * config/pru/pru.cc (pru_rtx_costs): Add penalty for
2944 64-bit zero-extend.
2945 (pru_output_sign_extend): Remove.
2946 (pru_calc_byterange): New helper function to extract byte
2947 range info from a constant.
2948 (pru_print_operand): Remove 'y' and 'z' print modifiers.
2949 * config/pru/pru.md (zero_extendqidi2): New pattern.
2950 (zero_extendhidi2): New pattern.
2951 (zero_extendsidi2): New pattern.
2952 (extend<EQS0:mode><EQD:mode>2): Rewrite as an expand.
2953 (@pru_ior_fillbytes<mode>): New pattern.
2954 (@pru_and_zerobytes<mode>): New pattern.
2955 (<code>di3): Rewrite as an expand and handle ZERO and FILL
2956 special cases.
2957 (pru_<code>di3): New name for <code>di3.
2958 (@cbranch_qbbx_const_<BIT_TEST:code><HIDI:mode>): New pattern to
2959 handle bit-test for 64-bit registers.
2960
2961 2022-08-22 Richard Biener <rguenther@suse.de>
2962
2963 * gimple-predicate-analysis.h (predicate::m_use_expr): Remove.
2964 (predicate::def_expr): Likewise.
2965 (predicate::use_expr): Likewise.
2966 (predicate::expr): Likewise.
2967 * gimple-predicate-analysis.cc (predicate::def_expr): Remove.
2968 (predicate::use_expr): Likewise.
2969 (predicate::expr): Likewise.
2970 (predicate::is_use_guarded): Do not build m_use_expr.
2971
2972 2022-08-22 Martin Liska <mliska@suse.cz>
2973
2974 PR lto/106700
2975 * configure.ac: Detect O_NONBLOCK flag for open.
2976 * config.in: Regenerate.
2977 * configure: Regenerate.
2978 * opts-common.cc (jobserver_info::connect): Set is_connected
2979 properly based on O_NONBLOCK.
2980 * opts-jobserver.h (struct jobserver_info): Add is_connected
2981 member variable.
2982
2983 2022-08-22 zhongjuzhe <juzhe.zhong@rivai.ai>
2984
2985 * simplify-rtx.cc (test_vector_subregs_fore_back): Make first value
2986 and repeat value different.
2987
2988 2022-08-22 Tobias Burnus <tobias@codesourcery.com>
2989
2990 PR lto/106686
2991 * lto-wrapper.cc (free_array_of_ptrs): Move before tool_cleanup.
2992 (tool_cleanup): Unlink offload_names.
2993 (compile_offload_image): Take filename argument to set it early.
2994 (compile_images_for_offload_targets): Update call; set
2995 offload_names to NULL after freeing the array.
2996
2997 2022-08-22 Richard Biener <rguenther@suse.de>
2998
2999 PR tree-optimization/105937
3000 * tree-ssa-uninit.cc (find_uninit_use): Do not queue PHIs
3001 on backedges.
3002 (execute_late_warn_uninitialized): Mark backedges.
3003
3004 2022-08-22 Richard Biener <rguenther@suse.de>
3005
3006 * gimple-predicate-analysis.cc (predicate::use_cannot_happen):
3007 If the use is guarded with multiple predicate paths compute
3008 the predicates intersection before going forward. When
3009 compute_control_dep_chain wasn't able to come up with at
3010 least one path from function entry to the PHI edge compute
3011 a conservative sparse path instead.
3012
3013 2022-08-20 Lulu Cheng <chenglulu@loongson.cn>
3014
3015 * config/loongarch/loongarch-opts.cc: Allow cmodel to be extreme.
3016 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
3017 Add extreme support for TLS GD and LD types.
3018 (loongarch_legitimize_tls_address): Add extreme support for TLS LE
3019 and IE.
3020 (loongarch_split_symbol): When compiling with -mcmodel=extreme,
3021 the symbol address will be obtained through five instructions.
3022 (loongarch_print_operand_reloc): Add support.
3023 (loongarch_print_operand): Add support.
3024 (loongarch_print_operand_address): Add support.
3025 (loongarch_option_override_internal): Set '-mcmodel=extreme' option
3026 incompatible with '-mno-explicit-relocs'.
3027 * config/loongarch/loongarch.md (@lui_l_hi20<mode>):
3028 Loads bits 12-31 of data into registers.
3029 (lui_h_lo20): Load bits 32-51 of the data and spell bits 0-31 of
3030 the source register.
3031 (lui_h_hi12): Load bits 52-63 of the data and spell bits 0-51 of
3032 the source register.
3033 * config/loongarch/predicates.md: Symbols need to be decomposed
3034 when defining the macro TARGET_CMODEL_EXTREME
3035 * doc/invoke.texi: Modify the description information of cmodel in the document.
3036 Document -W[no-]extreme-plt.
3037
3038 2022-08-19 Tobias Burnus <tobias@codesourcery.com>
3039
3040 * config/gcn/mkoffload.cc (main): Add omp_requires_file and dbgobj to
3041 files_to_cleanup.
3042 * config/i386/intelmic-mkoffload.cc (prepare_target_image): Add
3043 omp_requires_file to temp_files.
3044 * config/nvptx/mkoffload.cc (omp_requires_file): New global static var.
3045 (main): Remove local omp_requires_file var.
3046 (tool_cleanup): Handle omp_requires_file.
3047
3048 2022-08-19 Aldy Hernandez <aldyh@redhat.com>
3049
3050 * gimple-range-path.cc (path_range_query::path_range_query):
3051 Remove constructor that takes edge.
3052 * gimple-range-path.h (class path_range_query): Same.
3053 * tree-ssa-loop-ch.cc (edge_range_query): New.
3054 (entry_loop_condition_is_static): Call edge_range_query.
3055
3056 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3057
3058 * config/xtensa/xtensa.h
3059 (enum reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS):
3060 Add new register class "ISC_REGS".
3061 * config/xtensa/constraints.md (c): Add new register constraint.
3062 * config/xtensa/xtensa.md (define_constants): Remove "A11_REG".
3063 (sibcall_internal, sibcall_value_internal):
3064 Change to use the new register constraint, and remove two split
3065 patterns for fixups that are no longer needed.
3066
3067 2022-08-18 Maciej W. Rozycki <macro@embecosm.com>
3068
3069 * config/riscv/riscv.md (*mov<GPR:mode><X:mode>cc): Fix output
3070 pattern formatting.
3071
3072 2022-08-18 Tim Lange <mail@tim-lange.me>
3073
3074 PR analyzer/106181
3075 * doc/invoke.texi: Add Wanalyzer-imprecise-fp-arithmetic.
3076
3077 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
3078
3079 * gimple-range-path.cc (path_range_query::path_range_query): Add
3080 various constructors to take a path.
3081 (path_range_query::~path_range_query): Remove m_alloced_ranger.
3082 (path_range_query::range_on_path_entry): Adjust for m_ranger being
3083 a reference.
3084 (path_range_query::set_path): Rename to...
3085 (path_range_query::reset_path): ...this and call compute_ranges.
3086 (path_range_query::ssa_range_in_phi): Adjust for m_ranger
3087 reference.
3088 (path_range_query::range_defined_in_block): Same.
3089 (path_range_query::compute_ranges_in_block): Same.
3090 (path_range_query::adjust_for_non_null_uses): Same.
3091 (path_range_query::compute_exit_dependencies): Use m_path instead
3092 of argument.
3093 (path_range_query::compute_ranges): Remove path argument.
3094 (path_range_query::range_of_stmt): Adjust for m_ranger reference.
3095 (path_range_query::compute_outgoing_relations): Same.
3096 * gimple-range-path.h (class path_range_query): Add various
3097 constructors.
3098 Make compute_ranges and compute_exit_dependencies private.
3099 Rename set_path to reset_path.
3100 Make m_ranger a reference.
3101 Remove m_alloced_ranger.
3102 * tree-ssa-dom.cc (pass_dominator::execute): Adjust constructor to
3103 path_range_query.
3104 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Take a
3105 ranger and instantiate a new path_range_query every time.
3106 (ch_base::copy_headers): Pass ranger instead of path_range_query.
3107 * tree-ssa-threadbackward.cc (class back_threader): Remove m_solver.
3108 (back_threader::~back_threader): Remove m_solver.
3109 (back_threader::find_taken_edge_switch): Adjust for m_ranger
3110 reference.
3111 (back_threader::find_taken_edge_cond): Same.
3112 (back_threader::dump): Remove m_solver.
3113 (back_threader::back_threader): Move verify_marked_backedges
3114 here from the path_range_query constructor.
3115 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Move
3116 some code from compute_ranges_from_state here.
3117 (hybrid_jt_simplifier::compute_ranges_from_state): Rename...
3118 (hybrid_jt_simplifier::compute_exit_dependencies): ...to this.
3119 * tree-ssa-threadedge.h (class hybrid_jt_simplifier): Rename
3120 compute_ranges_from_state to compute_exit_dependencies.
3121 Remove m_path.
3122
3123 2022-08-18 Richard Biener <rguenther@suse.de>
3124
3125 PR middle-end/106617
3126 * match.pd ((a ? b : c) > d -> a ? (b > d) : (c > d)): Fix
3127 guard, disable on GENERIC to not cause quadratic behavior
3128 with the fold-const.cc implementation and the use of !
3129
3130 2022-08-18 Andrew Pinski <apinski@marvell.com>
3131
3132 PR gcov-profile/106659
3133 * gcov-dump.cc (INCLUDE_VECTOR): Include vector.h with
3134 INCLUDE_VECTOR.
3135
3136 2022-08-18 konglin1 <lingling.kong@intel.com>
3137
3138 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Handle vector
3139 BFmode.
3140 (ix86_expand_vector_init_duplicate): Support vector BFmode.
3141 (ix86_expand_vector_init_one_nonzero): Ditto.
3142 (ix86_expand_vector_init_one_var): Ditto.
3143 (ix86_expand_vector_init_concat): Ditto.
3144 (ix86_expand_vector_init_interleave): Ditto.
3145 (ix86_expand_vector_init_general): Ditto.
3146 (ix86_expand_vector_init): Ditto.
3147 (ix86_expand_vector_set_var): Ditto.
3148 (ix86_expand_vector_set): Ditto.
3149 (ix86_expand_vector_extract): Ditto.
3150 * config/i386/i386.cc (classify_argument): Add BF vector modes.
3151 (function_arg_64): Ditto.
3152 (ix86_gimplify_va_arg): Ditto.
3153 (ix86_get_ssemov): Ditto.
3154 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add BF vector modes.
3155 (VALID_AVX512F_REG_MODE): Ditto.
3156 (host_detect_local_cpu): Ditto.
3157 (VALID_SSE2_REG_MODE): Ditto.
3158 * config/i386/i386.md: Add BF vector modes.
3159 (MODE_SIZE): Ditto.
3160 (ssemodesuffix): Add bf suffix for BF vector modes.
3161 (ssevecmode): Ditto.
3162 * config/i386/sse.md (VMOVE): Adjust for BF vector modes.
3163 (VI12HFBF_AVX512VL): Ditto.
3164 (V_256_512): Ditto.
3165 (VF_AVX512HFBF16): Ditto.
3166 (VF_AVX512BWHFBF16): Ditto.
3167 (VIHFBF): Ditto.
3168 (avx512): Ditto.
3169 (VIHFBF_256): Ditto.
3170 (VIHFBF_AVX512BW): Ditto.
3171 (VI2F_256_512):Ditto.
3172 (V8_128):Ditto.
3173 (V16_256): Ditto.
3174 (V32_512): Ditto.
3175 (sseinsnmode): Ditto.
3176 (sseconstm1): Ditto.
3177 (sseintmodesuffix): New mode_attr.
3178 (avx512fmaskmode): Ditto.
3179 (avx512fmaskmodelower): Ditto.
3180 (ssedoublevecmode): Ditto.
3181 (ssehalfvecmode): Ditto.
3182 (ssehalfvecmodelower): Ditto.
3183 (ssescalarmode): Add vector BFmode mapping.
3184 (ssescalarmodelower): Ditto.
3185 (ssexmmmode): Ditto.
3186 (ternlogsuffix): Ditto.
3187 (ssescalarsize): Ditto.
3188 (sseintprefix): Ditto.
3189 (i128): Ditto.
3190 (xtg_mode): Ditto.
3191 (bcstscalarsuff): Ditto.
3192 (<avx512>_blendm<mode>): New define_insn for BFmode.
3193 (<avx512>_store<mode>_mask): Ditto.
3194 (vcond_mask_<mode><avx512fmaskmodelower>): Ditto.
3195 (vec_set<mode>_0): New define_insn for BF vector set.
3196 (V8BFH_128): New mode_iterator for BFmode.
3197 (avx512fp16_mov<mode>): Ditto.
3198 (vec_set<mode>): New define_insn for BF vector set.
3199 (@vec_extract_hi_<mode>): Ditto.
3200 (@vec_extract_lo_<mode>): Ditto.
3201 (vec_set_hi_<mode>): Ditto.
3202 (vec_set_lo_<mode>): Ditto.
3203 (*vec_extract<mode>_0): New define_insn_and_split for BF
3204 vector extract.
3205 (*vec_extract<mode>): New define_insn.
3206 (VEC_EXTRACT_MODE): Add BF vector modes.
3207 (PINSR_MODE): Add V8BF.
3208 (sse2p4_1): Ditto.
3209 (pinsr_evex_isa): Ditto.
3210 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support
3211 insert for V8BFmode.
3212 (pbroadcast_evex_isa): Add BF vector modes.
3213 (AVX2_VEC_DUP_MODE): Ditto.
3214 (VEC_INIT_MODE): Ditto.
3215 (VEC_INIT_HALF_MODE): Ditto.
3216 (avx2_pbroadcast<mode>): Adjust to support BF vector mode
3217 broadcast.
3218 (avx2_pbroadcast<mode>_1): Ditto.
3219 (<avx512>_vec_dup<mode>_1): Ditto.
3220 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>):
3221 Ditto.
3222
3223 2022-08-18 Martin Liska <mliska@suse.cz>
3224
3225 * configure: Regenerate.
3226
3227 2022-08-18 Haochen Gui <guihaoc@gcc.gnu.org>
3228
3229 PR target/103109
3230 * config/rs6000/rs6000.md (<u>maddditi4): New pattern for multiply-add.
3231 (<u>madddi4_highpart): New.
3232 (<u>madddi4_highpart_le): New.
3233
3234 2022-08-18 Aldy Hernandez <aldyh@redhat.com>
3235
3236 * gimple-range-path.cc
3237 (path_range_query::compute_exit_dependencies): Use
3238 gimple_range_ssa_names.
3239
3240 2022-08-18 zhongjuzhe <juzhe.zhong@rivai.ai>
3241
3242 * config/riscv/predicates.md: Adjust runtime invariant.
3243 * config/riscv/riscv-modes.def (MAX_BITSIZE_MODE_ANY_MODE): New.
3244 (NUM_POLY_INT_COEFFS): New.
3245 * config/riscv/riscv-protos.h (riscv_initial_elimination_offset):Adjust
3246 runtime invariant.
3247 * config/riscv/riscv-sr.cc (riscv_remove_unneeded_save_restore_calls):
3248 Adjust runtime invariant.
3249 * config/riscv/riscv.cc (struct riscv_frame_info): Adjust runtime
3250 invariant.
3251 (enum riscv_microarchitecture_type): Ditto.
3252 (riscv_valid_offset_p): Ditto.
3253 (riscv_valid_lo_sum_p): Ditto.
3254 (riscv_address_insns): Ditto.
3255 (riscv_load_store_insns): Ditto.
3256 (riscv_legitimize_move): Ditto.
3257 (riscv_binary_cost): Ditto.
3258 (riscv_rtx_costs): Ditto.
3259 (riscv_output_move): Ditto.
3260 (riscv_extend_comparands): Ditto.
3261 (riscv_flatten_aggregate_field): Ditto.
3262 (riscv_get_arg_info): Ditto.
3263 (riscv_pass_by_reference): Ditto.
3264 (riscv_elf_select_rtx_section): Ditto.
3265 (riscv_stack_align): Ditto.
3266 (riscv_compute_frame_info): Ditto.
3267 (riscv_initial_elimination_offset): Ditto.
3268 (riscv_set_return_address): Ditto.
3269 (riscv_for_each_saved_reg): Ditto.
3270 (riscv_first_stack_step): Ditto.
3271 (riscv_expand_prologue): Ditto.
3272 (riscv_expand_epilogue): Ditto.
3273 (riscv_can_use_return_insn): Ditto.
3274 (riscv_secondary_memory_needed): Ditto.
3275 (riscv_hard_regno_nregs): Ditto.
3276 (riscv_convert_vector_bits): New.
3277 (riscv_option_override): Adjust runtime invariant.
3278 (riscv_promote_function_mode): Ditto.
3279 * config/riscv/riscv.h (POLY_SMALL_OPERAND_P): New.
3280 (BITS_PER_RISCV_VECTOR): New.
3281 (BYTES_PER_RISCV_VECTOR): New.
3282 * config/riscv/riscv.md: Adjust runtime invariant.
3283
3284 2022-08-18 Lulu Cheng <chenglulu@loongson.cn>
3285
3286 * config/loongarch/loongarch.cc (loongarch_call_tls_get_addr):
3287 Get __tls_get_addr address through got table when disable plt.
3288
3289 2022-08-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3290
3291 * config/xtensa/xtensa.cc (xtensa_expand_prologue):
3292 Use an "addmi" machine instruction for updating the stack pointer
3293 rather than addition/subtraction via hard register A9, if the amount
3294 of change satisfies the literal value conditions of that instruction
3295 when the CALL0 ABI is used.
3296 (xtensa_expand_epilogue): Ditto.
3297 And also inhibit the stack pointer addition of constant zero.
3298
3299 2022-08-17 Roger Sayle <roger@nextmovesoftware.com>
3300
3301 PR target/106640
3302 * config/i386/i386-features.cc
3303 (timde_scalar_chain::compute_convert_gain): Replace incorrect use
3304 of XINT with INTVAL (XEXP (src, 1)).
3305
3306 2022-08-17 Aldy Hernandez <aldyh@redhat.com>
3307
3308 * gimple-range-path.cc
3309 (path_range_query::compute_ranges_in_block): Remove
3310 set_root_oracle call.
3311 (path_range_query::compute_ranges): Pass ranger oracle to
3312 reset_path.
3313 * value-relation.cc (path_oracle::reset_path): Set root oracle.
3314 * value-relation.h (path_oracle::reset_path): Add root oracle
3315 argument.
3316
3317 2022-08-17 Marek Polacek <polacek@redhat.com>
3318
3319 PR c++/89780
3320 * diagnostic-spec.cc (nowarn_spec_t::nowarn_spec_t): Handle
3321 OPT_Wpessimizing_move and OPT_Wredundant_move.
3322 * diagnostic-spec.h (nowarn_spec_t): Add NW_REDUNDANT enumerator.
3323
3324 2022-08-17 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
3325 Jakub Jelinek <jakub@redhat.com>
3326
3327 PR fortran/46539
3328 * common.opt (static-libquadmath): New option.
3329 * gcc.cc (driver_handle_option): Always accept -static-libquadmath.
3330 * config/darwin.h (LINK_SPEC): Handle -static-libquadmath.
3331
3332 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3333
3334 * lto-cgraph.cc (input_offload_tables): Improve requires diagnostic
3335 when filenames come out identically.
3336
3337 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3338
3339 PR middle-end/106548
3340 * omp-low.cc (lower_rec_input_clauses): Use build_outer_var_ref
3341 for 'simd' linear-step values that are variable.
3342
3343 2022-08-17 Tobias Burnus <tobias@codesourcery.com>
3344 Chung-Lin Tang <cltang@codesourcery.com>
3345
3346 PR c++/104493
3347 * gimplify.cc (omp_notice_variable): Call omp_mappable_type
3348 instead of removed langhook.
3349 * omp-general.h (omp_mappable_type): New prototype.
3350 * omp-general.cc (omp_mappable_type): New; moved from ...
3351 * langhooks.cc (lhd_omp_mappable_type): ... here.
3352 * langhooks-def.h (lhd_omp_mappable_type,
3353 LANG_HOOKS_OMP_MAPPABLE_TYPE): Remove.
3354 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Remote the latter.
3355 * langhooks.h (struct lang_hooks_for_types): Remove
3356 omp_mappable_type.
3357
3358 2022-08-17 Christophe Lyon <christophe.lyon@arm.com>
3359
3360 * config.gcc (arm): Define with_float to hard if target name ends
3361 with 'hf'.
3362
3363 2022-08-17 Richard Biener <rguenther@suse.de>
3364
3365 * tree-ssa-threadbackward.cc
3366 (back_threader_profitability): Split profitable_path_p
3367 into possibly_profitable_path_p and itself, keep state
3368 as new members.
3369 (back_threader::m_profit): Remove.
3370 (back_threader::find_paths): Likewise.
3371 (back_threader::maybe_register_path): Take profitability
3372 instance as parameter.
3373 (back_threader::find_paths_to_names): Likewise. Use
3374 possibly_profitable_path_p and avoid the path range query
3375 when the path is currently too large.
3376 (back_threader::find_paths): Fold into ...
3377 (back_threader::maybe_thread_block): ... this.
3378 (get_gimple_control_stmt): Remove.
3379 (back_threader_profitability::possibly_profitable_path_p):
3380 Split out from profitable_path_p, do early profitability
3381 checks.
3382 (back_threader_profitability::profitable_path_p): Do final
3383 profitability path after the taken edge has been determined.
3384
3385 2022-08-17 Xi Ruoyao <xry111@xry111.site>
3386
3387 * config/loongarch/loongarch.md (fmax<mode>3): New RTL pattern.
3388 (fmin<mode>3): Likewise.
3389
3390 2022-08-17 Andrew MacLeod <amacleod@redhat.com>
3391
3392 * gimple-range-fold.cc (gimple_range_ssa_names): New.
3393 * gimple-range-fold.h (gimple_range_ssa_names): New prototype.
3394 * gimple-range-gori.cc (range_def_chain::get_def_chain): Move
3395 code to new routine.
3396
3397 2022-08-16 Martin Liska <mliska@suse.cz>
3398
3399 PR target/106637
3400 * doc/install.texi: Remove link to www.bullfreeware.com
3401
3402 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
3403
3404 * common/config/riscv/riscv-common.cc (riscv_implied_info): Add
3405 zfh and zfhmin.
3406 (riscv_ext_version_table): Ditto.
3407 (riscv_ext_flag_table): Ditto.
3408 * config/riscv/riscv-opts.h (MASK_ZFHMIN): New.
3409 (MASK_ZFH): Ditto.
3410 (TARGET_ZFHMIN): Ditto.
3411 (TARGET_ZFH): Ditto.
3412 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode move
3413 for zfh and zfhmin.
3414 (riscv_emit_float_compare): Handle HFmode.
3415 * config/riscv/riscv.md (ANYF): Add HF.
3416 (SOFTF): Add HF.
3417 (load): Ditto.
3418 (store): Ditto.
3419 (truncsfhf2): New.
3420 (truncdfhf2): Ditto.
3421 (extendhfsf2): Ditto.
3422 (extendhfdf2): Ditto.
3423 (*movhf_hardfloat): Ditto.
3424 (*movhf_softfloat): Make sure not ZFHMIN.
3425 * config/riscv/riscv.opt (riscv_zf_subext): New.
3426
3427 2022-08-16 Kito Cheng <kito.cheng@sifive.com>
3428
3429 * config/riscv/riscv-builtins.cc: include stringpool.h
3430 (riscv_float16_type_node): New.
3431 (riscv_init_builtin_types): Ditto.
3432 (riscv_init_builtins): Call riscv_init_builtin_types.
3433 * config/riscv/riscv-modes.def (HF): New.
3434 * config/riscv/riscv.cc (riscv_output_move): Handle HFmode.
3435 (riscv_mangle_type): New.
3436 (riscv_scalar_mode_supported_p): Ditto.
3437 (riscv_libgcc_floating_mode_supported_p): Ditto.
3438 (riscv_excess_precision): Ditto.
3439 (riscv_floatn_mode): Ditto.
3440 (riscv_init_libfuncs): Ditto.
3441 (TARGET_MANGLE_TYPE): Ditto.
3442 (TARGET_SCALAR_MODE_SUPPORTED_P): Ditto.
3443 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Ditto.
3444 (TARGET_INIT_LIBFUNCS): Ditto.
3445 (TARGET_C_EXCESS_PRECISION): Ditto.
3446 (TARGET_FLOATN_MODE): Ditto.
3447 * config/riscv/riscv.md (mode): Add HF.
3448 (softload): Add HF.
3449 (softstore): Ditto.
3450 (fmt): Ditto.
3451 (UNITMODE): Ditto.
3452 (movhf): New.
3453 (*movhf_softfloat): New.
3454
3455 2022-08-16 Richard Biener <rguenther@suse.de>
3456
3457 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
3458 Do not walk further if we are leaving the current loop.
3459
3460 2022-08-16 Sergei Trofimovich <siarheit@google.com>
3461
3462 PR driver/106624
3463 * gcc.cc (driver::detect_jobserver): Allocate storage xputenv()
3464 argument using xstrdup().
3465
3466 2022-08-16 Aldy Hernandez <aldyh@redhat.com>
3467
3468 * gimple-range-path.cc (path_range_query::import_p): Rename to...
3469 (path_range_query::exit_dependency_p): ...this.
3470 (path_range_query::dump): Rename imports to exit dependencies.
3471 (path_range_query::compute_ranges_in_phis): Same.
3472 (path_range_query::compute_ranges_in_block): Same.
3473 (path_range_query::adjust_for_non_null_uses): Same.
3474 (path_range_query::compute_ranges): Same.
3475 (path_range_query::compute_phi_relations): Same.
3476 (path_range_query::add_to_imports): Rename to...
3477 (path_range_query::add_to_exit_dependencies): ...this.
3478 (path_range_query::compute_imports): Rename to...
3479 (path_range_query::compute_exit_dependencies): ...this.
3480 * gimple-range-path.h (class path_range_query): Rename imports to
3481 exit dependencies.
3482
3483 2022-08-16 Martin Liska <mliska@suse.cz>
3484
3485 * value-range-storage.h (class obstack_vrange_allocator): Mark
3486 the class as final.
3487 (class ggc_vrange_allocator): Likewise.
3488
3489 2022-08-16 Martin Liska <mliska@suse.cz>
3490
3491 * value-range-equiv.h (class value_range_equiv): Add virtual
3492 destructor.
3493 * value-range.h: Likewise.
3494
3495 2022-08-16 Richard Biener <rguenther@suse.de>
3496
3497 PR middle-end/106630
3498 * match.pd ((T)(x * CST) -> (T)x * CST): Restrict to
3499 narrowing conversions.
3500
3501 2022-08-16 Martin Liska <mliska@suse.cz>
3502
3503 * value-range-equiv.h (class value_range_equiv):
3504
3505 2022-08-16 Martin Liska <mliska@suse.cz>
3506
3507 * config/i386/i386-features.h (class general_scalar_chain): Add
3508 final override for a method.
3509 (class timode_scalar_chain): Likewise.
3510
3511 2022-08-16 Richard Biener <rguenther@suse.de>
3512
3513 * doc/invoke.texi (max-jump-thread-paths): Adjust.
3514
3515 2022-08-16 Martin Liska <mliska@suse.cz>
3516
3517 * opts-common.cc (jobserver_info::connect): Open fifo
3518 in non-blocking mode.
3519
3520 2022-08-16 Kewen.Lin <linkw@gcc.gnu.org>
3521
3522 PR target/103353
3523 * config/rs6000/mma.md (define_expand movoo): Move TARGET_MMA condition
3524 check to preparation statements and add handlings for !TARGET_MMA.
3525 (define_expand movxo): Likewise.
3526
3527 2022-08-16 Kewen Lin <linkw@linux.ibm.com>
3528
3529 PR tree-optimization/106322
3530 * tree-vect-stmts.cc (vectorizable_call): Don't allow
3531 vect_emulated_vector_p type for both vectype_in and vectype_out.
3532
3533 2022-08-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
3534
3535 * common/config/xtensa/xtensa-common.cc
3536 (xtensa_option_optimization_table): Add OPT_fsplit_wide_types_early
3537 for OPT_LEVELS_ALL in order to restore pre-GCC10 behavior.
3538
3539 2022-08-15 Andrew MacLeod <amacleod@redhat.com>
3540
3541 PR tree-optimization/106621
3542 * value-range.cc (irange::set): Check for POLY_INT_CST early.
3543
3544 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3545
3546 * config/i386/i386-features.cc
3547 (timode_scalar_chain::compute_convert_gain): Provide costs for
3548 shifts and rotates.
3549 (timode_scalar_chain::convert_insn): Handle ASHIFTRT, ROTATERT
3550 and ROTATE just like existing ASHIFT and LSHIFTRT cases.
3551 (timode_scalar_to_vector_candidate_p): Handle all shifts and
3552 rotates by integer constants between 0 and 127.
3553
3554 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3555
3556 * config/i386/i386-features.cc
3557 (timode_scalar_chain::compute_convert_gain): Provide gains for
3558 comparisons against 0/-1, including "*testti" patterns.
3559
3560 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3561
3562 PR tree-optimization/64992
3563 PR tree-optimization/98956
3564 * match.pd (ne (lshift @0 @1) 0): Simplify (X << C) != 0 to X
3565 when X is zero_one_valued_p and the shift constant C is valid.
3566 (eq (lshift @0 @1) 0): Likewise, simplify (X << C) == 0 to !X
3567 when X is zero_one_valued_p and the shift constant C is valid.
3568
3569 2022-08-15 Roger Sayle <roger@nextmovesoftware.com>
3570 Richard Biener <rguenther@suse.de>
3571
3572 PR tree-optimization/71343
3573 * match.pd (op (lshift @0 @1) (lshift @2 @1)): Optimize the
3574 expression (X<<C) + (Y<<C) to (X+Y)<<C for multiple operators.
3575 (op (rshift @0 @1) (rshift @2 @1)): Likewise, simplify (X>>C)^(Y>>C)
3576 to (X^Y)>>C for binary logical operators, AND, IOR and XOR.
3577
3578 2022-08-15 Richard Biener <rguenther@suse.de>
3579
3580 * gimple-range-path.cc (range_on_path_entry): Just
3581 call range_on_entry.
3582
3583 2022-08-15 Jakub Jelinek <jakub@redhat.com>
3584
3585 PR rtl-optimization/106590
3586 * ifcvt.cc (check_for_cc_cmp_clobbers): New function.
3587 (noce_convert_multiple_sets_1): If SEQ sets or clobbers any regs
3588 mentioned in cc_cmp or rev_cc_cmp, don't consider seq2 for any
3589 further conditional moves.
3590
3591 2022-08-15 konglin1 <lingling.kong@intel.com>
3592
3593 * config/i386/i386-builtin-types.def (BFLOAT16): New primitive type.
3594 * config/i386/i386-builtins.cc : Support __bf16 type for i386 backend.
3595 (ix86_register_bf16_builtin_type): New function.
3596 (ix86_bf16_type_node): New.
3597 (ix86_bf16_ptr_type_node): Ditto.
3598 (ix86_init_builtin_types): Add ix86_register_bf16_builtin_type function call.
3599 * config/i386/i386-modes.def (FLOAT_MODE): Add BFmode.
3600 (ADJUST_FLOAT_FORMAT): Ditto.
3601 * config/i386/i386.cc (classify_argument): Handle BFmode.
3602 (construct_container): Ditto.
3603 (function_value_32): Return __bf16 by %xmm0.
3604 (function_value_64): Return __bf16 by SSE register.
3605 (ix86_output_ssemov): Handle BFmode.
3606 (ix86_legitimate_constant_p): Disable BFmode constant double.
3607 (ix86_secondary_reload): Require gpr as intermediate register
3608 to store __bf16 from sse register when sse4 is not available.
3609 (ix86_scalar_mode_supported_p): Enable __bf16 under sse2.
3610 (ix86_mangle_type): Add manlging for __bf16 type.
3611 (ix86_invalid_conversion): New function for target hook.
3612 (ix86_invalid_unary_op): Ditto.
3613 (ix86_invalid_binary_op): Ditto.
3614 (TARGET_INVALID_CONVERSION): New define for target hook.
3615 (TARGET_INVALID_UNARY_OP): Ditto.
3616 (TARGET_INVALID_BINARY_OP): Ditto.
3617 * config/i386/i386.h (host_detect_local_cpu): Add BFmode.
3618 * config/i386/i386.md ("mode"): Add BFmode.
3619 (MODE_SIZE): Ditto.
3620 (X87MODEFH): Ditto.
3621 (HFBF): Add new define_mode_iterator.
3622 (*pushhf_rex64): Change for BFmode.
3623 (*push<mode>_rex64): Ditto.
3624 (*pushhf): Ditto.
3625 (*push<mode>): Ditto.
3626 (MODESH): Ditto.
3627 (hfbfconstf): Add new define_mode_attr.
3628 (*mov<mode>_internal): Add BFmode.
3629
3630 2022-08-13 Roger Sayle <roger@nextmovesoftware.com>
3631 Uroš Bizjak <ubizjak@gmail.com>
3632
3633 * config/i386/predicates.md (const_0_to_255_not_mul_8_operand):
3634 New predicate for values between 0/1 and 255, not multiples of 8.
3635 * config/i386/sse.md (ashlv1ti3): Delay lowering of logical left
3636 shifts by constant bit counts.
3637 (*ashlvti3_internal): New define_insn_and_split that lowers
3638 logical left shifts by constant bit counts, that aren't multiples
3639 of 8, before reload.
3640 (lshrv1ti3): Delay lowering of logical right shifts by constant.
3641 (*lshrv1ti3_internal): New define_insn_and_split that lowers
3642 logical right shifts by constant bit counts, that aren't multiples
3643 of 8, before reload.
3644 (ashrv1ti3):: Delay lowering of arithmetic right shifts by
3645 constant bit counts.
3646 (*ashrv1ti3_internal): New define_insn_and_split that lowers
3647 arithmetic right shifts by constant bit counts before reload.
3648 (rotlv1ti3): Delay lowering of rotate left by constant.
3649 (*rotlv1ti3_internal): New define_insn_and_split that lowers
3650 rotate left by constant bits counts before reload.
3651 (rotrv1ti3): Delay lowering of rotate right by constant.
3652 (*rotrv1ti3_internal): New define_insn_and_split that lowers
3653 rotate right by constant bits counts before reload.
3654
3655 2022-08-12 Srinath Parvathaneni <srinath.parvathaneni@arm.com>
3656
3657 * doc/invoke.texi (Arm Options): Document -mcpu=cortex-m55 options.
3658
3659 2022-08-12 Jan Hubicka <hubicka@ucw.cz>
3660
3661 PR middle-end/106057
3662 * ipa-devirt.cc (type_or_derived_type_possibly_instantiated_p): New
3663 function.
3664 (possible_polymorphic_call_targets): Use it.
3665
3666 2022-08-12 Andrew Carlotti <andrew.carlotti@arm.com>
3667
3668 * tree-ssa-loop.h: Improve comment
3669
3670 2022-08-12 Jakub Jelinek <jakub@redhat.com>
3671
3672 PR tree-optimization/106506
3673 * tree-ssa-phiopt.cc (spaceship_replacement): Don't punt for
3674 is_cast or orig_use_lhs cases if phi_bb has 3 predecessors.
3675
3676 2022-08-12 Richard Biener <rguenther@suse.de>
3677
3678 PR tree-optimization/106593
3679 * tree-ssa-threadbackward.cc (back_threader::find_paths):
3680 If the imports from the conditional do not satisfy
3681 gimple_range_ssa_p don't try to thread anything.
3682
3683 2022-08-12 Tamar Christina <tamar.christina@arm.com>
3684
3685 PR target/106524
3686 * config/aarch64/aarch64-sve.md (*fcmuo<mode>_nor_combine,
3687 *fcmuo<mode>_bic_combine): Don't accept comparisons against zero.
3688
3689 2022-08-12 Tim Lange <mail@tim-lange.me>
3690
3691 PR analyzer/106000
3692 * doc/invoke.texi: Add Wanalyzer-out-of-bounds.
3693
3694 2022-08-12 Andrew Pinski <apinski@marvell.com>
3695
3696 * config/aarch64/aarch64.md: Remove comment
3697 about MD_INCLUDES as it is out of date and not needed.
3698
3699 2022-08-11 Richard Biener <rguenther@suse.de>
3700
3701 * gimple-range-path.cc (path_range_query::compute_imports):
3702 Restrict walking SSA defs to blocks inside the path. Track
3703 the same operands as range_def_chain::get_def_chain does.
3704
3705 2022-08-11 Richard Biener <rguenther@suse.de>
3706
3707 PR tree-optimization/106514
3708 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
3709 Compute and unwind both m_imports and interesting on the fly during
3710 path discovery.
3711 (back_threader::find_paths): Compute the original m_imports
3712 from just the SSA uses of the exit conditional. Drop
3713 handling single_succ_to_potentially_threadable_block.
3714 * gimple-range-path.cc (path_range_query::ssa_range_in_phi): Handle
3715 constant PHI arguments without crashing. Use PHI_ARG_DEF_FROM_EDGE.
3716
3717 2022-08-11 Richard Biener <rguenther@suse.de>
3718
3719 * gimple-range-path.h (path_range_query::compute_imports):
3720 Take path as argument, not the exit block.
3721 * gimple-range-path.cc (path_range_query::compute_imports):
3722 Likewise, and adjust, avoiding possibly stale m_path.
3723 (path_range_query::compute_outgoing_relations): Register
3724 relations for all conditionals.
3725 * tree-ssa-threadbackward.cc (back_threader::find_paths):
3726 Adjust.
3727
3728 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
3729
3730 * config/rs6000/rs6000-builtin.cc (rs6000_init_builtins): Fix the
3731 oversight on ENB_CELL by simplifying with rs6000_builtin_is_supported.
3732 (rs6000_expand_builtin): Simplify with rs6000_builtin_is_supported.
3733
3734 2022-08-11 Kewen Lin <linkw@linux.ibm.com>
3735
3736 * config/rs6000/rs6000-internal.h (rs6000_global_entry_point_needed_p):
3737 Remove function declaration.
3738
3739 2022-08-10 Richard Biener <rguenther@suse.de>
3740
3741 PR tree-optimization/106513
3742 * gimple-ssa-store-merging.cc (do_shift_rotate): Use uint64_t
3743 for head_marker.
3744
3745 2022-08-10 Martin Liska <mliska@suse.cz>
3746
3747 PR lto/106328
3748 * opts-jobserver.h (struct jobserver_info): Add pipefd.
3749 (jobserver_info::connect): New.
3750 (jobserver_info::disconnect): Likewise.
3751 (jobserver_info::get_token): Likewise.
3752 (jobserver_info::return_token): Likewise.
3753 * opts-common.cc: Implement the new functions.
3754
3755 2022-08-10 Martin Liska <mliska@suse.cz>
3756
3757 * opts-jobserver.h: Add one member.
3758 * opts-common.cc (jobserver_info::jobserver_info): Parse FIFO
3759 format of --jobserver-auth.
3760
3761 2022-08-10 Martin Liska <mliska@suse.cz>
3762
3763 * gcc.cc (driver::detect_jobserver): Remove and move to
3764 jobserver.h.
3765 * lto-wrapper.cc (jobserver_active_p): Likewise.
3766 (run_gcc): Likewise.
3767 * opts-jobserver.h: New file.
3768 * opts-common.cc (jobserver_info::jobserver_info): New function.
3769
3770 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
3771
3772 * config/i386/i386-features.cc (scalar_chain::convert_compare):
3773 Create new pseudos only when/if needed. Add support for TEST,
3774 i.e. (COMPARE (AND x y) (const_int 0)), using UNSPEC_PTEST.
3775 When broadcasting V2DImode and V4SImode use new pseudo register.
3776 (timode_scalar_chain::convert_op): Do nothing if operand is
3777 already V1TImode. Avoid generating useless SUBREG conversions,
3778 i.e. (SUBREG:V1TImode (REG:V1TImode) 0). Handle CONST_WIDE_INT
3779 in addition to CONST_INT by using CONST_SCALAR_INT_P.
3780 (convertible_comparison_p): Use CONST_SCALAR_INT_P to match both
3781 CONST_WIDE_INT and CONST_INT. Recognize new *testti_doubleword
3782 pattern as an STV candidate.
3783 (timode_scalar_to_vector_candidate_p): Allow CONST_SCALAR_INT_P
3784 operands in binary logic operations.
3785 * config/i386/i386.cc (ix86_rtx_costs) <case UNSPEC>: Add costs
3786 for UNSPEC_PTEST; a PTEST that performs an AND has the same cost
3787 as regular PTEST, i.e. cost->sse_op.
3788 * config/i386/i386.md (*testti_doubleword): New pre-reload
3789 define_insn_and_split that recognizes comparison of TI mode AND
3790 against zero.
3791 * config/i386/sse.md (*ptest<mode>_and): New pre-reload
3792 define_insn_and_split that recognizes UNSPEC_PTEST of identical
3793 AND operands.
3794
3795 2022-08-09 Roger Sayle <roger@nextmovesoftware.com>
3796 Richard Biener <rguenther@suse.de>
3797
3798 PR middle-end/21137
3799 PR tree-optimization/98954
3800 * fold-const.cc (fold_binary_loc): Remove optimizations to
3801 optimize ((X >> C1) & C2) ==/!= 0.
3802 * match.pd (cmp (bit_and (lshift @0 @1) @2) @3): Remove wi::ctz
3803 check, and handle all values of INTEGER_CSTs @2 and @3.
3804 (cmp (bit_and (rshift @0 @1) @2) @3): Likewise, remove wi::clz
3805 checks, and handle all values of INTEGER_CSTs @2 and @3.
3806
3807 2022-08-09 David Malcolm <dmalcolm@redhat.com>
3808
3809 * doc/invoke.texi (Static Analyzer Options): Add notes on which
3810 functions the analyzer has hardcoded knowledge of.
3811
3812 2022-08-09 Andrew Stubbs <ams@codesourcery.com>
3813
3814 * config/gcn/gcn.cc (gcn_function_value): Allow vector return values.
3815 (num_arg_regs): Allow vector arguments.
3816 (gcn_function_arg): Likewise.
3817 (gcn_function_arg_advance): Likewise.
3818 (gcn_arg_partial_bytes): Likewise.
3819 (gcn_return_in_memory): Likewise.
3820 (gcn_expand_epilogue): Get return value from v8.
3821 * config/gcn/gcn.h (RETURN_VALUE_REG): Set to v8.
3822 (FIRST_PARM_REG): USE FIRST_SGPR_REG for clarity.
3823 (FIRST_VPARM_REG): New.
3824 (FUNCTION_ARG_REGNO_P): Allow vector parameters.
3825 (struct gcn_args): Add vnum field.
3826 (LIBCALL_VALUE): All vector return values.
3827 * config/gcn/gcn.md (gcn_call_value): Add vector constraints.
3828 (gcn_call_value_indirect): Likewise.
3829
3830 2022-08-09 Richard Biener <rguenther@suse.de>
3831
3832 * omp-expand.cc (expand_omp_atomic_load): Emit GIMPLE
3833 directly. Avoid update_ssa when in SSA form.
3834 (expand_omp_atomic_store): Likewise.
3835 (expand_omp_atomic_fetch_op): Avoid update_ssa when in SSA
3836 form.
3837 (expand_omp_atomic_pipeline): Likewise.
3838 (expand_omp_atomic_mutex): Likewise.
3839 * tree-parloops.cc (gen_parallel_loop): Use
3840 TODO_update_ssa_no_phi after loop_version.
3841
3842 2022-08-09 Richard Biener <rguenther@suse.de>
3843
3844 * doc/invoke.texi (max-fsm-thread-length): Remove.
3845 * params.opt (max-fsm-thread-length): Likewise.
3846 * tree-ssa-threadbackward.cc
3847 (back_threader_profitability::profitable_path_p): Do not
3848 check max-fsm-thread-length.
3849
3850 2022-08-09 Richard Biener <rguenther@suse.de>
3851
3852 PR tree-optimization/106514
3853 * params.opt (max-jump-thread-paths): New.
3854 * doc/invoke.texi (max-jump-thread-paths): Document.
3855 * tree-ssa-threadbackward.cc (back_threader::find_paths_to_names):
3856 Honor max-jump-thread-paths, take overall_path argument.
3857 (back_threader::find_paths): Pass 1 as initial overall_path.
3858
3859 2022-08-09 Tobias Burnus <tobias@codesourcery.com>
3860
3861 PR middle-end/106492
3862 * omp-low.cc (lower_rec_input_clauses): Add missing folding
3863 to data type of linear-clause list item.
3864
3865 2022-08-08 Andrew MacLeod <amacleod@redhat.com>
3866
3867 PR tree-optimization/106556
3868 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use the
3869 type of the cond_expr operands being evaluted.
3870
3871 2022-08-08 Tom Honermann <tom@honermann.net>
3872
3873 * ginclude/stdatomic.h (atomic_char8_t,
3874 ATOMIC_CHAR8_T_LOCK_FREE): New typedef and macro.
3875
3876 2022-08-08 Andrew Pinski <apinski@marvell.com>
3877
3878 PR middle-end/103645
3879 * gimplify.cc (gimplify_init_constructor): Don't build/add
3880 gimple assignment of an empty type.
3881
3882 2022-08-08 Richard Biener <rguenther@suse.de>
3883
3884 PR lto/106540
3885 PR lto/106334
3886 * dwarf2out.cc (dwarf2out_register_external_die): Restore
3887 original assert.
3888 * lto-streamer-in.cc (lto_read_tree_1): Use lto_input_tree_1
3889 to input DECL_INITIAL, avoiding to commit drefs.
3890
3891 2022-08-07 Roger Sayle <roger@nextmovesoftware.com>
3892
3893 * config/i386/i386.md (*cmp<dwi>_doubleword): Change predicate
3894 for x86_64_hilo_general_operand to general operand. Call
3895 force_reg on parts that are not x86_64_immediate_operand.
3896
3897 2022-08-05 David Malcolm <dmalcolm@redhat.com>
3898
3899 PR analyzer/105947
3900 * doc/invoke.texi: Add -Wanalyzer-jump-through-null.
3901
3902 2022-08-05 Roger Sayle <roger@nextmovesoftware.com>
3903
3904 * expmed.cc (emit_store_flag_1): Move code to expand double word
3905 equality and inequality against zero or -1, using word operations,
3906 to after trying to use the backend's cstore<mode>4 optab/expander.
3907
3908 2022-08-05 Tamar Christina <tamar.christina@arm.com>
3909
3910 PR middle-end/106534
3911 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Guard the
3912 value_replacement and store_elim from diamonds.
3913
3914 2022-08-05 Richard Biener <rguenther@suse.de>
3915
3916 * tree-ssa-threadbackward.cc (back_threader::maybe_register_path):
3917 Check whether the registry register_path rejected the path.
3918 (back_threader_registry::register_path): Return whether
3919 register_jump_thread succeeded.
3920
3921 2022-08-05 Aldy Hernandez <aldyh@redhat.com>
3922
3923 PR tree-optimization/106514
3924 * value-range.cc (unsupported_range::unsupported_range): Move...
3925 * value-range.h (unsupported_range::unsupported_range): ...here.
3926 (unsupported_range::set_undefined): New.
3927
3928 2022-08-05 Richard Biener <rguenther@suse.de>
3929
3930 PR tree-optimization/106533
3931 * tree-loop-distribution.cc (loop_distribution::execute): Continue
3932 analyzing the inner loops when find_seed_stmts_for_distribution
3933 fails.
3934
3935 2022-08-05 Andrew Pinski <apinski@marvell.com>
3936
3937 * config/riscv/predicates.md (splittable_const_int_operand):
3938 Remove the check for TARGET_64BIT for single bit const values.
3939
3940 2022-08-04 Andrew MacLeod <amacleod@redhat.com>
3941
3942 PR tree-optimization/106514
3943 * gimple-range-path.cc (path_range_query::compute_ranges_in_block):
3944 Use EXECUTE_IF_AND_IN_BITMAP to loop over 2 bitmaps.
3945
3946 2022-08-04 Tamar Christina <tamar.christina@arm.com>
3947
3948 * match.pd: New bit_not rule.
3949
3950 2022-08-04 Tamar Christina <tamar.christina@arm.com>
3951
3952 PR middle-end/106519
3953 * tree-ssa-phiopt.cc (tree_ssa_phiopt_worker): Check final phi edge for
3954 diamond shapes.
3955
3956 2022-08-04 Sam Feifer <sfeifer@redhat.com>
3957
3958 PR tree-optimization/106243
3959 * match.pd (-x & 1): New simplification.
3960
3961 2022-08-04 Richard Biener <rguenther@suse.de>
3962
3963 PR tree-optimization/106521
3964 * gimple-loop-jam.cc (tree_loop_unroll_and_jam): Perform
3965 CFG cleanup manually before rewriting into LC SSA.
3966
3967 2022-08-04 Richard Biener <rguenther@suse.de>
3968
3969 * tree-ssa-threadbackward.cc (populate_worklist): Remove.
3970 (back_threader::resolve_phi): Likewise.
3971 (back_threader::find_paths_to_names): Rewrite greedy search.
3972
3973 2022-08-04 Ilya Leoshkevich <iii@linux.ibm.com>
3974
3975 * config/s390/vector.md (V_HW_FT): New iterator.
3976 * config/s390/vx-builtins.md (vsel<mode>): Use V_HW_FT instead
3977 of V_HW.
3978
3979 2022-08-03 Michael Meissner <meissner@linux.ibm.com>
3980
3981 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Remove code
3982 setting -mblock-ops-vector-pair.
3983
3984 2022-08-03 Andrew MacLeod <amacleod@redhat.com>
3985
3986 PR tree-optimization/106514
3987 * value-relation.cc (path_oracle::killing_def) Do not walk the
3988 equivalence set clearing bits.
3989
3990 2022-08-03 Tamar Christina <tamar.christina@arm.com>
3991
3992 * tree-ssa-phiopt.cc (minmax_replacement): Optionally search for the phi
3993 sequence of a three-way conditional.
3994 (replace_phi_edge_with_variable): Support diamonds.
3995 (tree_ssa_phiopt_worker): Detect diamond phi structure for three-way
3996 min/max.
3997 (strip_bit_not, invert_minmax_code): New.
3998
3999 2022-08-03 Richard Earnshaw <rearnsha@arm.com>
4000
4001 PR rtl-optimization/106187
4002 * alias.h (mems_same_for_tbaa_p): Declare.
4003 * alias.cc (mems_same_for_tbaa_p): New function.
4004 * dse.cc (record_store): Use it instead of open-coding
4005 alias check.
4006 * cselib.h (cselib_redundant_set_p): Declare.
4007 * cselib.cc: Include alias.h
4008 (cselib_redundant_set_p): New function.
4009 * cfgcleanup.cc: (mark_effect): Use cselib_redundant_set_p instead
4010 of rtx_equal_for_cselib_p.
4011 * postreload.cc (reload_cse_simplify): Use cselib_redundant_set_p.
4012 (reload_cse_noop_set_p): Delete.
4013
4014 2022-08-03 Martin Liska <mliska@suse.cz>
4015
4016 * doc/gcov-dump.texi: Document the new option.
4017 * gcov-dump.cc (main): Parse the new option.
4018 (print_usage): Show the option.
4019 (tag_counters): Sort key:value pairs of TOP N counter.
4020
4021 2022-08-03 Martin Liska <mliska@suse.cz>
4022
4023 * profile.cc (compute_branch_probabilities): Do not collect
4024 stats unless TDF_DETAILS.
4025
4026 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4027 Uroš Bizjak <ubizjak@gmail.com>
4028
4029 PR target/47949
4030 * config/i386/i386.md (peephole2): New peephole2 to convert
4031 SWI48 moves to/from %rax/%eax where the src is dead to xchg,
4032 when optimizing for minimal size with -Oz.
4033
4034 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4035
4036 * config/i386/i386.md (*cmp<dwi>_doubleword): Add a special case
4037 to split comparisons against -1 using AND and CMP -1 instructions.
4038
4039 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4040
4041 * config/i386/i386-features.cc (compute_convert_gain): Add gain
4042 for converting suitable TImode shift to a V1TImode shift.
4043 (timode_scalar_chain::convert_insn): Add support for converting
4044 suitable ASHIFT and LSHIFTRT.
4045 (timode_scalar_to_vector_candidate_p): Consider logical shifts
4046 by integer constants that are multiples of 8 to be candidates.
4047
4048 2022-08-03 Roger Sayle <roger@nextmovesoftware.com>
4049 Segher Boessenkool <segher@kernel.crashing.org>
4050 Richard Sandiford <richard.sandiford@arm.com>
4051
4052 * simplify-rtx.cc (simplify_unary_operation_1) <ABS>: Add
4053 optimizations for CLRSB, PARITY, POPCOUNT, SS_ABS and LSHIFTRT
4054 that are all positive to complement the existing FFS and
4055 idempotent ABS simplifications.
4056 <SIGN_EXTEND>: Canonicalize SIGN_EXTEND to ZERO_EXTEND when
4057 val_signbit_known_clear_p is true of the operand.
4058 Simplify sign extensions of SUBREG truncations of operands
4059 that are already suitably (zero) extended.
4060 <ZERO_EXTEND>: Simplify zero extensions of SUBREG truncations
4061 of operands that are already suitably zero extended.
4062
4063 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
4064
4065 PR tree-optimization/106510
4066 * gimple-range-fold.cc (fur_source::register_outgoing_edges):
4067 Check for unsupported statements early.
4068
4069 2022-08-02 Andrew MacLeod <amacleod@redhat.com>
4070
4071 PR tree-optimization/106474
4072 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Query
4073 range of equivalences that may contribute to the range.
4074
4075 2022-08-02 Jose E. Marchesi <jose.marchesi@oracle.com>
4076
4077 * btfout.cc (output_asm_btf_vlen_bytes): Do not use the CHAR
4078 encoding bit in BTF.
4079
4080 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4081
4082 * gimple-range-fold.cc (fold_using_range::range_of_phi): Remove
4083 irange check.
4084 (tree_lower_bound): New.
4085 (tree_upper_bound): New.
4086 (fold_using_range::range_of_ssa_name_with_loop_info): Convert to
4087 vrange.
4088 * gimple-range-fold.h (range_of_ssa_name_with_loop_info): Change
4089 argument to vrange.
4090
4091 2022-08-02 Richard Biener <rguenther@suse.de>
4092
4093 * tree-ssa-threadbackward.cc
4094 (back_threader_profitability::profitable_path_p): Apply
4095 size constraints to all paths again.
4096
4097 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4098
4099 * range-op-float.cc (finite_operands_p): New.
4100 (frelop_early_resolve): New.
4101 (default_frelop_fold_range): New.
4102 (class foperator_equal): New.
4103 (class foperator_not_equal): New.
4104 (class foperator_lt): New.
4105 (class foperator_le): New.
4106 (class foperator_gt): New.
4107 (class foperator_ge): New.
4108 (class foperator_unordered): New.
4109 (class foperator_ordered): New.
4110 (class foperator_relop_unknown): New.
4111 (floating_op_table::floating_op_table): Add above classes to
4112 floating op table.
4113 * value-range.h (frange::supports_p): Enable.
4114
4115 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4116
4117 * tree-core.h (struct tree_ssa_name): Add frange_info and
4118 reshuffle the rest.
4119 * value-range-storage.cc (vrange_storage::alloc_slot): Add case
4120 for frange.
4121 (vrange_storage::set_vrange): Same.
4122 (vrange_storage::get_vrange): Same.
4123 (vrange_storage::fits_p): Same.
4124 (frange_storage_slot::alloc_slot): New.
4125 (frange_storage_slot::set_frange): New.
4126 (frange_storage_slot::get_frange): New.
4127 (frange_storage_slot::fits_p): New.
4128 * value-range-storage.h (class frange_storage_slot): New.
4129
4130 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4131
4132 * ipa-prop.cc (ipa_compute_jump_functions_for_edge): Limit ranger
4133 query to integrals.
4134
4135 2022-08-02 Aldy Hernandez <aldyh@redhat.com>
4136
4137 * value-range.cc (frange::set): Initialize m_props and cleanup.
4138
4139 2022-08-02 Richard Biener <rguenther@suse.de>
4140
4141 PR tree-optimization/106497
4142 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
4143 Also verify we can copy EDGE_COPY_SRC_JOINER_BLOCK.
4144
4145 2022-08-02 Martin Liska <mliska@suse.cz>
4146
4147 * profile.cc (compute_branch_probabilities): Dump details only
4148 if TDF_DETAILS.
4149 * symtab.cc (symtab_node::dump_base): Do not dump pointer unless
4150 TDF_ADDRESS is used, it makes comparison harder.
4151
4152 2022-08-02 Richard Biener <rguenther@suse.de>
4153
4154 PR tree-optimization/106498
4155 * omp-expand.cc (expand_omp_taskreg): Do not perform virtual
4156 SSA update here.
4157 (expand_omp_for): Or here.
4158 (execute_expand_omp): Instead schedule it here together
4159 with CFG cleanup via TODO.
4160
4161 2022-08-02 Richard Biener <rguenther@suse.de>
4162
4163 PR lto/106334
4164 * dwarf2out.cc (dwarf2out_register_external_die): Adjust
4165 assert.
4166
4167 2022-08-02 Richard Biener <rguenther@suse.de>
4168
4169 PR tree-optimization/106495
4170 * tree-ssa-threadbackward.cc
4171 (back_threader_profitability::profitable_path_p): If known_edge
4172 is probably never executed avoid threading.
4173
4174 2022-08-01 David Malcolm <dmalcolm@redhat.com>
4175
4176 * doc/invoke.texi (-Wanalyzer-putenv-of-auto-var): Fix copy&paste
4177 error.
4178
4179 2022-08-01 Roger Sayle <roger@nextmovesoftware.com>
4180 Uroš Bizjak <ubizjak@gmail.com>
4181
4182 PR target/106481
4183 * config/i386/i386-features.cc (timode_scalar_chain::convert_insn):
4184 Convert a CONST_SCALAR_INT_P in a REG_EQUAL note into a V1TImode
4185 CONST_VECTOR.
4186
4187 2022-08-01 H.J. Lu <hjl.tools@gmail.com>
4188
4189 PR target/83782
4190 * config/i386/i386.cc (ix86_ifunc_ref_local_ok): New.
4191 (TARGET_IFUNC_REF_LOCAL_OK): Use it.
4192
4193 2022-08-01 Jose E. Marchesi <jose.marchesi@oracle.com>
4194
4195 PR debug/106263
4196 * ctfc.h (struct ctf_dtdef): Add field linkage.
4197 * ctfc.cc (ctf_add_function): Set ctti_linkage.
4198 * dwarf2ctf.cc (gen_ctf_function_type): Pass a linkage for
4199 function types and subprograms.
4200 * btfout.cc (btf_asm_func_type): Emit linkage information for the
4201 function.
4202 (btf_dtd_emit_preprocess_cb): Propagate the linkage information
4203 for functions.
4204
4205 2022-08-01 Andrew Stubbs <ams@codesourcery.com>
4206 Jakub Jelinek <jakub@redhat.com>
4207
4208 * omp-simd-clone.cc (simd_clone_adjust): Convert shift_cnt to match
4209 the mask type.
4210
4211 2022-08-01 Sam Feifer <sfeifer@redhat.com>
4212
4213 PR tree-optimization/104992
4214 * match.pd (x / y * y == x): New simplification.
4215
4216 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4217
4218 * value-range.cc (tree_compare): New.
4219 (frange::set): Make more general.
4220 (frange::normalize_kind): Cleanup and return bool.
4221 (frange::union_): Use normalize_kind return value.
4222 (frange::intersect): Same.
4223 (frange::verify_range): Remove unnecessary else.
4224 * value-range.h (vrp_val_max): Move before frange class.
4225 (vrp_val_min): Same.
4226 (frange::frange): Remove set to m_type.
4227
4228 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4229
4230 * value-range.cc (vrange::supports_type_p): Use const_tree.
4231 (irange::supports_type_p): Same.
4232 (frange::supports_type_p): Same.
4233 * value-range.h (Value_Range::supports_type_p): Same.
4234 (irange::supports_p): Same.
4235
4236 2022-08-01 Aldy Hernandez <aldyh@redhat.com>
4237
4238 * gimple-range-fold.cc (fold_using_range::range_of_phi): Only
4239 query SCEV for integers.
4240 (fold_using_range::range_of_ssa_name_with_loop_info): Remove
4241 irange check.
4242
4243 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
4244
4245 * config/i386/i386.md (define_expand <any_rotate>ti3): For
4246 rotations by 64 bits use new rot[lr]64ti2_doubleword pattern.
4247 (rot[lr]64ti2_doubleword): New post-reload splitter.
4248
4249 2022-07-31 Roger Sayle <roger@nextmovesoftware.com>
4250 H.J. Lu <hjl.tools@gmail.com>
4251
4252 PR target/106450
4253 * config/i386/i386-features.cc (timode_check_non_convertible_regs):
4254 Do nothing if REGNO is set in the REGS bitmap, or is a hard reg.
4255 (timode_remove_non_convertible_regs): Update comment.
4256 Call timode_check_non_convertible_reg on all TImode register
4257 DEFs and USEs in each instruction.
4258
4259 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4260
4261 * config/xtensa/xtensa.md: Change hard register number used in
4262 the split patterns for indirect sibling call fixups from 10 to 11,
4263 the last free one for the CALL0 ABI.
4264
4265 2022-07-30 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4266
4267 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
4268 Add new case for IF_THEN_ELSE.
4269
4270 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
4271
4272 * config/gcn/gcn-valu.md (V_INT_noHI): New iterator.
4273 (<expander><mode>3<exec>): Use V_INT_noHI.
4274 (v<expander><mode>3<exec>): Likewise.
4275
4276 2022-07-29 Andrew Stubbs <ams@codesourcery.com>
4277
4278 * config/gcn/gcn.md (one_cmpldi2): New.
4279
4280 2022-07-29 Richard Biener <rguenther@suse.de>
4281
4282 PR tree-optimization/105679
4283 * tree-ssa-threadbackward.cc
4284 (back_threader_profitability::profitable_path_p): Avoid threading
4285 when the entry edge is probably never executed.
4286
4287 2022-07-29 Richard Biener <rguenther@suse.de>
4288
4289 PR tree-optimization/106422
4290 * tree-ssa-threadupdate.cc (fwd_jt_path_registry::update_cfg):
4291 Check whether we can copy thread blocks and cancel the thread if not.
4292
4293 2022-07-29 Jakub Jelinek <jakub@redhat.com>
4294
4295 PR middle-end/106449
4296 * omp-expand.cc (expand_omp_simd): Fix up handling of pointer
4297 iterators in non-rectangular simd loops. Unshare fd->loops[i].n2
4298 or n2 before regimplifying it inside of a condition.
4299
4300 2022-07-29 Jakub Jelinek <jakub@redhat.com>
4301
4302 * omp-expand.cc (expand_omp_for_init_counts, expand_omp_for_init_vars,
4303 extract_omp_for_update_vars, expand_omp_for_ordered_loops,
4304 expand_omp_simd): Don't fold_convert second argument to
4305 fold_build_pointer_plus to sizetype.
4306
4307 2022-07-29 Lulu Cheng <chenglulu@loongson.cn>
4308
4309 * config.in: Regenerate.
4310 * config/loongarch/loongarch.h (ASM_PREFERRED_EH_DATA_FORMAT):
4311 Select the value of the macro definition according to whether
4312 HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT is defined.
4313 * configure: Regenerate.
4314 * configure.ac: Reinstate HAVE_AS_EH_FRAME_PCREL_ENCODING_SUPPORT test.
4315
4316 2022-07-29 Richard Biener <rguenther@suse.de>
4317
4318 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
4319 Use CONVERT_EXPR_CODE_P.
4320
4321 2022-07-29 Richard Biener <rguenther@suse.de>
4322
4323 * tree-vect-patterns.cc (vect_recog_bool_pattern): Use
4324 get_vectype_for_scalar_type instead of
4325 vect_get_vector_types_for_stmt.
4326
4327 2022-07-28 David Malcolm <dmalcolm@redhat.com>
4328
4329 PR analyzer/105893
4330 * doc/invoke.texi: Add -Wanalyzer-putenv-of-auto-var.
4331
4332 2022-07-28 David Malcolm <dmalcolm@redhat.com>
4333
4334 * doc/invoke.texi (-fdiagnostics-show-cwe): Use uref rather than
4335 url.
4336 (Static Analyzer Options): Likewise. Add urefs for all of the
4337 warnings that have associated CWE identifiers.
4338
4339 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
4340
4341 * doc/implement-c.texi (Floating point implementation): Mention
4342 `-fno-trapping-math' in the context of FENV_ACCESS pragma.
4343 * doc/invoke.texi (Optimize Options): Clarify FENV_ACCESS pragma
4344 implication in the descriptions of `-fno-trapping-math' and
4345 `-frounding-math'.
4346
4347 2022-07-28 Maciej W. Rozycki <macro@embecosm.com>
4348
4349 * config/riscv/riscv.md (UNSPECV_FSNVSNAN): New constant.
4350 (QUIET_PATTERN): New int attribute.
4351 (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): Emit the intended
4352 RTL insns entirely within the preparation statements.
4353 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
4354 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Remove
4355 insns.
4356 (*riscv_fsnvsnan<mode>2): New insn.
4357
4358 2022-07-28 Richard Biener <rguenther@suse.de>
4359
4360 PR middle-end/106457
4361 * tree.cc (array_at_struct_end_p): Handle array objects
4362 specially.
4363
4364 2022-07-28 Jakub Jelinek <jakub@redhat.com>
4365
4366 PR tree-optimization/106099
4367 * internal-fn.def (TRAP): New internal fn.
4368 * internal-fn.h (expand_TRAP): Declare.
4369 * internal-fn.cc (expand_TRAP): Define.
4370 * gimple.cc (gimple_build_builtin_unreachable): For BUILT_IN_TRAP,
4371 use internal fn rather than builtin.
4372
4373 2022-07-27 Andrew Carlotti <andrew.carlotti@arm.com>
4374
4375 * doc/loop.texi: Refer to LOOPS_HAVE_RECORDED_EXITS instead.
4376
4377 2022-07-27 WANG Xuerui <i@xen0n.name>
4378
4379 * doc/invoke.texi: Document -m[no-]explicit-relocs for
4380 LoongArch.
4381
4382 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
4383
4384 * config/riscv/riscv.md (stack_protect_set_<mode>): Remove
4385 duplicate backslashes.
4386
4387 2022-07-27 Maciej W. Rozycki <macro@embecosm.com>
4388
4389 * config/riscv/riscv.cc (riscv_rtx_costs) <IF_THEN_ELSE>: New
4390 case.
4391
4392 2022-07-27 Jakub Jelinek <jakub@redhat.com>
4393
4394 PR debug/106261
4395 * cgraphunit.cc (cgraph_node::assemble_thunks_and_aliases): Don't
4396 output asm thunks for -dx.
4397
4398 2022-07-27 Jakub Jelinek <jakub@redhat.com>
4399
4400 PR middle-end/106332
4401 * opts-common.cc (candidates_list_and_hint): Add gcc_assert
4402 that candidates is not an empty vector.
4403
4404 2022-07-27 Xi Ruoyao <xry111@xry111.site>
4405
4406 * configure.ac (HAVE_AS_EXPLICIT_RELOCS): Define to 1 if the
4407 assembler supports explicit relocation for LoongArch.
4408 * configure: Regenerate.
4409 * config/loongarch/loongarch-opts.h (HAVE_AS_EXPLICIT_RELOCS):
4410 Define to 0 if not defined.
4411 * config/loongarch/genopts/loongarch.opt.in
4412 (TARGET_EXPLICIT_RELOCS): Default to HAVE_AS_EXPLICIT_RELOCS.
4413 * config/loongarch/loongarch.opt: Regenerate.
4414
4415 2022-07-26 Peter Bergner <bergner@linux.ibm.com>
4416
4417 PR c/106016
4418 * expr.cc (count_type_elements): Handle OPAQUE_TYPE.
4419
4420 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
4421
4422 * config/loongarch/loongarch-opts.cc: Modify the output message string
4423 of the warning.
4424
4425 2022-07-26 Martin Liska <mliska@suse.cz>
4426
4427 * doc/tm.texi.in: Fix placement of defmac.
4428 * doc/tm.texi: Copy.
4429
4430 2022-07-26 Martin Liska <mliska@suse.cz>
4431
4432 * doc/tm.texi.in: Fix cross @defmac and @hook.
4433 * doc/tm.texi: Copy.
4434
4435 2022-07-26 Aldy Hernandez <aldyh@redhat.com>
4436
4437 PR tree-optimization/106444
4438 * value-range-pretty-print.cc (vrange_printer::visit): Handle
4439 legacy ranges.
4440 (vrange_printer::print_irange_bound): Work on wide_int's.
4441 * value-range-pretty-print.h (print_irange_bound): Same.
4442 * value-range.cc (irange::get_nonzero_bits): Handle legacy ranges.
4443
4444 2022-07-26 Richard Biener <rguenther@suse.de>
4445
4446 * tree-ssa-alias.cc (ptr_derefs_may_alias_p): If ptr1
4447 points to a constant continue checking ptr2.
4448
4449 2022-07-26 Andrew Carlotti <Andrew.Carlotti@arm.com>
4450
4451 * config/aarch64/aarch64-builtins.cc
4452 (MODE_d_bf16, MODE_d_f16, MODE_d_f32, MODE_d_f64, MODE_d_s8)
4453 (MODE_d_s16, MODE_d_s32, MODE_d_s64, MODE_d_u8, MODE_d_u16)
4454 (MODE_d_u32, MODE_d_u64, MODE_d_p8, MODE_d_p16, MODE_d_p64)
4455 (MODE_q_bf16, MODE_q_f16, MODE_q_f32, MODE_q_f64, MODE_q_s8)
4456 (MODE_q_s16, MODE_q_s32, MODE_q_s64, MODE_q_u8, MODE_q_u16)
4457 (MODE_q_u32, MODE_q_u64, MODE_q_p8, MODE_q_p16, MODE_q_p64)
4458 (MODE_q_p128): Define macro to map to corresponding mode name.
4459 (QUAL_bf16, QUAL_f16, QUAL_f32, QUAL_f64, QUAL_s8, QUAL_s16)
4460 (QUAL_s32, QUAL_s64, QUAL_u8, QUAL_u16, QUAL_u32, QUAL_u64)
4461 (QUAL_p8, QUAL_p16, QUAL_p64, QUAL_p128): Define macro to map to
4462 corresponding qualifier name.
4463 (LENGTH_d, LENGTH_q): Define macro to map to "" or "q" suffix.
4464 (SIMD_INTR_MODE, SIMD_INTR_QUAL, SIMD_INTR_LENGTH_CHAR): Macro
4465 functions for the above mappings
4466 (VREINTERPRET_BUILTIN2, VREINTERPRET_BUILTINS1, VREINTERPRET_BUILTINS)
4467 (VREINTERPRETQ_BUILTIN2, VREINTERPRETQ_BUILTINS1)
4468 (VREINTERPRETQ_BUILTINS, VREINTERPRET_BUILTIN)
4469 (AARCH64_SIMD_VREINTERPRET_BUILTINS): New macros to create definitions
4470 for all vreinterpret intrinsics
4471 (enum aarch64_builtins): Add vreinterpret function codes
4472 (aarch64_init_simd_intrinsics): New
4473 (handle_arm_neon_h): Improved comment.
4474 (aarch64_general_fold_builtin): Fold vreinterpret calls
4475 * config/aarch64/arm_neon.h
4476 (vreinterpret_p8_f16, vreinterpret_p8_f64, vreinterpret_p8_s8)
4477 (vreinterpret_p8_s16, vreinterpret_p8_s32, vreinterpret_p8_s64)
4478 (vreinterpret_p8_f32, vreinterpret_p8_u8, vreinterpret_p8_u16)
4479 (vreinterpret_p8_u32, vreinterpret_p8_u64, vreinterpret_p8_p16)
4480 (vreinterpret_p8_p64, vreinterpretq_p8_f64, vreinterpretq_p8_s8)
4481 (vreinterpretq_p8_s16, vreinterpretq_p8_s32, vreinterpretq_p8_s64)
4482 (vreinterpretq_p8_f16, vreinterpretq_p8_f32, vreinterpretq_p8_u8)
4483 (vreinterpretq_p8_u16, vreinterpretq_p8_u32, vreinterpretq_p8_u64)
4484 (vreinterpretq_p8_p16, vreinterpretq_p8_p64, vreinterpretq_p8_p128)
4485 (vreinterpret_p16_f16, vreinterpret_p16_f64, vreinterpret_p16_s8)
4486 (vreinterpret_p16_s16, vreinterpret_p16_s32, vreinterpret_p16_s64)
4487 (vreinterpret_p16_f32, vreinterpret_p16_u8, vreinterpret_p16_u16)
4488 (vreinterpret_p16_u32, vreinterpret_p16_u64, vreinterpret_p16_p8)
4489 (vreinterpret_p16_p64, vreinterpretq_p16_f64, vreinterpretq_p16_s8)
4490 (vreinterpretq_p16_s16, vreinterpretq_p16_s32, vreinterpretq_p16_s64)
4491 (vreinterpretq_p16_f16, vreinterpretq_p16_f32, vreinterpretq_p16_u8)
4492 (vreinterpretq_p16_u16, vreinterpretq_p16_u32, vreinterpretq_p16_u64)
4493 (vreinterpretq_p16_p8, vreinterpretq_p16_p64, vreinterpretq_p16_p128)
4494 (vreinterpret_p64_f16, vreinterpret_p64_f64, vreinterpret_p64_s8)
4495 (vreinterpret_p64_s16, vreinterpret_p64_s32, vreinterpret_p64_s64)
4496 (vreinterpret_p64_f32, vreinterpret_p64_u8, vreinterpret_p64_u16)
4497 (vreinterpret_p64_u32, vreinterpret_p64_u64, vreinterpret_p64_p8)
4498 (vreinterpret_p64_p16, vreinterpretq_p64_f64, vreinterpretq_p64_s8)
4499 (vreinterpretq_p64_s16, vreinterpretq_p64_s32, vreinterpretq_p64_s64)
4500 (vreinterpretq_p64_f16, vreinterpretq_p64_f32, vreinterpretq_p64_p128)
4501 (vreinterpretq_p64_u8, vreinterpretq_p64_u16, vreinterpretq_p64_p16)
4502 (vreinterpretq_p64_u32, vreinterpretq_p64_u64, vreinterpretq_p64_p8)
4503 (vreinterpretq_p128_p8, vreinterpretq_p128_p16, vreinterpretq_p128_f16)
4504 (vreinterpretq_p128_f32, vreinterpretq_p128_p64, vreinterpretq_p128_s64)
4505 (vreinterpretq_p128_u64, vreinterpretq_p128_s8, vreinterpretq_p128_s16)
4506 (vreinterpretq_p128_s32, vreinterpretq_p128_u8, vreinterpretq_p128_u16)
4507 (vreinterpretq_p128_u32, vreinterpret_f16_f64, vreinterpret_f16_s8)
4508 (vreinterpret_f16_s16, vreinterpret_f16_s32, vreinterpret_f16_s64)
4509 (vreinterpret_f16_f32, vreinterpret_f16_u8, vreinterpret_f16_u16)
4510 (vreinterpret_f16_u32, vreinterpret_f16_u64, vreinterpret_f16_p8)
4511 (vreinterpret_f16_p16, vreinterpret_f16_p64, vreinterpretq_f16_f64)
4512 (vreinterpretq_f16_s8, vreinterpretq_f16_s16, vreinterpretq_f16_s32)
4513 (vreinterpretq_f16_s64, vreinterpretq_f16_f32, vreinterpretq_f16_u8)
4514 (vreinterpretq_f16_u16, vreinterpretq_f16_u32, vreinterpretq_f16_u64)
4515 (vreinterpretq_f16_p8, vreinterpretq_f16_p128, vreinterpretq_f16_p16)
4516 (vreinterpretq_f16_p64, vreinterpret_f32_f16, vreinterpret_f32_f64)
4517 (vreinterpret_f32_s8, vreinterpret_f32_s16, vreinterpret_f32_s32)
4518 (vreinterpret_f32_s64, vreinterpret_f32_u8, vreinterpret_f32_u16)
4519 (vreinterpret_f32_u32, vreinterpret_f32_u64, vreinterpret_f32_p8)
4520 (vreinterpret_f32_p16, vreinterpret_f32_p64, vreinterpretq_f32_f16)
4521 (vreinterpretq_f32_f64, vreinterpretq_f32_s8, vreinterpretq_f32_s16)
4522 (vreinterpretq_f32_s32, vreinterpretq_f32_s64, vreinterpretq_f32_u8)
4523 (vreinterpretq_f32_u16, vreinterpretq_f32_u32, vreinterpretq_f32_u64)
4524 (vreinterpretq_f32_p8, vreinterpretq_f32_p16, vreinterpretq_f32_p64)
4525 (vreinterpretq_f32_p128, vreinterpret_f64_f16, vreinterpret_f64_f32)
4526 (vreinterpret_f64_p8, vreinterpret_f64_p16, vreinterpret_f64_p64)
4527 (vreinterpret_f64_s8, vreinterpret_f64_s16, vreinterpret_f64_s32)
4528 (vreinterpret_f64_s64, vreinterpret_f64_u8, vreinterpret_f64_u16)
4529 (vreinterpret_f64_u32, vreinterpret_f64_u64, vreinterpretq_f64_f16)
4530 (vreinterpretq_f64_f32, vreinterpretq_f64_p8, vreinterpretq_f64_p16)
4531 (vreinterpretq_f64_p64, vreinterpretq_f64_s8, vreinterpretq_f64_s16)
4532 (vreinterpretq_f64_s32, vreinterpretq_f64_s64, vreinterpretq_f64_u8)
4533 (vreinterpretq_f64_u16, vreinterpretq_f64_u32, vreinterpretq_f64_u64)
4534 (vreinterpret_s64_f16, vreinterpret_s64_f64, vreinterpret_s64_s8)
4535 (vreinterpret_s64_s16, vreinterpret_s64_s32, vreinterpret_s64_f32)
4536 (vreinterpret_s64_u8, vreinterpret_s64_u16, vreinterpret_s64_u32)
4537 (vreinterpret_s64_u64, vreinterpret_s64_p8, vreinterpret_s64_p16)
4538 (vreinterpret_s64_p64, vreinterpretq_s64_f64, vreinterpretq_s64_s8)
4539 (vreinterpretq_s64_s16, vreinterpretq_s64_s32, vreinterpretq_s64_f16)
4540 (vreinterpretq_s64_f32, vreinterpretq_s64_u8, vreinterpretq_s64_u16)
4541 (vreinterpretq_s64_u32, vreinterpretq_s64_u64, vreinterpretq_s64_p8)
4542 (vreinterpretq_s64_p16, vreinterpretq_s64_p64, vreinterpretq_s64_p128)
4543 (vreinterpret_u64_f16, vreinterpret_u64_f64, vreinterpret_u64_s8)
4544 (vreinterpret_u64_s16, vreinterpret_u64_s32, vreinterpret_u64_s64)
4545 (vreinterpret_u64_f32, vreinterpret_u64_u8, vreinterpret_u64_u16)
4546 (vreinterpret_u64_u32, vreinterpret_u64_p8, vreinterpret_u64_p16)
4547 (vreinterpret_u64_p64, vreinterpretq_u64_f64, vreinterpretq_u64_s8)
4548 (vreinterpretq_u64_s16, vreinterpretq_u64_s32, vreinterpretq_u64_s64)
4549 (vreinterpretq_u64_f16, vreinterpretq_u64_f32, vreinterpretq_u64_u8)
4550 (vreinterpretq_u64_u16, vreinterpretq_u64_u32, vreinterpretq_u64_p8)
4551 (vreinterpretq_u64_p16, vreinterpretq_u64_p64, vreinterpretq_u64_p128)
4552 (vreinterpret_s8_f16, vreinterpret_s8_f64, vreinterpret_s8_s16)
4553 (vreinterpret_s8_s32, vreinterpret_s8_s64, vreinterpret_s8_f32)
4554 (vreinterpret_s8_u8, vreinterpret_s8_u16, vreinterpret_s8_u32)
4555 (vreinterpret_s8_u64, vreinterpret_s8_p8, vreinterpret_s8_p16)
4556 (vreinterpret_s8_p64, vreinterpretq_s8_f64, vreinterpretq_s8_s16)
4557 (vreinterpretq_s8_s32, vreinterpretq_s8_s64, vreinterpretq_s8_f16)
4558 (vreinterpretq_s8_f32, vreinterpretq_s8_u8, vreinterpretq_s8_u16)
4559 (vreinterpretq_s8_u32, vreinterpretq_s8_u64, vreinterpretq_s8_p8)
4560 (vreinterpretq_s8_p16, vreinterpretq_s8_p64, vreinterpretq_s8_p128)
4561 (vreinterpret_s16_f16, vreinterpret_s16_f64, vreinterpret_s16_s8)
4562 (vreinterpret_s16_s32, vreinterpret_s16_s64, vreinterpret_s16_f32)
4563 (vreinterpret_s16_u8, vreinterpret_s16_u16, vreinterpret_s16_u32)
4564 (vreinterpret_s16_u64, vreinterpret_s16_p8, vreinterpret_s16_p16)
4565 (vreinterpret_s16_p64, vreinterpretq_s16_f64, vreinterpretq_s16_s8)
4566 (vreinterpretq_s16_s32, vreinterpretq_s16_s64, vreinterpretq_s16_f16)
4567 (vreinterpretq_s16_f32, vreinterpretq_s16_u8, vreinterpretq_s16_u16)
4568 (vreinterpretq_s16_u32, vreinterpretq_s16_u64, vreinterpretq_s16_p8)
4569 (vreinterpretq_s16_p16, vreinterpretq_s16_p64, vreinterpretq_s16_p128)
4570 (vreinterpret_s32_f16, vreinterpret_s32_f64, vreinterpret_s32_s8)
4571 (vreinterpret_s32_s16, vreinterpret_s32_s64, vreinterpret_s32_f32)
4572 (vreinterpret_s32_u8, vreinterpret_s32_u16, vreinterpret_s32_u32)
4573 (vreinterpret_s32_u64, vreinterpret_s32_p8, vreinterpret_s32_p16)
4574 (vreinterpret_s32_p64, vreinterpretq_s32_f64, vreinterpretq_s32_s8)
4575 (vreinterpretq_s32_s16, vreinterpretq_s32_s64, vreinterpretq_s32_f16)
4576 (vreinterpretq_s32_f32, vreinterpretq_s32_u8, vreinterpretq_s32_u16)
4577 (vreinterpretq_s32_u32, vreinterpretq_s32_u64, vreinterpretq_s32_p8)
4578 (vreinterpretq_s32_p16, vreinterpretq_s32_p64, vreinterpretq_s32_p128)
4579 (vreinterpret_u8_f16, vreinterpret_u8_f64, vreinterpret_u8_s8)
4580 (vreinterpret_u8_s16, vreinterpret_u8_s32, vreinterpret_u8_s64)
4581 (vreinterpret_u8_f32, vreinterpret_u8_u16, vreinterpret_u8_u32)
4582 (vreinterpret_u8_u64, vreinterpret_u8_p8, vreinterpret_u8_p16)
4583 (vreinterpret_u8_p64, vreinterpretq_u8_f64, vreinterpretq_u8_s8)
4584 (vreinterpretq_u8_s16, vreinterpretq_u8_s32, vreinterpretq_u8_s64)
4585 (vreinterpretq_u8_f16, vreinterpretq_u8_f32, vreinterpretq_u8_u16)
4586 (vreinterpretq_u8_u32, vreinterpretq_u8_u64, vreinterpretq_u8_p8)
4587 (vreinterpretq_u8_p16, vreinterpretq_u8_p64, vreinterpretq_u8_p128)
4588 (vreinterpret_u16_f16, vreinterpret_u16_f64, vreinterpret_u16_s8)
4589 (vreinterpret_u16_s16, vreinterpret_u16_s32, vreinterpret_u16_s64)
4590 (vreinterpret_u16_f32, vreinterpret_u16_u8, vreinterpret_u16_u32)
4591 (vreinterpret_u16_u64, vreinterpret_u16_p8, vreinterpret_u16_p16)
4592 (vreinterpret_u16_p64, vreinterpretq_u16_f64, vreinterpretq_u16_s8)
4593 (vreinterpretq_u16_s16, vreinterpretq_u16_s32, vreinterpretq_u16_s64)
4594 (vreinterpretq_u16_f16, vreinterpretq_u16_f32, vreinterpretq_u16_u8)
4595 (vreinterpretq_u16_u32, vreinterpretq_u16_u64, vreinterpretq_u16_p8)
4596 (vreinterpretq_u16_p16, vreinterpretq_u16_p64, vreinterpretq_u16_p128)
4597 (vreinterpret_u32_f16, vreinterpret_u32_f64, vreinterpret_u32_s8)
4598 (vreinterpret_u32_s16, vreinterpret_u32_s32, vreinterpret_u32_s64)
4599 (vreinterpret_u32_f32, vreinterpret_u32_u8, vreinterpret_u32_u16)
4600 (vreinterpret_u32_u64, vreinterpret_u32_p8, vreinterpret_u32_p16)
4601 (vreinterpret_u32_p64, vreinterpretq_u32_f64, vreinterpretq_u32_s8)
4602 (vreinterpretq_u32_s16, vreinterpretq_u32_s32, vreinterpretq_u32_s64)
4603 (vreinterpretq_u32_f16, vreinterpretq_u32_f32, vreinterpretq_u32_u8)
4604 (vreinterpretq_u32_u16, vreinterpretq_u32_u64, vreinterpretq_u32_p8)
4605 (vreinterpretq_u32_p16, vreinterpretq_u32_p64, vreinterpretq_u32_p128)
4606 (vreinterpretq_f64_p128, vreinterpretq_p128_f64, vreinterpret_bf16_u8)
4607 (vreinterpret_bf16_u16, vreinterpret_bf16_u32, vreinterpret_bf16_u64)
4608 (vreinterpret_bf16_s8, vreinterpret_bf16_s16, vreinterpret_bf16_s32)
4609 (vreinterpret_bf16_s64, vreinterpret_bf16_p8, vreinterpret_bf16_p16)
4610 (vreinterpret_bf16_p64, vreinterpret_bf16_f16, vreinterpret_bf16_f32)
4611 (vreinterpret_bf16_f64, vreinterpretq_bf16_u8, vreinterpretq_bf16_u16)
4612 (vreinterpretq_bf16_u32, vreinterpretq_bf16_u64, vreinterpretq_bf16_s8)
4613 (vreinterpretq_bf16_s16, vreinterpretq_bf16_s32, vreinterpretq_bf16_s64)
4614 (vreinterpretq_bf16_p8, vreinterpretq_bf16_p16, vreinterpretq_bf16_p64)
4615 (vreinterpretq_bf16_p128, vreinterpretq_bf16_f16)
4616 (vreinterpretq_bf16_f32, vreinterpretq_bf16_f64, vreinterpret_s8_bf16)
4617 (vreinterpret_s16_bf16, vreinterpret_s32_bf16, vreinterpret_s64_bf16)
4618 (vreinterpret_u8_bf16, vreinterpret_u16_bf16, vreinterpret_u32_bf16)
4619 (vreinterpret_u64_bf16, vreinterpret_f16_bf16, vreinterpret_f32_bf16)
4620 (vreinterpret_f64_bf16, vreinterpret_p8_bf16, vreinterpret_p16_bf16)
4621 (vreinterpret_p64_bf16, vreinterpretq_s8_bf16, vreinterpretq_s16_bf16)
4622 (vreinterpretq_s32_bf16, vreinterpretq_s64_bf16, vreinterpretq_u8_bf16)
4623 (vreinterpretq_u16_bf16, vreinterpretq_u32_bf16, vreinterpretq_u64_bf16)
4624 (vreinterpretq_f16_bf16, vreinterpretq_f32_bf16, vreinterpretq_f64_bf16)
4625 (vreinterpretq_p8_bf16, vreinterpretq_p16_bf16, vreinterpretq_p64_bf16)
4626 (vreinterpretq_p128_bf16): Delete
4627
4628 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
4629
4630 * config/aarch64/aarch64-builtins.cc
4631 (aarch64_simd_builtin_std_type): Rename to...
4632 (aarch64_int_or_fp_type): ...this, and allow irrelevant qualifiers.
4633 (aarch64_lookup_simd_builtin_type): Rename to...
4634 (aarch64_simd_builtin_type): ...this. Add const/pointer
4635 support, and extract table lookup to...
4636 (aarch64_lookup_simd_type_in_table): ...this function.
4637 (aarch64_init_crc32_builtins): Update to use aarch64_simd_builtin_type.
4638 (aarch64_init_fcmla_laneq_builtins): Ditto.
4639 (aarch64_init_simd_builtin_functions): Ditto.
4640
4641 2022-07-26 Andrew Carlotti <andrew.carlotti@arm.com>
4642
4643 * config/aarch64/aarch64-builtins.cc
4644 (aarch64_general_gimple_fold_builtin): Add combine.
4645
4646 2022-07-26 Richard Biener <rguenther@suse.de>
4647
4648 PR tree-optimization/106189
4649 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref):
4650 Divide using offset_ints.
4651
4652 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
4653
4654 * common/config/loongarch/loongarch-common.cc:
4655 Enable '-fsection-anchors' when O1 and more advanced optimization.
4656 * config/loongarch/genopts/loongarch.opt.in: Add new option
4657 '-mexplicit-relocs', and enable by default.
4658 * config/loongarch/loongarch-protos.h (loongarch_split_move_insn_p):
4659 Delete function declaration.
4660 (loongarch_split_move_insn): Delete function declaration.
4661 (loongarch_split_symbol_type): Add function declaration.
4662 * config/loongarch/loongarch.cc (enum loongarch_address_type):
4663 Add new address type 'ADDRESS_LO_SUM'.
4664 (loongarch_classify_symbolic_expression): New function definitions.
4665 Classify the base of symbolic expression X, given that X appears in
4666 context CONTEXT.
4667 (loongarch_symbol_insns): Add a judgment condition TARGET_EXPLICIT_RELOCS.
4668 (loongarch_split_symbol_type): New function definitions.
4669 Determines whether the symbol load should be split into two instructions.
4670 (loongarch_valid_lo_sum_p): New function definitions.
4671 Return true if a LO_SUM can address a value of mode MODE when the LO_SUM
4672 symbol has type SYMBOL_TYPE.
4673 (loongarch_classify_address): Add handling of 'LO_SUM'.
4674 (loongarch_address_insns): Add handling of 'ADDRESS_LO_SUM'.
4675 (loongarch_signed_immediate_p): Sort code.
4676 (loongarch_12bit_offset_address_p): Return true if address type is ADDRESS_LO_SUM.
4677 (loongarch_const_insns): Add handling of 'HIGH'.
4678 (loongarch_split_move_insn_p): Add the static attribute to the function.
4679 (loongarch_emit_set): New function definitions.
4680 (loongarch_call_tls_get_addr): Add symbol handling when defining TARGET_EXPLICIT_RELOCS.
4681 (loongarch_legitimize_tls_address): Add symbol handling when defining the
4682 TARGET_EXPLICIT_RELOCS macro.
4683 (loongarch_split_symbol): New function definitions. Split symbol.
4684 (loongarch_legitimize_address): Add codes see if the address can split into a high part
4685 and a LO_SUM.
4686 (loongarch_legitimize_const_move): Add codes split moves of symbolic constants into
4687 high and low.
4688 (loongarch_split_move_insn): Delete function definitions.
4689 (loongarch_output_move): Add support for HIGH and LO_SUM.
4690 (loongarch_print_operand_reloc): New function definitions.
4691 Print symbolic operand OP, which is part of a HIGH or LO_SUM in context CONTEXT.
4692 (loongarch_memmodel_needs_release_fence): Sort code.
4693 (loongarch_print_operand): Rearrange alphabetical order and add H and L to support HIGH
4694 and LOW output.
4695 (loongarch_print_operand_address): Add handling of 'ADDRESS_LO_SUM'.
4696 (TARGET_MIN_ANCHOR_OFFSET): Define macro to -IMM_REACH/2.
4697 (TARGET_MAX_ANCHOR_OFFSET): Define macro to IMM_REACH/2-1.
4698 * config/loongarch/loongarch.md (movti): Delete the template.
4699 (*movti): Delete the template.
4700 (movtf): Delete the template.
4701 (*movtf): Delete the template.
4702 (*low<mode>): New template of normal symbol low address.
4703 (@tls_low<mode>): New template of tls symbol low address.
4704 (@ld_from_got<mode>): New template load address from got table.
4705 (@ori_l_lo12<mode>): New template.
4706 * config/loongarch/loongarch.opt: Update from loongarch.opt.in.
4707 * config/loongarch/predicates.md: Add support for symbol_type HIGH.
4708
4709 2022-07-26 Lulu Cheng <chenglulu@loongson.cn>
4710
4711 * config/loongarch/constraints.md (a): Delete the constraint.
4712 (b): A constant call not local address.
4713 (h): Delete the constraint.
4714 (t): Delete the constraint.
4715 * config/loongarch/loongarch-opts.cc (loongarch_config_target):
4716 Remove cModel type support other than normal.
4717 * config/loongarch/loongarch-protos.h (enum loongarch_symbol_type):
4718 Add new symbol type 'SYMBOL_PCREL', 'SYMBOL_TLS_IE' and 'SYMBOL_TLS_LE'.
4719 (loongarch_split_symbol): Delete useless function declarations.
4720 (loongarch_split_symbol_type): Delete useless function declarations.
4721 * config/loongarch/loongarch.cc (enum loongarch_address_type):
4722 Delete unnecessary comment information.
4723 (loongarch_symbol_binds_local_p): Modified the judgment order of label
4724 and symbol.
4725 (loongarch_classify_symbol): Return symbol type. If symbol is a label,
4726 or symbol is a local symbol return SYMBOL_PCREL. If is a tls symbol,
4727 return SYMBOL_TLS. If is a not local symbol return SYMBOL_GOT_DISP.
4728 (loongarch_symbolic_constant_p): Add handling of 'SYMBOL_TLS_IE'
4729 'SYMBOL_TLS_LE' and 'SYMBOL_PCREL'.
4730 (loongarch_symbol_insns): Add handling of 'SYMBOL_TLS_IE' 'SYMBOL_TLS_LE'
4731 and 'SYMBOL_PCREL'.
4732 (loongarch_address_insns): Sort code.
4733 (loongarch_12bit_offset_address_p): Sort code.
4734 (loongarch_14bit_shifted_offset_address_p): Sort code.
4735 (loongarch_call_tls_get_addr): Sort code.
4736 (loongarch_legitimize_tls_address): Sort code.
4737 (loongarch_output_move): Remove schema support for cmodel other than normal.
4738 (loongarch_memmodel_needs_release_fence): Sort code.
4739 (loongarch_print_operand): Sort code.
4740 * config/loongarch/loongarch.h (LARCH_U12BIT_OFFSET_P):
4741 Rename to LARCH_12BIT_OFFSET_P.
4742 (LARCH_12BIT_OFFSET_P): New macro.
4743 * config/loongarch/loongarch.md: Reimplement the function call. Remove schema
4744 support for cmodel other than normal.
4745 * config/loongarch/predicates.md (is_const_call_weak_symbol): Delete this predicate.
4746 (is_const_call_plt_symbol): Delete this predicate.
4747 (is_const_call_global_noplt_symbol): Delete this predicate.
4748 (is_const_call_no_local_symbol): New predicate, determines whether it is a local
4749 symbol or label.
4750
4751 2022-07-26 Kewen Lin <linkw@linux.ibm.com>
4752
4753 PR target/106091
4754 * config/rs6000/rs6000-p8swap.cc (replace_swapped_aligned_store): Copy
4755 REG_EH_REGION when replacing one store insn having it.
4756 (replace_swapped_aligned_load): Likewise.
4757
4758 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
4759
4760 * Makefile.in (OBJS): Add range-op-float.o.
4761 * range-op.cc (get_float_handler): New.
4762 (range_op_handler::range_op_handler): Save code and type for
4763 delayed querying.
4764 (range_op_handler::oeprator bool): Move from header file, and
4765 add support for floats.
4766 (range_op_handler::fold_range): Add support for floats.
4767 (range_op_handler::op1_range): Same.
4768 (range_op_handler::op2_range): Same.
4769 (range_op_handler::lhs_op1_relation): Same.
4770 (range_op_handler::lhs_op2_relation): Same.
4771 (range_op_handler::op1_op2_relation): Same.
4772 * range-op.h (class range_operator_float): New.
4773 (class floating_op_table): New.
4774 * value-query.cc (range_query::get_tree_range): Add case for
4775 REAL_CST.
4776 * range-op-float.cc: New file.
4777
4778 2022-07-25 Roger Sayle <roger@nextmovesoftware.com>
4779 Uroš Bizjak <ubizjak@gmail.com>
4780
4781 PR target/91681
4782 * config/i386/i386-expand.cc (split_double_concat): A new helper
4783 function for setting a double word value from two word values.
4784 * config/i386/i386-protos.h (split_double_concat): Prototype here.
4785 * config/i386/i386.md (zero_extendditi2): New define_insn_and_split.
4786 (*add<dwi>3_doubleword_zext): New define_insn_and_split.
4787 (*sub<dwi>3_doubleword_zext): New define_insn_and_split.
4788 (*concat<mode><dwi>3_1): New define_insn_and_split replacing
4789 previous define_split for implementing DST = (HI<<32)|LO as
4790 pair of move instructions, setting lopart and hipart.
4791 (*concat<mode><dwi>3_2): Likewise.
4792 (*concat<mode><dwi>3_3): Likewise, where HI is zero_extended.
4793 (*concat<mode><dwi>3_4): Likewise, where HI is zero_extended.
4794
4795 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
4796
4797 PR middle-end/106432
4798 * gimple-range.cc (gimple_ranger::range_on_edge): Return false
4799 when the result range type is unsupported.
4800
4801 2022-07-25 Sebastian Huber <sebastian.huber@embedded-brains.de>
4802
4803 * config/rs6000/rtems.h (CPLUSPLUS_CPP_SPEC): Undef.
4804
4805 2022-07-25 Richard Biener <rguenther@suse.de>
4806
4807 PR middle-end/106414
4808 * match.pd (~(x ^ y) -> x == y): Restrict to single bit
4809 precision types.
4810
4811 2022-07-25 Andre Vieira <andre.simoesdiasvieira@arm.com>
4812
4813 * config/aarch64/aarch64.md (rbit<mode>2): Rename this ...
4814 (@aarch64_rbit<mode>): ... to this and change it in...
4815 (ffs<mode>2,ctz<mode>2): ... here.
4816 (@aarch64_rev16<mode>): New.
4817 * config/aarch64/aarch64-builtins.cc: (aarch64_builtins):
4818 Define the following enum AARCH64_REV16, AARCH64_REV16L,
4819 AARCH64_REV16LL, AARCH64_RBIT, AARCH64_RBITL, AARCH64_RBITLL.
4820 (aarch64_init_data_intrinsics): New.
4821 (aarch64_general_init_builtins): Add call to
4822 aarch64_init_data_intrinsics.
4823 (aarch64_expand_builtin_data_intrinsic): New.
4824 (aarch64_general_expand_builtin): Add call to
4825 aarch64_expand_builtin_data_intrinsic.
4826 * config/aarch64/arm_acle.h (__clz, __clzl, __clzll, __cls, __clsl,
4827 __clsll, __rbit, __rbitl, __rbitll, __rev, __revl, __revll, __rev16,
4828 __rev16l, __rev16ll, __ror, __rorl, __rorll, __revsh): New.
4829
4830 2022-07-25 Martin Liska <mliska@suse.cz>
4831
4832 * doc/extend.texi: Remove trailing whitespaces.
4833 * doc/invoke.texi: Likewise.
4834
4835 2022-07-25 Aldy Hernandez <aldyh@redhat.com>
4836
4837 * value-range-pretty-print.cc (vrange_printer::visit): New.
4838 (vrange_printer::print_frange_prop): New.
4839 * value-range-pretty-print.h (class vrange_printer): Add visit and
4840 print_frange_prop.
4841 * value-range-storage.h (vrange_allocator::alloc_vrange): Handle frange.
4842 (vrange_allocator::alloc_frange): New.
4843 * value-range.cc (vrange::operator=): Handle frange.
4844 (vrange::operator==): Same.
4845 (frange::accept): New.
4846 (frange::set): New.
4847 (frange::normalize_kind): New.
4848 (frange::union_): New.
4849 (frange::intersect): New.
4850 (frange::operator=): New.
4851 (frange::operator==): New.
4852 (frange::supports_type_p): New.
4853 (frange::verify_range): New.
4854 * value-range.h (enum value_range_discriminator): Handle frange.
4855 (class fp_prop): New.
4856 (FP_PROP_ACCESSOR): New.
4857 (class frange_props): New.
4858 (FRANGE_PROP_ACCESSOR): New.
4859 (class frange): New.
4860 (Value_Range::init): Handle frange.
4861 (Value_Range::operator=): Same.
4862 (Value_Range::supports_type_p): Same.
4863 (frange_props::operator==): New.
4864 (frange_props::union_): New.
4865 (frange_props::intersect): New
4866 (frange::frange): New.
4867 (frange::type): New.
4868 (frange::set_varying): New.
4869 (frange::set_undefined): New.
4870
4871 2022-07-25 Peter Bergner <bergner@linux.ibm.com>
4872 Kewen Lin <linkw@linux.ibm.com>
4873
4874 PR testsuite/106345
4875 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Adjust -mdejagnu-cpu
4876 to filter out all -mtune options.
4877
4878 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
4879
4880 * value-query.cc (range_query::get_value_range): Add assert.
4881 * vr-values.cc (vr_values::range_of_expr): Make sure we don't ICE
4882 on unsupported types in vr_values.
4883 (simplify_using_ranges::simplify): Same.
4884
4885 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
4886
4887 * tree-ssanames.cc (get_nonzero_bits): Return -1 for unsupported
4888 types.
4889 * value-query.cc (get_ssa_name_range_info): Remove precision check.
4890
4891 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
4892
4893 * value-relation.cc (value_relation::set_relation): Remove assert.
4894 (path_oracle::register_relation): Exit when trying to register
4895 same SSA name relations.
4896
4897 2022-07-24 Aldy Hernandez <aldyh@redhat.com>
4898
4899 * gimple-range-cache.cc (ranger_cache::edge_range): Convert to vrange.
4900 (ranger_cache::range_from_dom): Same.
4901 * tree-ssa-dom.cc
4902 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): Same.
4903
4904 2022-07-24 Roger Sayle <roger@nextmovesoftware.com>
4905 H.J. Lu <hjl.tools@gmail.com>
4906
4907 PR target/106303
4908 PR target/106347
4909 * config/i386/i386-features.cc (make_vector_copies): Move from
4910 general_scalar_chain to scalar_chain.
4911 (convert_reg): Likewise.
4912 (convert_insn_common): New scalar_chain method split out from
4913 general_scalar_chain convert_insn.
4914 (convert_registers): Move from general_scalar_chain to
4915 scalar_chain.
4916 (scalar_chain::convert): Call convert_insn_common before calling
4917 convert_insn.
4918 (timode_remove_non_convertible_regs): Iterate until there are
4919 no further changes to the candidates.
4920 * config/i386/i386-features.h (scalar_chain::hash_map): Move
4921 from general_scalar_chain.
4922 (scalar_chain::convert_reg): Likewise.
4923 (scalar_chain::convert_insn_common): New shared method.
4924 (scalar_chain::make_vector_copies): Move from general_scalar_chain.
4925 (scalar_chain::convert_registers): Likewise. No longer virtual.
4926 (general_scalar_chain::hash_map): Delete. Moved to scalar_chain.
4927 (general_scalar_chain::convert_reg): Likewise.
4928 (general_scalar_chain::make_vector_copies): Likewise.
4929 (general_scalar_chain::convert_registers): Delete virtual method.
4930 (timode_scalar_chain::convert_registers): Likewise.
4931
4932 2022-07-23 Immad Mir <mirimmad@outlook.com>
4933
4934 * doc/extend.texi: Add fd_arg, fd_arg_read and fd_arg_write under
4935 "Common Function Attributes" section.
4936 * doc/invoke.texi: Add docs to -Wanalyzer-fd-access-mode-mismatch,
4937 -Wanalyzer-use-after-close, -Wanalyzer-fd-use-without-check that these
4938 warnings may be emitted through usage of three function attributes used
4939 for static analysis of file descriptors namely fd_arg, fd_arg_read and
4940 fd_arg_write.
4941
4942 2022-07-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
4943
4944 * config/xtensa/xtensa.md (*masktrue_const_bitcmpl):
4945 Add a new insn_and_split pattern, and a few split patterns for
4946 spacial cases.
4947
4948 2022-07-22 Richard Sandiford <richard.sandiford@arm.com>
4949
4950 * graphds.cc (graphds_scc): Fix algorithm attribution.
4951
4952 2022-07-22 Richard Biener <rguenther@suse.de>
4953
4954 PR tree-optimization/106403
4955 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Move stored
4956 value valueization after check for IFN_MASKED_STORE or
4957 IFN_LEN_STORE.
4958
4959 2022-07-22 Richard Biener <rguenther@suse.de>
4960
4961 PR tree-optimization/106397
4962 * tree-ssa-loop-prefetch.cc (emit_mfence_after_loop): Do
4963 not update SSA form here.
4964 (mark_nontemporal_stores): Return whether we marked any
4965 non-temporal stores and inserted mfence.
4966 (loop_prefetch_arrays): Note when we need to update SSA.
4967 (tree_ssa_prefetch_arrays): Perform required (LC) SSA update
4968 at the end of the pass.
4969
4970 2022-07-22 Richard Biener <rguenther@suse.de>
4971
4972 PR tree-optimization/106387
4973 * tree-vect-stmts.cc (vectorizable_load): Use make_ssa_name
4974 if ptr is not an SSA name.
4975
4976 2022-07-22 liuhongt <hongtao.liu@intel.com>
4977
4978 PR target/106038
4979 * config/i386/mmx.md (<code><mode>3): New define_expand, it's
4980 original "<code><mode>3".
4981 (*<code><mode>3): New define_insn, it's original
4982 "<code><mode>3" be extended to handle memory and immediate
4983 operand with ix86_binary_operator_ok. Also adjust define_split
4984 after it.
4985 (mmxinsnmode): New mode attribute.
4986 (*mov<mode>_imm): Refactor with mmxinsnmode.
4987 * config/i386/predicates.md
4988 (register_or_x86_64_const_vector_operand): New predicate.
4989
4990 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
4991
4992 * config/rs6000/altivec.md:
4993 (vstrir_code_<mode>): Rename to...
4994 (vstrir_direct_<mode>): ... this.
4995 (vstrir_p_code_<mode>): Rename to...
4996 (vstrir_p_direct_<mode>): ... this.
4997 (vstril_code_<mode>): Rename to...
4998 (vstril_direct_<mode>): ... this.
4999 (vstril_p_code_<mode>): Rename to...
5000 (vstril_p_direct_<mode>): ... this.
5001
5002 2022-07-22 Will Schmidt <will_schmidt@vnet.ibm.com>
5003
5004 * config/rs6000/rs6000-c.cc: Update comments.
5005 (rs6000_target_modify_macros): Remove bu_mask references.
5006 (rs6000_define_or_undefine_macro): Replace bu_mask reference
5007 with a rs6000_cpu value check.
5008 (rs6000_cpu_cpp_builtins): Remove rs6000_builtin_mask_calculate()
5009 parameter from call to rs6000_target_modify_macros.
5010 * config/rs6000/rs6000-protos.h (rs6000_target_modify_macros,
5011 rs6000_target_modify_macros_ptr): Remove parameter from extern
5012 for the prototype.
5013 * config/rs6000/rs6000.cc (rs6000_target_modify_macros_ptr): Remove
5014 parameter from prototype, update calls to this function.
5015 (rs6000_print_builtin_options): Remove prototype, call and function.
5016 (rs6000_builtin_mask_calculate): Remove function.
5017 (rs6000_debug_reg_global): Remove call to rs6000_print_builtin_options.
5018 (rs6000_option_override_internal): Remove rs6000_builtin_mask var
5019 and builtin_mask debug output.
5020 (rs6000_builtin_mask_names): Remove.
5021 (rs6000_pragma_target_parse): Remove prev_bumask, cur_bumask,
5022 diff_bumask references; Update calls to rs6000_target_modify_ptr.
5023 * config/rs6000/rs6000.opt (rs6000_builtin_mask): Remove.
5024
5025 2022-07-21 Sam Feifer <sfeifer@redhat.com>
5026
5027 PR tree-optimization/94920
5028 * match.pd (x >= 0 ? x : 0) + (x <= 0 ? -x : 0): New simplification.
5029 (x <= 0 ? -x : 0): New simplification.
5030
5031 2022-07-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5032
5033 Revert:
5034 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5035
5036 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
5037 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
5038
5039 2022-07-21 Richard Biener <rguenther@suse.de>
5040
5041 PR tree-optimization/106379
5042 * match.pd (~(a ^ b) -> a == b): New pattern.
5043
5044 2022-07-21 Richard Biener <rguenther@suse.de>
5045
5046 PR tree-optimization/106378
5047 * tree-ssa-dse.cc (initialize_ao_ref_for_dse): Handle
5048 LEN_STORE, add mode to initialize a may-def and handle
5049 MASK_STORE that way.
5050 (dse_optimize_stmt): Query may-defs. Handle internal
5051 functions LEN_STORE and MASK_STORE similar to how
5052 we handle memory builtins but without byte tracking.
5053
5054 2022-07-21 Richard Biener <rguenther@suse.de>
5055
5056 PR tree-optimization/106365
5057 * tree-ssa-sccvn.cc (pd_data::rhs_off): New field determining
5058 the offset to start encoding of RHS from.
5059 (vn_walk_cb_data::vn_walk_cb_data): Initialize it.
5060 (vn_walk_cb_data::push_partial_def): Allow the first partial
5061 definition to be fully providing the def. Offset RHS
5062 before encoding if requested.
5063 (vn_reference_lookup_3): Initialize def_rhs everywhere.
5064 Add support for .MASK_STORE and .LEN_STORE (partial) definitions.
5065
5066 2022-07-21 Richard Biener <rguenther@suse.de>
5067
5068 * tree-ssa-alias.cc (ref_maybe_used_by_call_p_1): Special-case
5069 store internal functions and IFN_MASK_LOAD, IFN_LEN_LOAD
5070 and IFN_MASK_LOAD_LANES.
5071 (call_may_clobber_ref_p_1): Special-case IFN_MASK_STORE,
5072 IFN_LEN_STORE and IFN_MASK_STORE_LANES.
5073
5074 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
5075
5076 PR rtl-optimization/101347
5077 * builtins.cc (expand_builtin) [BUILT_IN_SETJMP_SETUP]: Move
5078 population of nonlocal_goto_handler_labels from here ...
5079 (expand_builtin) [BUILT_IN_SETJMP_RECEIVER]: ... to here.
5080 * rtlanal.cc (remove_node_from_insn_list): Verify that a
5081 duplicate is not present in the remainder of the list.
5082
5083 2022-07-20 Alexander Monakov <amonakov@ispras.ru>
5084
5085 * rtl.h (remove_node_from_expr_list): Remove declaration.
5086 * rtlanal.cc (remove_node_from_expr_list): Remove (no uses).
5087
5088 2022-07-20 Richard Biener <rguenther@suse.de>
5089
5090 * tree-vect-data-refs.cc (bump_vector_ptr): Return an
5091 invariant updated address when the input was invariant.
5092
5093 2022-07-20 liuhongt <hongtao.liu@intel.com>
5094
5095 * passes.def: (Split pass_cse_sincos to pass_expand_powcabs
5096 and pass_cse_sincos, and move pass_cse_sincos after vectorizer).
5097 * timevar.def (TV_TREE_POWCABS): New timevar.
5098 * tree-pass.h (make_pass_expand_powcabs): Split from pass_cse_sincos.
5099 * tree-ssa-math-opts.cc (gimple_expand_builtin_cabs): Ditto.
5100 (class pass_expand_powcabs): Ditto.
5101 (pass_expand_powcabs::execute): Ditto.
5102 (make_pass_expand_powcabs): Ditto.
5103 (pass_cse_sincos::execute): Remove pow/cabs expand part.
5104 (make_pass_cse_sincos): Ditto.
5105
5106 2022-07-20 Richard Biener <richard.guenther@gmail.com>
5107 Hongtao Liu <hongtao.liu@intel.com>
5108
5109 PR tree-optimization/106010
5110 * tree-complex.cc (init_dont_simulate_again): Lower complex
5111 type move.
5112 (expand_complex_move): Also expand COMPLEX_CST for rhs.
5113
5114 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
5115
5116 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check
5117 for incoming ranges on join nodes and add to worklist.
5118
5119 2022-07-19 Andrew MacLeod <amacleod@redhat.com>
5120
5121 * gimple-range-cache.cc (ranger_cache::resolve_dom): New.
5122 (ranger_cache::range_from_dom): Put all nodes to be calculated
5123 in the worklist and resolve after the dom walk.
5124 * gimple-range-cache.h (resolve_dom): New prototype.
5125
5126 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5127
5128 * tree-cfg.cc (gimple_verify_flow_info): Check placement of
5129 returns_twice calls.
5130
5131 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5132
5133 * cfghooks.cc (duplicate_block): Expand comment.
5134 * tree-cfg.cc (gimple_can_duplicate_bb_p): Reject blocks with
5135 calls that may return twice.
5136
5137 2022-07-19 Alexander Monakov <amonakov@ispras.ru>
5138
5139 * tree-ssa-sink.cc (select_best_block): Punt if selected block
5140 has incoming abnormal edges.
5141
5142 2022-07-19 Martin Liska <mliska@suse.cz>
5143
5144 * doc/extend.texi: Remove trailing :.
5145
5146 2022-07-19 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5147
5148 * tree-ssa-forwprop.cc (simplify_permutation): Use lhs type
5149 instead of TREE_TYPE (arg0) as result type in folding VEC_PERM_EXPR.
5150
5151 2022-07-19 Richard Biener <rguenther@suse.de>
5152
5153 PR middle-end/106331
5154 * builtins.cc (get_memory_rtx): Compute alignment from
5155 the original address and set MEM_OFFSET to unknown when
5156 we create a MEM_EXPR from the base object of the address.
5157
5158 2022-07-19 Richard Biener <rguenther@suse.de>
5159
5160 PR lto/106334
5161 * dwarf2out.cc (dwarf2out_register_external_die): Allow
5162 map entry re-use during WPA.
5163
5164 2022-07-19 Roger Sayle <roger@nextmovesoftware.com>
5165 Richard Biener <rguenther@suse.de>
5166
5167 PR c/106264
5168 * builtins.cc (fold_builtin_frexp): Call suppress_warning on
5169 COMPOUND_EXPR to silence spurious warning if result isn't used.
5170 (fold_builtin_modf): Likewise.
5171 (do_mpfr_remquo): Likewise.
5172
5173 2022-07-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5174
5175 * config/xtensa/xtensa.cc (xtensa_rtx_costs):
5176 Change the relative cost of '(set (reg) (const_int N))' where
5177 N fits into signed 12-bit from 4 to 0 if optimizing for size.
5178 And use the appropriate macro instead of the bare number 4.
5179
5180 2022-07-18 Andrew MacLeod <amacleod@redhat.com>
5181
5182 PR tree-optimization/106280
5183 * value-relation.cc (dom_oracle::register_relation): Register
5184 transitives only when it is possible for there to be one.
5185 (dom_oracle::set_one_relation): Return NULL if this is an
5186 existing relation.
5187
5188 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5189
5190 * doc/invoke.texi (RISC-V Options): Add index references for
5191 `mrelax' and `mriscv-attribute'.
5192
5193 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5194
5195 * doc/invoke.texi (Option Summary): Add missing second space
5196 around `-mstack-protector-guard-reg='.
5197
5198 2022-07-18 Maciej W. Rozycki <macro@embecosm.com>
5199
5200 * doc/invoke.texi (Option Summary): Fix `-mno-riscv-attribute'.
5201 (RISC-V Options): Likewise, and `-mriscv-attribute'.
5202
5203 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
5204
5205 * config/arc/arc-arch.h (arc_tune_attr): Add
5206 ARC_TUNE_ARCHS4X_REL31A variant.
5207 * config/arc/arc.cc (arc_override_options): Tune options for
5208 release 310a.
5209 (arc_sched_issue_rate): Use correct enum.
5210 (arc600_corereg_hazard): Textual change.
5211 (arc_hazard): Add release 310a tunning.
5212 * config/arc/arc.md (tune): Update and take into consideration new
5213 tune option.
5214 (tune_dspmpy): Likewise.
5215 (tune_store): New attribute.
5216 * config/arc/arc.opt (mtune): New tune option.
5217 * config/arc/arcHS4x.md (hs4x_brcc0, hs4x_brcc1): New cpu units.
5218 (hs4x_brcc_op): New instruction rezervation.
5219 (hs4x_data_store_1_op): Likewise.
5220 * config/arc/arc-cpus.def (hs4x_rel31): New cpu variant.
5221 * config/arc/arc-tables.opt: Regenerate.
5222 * config/arc/t-multilib: Likewise.
5223 * doc/invoke.texi (ARC): Update mcpu and tune sections.
5224
5225 2022-07-18 Richard Biener <rguenther@suse.de>
5226
5227 * tree-loop-distribution.cc (loop_distribution::distribute_loop):
5228 When computing cost-based merging do not disregard builtin
5229 classified partitions in some cases.
5230
5231 2022-07-18 Richard Sandiford <richard.sandiford@arm.com>
5232
5233 PR target/106253
5234 * config/arm/arm-builtins.cc (arm_builtin_vectorized_function):
5235 Delete.
5236 * config/arm/arm-protos.h (arm_builtin_vectorized_function): Delete.
5237 * config/arm/arm.cc (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION):
5238 Delete.
5239 * config/arm/arm_neon_builtins.def (copysignf): Delete.
5240 * config/arm/iterators.md (nvrint_pattern): New attribute.
5241 * config/arm/neon.md (<NEON_VRINT:nvrint_pattern><VCVTF:mode>2):
5242 New pattern.
5243 (l<NEON_VCVT:nvrint_pattern><su_optab><VCVTF:mode><v_cmp_result>2):
5244 Likewise.
5245 (neon_copysignf<mode>): Rename to...
5246 (copysign<mode>3): ...this.
5247
5248 2022-07-18 Claudiu Zissulescu <claziss@gmail.com>
5249
5250 * config/arc/arc.cc (arc_expand_epilogue): Adjust the frame
5251 pointer first when in interrupts.
5252
5253 2022-07-18 Richard Biener <rguenther@suse.de>
5254
5255 * tree-loop-distribution.cc (copy_loop_before): Add
5256 the ability to replace the original LC PHI defs.
5257 (generate_loops_for_partition): Pass through a flag
5258 whether to redirect original LC PHI defs.
5259 (generate_code_for_partition): Likewise.
5260 (loop_distribution::distribute_loop): Compute the partition
5261 that should provide the LC PHI defs for common reductions
5262 and pass that down.
5263
5264 2022-07-18 Richard Ball <richard.ball@arm.com>
5265
5266 * config/aarch64/aarch64.cc (aarch64_evpc_trn): Use std:swap.
5267 (aarch64_evpc_uzp): Likewise.
5268 (aarch64_evpc_zip): Likewise.
5269
5270 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5271
5272 PR target/106231
5273 * config/i386/i386.md (*ctzsidi2_<s>ext): New insn_and_split
5274 to recognize any_extend:DI of ctz:SI which is implicitly extended.
5275 (*ctzsidi2_<s>ext_falsedep): New define_insn to model a DImode
5276 extended ctz:SI that has preceding xor to break false dependency.
5277
5278 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5279
5280 * config/i386/predicates.md (x86_64_const_vector_operand):
5281 Check the operand's mode matches the specified mode argument.
5282
5283 2022-07-18 Roger Sayle <roger@nextmovesoftware.com>
5284
5285 * config/i386/sse.md (kunpckhi): Add UNSPEC_MASKOP unspec.
5286 (kunpcksi): Likewise, add UNSPEC_MASKOP unspec.
5287 (kunpckdi): Likewise, add UNSPEC_MASKOP unspec.
5288 (vec_pack_trunc_qi): Update to specify the now required
5289 UNSPEC_MASKOP unspec.
5290 (vec_pack_trunc_<mode>): Likewise.
5291
5292 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5293
5294 * config/xtensa/xtensa.md
5295 (*masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
5296 *masktrue_const_shifted_mask): If the immediate for bitwise AND is
5297 represented as '-(1 << N)', decrease the lower bound of N from 12
5298 to 1. And the other immediate for conditional branch is now no
5299 longer limited to zero, but also one of some positive integers.
5300 Finally, remove the checks of some conditions, because the comparison
5301 expressions that don't satisfy such checks are determined as
5302 compile-time constants and thus will be optimized away before
5303 RTL expansion.
5304
5305 2022-07-16 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5306
5307 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth): Remove.
5308 (xtensa_constantsynth_2insn): Change to try all three synthetic
5309 methods and to use the one that fits the immediate value of
5310 the seed into a Narrow Move Immediate instruction "MOVI.N"
5311 when the Code Density Option is configured.
5312
5313 2022-07-15 H.J. Lu <hjl.tools@gmail.com>
5314
5315 PR target/85620
5316 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
5317 false if callee has indirect_return attribute and caller
5318 doesn't.
5319
5320 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
5321
5322 PR target/106273
5323 * config/i386/i386.md (*andn<dwi>3_doubleword_bmi): Update the
5324 constraints to reflect the output is earlyclobber, unless it is
5325 the same register (pair) as one of the operands.
5326
5327 2022-07-15 David Malcolm <dmalcolm@redhat.com>
5328
5329 * doc/invoke.texi (Static Analyzer Options): Add the new fd
5330 warnings to the initial gccoptlist, and to the list of those
5331 disabled by -fanalyzer-checker=taint.
5332
5333 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
5334
5335 * config/aarch64/aarch64-builtins.cc
5336 (enum aarch64_type_qualifiers): Remove qualifier_internal.
5337 (aarch64_init_simd_builtin_functions): Remove qualifier_internal check.
5338
5339 2022-07-15 Andrew Carlotti <andrew.carlotti@arm.com>
5340
5341 * config/aarch64/aarch64-builtins.cc
5342 (v1di_UP): Add V1DI mode to _UP macros.
5343 * config/aarch64/aarch64-modes.def (VECTOR_MODE): Add V1DI mode.
5344 * config/aarch64/aarch64-simd-builtin-types.def: Use V1DI mode.
5345 * config/aarch64/aarch64-simd.md
5346 (vec_extractv2dfv1df): Replace with...
5347 (vec_extract<mode><V1half>): ...this.
5348 * config/aarch64/aarch64.cc
5349 (aarch64_classify_vector_mode): Add V1DI mode.
5350 * config/aarch64/iterators.md
5351 (VQ_2E, V1HALF, V1half): New.
5352 (nunits): Add V1DI mode.
5353
5354 2022-07-15 Roger Sayle <roger@nextmovesoftware.com>
5355
5356 PR target/106278
5357 * config/i386/i386-features.cc (general_scalar_chain::convert_insn):
5358 Fix indentation whitespace.
5359 (timode_scalar_chain::fix_debug_reg_uses): Likewise.
5360 (timode_scalar_chain::convert_insn): Delete dead code.
5361 Update TImode REG_EQUAL_NOTE even if the SET_DEST is already V1TI.
5362 Fix indentation whitespace.
5363 (convertible_comparison_p): Likewise.
5364 (timode_scalar_to_vector_candidate_p): Likewise.
5365
5366 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5367
5368 * gimple-pretty-print.cc (dump_ssaname_info): Use pp_vrange.
5369
5370 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5371
5372 * Makefile.in (OBJS): Add value-range-pretty-print.o.
5373 * pretty-print.h (pp_vrange): New.
5374 * value-range.cc (vrange::dump): Call pp version.
5375 (unsupported_range::dump): Move to its own file.
5376 (dump_bound_with_infinite_markers): Same.
5377 (irange::dump): Same.
5378 (irange::dump_bitmasks): Same.
5379 (vrange::debug): Remove.
5380 * value-range.h: Remove virtual designation for dump methods.
5381 Remove dump_bitmasks method.
5382 * value-range-pretty-print.cc: New file.
5383 * value-range-pretty-print.h: New file.
5384
5385 2022-07-15 Aldy Hernandez <aldyh@redhat.com>
5386
5387 * value-range.cc (irange::accept): New.
5388 (unsupported_range::accept): New.
5389 * value-range.h (class vrange_visitor): New.
5390 (class vrange): Add accept method.
5391 (class unsupported_range): Same.
5392 (class Value_Range): Same.
5393
5394 2022-07-15 Jonathan Wakely <jwakely@redhat.com>
5395
5396 * diagnostic-format-json.cc (json_from_location_range): Adjust
5397 to new label_text API.
5398 * diagnostic-format-sarif.cc (sarif_builder::make_location_object):
5399 Likewise.
5400 * diagnostic-show-locus.cc (struct pod_label_text): Likewise.
5401 (layout::print_any_labels): Likewise.
5402 * tree-diagnostic-path.cc (class path_label): Likewise.
5403 (struct event_range): Likewise.
5404 (default_tree_diagnostic_path_printer): Likewise.
5405 (default_tree_make_json_for_path): Likewise.
5406
5407 2022-07-15 konglin1 <lingling.kong@intel.com>
5408
5409 PR target/106113
5410 * config/i386/i386-builtin.def (BDESC): Fix [u]comi{ss,sd}
5411 comparison due to intrinsics changed over time.
5412 * config/i386/i386-expand.cc (ix86_ssecom_setcc):
5413 Add unordered check and mode for sse comi codegen.
5414 (ix86_expand_sse_comi): Add unordered check and check a different
5415 CCmode.
5416 (ix86_expand_sse_comi_round):Extract unordered check and mode part
5417 in ix86_ssecom_setcc.
5418
5419 2022-07-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5420
5421 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Use
5422 op_mode instead of vmode in calls to force_reg for op0 and op1.
5423
5424 2022-07-14 H.J. Lu <hjl.tools@gmail.com>
5425
5426 PR tree-optimization/103798
5427 * tree-ssa-forwprop.cc: Include "tree-ssa-strlen.h".
5428 (simplify_builtin_call): Inline memchr with constant strings of
5429 no more than the bytes of a word.
5430 * tree-ssa-strlen.cc (use_in_zero_equality): Make it global.
5431 * tree-ssa-strlen.h (use_in_zero_equality): New.
5432
5433 2022-07-14 Eric Botcazou <ebotcazou@adacore.com>
5434
5435 * gimplify.cc (lookup_tmp_var): Add NOT_GIMPLE_REG boolean parameter
5436 and set DECL_NOT_GIMPLE_REG_P on the variable according to it.
5437 (internal_get_tmp_var): Add NOT_GIMPLE_REG boolean parameter and
5438 pass it in the call to lookup_tmp_var.
5439 (get_formal_tmp_var): Pass false in the call to lookup_tmp_var.
5440 (get_initialized_tmp_var): Likewise.
5441 (prepare_gimple_addressable): Call internal_get_tmp_var instead of
5442 get_initialized_tmp_var with NOT_GIMPLE_REG set to true.
5443
5444 2022-07-14 Martin Liska <mliska@suse.cz>
5445
5446 * doc/gimple.texi: Close properly a deftypefn.
5447
5448 2022-07-14 Martin Liska <mliska@suse.cz>
5449
5450 * doc/gimple.texi: Close properly a deftypefn.
5451
5452 2022-07-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
5453
5454 * config/xtensa/xtensa.md:
5455 In FP constant synthesis split pattern, subcontract to
5456 avoid_constant_pool_reference() as in the case of integer,
5457 because it can handle well too. And cast to int32_t before
5458 calling xtensa_constantsynth() in order to ignore upper 32-bit.
5459
5460 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
5461
5462 * range-op.cc (operator_lt::fold_range): Use nonzero bits.
5463
5464 2022-07-13 Aldy Hernandez <aldyh@redhat.com>
5465
5466 * value-range.cc (irange::copy_to_legacy): Set nonzero mask.
5467 (irange::legacy_intersect): Clear nonzero mask.
5468 (irange::legacy_union): Same.
5469 (irange::invert): Same.
5470
5471 2022-07-13 Richard Biener <rguenther@suse.de>
5472
5473 * tree-ssa-dom.h (record_temporary_equivalences): Remove.
5474 * tree-ssa-dom.cc (dom_jt_state::m_blocks_on_stack): New.
5475 (dom_jt_state::get_blocks_on_stack): Likewise.
5476 (dom_opt_dom_walker::dom_opt_dom_walker): Take dom_jt_state.
5477 (back_propagate_equivalences): Remove dominator bitmap
5478 compute and instead use passed in m_blocks_on_stack.
5479 (record_temporary_equivalences): Likewise.
5480 (record_equivalences_from_incoming_edge): Likewise.
5481 (dom_opt_dom_walker::before_dom_children): Maintain and
5482 pass down blocks on stack.
5483 (dom_opt_dom_walker::after_dom_children): Likewise.
5484
5485 2022-07-13 Andrew Carlotti <andrew.carlotti@arm.com>
5486
5487 * config/aarch64/aarch64-builtins.cc
5488 (aarch64_general_gimple_fold_builtin): Add fixup for invalid GIMPLE.
5489
5490 2022-07-13 Richard Biener <rguenther@suse.de>
5491
5492 PR tree-optimization/106249
5493 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop):
5494 Only verify LC SSA of the new_loop if we created it.
5495 Use TODO_update_ssa_nophi for the SSA update after versioning
5496 the loop.
5497
5498 2022-07-12 Aldy Hernandez <aldyh@redhat.com>
5499
5500 * range-op.cc (unsigned_singleton_p): Remove.
5501 (operator_bitwise_and::remove_impossible_ranges): Remove.
5502 (operator_bitwise_and::fold_range): Set nonzero bits. *
5503 * value-range.cc (irange::get_nonzero_bits): Remove
5504 legacy_mode_p assert.
5505 (irange::dump_bitmasks): Remove legacy_mode_p check.
5506
5507 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
5508
5509 PR target/106253
5510 * predict.h (insn_optimization_type): Declare.
5511 * predict.cc (insn_optimization_type): New function.
5512 * internal-fn.def (IFN_ICEIL, IFN_IFLOOR, IFN_IRINT, IFN_IROUND)
5513 (IFN_LCEIL, IFN_LFLOOR, IFN_LRINT, IFN_LROUND, IFN_LLCEIL)
5514 (IFN_LLFLOOR, IFN_LLRINT, IFN_LLROUND): New internal functions.
5515 * internal-fn.cc (unary_convert_direct): New macro.
5516 (expand_convert_optab_fn): New function.
5517 (expand_unary_convert_optab_fn): New macro.
5518 (direct_unary_convert_optab_supported_p): Likewise.
5519 * optabs.cc (expand_sfix_optab): Pass insn_optimization_type to
5520 convert_optab_handler.
5521 * config/aarch64/aarch64-protos.h
5522 (aarch64_builtin_vectorized_function): Delete.
5523 * config/aarch64/aarch64-builtins.cc
5524 (aarch64_builtin_vectorized_function): Delete.
5525 * config/aarch64/aarch64.cc
5526 (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Delete.
5527 * config/i386/i386.cc (ix86_optab_supported_p): Handle lround_optab.
5528 * config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2): Remove
5529 optimize_insn_for_size_p test.
5530
5531 2022-07-12 Richard Biener <rguenther@suse.de>
5532
5533 * tree-vect-loop-manip.cc (create_lcssa_for_virtual_phi):
5534 Remove.
5535 (vect_do_peeling): Do not call it, adjust comment.
5536
5537 2022-07-12 Richard Sandiford <richard.sandiford@arm.com>
5538
5539 * config/aarch64/aarch64-builtins.cc
5540 (aarch64_builtin_vectorized_function): Remove handling of
5541 floor, ceil, trunc, round, nearbyint, sqrt, clz and ctz.
5542
5543 2022-07-11 Andrew MacLeod <amacleod@redhat.com>
5544
5545 PR tree-optimization/106234
5546 * gimple-range-cache.cc (ranger_cache::range_from_dom): Check dominator
5547 cache value before recursively resolving it.
5548
5549 2022-07-11 Roger Sayle <roger@nextmovesoftware.com>
5550
5551 * config/i386/i386-features.h (scalar_chain): Add fields
5552 insns_conv, n_sse_to_integer and n_integer_to_sse to this
5553 parent class, moved from general_scalar_chain.
5554 (scalar_chain::convert_compare): Protected method moved
5555 from general_scalar_chain.
5556 (mark_dual_mode_def): Make protected, not private virtual.
5557 (scalar_chain:convert_op): New private virtual method.
5558 (general_scalar_chain::general_scalar_chain): Simplify constructor.
5559 (general_scalar_chain::~general_scalar_chain): Delete destructor.
5560 (general_scalar_chain): Move insns_conv, n_sse_to_integer and
5561 n_integer_to_sse fields to parent class, scalar_chain.
5562 (general_scalar_chain::mark_dual_mode_def): Delete prototype.
5563 (general_scalar_chain::convert_compare): Delete prototype.
5564 (timode_scalar_chain::compute_convert_gain): Remove simplistic
5565 implementation, convert to a method prototype.
5566 (timode_scalar_chain::mark_dual_mode_def): Delete prototype.
5567 (timode_scalar_chain::convert_op): Prototype new virtual method.
5568 * config/i386/i386-features.cc (scalar_chain::scalar_chain):
5569 Allocate insns_conv and initialize n_sse_to_integer and
5570 n_integer_to_sse fields in constructor.
5571 (scalar_chain::scalar_chain): Free insns_conv in destructor.
5572 (general_scalar_chain::general_scalar_chain): Delete
5573 constructor, now defined in the class declaration.
5574 (general_scalar_chain::~general_scalar_chain): Delete destructor.
5575 (scalar_chain::mark_dual_mode_def): Renamed from
5576 general_scalar_chain::mark_dual_mode_def.
5577 (timode_scalar_chain::mark_dual_mode_def): Delete.
5578 (scalar_chain::convert_compare): Renamed from
5579 general_scalar_chain::convert_compare.
5580 (timode_scalar_chain::compute_convert_gain): New method to
5581 determine the gain from converting a TImode chain to V1TImode.
5582 (timode_scalar_chain::convert_op): New method to convert an
5583 operand from TImode to V1TImode.
5584 (timode_scalar_chain::convert_insn) <case REG>: Only PUT_MODE
5585 on REG_EQUAL notes that were originally TImode (not CONST_INT).
5586 Handle AND, ANDN, XOR, IOR, NOT and COMPARE.
5587 (timode_mem_p): Helper predicate to check where operand is
5588 memory reference with sufficient alignment for TImode STV.
5589 (timode_scalar_to_vector_candidate_p): Use convertible_comparison_p
5590 to check whether COMPARE is convertible. Handle SET_DESTs that
5591 that are REG_P or MEM_P and SET_SRCs that are REG, CONST_INT,
5592 CONST_WIDE_INT, MEM, AND, ANDN, IOR, XOR or NOT.
5593
5594 2022-07-11 Richard Sandiford <richard.sandiford@arm.com>
5595
5596 PR tree-optimization/106250
5597 * tree-vect-loop.cc (vectorizable_reduction): Reinstate final
5598 argument to directly_supported_p.
5599
5600 2022-07-11 Richard Biener <rguenther@suse.de>
5601
5602 * tree-into-ssa.cc (update_ssa): Do not forcefully
5603 re-compute dominance fast queries for TODO_update_ssa_no_phi.
5604
5605 2022-07-11 Richard Biener <rguenther@suse.de>
5606
5607 PR tree-optimization/106228
5608 * tree-vect-data-refs.cc (vect_setup_realignment): Adjust
5609 VUSE compute for the non-loop case.
5610
5611 2022-07-11 Richard Biener <rguenther@suse.de>
5612
5613 * tree-into-ssa.cc (rewrite_mode::REWRITE_UPDATE_REGION): New.
5614 (rewrite_update_dom_walker::rewrite_update_dom_walker): Update.
5615 (rewrite_update_dom_walker::m_in_region_flag): New.
5616 (rewrite_update_dom_walker::before_dom_children): If the region
5617 to update is marked, STOP at exits.
5618 (rewrite_blocks): For REWRITE_UPDATE_REGION mark the region
5619 to be updated.
5620 (dump_update_ssa): Use bitmap_empty_p.
5621 (update_ssa): Likewise. Use REWRITE_UPDATE_REGION when
5622 TODO_update_ssa_no_phi.
5623 * tree-cfgcleanup.cc (cleanup_tree_cfg_noloop): Account
5624 pending update_ssa to the caller.
5625
5626 2022-07-11 Richard Biener <rguenthert@suse.de>
5627
5628 PR target/105459
5629 * config/i386/i386-options.cc (ix86_set_current_function):
5630 Rebuild the target optimization node whenever necessary,
5631 not only when the optimization node didn't change.
5632
5633 2022-07-11 Richard Biener <rguenther@suse.de>
5634
5635 PR tree-optimization/106228
5636 * tree-vect-data-refs.cc (vect_setup_realignment): Properly
5637 set a VUSE operand on the emitted load.
5638
5639 2022-07-11 Aldy Hernandez <aldyh@redhat.com>
5640
5641 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove
5642 verification against legacy value_range.
5643 (gimple_ranger::register_inferred_ranges): Same.
5644 (gimple_ranger::export_global_ranges): Rename update_global_range
5645 to set_range_info.
5646 * tree-core.h (struct range_info_def): Remove.
5647 (struct irange_storage_slot): New.
5648 (struct tree_base): Remove SSA_NAME_ANTI_RANGE_P documentation.
5649 (struct tree_ssa_name): Add vrange_storage support.
5650 * tree-ssanames.cc (range_info_p): New.
5651 (range_info_fits_p): New.
5652 (range_info_alloc): New.
5653 (range_info_free): New.
5654 (range_info_get_range): New.
5655 (range_info_set_range): New.
5656 (set_range_info_raw): Remove.
5657 (set_range_info): Adjust to use vrange_storage.
5658 (set_nonzero_bits): Same.
5659 (get_nonzero_bits): Same.
5660 (duplicate_ssa_name_range_info): Remove overload taking
5661 value_range_kind.
5662 Rewrite tree overload to use vrange_storage.
5663 (duplicate_ssa_name_fn): Adjust to use vrange_storage.
5664 * tree-ssanames.h (struct range_info_def): Remove.
5665 (set_range_info): Adjust prototype to take vrange.
5666 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Call
5667 duplicate_ssa_name_range_info.
5668 * tree.h (SSA_NAME_ANTI_RANGE_P): Remove.
5669 (SSA_NAME_RANGE_TYPE): Remove.
5670 * value-query.cc (get_ssa_name_range_info): Adjust to use
5671 vrange_storage.
5672 (update_global_range): Remove.
5673 (get_range_global): Remove as_a<irange>.
5674 * value-query.h (update_global_range): Remove.
5675 * tree-ssa-dom.cc (set_global_ranges_from_unreachable_edges):
5676 Rename update_global_range to set_range_info.
5677 * value-range-storage.cc (vrange_storage::alloc_slot): Remove
5678 gcc_unreachable.
5679
5680 2022-07-10 Aldy Hernandez <aldyh@redhat.com>
5681
5682 * value-range.cc (irange::operator=): Call verify_range.
5683 (irange::irange_set): Normalize kind after everything else has
5684 been set.
5685 (irange::irange_set_anti_range): Same.
5686 (irange::set): Same.
5687 (irange::verify_range): Disallow nonzero masks for VARYING.
5688 (irange::irange_union): Call verify_range.
5689 Handle nonzero masks better.
5690 (irange::irange_intersect): Same.
5691 (irange::set_nonzero_bits): Calculate mask if either range has an
5692 explicit mask.
5693 (irange::intersect_nonzero_bits): Same.
5694 (irange::union_nonzero_bits): Same.
5695 (range_tests_nonzero_bits): New.
5696 (range_tests): Call range_tests_nonzero_bits.
5697 * value-range.h (class irange): Remove set_nonzero_bits method
5698 with trees.
5699 (irange::varying_compatible_p): Set nonzero mask.
5700
5701 2022-07-10 Xi Ruoyao <xry111@xry111.site>
5702
5703 * config/loongarch/loongarch.md (<any_div>di3_fake): Describe
5704 the sign-extend of result in the RTL template.
5705 (<any_div><mode>3): Adjust for <any_div>di3_fake change.
5706
5707 2022-07-10 Xi Ruoyao <xry111@xry111.site>
5708
5709 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
5710 Remove static, for use in the machine description file.
5711 * config/loongarch/loongarch-protos.h:
5712 (loongarch_check_zero_div_p): Add prototype.
5713 * config/loongarch/loongarch.md (enabled): New attr.
5714 (*<optab><mode>3): Add (=r,r,r) and (=&r,0,r) alternatives for
5715 idiv. Conditionally enable the alternatives using
5716 loongarch_check_zero_div_p.
5717 (<optab>di3_fake): Likewise.
5718
5719 2022-07-10 Xi Ruoyao <xry111@xry111.site>
5720
5721 * config/loongarch/loongarch.md (mulsidi3_64bit): Use mulw.d.w
5722 instead of mul.d.
5723
5724 2022-07-09 Aldy Hernandez <aldyh@redhat.com>
5725
5726 * value-range.cc (irange::irange_single_pair_union): Set
5727 VR_VARYING when appropriate.
5728
5729 2022-07-09 Vit Kabele <vit.kabele@sysgo.com>
5730
5731 * stor-layout.cc (finalize_record_size): Extend warning message.
5732
5733 2022-07-09 Sam Feifer <sfeifer@redhat.com>
5734
5735 PR tree-optimization/98304
5736 * match.pd (n - (((n > C1) ? n : C1) & -C2)): New simplification.
5737
5738 2022-07-09 Jeff Law <jeffreyalaw@gmail.com>
5739
5740 * expr.cc (store_expr): Identify trailing NULs in a STRING_CST
5741 initializer and use clear_storage rather than copying the
5742 NULs to the destination array.
5743
5744 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
5745
5746 * config/i386/i386.md (define_peephole2): Use match_operand of
5747 flags_reg_operand to capture and preserve the mode of FLAGS_REG.
5748 (define_peephole2): Likewise.
5749 (define_peephole2): Likewise...
5750
5751 2022-07-09 Roger Sayle <roger@nextmovesoftware.com>
5752
5753 * config/i386/i386-features.cc (convert_compare): Add support
5754 for *testdi_not_doubleword pattern, "(compare (and (not ...)))"
5755 by generating a pandn followed by ptest.
5756 (convertible_comparison_p): Recognize both *cmpdi_doubleword and
5757 recent *testdi_not_doubleword comparison patterns.
5758
5759 2022-07-09 Tamar Christina <tamar.christina@arm.com>
5760
5761 * config/s390/s390.cc (s390_expand_atomic): Pass false to store_bit_field to
5762 indicate that the value is not undefined.
5763
5764 2022-07-09 Andrew Pinski <apinski@marvell.com>
5765
5766 PR tree-optimization/106087
5767 * tree-ssa-dce.cc (simple_dce_from_worklist): Check
5768 to make sure the statement is only defining one operand.
5769
5770 2022-07-08 Lewis Hyatt <lhyatt@gmail.com>
5771
5772 PR preprocessor/91733
5773 * input.cc (find_end_of_line): New helper function.
5774 (file_cache_slot::get_next_line): Recognize \r as a line ending.
5775 * diagnostic-show-locus.cc (test_escaping_bytes_1): Adapt selftest
5776 since \r will now be interpreted as a line-ending.
5777
5778 2022-07-08 Martin Liska <mliska@suse.cz>
5779
5780 PR sanitizer/106132
5781 * opts.cc (finish_options): Use 2 calls to
5782 report_conflicting_sanitizer_options.
5783
5784 2022-07-08 Richard Biener <rguenther@suse.de>
5785
5786 PR tree-optimization/106226
5787 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
5788 no SSA update is needed. Move virtual SSA update ...
5789 * tree-vectorizer.cc (pass_vectorize::execute): ... here,
5790 via forced virtual renaming when TODO_update_ssa_only_virtuals
5791 is queued.
5792 (vect_transform_loops): Return TODO_update_ssa_only_virtuals
5793 when virtual SSA update is required.
5794 (try_vectorize_loop_1): Adjust.
5795 * tree-vect-stmts.cc (vectorizable_simd_clone_call): Allow
5796 virtual renaming if the ABI forces an aggregate return
5797 but the original call did not have a virtual definition.
5798
5799 2022-07-08 Martin Liska <mliska@suse.cz>
5800
5801 * toplev.cc (init_asm_output): Do not init asm_out_file.
5802
5803 2022-07-08 Tamar Christina <tamar.christina@arm.com>
5804
5805 PR tree-optimization/106063
5806 * match.pd: Do not apply pattern after veclower is not supported.
5807
5808 2022-07-08 Thomas Schwinge <thomas@codesourcery.com>
5809
5810 * lto-cgraph.cc (input_offload_tables) <LTO_symtab_edge>: Correct
5811 'fn2' computation.
5812
5813 2022-07-08 Tamar Christina <tamar.christina@arm.com>
5814
5815 * expmed.cc (store_bit_field_1): Add parameter that indicates if value is
5816 still undefined and if so emit a subreg move instead.
5817 (store_integral_bit_field): Likewise.
5818 (store_bit_field): Likewise.
5819 * expr.h (write_complex_part): Likewise.
5820 * expmed.h (store_bit_field): Add new parameter.
5821 * builtins.cc (expand_ifn_atomic_compare_exchange_into_call): Use new
5822 parameter.
5823 (expand_ifn_atomic_compare_exchange): Likewise.
5824 * calls.cc (store_unaligned_arguments_into_pseudos): Likewise.
5825 * emit-rtl.cc (validate_subreg): Likewise.
5826 * expr.cc (emit_group_store): Likewise.
5827 (copy_blkmode_from_reg): Likewise.
5828 (copy_blkmode_to_reg): Likewise.
5829 (clear_storage_hints): Likewise.
5830 (write_complex_part): Likewise.
5831 (emit_move_complex_parts): Likewise.
5832 (expand_assignment): Likewise.
5833 (store_expr): Likewise.
5834 (store_field): Likewise.
5835 (expand_expr_real_2): Likewise.
5836 * ifcvt.cc (noce_emit_move_insn): Likewise.
5837 * internal-fn.cc (expand_arith_set_overflow): Likewise.
5838 (expand_arith_overflow_result_store): Likewise.
5839 (expand_addsub_overflow): Likewise.
5840 (expand_neg_overflow): Likewise.
5841 (expand_mul_overflow): Likewise.
5842 (expand_arith_overflow): Likewise.
5843
5844 2022-07-08 Haochen Jiang <haochen.jiang@intel.com>
5845
5846 PR target/106180
5847 * config/i386/sse.md (sse2_cvtps2pd<mask_name>_1):
5848 Rename from *sse2_cvtps2pd<mask_name>_1.
5849 (vec_unpacks_lo_v4sf): Add handler for memory operand.
5850
5851 2022-07-08 Lulu Cheng <chenglulu@loongson.cn>
5852
5853 * config/loongarch/loongarch.cc (loongarch_compute_frame_info):
5854 Modify fp_sp_offset and gp_sp_offset's calculation method,
5855 when frame->mask or frame->fmask is zero, don't minus UNITS_PER_WORD
5856 or UNITS_PER_FP_REG.
5857
5858 2022-07-07 David Malcolm <dmalcolm@redhat.com>
5859
5860 * diagnostic-format-json.cc (json_from_location_range): Update for
5861 removal of label_text::maybe_free in favor of automatic memory
5862 management.
5863 * diagnostic-format-sarif.cc
5864 (sarif_builder::make_location_object): Likewise.
5865 * diagnostic-show-locus.cc (struct pod_label_text): New.
5866 (class line_label): Convert m_text from label_text to pod_label_text.
5867 (layout::print_any_labels): Move "text" to the line_label.
5868 * tree-diagnostic-path.cc (path_label::get_text): Update for
5869 removal of label_text::maybe_free in favor of automatic memory
5870 management.
5871 (event_range::print): Likewise.
5872 (default_tree_diagnostic_path_printer): Likewise.
5873 (default_tree_make_json_for_path): Likewise.
5874
5875 2022-07-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5876
5877 * statistics.cc (get_function_name): Add check to see if fn is not NULL.
5878
5879 2022-07-07 Richard Biener <rguenther@suse.de>
5880
5881 * tree-into-ssa.cc (iterating_old_ssa_names): New.
5882 (add_new_name_mapping): Grow {new,old}_ssa_names separately
5883 and only when actually needed. Assert we are not growing
5884 the old_ssa_names set when iterating over it.
5885 (update_ssa): Remove old_ssa_names copying and empty_p
5886 query, note we are iterating over it and expect no set changes.
5887
5888 2022-07-07 Thomas Schwinge <thomas@codesourcery.com>
5889
5890 * config/i386/intelmic-mkoffload.cc (generate_host_descr_file)
5891 (prepare_target_image, main): Handle OpenMP 'requires'.
5892 (generate_host_descr_file): Switch to 'GOMP_offload_register_ver',
5893 'GOMP_offload_unregister_ver'.
5894
5895 2022-07-07 Richard Biener <rguenther@suse.de>
5896
5897 PR target/106219
5898 * config/i386/i386-builtins.cc (ix86_add_new_builtins): Properly
5899 set DECL_PURE_P.
5900
5901 2022-07-07 Richard Biener <rguenther@suse.de>
5902
5903 * tree-ssa-loop-manip.cc (add_exit_phis_var): Return the
5904 number of LC PHIs inserted.
5905 (add_exit_phis): Return whether any variable required
5906 multiple LC PHI nodes.
5907 (rewrite_into_loop_closed_ssa_1): Use TODO_update_ssa_no_phi
5908 when possible.
5909
5910 2022-07-07 Richard Biener <rguenther@suse.de>
5911
5912 * tree-ssa-loop-manip.cc (compute_live_loop_exits): Take
5913 the def loop exit block bitmap as argument instead of
5914 re-computing it here.
5915 (add_exit_phis_var): Adjust.
5916 (loop_name_cmp): New function.
5917 (add_exit_phis): Sort variables to insert LC PHI nodes
5918 after definition loop, for each definition loop compute
5919 the exit block bitmap once.
5920 (get_loops_exit): Remove.
5921 (rewrite_into_loop_closed_ssa_1): Do not pre-record
5922 all loop exit blocks into bitmaps. Record loop exits
5923 if required.
5924
5925 2022-07-07 Dimitrije Milosevic <Dimitrije.Milosevic@Syrmia.com>
5926
5927 * config/mips/mips.cc (mips_asan_shadow_offset): Reformat
5928 to handle the N32 ABI.
5929 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Remove
5930 the macro, as it is not needed anymore.
5931
5932 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
5933
5934 * config/gcn/mkoffload.cc (process_obj): Clarify 'target_data' ->
5935 '[...]_data'.
5936 * config/nvptx/mkoffload.cc (process): Likewise.
5937
5938 2022-07-06 Thomas Schwinge <thomas@codesourcery.com>
5939
5940 * omp-general.h (enum omp_requires): Use 'GOMP_REQUIRES_[...]'.
5941
5942 2022-07-05 Andrew MacLeod <amacleod@redhat.com>
5943
5944 * value-relation.cc (relation_to_code): New vector.
5945 (relation_oracle::validate_relation): New.
5946 (set_relation): Allow ssa1 == ssa2 to be registered.
5947 * value-relation.h (validate_relation): New prototype.
5948 (query_relation): Make internal variant protected.
5949
5950 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
5951
5952 * config/i386/i386.cc (ix86_rtx_costs) <COMPARE>: Provide costs
5953 for double word comparisons and tests (comparisons against zero).
5954 * config/i386/i386.md (*test<mode>_not_doubleword): Split DWI
5955 and;cmp into andn;cmp $0 as a pre-reload splitter.
5956 (*andn<dwi>3_doubleword_bmi): Use <dwi> instead of <mode> in name.
5957 (*<any_or><dwi>3_doubleword): Likewise.
5958
5959 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
5960 Hongtao Liu <hongtao.liu@intel.com>
5961
5962 * config/i386/i386-builtin.def (__builtin_ia32_palignr128): Change
5963 CODE_FOR_ssse3_palignrti to CODE_FOR_ssse3_palignrv1ti.
5964 * config/i386/i386-expand.cc (expand_vec_perm_palignr): Use V1TImode
5965 and gen_ssse3_palignv1ti instead of TImode.
5966 * config/i386/sse.md (SSESCALARMODE): Delete.
5967 (define_mode_attr ssse3_avx2): Handle V1TImode instead of TImode.
5968 (<ssse3_avx2>_palignr<mode>): Use VIMAX_AVX2_AVX512BW as a mode
5969 iterator instead of SSESCALARMODE.
5970 (ssse3_palignrdi): Optimize cases where operands[3] is 0 or 64,
5971 using a single move instruction (if required).
5972
5973 2022-07-05 Roger Sayle <roger@nextmovesoftware.com>
5974 Uroš Bizjak <ubizjak@gmail.com>
5975
5976 PR rtl-optimization/96692
5977 * config/i386/i386.md (define_split): Split ((A | B) ^ C) ^ D
5978 as (X & ~Y) ^ Z on target BMI when either C or D is A or B.
5979
5980 2022-07-05 Richard Biener <rguenther@suse.de>
5981
5982 PR tree-optimization/106198
5983 * tree-cfgcleanup.cc (repair_loop_structures): Always do a
5984 full LC SSA rewrite but only if any blocks changed loop
5985 depth.
5986
5987 2022-07-05 Richard Biener <rguenther@suse.de>
5988
5989 * tree-ssa-loop-manip.cc (find_uses_to_rename_def): Remove.
5990 (find_uses_to_rename_in_loop): Likewise.
5991 (rewrite_into_loop_closed_ssa_1): Remove loop parameter and
5992 uses.
5993 (rewrite_into_loop_closed_ssa): Adjust.
5994
5995 2022-07-05 Richard Biener <rguenther@suse.de>
5996
5997 PR tree-optimization/106186
5998 * tree-ssa-propagate.cc (clean_up_loop_closed_phi):
5999 Properly handle virtual PHI nodes.
6000
6001 2022-07-05 Richard Biener <rguenther@suse.de>
6002
6003 PR tree-optimization/106196
6004 * tree-vect-stmts.cc (vect_finish_stmt_generation): Properly
6005 handle aggregate returns of calls for VDEF updates.
6006
6007 2022-07-05 Richard Biener <rguenther@suse.de>
6008
6009 * tree-vect-loop-manip.cc (vect_set_loop_condition_normal):
6010 Maintain LC SSA.
6011
6012 2022-07-05 Richard Sandiford <richard.sandiford@arm.com>
6013
6014 * tree-vect-patterns.cc (vect_convert_input): Expect the input
6015 type to be signed for optab_vector_mixed_sign. Update the vectype
6016 at the same time as type.
6017 (vect_recog_dot_prod_pattern): Update accordingly. If usdot isn't
6018 available, try sdot instead.
6019 * tree-vect-loop.cc (vect_is_emulated_mixed_dot_prod): New function.
6020 (vect_model_reduction_cost): Model the cost of implementing usdot
6021 using sdot.
6022 (vectorizable_reduction): Likewise. Skip target support test
6023 for lane reductions.
6024 (vect_emulate_mixed_dot_prod): New function.
6025 (vect_transform_reduction): Use it to emulate usdot via sdot.
6026
6027 2022-07-05 Richard Biener <rguenther@suse.de>
6028
6029 PR tree-optimization/106182
6030 * loop-init.cc (fix_loop_structure): Return the number
6031 of newly discovered plus the number of deleted loops.
6032 * tree-cfgcleanup.cc (repair_loop_structures): Adjust
6033 variable name.
6034
6035 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6036
6037 * gimple-range-fold.cc
6038 (fold_using_range::range_of_ssa_name_with_loop_info): Restrict the
6039 call to SCEV for irange supported types.
6040 (fold_using_range::range_of_builtin_int_call): Convert to vrange.
6041 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Same.
6042 * tree-ssa-dom.cc (cprop_operand): Same.
6043
6044 2022-07-04 Roger Sayle <roger@nextmovesoftware.com>
6045
6046 PR target/104489
6047 * calls.cc (precompute_register_parameters): Allow promotion
6048 of floating point values to be passed in wider integer modes
6049 by calling new convert_float_to_wider_int.
6050 (expand_call): Allow floating point results to be returned in
6051 wider integer modes by calling new convert wider_int_to_float.
6052 * cfgexpand.cc (expand_value_return): Allow backends to promote
6053 a scalar floating point return value to a wider integer mode
6054 by calling new convert_float_to_wider_int.
6055 * expr.cc (convert_float_to_wider_int): New function.
6056 (convert_wider_int_to_float): Likewise.
6057 (expand_expr_real_1) <expand_decl_rtl>: Allow backends to promote
6058 scalar FP PARM_DECLs to wider integer modes, by calling new
6059 convert_wider_int_to_float.
6060 * expr.h (convert_modes): Name arguments for improved documentation.
6061 (convert_float_to_wider_int): Prototype new function here.
6062 (convert_wider_int_to_float): Likewise.
6063 * function.cc (assign_parm_setup_stack): Allow floating point
6064 values to be passed on the stack as wider integer modes by
6065 calling new convert_wider_int_to_float.
6066
6067 2022-07-04 Martin Jambor <mjambor@suse.cz>
6068
6069 PR tree-optimization/105860
6070 * tree-sra.cc (build_reconstructed_reference): Start expr
6071 traversal only just below the outermost union.
6072
6073 2022-07-04 Richard Biener <rguenther@suse.de>
6074
6075 * tree-vect-loop-manip.cc (vect_do_peeling): Revert assert
6076 and update virtual SSA form again. Assert we do so for
6077 a known set of transforms only.
6078 * tree-vectorizer.h (vec_info::any_known_not_updated_vssa): New.
6079 * tree-vect-stmts.cc (vectorizable_load): When vectorizing
6080 using load-lanes allow virtual SSA update.
6081
6082 2022-07-04 Tobias Burnus <tobias@codesourcery.com>
6083 Chung-Lin Tang <cltang@codesourcery.com>
6084 Thomas Schwinge <thomas@codesourcery.com>
6085
6086 * config/gcn/mkoffload.cc (process_asm): Write '#include <stdint.h>'.
6087 (process_obj): Pass omp_requires_mask to GOMP_offload_register_ver.
6088 (main): Ask lto1 to obtain omp_requires_mask and pass it on.
6089 * config/nvptx/mkoffload.cc (process, main): Likewise.
6090 * lto-cgraph.cc (omp_requires_to_name): New.
6091 (input_offload_tables): Save omp_requires_mask.
6092 (output_offload_tables): Read it, check for consistency,
6093 save value for mkoffload.
6094 * omp-low.cc (lower_omp_target): Force output_offloadtables
6095 call for OMP_REQUIRES_TARGET_USED.
6096
6097 2022-07-04 Richard Biener <rguenther@suse.de>
6098
6099 * tree-vect-loop-manip.cc (vect_do_peeling): Assert that
6100 no SSA update is needed instead of updating virtual SSA
6101 form.
6102 * tree-vect-stmts.cc (vectorizable_load): For hoisted
6103 invariant load use the loop entry virtual use.
6104 For emulated gather loads use the virtual use of the
6105 original stmt like vect_finish_stmt_generation would do.
6106
6107 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
6108
6109 * tree-pretty-print.cc (dump_generic_node) <ARRAY_TYPE>: Add guard
6110 for direct circularity.
6111
6112 2022-07-04 Eric Botcazou <ebotcazou@adacore.com>
6113
6114 * dwarf2out.cc (gen_array_type_die): Use the default lower bound of
6115 the language for vector types.
6116
6117 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6118
6119 * value-range-storage.cc (irange_storage_slot::set_irange): Set
6120 nonzero bits in irange.
6121 (irange_storage_slot::get_irange): Get nonzero bits from irange.
6122 * value-range.cc (irange::operator=): Set nonzero bits.
6123 (irange::irange_set): Same.
6124 (irange::irange_set_anti_range): Same.
6125 (irange::set): Same.
6126 (irange::verify_range): Same.
6127 (irange::legacy_equal_p): Check nonzero bits.
6128 (irange::equal_p): Same.
6129 (irange::contains_p): Handle nonzero bits.
6130 (irange::irange_union): Same.
6131 (irange::irange_intersect): Same.
6132 (irange::dump): Same.
6133 (irange::set_nonzero_bits): New.
6134 (irange::get_nonzero_bits): New.
6135 (irange::intersect_nonzero_bits): New.
6136 (irange::union_nonzero_bits): New.
6137 (irange::dump_bitmasks): New.
6138 * value-range.h (class irange): Add m_nonzero_mask.
6139 (gt_ggc_mx): Handle nonzero bits.
6140 (gt_pch_nx): Same.
6141 (irange::set_undefined): Set nonzero bits.
6142 (irange::set_varying): Same.
6143 (irange::normalize_kind): Call set_undefined.
6144
6145 2022-07-04 Richard Biener <rguenther@suse.de>
6146
6147 * tree-ssa-loop-manip.h
6148 (rewrite_virtuals_into_loop_closed_ssa): Remove.
6149 (rewrite_into_loop_closed_ssa_1): Likewise.
6150 * tree-ssa-loop-manip.cc (rewrite_into_loop_closed_ssa_1):
6151 Make static.
6152 (rewrite_into_loop_closed_ssa): Remove loop overload,
6153 always rewrite virtuals into LC SSA.
6154 (check_loop_closed_ssa_bb): Also check virtuals.
6155 * tree-ssa-dce.cc (remove_dead_phis): Preserve virtual
6156 LC PHIs when in LC SSA.
6157 * gimple-loop-jam.cc (fuse_loops): Do not rewrite into
6158 loop-closed SSA here, but ...
6159 (tree_loop_unroll_and_jam): ... here once.
6160 * tree-if-conv.cc (version_loop_for_if_conversion): Use
6161 the cheaper TODO_update_ssa_no_phi.
6162 * tree-loop-distribution.cc (version_loop_by_alias_check):
6163 Likewise.
6164 * tree-ssa-loop-unswitch.cc (tree_unswitch_single_loop):
6165 Likewise.
6166 * tree-vect-loop-manip.cc (vect_loop_versioning): Likewise.
6167 (tree_unswitch_outer_loop): Do not rewrite virtuals into
6168 LC ssa.
6169 * tree-parloops.cc (transform_to_exit_first_loop_alt):
6170 Likewise.
6171 (pass_parallelize_loops::execute): After finishing rewrite
6172 into LC SSA again because we do not maintain it properly.
6173
6174 2022-07-04 Richard Biener <rguenther@suse.de>
6175
6176 PR tree-optimization/106055
6177 * graphite.cc (canonicalize_loop_closed_ssa): Check whether
6178 we can propagate.
6179
6180 2022-07-04 Haochen Jiang <haochen.jiang@intel.com>
6181
6182 PR target/43618
6183 * config/i386/sse.md (extendv2sfv2df2): New define_expand.
6184 (sse2_cvtps2pd_<mask_name>): Change constraint of operands[1].
6185 (*sse2_cvtps2pd_<mask_name>_1): Rename from extendvsdfv2df2.
6186
6187 2022-07-04 Aldy Hernandez <aldyh@redhat.com>
6188
6189 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use operator!=.
6190 * ipa-prop.cc (struct ipa_vr_ggc_hash_traits): Same.
6191 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Use set
6192 with two arguments.
6193 (find_unswitching_predicates_for_bb): Same.
6194 * tree-vrp.cc (range_fold_unary_symbolics_p): Same.
6195 * value-range-equiv.cc (value_range_equiv::equal_p): Use operator==.
6196 * value-range.cc (irange::equal_p): Rename to...
6197 (irange::operator==): ...this.
6198 * value-range.h (irange::set): Remove.
6199 (irange::operator==): Remove.
6200 (irange::set_zero): Use set with two arguments.
6201 * vr-values.cc (vr_values::extract_range_from_binary_expr): Same.
6202 (vr_values::extract_range_from_unary_expr): Same.
6203 (check_for_binary_op_overflow): Same.
6204 (bounds_of_var_in_loop): Same.
6205
6206 2022-07-03 H.J. Lu <hjl.tools@gmail.com>
6207
6208 PR target/106022
6209 * config/i386/i386-protos.h (ix86_convert_const_vector_to_integer):
6210 New.
6211 * config/i386/i386.cc (ix86_convert_const_vector_to_integer):
6212 New.
6213 * config/i386/mmx.md (V_16_32_64): New.
6214 (*mov<mode>_imm): New patterns for stores with 16-bit, 32-bit
6215 and 64-bit constant vector.
6216 * config/i386/predicates.md (x86_64_const_vector_operand): New.
6217
6218 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
6219
6220 * gimple-range-cache.cc: Include value-range-storage.h.
6221 * gimple-range-cache.h (class block_range_cache): Add "class" to
6222 m_range_allocator.
6223 * gimple-range-edge.cc
6224 (gimple_outgoing_range::gimple_outgoing_range): Allocate allocator.
6225 (gimple_outgoing_range::~gimple_outgoing_range): Free allocator.
6226 (gimple_outgoing_range::calc_switch_ranges): Dereference allocator.
6227 * gimple-range-edge.h: Add "class" to m_range_allocator.
6228 * gimple-range-infer.cc
6229 (infer_range_manager::infer_range_manager): Allocate allocator.
6230 (infer_range_manager::~infer_range_manager): Free allocator.
6231 (infer_range_manager::get_nonzero): Dereference allocator.
6232 (infer_range_manager::add_range): Same.
6233 * gimple-range-infer.h (class vrange_allocator): Add "class" to
6234 m_range_allocator.
6235 * value-range-storage.h (class vrange_allocator): Move from
6236 value-range.h.
6237 (class obstack_vrange_allocator): Same.
6238 (class ggc_vrange_allocator): Same.
6239 (vrange_allocator::alloc_vrange): Same.
6240 (vrange_allocator::alloc_irange): Same.
6241 * value-range.h (class vrange_allocator): Move to value-range-storage.h.
6242 (class obstack_vrange_allocator): Same.
6243 (class ggc_vrange_allocator): Same.
6244
6245 2022-07-03 Aldy Hernandez <aldyh@redhat.com>
6246
6247 * Makefile.in (OBJS): Add value-range-storage.o.
6248 (GTFILES): Add value-range-storage.h.
6249 * gengtype.cc (open_base_files): Add value-range-storage.h.
6250 * value-range-storage.cc: New file.
6251 * value-range-storage.h: New file.
6252
6253 2022-07-03 Xi Ruoyao <xry111@xry111.site>
6254 Lulu Cheng <chenglulu@loongson.cn>
6255
6256 * config/loongarch/loongarch.cc (loongarch_check_zero_div_p):
6257 New static function.
6258 (loongarch_idiv_insns): Use loongarch_check_zero_div_p instead
6259 of TARGET_CHECK_ZERO_DIV.
6260 (loongarch_output_division): Likewise.
6261 * common/config/loongarch/loongarch-common.cc
6262 (TARGET_DEFAULT_TARGET_FLAGS): Remove unneeded hook.
6263 * doc/invoke.texi: Update to match the new behavior.
6264
6265 2022-07-03 Ian Lance Taylor <iant@golang.org>
6266
6267 * tree-ssa-dse.cc (dse_optimize_stmt): Only delete a trapping
6268 statement if -fdelete-dead-exceptions.
6269
6270 2022-07-02 Tim Lange <mail@tim-lange.me>
6271
6272 PR analyzer/105900
6273 * doc/invoke.texi: Added Wanalyzer-allocation-size.
6274
6275 2022-07-02 Immad Mir <mirimmad17@gmail.com>
6276
6277 PR analyzer/106003
6278 * Makefile.in (ANALYZER_OBJS): Add sm-fd.o.
6279 * doc/invoke.texi: Add -Wanalyzer-fd-double-close, -Wanalyzer-fd-leak,
6280 -Wanalyzer-fd-access-mode-mismatch, -Wanalyzer-fd-use-without-check,
6281 -Wanalyzer-fd-use-after-close.
6282
6283 2022-07-01 Aldy Hernandez <aldyh@redhat.com>
6284
6285 * wide-int.h (struct trailing_wide_ints): Add m_num_elements.
6286 (trailing_wide_ints::set_precision): Add num_elements argument.
6287 (trailing_wide_ints::extra_size): Same.
6288
6289 2022-07-01 Uroš Bizjak <ubizjak@gmail.com>
6290
6291 * config/i386/i386.md (*andn<mode>3_doubleword_bmi):
6292 Use "r" constraint for operand 1.
6293
6294 2022-07-01 Richard Biener <rguenther@suse.de>
6295
6296 * tree-into-ssa.cc (rewrite_update_dom_walker::before_dom_children):
6297 Do not look at interesting_blocks which is a copy of
6298 blocks_to_update.
6299 (update_ssa): Do not initialize it.
6300 (pass_build_ssa::execute): Set interesting_blocks to NULL
6301 after releasing it.
6302
6303 2022-07-01 Richard Biener <rguenther@suse.de>
6304
6305 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Revert
6306 back to using maybe_ne (off, -1).
6307
6308 2022-07-01 Richard Biener <rguenther@suse.de>
6309
6310 * tree-ssa-sccvn.cc (vn_nary_op_insert_into): Make
6311 checking dominance check conditional on flag_checking.
6312
6313 2022-07-01 Tobias Burnus <tobias@codesourcery.com>
6314
6315 * config/gcn/gcn-protos.h (print_operand_address): Remove register
6316 keyword on 'rtx addr' argument.
6317
6318 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6319 Uroš Bizjak <ubizjak@gmail.com>
6320
6321 * config/i386/i386.md (*andn<mode>3_doubleword_bmi): Add constraints
6322 to post-reload define_insn_and_split.
6323
6324 2022-07-01 Jakub Jelinek <jakub@redhat.com>
6325
6326 PR middle-end/106144
6327 * wide-int.cc (wi::shifted_mask): If end >= prec, return right after
6328 emitting element for shift or if shift is 0 first element after start.
6329 (wide_int_cc_tests): Add tests for equivalency of wi::mask and
6330 wi::shifted_mask with 0 start.
6331
6332 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6333
6334 PR target/106122
6335 * config/i386/i386.md (peephole2): Avoid generating pop %esp
6336 when optimizing for size.
6337
6338 2022-07-01 Roger Sayle <roger@nextmovesoftware.com>
6339 Uroš Bizjak <ubizjak@gmail.com>
6340
6341 * config/i386/i386.md (general_szext_operand): Add TImode
6342 support using x86_64_hilo_general_operand predicate.
6343 (*cmp<dwi>_doubleword): Use x86_64_hilo_general_operand predicate.
6344 (*add<dwi>3_doubleword): Improved optimization of zero addition.
6345 (and<mode>3): Use SDWIM mode iterator to add support for double
6346 word bit-wise AND in TImode. Use force_reg when double word
6347 immediate operand isn't x86_64_hilo_general_operand.
6348 (and<dwi>3_doubleword): Generalized from anddi3_doubleword and
6349 converted into a post-reload splitter.
6350 (*andndi3_doubleword): Previous define_insn deleted.
6351 (*andn<mode>3_doubleword_bmi): New define_insn_and_split for
6352 TARGET_BMI that splits post-reload.
6353 (*andn<mode>3_doubleword): New define_insn_and_split for
6354 !TARGET_BMI, that lowers/splits before reload.
6355 (<any_or><mode>3): Use SDWIM mode iterator to add suppport for
6356 double word bit-wise XOR and bit-wise IOR in TImode. Use
6357 force_reg when double word immediate operand isn't
6358 x86_64_hilo_general_operand.
6359 (*<any_or>di3_doubleword): Generalized from <any_or>di3_doubleword.
6360 (one_cmpl<mode>2): Use SDWIM mode iterator to add support for
6361 double word bit-wise NOT in TImode.
6362 (one_cmpl<dwi>2_doubleword): Generalize from one_cmpldi2_doubleword
6363 and converted into a post-reload splitter.
6364
6365 2022-07-01 Eric Botcazou <ebotcazou@adacore.com>
6366
6367 PR middle-end/105874
6368 * expr.cc (expand_expr_real_1) <normal_inner_ref>: Force
6369 EXPAND_MEMORY for the expansion of the inner reference only
6370 in the usual cases where a memory reference is required.
6371
6372 2022-07-01 Richard Biener <rguenther@suse.de>
6373
6374 PR tree-optimization/106131
6375 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Force alias-set
6376 zero when offsetting the read looking through an aggregate
6377 copy.
6378
6379 2022-07-01 Martin Liska <mliska@suse.cz>
6380
6381 PR tree-optimization/106126
6382 * gimple-if-to-switch.cc (struct condition_info): Save
6383 has_side_effect.
6384 (find_conditions): Parse all BBs.
6385 (pass_if_to_switch::execute): Allow only side effects for first
6386 BB.
6387
6388 2022-07-01 Haochen Jiang <haochen.jiang@intel.com>
6389
6390 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_AVX512F_UNSET):
6391 Add OPTION_MASK_ISA2_AVX512BW_UNSET, remove
6392 OPTION_MASK_ISA2_AVX512BF16_UNSET and
6393 OPTION_MASK_ISA2_AVX512FP16_UNSET.
6394
6395 2022-06-30 Joseph Myers <joseph@codesourcery.com>
6396
6397 PR lto/106129
6398 * lto-wrapper.cc (find_option): Add argument start.
6399 (merge_and_complain): Loop over existing_opt_index and
6400 existing_opt2_index for Xassembler check. Update calls to
6401 find_option.
6402 (find_and_merge_options): Add argument first to determine whether
6403 to merge options with those passed in *opts.
6404 (run_gcc): Update calls to find_and_merge_options.
6405
6406 2022-06-30 Aldy Hernandez <aldyh@redhat.com>
6407
6408 * gimple-range-cache.cc (block_range_cache::block_range_cache):
6409 Rename vrange_allocator to obstack_vrange_allocator.
6410 (ssa_global_cache::ssa_global_cache): Same.
6411 * gimple-range-edge.h (class gimple_outgoing_range): Same.
6412 * gimple-range-infer.h (class infer_range_manager): Same.
6413 * value-range.h (class vrange_allocator): Make abstract.
6414 (class obstack_vrange_allocator): Inherit from vrange_allocator.
6415 (class ggc_vrange_allocator): New.
6416
6417 2022-06-30 Roger Sayle <roger@nextmovesoftware.com>
6418 Uroš Bizjak <ubizjak@gmail.com>
6419
6420 * config/i386/i386.md (swap_mode): Rename from *swap<mode> to
6421 provide gen_swapsi.
6422 (<any_rotate>di3): Handle !TARGET_64BIT rotations by 32 bits
6423 via new gen_<insn>32di2_doubleword below.
6424 (<anyrotate>32di2_doubleword): New define_insn_and_split
6425 that splits after reload as either a pair of move instructions
6426 or an xchgl (using gen_swapsi).
6427
6428 2022-06-30 Richard Biener <rguenther@suse.de>
6429
6430 * domwalk.h (dom_walker::dom_walker): Update comment to
6431 reflect reality and new special argument value for
6432 bb_index_to_rpo.
6433 * domwalk.cc (dom_walker::dom_walker): Recognize -1
6434 bb_index_to_rpo.
6435 * tree-into-ssa.cc
6436 (rewrite_update_dom_walker::rewrite_update_dom_walker): Tell
6437 dom_walker to not use RPO.
6438
6439 2022-06-30 Martin Liska <mliska@suse.cz>
6440
6441 * tree-ssa-dom.cc (pass_dominator::execute): Remove m_ranger as
6442 it is unused.
6443
6444 2022-06-30 Andrew MacLeod <amacleod@redhat.com>
6445
6446 PR tree-optimization/106114
6447 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): Check
6448 statement operands instead of GORI cache.
6449
6450 2022-06-30 Antoni Boucher <bouanto@zoho.com>
6451
6452 PR target/106095
6453 * config/i386/sse.md: Fix asm generation.
6454
6455 2022-06-29 Sergei Trofimovich <siarheit@google.com>
6456
6457 PR c++/106102
6458 * system.h: Introduce INCLUDE_PTHREAD_H macros to include <pthread.h>.
6459
6460 2022-06-29 Joseph Myers <joseph@codesourcery.com>
6461
6462 * config/nios2/nios2.cc (nios2_load_pic_address): Use gen_rtx_MEM
6463 not gen_const_mem for UNSPEC_PIC_CALL_SYM.
6464
6465 2022-06-29 Richard Biener <rguenther@suse.de>
6466
6467 PR rtl-optimization/106082
6468 * combine.cc (distribute_notes): Preserve notes when
6469 they indicate a call doesn't perform a non-local goto.
6470
6471 2022-06-29 Richard Biener <rguenther@suse.de>
6472
6473 PR tree-optimization/106112
6474 * tree-ssa-sccvn.cc (valueized_wider_op): Properly extend
6475 a constant operand according to its type.
6476
6477 2022-06-29 Martin Liska <mliska@suse.cz>
6478
6479 * doc/invoke.texi: Remove removed evrp-mode.
6480
6481 2022-06-29 Lulu Cheng <chenglulu@loongson.cn>
6482
6483 PR target/106097
6484 * config/loongarch/loongarch.cc (loongarch_build_integer):
6485 Remove undefined behavior from code.
6486
6487 2022-06-28 Dimitar Dimitrov <dimitar@dinux.eu>
6488
6489 * doc/sourcebuild.texi: Document new no_alignment_constraints
6490 effective target check.
6491
6492 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
6493
6494 * Makefile.in: Remove gimple-ssa-evrp.o and gimple-ssa-evrp-analyze.o.
6495 * flag-types.h (enum evrp_mode): Remove.
6496 * params.opt: Remove --param=evrp-mode.
6497 * tree-vrp.cc (make_pass_early_vrp): New.
6498 (pass_vrp::execute): Call early VRP instance.
6499 * gimple-ssa-evrp-analyze.cc: Removed.
6500 * gimple-ssa-evrp-analyze.h: Removed.
6501 * gimple-ssa-evrp.cc: Removed.
6502
6503 2022-06-28 Alexandre Oliva <oliva@adacore.com>
6504
6505 * Makefile.in (TFLAGS): New.
6506 (GCC_FOR_TARGET): Add TFLAGS.
6507 (FLAGS_TO_PASS): Pass TFLAGS down.
6508
6509 2022-06-28 Richard Biener <rguenther@suse.de>
6510
6511 * tree-ssa-loop-split.cc (fix_loop_bb_probability): Do not
6512 call update_ssa.
6513
6514 2022-06-28 Richard Biener <rguenther@suse.de>
6515
6516 * tree-into-ssa.cc (insert_updated_phi_nodes_for): Use
6517 mark_block_for_update.
6518 (update_ssa): Adjust.
6519
6520 2022-06-28 Xi Ruoyao <xry111@xry111.site>
6521
6522 PR target/106096
6523 * config/loongarch/loongarch.h (REG_CLASS_CONTENTS): Exclude
6524 $r13 from SIBCALL_REGS.
6525 * config/loongarch/loongarch.cc (loongarch_regno_to_class):
6526 Change $r13 to JIRL_REGS.
6527
6528 2022-06-28 Aldy Hernandez <aldyh@redhat.com>
6529
6530 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Remove
6531 irange::supports_p.
6532
6533 2022-06-28 Richard Biener <rguenther@suse.de>
6534
6535 PR middle-end/106053
6536 * match.pd ((T)a == (T)b): Avoid folding away sign
6537 changes in a comparison if we'd truncate to a boolean.
6538
6539 2022-06-28 Kewen Lin <linkw@linux.ibm.com>
6540
6541 * config/rs6000/rs6000.md (*rotl<mode>3_insert_4): Replace mode
6542 iterator GPR with SImode, adjust the condition and output template,
6543 rename to ...
6544 (*rotlsi3_insert_4): ... this.
6545
6546 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6547
6548 * genmatch.cc: Add "final" and "override" to various vfunc
6549 implementations, removing redundant "virtual" as appropriate.
6550 * gensupport.cc: Likewise.
6551 * gimple-range-cache.h: Likewise.
6552 * ipa-icf-gimple.h: Likewise.
6553 * ipa-icf.h: Likewise.
6554 * read-md.h: Likewise.
6555 * read-rtl-function.cc: Likewise.
6556 * tree-ssa-loop-ch.cc: Likewise.
6557 * tree-ssa-sccvn.cc: Likewise.
6558
6559 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6560
6561 * config/i386/i386-features.h: Add "final" and "override" to
6562 scalar_chain vfunc implementations as appropriate.
6563
6564 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6565
6566 * tree-switch-conversion.h: Add "final" and "override" to cluster
6567 vfunc implementations as appropriate.
6568
6569 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6570
6571 * expr.cc: Add "final" and "override" to op_by_pieces_d vfunc
6572 implementations as appropriate.
6573
6574 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6575
6576 * compare-elim.cc: Add "final" and "override" to dom_walker vfunc
6577 implementations, removing redundant "virtual" as appropriate.
6578 * gimple-ssa-strength-reduction.cc: Likewise.
6579 * ipa-prop.cc: Likewise.
6580 * rtl-ssa/blocks.cc: Likewise.
6581 * tree-into-ssa.cc: Likewise.
6582 * tree-ssa-dom.cc: Likewise.
6583 * tree-ssa-math-opts.cc: Likewise.
6584 * tree-ssa-phiopt.cc: Likewise.
6585 * tree-ssa-propagate.cc: Likewise.
6586 * tree-ssa-sccvn.cc: Likewise.
6587 * tree-ssa-strlen.cc: Likewise.
6588 * tree-ssa-uncprop.cc: Likewise.
6589
6590 2022-06-27 David Malcolm <dmalcolm@redhat.com>
6591
6592 * adjust-alignment.cc: Add "final" and "override" to opt_pass
6593 vfunc implementations, removing redundant "virtual" as
6594 appropriate.
6595 * asan.cc: Likewise.
6596 * auto-inc-dec.cc: Likewise.
6597 * auto-profile.cc: Likewise.
6598 * bb-reorder.cc: Likewise.
6599 * cfgcleanup.cc: Likewise.
6600 * cfgexpand.cc: Likewise.
6601 * cfgrtl.cc: Likewise.
6602 * cgraphbuild.cc: Likewise.
6603 * combine-stack-adj.cc: Likewise.
6604 * combine.cc: Likewise.
6605 * compare-elim.cc: Likewise.
6606 * config/i386/i386-features.cc: Likewise.
6607 * coroutine-passes.cc: Likewise.
6608 * cprop.cc: Likewise.
6609 * cse.cc: Likewise.
6610 * dce.cc: Likewise.
6611 * df-core.cc: Likewise.
6612 * dse.cc: Likewise.
6613 * dwarf2cfi.cc: Likewise.
6614 * early-remat.cc: Likewise.
6615 * except.cc: Likewise.
6616 * final.cc: Likewise.
6617 * function.cc: Likewise.
6618 * fwprop.cc: Likewise.
6619 * gcse.cc: Likewise.
6620 * gimple-harden-conditionals.cc: Likewise.
6621 * gimple-if-to-switch.cc: Likewise.
6622 * gimple-isel.cc: Likewise.
6623 * gimple-laddress.cc: Likewise.
6624 * gimple-loop-interchange.cc: Likewise.
6625 * gimple-loop-jam.cc: Likewise.
6626 * gimple-loop-versioning.cc: Likewise.
6627 * gimple-low.cc: Likewise.
6628 * gimple-ssa-backprop.cc: Likewise.
6629 * gimple-ssa-evrp.cc: Likewise.
6630 * gimple-ssa-isolate-paths.cc: Likewise.
6631 * gimple-ssa-nonnull-compare.cc: Likewise.
6632 * gimple-ssa-split-paths.cc: Likewise.
6633 * gimple-ssa-store-merging.cc: Likewise.
6634 * gimple-ssa-strength-reduction.cc: Likewise.
6635 * gimple-ssa-warn-access.cc: Likewise.
6636 * gimple-ssa-warn-alloca.cc: Likewise.
6637 * gimple-ssa-warn-restrict.cc: Likewise.
6638 * gimple-warn-recursion.cc: Likewise.
6639 * graphite.cc: Likewise.
6640 * ifcvt.cc: Likewise.
6641 * init-regs.cc: Likewise.
6642 * ipa-comdats.cc: Likewise.
6643 * ipa-cp.cc: Likewise.
6644 * ipa-devirt.cc: Likewise.
6645 * ipa-fnsummary.cc: Likewise.
6646 * ipa-free-lang-data.cc: Likewise.
6647 * ipa-icf.cc: Likewise.
6648 * ipa-inline.cc: Likewise.
6649 * ipa-modref.cc: Likewise.
6650 * ipa-profile.cc: Likewise.
6651 * ipa-pure-const.cc: Likewise.
6652 * ipa-reference.cc: Likewise.
6653 * ipa-split.cc: Likewise.
6654 * ipa-sra.cc: Likewise.
6655 * ipa-visibility.cc: Likewise.
6656 * ipa.cc: Likewise.
6657 * ira.cc: Likewise.
6658 * jump.cc: Likewise.
6659 * loop-init.cc: Likewise.
6660 * lower-subreg.cc: Likewise.
6661 * mode-switching.cc: Likewise.
6662 * modulo-sched.cc: Likewise.
6663 * multiple_target.cc: Likewise.
6664 * omp-expand.cc: Likewise.
6665 * omp-low.cc: Likewise.
6666 * omp-oacc-kernels-decompose.cc: Likewise.
6667 * omp-oacc-neuter-broadcast.cc: Likewise.
6668 * omp-offload.cc: Likewise.
6669 * omp-simd-clone.cc: Likewise.
6670 * passes.cc: Likewise.
6671 * postreload-gcse.cc: Likewise.
6672 * postreload.cc: Likewise.
6673 * predict.cc: Likewise.
6674 * recog.cc: Likewise.
6675 * ree.cc: Likewise.
6676 * reg-stack.cc: Likewise.
6677 * regcprop.cc: Likewise.
6678 * reginfo.cc: Likewise.
6679 * regrename.cc: Likewise.
6680 * reorg.cc: Likewise.
6681 * sancov.cc: Likewise.
6682 * sanopt.cc: Likewise.
6683 * sched-rgn.cc: Likewise.
6684 * stack-ptr-mod.cc: Likewise.
6685 * store-motion.cc: Likewise.
6686 * tracer.cc: Likewise.
6687 * trans-mem.cc: Likewise.
6688 * tree-call-cdce.cc: Likewise.
6689 * tree-cfg.cc: Likewise.
6690 * tree-cfgcleanup.cc: Likewise.
6691 * tree-complex.cc: Likewise.
6692 * tree-eh.cc: Likewise.
6693 * tree-emutls.cc: Likewise.
6694 * tree-if-conv.cc: Likewise.
6695 * tree-into-ssa.cc: Likewise.
6696 * tree-loop-distribution.cc: Likewise.
6697 * tree-nrv.cc: Likewise.
6698 * tree-object-size.cc: Likewise.
6699 * tree-parloops.cc: Likewise.
6700 * tree-predcom.cc: Likewise.
6701 * tree-profile.cc: Likewise.
6702 * tree-sra.cc: Likewise.
6703 * tree-ssa-ccp.cc: Likewise.
6704 * tree-ssa-copy.cc: Likewise.
6705 * tree-ssa-dce.cc: Likewise.
6706 * tree-ssa-dom.cc: Likewise.
6707 * tree-ssa-dse.cc: Likewise.
6708 * tree-ssa-forwprop.cc: Likewise.
6709 * tree-ssa-ifcombine.cc: Likewise.
6710 * tree-ssa-loop-ch.cc: Likewise.
6711 * tree-ssa-loop-im.cc: Likewise.
6712 * tree-ssa-loop-ivcanon.cc: Likewise.
6713 * tree-ssa-loop-prefetch.cc: Likewise.
6714 * tree-ssa-loop-split.cc: Likewise.
6715 * tree-ssa-loop-unswitch.cc: Likewise.
6716 * tree-ssa-loop.cc: Likewise.
6717 * tree-ssa-math-opts.cc: Likewise.
6718 * tree-ssa-phiopt.cc: Likewise.
6719 * tree-ssa-phiprop.cc: Likewise.
6720 * tree-ssa-pre.cc: Likewise.
6721 * tree-ssa-reassoc.cc: Likewise.
6722 * tree-ssa-sccvn.cc: Likewise.
6723 * tree-ssa-sink.cc: Likewise.
6724 * tree-ssa-strlen.cc: Likewise.
6725 * tree-ssa-structalias.cc: Likewise.
6726 * tree-ssa-uncprop.cc: Likewise.
6727 * tree-ssa-uninit.cc: Likewise.
6728 * tree-ssanames.cc: Likewise.
6729 * tree-stdarg.cc: Likewise.
6730 * tree-switch-conversion.cc: Likewise.
6731 * tree-tailcall.cc: Likewise.
6732 * tree-vect-generic.cc: Likewise.
6733 * tree-vectorizer.cc: Likewise.
6734 * tree-vrp.cc: Likewise.
6735 * tsan.cc: Likewise.
6736 * ubsan.cc: Likewise.
6737 * var-tracking.cc: Likewise.
6738 * vtable-verify.cc: Likewise.
6739 * web.cc: Likewise.
6740
6741 2022-06-27 Andrew Stubbs <ams@codesourcery.com>
6742
6743 * config/gcn/gcn.md (*movbi): Remove assembler bug workarounds.
6744 (jump): Likewise.
6745 (movdi_symbol_save_scc): Likewise.
6746
6747 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
6748
6749 PR rtl-optimization/7061
6750 * config/i386/i386.md (*highpartdisi2): New define_insn_and_split.
6751
6752 2022-06-27 Roger Sayle <roger@nextmovesoftware.com>
6753
6754 PR tree-optimization/94026
6755 * match.pd (((X << C1) & C2) eq/ne C3): New simplification.
6756 (((X >> C1) & C2) eq/ne C3): Likewise.
6757
6758 2022-06-27 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6759
6760 * statistics.cc: Include tree.h.
6761 (get_function_name): New function.
6762 (statistics_fini_pass_2): Call get_function_name instead of
6763 current_function_name.
6764 (statistics_counter_event): Call get_function_name instead of
6765 function_name.
6766 (statistics_histogram_event): Likewise.
6767
6768 2022-06-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
6769
6770 * config/xtensa/xtensa.md:
6771 Suppress unnecessary emitting nop insn in the split patterns for
6772 integer/FP constant synthesis, and add new peephole2 pattern that
6773 folds such synthesized additions.
6774
6775 2022-06-25 Aldy Hernandez <aldyh@redhat.com>
6776
6777 * tree-ssa-dom.cc (dom_jt_state): Pass ranger to constructor
6778 instead of evrp.
6779 (dom_jt_state::push): Remove m_evrp.
6780 (dom_jt_state::pop): Same.
6781 (dom_jt_state::record_ranges_from_stmt): Remove.
6782 (dom_jt_state::register_equiv): Remove updating of evrp ranges.
6783 (class dom_jt_simplifier): Pass ranger to constructor.
6784 Inherit from hybrid_jt_simplifier.
6785 (dom_jt_simplifier::simplify): Convert to ranger.
6786 (pass_dominator::execute): Same.
6787 (all_uses_feed_or_dominated_by_stmt): New.
6788 (dom_opt_dom_walker::set_global_ranges_from_unreachable_edges): New.
6789 (dom_opt_dom_walker::before_dom_children): Call
6790 set_global_ranges_from_unreachable_edges.
6791 Do not call record_ranges_from_stmt.
6792 (dom_opt_dom_walker::after_dom_children): Remove evrp use.
6793 (cprop_operand): Use int_range<> instead of value_range.
6794 (dom_opt_dom_walker::fold_cond): New.
6795 (dom_opt_dom_walker::optimize_stmt): Pass ranger to
6796 cprop_into_stmt.
6797 Use fold_cond() instead of vrp_visit_cond_stmt().
6798 * tree-ssa-threadedge.cc (jt_state::register_equivs_stmt): Do not
6799 pass state to simplifier.
6800 * vr-values.h (class vr_values): Make fold_cond public.
6801
6802 2022-06-25 Jeff Law <jeffreyalaw@gmail.com>
6803
6804 * common/config/tilegx/tilegx-common.cc: Removed.
6805 * common/config/tilepro/tilepro-common.cc: Removed.
6806 * config.gcc: Remove tilegx and tilepro entries.
6807 * config/tilegx/constraints.md: Removed.
6808 * config/tilegx/feedback.h: Removed.
6809 * config/tilegx/linux.h: Removed.
6810 * config/tilegx/mul-tables.cc: Removed.
6811 * config/tilegx/predicates.md: Removed.
6812 * config/tilegx/sync.md: Removed.
6813 * config/tilegx/t-tilegx: Removed.
6814 * config/tilegx/tilegx-builtins.h: Removed.
6815 * config/tilegx/tilegx-c.cc: Removed.
6816 * config/tilegx/tilegx-generic.md: Removed.
6817 * config/tilegx/tilegx-modes.def: Removed.
6818 * config/tilegx/tilegx-multiply.h: Removed.
6819 * config/tilegx/tilegx-opts.h: Removed.
6820 * config/tilegx/tilegx-protos.h: Removed.
6821 * config/tilegx/tilegx.cc: Removed.
6822 * config/tilegx/tilegx.h: Removed.
6823 * config/tilegx/tilegx.md: Removed.
6824 * config/tilegx/tilegx.opt: Removed.
6825 * config/tilepro/constraints.md: Removed.
6826 * config/tilepro/feedback.h: Removed.
6827 * config/tilepro/gen-mul-tables.cc: Removed.
6828 * config/tilepro/linux.h: Removed.
6829 * config/tilepro/mul-tables.cc: Removed.
6830 * config/tilepro/predicates.md: Removed.
6831 * config/tilepro/t-tilepro: Removed.
6832 * config/tilepro/tilepro-builtins.h: Removed.
6833 * config/tilepro/tilepro-c.cc: Removed.
6834 * config/tilepro/tilepro-generic.md: Removed.
6835 * config/tilepro/tilepro-modes.def: Removed.
6836 * config/tilepro/tilepro-multiply.h: Removed.
6837 * config/tilepro/tilepro-protos.h: Removed.
6838 * config/tilepro/tilepro.cc: Removed.
6839 * config/tilepro/tilepro.h: Removed.
6840 * config/tilepro/tilepro.md: Removed.
6841 * config/tilepro/tilepro.opt: Removed.
6842 * configure.ac: Remove tilegx and tilepro entries.
6843 * configure: Rebuilt.
6844 * doc/extend.texi: Remove tilegx and tilepro entries.
6845 * doc/install.texi: Remove tilegx and tilepro entries.
6846 * doc/invoke.texi: Remove tilegx and tilepro entries.
6847 * doc/md.texi: Remove tilegx and tilepro entries.
6848
6849 2022-06-25 Roger Sayle <roger@nextmovesoftware.com>
6850 Richard Biener <rguenther@suse.de>
6851
6852 * regcprop.cc (pass_cprop_hardreg::execute): Perform a third
6853 iteration over each basic block that was updated by the second
6854 iteration.
6855
6856 2022-06-24 Jason Merrill <jason@redhat.com>
6857
6858 PR c++/87729
6859 PR c++/20423
6860 * doc/invoke.texi: Document changes.
6861
6862 2022-06-24 Iain Buclaw <ibuclaw@gdcproject.org>
6863
6864 * config/tilepro/gen-mul-tables.cc (tilegx_emit): Adjust loop
6865 condition to avoid overflow.
6866
6867 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
6868
6869 * config/rs6000/aix71.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
6870 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
6871 * config/rs6000/darwin.h (MASK_PPC_GFXOPT): Replace with
6872 OPTION_MASK_PPC_GFXOPT.
6873 * config/rs6000/darwin64-biarch.h (MASK_PPC_GFXOPT): Same.
6874 * config/rs6000/default64.h (MASK_PPC_GPOPT, MASK_PPC_GFXOPT): Replace with
6875 OPTION_MASK_PPC_GPOPT, OPTION_MASK_PPC_GFXOPT.
6876 * config/rs6000/rs6000-c.cc: Update comment.
6877 * config/rs6000/rs6000-cpus.def: Update RS6000_CPU macro calls.
6878 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
6879 MASK_PPC_GPOPT with OPTION_MASK_PPC_GPOPT.
6880 (rs6000_builtin_mask_names): Replace MASK_PPC_GFXOPT, MASK_POPCNTB
6881 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_POPCNTB.
6882 * config/rs6000/rs6000.h: (MASK_P8_VECTOR, MASK_P9_VECTOR,
6883 MASK_P9_MISC, MASK_POPCNTB, MASK_POPCNTD, MASK_PPC_GFXOPT,
6884 MASK_PPC_GPOPT, MASK_RECIP_PRECISION, MASK_SOFT_FLOAT,
6885 MASK_VSX, MASK_POWER10, MASK_P10_FUSION): Delete.
6886
6887 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
6888
6889 * config/rs6000/aix71.h (TARGET_DEFAULT): Replace MASK_MFCRF with
6890 OPTION_MASK_MFCRF.
6891 * config/rs6000/darwin.h (TARGET_DEFAULT): Replace MASK_MULTIPLE with
6892 OPTION_MASK_MULTIPLE.
6893 * config/rs6000/darwin64-biarch.h (TARGET_DEFAULT): Same.
6894 * config/rs6000/default64.h (TARGET_DEFAULT): Replace MASK_MFCRF with
6895 OPTION_MASK_MFCRF.
6896 * config/rs6000/eabi.h (TARGET_DEFAULT): Replace MASK_EABI with
6897 OPTION_MASK_EABI.
6898 * config/rs6000/eabialtivec.h (TARGET_DEFAULT): Same.
6899 * config/rs6000/linuxaltivec.h (TARGET_DEFAULT): Replace
6900 MASK_ALTIVEC with OPTION_MASK_ALTIVEC.
6901 * config/rs6000/rs6000-cpus.def (MASK_ALTIVEC, MASK_CMPB,
6902 MASK_CRYPTO, MASK_DFP, MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI,
6903 MASK_FLOAT128_KEYWORD, MASK_FLOAT128_HW, MASK_FPRND,
6904 MASK_P8_FUSION, MASK_HARD_FLOAT, MASK_HTM, MASK_ISEL, MASK_MFCRF,
6905 MASK_MMA, MASK_MULHW, MASK_MULTIPLE, MASK_NO_UPDATE):
6906 Replace with
6907 OPTION_MASK_ALTIVEC, OPTION_MASK_CMPB, OPTION_MASK_CRYPTO,
6908 OPTION_MASK_DFP, OPTION_MASK_DIRECT_MOVE, OPTION_MASK_DLMZB,
6909 OPTION_MASK_EABI, OPTION_MASK_FLOAT128_KEYWORD,
6910 OPTION_MASK_FLOAT128_HW, OPTION_MASK_FPRND, OPTION_MASK_P8_FUSION,
6911 OPTION_MASK_HARD_FLOAT, OPTION_MASK_HTM, OPTION_MASK_ISEL,
6912 OPTION_MASK_MFCRF, OPTION_MASK_MMA, OPTION_MASK_MULHW,
6913 OPTION_MASK_MULTIPLE, OPTION_MASK_NO_UPDATE.
6914 * config/rs6000/rs6000.cc (rs6000_darwin_file_start): Replace
6915 MASK_MFCRF, MASK_ALTIVEC with OPTION_MASK_MFCRF, OPTION_MASK_ALTIVEC.
6916 * config/rs6000/rs6000.h (TARGET_DEFAULT): Replace MASK_MULTIPLE
6917 with OPTION_MASK_MULTIPLE.
6918 (MASK_ALTIVEC, MASK_CMPB, MASK_CRYPTO, MASK_DFP,
6919 MASK_DIRECT_MOVE, MASK_DLMZB, MASK_EABI, MASK_FLOAT128_KEYWORD,
6920 MASK_FLOAT128_HW, MASK_FPRND, MASK_P8_FUSION, MASK_HARD_FLOAT,
6921 MASK_HTM, MASK_ISEL, MASK_MFCRF, MASK_MMA, MASK_MULHW,
6922 MASK_MULTIPLE, MASK_NO_UPDATE): Delete.
6923 * config/rs6000/vxworks.h (TARGET_DEFAULT): Replace MASK_EABI
6924 with OPTION_MASK_EABI.
6925
6926 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
6927
6928 * config/rs6000/rs6000.cc (RS6000_BTM_ALTIVEC, RS6000_BTM_CMPB,
6929 RS6000_BTM_VSX, RS6000_BTM_FRE, RS6000_BTM_P8_VECTOR,
6930 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_MODULO,
6931 RS6000_BTM_CRYPTO, RS6000_BTM_HTM): Replace with OPTION_MASK_ALTIVEC,
6932 OPTION_MASK_CMPB, OPTION_MASK_VSX, OPTION_MASK_POPCNTB,
6933 OPTION_MASK_P8_VECTOR, OPTION_MASK_P9_VECTOR, OPTION_MASK_P9_MISC,
6934 OPTION_MASK_MODULO, OPTION_MASK_CRYPTO, OPTION_MASK_HTM.
6935 * config/rs6000/rs6000.h (RS6000_BTM_MODULO, RS6000_BTM_ALTIVEC,
6936 RS6000_BTM_CMPB, RS6000_BTM_VSX, RS6000_BTM_P8_VECTOR,
6937 RS6000_BTM_P9_VECTOR, RS6000_BTM_P9_MISC, RS6000_BTM_CRYPTO,
6938 RS6000_BTM_HTM, RS6000_BTM_FRE): Remove.
6939
6940 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
6941
6942 * config/rs6000/rs6000-c.cc: Update comments.
6943 * config/rs6000/rs6000.cc (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
6944 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
6945 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_DFP,
6946 RS6000_BTM_HARD_FLOAT,RS6000_BTM_LDBL128, RS6000_BTM_FLOAT128,
6947 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Replace
6948 with OPTION_MASK_PPC_GFXOPT, OPTION_MASK_PPC_GFXOPT,
6949 OPTION_MASK_POPCNTB, OPTION_MASK_POPCNTD,
6950 OPTION_MASK_FPRND, MASK_64BIT, MASK_POWERPC64,
6951 OPTION_MASK_DFP, OPTION_MASK_SOFT_FLOAT, OPTION_MASK_MULTIPLE,
6952 OPTION_MASK_FLOAT128_KEYWORD, OPTION_MASK_FLOAT128_HW,
6953 OPTION_MASK_MMA, OPTION_MASK_POWER10.
6954 * config/rs6000/rs6000.h (RS6000_BTM_FRES, RS6000_BTM_FRSQRTE,
6955 RS6000_BTM_FRSQRTES, RS6000_BTM_POPCNTD, RS6000_BTM_CELL,
6956 RS6000_BTM_DFP, RS6000_BTM_HARD_FLOAT, RS6000_BTM_LDBL128,
6957 RS6000_BTM_64BIT, RS6000_BTM_POWERPC64, RS6000_BTM_FLOAT128,
6958 RS6000_BTM_FLOAT128_HW, RS6000_BTM_MMA, RS6000_BTM_P10): Delete.
6959
6960 2022-06-24 Will Schmidt <will_schmidt@vnet.ibm.com>
6961
6962 * config/rs6000/rs6000.h (RS6000_BTM_COMMON, RS6000_BTM_ALWAYS,
6963 MASK_REGNAMES, OPTION_MASK_REGNAMES, MASK_PROTOTYPE,
6964 OPTION_MASK_PROTOTYPE, MASK_UPDATE, OPTION_MASK_UPDATE): Remove.
6965
6966 2022-06-24 Richard Biener <rguenther@suse.de>
6967
6968 PR middle-end/106070
6969 * match.pd (a != b ? a : b): Fix translation of
6970 operand_equal_for_comparison_p.
6971
6972 2022-06-24 Jan Hubicka <jh@suse.cz>
6973
6974 PR ipa/106057
6975 * tree-ssa-alias.cc (stmt_kills_ref_p): Check for external throw.
6976
6977 2022-06-24 Martin Liska <mliska@suse.cz>
6978
6979 PR middle-end/106059
6980 * profile-count.h: *= and /= operators need to modify this
6981 object.
6982
6983 2022-06-24 Roger Sayle <roger@nextmovesoftware.com>
6984 Uroš Bizjak <ubizjak@gmail.com>
6985
6986 PR target/105930
6987 * config/i386/i386.md (*<any_or>di3_doubleword): Split after
6988 reload. Use rtx_equal_p to avoid creating memory-to-memory moves,
6989 and emit NOTE_INSN_DELETED if operand[2] is zero (i.e. with -O0).
6990
6991 2022-06-24 Alexandre Oliva <oliva@adacore.com>
6992
6993 * common.opt (nostdlib++): New.
6994 * doc/invoke.texi (-nostdlib++): Document it.
6995
6996 2022-06-24 Alexandre Oliva <oliva@adacore.com>
6997
6998 * doc/sourcebuild.texi (Environment attributes): Document
6999 two_plus_gigs.
7000
7001 2022-06-23 David Malcolm <dmalcolm@redhat.com>
7002
7003 * common.opt (fdiagnostics-show-rules): New option.
7004 * diagnostic-format-json.cc (diagnostic_output_format_init_json):
7005 Fix up context->show_rules.
7006 * diagnostic-format-sarif.cc
7007 (diagnostic_output_format_init_sarif): Likewise.
7008 * diagnostic-metadata.h (diagnostic_metadata::rule): New class.
7009 (diagnostic_metadata::precanned_rule): New class.
7010 (diagnostic_metadata::add_rule): New.
7011 (diagnostic_metadata::get_num_rules): New.
7012 (diagnostic_metadata::get_rule): New.
7013 (diagnostic_metadata::m_rules): New field.
7014 * diagnostic.cc (diagnostic_initialize): Initialize show_rules.
7015 (print_any_rules): New.
7016 (diagnostic_report_diagnostic): Call it.
7017 * diagnostic.h (diagnostic_context::show_rules): New field.
7018 * doc/invoke.texi (-fno-diagnostics-show-rules): New option.
7019 * opts.cc (common_handle_option): Handle
7020 OPT_fdiagnostics_show_rules.
7021 * toplev.cc (general_init): Set up global_dc->show_rules.
7022
7023 2022-06-23 Martin Liska <mliska@suse.cz>
7024
7025 PR c++/106062
7026 * ubsan.cc (sanitize_unreachable_fn): Change order of calls
7027 in order to initialize UBSAN built-ins.
7028
7029 2022-06-23 Martin Liska <mliska@suse.cz>
7030
7031 PR ipa/105600
7032 * ipa-icf.cc (sem_item_optimizer::filter_removed_items):
7033 Skip variables with body_removed.
7034
7035 2022-06-23 liuhongt <hongtao.liu@intel.com>
7036
7037 * config/i386/sse.md:(sse4_2_pcmpestr): Replace REGNO with
7038 reg_or_subregno.
7039 (sse4_2_pcmpistr): Ditto.
7040
7041 2022-06-23 Xionghu Luo <xionghuluo@tencent.com>
7042
7043 * cgraph.cc (cgraph_edge::redirect_call_stmt_to_callee): Fix
7044 typo.
7045 * tree-ssa-loop-ivopts.cc (struct iv_cand): Likewise.
7046 * tree-switch-conversion.h: Likewise.
7047
7048 2022-06-22 Jason Merrill <jason@redhat.com>
7049
7050 PR c++/104642
7051 * common.opt: Add -funreachable-traps.
7052 * doc/invoke.texi (-funreachable-traps): Document it.
7053 * opts.cc (finish_options): Enable at -O0 or -Og.
7054 * tree.cc (build_common_builtin_nodes): Add __builtin_trap.
7055 (builtin_decl_unreachable, build_builtin_unreachable): New.
7056 * tree.h: Declare them.
7057 * ubsan.cc (sanitize_unreachable_fn): Factor out.
7058 (ubsan_instrument_unreachable): Use
7059 gimple_build_builtin_unreachable.
7060 * ubsan.h (sanitize_unreachable_fn): Declare.
7061 * gimple.cc (gimple_build_builtin_unreachable): New.
7062 * gimple.h: Declare it.
7063 * builtins.cc (expand_builtin_unreachable): Add assert.
7064 (fold_builtin_0): Call build_builtin_unreachable.
7065 * sanopt.cc: Don't run for just SANITIZE_RETURN
7066 or SANITIZE_UNREACHABLE when trapping.
7067 * cgraphunit.cc (walk_polymorphic_call_targets): Use new
7068 unreachable functions.
7069 * gimple-fold.cc (gimple_fold_call)
7070 (gimple_get_virt_method_for_vtable)
7071 * ipa-fnsummary.cc (redirect_to_unreachable)
7072 * ipa-prop.cc (ipa_make_edge_direct_to_target)
7073 (ipa_impossible_devirt_target)
7074 * ipa.cc (walk_polymorphic_call_targets)
7075 * tree-cfg.cc (pass_warn_function_return::execute)
7076 (execute_fixup_cfg)
7077 * tree-ssa-loop-ivcanon.cc (remove_exits_and_undefined_stmts)
7078 (unloop_loops)
7079 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt):
7080 Likewise.
7081
7082 2022-06-22 Richard Sandiford <richard.sandiford@arm.com>
7083
7084 PR tree-optimization/106019
7085 * tree-data-ref.cc (dr_may_alias_p): Try using the
7086 innermost_loop_behavior to disambiguate non-loop queries.
7087
7088 2022-06-22 Palmer Dabbelt <palmer@rivosinc.com>
7089
7090 * doc/invoke.texi (RISC-V): Document -mtune=thead-c906.
7091
7092 2022-06-22 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7093
7094 * config/xtensa/xtensa.md (bswapsi2_internal):
7095 Enlarge the buffer that is obviously smaller than the template
7096 string given to sprintf().
7097
7098 2022-06-21 Roger Sayle <roger@nextmovesoftware.com>
7099 Marek Polacek <polacek@redhat.com>
7100 Segher Boessenkool <segher@kernel.crashing.org>
7101 Kewen Lin <linkw@linux.ibm.com>
7102
7103 PR target/105991
7104 * config/rs6000/rs6000.md (rotl<mode>3_insert_3): Check that
7105 exact_log2 doesn't return -1 (or zero).
7106 (plus_xor): New code iterator.
7107 (*rotl<mode>3_insert_3_<code>): New define_insn_and_split.
7108
7109 2022-06-21 Nathan Sidwell <nathan@acm.org>
7110
7111 * doc/invoke.texi (C++ Modules): Remove language-linkage
7112 as missing feature.
7113
7114 2022-06-21 Arjun Shankar <arjun@redhat.com>
7115
7116 PR tree-optimization/94899
7117 * match.pd (X + C < Y + C -> (signed) X < (signed) Y, if C is
7118 0x80000000): New simplification.
7119
7120 2022-06-21 Jakub Jelinek <jakub@redhat.com>
7121
7122 PR rtl-optimization/106032
7123 * ifcvt.cc (noce_try_sign_mask): Punt if !t_unconditional, and
7124 t may_trap_or_fault_p, even if it is cheap.
7125
7126 2022-06-21 Jakub Jelinek <jakub@redhat.com>
7127
7128 PR middle-end/106030
7129 * expr.cc (expand_cond_expr_using_cmove): Pass NULL_RTX instead of
7130 temp to expand_operands if mode has been promoted.
7131
7132 2022-06-21 Xionghu Luo <xionghuluo@tencent.com>
7133
7134 PR target/105740
7135 * gimple-if-to-switch.cc (find_conditions): Don't skip the first
7136 condition bb.
7137
7138 2022-06-21 Siddhesh Poyarekar <siddhesh@gotplt.org>
7139
7140 PR tree-optimization/105736
7141 * tree-object-size.cc (addr_object_size): Return size_unknown
7142 when object offset computation returns an error.
7143
7144 2022-06-20 H.J. Lu <hjl.tools@gmail.com>
7145
7146 PR target/105960
7147 * config/i386/i386.cc (ix86_function_ok_for_sibcall): Return
7148 false if PIC register is used when calling ifunc functions.
7149
7150 2022-06-20 Richard Biener <rguenther@suse.de>
7151
7152 PR middle-end/106027
7153 * fold-const.cc (fold_to_nonsharp_ineq_using_bound): Use the
7154 type of the prevailing comparison for the new comparison type.
7155 (fold_binary_loc): Use proper types for the A < X && A + 1 > Y
7156 to A < X && A >= Y folding.
7157
7158 2022-06-20 Kewen Lin <linkw@linux.ibm.com>
7159
7160 PR tree-optimization/105940
7161 * tree-vect-loop.cc (vect_analyze_loop_2): Add new parameter
7162 slp_done_for_suggested_uf and adjust with it accordingly.
7163 (vect_analyze_loop_1): Add new variable slp_done_for_suggested_uf,
7164 pass it down to vect_analyze_loop_2 for the initial analysis and
7165 applying suggested unroll factor.
7166 (vect_is_simple_reduction): Add parameter slp and adjust with it.
7167 (vect_analyze_scalar_cycles_1): Add parameter slp and pass down.
7168 (vect_analyze_scalar_cycles): Likewise.
7169
7170 2022-06-20 Martin Liska <mliska@suse.cz>
7171
7172 * bb-reorder.cc (find_traces_1_round): Add operators / and * and
7173 use them.
7174 (better_edge_p): Likewise.
7175 * cfgloop.cc (find_subloop_latch_edge_by_profile): Likewise.
7176 * cfgloopmanip.cc (scale_loop_profile): Likewise.
7177 * cfgrtl.cc (force_nonfallthru_and_redirect): Likewise.
7178 * cgraph.cc (cgraph_edge::maybe_hot_p): Likewise.
7179 * config/sh/sh.cc (expand_cbranchdi4): Likewise.
7180 * dojump.cc (do_compare_rtx_and_jump): Likewise.
7181 * final.cc (compute_alignments): Likewise.
7182 * ipa-cp.cc (update_counts_for_self_gen_clones): Likewise.
7183 (decide_about_value): Likewise.
7184 * ipa-inline-analysis.cc (do_estimate_edge_time): Likewise.
7185 * loop-unroll.cc (unroll_loop_runtime_iterations): Likewise.
7186 * modulo-sched.cc (sms_schedule): Likewise.
7187 * omp-expand.cc (extract_omp_for_update_vars): Likewise.
7188 (expand_omp_ordered_sink): Likewise.
7189 (expand_omp_for_ordered_loops): Likewise.
7190 (expand_omp_for_static_nochunk): Likewise.
7191 * predict.cc (maybe_hot_count_p): Likewise.
7192 (probably_never_executed): Likewise.
7193 (set_even_probabilities): Likewise.
7194 (handle_missing_profiles): Likewise.
7195 (expensive_function_p): Likewise.
7196 * profile-count.h: Likewise.
7197 * profile.cc (compute_branch_probabilities): Likewise.
7198 * stmt.cc (emit_case_dispatch_table): Likewise.
7199 * symtab-thunks.cc (expand_thunk): Likewise.
7200 * tree-ssa-loop-manip.cc (tree_transform_and_unroll_loop): Likewise.
7201 * tree-ssa-sink.cc (select_best_block): Likewise.
7202 * tree-switch-conversion.cc (switch_decision_tree::analyze_switch_statement): Likewise.
7203 (switch_decision_tree::balance_case_nodes): Likewise.
7204 (switch_decision_tree::emit_case_nodes): Likewise.
7205 * tree-vect-loop.cc (scale_profile_for_vect_loop): Likewise.
7206
7207 2022-06-20 yulong <shiyulong@iscas.ac.cn>
7208
7209 * config/riscv/riscv-builtins.cc (RISCV_ATYPE_VOID_PTR): New.
7210 * config/riscv/riscv-cmo.def (RISCV_BUILTIN): Changed the FUNCTION_TYPE
7211 of RISCV_BUILTIN.
7212 * config/riscv/riscv-ftypes.def (0): Remove unused.
7213 (1): New.
7214
7215 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7216
7217 * config/xtensa/xtensa.cc (xtensa_is_insn_L32R_p):
7218 Consider relaxed MOVI instructions as L32R.
7219
7220 2022-06-19 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7221
7222 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
7223 Use can_create_pseudo_p(), instead of using individual
7224 reload_in_progress and reload_completed.
7225 (xtensa_expand_block_set_small_loop): Use xtensa_simm8x256(),
7226 the existing predicate function.
7227 (xtensa_is_insn_L32R_p, gen_int_relational, xtensa_emit_sibcall):
7228 Use the standard RTX code predicate macros such as MEM_P,
7229 SYMBOL_REF_P and/or CONST_INT_P.
7230 * config/xtensa/xtensa.md: Avoid using numeric literals to determine
7231 if callee-saved register, at the split patterns for indirect sibcall
7232 fixups.
7233
7234 2022-06-18 Jakub Jelinek <jakub@redhat.com>
7235
7236 * common.opt (flag_sanitize_trap): New variable.
7237 (fsanitize-trap=, fsanitize-trap): New options.
7238 (fsanitize-undefined-trap-on-error): Change into deprecated alias
7239 for -fsanitize-trap=all.
7240 * opts.h (struct sanitizer_opts_s): Add can_trap member.
7241 * opts.cc (finish_options): Complain about unsupported
7242 -fsanitize-trap= options.
7243 (sanitizer_opts): Add can_trap values to all entries.
7244 (get_closest_sanitizer_option): Ignore -fsanitize-trap=
7245 options which have can_trap false.
7246 (parse_sanitizer_options): Add support for -fsanitize-trap=.
7247 For -fsanitize-trap=all, enable
7248 SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT. Disallow
7249 -fsanitize-trap=vptr here.
7250 (common_handle_option): Handle OPT_fsanitize_trap_ and
7251 OPT_fsanitize_trap.
7252 * sanopt.cc (maybe_optimize_ubsan_null_ifn): Check
7253 flag_sanitize_trap & SANITIZE_{NULL,ALIGNMENT} instead of
7254 flag_sanitize_undefined_trap_on_error.
7255 * gcc.cc (sanitize_spec_function): Use
7256 flag_sanitize & ~flag_sanitize_trap instead of flag_sanitize
7257 and drop use of flag_sanitize_undefined_trap_on_error in
7258 "undefined" handling.
7259 * ubsan.cc (ubsan_instrument_unreachable): Use
7260 flag_sanitize_trap & SANITIZE_??? instead of
7261 flag_sanitize_undefined_trap_on_error.
7262 (ubsan_expand_bounds_ifn, ubsan_expand_null_ifn,
7263 ubsan_expand_objsize_ifn, ubsan_expand_ptr_ifn,
7264 ubsan_build_overflow_builtin, instrument_bool_enum_load,
7265 ubsan_instrument_float_cast, instrument_nonnull_arg,
7266 instrument_nonnull_return, instrument_builtin): Likewise.
7267 * doc/invoke.texi (-fsanitize-trap=, -fsanitize-trap): Document.
7268 (-fsanitize-undefined-trap-on-error): Document as deprecated
7269 alias of -fsanitize-trap.
7270
7271 2022-06-18 Jakub Jelinek <jakub@redhat.com>
7272
7273 PR middle-end/105998
7274 * varasm.cc (narrowing_initializer_constant_valid_p): Check
7275 SCALAR_INT_MODE_P instead of INTEGRAL_MODE_P, also break on
7276 ! INTEGRAL_TYPE_P and do the same check also on op{0,1}'s type.
7277
7278 2022-06-18 Roger Sayle <roger@nextmovesoftware.com>
7279
7280 PR tree-optimization/105835
7281 * match.pd (convert (mult zero_one_valued_p@1 INTEGER_CST@2)):
7282 Narrow integer multiplication by a zero_one_valued_p operand.
7283 (convert (cond @1 INTEGER_CST@2 INTEGER_CST@3)): Push integer
7284 conversions inside COND_EXPR where both data operands are
7285 integer constants.
7286
7287 2022-06-18 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7288
7289 * config/xtensa/constraints.md (Y):
7290 Change to include integer constants until reload begins.
7291 * config/xtensa/predicates.md (move_operand): Ditto.
7292 * config/xtensa/xtensa.cc (xtensa_emit_move_sequence):
7293 Change to allow storing integer constants into litpool only after
7294 reload begins.
7295
7296 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7297
7298 PR target/105209
7299 * config/alpha/alpha-protos.h (alpha_store_data_bypass_p): New.
7300 * config/alpha/alpha.cc (alpha_store_data_bypass_p): New function.
7301 (alpha_store_data_bypass_p_1): Ditto.
7302 * config/alpha/ev4.md: Use alpha_store_data_bypass_p instead
7303 of generic store_data_bypass_p.
7304 (ev4_ist_c): Remove insn reservation.
7305
7306 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7307
7308 PR target/105970
7309 * config/i386/i386.cc (ix86_function_arg): Assert that
7310 the mode of pointer argumet is equal to ptr_mode, not Pmode.
7311
7312 2022-06-17 Uroš Bizjak <ubizjak@gmail.com>
7313
7314 PR target/105993
7315 * config/i386/sse.md (vpmov splitter): Use (match_dup ...)
7316 instead of REGNO comparisons in combine splitter.
7317
7318 2022-06-17 Segher Boessenkool <segher@kernel.crashing.org>
7319
7320 * config/rs6000/rs6000.cc (rs6000_invalid_conversion): Correct some
7321 types.
7322
7323 2022-06-17 Kito Cheng <kito.cheng@sifive.com>
7324
7325 * config/riscv/bitmanip.md: Supress warning.
7326
7327 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
7328
7329 PR target/106004
7330 * config/arm/arm.cc (arm_print_operand, case 'V'): Use UINTVAL.
7331 Clear bits in the mask above bit 31.
7332
7333 2022-06-17 Richard Earnshaw <rearnsha@arm.com>
7334
7335 * config/arm/mve.md (*mve_mov<mode>): Re-order constraints
7336 to avoid spilling trivial literals to the constant pool.
7337
7338 2022-06-16 David Malcolm <dmalcolm@redhat.com>
7339
7340 * gimple-ssa-warn-access.cc (warn_string_no_nul): Add
7341 auto_diagnostic_group to group any warning with its note.
7342 (maybe_warn_for_bound): Likewise.
7343 (check_access): Likewise.
7344 (warn_dealloc_offset): Likewise.
7345 (pass_waccess::maybe_warn_memmodel): Likewise.
7346 (pass_waccess::maybe_check_dealloc_call): Likewise.
7347 (pass_waccess::warn_invalid_pointer): Likewise.
7348 (pass_waccess::check_dangling_stores): Likewise.
7349
7350 2022-06-16 Jason Merrill <jason@redhat.com>
7351
7352 * opts.cc (common_handle_option) [OPT_fsanitize_]: Set
7353 opts_set->x_flag_sanitize.
7354
7355 2022-06-16 Jason Merrill <jason@redhat.com>
7356
7357 * flags.h (issue_strict_overflow_warning): Comment #endif.
7358
7359 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
7360
7361 * gimple-range-cache.cc (ranger_cache::apply_inferred_ranges): If name
7362 was invaraint before, clear the invariant bit.
7363 * gimple-range-gori.cc (gori_map::set_range_invariant): Add a flag.
7364 * gimple-range-gori.h (gori_map::set_range_invariant): Adjust prototype.
7365
7366 2022-06-16 Andrew MacLeod <amacleod@redhat.com>
7367
7368 * tree-ssa-propagate.cc (before_dom_children): Call value_of_stmt.
7369
7370 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7371
7372 PR tree-optimization/105983
7373 * match.pd (y == XXX_MIN || x < y -> x <= y - 1,
7374 y != XXX_MIN && x >= y -> x > y - 1): Use :cs instead of :s
7375 on non-equality comparisons.
7376
7377 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7378
7379 PR tree-optimization/105984
7380 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
7381 x > stype_max / cst || x < stype_min / cst): fold_convert @1
7382 to TREE_TYPE (@0) just once and test for negative divisor
7383 also on that folded constant instead of on @1.
7384
7385 2022-06-16 Jakub Jelinek <jakub@redhat.com>
7386
7387 PR middle-end/105951
7388 * tree-ssa-ccp.cc (optimize_atomic_bit_test_and,
7389 optimize_atomic_op_fetch_cmp_0): Remember gimple_call_fn (call)
7390 as last argument to the internal functions.
7391 * builtins.cc (expand_ifn_atomic_bit_test_and): Adjust for the
7392 extra call argument to ifns. If expand_atomic_fetch_op fails for the
7393 lhs == NULL_TREE case, fall through into the optab code with
7394 gen_reg_rtx (mode) as target. If second expand_atomic_fetch_op
7395 fails, construct a CALL_EXPR and expand that.
7396 (expand_ifn_atomic_op_fetch_cmp_0): Adjust for the extra call argument
7397 to ifns. If expand_atomic_fetch_op fails, construct a CALL_EXPR and
7398 expand that.
7399
7400 2022-06-16 Haochen Gui <guihaoc@gcc.gnu.org>
7401
7402 PR target/103316
7403 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Enable
7404 gimple folding for RS6000_BIF_VCMPEQUT, RS6000_BIF_VCMPNET,
7405 RS6000_BIF_CMPGE_1TI, RS6000_BIF_CMPGE_U1TI, RS6000_BIF_VCMPGTUT,
7406 RS6000_BIF_VCMPGTST, RS6000_BIF_CMPLE_1TI, RS6000_BIF_CMPLE_U1TI.
7407 * config/rs6000/vector.md (VEC_IC): New mode iterator. Add support
7408 for new Power10 V1TI instructions.
7409 (vec_cmp<mode><mode>): Set mode iterator to VEC_IC.
7410 (vec_cmpu<mode><mode>): Likewise.
7411 (vector_nlt<mode>): Set mode iterator to VEC_IC.
7412 (vector_nltv1ti): Remove.
7413 (vector_gtu<mode>): Set mode iterator to VEC_IC.
7414 (vector_gtuv1ti): Remove.
7415 (vector_nltu<mode>): Set mode iterator to VEC_IC.
7416 (vector_nltuv1ti): Remove.
7417 (vector_geu<mode>): Set mode iterator to VEC_IC.
7418 (vector_ngt<mode>): Likewise.
7419 (vector_ngtv1ti): Remove.
7420 (vector_ngtu<mode>): Set mode iterator to VEC_IC.
7421 (vector_ngtuv1ti): Remove.
7422 (vector_gtu_<mode>_p): Set mode iterator to VEC_IC.
7423 (vector_gtu_v1ti_p): Remove.
7424 (vrotl<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
7425 (vrotlv1ti3): Remove.
7426 (vashr<mode>3): Set mode iterator to VEC_IC. Emit insns for V1TI.
7427 (vashrv1ti3): Remove.
7428
7429 2022-06-16 Martin Liska <mliska@suse.cz>
7430
7431 * gengtype-state.cc (read_a_state_token): Do not skip extra
7432 character after escaped sequence.
7433
7434 2022-06-16 Martin Liska <mliska@suse.cz>
7435
7436 PR driver/105564
7437 * spellcheck.cc (test_find_closest_string): Add new test.
7438 * spellcheck.h (class best_match): Prefer a difference in
7439 trailing sign symbol.
7440
7441 2022-06-16 liuhongt <hongtao.liu@intel.com>
7442
7443 PR tree-optimization/53533
7444 * match.pd: Simplify (B * v + C) * D -> BD * v + CD and
7445 (v + B) * C + D -> C * v + BCD when B,C,D are all INTEGER_CST,
7446 and there's no overflow or !TYPE_OVERFLOW_UNDEFINED.
7447
7448 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7449
7450 * config/xtensa/xtensa.md (DSC): New split pattern and mode iterator.
7451
7452 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7453
7454 * config/xtensa/predicates.md (reload_operand):
7455 New predicate.
7456 * config/xtensa/xtensa.md: New peephole2 pattern.
7457
7458 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7459
7460 * config/xtensa/xtensa.md (*round_up_to_even):
7461 New insn-and-split pattern.
7462 (*signed_ge_zero): Ditto.
7463
7464 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7465
7466 * config/xtensa/xtensa-protos.h (xtensa_prepare_expand_call,
7467 xtensa_emit_sibcall): New prototypes.
7468 (xtensa_expand_epilogue): Add new argument that specifies whether
7469 or not sibling call.
7470 * config/xtensa/xtensa.cc (TARGET_FUNCTION_OK_FOR_SIBCALL):
7471 New macro definition.
7472 (xtensa_prepare_expand_call): New function in order to share
7473 the common code.
7474 (xtensa_emit_sibcall, xtensa_function_ok_for_sibcall):
7475 New functions.
7476 (xtensa_expand_epilogue): Add new argument sibcall_p and use it
7477 for sibling call handling.
7478 * config/xtensa/xtensa.md (call, call_value):
7479 Use xtensa_prepare_expand_call.
7480 (call_internal, call_value_internal):
7481 Add the condition in order to be disabled if sibling call.
7482 (sibcall, sibcall_value, sibcall_epilogue): New expansions.
7483 (sibcall_internal, sibcall_value_internal): New insn patterns,
7484 and split ones in order to take care of the indirect sibcalls.
7485
7486 2022-06-15 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7487
7488 * doc/invoke.texi: Document -mextra-l32r-costs= option.
7489
7490 2022-06-15 David Malcolm <dmalcolm@redhat.com>
7491
7492 PR analyzer/105962
7493 * doc/invoke.texi: Add -fno-analyzer-undo-inlining.
7494 * tree-diagnostic-path.cc (default_tree_diagnostic_path_printer):
7495 Extend -fdiagnostics-path-format=separate-events so that with
7496 -fdiagnostics-show-path-depths it prints fndecls as well as stack
7497 depths.
7498
7499 2022-06-15 David Malcolm <dmalcolm@redhat.com>
7500
7501 * value-relation.h: Add "final" and "override" to relation_oracle
7502 vfunc implementations as appropriate.
7503
7504 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7505
7506 PR middle-end/105975
7507 Revert everything apart from the expand_fn_using_insn and
7508 expand_direct_optab_fn changes from:
7509 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
7510 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
7511 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
7512 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
7513 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
7514 member variable.
7515 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
7516 (direct_internal_fn_p): Also return true for internal functions
7517 that map directly to instructions defined target-insns.def.
7518 (direct_internal_fn): Adjust comment accordingly.
7519 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
7520 (vectorizable_optab2): New local macros.
7521 (not_direct): Initialize directly_mapped.
7522 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
7523 (gather_load_direct, len_load_direct, mask_store_direct)
7524 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
7525 (vec_cond_direct, scatter_store_direct, len_store_direct)
7526 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
7527 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
7528 (while_direct, fold_extract_direct, fold_left_direct)
7529 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
7530 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
7531 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
7532 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
7533 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
7534 (direct_internal_fn_types): Handle functions that map to instructions
7535 defined in target-insns.def.
7536 (direct_internal_fn_types): Likewise.
7537 (direct_internal_fn_supported_p): Likewise.
7538 (internal_fn_expanders): Likewise.
7539 (expand_fn_using_insn): New function,
7540 split out and adapted from...
7541 (expand_direct_optab_fn): ...here.
7542 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
7543 (expand_GOMP_SIMT_EXIT): Likewise.
7544 (expand_GOMP_SIMT_LANE): Likewise.
7545 (expand_GOMP_SIMT_LAST_LANE): Likewise.
7546 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
7547 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
7548 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
7549 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
7550
7551 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
7552
7553 PR target/105981
7554 * config/arm/arm.cc (gen_cpymem_ldrd_strd): Rename low_reg and hi_reg
7555 to first_reg and second_reg respectively. Initialize them correctly
7556 when generating big-endian code.
7557
7558 2022-06-15 Richard Earnshaw <rearnsha@arm.com>
7559
7560 PR target/105974
7561 * config/arm/arm.cc (arm_bfi_1_p): Use UINTVAL instead of XUINT.
7562
7563 2022-06-15 Richard Biener <rguenther@suse.de>
7564
7565 PR tree-optimization/105971
7566 * tree-ssa-alias.cc (refs_may_alias_p_2): Put bail-out for
7567 FUNCTION_DECL and LABEL_DECL refs after decl-decl disambiguation
7568 to leak less surprising alias results.
7569
7570 2022-06-15 Richard Biener <rguenther@suse.de>
7571
7572 PR tree-optimization/105969
7573 * gimple-ssa-sprintf.cc (get_origin_and_offset_r): Avoid division
7574 by zero in overflow check.
7575
7576 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7577
7578 PR tree-optimization/105254
7579 PR tree-optimization/105940
7580 Revert:
7581 * config/aarch64/aarch64.cc
7582 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
7583 loop_vec_info as argument. Restrict the unroll factor to values
7584 that divide the VF.
7585 (aarch64_vector_costs::finish_cost): Update call accordingly.
7586
7587 2022-06-15 Richard Sandiford <richard.sandiford@arm.com>
7588
7589 * read-rtl.cc (find_int): Substitute symbolic constants
7590 before converting the string to an integer.
7591
7592 2022-06-15 Roger Sayle <roger@nextmovesoftware.com>
7593 Richard Biener <rguenther@suse.de>
7594
7595 * match.pd (convert (lshift @1 INTEGER_CST@2)): Narrow integer
7596 left shifts by a constant when the result is truncated, and the
7597 shift constant is well-defined.
7598 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Add
7599 support for rotations of signed integer types, by lowering
7600 using unsigned vector shifts.
7601
7602 2022-06-15 liuhongt <hongtao.liu@intel.com>
7603
7604 PR target/105953
7605 * config/i386/sse.md (*avx_cmp<mode>3_ltint_not): Force_reg
7606 operands[3].
7607
7608 2022-06-14 Surya Kumari Jangala <jskumari@linux.ibm.com>
7609
7610 PR rtl-optimization/105041
7611 * regrename.cc (check_new_reg_p): Use nregs value from du chain.
7612
7613 2022-06-14 Segher Boessenkool <segher@kernel.crashing.org>
7614
7615 * config/rs6000/vsx.md (VS_scalar): Delete.
7616 (rest of file): Adjust.
7617
7618 2022-06-14 Jan Hubicka <hubicka@ucw.cz>
7619
7620 PR ipa/105739
7621 * ipa-prop.cc (ipa_load_from_parm_agg): Punt on volatile loads.
7622
7623 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
7624
7625 * config/riscv/bitmanip.md: Add split to handle opportunities
7626 for slli + sh[123]add.uw
7627
7628 2022-06-14 Philipp Tomsich <philipp.tomsich@vrull.eu>
7629
7630 * config/riscv/predicates.md (consecutive_bits_operand):
7631 Implement new predicate.
7632
7633 2022-06-14 Richard Biener <rguenther@suse.de>
7634
7635 PR tree-optimization/105946
7636 * tree-ssa-uninit.cc (maybe_warn_pass_by_reference):
7637 Do not look at arguments not specified in the function call.
7638
7639 2022-06-14 Richard Biener <rguenther@suse.de>
7640
7641 PR middle-end/105965
7642 * match.pd (view_convert CONSTRUCTOR): Handle single-element
7643 CTOR case.
7644
7645 2022-06-14 Eric Botcazou <ebotcazou@adacore.com>
7646
7647 * warning-control.cc (copy_warning) [generic version]: Do not erase
7648 the warning data of the destination location when the no-warning
7649 bit is not set on the source.
7650 (copy_warning) [tree version]: Return early if TO is equal to FROM.
7651 (copy_warning) [gimple version]: Likewise.
7652
7653 2022-06-14 Kewen Lin <linkw@linux.ibm.com>
7654
7655 PR tree-optimization/105940
7656 * tree-vect-loop.cc (vect_analyze_loop_2): Move the place of
7657 applying suggested_unroll_factor after start_over.
7658
7659 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7660
7661 * config/xtensa/predicates.md (shifted_mask_operand):
7662 New predicate.
7663 * config/xtensa/xtensa.md (*andsi3_const_pow2_minus_one):
7664 New insn-and-split pattern.
7665 (*andsi3_const_negative_pow2, *andsi3_const_shifted_mask,
7666 *masktrue_const_pow2_minus_one, *masktrue_const_negative_pow2,
7667 *masktrue_const_shifted_mask): Ditto.
7668
7669 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7670
7671 * config/xtensa/xtensa.md (*masktrue_bitcmpl): New insn pattern.
7672
7673 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7674
7675 * config/xtensa/xtensa-protos.h (xtensa_emit_branch):
7676 Remove the first argument.
7677 (xtensa_emit_bit_branch): Remove it because now called only from the
7678 output statement of *bittrue insn pattern.
7679 * config/xtensa/xtensa.cc (gen_int_relational): Remove the last
7680 argument 'p_invert', and make so that the condition is reversed by
7681 itself as needed.
7682 (xtensa_expand_conditional_branch): Share the common path, and remove
7683 condition inversion code.
7684 (xtensa_emit_branch, xtensa_emit_movcc): Simplify by removing the
7685 "false side" pattern.
7686 (xtensa_emit_bit_branch): Remove it because of the abovementioned
7687 reason, and move the function body to *bittrue insn pattern.
7688 * config/xtensa/xtensa.md (*bittrue): Transplant the output
7689 statement from removed xtensa_emit_bit_branch().
7690 (*bfalse, *ubfalse, *bitfalse, *maskfalse): Remove the "false side"
7691 insn patterns.
7692
7693 2022-06-14 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7694
7695 * config/xtensa/predicates.md (logical_shift_operator,
7696 xtensa_shift_per_byte_operator): New predicates.
7697 * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction):
7698 New prototype.
7699 * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction):
7700 New helper function for funnel shift patterns.
7701 * config/xtensa/xtensa.md (ior_op): New code iterator.
7702 (*ashlsi3_1): Replace with new split pattern.
7703 (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x.
7704 (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1):
7705 New insn-and-split patterns that redirect to *xtensa_shift_per_byte,
7706 in order to omit unnecessary bitwise AND operation.
7707 (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>,
7708 *shlrd_per_byte_<code>_omit_AND):
7709 New insn patterns for funnel shifts.
7710
7711 2022-06-13 Jason Merrill <jason@redhat.com>
7712
7713 * tree-cfg.cc (pass_warn_function_return::execute): Also check
7714 BUILT_IN_TRAP.
7715
7716 2022-06-13 Maciej W. Rozycki <macro@embecosm.com>
7717
7718 * config/riscv/riscv.md (length): Remove the explicit setting
7719 for "fcmp".
7720
7721 2022-06-13 H.J. Lu <hjl.tools@gmail.com>
7722
7723 * common/config/i386/cpuinfo.h (get_available_features): Require
7724 AVX for F16C and VAES.
7725
7726 2022-06-13 Uroš Bizjak <ubizjak@gmail.com>
7727
7728 PR target/105927
7729 * config/i386/predicates.md (register_no_elim_operand):
7730 Return true for subreg of a memory operand.
7731
7732 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
7733
7734 * internal-fn.def (DEF_INTERNAL_INSN_FN): New macro.
7735 (GOMP_SIMT_ENTER_ALLOC, GOMP_SIMT_EXIT, GOMP_SIMT_LANE)
7736 (GOMP_SIMT_LAST_LANE, GOMP_SIMT_ORDERED_PRED, GOMP_SIMT_VOTE_ANY)
7737 (GOMP_SIMT_XCHG_BFLY, GOMP_SIMT_XCHG_IDX): Use it.
7738 * internal-fn.h (direct_internal_fn_info::directly_mapped): New
7739 member variable.
7740 (direct_internal_fn_info::vectorizable): Reduce to 1 bit.
7741 (direct_internal_fn_p): Also return true for internal functions
7742 that map directly to instructions defined target-insns.def.
7743 (direct_internal_fn): Adjust comment accordingly.
7744 * internal-fn.cc (direct_insn, optab1, optab2, vectorizable_optab1)
7745 (vectorizable_optab2): New local macros.
7746 (not_direct): Initialize directly_mapped.
7747 (mask_load_direct, load_lanes_direct, mask_load_lanes_direct)
7748 (gather_load_direct, len_load_direct, mask_store_direct)
7749 (store_lanes_direct, mask_store_lanes_direct, vec_cond_mask_direct)
7750 (vec_cond_direct, scatter_store_direct, len_store_direct)
7751 (vec_set_direct, unary_direct, binary_direct, ternary_direct)
7752 (cond_unary_direct, cond_binary_direct, cond_ternary_direct)
7753 (while_direct, fold_extract_direct, fold_left_direct)
7754 (mask_fold_left_direct, check_ptrs_direct): Use the macros above.
7755 (expand_GOMP_SIMT_ENTER_ALLOC, expand_GOMP_SIMT_EXIT): Delete
7756 (expand_GOMP_SIMT_LANE, expand_GOMP_SIMT_LAST_LANE): Likewise;
7757 (expand_GOMP_SIMT_ORDERED_PRED, expand_GOMP_SIMT_VOTE_ANY): Likewise.
7758 (expand_GOMP_SIMT_XCHG_BFLY, expand_GOMP_SIMT_XCHG_IDX): Likewise.
7759 (direct_internal_fn_types): Handle functions that map to instructions
7760 defined in target-insns.def.
7761 (direct_internal_fn_types): Likewise.
7762 (direct_internal_fn_supported_p): Likewise.
7763 (internal_fn_expanders): Likewise.
7764
7765 2022-06-13 Richard Sandiford <richard.sandiford@arm.com>
7766
7767 * internal-fn.cc (expand_fn_using_insn): New function,
7768 split out and adapted from...
7769 (expand_direct_optab_fn): ...here.
7770 (expand_GOMP_SIMT_ENTER_ALLOC): Use it.
7771 (expand_GOMP_SIMT_EXIT): Likewise.
7772 (expand_GOMP_SIMT_LANE): Likewise.
7773 (expand_GOMP_SIMT_LAST_LANE): Likewise.
7774 (expand_GOMP_SIMT_ORDERED_PRED): Likewise.
7775 (expand_GOMP_SIMT_VOTE_ANY): Likewise.
7776 (expand_GOMP_SIMT_XCHG_BFLY): Likewise.
7777 (expand_GOMP_SIMT_XCHG_IDX): Likewise.
7778
7779 2022-06-13 Jakub Jelinek <jakub@redhat.com>
7780
7781 * omp-expand.cc (expand_omp_target): Remap user provided
7782 device clause arguments, -1 to -2 and -2 to -3, either
7783 at compile time if constant, or at runtime.
7784
7785 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
7786
7787 * common.opt (finstrument-functions): Set explicit value.
7788 (-finstrument-functions-once): New option.
7789 * doc/invoke.texi (Program Instrumentation Options): Document it.
7790 * gimplify.cc (build_instrumentation_call): New static function.
7791 (gimplify_function_tree): Call it to emit the instrumentation calls
7792 if -finstrument-functions[-once] is specified.
7793
7794 2022-06-13 Eric Botcazou <ebotcazou@adacore.com>
7795
7796 * dwarf2out.cc (output_one_line_info_table): Initialize prev_addr.
7797 * gimple.h (gimple_set_location): Do not copy warning data from
7798 the previous location when it is UNKNOWN_LOCATION.
7799 * optabs.cc (expand_widen_pattern_expr): Always set oprnd{1,2}.
7800
7801 2022-06-13 Jakub Jelinek <jakub@redhat.com>
7802
7803 PR target/105911
7804 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
7805 *<insn><dwi>3_doubleword_mask): Use operands[3] masked with
7806 (<MODE_SIZE> * BITS_PER_UNIT) - 1 as AND operand instead of
7807 operands[3] unmodified.
7808
7809 2022-06-12 Simon Wright <simon@pushface.org>
7810
7811 PR target/104871
7812 * config/darwin-driver.cc (darwin_find_version_from_kernel): If the OS
7813 version is darwin20 (macOS 11) or greater, truncate the version to the
7814 major number.
7815
7816 2022-06-12 Mark Mentovai <mark@mentovai.com>
7817
7818 * config/darwin-c.cc: Make -mmacosx-version-min more future-proof.
7819
7820 2022-06-12 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7821
7822 PR target/96463
7823 * config/aarch64/aarch64-sve-builtins-base.cc: Include ssa.h.
7824 (svld1rq_impl::fold): Define.
7825 * config/aarch64/aarch64.cc (expand_vec_perm_d): Define new members
7826 op_mode and op_vec_flags.
7827 (aarch64_evpc_reencode): Initialize newd.op_mode and
7828 newd.op_vec_flags.
7829 (aarch64_evpc_sve_dup): New function.
7830 (aarch64_expand_vec_perm_const_1): Gate existing calls to
7831 aarch64_evpc_* functions under d->vmode == d->op_mode,
7832 and call aarch64_evpc_sve_dup.
7833 (aarch64_vectorize_vec_perm_const): Remove assert
7834 d->vmode != d->op_mode, and initialize d.op_mode and d.op_vec_flags.
7835 * tree-cfg.cc (verify_gimple_assign_ternary): Allow different
7836 vector types for lhs and rhs in VEC_PERM_EXPR if rhs3 is
7837 constant.
7838
7839 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7840
7841 * config/xtensa/xtensa-protos.h (xtensa_constantsynth):
7842 New prototype.
7843 * config/xtensa/xtensa.cc (xtensa_emit_constantsynth,
7844 xtensa_constantsynth_2insn, xtensa_constantsynth_rtx_SLLI,
7845 xtensa_constantsynth_rtx_ADDSUBX, xtensa_constantsynth):
7846 New backend functions that process the abovementioned logic.
7847 (xtensa_emit_move_sequence): Revert the previous changes.
7848 * config/xtensa/xtensa.md: New split patterns for integer
7849 and floating-point, as the frontend part.
7850
7851 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7852
7853 * config/xtensa/xtensa.cc (xtensa_rtx_costs): Correct wrong case
7854 for ABS and NEG, add missing case for BSWAP and CLRSB, and
7855 double the costs for integer divisions using libfuncs if
7856 optimizing for speed, in order to take advantage of fast constant
7857 division by multiplication.
7858 (TARGET_INSN_COST): New macro definition.
7859 (xtensa_is_insn_L32R_p, xtensa_insn_cost): New functions for
7860 calculating relative costs of a RTL insns, for both of speed and
7861 size.
7862 * config/xtensa/xtensa.md (return, nop, trap): Correct values of
7863 the attribute "length" that depends on TARGET_DENSITY.
7864 (define_asm_attributes, blockage, frame_blockage): Add missing
7865 attributes.
7866 * config/xtensa/xtensa.opt (-mextra-l32r-costs=): New machine-
7867 dependent option, however, preparatory work for now.
7868
7869 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7870
7871 * config/xtensa/xtensa.cc (xtensa_expand_block_set_small_loop):
7872 Pass through the block length / loop count conditions if
7873 zero-overhead looping is configured and active,
7874
7875 2022-06-11 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7876
7877 * config/xtensa/xtensa.md (mulsidi3, umulsidi3):
7878 Split into individual signedness, in order to use libcall
7879 "__umulsidi3" but not the other.
7880 (<u>mulhisi3): Merge into one by using code iterator.
7881 (<u>mulsidi3, mulhisi3, umulhisi3): Remove.
7882
7883 2022-06-11 Michael Meissner <meissner@linux.ibm.com>
7884
7885 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Do
7886 not generate block copies with vector pair instructions if we are
7887 tuning for power10.
7888
7889 2022-06-10 Roger Sayle <roger@nextmovesoftware.com>
7890
7891 PR rtl-optimization/7061
7892 * expr.cc (emit_group_store): For groups that consist of a single
7893 scalar integer register that hold a complex mode value, use
7894 gen_lowpart to generate a SUBREG to "view_convert" to the complex
7895 mode. For modes of different sizes, first convert to an integer
7896 mode of the appropriate size.
7897
7898 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7899
7900 * config/xtensa/xtensa.md (clrsbsi2): New insn pattern.
7901
7902 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7903
7904 * config/xtensa/xtensa.md (*andsi3_bitcmpl):
7905 New insn_and_split pattern.
7906
7907 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7908
7909 * config/xtensa/xtensa.md (one_cmplsi2):
7910 Rearrange as an insn_and_split pattern.
7911
7912 2022-06-09 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
7913
7914 * config/xtensa/xtensa.md (bswaphi2): New insn pattern.
7915
7916 2022-06-09 Segher Boessenkool <segher@kernel.crashing.org>
7917
7918 * config/rs6000/rs6000.md (FP_ISA3): Delete.
7919 (float<QHI:mode><FP_ISA3:mode>2): Rename to...
7920 (float<QHI:mode><SFDF:mode>2): ... this. Adjust.
7921 (*float<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
7922 (*float<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
7923 (floatuns<QHI:mode><FP_ISA3:mode>2): Rename to...
7924 (floatuns<QHI:mode><SFDF:mode>2): ... this. Adjust.
7925 (*floatuns<QHI:mode><FP_ISA3:mode>2_internal): Rename to...
7926 (*floatuns<QHI:mode><SFDF:mode>2_internal): ... this. Adjust.
7927
7928 2022-06-09 Maciej W. Rozycki <macro@embecosm.com>
7929
7930 * config/riscv/riscv.md
7931 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_default)
7932 (*f<quiet_pattern>_quiet<ANYF:mode><X:mode>4_snan): Emit a tab
7933 rather than space with FSFLAGS.
7934
7935 2022-06-09 Tobias Burnus <tobias@codesourcery.com>
7936
7937 * omp-offload.cc (omp_discover_declare_target_tgt_fn_r,
7938 omp_discover_declare_target_fn_r): Don't walk reverse-offload
7939 target regions.
7940
7941 2022-06-09 Jakub Jelinek <jakub@redhat.com>
7942
7943 * doc/invoke.texi (-Waddress): Fix a typo in small example.
7944 Fix typos inptr_t -> intptr_t and uinptr_t -> uintptr_t.
7945
7946 2022-06-09 Cui,Lili <lili.cui@intel.com>
7947
7948 PR target/105493
7949 * config/i386/x86-tune-costs.h (skylake_cost): Raise the gpr load cost
7950 from 4 to 6 and gpr store cost from 6 to 8. Change SSE loads and
7951 unaligned loads cost from {6, 6, 6, 10, 20} to {8, 8, 8, 8, 16}.
7952 (icelake_cost): Ditto.
7953 (alderlake_cost): Raise the gpr store cost from 6 to 8 and SSE loads,
7954 stores and unaligned stores cost from {6, 6, 6, 10, 15} to
7955 {8, 8, 8, 10, 15}.
7956
7957 2022-06-09 Haochen Gui <guihaoc@gcc.gnu.org>
7958
7959 * config/rs6000/rs6000.md (define_split for bswapdi load): Merge shift
7960 and ior insns to one rotate and mask insn.
7961 (define_split for bswapdi register): Likewise.
7962
7963 2022-06-08 Roger Sayle <roger@nextmovesoftware.com>
7964
7965 PR middle-end/105874
7966 * expr.cc (expand_expr_real_1) <normal_inner_ref>: New local
7967 variable tem_modifier for calculating the expand_modifier enum to
7968 use for expanding tem. If tem is a VAR_DECL, use EXPAND_MEMORY.
7969
7970 2022-06-08 Max Filippov <jcmvbkbc@gmail.com>
7971
7972 PR target/105879
7973 * config/xtensa/xtensa.md (movdi): Rename 'first' and 'second'
7974 to 'lowpart' and 'highpart' so that they match 'gen_lowpart' and
7975 'gen_highpart' bitwise semantics and fix order of highpart and
7976 lowpart depending on target endianness.
7977
7978 2022-06-08 Chung-Ju Wu <jasonwucj@gmail.com>
7979
7980 * config/arm/arm-cpus.in (star-mc1): New cpu.
7981 * config/arm/arm-tables.opt: Regenerate.
7982 * config/arm/arm-tune.md: Regenerate.
7983 * doc/invoke.texi: Update docs.
7984
7985 2022-06-08 liuhongt <hongtao.liu@intel.com>
7986
7987 PR target/105513
7988 PR target/105504
7989 * config/i386/i386.md (*movsi_internal): Change alternative
7990 from *v to ?v.
7991 (*movdi_internal): Ditto.
7992 * config/i386/sse.md (vec_set<mode>_0): Change alternative *r
7993 to ?r.
7994 (*vec_extractv4sf_mem): Ditto.
7995 (*vec_extracthf): Ditto.
7996
7997 2022-06-07 Richard Earnshaw <rearnsha@arm.com>
7998
7999 PR target/105090
8000 * config/arm/arm.cc (arm_bfi_1_p): New function.
8001 (arm_bfi_p): New function.
8002 (arm_rtx_costs_internal): Add costs for BFI idioms.
8003 (arm_print_operand [case 'V']): Format output for BFI/BFC masks.
8004 * config/arm/constraints.md (Dj): New constraint.
8005 * config/arm/arm.md (arm_andsi3_insn): Add alternative to use BFC.
8006 (insv_zero): Convert to an insn with a split.
8007 (*bfi, *bfi_alt1, *bfi_alt2, *bfi_alt3): New patterns.
8008
8009 2022-06-07 liuhongt <hongtao.liu@intel.com>
8010
8011 PR target/105854
8012 * config/i386/sse.md (ssse3_palignrdi): Change alternative 2
8013 from Yv to Yw.
8014
8015 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
8016
8017 PR middle-end/105853
8018 PR target/105856
8019 * calls.cc (load_register_parameters): Call store_constructor
8020 and int_expr_size directly instead of expanding via expand_expr.
8021 * expr.cc (static void store_constructor): Don't prototype here.
8022 (static HOST_WIDE_INT int_expr_size): Likewise.
8023 (store_constructor): No longer static.
8024 (int_expr_size): Likewise, no longer static.
8025 * expr.h (store_constructor): Prototype here.
8026 (int_expr_size): Prototype here.
8027
8028 2022-06-07 Jan Beulich <jbeulich@suse.com>
8029
8030 Revert:
8031 2022-06-03 Jan Beulich <jbeulich@suse.com>
8032
8033 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8034 * configure.ac: Check for objcopy, producing
8035 ORIGINAL_OBJCOPY_FOR_TARGET.
8036 * configure: Update accordingly.
8037 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8038 Handle objcopy.
8039
8040 2022-06-07 Jakub Jelinek <jakub@redhat.com>
8041
8042 * tree.h (OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER): Define.
8043 * tree-pretty-print.cc (dump_omp_clause) <case OMP_CLAUSE_LINEAR>:
8044 Adjust clause printing style depending on
8045 OMP_CLAUSE_LINEAR_OLD_LINEAR_MODIFIER.
8046
8047 2022-06-07 Jan Beulich <jbeulich@suse.com>
8048
8049 * config/i386/i386-builtin.def (__builtin_ia32_psadbw256):
8050 Change type.
8051 * config/i386/i386-builtin-types.def: New function type
8052 (V4DI, V32QI, V32QI).
8053 * config/i386/i386-expand.cc (ix86_expand_args_builtin): Handle
8054 V4DI_FTYPE_V32QI_V32QI.
8055
8056 2022-06-07 Jan Beulich <jbeulich@suse.com>
8057
8058 * config/i386/i386.cc (ix86_attr_length_vex_default): Take REX.B
8059 into account for reg-only insns.
8060
8061 2022-06-07 Roger Sayle <roger@nextmovesoftware.com>
8062
8063 * config/i386/i386.cc (ix86_rtx_costs): Add a new case for
8064 IF_THEN_ELSE, and provide costs for TARGET_XOP's vpcmov and
8065 TARGET_CMOVE's (scalar integer) conditional moves.
8066 * config/i386/sse.md (define_split): Recognize XOP's vpcmov
8067 from its equivalent (canonical) pxor;pand;pxor sequence.
8068
8069 2022-06-07 Kewen Lin <linkw@linux.ibm.com>
8070
8071 * machmode.def (VECTOR_MODES_WITH_PREFIX): Update document for
8072 parameter ORDER.
8073
8074 2022-06-06 Andrew Stubbs <ams@codesourcery.com>
8075
8076 * config.in: Regenerate.
8077 * configure: Regenerate.
8078 * configure.ac: Reinstate HAVE_GAS_ARM_EXTENDED_ARCH test.
8079
8080 2022-06-04 Roger Sayle <roger@nextmovesoftware.com>
8081
8082 PR middle-end/95126
8083 * calls.cc (load_register_parameters): When loading a suitable
8084 immediate_const_ctor_p VAR_DECL into a single word_mode register,
8085 construct it directly in a pseudo rather than read it (by parts)
8086 from memory.
8087 * expr.cc (int_expr_size): Make tree argument a const_tree.
8088 (immediate_const_ctor_p): Helper predicate. Return true for
8089 simple constructors that may be materialized in a register.
8090 (expand_expr_real_1) [VAR_DECL]: When expanding a constant
8091 VAR_DECL with a suitable immediate_const_ctor_p constructor
8092 use store_constructor to materialize it directly in a pseudo.
8093 * expr.h (immediate_const_ctor_p): Prototype here.
8094 * varasm.cc (initializer_constant_valid_for_bitfield_p): Change
8095 VALUE argument from tree to const_tree.
8096 * varasm.h (initializer_constant_valid_for_bitfield_p): Update
8097 prototype.
8098
8099 2022-06-04 Jakub Jelinek <jakub@redhat.com>
8100
8101 PR target/105825
8102 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask,
8103 *<insn><dwi>3_doubleword_mask): If top bit of mask is clear, but lower
8104 bits of mask aren't all set, use operands[2] mode for the AND
8105 operation instead of always SImode.
8106
8107 2022-06-03 Jakub Jelinek <jakub@redhat.com>
8108
8109 PR middle-end/30314
8110 PR middle-end/105777
8111 * match.pd (__builtin_mul_overflow_p (x, cst, (stype) 0) ->
8112 x > stype_max / cst || x < stype_min / cst): New simplification.
8113
8114 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8115
8116 * gimple-range-cache.cc (ranger_cache::range_from_dom): Use
8117 Value_Range.
8118 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Same.
8119 * value-range.h (Value_Range::Value_Range): Implement copy
8120 constructor for Value_Range.
8121
8122 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8123
8124 * value-range.h (struct vrange_traits): Remove.
8125 (is_a): Rewrite without vrange_traits.
8126 (as_a): Same.
8127
8128 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8129
8130 * value-range.cc (vrange::contains_p): Implement.
8131 (vrange::type): Return void.
8132 (vrange::supports_type_p): Implement.
8133 (irange::fits_p): Same.
8134 (vrange::set_undefined): Same.
8135 (irange::set_nonnegative): Same.
8136 (vrange::set_varying): Same.
8137 (vrange::union_): Same.
8138 (unsupported_range::set): Move to vrange.
8139 (unsupported_range::type): Move to vrange.
8140 (vrange::intersect): Implement for varying and undefined.
8141 (vrange::zero_p): Implement.
8142 (unsupported_range::supports_type_p): Move to vrange.
8143 (vrange::nonzero_p): Implement.
8144 (unsupported_range::set_undefined): Move to vrange.
8145 (unsupported_range::set_varying): Same.
8146 (unsupported_range::dump): Same.
8147 (unsupported_range::union_): Same. Implement for varying and
8148 undefined.
8149 (unsupported_range::intersect): Move to vrange.
8150 (unsupported_range::zero_p): Same.
8151 (unsupported_range::nonzero_p): Same.
8152 (unsupported_range::set_nonzero): Same.
8153 (unsupported_range::set_zero): Same.
8154 (unsupported_range::set_nonnegative): Same.
8155 (unsupported_range::fits_p): Same.
8156 * value-range.h (class vrange): Remove abstract markers for most
8157 methods.
8158 (class unsupported_range): Remove most methods as they will now be
8159 inherited from vrange.
8160
8161 2022-06-03 Aldy Hernandez <aldyh@redhat.com>
8162
8163 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
8164 an object level supports_type_p for irange and a static
8165 Value_Range::supports_type_p.
8166 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Same.
8167 (fold_using_range::range_of_address): Same.
8168 (fold_using_range::range_of_builtin_call): Same.
8169 * gimple-range-fold.h (gimple_range_type): Same.
8170 (gimple_range_ssa_p): Same.
8171 * gimple-range-path.cc (path_range_query::internal_range_of_expr):
8172 Same.
8173 (path_range_query::range_of_stmt): Same.
8174 (path_range_query::add_to_imports): Same.
8175 * gimple-range.cc (gimple_ranger::range_on_edge): Same.
8176 (gimple_ranger::export_global_ranges): Same.
8177 * gimple-ssa-evrp-analyze.cc
8178 (evrp_range_analyzer::record_ranges_from_phis): Same.
8179 * range-op.cc (range_operator::wi_fold): Same.
8180 (range_operator::fold_range): Same.
8181 * tree-ssa-loop-ch.cc (entry_loop_condition_is_static): Same.
8182 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): Same.
8183 (evaluate_control_stmt_using_entry_checks): Same.
8184 * tree-ssa-threadedge.cc
8185 (hybrid_jt_simplifier::compute_ranges_from_state): Same.
8186 * tree-vrp.cc (supported_types_p): Same.
8187 * value-query.cc (range_query::value_of_expr): Same.
8188 (range_query::value_on_edge): Same.
8189 (range_query::value_of_stmt): Same.
8190 (range_query::get_tree_range): Same.
8191 (get_range_global): Same.
8192 (global_range_query::range_of_expr): Same.
8193 * value-range-equiv.h (class value_range_equiv): Same.
8194 * value-range.cc (irange::supports_type_p): Same.
8195 (unsupported_range::supports_type_p): Same.
8196 * value-range.h (enum value_range_discriminator): Same.
8197 (Value_Range::init): Same.
8198 (Value_Range::supports_type_p): Same.
8199 (irange::supports_type_p): Same.
8200 (irange::supports_p): Same.
8201 (vrange::supports_type_p): Same.
8202 (vrange_allocator::alloc_vrange): Same.
8203
8204 2022-06-03 Jan Beulich <jbeulich@suse.com>
8205
8206 * Makefile.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8207 * configure.ac: Check for objcopy, producing
8208 ORIGINAL_OBJCOPY_FOR_TARGET.
8209 * configure: Update accordingly.
8210 * exec-tool.in (ORIGINAL_OBJCOPY_FOR_TARGET): New.
8211 Handle objcopy.
8212
8213 2022-06-03 Jan Beulich <jbeulich@suse.com>
8214
8215 * config/i386/mmx.md (mmx_psadbw): Convert to expander.
8216 (*mmx_psadbw): New. Mark as commutative.
8217 * config/i386/sse.md (<sse2_avx2>_psadbw): Convert to expander.
8218 (*<sse2_avx2>_psadbw): New. Mark as commutative.
8219
8220 2022-06-03 Alexandre Oliva <oliva@adacore.com>
8221
8222 PR tree-optimization/105665
8223 PR tree-optimization/100810
8224 * tree-ssa-loop-ivopts.cc
8225 (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): New.
8226 (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): New.
8227 (find_ssa_undef): Check precomputed flag and intervening uses.
8228 (tree_ssa_iv_optimize): Call mark_ssa_maybe_undefs.
8229
8230 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8231
8232 * Makefile.in (OBJS): Add tree-diagnostic-client-data-hooks.o and
8233 tree-logical-location.o.
8234 (OBJS-libcommon): Add diagnostic-format-sarif.o; reorder.
8235 (CFLAGS-tree-diagnostic-client-data-hooks.o): Add TARGET_NAME.
8236 * common.opt (fdiagnostics-format=): Add sarif-stderr and sarif-file.
8237 (sarif-stderr, sarif-file): New enum values.
8238 * diagnostic-client-data-hooks.h: New file.
8239 * diagnostic-format-sarif.cc: New file.
8240 * diagnostic-path.h (enum diagnostic_event::verb): New enum.
8241 (enum diagnostic_event::noun): New enum.
8242 (enum diagnostic_event::property): New enum.
8243 (struct diagnostic_event::meaning): New struct.
8244 (diagnostic_event::get_logical_location): New vfunc.
8245 (diagnostic_event::get_meaning): New vfunc.
8246 (simple_diagnostic_event::get_logical_location): New vfunc impl.
8247 (simple_diagnostic_event::get_meaning): New vfunc impl.
8248 * diagnostic.cc: Include "diagnostic-client-data-hooks.h".
8249 (diagnostic_initialize): Initialize m_client_data_hooks.
8250 (diagnostic_finish): Clean up m_client_data_hooks.
8251 (diagnostic_event::meaning::dump_to_pp): New.
8252 (diagnostic_event::meaning::maybe_get_verb_str): New.
8253 (diagnostic_event::meaning::maybe_get_noun_str): New.
8254 (diagnostic_event::meaning::maybe_get_property_str): New.
8255 (get_cwe_url): Make non-static.
8256 (diagnostic_output_format_init): Handle
8257 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
8258 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
8259 * diagnostic.h (enum diagnostics_output_format): Add
8260 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR and
8261 DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE.
8262 (class diagnostic_client_data_hooks): New forward decl.
8263 (class logical_location): New forward decl.
8264 (diagnostic_context::m_client_data_hooks): New field.
8265 (diagnostic_output_format_init_sarif_stderr): New decl.
8266 (diagnostic_output_format_init_sarif_file): New decl.
8267 (get_cwe_url): New decl.
8268 * doc/invoke.texi (-fdiagnostics-format=): Add sarif-stderr and
8269 sarif-file.
8270 * doc/sourcebuild.texi (Scan a particular file): Add
8271 scan-sarif-file and scan-sarif-file-not.
8272 * langhooks-def.h (lhd_get_sarif_source_language): New decl.
8273 (LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE): New macro.
8274 (LANG_HOOKS_INITIALIZER): Add
8275 LANG_HOOKS_GET_SARIF_SOURCE_LANGUAGE.
8276 * langhooks.cc (lhd_get_sarif_source_language): New.
8277 * langhooks.h (lang_hooks::get_sarif_source_language): New field.
8278 * logical-location.h: New file.
8279 * plugin.cc (struct for_each_plugin_closure): New.
8280 (for_each_plugin_cb): New.
8281 (for_each_plugin): New.
8282 * plugin.h (for_each_plugin): New decl.
8283 * tree-diagnostic-client-data-hooks.cc: New file.
8284 * tree-diagnostic.cc: Include "diagnostic-client-data-hooks.h".
8285 (tree_diagnostics_defaults): Populate m_client_data_hooks.
8286 * tree-logical-location.cc: New file.
8287 * tree-logical-location.h: New file.
8288
8289 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8290
8291 * common.opt (fdiagnostics-format=): Add json-stderr and json-file
8292 to description.
8293 (DIAGNOSTICS_OUTPUT_FORMAT_JSON): Rename to...
8294 (DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR): ...this.
8295 (diagnostics_output_format): Add json-stderr and json-file.
8296 * diagnostic-format-json.cc (json_flush_to_file): New.
8297 (json_final_cb): Convert to...
8298 (json_flush_to_file): ...this, ...
8299 (json_stderr_final_cb): ...this, and...
8300 (json_file_final_cb): ...this.
8301 (diagnostic_output_format_init): Move to diagnostic.cc.
8302 (json_output_base_file_name): New.
8303 (diagnostic_output_format_init_json): New.
8304 (diagnostic_output_format_init_json_stderr): New.
8305 (diagnostic_output_format_init_json_file): New.
8306 * diagnostic.cc (diagnostic_output_format_init): Move here from
8307 diagnostic-format-json.cc; update for changes to enum.
8308 * diagnostic.h (enum diagnostics_output_format): Rename
8309 DIAGNOSTICS_OUTPUT_FORMAT_JSON to
8310 DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR, and add
8311 DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE.
8312 (diagnostic_output_format_init): Add base_file_name param.
8313 (diagnostic_output_format_init_json_stderr): New decl.
8314 (diagnostic_output_format_init_json_file): New dec.
8315 * doc/invoke.texi (-fdiagnostics-format=): Add "json-stderr" and
8316 "json-file". Rewrite so that the existing "json" is a synonym of
8317 "json-stderr".
8318 * gcc.cc (driver_handle_option): Pass dump_base_name to
8319 diagnostic_output_format_init.
8320 * opts.cc (common_handle_option): Likewise.
8321
8322 2022-06-02 David Malcolm <dmalcolm@redhat.com>
8323
8324 * json.cc (string::print): Fix escaping of '\'.
8325
8326 2022-06-02 Philipp Tomsich <philipp.tomsich@vrull.eu>
8327
8328 * config/riscv/riscv.cc (riscv_build_integer_1): Rewrite value as
8329 (-1 << 31) for the single-bit case, when operating on (1 << 31)
8330 in SImode.
8331 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): Allow for
8332 any single-bit value, moving the special case for (1 << 31) to
8333 riscv_build_integer_1 (in riscv.c).
8334
8335 2022-06-02 Roger Sayle <roger@nextmovesoftware.com>
8336
8337 PR target/105791
8338 * config/i386/sse.md (V_128_256):Add V1TI and V2TI.
8339 (define_mode_attr avxsizesuffix): Add support for V1TI and V2TI.
8340
8341 2022-06-02 Jakub Jelinek <jakub@redhat.com>
8342
8343 PR target/105778
8344 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): Remove :SI
8345 from AND and its operands and just verify operands[2] has HImode,
8346 SImode or for TARGET_64BIT DImode. Allow operands[3] to be a mask
8347 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
8348 just throw away the masking. Use force_reg before calling
8349 gen_lowpart.
8350 (*ashl<dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
8351 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case
8352 just throw away the masking.
8353 (*ashl<mode>3_doubleword): Rename to ...
8354 (ashl<mode>3_doubleword): ... this.
8355 (*ashl<mode>3_mask): Remove :SI from AND and its operands and just
8356 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8357 Use force_reg before calling gen_lowpart.
8358 (*<insn><mode>3_mask): Likewise.
8359 (*<insn><dwi>3_doubleword_mask): Likewise. Allow operands[3] to be
8360 a mask with all low 6 (64-bit) or 5 (32-bit) bits set and in that
8361 case just throw away the masking. Use force_reg before calling
8362 gen_lowpart.
8363 (*<insn><dwi>3_doubleword_mask_1): Allow operands[3] to be a mask
8364 with all low 6 (64-bit) or 5 (32-bit) bits set and in that case just
8365 throw away the masking.
8366 (*<insn><mode>3_doubleword): Rename to ...
8367 (<insn><mode>3_doubleword): ... this.
8368 (*<insn><mode>3_mask): Remove :SI from AND and its operands and just
8369 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8370 Use force_reg before calling gen_lowpart.
8371 (splitter after it): Remove :SI from AND and its operands and just
8372 verify operands[2] has HImode, SImode or for TARGET_64BIT DImode.
8373 (*<btsc><mode>_mask, *<btsc><mode>_mask): Remove :SI from AND and its
8374 operands and just verify operands[1] has HImode, SImode or for
8375 TARGET_64BIT DImode. Use force_reg before calling gen_lowpart.
8376 (*jcc_bt<mode>_mask_1): New define_insn_and_split pattern.
8377 * config/i386/i386.cc (ix86_rtx_costs): For ZERO_EXTRACT with
8378 ZERO_EXTEND QI->SI in last operand ignore the cost of the ZERO_EXTEND.
8379
8380 2022-06-02 Richard Biener <rguenther@suse.de>
8381
8382 PR tree-optimization/101668
8383 * tree-vect-slp.cc (vect_build_slp_tree_1): Allow BIT_FIELD_REFs
8384 for vector types with compatible lane types.
8385 (vect_build_slp_tree_2): Deal with this.
8386 (vect_add_slp_permutation): Adjust. Emit lowpart/concat
8387 special cases without VEC_PERM.
8388 (vectorizable_slp_permutation): Select the operand vector
8389 type and relax requirements. Handle identity permutes
8390 with mismatching operand types.
8391 * optabs-query.cc (can_vec_perm_const_p): Only allow variable
8392 permutes for op_mode == mode.
8393
8394 2022-06-02 Richard Biener <rguenther@suse.de>
8395
8396 PR tree-optimization/105802
8397 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
8398 Make sure to also compute the range in the type of the switch index.
8399
8400 2022-06-01 David Seifert <soap@gentoo.org>
8401
8402 PR plugins/95648
8403 * configure: Regenerate.
8404
8405 2022-06-01 H.J. Lu <hjl.tools@gmail.com>
8406
8407 PR rtl-optimization/105638
8408 * df-core.cc (df_find_single_def_src): Moved and renamed from
8409 find_single_def_src in loop-iv.cc. Change the argument to rtx
8410 and use rtx_equal_p. Return null for partial or conditional
8411 defs.
8412 * df.h (df_find_single_def_src): New prototype.
8413 * dse.cc (record_store): Use the constant source if the source
8414 register is set only once.
8415 * loop-iv.cc (find_single_def_src): Moved to df-core.cc.
8416 (replace_single_def_regs): Replace find_single_def_src with
8417 df_find_single_def_src.
8418
8419 2022-06-01 Wilco Dijkstra <wilco.dijkstra@arm.com>
8420
8421 * config/aarch64/aarch64.opt (explicit_tune_core): Rename to
8422 selected_tune.
8423 (explicit_arch): Rename to selected_arch.
8424 (x_aarch64_override_tune_string): Remove.
8425 (aarch64_ra_sign_key): Add as TargetVariable so it gets saved/restored.
8426 (aarch64_override_tune_string): Add Save so it gets saved/restored.
8427 * config/aarch64/aarch64.h (aarch64_architecture_version): Remove.
8428 * config/aarch64/aarch64.cc (aarch64_architecture_version): Remove.
8429 (processor): Remove archtecture_version field.
8430 (selected_arch): Remove global.
8431 (selected_cpu): Remove global.
8432 (selected_tune): Remove global.
8433 (aarch64_ra_sign_key): Move global to aarch64.opt so it is saved.
8434 (aarch64_override_options_internal): Use aarch64_get_tune_cpu.
8435 (aarch64_override_options): Further simplify code to only set
8436 selected_arch and selected_tune globals.
8437 (aarch64_option_save): Remove now that target options are saved.
8438 (aarch64_option_restore): Remove redundant target option restores.
8439 * config/aarch64/aarch64-c.cc (aarch64_update_cpp_builtins): Use
8440 AARCH64_ISA_V9.
8441 * config/aarch64/aarch64-opts.h (aarch64_key_type): Add, moved from...
8442 * config/aarch64/aarch64-protos.h (aarch64_key_type): Remove.
8443 (aarch64_ra_sign_key): Remove.
8444
8445 2022-06-01 Jakub Jelinek <jakub@redhat.com>
8446
8447 PR middle-end/30314
8448 * match.pd (__builtin_mul_overflow_p (x, cst, (utype) 0) ->
8449 x > ~(utype)0 / cst): New simplification.
8450
8451 2022-06-01 Richard Biener <rguenther@suse.de>
8452
8453 PR tree-optimization/105786
8454 * tree-loop-distribution.cc
8455 (loop_distribution::transform_reduction_loop): Only do strlen
8456 replacement for integer type reductions.
8457
8458 2022-06-01 Jakub Jelinek <jakub@redhat.com>
8459
8460 PR tree-optimization/105770
8461 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb): Cast
8462 CASE_LOW and CASE_HIGH to TREE_TYPE (idx) before comparisons with idx.
8463
8464 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8465
8466 * gimple-range-cache.cc (ssa_block_ranges::dump): Convert to vrange.
8467 (sbr_vector::sbr_vector): Same.
8468 (sbr_vector::grow): Same.
8469 (sbr_vector::set_bb_range): Same.
8470 (sbr_vector::get_bb_range): Same.
8471 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
8472 (sbr_sparse_bitmap::set_bb_range): Same.
8473 (sbr_sparse_bitmap::get_bb_range): Same.
8474 (block_range_cache::set_bb_range): Same.
8475 (block_range_cache::get_bb_range): Same.
8476 (block_range_cache::dump): Same.
8477 (ssa_global_cache::get_global_range): Same.
8478 (ssa_global_cache::set_global_range): Same.
8479 (ssa_global_cache::clear): Same.
8480 (ssa_global_cache::dump): Same.
8481 (ranger_cache::get_global_range): Same.
8482 (ranger_cache::set_global_range): Same.
8483 (ranger_cache::range_of_def): Same.
8484 (ranger_cache::entry_range): Same.
8485 (ranger_cache::exit_range): Same.
8486 (ranger_cache::edge_range): Same.
8487 (ranger_cache::range_of_expr): Same.
8488 (ranger_cache::range_on_edge): Same.
8489 (ranger_cache::block_range): Same.
8490 (ranger_cache::propagate_cache): Same.
8491 (ranger_cache::fill_block_cache): Same.
8492 (ranger_cache::range_from_dom): Same.
8493 * gimple-range-cache.h: Same.
8494 * gimple-range-edge.cc (gimple_outgoing_range::get_edge_range):
8495 Same.
8496 (gimple_outgoing_range::switch_edge_range): Same.
8497 (gimple_outgoing_range::edge_range_p): Same.
8498 * gimple-range-edge.h: Same.
8499 * gimple-range-fold.cc (fur_source::get_operand): Same.
8500 (fur_source::get_phi_operand): Same.
8501 (fur_edge::get_operand): Same.
8502 (fur_edge::get_phi_operand): Same.
8503 (fur_stmt::get_operand): Same.
8504 (fur_stmt::get_phi_operand): Same.
8505 (fur_list::fur_list): Same.
8506 (fur_list::get_operand): Same.
8507 (fur_list::get_phi_operand): Same.
8508 (fold_range): Same.
8509 (adjust_imagpart_expr): Same.
8510 (adjust_realpart_expr): Same.
8511 (gimple_range_adjustment): Same.
8512 (fold_using_range::fold_stmt): Same.
8513 (fold_using_range::range_of_range_op): Same.
8514 (fold_using_range::range_of_address): Same.
8515 (fold_using_range::range_of_phi): Same.
8516 (fold_using_range::range_of_call): Same.
8517 (fold_using_range::range_of_builtin_call): Same.
8518 (fold_using_range::range_of_builtin_int_call): Same.
8519 (fold_using_range::range_of_cond_expr): Same.
8520 (fur_source::register_outgoing_edges): Same.
8521 * gimple-range-fold.h (fold_range): Same.
8522 (gimple_range_type): Same.
8523 (gimple_range_ssa_p): Same.
8524 * gimple-range-gori.cc (gimple_range_calc_op1): Same.
8525 (gimple_range_calc_op2): Same.
8526 (gori_compute::compute_operand_range_switch): Same.
8527 (gori_compute::compute_operand_range): Same.
8528 (gori_compute::logical_combine): Same.
8529 (gori_compute::compute_logical_operands): Same.
8530 (gori_compute::compute_operand1_range): Same.
8531 (gori_compute::compute_operand2_range): Same.
8532 (gori_compute::compute_operand1_and_operand2_range): Same.
8533 (gori_compute::outgoing_edge_range_p): Same.
8534 (gori_compute::condexpr_adjust): Same.
8535 * gimple-range-gori.h (gimple_range_calc_op1): Same.
8536 (gimple_range_calc_op2): Same.
8537 * gimple-range-path.cc (path_range_query::get_cache): Same.
8538 (path_range_query::set_cache): Same.
8539 (path_range_query::range_on_path_entry): Same.
8540 (path_range_query::internal_range_of_expr): Same.
8541 (path_range_query::range_of_expr): Same.
8542 (path_range_query::ssa_range_in_phi): Same.
8543 (path_range_query::range_defined_in_block): Same.
8544 (path_range_query::compute_ranges_in_phis): Same.
8545 (path_range_query::compute_ranges_in_block): Same.
8546 (path_range_query::add_to_imports): Same.
8547 (path_range_query::range_of_stmt): Same.
8548 * gimple-range-path.h: Same.
8549 * gimple-range-infer.cc (gimple_infer_range::add_range): Same.
8550 (gimple_infer_range::~side_effect_manager): Same.
8551 (gimple_infer_range::get_nonzero): Same.
8552 (gimple_infer_range::maybe_adjust_range): Same.
8553 (gimple_infer_range::add_range): Same.
8554 * gimple-range-infer.h: Same.
8555 * gimple-range-tests.cc: Same.
8556 * gimple-range-trace.cc (range_tracer::trailer): Same.
8557 (debug_seed_ranger): Same.
8558 * gimple-range-trace.h: Same.
8559 * gimple-range.cc (gimple_ranger::range_of_expr): Same.
8560 (gimple_ranger::range_on_entry): Same.
8561 (gimple_ranger::range_on_exit): Same.
8562 (gimple_ranger::range_on_edge): Same.
8563 (gimple_ranger::fold_range_internal): Same.
8564 (gimple_ranger::range_of_stmt): Same.
8565 (gimple_ranger::prefill_name): Same.
8566 (gimple_ranger::prefill_stmt_dependencies): Same.
8567 (gimple_ranger::export_global_ranges): Same.
8568 (gimple_ranger::dump_bb): Same.
8569 * gimple-range.h: Same.
8570 * gimple-ssa-warn-access.cc (check_nul_terminated_array): Same.
8571 (memmodel_to_uhwi): Same.
8572 * tree-ssa-loop-niter.cc (refine_value_range_using_guard): Same.
8573 (determine_value_range): Same.
8574 (record_nonwrapping_iv): Same.
8575 (infer_loop_bounds_from_signedness): Same.
8576 (scev_var_range_cant_overflow): Same.
8577 * tree-ssa-threadedge.cc (hybrid_jt_simplifier::simplify): Same.
8578 * value-query.cc (range_query::range_on_edge): Same.
8579 (range_query::range_of_stmt): Same.
8580 (range_query::value_of_expr): Same.
8581 (range_query::value_on_edge): Same.
8582 (range_query::value_of_stmt): Same.
8583 (range_query::get_tree_range): Same.
8584 (update_global_range): Same.
8585 (get_range_global): Same.
8586 (gimple_range_global): Same.
8587 (global_range_query::range_of_expr): Same.
8588 (range_query::query_relation): Same.
8589 * value-query.h (gimple_range_global): Same.
8590 (update_global_range): Same.
8591 * vr-values.cc (vr_values::range_of_expr): Same.
8592 (bounds_of_var_in_loop): Same.
8593 (simplify_using_ranges::vrp_visit_cond_stmt): Same.
8594 * vr-values.h (class vr_values): Same.
8595 * tree-ssa-loop-unswitch.cc (unswitch_predicate): Same.
8596
8597 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8598
8599 * gimple-range-cache.cc (sbr_vector::sbr_vector): Adjust for
8600 vrange allocator.
8601 (sbr_vector::grow): Same.
8602 (sbr_vector::set_bb_range): Same.
8603 (sbr_sparse_bitmap::sbr_sparse_bitmap): Same.
8604 (sbr_sparse_bitmap::set_bb_range): Same.
8605 (block_range_cache::~block_range_cache): Same.
8606 (block_range_cache::set_bb_range): Same.
8607 (ssa_global_cache::ssa_global_cache): Same.
8608 (ssa_global_cache::~ssa_global_cache): Same.
8609 (ssa_global_cache::set_global_range): Same.
8610 * gimple-range-cache.h (block_range_cache): Same.
8611 (ssa_global_cache): Same.
8612 * gimple-range-edge.cc
8613 (gimple_outgoing_range::calc_switch_ranges): Same.
8614 * gimple-range-edge.h (gimple_outgoing_range): Same.
8615 * gimple-range-infer.cc (infer_range_manager::get_nonzero):
8616 Same.
8617 (infer_range_manager::add_range): Same.
8618 * gimple-range-infer.h (class infer_range_manager): Same.
8619 * value-range.h (class irange_allocator): Rename to...
8620 (class vrange_allocator): ...this.
8621 (irange_allocator::irange_allocator): New.
8622 (vrange_allocator::vrange_allocator): New.
8623 (irange_allocator::~irange_allocator): New.
8624 (vrange_allocator::~vrange_allocator): New.
8625 (irange_allocator::get_memory): Rename to...
8626 (vrange_allocator::alloc): ...this.
8627 (vrange_allocator::alloc_vrange): Rename from...
8628 (irange_allocator::allocate): ...this.
8629 (vrange_allocator::alloc_irange): New.
8630
8631 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8632
8633 * gimple-range-edge.cc (gimple_outgoing_range_stmt_p): Adjust for
8634 vrange and convert range_op_handler function calls to use the
8635 identically named object.
8636 * gimple-range-fold.cc (gimple_range_operand1): Same.
8637 (gimple_range_operand2): Same.
8638 (fold_using_range::fold_stmt): Same.
8639 (fold_using_range::range_of_range_op): Same.
8640 (fold_using_range::range_of_builtin_ubsan_call): Same.
8641 (fold_using_range::relation_fold_and_or): Same.
8642 (fur_source::register_outgoing_edges): Same.
8643 * gimple-range-fold.h (gimple_range_handler): Remove.
8644 * gimple-range-gori.cc (gimple_range_calc_op1): Adjust for vrange.
8645 (gimple_range_calc_op2): Same.
8646 (range_def_chain::get_def_chain): Same.
8647 (gori_compute::compute_operand_range): Same.
8648 (gori_compute::condexpr_adjust): Same.
8649 * gimple-range.cc (gimple_ranger::prefill_name): Same.
8650 (gimple_ranger::prefill_stmt_dependencies): Same.
8651 * range-op.cc (get_bool_state): Same.
8652 (class operator_equal): Add using clause.
8653 (class operator_not_equal): Same.
8654 (class operator_lt): Same.
8655 (class operator_le): Same.
8656 (class operator_gt): Same.
8657 (class operator_ge): Same.
8658 (class operator_plus): Same.
8659 (class operator_minus): Same.
8660 (class operator_mult): Same.
8661 (class operator_exact_divide): Same.
8662 (class operator_lshift): Same.
8663 (class operator_rshift): Same.
8664 (class operator_cast): Same.
8665 (class operator_logical_and): Same.
8666 (class operator_bitwise_and): Same.
8667 (class operator_logical_or): Same.
8668 (class operator_bitwise_or): Same.
8669 (class operator_bitwise_xor): Same.
8670 (class operator_trunc_mod): Same.
8671 (class operator_logical_not): Same.
8672 (class operator_bitwise_not): Same.
8673 (class operator_cst): Same.
8674 (class operator_identity): Same.
8675 (class operator_unknown): Same.
8676 (class operator_abs): Same.
8677 (class operator_negate): Same.
8678 (class operator_addr_expr): Same.
8679 (class pointer_or_operator): Same.
8680 (operator_plus::op1_range): Adjust for vrange.
8681 (operator_minus::op1_range): Same.
8682 (operator_mult::op1_range): Same.
8683 (operator_cast::op1_range): Same.
8684 (operator_bitwise_not::fold_range): Same.
8685 (operator_negate::fold_range): Same.
8686 (range_op_handler): Rename to...
8687 (get_handler): ...this.
8688 (range_op_handler::range_op_handler): New.
8689 (range_op_handler::fold_range): New.
8690 (range_op_handler::op1_range): New.
8691 (range_op_handler::op2_range): New.
8692 (range_op_handler::lhs_op1_relation): New.
8693 (range_op_handler::lhs_op2_relation): New.
8694 (range_op_handler::op1_op2_relation): New.
8695 (range_cast): Adjust for vrange.
8696 * range-op.h (range_op_handler): Remove function.
8697 (range_cast): Adjust for vrange.
8698 (class range_op_handler): New.
8699 (get_bool_state): Adjust for vrange.
8700 (empty_range_varying): Same.
8701 (relop_early_resolve): Same.
8702 * tree-data-ref.cc (compute_distributive_range): Same.
8703 * tree-vrp.cc (get_range_op_handler): Remove.
8704 (range_fold_binary_symbolics_p): Use range_op_handler class
8705 instead of get_range_op_handler.
8706 (range_fold_unary_symbolics_p): Same.
8707 (range_fold_binary_expr): Same.
8708 (range_fold_unary_expr): Same.
8709 * value-query.cc (range_query::get_tree_range): Adjust for vrange.
8710
8711 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8712
8713 * gimple-range-fold.h (gimple_range_type): Check type before
8714 calling supports_type_p.
8715 * gimple-range-path.cc (path_range_query::range_of_stmt): Same.
8716 * value-query.cc (range_query::get_tree_range): Same.
8717 * value-range.cc (Value_Range::lower_bound): New.
8718 (Value_Range::upper_bound): New.
8719 (Value_Range::dump): New.
8720 * value-range.h (class Value_Range): New.
8721 (irange::supports_type_p): Do not check if type is non-zero.
8722
8723 2022-06-01 Aldy Hernandez <aldyh@redhat.com>
8724
8725 * value-range-equiv.cc (value_range_equiv::set): New.
8726 * value-range-equiv.h (class value_range_equiv): Make set method
8727 virtual.
8728 Remove default bitmap argument from set method.
8729 * value-range.cc (vrange::contains_p): New.
8730 (vrange::singleton_p): New.
8731 (vrange::operator=): New.
8732 (vrange::operator==): New.
8733 (irange::fits_p): Move to .cc file.
8734 (irange::set_nonnegative): New.
8735 (unsupported_range::unsupported_range): New.
8736 (unsupported_range::set): New.
8737 (unsupported_range::type): New.
8738 (unsupported_range::set_undefined): New.
8739 (unsupported_range::set_varying): New.
8740 (unsupported_range::dump): New.
8741 (unsupported_range::union_): New.
8742 (unsupported_range::intersect): New.
8743 (unsupported_range::zero_p): New.
8744 (unsupported_range::nonzero_p): New.
8745 (unsupported_range::set_nonzero): New.
8746 (unsupported_range::set_zero): New.
8747 (unsupported_range::set_nonnegative): New.
8748 (unsupported_range::fits_p): New.
8749 (irange::set): Call irange::set_undefined.
8750 (irange::verify_range): Check discriminator field.
8751 (irange::dump): Dump [irange] marker.
8752 (irange::debug): Move to...
8753 (vrange::debug): ...here.
8754 (dump_value_range): Accept vrange.
8755 (debug): Same.
8756 * value-range.h (enum value_range_discriminator): New.
8757 (class vrange): New.
8758 (class unsupported_range): New.
8759 (struct vrange_traits): New.
8760 (is_a): New.
8761 (as_a): New.
8762 (class irange): Inherit from vrange.
8763 (dump_value_range): Adjust for vrange.
8764 (irange::kind): Rename to...
8765 (vrange::kind): ...this.
8766 (irange::varying_p): Rename to...
8767 (vrange::varying_p): ...this.
8768 (irange::undefined_p): Rename to...
8769 (vrange::undefined_p): ...this.
8770 (irange::irange): Set discriminator.
8771 (irange::union_): Convert to irange before passing to irange
8772 method.
8773 (irange::intersect): Same.
8774 (vrange::supports_type_p): New.
8775 * vr-values.cc (vr_values::extract_range_from_binary_expr): Pass
8776 NULL bitmap argument to value_range_equiv::set.
8777 (vr_values::extract_range_basic): Same.
8778
8779 2022-06-01 Richard Biener <rguenther@suse.de>
8780
8781 PR tree-optimization/105763
8782 * tree-ssa-loop-unswitch.cc (find_unswitching_predicates_for_bb):
8783 Check gimple_range_ssa_p.
8784
8785 2022-05-31 Jason Merrill <jason@redhat.com>
8786
8787 * Makefile.in (TAGS): Look at libcpp/*.cc.
8788
8789 2022-05-31 Christophe Lyon <christophe.lyon@arm.com>
8790
8791 * config/aarch64/aarch64.cc (aarch64_gimplify_va_arg_expr):
8792 Prefix mode names with E_.
8793
8794 2022-05-31 Alan Modra <amodra@gmail.com>
8795
8796 * dwarf2out.cc (gen_namelist_decl): Adjust to suit correct
8797 spelling of DW_AT_namelist_item.
8798
8799 2022-05-31 Jakub Jelinek <jakub@redhat.com>
8800
8801 * omp-low.cc (build_outer_var_ref): For code == OMP_CLAUSE_ALLOCATE
8802 allow var to be private in the outer context.
8803 (lower_private_allocate): Pass OMP_CLAUSE_ALLOCATE as last argument
8804 to build_outer_var_ref.
8805
8806 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
8807
8808 * config/i386/i386.cc (ix86_modes_tieable_p): Allow SCmode to be
8809 tieable with DImode on TARGET_64BIT, and SCmode tieable with
8810 V2SFmode, and DCmode with V2DFmode.
8811
8812 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
8813
8814 PR rtl-optimization/101617
8815 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Add a
8816 special case (indicated by negate_cc_compare_p) to generate a
8817 -1/0 mask using neg;sbb.
8818 * config/i386/i386.md (x86_neg<mode>_ccc): New define_expand
8819 to generate an *x86_neg<mode>_ccc instruction.
8820 (x86_mov<mode>cc_0_m1_neg): Likewise, a new define_expand to
8821 generate a *x86_mov<mode>cc_0_m1_neg instruction.
8822
8823 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
8824
8825 * rtlanal.cc (rtx_cost) <MULT>: Treat FMA, SS_MULT, US_MULT,
8826 SMUL_HIGHPART and UMUL_HIGHPART as having the same cost as MULT.
8827 <DIV>: Likewise, SS_DIV and US_DIV have the same default as DIV.
8828
8829 2022-05-30 Roger Sayle <roger@nextmovesoftware.com>
8830
8831 PR target/70321
8832 * config/i386/i386-expand.cc (ix86_expand_branch): Don't decompose
8833 DI mode equality/inequality using XOR here. Instead generate a
8834 COMPARE for doubleword modes (DImode on !TARGET_64BIT or TImode).
8835 * config/i386/i386-features.cc (gen_gpr_to_xmm_move_src): Use
8836 gen_rtx_SUBREG when NUNITS is 1, i.e. for TImode to V1TImode.
8837 (general_scalar_chain::convert_compare): New function to convert
8838 scalar equality/inequality comparison into vector operations.
8839 (general_scalar_chain::convert_insn) [COMPARE]: Refactor. Call
8840 new convert_compare helper method.
8841 (convertible_comparion_p): Update to match doubleword COMPARE
8842 of two register, memory or integer constant operands.
8843 * config/i386/i386-features.h (general_scalar_chain::convert_compare):
8844 Prototype/declare member function here.
8845 * config/i386/i386.md (cstore<mode>4): Change mode to SDWIM, but
8846 only allow new doubleword modes for EQ and NE operators.
8847 (*cmp<dwi>_doubleword): New define_insn_and_split, to split a
8848 doubleword comparison into a pair of XORs followed by an IOR to
8849 set the (zero) flags register, optimizing the XORs if possible.
8850 * config/i386/sse.md (V_AVX): Include V1TI and V2TI in mode
8851 iterator; V_AVX is (currently) only used by ptest.
8852 (sse4_1 mode attribute): Update to support V1TI and V2TI.
8853
8854 2022-05-30 Uroš Bizjak <ubizjak@gmail.com>
8855
8856 * config/i386/i386.md: Remove constraints when used with
8857 const_int_operand, const0_operand, const_1_operand, constm1_operand,
8858 const8_operand, const128_operand, const248_operand, const123_operand,
8859 const2367_operand, const1248_operand, const359_operand,
8860 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
8861 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
8862 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
8863 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
8864 const_0_to_255_mul_8_operand, const_1_to_31_operand,
8865 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
8866 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
8867 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
8868 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
8869 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
8870 const_24_to_27_operand and const_28_to_31_operand.
8871 * config/i386/mmx.md: Ditto.
8872 * config/i386/sse.md: Ditto.
8873 * config/i386/subst.md: Ditto.
8874 * config/i386/sync.md: Ditto.
8875
8876 2022-05-30 Jan Beulich <jbeulich@suse.com>
8877
8878 * config/i386/i386.md (bmi2_umul<mode><dwi>3_1): Correct MEM_P()
8879 arguments.
8880
8881 2022-05-30 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8882
8883 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Adjust prototype.
8884
8885 2022-05-29 Iain Sandoe <iain@sandoe.co.uk>
8886
8887 PR target/105599
8888 * config/darwin.h: Move versions-specific handling of multiply_defined
8889 from SUBTARGET_DRIVER_SELF_SPECS to LINK_SPEC.
8890
8891 2022-05-29 Eric Gallager <egallager@gcc.gnu.org>
8892
8893 PR other/82383
8894 * doc/sourcebuild.texi: Add entries for the c++tools,
8895 gotools, libbacktrace, libcc1, libcody, liboffloadmic,
8896 and libsanitizer directories. Remove entry for boehm-gc.
8897 Fix alphabetization for libquadmath.
8898
8899 2022-05-28 Joel Holdsworth <jholdsworth@nvidia.com>
8900
8901 * config/avr/avr-mcus.def: Add device definitions.
8902 * doc/avr-mmcu.texi: Corresponding changes.
8903 * config/avr/gen-avr-mmcu-texi.cc: Added support for avr
8904 device prefix.
8905 * config/avr/gen-avr-mmcu-specs.cc: Prevent -mmcu=avr* flags
8906 from leaking into cc1.
8907
8908 2022-05-28 Vladimir Makarov <vmakarov@gcc.gnu.org>
8909
8910 PR target/103722
8911 * config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
8912 is special) for various scenarios.
8913
8914 2022-05-28 Iain Sandoe <iain@sandoe.co.uk>
8915
8916 * config/darwin.h (REAL_LIBGCC_SPEC): Update the comment block
8917 describing this macro.
8918
8919 2022-05-27 Richard Biener <rguenther@suse.de>
8920
8921 * tree-dfa.cc (get_ref_base_and_extent): Avoid shift.
8922
8923 2022-05-27 Martin Jambor <mjambor@suse.cz>
8924
8925 PR ipa/105639
8926 * ipa-prop.cc (propagate_controlled_uses): Check type of the
8927 constant before adding a LOAD reference.
8928
8929 2022-05-27 Jakub Jelinek <jakub@redhat.com>
8930
8931 * tree-core.h (enum omp_clause_code): Rename OMP_CLAUSE_TO_DECLARE
8932 to OMP_CLAUSE_ENTER.
8933 * tree.h (OMP_CLAUSE_ENTER_TO): Define.
8934 * tree.cc (omp_clause_num_ops, omp_clause_code_name): Rename
8935 OMP_CLAUSE_TO_DECLARE to OMP_CLAUSE_ENTER.
8936 * tree-pretty-print.cc (dump_omp_clause): Handle OMP_CLAUSE_ENTER
8937 instead of OMP_CLAUSE_TO_DECLARE, if OMP_CLAUSE_ENTER_TO, print
8938 "to" instead of "enter".
8939 * tree-nested.cc (convert_nonlocal_omp_clauses,
8940 convert_local_omp_clauses): Handle OMP_CLAUSE_ENTER instead of
8941 OMP_CLAUSE_TO_DECLARE.
8942
8943 2022-05-27 Richard Biener <rguenther@suse.de>
8944
8945 PR tree-optimization/105726
8946 * gimple-ssa-warn-restrict.cc (builtin_memref::set_base_and_offset):
8947 Constrain array-of-flexarray case more.
8948
8949 2022-05-27 Jakub Jelinek <jakub@redhat.com>
8950
8951 PR sanitizer/105729
8952 * fold-const.cc (fold_unary_loc): Don't optimize (X &) ((Y *) z + w)
8953 to (X &) z + w if -fsanitize=null during GENERIC folding.
8954
8955 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
8956
8957 * match.pd (match_zero_one_valued_p): New predicate.
8958 (mult @0 @1): Use zero_one_valued_p for optimization to the
8959 expression "bit_and @0 @1".
8960 (bit_and (negate zero_one_valued_p@0) @1): Optimize to MULT_EXPR.
8961 (plus @0 (mult (minus @1 @0) zero_one_valued_p@2)): New transform.
8962 (minus @0 (mult (minus @0 @1) zero_one_valued_p@2)): Likewise.
8963 (bit_xor @0 (mult (bit_xor @0 @1) zero_one_valued_p@2)): Likewise.
8964 Remove three redundant transforms obsoleted by the three above.
8965
8966 2022-05-27 Roger Sayle <roger@nextmovesoftware.com>
8967
8968 * config/i386/i386.md (*test<mode>_not): New define_insn_and_split
8969 to split a combined "and;cmp" sequence into "not;test".
8970
8971 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8972
8973 * config/xtensa/xtensa.md (bswapsi2): New expansion pattern.
8974 (bswapsi2_internal): Revise the template and condition, and add
8975 detection code for preceding the same insn in order to omit a
8976 "SSAI 8" instruction of the latter.
8977 (bswapdi2): Suppress built-in insn expansion with the corresponding
8978 library call when optimizing for size.
8979
8980 2022-05-27 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8981
8982 * config/xtensa/xtensa-protos.h
8983 (xtensa_expand_block_set_unrolled_loop,
8984 xtensa_expand_block_set_small_loop): New prototypes.
8985 * config/xtensa/xtensa.cc (xtensa_sizeof_MOVI,
8986 xtensa_expand_block_set_unrolled_loop,
8987 xtensa_expand_block_set_small_loop): New functions.
8988 * config/xtensa/xtensa.md (setmemsi): New expansion pattern.
8989 * config/xtensa/xtensa.opt (mlongcalls): Add target mask.
8990
8991 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8992
8993 * config/xtensa/xtensa.cc (xtensa_expand_block_move):
8994 Make instruction counting more accurate, and simplify emitting insns.
8995
8996 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
8997
8998 * config/xtensa/constraints.md (M, O): Use the macro.
8999 * config/xtensa/predicates.md (addsubx_operand, extui_fldsz_operand,
9000 sext_fldsz_operand): Ditto.
9001 * config/xtensa/xtensa.cc (xtensa_simm8, xtensa_simm8x256,
9002 xtensa_simm12b, xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4,
9003 xtensa_mask_immediate, smalloffset_mem_p, printx, xtensa_call_save_reg,
9004 xtensa_expand_prologue): Ditto.
9005 * config/xtensa/xtensa.h (FUNCTION_ARG_REGNO_P): Ditto.
9006
9007 2022-05-26 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
9008
9009 * config/xtensa/predicates.md (extui_fldsz_operand): Simplify.
9010 * config/xtensa/xtensa.cc (xtensa_mask_immediate, print_operand):
9011 Ditto.
9012
9013 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
9014
9015 * gimple-range-cache.cc: Adjust comments.
9016 * gimple-range-infer.cc: Adjust comments.
9017 * gimple-range-infer.h: Adjust comments.
9018 * gimple-range.cc: Adjust comments.
9019
9020 2022-05-25 Andrew MacLeod <amacleod@redhat.com>
9021
9022 * Makefile.in (OBJS): Use gimple-range-infer.o.
9023 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Change msg.
9024 (ranger_cache::range_from_dom): Rename var side_effect to infer.
9025 (ranger_cache::apply_inferred_ranges): Rename from apply_side_effects.
9026 * gimple-range-cache.h: Include gimple-range-infer.h.
9027 (class ranger_cache): Adjust prototypes, use infer_range_manager.
9028 * gimple-range-infer.cc: Rename from gimple-range-side-effects.cc.
9029 (gimple_infer_range::*): Rename from stmt_side_effects.
9030 (infer_range_manager::*): Rename from side_effect_manager.
9031 * gimple-range-side-effect.cc: Rename.
9032 * gimple-range-side-effect.h: Rename.
9033 * gimple-range-infer.h: Rename from gimple-range-side-effects.h.
9034 (class gimple_infer_range): Rename from stmt_side_effects.
9035 (class infer_range_manager): Rename from side_effect_manager.
9036 * gimple-range.cc (gimple_ranger::register_inferred_ranges): Rename
9037 from register_side_effects.
9038 * gimple-range.h (register_inferred_ranges): Adjust prototype.
9039 * range-op.h: Adjust comment.
9040 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Use register_inferred_ranges.
9041 (rvrp_folder::post_fold_bb): Use register_inferred_ranges.
9042
9043 2022-05-25 Simon Cook <simon.cook@embecosm.com>
9044
9045 * config/riscv/arch-canonicalize: Only add mafd extension if
9046 base was rv32/rv64g.
9047
9048 2022-05-25 Tobias Burnus <tobias@codesourcery.com>
9049
9050 * doc/invoke.texi (AMD GCN Options): Add gfx908/gfx90a.
9051
9052 2022-05-25 Jakub Jelinek <jakub@redhat.com>
9053
9054 PR sanitizer/105714
9055 * asan.cc (has_stmt_been_instrumented_p): For assignments which
9056 are both stores and loads, return true only if both destination
9057 and source have been instrumented.
9058
9059 2022-05-25 Martin Liska <mliska@suse.cz>
9060 Richard Biener <rguenther@suse.de>
9061
9062 * dbgcnt.def (DEBUG_COUNTER): Add loop_unswitch counter.
9063 * params.opt (max-unswitch-level): Remove.
9064 * doc/invoke.texi (max-unswitch-level): Likewise.
9065 * tree-cfg.cc (gimple_lv_add_condition_to_bb): Support not
9066 gimplified expressions.
9067 * tree-ssa-loop-unswitch.cc (struct unswitch_predicate): New.
9068 (tree_may_unswitch_on): Rename to ...
9069 (find_unswitching_predicates_for_bb): ... this and handle
9070 switch statements.
9071 (get_predicates_for_bb): Likewise.
9072 (set_predicates_for_bb): Likewise.
9073 (init_loop_unswitch_info): Likewise.
9074 (tree_ssa_unswitch_loops): Prepare stuff before calling
9075 tree_unswitch_single_loop.
9076 (tree_unswitch_single_loop): Rework the function using
9077 pre-computed predicates and with a per original loop cost model.
9078 (merge_last): New.
9079 (add_predicate_to_path): Likewise.
9080 (find_range_for_lhs): Likewise.
9081 (simplify_using_entry_checks): Rename to ...
9082 (evaluate_control_stmt_using_entry_checks): ... this, handle
9083 switch statements and improve simplifications using ranger.
9084 (simplify_loop_version): Rework using
9085 evaluate_control_stmt_using_entry_checks.
9086 (evaluate_bbs): New.
9087 (evaluate_loop_insns_for_predicate): Likewise.
9088 (tree_unswitch_loop): Adjust to allow switch statements and
9089 pass in the edge to unswitch.
9090 (clean_up_after_unswitching): New.
9091 (pass_tree_unswitch::execute): Pass down fun.
9092
9093 2022-05-24 Eugene Rozenfeld <erozen@microsoft.com>
9094
9095 * tree-vect-loop-manip.cc (vect_do_peeling): Save/restore profile
9096 counts for the epilog loop.
9097
9098 2022-05-24 Martin Sebor <msebor@redhat.com>
9099 Richard Biener <rguenther@suse.de>
9100
9101 PR middle-end/105604
9102 * gimple-ssa-sprintf.cc (set_aggregate_size_and_offset): Add comments.
9103 (get_origin_and_offset_r): Remove null handling. Handle variable array
9104 sizes.
9105 (get_origin_and_offset): Handle null argument here. Simplify.
9106 (alias_offset): Update comment.
9107 * pointer-query.cc (field_at_offset): Update comment. Handle members
9108 of variable-length types.
9109
9110 2022-05-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9111
9112 * target.def (vec_perm_const): Define new parameter op_mode and
9113 update doc.
9114 * doc/tm.texi: Regenerate.
9115 * config/aarch64/aarch64.cc (aarch64_vectorize_vec_perm_const): Adjust
9116 vec_perm_const hook to add new parameter op_mode and return false
9117 if result and operand modes do not match.
9118 * config/arm/arm.cc (arm_vectorize_vec_perm_const): Likewise.
9119 * config/gcn/gcn.cc (gcn_vectorize_vec_perm_const): Likewise.
9120 * config/ia64/ia64.cc (ia64_vectorize_vec_perm_const): Likewise.
9121 * config/mips/mips.cc (mips_vectorize_vec_perm_const): Likewise.
9122 * config/rs6000/rs6000.cc (rs6000_vectorize_vec_perm_const): Likewise
9123 * config/s390/s390.cc (s390_vectorize_vec_perm_const): Likewise.
9124 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Likewise.
9125 * config/i386/i386-expand.cc (ix86_vectorize_vec_perm_const): Likewise.
9126 * config/i386/i386-expand.h (ix86_vectorize_vec_perm_const): Adjust
9127 prototype.
9128 * config/i386/sse.md (ashrv4di3): Adjust call to vec_perm_const hook.
9129 (ashrv2di3): Likewise.
9130 * optabs.cc (expand_vec_perm_const): Likewise.
9131 * optabs-query.h (can_vec_perm_const_p): Adjust prototype.
9132 * optabs-query.cc (can_vec_perm_const_p): Define new parameter
9133 op_mode and pass it to vec_perm_const hook.
9134 (can_mult_highpart_p): Adjust call to can_vec_perm_const_p.
9135 * match.pd (vec_perm X Y CST): Likewise.
9136 * tree-ssa-forwprop.cc (simplify_vector_constructor): Likewise.
9137 * tree-vect-data-refs.cc (vect_grouped_store_supported): Likewise.
9138 (vect_grouped_load_supported): Likewise.
9139 (vect_shift_permute_load_chain): Likewise.
9140 * tree-vect-generic.cc (lower_vec_perm): Likewise.
9141 * tree-vect-loop-manip.cc (interleave_supported_p): Likewise.
9142 * tree-vect-loop.cc (have_whole_vector_shift): Likewise.
9143 * tree-vect-patterns.cc (vect_recog_rotate_pattern): Likewise.
9144 * tree-vect-slp.cc (can_duplicate_and_interleave_p): Likewise.
9145 (vect_transform_slp_perm_load): Likewise.
9146 (vectorizable_slp_permutation): Likewise.
9147 * tree-vect-stmts.cc (perm_mask_for_reverse): Likewise.
9148 (vectorizable_bswap): Likewise.
9149 (scan_store_can_perm_p): Likewise.
9150 (vect_gen_perm_mask_checked): Likewise.
9151
9152 2022-05-24 H.J. Lu <hjl.tools@gmail.com>
9153
9154 PR target/104816
9155 * config/i386/i386.opt: Remove Undocumented.
9156 * doc/invoke.texi: Document -mcet-switch.
9157
9158 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
9159
9160 * config.gcc (amdgcn): Accept --with-arch=gfx908 and gfx90a.
9161 * config/gcn/gcn-opts.h (enum gcn_isa): New.
9162 (TARGET_GCN3): Use enum gcn_isa.
9163 (TARGET_GCN3_PLUS): Likewise.
9164 (TARGET_GCN5): Likewise.
9165 (TARGET_GCN5_PLUS): Likewise.
9166 (TARGET_CDNA1): New.
9167 (TARGET_CDNA1_PLUS): New.
9168 (TARGET_CDNA2): New.
9169 (TARGET_CDNA2_PLUS): New.
9170 (TARGET_M0_LDS_LIMIT): New.
9171 (TARGET_PACKED_WORK_ITEMS): New.
9172 * config/gcn/gcn.cc (gcn_isa): Change to enum gcn_isa.
9173 (gcn_option_override): Recognise CDNA ISA variants.
9174 (gcn_omp_device_kind_arch_isa): Support gfx90a.
9175 (gcn_expand_prologue): Make m0 init optional.
9176 Add support for packed work items.
9177 (output_file_start): Support gfx90a.
9178 (gcn_hsa_declare_function_name): Support gfx90a metadata.
9179 * config/gcn/gcn.h (TARGET_CPU_CPP_BUILTINS):Add __CDNA1__ and
9180 __CDNA2__.
9181 * config/gcn/gcn.md (<su>mulsi3_highpart): Use TARGET_GCN5_PLUS.
9182 (<su>mulsi3_highpart_imm): Likewise.
9183 (<su>mulsidi3): Likewise.
9184 (<su>mulsidi3_imm): Likewise.
9185 * config/gcn/gcn.opt (gpu_type): Add gfx90a.
9186 * config/gcn/mkoffload.cc (EF_AMDGPU_MACH_AMDGCN_GFX90a): New.
9187 (main): Support gfx90a.
9188 * config/gcn/t-gcn-hsa: Add gfx90a multilib.
9189 * config/gcn/t-omp-device: Add gfx90a isa.
9190
9191 2022-05-24 Andrew Stubbs <ams@codesourcery.com>
9192
9193 * config.in: Regenerate.
9194 * config/gcn/gcn-hsa.h (X_FIJI): Delete.
9195 (X_900): Delete.
9196 (X_906): Delete.
9197 (X_908): Delete.
9198 (S_FIJI): Delete.
9199 (S_900): Delete.
9200 (S_906): Delete.
9201 (S_908): Delete.
9202 (NO_XNACK): New macro.
9203 (NO_SRAM_ECC): New macro.
9204 (SRAMOPT): Keep only v4 variant.
9205 (HSACO3_SELECT_OPT): Delete.
9206 (DRIVER_SELF_SPECS): Delete.
9207 (ASM_SPEC): Remove LLVM 9 support.
9208 * config/gcn/gcn-valu.md
9209 (gather<mode>_insn_2offsets<exec>): Remove assembler bug workaround.
9210 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
9211 * config/gcn/gcn.cc (output_file_start): Remove LLVM 9 support.
9212 (print_operand_address): Remove assembler bug workaround.
9213 * config/gcn/mkoffload.cc (EF_AMDGPU_XNACK_V3): Delete.
9214 (EF_AMDGPU_SRAM_ECC_V3): Delete.
9215 (SET_XNACK_ON): Delete v3 variants.
9216 (SET_XNACK_OFF): Delete v3 variants.
9217 (TEST_XNACK): Delete v3 variants.
9218 (SET_SRAM_ECC_ON): Delete v3 variants.
9219 (SET_SRAM_ECC_ANY): Delete v3 variants.
9220 (SET_SRAM_ECC_OFF): Delete v3 variants.
9221 (SET_SRAM_ECC_UNSUPPORTED): Delete v3 variants.
9222 (TEST_SRAM_ECC_ANY): Delete v3 variants.
9223 (TEST_SRAM_ECC_ON): Delete v3 variants.
9224 (copy_early_debug_info): Remove v3 support.
9225 (main): Remove v3 support.
9226 * configure: Regenerate.
9227 * configure.ac: Replace all GCN feature checks with a version check.
9228
9229 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9230
9231 * config/i386/i386.md (peephole2): Convert xor;neg;adc;neg,
9232 i.e. a double word negation of a zero extended operand, to
9233 neg;sbb.
9234
9235 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9236
9237 PR tree-optimization/105668
9238 * config/i386/i386-expand.cc (ix86_expand_sse_movcc): Support
9239 V1TImode, just like V2DImode.
9240 * config/i386/sse.md (vcond_mask_<mode><sseintvecmodelower>):
9241 Use VI_128 mode iterator instead of VI124_128 to include V2DI.
9242 (vcond_mask_v2div2di): Delete.
9243 (vcond_mask_v1tiv1ti): New define_expand.
9244
9245 2022-05-24 Roger Sayle <roger@nextmovesoftware.com>
9246
9247 * genpreds.cc (write_lookup_constraint_1): Avoid generating a call
9248 to strncmp for strings of length one.
9249
9250 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
9251
9252 * config/riscv/predicates.md (imm5_operand): Add a new operand type for
9253 prefetch instructions.
9254 * config/riscv/riscv-builtins.cc (AVAIL): Add new AVAILs for CMO ISA
9255 Extensions.
9256 (RISCV_ATYPE_SI): New.
9257 (RISCV_ATYPE_DI): New.
9258 * config/riscv/riscv-ftypes.def (0): New.
9259 (1): New.
9260 * config/riscv/riscv.md (riscv_clean_<mode>): New.
9261 (riscv_flush_<mode>): New.
9262 (riscv_inval_<mode>): New.
9263 (riscv_zero_<mode>): New.
9264 (prefetch): New.
9265 (riscv_prefetchi_<mode>): New.
9266 * config/riscv/riscv-cmo.def: New file.
9267
9268 2022-05-24 ShiYulong <shiyulong@iscas.ac.cn>
9269
9270 * common/config/riscv/riscv-common.cc: Add zicbom, zicboz, zicbop extensions.
9271 * config/riscv/riscv-opts.h (MASK_ZICBOZ): New.
9272 (MASK_ZICBOM): New.
9273 (MASK_ZICBOP): New.
9274 (TARGET_ZICBOZ): New.
9275 (TARGET_ZICBOM): New.
9276 (TARGET_ZICBOP): New.
9277 * config/riscv/riscv.opt (riscv_zicmo_subext): New.
9278
9279 2022-05-24 David Malcolm <dmalcolm@redhat.com>
9280
9281 * tree-vect-slp-patterns.cc: Add "final" and "override" to
9282 vect_pattern::build impls as appropriate.
9283
9284 2022-05-24 David Malcolm <dmalcolm@redhat.com>
9285
9286 * ipa-cp.cc: Add "final" and "override" to call_summary_base vfunc
9287 implementations, removing redundant "virtual" as appropriate.
9288 * ipa-fnsummary.h: Likewise.
9289 * ipa-modref.cc: Likewise.
9290 * ipa-param-manipulation.cc: Likewise.
9291 * ipa-profile.cc: Likewise.
9292 * ipa-prop.h: Likewise.
9293 * ipa-pure-const.cc: Likewise.
9294 * ipa-reference.cc: Likewise.
9295 * ipa-sra.cc: Likewise.
9296 * symbol-summary.h: Likewise.
9297 * symtab-thunks.cc: Likewise.
9298
9299 2022-05-24 Martin Liska <mliska@suse.cz>
9300
9301 Revert:
9302 2022-05-24 Martin Liska <mliska@suse.cz>
9303
9304 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
9305 warning.
9306
9307 2022-05-24 Martin Liska <mliska@suse.cz>
9308
9309 * expmed.cc (emit_store_flag_1): Mitigate -Wmaybe-uninitialized
9310 warning.
9311
9312 2022-05-24 Bruno Haible <bruno@clisp.org>
9313
9314 PR other/105527
9315 * doc/install.texi (Configuration): Add more details about --with-zstd.
9316 Document --with-zstd-include and --with-zstd-lib
9317
9318 2022-05-24 Richard Biener <rguenther@suse.de>
9319
9320 PR middle-end/105711
9321 * expmed.cc (extract_bit_field_as_subreg): Add op0_mode parameter
9322 and use it.
9323 (extract_bit_field_1): Pass down the mode of op0 to
9324 extract_bit_field_as_subreg.
9325
9326 2022-05-24 Vineet Gupta <vineetg@rivosinc.com>
9327
9328 * config/riscv/riscv.cc: (struct riscv_tune_param): Add
9329 fmv_cost.
9330 (rocket_tune_info): Add default fmv_cost 8.
9331 (sifive_7_tune_info): Ditto.
9332 (thead_c906_tune_info): Ditto.
9333 (optimize_size_tune_info): Ditto.
9334 (riscv_register_move_cost): Use fmv_cost for int<->fp moves.
9335
9336 2022-05-24 Jakub Jelinek <jakub@redhat.com>
9337
9338 PR c/105378
9339 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT): New
9340 builtin.
9341 * gimplify.cc (gimplify_omp_task): Diagnose taskwait with nowait
9342 clause but no depend clauses.
9343 * omp-expand.cc (expand_taskwait_call): Use
9344 BUILT_IN_GOMP_TASKWAIT_DEPEND_NOWAIT rather than
9345 BUILT_IN_GOMP_TASKWAIT_DEPEND if nowait clause is present.
9346
9347 2022-05-24 Richard Biener <rguenther@suse.de>
9348
9349 PR tree-optimization/100221
9350 * tree-ssa-dse.cc (contains_phi_arg): New function.
9351 (dse_classify_store): Postpone PHI defs that feed another PHI in defs.
9352
9353 2022-05-24 Richard Biener <rguenther@suse.de>
9354
9355 PR tree-optimization/105629
9356 * tree-ssa-phiopt.cc (spaceship_replacement): Allow
9357 a sign-extending conversion.
9358
9359 2022-05-24 Kewen Lin <linkw@linux.ibm.com>
9360
9361 PR target/105627
9362 * config/rs6000/rs6000-p8swap.cc (union_defs): Assert def_insn can't
9363 be a debug insn.
9364 (union_uses): Skip debug use_insn.
9365
9366 2022-05-23 Vineet Gupta <vineetg@rivosinc.com>
9367
9368 * config/riscv/predicates.md (const_0_operand): Remove
9369 const_double.
9370 * config/riscv/riscv.cc (riscv_rtx_costs): Add check for
9371 CONST_DOUBLE.
9372 * config/riscv/riscv.h (TARGET_SUPPORTS_WIDE_INT): New define.
9373
9374 2022-05-23 Mayshao <mayshao-oc@zhaoxin.com>
9375
9376 * common/config/i386/cpuinfo.h (get_zhaoxin_cpu): Detect
9377 the specific type of Zhaoxin CPU, and return Zhaoxin CPU name.
9378 (cpu_indicator_init): Handle Zhaoxin processors.
9379 * common/config/i386/i386-common.cc: Add lujiazui.
9380 * common/config/i386/i386-cpuinfo.h (enum processor_vendor): Add
9381 VENDOR_ZHAOXIN.
9382 (enum processor_types): Add ZHAOXIN_FAM7H.
9383 (enum processor_subtypes): Add ZHAOXIN_FAM7H_LUJIAZUI.
9384 * config.gcc: Add lujiazui.
9385 * config/i386/cpuid.h (signature_SHANGHAI_ebx): Add
9386 Signatures for zhaoxin
9387 (signature_SHANGHAI_ecx): Ditto.
9388 (signature_SHANGHAI_edx): Ditto.
9389 * config/i386/driver-i386.cc (host_detect_local_cpu): Let
9390 -march=native recognize lujiazui processors.
9391 * config/i386/i386-c.cc (ix86_target_macros_internal): Add lujiazui.
9392 * config/i386/i386-options.cc (m_LUJIAZUI): New_definition.
9393 * config/i386/i386.h (enum processor_type): Ditto.
9394 * config/i386/i386.md: Add lujiazui.
9395 * config/i386/x86-tune-costs.h (struct processor_costs): Add
9396 lujiazui costs.
9397 * config/i386/x86-tune-sched.cc (ix86_issue_rate): Add lujiazui.
9398 (ix86_adjust_cost): Ditto.
9399 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Add lujiazui Tunnings.
9400 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Ditto.
9401 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Ditto.
9402 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Ditto.
9403 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Ditto.
9404 (X86_TUNE_MOVX): Ditto.
9405 (X86_TUNE_MEMORY_MISMATCH_STALL): Ditto.
9406 (X86_TUNE_FUSE_CMP_AND_BRANCH_32): Ditto.
9407 (X86_TUNE_FUSE_CMP_AND_BRANCH_64): Ditto.
9408 (X86_TUNE_FUSE_CMP_AND_BRANCH_SOFLAGS): Ditto.
9409 (X86_TUNE_FUSE_ALU_AND_BRANCH): Ditto.
9410 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Ditto.
9411 (X86_TUNE_USE_LEAVE): Ditto.
9412 (X86_TUNE_PUSH_MEMORY): Ditto.
9413 (X86_TUNE_LCP_STALL): Ditto.
9414 (X86_TUNE_USE_INCDEC): Ditto.
9415 (X86_TUNE_INTEGER_DFMODE_MOVES): Ditto.
9416 (X86_TUNE_OPT_AGU): Ditto.
9417 (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): Ditto.
9418 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Ditto.
9419 (X86_TUNE_USE_SAHF): Ditto.
9420 (X86_TUNE_USE_BT): Ditto.
9421 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Ditto.
9422 (X86_TUNE_ONE_IF_CONV_INSN): Ditto.
9423 (X86_TUNE_AVOID_MFENCE): Ditto.
9424 (X86_TUNE_EXPAND_ABS): Ditto.
9425 (X86_TUNE_USE_SIMODE_FIOP): Ditto.
9426 (X86_TUNE_USE_FFREEP): Ditto.
9427 (X86_TUNE_EXT_80387_CONSTANTS): Ditto.
9428 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Ditto.
9429 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Ditto.
9430 (X86_TUNE_SSE_TYPELESS_STORES): Ditto.
9431 (X86_TUNE_SSE_LOAD0_BY_PXOR): Ditto.
9432 * doc/extend.texi: Add details about lujiazui.
9433 * doc/invoke.texi: Add details about lujiazui.
9434 * config/i386/lujiazui.md: Introduce lujiazui cpu and include new md file.
9435
9436 2022-05-23 Martin Liska <mliska@suse.cz>
9437
9438 * config/tilepro/gen-mul-tables.cc (ARRAY_SIZE): Add new macro.
9439
9440 2022-05-23 Richard Biener <rguenther@suse.de>
9441
9442 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Remove.
9443 (pass_forwprop::execute): Do not propagate into COND_EXPR conditions.
9444
9445 2022-05-23 Richard Biener <rguenther@suse.de>
9446
9447 * gimple-expr.cc (is_gimple_condexpr): Remove.
9448 * gimple-expr.h (is_gimple_condexpr): Likewise.
9449 * gimplify.cc (gimplify_expr): Remove is_gimple_condexpr usage.
9450 * tree-if-conv.cc (set_bb_predicate): Likewie.
9451 (add_to_predicate_list): Likewise.
9452 (gen_phi_arg_condition): Likewise.
9453 (predicate_scalar_phi): Likewise.
9454 (predicate_statements): Likewise.
9455
9456 2022-05-23 Richard Biener <rguenther@suse.de>
9457
9458 * gimple-expr.cc (is_gimple_condexpr): Equate to is_gimple_val.
9459 * gimplify.cc (gimplify_pure_cond_expr): Gimplify the condition
9460 as is_gimple_val.
9461 * gimple-fold.cc (valid_gimple_rhs_p): Simplify.
9462 * tree-cfg.cc (verify_gimple_assign_ternary): Likewise.
9463 * gimple-loop-interchange.cc (loop_cand::undo_simple_reduction):
9464 Build the condition of the COND_EXPR separately.
9465 * tree-ssa-loop-im.cc (move_computations_worker): Likewise.
9466 * tree-vect-generic.cc (expand_vector_condition): Likewise.
9467 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
9468 Likewise.
9469 * vr-values.cc (simplify_using_ranges::simplify): Likewise.
9470 * tree-vect-patterns.cc: Add comment indicating we are
9471 building invalid COND_EXPRs and why.
9472 * omp-expand.cc (expand_omp_simd): Gimplify the condition
9473 to the COND_EXPR separately.
9474 (expand_omp_atomic_cas): Note part that should be unreachable
9475 now.
9476 * tree-ssa-forwprop.cc (forward_propagate_into_cond): Adjust
9477 condition for valid replacements.
9478 * tree-if-conv.cc (predicate_bbs): Simulate previous
9479 re-folding of the condition in folded COND_EXPRs which
9480 is necessary because of unfolded GIMPLE_CONDs in the IL
9481 as in for example gcc.dg/fold-bopcond-1.c.
9482 * gimple-range-gori.cc (gori_compute::condexpr_adjust):
9483 Handle that the comparison is now in the def stmt of
9484 the select operand. Required by gcc.dg/pr104526.c.
9485
9486 2022-05-23 Tobias Burnus <tobias@codesourcery.com>
9487
9488 PR fortran/104949
9489 * langhooks-def.h (lhd_omp_array_size): New.
9490 (LANG_HOOKS_OMP_ARRAY_SIZE): Define.
9491 (LANG_HOOKS_DECLS): Add it.
9492 * langhooks.cc (lhd_omp_array_size): New.
9493 * langhooks.h (struct lang_hooks_for_decls): Add hook.
9494 * omp-low.cc (scan_sharing_clauses, lower_omp_target):
9495 Handle GOMP_MAP_FIRSTPRIVATE for array descriptors.
9496
9497 2022-05-23 Roger Sayle <roger@nextmovesoftware.com>
9498
9499 * config/i386/i386.cc (ix86_rtx_costs) <case AND>: Split from
9500 XOR/IOR case. Account for two instructions for double-word
9501 operations. In case of vector pandn, account for single
9502 instruction. Likewise for integer andn with TARGET_BMI.
9503 <case NOT>: Vector NOT requires more than 1 instruction (pxor).
9504 <case NEG>: Double-word negation requires 3 instructions.
9505
9506 2022-05-23 Tsukasa OI <research_trasio@irq.a4lg.com>
9507
9508 * common/config/riscv/riscv-common.cc (riscv_supported_std_ext):
9509 Fix "K" extension prefix to be placed before "J".
9510 * config/riscv/arch-canonicalize: Likewise.
9511
9512 2022-05-23 liuhongt <hongtao.liu@intel.com>
9513
9514 * config/i386/x86-tune-costs.h (skylake_cost): Increase gpr
9515 <-> mask cost from 5 to 6.
9516 (icelake_cost): Ditto.
9517
9518 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
9519
9520 * config/aarch64/aarch64.md
9521 (and_<SHIFT:optab><mode>3_compare0): Support rotate left.
9522 (and_<SHIFT:optab>si3_compare0_uxtw): Likewise.
9523 (<LOGICAL:optab>_<SHIFT:optab><mode>3): Likewise.
9524 (<LOGICAL:optab>_<SHIFT:optab>si3_uxtw): Likewise.
9525 (one_cmpl_<optab><mode>2): Likewise.
9526 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab><mode>3): Likewise.
9527 (<LOGICAL:optab>_one_cmpl_<SHIFT:optab>sidi_uxtw): New pattern.
9528 (eor_one_cmpl_<SHIFT:optab><mode>3_alt): Support rotate left.
9529 (eor_one_cmpl_<SHIFT:optab>sidi3_alt_ze): Likewise.
9530 (and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
9531 (and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
9532 (and_one_cmpl_<SHIFT:optab><mode>3_compare0_no_reuse): Likewise.
9533 (and_<SHIFT:optab><mode>3nr_compare0): Likewise.
9534 (*<optab>si3_insn_uxtw): Use SHIFT_no_rotate.
9535 (rolsi3_insn_uxtw): New pattern.
9536 * config/aarch64/iterators.md (SHIFT): Add rotate left.
9537 (SHIFT_no_rotate): Add new iterator.
9538 (SHIFT:shift): Print rotate left as ror.
9539 (is_rotl): Add test for left rotate.
9540
9541 2022-05-20 Wilco Dijkstra <wilco.dijkstra@arm.com>
9542
9543 * config.gcc (aarch64*-*-*): Simplify --with-cpu and --with-arch
9544 processing. Add support for architectural extensions.
9545 * config/aarch64/aarch64.h (TARGET_CPU_DEFAULT): Remove
9546 AARCH64_CPU_DEFAULT_FLAGS.
9547 (TARGET_CPU_NBITS): Remove.
9548 (TARGET_CPU_MASK): Remove.
9549 * config/aarch64/aarch64.cc (AARCH64_CPU_DEFAULT_FLAGS): Remove define.
9550 (get_tune_cpu): Assert CPU is always valid.
9551 (get_arch): Assert architecture is always valid.
9552 (aarch64_override_options): Cleanup CPU selection code and simplify logic.
9553 (aarch64_option_restore): Remove unnecessary checks on tune.
9554
9555 2022-05-20 David Malcolm <dmalcolm@redhat.com>
9556
9557 * config/aarch64/aarch64-sve-builtins-base.cc: Replace uses of
9558 "FINAL" and "OVERRIDE" with "final" and "override".
9559 * config/aarch64/aarch64-sve-builtins-functions.h: Likewise.
9560 * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise.
9561 * config/aarch64/aarch64-sve-builtins-sve2.cc: Likewise.
9562 * diagnostic-path.h: Likewise.
9563 * digraph.cc: Likewise.
9564 * gcc-rich-location.h: Likewise.
9565 * gimple-array-bounds.cc: Likewise.
9566 * gimple-loop-versioning.cc: Likewise.
9567 * gimple-range-cache.cc: Likewise.
9568 * gimple-range-cache.h: Likewise.
9569 * gimple-range-fold.cc: Likewise.
9570 * gimple-range-fold.h: Likewise.
9571 * gimple-range-tests.cc: Likewise.
9572 * gimple-range.h: Likewise.
9573 * gimple-ssa-evrp.cc: Likewise.
9574 * input.cc: Likewise.
9575 * json.h: Likewise.
9576 * read-rtl-function.cc: Likewise.
9577 * tree-complex.cc: Likewise.
9578 * tree-diagnostic-path.cc: Likewise.
9579 * tree-ssa-ccp.cc: Likewise.
9580 * tree-ssa-copy.cc: Likewise.
9581 * tree-vrp.cc: Likewise.
9582 * value-query.h: Likewise.
9583 * vr-values.h: Likewise.
9584
9585 2022-05-20 Marcel Vollweiler <marcel@codesourcery.com>
9586
9587 * omp-low.cc (omp_runtime_api_call): Added target_memcpy_async and
9588 target_memcpy_rect_async to omp_runtime_apis array.
9589
9590 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9591
9592 * doc/sourcebuild.texi (Decimal floating point attributes): Document
9593 dfp_bid effective-target.
9594
9595 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9596
9597 * config/aarch64/aarch64.cc
9598 (aarch64_split_128bit_move): Handle DFP modes.
9599 (aarch64_mode_valid_for_sched_fusion_p): Likewise.
9600 (aarch64_classify_address): Likewise.
9601 (aarch64_legitimize_address_displacement): Likewise.
9602 (aarch64_reinterpret_float_as_int): Likewise.
9603 (aarch64_float_const_zero_rtx_p): Likewise.
9604 (aarch64_can_const_movi_rtx_p): Likewise.
9605 (aarch64_anchor_offset): Likewise.
9606 (aarch64_secondary_reload): Likewise.
9607 (aarch64_rtx_costs): Likewise.
9608 (aarch64_legitimate_constant_p): Likewise.
9609 (aarch64_gimplify_va_arg_expr): Likewise.
9610 (aapcs_vfp_sub_candidate): Likewise.
9611 (aarch64_vfp_is_call_or_return_candidate): Likewise.
9612 (aarch64_output_scalar_simd_mov_immediate): Likewise.
9613 (aarch64_gen_adjusted_ldpstp): Likewise.
9614 (aarch64_scalar_mode_supported_p): Accept DFP modes if enabled.
9615 * config/aarch64/aarch64.md
9616 (movsf_aarch64): Use SFD iterator and rename into
9617 mov<mode>_aarch64.
9618 (movdf_aarch64): Use DFD iterator and rename into
9619 mov<mode>_aarch64.
9620 (movtf_aarch64): Use TFD iterator and rename into
9621 mov<mode>_aarch64.
9622 (split pattern for move TF mode): Use TFD iterator.
9623 * config/aarch64/iterators.md
9624 (GPF_TF_F16_MOV): Add DFP modes.
9625 (SFD, DFD, TFD): New iterators.
9626 (GPF_TF): Add DFP modes.
9627 (TX, DX, DX2): Likewise.
9628
9629 2022-05-20 Christophe Lyon <christophe.lyon@arm.com>
9630
9631 * configure: Regenerate.
9632
9633 2022-05-19 Roger Sayle <roger@nextmovesoftware.com>
9634
9635 PR middle-end/98865
9636 * expr.cc (expand_expr_real_2) [MULT_EXPR]: Expand X*Y as X&Y
9637 when both X and Y are [0, 1], X*Y as X&-Y when Y is [0,1] and
9638 likewise X*Y as -X&Y when X is [0,1] using tree_nonzero_bits.
9639
9640 2022-05-19 Will Schmidt <will_schmidt@vnet.ibm.com>
9641
9642 * config/rs6000/rs6000-builtins.def: Rephrase
9643 to remove RS6000_BTC_SPECIAL from comment.
9644 * config/rs6000/rs6000.h (RS6000_BTC_UNARY, RS6000_BTC_BINARY,
9645 RS6000_BTC_TERNARY, RS6000_BTC_QUATERNARY,
9646 RS6000_BTC_QUINARY, RS6000_BTC_SENARY, RS6000_BTC_OPND_MASK,
9647 RS6000_BTC_SPECIAL, RS6000_BTC_PREDICATE, RS6000_BTC_ABS,
9648 RS6000_BTC_DST, RS6000_BTC_TYPE_MASK, RS6000_BTC_MISC,
9649 RS6000_BTC_CONST, RS6000_BTC_PURE, RS6000_BTC_FP,
9650 RS6000_BTC_QUAD, RS6000_BTC_PAIR, RS6000_BTC_QUADPAIR,
9651 RS6000_BTC_ATTR_MASK, RS6000_BTC_SPR, RS6000_BTC_VOID,
9652 RS6000_BTC_CR, RS6000_BTC_OVERLOADED, RS6000_BTC_GIMPLE,
9653 RS6000_BTC_MISC_MASK, RS6000_BTC_MEM, RS6000_BTC_SAT,
9654 RS6000_BTM_ALWAYS): Delete.
9655
9656 2022-05-19 Richard Biener <rguenther@suse.de>
9657
9658 * omp-expand.cc (expand_omp_atomic_cas): Do not short-cut
9659 computation of the new value.
9660
9661 2022-05-19 Richard Biener <rguenther@suse.de>
9662
9663 * tree-ssa-pre.cc (get_or_alloc_expression_id): Remove.
9664 (add_to_value): Use get_expression_id.
9665 (bitmap_insert_into_set): Likewise.
9666 (bitmap_value_insert_into_set): Likewise.
9667
9668 2022-05-19 David Malcolm <dmalcolm@redhat.com>
9669
9670 * doc/invoke.texi (-fanalyzer-checker=): Add
9671 -Wanalyzer-va-list-leak and -Wanalyzer-va-list-use-after-va-end to
9672 the list of analyzer warnings disabled by
9673 -fanalyzer-checker=taint.
9674
9675 2022-05-19 Jakub Jelinek <jakub@redhat.com>
9676
9677 PR debug/105630
9678 * cfgexpand.cc (expand_debug_expr): For VAR_DECL, punt for
9679 global vars without symtab node even when they have DECL_RTL
9680 set.
9681
9682 2022-05-19 Jakub Jelinek <jakub@redhat.com>
9683
9684 PR c/105635
9685 * pointer-query.cc (gimple_parm_array_size): Return NULL if var
9686 doesn't have pointer or reference type.
9687
9688 2022-05-18 Marek Polacek <polacek@redhat.com>
9689
9690 PR c/105131
9691 * doc/invoke.texi: Document -Wenum-int-mismatch.
9692
9693 2022-05-18 Uros Bizjak <ubizjak@gmail.com>
9694
9695 * config/i386/gnu-user-common.h (defined): Only define
9696 TARGET_CAN_SPLIT_STACK for glibc targets.
9697 * config/i386/gnu.h (defined): Ditto.
9698
9699 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
9700
9701 * config/i386/i386.cc (ix86_rtx_costs) [MULT]: When mode size
9702 is wider than word_mode, a multiplication costs three word_mode
9703 multiplications and two word_mode additions.
9704
9705 2022-05-18 Roger Sayle <roger@nextmovesoftware.com>
9706
9707 * config/i386/i386.md (define_split): Split *andsi_1
9708 and *andn_si_ccno after reload with -Oz.
9709
9710 2022-05-18 Frederik Harwath <frederik@codesourcery.com>
9711
9712 * graphite-scop-detection.cc (scop_detection::can_represent_loop):
9713 Output reason for failure to dump file.
9714 (scop_detection::harmful_loop_in_region): Likewise.
9715 (scop_detection::graphite_can_represent_expr): Likewise.
9716 (scop_detection::stmt_has_simple_data_refs_p): Likewise.
9717 (scop_detection::stmt_simple_for_scop_p): Likewise.
9718 (print_sese_loop_numbers): New function.
9719 (scop_detection::add_scop): Use from here.
9720
9721 2022-05-18 liuhongt <hongtao.liu@intel.com>
9722
9723 PR middle-end/103462
9724 * match.pd (bitwise_induction_p): New match.
9725 * tree-scalar-evolution.cc (gimple_bitwise_induction_p):
9726 Declare.
9727 (analyze_and_compute_bitwise_induction_effect): New function.
9728 (enum bit_op_kind): New enum.
9729 (final_value_replacement_loop): Enhanced to handle bitwise
9730 induction.
9731
9732 2022-05-18 Haochen Gui <guihaoc@gcc.gnu.org>
9733
9734 PR target/95737
9735 * config/rs6000/rs6000.md (*subfsi3_carry_in_xx_64): New.
9736
9737 2022-05-18 liuhongt <hongtao.liu@intel.com>
9738
9739 PR target/104375
9740 * config/i386/i386.md (*bmi2_bzhi_zero_extendsidi_4): New
9741 define_insn.
9742
9743 2022-05-18 liuhongt <hongtao.liu@intel.com>
9744
9745 PR target/104610
9746 * config/i386/i386-expand.cc (ix86_expand_branch): Use ptest
9747 for QImode when code is EQ or NE.
9748 * config/i386/i386.md (cbranchoi4): New expander.
9749
9750 2022-05-18 Peter Bergner <bergner@linux.ibm.com>
9751 Segher Boessenkool <segher@kernel.crashing.org>
9752
9753 PR target/105556
9754 * config/rs6000/mma.md (mma_<vv>, mma_<avv>, mma_<pv>, mma_<apv>,
9755 mma_<vvi4i4i8>, mma_<avvi4i4i8>, mma_<vvi4i4i2>, mma_<avvi4i4i2>,
9756 mma_<vvi4i4>, mma_<avvi4i4>, mma_<pvi4i2>, mma_<apvi4i2>,
9757 mma_<vvi4i4i4>, mma_<avvi4i4i4>): Replace "wa" constraints with "v,?wa".
9758 Update other operands accordingly.
9759
9760 2022-05-17 Marek Polacek <polacek@redhat.com>
9761
9762 * godump.cc (go_output_typedef): Use the DECL_INITIAL of the TREE_VALUE.
9763
9764 2022-05-17 Pat Haugen <pthaugen@linux.ibm.com>
9765
9766 PR target/99685
9767 * config/rs6000/rs6000-call.cc (rs6000_function_arg_advance_1): Bump
9768 register count when not splitting IEEE 128-bit Complex.
9769
9770 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
9771
9772 * omp-low.cc (check_omp_nesting_restrictions): Skip warning for
9773 target inside target if inner is reverse offload.
9774
9775 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
9776
9777 * config/gcn/mkoffload.cc (process_obj): Revert: Use ARRAY_SIZE.
9778 * config/nvptx/mkoffload.cc (process): Likewise.
9779
9780 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
9781
9782 * Makefile.in (OBJS): Add gimple-range-side-effect.o.
9783 * gimple-range-cache.cc (non_null_ref::non_null_ref): Delete.
9784 (non_null_ref::~non_null_ref): Delete.
9785 (non_null_ref::set_nonnull): Delete.
9786 (non_null_ref::non_null_deref_p): Delete.
9787 (non_null_ref::process_name): Delete.
9788 (ranger_cache::ranger_cache): Initialize m_exit object.
9789 (ranger_cache::fill_block_cache): Use m_exit object intead of nonnull.
9790 (ranger_cache::range_from_dom): Use side_effect class and m_exit object.
9791 (ranger_cache::update_to_nonnull): Delete.
9792 (non_null_loadstore): Delete.
9793 (ranger_cache::block_apply_nonnull): Delete.
9794 (ranger_cache::apply_side_effects): New.
9795 * gimple-range-cache.h (class non_null_ref): Delete.
9796 (non_null_ref::adjust_range): Delete.
9797 (class ranger_cache): Adjust prototypes, add side effect manager.
9798 * gimple-range-path.cc (path_range_query::range_defined_in_block): Use
9799 side effect manager for queries.
9800 (path_range_query::adjust_for_non_null_uses): Ditto.
9801 * gimple-range-path.h (class path_range_query): Delete non_null_ref.
9802 * gimple-range-side-effect.cc: New.
9803 * gimple-range-side-effect.h: New.
9804 * gimple-range.cc (gimple_ranger::gimple_ranger): Update contructor.
9805 (gimple_ranger::range_of_expr): Check def block for override value.
9806 (gimple_ranger::range_on_entry): Don't scan dominators for non-null.
9807 (gimple_ranger::range_on_edge): Check for outgoing side-effects.
9808 (gimple_ranger::register_side_effects): Call apply_side_effects.
9809 (enable_ranger): Update contructor.
9810 * gimple-range.h (class gimple_ranger): Update prototype.
9811 (enable_ranger): Update prototype.
9812 * tree-vrp.cc (execute_ranger_vrp): Invoke without immediate-use flag.
9813
9814 2022-05-17 Giuliano Belinassi <gbelinassi@suse.de>
9815
9816 PR c++/105169
9817 * targhooks.cc (default_print_patchable_function_entry_1): Handle COMDAT case.
9818 * varasm.cc (switch_to_comdat_section): New
9819 (handle_vtv_comdat_section): Call switch_to_comdat_section.
9820 * varasm.h: Declare switch_to_comdat_section.
9821
9822 2022-05-17 Richard Biener <rguenther@suse.de>
9823
9824 * cfgloopmanip.cc (duplicate_loop_body_to_header_edge): Do
9825 not clear bb->aux of the copied blocks.
9826
9827 2022-05-17 Andrew MacLeod <amacleod@redhat.com>
9828
9829 PR tree-optimization/105458
9830 * value-relation.cc (path_oracle::register_relation): Merge, then check
9831 for equivalence.
9832
9833 2022-05-17 Uroš Bizjak <ubizjak@gmail.com>
9834
9835 PR target/105624
9836 Revert:
9837 * config/i386/i386.md: Remove constraints when used with
9838 const_int_operand, const0_operand, const_1_operand, constm1_operand,
9839 const8_operand, const128_operand, const248_operand, const123_operand,
9840 const2367_operand, const1248_operand, const359_operand,
9841 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
9842 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
9843 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
9844 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
9845 const_0_to_255_mul_8_operand, const_1_to_31_operand,
9846 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
9847 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
9848 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
9849 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
9850 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
9851 const_24_to_27_operand and const_28_to_31_operand.
9852 * config/i386/mmx.md: Ditto.
9853 * config/i386/sse.md: Ditto.
9854 * config/i386/subst.md: Ditto.
9855 * config/i386/sync.md: Ditto.
9856
9857 2022-05-17 Thomas Schwinge <thomas@codesourcery.com>
9858
9859 * diagnostic.cc: Don't advise to call 'abort' instead of
9860 'internal_error'.
9861 * system.h: Advise to call 'internal_error' instead of 'abort' or
9862 'fancy_abort'.
9863
9864 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
9865
9866 * graphite-sese-to-poly.cc (build_poly_sr_1): Fix a typo and
9867 a reference to a variable which does not exist.
9868 * graphite-isl-ast-to-gimple.cc (gsi_insert_earliest): Fix typo
9869 in comment.
9870
9871 2022-05-17 Frederik Harwath <frederik@codesourcery.com>
9872
9873 * graphite-sese-to-poly.cc (isl_id_for_ssa_name): Rename to ...
9874 (isl_id_for_parameter): ... this new function name.
9875 (build_scop_context): Adjust function use.
9876
9877 2022-05-17 Tobias Burnus <tobias@codesourcery.com>
9878
9879 PR target/105602
9880 * config/gcn/t-omp-device (arch): Add 'amdgcn' besides existing 'gcn'.
9881 * config/gcn/gcn.cc (gcn_omp_device_kind_arch_isa): Likewise.
9882
9883 2022-05-17 Jakub Jelinek <jakub@redhat.com>
9884
9885 * tree-core.h (enum omp_clause_depend_kind): Add
9886 OMP_CLAUSE_DEPEND_INOUTSET.
9887 * tree-pretty-print.cc (dump_omp_clause): Handle
9888 OMP_CLAUSE_DEPEND_INOUTSET.
9889 * gimplify.cc (gimplify_omp_depend): Likewise.
9890 * omp-low.cc (lower_depend_clauses): Likewise.
9891
9892 2022-05-17 Jakub Jelinek <jakub@redhat.com>
9893
9894 PR target/105613
9895 * config/i386/sse.md (vec_cmpeqv2div2di, vec_cmpeqv1tiv1ti): Use
9896 andv4si3 only for EQ, for NE use iorv4si3 instead.
9897
9898 2022-05-17 Richard Biener <rguenther@suse.de>
9899
9900 PR tree-optimization/105618
9901 * tree-ssa-sink.cc (statement_sink_location): For virtual
9902 PHI uses ignore those defining the used virtual operand.
9903
9904 2022-05-17 Jakub Jelinek <jakub@redhat.com>
9905
9906 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Spelling fix:
9907 hanlde -> handle. Fix up comment formatting.
9908
9909 2022-05-17 liuhongt <hongtao.liu@intel.com>
9910
9911 PR target/105033
9912 * config/i386/sse.md (*vec_concatv4si): Extend to ..
9913 (*vec_concat<mode>): .. V16QI and V8HImode.
9914 (*vec_concatv16qi_permt2): New pre_reload define_insn_and_split.
9915 (*vec_concatv8hi_permt2): Ditto.
9916
9917 2022-05-17 liuhongt <hongtao.liu@intel.com>
9918
9919 PR tree-optimization/105591
9920 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Clamp
9921 vec_perm_expr index.
9922
9923 2022-05-16 Jason Merrill <jason@redhat.com>
9924
9925 PR c/105492
9926 * attribs.cc (decl_attributes): Fix broken typedefs here.
9927
9928 2022-05-16 David Malcolm <dmalcolm@redhat.com>
9929
9930 PR analyzer/105103
9931 * Makefile.in (ANALYZER_OBJS): Add analyzer/varargs.o.
9932 * doc/invoke.texi: Add -Wanalyzer-va-arg-type-mismatch,
9933 -Wanalyzer-va-list-exhausted, -Wanalyzer-va-list-leak, and
9934 -Wanalyzer-va-list-use-after-va-end.
9935
9936 2022-05-16 Richard Biener <rguenther@suse.de>
9937
9938 * gimple-match.h (gimple_build): Move code_helper overloads ...
9939 * gimple-fold.h (gimple_build): ... here.
9940 (gimple_build): Transition to new worker API. Provide
9941 overloads from sequence-based API.
9942 (gimple_convert): Likewise.
9943 (gimple_convert_to_ptrofftype): Likewise.
9944 (gimple_build_vector_from_val): Likewise.
9945 (gimple_build_vector): Likewise.
9946 (gimple_build_round_up): Likewise.
9947 * gimple-fold.cc (gimple_build_insert_seq): New helper.
9948 (gimple_build): Use it. Transition combined_fn and code_helper
9949 API parts.
9950 (gimple_convert): Transition to new worker API.
9951 (gimple_convert_to_ptrofftype): Likewise.
9952 (gimple_build_vector_from_val): Likewise.
9953 (gimple_build_vector): Likewise.
9954 (gimple_build_round_up): Likewise.
9955
9956 2022-05-16 Richard Biener <rguenther@suse.de>
9957
9958 * gimple-match.h (code_helper): Move class ...
9959 * tree.h (code_helper): ... here.
9960
9961 2022-05-16 Martin Liska <mliska@suse.cz>
9962
9963 * opts-global.cc (write_langs): Add comment.
9964
9965 2022-05-16 Eric Botcazou <ebotcazou@adacore.com>
9966
9967 * dwarf2out.cc (loc_list_from_tree_1) <TRUTH_NOT_EXPR>: Do a logical
9968 instead of a bitwise negation.
9969 <COND_EXPR>: Swap the operands if the condition is TRUTH_NOT_EXPR.
9970
9971 2022-05-16 Martin Liska <mliska@suse.cz>
9972
9973 * attribs.cc (diag_attr_exclusions): Use ARRAY_SIZE.
9974 (decls_mismatched_attributes): Likewise.
9975 * builtins.cc (c_strlen): Likewise.
9976 * cfg.cc (DEF_BASIC_BLOCK_FLAG): Likewise.
9977 * common/config/aarch64/aarch64-common.cc (aarch64_option_init_struct): Likewise.
9978 * config/aarch64/aarch64-builtins.cc (aarch64_lookup_simd_builtin_type): Likewise.
9979 (aarch64_init_simd_builtin_types): Likewise.
9980 (aarch64_init_builtin_rsqrt): Likewise.
9981 * config/aarch64/aarch64.cc (is_madd_op): Likewise.
9982 * config/arm/arm-builtins.cc (arm_lookup_simd_builtin_type): Likewise.
9983 (arm_init_simd_builtin_types): Likewise.
9984 * config/avr/gen-avr-mmcu-texi.cc (mcus[ARRAY_SIZE): Likewise.
9985 (c_prefix): Likewise.
9986 (main): Likewise.
9987 * config/c6x/c6x.cc (N_SAVE_ORDER): Likewise.
9988 * config/darwin-c.cc (darwin_register_frameworks): Likewise.
9989 * config/gcn/mkoffload.cc (process_obj): Likewise.
9990 * config/i386/i386-builtins.cc (get_builtin_code_for_version): Likewise.
9991 (fold_builtin_cpu): Likewise.
9992 * config/m32c/m32c.cc (PUSHM_N): Likewise.
9993 * config/nvptx/mkoffload.cc (process): Likewise.
9994 * config/rs6000/driver-rs6000.cc (host_detect_local_cpu): Likewise.
9995 * config/s390/s390.cc (NR_C_MODES): Likewise.
9996 * config/tilepro/gen-mul-tables.cc (find_sequences): Likewise.
9997 (create_insn_code_compression_table): Likewise.
9998 * config/vms/vms.cc (NBR_CRTL_NAMES): Likewise.
9999 * diagnostic-format-json.cc (json_from_expanded_location): Likewise.
10000 * dwarf2out.cc (ARRAY_SIZE): Likewise.
10001 * genhooks.cc (emit_documentation): Likewise.
10002 (emit_init_macros): Likewise.
10003 * gimple-ssa-sprintf.cc (format_floating): Likewise.
10004 * gimple-ssa-warn-access.cc (memmodel_name): Likewise.
10005 * godump.cc (keyword_hash_init): Likewise.
10006 * hash-table.cc (hash_table_higher_prime_index): Likewise.
10007 * input.cc (for_each_line_table_case): Likewise.
10008 * ipa-free-lang-data.cc (free_lang_data): Likewise.
10009 * ipa-inline.cc (sanitize_attrs_match_for_inline_p): Likewise.
10010 * optc-save-gen.awk: Likewise.
10011 * spellcheck.cc (test_metric_conditions): Likewise.
10012 * tree-vect-slp-patterns.cc (sizeof): Likewise.
10013 (ARRAY_SIZE): Likewise.
10014 * tree.cc (build_common_tree_nodes): Likewise.
10015
10016 2022-05-16 Martin Liska <mliska@suse.cz>
10017
10018 * opts-global.cc (write_langs): Allocate at least one byte.
10019
10020 2022-05-16 Richard Biener <rguenther@suse.de>
10021
10022 * match.pd (A cmp B ? A : B -> min/max): New patterns
10023 carried over from fold_cond_expr_with_comparison.
10024
10025 2022-05-16 liuhongt <hongtao.liu@intel.com>
10026
10027 PR target/105587
10028 * config/i386/i386-expand.cc
10029 (expand_vec_perm_pslldq_psrldq_por): Fail when (d->perm[i] ==
10030 d->perm[i-1] + 1) && d->perm[i] == nelt && start != -1.
10031
10032 2022-05-15 Uroš Bizjak <ubizjak@gmail.com>
10033
10034 * config/i386/i386.md: Remove constraints when used with
10035 const_int_operand, const0_operand, const_1_operand, constm1_operand,
10036 const8_operand, const128_operand, const248_operand, const123_operand,
10037 const2367_operand, const1248_operand, const359_operand,
10038 const_4_or_8_to_11_operand, const48_operand, const_0_to_1_operand,
10039 const_0_to_3_operand, const_0_to_4_operand, const_0_to_5_operand,
10040 const_0_to_7_operand, const_0_to_15_operand, const_0_to_31_operand,
10041 const_0_to_63_operand, const_0_to_127_operand, const_0_to_255_operand,
10042 const_0_to_255_mul_8_operand, const_1_to_31_operand,
10043 const_1_to_63_operand, const_2_to_3_operand, const_4_to_5_operand,
10044 const_4_to_7_operand, const_6_to_7_operand, const_8_to_9_operand,
10045 const_8_to_11_operand, const_8_to_15_operand, const_10_to_11_operand,
10046 const_12_to_13_operand, const_12_to_15_operand, const_14_to_15_operand,
10047 const_16_to_19_operand, const_16_to_31_operand, const_20_to_23_operand,
10048 const_24_to_27_operand and const_28_to_31_operand.
10049 * config/i386/mmx.md: Ditto.
10050 * config/i386/sse.md: Ditto.
10051 * config/i386/subst.md: Ditto.
10052 * config/i386/sync.md: Ditto.
10053
10054 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
10055 Uroš Bizjak <ubizjak@gmail.com>
10056
10057 * config/i386/sse.md (vec_cmpeqv2div2di): Enable for TARGET_SSE2.
10058 For !TARGET_SSE4_1, expand as a V4SI vector comparison, followed
10059 by a pshufd and pand.
10060 (vec_cmpeqv1tiv1ti): New define_expand implementing V1TImode
10061 vector equality as a V2DImode vector comparison (see above),
10062 followed by a pshufd and pand.
10063
10064 2022-05-13 Roger Sayle <roger@nextmovesoftware.com>
10065
10066 PR tree-optimization/83907
10067 * tree-ssa-strlen.cc (handle_builtin_memset): Record a strinfo
10068 for memset with an constant char value.
10069 (handle_store): Improved handling of stores with a first byte
10070 of zero, but not storing_all_zeros_p.
10071
10072 2022-05-13 Philipp Tomsich <philipp.tomsich@vrull.eu>
10073 Manolis Tsamis <manolis.tsamis@vrull.eu>
10074
10075 * config/riscv/riscv.h (CLZ_DEFINED_VALUE_AT_ZERO): Implement.
10076 (CTZ_DEFINED_VALUE_AT_ZERO): Same.
10077 * doc/sourcebuild.texi: add documentation for RISC-V specific
10078 test target keywords
10079
10080 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10081
10082 PR tree-optimization/105597
10083 * range-op.cc (operator_minus::lhs_op1_relation): Use op1 instead
10084 of the lhs and make sure it is not undefined.
10085
10086 2022-05-13 Sebastian Pop <spop@amazon.com>
10087
10088 PR target/105162
10089 * config/aarch64/aarch64-protos.h (atomic_ool_names): Increase dimension
10090 of str array.
10091 * config/aarch64/aarch64.cc (aarch64_atomic_ool_func): Call
10092 memmodel_from_int and handle MEMMODEL_SYNC_*.
10093 (DEF0): Add __aarch64_*_sync functions.
10094
10095 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10096
10097 * gimple-range-fold.cc (fold_using_range::range_of_phi): Use new VREL_*
10098 enumerated values.
10099 * gimple-range-path.cc (maybe_register_phi_relation): Ditto.
10100 * range-op.cc (*::lhs_op1_relation): Return relation_kind, and use
10101 new VREL enumerated values.
10102 (*::lhs_op2_relation): Ditto.
10103 (*::op1_op2_relation): Ditto.
10104 (*::fold_range): Use new VREL enumerated values.
10105 (minus_op1_op2_relation_effect): Ditto.
10106 (range_relational_tests): Ditto.
10107 * range-op.h (fold_range, op1_range, op2_range): Use VREL_VARYING.
10108 (lhs_op1_relation, lhs_op2_relation, op1_op2_relation): Return
10109 relation_kind.
10110 (*_op1_op2_relation): Return relation_kind.
10111 (relop_early_resolve): Use VREL_UNDEFINED.
10112 * value-query.cc (range_query::query_relation): Use VREL_VARYING.
10113 * value-relation.cc (VREL_LAST): Change enumerated value.
10114 (vrel_range_assert): Delete.
10115 (print_relation): Remove range assert.
10116 (rr_negate_table): Adjust table to use new enumerated values..
10117 (relation_negate): Remove range assert.
10118 (rr_swap_table): Adjust.
10119 (relation_swap): Remove range assert.
10120 (rr_intersect_table): Adjust.
10121 (relation_intersect): Remove range assert.
10122 (rr_union_table): Adjust.
10123 (relation_union): Remove range assert.
10124 (rr_transitive_table): Adjust.
10125 (relation_transitive): Remove range assert.
10126 (equiv_oracle::query_relation): Use new VREL enumerated values.
10127 (equiv_oracle::register_relation): Ditto.
10128 (relation_oracle::register_stmt): Ditto.
10129 (dom_oracle::set_one_relation): Ditto.
10130 (dom_oracle::register_transitives): Ditto.
10131 (dom_oracle::query_relation): Ditto.
10132 (path_oracle::register_relation): Ditto.
10133 (path_oracle::query_relation): Ditto.
10134 * value-relation.h (enum relation_kind_t): New relation_kind.
10135 (*_op1_op2_relation): Adjust prototypes.
10136
10137 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10138
10139 * gimple-range-edge.cc (calc_switch_ranges): Check union return value.
10140 * value-range.cc (irange::legacy_verbose_union_): Add return value.
10141 (irange::irange_single_pair_union): New.
10142 (irange::irange_union): Add return value.
10143 * value-range.h (class irange): Adjust prototypes.
10144
10145 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10146
10147 * value-range.cc (irange::legacy_verbose_intersect): Add return value.
10148 (irange::irange_contains_p): New.
10149 (irange::irange_intersect): Add return value.
10150 * value-range.h (class irange): Adjust prototypes.
10151
10152 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10153
10154 * gimple-range-cache.cc (ranger_cache::get_global_range): Return the
10155 had_global value instead.
10156
10157 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10158
10159 PR tree-optimization/104547
10160 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Add
10161 the op1/op2 relation to the relation call.
10162 * range-op.cc (*::lhs_op1_relation): Add param.
10163 (*::lhs_op2_relation): Ditto.
10164 (operator_minus::lhs_op1_relation): New.
10165 (range_relational_tests): Add relation param.
10166 * range-op.h (lhs_op1_relation, lhs_op2_relation): Adjust prototype.
10167
10168 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10169
10170 * gimple-range.cc (gimple_ranger::register_side_effects): First check
10171 if the DEF should be exported as a global.
10172 * tree-vrp.cc (rvrp_folder::pre_fold_bb): Process PHI side effects,
10173 which will export globals.
10174 (execute_ranger_vrp): Remove call to export_global_ranges.
10175
10176 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10177
10178 * value-relation.cc (path_oracle::reset_path): Clear killing_defs.
10179
10180 2022-05-13 Andrew MacLeod <amacleod@redhat.com>
10181
10182 * gimple-range-cache.cc (ranger_cache::ranger_cache): Start with
10183 worlist truncated.
10184 (ranger_cache::entry_range): Add rfd_mode parameter.
10185 (ranger_cache::exit_range): Ditto.
10186 (ranger_cache::edge_range): New. Incorporate from range_on_edge.
10187 (ranger_cache::range_of_expr): Adjust call to entry_range.
10188 (ranger_cache::range_on_edge): Split to edge_range and call.
10189 (ranger_cache::fill_block_cache): Always invoke range_from_dom.
10190 (ranger_cache::range_from_dom): Make reentrant, add search mode, handle
10191 mutiple predecessors.
10192 (ranger_cache::update_to_nonnull): Adjust call to exit_range.
10193 * gimple-range-cache.h (ranger_cache): Add enum rfd_mode. Adjust
10194 prototypes.
10195
10196 2022-05-13 Alexandre Oliva <oliva@adacore.com>
10197
10198 * gimple-harden-conditionals.cc: Include sbitmap.h.
10199 (pass_harden_conditional_branches::execute): Skip new blocks.
10200 (pass_harden_compares::execute): Likewise.
10201
10202 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
10203
10204 PR target/105463
10205 * config/arm/mve.md (*movmisalign<mode>_mve_store): Use
10206 mve_memory_operand.
10207 (*movmisalign<mode>_mve_load): Likewise.
10208 * config/arm/vec-common.md (movmisalign<mode>): Convert to generator
10209 form...
10210 (@movmisalign<mode>): ... thus. Use generic predicates and then
10211 rework operands if they are not valid. For MVE rework to a
10212 narrower element size if the alignment is not high enough.
10213
10214 2022-05-13 Richard Earnshaw <rearnsha@arm.com>
10215
10216 * config/arm/arm.cc (mve_vector_mem_operand): Allow SP_REGNUM
10217 when there is no write-back. Fix use when strict is true.
10218
10219 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10220
10221 * config/xtensa/xtensa.h (TARGET_HAS_NO_HW_DIVIDE): New macro
10222 definition.
10223
10224 2022-05-13 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>
10225
10226 * config/xtensa/xtensa.md (extvsi, extvsi_internal, extzvsi,
10227 extzvsi_internal): Rename from extv, extv_internal, extzv and
10228 extzv_internal, respectively.
10229
10230 2022-05-13 Eric Botcazou <ebotcazou@adacore.com>
10231
10232 * tree-sra.cc (sra_modify_assign): Check that scalar storage order
10233 is the same on the LHS and RHS before rewriting one with the model
10234 of the other.
10235
10236 2022-05-13 Richard Biener <rguenther@suse.de>
10237
10238 * gimple-fold.cc (gimple_build): Adjust for new
10239 main API.
10240 * gimple-fold.h (gimple_build): New main APIs with
10241 iterator, insert direction and iterator update.
10242 (gimple_build): New forwarder template.
10243 (clear_padding_type_may_have_padding_p): Remove.
10244 (clear_type_padding_in_mask): Likewise.
10245 (arith_overflowed_p): Likewise.
10246 * fold-const.h (clear_padding_type_may_have_padding_p): Declare.
10247 (clear_type_padding_in_mask): Likewise.
10248 (arith_overflowed_p): Likewise.
10249 * tree-vect-generic.cc (gimplify_build3): Use main gimple_build API.
10250 (gimplify_build2): Likewise.
10251 (gimplify_build1): Likewise.
10252 * ubsan.cc (ubsan_expand_ptr_ifn): Likewise, avoid extra
10253 compare stmt.
10254 * gengtype.cc (open_base_files): Re-order includes.
10255 * builtins.cc: Re-order gimple-fold.h include.
10256 * calls.cc: Likewise.
10257 * cgraphbuild.cc: Likewise.
10258 * cgraphunit.cc: Likewise.
10259 * config/rs6000/rs6000-builtin.cc: Likewise.
10260 * config/rs6000/rs6000-call.cc: Likewise.
10261 * config/rs6000/rs6000.cc: Likewise.
10262 * config/s390/s390.cc: Likewise.
10263 * expr.cc: Likewise.
10264 * fold-const.cc: Likewise.
10265 * function-tests.cc: Likewise.
10266 * gimple-match-head.cc: Likewise.
10267 * gimple-range-fold.cc: Likewise.
10268 * gimple-ssa-evrp-analyze.cc: Likewise.
10269 * gimple-ssa-evrp.cc: Likewise.
10270 * gimple-ssa-sprintf.cc: Likewise.
10271 * gimple-ssa-warn-access.cc: Likewise.
10272 * gimplify.cc: Likewise.
10273 * graphite-isl-ast-to-gimple.cc: Likewise.
10274 * ipa-cp.cc: Likewise.
10275 * ipa-devirt.cc: Likewise.
10276 * ipa-prop.cc: Likewise.
10277 * omp-low.cc: Likewise.
10278 * pointer-query.cc: Likewise.
10279 * range-op.cc: Likewise.
10280 * tree-cfg.cc: Likewise.
10281 * tree-if-conv.cc: Likewise.
10282 * tree-inline.cc: Likewise.
10283 * tree-object-size.cc: Likewise.
10284 * tree-ssa-ccp.cc: Likewise.
10285 * tree-ssa-dom.cc: Likewise.
10286 * tree-ssa-forwprop.cc: Likewise.
10287 * tree-ssa-ifcombine.cc: Likewise.
10288 * tree-ssa-loop-ivcanon.cc: Likewise.
10289 * tree-ssa-math-opts.cc: Likewise.
10290 * tree-ssa-pre.cc: Likewise.
10291 * tree-ssa-propagate.cc: Likewise.
10292 * tree-ssa-reassoc.cc: Likewise.
10293 * tree-ssa-sccvn.cc: Likewise.
10294 * tree-ssa-strlen.cc: Likewise.
10295 * tree-ssa.cc: Likewise.
10296 * value-pointer-equiv.cc: Likewise.
10297 * vr-values.cc: Likewise.
10298
10299 2022-05-13 Alexandre Oliva <oliva@adacore.com>
10300
10301 PR rtl-optimization/105455
10302 * gimple-harden-conditionals.cc (insert_check_and_trap): Set
10303 probabilities for newly-conditional edges.
10304
10305 2022-05-13 liuhongt <hongtao.liu@intel.com>
10306
10307 PR tree-optimization/102583
10308 * tree-ssa-forwprop.cc (simplify_bitfield_ref): Extended to a
10309 contiguous stride in the VEC_PERM_EXPR.
10310
10311 2022-05-12 Richard Biener <rguenther@suse.de>
10312
10313 PR rtl-optimization/105577
10314 * dse.cc (rest_of_handle_dse): Make sure to purge dead EH
10315 edges before running fast DCE via df_analyze.
10316
10317 2022-05-12 Richard Biener <rguenther@suse.de>
10318
10319 PR tree-optimization/105562
10320 * tree-ssa-sccvn.cc (vn_reference_lookup_3): Disambiguate
10321 against all CLOBBER defs if there's not an obvious must-alias
10322 and we are not doing redundant store elimination.
10323 (vn_walk_cb_data::redundant_store_removal_p): New field.
10324 (vn_reference_lookup_pieces): Initialize it.
10325 (vn_reference_lookup): Add argument to specify if we are
10326 doing redundant store removal.
10327 (eliminate_dom_walker::eliminate_stmt): Specify we do.
10328 * tree-ssa-sccvn.h (vn_reference_lookup): Adjust.
10329
10330 2022-05-12 Haochen Jiang <haochen.jiang@intel.com>
10331
10332 PR target/104371
10333 * config/i386/sse.md (vi1avx2const): New define_mode_attr.
10334 (pxor/pcmpeqb/pmovmskb/cmp 0xffff to ptest splitter):
10335 New define_split pattern.
10336
10337 2022-05-12 Jakub Jelinek <jakub@redhat.com>
10338
10339 * gimplify.cc (gimplify_omp_depend): Don't build_fold_addr_expr
10340 if null_pointer_node.
10341 (gimplify_scan_omp_clauses): Likewise.
10342 * tree-pretty-print.cc (dump_omp_clause): Print null_pointer_node
10343 as omp_all_memory.
10344
10345 2022-05-11 Patrick Palka <ppalka@redhat.com>
10346
10347 * tree.h (TREE_VEC_BEGIN): Define.
10348 (TREE_VEC_END): Correct 'length' member access.
10349 (class tree_vec_range): Define.
10350
10351 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10352
10353 * config/rs6000/rs6000.md: Use wa instead of <Fv>.
10354
10355 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10356
10357 * config/rs6000/rs6000.md: Use d instead of <Ff>.
10358
10359 2022-05-11 Segher Boessenkool <segher@kernel.crashing.org>
10360
10361 * config/rs6000/constraints.md (register_constraint "f"): Use
10362 RS6000_CONSTRAINT_d.
10363 * config/rs6000/rs6000.cc (rs6000_debug_reg_global): Do not handle
10364 RS6000_CONSTRAINT_f.
10365 (rs6000_init_hard_regno_mode_ok): Ditto. Reorder and simplify a bit.
10366 * config/rs6000/rs6000.h (r6000_reg_class_enum): Delete
10367 RS6000_CONSTRAINT_d.
10368
10369 2022-05-11 Richard Biener <rguenther@suse.de>
10370
10371 * gimple-fold.h (gimple_build): Use variadic template
10372 functions for the gimple_build API forwarders without
10373 location_t argument.
10374
10375 2022-05-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
10376
10377 PR middle-end/70090
10378 * asan.cc (initialize_sanitizer_builtins): Register
10379 __builtin_dynamic_object_size if necessary.
10380
10381 2022-05-11 Richard Biener <rguenther@suse.de>
10382
10383 PR rtl-optimization/105559
10384 * cfgrtl.cc (delete_insn_and_edges): Only perform search to BB_END
10385 for non-debug insns.
10386
10387 2022-05-11 Richard Biener <rguenther@suse.de>
10388
10389 * generic-match-head.cc: Include tree-eh.h.
10390 * match.pd ((cond ...) cmp X): New simplification inspired
10391 by fold_binary_op_with_conditional_arg.
10392 (eq/ne (cmp ...) true/false): Likewise.
10393
10394 2022-05-11 Thomas Schwinge <thomas@codesourcery.com>
10395
10396 * doc/install.texi: Don't document '--with-hsa-runtime',
10397 '--with-hsa-runtime-include', '--with-hsa-runtime-lib'.
10398
10399 2022-05-11 Martin Liska <mliska@suse.cz>
10400
10401 PR other/105527
10402 * doc/install.texi: Document the configure option --with-zstd.
10403
10404 2022-05-11 Martin Liska <mliska@suse.cz>
10405
10406 * common/config/i386/cpuinfo.h (has_cpu_feature): Directly
10407 compute index in cpu_features2.
10408 (set_cpu_feature): Likewise.
10409 * config/i386/i386-builtins.cc (fold_builtin_cpu): Also remove
10410 loop for cpu_features2 and use NOP_EXPRs.
10411
10412 2022-05-11 Richard Biener <rguenther@suse.de>
10413
10414 PR bootstrap/105551
10415 * opts.cc (finish_options): Also disable var-tracking if
10416 !DWARF2_DEBUGGING_INFO.
10417
10418 2022-05-11 liuhongt <hongtao.liu@intel.com>
10419
10420 PR target/104915
10421 * config/i386/sse.md (*vec_set<mode>_0_zero_extendhi): New
10422 pre_reload define_insn_and_split.
10423 (*vec_setv2di_0_zero_extendhi_1): Ditto.
10424 (*vec_set<mode>_0_zero_extendsi): Ditto.
10425 (*vec_setv2di_0_zero_extendsi_1): Ditto.
10426 (ssewvecmode): New mode attr.
10427 (ssewvecmodelower): Ditto.
10428 (ssepackmodelower): Ditto.
10429
10430 2022-05-11 Kewen Lin <linkw@linux.ibm.com>
10431
10432 * config/rs6000/constraints.md (register constraint v): Use
10433 rs6000_constraints[RS6000_CONSTRAINT_v] instead of ALTIVEC_REGS.
10434
10435 2022-05-11 Martin Liska <mliska@suse.cz>
10436
10437 PR target/105355
10438 * config/riscv/riscv.opt: Remove Separate from
10439 -msmall-data-limit=.
10440 * optc-gen.awk: Report error for the described situation.
10441 * gcc.cc: Use Separate syntax.
10442 * opts.cc (gen_command_line_string): Change option name.
10443
10444 2022-05-11 Haochen Gui <guihaoc@gcc.gnu.org>
10445
10446 PR target/105414
10447 * match.pd (minmax): Skip constant folding for fmin/fmax when both
10448 arguments are sNaN or one is sNaN and another is NaN.
10449
10450 2022-05-10 Jakub Jelinek <jakub@redhat.com>
10451
10452 PR tree-optimization/105528
10453 * gimple-isel.cc (gimple_expand_vec_set_expr): After gsi_remove
10454 set *gsi to gsi_for_stmt (ass_stmt). Fix up function comment.
10455
10456 2022-05-10 Segher Boessenkool <segher@kernel.crashing.org>
10457
10458 * doc/md.texi (Defining Mode Iterators): Correct example replacement
10459 text.
10460
10461 2022-05-10 Maciej W. Rozycki <macro@embecosm.com>
10462
10463 * config/riscv/riscv.md (UNSPEC_FMIN, UNSPEC_FMAX): New
10464 constants.
10465 (fmin<mode>3, fmax<mode>3): New insns.
10466
10467 2022-05-10 Richard Biener <rguenther@suse.de>
10468
10469 * tree-if-conv.cc (fold_build_cond_expr): Use
10470 match-and-simplify to simplify the condition.
10471 (ifcvt_follow_ssa_use_edges): Remove.
10472 (predicate_scalar_phi): Use follow_all_ssa_edges.
10473
10474 2022-05-10 Thomas Schwinge <thomas@codesourcery.com>
10475
10476 PR middle-end/100400
10477 * omp-oacc-kernels-decompose.cc
10478 (visit_loops_in_gang_single_region) <GIMPLE_OMP_FOR>: Explicitly
10479 call 'internal_error'.
10480
10481 2022-05-10 Richard Biener <rguenther@suse.de>
10482
10483 PR middle-end/105537
10484 * toplev.cc (process_options): Move flag_var_tracking
10485 handling ...
10486 * opts.cc (finish_options): ... here.
10487
10488 2022-05-10 Martin Liska <mliska@suse.cz>
10489
10490 * basic-block.h (struct basic_block_d): Use void *
10491 instead PTR.
10492 * cfgloop.h: Likewise.
10493 * cgraph.h: Likewise.
10494 * gengtype-state.cc (state_ident_by_name): Likewise.
10495 (record_type): Likewise.
10496 (read_state_already_seen_type): Likewise.
10497 * gengtype.cc (dump_type): Likewise.
10498 (input_file_by_name): Likewise.
10499 (main): Likewise.
10500 * ggc-common.cc (ggc_cleared_alloc_ptr_array_two_args): Likewise.
10501 * ipa-utils.h (struct ipa_dfs_info): Likewise.
10502 * plugin.cc (htab_hash_plugin): Likewise.
10503
10504 2022-05-10 Richard Biener <rguenther@suse.de>
10505
10506 * flags.h (dwarf_debuginfo_p): Add opts argument, guard
10507 API with !GENERATOR_FILE.
10508 * opts.cc (global_options): Poison.
10509 (global_options_set): Likewise.
10510 (finish_options): Refer to options via opts.
10511
10512 2022-05-10 Uroš Bizjak <ubizjak@gmail.com>
10513 Roger Sayle <roger@nextmovesoftware.com>
10514
10515 * config/i386/i386.md (*testqi_1_maybe_si): Prefer shorter SImode
10516 alternative when optimizing for size and the immediate operand is
10517 const_0_to_127_operand.
10518 (*andqi_2_maybe_si): Likewise.
10519 * config/i386/predicates.md (const_0_to_127_operand): New predicate.
10520
10521 2022-05-10 Roger Sayle <roger@nextmovesoftware.com>
10522
10523 * tree-chrec.cc (chrec_apply): Attempt to fold the linear chrec
10524 "{a, +, a} (x-1)" as "a*x", as the number of loop iterations, x-1,
10525 can't be negative.
10526
10527 2022-05-10 Eric Botcazou <ebotcazou@adacore.com>
10528
10529 PR target/105292
10530 * config/sparc/sparc.cc (sparc_vectorize_vec_perm_const): Return
10531 true only for 8-byte vector modes.
10532
10533 2022-05-10 Siddhesh Poyarekar <siddhesh@gotplt.org>
10534
10535 PR middle-end/70090
10536 * ubsan.cc (ubsan_expand_objsize_ifn): Allow non-constant SIZE.
10537 (instrument_object_size): Get dynamic object size expression.
10538
10539 2022-05-10 Jiufu Guo <guojiufu@linux.ibm.com>
10540
10541 PR preprocessor/101168
10542 * config/rs6000/rs6000-c.cc (rs6000_macro_to_expand):
10543 Avoid empty identifier.
10544
10545 2022-05-09 Qing Zhao <qing.zhao@oracle.com>
10546
10547 PR target/101891
10548 * config/i386/i386.cc (zero_call_used_regno_mode): use V2SImode
10549 as a generic MMX mode instead of V4HImode.
10550 (zero_all_mm_registers): Use SET to zero instead of MOV for
10551 zeroing scratch registers.
10552 (ix86_zero_call_used_regs): Likewise.
10553
10554 2022-05-09 liuhongt <hongtao.liu@intel.com>
10555
10556 PR target/105354
10557 * config/i386/i386-expand.cc
10558 (expand_vec_perm_pslldq_psrldq_por): New function.
10559 (ix86_expand_vec_perm_const_1): Try
10560 expand_vec_perm_pslldq_psrldq_por for both 3-instruction and
10561 4/5-instruction sequence.
10562
10563 2022-05-09 Martin Liška <mliska@suse.cz>
10564
10565 * basic-block.h (STATIC_ASSERT): Use normal STATIC_ASSERT.
10566 * system.h (STATIC_ASSERT): Define as static_assert for C++
10567 and fallback to array index in C.
10568
10569 2022-05-09 Richard Biener <rguenther@suse.de>
10570
10571 PR tree-optimization/105517
10572 * tree-ssa-sccvn.cc (vn_reference_lookup): Make sure the accumulated
10573 offset can be represented in the POINTER_PLUS_EXPR IL.
10574 (vn_reference_insert): Likewise.
10575 * poly-int.h (sext_hwi): Add poly version of sext_hwi.
10576
10577 2022-05-09 Richard Biener <rguenther@suse.de>
10578
10579 * match.pd: Remove #if GIMPLE guards around ! using patterns.
10580
10581 2022-05-09 liuhongt <hongtao.liu@intel.com>
10582
10583 PR target/105072
10584 * config/i386/sse.md (*sse4_1_<code>v2qiv2di2<mask_name>_1):
10585 New define_insn.
10586 (*sse4_1_zero_extendv2qiv2di2_2): New pre_reload
10587 define_insn_and_split.
10588
10589 2022-05-09 Alex Coplan <alex.coplan@arm.com>
10590
10591 * cgraph.cc (cgraph_node::get_create): Don't dump if the current
10592 symtab state is PARSING.
10593
10594 2022-05-09 Martin Liska <mliska@suse.cz>
10595
10596 * system.h (LIKELY): Define.
10597 (UNLIKELY): Likewise.
10598 * domwalk.cc (sort_bbs_postorder): Use {,UN}LIKELY
10599 macros.
10600 * dse.cc (set_position_unneeded): Likewise.
10601 (set_all_positions_unneeded): Likewise.
10602 (any_positions_needed_p): Likewise.
10603 (all_positions_needed_p): Likewise.
10604 * expmed.cc (flip_storage_order): Likewise.
10605 * genmatch.cc (dt_simplify::gen_1): Likewise.
10606 * ggc-common.cc (gt_pch_save): Likewise.
10607 * print-rtl.cc: Likewise.
10608 * rtl-iter.h (T>::array_type::~array_type): Likewise.
10609 (T>::next): Likewise.
10610 * rtl-ssa/internals.inl: Likewise.
10611 * rtl-ssa/member-fns.inl: Likewise.
10612 * rtlanal.cc (T>::add_subrtxes_to_queue): Likewise.
10613 (rtx_properties::try_to_add_dest): Likewise.
10614 * rtlanal.h (growing_rtx_properties::repeat): Likewise.
10615 (vec_rtx_properties_base::~vec_rtx_properties_base): Likewise.
10616 * simplify-rtx.cc (simplify_replace_fn_rtx): Likewise.
10617 * sort.cc (likely): Likewise.
10618 (mergesort): Likewise.
10619 * wide-int.h (wi::eq_p): Likewise.
10620 (wi::ltu_p): Likewise.
10621 (wi::cmpu): Likewise.
10622 (wi::bit_and): Likewise.
10623 (wi::bit_and_not): Likewise.
10624 (wi::bit_or): Likewise.
10625 (wi::bit_or_not): Likewise.
10626 (wi::bit_xor): Likewise.
10627 (wi::add): Likewise.
10628 (wi::sub): Likewise.
10629
10630 2022-05-09 Kito Cheng <kito.cheng@sifive.com>
10631
10632 * config/riscv/arch-canonicalize: Handle g correctly.
10633
10634 2022-05-07 Marek Polacek <polacek@redhat.com>
10635
10636 PR c++/101833
10637 PR c++/47634
10638 * tree-core.h (struct attribute_spec): Update comment for HANDLER.
10639
10640 2022-05-06 Jason Merrill <jason@redhat.com>
10641
10642 * diagnostic-color.cc: Add fnname and targs color entries.
10643 * doc/invoke.texi: Document them.
10644
10645 2022-05-06 Jason Merrill <jason@redhat.com>
10646
10647 * vec.h (vec::iterate): Fix comment.
10648
10649 2022-05-06 Michael Meissner <meissner@linux.ibm.com>
10650
10651 PR target/102059
10652 * config/rs6000/rs6000.cc (rs6000_can_inline_p): Ignore -mpower8-fusion
10653 and -mpower10-fusion options for inlining purposes.
10654
10655 2022-05-06 Christophe Lyon <christophe.lyon@arm.com>
10656
10657 * config/aarch64/iterators.md (GPF_TF_F16): Delete.
10658
10659 2022-05-06 Marcel Vollweiler <marcel@codesourcery.com>
10660
10661 * omp-low.cc (omp_runtime_api_call): Added target_is_accessible to
10662 omp_runtime_apis array.
10663
10664 2022-05-06 Hafiz Abid Qadeer <abidh@codesourcery.com>
10665
10666 * omp-low.cc (omp_maybe_offloaded_ctx): New prototype.
10667 (scan_sharing_clauses): Check a restriction on allocate clause.
10668
10669 2022-05-05 Sandra Loosemore <sandra@codesourcery.com>
10670
10671 * gimplify.cc (gimplify_omp_for): Update messages for SCHEDULED
10672 and ORDERED clause conflict errors. Add check for GRAINSIZE and
10673 NUM_TASKS on TASKLOOP.
10674
10675 2022-05-05 Martin Liska <mliska@suse.cz>
10676
10677 * genautomata.cc (create_composed_state): Remove dead code.
10678 * graphite-poly.cc (print_pdrs): Likewise.
10679 * lto-wrapper.cc (run_gcc): Likewise.
10680 * tree-switch-conversion.cc (switch_decision_tree::balance_case_nodes):
10681 Likewise.
10682
10683 2022-05-05 Martin Liska <mliska@suse.cz>
10684
10685 * tree-profile.cc (gimple_gen_ic_profiler): Prefix names with
10686 PROF_*.
10687 (gimple_gen_time_profiler): Likewise.
10688
10689 2022-05-05 Martin Liska <mliska@suse.cz>
10690
10691 * value-prof.cc (stream_out_histogram_value): Remove sanity
10692 checking.
10693
10694 2022-05-05 Richard Biener <rguenther@suse.de>
10695
10696 PR tree-optimization/104162
10697 * tree-ssa-sccvn.cc (vn_reference_lookup): Handle
10698 &MEM[_1 + 5].a[i] like a POINTER_PLUS_EXPR if the offset
10699 becomes invariant.
10700 (vn_reference_insert): Likewise.
10701
10702 2022-05-05 Richard Biener <rguenther@suse.de>
10703
10704 * tree-core.h (tree_real_cst::real_cst_ptr): Remove pointer
10705 to real_value field.
10706 (tree_real_cst::value): Add real_value field.
10707 * tree.h (TREE_REAL_CST_PTR): Adjust.
10708 * tree.cc (build_real): Remove separate allocation.
10709 * tree-streamer-in.cc (unpack_ts_real_cst_value_fields):
10710 Likewise.
10711
10712 2022-05-05 Richard Biener <rguenther@suse.de>
10713
10714 * tree-ssa-ifcombine.cc (bb_no_side_effects_p): Avoid executing
10715 divisions with undefined overflow unconditionally.
10716 (pass_tree_ifcombine::execute): Rewrite stmts with undefined
10717 overflow to defined.
10718
10719 2022-05-05 Richard Biener <rguenther@suse.de>
10720
10721 PR tree-optimization/105484
10722 * gimple-isel.cc (gimple_expand_vec_set_expr): Clean EH, return
10723 whether the CFG changed.
10724 (gimple_expand_vec_exprs): When the CFG changed, clean it up.
10725
10726 2022-05-05 Richard Biener <rguenther@suse.de>
10727
10728 PR tree-optimization/104595
10729 * tree-vect-patterns.cc (vect_recog_bool_pattern): For
10730 COND_EXPR do not fail if check_bool_pattern returns false.
10731
10732 2022-05-04 Tobias Burnus <tobias@codesourcery.com>
10733
10734 * omp-low.cc (lower_omp_target): Fix use_device_{addr,ptr} with list
10735 item that is in an outer data-sharing clause.
10736
10737 2022-05-04 Richard Biener <rguenther@suse.de>
10738
10739 PR tree-optimization/104658
10740 * tree-vect-slp.cc (vect_slp_convert_to_external): Do not
10741 create VECTOR_BOOLEAN_TYPE_P extern defs. Reset the vector
10742 type on nodes we promote.
10743 (vectorizable_bb_reduc_epilogue): Deal with externalized
10744 root.
10745 * tree-vect-stmts.cc (vect_maybe_update_slp_op_vectype): Do
10746 not allow VECTOR_BOOLEAN_TYPE_P extern defs.
10747
10748 2022-05-04 Richard Biener <rguenther@suse.de>
10749
10750 PR tree-optimization/103116
10751 * tree-vect-stmts.cc (get_group_load_store_type): Handle the
10752 case we need peeling for gaps even though GROUP_GAP is zero.
10753
10754 2022-05-04 Martin Liska <mliska@suse.cz>
10755
10756 * gengtype-state.cc (read_a_state_token): Remove dead code.
10757 * ipa-profile.cc (ipa_profile_read_summary_section): Likewise.
10758
10759 2022-05-04 Richard Biener <rguenther@suse.de>
10760
10761 * gimplify.cc (gimplify_init_constructor): First gimplify,
10762 then simplify the result to a VECTOR_CST.
10763
10764 2022-05-04 Jakub Jelinek <jakub@redhat.com>
10765
10766 * genconditions.cc (write_conditions): Append a { nullptr, -1 }
10767 element at the end of insn_conditions.
10768 (write_writer): Use ARRAY_SIZE (insn_conditions) - 1 instead of
10769 ARRAY_SIZE (insn_conditions).
10770
10771 2022-05-04 Christophe Lyon <christophe.lyon@arm.com>
10772
10773 PR target/104662
10774 * config/arm/arm.cc (simd_valid_immediate): Exit when input is a
10775 vector of booleans and MVE is not enabled.
10776
10777 2022-05-04 Richard Biener <rguenther@suse.de>
10778
10779 PR debug/105158
10780 * tree-cfgcleanup.cc (move_debug_stmts_from_forwarder):
10781 Move debug stmts to the predecessor if moving to the
10782 destination is not possible.
10783 (remove_forwarder_block): Adjust.
10784 (remove_forwarder_block_with_phi): Likewise.
10785
10786 2022-05-03 Roger Sayle <roger@nextmovesoftware.com>
10787
10788 PR tree-optimization/102950
10789 * range-op.cc (wi_optimize_signed_bitwise_op): New function to
10790 determine bounds of bitwise operations on signed types.
10791 (operator_bitwise_and::wi_fold): Call the above function.
10792 (operator_bitwise_or::wi_fold): Likewise.
10793 (operator_bitwise_xor::wi_fold): Likewise. Additionally, the
10794 result can't be zero if the operands can't be equal.
10795
10796 2022-05-03 Iain Sandoe <iain@sandoe.co.uk>
10797
10798 * config/darwin.cc (darwin_label_is_anonymous_local_objc_name): Make
10799 protocol class methods linker-visible.
10800
10801 2022-05-03 Uroš Bizjak <ubizjak@gmail.com>
10802
10803 PR target/105079
10804 * config/i386/sse.md (*vec_extract<mode>_0_mem): New pre-reload
10805 define_insn_and_split pattern.
10806
10807 2022-05-03 Richard Biener <rguenther@suse.de>
10808
10809 PR middle-end/105083
10810 * tree-scalar-evolution.cc (scev_initialize): Verify we
10811 have appropriate loop state.
10812 * tree-ssa-dce.cc (perform_tree_ssa_dce): Re-order SCEV and
10813 loop init and finalization.
10814
10815 2022-05-03 Richard Biener <rguenther@suse.de>
10816
10817 PR middle-end/105461
10818 * opts.cc (finish_options): Match the condition to
10819 disable flag_var_tracking to that of process_options.
10820
10821 2022-05-03 Richard Biener <rguenther@suse.de>
10822
10823 * opts.cc: #undef OPTIONS_SET_P.
10824 (finish_options): Use opts_set instead of OPTIONS_SET_P.
10825
10826 2022-05-03 Richard Biener <rguenther@suse.de>
10827
10828 PR tree-optimization/105394
10829 * tree-vect-generic.cc (expand_vector_condition): Adjust
10830 comp_width for non-integer mode masks as well.
10831
10832 2022-05-03 Marcel Vollweiler <marcel@codesourcery.com>
10833
10834 * omp-low.cc (omp_runtime_api_call): Added get_mapped_ptr to
10835 omp_runtime_apis array.
10836
10837 2022-05-02 Richard Biener <rguenther@suse.de>
10838
10839 * tree-scalar-evolution.cc (expression_expensive_p):
10840 Never consider mismatched calls as cheap.
10841
10842 2022-05-02 Richard Biener <rguenther@suse.de>
10843
10844 PR tree-optimization/104240
10845 * tree-vect-slp.cc (op1_op0_map): New.
10846 (vect_get_operand_map): Handle compares.
10847 (vect_build_slp_tree_1): Support swapped operands for
10848 tcc_comparison.
10849
10850 2022-05-02 Jakub Jelinek <jakub@redhat.com>
10851
10852 PR debug/105415
10853 * cfgexpand.cc (expand_debug_expr): Don't make_decl_rtl_for_debug
10854 if there is no symtab node for the VAR_DECL.
10855
10856 2022-05-02 Sebastian Huber <sebastian.huber@embedded-brains.de>
10857
10858 * gcov-io.cc (gcov_rewrite): Clear the file error status.
10859
10860 2022-05-02 Richard Biener <rguenther@suse.de>
10861
10862 PR tree-optimization/105437
10863 * tree-vect-slp.cc (vect_schedule_slp_node): Handle the
10864 case where last_stmt alters control flow.
10865
10866 2022-05-02 Richard Biener <rguenther@suse.de>
10867
10868 * dojump.cc (do_jump): Use CASE_CONVERT.
10869 * tree-ssa-dom.cc (edge_info::derive_equivalences): Likewise.
10870
10871 2022-05-02 Jakub Jelinek <jakub@redhat.com>
10872
10873 * system.h: Include initializer_list.
10874
10875 2022-05-01 Segher Boessenkool <segher@kernel.crashing.org>
10876
10877 * config/rs6000/constraints.md (Y constraint): Fix comment.
10878
10879 2022-05-01 Aldy Hernandez <aldyh@redhat.com>
10880
10881 * tree-ssanames.cc (set_range_info): Denormalize VR_VARYING to
10882 VR_RANGE before passing a piecewise range to set_range_info_raw.
10883
10884 2022-04-30 Patrick Palka <ppalka@redhat.com>
10885
10886 * gengtype.cc (adjust_field_tree_exp): Remove.
10887 (adjust_field_type): Don't handle the "tree_exp" special attribute.
10888 * tree-core.h (struct tree_exp): Remove "special" and "desc"
10889 attributes. Add "length" attribute.
10890
10891 2022-04-29 Martin Jambor <mjambor@suse.cz>
10892
10893 PR ipa/100413
10894 * cgraph.cc (cgraph_node::remove): Release body of the node this
10895 is clone_of if appropriate.
10896
10897 2022-04-29 Uroš Bizjak <ubizjak@gmail.com>
10898
10899 PR target/51954
10900 * config/i386/i386.md (adcl/neg -> sbb peephole): New peephole2.
10901
10902 2022-04-29 Richard Biener <rguenther@suse.de>
10903
10904 * gimple-expr.cc (is_gimple_condexpr): Adjust comment.
10905 (canonicalize_cond_expr_cond): Move here from gimple.cc,
10906 allow both COND_EXPR and GIMPLE_COND forms.
10907 * gimple-expr.h (canonicalize_cond_expr_cond): Declare.
10908 * gimple.cc (canonicalize_cond_expr_cond): Remove here.
10909 * gimple.h (canonicalize_cond_expr_cond): Likewise.
10910 * gimple-loop-versioning.cc (loop_versioning::version_loop):
10911 Use is_gimple_condexpr_for_cond.
10912 * tree-parloops.cc (gen_parallel_loop): Likewise.
10913 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Check for
10914 a proper cond expr after canonicalize_cond_expr_cond.
10915 Use is_gimple_condexpr_for_cond where appropriate.
10916 * tree-ssa-loop-manip.cc (determine_exit_conditions): Likewise.
10917 * tree-vect-loop-manip.cc (slpeel_add_loop_guard): Likewise.
10918
10919 2022-04-29 Richard Biener <rguenther@suse.de>
10920
10921 * gimple-iterator.h (gsi_after_labels): Add overload for
10922 gimple_seq.
10923 (gsi_start_1): Rename to gsi_start and take a reference.
10924 (gsi_last_1): Likewise.
10925 * gimple-iterator.cc (gsi_for_stmt): Use gsi_start.
10926 * omp-low.cc (lower_rec_input_clauses): Likewise.
10927 (lower_omp_scan): Likewise.
10928
10929 2022-04-29 Richard Biener <rguenther@suse.de>
10930
10931 PR tree-optimization/105431
10932 * tree-ssa-math-opts.cc (powi_as_mults_1): Make n unsigned.
10933 (powi_as_mults): Use absu_hwi.
10934 (gimple_expand_builtin_powi): Remove now pointless n != -n
10935 check.
10936
10937 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
10938
10939 * range-op.cc (empty_range_varying): Move to range-op.h.
10940 (range_true): Move to range.h.
10941 (range_false): Same.
10942 (range_true_and_false): Same.
10943 (enum bool_range_state): Move to range-op.h.
10944 (relop_early_resolve): Same.
10945 (operator_equal::op1_op2_relation): Abstract code to...
10946 (equal_op1_op2_relation): ...here.
10947 (operator_not_equal::op1_op2_relation): Abstract code to...
10948 (not_equal_op1_op2_relation): ...here.
10949 (operator_lt::op1_op2_relation): Abstract code to...
10950 (lt_op1_op2_relation): ...here.
10951 (operator_le::op1_op2_relation): Abstract code to...
10952 (le_op1_op2_relation): ...here.
10953 (operator_gt::op1_op2_relation): Abstract code to...
10954 (gt_op1_op2_relation): ...here.
10955 (operator_ge::op1_op2_relation): Abstract code to...
10956 (ge_op1_op2_relation): ...here.
10957 (class range_op_table): Move to range-op.h.
10958 * range-op.h (equal_op1_op2_relation): Moved from range-op.cc.
10959 (not_equal_op1_op2_relation): Same.
10960 (lt_op1_op2_relation): Same.
10961 (le_op1_op2_relation): Same.
10962 (gt_op1_op2_relation): Same.
10963 (ge_op1_op2_relation): Same.
10964 (enum bool_range_state): Same.
10965 (get_bool_state): Same.
10966 (empty_range_varying): Same.
10967 (relop_early_resolve): Same.
10968 (class range_op_table): Same.
10969 * range.h (range_true): Same.
10970 (range_false): Same.
10971 (range_true_and_false): Same.
10972
10973 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
10974
10975 * gimple-fold.cc (size_must_be_zero_p): Use reference
10976 instead of pointer
10977 * gimple-ssa-evrp-analyze.cc
10978 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename
10979 intersect to legacy_verbose_intersect.
10980 * ipa-cp.cc (ipcp_vr_lattice::meet_with_1): Use reference instead
10981 of pointer.
10982 * tree-ssa-dom.cc (dom_jt_simplifier::simplify): Use value_range
10983 instead of value_range_equiv.
10984 * tree-vrp.cc (extract_range_from_plus_minus_expr): Use reference
10985 instead of pointer.
10986 (find_case_label_range): Same.
10987 * value-range-equiv.cc (value_range_equiv::intersect): Rename to...
10988 (value_range_equiv::legacy_verbose_intersect): ...this.
10989 (value_range_equiv::union_): Rename to...
10990 (value_range_equiv::legacy_verbose_union_): ...this.
10991 * value-range-equiv.h (class value_range_equiv): Rename union and
10992 intersect to legacy_verbose_{intersect,union}.
10993 * value-range.cc (irange::union_): Rename to...
10994 (irange::legacy_verbose_union_): ...this.
10995 (irange::intersect): Rename to...
10996 (irange::legacy_verbose_intersect): ...this.
10997 * value-range.h (irange::union_): Rename union_ to
10998 legacy_verbose_union.
10999 (irange::intersect): Rename intersect to legacy_verbose_intersect.
11000 * vr-values.cc (vr_values::update_value_range): Same.
11001 (vr_values::extract_range_for_var_from_comparison_expr): Same.
11002 (vr_values::extract_range_from_cond_expr): Rename union_ to
11003 legacy_verbose_union.
11004 (vr_values::extract_range_from_phi_node): Same.
11005
11006 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11007
11008 * gimple-ssa-evrp-analyze.cc
11009 (evrp_range_analyzer::set_ssa_range_info): Use *range_info methods
11010 that take a range.
11011 * gimple-ssa-sprintf.cc (try_substitute_return_value): Same.
11012 * ipa-prop.cc (ipcp_update_vr): Same.
11013 * tree-inline.cc (remap_ssa_name): Same.
11014 * tree-ssa-copy.cc (fini_copy_prop): Same.
11015 * tree-ssa-math-opts.cc (optimize_spaceship): Same.
11016 * tree-ssa-phiopt.cc (replace_phi_edge_with_variable): Same.
11017 * tree-ssa-pre.cc (insert_into_preds_of_block): Same.
11018 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Same.
11019 * tree-ssa-strlen.cc (set_strlen_range): Same.
11020 (strlen_pass::handle_builtin_string_cmp): Same.
11021 * tree-ssanames.cc (set_range_info): Make static.
11022 (duplicate_ssa_name_range_info): Make static and add a new variant
11023 calling the static.
11024 * tree-ssanames.h (set_range_info): Remove version taking wide ints.
11025 (duplicate_ssa_name_range_info): Remove version taking a
11026 range_info_def and replace with a version taking SSA names.
11027 * tree-vect-loop-manip.cc (vect_gen_vector_loop_niters): Use *range_info methods
11028 that take a range.
11029 (vect_do_peeling): Same.
11030 * tree-vrp.cc (vrp_asserts::remove_range_assertions): Same.
11031 * vr-values.cc (simplify_truth_ops_using_ranges): Same.
11032
11033 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11034
11035 * value-range.h (irange::irange): Use set_undefined.
11036
11037 2022-04-29 Aldy Hernandez <aldyh@redhat.com>
11038
11039 * gimple-range-cache.h (non_null_ref::adjust_range): Do not use
11040 irange::intersect (wide_int, wide_int).
11041 * gimple-range-fold.cc (adjust_pointer_diff_expr): Same.
11042 (adjust_imagpart_expr): Same.
11043 * value-range.h (irange::intersect (wide_int, wide_int)): Make
11044 private.
11045
11046 2022-04-29 Richard Biener <rguenther@suse.de>
11047
11048 PR tree-optimization/104322
11049 * tree-vect-loop.cc (vectorizable_reduction): Remove dead code.
11050
11051 2022-04-29 Richard Biener <rguenther@suse.de>
11052
11053 PR middle-end/105376
11054 * tree.cc (build_real): Special case dconst* arguments
11055 for decimal floating point types.
11056
11057 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11058
11059 * doc/gcov.texi (Profiling and Test Coverage in Freestanding
11060 Environments): New section.
11061
11062 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11063
11064 * doc/gcov-tool.texi: Document merge-stream subcommand.
11065 * doc/invoke.texi (fprofile-info-section): Mention merge-stream
11066 subcommand of gcov-tool.
11067 * gcov-tool.cc (gcov_profile_merge_stream): Declare.
11068 (print_merge_stream_usage_message): New.
11069 (merge_stream_usage): Likewise.
11070 (do_merge_stream): Likewise.
11071 (print_usage): Call print_merge_stream_usage_message().
11072 (main): Call do_merge_stream() to execute merge-stream subcommand.
11073
11074 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11075
11076 * gcov-io.cc (gcov_file_error): New enum.
11077 (gcov_var): Use gcov_file_error enum for the error member.
11078 (gcov_open): Use GCOV_FILE_NO_ERROR.
11079 (gcov_close): Use GCOV_FILE_WRITE_ERROR.
11080 (gcov_write): Likewise.
11081 (gcov_write_unsigned): Likewise.
11082 (gcov_write_string): Likewise.
11083 (gcov_read_bytes): Set error code if EOF is reached.
11084 (gcov_read_counter): Use GCOV_FILE_COUNTER_OVERFLOW.
11085
11086 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11087
11088 * gcov-io.cc (GCOV_MODE_STDIN): Define.
11089 (gcov_position): For gcov-tool, return calculated position if file is
11090 stdin.
11091 (gcov_open): For gcov-tool, use stdin if filename is NULL.
11092 (gcov_close): For gcov-tool, do not close stdin.
11093 (gcov_read_bytes): For gcov-tool, update position if file is stdin.
11094 (gcov_sync): For gcov-tool, discard input if file is stdin.
11095
11096 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11097
11098 * doc/invoke.texi (fprofile-info-section): Mention
11099 __gcov_filename_to_gcfn(). Use "freestanding" to match with C11
11100 standard language. Fix minor example code issues.
11101 * gcov-io.h (GCOV_FILENAME_MAGIC): Define and document.
11102
11103 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11104
11105 * gcov-io.cc (gcov_seek): Make it static.
11106 * gcov-io.h (struct gcov_summary): Do not mention gcov_seek().
11107
11108 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11109
11110 * gcov-tool.cc (gcov_do_dump): Add mode parameter.
11111 (gcov_output_files): Open files for reading and writing.
11112
11113 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11114
11115 * gcov-io.cc (gcov_open): Always use the mode parameter.
11116 * gcov-io.h (gcov_open): Declare it unconditionally.
11117
11118 2022-04-28 Sebastian Huber <sebastian.huber@embedded-brains.de>
11119
11120 * gcov-tool.cc (gcov_profile_merge): Adjust return type.
11121 (profile_merge): Allow merging of directories which contain no profile
11122 files.
11123
11124 2022-04-28 David Malcolm <dmalcolm@redhat.com>
11125
11126 * doc/invoke.texi (-fdump-analyzer-feasibility): Mention the
11127 fpath.txt output.
11128
11129 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11130
11131 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Create a
11132 temporary only if out overlaps compare_op, not when it overlaps
11133 op0 or op1.
11134
11135 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11136
11137 PR lto/105399
11138 * cgraph.cc (cgraph_node::verify_node): Don't verify
11139 semantic_interposition flag against
11140 opt_for_fn (decl, flag_semantic_interposition) for aliases in lto1.
11141
11142 2022-04-28 Jakub Jelinek <jakub@redhat.com>
11143
11144 PR target/105331
11145 * config/i386/i386.cc (ix86_gimplify_va_arg): Mark va_arg_tmp
11146 temporary TREE_ADDRESSABLE before trying to gimplify ADDR_EXPR
11147 of it.
11148
11149 2022-04-28 Jonathan Wakely <jwakely@redhat.com>
11150
11151 * doc/install.texi (Configuration): Remove misleading text
11152 around LE PowerPC Linux multilibs.
11153
11154 2022-04-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11155
11156 PR d/103528
11157 * doc/install.texi (Tools/packages necessary for building GCC)
11158 (GDC): Document libphobos requirement.
11159 (Host/target specific installation notes for GCC, *-*-solaris2*):
11160 Document libphobos and GDC specifics.
11161
11162 2022-04-28 Richard Biener <rguenther@suse.de>
11163
11164 PR tree-optimization/105219
11165 * tree-vect-loop.cc (vect_transform_loop): Disable
11166 special code narrowing the vectorized epilogue max
11167 iterations when peeling for alignment or gaps was in effect.
11168
11169 2022-04-28 Xi Ruoyao <xry111@mengyan1223.wang>
11170
11171 * config/loongarch/loongarch.cc
11172 (loongarch_flatten_aggregate_field): Ignore empty fields for
11173 RECORD_TYPE.
11174
11175 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
11176
11177 * config/loongarch/loongarch.md: Add fdiv define_expand template,
11178 then generate floating-point division and floating-point reciprocal
11179 instructions.
11180
11181 2022-04-27 Lulu Cheng <chenglulu@loongson.cn>
11182
11183 * config/loongarch/loongarch.md: Add '(clobber (mem:BLK (scratch)))'
11184 to PLV instruction templates.
11185
11186 2022-04-27 Richard Biener <rguenther@suse.de>
11187
11188 PR middle-end/104492
11189 * gimple-ssa-warn-access.cc
11190 (pass_waccess::warn_invalid_pointer): Exclude equality compare
11191 diagnostics for all kind of invalidations.
11192 (pass_waccess::check_dangling_uses): Fix post-dominator query.
11193 (pass_waccess::check_pointer_uses): Likewise.
11194
11195 2022-04-27 Andreas Krebbel <krebbel@linux.ibm.com>
11196
11197 PR target/102024
11198 * config/s390/s390-protos.h (s390_function_arg_vector): Remove
11199 prototype.
11200 * config/s390/s390.cc (s390_single_field_struct_p): New function.
11201 (s390_function_arg_vector): Invoke s390_single_field_struct_p.
11202 (s390_function_arg_float): Likewise.
11203
11204 2022-04-27 Jakub Jelinek <jakub@redhat.com>
11205
11206 PR sanitizer/105396
11207 * asan.cc (asan_redzone_buffer::emit_redzone_byte): Handle the case
11208 where offset is bigger than off but smaller than m_prev_offset + 32
11209 bits by pushing one or more 0 bytes. Sink the
11210 m_shadow_bytes.safe_push (value); flush_if_full (); statements from
11211 all cases to the end of the function.
11212
11213 2022-04-27 Kewen Lin <linkw@linux.ibm.com>
11214
11215 PR target/105271
11216 * config/rs6000/rs6000-builtins.def (NEG_V2DI): Move to [power8-vector]
11217 stanza.
11218
11219 2022-04-26 Thomas Schwinge <thomas@codesourcery.com>
11220
11221 * config/gcn/gcn.cc (gcn_print_lds_decl): Make "gang-private
11222 data-share memory exhausted" error more verbose.
11223
11224 2022-04-26 Martin Liska <mliska@suse.cz>
11225
11226 PR lto/105364
11227 * lto-wrapper.cc (print_lto_docs_link): Use global_dc.
11228 (run_gcc): Parse OPT_fdiagnostics_urls_.
11229 (main): Initialize global_dc.
11230
11231 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11232
11233 PR rtl-optimization/105314
11234 * ifcvt.cc (noce_try_store_flag_mask): Don't require that the non-zero
11235 operand is equal to if_info->x, instead use the non-zero operand
11236 as one of the operands of AND with if_info->x as target.
11237
11238 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11239
11240 PR tree-optimization/105374
11241 * tree-ssa-reassoc.cc (eliminate_redundant_comparison): Punt if
11242 !fold_convertible_p rather than assuming fold_convert must succeed.
11243
11244 2022-04-26 Jakub Jelinek <jakub@redhat.com>
11245
11246 PR target/105367
11247 * config/i386/i386.cc (ix86_veclibabi_svml, ix86_veclibabi_acml): Pass
11248 el_mode == DFmode ? double_type_node : float_type_node instead of
11249 TREE_TYPE (type_in) as first arguments to mathfn_built_in.
11250
11251 2022-04-25 David Malcolm <dmalcolm@redhat.com>
11252
11253 PR analyzer/104308
11254 * gimple-fold.cc (gimple_fold_builtin_memory_op): Explicitly set
11255 the location of new_stmt in all places that don't already set it,
11256 whether explicitly, or via a call to gsi_replace.
11257
11258 2022-04-25 Paul A. Clarke <pc@us.ibm.com>
11259
11260 * doc/extend.texi (Other Builtins): Correct reference to 'modff'.
11261
11262 2022-04-25 Andrew MacLeod <amacleod@redhat.com>
11263
11264 PR tree-optimization/105276
11265 * gimple-range.cc (gimple_ranger::prefill_stmt_dependencies): Include
11266 existing global range with calculated value.
11267
11268 2022-04-25 Richard Biener <rguenther@suse.de>
11269
11270 PR tree-optimization/105368
11271 * tree-ssa-math-opts.cc (powi_cost): Use absu_hwi.
11272
11273 2022-04-25 Richard Biener <rguenther@suse.de>
11274
11275 PR tree-optimization/100810
11276 * tree-ssa-loop-ivopts.cc (struct iv_cand): Add involves_undefs flag.
11277 (find_ssa_undef): New function.
11278 (add_candidate_1): Avoid adding derived candidates with
11279 undefined SSA names and mark the original ones.
11280 (determine_group_iv_cost_generic): Reject rewriting
11281 uses with a different IV when that involves undefined SSA names.
11282
11283 2022-04-25 Steven G. Kargl <kargl@gcc.gnu.org>
11284
11285 PR target/89125
11286 * config/freebsd.h: Define TARGET_LIBC_HAS_FUNCTION to be
11287 bsd_libc_has_function.
11288 * targhooks.cc (bsd_libc_has_function): New function.
11289 Expand the supported math functions to inclue C99 libm.
11290 * targhooks.h (bsd_libc_has_function): New Prototype.
11291
11292 2022-04-25 Richard Biener <rguenther@suse.de>
11293
11294 PR rtl-optimization/105231
11295 * combine.cc (distribute_notes): Assert that a REG_EH_REGION
11296 with landing pad > 0 is from i3. Put any REG_EH_REGION note
11297 on i3 or drop it if the insn can not trap.
11298 (try_combine): Ensure that we can merge REG_EH_REGION notes
11299 with non-call exceptions. Ensure we are not splitting a
11300 trapping part of an insn with non-call exceptions when there
11301 is any REG_EH_REGION note to preserve.
11302
11303 2022-04-25 Hongyu Wang <hongyu.wang@intel.com>
11304
11305 PR target/105339
11306 * config/i386/avx512fintrin.h (_mm512_scalef_round_pd):
11307 Add parentheses for parameters and djust format.
11308 (_mm512_mask_scalef_round_pd): Ditto.
11309 (_mm512_maskz_scalef_round_pd): Ditto.
11310 (_mm512_scalef_round_ps): Ditto.
11311 (_mm512_mask_scalef_round_ps): Ditto.
11312 (_mm512_maskz_scalef_round_ps): Ditto.
11313 (_mm_scalef_round_sd): Use _mm_undefined_pd.
11314 (_mm_scalef_round_ss): Use _mm_undefined_ps.
11315 (_mm_mask_scalef_round_sd): New macro.
11316 (_mm_mask_scalef_round_ss): Ditto.
11317 (_mm_maskz_scalef_round_sd): Ditto.
11318 (_mm_maskz_scalef_round_ss): Ditto.
11319
11320 2022-04-23 Jakub Jelinek <jakub@redhat.com>
11321
11322 PR target/105338
11323 * config/i386/i386-expand.cc (ix86_expand_int_movcc): Handle
11324 op0 == cst1 ? op0 : op3 like op0 == cst1 ? cst1 : op3 for the non-cmov
11325 cases.
11326
11327 2022-04-22 Segher Boessenkool <segher@kernel.crashing.org>
11328
11329 PR target/105334
11330 * config/rs6000/rs6000.md (pack<mode> for FMOVE128): New expander.
11331 (pack<mode> for FMOVE128): Rename and split the insn_and_split to...
11332 (pack<mode>_hard for FMOVE128): ... this...
11333 (pack<mode>_soft for FMOVE128): ... and this.
11334
11335 2022-04-22 Paul A. Clarke <pc@us.ibm.com>
11336
11337 * doc/extend.texi: Correct "This" to "These".
11338
11339 2022-04-22 Jakub Jelinek <jakub@redhat.com>
11340
11341 PR rtl-optimization/105333
11342 * rtlanal.cc (replace_rtx): Use simplify_subreg or
11343 simplify_unary_operation if CONST_SCALAR_INT_P rather than just
11344 CONST_INT_P.
11345
11346 2022-04-21 Segher Boessenkool <segher@kernel.crashing.org>
11347
11348 PR target/103197
11349 PR target/102146
11350 * config/rs6000/rs6000.md (zero_extendqi<mode>2 for EXTQI): Disparage
11351 the "Z" alternatives in {l,st}{f,xs}iwzx.
11352 (zero_extendhi<mode>2 for EXTHI): Ditto.
11353 (zero_extendsi<mode>2 for EXTSI): Ditto.
11354 (*movsi_internal1): Ditto.
11355 (*mov<mode>_internal1 for QHI): Ditto.
11356 (movsd_hardfloat): Ditto.
11357
11358 2022-04-21 Martin Liska <mliska@suse.cz>
11359
11360 * configure.ac: Enable compressed debug sections for mold
11361 linker.
11362 * configure: Regenerate.
11363
11364 2022-04-21 Jakub Jelinek <jakub@redhat.com>
11365
11366 PR debug/105203
11367 * emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
11368 on DEBUG_INSNs.
11369
11370 2022-04-20 Richard Biener <rguenther@suse.de>
11371
11372 PR tree-optimization/104912
11373 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11374 the cost model check to a separate BB to make sure it is
11375 checked first and not combined with other version checks.
11376
11377 2022-04-20 Richard Biener <rguenther@suse.de>
11378
11379 PR tree-optimization/105312
11380 * gimple-isel.cc (gimple_expand_vec_cond_expr): Query both
11381 VCOND and VCONDU for EQ and NE.
11382
11383 2022-04-20 Jan Hubicka <hubicka@ucw.cz>
11384
11385 PR ipa/103818
11386 * ipa-modref-tree.cc (modref_access_node::closer_pair_p): Use
11387 poly_offset_int to avoid overflow.
11388 (modref_access_node::update2): likewise.
11389
11390 2022-04-20 Jakub Jelinek <jakub@redhat.com>
11391
11392 PR ipa/105306
11393 * cgraph.cc (cgraph_node::create): Set node->semantic_interposition
11394 to opt_for_fn (decl, flag_semantic_interposition).
11395 * cgraphclones.cc (cgraph_node::create_clone): Copy over
11396 semantic_interposition flag.
11397
11398 2022-04-19 Sergei Trofimovich <siarheit@google.com>
11399
11400 PR gcov-profile/105282
11401 * value-prof.cc (stream_out_histogram_value): Allow negative counts
11402 on HIST_TYPE_INDIR_CALL.
11403
11404 2022-04-19 Jakub Jelinek <jakub@redhat.com>
11405
11406 PR target/105257
11407 * config/sparc/sparc.cc (epilogue_renumber): If ORIGINAL_REGNO,
11408 use gen_raw_REG instead of gen_rtx_REG and copy over also
11409 ORIGINAL_REGNO. Use return 0; instead of /* fallthrough */.
11410
11411 2022-04-19 Richard Biener <rguenther@suse.de>
11412
11413 PR tree-optimization/104010
11414 PR tree-optimization/103941
11415 * tree-vect-slp.cc (vect_bb_slp_scalar_cost): When
11416 we run into stmts in patterns continue walking those
11417 for uses outside of the vectorized region instead of
11418 marking the lane live.
11419
11420 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
11421
11422 * doc/install.texi <CRIS>: Remove references to removed websites and
11423 adjust for cris-*-elf being the only remaining toolchain.
11424
11425 2022-04-18 Hans-Peter Nilsson <hp@axis.com>
11426
11427 * doc/invoke.texi <CRIS>: Remove references to options for removed
11428 subtarget cris-axis-linux-gnu and tweak wording accordingly.
11429
11430 2022-04-16 Gerald Pfeifer <gerald@pfeifer.com>
11431
11432 * doc/install.texi (Specific): Adjust mingw-w64 download link.
11433
11434 2022-04-15 Hongyu Wang <hongyu.wang@intel.com>
11435
11436 * config/i386/smmintrin.h: Correct target pragma from sse4.1
11437 and sse4.2 to crc32 for crc32 intrinsics.
11438
11439 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
11440
11441 PR debug/105089
11442 * ctfc.cc (ctf_dvd_ignore_insert): New function.
11443 (ctf_dvd_ignore_lookup): Likewise.
11444 (ctf_add_variable): Keep track of non-defining decl DIEs.
11445 (new_ctf_container): Initialize the new hash-table.
11446 (ctfc_delete_container): Empty hash-table.
11447 * ctfc.h (struct ctf_container): Add new hash-table.
11448 (ctf_dvd_ignore_lookup): New declaration.
11449 (ctf_add_variable): Add additional argument.
11450 * ctfout.cc (ctf_dvd_preprocess_cb): Skip adding CTF variable
11451 record for non-defining decl for which a defining decl exists
11452 in the same TU.
11453 (ctf_preprocess): Defer updating the number of global objts
11454 until here.
11455 (output_ctf_header): Use ctfc_vars_list_count as some CTF
11456 variables may not make it to the final output.
11457 (output_ctf_vars): Likewise.
11458 * dwarf2ctf.cc (gen_ctf_variable): Skip generating CTF variable
11459 if this is known to be a non-defining decl DIE.
11460
11461 2022-04-14 Indu Bhagat <indu.bhagat@oracle.com>
11462
11463 * ctfc.h (struct ctf_container): Introduce a new member.
11464 * ctfout.cc (ctf_list_add_ctf_vars): Use it instead of static
11465 variable.
11466
11467 2022-04-14 Jakub Jelinek <jakub@redhat.com>
11468
11469 PR target/105247
11470 * simplify-rtx.cc (simplify_const_binary_operation): For shifts
11471 or rotates by VOIDmode constant integer shift count use word_mode
11472 for the operand if int_mode is narrower than word.
11473
11474 2022-04-14 Robin Dapp <rdapp@linux.ibm.com>
11475
11476 * config/s390/s390.cc (s390_get_sched_attrmask): Add z16.
11477 (s390_get_unit_mask): Likewise.
11478 (s390_is_fpd): Likewise.
11479 (s390_is_fxd): Likewise.
11480 * config/s390/s390.h (s390_tune_attr): Set max tune level to z16.
11481 * config/s390/s390.md (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15):
11482 Add z16.
11483 (z900,z990,z9_109,z9_ec,z10,z196,zEC12,z13,z14,z15,z16):
11484 Likewise.
11485 * config/s390/3931.md: New file.
11486
11487 2022-04-13 Richard Sandiford <richard.sandiford@arm.com>
11488
11489 PR tree-optimization/105254
11490 * config/aarch64/aarch64.cc
11491 (aarch64_vector_costs::determine_suggested_unroll_factor): Take a
11492 loop_vec_info as argument. Restrict the unroll factor to values
11493 that divide the VF.
11494 (aarch64_vector_costs::finish_cost): Update call accordingly.
11495
11496 2022-04-13 Richard Biener <rguenther@suse.de>
11497
11498 PR tree-optimization/105263
11499 * tree-ssa-reassoc.cc (try_special_add_to_ops): Do not consume
11500 negates in multiplication chains with DFP.
11501
11502 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11503
11504 PR middle-end/105253
11505 * tree.cc (tree_builtin_call_types_compatible_p): If PROP_gimple,
11506 use useless_type_conversion_p checks instead of TYPE_MAIN_VARIANT
11507 comparisons or tree_nop_conversion_p checks.
11508
11509 2022-04-13 Hongyu Wang <hongyu.wang@intel.com>
11510
11511 PR target/103069
11512 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop):
11513 Add missing set to target_val at pause label.
11514
11515 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11516
11517 PR target/105234
11518 * attribs.cc (decl_attributes): Don't set
11519 DECL_FUNCTION_SPECIFIC_TARGET if target_option_default_node is
11520 NULL.
11521
11522 2022-04-13 Richard Biener <rguenther@suse.de>
11523
11524 PR tree-optimization/105250
11525 * fold-const.cc (fold_convertible_p): Revert
11526 r12-7979-geaaf77dd85c333, instead check for size equality
11527 of the vector types involved.
11528
11529 2022-04-13 Richard Biener <rguenther@suse.de>
11530
11531 Revert:
11532 2022-04-13 Richard Biener <rguenther@suse.de>
11533
11534 PR tree-optimization/104912
11535 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11536 the cost model check to a separate BB to make sure it is
11537 checked first and not combined with other version checks.
11538
11539 2022-04-13 Richard Biener <rguenther@suse.de>
11540
11541 PR tree-optimization/104912
11542 * tree-vect-loop-manip.cc (vect_loop_versioning): Split
11543 the cost model check to a separate BB to make sure it is
11544 checked first and not combined with other version checks.
11545
11546 2022-04-13 Jakub Jelinek <jakub@redhat.com>
11547
11548 * tree-scalar-evolution.cc (expression_expensive_p): Fix a comment typo.
11549
11550 2022-04-12 Antoni Boucher <bouanto@zoho.com>
11551
11552 PR jit/104072
11553 * reginfo.cc: New functions (clear_global_regs_cache,
11554 reginfo_cc_finalize) to avoid an issue where compiling the same
11555 code multiple times gives an error about assigning the same
11556 register to 2 global variables.
11557 * rtl.h: New function (reginfo_cc_finalize).
11558 * toplev.cc: Call it.
11559
11560 2022-04-12 Antoni Boucher <bouanto@zoho.com>
11561
11562 PR jit/104071
11563 * toplev.cc: Call the new function tree_cc_finalize in
11564 toplev::finalize.
11565 * tree.cc: New functions (clear_nonstandard_integer_type_cache
11566 and tree_cc_finalize) to clear the cache of non-standard integer
11567 types to avoid having issues with some optimizations of
11568 bitcast where the SSA_NAME will have a size of a cached
11569 integer type that should have been invalidated, causing a
11570 comparison of integer constant to fail.
11571 * tree.h: New function (tree_cc_finalize).
11572
11573 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11574
11575 PR target/97348
11576 * config/nvptx/nvptx.h (ASM_SPEC): Don't set.
11577 * config/nvptx/nvptx.opt (misa): Adjust comment.
11578
11579 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11580
11581 Revert:
11582 2022-03-03 Tom de Vries <tdevries@suse.de>
11583
11584 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
11585
11586 2022-04-12 Thomas Schwinge <thomas@codesourcery.com>
11587
11588 Revert:
11589 2022-03-31 Tom de Vries <tdevries@suse.de>
11590
11591 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
11592
11593 2022-04-12 Richard Biener <rguenther@suse.de>
11594
11595 PR ipa/104303
11596 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Do not
11597 include local escaped memory as obviously necessary stores.
11598
11599 2022-04-12 Richard Biener <rguenther@suse.de>
11600
11601 PR tree-optimization/105235
11602 * tree-ssa-math-opts.cc (execute_cse_conv_1): Clean EH and
11603 return whether the CFG changed.
11604 (execute_cse_sincos_1): Adjust.
11605
11606 2022-04-12 Przemyslaw Wirkus <Przemyslaw.Wirkus@arm.com>
11607
11608 PR target/104144
11609 * config/arm/t-aprofile (MULTI_ARCH_OPTS_A): Remove Armv9-a options.
11610 (MULTI_ARCH_DIRS_A): Remove Armv9-a diretories.
11611 (MULTILIB_REQUIRED): Don't require Armv9-a libraries.
11612 (MULTILIB_MATCHES): Treat Armv9-a as equivalent to Armv8-a.
11613 (MULTILIB_REUSE): Remove remap rules for Armv9-a.
11614 * config/arm/t-multilib (v9_a_nosimd_variants): Delete.
11615 (MULTILIB_MATCHES): Remove mappings for v9_a_nosimd_variants.
11616
11617 2022-04-12 Richard Biener <rguenther@suse.de>
11618
11619 PR tree-optimization/105232
11620 * tree.cc (component_ref_size): Bail out for too large
11621 or non-constant sizes.
11622
11623 2022-04-12 Richard Biener <rguenther@suse.de>
11624
11625 PR tree-optimization/105226
11626 * tree-vect-loop-manip.cc (vect_loop_versioning): Verify
11627 we can split the exit of an outer loop we choose to version.
11628
11629 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11630
11631 * config/i386/i386-expand.cc (ix86_emit_i387_sinh, ix86_emit_i387_cosh,
11632 ix86_emit_i387_tanh, ix86_emit_i387_asinh, ix86_emit_i387_acosh,
11633 ix86_emit_i387_atanh, ix86_emit_i387_log1p, ix86_emit_i387_round,
11634 ix86_emit_swdivsf, ix86_emit_swsqrtsf,
11635 ix86_expand_atomic_fetch_op_loop, ix86_expand_cmpxchg_loop):
11636 Formatting fix.
11637 * config/i386/i386.cc (warn_once_call_ms2sysv_xlogues): Likewise.
11638
11639 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11640
11641 PR target/105214
11642 * config/i386/i386-expand.cc (ix86_emit_i387_log1p): Call
11643 do_pending_stack_adjust.
11644
11645 2022-04-12 Jakub Jelinek <jakub@redhat.com>
11646
11647 PR rtl-optimization/105211
11648 * builtins.cc (expand_builtin_int_roundingfn_2): If mathfn_built_in_1
11649 fails for TREE_TYPE (arg), retry it with
11650 TREE_VALUE (TYPE_ARG_TYPES (TREE_TYPE (fndecl))) and if even that
11651 fails, emit call normally.
11652
11653 2022-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
11654
11655 * common/config/s390/s390-common.cc: Rename PF_ARCH14 to PF_Z16.
11656 * config.gcc: Add z16 as march/mtune switch.
11657 * config/s390/driver-native.cc (s390_host_detect_local_cpu):
11658 Recognize z16 with -march=native.
11659 * config/s390/s390-opts.h (enum processor_type): Rename
11660 PROCESSOR_ARCH14 to PROCESSOR_3931_Z16.
11661 * config/s390/s390.cc (PROCESSOR_ARCH14): Rename to ...
11662 (PROCESSOR_3931_Z16): ... throughout the file.
11663 (s390_processor processor_table): Add z16 as cpu string.
11664 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH14 to
11665 PF_Z16.
11666 (TARGET_CPU_ARCH14): Rename to ...
11667 (TARGET_CPU_Z16): ... this.
11668 (TARGET_CPU_ARCH14_P): Rename to ...
11669 (TARGET_CPU_Z16_P): ... this.
11670 (TARGET_ARCH14): Rename to ...
11671 (TARGET_Z16): ... this.
11672 (TARGET_ARCH14_P): Rename to ...
11673 (TARGET_Z16_P): ... this.
11674 * config/s390/s390.md (cpu_facility): Rename arch14 to z16 and
11675 check TARGET_Z16 instead of TARGET_ARCH14.
11676 * config/s390/s390.opt: Add z16 to processor_type.
11677 * doc/invoke.texi: Document z16 and arch14.
11678
11679 2022-04-12 chenglulu <chenglulu@loongson.cn>
11680
11681 * config/loongarch/loongarch.cc: Fix bug for
11682 tmpdir-g++.dg-struct-layout-1/t033.
11683
11684 2022-04-11 Peter Bergner <bergner@linux.ibm.com>
11685
11686 PR target/104894
11687 * config/rs6000/rs6000.cc (rs6000_sibcall_aix): Handle pcrel sibcalls
11688 to longcall functions.
11689
11690 2022-04-11 Jason Merrill <jason@redhat.com>
11691
11692 * ipa-free-lang-data.cc (free_lang_data_in_decl): Fix typos.
11693
11694 2022-04-11 Segher Boessenkool <segher@kernel.crashing.org>
11695
11696 PR target/105213
11697 PR target/103623
11698 * config/rs6000/rs6000.md (unpack<mode>_nodm): Add m,r,i alternative.
11699
11700 2022-04-11 Jakub Jelinek <jakub@redhat.com>
11701
11702 PR tree-optimization/105218
11703 * tree-ssa-phiopt.cc (value_replacement): If middle_bb has
11704 more than one predecessor or phi's bb more than 2 predecessors,
11705 reset phi result uses instead of adding a debug temp.
11706
11707 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
11708
11709 PR target/104853
11710 * config.gcc: Pass -misa-spec to arch-canonicalize and
11711 multilib-generator.
11712 * config/riscv/arch-canonicalize: Adding -misa-spec option.
11713 (SUPPORTED_ISA_SPEC): New.
11714 (arch_canonicalize): New argument `isa_spec`.
11715 Handle multiple ISA spec versions.
11716 * config/riscv/multilib-generator: Adding -misa-spec option.
11717
11718 2022-04-11 Kito Cheng <kito.cheng@sifive.com>
11719
11720 * config/riscv/arch-canonicalize: Add TODO item.
11721 (IMPLIED_EXT): Sync.
11722 (arch_canonicalize): Checking until no change.
11723
11724 2022-04-11 Tamar Christina <tamar.christina@arm.com>
11725
11726 PR target/105197
11727 * tree-vect-stmts.cc (vectorizable_condition): Prevent cond swap when
11728 not masked.
11729
11730 2022-04-11 Jason Merrill <jason@redhat.com>
11731
11732 PR c++/100370
11733 * pointer-query.cc (compute_objsize_r) [POINTER_PLUS_EXPR]: Require
11734 deref == -1.
11735
11736 2022-04-11 Jakub Jelinek <jakub@redhat.com>
11737
11738 PR tree-optimization/104639
11739 * tree-ssa-phiopt.cc: Include tree-ssa-propagate.h.
11740 (value_replacement): Optimize (x != cst1 ? x : cst2) != cst3
11741 into x != cst3.
11742
11743 2022-04-11 Jeff Law <jeffreyalaw@gmail.com>
11744
11745 * config/bfin/bfin.md (rol_one): Fix pattern to indicate the
11746 sign bit of the source ends up in CC.
11747
11748 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
11749
11750 PR ipa/103376
11751 * cgraphunit.cc (cgraph_node::analyze): update semantic_interposition
11752 flag.
11753
11754 2022-04-09 Jan Hubicka <hubicka@ucw.cz>
11755
11756 * ipa-modref.cc (ipa_merge_modref_summary_after_inlining): Propagate
11757 nondeterministic and side_effects flags.
11758
11759 2022-04-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
11760
11761 PR target/105157
11762 * config.gcc: Shift ext_mask by TARGET_CPU_NBITS.
11763 * config/aarch64/aarch64.h (TARGET_CPU_NBITS): New macro.
11764 (TARGET_CPU_MASK): Likewise.
11765 (TARGET_CPU_DEFAULT): Use TARGET_CPU_NBITS.
11766 * config/aarch64/aarch64.cc (aarch64_get_tune_cpu): Use TARGET_CPU_MASK.
11767 (aarch64_get_arch): Likewise.
11768 (aarch64_override_options): Use TARGET_CPU_NBITS.
11769
11770 2022-04-08 Richard Biener <rguenther@suse.de>
11771
11772 PR tree-optimization/105198
11773 * tree-predcom.cc (find_looparound_phi): Check whether
11774 the found memory location of the entry value is clobbered
11775 inbetween the value we want to use and loop entry.
11776
11777 2022-04-08 Jakub Jelinek <jakub@redhat.com>
11778
11779 PR tree-optimization/105189
11780 * fold-const.cc (make_range_step): Fix up handling of
11781 (unsigned) x +[low, -] ranges for signed x if low fits into
11782 typeof (x).
11783
11784 2022-04-08 Richard Biener <rguenther@suse.de>
11785
11786 PR tree-optimization/105175
11787 * tree-vect-stmts.cc (vectorizable_operation): Suppress
11788 -Wvector-operation-performance if using emulated vectors.
11789 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
11790 -Wvector-operation-performance when suppressed.
11791 (expand_vector_parallel): Likewise.
11792 (expand_vector_comparison): Likewise.
11793 (expand_vector_condition): Likewise.
11794 (lower_vec_perm): Likewise.
11795 (expand_vector_conversion): Likewise.
11796
11797 2022-04-07 Tamar Christina <tamar.christina@arm.com>
11798
11799 PR target/104409
11800 * config/aarch64/aarch64-builtins.cc (handle_arm_acle_h): New.
11801 (aarch64_general_init_builtins): Move LS64 code.
11802 * config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64): Support
11803 arm_acle.h
11804 * config/aarch64/aarch64-protos.h (handle_arm_acle_h): New.
11805 * config/aarch64/arm_acle.h: Add pragma GCC aarch64 "arm_acle.h".
11806
11807 2022-04-07 Richard Biener <rguenther@suse.de>
11808 Jan Hubicka <hubicka@ucw.cz>
11809
11810 PR ipa/104303
11811 * tree-ssa-alias.h (ptr_deref_may_alias_global_p,
11812 ref_may_alias_global_p, ref_may_alias_global_p,
11813 stmt_may_clobber_global_p, pt_solution_includes_global): Add
11814 bool parameters indicating whether escaped locals should be
11815 considered global.
11816 * tree-ssa-structalias.cc (pt_solution_includes_global):
11817 When the new escaped_nonlocal_p flag is true also consider
11818 pt->vars_contains_escaped.
11819 * tree-ssa-alias.cc (ptr_deref_may_alias_global_p):
11820 Pass down new escaped_nonlocal_p flag.
11821 (ref_may_alias_global_p): Likewise.
11822 (stmt_may_clobber_global_p): Likewise.
11823 (ref_may_alias_global_p_1): Likewise. For decls also
11824 query the escaped solution if true.
11825 (ref_may_access_global_memory_p): Remove.
11826 (modref_may_conflict): Use ref_may_alias_global_p with
11827 escaped locals considered global.
11828 (ref_maybe_used_by_stmt_p): Adjust.
11829 * ipa-fnsummary.cc (points_to_local_or_readonly_memory_p):
11830 Likewise.
11831 * tree-ssa-dse.cc (dse_classify_store): Likewise.
11832 * trans-mem.cc (thread_private_new_memory): Likewise, but
11833 consider escaped locals global.
11834 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Likewise.
11835
11836 2022-04-07 Richard Biener <rguenther@suse.de>
11837
11838 PR tree-optimization/105185
11839 * tree-ssa-sccvn.cc (visit_reference_op_call): Simplify
11840 modref query again.
11841
11842 2022-04-07 Tamar Christina <tamar.christina@arm.com>
11843
11844 PR target/104049
11845 * config/aarch64/aarch64-simd.md
11846 (aarch64_reduc_plus_internal<mode>): Fix RTL and rename to...
11847 (reduc_plus_scal_<mode>): ... This.
11848 (reduc_plus_scal_v4sf): Moved.
11849 (aarch64_reduc_plus_internalv2si): Fix RTL and rename to...
11850 (reduc_plus_scal_v2si): ... This.
11851
11852 2022-04-07 Jakub Jelinek <jakub@redhat.com>
11853
11854 PR tree-optimization/102586
11855 * langhooks.h (struct lang_hooks_for_types): Add classtype_as_base
11856 langhook.
11857 * langhooks-def.h (LANG_HOOKS_CLASSTYPE_AS_BASE): Define.
11858 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Add it.
11859 * gimple-fold.cc (clear_padding_type): Use ftype instead of
11860 TREE_TYPE (field) some more. For artificial FIELD_DECLs without
11861 name try the lang_hooks.types.classtype_as_base langhook and
11862 if it returns non-NULL, use that instead of ftype for recursive call.
11863
11864 2022-04-07 Jakub Jelinek <jakub@redhat.com>
11865
11866 PR tree-optimization/105150
11867 * tree.cc (tree_builtin_call_types_compatible_p): New function.
11868 (get_call_combined_fn): Use it.
11869
11870 2022-04-07 Richard Biener <rguenther@suse.de>
11871
11872 PR middle-end/105165
11873 * tree-complex.cc (expand_complex_asm): Sorry for asm goto
11874 _Complex outputs.
11875
11876 2022-04-07 liuhongt <hongtao.liu@intel.com>
11877
11878 * config/i386/sse.md (<sse2_avx2>_andnot<mode>3_mask):
11879 Removed.
11880 (<sse>_andnot<mode>3<mask_name>): Disable V*HFmode patterns
11881 for mask_applied.
11882 (<code><mode>3<mask_name>): Ditto.
11883 (*<code><mode>3<mask_name>): Ditto.
11884 (VFB_128_256): Adjust condition of V8HF/V16HFmode according to
11885 real instruction.
11886 (VFB_512): Ditto.
11887 (VFB): Ditto.
11888
11889 2022-04-06 Jakub Jelinek <jakub@redhat.com>
11890
11891 PR rtl-optimization/104985
11892 * combine.cc (struct undo): Add where.regno member.
11893 (do_SUBST_MODE): Rename to ...
11894 (subst_mode): ... this. Change first argument from rtx * into int,
11895 operate on regno_reg_rtx[regno] and save regno into where.regno.
11896 (SUBST_MODE): Remove.
11897 (try_combine): Use subst_mode instead of SUBST_MODE, change first
11898 argument from regno_reg_rtx[whatever] to whatever. For UNDO_MODE, use
11899 regno_reg_rtx[undo->where.regno] instead of *undo->where.r.
11900 (undo_to_marker): For UNDO_MODE, use regno_reg_rtx[undo->where.regno]
11901 instead of *undo->where.r.
11902 (simplify_set): Use subst_mode instead of SUBST_MODE, change first
11903 argument from regno_reg_rtx[whatever] to whatever.
11904
11905 2022-04-06 Jakub Jelinek <jakub@redhat.com>
11906
11907 PR target/105069
11908 * config/sh/sh.opt (mdiv=): Add Save.
11909
11910 2022-04-06 Martin Liska <mliska@suse.cz>
11911
11912 PR driver/105096
11913 * common.opt: Document properly based on what it does.
11914 * gcc.cc (display_help): Unify with what we have in common.opt.
11915 * opts.cc (common_handle_option): Do not print undocumented
11916 options.
11917
11918 2022-04-06 Xi Ruoyao <xry111@mengyan1223.wang>
11919
11920 * config/mips/mips.cc (mips_fpr_return_fields): Ignore
11921 cxx17_empty_base_field_p fields and set an indicator.
11922 (mips_return_in_msb): Adjust for mips_fpr_return_fields change.
11923 (mips_function_value_1): Inform psABI change about C++17 empty
11924 bases.
11925
11926 2022-04-06 Jakub Jelinek <jakub@redhat.com>
11927
11928 PR tree-optimization/105150
11929 * gimple.cc (gimple_builtin_call_types_compatible_p): Use
11930 builtin_decl_explicit here...
11931 (gimple_call_builtin_p, gimple_call_combined_fn): ... rather than
11932 here.
11933
11934 2022-04-06 Richard Biener <rguenther@suse.de>
11935
11936 PR tree-optimization/105173
11937 * tree-ssa-reassoc.cc (find_insert_point): Get extra
11938 insert_before output argument and compute it.
11939 (insert_stmt_before_use): Adjust.
11940 (rewrite_expr_tree): Likewise.
11941
11942 2022-04-06 Richard Biener <rguenther@suse.de>
11943
11944 PR ipa/105166
11945 * ipa-modref-tree.cc (modref_access_node::get_ao_ref ): Bail
11946 out for non-pointer arguments.
11947
11948 2022-04-06 Richard Biener <rguenther@suse.de>
11949
11950 PR tree-optimization/105163
11951 * tree-ssa-reassoc.cc (repropagate_negates): Avoid propagating
11952 negated abnormals.
11953
11954 2022-04-06 Jakub Jelinek <jakub@redhat.com>
11955
11956 PR tree-optimization/105150
11957 * gimple.cc (gimple_call_builtin_p, gimple_call_combined_fn):
11958 For BUILT_IN_NORMAL calls, call gimple_builtin_call_types_compatible_p
11959 preferrably on builtin_decl_explicit decl rather than fndecl.
11960 * tree-ssa-strlen.cc (valid_builtin_call): Don't call
11961 gimple_builtin_call_types_compatible_p here.
11962
11963 2022-04-06 Richard Sandiford <richard.sandiford@arm.com>
11964
11965 PR tree-optimization/103761
11966 * tree-vect-stmts.cc (check_load_store_for_partial_vectors): Replace
11967 the ncopies parameter with an slp_node parameter. Calculate the
11968 number of vectors based on it and vectype. Rename lambda to
11969 group_memory_nvectors.
11970 (vectorizable_store, vectorizable_load): Update calls accordingly.
11971
11972 2022-04-06 Martin Liska <mliska@suse.cz>
11973
11974 * doc/invoke.texi: Document it.
11975
11976 2022-04-06 Richard Biener <rguenther@suse.de>
11977
11978 PR tree-optimization/105148
11979 * tree-ssa-loop-ivopts.cc (idx_record_use): Walk raw operands
11980 2 and 3 of ARRAY_REFs.
11981
11982 2022-04-06 Roger Sayle <roger@nextmovesoftware.com>
11983
11984 * config/i386/sse.md (ANDNOT_MODE): New mode iterator for TF and V1TI.
11985 (*andnottf3): Replace with...
11986 (*andnot<mode>3): New define_insn using ANDNOT_MODE.
11987
11988 2022-04-06 Richard Biener <rguenther@suse.de>
11989
11990 PR tree-optimization/105142
11991 * gimple-fold.h (maybe_fold_and_comparisons): Add defaulted
11992 basic-block parameter.
11993 (maybe_fold_or_comparisons): Likewise.
11994 * gimple-fold.cc (follow_outer_ssa_edges): New.
11995 (maybe_fold_comparisons_from_match_pd): Use follow_outer_ssa_edges
11996 when an outer condition basic-block is specified.
11997 (and_comparisons_1, and_var_with_comparison,
11998 and_var_with_comparison_1, or_comparisons_1,
11999 or_var_with_comparison, or_var_with_comparison_1): Receive and pass
12000 down the outer condition basic-block.
12001 * tree-ssa-ifcombine.cc (ifcombine_ifandif): Pass down the
12002 basic-block of the outer condition.
12003
12004 2022-04-06 Kewen Lin <linkw@linux.ibm.com>
12005
12006 PR target/105002
12007 * config/rs6000/rs6000.cc (rs6000_maybe_emit_maxc_minc): Support more
12008 comparison codes UNLT/UNLE/UNGT/UNGE.
12009
12010 2022-04-05 David Malcolm <dmalcolm@redhat.com>
12011
12012 * doc/extend.texi (Common Function Attributes): Document that
12013 'access' does not imply 'nonnull'.
12014
12015 2022-04-05 Uroš Bizjak <ubizjak@gmail.com>
12016
12017 PR target/105139
12018 * config/i386/mmx.md (*movv2qi_internal):
12019 Change insn mode of alternative 5 to HF for TARGET_AVX512FP16.
12020
12021 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12022
12023 * config/aarch64/aarch64.md (aarch64_cpymemdi): Turn into a
12024 define_expand and turn operands 0 and 1 from REGs to MEMs.
12025 (*aarch64_cpymemdi): New pattern.
12026 (aarch64_setmemdi): Turn into a define_expand and turn operand 0
12027 from a REG to a MEM.
12028 (*aarch64_setmemdi): New pattern.
12029 * config/aarch64/aarch64.cc (aarch64_expand_cpymem_mops): Use
12030 copy_to_mode_reg on all three registers. Replace the original
12031 MEM addresses rather than creating wild reads and writes.
12032 (aarch64_expand_setmem_mops): Likewise for the size and for the
12033 destination memory and address.
12034
12035 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12036
12037 PR target/103147
12038 * config/aarch64/aarch64-protos.h (aarch64_simd_switcher): New class.
12039 * config/aarch64/aarch64-sve-builtins.h (sve_switcher): Inherit
12040 from aarch64_simd_switcher.
12041 * config/aarch64/aarch64-builtins.cc (aarch64_simd_tuple_modes):
12042 New variable.
12043 (aarch64_lookup_simd_builtin_type): Use it instead of TYPE_MODE.
12044 (register_tuple_type): Add more asserts. Expect the alignment
12045 of the structure to be subject to flag_pack_struct and
12046 maximum_field_alignment. Set aarch64_simd_tuple_modes.
12047 (aarch64_simd_switcher::aarch64_simd_switcher): New function.
12048 (aarch64_simd_switcher::~aarch64_simd_switcher): Likewise.
12049 (handle_arm_neon_h): Hold an aarch64_simd_switcher throughout.
12050 (aarch64_general_init_builtins): Hold an aarch64_simd_switcher
12051 while calling aarch64_init_simd_builtins.
12052 * config/aarch64/aarch64-sve-builtins.cc (sve_switcher::sve_switcher)
12053 (sve_switcher::~sve_switcher): Remove code now performed by
12054 aarch64_simd_switcher.
12055
12056 2022-04-05 Richard Sandiford <richard.sandiford@arm.com>
12057
12058 PR target/104897
12059 * config/aarch64/aarch64-sve-builtins.cc
12060 (function_resolver::infer_vector_or_tuple_type): Use error_n
12061 for "%d vectors" messages.
12062
12063 2022-04-05 Chung-Lin Tang <cltang@codesourcery.com>
12064
12065 * omp-low.cc (lower_omp_target): Use outer context looked-up 'var' as
12066 argument to lang_hooks.decls.omp_array_data, instead of 'ovar' from
12067 current clause.
12068
12069 2022-04-05 Richard Biener <rguenther@suse.de>
12070
12071 PR c/105151
12072 * passes.def (pass_walloca): Move early instance into
12073 pass_build_ssa_passes to make SSA form available.
12074
12075 2022-04-05 liuhongt <hongtao.liu@intel.com>
12076
12077 PR target/101908
12078 * config/i386/i386.cc (ix86_split_stlf_stall_load): New
12079 function
12080 (ix86_reorg): Call ix86_split_stlf_stall_load.
12081 * config/i386/i386.opt (-param=x86-stlf-window-ninsns=): New
12082 param.
12083
12084 2022-04-05 Alexandre Oliva <oliva@adacore.com>
12085
12086 * targhooks.cc (default_zero_call_used_regs): Attempt to group
12087 regs that the target refuses to use in their natural modes.
12088 (zcur_select_mode_rtx): New.
12089 * regs.h (struct target_regs): Add x_hard_regno_max_nregs.
12090 (hard_regno_max_nregs): Define.
12091 * reginfo.cc (init_reg_modes_target): Set hard_regno_max_nregs.
12092
12093 2022-04-04 Alex Coplan <alex.coplan@arm.com>
12094
12095 * doc/match-and-simplify.texi: Fix typos.
12096
12097 2022-04-04 Jakub Jelinek <jakub@redhat.com>
12098
12099 PR target/105144
12100 * config/aarch64/t-aarch64 (s-aarch64-tune-md): Do move-if-change
12101 only if configured with --enable-maintainer-mode, otherwise compare
12102 tmp-aarch64-tune.md with $(srcdir)/config/aarch64/aarch64-tune.md and
12103 if they differ, emit a message and fail.
12104
12105 2022-04-04 Jakub Jelinek <jakub@redhat.com>
12106
12107 PR target/105144
12108 * config/aarch64/t-aarch64 (s-mddeps): Depend on s-aarch64-tune-md.
12109 * config/aarch64/aarch64-tune.md: Regenerated.
12110
12111 2022-04-04 Richard Biener <rguenther@suse.de>
12112
12113 PR tree-optimization/105132
12114 * tree-vect-stmts.cc (vectorizable_operation): Check that
12115 the input vectors have the same number of elements.
12116
12117 2022-04-04 Richard Biener <rguenther@suse.de>
12118
12119 PR middle-end/105140
12120 * fold-const.cc (fold_convertible_p): Allow a TYPE_P arg.
12121
12122 2022-04-03 Jeff Law <jeffreyalaw@gmail.com>
12123
12124 PR target/104987
12125 * config/iq2000/iq2000.md (bbi): New attribute, default to no.
12126 (delay slot descripts): Use different delay slot description when
12127 the insn as the "bbi" attribute.
12128 (bbi, bbin patterns): Set the bbi attribute to yes.
12129
12130 2022-04-03 Jakub Jelinek <jakub@redhat.com>
12131
12132 PR target/105123
12133 * config/i386/i386-expand.cc (ix86_expand_vector_init_general): Avoid
12134 using word as target for expand_simple_binop when doing ASHIFT and
12135 IOR.
12136
12137 2022-04-02 Xi Ruoyao <xry111@mengyan1223.wang>
12138
12139 * config/mips/mips.cc (mips_function_arg): Check if DECL_SIZE is
12140 NULL before dereferencing it.
12141
12142 2022-04-01 Qing Zhao <qing.zhao@oracle.com>
12143
12144 * config/i386/i386.cc (zero_all_st_registers): Return the value of
12145 num_of_st.
12146 (ix86_zero_call_used_regs): Update zeroed_hardregs set according to
12147 the return value of zero_all_st_registers.
12148 * doc/tm.texi: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
12149 * function.cc (gen_call_used_regs_seq): Add an assertion.
12150 * target.def: Update the documentation of TARGET_ZERO_CALL_USED_REGS.
12151
12152 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
12153
12154 PR target/102024
12155 * config/mips/mips.cc (mips_function_arg): Ignore zero-width
12156 fields, and inform if it causes a psABI change.
12157
12158 2022-04-01 Xi Ruoyao <xry111@mengyan1223.wang>
12159
12160 PR target/102024
12161 * config/mips/mips.cc (mips_fpr_return_fields): Detect C++
12162 zero-width bit-fields and set up an indicator.
12163 (mips_return_in_msb): Adapt for mips_fpr_return_fields change.
12164 (mips_function_value_1): Diagnose when the presense of a C++
12165 zero-width bit-field changes function returning in GCC 12.
12166
12167 2022-04-01 Jakub Jelinek <jakub@redhat.com>
12168
12169 PR tree-optimization/104645
12170 * tree-ssa-phiopt.cc (value_replacement): If assign has
12171 CONVERT_EXPR_CODE_P rhs_code, treat it like a preparation
12172 statement with constant evaluation.
12173
12174 2022-04-01 YunQiang Su <yunqiang.su@cipunited.com>
12175
12176 * config/mips/mips.cc (mips_expand_prologue):
12177 IPL is 8bit for MCU ASE.
12178
12179 2022-03-31 Bill Schmidt <wschmidt@linux.ibm.com>
12180
12181 PR target/104004
12182 * config/rs6000/rs6000-builtins.def (MFFSL): Mark nosoft.
12183 (MTFSB0): Likewise.
12184 (MTFSB1): Likewise.
12185 (SET_FPSCR_RN): Likewise.
12186 (SET_FPSCR_DRN): Mark nosoft and no32bit.
12187
12188 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
12189
12190 * doc/options.texi (Option file format): Clarifications around
12191 option definition records' help texts.
12192
12193 2022-03-31 Thomas Schwinge <thomas@codesourcery.com>
12194
12195 * optc-gen.awk <END>: Fix "Multiple different help strings" error
12196 diagnostic.
12197
12198 2022-03-31 Andre Vieira <andre.simoesdiasvieira@arm.com>
12199
12200 * config/aarch64/aarch64.cc (aarch64_vector_costs): Define
12201 determine_suggested_unroll_factor and m_has_avg.
12202 (determine_suggested_unroll_factor): New function.
12203 (aarch64_vector_costs::add_stmt_cost): Check for a qualifying pattern
12204 to set m_nosve_pattern.
12205 (aarch64_vector_costs::finish_costs): Use
12206 determine_suggested_unroll_factor.
12207 * config/aarch64/aarch64.opt (aarch64-vect-unroll-limit): New.
12208 * doc/invoke.texi: (aarch64-vect-unroll-limit): Document new option.
12209
12210 2022-03-31 Martin Jambor <mjambor@suse.cz>
12211
12212 PR ipa/103083
12213 * ipa-prop.h (ipa_ancestor_jf_data): New flag keep_null;
12214 (ipa_get_jf_ancestor_keep_null): New function.
12215 * ipa-prop.cc (ipa_set_ancestor_jf): Initialize keep_null field of the
12216 ancestor function.
12217 (compute_complex_assign_jump_func): Pass false to keep_null
12218 parameter of ipa_set_ancestor_jf.
12219 (compute_complex_ancestor_jump_func): Pass true to keep_null
12220 parameter of ipa_set_ancestor_jf.
12221 (update_jump_functions_after_inlining): Carry over keep_null from the
12222 original ancestor jump-function or merge them.
12223 (ipa_write_jump_function): Stream keep_null flag.
12224 (ipa_read_jump_function): Likewise.
12225 (ipa_print_node_jump_functions_for_edge): Print the new flag.
12226 * ipa-cp.cc (class ipcp_bits_lattice): Make various getters const. New
12227 member function known_nonzero_p.
12228 (ipcp_bits_lattice::known_nonzero_p): New.
12229 (ipcp_bits_lattice::meet_with_1): New parameter drop_all_ones,
12230 observe it.
12231 (ipcp_bits_lattice::meet_with): Likewise.
12232 (propagate_bits_across_jump_function): Simplify. Pass true in
12233 drop_all_ones when it is necessary.
12234 (propagate_aggs_across_jump_function): Take care of keep_null
12235 flag.
12236 (ipa_get_jf_ancestor_result): Propagate NULL accross keep_null
12237 jump functions.
12238
12239 2022-03-31 Martin Jambor <mjambor@suse.cz>
12240
12241 PR ipa/102513
12242 * ipa-cp.cc (decide_whether_version_node): Skip scalar values
12243 which do not fit the known value_range.
12244
12245 2022-03-31 Martin Jambor <mjambor@suse.cz>
12246
12247 PR ipa/103171
12248 * ipa-prop.cc (propagate_controlled_uses): Add a LOAD reference
12249 always when an ADDR_EXPR constant is known to reach a load because
12250 of inlining, not just when removing an ADDR reference.
12251
12252 2022-03-31 Richard Biener <rguenther@suse.de>
12253
12254 PR tree-optimization/105109
12255 * tree-ssa.cc (execute_update_addresses_taken): Suppress
12256 diagnostics on the load of the other complex component.
12257
12258 2022-03-31 Tom de Vries <tdevries@suse.de>
12259
12260 * config/nvptx/nvptx.h (ASM_SPEC): Use "-m sm_35" for -misa=sm_30.
12261
12262 2022-03-31 Richard Biener <rguenther@suse.de>
12263
12264 PR rtl-optimization/105091
12265 * gimple-expr.cc (mark_addressable): Handle TARGET_MEM_REF
12266 bases.
12267
12268 2022-03-31 Richard Biener <rguenther@suse.de>
12269
12270 Revert:
12271 2021-09-13 Richard Earnshaw <rearnsha@arm.com>
12272
12273 PR target/102125
12274 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding
12275 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO.
12276
12277 2022-03-31 Sebastian Huber <sebastian.huber@embedded-brains.de>
12278
12279 * gcov-io.cc (gcov_read_string): Reword documentation comment.
12280
12281 2022-03-30 Bill Schmidt <wschmidt@linux.ibm.com>
12282
12283 * config/rs6000/rs6000-builtins.def (NEG_V16QI): Move to [altivec]
12284 stanza.
12285 (NEG_V4SF): Likewise.
12286 (NEG_V4SI): Likewise.
12287 (NEG_V8HI): Likewise.
12288 (NEG_V2DF): Move to [vsx] stanza.
12289 (NEG_V2DI): Likewise.
12290
12291 2022-03-30 Vladimir N. Makarov <vmakarov@redhat.com>
12292
12293 PR middle-end/105032
12294 * lra-assigns.cc (find_reload_regno_insns): Modify loop condition.
12295
12296 2022-03-30 Tom de Vries <tdevries@suse.de>
12297 Tobias Burnus <tobias@codesourcery.com>
12298
12299 * doc/invoke.texi (march): Document __PTX_SM__.
12300 (mptx): Document __PTX_ISA_VERSION_MAJOR__ and
12301 __PTX_ISA_VERSION_MINOR__.
12302
12303 2022-03-30 Jakub Jelinek <jakub@redhat.com>
12304
12305 PR sanitizer/105093
12306 * ubsan.cc (instrument_object_size): If t is equal to inner and
12307 is a decl other than global var, punt. When emitting call to
12308 UBSAN_OBJECT_SIZE ifn, make sure base is addressable.
12309
12310 2022-03-30 Jakub Jelinek <jakub@redhat.com>
12311
12312 PR tree-optimization/105094
12313 * gimple-ssa-store-merging.cc (mem_valid_for_store_merging): Punt if
12314 bitsize <= 0 rather than just == 0.
12315
12316 2022-03-30 Tom de Vries <tdevries@suse.de>
12317
12318 * doc/invoke.texi (misa, mptx): Update.
12319 (march, march-map): Add.
12320
12321 2022-03-30 Thomas Schwinge <thomas@codesourcery.com>
12322
12323 * opt-functions.awk (n_args): New function.
12324 (lang_enabled_by): Merge function into...
12325 * optc-gen.awk <END>: ... sole user here.
12326 Improve diagnostics.
12327
12328 2022-03-29 Marek Polacek <polacek@redhat.com>
12329 Jakub Jelinek <jakub@redhat.com>
12330
12331 PR middle-end/103597
12332 * gimplify.cc (collect_fallthrough_labels): Don't push UNUSED_LABEL_Ps
12333 into labels. Maybe set prev to the statement preceding UNUSED_LABEL_P.
12334 (gimplify_cond_expr): Set UNUSED_LABEL_P.
12335 * tree.h (UNUSED_LABEL_P): New.
12336
12337 2022-03-29 Michael Meissner <meissner@linux.ibm.com>
12338
12339 * config/rs6000/vsx.md (vsx_extract_<mode>): Allow destination to
12340 be any VSX register.
12341
12342 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12343
12344 PR target/102024
12345 * config/aarch64/aarch64.cc (aapcs_vfp_sub_candidate): Handle
12346 zero-sized bit-fields. Detect cases where a warning may be needed.
12347 (aarch64_vfp_is_call_or_return_candidate): Emit a note if a
12348 zero-sized bit-field has caused parameter passing to change.
12349
12350 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12351
12352 PR target/102024
12353 * config/arm/arm.cc (aapcs_vfp_sub_candidate): Handle zero-sized
12354 bit-fields. Detect cases where a warning may be needed.
12355 (aapcs_vfp_is_call_or_return_candidate): Emit a note if
12356 a zero-sized bit-field has caused parameter passing to change.
12357
12358 2022-03-29 Richard Earnshaw <rearnsha@arm.com>
12359
12360 PR target/96882
12361 * config/arm/arm.cc (arm_get_pcs_model): Disable selection of
12362 ARM_PCS_AAPCS_LOCAL.
12363
12364 2022-03-29 Tom de Vries <tdevries@suse.de>
12365
12366 PR target/104857
12367 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Emit
12368 __PTX_ISA_VERSION_MAJOR__ and __PTX_ISA_VERSION_MINOR__.
12369 * config/nvptx/nvptx.cc (ptx_version_to_number): New function.
12370 * config/nvptx/nvptx-protos.h (ptx_version_to_number): Declare.
12371
12372 2022-03-29 Tom de Vries <tdevries@suse.de>
12373
12374 * config/nvptx/nvptx.opt (m64): Update help text to reflect that it
12375 is ignored.
12376
12377 2022-03-29 Tom de Vries <tdevries@suse.de>
12378
12379 PR target/104714
12380 * config/nvptx/nvptx.opt (march-map=*): Add aliases.
12381
12382 2022-03-29 Jan Hubicka <hubicka@ucw.cz>
12383
12384 * config/i386/i386-builtins.cc (ix86_vectorize_builtin_gather): Test
12385 TARGET_USE_GATHER_2PARTS and TARGET_USE_GATHER_4PARTS.
12386 * config/i386/i386.h (TARGET_USE_GATHER_2PARTS): New macro.
12387 (TARGET_USE_GATHER_4PARTS): New macro.
12388 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER_2PARTS): New tune
12389 (X86_TUNE_USE_GATHER_4PARTS): New tune
12390
12391 2022-03-29 Tom de Vries <tdevries@suse.de>
12392
12393 * config/nvptx/nvptx.opt (march): Add alias of misa.
12394
12395 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12396 Lulu Cheng <chenglulu@loongson.cn>
12397
12398 * doc/install.texi: Add LoongArch options section.
12399 * doc/invoke.texi: Add LoongArch options section.
12400 * doc/md.texi: Add LoongArch options section.
12401
12402 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12403 Lulu Cheng <chenglulu@loongson.cn>
12404
12405 * config/loongarch/loongarch-c.cc
12406
12407 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12408 Lulu Cheng <chenglulu@loongson.cn>
12409
12410 * config/loongarch/larchintrin.h: New file.
12411 * config/loongarch/loongarch-builtins.cc: New file.
12412
12413 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12414 Lulu Cheng <chenglulu@loongson.cn>
12415
12416 * config/host-linux.cc: Add LoongArch support.
12417 * config/loongarch/loongarch-protos.h: New file.
12418 * config/loongarch/loongarch-tune.h: Likewise.
12419 * config/loongarch/loongarch.cc: Likewise.
12420 * config/loongarch/loongarch.h: Likewise.
12421
12422 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12423 Lulu Cheng <chenglulu@loongson.cn>
12424
12425 * config/loongarch/constraints.md: New file.
12426 * config/loongarch/generic.md: New file.
12427 * config/loongarch/la464.md: New file.
12428 * config/loongarch/loongarch-ftypes.def: New file.
12429 * config/loongarch/loongarch-modes.def: New file.
12430 * config/loongarch/loongarch.md: New file.
12431 * config/loongarch/predicates.md: New file.
12432 * config/loongarch/sync.md: New file.
12433
12434 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12435 Lulu Cheng <chenglulu@loongson.cn>
12436
12437 * configure: Regenerate file.
12438
12439 2022-03-29 Chenghua Xu <xuchenghua@loongson.cn>
12440 Lulu Cheng <chenglulu@loongson.cn>
12441
12442 * common/config/loongarch/loongarch-common.cc: New file.
12443 * config/loongarch/genopts/genstr.sh: New file.
12444 * config/loongarch/genopts/loongarch-strings: New file.
12445 * config/loongarch/genopts/loongarch.opt.in: New file.
12446 * config/loongarch/loongarch-str.h: New file.
12447 * config/loongarch/gnu-user.h: New file.
12448 * config/loongarch/linux.h: New file.
12449 * config/loongarch/loongarch-cpu.cc: New file.
12450 * config/loongarch/loongarch-cpu.h: New file.
12451 * config/loongarch/loongarch-def.c: New file.
12452 * config/loongarch/loongarch-def.h: New file.
12453 * config/loongarch/loongarch-driver.cc: New file.
12454 * config/loongarch/loongarch-driver.h: New file.
12455 * config/loongarch/loongarch-opts.cc: New file.
12456 * config/loongarch/loongarch-opts.h: New file.
12457 * config/loongarch/loongarch.opt: New file.
12458 * config/loongarch/t-linux: New file.
12459 * config/loongarch/t-loongarch: New file.
12460 * config.gcc: Add LoongArch support.
12461 * configure.ac: Add LoongArch support.
12462
12463 2022-03-29 Thomas Schwinge <thomas@codesourcery.com>
12464
12465 * opt-functions.awk (lang_enabled_by): Fix 'enabledby_negargs'
12466 typo.
12467
12468 2022-03-29 Richard Biener <rguenther@suse.de>
12469
12470 PR tree-optimization/105080
12471 * tree-ssa-strlen.cc (printf_strlen_execute): Always init
12472 loops and SCEV.
12473
12474 2022-03-28 Indu Bhagat <indu.bhagat@oracle.com>
12475
12476 * ctfout.cc (ctf_preprocess): Use ctfc_get_num_ctf_vars instead.
12477 (output_ctf_vars): Likewise.
12478
12479 2022-03-28 Jason Merrill <jason@redhat.com>
12480
12481 PR c++/59426
12482 * doc/extend.texi: Refer to __is_trivial instead of __is_pod.
12483
12484 2022-03-28 H.J. Lu <hjl.tools@gmail.com>
12485
12486 PR target/105068
12487 * config/i386/sse.md (*ssse3_pshufbv8qi3): Also replace "Yv" with
12488 "Yw" in clobber.
12489
12490 2022-03-28 Tom de Vries <tdevries@suse.de>
12491
12492 PR target/104818
12493 * config/nvptx/gen-opt.sh (ptx_isa): Improve help text.
12494 * config/nvptx/nvptx-gen.opt: Regenerate.
12495 * config/nvptx/nvptx.opt (misa, mptx, ptx_version): Improve help text.
12496 * config/nvptx/t-nvptx (s-nvptx-gen-opt): Add missing dependency on
12497 gen-opt.sh.
12498
12499 2022-03-28 David Malcolm <dmalcolm@redhat.com>
12500
12501 PR analyzer/104308
12502 * gimple-fold.cc (gimple_fold_builtin_memory_op): When optimizing
12503 to loads then stores, set the location of the new load stmt.
12504
12505 2022-03-28 Richard Biener <rguenther@suse.de>
12506
12507 PR tree-optimization/105070
12508 * tree-switch-conversion.h
12509 (bit_test_cluster::hoist_edge_and_branch_if_true): Add location
12510 argument.
12511 * tree-switch-conversion.cc
12512 (bit_test_cluster::hoist_edge_and_branch_if_true): Annotate
12513 cond with location.
12514 (bit_test_cluster::emit): Annotate all generated expressions
12515 with location.
12516
12517 2022-03-28 Andre Vieira <andre.simoesdiasvieira@arm.com>
12518
12519 * config/aarch64/aarch64-cores.def: Update Neoverse N2 core entry.
12520
12521 2022-03-28 liuhongt <hongtao.liu@intel.com>
12522
12523 PR target/105066
12524 * config/i386/sse.md (vec_set<mode>_0): Change attr "isa" of
12525 alternative 4 from sse4_noavx to noavx.
12526
12527 2022-03-28 Jakub Jelinek <jakub@redhat.com>
12528
12529 PR tree-optimization/105056
12530 * tree-predcom.cc (component::component): Initialize also comp_step.
12531
12532 2022-03-27 H.J. Lu <hjl.tools@gmail.com>
12533
12534 PR target/105068
12535 * config/i386/sse.md (*ssse3_pshufbv8qi3): Replace "Yv" with
12536 "Yw".
12537
12538 2022-03-26 Roger Sayle <roger@nextmovesoftware.com>
12539
12540 PR middle-end/104885
12541 * calls.cc (mark_stack_region_used): Check that the region
12542 is within the allocated size of stack_usage_map.
12543
12544 2022-03-26 Jakub Jelinek <jakub@redhat.com>
12545
12546 PR rtl-optimization/103775
12547 * recog.cc (check_invalid_inc_dec): New function.
12548 (insn_invalid_p): Return 1 if REG_INC operand overlaps
12549 any stored REGs.
12550
12551 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
12552
12553 PR target/105058
12554 * config/i386/sse.md (loadiwkey): Replace "v" with "x".
12555 (aes<aesklvariant>u8): Likewise.
12556
12557 2022-03-26 H.J. Lu <hjl.tools@gmail.com>
12558
12559 PR target/105052
12560 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
12561 Replace "Yv" with "x".
12562 (ssse3_ph<plusminus_mnemonic>dv2si3): Likewise.
12563 (ssse3_psign<mode>3): Likewise.
12564
12565 2022-03-26 Hans-Peter Nilsson <hp@axis.com>
12566
12567 * reload.cc (find_reloads): Align comment with code where
12568 considering the intersection of register classes then tweaking the
12569 regclass for the current alternative or rejecting it.
12570
12571 2022-03-25 Christophe Lyon <christohe.lyon@arm.com>
12572
12573 PR target/104882
12574 Revert
12575 2021-06-11 Christophe Lyon <christophe.lyon@linaro.org>
12576
12577 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): Delete.
12578 (mve_vec_unpack<US>_hi_<mode>): Delete.
12579 (@mve_vec_pack_trunc_lo_<mode>): Delete.
12580 (mve_vmovntq_<supf><mode>): Remove '@' prefix.
12581 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move back
12582 from vec-common.md.
12583 (vec_unpack<US>_lo_<mode>): Likewise.
12584 (vec_pack_trunc_<mode>): Rename from
12585 neon_quad_vec_pack_trunc_<mode>.
12586 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): Delete.
12587 (vec_unpack<US>_lo_<mode>): Delete.
12588 (vec_pack_trunc_<mode>): Delete.
12589
12590 2022-03-25 Vladimir N. Makarov <vmakarov@redhat.com>
12591
12592 PR middle-end/104971
12593 * lra-lives.cc (process_bb_lives): Check hard_regs_live for hard
12594 regs to clear remove_p flag.
12595
12596 2022-03-25 Richard Biener <rguenther@suse.de>
12597
12598 PR tree-optimization/105053
12599 * tree-vect-loop.cc (vect_create_epilog_for_reduction): Pick
12600 the correct live-out stmt for a reduction chain.
12601
12602 2022-03-25 Richard Biener <rguenther@suse.de>
12603
12604 PR middle-end/105049
12605 * tree.cc (uniform_vector_p): Recurse for VECTOR_CST or
12606 CONSTRUCTOR first elements.
12607
12608 2022-03-25 Tobias Burnus <tobias@codesourcery.com>
12609
12610 PR analyzer/103533
12611 * doc/invoke.texi (Static Analyzer Options): Move
12612 @ignore block after @gccoptlist's '}' for 'make pdf'.
12613
12614 2022-03-25 David Malcolm <dmalcolm@redhat.com>
12615
12616 PR analyzer/104954
12617 * doc/invoke.texi (Static Analyzer Options): Add
12618 -fdump-analyzer-untracked.
12619
12620 2022-03-25 Avinash Sonawane <rootkea@gmail.com>
12621
12622 PR analyzer/103533
12623 * doc/invoke.texi: Document that enabling taint analyzer
12624 checker disables some warnings from `-fanalyzer`.
12625
12626 2022-03-24 Alexandre Oliva <oliva@adacore.com>
12627
12628 PR debug/104564
12629 * gimple-harden-conditionals.cc (detach_value): Keep temps
12630 anonymous.
12631
12632 2022-03-24 Alexandre Oliva <oliva@adacore.com>
12633
12634 PR middle-end/104975
12635 * gimple-harden-conditionals.cc
12636 (pass_harden_compares::execute): Force split in case of
12637 multiple edges.
12638
12639 2022-03-24 Jakub Jelinek <jakub@redhat.com>
12640
12641 PR c++/105035
12642 * fold-const.cc (operand_equal_p) <case COMPONENT_REF>: If either
12643 field0 or field1 is not a FIELD_DECL, return false.
12644
12645 2022-03-24 Richard Biener <rguenther@suse.de>
12646
12647 * tree-predcom.cc (chain::chain): Add CTOR.
12648 (component::component): Likewise.
12649 (pcom_worker::release_chain): Use delete.
12650 (release_components): Likewise.
12651 (pcom_worker::filter_suitable_components): Likewise.
12652 (pcom_worker::split_data_refs_to_components): Use new.
12653 (make_invariant_chain): Likewise.
12654 (make_rooted_chain): Likewise.
12655 (pcom_worker::combine_chains): Likewise.
12656 * tree-vect-loop.cc (vect_create_epilog_for_reduction):
12657 Make sure to release previously constructed scalar_results.
12658 * tree-vect-stmts.cc (vectorizable_load): Use auto_vec
12659 for vec_offsets.
12660 * vr-values.cc (simplify_using_ranges::~simplify_using_ranges):
12661 Release m_flag_set_edges.
12662
12663 2022-03-24 Siddhesh Poyarekar <siddhesh@gotplt.org>
12664
12665 PR tree-optimization/104970
12666 * tree-object-size.cc (parm_object_size): Restrict size
12667 computation scenarios to explicit access attributes.
12668
12669 2022-03-24 Kewen Lin <linkw@linux.ibm.com>
12670
12671 PR target/104967
12672 * config/rs6000/rs6000-c.cc (find_instance): Skip instances with null
12673 function types.
12674
12675 2022-03-23 Richard Biener <rguenther@suse.de>
12676
12677 PR target/102125
12678 * gimple-fold.cc (gimple_fold_builtin_memory_op): Allow the
12679 use of movmisalign when either the source or destination
12680 decl is properly aligned.
12681
12682 2022-03-23 Richard Biener <rguenther@suse.de>
12683
12684 PR rtl-optimization/105028
12685 * ira-color.cc (form_threads_from_copies): Remove unnecessary
12686 copying of the sorted_copies tail.
12687
12688 2022-03-23 Martin Liska <mliska@suse.cz>
12689
12690 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
12691 Use %qs in format.
12692 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
12693 Reword the error message.
12694
12695 2022-03-23 liuhongt <hongtao.liu@intel.com>
12696
12697 PR target/104976
12698 * config/i386/sse.md (ssePSmodelower): New.
12699 (*avx_cmp<mode>3_ltint_not): Force_reg operand before
12700 lowpart_subreg to avoid NULL_RTX.
12701 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>,
12702 <avx512>_fcmaddc_<mode>_mask1<round_expand_name>,
12703 fma_<mode>_fmaddc_bcst, fma_<mode>_fcmaddc_bcst,
12704 <avx512>_<complexopname>_<mode>_mask<round_name>,
12705 avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>,
12706 avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>,
12707 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
12708 avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>,
12709 float<floatunssuffix><mode>v4hf2,
12710 float<floatunssuffix>v2div2hf2,
12711 fix<fixunssuffix>_truncv4hf<mode>2,
12712 fix<fixunssuffix>_truncv2hfv2di2, extendv4hf<mode>2,
12713 extendv2hfv2df2,
12714 trunc<mode>v4hf2,truncv2dfv2hf2,
12715 *avx512bw_permvar_truncv16siv16hi_1,
12716 *avx512bw_permvar_truncv16siv16hi_1_hf,
12717 *avx512f_permvar_truncv8siv8hi_1,
12718 *avx512f_permvar_truncv8siv8hi_1_hf,
12719 *avx512f_vpermvar_truncv8div8si_1,
12720 *avx512f_permvar_truncv32hiv32qi_1,
12721 *avx512f_permvar_truncv16hiv16qi_1,
12722 *avx512f_permvar_truncv4div4si_1,
12723 *avx512f_pshufb_truncv8hiv8qi_1,
12724 *avx512f_pshufb_truncv4siv4hi_1,
12725 *avx512f_pshufd_truncv2div2si_1,
12726 sdot_prod<mode>, avx2_pblend<ssemodesuffix>_1,
12727 ashrv2di3,ashrv2di3,usdot_prod<mode>): Ditto.
12728
12729 2022-03-22 Tom de Vries <tdevries@suse.de>
12730
12731 PR target/104925
12732 * config/nvptx/nvptx.md (define_insn "nvptx_uniform_warp_check"):
12733 Use % as register prefix.
12734
12735 2022-03-22 Tom de Vries <tdevries@suse.de>
12736
12737 * config/nvptx/nvptx.cc (nvptx_scalar_mode_supported_p)
12738 (nvptx_libgcc_floating_mode_supported_p): Only enable HFmode for
12739 mexperimental.
12740
12741 2022-03-22 Tom de Vries <tdevries@suse.de>
12742
12743 * config/nvptx/nvptx.opt (mexperimental): New option.
12744
12745 2022-03-22 Tom de Vries <tdevries@suse.de>
12746
12747 PR target/104957
12748 * config/nvptx/nvptx-protos.h (nvptx_asm_output_def_from_decls): Declare.
12749 * config/nvptx/nvptx.cc (write_fn_proto_1): Don't add function marker
12750 for alias.
12751 (SET_ASM_OP, NVPTX_ASM_OUTPUT_DEF): New macro def.
12752 (nvptx_asm_output_def_from_decls): New function.
12753 * config/nvptx/nvptx.h (ASM_OUTPUT_DEF): New macro def, define to
12754 gcc_unreachable ().
12755 (ASM_OUTPUT_DEF_FROM_DECLS): New macro def, define to
12756 nvptx_asm_output_def_from_decls.
12757 * config/nvptx/nvptx.opt (malias): New opt.
12758
12759 2022-03-22 Tom de Vries <tdevries@suse.de>
12760
12761 PR target/104916
12762 PR target/104783
12763 * config/nvptx/nvptx.md (define_expand "omp_simt_exit"): Emit warp
12764 sync (or uniform warp check for mptx < 6.0).
12765
12766 2022-03-22 Richard Biener <rguenther@suse.de>
12767
12768 PR tree-optimization/105012
12769 * tree-if-conv.cc (ifcvt_local_dce): Only call
12770 dse_classify_store when we have a VDEF.
12771
12772 2022-03-22 Martin Liska <mliska@suse.cz>
12773
12774 PR target/104902
12775 * config/nvptx/nvptx.cc (handle_ptx_version_option):
12776 Fix option wrapping in an error message.
12777
12778 2022-03-22 Martin Liska <mliska@suse.cz>
12779
12780 PR target/104903
12781 * config/rs6000/rs6000-c.cc (altivec_resolve_overloaded_builtin):
12782 Wrap const keyword.
12783
12784 2022-03-22 Martin Liska <mliska@suse.cz>
12785
12786 * config/v850/v850-c.cc (pop_data_area): Fix typo in pragma
12787 name.
12788
12789 2022-03-22 Martin Liska <mliska@suse.cz>
12790
12791 PR target/104898
12792 * config/rs6000/rs6000.cc (rs6000_option_override_internal):
12793 Use %qs instead of (%qs).
12794
12795 2022-03-22 Martin Liska <mliska@suse.cz>
12796
12797 PR target/104898
12798 * config/i386/i386-options.cc (ix86_option_override_internal):
12799 Use '%qs' instead of '(%qs)'.
12800
12801 2022-03-22 Martin Liska <mliska@suse.cz>
12802
12803 PR target/104898
12804 * config/aarch64/aarch64.cc (aarch64_handle_attr_arch):
12805 Use 'qs' and remove usage '(%qs)'.
12806 (aarch64_handle_attr_cpu): Likewise.
12807 (aarch64_handle_attr_tune): Likewise.
12808 (aarch64_handle_attr_isa_flags): Likewise.
12809
12810 2022-03-22 Tamar Christina <tamar.christina@arm.com>
12811 Andre Vieira <andre.simoesdiasvieira@arm.com>
12812
12813 * config/aarch64/aarch64.cc (neoversev1_regmove_cost): New tuning
12814 struct.
12815 (neoversev1_tunings): Use neoversev1_regmove_cost and update store_int
12816 cost.
12817 (neoverse512tvb_tunings): Likewise.
12818
12819 2022-03-22 Tamar Christina <tamar.christina@arm.com>
12820 Andre Vieira <andre.simoesdiasvieira@arm.com>
12821
12822 * config/aarch64/aarch64.cc (demeter_addrcost_table,
12823 demeter_regmove_cost, demeter_advsimd_vector_cost,
12824 demeter_sve_vector_cost, demeter_scalar_issue_info,
12825 demeter_advsimd_issue_info, demeter_sve_issue_info,
12826 demeter_vec_issue_info, demeter_vector_cost,
12827 demeter_tunings): New tuning structs.
12828 (aarch64_ve_op_count::rename_cycles_per_iter): Enable for demeter
12829 tuning.
12830 * config/aarch64/aarch64-cores.def: Add entry for demeter.
12831 * config/aarch64/aarch64-tune.md (tune): Add demeter to list.
12832
12833 2022-03-22 Tamar Christina <tamar.christina@arm.com>
12834 Andre Vieira <andre.simoesdiasvieira@arm.com>
12835
12836 * config/aarch64/aarch64-protos.h (struct cpu_memmov_cost): New struct.
12837 (struct tune_params): Change type of memmov_cost to use cpu_memmov_cost.
12838 * config/aarch64/aarch64.cc (aarch64_memory_move_cost): Update all
12839 tunings to use cpu_memmov_cost struct.
12840
12841 2022-03-22 Tamar Christina <tamar.christina@arm.com>
12842 Andre Vieira <andre.simoesdiasvieira@arm.com>
12843
12844 * config/aarch64/aarch64.cc (neoversen2_addrcost_table,
12845 neoversen2_regmove_cost, neoversen2_advsimd_vector_cost,
12846 neoversen2_sve_vector_cost, neoversen2_scalar_issue_info,
12847 neoversen2_advsimd_issue_info, neoversen2_sve_issue_info,
12848 neoversen2_vec_issue_info, neoversen2_tunings): New structs.
12849 (neoversen2_tunings): Use new structs and update tuning flags.
12850 (aarch64_vec_op_count::rename_cycles_per_iter): Enable for neoversen2
12851 tuning.
12852
12853 2022-03-22 Andre Vieira <andre.simoesdiasvieira@arm.com>
12854
12855 * config/aarch64/aarch64.h (AARCH64_FL_FOR_ARCH9): Add FP16 feature
12856 bit.
12857
12858 2022-03-22 liuhongt <hongtao.liu@intel.com>
12859
12860 PR target/104982
12861 * config/i386/i386.md (*jcc_bt<mode>_mask): Extend the
12862 following splitter to reversed condition.
12863
12864 2022-03-22 Jakub Jelinek <jakub@redhat.com>
12865
12866 PR rtl-optimization/104989
12867 * calls.cc (expand_call): Don't set ECF_NORETURN in flags after
12868 sorry for passing too large argument, instead set sibcall_failure
12869 for pass == 0, or a new normal_failure flag otherwise. If
12870 normal_failure is set, don't assert all stack has been deallocated
12871 at the end and throw away the whole insn sequence.
12872
12873 2022-03-22 Qian Jianhua <qianjh@cn.fujitsu.com>
12874
12875 * print-tree.cc: Change array length
12876
12877 2022-03-22 Hongyu Wang <hongyu.wang@intel.com>
12878
12879 PR target/104978
12880 * config/i386/sse.md
12881 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name):
12882 Use avx512f_movsf_mask instead of vmovaps or vblend, and
12883 force_reg before lowpart_subreg.
12884 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name): Likewise.
12885
12886 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
12887
12888 PR target/105000
12889 * common/config/i386/i386-common.cc
12890 (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Replace
12891 OPTION_MASK_ISA2_AVX512F_UNSET with OPTION_MASK_ISA2_SSE_UNSET.
12892
12893 2022-03-21 H.J. Lu <hjl.tools@gmail.com>
12894
12895 PR target/104998
12896 * common/config/i386/cpuinfo.h (get_available_features): Pass
12897 0x19 to __cpuid for bit_AESKLE. Enable FEATURE_AESKLE only if
12898 bit_AESKLE is set.
12899
12900 2022-03-21 Richard Sandiford <richard.sandiford@arm.com>
12901
12902 PR middle-end/104869
12903 * rtl-ssa/accesses.h (clobber_group::prev_clobber): Declare.
12904 (clobber_group::next_clobber): Likewise.
12905 (def_lookup::prev_def): Rename to...
12906 (def_lookup::last_def_of_prev_group): ...this.
12907 (def_lookup::next_def): Rename to...
12908 (def_lookup::first_def_of_next_group): ...this.
12909 (def_lookup::matching_or_prev_def): Rename to...
12910 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
12911 (def_lookup::matching_or_next_def): Rename to...
12912 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
12913 (def_lookup::prev_def): New function, taking the lookup insn as
12914 argument.
12915 (def_lookup::next_def): Likewise.
12916 * rtl-ssa/member-fns.inl (def_lookup::prev_def): Rename to...
12917 (def_lookup::last_def_of_prev_group): ...this.
12918 (def_lookup::next_def): Rename to...
12919 (def_lookup::first_def_of_next_group): ...this.
12920 (def_lookup::matching_or_prev_def): Rename to...
12921 (def_lookup::matching_set_or_last_def_of_prev_group): ...this.
12922 (def_lookup::matching_or_next_def): Rename to...
12923 (def_lookup::matching_set_or_first_def_of_next_group): ...this.
12924 * rtl-ssa/movement.h (restrict_movement_for_dead_range): Update after
12925 above renaming.
12926 * rtl-ssa/accesses.cc (clobber_group::prev_clobber): New function.
12927 (clobber_group::next_clobber): Likewise.
12928 (def_lookup::prev_def): Likewise.
12929 (def_lookup::next_def): Likewise.
12930 (function_info::make_use_available): Pass the lookup insn to
12931 def_lookup::prev_def and def_lookup::next_def.
12932
12933 2022-03-21 Martin Liska <mliska@suse.cz>
12934
12935 * doc/invoke.texi: Document min-pagesize parameter.
12936
12937 2022-03-21 Richard Biener <rguenther@suse.de>
12938
12939 * tree-ssa-loop-niter.cc (estimate_numbers_of_iterations): Dump
12940 we are estimating niter of loop.
12941
12942 2022-03-21 Kito Cheng <kito.cheng@sifive.com>
12943
12944 * common/config/riscv/riscv-common.cc (riscv_ext_flag_table):
12945 Update flag name and mask name.
12946 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Define
12947 misc macro for vector extensions.
12948 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): Rename to ...
12949 (MASK_VECTOR_ELEN_32): ... this.
12950 (MASK_VECTOR_EEW_64): Rename to ...
12951 (MASK_VECTOR_ELEN_64): ... this.
12952 (MASK_VECTOR_EEW_FP_32): Rename to ...
12953 (MASK_VECTOR_ELEN_FP_32): ... this.
12954 (MASK_VECTOR_EEW_FP_64): Rename to ...
12955 (MASK_VECTOR_ELEN_FP_64): ... this.
12956 (TARGET_VECTOR_ELEN_32): New.
12957 (TARGET_VECTOR_ELEN_64): Ditto.
12958 (TARGET_VECTOR_ELEN_FP_32): Ditto.
12959 (TARGET_VECTOR_ELEN_FP_64): Ditto.
12960 (TARGET_MIN_VLEN): Ditto.
12961 * config/riscv/riscv.opt (riscv_vector_eew_flags): Rename to ...
12962 (riscv_vector_elen_flags): ... this.
12963
12964 2022-03-21 Hongyu Wang <hongyu.wang@intel.com>
12965
12966 PR target/104977
12967 * config/i386/sse.md
12968 (avx512fp16_fma<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>):
12969 Correct round operand for intel dialect.
12970
12971 2022-03-19 Arthur Cohen <arthur.cohen@embecosm.com>
12972
12973 * diagnostic.cc (diagnostic_cc_tests): Rename to...
12974 (c_diagnostic_cc_tests): ...this.
12975 * opt-problem.cc (opt_problem_cc_tests): Rename to...
12976 (c_opt_problem_cc_tests): ...this.
12977 * selftest-run-tests.cc (selftest::run_tests): No longer run
12978 opt_problem_cc_tests or diagnostic_cc_tests.
12979 * selftest.h (diagnostic_cc_tests): Remove declaration.
12980 (opt_problem_cc_tests): Likewise.
12981
12982 2022-03-19 Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>
12983
12984 PR jit/63854
12985 * hash-traits.h (struct typed_const_free_remove): New.
12986 (struct free_string_hash): New.
12987 * pass_manager.h: Use free_string_hash.
12988 * passes.cc (pass_manager::register_pass_name): Use free_string_hash.
12989 (pass_manager::~pass_manager): Delete allocated m_name_to_pass_map.
12990
12991 2022-03-19 Jakub Jelinek <jakub@redhat.com>
12992
12993 PR middle-end/104971
12994 * config/i386/i386-expand.cc
12995 (ix86_expand_builtin) <case IX86_BUILTIN_READ_FLAGS>: If ignore,
12996 don't push/pop anything and just return const0_rtx.
12997
12998 2022-03-18 Vladimir N. Makarov <vmakarov@redhat.com>
12999
13000 PR rtl-optimization/104961
13001 * lra-assigns.cc (find_reload_regno_insns): Process reload pseudo clobber.
13002
13003 2022-03-18 Jason Merrill <jason@redhat.com>
13004
13005 * tree.h (IDENTIFIER_LENGTH): Add comment.
13006
13007 2022-03-18 Jakub Jelinek <jakub@redhat.com>
13008
13009 PR middle-end/99578
13010 PR middle-end/100680
13011 PR tree-optimization/100834
13012 * params.opt (--param=min-pagesize=): New parameter.
13013 * pointer-query.cc
13014 (compute_objsize_r) <case ARRAY_REF>: Formatting fix.
13015 (compute_objsize_r) <case INTEGER_CST>: Use maximum object size instead
13016 of zero for pointer constants equal or larger than min-pagesize.
13017
13018 2022-03-18 Tom de Vries <tdevries@suse.de>
13019
13020 * gimplify.cc (gimplify_omp_for): Set location using 'input_location'.
13021 Set gfor location only when dealing with a OMP_TASKLOOP.
13022
13023 2022-03-18 Tom de Vries <tdevries@suse.de>
13024
13025 * gimplify.cc (gimplify_omp_for): Set taskloop location.
13026
13027 2022-03-18 Tom de Vries <tdevries@suse.de>
13028
13029 PR target/104952
13030 * omp-low.cc (lower_rec_input_clauses): Make sure GOMP_SIMT_XCHG_BFLY
13031 is executed unconditionally.
13032
13033 2022-03-18 liuhongt <hongtao.liu@intel.com>
13034
13035 PR target/104974
13036 * config/i386/i386.md (*movhi_internal): Set attr type from HI
13037 to HF for alternative 12 under TARGET_AVX512FP16.
13038
13039 2022-03-18 Cui,Lili <lili.cui@intel.com>
13040
13041 PR target/104963
13042 * config/i386/i386.h (PTA_SAPPHIRERAPIDS): change it to base on ICX.
13043 * doc/invoke.texi: Update documents for Intel sapphirerapids.
13044
13045 2022-03-17 Roger Sayle <roger@nextmovesoftware.com>
13046
13047 PR target/86722
13048 PR tree-optimization/90356
13049 * config/i386/i386.md (*movtf_internal): Don't guard
13050 standard_sse_constant_p clause by optimize_function_for_size_p.
13051 (*movdf_internal): Likewise.
13052 (*movsf_internal): Likewise.
13053
13054 2022-03-17 Andrew MacLeod <amacleod@redhat.com>
13055
13056 PR tree-optimization/102943
13057 * gimple-range-cache.cc (ranger_cache::range_from_dom): Find range via
13058 dominators and apply intermediary outgoing edge ranges.
13059
13060 2022-03-17 Richard Biener <rguenther@suse.de>
13061
13062 PR tree-optimization/104960
13063 * passes.def: Add pass parameter to pass_sink_code, mark
13064 last one to unsplit edges.
13065 * tree-ssa-sink.cc (pass_sink_code::set_pass_param): New.
13066 (pass_sink_code::execute): Always execute TODO_cleanup_cfg
13067 when we need to unsplit edges.
13068
13069 2022-03-17 Jakub Jelinek <jakub@redhat.com>
13070
13071 PR middle-end/103984
13072 * gimplify.cc (gimplify_target_expr): Gimplify type sizes and
13073 TARGET_EXPR_INITIAL into a temporary sequence, then push clobbers
13074 and asan unpoisioning, then append the temporary sequence and
13075 finally the TARGET_EXPR_CLEANUP clobbers.
13076
13077 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13078
13079 * config/i386/sse.md: Delete corrupt character/typo.
13080
13081 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13082
13083 PR target/94680
13084 * config/i386/sse.md (sse2_movq128): New define_expand to
13085 preserve previous named instruction.
13086 (*sse2_movq128_<mode>): Renamed from sse2_movq128, and
13087 generalized to VI8F_128 (both V2DI and V2DF).
13088
13089 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
13090
13091 PR tree-optimization/104941
13092 * tree-object-size.cc (size_for_offset): Make useless conversion
13093 check lighter and assign result of fold_convert to OFFSET.
13094
13095 2022-03-16 H.J. Lu <hjl.tools@gmail.com>
13096
13097 PR target/104890
13098 * config/i386/x86gprintrin.h: Also check _SOFT_FLOAT before
13099 pushing target("general-regs-only").
13100
13101 2022-03-16 Kito Cheng <kito.cheng@sifive.com>
13102
13103 * common/config/riscv/riscv-common.cc (riscv_ext_version_table):
13104 Add version info for zk, zks and zkn.
13105
13106 2022-03-16 LiaoShihua <shihua@iscas.ac.cn>
13107
13108 * common/config/riscv/riscv-common.cc
13109 (riscv_combine_info): New.
13110 (riscv_subset_list::handle_combine_ext): Combine back into zk to
13111 maintain the canonical order in isa strings.
13112 (riscv_subset_list::parse): Ditto.
13113 * config/riscv/riscv-subset.h (handle_combine_ext): New.
13114
13115 2022-03-16 Richard Biener <rguenther@suse.de>
13116
13117 PR tree-optimization/102008
13118 * passes.def: Move the added code sinking pass before the
13119 preceeding phiopt pass.
13120
13121 2022-03-16 Patrick Palka <ppalka@redhat.com>
13122
13123 PR c++/96780
13124 * doc/invoke.texi (C++ Dialect Options): Document
13125 -ffold-simple-inlines.
13126
13127 2022-03-16 Siddhesh Poyarekar <siddhesh@gotplt.org>
13128
13129 PR tree-optimization/104942
13130 * tree-object-size.cc (alloc_object_size): Remove STRIP_NOPS.
13131
13132 2022-03-16 Jakub Jelinek <jakub@redhat.com>
13133
13134 PR target/104910
13135 * config/aarch64/aarch64.cc (aarch64_load_symref_appropriately): Copy
13136 imm rtx.
13137
13138 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13139 Richard Biener <rguenther@suse.de>
13140
13141 * gimple-match-head.cc (single_use): Implement inline using a
13142 single loop.
13143
13144 2022-03-16 Roger Sayle <roger@nextmovesoftware.com>
13145
13146 * match.pd (X CMP X -> true): Test tree_expr_maybe_nan_p
13147 instead of HONOR_NANS.
13148 (X LTGT X -> false): Enable if X is not tree_expr_maybe_nan_p, as
13149 this can't trap/signal.
13150
13151 2022-03-16 liuhongt <hongtao.liu@intel.com>
13152
13153 PR target/104946
13154 * config/i386/i386-builtin.def (BDESC): Add
13155 CODE_FOR_sse4_1_blendvpd for IX86_BUILTIN_BLENDVPD.
13156 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
13157 __builtin_ia32_blendvpd w/o sse4.2
13158
13159 2022-03-15 Peter Bergner <bergner@linux.ibm.com>
13160
13161 PR target/104923
13162 * config/rs6000/predicates.md (mma_disassemble_output_operand): Restrict
13163 acceptable MEM addresses.
13164
13165 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13166
13167 PR target/91229
13168 * config/riscv/riscv.cc (riscv_pass_aggregate_in_fpr_pair_p,
13169 riscv_pass_aggregate_in_fpr_and_gpr_p): Pass OPT_Wpsabi instead of 0
13170 to warning calls.
13171
13172 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13173
13174 PR target/104890
13175 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Use no-mmx,no-sse
13176 instead of general-regs-only.
13177
13178 2022-03-15 Roger Sayle <roger@nextmovesoftware.com>
13179 Marc Glisse <marc.glisse@inria.fr>
13180 Richard Biener <rguenther@suse.de>
13181
13182 PR tree-optimization/101895
13183 * match.pd (vec_same_elem_p): Handle CONSTRUCTOR_EXPR def.
13184 (plus (vec_perm (mult ...) ...) ...): New reordering simplification.
13185
13186 2022-03-15 Jakub Jelinek <jakub@redhat.com>
13187
13188 PR rtl-optimization/104814
13189 * ifcvt.cc (find_if_case_1, find_if_case_2): Punt if test_bb doesn't
13190 end with onlyjump_p. Assume BB_END (test_bb) is always non-NULL.
13191
13192 2022-03-15 Martin Sebor <msebor@redhat.com>
13193
13194 PR middle-end/104436
13195 * gimple-ssa-warn-access.cc (pass_waccess::check_dangling_stores):
13196 Check for warning suppression. Avoid by-value arguments transformed
13197 into by-transparent-reference.
13198
13199 2022-03-14 Roger Sayle <roger@nextmovesoftware.com>
13200 Uroš Bizjak <ubizjak@gmail.com>
13201
13202 * config/i386/i386.md (peephole2 xorl;movb -> movzbl): Disable
13203 transformation when *zero_extend<mode>si2 is not available.
13204
13205 2022-03-14 Xi Ruoyao <xry111@mengyan1223.wang>
13206
13207 * config/mips/mips.h (SUBTARGET_SHADOW_OFFSET): Define.
13208 * config/mips/mips.cc (mips_option_override): Make
13209 -fsanitize=address imply -fasynchronous-unwind-tables. This is
13210 needed by libasan for stack backtrace on MIPS.
13211 (mips_asan_shadow_offset): Return SUBTARGET_SHADOW_OFFSET.
13212
13213 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13214
13215 PR debug/104778
13216 * lra.cc (lra_substitute_pseudo): For debug_p mode, simplify
13217 SUBREG, ZERO_EXTEND, SIGN_EXTEND, FLOAT or UNSIGNED_FLOAT if recursive
13218 call simplified the first operand into VOIDmode constant.
13219
13220 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13221
13222 PR tree-optimization/102586
13223 * doc/extend.texi (__builtin_clear_padding): Clearify that for C++
13224 argument type should be pointer to trivially-copyable type unless it
13225 is address of a variable or parameter.
13226
13227 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13228
13229 PR target/99754
13230 * config/i386/emmintrin.h (_mm_loadu_si32): Put loaded value into
13231 first rather than last element of the vector, use __m32_u to do
13232 a really unaligned load, use just 0 instead of (int)0.
13233 (_mm_loadu_si16): Put loaded value into first rather than last
13234 element of the vector, use __m16_u to do a really unaligned load,
13235 use just 0 instead of (short)0.
13236
13237 2022-03-14 Jakub Jelinek <jakub@redhat.com>
13238
13239 PR other/104899
13240 * config/bfin/bfin.cc (bfin_handle_longcall_attribute): Fix a typo
13241 in diagnostic message - cannott -> cannot. Use %< and %> around
13242 names of attribute. Avoid too long line.
13243 * range-op.cc (operator_logical_and::op1_range): Fix up a typo
13244 in comment - cannott -> cannot. Use 2 spaces after . instead of one.
13245
13246 2022-03-14 liuhongt <hongtao.liu@intel.com>
13247
13248 PR target/104666
13249 * config/i386/i386-expand.cc
13250 (ix86_check_builtin_isa_match): New func.
13251 (ix86_expand_builtin): Move code to
13252 ix86_check_builtin_isa_match and call it.
13253 * config/i386/i386-protos.h
13254 (ix86_check_builtin_isa_match): Declare.
13255 * config/i386/i386.cc (ix86_gimple_fold_builtin): Don't fold
13256 builtin into gimple when isa mismatches.
13257
13258 2022-03-13 Tobias Burnus <tobias@codesourcery.com>
13259
13260 * doc/invoke.texi: Fix typos.
13261 * doc/tm.texi.in: Remove duplicated word.
13262 * doc/tm.texi: Regenerate.
13263
13264 2022-03-12 Segher Boessenkool <segher@kernel.crashing.org>
13265
13266 PR target/104829
13267 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Don't output
13268 "ppc" and "ppc64" based on rs6000_cpu.
13269
13270 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13271
13272 PR middle-end/100280
13273 PR middle-end/104892
13274 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
13275 Remove special handling of 'GOMP_MAP_FORCE_TOFROM'.
13276
13277 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13278
13279 PR middle-end/100280
13280 PR middle-end/104086
13281 * omp-oacc-kernels-decompose.cc (omp_oacc_kernels_decompose_1):
13282 Mark variables used in 'present' clauses as addressable.
13283 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Gracefully
13284 handle duplicate 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
13285
13286 2022-03-12 Thomas Schwinge <thomas@codesourcery.com>
13287
13288 PR other/65095
13289 * tree-core.h (user_omp_claus_code_name): Declare function.
13290 * tree.cc (user_omp_clause_code_name): New function.
13291
13292 2022-03-12 Roger Sayle <roger@nextmovesoftware.com>
13293
13294 PR middle-end/98420
13295 * match.pd (minus @0 @0): Additional checks for -fno-rounding-math
13296 (the defaut) or -fno-signed-zeros.
13297
13298 2022-03-12 Michael Meissner <meissner@linux.ibm.com>
13299
13300 PR target/104868
13301 * config/rs6000/vsx.md (extendditi2): Use a 'b' constraint when
13302 moving from a GPR register to an Altivec register.
13303
13304 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
13305
13306 PR tree-optimization/98335
13307 * config/i386/i386.md (peephole2): Eliminate redundant insv.
13308 Combine movl followed by movb. Transform xorl followed by
13309 a suitable movb or movw into the equivalent movz[bw]l.
13310
13311 2022-03-11 Roger Sayle <roger@nextmovesoftware.com>
13312 Richard Biener <rguenther@suse.de>
13313
13314 PR tree-optimization/98335
13315 * builtins.cc (get_object_alignment_2): Export.
13316 * builtins.h (get_object_alignment_2): Likewise.
13317 * tree-ssa-alias.cc (ao_ref_alignment): New.
13318 * tree-ssa-alias.h (ao_ref_alignment): Declare.
13319 * tree-ssa-dse.cc (compute_trims): Improve logic deciding whether
13320 to align head/tail, writing more bytes but using fewer store insns.
13321
13322 2022-03-11 Richard Biener <rguenther@suse.de>
13323
13324 PR tree-optimization/104880
13325 * tree-ssa.cc (execute_update_address_taken): Remember if we
13326 optimistically made something not addressable and
13327 prepare to undo it.
13328
13329 2022-03-11 Richard Biener <rguenther@suse.de>
13330
13331 PR target/104762
13332 * config/i386/i386.cc (ix86_builtin_vectorization_cost): Do not
13333 cost the first lane of SSE pieces as inserts for vec_construct.
13334
13335 2022-03-10 Roger Sayle <roger@nextmovesoftware.com>
13336
13337 PR c++/84964
13338 * calls.cc (expand_call): Ignore stack adjustments after sorry.
13339
13340 2022-03-10 Vladimir N. Makarov <vmakarov@redhat.com>
13341
13342 PR target/103074
13343 * lra-constraints.cc (split_reg): Set up
13344 check_and_force_assignment_correctness_p when splitting hard
13345 register live range.
13346
13347 2022-03-10 Martin Jambor <mjambor@suse.cz>
13348
13349 PR ipa/104813
13350 * ipa-cp.cc (create_specialized_node): Move removal of
13351 self-recursive calls from callers vector before refrence
13352 adjustments.
13353
13354 2022-03-10 Richard Biener <rguenther@suse.de>
13355
13356 PR tree-optimization/102943
13357 * gimple-range-cache.cc (sbr_sparse_bitmap::bitvec):
13358 Make a bitmap_head.
13359 (sbr_sparse_bitmap::sbr_sparse_bitmap): Adjust and switch
13360 to tree view.
13361 (sbr_sparse_bitmap::set_bb_range): Adjust.
13362 (sbr_sparse_bitmap::get_bb_range): Likewise.
13363
13364 2022-03-10 Richard Biener <rguenther@suse.de>
13365
13366 PR tree-optimization/102943
13367 * tree-ssa-dom.cc (back_propagate_equivalences): Only
13368 populate the dominance bitmap if fast queries are not
13369 available. Use a tree view bitmap.
13370 (record_temporary_equivalences): Cache the dominance bitmap
13371 across all equivalences on the edge.
13372
13373 2022-03-10 Tom de Vries <tdevries@suse.de>
13374
13375 PR target/104840
13376 * config/nvptx/nvptx.md (define_attr "predicable"): Use no,yes instead
13377 of false,true.
13378
13379 2022-03-10 Tom de Vries <tdevries@suse.de>
13380
13381 PR target/104783
13382 * config/nvptx/nvptx.cc (nvptx_init_unisimt_predicate)
13383 (nvptx_output_unisimt_switch): Handle unisimt_outside_simt_predicate.
13384 (nvptx_get_unisimt_outside_simt_predicate): New function.
13385 (predicate_insn): New function, factored out of ...
13386 (nvptx_reorg_uniform_simt): ... here. Predicate all emitted insns.
13387 * config/nvptx/nvptx.h (struct machine_function): Add
13388 unisimt_outside_simt_predicate field.
13389 * config/nvptx/nvptx.md (define_insn "nvptx_warpsync")
13390 (define_insn "nvptx_uniform_warp_check"): Make predicable.
13391
13392 2022-03-10 Tom de Vries <tdevries@suse.de>
13393
13394 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Handle unused
13395 result.
13396
13397 2022-03-10 Tom de Vries <tdevries@suse.de>
13398
13399 PR target/104815
13400 * config/nvptx/nvptx.cc (nvptx_print_operand): Handle 'x' operand
13401 modifier.
13402 * config/nvptx/nvptx.md: Use %x0 destination operand in atom insns.
13403
13404 2022-03-10 Tom de Vries <tdevries@suse.de>
13405
13406 * config/nvptx/nvptx.md (define_insn "atomic_fetch_<logic><mode>"):
13407 Emit atom.and.b64 instead of atom.b64.and.
13408
13409 2022-03-10 Tom de Vries <tdevries@suse.de>
13410
13411 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Move mptx=3.1 ...
13412 (MULTILIB_OPTIONS): ... here.
13413
13414 2022-03-10 Tom de Vries <tdevries@suse.de>
13415
13416 PR target/104758
13417 * config/nvptx/nvptx.opt (misa): Set default to sm_30.
13418 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Remove misa=sm_30.
13419
13420 2022-03-10 Thomas Schwinge <thomas@codesourcery.com>
13421
13422 PR middle-end/90115
13423 PR middle-end/102330
13424 PR middle-end/104774
13425 * omp-low.cc (oacc_privatization_candidate_p)
13426 (oacc_privatization_scan_clause_chain)
13427 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker):
13428 Analyze 'lookup_decl'-translated DECL.
13429
13430 2022-03-10 Jakub Jelinek <jakub@redhat.com>
13431
13432 PR target/99708
13433 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Remove
13434 RS6000_BTI_ptr_ieee128_float and RS6000_BTI_ptr_ibm128_float.
13435 (ptr_ieee128_float_type_node, ptr_ibm128_float_type_node): Remove.
13436 * config/rs6000/rs6000-builtin.cc (rs6000_type_string): Return
13437 "**NULL**" if type_node is NULL first. Handle
13438 ieee128_float_type_node.
13439 (rs6000_init_builtins): Don't initialize ptr_ieee128_float_type_node
13440 and ptr_ibm128_float_type_node. Set ibm128_float_type_node and
13441 ieee128_float_type_node to NULL rather than long_double_type_node if
13442 they aren't supported. Do support __ibm128 even if
13443 !TARGET_FLOAT128_TYPE when long double is double double.
13444 (rs6000_expand_builtin): Error if bif_is_ibm128 and
13445 !ibm128_float_type_node. Remap RS6000_BIF_{,UN}PACK_IF to
13446 RS6000_BIF_{,UN}PACK_TF much earlier and only use bif_is_ibm128 check
13447 for it.
13448 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Define
13449 __SIZEOF_FLOAT128__ here and only iff __float128 macro is defined.
13450 (rs6000_cpu_cpp_builtins): Don't define __SIZEOF_FLOAT128__ here.
13451 Define __SIZEOF_IBM128__=16 if ieee128_float_type_node is non-NULL.
13452 Formatting fix.
13453 * config/rs6000/rs6000-gen-builtins.cc: Document ibm128 attribute.
13454 (struct attrinfo): Add isibm128 member.
13455 (TYPE_MAP_SIZE): Remove.
13456 (type_map): Use [] instead of [TYPE_MAP_SIZE]. For "if" use
13457 ibm128_float_type_node only if it is non-NULL, otherwise fall back
13458 to long_double_type_node. Remove "pif" entry.
13459 (parse_bif_attrs): Handle ibm128 attribute and print it for debugging.
13460 (write_decls): Output bif_ibm128_bit and bif_is_ibm128.
13461 (write_type_node): Use sizeof type_map / sizeof type_map[0]
13462 instead of TYPE_MAP_SIZE.
13463 (write_bif_static_init): Handle isibm128.
13464 * config/rs6000/rs6000-builtins.def: Document ibm128 attribute.
13465 (__builtin_pack_ibm128, __builtin_unpack_ibm128): Add ibm128
13466 attribute.
13467
13468 2022-03-09 Richard Biener <rguenther@suse.de>
13469
13470 * cfgexpand.cc (expand_gimple_asm): Special-case MEM_REF
13471 with non-decl operand, avoiding a copy.
13472
13473 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13474
13475 PR target/104781
13476 * config/i386/i386.h (LIBGCC2_UNWIND_ATTRIBUTE): Define for ia32.
13477
13478 2022-03-09 Richard Biener <rguenther@suse.de>
13479
13480 PR middle-end/104786
13481 * cfgexpand.cc (expand_asm_stmt): Do not generate a copy
13482 for VLAs without an upper size bound.
13483
13484 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
13485
13486 PR tree-optimization/104851
13487 * optabs-query.cc (supports_vec_convert_optab_p): Fix off-by-one
13488 error.
13489
13490 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13491
13492 PR c/104711
13493 * doc/invoke.texi (-Wextra): Document that -Wshift-negative-value
13494 is enabled by it only for C++11 to C++17 rather than for C++03 or
13495 later.
13496 (-Wshift-negative-value): Similarly (except here we stated
13497 that it is enabled for C++11 or later).
13498
13499 2022-03-09 Jakub Jelinek <jakub@redhat.com>
13500
13501 PR rtl-optimization/104839
13502 * simplify-rtx.cc (simplify_unary_operation_1) <case SIGN_EXTEND>:
13503 Use SRP_SIGNED instead of incorrect 1 in SUBREG_PROMOTED_SET.
13504 (simplify_unary_operation_1) <case ZERO_EXTEND>: Use SRP_UNSIGNED
13505 instead of incorrect 0 in SUBREG_PROMOTED_SET.
13506
13507 2022-03-09 Xi Ruoyao <xry111@mengyan1223.wang>
13508
13509 PR target/104842
13510 * config/mips/mips.h (LUI_OPERAND): Cast the input to an unsigned
13511 value before adding an offset.
13512
13513 2022-03-08 Christophe Lyon <christophe.lyon@arm.com>
13514
13515 * config/arm/arm-builtins.cc
13516 (arm_binop_none_none_unone_qualifiers): Delete.
13517 (BINOP_NONE_NONE_UNONE_QUALIFIERS): Delete.
13518
13519 2022-03-08 Iain Sandoe <iain@sandoe.co.uk>
13520
13521 PR translation/104552
13522 * config/host-darwin.cc (darwin_gt_pch_get_address): Amend
13523 the PCH out of memory error message punctuation and wording.
13524
13525 2022-03-08 Marek Polacek <polacek@redhat.com>
13526
13527 PR rtl-optimization/104777
13528 * rtl.cc (classify_insn): For ASM_OPERANDS, return JUMP_INSN only if
13529 ASM_OPERANDS_LABEL_VEC has at least one element.
13530
13531 2022-03-08 H.J. Lu <hjl.tools@gmail.com>
13532
13533 PR target/104781
13534 * config/i386/i386.cc (ix86_expand_epilogue): Sorry if there is
13535 stack realignment or regparm nested function with EH return.
13536
13537 2022-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
13538
13539 PR target/104790
13540 * config/arm/arm.h (MVE_STN_LDW_MODE): New MACRO.
13541 * config/arm/arm.cc (mve_vector_mem_operand): Relax constraint on base
13542 register for non widening loads or narrowing stores.
13543
13544 2022-03-08 Eric Gallager <egallager@gcc.gnu.org>
13545
13546 PR translation/104552
13547 * params.opt: Fix typo.
13548
13549 2022-03-08 Richard Biener <rguenther@suse.de>
13550
13551 PR tree-optimization/84201
13552 * params.opt (-param=vect-induction-float): Add.
13553 * doc/invoke.texi (vect-induction-float): Document.
13554 * tree-vect-loop.cc (vectorizable_induction): Honor
13555 param_vect_induction_float.
13556
13557 2022-03-08 Martin Jambor <mjambor@suse.cz>
13558
13559 PR translation/104552
13560 * params.opt (ipa-cp-recursive-freq-factor): Remove repeated word
13561 "that" in the description.
13562
13563 2022-03-08 Richard Biener <rguenther@suse.de>
13564
13565 PR tree-optimization/104825
13566 * tree-ssa-sccvn.cc (visit_reference_op_call): Properly
13567 guard modref get_ao_ref on a pointer typed argument.
13568
13569 2022-03-08 liuhongt <hongtao.liu@intel.com>
13570
13571 * config/i386/sse.md (*vec_dupv4si): Disable memory operand
13572 for !TARGET_INTER_UNIT_MOVES_TO_VEC when prefer_for_speed.
13573
13574 2022-03-07 Jonathan Wakely <jwakely@redhat.com>
13575
13576 * doc/invoke.texi (C++ Modules): Remove anachronism.
13577
13578 2022-03-07 Martin Liska <mliska@suse.cz>
13579
13580 PR middle-end/104381
13581 * opts.cc (finish_options): If debug info is disabled
13582 (debug_info_level) and -fvar-tracking is unset, disable it.
13583
13584 2022-03-07 Jakub Jelinek <jakub@redhat.com>
13585
13586 * tree-ssa-propagate.cc: Fix up duplicated word issue in a comment.
13587 * config/riscv/riscv.cc: Likewise.
13588 * config/darwin.h: Likewise.
13589 * config/i386/i386.cc: Likewise.
13590 * config/aarch64/thunderx3t110.md: Likewise.
13591 * config/aarch64/fractional-cost.h: Likewise.
13592 * config/vax/vax.cc: Likewise.
13593 * config/rs6000/pcrel-opt.md: Likewise.
13594 * config/rs6000/predicates.md: Likewise.
13595 * ctfc.h: Likewise.
13596 * tree-ssa-uninit.cc: Likewise.
13597 * value-relation.h: Likewise.
13598 * gimple-range-gori.cc: Likewise.
13599 * ipa-polymorphic-call.cc: Likewise.
13600 * pointer-query.cc: Likewise.
13601 * ipa-sra.cc: Likewise.
13602 * internal-fn.cc: Likewise.
13603 * varasm.cc: Likewise.
13604 * gimple-ssa-warn-access.cc: Likewise.
13605
13606 2022-03-07 Martin Liska <mliska@suse.cz>
13607
13608 PR target/104794
13609 * config/arm/arm.cc (arm_option_override_internal): Add missing
13610 space.
13611
13612 2022-03-07 Richard Biener <rguenther@suse.de>
13613
13614 PR tree-optimization/104782
13615 * tree-vect-slp.cc (vectorize_slp_instance_root_stmt):
13616 Re-instantiate r10-5979 fix, add comment.
13617
13618 2022-03-07 Martin Liska <mliska@suse.cz>
13619
13620 PR target/104797
13621 * config/msp430/msp430.cc (msp430_expand_delay_cycles): Remove
13622 parenthesis from built-in name.
13623
13624 2022-03-07 Martin Liska <mliska@suse.cz>
13625
13626 PR target/104794
13627 * config/arm/arm.cc (arm_option_override_internal): Fix quoting
13628 of options in error messages.
13629 (arm_option_reconfigure_globals): Likewise.
13630
13631 2022-03-07 Martin Liska <mliska@suse.cz>
13632
13633 PR target/104794
13634 * config/arm/arm-builtins.cc (arm_expand_builtin): Reuse error
13635 message. Fix ARM_BUILTIN_WRORHI and ARM_BUILTIN_WRORH that can
13636 have only range [0,32].
13637
13638 2022-03-07 Jakub Jelinek <jakub@redhat.com>
13639
13640 PR target/104775
13641 * config/s390/s390.md (*cmp_and_trap_unsigned_int<mode>): Use
13642 S constraint instead of T in the last alternative.
13643
13644 2022-03-07 Martin Liska <mliska@suse.cz>
13645
13646 * plugin.cc (default_plugin_dir_name): Remove <dir> from error
13647 message.
13648
13649 2022-03-07 Martin Liska <mliska@suse.cz>
13650
13651 PR translation/90148
13652 * config/rs6000/rs6000.cc (rs6000_linux64_override_options): Put
13653 quote to a proper place.
13654 * plugin.cc (default_plugin_dir_name): Likewise.
13655
13656 2022-03-07 Martin Liska <mliska@suse.cz>
13657
13658 PR target/99297
13659 * config/rx/rx.cc (rx_expand_builtin_mvtc): Fix translation
13660 string.
13661
13662 2022-03-07 Jakub Jelinek <jakub@redhat.com>
13663
13664 PR target/104779
13665 * config/i386/sse.md (avx512dq_mul<mode>3<mask_name>): New
13666 define_expand pattern. Rename define_insn to ...
13667 (*avx512dq_mul<mode>3<mask_name>): ... this.
13668 (<code><mode>3_mask): New any_logic define_expand pattern.
13669 (<mask_codefor><code><mode>3<mask_name>): Rename to ...
13670 (*<code><mode>3<mask_name>): ... this.
13671
13672 2022-03-05 Jakub Jelinek <jakub@redhat.com>
13673
13674 * gimple-ssa-warn-access.cc (pass_waccess::use_after_inval_p): Remove
13675 visited bitmap and its use. Also punt on EDGE_ABNORMAL edges.
13676
13677 2022-03-05 Roger Sayle <roger@nextmovesoftware.com>
13678 Uroš Bizjak <ubizjak@gmail.com>
13679
13680 PR testsuite/104732
13681 * config/i386/i386.md (SWIM1248x): Renamed from SWIM1248s.
13682 Include DI mode unconditionally.
13683 (*anddi3_doubleword): Remove && TARGET_STV && TARGET_SSE2 condition,
13684 i.e. always split on !TARGET_64BIT.
13685 (*<any_or>di3_doubleword): Likewise.
13686 (*one_cmpldi2_doubleword): Likewise.
13687 (and<mode>3 expander): Update to use SWIM1248x from SWIM1248s.
13688 (<any_or><mode>3 expander): Likewise.
13689 (one_cmpl<mode>2 expander): Likewise.
13690
13691 2022-03-05 Michael Meissner <meissner@linux.ibm.com>
13692
13693 PR target/104698
13694 * config/rs6000/vsx.md (UNSPEC_MTVSRD_DITI_W1): Delete.
13695 (mtvsrdd_diti_w1): Delete.
13696 (extendditi2): Convert from define_expand to
13697 define_insn_and_split. Replace with code to deal with both GPR
13698 registers and with altivec registers.
13699
13700 2022-03-04 Segher Boessenkool <segher@kernel.crashing.org>
13701
13702 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Restructure a
13703 bit. Handle most older CPUs.
13704
13705 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
13706
13707 * config/darwin.cc (darwin_fold_builtin): Make fcode an int to
13708 avoid a mismatch with DECL_MD_FUNCTION_CODE().
13709
13710 2022-03-04 Iain Sandoe <iain@sandoe.co.uk>
13711
13712 PR target/104117
13713 * config/rs6000/darwin.md (@machopic_high_<mode>): New.
13714 (@machopic_low_<mode>): New.
13715 * config/rs6000/predicates.md (macho_pic_address): New.
13716 * config/rs6000/rs6000.cc (rs6000_legitimize_address): Do not
13717 apply the TLS processing to Darwin.
13718 * lra-constraints.cc (process_address_1): Revert the changes
13719 in r12-7209.
13720
13721 2022-03-04 Peter Bergner <bergner@linux.ibm.com>
13722
13723 PR target/87496
13724 PR target/104208
13725 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Make the
13726 ISA 2.06 requirement for -mabi=ieeelongdouble conditional on
13727 -mlong-double-128.
13728 Move the -mabi=ieeelongdouble and -mabi=ibmlongdouble error checking
13729 from here...
13730 * common/config/rs6000/rs6000-common.cc (rs6000_handle_option):
13731 ... to here.
13732
13733 2022-03-04 Jakub Jelinek <jakub@redhat.com>
13734
13735 PR middle-end/104529
13736 * gimplify.cc (gimplify_init_constructor): Clear TREE_READONLY
13737 on automatic objects which will be runtime initialized.
13738
13739 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
13740
13741 PR middle-end/100280
13742 PR middle-end/104132
13743 PR middle-end/104133
13744 * omp-low.cc (task_shared_vars): Rename to
13745 'make_addressable_vars'. Adjust all users.
13746 (scan_sharing_clauses) <OMP_CLAUSE_MAP> Use it for
13747 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' DECLs, too.
13748
13749 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
13750
13751 PR middle-end/100280
13752 * tree.h (OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE): New.
13753 * tree-core.h: Document it.
13754 * omp-low.cc (scan_sharing_clauses) <OMP_CLAUSE_MAP>: Handle
13755 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE'.
13756 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
13757 Set 'OMP_CLAUSE_MAP_DECL_MAKE_ADDRESSABLE' instead of
13758 'TREE_ADDRESSABLE'.
13759
13760 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
13761
13762 PR middle-end/100280
13763 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
13764 Add diagnostic: "note: OpenACC 'kernels' decomposition: variable
13765 '[...]' declared in block made addressable".
13766
13767 2022-03-04 Thomas Schwinge <thomas@codesourcery.com>
13768
13769 PR middle-end/100400
13770 PR middle-end/103836
13771 PR middle-end/104061
13772 * omp-oacc-kernels-decompose.cc (decompose_kernels_region_body):
13773 Catch 'GIMPLE_DEBUG'.
13774
13775 2022-03-04 Jakub Jelinek <jakub@redhat.com>
13776
13777 PR c/104627
13778 * tree.cc (warn_deprecated_use): For types prefer to use node
13779 and only use TYPE_MAIN_VARIANT (node) if TYPE_STUB_DECL (node) is
13780 NULL.
13781
13782 2022-03-04 H.J. Lu <hjl.tools@gmail.com>
13783
13784 PR target/104704
13785 * config/i386/i386.cc (ix86_gen_scratch_sse_rtx): Always return
13786 a pseudo register.
13787
13788 2022-03-03 Martin Sebor <msebor@redhat.com>
13789
13790 PR middle-end/104761
13791 * gimple-ssa-warn-access.cc (pass_waccess::execute): Call
13792 mark_dfs_back_edges.
13793
13794 2022-03-03 Martin Liska <mliska@suse.cz>
13795
13796 * configure.ac: Use linker plug-in by default.
13797 * configure: Regenerate.
13798
13799 2022-03-03 Martin Liska <mliska@suse.cz>
13800
13801 * configure.ac: Now ld.mold support LTO plugin API, use it.
13802 * configure: Regenerate.
13803
13804 2022-03-03 Tom de Vries <tdevries@suse.de>
13805
13806 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add mptx=3.1.
13807
13808 2022-03-03 Tom de Vries <tdevries@suse.de>
13809
13810 PR target/104758
13811 * config/nvptx/t-nvptx (MULTILIB_EXTRA_OPTS): Add misa=sm_30.
13812
13813 2022-03-03 Tom de Vries <tdevries@suse.de>
13814
13815 * config/nvptx/nvptx.h (ASM_SPEC): Add %{misa=sm_30:--no-verify}.
13816
13817 2022-03-03 Jakub Jelinek <jakub@redhat.com>
13818
13819 PR middle-end/104757
13820 * gimplify.cc (gimplify_omp_loop): Call gimplify_expr rather than
13821 gimplify_omp_for.
13822 (gimplify_expr) <case OMP_SIMD>: Temporarily disable
13823 gimplify_ctxp->into_ssa around call to gimplify_omp_for.
13824
13825 2022-03-03 Jakub Jelinek <jakub@redhat.com>
13826
13827 PR middle-end/104558
13828 * calls.cc (store_one_arg): When not calling emit_push_insn
13829 because size_rtx is const0_rtx, call at least anti_adjust_stack
13830 on arg->locate.alignment_pad if !argblock and the alignment might
13831 be non-zero.
13832
13833 2022-03-02 Alexandre Oliva <oliva@adacore.com>
13834
13835 * lra-constraints.cc (undo_optional_reloads): Recognize and
13836 drop insns of multi-word move sequences, tolerate removal
13837 iteration on an already-removed clobber, and refuse to
13838 substitute original pseudos into clobbers.
13839
13840 2022-03-02 Qing Zhao <qing.zhao@oracle.com>
13841
13842 PR middle-end/102276
13843 * common.opt (-Wtrivial-auto-var-init): New option.
13844 * doc/invoke.texi (-Wtrivial-auto-var-init): Document new option.
13845 (-ftrivial-auto-var-init): Update option;
13846 * gimplify.cc (emit_warn_switch_unreachable): New function.
13847 (warn_switch_unreachable_r): Rename to ...
13848 (warn_switch_unreachable_and_auto_init_r): This.
13849 (maybe_warn_switch_unreachable): Rename to ...
13850 (maybe_warn_switch_unreachable_and_auto_init): This.
13851 (gimplify_switch_expr): Update calls to renamed function.
13852
13853 2022-03-02 Richard Biener <rguenther@suse.de>
13854
13855 PR rtl-optimization/104686
13856 * ira-color.cc (object_conflicts_with_allocno_p): New function
13857 using a bitvector test instead of iterating when possible.
13858 (allocnos_conflict_p): Choose the best allocno to iterate over
13859 object conflicts.
13860 (update_conflict_hard_regno_costs): Do allocnos_conflict_p test
13861 last.
13862
13863 2022-03-02 Jakub Jelinek <jakub@redhat.com>
13864
13865 * cfg.cc (dump_edge_info): Dump goto_locus if present.
13866
13867 2022-03-02 Jakub Jelinek <jakub@redhat.com>
13868
13869 PR rtl-optimization/104589
13870 * cfgrtl.cc (fixup_reorder_chain): Use loc_equal instead of direct
13871 INSN_LOCATION comparison with goto_locus.
13872
13873 2022-03-02 Jakub Jelinek <jakub@redhat.com>
13874
13875 * tree-ssa-strlen.cc (strlen_pass::handle_assign,
13876 strlen_pass::before_dom_children): Comment spelling fixes.
13877
13878 2022-03-02 Jakub Jelinek <jakub@redhat.com>
13879
13880 * ipa-modref-tree.cc (modref_access_node::contains,
13881 modref_access_node::closer_pair_p, modref_access_node::insert,
13882 modref_access_node::insert_kill): Comment spelling fixes.
13883 * ipa-modref.cc: Likewise.
13884 (modref_summary::finalize, ignore_nondeterminism_p,
13885 class modref_access_analysis,
13886 modref_access_analysis::set_side_effects,
13887 modref_access_analysis::set_nondeterministic,
13888 modref_access_analysis::record_global_memory_load,
13889 modref_access_analysis::propagate, modref_access_analysis::analyze,
13890 struct escape_point, class modref_lattice, modref_lattice::merge,
13891 modref_lattice::merge_deref, class modref_eaf_analysis,
13892 modref_eaf_analysis::merge_call_lhs_flags,
13893 modref_eaf_analysis::analyze_ssa_name, modref_eaf_analysis::propagate,
13894 modref_eaf_analysis::record_escape_points, remap_kills,
13895 update_escape_summary, remove_useless_summaries,
13896 ipa_merge_modref_summary_after_inlining, pass_ipa_modref::execute):
13897 Likewise.
13898 * ipa-modref.h (struct modref_summary, interposable_eaf_flags):
13899 Likewise.
13900 * ipa-modref-tree.h (enum modref_special_parms,
13901 struct modref_access_node): Likewise.
13902
13903 2022-03-01 Jakub Jelinek <jakub@redhat.com>
13904
13905 PR tree-optimization/104715
13906 * gimple-ssa-warn-access.cc (pass_waccess::check_pointer_uses): Don't
13907 unnecessarily test if ptr is a SSA_NAME, it has to be. Only push lhs
13908 of a call if gimple_call_return_arg is equal to ptr, not just when it
13909 is non-NULL.
13910
13911 2022-03-01 Jakub Jelinek <jakub@redhat.com>
13912
13913 * gimple-ssa-warn-access.cc (warn_string_no_nul,
13914 maybe_warn_nonstring_arg, fndecl_alloc_p, new_delete_mismatch_p,
13915 matching_alloc_calls_p, maybe_warn_alloc_args_overflow,
13916 pass_waccess::check_alloca, pass_waccess::check_strcat,
13917 memmodel_to_uhwi, fntype_argno_type,
13918 pass_waccess::maybe_check_access_sizes,
13919 pass_waccess::check_call_access,
13920 pass_waccess::maybe_check_dealloc_call, pass_waccess::check_stmt):
13921 Comment spelling fixes.
13922
13923 2022-03-01 Richard Biener <rguenther@suse.de>
13924
13925 PR tree-optimization/104716
13926 * tree-loop-distribution.cc (find_seed_stmts_for_distribution):
13927 Check if we can copy the loop.
13928
13929 2022-03-01 H.J. Lu <hjl.tools@gmail.com>
13930
13931 PR middle-end/104721
13932 * cfgexpand.cc (expand_gimple_basic_block): Clear
13933 currently_expanding_gimple_stmt when returning inside the loop.
13934
13935 2022-03-01 Martin Liska <mliska@suse.cz>
13936
13937 PR ipa/104533
13938 * multiple_target.cc (get_attr_len): Move to tree.c.
13939 (expand_target_clones): Remove single value checking.
13940 * tree.cc (get_target_clone_attr_len): New fn.
13941 * tree.h (get_target_clone_attr_len): Likewise.
13942
13943 2022-03-01 Martin Liska <mliska@suse.cz>
13944
13945 PR gcov-profile/104677
13946 * doc/invoke.texi: Document more .gcda file name generation.
13947
13948 2022-03-01 Tom de Vries <tdevries@suse.de>
13949
13950 PR target/102429
13951 * config/nvptx/nvptx.cc (nvptx_gen_shuffle): Handle DCmode and CDImode.
13952 * config/nvptx/nvptx.md
13953 (define_predicate "nvptx_register_or_complex_di_df_register_operand"):
13954 New predicate.
13955 (define_expand "omp_simt_xchg_bfly", define_expand "omp_simt_xchg_idx"):
13956 Use nvptx_register_or_complex_di_df_register_operand.
13957
13958 2022-03-01 Tom de Vries <tdevries@suse.de>
13959
13960 * config.gcc (nvptx*-*-*): Add nvptx/nvptx-gen.opt to extra_options.
13961 * config/nvptx/gen-copyright.sh: New file.
13962 * config/nvptx/gen-h.sh: New file.
13963 * config/nvptx/gen-opt.sh: New file.
13964 * config/nvptx/nvptx.h (TARGET_SM35, TARGET_SM53, TARGET_SM70)
13965 (TARGET_SM75, TARGET_SM80): Move ...
13966 * config/nvptx/nvptx-gen.h: ... here. New file, generate.
13967 * config/nvptx/nvptx.opt (Enum ptx_isa): Move ...
13968 * config/nvptx/nvptx-gen.opt: ... here. New file, generate.
13969 * config/nvptx/t-nvptx ($(srcdir)/config/nvptx/nvptx-gen.h)
13970 ($(srcdir)/config/nvptx/nvptx-gen.opt): New make target.
13971
13972 2022-03-01 Tom de Vries <tdevries@suse.de>
13973
13974 * config/nvptx/gen-omp-device-properties.sh: New file.
13975 * config/nvptx/t-omp-device: Use gen-omp-device-properties.sh.
13976
13977 2022-03-01 Tom de Vries <tdevries@suse.de>
13978
13979 * config/nvptx/nvptx-sm.def: New file.
13980 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Use nvptx-sm.def.
13981 * config/nvptx/nvptx-opts.h (enum ptx_isa): Same.
13982 * config/nvptx/nvptx.cc (sm_version_to_string)
13983 (nvptx_omp_device_kind_arch_isa): Same.
13984
13985 2022-03-01 Robin Dapp <rdapp@linux.ibm.com>
13986
13987 PR rtl-optimization/104154
13988 * config/arc/arc.cc (gen_compare_reg): Return the CC-mode
13989 comparison ifcvt passed us.
13990
13991 2022-03-01 Hongyu Wang <hongyu.wang@intel.com>
13992
13993 PR target/104664
13994 * config/i386/i386-expand.cc (ix86_expand_vector_init_duplicate):
13995 Use vec_setv8hf_0 for HF to V8HFmode move instead of subreg.
13996
13997 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
13998
13999 PR tree-optimization/91384
14000 * config/i386/i386.md (peephole2): Eliminate final testl insn
14001 from the sequence *movsi_internal, *negsi_1, *cmpsi_ccno_1 by
14002 transforming using *negsi_2 for the negation.
14003
14004 2022-02-28 Roger Sayle <roger@nextmovesoftware.com>
14005 Eric Botcazou <ebotcazou@adacore.com>
14006
14007 PR middle-end/80270
14008 * expmed.cc (extract_integral_bit_field): If OP0 is a hard
14009 register, copy it to a pseudo before calling simplify_gen_subreg.
14010
14011 2022-02-28 Vladimir N. Makarov <vmakarov@redhat.com>
14012
14013 PR rtl-optimization/104637
14014 * lra-assigns.cc (lra_split_hard_reg_for): Split hard regs as many
14015 as possible on one subpass.
14016
14017 2022-02-28 Qing Zhao <qing.zhao@oracle.com>
14018
14019 PR middle-end/104550
14020 * gimple-fold.cc (clear_padding_flush): Suppress warnings for new
14021 created uses.
14022
14023 2022-02-28 Martin Liska <mliska@suse.cz>
14024
14025 PR ipa/104648
14026 * main.cc (main): Use flag_checking instead of CHECKING_P
14027 and run toplev::finalize only if there is not error seen.
14028
14029 2022-02-28 Richard Biener <rguenther@suse.de>
14030
14031 * tree-ssa-pre.cc (compute_avail): Revert part of last change.
14032
14033 2022-02-28 Richard Biener <rguenther@suse.de>
14034
14035 PR tree-optimization/104700
14036 * tree-ssa-pre.cc (get_or_alloc_expr_for): Remove and inline
14037 into ...
14038 (find_or_generate_expression): ... here, simplifying code.
14039
14040 2022-02-28 Tom de Vries <tdevries@suse.de>
14041
14042 * config/nvptx/nvptx-opts.h (enum ptx_version): Add
14043 PTX_VERSION_default.
14044 * config/nvptx/nvptx.cc (handle_ptx_version_option): Handle
14045 PTX_VERSION_default.
14046 * config/nvptx/nvptx.opt: Add EnumValue "_" / PTX_VERSION_default.
14047
14048 2022-02-28 Richard Biener <rguenther@suse.de>
14049
14050 PR rtl-optimization/104686
14051 * ira-int.h (minmax_set_iter_cond): Use ctz_hwi to elide loop
14052 skipping bits that are zero.
14053 (ira_object_conflict_iter_cond): Likewise.
14054
14055 2022-02-28 Hongyu Wang <hongyu.wang@intel.com>
14056
14057 * config/i386/avx512fintrin.h (_MM_TERNLOG_ENUM): New enum.
14058 (_mm512_ternarylogic_epi64): Truncate imm to unsigned
14059 char to avoid error when using ~enum as parameter.
14060 (_mm512_mask_ternarylogic_epi64): Likewise.
14061 (_mm512_maskz_ternarylogic_epi64): Likewise.
14062 (_mm512_ternarylogic_epi32): Likewise.
14063 (_mm512_mask_ternarylogic_epi32): Likewise.
14064 (_mm512_maskz_ternarylogic_epi32): Likewise.
14065 * config/i386/avx512vlintrin.h (_mm256_ternarylogic_epi64):
14066 Adjust imm param type to unsigned char.
14067 (_mm256_mask_ternarylogic_epi64): Likewise.
14068 (_mm256_maskz_ternarylogic_epi64): Likewise.
14069 (_mm256_ternarylogic_epi32): Likewise.
14070 (_mm256_mask_ternarylogic_epi32): Likewise.
14071 (_mm256_maskz_ternarylogic_epi32): Likewise.
14072 (_mm_ternarylogic_epi64): Likewise.
14073 (_mm_mask_ternarylogic_epi64): Likewise.
14074 (_mm_maskz_ternarylogic_epi64): Likewise.
14075 (_mm_ternarylogic_epi32): Likewise.
14076 (_mm_mask_ternarylogic_epi32): Likewise.
14077 (_mm_maskz_ternarylogic_epi32): Likewise.
14078
14079 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14080 Marc Glisse <marc.glisse@inria.fr>
14081
14082 PR tree-optimization/104675
14083 * match.pd (t * 2U / 2 -> t & (~0 / 2), t / 2U * 2 -> t & ~1):
14084 Restrict simplifications to INTEGRAL_TYPE_P.
14085
14086 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14087
14088 PR target/104681
14089 * config/rs6000/vector.md (movmisalign<mode>): Use rs6000_emit_move.
14090
14091 2022-02-25 Claudiu Zissulescu <claziss@synopsys.com>
14092
14093 * config/arc/arc.cc (gen_compare_reg): Return NULL_RTX if the
14094 comparison is not valid.
14095 * config/arc/arc.md (movsicc): Fail if comparison is not valid.
14096 (movdicc): Likewise.
14097 (movsfcc): Likewise.
14098 (movdfcc): Likewise.
14099
14100 2022-02-25 Richard Biener <rguenther@suse.de>
14101
14102 PR tree-optimization/103037
14103 * tree-ssa-sccvn.h (alloc_vn_nary_op_noinit): Declare.
14104 (vn_nary_length_from_stmt): Likewise.
14105 (init_vn_nary_op_from_stmt): Likewise.
14106 (vn_nary_op_compute_hash): Likewise.
14107 * tree-ssa-sccvn.cc (alloc_vn_nary_op_noinit): Export.
14108 (vn_nary_length_from_stmt): Likewise.
14109 (init_vn_nary_op_from_stmt): Likewise.
14110 (vn_nary_op_compute_hash): Likewise.
14111 * tree-ssa-pre.cc (pre_expr_obstack): New obstack.
14112 (get_or_alloc_expr_for_nary): Pass in the value-id to use,
14113 (re-)compute the hash value and if the expression is not
14114 found allocate it from pre_expr_obstack.
14115 (phi_translate_1): Do not insert the NARY found in the
14116 VN tables but build a PRE expression from the valueized
14117 NARY with the value-id we eventually found.
14118 (find_or_generate_expression): Assert we have an entry
14119 for constant values.
14120 (compute_avail): Insert not valueized expressions into
14121 EXP_GEN using the value-id from the VN tables.
14122 (init_pre): Allocate pre_expr_obstack.
14123 (fini_pre): Free pre_expr_obstack.
14124
14125 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14126
14127 PR target/104674
14128 * config/i386/i386.h (enum ix86_stack_slot): Add SLOT_FLOATxFDI_387.
14129 * config/i386/i386.md (splitter to floatdi<mode>2_i387_with_xmm): Use
14130 SLOT_FLOATxFDI_387 rather than SLOT_TEMP.
14131
14132 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14133
14134 * warning-control.cc (get_nowarn_spec): Comment spelling fix.
14135
14136 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14137
14138 PR middle-end/104679
14139 * internal-fn.cc (expand_SPACESHIP): Call do_pending_stack_adjust.
14140
14141 2022-02-25 Jakub Jelinek <jakub@redhat.com>
14142
14143 PR tree-optimization/104675
14144 * match.pd (-A - 1 -> ~A, -1 - A -> ~A): Don't simplify for
14145 COMPLEX_TYPE.
14146
14147 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14148
14149 PR target/104121
14150 PR target/103302
14151 * expr.cc (emit_move_multi_word): Restore clobbers during LRA.
14152
14153 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14154
14155 PR middle-end/104540
14156 * dwarf2cfi.cc (cfi_oprnd_equal_p): Cope with NULL
14157 dw_cfi_cfa_loc.
14158
14159 2022-02-25 Alexandre Oliva <oliva@adacore.com>
14160
14161 PR tree-optimization/103856
14162 * gimple-harden-conditionals.cc (non_eh_succ_edge): Enable the
14163 eh edge to be requested through an extra parameter.
14164 (pass_harden_compares::execute): Copy PHI args in the EH dest
14165 block for the new EH edge added for the inverted compare.
14166
14167 2022-02-24 Palmer Dabbelt <palmer@rivosinc.com>
14168
14169 * doc/invoke.texi (RISC-V -mcmodel=medany): Document the degree
14170 of position independence that -mcmodel=medany affords.
14171
14172 2022-02-24 Jose E. Marchesi <jose.marchesi@oracle.com>
14173
14174 PR target/104656
14175 * configure.ac: --disable-gcov if targetting bpf-*.
14176 * configure: Regenerate.
14177
14178 2022-02-24 Richard Biener <rguenther@suse.de>
14179
14180 PR tree-optimization/104676
14181 * tree-loop-distribution.cc (loop_distribution::execute):
14182 Do a full scev_reset.
14183
14184 2022-02-24 Jakub Jelinek <jakub@redhat.com>
14185
14186 PR tree-optimization/104601
14187 * tree-ssa-sccvn.cc (visit_reference_op_call): For calls with
14188 non-SSA_NAME lhs value number vdef to itself instead of e.g. the
14189 vuse value number.
14190
14191 2022-02-24 Tom de Vries <tdevries@suse.de>
14192 Tobias Burnus <tobias@codesourcery.com>
14193
14194 * config/nvptx/nvptx.cc (nvptx_omp_device_kind_arch_isa): Handle
14195 sm_70, sm_75 and sm_80.
14196 * config/nvptx/t-omp-device: Add sm_53, sm_70, sm_75 and sm_80.
14197
14198 2022-02-24 Tom de Vries <tdevries@suse.de>
14199
14200 * config/nvptx/nvptx.md (define_insn "rotlsi3", define_insn
14201 "rotrsi3"): New define_insn.
14202
14203 2022-02-24 Tom de Vries <tdevries@suse.de>
14204
14205 * config/nvptx/nvptx.cc (gen_comment): Use
14206 DECL_SOURCE_LOCATION (cfun->decl) instead of cfun->function_start_locus.
14207
14208 2022-02-24 liuhongt <hongtao.liu@intel.com>
14209
14210 * config/i386/sse.md (<code>v1ti3): Add suffix and replace
14211 isa attr of alternative 2 from avx to avx512vl.
14212
14213 2022-02-23 Richard Biener <rguenther@suse.de>
14214 Jakub Jelinek <jakub@redhat.com>
14215
14216 PR tree-optimization/104644
14217 * doc/match-and-simplify.texi: Amend ! documentation.
14218 * genmatch.cc (expr::gen_transform): Code-generate ! support
14219 for GENERIC.
14220 (parser::parse_expr): Allow ! for GENERIC.
14221 * match.pd (cmp (bswap @0) INTEGER_CST@1): Use ! modifier on
14222 bswap.
14223
14224 2022-02-23 Richard Biener <rguenther@suse.de>
14225
14226 PR tree-optimization/101636
14227 * tree-vect-slp.cc (vect_print_slp_tree): Dump the
14228 vector type of the node.
14229 (vect_slp_analyze_operations): Make sure the CTOR
14230 is vectorized with an expected type.
14231 (vectorize_slp_instance_root_stmt): Revert r10-5979 fix.
14232
14233 2022-02-23 Jakub Jelinek <jakub@redhat.com>
14234
14235 PR c/104633
14236 * gimple-warn-recursion.cc (pass_warn_recursion::find_function_exit):
14237 Don't warn about calls to corresponding builtin from extern inline
14238 gnu_inline wrappers.
14239
14240 2022-02-23 Roger Sayle <roger@nextmovesoftware.com>
14241
14242 PR target/104489
14243 * config/nvptx/nvptx.md (*movhf_insn): Add subregs_ok attribute.
14244
14245 2022-02-23 Christophe Lyon <christophe.lyon@arm.com>
14246
14247 PR target/100757
14248 PR target/101325
14249 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Fix
14250 typo.
14251
14252 2022-02-23 Cui,Lili <lili.cui@intel.com>
14253
14254 * doc/invoke.texi: Update documents for Intel architectures.
14255
14256 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
14257
14258 * config/i386/i386-expand.cc (ix86_expand_cmpxchg_loop): Restore
14259 bootstrap.
14260
14261 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
14262
14263 * omp-low.cc (omp_build_component_ref): Move function...
14264 * omp-general.cc (omp_build_component_ref): ... here. Remove
14265 'static'.
14266 * omp-general.h (omp_build_component_ref): Declare function.
14267 * omp-oacc-neuter-broadcast.cc (oacc_build_component_ref): Remove
14268 function.
14269 (build_receiver_ref, build_sender_ref): Call
14270 'omp_build_component_ref' instead.
14271
14272 2022-02-22 Thomas Schwinge <thomas@codesourcery.com>
14273
14274 * omp-oacc-neuter-broadcast.cc (record_field_map_t): Further
14275 simplify. Adjust all users.
14276
14277 2022-02-22 Segher Boessenkool <segher@kernel.crashing.org>
14278
14279 PR target/88134
14280 * config/rs6000/rs6000.cc (atomic_hold_decl, atomic_clear_decl,
14281 atomic_update_decl): Add GTY markup.
14282
14283 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14284
14285 * config/arm/arm.h (REG_CLASS_CONTENTS): Add VPR_REG to ALL_REGS.
14286
14287 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14288
14289 PR target/100757
14290 PR target/101325
14291 * config/arm/arm-builtins.cc (CX_UNARY_UNONE_QUALIFIERS): Use
14292 predicate.
14293 (CX_BINARY_UNONE_QUALIFIERS): Likewise.
14294 (CX_TERNARY_UNONE_QUALIFIERS): Likewise.
14295 (TERNOP_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
14296 (QUADOP_NONE_NONE_NONE_NONE_UNONE_QUALIFIERS): Delete.
14297 (QUADOP_UNONE_UNONE_UNONE_UNONE_UNONE_QUALIFIERS): Delete.
14298 * config/arm/arm_mve_builtins.def: Use predicated qualifiers.
14299 * config/arm/mve.md: Use VxBI instead of HI.
14300
14301 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14302
14303 PR target/100757
14304 PR target/101325
14305 * config/arm/arm-builtins.cc (STRSBS_P_QUALIFIERS): Use predicate
14306 qualifier.
14307 (STRSBU_P_QUALIFIERS): Likewise.
14308 (LDRGBS_Z_QUALIFIERS): Likewise.
14309 (LDRGBU_Z_QUALIFIERS): Likewise.
14310 (LDRGBWBXU_Z_QUALIFIERS): Likewise.
14311 (LDRGBWBS_Z_QUALIFIERS): Likewise.
14312 (LDRGBWBU_Z_QUALIFIERS): Likewise.
14313 (STRSBWBS_P_QUALIFIERS): Likewise.
14314 (STRSBWBU_P_QUALIFIERS): Likewise.
14315 * config/arm/mve.md: Use VxBI instead of HI.
14316
14317 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14318
14319 PR target/100757
14320 PR target/101325
14321 * config/arm/arm-builtins.cc (TERNOP_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
14322 (TERNOP_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
14323 (TERNOP_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14324 (TERNOP_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14325 (TERNOP_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14326 (TERNOP_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14327 (TERNOP_NONE_NONE_UNONE_UNONE_QUALIFIERS): Change to ...
14328 (TERNOP_NONE_NONE_UNONE_PRED_QUALIFIERS): ... this.
14329 (QUADOP_UNONE_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
14330 (QUADOP_UNONE_UNONE_NONE_NONE_PRED_QUALIFIERS): ... this.
14331 (QUADOP_NONE_NONE_NONE_NONE_PRED_QUALIFIERS): New.
14332 (QUADOP_NONE_NONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14333 (QUADOP_NONE_NONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14334 (QUADOP_UNONE_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
14335 (QUADOP_UNONE_UNONE_NONE_IMM_UNONE_QUALIFIERS): Change to ...
14336 (QUADOP_UNONE_UNONE_NONE_IMM_PRED_QUALIFIERS): ... this.
14337 (QUADOP_NONE_NONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14338 (QUADOP_NONE_NONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14339 (QUADOP_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14340 (QUADOP_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14341 (QUADOP_UNONE_UNONE_UNONE_NONE_UNONE_QUALIFIERS): Change to ...
14342 (QUADOP_UNONE_UNONE_UNONE_NONE_PRED_QUALIFIERS): ... this.
14343 (STRS_P_QUALIFIERS): Use predicate qualifier.
14344 (STRU_P_QUALIFIERS): Likewise.
14345 (STRSU_P_QUALIFIERS): Likewise.
14346 (STRSS_P_QUALIFIERS): Likewise.
14347 (LDRGS_Z_QUALIFIERS): Likewise.
14348 (LDRGU_Z_QUALIFIERS): Likewise.
14349 (LDRS_Z_QUALIFIERS): Likewise.
14350 (LDRU_Z_QUALIFIERS): Likewise.
14351 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_UNONE_QUALIFIERS): Change to ...
14352 (QUINOP_UNONE_UNONE_UNONE_UNONE_IMM_PRED_QUALIFIERS): ... this.
14353 (BINOP_NONE_NONE_PRED_QUALIFIERS): New.
14354 (BINOP_UNONE_UNONE_PRED_QUALIFIERS): New.
14355 * config/arm/arm_mve_builtins.def: Use new predicated qualifiers.
14356 * config/arm/mve.md: Use MVE_VPRED instead of HI.
14357
14358 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14359
14360 PR target/100757
14361 PR target/101325
14362 * config/arm/arm-builtins.cc (BINOP_UNONE_NONE_NONE_QUALIFIERS):
14363 Delete.
14364 (TERNOP_UNONE_NONE_NONE_UNONE_QUALIFIERS): Change to ...
14365 (TERNOP_PRED_NONE_NONE_PRED_QUALIFIERS): ... this.
14366 (TERNOP_PRED_UNONE_UNONE_PRED_QUALIFIERS): New.
14367 * config/arm/arm_mve_builtins.def (vcmp*q_n_, vcmp*q_m_f): Use new
14368 predicated qualifiers.
14369 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_n_<mode>)
14370 (mve_vcmp*q_m_f<mode>): Use MVE_VPRED instead of HI.
14371
14372 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14373
14374 PR target/100757
14375 * config/arm/arm-protos.h (arm_get_mask_mode): New prototype.
14376 (arm_expand_vector_compare): Update prototype.
14377 * config/arm/arm.cc (TARGET_VECTORIZE_GET_MASK_MODE): New.
14378 (arm_vector_mode_supported_p): Add support for VxBI modes.
14379 (arm_expand_vector_compare): Remove useless generation of vpsel.
14380 (arm_expand_vcond): Fix select operands.
14381 (arm_get_mask_mode): New.
14382 * config/arm/mve.md (vec_cmp<mode><MVE_vpred>): New.
14383 (vec_cmpu<mode><MVE_vpred>): New.
14384 (vcond_mask_<mode><MVE_vpred>): New.
14385 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>)
14386 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): Move to ...
14387 * config/arm/neon.md (vec_cmp<mode><v_cmp_result>)
14388 (vec_cmpu<mode><mode, vcond_mask_<mode><v_cmp_result>): ... here
14389 and disable for MVE.
14390 * doc/sourcebuild.texi (arm_mve): Document new effective-target.
14391
14392 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14393
14394 PR target/100757
14395 PR target/101325
14396 * config/arm/arm-builtins.cc (BINOP_PRED_UNONE_UNONE_QUALIFIERS)
14397 (BINOP_PRED_NONE_NONE_QUALIFIERS)
14398 (TERNOP_NONE_NONE_NONE_PRED_QUALIFIERS)
14399 (TERNOP_UNONE_UNONE_UNONE_PRED_QUALIFIERS): New.
14400 * config/arm/arm-protos.h (mve_bool_vec_to_const): New.
14401 * config/arm/arm.cc (arm_hard_regno_mode_ok): Handle new VxBI
14402 modes.
14403 (arm_mode_to_pred_mode): New.
14404 (arm_expand_vector_compare): Use the right VxBI mode instead of
14405 HI.
14406 (arm_expand_vcond): Likewise.
14407 (simd_valid_immediate): Handle MODE_VECTOR_BOOL.
14408 (mve_bool_vec_to_const): New.
14409 (neon_make_constant): Call mve_bool_vec_to_const when needed.
14410 * config/arm/arm_mve_builtins.def (vcmpneq_, vcmphiq_, vcmpcsq_)
14411 (vcmpltq_, vcmpleq_, vcmpgtq_, vcmpgeq_, vcmpeqq_, vcmpneq_f)
14412 (vcmpltq_f, vcmpleq_f, vcmpgtq_f, vcmpgeq_f, vcmpeqq_f, vpselq_u)
14413 (vpselq_s, vpselq_f): Use new predicated qualifiers.
14414 * config/arm/constraints.md (DB): New.
14415 * config/arm/iterators.md (MVE_7, MVE_7_HI): New mode iterators.
14416 (MVE_VPRED, MVE_vpred): New attribute iterators.
14417 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>)
14418 (@mve_vcmp<mve_cmp_op>q_f<mode>, @mve_vpselq_<supf><mode>)
14419 (@mve_vpselq_f<mode>): Use MVE_VPRED instead of HI.
14420 (@mve_vpselq_<supf>v2di): Define separately.
14421 (mov<mode>): New expander for VxBI modes.
14422 * config/arm/vfp.md (thumb2_movhi_vfp, thumb2_movhi_fp16): Use
14423 MVE_7_HI iterator and add support for DB constraint.
14424
14425 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14426 Richard Sandiford <richard.sandiford@arm.com>
14427
14428 PR target/100757
14429 PR target/101325
14430 * config/aarch64/aarch64-modes.def (VNx16BI, VNx8BI, VNx4BI,
14431 VNx2BI): Update definition.
14432 * config/arm/arm-builtins.cc (arm_init_simd_builtin_types): Add new
14433 simd types.
14434 (arm_init_builtin): Map predicate vectors arguments to HImode.
14435 (arm_expand_builtin_args): Move HImode predicate arguments to VxBI
14436 rtx. Move return value to HImode rtx.
14437 * config/arm/arm-builtins.h (arm_type_qualifiers): Add qualifier_predicate.
14438 * config/arm/arm-modes.def (B2I, B4I, V16BI, V8BI, V4BI): New modes.
14439 * config/arm/arm-simd-builtin-types.def (Pred1x16_t,
14440 Pred2x8_t,Pred4x4_t): New.
14441 * emit-rtl.cc (init_emit_once): Handle all boolean modes.
14442 * genmodes.cc (mode_data): Add boolean field.
14443 (blank_mode): Initialize it.
14444 (make_complex_modes): Fix handling of boolean modes.
14445 (make_vector_modes): Likewise.
14446 (VECTOR_BOOL_MODE): Use new COMPONENT parameter.
14447 (make_vector_bool_mode): Likewise.
14448 (BOOL_MODE): New.
14449 (make_bool_mode): New.
14450 (emit_insn_modes_h): Fix generation of boolean modes.
14451 (emit_class_narrowest_mode): Likewise.
14452 * machmode.def: (VECTOR_BOOL_MODE): Document new COMPONENT
14453 parameter. Use new BOOL_MODE instead of FRACTIONAL_INT_MODE to
14454 define BImode.
14455 * rtx-vector-builder.cc (rtx_vector_builder::find_cached_value):
14456 Fix handling of constm1_rtx for VECTOR_BOOL.
14457 * simplify-rtx.cc (native_encode_rtx): Fix support for VECTOR_BOOL.
14458 (native_decode_vector_rtx): Likewise.
14459 (test_vector_ops_duplicate): Skip vec_merge test
14460 with vectors of booleans.
14461 * varasm.cc (output_constant_pool_2): Likewise.
14462
14463 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14464
14465 * config/arm/mve.md (mve_vmvnq_n_<supf><mode>): Use V_elem mode
14466 for operand 1.
14467
14468 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14469
14470 * config/arm/arm.cc (arm_class_likely_spilled_p): Handle VPR_REG.
14471
14472 2022-02-22 Christophe Lyon <christophe.lyon@arm.com>
14473
14474 * config/arm/arm.h (reg_class): Add GENERAL_AND_VPR_REGS.
14475 (REG_CLASS_NAMES): Likewise.
14476 (REG_CLASS_CONTENTS): Likewise.
14477 (CLASS_MAX_NREGS): Handle VPR.
14478 * config/arm/arm.cc (arm_hard_regno_nregs): Handle VPR.
14479
14480 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
14481 Tom de Vries <tdevries@suse.de>
14482
14483 * config/nvptx/nvptx-c.cc (nvptx_cpu_cpp_builtins): Handle SM70.
14484 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm):
14485 Likewise.
14486 * config/nvptx/nvptx.opt (misa): Add sm_70 alias PTX_ISA_SM70.
14487
14488 2022-02-22 Tobias Burnus <tobias@codesourcery.com>
14489 Tom de Vries <tdevries@suse.de>
14490
14491 * config/nvptx/nvptx.opt (mptx): Add 6.0 alias PTX_VERSION_6_0.
14492 * doc/invoke.texi (-mptx): Update for new values and defaults.
14493
14494 2022-02-22 Tom de Vries <tdevries@suse.de>
14495
14496 * config/nvptx/nvptx.cc (gen_comment): New function.
14497 (workaround_uninit_method_1, workaround_uninit_method_2)
14498 (workaround_uninit_method_3): : Use gen_comment.
14499 * config/nvptx/nvptx.opt (mptx-comment): New option.
14500
14501 2022-02-22 Richard Biener <rguenther@suse.de>
14502
14503 * tree-vect-slp.cc (vect_build_slp_tree_2): Dump the def used
14504 for a splat.
14505
14506 2022-02-22 Roger Sayle <roger@nextmovesoftware.com>
14507 Richard Biener <rguenther@suse.de>
14508
14509 * fold-const.cc (ctor_single_nonzero_element): New function to
14510 return the single non-zero element of a (vector) constructor.
14511 * fold-const.h (ctor_single_nonzero_element): Prototype here.
14512 * match.pd (reduc (constructor@0)): Simplify reductions of a
14513 constructor containing a single non-zero element.
14514 (reduc (@0 op VECTOR_CST) -> (reduc @0) op CONST): Simplify
14515 reductions of vector operations of the same operator with
14516 constant vector operands.
14517
14518 2022-02-22 Jakub Jelinek <jakub@redhat.com>
14519
14520 PR tree-optimization/104604
14521 * gimple-range-fold.cc (adjust_imagpart_expr, adjust_realpart_expr):
14522 Only check if gimple_assign_rhs1 is COMPLEX_CST if
14523 gimple_assign_rhs_code is COMPLEX_CST.
14524
14525 2022-02-22 Jakub Jelinek <jakub@redhat.com>
14526
14527 PR target/104612
14528 * config/i386/i386-expand.cc (ix86_expand_copysign): Call force_reg
14529 on input operands before calling lowpart_subreg on it. For output
14530 operand, use a vmode pseudo as destination and then move its lowpart
14531 subreg into operands[0] if lowpart_subreg fails on dest.
14532 (ix86_expand_xorsign): Likewise.
14533
14534 2022-02-22 Richard Biener <rguenther@suse.de>
14535
14536 PR tree-optimization/104582
14537 PR target/99881
14538 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
14539 Cost GPR to vector register moves for integer vector construction.
14540
14541 2022-02-22 Richard Biener <rguenther@suse.de>
14542
14543 PR tree-optimization/104582
14544 * tree-vectorizer.h (stmt_info_for_cost::node): New field.
14545 (vector_costs::add_stmt_cost): Add SLP node parameter.
14546 (dump_stmt_cost): Likewise.
14547 (add_stmt_cost): Likewise, new overload and adjust.
14548 (add_stmt_costs): Adjust.
14549 (record_stmt_cost): New overload.
14550 * tree-vectorizer.cc (dump_stmt_cost): Dump the SLP node.
14551 (vector_costs::add_stmt_cost): Adjust.
14552 * tree-vect-loop.cc (vect_estimate_min_profitable_iters):
14553 Adjust.
14554 * tree-vect-slp.cc (vect_prologue_cost_for_slp): Record
14555 the SLP node for costing.
14556 (vectorizable_slp_permutation): Likewise.
14557 * tree-vect-stmts.cc (record_stmt_cost): Adjust and add
14558 new overloads.
14559 * config/i386/i386.cc (ix86_vector_costs::add_stmt_cost):
14560 Adjust.
14561 * config/aarch64/aarch64.cc (aarch64_vector_costs::add_stmt_cost):
14562 Adjust.
14563 * config/rs6000/rs6000.cc (rs6000_vector_costs::add_stmt_cost):
14564 Adjust.
14565 (rs6000_cost_data::adjust_vect_cost_per_loop): Likewise.
14566
14567 2022-02-22 Richard Biener <rguenther@suse.de>
14568
14569 PR tree-optimization/104582
14570 * tree-vectorizer.h (add_stmt_cost): New overload.
14571 (record_stmt_cost): Likewise.
14572 * tree-vect-loop.cc (vect_compute_single_scalar_iteration_cost):
14573 Use add_stmt_costs.
14574 (vect_get_known_peeling_cost): Use new overloads.
14575 (vect_estimate_min_profitable_iters): Likewise. Consistently
14576 use scalar_stmt for costing versioning checks.
14577 * tree-vect-stmts.cc (record_stmt_cost): New overload.
14578
14579 2022-02-22 Hongyu Wang <hongyu.wang@intel.com>
14580
14581 PR target/103069
14582 * config/i386/i386-expand.cc (ix86_expand_atomic_fetch_op_loop):
14583 Split atomic fetch and loop part.
14584 (ix86_expand_cmpxchg_loop): New expander for cmpxchg loop.
14585 * config/i386/i386-protos.h (ix86_expand_cmpxchg_loop): New
14586 prototype.
14587 * config/i386/sync.md (atomic_compare_and_swap<mode>): Call new
14588 expander under TARGET_RELAX_CMPXCHG_LOOP.
14589 (atomic_compare_and_swap<mode>): Likewise for doubleword modes.
14590
14591 2022-02-21 Dan Li <ashimida@linux.alibaba.com>
14592
14593 * config/aarch64/aarch64.cc (SLOT_REQUIRED):
14594 Change wb_candidate[12] to wb_push_candidate[12].
14595 (aarch64_layout_frame): Likewise, and
14596 change callee_adjust when scs is enabled.
14597 (aarch64_save_callee_saves):
14598 Change wb_candidate[12] to wb_push_candidate[12].
14599 (aarch64_restore_callee_saves):
14600 Change wb_candidate[12] to wb_pop_candidate[12].
14601 (aarch64_get_separate_components):
14602 Change wb_candidate[12] to wb_push_candidate[12].
14603 (aarch64_expand_prologue): Push x30 onto SCS before it's
14604 pushed onto stack.
14605 (aarch64_expand_epilogue): Pop x30 frome SCS, while
14606 preventing it from being popped from the regular stack again.
14607 (aarch64_override_options_internal): Add SCS compile option check.
14608 (TARGET_HAVE_SHADOW_CALL_STACK): New hook.
14609 * config/aarch64/aarch64.h (struct GTY): Add is_scs_enabled,
14610 wb_pop_candidate[12], and rename wb_candidate[12] to
14611 wb_push_candidate[12].
14612 * config/aarch64/aarch64.md (scs_push): New template.
14613 (scs_pop): Likewise.
14614 * doc/invoke.texi: Document -fsanitize=shadow-call-stack.
14615 * doc/tm.texi: Regenerate.
14616 * doc/tm.texi.in: Add hook have_shadow_call_stack.
14617 * flag-types.h (enum sanitize_code):
14618 Add SANITIZE_SHADOW_CALL_STACK.
14619 * opts.cc (parse_sanitizer_options): Add shadow-call-stack
14620 and exclude SANITIZE_SHADOW_CALL_STACK.
14621 * target.def: New hook.
14622 * toplev.cc (process_options): Add SCS compile option check.
14623 * ubsan.cc (ubsan_expand_null_ifn): Enum type conversion.
14624
14625 2022-02-21 Tom de Vries <tdevries@suse.de>
14626
14627 PR target/104440
14628 * config/nvptx/nvptx.cc (workaround_uninit_method_1)
14629 (workaround_uninit_method_2, workaround_uninit_method_3)
14630 (workaround_uninit): New function.
14631 (nvptx_reorg): Use workaround_uninit.
14632 * config/nvptx/nvptx.opt (minit-regs): New option.
14633
14634 2022-02-21 Andre Vieira <andre.simoesdiasvieira@arm.com>
14635
14636 PR rtl-optimization/104498
14637 * alias.cc (compare_base_symbol_refs): Correct distance computation
14638 when swapping x and y.
14639
14640 2022-02-21 Andrew Pinski <apinski@marvell.com>
14641
14642 PR c/104506
14643 * tree-ssa.cc (tree_ssa_useless_type_conversion):
14644 Check the inner type before calling useless_type_conversion_p.
14645
14646 2022-02-19 Tom de Vries <tdevries@suse.de>
14647
14648 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle SET insn.
14649 * config/nvptx/nvptx.md
14650 (define_insn "nvptx_atomic_store<mode>"): Rename to ...
14651 (define_insn "nvptx_atomic_store_sm70<mode>"): This.
14652 (define_insn "nvptx_atomic_store<mode>"): New define_insn.
14653 (define_expand "atomic_store<mode>"): Handle rename. Use
14654 nvptx_atomic_store instead of atomic_exchange.
14655
14656 2022-02-19 Tom de Vries <tdevries@suse.de>
14657
14658 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Handle all
14659 insns with atomic attribute. Assert that all handled insns are
14660 PARALLELs.
14661 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"):
14662 Set atomic attribute to false.
14663
14664 2022-02-19 Tom de Vries <tdevries@suse.de>
14665
14666 * config/nvptx/nvptx.cc (nvptx_unisimt_handle_set): Change return
14667 type to bool.
14668 (nvptx_reorg_uniform_simt): Insert nvptx_uniform_warp_check or
14669 nvptx_warpsync, if necessary.
14670
14671 2022-02-19 Jakub Jelinek <jakub@redhat.com>
14672
14673 PR sanitizer/102656
14674 * asan.cc (instrument_derefs): If inner is a RESULT_DECL and access is
14675 known to be within bounds, treat it like automatic variables.
14676 If instrumenting access and inner is {VAR,PARM,RESULT}_DECL from
14677 current function and !TREE_STATIC which is not TREE_ADDRESSABLE, mark
14678 it addressable.
14679
14680 2022-02-18 Pat Haugen <pthaugen@linux.ibm.com>
14681
14682 * config/rs6000/rs6000.opt (mpower10-fusion): Mark Undocumented.
14683 (mpower10-fusion-ld-cmpi, mpower10-fusion-2logical,
14684 mpower10-fusion-logical-add, mpower10-fusion-add-logical,
14685 mpower10-fusion-2add, mpower10-fusion-2store): Remove.
14686 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER,
14687 OTHER_P9_VECTOR_MASKS): Remove Power10 fusion sub-options.
14688 * config/rs6000/rs6000.cc (rs6000_option_override_internal,
14689 power10_sched_reorder): Likewise.
14690 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10, gen_logical_addsubf,
14691 gen_addadd): Likewise
14692 * config/rs6000/fusion.md: Regenerate.
14693
14694 2022-02-18 Jakub Jelinek <jakub@redhat.com>
14695
14696 PR target/104257
14697 PR target/104598
14698 * config/rs6000/mm_malloc.h (_mm_malloc): Call posix_memalign
14699 rather than __posix_memalign.
14700
14701 2022-02-18 Richard Biener <rguenther@suse.de>
14702
14703 PR target/104581
14704 * config/i386/i386.cc (ix86_avx_u128_mode_source): Remove.
14705 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY instead
14706 of calling ix86_avx_u128_mode_source which would eventually
14707 have returned AVX_U128_ANY in some very special case.
14708
14709 2022-02-18 Richard Biener <rguenther@suse.de>
14710
14711 PR tree-optimization/96881
14712 * tree-ssa-dce.cc (mark_stmt_if_obviously_necessary): Comment
14713 CLOBBER handling.
14714 (control_parents_preserved_p): New function.
14715 (eliminate_unnecessary_stmts): Check that we preserved control
14716 parents before retaining a CLOBBER.
14717 (perform_tree_ssa_dce): Pass down aggressive flag
14718 to eliminate_unnecessary_stmts.
14719
14720 2022-02-17 Jason Merrill <jason@redhat.com>
14721
14722 * tree.cc (warn_deprecated_use): Look for TYPE_STUB_DECL
14723 on TYPE_MAIN_VARIANT.
14724
14725 2022-02-17 Paul A. Clarke <pc@us.ibm.com>
14726
14727 PR target/104257
14728 * config/rs6000/bmi2intrin.h: Uglify local variables.
14729 * config/rs6000/emmintrin.h: Likewise.
14730 * config/rs6000/mm_malloc.h: Likewise.
14731 * config/rs6000/mmintrin.h: Likewise.
14732 * config/rs6000/pmmintrin.h: Likewise.
14733 * config/rs6000/smmintrin.h: Likewise.
14734 * config/rs6000/tmmintrin.h: Likewise.
14735 * config/rs6000/xmmintrin.h: Likewise.
14736
14737 2022-02-17 Robin Dapp <rdapp@linux.ibm.com>
14738
14739 PR target/104335
14740 * config/rs6000/rs6000.cc (rs6000_emit_int_cmove): Return false
14741 if the expected comparison's first operand is of mode MODE_CC.
14742
14743 2022-02-17 Vladimir N. Makarov <vmakarov@redhat.com>
14744
14745 PR rtl-optimization/104447
14746 * lra-constraints.cc (spill_hard_reg_in_range): Initiate ignore
14747 hard reg set by lra_no_alloc_regs.
14748
14749 2022-02-17 liuhongt <hongtao.liu@intel.com>
14750
14751 PR tree-optimization/104551
14752 PR tree-optimization/103771
14753 * match.pd (cond_expr_convert_p): Add types_match check when
14754 convert is extension.
14755 * tree-vect-patterns.cc
14756 (gimple_cond_expr_convert_p): Adjust comments.
14757 (vect_recog_cond_expr_convert_pattern): Ditto.
14758
14759 2022-02-17 Jakub Jelinek <jakub@redhat.com>
14760
14761 PR debug/104557
14762 * valtrack.cc (debug_lowpart_subreg): Don't call gen_rtx_raw_SUBREG
14763 if expr has VOIDmode.
14764
14765 2022-02-17 liuhongt <hongtao.liu@intel.com>
14766
14767 * config/i386/cpuid.h (bit_MPX): Removed.
14768 (bit_BNDREGS): Ditto.
14769 (bit_BNDCSR): Ditto.
14770
14771 2022-02-17 Michael Meissner <meissner@the-meissners.org>
14772
14773 PR target/99708
14774 * config/rs6000/rs6000-c.cc (rs6000_cpu_cpp_builtins): Define
14775 __SIZEOF_IBM128__ if the IBM 128-bit long double type is created.
14776 Define __SIZEOF_FLOAT128__ if the IEEE 128-bit floating point type
14777 is created.
14778
14779 2022-02-16 Andrew MacLeod <amacleod@redhat.com>
14780
14781 * gimple-range-gori.cc (gori_compute::condexpr_adjust): Use
14782 range_compatible_p instead of direct type comparison.
14783
14784 2022-02-16 Jakub Jelinek <jakub@redhat.com>
14785
14786 PR rtl-optimization/104544
14787 * combine.cc (try_combine): When looking for insn whose links
14788 should be updated from i3 to i2, don't stop on debug insns, instead
14789 skip over them.
14790
14791 2022-02-16 Richard Sandiford <richard.sandiford@arm.com>
14792
14793 PR target/100056
14794 * config/aarch64/iterators.md (LOGICAL_OR_PLUS): New iterator.
14795 * config/aarch64/aarch64.md: Extend the PR100056 patterns
14796 to handle plus in the same way as ior, if the operands have
14797 no set bits in common.
14798
14799 2022-02-15 Andrew MacLeod <amacleod@redhat.com>
14800
14801 PR tree-optimization/104526
14802 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Call
14803 new routine.
14804 * gimple-range-gori.cc (range_def_chain::get_def_chain): Force a build
14805 of dependency chain if there isn't one.
14806 (gori_compute::condexpr_adjust): New.
14807 * gimple-range-gori.h (class gori_compute): New prototype.
14808
14809 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
14810
14811 PR target/100874
14812 * config/aarch64/aarch64-protos.h (aarch64_maxmin_plus_const):
14813 Declare.
14814 * config/aarch64/aarch64.cc (aarch64_maxmin_plus_const): New function.
14815 * config/aarch64/aarch64.md (*aarch64_minmax_plus): New pattern.
14816
14817 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
14818
14819 * tree-vectorizer.h (vect_scalar_ops_slice): New struct.
14820 (vect_scalar_ops_slice_hash): Likewise.
14821 (vect_scalar_ops_slice::op): New function.
14822 * tree-vect-slp.cc (vect_scalar_ops_slice::all_same_p): New function.
14823 (vect_scalar_ops_slice_hash::hash): Likewise.
14824 (vect_scalar_ops_slice_hash::equal): Likewise.
14825 (vect_prologue_cost_for_slp): Check for duplicate vectors.
14826 * config/aarch64/aarch64.cc
14827 (aarch64_vector_costs::m_stp_sequence_cost): New member variable.
14828 (aarch64_aligned_constant_offset_p): New function.
14829 (aarch64_stp_sequence_cost): Likewise.
14830 (aarch64_vector_costs::add_stmt_cost): Handle new STP heuristic.
14831 (aarch64_vector_costs::finish_cost): Likewise.
14832
14833 2022-02-15 Richard Sandiford <richard.sandiford@arm.com>
14834
14835 * tree-vect-slp.cc (vect_bb_vectorization_profitable_p): Fix
14836 use after free.
14837
14838 2022-02-15 Richard Biener <rguenther@suse.de>
14839
14840 PR tree-optimization/104543
14841 * gimple-loop-jam.cc (unroll_jam_possible_p): Check outer loop exits
14842 come after the inner loop.
14843
14844 2022-02-15 Jakub Jelinek <jakub@redhat.com>
14845
14846 PR target/104536
14847 * config/i386/host-cygwin.cc (cygwin_gt_pch_get_address): Use
14848 cannot instead of can%'t in diagnostics. Formatting fixes.
14849
14850 2022-02-15 Jakub Jelinek <jakub@redhat.com>
14851
14852 PR middle-end/104522
14853 * fold-const.h (native_interpret_real): Declare.
14854 * fold-const.cc (native_interpret_real): No longer static. Don't
14855 perform MODE_COMPOSITE_P verification here.
14856 (native_interpret_expr) <case REAL_TYPE>: But perform it here instead
14857 for all modes.
14858 * gimple-fold.cc (clear_padding_type): Call native_interpret_real
14859 instead of native_interpret_expr.
14860 * simplify-rtx.cc (simplify_immed_subreg): Perform the native_encode_rtx
14861 and comparison verification for all FLOAT_MODE_P modes, not just
14862 MODE_COMPOSITE_P.
14863
14864 2022-02-15 Richard Biener <rguenther@suse.de>
14865
14866 PR tree-optimization/104519
14867 * fold-const.cc (multiple_of_p): Remove never true condition.
14868 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Use
14869 the appropriate types for determining whether the difference
14870 of final and base is a multiple of the step.
14871
14872 2022-02-15 Jakub Jelinek <jakub@redhat.com>
14873
14874 PR debug/104517
14875 * omp-low.cc (task_cpyfns): New variable.
14876 (delete_omp_context): Don't call finalize_task_copyfn from here.
14877 (create_task_copyfn): Push task_stmt into task_cpyfns.
14878 (execute_lower_omp): Call finalize_task_copyfn here on entries from
14879 task_cpyfns vector and release the vector.
14880
14881 2022-02-14 Martin Sebor <msebor@redhat.com>
14882
14883 PR middle-end/104355
14884 * doc/invoke.texi (-Warray-bounds): Update documentation.
14885
14886 2022-02-14 Michael Meissner <meissner@the-meissners.org>
14887
14888 PR target/104253
14889 * config/rs6000/rs6000.cc (init_float128_ibm): Update the
14890 conversion functions used to convert IFmode types.
14891
14892 2022-02-14 Andrew Stubbs <ams@codesourcery.com>
14893
14894 * config/gcn/gcn.cc (gcn_expand_reduc_scalar): Use force_reg.
14895
14896 2022-02-14 Richard Biener <rguenther@suse.de>
14897
14898 PR tree-optimization/104528
14899 * tree-ssa.h (find_released_ssa_name): Declare.
14900 * tree-ssa.cc (find_released_ssa_name): Export.
14901 * cfgloop.cc (verify_loop_structure): Look for released
14902 SSA names in loops nb_iterations.
14903 * tree-ssa-dse.cc (pass_dse::execute): Release number of iteration
14904 estimates.
14905
14906 2022-02-14 Richard Biener <rguenther@suse.de>
14907
14908 PR tree-optimization/104511
14909 * tree-ssa-forwprop.cc (simplify_vector_constructor): Avoid
14910 touching DFP <-> FP conversions.
14911
14912 2022-02-14 Richard Biener <rguenther@suse.de>
14913
14914 PR middle-end/104497
14915 * gimplify.cc (gimplify_compound_lval): Make sure the
14916 base is a non-register if needed and possible.
14917
14918 2022-02-13 liuhongt <hongtao.liu@intel.com>
14919
14920 PR target/103771
14921 * match.pd (cond_expr_convert_p): New match.
14922 * tree-vect-patterns.cc (gimple_cond_expr_convert_p): Declare.
14923 (vect_recog_cond_expr_convert_pattern): New.
14924
14925 2022-02-12 Jakub Jelinek <jakub@redhat.com>
14926
14927 PR sanitizer/104449
14928 * asan.cc: Include tree-eh.h.
14929 (handle_builtin_alloca): Handle the case when __builtin_alloca or
14930 __builtin_alloca_with_align can throw.
14931
14932 2022-02-12 Jakub Jelinek <jakub@redhat.com>
14933
14934 PR target/104502
14935 * config/i386/i386.md (cvtsd2ss splitter): If operands[1] is xmm16+
14936 and AVX512VL isn't available, move operands[1] to operands[0] first.
14937
14938 2022-02-12 Uroš Bizjak <ubizjak@gmail.com>
14939
14940 PR target/79754
14941 * config/i386/i386.cc (type_natural_mode):
14942 Skip decimal float vector modes.
14943
14944 2022-02-11 Iain Sandoe <iain@sandoe.co.uk>
14945 Vladimir Makarov <vmakarov@redhat.com>
14946
14947 PR target/104117
14948 * config/rs6000/rs6000.cc (darwin_rs6000_legitimate_lo_sum_const_p):
14949 Check for UNSPEC_MACHOPIC_OFFSET wrappers on symbolic addresses when
14950 emitting PIC code.
14951 (legitimate_lo_sum_address_p): Likewise.
14952 * lra-constraints.cc (process_address_1): Do not attempt to emit a reg
14953 load from an invalid lo_sum address.
14954
14955 2022-02-11 Jakub Jelinek <jakub@redhat.com>
14956
14957 PR tree-optimization/104499
14958 * match.pd ((X & Y) CMP 0 -> X CMP2 ~Y): Use view_convert instead
14959 of convert.
14960
14961 2022-02-11 Jakub Jelinek <jakub@redhat.com>
14962
14963 * tree.cc (build_common_builtin_nodes): Fix up formatting in
14964 __builtin_clear_padding decl creation.
14965 * gimplify.cc (gimple_add_padding_init_for_auto_var): Encode
14966 for_auto_init in the value of 2nd BUILT_IN_CLEAR_PADDING
14967 argument rather than in 3rd argument.
14968 (gimplify_call_expr): Likewise. Fix up comment formatting.
14969 * gimple-fold.cc (gimple_fold_builtin_clear_padding): Expect
14970 2 arguments instead of 3, take for_auto_init from the value
14971 of 2nd argument.
14972
14973 2022-02-11 Vladimir N. Makarov <vmakarov@redhat.com>
14974
14975 PR rtl-optimization/104400
14976 * lra-constraints.cc (process_alt_operands): Don't make union of
14977 this_alternative_exclude_start_hard_regs when reg class in insn
14978 alternative covers other reg classes in the same alternative.
14979
14980 2022-02-11 Jakub Jelinek <jakub@redhat.com>
14981
14982 PR middle-end/104446
14983 * combine.cc (subst): Don't substitute CONST_INTs into RTX_AUTOINC
14984 operands.
14985
14986 2022-02-11 Richard Biener <rguenther@suse.de>
14987
14988 PR middle-end/104496
14989 * internal-fn.cc (vectorized_internal_fn_supported_p):
14990 Bail out for integer mode vector types.
14991
14992 2022-02-11 Jakub Jelinek <jakub@redhat.com>
14993
14994 PR rtl-optimization/104459
14995 * df-scan.cc (df_insn_change_bb): Don't call df_set_bb_dirty when
14996 moving DEBUG_INSNs between bbs.
14997
14998 2022-02-11 liuhongt <hongtao.liu@intel.com>
14999
15000 PR tree-optimization/104479
15001 * match.pd (uncond_op + vec_cond -> cond_op): Add single_use
15002 for the dest of uncond_op.
15003
15004 2022-02-11 Tom de Vries <tdevries@suse.de>
15005
15006 PR target/104456
15007 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle asm
15008 insn.
15009
15010 2022-02-10 Qing Zhao <qing.zhao@oracle.com>
15011
15012 PR middle-end/100775
15013 * function.cc (gen_call_used_regs_seq): Call
15014 df_update_exit_block_uses when updating df.
15015
15016 2022-02-10 Uroš Bizjak <ubizjak@gmail.com>
15017
15018 PR target/104469
15019 * config/i386/sse.md (vec_unpacks_float_lo_v4si):
15020 Change operand 1 constraint to register_operand.
15021
15022 2022-02-10 Richard Biener <rguenther@suse.de>
15023
15024 PR tree-optimization/104373
15025 * tree-ssa-sccvn.h (do_rpo_vn): New export exposing the
15026 walk kind.
15027 * tree-ssa-sccvn.cc (do_rpo_vn): Export, get the default
15028 walk kind as argument.
15029 (run_rpo_vn): Adjust.
15030 (pass_fre::execute): Likewise.
15031 * tree-ssa-uninit.cc (warn_uninitialized_vars): Skip
15032 blocks not reachable.
15033 (execute_late_warn_uninitialized): Mark all edges as
15034 executable.
15035 (execute_early_warn_uninitialized): Use VN to compute
15036 executable edges.
15037 (pass_data_early_warn_uninitialized): Enable a dump file,
15038 change dump name to warn_uninit.
15039
15040 2022-02-10 Richard Biener <rguenther@suse.de>
15041
15042 PR middle-end/104467
15043 * match.pd (vector extract simplification): Multiply the
15044 number of CTOR elements with the number of element elements.
15045
15046 2022-02-10 Richard Biener <rguenther@suse.de>
15047
15048 PR tree-optimization/104466
15049 * tree-ssa-alias.cc (refs_may_alias_p_2): Use rbase1/rbase2
15050 for the MR_DEPENDENCE checks as intended.
15051
15052 2022-02-10 Tom de Vries <tdevries@suse.de>
15053
15054 * config/nvptx/nvptx.md (define_insn "nvptx_atomic_store<mode>"): New
15055 define_insn.
15056 (define_expand "atomic_store<mode>"): Use nvptx_atomic_store<mode> for
15057 TARGET_SM70.
15058 (define_c_enum "unspecv"): Add UNSPECV_ST.
15059
15060 2022-02-10 Tom de Vries <tdevries@suse.de>
15061
15062 * config/nvptx/nvptx-protos.h (nvptx_mem_maybe_shared_p): Declare.
15063 * config/nvptx/nvptx.cc (nvptx_mem_data_area): New static function.
15064 (nvptx_mem_maybe_shared_p): New function.
15065 * config/nvptx/nvptx.md (define_expand "atomic_store<mode>"): New
15066 define_expand.
15067
15068 2022-02-10 Tom de Vries <tdevries@suse.de>
15069
15070 PR target/97005
15071 * config/nvptx/nvptx.md (define_insn "sub<mode>3"): Workaround
15072 driver JIT bug by using sub.s16 instead of sub.u16.
15073
15074 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15075
15076 * config/nvptx/nvptx.md (copysign<mode>3): Allow immediate
15077 floating point constants as operands 1 and/or 2.
15078
15079 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15080
15081 PR target/104345
15082 * config/nvptx/nvptx.md (sel_true<mode>): Fix indentation.
15083 (sel_false<mode>): Likewise.
15084 (define_code_iterator eqne): New code iterator for EQ and NE.
15085 (*selp<mode>_neg_<code>): New define_insn_and_split to optimize
15086 the negation of a selp instruction.
15087 (*selp<mode>_not_<code>): New define_insn_and_split to optimize
15088 the bitwise not of a selp instruction.
15089 (*setcc_int<mode>): Use set instruction for neg:SI of a selp.
15090
15091 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15092
15093 * config/nvptx/nvptx.md (any_logic): Move code iterator earlier
15094 in machine description.
15095 (logic): Move code attribute earlier in machine description.
15096 (ilogic): New code attribute, like logic but "ior" for IOR.
15097 (and<mode>3, ior<mode>3, xor<mode>3): Delete. Replace with...
15098 (<ilogic><mode>3): New define_insn for HSDIM logic operations.
15099 (<ilogic>bi3): New define_insn for BI mode logic operations.
15100 (define_split): Lower logic operations from integer modes to
15101 BI mode predicate operations.
15102
15103 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15104
15105 * config/nvptx/nvptx.md (UNSPEC_ISINF): New UNSPEC.
15106 (one_cmplbi2): New define_insn for not.pred.
15107 (mulditi3): New define_expand for signed widening multiply.
15108 (umulditi3): New define_expand for unsigned widening multiply.
15109 (smul<mode>3_highpart): New define_insn for signed highpart mult.
15110 (umul<mode>3_highpart): New define_insn for unsigned highpart mult.
15111 (*smulhi3_highpart_2): Renamed from smulhi3_highpart.
15112 (*smulsi3_highpart_2): Renamed from smulsi3_highpart.
15113 (*umulhi3_highpart_2): Renamed from umulhi3_highpart.
15114 (*umulsi3_highpart_2): Renamed from umulsi3_highpart.
15115 (*setcc<mode>_from_not_bi): New define_insn.
15116 (*setcc_isinf<mode>): New define_insn for testp.infinite.
15117 (isinf<mode>2): New define_expand.
15118
15119 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15120
15121 * config/nvptx/nvptx.md (cmp<mode>): Renamed from *cmp<mode>.
15122 (setcc<mode>_from_bi): Additionally support QImode.
15123 (extendbi<mode>2): Additionally support QImode.
15124 (zero_extendbi<mode>2): Additionally support QImode.
15125 (any_sbinary, any_ubinary, any_sunary, any_uunary): New code
15126 iterators for signed and unsigned, binary and unary operations.
15127 (<sbinary>qi3, <ubinary>qi3, <sunary>qi2, <uunary>qi2): New
15128 expanders to perform QImode operations using SImode instructions.
15129 (cstoreqi4): New define_expand.
15130 (*ext_truncsi2_qi): New define_insn.
15131 (*zext_truncsi2_qi): New define_insn.
15132
15133 2022-02-10 Roger Sayle <roger@nextmovesoftware.com>
15134
15135 * config/nvptx/nvptx.md (*cmpf): New define_insn.
15136 (cstorehf4): New define_expand.
15137 (fmahf4): New define_insn.
15138 (neghf2): New define_insn.
15139 (abshf2): New define_insn.
15140
15141 2022-02-10 Gerald Pfeifer <gerald@pfeifer.com>
15142
15143 * doc/install.texi (Specific): Change the www.bitwizard.nl
15144 reference to use https.
15145
15146 2022-02-10 Marcel Vollweiler <marcel@codesourcery.com>
15147
15148 * gimplify.cc (gimplify_scan_omp_clauses): Added cases for
15149 OMP_CLAUSE_HAS_DEVICE_ADDR
15150 and handle array sections.
15151 (gimplify_adjust_omp_clauses): Added OMP_CLAUSE_HAS_DEVICE_ADDR case.
15152 * omp-low.cc (scan_sharing_clauses): Handle OMP_CLAUSE_HAS_DEVICE_ADDR.
15153 (lower_omp_target): Same.
15154 * tree-core.h (enum omp_clause_code): Same.
15155 * tree-nested.cc (convert_nonlocal_omp_clauses): Same.
15156 (convert_local_omp_clauses): Same.
15157 * tree-pretty-print.cc (dump_omp_clause): Same.
15158 * tree.cc: Same.
15159
15160 2022-02-10 Eugene Rozenfeld <erozen@microsoft.com>
15161
15162 * auto-profile.cc (afdo_indirect_call): Don't attempt to promote indirect calls
15163 that will result in direct recursive calls.
15164
15165 2022-02-10 Andrew Pinski <apinski@marvell.com>
15166
15167 PR target/104474
15168 * config/aarch64/aarch64.cc
15169 (aarch64_sve_expand_vector_init_handle_trailing_constants):
15170 Use CONST0_RTX instead of const0_rtx for the non-constant elements.
15171
15172 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
15173
15174 PR target/104462
15175 * common/config/i386/i386-common.cc (OPTION_MASK_ISA2_XSAVE_UNSET):
15176 Also include OPTION_MASK_ISA2_AVX2_UNSET.
15177
15178 2022-02-09 Uroš Bizjak <ubizjak@gmail.com>
15179
15180 PR target/104458
15181 * config/i386/i386-expand.cc (ix86_split_idivmod):
15182 Force operands[2] and operands[3] into a register..
15183
15184 2022-02-09 Jeff Law <jeffreyalaw@gmail.com>
15185
15186 PR target/97040
15187 * config/v850/v850.md (*v850_fnmasf4): Renamed from fnmasf4.
15188 (*v850_fnmssf4): Renamed from fnmssf4
15189
15190 2022-02-09 Ian Lance Taylor <iant@golang.org>
15191
15192 * godump.cc (go_force_record_alignment): Really name the alignment
15193 field "_" (complete 2021-12-29 change).
15194
15195 2022-02-09 Bill Schmidt <wschmidt@linux.ibm.com>
15196
15197 * config/rs6000/rs6000-builtins.def (VREPLACE_UN_UV2DI): Change
15198 function prototype.
15199 (VREPLACE_UN_UV4SI): Likewise.
15200 (VREPLACE_UN_V2DF): Likewise.
15201 (VREPLACE_UN_V2DI): Likewise.
15202 (VREPLACE_UN_V4SF): Likewise.
15203 (VREPLACE_UN_V4SI): Likewise.
15204 * config/rs6000/rs6000-overload.def (VEC_REPLACE_UN): Change all
15205 function prototypes.
15206 * config/rs6000/vsx.md (vreplace_un_<mode>): Remove define_expand.
15207 (vreplace_un_<mode>): New define_insn.
15208
15209 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15210
15211 * config/aarch64/iterators.md (VDCSIF): New mode iterator.
15212 (VDBL): Handle SF.
15213 (single_wx, single_type, single_dtype, dblq): New mode attributes.
15214 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Extend
15215 from VDC to VDCSIF.
15216 (store_pair_lanes<mode>): Likewise.
15217 (*aarch64_combine_internal<mode>): Likewise.
15218 (*aarch64_combine_internal_be<mode>): Likewise.
15219 (*aarch64_combinez<mode>): Likewise.
15220 (*aarch64_combinez_be<mode>): Likewise.
15221 * config/aarch64/aarch64.cc (aarch64_classify_address): Handle
15222 8-byte modes for ADDR_QUERY_LDP_STP_N.
15223 (aarch64_print_operand): Likewise for %y.
15224
15225 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15226
15227 * config/aarch64/aarch64-simd.md (@aarch64_split_simd_mov<mode>):
15228 Use aarch64_combine instead of move_lo/hi_quad. Tabify.
15229 (move_lo_quad_<mode>, aarch64_simd_move_hi_quad_<mode>): Delete.
15230 (aarch64_simd_move_hi_quad_be_<mode>, move_hi_quad_<mode>): Delete.
15231 (vec_pack_trunc_<mode>): Take general_operand elements and use
15232 aarch64_combine rather than move_lo/hi_quad to combine them.
15233 (vec_pack_trunc_df): Likewise.
15234
15235 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15236
15237 * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine):
15238 Delete.
15239 * config/aarch64/aarch64-simd.md (@aarch64_combinez<mode>): Rename
15240 to...
15241 (*aarch64_combinez<mode>): ...this.
15242 (@aarch64_combinez_be<mode>): Rename to...
15243 (*aarch64_combinez_be<mode>): ...this.
15244 (@aarch64_vec_concat<mode>): New expander.
15245 (aarch64_combine<mode>): Use it.
15246 (@aarch64_simd_combine<mode>): Delete.
15247 * config/aarch64/aarch64.cc (aarch64_split_simd_combine): Delete.
15248 (aarch64_expand_vector_init): Use aarch64_vec_concat.
15249
15250 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15251
15252 * config/aarch64/predicates.md (aarch64_reg_or_mem_pair_operand):
15253 New predicate.
15254 * config/aarch64/aarch64-simd.md (*aarch64_combine_internal<mode>)
15255 (*aarch64_combine_internal_be<mode>): New patterns.
15256
15257 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15258
15259 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>)
15260 (move_lo_quad_internal_be_<mode>): Delete.
15261 (move_lo_quad_<mode>): Use aarch64_combine<Vhalf> instead of the above.
15262
15263 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15264
15265 * config/aarch64/aarch64-protos.h (aarch64_mergeable_load_pair_p):
15266 Declare.
15267 * config/aarch64/aarch64-simd.md (load_pair_lanes<mode>): Use
15268 aarch64_mergeable_load_pair_p instead of inline check.
15269 * config/aarch64/aarch64.cc (aarch64_expand_vector_init): Likewise.
15270 (aarch64_check_consecutive_mems): Allow the reversed parameter
15271 to be null.
15272 (aarch64_mergeable_load_pair_p): New function.
15273
15274 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15275
15276 * config/aarch64/aarch64-simd.md (vec_set<mode>): Allow the
15277 element to be an aarch64_simd_nonimmediate_operand.
15278
15279 2022-02-09 Richard Sandiford <richard.sandiford@arm.com>
15280
15281 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_set<mode>): Use
15282 aarch64_simd_nonimmediate_operand instead of
15283 aarch64_simd_general_operand.
15284 (@aarch64_combinez<mode>): Use nonimmediate_operand instead of
15285 general_operand.
15286 (@aarch64_combinez_be<mode>): Likewise.
15287
15288 2022-02-09 Richard Biener <rguenther@suse.de>
15289
15290 PR middle-end/104464
15291 * gimple-isel.cc (gimple_expand_vec_cond_expr): Postpone
15292 throwing check to after unproblematic replacement.
15293
15294 2022-02-09 Roger Sayle <roger@nextmovesoftware.com>
15295
15296 PR tree-optimization/104420
15297 * match.pd (mult @0 real_zerop): Tweak conditions for constant
15298 folding X*0.0 (or X*-0.0) to HONOR_SIGNED_ZEROS when appropriate.
15299
15300 2022-02-09 Jakub Jelinek <jakub@redhat.com>
15301
15302 PR debug/104407
15303 * dwarf2out.cc (mangle_referenced_decls): New function.
15304 (tree_add_const_value_attribute): Don't call rtl_for_decl_init if
15305 early_dwarf. Instead walk the initializer and try to mangle vars or
15306 functions referenced from it.
15307
15308 2022-02-09 Andrew MacLeod <amacleod@redhat.com>
15309
15310 PR tree-optimization/104288
15311 * gimple-range-cache.cc (non_null_ref::set_nonnull): New.
15312 (non_null_ref::adjust_range): Move to header.
15313 (ranger_cache::range_of_def): Don't check non-null.
15314 (ranger_cache::entry_range): Don't check non-null.
15315 (ranger_cache::range_on_edge): Check for nonnull on normal edges.
15316 (ranger_cache::update_to_nonnull): New.
15317 (non_null_loadstore): New.
15318 (ranger_cache::block_apply_nonnull): New.
15319 * gimple-range-cache.h (class non_null_ref): Update prototypes.
15320 (non_null_ref::adjust_range): Move to here and inline.
15321 (class ranger_cache): Update prototypes.
15322 * gimple-range-path.cc (path_range_query::range_defined_in_block): Do
15323 not search dominators.
15324 (path_range_query::adjust_for_non_null_uses): Ditto.
15325 * gimple-range.cc (gimple_ranger::range_of_expr): Check on-entry for
15326 def overrides. Do not check nonnull.
15327 (gimple_ranger::range_on_entry): Check dominators for nonnull.
15328 (gimple_ranger::range_on_edge): Check for nonnull on normal edges..
15329 (gimple_ranger::register_side_effects): New.
15330 * gimple-range.h (gimple_ranger::register_side_effects): New.
15331 * tree-vrp.cc (rvrp_folder::fold_stmt): Call register_side_effects.
15332
15333 2022-02-09 Richard Biener <rguenther@suse.de>
15334
15335 PR tree-optimization/104445
15336 PR tree-optimization/102832
15337 * optabs-query.h (can_vec_extract): New.
15338 * optabs-query.cc (can_vec_extract): Likewise.
15339 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
15340 we can extract a hi/lo part from the larger vector, rework
15341 check iteration from larger to smaller sizes.
15342
15343 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
15344
15345 PR target/35513
15346 PR target/100593
15347 * config/i386/gnu-property.cc: Include "i386-protos.h".
15348 (file_end_indicate_exec_stack_and_gnu_property): Generate
15349 a GNU_PROPERTY_1_NEEDED note for -mno-direct-extern-access or
15350 nodirect_extern_access attribute.
15351 * config/i386/i386-options.cc
15352 (handle_nodirect_extern_access_attribute): New function.
15353 (ix86_attribute_table): Add nodirect_extern_access attribute.
15354 * config/i386/i386-protos.h (ix86_force_load_from_GOT_p): Add a
15355 bool argument.
15356 (ix86_has_no_direct_extern_access): New.
15357 * config/i386/i386.cc (ix86_has_no_direct_extern_access): New.
15358 (ix86_force_load_from_GOT_p): Add a bool argument to indicate
15359 call operand. Force non-call load from GOT for
15360 -mno-direct-extern-access or nodirect_extern_access attribute.
15361 (legitimate_pic_address_disp_p): Avoid copy relocation in PIE
15362 for -mno-direct-extern-access or nodirect_extern_access attribute.
15363 (ix86_print_operand): Pass true to ix86_force_load_from_GOT_p
15364 for call operand.
15365 (asm_preferred_eh_data_format): Use PC-relative format for
15366 -mno-direct-extern-access to avoid copy relocation. Check
15367 ptr_mode instead of TARGET_64BIT when selecting DW_EH_PE_sdata4.
15368 (ix86_binds_local_p): Set ix86_has_no_direct_extern_access to
15369 true for -mno-direct-extern-access or nodirect_extern_access
15370 attribute. Don't treat protected data as extern and avoid copy
15371 relocation on common symbol with -mno-direct-extern-access or
15372 nodirect_extern_access attribute.
15373 (ix86_reloc_rw_mask): New to avoid copy relocation for
15374 -mno-direct-extern-access.
15375 (TARGET_ASM_RELOC_RW_MASK): New.
15376 * config/i386/i386.opt: Add -mdirect-extern-access.
15377 * doc/extend.texi: Document nodirect_extern_access attribute.
15378 * doc/invoke.texi: Document -m[no-]direct-extern-access.
15379
15380 2022-02-09 H.J. Lu <hjl.tools@gmail.com>
15381
15382 PR target/104441
15383 * config/i386/i386.cc (ix86_avx_u128_mode_source): New function.
15384 (ix86_avx_u128_mode_needed): Return AVX_U128_ANY for debug INSN.
15385 Call ix86_avx_u128_mode_source to check mode for each component
15386 of source operand.
15387
15388 2022-02-09 liuhongt <hongtao.liu@intel.com>
15389
15390 PR target/104451
15391 * config/i386/sse.md (<insn><mode>3): lowpart_subreg
15392 operands[2] from SImode to QImode.
15393
15394 2022-02-09 Richard Biener <rguenther@suse.de>
15395
15396 PR middle-end/104450
15397 * gimple-isel.cc: Pass cfun around.
15398 (+gimple_expand_vec_cond_expr): Do not combine a throwing
15399 comparison with the select.
15400
15401 2022-02-09 Richard Biener <rguenther@suse.de>
15402
15403 PR target/104453
15404 * config/i386/i386.cc (ix86_gimple_fold_builtin): Guard shift
15405 folding for NULL LHS.
15406
15407 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15408
15409 PR rtl-optimization/104198
15410 PR rtl-optimization/104153
15411 * ifcvt.cc (noce_convert_multiple_sets_1): Copy rtx instead of
15412 using it directly. Rework comparison handling and always
15413 perform a second pass.
15414
15415 2022-02-08 Jakub Jelinek <jakub@redhat.com>
15416
15417 PR target/102140
15418 * config/rs6000/rs6000.cc (vspltis_shifted): Return false also if
15419 split1 pass has finished already.
15420
15421 2022-02-08 Bill Schmidt <wschmidt@linux.ibm.com>
15422
15423 * config/rs6000/rs6000-builtins.def (VMSUMCUD): New.
15424 * config/rs6000/rs6000-overload.def (VEC_MSUMC): New.
15425 * config/rs6000/vsx.md (UNSPEC_VMSUMCUD): New constant.
15426 (vmsumcud): New define_insn.
15427
15428 2022-02-08 Tom de Vries <tdevries@suse.de>
15429
15430 * config/nvptx/nvptx-opts.h (enum ptx_isa): Add PTX_ISA_SM70.
15431 * config/nvptx/nvptx.h (TARGET_SM70): Define.
15432
15433 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15434
15435 * config/s390/s390.cc (s390_rtx_costs): Increase costs for load
15436 on condition.
15437 * config/s390/s390.md: Use paradoxical subreg.
15438
15439 2022-02-08 Robin Dapp <rdapp@linux.ibm.com>
15440
15441 * combine.cc (reg_subword_p): Check for paradoxical subreg.
15442
15443 2022-02-08 Tom de Vries <tdevries@suse.de>
15444
15445 PR target/104283
15446 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_3_0
15447 and PTX_VERSION_4_2.
15448 * config/nvptx/nvptx.cc (first_ptx_version_supporting_sm)
15449 (default_ptx_version_option, ptx_version_to_string)
15450 (sm_version_to_string, handle_ptx_version_option): New function.
15451 (nvptx_option_override): Call handle_ptx_version_option.
15452 (nvptx_file_start): Use ptx_version_to_string and sm_version_to_string.
15453 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>")
15454 (define_insn "nvptx_vote_ballot"): Use TARGET_PTX_6_0.
15455 * config/nvptx/nvptx.opt (mptx): Remove 'Init'.
15456
15457 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
15458
15459 * doc/install.texi (Configuration): Document `--with-isa-spec='
15460 RISC-V option.
15461 * doc/invoke.texi (Option Summary): List `-misa-spec=' RISC-V
15462 option.
15463 (RISC-V Options): Document it.
15464
15465 2022-02-08 Maciej W. Rozycki <macro@embecosm.com>
15466
15467 * config/riscv/t-riscv (riscv-sr.o): Add $(TM_H) dependency.
15468
15469 2022-02-08 Tom de Vries <tdevries@suse.de>
15470
15471 * config/nvptx/nvptx.cc (write_fn_proto_1): Handle 'main (int)'.
15472
15473 2022-02-08 Tom de Vries <tdevries@suse.de>
15474
15475 PR target/104364
15476 * config/nvptx/nvptx-protos.h (nvptx_mem_local_p): Declare.
15477 * config/nvptx/nvptx.cc (nvptx_reorg_uniform_simt): Assert that
15478 change is validated.
15479 (nvptx_mem_local_p): New function.
15480 * config/nvptx/nvptx.md: Use nvptx_mem_local_p.
15481 (define_c_enum "unspecv"): Add UNSPECV_CAS_LOCAL.
15482 (define_insn "atomic_compare_and_swap<mode>_1_local"): New
15483 non-atomic, non-predicable define_insn, factored out of ...
15484 (define_insn "atomic_compare_and_swap<mode>_1"): ... here.
15485 Make predicable again.
15486 (define_expand "atomic_compare_and_swap<mode>"): Use
15487 atomic_compare_and_swap<mode>_1_local.
15488
15489 2022-02-08 liuhongt <hongtao.liu@intel.com>
15490
15491 PR rtl-optimization/104059
15492 * regcprop.cc (copyprop_hardreg_forward_1): Don't propagate
15493 for a more expensive reg-reg move.
15494
15495 2022-02-07 Tamar Christina <tamar.christina@arm.com>
15496
15497 * config/arm/arm_neon.h (vusdotq_s32, vusdot_laneq_s32,
15498 vusdotq_laneq_s32, vsudot_laneq_s32, vsudotq_laneq_s32): New
15499 * config/arm/arm_neon_builtins.def (usdot): Add V16QI.
15500 (usdot_laneq, sudot_laneq): New.
15501 * config/arm/neon.md (neon_<sup>dot_laneq<vsi2qi>): New.
15502 (neon_<sup>dot_lane<vsi2qi>): Remote unneeded code.
15503
15504 2022-02-07 Tamar Christina <tamar.christina@arm.com>
15505
15506 * config/arm/arm_neon.h (vdot_laneq_u32, vdotq_laneq_u32,
15507 vdot_laneq_s32, vdotq_laneq_s32): New.
15508 * config/arm/arm_neon_builtins.def (sdot_laneq, udot_laneq): New.
15509 * config/arm/neon.md (neon_<sup>dot<vsi2qi>): New.
15510 (<sup>dot_prod<vsi2qi>): Re-order rtl.
15511 (neon_<sup>dot_lane<vsi2qi>): Fix rtl order and endiannes.
15512 (neon_<sup>dot_laneq<vsi2qi>): New.
15513
15514 2022-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
15515
15516 PR target/104327
15517 * config/s390/s390.cc (s390_can_inline_p): Accept a few more flags
15518 if always_inline is set. Don't inline when tune differs without
15519 always_inline.
15520
15521 2022-02-07 Richard Biener <rguenther@suse.de>
15522
15523 PR middle-end/104402
15524 * gimple-expr.cc (is_gimple_condexpr): _Complex typed
15525 compares are not valid.
15526 * tree-cfg.cc (verify_gimple_assign_ternary): For COND_EXPR
15527 check is_gimple_condexpr.
15528
15529 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
15530
15531 PR target/103627
15532 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Move the
15533 hunk affecting VSX and ALTIVEC to appropriate place.
15534
15535 2022-02-07 Kewen Lin <linkw@linux.ibm.com>
15536
15537 PR target/103627
15538 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Disable
15539 MMA if !TARGET_VSX.
15540
15541 2022-02-06 Jakub Jelinek <jakub@redhat.com>
15542
15543 PR c++/89074
15544 PR c++/104033
15545 * fold-const.h (folding_initializer): Adjust comment.
15546 (folding_cxx_constexpr): Declare.
15547 * fold-const.cc (folding_initializer): Adjust comment.
15548 (folding_cxx_constexpr): New variable.
15549 (address_compare): Restrict the decl vs. STRING_CST
15550 or vice versa or STRING_CST vs. STRING_CST or
15551 is_global_var != is_global_var optimizations to !folding_cxx_constexpr.
15552 Punt for FUNCTION_DECLs with non-zero offsets. If folding_initializer,
15553 assume non-aliased functions have non-zero size and have different
15554 addresses. For folding_cxx_constexpr, punt on comparisons of start
15555 of some object and end of another one, regardless whether it is a decl
15556 or string literal. Also punt for folding_cxx_constexpr on
15557 STRING_CST vs. STRING_CST comparisons if the two literals could be
15558 overlapping.
15559
15560 2022-02-05 Jakub Jelinek <jakub@redhat.com>
15561
15562 PR tree-optimization/104389
15563 * match.pd (x * 0 -> 0): Punt if x maybe infinite and NaNs are
15564 honored.
15565
15566 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
15567
15568 * configure.ac: Fix detection for zifencei support.
15569 * configure: Regenerate.
15570
15571 2022-02-05 Kito Cheng <kito.cheng@sifive.com>
15572
15573 PR target/104219
15574 * config.gcc (riscv*-*-*): Normalize the with_isa_spec value.
15575 (all_defaults): Add isa_spec.
15576 * config/riscv/riscv.h (OPTION_DEFAULT_SPECS): Add isa_spec.
15577
15578 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
15579
15580 * config/rs6000/rs6000-c.cc (resolve_vec_mul): Accept args and types
15581 parameters instead of arglist and nargs. Simplify accordingly. Remove
15582 unnecessary test for argument count mismatch.
15583 (resolve_vec_cmpne): Likewise.
15584 (resolve_vec_adde_sube): Likewise.
15585 (resolve_vec_addec_subec): Likewise.
15586 (altivec_resolve_overloaded_builtin): Move overload special handling
15587 after the gathering of arguments into args[] and types[] and the test
15588 for correct number of arguments. Don't perform the test for correct
15589 number of arguments for certain special cases. Call the other special
15590 cases with args and types instead of arglist and nargs.
15591
15592 2022-02-04 Bill Schmidt <wschmidt@linux.ibm.com>
15593
15594 PR target/100808
15595 * doc/extend.texi (Basic PowerPC Built-in Functions Available on ISA
15596 3.1): Provide consistent type names. Remove unnecessary semicolons.
15597 Fix bad line breaks.
15598
15599 2022-02-04 Jakub Jelinek <jakub@redhat.com>
15600
15601 PR target/104380
15602 * config/rs6000/rs6000.cc (rs6000_mangle_decl_assembler_name): Also
15603 adjust mangling of __builtin*printf_chk.
15604
15605 2022-02-04 Jonathan Wakely <jwakely@redhat.com>
15606
15607 * doc/cpp.texi (Variadic Macros): Replace C++2a with C++20.
15608
15609 2022-02-04 Richard Biener <rguenther@suse.de>
15610 Bin Cheng <bin.cheng@linux.alibaba.com>
15611
15612 PR tree-optimization/100499
15613 * fold-const.h (multiple_of_p): Add nowrap parameter, defaulted
15614 to true.
15615 * fold-const.cc (multiple_of_p): Likewise. Honor it for
15616 MULT_EXPR, PLUS_EXPR and MINUS_EXPR and pass it along,
15617 switching to false for conversions.
15618 * tree-ssa-loop-niter.cc (number_of_iterations_ne): Do not
15619 claim the outermost expression does not wrap when calling
15620 multiple_of_p. Refactor the check done to check the
15621 original IV, avoiding a bias that might wrap.
15622
15623 2022-02-04 Richard Biener <rguenther@suse.de>
15624
15625 * fold-const.cc (multiple_of_p): Re-write and move LSHIFT_EXPR
15626 handling.
15627
15628 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
15629
15630 PR debug/104366
15631 * dwarf2out.cc (dwarf2out_finish): Empty base_types.
15632 (dwarf2out_early_finish): Likewise.
15633
15634 2022-02-04 Eric Botcazou <ebotcazou@adacore.com>
15635
15636 PR tree-optimization/104356
15637 * match.pd (X / bool_range_Y is X): Add guard.
15638 (X / X is one): Likewise.
15639 (X / abs (X) is X < 0 ? -1 : 1): Likewise.
15640 (X / -X is -1): Likewise.
15641 (1 / X -> X == 1): Likewise.
15642
15643 2022-02-04 Richard Biener <rguenther@suse.de>
15644
15645 PR tree-optimization/103641
15646 * tree-vect-patterns.cc (vect_synth_mult_by_constant):
15647 Pass the vector mode to choose_mult_variant.
15648
15649 2022-02-04 Roger Sayle <roger@nextmovesoftware.com>
15650
15651 PR rtl-optimization/101885
15652 * combine.cc (try_combine): When splitting a parallel into two
15653 sequential sets, check not only that the first doesn't clobber
15654 the second but also that the second doesn't clobber the first.
15655
15656 2022-02-04 Richard Biener <rguenther@suse.de>
15657
15658 PR middle-end/90348
15659 PR middle-end/104092
15660 * tree-core.h (clobber_kind): New enum.
15661 (tree_base::u::bits::address_space): Document use in CONSTRUCTORs.
15662 * tree.h (CLOBBER_KIND): Add.
15663 (build_clobber): Add clobber kind argument, defaulted to
15664 CLOBBER_UNDEF.
15665 * tree.cc (build_clobber): Likewise.
15666 * gimple.h (gimple_clobber_p): New overload with specified kind.
15667 * tree-streamer-in.cc (streamer_read_tree_bitfields): Stream
15668 CLOBBER_KIND.
15669 * tree-streamer-out.cc (streamer_write_tree_bitfields):
15670 Likewise.
15671 * tree-pretty-print.cc (dump_generic_node): Mark EOL CLOBBERs.
15672 * gimplify.cc (gimplify_bind_expr): Build storage end-of-life clobbers
15673 with CLOBBER_EOL.
15674 (gimplify_target_expr): Likewise.
15675 * tree-inline.cc (expand_call_inline): Likewise.
15676 * tree-ssa-ccp.cc (insert_clobber_before_stack_restore): Likewise.
15677 * gimple-ssa-warn-access.cc (pass_waccess::check_stmt): Only treat
15678 CLOBBER_EOL clobbers as ending lifetime of storage.
15679
15680 2022-02-04 Martin Sebor <msebor@redhat.com>
15681
15682 * pointer-query.h (pointer_query::cache_type): Use auto_vec for auto
15683 cleanup.
15684
15685 2022-02-03 Martin Sebor <msebor@redhat.com>
15686
15687 PR middle-end/104260
15688 * passes.def (pass_warn_access): Adjust pass placement.
15689
15690 2022-02-03 Uroš Bizjak <ubizjak@gmail.com>
15691
15692 PR target/104362
15693 * config/i386/i386.cc (find_drap_reg): For 32bit targets
15694 return DI_REG if function uses __builtin_eh_return.
15695
15696 2022-02-03 Martin Sebor <msebor@redhat.com>
15697
15698 * gimple-ssa-warn-restrict.cc (class pass_wrestrict): Outline ctor.
15699 (pass_wrestrict::m_ptr_qry): New member.
15700 (wrestrict_walk): Rename...
15701 (pass_wrestrict::check_block): ...to this.
15702 (pass_wrestrict::execute): Set up and tear down pointer_query and
15703 ranger.
15704 (builtin_memref::builtin_memref): Change ctor argument. Simplify.
15705 (builtin_access::builtin_access): Same.
15706 (builtin_access::m_ptr_qry): New member.
15707 (check_call): Rename...
15708 (pass_wrestrict::check_call): ...to this.
15709 (check_bounds_or_overlap): Change argument.
15710 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Same.
15711
15712 2022-02-03 Martin Sebor <msebor@redhat.com>
15713
15714 * gimple-array-bounds.cc (array_bounds_checker::array_bounds_checker):
15715 Define ctor.
15716 (array_bounds_checker::get_value_range): Use new member.
15717 (array_bounds_checker::check_mem_ref): Same.
15718 * gimple-array-bounds.h (array_bounds_checker::array_bounds_checker):
15719 Outline ctor.
15720 (array_bounds_checker::m_ptr_query): New member.
15721
15722 2022-02-03 Martin Sebor <msebor@redhat.com>
15723
15724 * gimple-ssa-warn-access.cc (pass_waccess::pass_waccess): Remove
15725 pointer_query cache.
15726 * pointer-query.cc (pointer_query::pointer_query): Remove cache
15727 argument. Zero-initialize new cache member.
15728 (pointer_query::get_ref): Replace cache pointer with direct access.
15729 (pointer_query::put_ref): Same.
15730 (pointer_query::flush_cache): Same.
15731 (pointer_query::dump): Same.
15732 * pointer-query.h (class pointer_query): Remove cache argument from
15733 ctor. Change cache pointer to cache subobject member.
15734 * tree-ssa-strlen.cc: Remove pointer_query cache.
15735
15736 2022-02-03 Martin Sebor <msebor@redhat.com>
15737
15738 PR tree-optimization/104119
15739 * gimple-ssa-sprintf.cc (struct directive): Change argument type.
15740 (format_none): Same.
15741 (format_percent): Same.
15742 (format_integer): Same.
15743 (format_floating): Same.
15744 (get_string_length): Same.
15745 (format_character): Same.
15746 (format_string): Same.
15747 (format_plain): Same.
15748 (format_directive): Same.
15749 (compute_format_length): Same.
15750 (handle_printf_call): Same.
15751 * tree-ssa-strlen.cc (get_range_strlen_dynamic): Same. Call
15752 get_maxbound.
15753 (get_range_strlen_phi): Same.
15754 (get_maxbound): New function.
15755 (strlen_pass::get_len_or_size): Adjust to parameter change.
15756 * tree-ssa-strlen.h (get_range_strlen_dynamic): Change argument type.
15757
15758 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
15759
15760 PR target/103686
15761 * config/rs6000/rs6000-builtin.cc (rs6000_gimple_fold_builtin): Remove
15762 test for !rs6000_fold_gimple.
15763 * config/rs6000/rs6000.cc (rs6000_option_override_internal): Likewise.
15764 * config/rs6000/rs6000.opt (mfold-gimple): Remove.
15765
15766 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
15767
15768 PR target/95082
15769 * config/rs6000/rs6000-builtin.cc (rs6000_expand_builtin): Handle
15770 endianness for vclzlsbb and vctzlsbb.
15771 * config/rs6000/rs6000-builtins.def (VCLZLSBB_V16QI): Change
15772 default pattern and indicate a different pattern will be used for
15773 big endian.
15774 (VCLZLSBB_V4SI): Likewise.
15775 (VCLZLSBB_V8HI): Likewise.
15776 (VCTZLSBB_V16QI): Likewise.
15777 (VCTZLSBB_V4SI): Likewise.
15778 (VCTZLSBB_V8HI): Likewise.
15779
15780 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
15781
15782 * config.gcc (powerpc*-*-*): Add rs6000-builtin.o to extra_objs.
15783 * config/rs6000/rs6000-builtin.cc: New file, containing code moved
15784 from other files.
15785 * config/rs6000/rs6000-call.cc (cpu_is_info): Move to
15786 rs6000-builtin.cc.
15787 (cpu_supports_info): Likewise.
15788 (rs6000_type_string): Likewise.
15789 (altivec_expand_predicate_builtin): Likewise.
15790 (rs6000_htm_spr_icode): Likewise.
15791 (altivec_expand_vec_init_builtin): Likewise.
15792 (get_element_number): Likewise.
15793 (altivec_expand_vec_set_builtin): Likewise.
15794 (altivec_expand_vec_ext_builtin): Likewise.
15795 (rs6000_invalid_builtin): Likewise.
15796 (rs6000_fold_builtin): Likewise.
15797 (fold_build_vec_cmp): Likewise.
15798 (fold_compare_helper): Likewise.
15799 (map_to_integral_tree_type): Likewise.
15800 (fold_mergehl_helper): Likewise.
15801 (fold_mergeeo_helper): Likewise.
15802 (rs6000_builtin_valid_without_lhs): Likewise.
15803 (rs6000_builtin_is_supported): Likewise.
15804 (rs6000_gimple_fold_mma_builtin): Likewise.
15805 (rs6000_gimple_fold_builtin): Likewise.
15806 (rs6000_expand_ldst_mask): Likewise.
15807 (cpu_expand_builtin): Likewise.
15808 (elemrev_icode): Likewise.
15809 (ldv_expand_builtin): Likewise.
15810 (lxvrse_expand_builtin): Likewise.
15811 (lxvrze_expand_builtin): Likewise.
15812 (stv_expand_builtin): Likewise.
15813 (mma_expand_builtin): Likewise.
15814 (htm_spr_num): Likewise.
15815 (htm_expand_builtin): Likewise.
15816 (rs6000_expand_builtin): Likewise.
15817 (rs6000_vector_type): Likewise.
15818 (rs6000_init_builtins): Likewise. Remove initialization of
15819 builtin_mode_to_type entries.
15820 (rs6000_builtin_decl): Move to rs6000-builtin.cc.
15821 * config/rs6000/rs6000.cc (rs6000_builtin_mask_for_load): New
15822 external declaration.
15823 (rs6000_builtin_md_vectorized_function): Likewise.
15824 (rs6000_builtin_reciprocal): Likewise.
15825 (altivec_builtin_mask_for_load): Move to rs6000-builtin.cc.
15826 (rs6000_builtin_types): Likewise.
15827 (builtin_mode_to_type): Remove.
15828 (rs6000_builtin_mask_for_load): Move to rs6000-builtin.cc. Remove
15829 static qualifier.
15830 (rs6000_builtin_md_vectorized_function): Likewise.
15831 (rs6000_builtin_reciprocal): Likewise.
15832 * config/rs6000/rs6000.h (builtin_mode_to_type): Remove.
15833 * config/rs6000/t-rs6000 (rs6000-builtin.o): New target.
15834
15835 2022-02-03 Richard Biener <rguenther@suse.de>
15836
15837 PR debug/104337
15838 * tree-nrv.cc (pass_nrv::execute): Remove tieing result and found
15839 together via DECL_ABSTRACT_ORIGIN.
15840
15841 2022-02-03 Bill Schmidt <wschmidt@linux.ibm.com>
15842
15843 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Revise error
15844 message for RES_BITS case.
15845
15846 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
15847
15848 * gimple-range-fold.cc (fur_list::fur_list): Set m_local[1] correctly.
15849
15850 2022-02-03 Jakub Jelinek <jakub@redhat.com>
15851
15852 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098,
15853 mfix-cortex-a72-aes-1655431): Ensure description ends with full stop.
15854
15855 2022-02-03 Aldy Hernandez <aldyh@redhat.com>
15856
15857 * cfganal.cc (verify_marked_backedges): New.
15858 * cfganal.h (verify_marked_backedges): New.
15859 * gimple-range-path.cc (path_range_query::path_range_query):
15860 Verify freshness of back edges.
15861 * tree-ssa-loop-ch.cc (ch_base::copy_headers): Call
15862 mark_dfs_back_edges.
15863 * tree-ssa-threadbackward.cc (back_threader::back_threader): Move
15864 path_range_query construction after backedges have been
15865 updated.
15866
15867 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
15868
15869 * config/aarch64/aarch64-simd.md (movmisalign<mode>): Extend from
15870 VALL to VALL_F16.
15871
15872 2022-02-03 Richard Sandiford <richard.sandiford@arm.com>
15873
15874 * config/aarch64/iterators.md (VALL_F16MOV): Delete.
15875 * config/aarch64/aarch64-simd.md (mov<mode>): Use VALL_F16 instead
15876 of VALL_F16MOV.
15877
15878 2022-02-03 Martin Liska <mliska@suse.cz>
15879
15880 * config/i386/i386-options.cc (ix86_valid_target_attribute_inner_p):
15881 Change subject and object in the error message.
15882 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
15883 Likewise.
15884
15885 2022-02-03 Martin Liska <mliska@suse.cz>
15886
15887 * config/s390/s390.cc (s390_valid_target_attribute_inner_p):
15888 Use the error message for i386 target.
15889
15890 2022-02-03 Jakub Jelinek <jakub@redhat.com>
15891
15892 PR tree-optimization/104334
15893 * range-op.cc (range_operator::wi_fold_in_parts): Change lh_range
15894 and rh_range type to widest_int and subtract in widest_int. Remove
15895 ov_rh, ov_lh and sign vars, always perform comparisons as signed
15896 and use >, < and == operators for it.
15897
15898 2022-02-03 Martin Sebor <msebor@redhat.com>
15899
15900 * common.opt (-Wuse-after-free): Correct typos.
15901
15902 2022-02-02 David Malcolm <dmalcolm@redhat.com>
15903
15904 PR analyzer/104270
15905 * doc/invoke.texi (-ftrivial-auto-var-init=): Add reference to
15906 -Wanalyzer-use-of-uninitialized-value to paragraph documenting that
15907 -ftrivial-auto-var-init= doesn't suppress warnings.
15908
15909 2022-02-02 Martin Liska <mliska@suse.cz>
15910
15911 * dwarf2out.cc (TEXT_SECTION_NAME): Remove unused macro.
15912
15913 2022-02-02 Bernd Kuhls <bernd.kuhls@t-online.de>
15914
15915 PR target/94372
15916 * config/or1k/linux.h (CPP_SPEC): Define.
15917
15918 2022-02-02 Tamar Christina <tamar.christina@arm.com>
15919
15920 PR tree-optimization/102819
15921 PR tree-optimization/103169
15922 * config/arm/vec-common.md (cml<fcmac1><conj_op><mode>4): Use
15923 canonical order.
15924
15925 2022-02-02 Tamar Christina <tamar.christina@arm.com>
15926
15927 PR tree-optimization/102819
15928 PR tree-optimization/103169
15929 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4): Use
15930 canonical order.
15931 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4): Likewise.
15932
15933 2022-02-02 Tamar Christina <tamar.christina@arm.com>
15934
15935 PR tree-optimization/102819
15936 PR tree-optimization/103169
15937 * doc/md.texi: Update docs for cfms, cfma.
15938 * tree-data-ref.h (same_data_refs): Accept optional offset.
15939 * tree-vect-slp-patterns.cc (is_linear_load_p): Fix issue with repeating
15940 patterns.
15941 (vect_normalize_conj_loc): Remove.
15942 (is_eq_or_top): Change to take two nodes.
15943 (enum _conj_status, compatible_complex_nodes_p,
15944 vect_validate_multiplication): New.
15945 (class complex_add_pattern, complex_add_pattern::matches,
15946 complex_add_pattern::recognize, class complex_mul_pattern,
15947 complex_mul_pattern::recognize, class complex_fms_pattern,
15948 complex_fms_pattern::recognize, class complex_operations_pattern,
15949 complex_operations_pattern::recognize, addsub_pattern::recognize): Pass
15950 new cache.
15951 (complex_fms_pattern::matches, complex_mul_pattern::matches): Pass new
15952 cache and use new validation code.
15953 * tree-vect-slp.cc (vect_match_slp_patterns_2, vect_match_slp_patterns,
15954 vect_analyze_slp): Pass along cache.
15955 (compatible_calls_p): Expose.
15956 * tree-vectorizer.h (compatible_calls_p, slp_node_hash,
15957 slp_compat_nodes_map_t): New.
15958 (class vect_pattern): Update signatures include new cache.
15959
15960 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
15961
15962 * config/cris/cris.cc (cris_preferred_reload_class): Reject
15963 "eliminated" registers and small-enough constants unless
15964 reloaded into a class that is a subset of GENERAL_REGS.
15965 * config/cris/cris.md (attribute "cpu_variant"): New.
15966 (attribute "enabled"): Conditionalize on a matching attribute
15967 cpu_variant, if specified.
15968 ("*movsi_internal<setcc><setnz><setnzvc>"): For moves to and from
15969 memory, add cpu-variant-enabled variants for "r" alternatives on
15970 the far side of the "x" alternatives, preferring the "x" ones
15971 only for variants where MOF is present (in addition to SRP).
15972
15973 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
15974
15975 * config/cris/cris.cc (cris_register_move_cost): Remove special pre-ira
15976 extra cost for ALL_REGS.
15977
15978 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
15979
15980 * config/cris/constraints.md (define_register_constraint "b"): Now
15981 GENERAL_REGS.
15982 * config/cris/cris.md (CRIS_ACR_REGNUM): Remove.
15983 * config/cris/cris.h: (reg_class, REG_CLASS_NAMES)
15984 (REG_CLASS_CONTENTS): Remove ACR_REGS, SPEC_ACR_REGS, GENNONACR_REGS,
15985 and SPEC_GENNONACR_REGS.
15986 * config/cris/cris.cc (cris_preferred_reload_class): Don't mention
15987 ACR_REGS and return GENERAL_REGS instead of GENNONACR_REGS.
15988
15989 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
15990
15991 * config/cris/cris.md ("*movsi_internal<setcc><setnz><setnzvc>"):
15992 Conditionalize on (sub-)register operands or operand 1 being 0.
15993
15994 2022-02-02 Hans-Peter Nilsson <hp@axis.com>
15995
15996 * config/cris/cris.h (TARGET_DEFAULT): Don't include MASK_MUL_BUG.
15997 (MUL_BUG_ASM_DEFAULT): New macro.
15998 (MAYBE_AS_NO_MUL_BUG_ABORT): Define in terms of MUL_BUG_ASM_DEFAULT.
15999 * doc/invoke.texi (CRIS Options, -mmul-bug-workaround): Adjust
16000 accordingly.
16001
16002 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
16003
16004 * opts.cc (common_handle_option): Don't set param_early_inliner_max_iterations
16005 to 10 for AutoFDO.
16006
16007 2022-02-01 Eugene Rozenfeld <erozen@microsoft.com>
16008
16009 * auto-profile.cc (auto_profile): Hard-code the number of iterations (10).
16010
16011 2022-02-01 Andrew Pinski <apinski@marvell.com>
16012
16013 * doc/install.texi:
16014
16015 2022-02-01 Ilya Leoshkevich <iii@linux.ibm.com>
16016
16017 * config/s390/s390.cc (s390_code_end): Do not switch back to
16018 code section.
16019
16020 2022-02-01 Jakub Jelinek <jakub@redhat.com>
16021
16022 PR target/104323
16023 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Append rs6000-builtins.h
16024 rather than $(srcdir)/config/rs6000/rs6000-builtins.def.
16025 * config/rs6000/rs6000-gen-builtins.cc (write_decls): Don't use
16026 GTY((user)) for struct bifdata and struct ovlddata. Instead add
16027 GTY((skip(""))) to members with pointer and enum types that don't need
16028 to be tracked. Add GTY(()) to rs6000_builtin_info and rs6000_instance_info
16029 declarations. Don't emit gt_ggc_mx and gt_pch_nx declarations.
16030 (write_extern_fntype, write_fntype): Remove.
16031 (write_fntype_init): Emit the fntype vars as automatic vars instead
16032 of file scope ones.
16033 (write_header_file): Don't iterate with write_extern_fntype.
16034 (write_init_file): Don't iterate with write_fntype. Don't emit
16035 gt_ggc_mx and gt_pch_nx definitions.
16036
16037 2022-02-01 Jason Merrill <jason@redhat.com>
16038
16039 * tree.h (struct tree_vec_map_cache_hasher): Move from...
16040 * tree.cc (struct tree_vec_map_cache_hasher): ...here.
16041
16042 2022-02-01 Tom de Vries <tdevries@suse.de>
16043
16044 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_uniform_warp_check.
16045 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16046 UNSPECV_UNIFORM_WARP_CHECK.
16047 (define_insn "nvptx_uniform_warp_check"): New define_insn.
16048
16049 2022-02-01 Tom de Vries <tdevries@suse.de>
16050
16051 * config/nvptx/nvptx.cc (nvptx_single): Use nvptx_warpsync.
16052 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16053 UNSPECV_WARPSYNC.
16054 (define_insn "nvptx_warpsync"): New define_insn.
16055
16056 2022-02-01 Tom de Vries <tdevries@suse.de>
16057
16058 * config/nvptx/nvptx.opt (mptx): Set to PTX_VERSION_6_3 by default.
16059
16060 2022-02-01 Tom de Vries <tdevries@suse.de>
16061
16062 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_6_0.
16063 * config/nvptx/nvptx.h (TARGET_PTX_6_0): New macro.
16064 * config/nvptx/nvptx.md (define_insn "nvptx_barsync"): Use barrier
16065 insn for TARGET_PTX_6_0.
16066
16067 2022-02-01 Tom de Vries <tdevries@suse.de>
16068
16069 PR target/100428
16070 * config/nvptx/nvptx.cc (prevent_branch_around_nothing): Handle nop
16071 insn.
16072
16073 2022-02-01 Tom de Vries <tdevries@suse.de>
16074
16075 * config/nvptx/nvptx.md (define_insn "atomic_compare_and_swap<mode>_1")
16076 (define_insn "atomic_exchange<mode>")
16077 (define_insn "atomic_fetch_add<mode>")
16078 (define_insn "atomic_fetch_addsf")
16079 (define_insn "atomic_fetch_<logic><mode>"): Output non-atomic version
16080 if memory operands is frame-relative.
16081
16082 2022-02-01 Tom de Vries <tdevries@suse.de>
16083
16084 * config/nvptx/nvptx.cc (enum nvptx_builtins): Add
16085 NVPTX_BUILTIN_MEMBAR_GL and NVPTX_BUILTIN_MEMBAR_CTA.
16086 (VOID): New macro.
16087 (nvptx_init_builtins): Add MEMBAR_GL and MEMBAR_CTA.
16088 (nvptx_expand_builtin): Handle NVPTX_BUILTIN_MEMBAR_GL and
16089 NVPTX_BUILTIN_MEMBAR_CTA.
16090 (nvptx_lockfull_update): Add level parameter. Emit barriers.
16091 (nvptx_reduction_update, nvptx_goacc_reduction_fini): Update call to
16092 nvptx_lockfull_update.
16093 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add
16094 UNSPECV_MEMBAR_GL.
16095 (define_expand "nvptx_membar_gl"): New expand.
16096 (define_insn "*nvptx_membar_gl"): New insn.
16097
16098 2022-02-01 Martin Liska <mliska@suse.cz>
16099
16100 * doc/install.texi: Remove option for GCC < 4.8.
16101
16102 2022-02-01 Jakub Jelinek <jakub@redhat.com>
16103
16104 PR middle-end/104307
16105 * tree-vect-generic.cc (expand_vector_comparison): Don't push debug
16106 stmts to uses vector, just set vec_cond_expr_only to false for
16107 non-VEC_COND_EXPRs instead of pushing them into uses. Treat
16108 VEC_COND_EXPRs that use lhs not just in rhs1, but rhs2 or rhs3 too
16109 like non-VEC_COND_EXPRs.
16110
16111 2022-02-01 Bill Schmidt <wschmidt@linux.ibm.com>
16112
16113 * config/rs6000/rs6000-overload.def (VEC_ABSD): Remove #ifdef token.
16114 (VEC_BLENDV): Likewise.
16115 (VEC_BPERM): Likewise.
16116 (VEC_CFUGE): Likewise.
16117 (VEC_CIPHER_BE): Likewise.
16118 (VEC_CIPHERLAST_BE): Likewise.
16119 (VEC_CLRL): Likewise.
16120 (VEC_CLRR): Likewise.
16121 (VEC_CMPNEZ): Likewise.
16122 (VEC_CNTLZ): Likewise.
16123 (VEC_CNTLZM): Likewise.
16124 (VEC_CNTTZM): Likewise.
16125 (VEC_CNTLZ_LSBB): Likewise.
16126 (VEC_CNTM): Likewise.
16127 (VEC_CNTTZ): Likewise.
16128 (VEC_CNTTZ_LSBB): Likewise.
16129 (VEC_CONVERT_4F32_8F16): Likewise.
16130 (VEC_DIV): Likewise.
16131 (VEC_DIVE): Likewise.
16132 (VEC_EQV): Likewise.
16133 (VEC_EXPANDM): Likewise.
16134 (VEC_EXTRACT_FP_FROM_SHORTH): Likewise.
16135 (VEC_EXTRACT_FP_FROM_SHORTL): Likewise.
16136 (VEC_EXTRACTH): Likewise.
16137 (VEC_EXTRACTL): Likewise.
16138 (VEC_EXTRACTM): Likewise.
16139 (VEC_EXTRACT4B): Likewise.
16140 (VEC_EXTULX): Likewise.
16141 (VEC_EXTURX): Likewise.
16142 (VEC_FIRSTMATCHINDEX): Likewise.
16143 (VEC_FIRSTMACHOREOSINDEX): Likewise.
16144 (VEC_FIRSTMISMATCHINDEX): Likewise.
16145 (VEC_FIRSTMISMATCHOREOSINDEX): Likewise.
16146 (VEC_GB): Likewise.
16147 (VEC_GENBM): Likewise.
16148 (VEC_GENHM): Likewise.
16149 (VEC_GENWM): Likewise.
16150 (VEC_GENDM): Likewise.
16151 (VEC_GENQM): Likewise.
16152 (VEC_GENPCVM): Likewise.
16153 (VEC_GNB): Likewise.
16154 (VEC_INSERTH): Likewise.
16155 (VEC_INSERTL): Likewise.
16156 (VEC_INSERT4B): Likewise.
16157 (VEC_LXVL): Likewise.
16158 (VEC_MERGEE): Likewise.
16159 (VEC_MERGEO): Likewise.
16160 (VEC_MOD): Likewise.
16161 (VEC_MSUB): Likewise.
16162 (VEC_MULH): Likewise.
16163 (VEC_NAND): Likewise.
16164 (VEC_NCIPHER_BE): Likewise.
16165 (VEC_NCIPHERLAST_BE): Likewise.
16166 (VEC_NEARBYINT): Likewise.
16167 (VEC_NMADD): Likewise.
16168 (VEC_ORC): Likewise.
16169 (VEC_PDEP): Likewise.
16170 (VEC_PERMX): Likewise.
16171 (VEC_PEXT): Likewise.
16172 (VEC_POPCNT): Likewise.
16173 (VEC_PARITY_LSBB): Likewise.
16174 (VEC_REPLACE_ELT): Likewise.
16175 (VEC_REPLACE_UN): Likewise.
16176 (VEC_REVB): Likewise.
16177 (VEC_RINT): Likewise.
16178 (VEC_RLMI): Likewise.
16179 (VEC_RLNM): Likewise.
16180 (VEC_SBOX_BE): Likewise.
16181 (VEC_SIGNEXTI): Likewise.
16182 (VEC_SIGNEXTLL): Likewise.
16183 (VEC_SIGNEXTQ): Likewise.
16184 (VEC_SLDB): Likewise.
16185 (VEC_SLV): Likewise.
16186 (VEC_SPLATI): Likewise.
16187 (VEC_SPLATID): Likewise.
16188 (VEC_SPLATI_INS): Likewise.
16189 (VEC_SQRT): Likewise.
16190 (VEC_SRDB): Likewise.
16191 (VEC_SRV): Likewise.
16192 (VEC_STRIL): Likewise.
16193 (VEC_STRIL_P): Likewise.
16194 (VEC_STRIR): Likewise.
16195 (VEC_STRIR_P): Likewise.
16196 (VEC_STXVL): Likewise.
16197 (VEC_TERNARYLOGIC): Likewise.
16198 (VEC_TEST_LSBB_ALL_ONES): Likewise.
16199 (VEC_TEST_LSBB_ALL_ZEROS): Likewise.
16200 (VEC_VEE): Likewise.
16201 (VEC_VES): Likewise.
16202 (VEC_VIE): Likewise.
16203 (VEC_VPRTYB): Likewise.
16204 (VEC_VSCEEQ): Likewise.
16205 (VEC_VSCEGT): Likewise.
16206 (VEC_VSCELT): Likewise.
16207 (VEC_VSCEUO): Likewise.
16208 (VEC_VSEE): Likewise.
16209 (VEC_VSES): Likewise.
16210 (VEC_VSIE): Likewise.
16211 (VEC_VSTDC): Likewise.
16212 (VEC_VSTDCN): Likewise.
16213 (VEC_VTDC): Likewise.
16214 (VEC_XL): Likewise.
16215 (VEC_XL_BE): Likewise.
16216 (VEC_XL_LEN_R): Likewise.
16217 (VEC_XL_SEXT): Likewise.
16218 (VEC_XL_ZEXT): Likewise.
16219 (VEC_XST): Likewise.
16220 (VEC_XST_BE): Likewise.
16221 (VEC_XST_LEN_R): Likewise.
16222 (VEC_XST_TRUNC): Likewise.
16223 (VEC_XXPERMDI): Likewise.
16224 (VEC_XXSLDWI): Likewise.
16225 (VEC_TSTSFI_EQ_DD): Likewise.
16226 (VEC_TSTSFI_EQ_TD): Likewise.
16227 (VEC_TSTSFI_GT_DD): Likewise.
16228 (VEC_TSTSFI_GT_TD): Likewise.
16229 (VEC_TSTSFI_LT_DD): Likewise.
16230 (VEC_TSTSFI_LT_TD): Likewise.
16231 (VEC_TSTSFI_OV_DD): Likewise.
16232 (VEC_TSTSFI_OV_TD): Likewise.
16233 (VEC_VADDCUQ): Likewise.
16234 (VEC_VADDECUQ): Likewise.
16235 (VEC_VADDEUQM): Likewise.
16236 (VEC_VADDUDM): Likewise.
16237 (VEC_VADDUQM): Likewise.
16238 (VEC_VBPERMQ): Likewise.
16239 (VEC_VCLZB): Likewise.
16240 (VEC_VCLZD): Likewise.
16241 (VEC_VCLZH): Likewise.
16242 (VEC_VCLZW): Likewise.
16243 (VEC_VCTZB): Likewise.
16244 (VEC_VCTZD): Likewise.
16245 (VEC_VCTZH): Likewise.
16246 (VEC_VCTZW): Likewise.
16247 (VEC_VEEDP): Likewise.
16248 (VEC_VEESP): Likewise.
16249 (VEC_VESDP): Likewise.
16250 (VEC_VESSP): Likewise.
16251 (VEC_VIEDP): Likewise.
16252 (VEC_VIESP): Likewise.
16253 (VEC_VPKSDSS): Likewise.
16254 (VEC_VPKSDUS): Likewise.
16255 (VEC_VPKUDUM): Likewise.
16256 (VEC_VPKUDUS): Likewise.
16257 (VEC_VPOPCNT): Likewise.
16258 (VEC_VPOPCNTB): Likewise.
16259 (VEC_VPOPCNTD): Likewise.
16260 (VEC_VPOPCNTH): Likewise.
16261 (VEC_VPOPCNTW): Likewise.
16262 (VEC_VPRTYBD): Likewise.
16263 (VEC_VPRTYBQ): Likewise.
16264 (VEC_VPRTYBW): Likewise.
16265 (VEC_VRLD): Likewise.
16266 (VEC_VSLD): Likewise.
16267 (VEC_VSRAD): Likewise.
16268 (VEC_VSRD): Likewise.
16269 (VEC_VSTDCDP): Likewise.
16270 (VEC_VSTDCNDP): Likewise.
16271 (VEC_VSTDCNQP): Likewise.
16272 (VEC_VSTDCNSP): Likewise.
16273 (VEC_VSTDCQP): Likewise.
16274 (VEC_VSTDCSP): Likewise.
16275 (VEC_VSUBECUQ): Likewise.
16276 (VEC_VSUBEUQM): Likewise.
16277 (VEC_VSUBUDM): Likewise.
16278 (VEC_VSUBUQM): Likewise.
16279 (VEC_VTDCDP): Likewise.
16280 (VEC_VTDCSP): Likewise.
16281 (VEC_VUPKHSW): Likewise.
16282 (VEC_VUPKLSW): Likewise.
16283
16284 2022-02-01 Andreas Krebbel <krebbel@linux.ibm.com>
16285
16286 PR rtl-optimization/101260
16287 * regcprop.cc (maybe_mode_change): Invoke mode_change_ok also for
16288 copy_regno.
16289
16290 2022-02-01 Xi Ruoyao <xry111@mengyan1223.wang>
16291
16292 PR middle-end/95115
16293 * fold-const.cc (const_binop): Do not fold NaN result from
16294 non-NaN operands.
16295
16296 2022-02-01 Tom de Vries <tdevries@suse.de>
16297
16298 * tree-loop-distribution.cc (generate_reduction_builtin_1): Check for
16299 -ftree-loop-distribute-patterns.
16300 (loop_distribution::execute): Don't call transform_reduction_loop for
16301 -fno-tree-loop-distribute-patterns.
16302
16303 2022-01-31 Andrew Pinski <apinski@marvell.com>
16304
16305 * fold-const.h (operand_compare::operand_equal_p):
16306 Fix comment about OEP_* flags.
16307
16308 2022-01-31 Jakub Jelinek <jakub@redhat.com>
16309
16310 PR target/104298
16311 * config/rs6000/aix.h (OPTION_GLIBC): Remove.
16312 * config/rs6000/darwin.h (OPTION_GLIBC): Likewise.
16313 * config/rs6000/option-defaults.h (OPTION_GLIBC): Define to 0
16314 if not already defined.
16315
16316 2022-01-31 Martin Sebor <msebor@redhat.com>
16317
16318 PR middle-end/104232
16319 * gimple-ssa-warn-access.cc (pointers_related_p): Add argument.
16320 Handle PHIs. Add a synonymous overload.
16321 (pass_waccess::check_pointer_uses): Call pointers_related_p.
16322
16323 2022-01-31 Richard Biener <rguenther@suse.de>
16324
16325 PR tree-optimization/100499
16326 * fold-const.cc (multiple_of_p): Pass the correct type of
16327 the expression to the recursive invocation of multiple_of_p
16328 for conversions and use CASE_CONVERT.
16329
16330 2022-01-31 Eric Botcazou <ebotcazou@adacore.com>
16331
16332 PR target/104189
16333 * config/sparc/linux64.h (TARGET_DEFAULT): Add MASK_V8PLUS.
16334
16335 2022-01-31 Richard Biener <rguenther@suse.de>
16336
16337 PR tree-optimization/100499
16338 * tree-cfg.cc (verify_gimple_assign_ternary): Use multiple_p
16339 on poly-ints instead of multiple_of_p.
16340 * tree-ssa.cc (maybe_rewrite_mem_ref_base): Likewise.
16341 (non_rewritable_mem_ref_base): Likewise.
16342 (non_rewritable_lvalue_p): Likewise.
16343 (execute_update_addresses_taken): Likewise.
16344
16345 2022-01-29 Jakub Jelinek <jakub@redhat.com>
16346 Andrew Pinski <apinski@marvell.com>
16347
16348 PR tree-optimization/104279
16349 PR tree-optimization/104280
16350 PR tree-optimization/104281
16351 * match.pd (1 / X -> X == 1 for unsigned X): Build eq with
16352 boolean_type_node and convert to type. Formatting fixes.
16353
16354 2022-01-28 Yoshinori Sato <yo-satoh@sios.com>
16355
16356 * config/sh/t-linux (MULTILIB_EXCEPTIONS): Add m1, mb/m1 and m2a.
16357
16358 2022-01-28 Navid Rahimi <navidrahimi@microsoft.com>
16359
16360 PR tree-optimization/103514
16361 * match.pd (a & b) ^ (a == b) -> !(a | b): New optimization.
16362 (a & b) == (a ^ b) -> !(a | b): New optimization.
16363
16364 2022-01-28 Marek Polacek <polacek@redhat.com>
16365
16366 * doc/invoke.texi: Update -Wbidi-chars documentation.
16367
16368 2022-01-28 Iain Sandoe <iain@sandoe.co.uk>
16369
16370 * config/rs6000/darwin.h (OPTION_GLIBC): Define to 0.
16371
16372 2022-01-28 Zhao Wei Liew <zhaoweiliew@gmail.com>
16373
16374 PR tree-optimization/95424
16375 * match.pd: Simplify 1 / X where X is an integer.
16376
16377 2022-01-28 Jakub Jelinek <jakub@redhat.com>
16378
16379 PR tree-optimization/104263
16380 * gimple-ssa-store-merging.cc (get_status_for_store_merging): For
16381 cfun->can_throw_non_call_exceptions && cfun->eh test whether
16382 last non-debug stmt in the bb is store_valid_for_store_merging_p
16383 rather than last stmt.
16384
16385 2022-01-28 Martin Liska <mliska@suse.cz>
16386
16387 * diagnostic.cc (diagnostic_action_after_output): Remove extra
16388 newline.
16389
16390 2022-01-28 Martin Liska <mliska@suse.cz>
16391
16392 * config/rs6000/host-darwin.cc (segv_crash_handler):
16393 Do not use leading capital letter.
16394 (segv_handler): Likewise.
16395 * ipa-sra.cc (verify_splitting_accesses): Likewise.
16396 * varasm.cc (get_section): Likewise.
16397
16398 2022-01-28 Richard Biener <rguenther@suse.de>
16399
16400 PR tree-optimization/104267
16401 * tree-vect-stmts.cc (vectorizable_call): Properly use the
16402 per-argument determined vector type for externals and
16403 invariants.
16404
16405 2022-01-28 Richard Biener <rguenther@suse.de>
16406
16407 PR tree-optimization/104263
16408 * tree-cfg.cc (gimple_purge_dead_abnormal_call_edges):
16409 Purge edges also when !cfun->has_nonlocal_label
16410 and !cfun->calls_setjmp.
16411
16412 2022-01-28 Maciej W. Rozycki <macro@embecosm.com>
16413
16414 * config/riscv/riscv.md: Document `auipc' and `bitmanip' `type'
16415 attributes.
16416
16417 2022-01-28 Jakub Jelinek <jakub@redhat.com>
16418
16419 PR lto/104237
16420 * cfgrtl.cc (loc_equal): New function.
16421 (unique_locus_on_edge_between_p): Use it.
16422
16423 2022-01-28 Richard Biener <rguenther@suse.de>
16424
16425 * cfganal.h (mark_dfs_back_edges): Provide API with struct
16426 function argument.
16427 * cfganal.cc (mark_dfs_back_edges): Take a struct function
16428 to work on, add a wrapper passing cfun.
16429 * graph.cc (draw_cfg_nodes_no_loops): Replace stray cfun
16430 uses with fun which is already passed.
16431 (draw_cfg_edges): Likewise.
16432 (draw_cfg_nodes_for_loop): Do not use draw_cfg_nodes_for_loop
16433 for fun != cfun.
16434
16435 2022-01-27 Patrick Palka <ppalka@redhat.com>
16436
16437 PR c++/99895
16438 * tree.cc (build_call_vec): Add const to second parameter.
16439 * tree.h (build_call_vec): Likewise.
16440
16441 2022-01-27 Martin Liska <mliska@suse.cz>
16442
16443 PR web/104254
16444 * diagnostic.cc (diagnostic_initialize):
16445 Initialize report_bug flag.
16446 (diagnostic_action_after_output):
16447 Explain that -freport-bug option can be used for pre-processed
16448 file creation. Make the message shorter.
16449 (error_recursion): Rename Internal to internal.
16450 * diagnostic.h (struct diagnostic_context): New field.
16451 * opts.cc (common_handle_option): Init the field here.
16452
16453 2022-01-27 Kewen Lin <linkw@linux.ibm.com>
16454
16455 PR target/103702
16456 * config/rs6000/rs6000.cc
16457 (rs6000_cost_data::update_target_cost_per_stmt): Fix one wrong
16458 assertion with early return.
16459
16460 2022-01-27 Chung-Lin Tang <cltang@codesourcery.com>
16461
16462 PR middle-end/103642
16463 * gimplify.cc (gimplify_scan_omp_clauses): Do not do indir_p handling
16464 for non-pointer or non-reference-to-pointer cases.
16465
16466 2022-01-27 Jakub Jelinek <jakub@redhat.com>
16467
16468 PR tree-optimization/104196
16469 * gimple-fold.h (rewrite_to_defined_overflow): Add IN_PLACE argument.
16470 * gimple-fold.cc (rewrite_to_defined_overflow): Likewise. If true,
16471 return NULL and emit needed stmts before and after stmt.
16472 * tree-ssa-reassoc.cc (update_range_test): For inter-bb range opt
16473 pick as operand_entry that will hold the merged test the one feeding
16474 earliest condition, ensure that by swapping range->idx with some
16475 other range's idx if needed. If seq is non-NULL, don't actually swap
16476 it but instead rewrite stmts with undefined overflow in between
16477 the two locations.
16478 (maybe_optimize_range_tests): Set ops[]->id to bb->index with the
16479 corresponding condition even if they have non-NULL ops[]->op.
16480 Formatting fix.
16481
16482 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16483
16484 PR target/104239
16485 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use __asm__ instead of
16486 asm.
16487 * config/rs6000/smmintrin.h (_mm_minpos_epu16): Declare iterator
16488 before for loop instead of for init clause.
16489 * config/rs6000/bmi2intrin.h (_pext_u64): Likewise.
16490
16491 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16492
16493 PR target/104239
16494 * config/rs6000/bmiintrin.h: Test _X86GPRINTRIN_H_INCLUDED instead of
16495 _X86INTRIN_H_INCLUDED and adjust #error wording.
16496 * config/rs6000/bmi2intrin.h: Likewise.
16497
16498 2022-01-26 Jakub Jelinek <jakub@redhat.com>
16499
16500 PR debug/104194
16501 * dwarf2out.cc (long_double_as_float128): New function.
16502 (modified_type_die): For powerpc64le IEEE 754 quad long double
16503 and complex long double emit those as DW_TAG_typedef to
16504 _Float128 or complex _Float128 base type.
16505
16506 2022-01-26 Marek Polacek <polacek@redhat.com>
16507
16508 PR target/104213
16509 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer): Don't
16510 warn when the SSA_NAME_VAR of REF has supressed -Wuse-after-free.
16511
16512 2022-01-26 Martin Liska <mliska@suse.cz>
16513
16514 * ipa-modref-tree.cc (modref_access_node::update):
16515 Remove "--param param=foo" with "--param foo".
16516 (modref_access_node::insert): Likewise.
16517 (modref_access_node::insert_kill): Likewise.
16518 * ipa-modref-tree.h (struct modref_ref_node): Likewise.
16519 (struct modref_base_node): Likewise.
16520 (struct modref_tree): Likewise.
16521
16522 2022-01-26 Raoni Fassina Firmino <raoni@linux.ibm.com>
16523
16524 PR target/94193
16525 * builtins.cc (expand_builtin_feclear_feraise_except): Add op0
16526 predicate check.
16527
16528 2022-01-25 Martin Sebor <msebor@redhat.com>
16529
16530 PR tree-optimization/104203
16531 * gimple-ssa-warn-access.cc (pass_data pass_data_waccess): Use
16532 TV_WARN_ACCESS.
16533 * pointer-query.cc (access_ref::merge_ref): Change return type.
16534 Convert failure to a conservative success.
16535 (access_ref::get_ref): Adjust to the change above. Short-circuit
16536 PHI evaluation after first failure turned into conservative success.
16537 * pointer-query.h (access_ref::merge_ref): Change return type.
16538 * timevar.def (TV_WARN_ACCESS): New timer variable.
16539
16540 2022-01-25 David Edelsohn <dje.gcc@gmail.com>
16541
16542 * config/rs6000/aix.h (OPTION_GLIBC): Define as 0.
16543
16544 2022-01-25 Richard Biener <rguenther@suse.de>
16545
16546 PR tree-optimization/104214
16547 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Use
16548 stronger guarantees for relational pointer compares when
16549 rewriting BASE0 + STEP0 cmp BASE1 + STEP1 as
16550 BASE0 + STEP0 - STEP1 cmp BASE1.
16551
16552 2022-01-25 Jakub Jelinek <jakub@redhat.com>
16553
16554 PR target/104172
16555 * config/rs6000/rs6000-internal.h (rs6000_passes_ieee128): Don't
16556 declare.
16557 * config/rs6000/rs6000.cc (rs6000_passes_ieee128,
16558 ieee128_mangling_gcc_8_1): Remove.
16559 (TARGET_ASM_GLOBALIZE_DECL_NAME): Don't redefine.
16560 (rs6000_mangle_type): Return "u9__ieee128" instead of
16561 ieee128_mangling_gcc_8_1 ? "U10__float128" : "u9__ieee128".
16562 (rs6000_globalize_decl_name): Remove.
16563 * config/rs6000/rs6000-call.cc (init_cumulative_args,
16564 rs6000_function_arg_advance_1): Don't set rs6000_passes_ieee128.
16565
16566 2022-01-24 Martin Sebor <msebor@redhat.com>
16567
16568 * pointer-query.cc (pointer_query::dump): Remove duplicate
16569 block.
16570
16571 2022-01-24 Marek Polacek <polacek@redhat.com>
16572
16573 PR preprocessor/104030
16574 * doc/invoke.texi: Update documentation for -Wbidi-chars.
16575
16576 2022-01-24 Raoni Fassina Firmino <raoni@linux.ibm.com>
16577
16578 PR target/94193
16579 * builtins.cc (expand_builtin_fegetround): New function.
16580 (expand_builtin_feclear_feraise_except): New function.
16581 (expand_builtin): Add cases for BUILT_IN_FEGETROUND,
16582 BUILT_IN_FECLEAREXCEPT and BUILT_IN_FERAISEEXCEPT.
16583 * config/rs6000/rs6000.md (fegetroundsi): New pattern.
16584 (feclearexceptsi): New Pattern.
16585 (feraiseexceptsi): New Pattern.
16586 * doc/extend.texi: Add a new introductory paragraph about the
16587 new builtins.
16588 * doc/md.texi: (fegetround@var{m}): Document new optab.
16589 (feclearexcept@var{m}): Document new optab.
16590 (feraiseexcept@var{m}): Document new optab.
16591 * optabs.def (fegetround_optab): New optab.
16592 (feclearexcept_optab): New optab.
16593 (feraiseexcept_optab): New optab.
16594
16595 2022-01-24 Richard Biener <rguenther@suse.de>
16596 Jiufu Guo <guojiufu@linux.ibm.com>
16597
16598 PR tree-optimization/100740
16599 PR tree-optimization/101508
16600 PR tree-optimization/101972
16601 PR tree-optimization/102131
16602 * tree-ssa-loop-niter.cc (number_of_iterations_cond): Properly
16603 constrain BASE0 + STEP0 cmp BASE1 + STEP1 to
16604 BASE0 + STEP0 - STEP1 cmp BASE1 transform.
16605
16606 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16607
16608 PR sanitizer/104158
16609 * opt-functions.awk (var_set): Handle EnumBitSet property.
16610 * optc-gen.awk: Don't disallow RejectNegative if EnumBitSet is
16611 specified.
16612 * opts.h (enum cl_enum_var_value): New type.
16613 * opts-common.cc (decode_cmdline_option): Use CLEV_* values.
16614 Handle CLEV_BITSET.
16615 (cmdline_handle_error): Handle CLEV_BITSET.
16616 * opts.cc (test_enum_sets): Also test EnumBitSet requirements.
16617 * doc/options.texi (EnumBitSet): Document.
16618 * common.opt (fsanitize-coverage=): Use EnumBitSet instead of
16619 EnumSet.
16620 (trace-pc, trace-cmp): Drop Set properties.
16621
16622 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16623
16624 PR sanitizer/104158
16625 * common.opt (flag_sanitize_coverage): Remove Variable entry.
16626 (fsanitize-coverage=): Remove RejectNegative property, add
16627 Var(flag_sanitize_coverage) and EnumSet properties.
16628 (trace-pc): Add Set(1) property.
16629 (trace-cmp): Add Set(2) property.
16630 * opts.cc (common_handle_option): Don't handle
16631 OPT_fsanitize_coverage_.
16632
16633 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16634
16635 PR sanitizer/104158
16636 * opt-functions.awk (var_set): Handle EnumSet property.
16637 * optc-gen.awk: Don't disallow RejectNegative if EnumSet is
16638 specified.
16639 * opt-read.awk: Handle Set property.
16640 * opts.h (CL_ENUM_SET_SHIFT, CL_ERR_ENUM_SET_ARG): Define.
16641 (struct cl_decoded_option): Mention enum in value description.
16642 Add mask member.
16643 (set_option): Add mask argument defaulted to 0.
16644 * opts.cc (test_enum_sets): New function.
16645 (opts_cc_tests): Call it.
16646 * opts-common.cc (enum_arg_to_value): Change return argument
16647 from bool to int, on success return index into the cl_enum_arg
16648 array, on failure -1. Add len argument, if non-0, use strncmp
16649 instead of strcmp.
16650 (opt_enum_arg_to_value): Adjust caller.
16651 (decode_cmdline_option): Handle EnumSet represented as
16652 CLVC_ENUM with non-zero var_value. Initialize decoded->mask.
16653 (decode_cmdline_options_to_array): CLear opt_array[0].mask.
16654 (handle_option): Pass decoded->mask to set_options last argument.
16655 (generate_option): Clear decoded->mask.
16656 (generate_option_input_file): Likewise.
16657 (cmdline_handle_error): Handle CL_ERR_ENUM_SET_ARG.
16658 (set_option): Add mask argument, use it for CLVC_ENUM.
16659 (control_warning_option): Adjust enum_arg_to_value caller.
16660 * doc/options.texi: Document Set and EnumSet properties.
16661
16662 2022-01-24 Jakub Jelinek <jakub@redhat.com>
16663
16664 PR bootstrap/104170
16665 * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
16666 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
16667 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
16668 using OPTION_*_P macros.
16669 * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
16670 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
16671 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
16672 using OPTION_*_P macros.
16673 * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
16674 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
16675 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
16676 using OPTION_*_P macros.
16677 * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
16678 OPTION_BIONIC_P, OPTION_MUSL_P): Define.
16679 (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
16680 using OPTION_*_P macros.
16681 * config/fuchsia.h (OPTION_MUSL_P): Redefine.
16682 * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
16683 * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
16684 ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
16685 OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
16686 * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
16687 OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
16688 otherwise assume if (true).
16689
16690 2022-01-24 Kito Cheng <kito.cheng@sifive.com>
16691
16692 * common/config/riscv/riscv-common.cc (riscv_subset_list::to_string):
16693 Skip zicsr and zifencei if I-ext is 2.0.
16694
16695 2022-01-24 Jia-Wei Chen <jiawei@iscas.ac.cn>
16696
16697 * config.gcc: Modify default isa_spec version.
16698
16699 2022-01-24 Jiufu Guo <guojiufu@linux.ibm.com>
16700
16701 PR tree-optimization/102087
16702 * tree-ssa-loop-niter.cc (number_of_iterations_until_wrap):
16703 Correct PLUS result type.
16704
16705 2022-01-24 H.J. Lu <hjl.tools@gmail.com>
16706
16707 PR target/104188
16708 * config/i386/predicates.md (bcst_mem_operand): Also check mode
16709 of memory broadcast.
16710
16711 2022-01-23 Andrew Pinski <apinski@marvell.com>
16712
16713 PR target/64821
16714 * config/aarch64/aarch64-builtins.cc
16715 (aarch64_general_gimple_fold_builtin): Handle
16716 __builtin_aarch64_sqrt* and simplify into SQRT internal
16717 function.
16718
16719 2022-01-22 Jakub Jelinek <jakub@redhat.com>
16720
16721 PR other/104176
16722 * opts-global.cc (handle_common_deferred_options): Quote
16723 --enable-plugin in diagnostics to avoid -Werror=format-diag.
16724
16725 2022-01-21 Michael Meissner <meissner@the-meissners.org>
16726
16727 PR target/104136
16728 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): Delete.
16729 * config/rs6000/rs6000.cc (prefixed_xxsplti_p): Delete.
16730 * config/rs6000/rs6000.md (prefixed attribute): Delete section
16731 that sets the prefixed attribute for xxspltiw, xxspltidp, and
16732 xxsplti32dx instructions.
16733 (movsf_hardfloat): Explicitly set the prefixed attribute
16734 when xxspltiw and xxspltidp instructions are generated.
16735 (mov<mode>_hardfloat32): Likewise.
16736 (mov<mode>_hardfloat64): Likewise.
16737 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Explicitly set the
16738 prefixed attribute for xxspltiw and xxspltidp instructions.
16739 (vsx_mov<mode>_32bit): Likewise.
16740
16741 2022-01-21 H.J. Lu <hjl.tools@gmail.com>
16742
16743 PR bootstrap/104170
16744 * common/config/i386/i386-common.cc (ix86_supports_split_stack):
16745 Return true only on glibc.
16746 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
16747 Revert commit c163647ffbc.
16748 * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
16749
16750 2022-01-21 Sören Tempel <soeren@soeren-tempel.net>
16751
16752 * common/config/s390/s390-common.cc (s390_supports_split_stack):
16753 Only support split-stack on glibc targets.
16754 * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
16755 * config/i386/gnu.h (defined): Ditto.
16756
16757 2022-01-21 Bill Schmidt <wschmidt@linux.ibm.com>
16758
16759 * config/rs6000/rs6000-overload.def (VEC_SLDW): Add instances for
16760 vector float and vector double.
16761
16762 2022-01-21 Bill Seurer <seurer@gcc.gnu.org>
16763
16764 * config/rs6000/rs6000.cc (rs6000_get_function_versions_dispatcher):
16765 Fix mention of ifunc in string.
16766
16767 2022-01-21 Roger Sayle <roger@nextmovesoftware.com>
16768
16769 PR middle-end/104140
16770 * tree-ssa-math-opts.cc (convert_mult_to_highpart): Check that the
16771 operands of the widening multiplication are either both signed or
16772 both unsigned, and abort the conversion if mismatched.
16773 * doc/generic.texi (WIDEN_MULT_EXPR): Describe expression node.
16774 (MULT_HIGHPART_EXPR): Clarify that operands must have the same
16775 signedness.
16776 * tree.def (MULT_HIGHPART_EXPR): Document both operands must have
16777 integer types with the same precision and signedness.
16778 (WIDEN_MULT_EXPR): Document that operands must have integer types
16779 with the same precision, but possibly differing signedness.
16780 * config/riscv/riscv-c.cc (riscv_cpu_cpp_builtins): Defend against
16781 riscv_current_subset_list returning a NULL pointer (empty list).
16782
16783 2022-01-21 Vladimir N. Makarov <vmakarov@redhat.com>
16784
16785 PR target/103676
16786 * ira.h (struct target_ira): Add member
16787 x_ira_exclude_class_mode_regs.
16788 (ira_exclude_class_mode_regs): New macro.
16789 * lra.h (lra_create_new_reg): Add arg exclude_start_hard_regs and
16790 move from here ...
16791 * lra-int.h: ... to here.
16792 (lra_create_new_reg_with_unique_value): Add arg
16793 exclude_start_hard_regs.
16794 (class lra_reg): Add member exclude_start_hard_regs.
16795 * lra-assigns.cc (find_hard_regno_for_1): Setup
16796 impossible_start_hard_regs from exclude_start_hard_regs.
16797 * lra-constraints.cc (get_reload_reg): Add arg exclude_start_hard_regs and pass
16798 it lra_create_new_reg[_with_unique_value].
16799 (match_reload): Ditto.
16800 (check_and_process_move): Pass NULL
16801 exclude_start_hard_regs to lra_create_new_reg_with_unique_value.
16802 (goal_alt_exclude_start_hard_regs): New static variable.
16803 (process_addr_reg, simplify_operand_subreg): Pass NULL
16804 exclude_start_hard_regs to lra_create_new_reg_with_unique_value
16805 and get_reload_reg.
16806 (process_alt_operands): Setup goal_alt_exclude_start_hard_regs.
16807 Use this_alternative_exclude_start_hard_regs additionally to find
16808 winning operand alternative.
16809 (base_to_reg, base_plus_disp_to_reg, index_part_to_reg): Pass NULL
16810 exclude_start_hard_regs to lra_create_new_reg.
16811 (process_address_1, emit_inc): Ditto.
16812 (curr_insn_transform): Pass exclude_start_hard_regs value to
16813 lra_create_new_reg, get_reload_reg, match_reload.
16814 (inherit_reload_reg, split_reg): Pass NULL exclude_start_hard_regs
16815 to lra_create_new_reg.
16816 (process_invariant_for_inheritance): Ditto.
16817 * lra-remat.cc (update_scratch_ops): Ditto.
16818 * lra.cc (lra_create_new_reg_with_unique_value): Add arg
16819 exclude_start_hard_regs. Setup the corresponding member of
16820 lra reg info.
16821 (lra_create_new_reg): Add arg exclude_start_hard_regs and pass it
16822 to lra_create_new_reg_with_unique_value.
16823 (initialize_lra_reg_info_element): Initialize member
16824 exclude_start_hard_regs.
16825 (get_scratch_reg): Pass NULL to lra_create_new_reg.
16826 * ira.cc (setup_prohibited_class_mode_regs): Rename to
16827 setup_prohibited_and_exclude_class_mode_regs and calculate
16828 ira_exclude_class_mode_regs.
16829
16830 2022-01-21 Martin Liska <mliska@suse.cz>
16831
16832 * configure.ac: Detect ld_is_mold and use it for
16833 comdat_group=yes and gcc_cv_ld_hidden=yes.
16834 * configure: Regenerate.
16835
16836 2022-01-21 Richard Biener <rguenther@suse.de>
16837
16838 PR tree-optimization/100089
16839 * tree-vect-slp.cc (vect_slp_region): Reject BB vectorization
16840 of if-converted loops with unvectorized COND_EXPRs for
16841 all but the unlimited cost models.
16842
16843 2022-01-21 Ard Biesheuvel <ardb@kernel.org>
16844
16845 * config/arm/arm-opts.h (enum stack_protector_guard): New.
16846 * config/arm/arm-protos.h (arm_stack_protect_tls_canary_mem):
16847 New.
16848 * config/arm/arm.cc (TARGET_STACK_PROTECT_GUARD): Define.
16849 (arm_option_override_internal): Handle and put in error checks.
16850 for stack protector guard options.
16851 (arm_option_reconfigure_globals): Likewise.
16852 (arm_stack_protect_tls_canary_mem): New.
16853 (arm_stack_protect_guard): New.
16854 * config/arm/arm.md (stack_protect_set): New.
16855 (stack_protect_set_tls): Likewise.
16856 (stack_protect_test): Likewise.
16857 (stack_protect_test_tls): Likewise.
16858 (reload_tp_hard): Likewise.
16859 * config/arm/arm.opt (-mstack-protector-guard): New
16860 (-mstack-protector-guard-offset): New.
16861 * doc/invoke.texi: Document new options.
16862
16863 2022-01-21 Richard Biener <rguenther@suse.de>
16864
16865 PR tree-optimization/104156
16866 * tree-ssa-loop-unswitch.cc (tree_unswitch_outer_loop):
16867 Collect and reset debug stmts with out-of-loop uses when
16868 hoisting guards.
16869 (find_loop_guard): Adjust.
16870 (empty_bb_without_guard_p): Likewise. Ignore debug stmts.
16871 (used_outside_loop_p): Push debug uses to a vector of
16872 debug stmts to reset.
16873 (hoist_guard): Adjust -fopt-info category.
16874
16875 2022-01-21 Richard Biener <rguenther@suse.de>
16876
16877 PR tree-optimization/104152
16878 * tree-vect-slp.cc (vect_build_slp_tree_2): Add missing
16879 can_duplicate_and_interleave_p check.
16880
16881 2022-01-21 Jakub Jelinek <jakub@redhat.com>
16882
16883 * gimple-ssa-warn-access.cc (pass_waccess::warn_invalid_pointer):
16884 Avoid passing var to warning_at when the format string doesn't
16885 refer to it.
16886
16887 2022-01-21 Aldy Hernandez <aldyh@redhat.com>
16888
16889 PR tree-optimization/103721
16890 * gimple-range-path.cc
16891 (path_range_query::relations_may_be_invalidated): New.
16892 (path_range_query::compute_ranges_in_block): Reset relations if
16893 they may be invalidated.
16894 (path_range_query::maybe_register_phi_relation): Exit if relations
16895 may be invalidated on incoming edge.
16896 (path_range_query::compute_phi_relations): Pass incoming PHI edge
16897 to maybe_register_phi_relation.
16898 * gimple-range-path.h (relations_may_be_invalidated): New.
16899 (maybe_register_phi_relation): Pass edge instead of tree.
16900 * tree-ssa-threadbackward.cc (back_threader::back_threader):
16901 Mark DFS edges.
16902 * value-relation.cc (path_oracle::path_oracle): Call
16903 mark_dfs_back_edges.
16904 (path_oracle::register_relation): Add SSA names to m_registered
16905 bitmap.
16906 (path_oracle::reset_path): Clear m_registered bitmap.
16907 * value-relation.h (path_oracle::set_root_oracle): New.
16908
16909 2022-01-21 Jakub Jelinek <jakub@redhat.com>
16910
16911 PR rtl-optimization/102478
16912 * optabs.cc (prepare_cmp_insn): If !can_create_pseudo_p (), don't
16913 force_reg constants and for -fnon-call-exceptions fail if copy_to_reg
16914 would be needed.
16915
16916 2022-01-20 Richard Biener <rguenther@suse.de>
16917
16918 PR middle-end/100786
16919 * gimple-fold.cc (get_symbol_constant_value): Only return
16920 values of compatible type to the symbol.
16921
16922 2022-01-20 Andrew MacLeod <amacleod@redhat.com>
16923
16924 * value-relation.cc (relation_oracle::valid_equivs): Query and add
16925 if valid members of a set.
16926 (equiv_oracle::register_equiv): Call valid_equivs rather than
16927 bitmap direct operations.
16928 (path_oracle::register_equiv): Ditto.
16929 * value-relation.h (relation_oracle::valid_equivs): New prototype.
16930
16931 2022-01-20 Richard Biener <rguenther@suse.de>
16932
16933 PR target/100784
16934 * config/i386/i386.cc (ix86_gimple_fold_builtin): Check for
16935 LHS before folding __builtin_ia32_shufpd and friends.
16936
16937 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16938
16939 * config/arm/crypto.md (aes_op_protect): Allow moves from core
16940 registers and from memory.
16941 (aes_op_protect_misalign_load): New pattern.
16942 (aes_op_protect_neon_vld1v16qi): New pattern.
16943
16944 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16945
16946 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>_protected):
16947 New pattern.
16948 (aarch32_crypto_aese_fused_protected): Likewise.
16949 (aarch32_crypto_aesd_fused_protected): Likewise.
16950
16951 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16952
16953 * config/arm/crypto.md (crypto_<CRYPTO_AES:crypto_pattern>): Convert
16954 to define_expand. Add mitigation for the Cortex-A AES erratum
16955 when enabled.
16956 (*crypto_<CRYPTO_AES:crypto_pattern>_insn): New pattern, based
16957 on original crypto_<CRYPTO_AES:crypto_pattern> insn.
16958 (aes_op_protect): New pattern.
16959 * config/arm/unspecs.md (unspec): Add UNSPEC_AES_PROTECT.
16960
16961 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16962
16963 * config/arm/arm-cpus.in (quirk_aes_1742098): New quirk feature
16964 (ALL_QUIRKS): Add it.
16965 (cortex-a57, cortex-a72): Enable it.
16966 (cortex-a57.cortex-a53, cortex-a72.cortex-a53): Likewise.
16967 * config/arm/arm.opt (mfix-cortex-a57-aes-1742098): New command-line
16968 option.
16969 (mfix-cortex-a72-aes-1655431): New option alias.
16970 * config/arm/arm.cc (arm_option_override): Handle default settings
16971 for AES erratum switch.
16972 * doc/invoke.texi (Arm Options): Document new options.
16973
16974 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16975
16976 * config/arm/crypto.md (crypto_<CYRPTO_AES:crypto_pattern>): Use
16977 <crypto_mode> rather than hard-coding the mode.
16978 (crypto_<CRYPTO_AESMC:crypto_pattern>): Fix white space.
16979 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
16980 (*aarch32_crypto_aese_fused): Likewise.
16981 (*aarch32_crypto_aesd_fused): Likewise.
16982 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
16983 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
16984 (crypto_sha1h_lb): Likewise.
16985 (crypto_vmullp64): Likewise.
16986 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
16987 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
16988
16989 2022-01-20 Richard Earnshaw <rearnsha@arm.com>
16990
16991 * config/arm/crypto.md (crypto_<CRYPTO_AESMC:crypto_pattern>): Add
16992 iterator to pattern name to disambiguate.
16993 (crypto_<CRYPTO_AES:crypto_pattern>): Likewise.
16994 (crypto_<CRYPTO_BINARY:crypto_pattern>): Likewise.
16995 (crypto_<CRYPTO_TERNARY:crypto_pattern>): Likewise.
16996 (crypto_<CRYPTO_SELECTING:crypto_pattern>): Likewise.
16997 (crypto_<CRYPTO_SELECTING:crypto_pattern>_lb): Likewise.
16998
16999 2022-01-20 Martin Liska <mliska@suse.cz>
17000
17001 PR bootstrap/104135
17002 * emit-rtl.cc (make_insn_raw): Fix -Wformat-diag warnings.
17003 * rtl.cc: Partially disable -Wformat-diag for RTL checking
17004 error messages.
17005
17006 2022-01-20 Jakub Jelinek <jakub@redhat.com>
17007
17008 PR debug/103874
17009 * dwarf2out.cc (index_rnglists): For !HAVE_AS_LEB128 and
17010 block_num > 0, index entry even if !have_multiple_function_sections.
17011
17012 2022-01-20 liuhongt <hongtao.liu@intel.com>
17013
17014 PR target/103771
17015 * tree-vect-stmts.cc (supportable_narrowing_operation): Enhance
17016 integral mode mask pack by multi steps which takes
17017 vec_pack_sbool_trunc_optab as start when elements number is
17018 less than BITS_PER_UNITS.
17019
17020 2022-01-20 Richard Biener <rguenther@suse.de>
17021
17022 PR tree-optimization/104114
17023 * tree-vect-generic.cc (expand_vector_piecewise): Do not diagnose
17024 single element vector decomposition.
17025
17026 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17027
17028 * ifcvt.cc (noce_convert_multiple_sets_1): New function.
17029 (noce_convert_multiple_sets): Call function a second time if we can
17030 improve the first try.
17031
17032 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17033
17034 * ifcvt.cc (cond_exec_get_condition): New parameter to allow getting the
17035 reversed comparison.
17036 (try_emit_cmove_seq): New function to facilitate creating a cmov
17037 sequence.
17038 (noce_convert_multiple_sets): Create two sequences and use the less
17039 expensive one.
17040
17041 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17042
17043 * rtl.h (struct rtx_comparison): New struct that holds an rtx
17044 comparison.
17045 * config/rs6000/rs6000.cc (rs6000_emit_minmax): Use struct instead of
17046 single parameters.
17047 (rs6000_emit_swsqrt): Likewise.
17048 * expmed.cc (expand_sdiv_pow2): Likewise.
17049 (emit_store_flag): Likewise.
17050 * expr.cc (expand_cond_expr_using_cmove): Likewise.
17051 (expand_expr_real_2): Likewise.
17052 * ifcvt.cc (noce_emit_cmove): Add compare and reversed compare
17053 parameters.
17054 * optabs.cc (emit_conditional_move_1): New function.
17055 (expand_doubleword_shift_condmove): Use struct.
17056 (emit_conditional_move): Use struct and allow to call directly
17057 without going through preparation steps.
17058 * optabs.h (emit_conditional_move): Use struct.
17059
17060 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17061
17062 * ifcvt.cc (bb_ok_for_noce_convert_multiple_sets): Estimate insns costs.
17063 (noce_process_if_block): Use potential costs.
17064
17065 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17066
17067 * ifcvt.cc (noce_convert_multiple_sets): Allow constants.
17068 (bb_ok_for_noce_convert_multiple_sets): Likewise.
17069
17070 2022-01-19 Robin Dapp <rdapp@linux.ibm.com>
17071
17072 * ifcvt.cc (need_cmov_or_rewire): New function.
17073 (noce_convert_multiple_sets): Call it.
17074
17075 2022-01-19 David Malcolm <dmalcolm@redhat.com>
17076
17077 * attribs.cc (attribute_c_tests): Rename to...
17078 (attribs_cc_tests): ...this.
17079 * bitmap.cc (bitmap_c_tests): Rename to...
17080 (bitmap_cc_tests): ...this.
17081 * cgraph.cc (cgraph_c_finalize): Rename to...
17082 (cgraph_cc_finalize): ...this.
17083 (cgraph_c_tests): Rename to...
17084 (cgraph_cc_tests): ...this.
17085 * cgraph.h (cgraph_c_finalize): Rename to...
17086 (cgraph_cc_finalize): ...this.
17087 (cgraphunit_c_finalize): Rename to...
17088 (cgraphunit_cc_finalize): ...this.
17089 * cgraphunit.cc (cgraphunit_c_finalize): Rename to...
17090 (cgraphunit_cc_finalize): ...this.
17091 * convert.cc (convert_c_tests): Rename to...
17092 (convert_cc_tests): ...this.
17093 * dbgcnt.cc (dbgcnt_c_tests): Rename to...
17094 (dbgcnt_cc_tests): ...this.
17095 * diagnostic-show-locus.cc (diagnostic_show_locus_c_tests): Rename to...
17096 (diagnostic_show_locus_cc_tests): ...this.
17097 * diagnostic.cc (diagnostic_c_tests): Rename to...
17098 (diagnostic_cc_tests): ...this.
17099 * dumpfile.cc (dumpfile_c_tests): Rename to...
17100 (dumpfile_cc_tests): ...this.
17101 * dwarf2out.cc (dwarf2out_c_finalize): Rename to...
17102 (dwarf2out_cc_finalize): ...this.
17103 * dwarf2out.h (dwarf2out_c_finalize): Rename to...
17104 (dwarf2out_cc_finalize): ...this.
17105 * edit-context.cc (edit_context_c_tests): Rename to...
17106 (edit_context_cc_tests): ...this.
17107 * et-forest.cc (et_forest_c_tests): Rename to...
17108 (et_forest_cc_tests): ...this.
17109 * fibonacci_heap.cc (fibonacci_heap_c_tests): Rename to...
17110 (fibonacci_heap_cc_tests): ...this.
17111 * fold-const.cc (fold_const_c_tests): Rename to...
17112 (fold_const_cc_tests): ...this.
17113 * function-tests.cc (function_tests_c_tests): Rename to...
17114 (function_tests_cc_tests): ...this.
17115 * gcse.cc (gcse_c_finalize): Rename to...
17116 (gcse_cc_finalize): ...this.
17117 * gcse.h (gcse_c_finalize): Rename to...
17118 (gcse_cc_finalize): ...this.
17119 * ggc-tests.cc (ggc_tests_c_tests): Rename to...
17120 (ggc_tests_cc_tests): ...this.
17121 * gimple-ssa-store-merging.cc (store_merging_c_tests): Rename to...
17122 (store_merging_cc_tests): ...this.
17123 * gimple.cc (gimple_c_tests): Rename to...
17124 (gimple_cc_tests): ...this.
17125 * hash-map-tests.cc (hash_map_tests_c_tests): Rename to...
17126 (hash_map_tests_cc_tests): ...this.
17127 * hash-set-tests.cc (hash_set_tests_c_tests): Rename to...
17128 (hash_set_tests_cc_tests): ...this.
17129 * input.cc (input_c_tests): Rename to...
17130 (input_cc_tests): ...this.
17131 * ipa-cp.cc (ipa_cp_c_finalize): Rename to...
17132 (ipa_cp_cc_finalize): ...this.
17133 * ipa-fnsummary.cc (ipa_fnsummary_c_finalize): Rename to...
17134 (ipa_fnsummary_cc_finalize): ...this.
17135 * ipa-fnsummary.h (ipa_fnsummary_c_finalize): Rename to...
17136 (ipa_fnsummary_cc_finalize): ...this.
17137 * ipa-modref-tree.cc (ipa_modref_tree_c_tests): Rename to...
17138 (ipa_modref_tree_cc_tests): ...this.
17139 * ipa-modref-tree.h (modref_c_tests): Delete bogus decl.
17140 * ipa-modref.cc (ipa_modref_c_finalize): Rename to...
17141 (ipa_modref_cc_finalize): ...this.
17142 * ipa-modref.h (ipa_modref_c_finalize): Rename to...
17143 (ipa_modref_cc_finalize): ...this.
17144 * ipa-prop.h (ipa_cp_c_finalize): Rename to...
17145 (ipa_cp_cc_finalize): ...this.
17146 * ipa-reference.cc (ipa_reference_c_finalize): Rename to...
17147 (ipa_reference_cc_finalize): ...this.
17148 * ipa-reference.h (ipa_reference_c_finalize): Rename to...
17149 (ipa_reference_cc_finalize): ...this.
17150 * ira-costs.cc (ira_costs_c_finalize): Rename to...
17151 (ira_costs_cc_finalize): ...this.
17152 * ira.h (ira_costs_c_finalize): Rename to...
17153 (ira_costs_cc_finalize): ...this.
17154 * opt-suggestions.cc (opt_proposer_c_tests): Rename to...
17155 (opt_suggestions_cc_tests): ...this.
17156 * opts.cc (opts_c_tests): Rename to...
17157 (opts_cc_tests): ...this.
17158 * predict.cc (predict_c_tests): Rename to...
17159 (predict_cc_tests): ...this.
17160 * pretty-print.cc (pretty_print_c_tests): Rename to...
17161 (pretty_print_cc_tests): ...this.
17162 * read-rtl-function.cc (read_rtl_function_c_tests): Rename to...
17163 (read_rtl_function_cc_tests): ...this.
17164 * rtl-tests.cc (rtl_tests_c_tests): Rename to...
17165 (rtl_tests_cc_tests): ...this.
17166 * sbitmap.cc (sbitmap_c_tests): Rename to...
17167 (sbitmap_cc_tests): ...this.
17168 * selftest-run-tests.cc (selftest::run_tests): Update calls for
17169 _c_ to _cc_ function renamings; fix names of attribs and
17170 opt-suggestions tests.
17171 * selftest.cc (selftest_c_tests): Rename to...
17172 (selftest_cc_tests): ...this.
17173 * selftest.h (attribute_c_tests): Rename to...
17174 (attribs_cc_tests): ...this.
17175 (bitmap_c_tests): Rename to...
17176 (bitmap_cc_tests): ...this.
17177 (cgraph_c_tests): Rename to...
17178 (cgraph_cc_tests): ...this.
17179 (convert_c_tests): Rename to...
17180 (convert_cc_tests): ...this.
17181 (diagnostic_c_tests): Rename to...
17182 (diagnostic_cc_tests): ...this.
17183 (diagnostic_show_locus_c_tests): Rename to...
17184 (diagnostic_show_locus_cc_tests): ...this.
17185 (dumpfile_c_tests): Rename to...
17186 (dumpfile_cc_tests): ...this.
17187 (edit_context_c_tests): Rename to...
17188 (edit_context_cc_tests): ...this.
17189 (et_forest_c_tests): Rename to...
17190 (et_forest_cc_tests): ...this.
17191 (fibonacci_heap_c_tests): Rename to...
17192 (fibonacci_heap_cc_tests): ...this.
17193 (fold_const_c_tests): Rename to...
17194 (fold_const_cc_tests): ...this.
17195 (function_tests_c_tests): Rename to...
17196 (function_tests_cc_tests): ...this.
17197 (ggc_tests_c_tests): Rename to...
17198 (ggc_tests_cc_tests): ...this.
17199 (gimple_c_tests): Rename to...
17200 (gimple_cc_tests): ...this.
17201 (hash_map_tests_c_tests): Rename to...
17202 (hash_map_tests_cc_tests): ...this.
17203 (hash_set_tests_c_tests): Rename to...
17204 (hash_set_tests_cc_tests): ...this.
17205 (input_c_tests): Rename to...
17206 (input_cc_tests): ...this.
17207 (opts_c_tests): Rename to...
17208 (opts_cc_tests): ...this.
17209 (predict_c_tests): Rename to...
17210 (predict_cc_tests): ...this.
17211 (pretty_print_c_tests): Rename to...
17212 (pretty_print_cc_tests): ...this.
17213 (read_rtl_function_c_tests): Rename to...
17214 (read_rtl_function_cc_tests): ...this.
17215 (rtl_tests_c_tests): Rename to...
17216 (rtl_tests_cc_tests): ...this.
17217 (sbitmap_c_tests): Rename to...
17218 (sbitmap_cc_tests): ...this.
17219 (selftest_c_tests): Rename to...
17220 (selftest_cc_tests): ...this.
17221 (simplify_rtx_c_tests): Rename to...
17222 (simplify_rtx_cc_tests): ...this.
17223 (spellcheck_c_tests): Rename to...
17224 (spellcheck_cc_tests): ...this.
17225 (spellcheck_tree_c_tests): Rename to...
17226 (spellcheck_tree_cc_tests): ...this.
17227 (sreal_c_tests): Rename to...
17228 (sreal_cc_tests): ...this.
17229 (store_merging_c_tests): Rename to...
17230 (store_merging_cc_tests): ...this.
17231 (tree_c_tests): Rename to...
17232 (tree_cc_tests): ...this.
17233 (tree_cfg_c_tests): Rename to...
17234 (tree_cfg_cc_tests): ...this.
17235 (typed_splay_tree_c_tests): Rename to...
17236 (typed_splay_tree_cc_tests): ...this.
17237 (vec_c_tests): Rename to...
17238 (vec_cc_tests): ...this.
17239 (vec_perm_indices_c_tests): Rename to...
17240 (vec_perm_indices_cc_tests): ..this.
17241 (opt_proposer_c_tests): Rename to...
17242 (opt_suggestions_cc_tests): ...this.
17243 (dbgcnt_c_tests): Rename to...
17244 (dbgcnt_cc_tests): ...this.
17245 (ipa_modref_tree_c_tests): Rename to...
17246 (ipa_modref_tree_cc_tests): ...this.
17247 * simplify-rtx.cc (simplify_rtx_c_tests): Rename to...
17248 (simplify_rtx_cc_tests): ...this.
17249 * spellcheck-tree.cc (spellcheck_tree_c_tests): Rename to...
17250 (spellcheck_tree_cc_tests): ...this.
17251 * spellcheck.cc (spellcheck_c_tests): Rename to...
17252 (spellcheck_cc_tests): ...this.
17253 * sreal.cc (sreal_c_tests): Rename to...
17254 (sreal_cc_tests): ...this.
17255 * toplev.cc (toplev::finalize): Update calls for _c_ to _cc_
17256 function renamings.
17257 * tree-cfg.cc (tree_cfg_c_tests): Rename to...
17258 (tree_cfg_cc_tests): ...this.
17259 * tree.cc (tree_c_tests): Rename to...
17260 (tree_cc_tests): ...this.
17261 * typed-splay-tree.cc (typed_splay_tree_c_tests): Rename to...
17262 (typed_splay_tree_cc_tests): ...this.
17263 * vec-perm-indices.cc (vec_perm_indices_c_tests): Rename to...
17264 (vec_perm_indices_cc_tests): ...this.
17265 * vec.cc (vec_c_tests): Rename to...
17266 (vec_cc_tests): ...this.
17267
17268 2022-01-19 Andre Vieira <andre.simoesdiasvieira@arm.com>
17269
17270 PR tree-optimization/103997
17271 * tree-vect-loop.cc (vect_analyze_loop): Fix mode skipping for epilogue
17272 vectorization.
17273
17274 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17275
17276 PR middle-end/102860
17277 * match.pd (x %[fl] y -> x % y): New simplification for
17278 unsigned integral types.
17279 * optabs-tree.cc (optab_for_tree_code): Return unknown_optab
17280 for {CEIL,FLOOR,ROUND}_{DIV,MOD}_EXPR with VECTOR_TYPE.
17281
17282 2022-01-19 Richard Biener <rguenther@suse.de>
17283
17284 PR tree-optimization/104112
17285 * tree-vect-loop.cc (vect_find_reusable_accumulator): Check
17286 for required intermediate vector types.
17287
17288 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17289
17290 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Add default:.
17291
17292 2022-01-19 Martin Liska <mliska@suse.cz>
17293
17294 * configure.ac: Remove -Wno-error=format-diag.
17295 * configure: Regenerate.
17296
17297 2022-01-19 Martin Liska <mliska@suse.cz>
17298
17299 * config/riscv/riscv.cc (riscv_handle_type_attribute):
17300 Update one -Wformat-diag string in warning message.
17301
17302 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17303
17304 PR middle-end/104103
17305 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Don't check
17306 .ASAN_MARK calls.
17307
17308 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17309
17310 PR c++/89074
17311 * fold-const.cc (address_compare): Consider different STRING_CSTs
17312 with the same lengths that memcmp the same as equal, not different.
17313
17314 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17315
17316 * config/i386/sse.md (*aes<aeswideklvariant>u*): Use %0 instead of
17317 {%0}.
17318
17319 2022-01-19 Martin Liska <mliska@suse.cz>
17320 Thomas Schwinge <thomas@codesourcery.com>
17321
17322 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Update
17323 warning messages.
17324
17325 2022-01-19 Sebastian Huber <sebastian.huber@embedded-brains.de>
17326
17327 PR target/104090
17328 * config/rs6000/rs6000.cc (rs6000_machine_from_flags): Use also
17329 rs6000_cpu.
17330
17331 2022-01-19 Jakub Jelinek <jakub@redhat.com>
17332
17333 PR target/104104
17334 * config/i386/sse.md
17335 (<avx512>_<complexopname>_<mode><maskc_name><round_name>,
17336 avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>,
17337 avx512dq_mul<mode>3<mask_name>, <avx2_avx512>_permvar<mode><mask_name>,
17338 avx2_perm<mode>_1<mask_name>, avx512f_perm<mode>_1<mask_name>,
17339 avx512dq_rangep<mode><mask_name><round_saeonly_name>,
17340 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>,
17341 <avx512>_getmant<mode><mask_name><round_saeonly_name>,
17342 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
17343 Use vxorps\t%x0, %x0, %x0 instead of vxorps\t{%x0, %x0, %x0}.
17344
17345 2022-01-19 Martin Sebor <msebor@redhat.com>
17346
17347 PR middle-end/104069
17348 * gimple-ssa-warn-access.cc (pointers_related_p): Return false for
17349 an unknown result as documented.
17350
17351 2022-01-18 Andrew Pinski <apinski@marvell.com>
17352
17353 * ipa-split.cc (visit_bb): Fix comment before the
17354 warning/error attribute checking code.
17355
17356 2022-01-18 David Faust <david.faust@oracle.com>
17357
17358 * config/bpf/coreout.cc (bpf_core_reloc_add): Do not account
17359 for base strtab offset yet as it may change.
17360 (output_asm_btfext_core_reloc): Do so here instead.
17361 (output_btfext_core_sections): Likewise.
17362
17363 2022-01-18 David Faust <david.faust@oracle.com>
17364
17365 * config/bpf/coreout.cc (output_btfext_header): Account for
17366 4-byte record size in core_relo_len.
17367 (output_btfext_core_sections): Only write record size once.
17368 * config/bpf/coreout.h (btf_ext_section_header): Delete unused
17369 member.
17370
17371 2022-01-18 Maciej W. Rozycki <macro@embecosm.com>
17372
17373 * common/config/riscv/riscv-common.cc
17374 (riscv_subset_list::parse_multiletter_ext): Move pointer
17375 arithmetic ahead of `free'.
17376
17377 2022-01-18 Jason Merrill <jason@redhat.com>
17378
17379 PR c++/104007
17380 * gimplify.cc (gimple_push_cleanup): Handle eh_only in conditional
17381 context.
17382
17383 2022-01-18 Sandra Loosemore <sandra@codesourcery.com>
17384
17385 PR middle-end/103163
17386 * emit-rtl.cc (init_emit_regs): Initialize stack_limit_rtx here...
17387 (init_emit_once): ...not here.
17388
17389 2022-01-18 Martin Liska <mliska@suse.cz>
17390
17391 * collect2.cc (scan_libraries): Fix -Wformat-diag issues.
17392 * config/aarch64/aarch64-builtins.cc (aarch64_simd_expand_builtin): Likewise.
17393 * config/arc/arc.md: Likewise.
17394 * config/avr/avr.cc (avr_section_type_flags): Likewise.
17395 * config/bfin/bfin.cc (bfin_option_override): Likewise.
17396 (bfin_handle_longcall_attribute): Likewise.
17397 * config/cris/cris.h (FUNCTION_PROFILER): Likewise.
17398 * config/frv/frv.cc (frv_expand_builtin): Likewise.
17399 * config/ia64/ia64-c.cc (ia64_hpux_handle_builtin_pragma): Likewise.
17400 * config/iq2000/iq2000.cc (save_restore_insns): Likewise.
17401 (iq2000_print_operand_address): Likewise.
17402 (iq2000_print_operand): Likewise.
17403 * config/m32c/m32c-pragma.cc (m32c_pragma_memregs): Likewise.
17404 (m32c_pragma_address): Likewise.
17405 * config/m68k/m68k.cc (m68k_handle_fndecl_attribute): Likewise.
17406 * config/mips/mips.cc (mips_handle_interrupt_attr): Likewise.
17407 (mips_set_compression_mode): Likewise.
17408 * config/mmix/mmix.cc (mmix_function_profiler): Likewise.
17409 (mmix_print_operand): Likewise.
17410 (mmix_output_shiftvalue_op_from_str): Likewise.
17411 (mmix_output_shifted_value): Likewise.
17412 * config/msp430/driver-msp430.cc (msp430_select_hwmult_lib): Likewise.
17413 * config/msp430/msp430.cc (msp430_option_override): Likewise.
17414 (msp430_attr): Likewise.
17415 (msp430_expand_delay_cycles): Likewise.
17416 (msp430_expand_builtin): Likewise.
17417 * config/rs6000/aix73.h: Likewise.
17418 * config/rs6000/rtems.h (INVALID_64BIT): Likewise.
17419 * config/rx/rx.cc (rx_expand_builtin_mvtc): Likewise.
17420 (valid_psw_flag): Likewise.
17421 * config/sh/sh.cc (parse_validate_atomic_model_option): Likewise.
17422 * config/stormy16/stormy16.cc (xstormy16_function_profiler): Likewise.
17423 (xstormy16_expand_builtin_va_start): Likewise.
17424 (xstormy16_handle_below100_attribute): Likewise.
17425
17426 2022-01-18 Martin Liska <mliska@suse.cz>
17427
17428 * config/vms/vms-c.cc (vms_pragma_nostandard): Fix -Wformat-diag
17429 warning.
17430 (vms_pragma_standard): Likewise.
17431 (vms_pragma_extern_prefix): Likewise.
17432
17433 2022-01-18 Martin Liska <mliska@suse.cz>
17434
17435 * config/xtensa/xtensa.cc (print_operand): Fix warnings.
17436 (print_operand_address): Likewise.
17437 (xtensa_multibss_section_type_flags): Likewise.
17438
17439 2022-01-18 Martin Liska <mliska@suse.cz>
17440
17441 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Change
17442 wording of an error message.
17443
17444 2022-01-18 Martin Liska <mliska@suse.cz>
17445
17446 * config/v850/v850-c.cc (pop_data_area): Fix -Wformat-diag
17447 warning.
17448 (ghs_pragma_section): Likewise.
17449 (ghs_pragma_interrupt): Likewise.
17450 (ghs_pragma_starttda): Likewise.
17451 (ghs_pragma_startsda): Likewise.
17452 (ghs_pragma_startzda): Likewise.
17453 (ghs_pragma_endtda): Likewise.
17454 (ghs_pragma_endsda): Likewise.
17455 (ghs_pragma_endzda): Likewise.
17456
17457 2022-01-18 Martin Liska <mliska@suse.cz>
17458
17459 * config/nds32/nds32-intrinsic.cc (nds32_expand_builtin_impl):
17460 Fix warnings.
17461 * config/nds32/nds32-intrinsic.md: Likewise.
17462 * config/nds32/nds32-isr.cc (nds32_check_isr_attrs_conflict): Likewise.
17463 * config/nds32/nds32.cc (nds32_print_operand): Likewise.
17464 (nds32_insert_attributes): Likewise.
17465
17466 2022-01-18 Martin Liska <mliska@suse.cz>
17467
17468 * config/nvptx/nvptx.cc (nvptx_goacc_validate_dims_1): Wrap
17469 keyword.
17470 * config/nvptx/nvptx.md: Remove trailing dot.
17471
17472 2022-01-18 Martin Liska <mliska@suse.cz>
17473
17474 * common/config/riscv/riscv-common.cc (riscv_subset_list::add):
17475 Wrap keywords with quotes and remove trailing dots.
17476 (riscv_subset_list::parsing_subset_version): Likewise.
17477 (riscv_subset_list::parse_std_ext): Likewise.
17478 (riscv_subset_list::parse_multiletter_ext): Likewise.
17479 * config/riscv/riscv.cc (riscv_handle_type_attribute): Likewise.
17480
17481 2022-01-18 Andre Vieira <andre.simoesdiasvieira@arm.com>
17482
17483 * tree-vect-loop.cc (vect_estimate_min_profitable_iters): Pass new
17484 argument suggested_unroll_factor.
17485 (vect_analyze_loop_costing): Likewise.
17486 (_loop_vec_info::_loop_vec_info): Initialize new member
17487 suggested_unroll_factor.
17488 (vect_determine_partial_vectors_and_peeling): Make epilogue of unrolled
17489 main loop use partial vectors.
17490 (vect_analyze_loop_2): Pass and use new argument
17491 suggested_unroll_factor.
17492 (vect_analyze_loop_1): Change to intialize local
17493 suggested_unroll_factor and use it.
17494 (vectorizable_reduction): Don't use single_defuse_cycle when unrolling.
17495 * tree-vectorizer.h (_loop_vec_info::_loop_vec_info): Add new member
17496 suggested_unroll_factor.
17497 (vector_costs::vector_costs): Add new member m_suggested_unroll_factor.
17498 (vector_costs::suggested_unroll_factor): New getter function.
17499 (finish_cost): Set return argument suggested_unroll_factor.
17500
17501 2022-01-18 Andrew MacLeod <amacleod@redhat.com>
17502
17503 PR tree-optimization/104038
17504 * doc/invoke.texi (relation-block-limit): New.
17505 * params.opt (relation-block-limit): New.
17506 * value-relation.cc (dom_oracle::register_relation): Check for NULL
17507 record before invoking transitive registery.
17508 (dom_oracle::set_one_relation): Check limit before creating record.
17509 (dom_oracle::register_transitives): Stop when no record created.
17510 * value-relation.h (relation_chain_head::m_num_relations): New.
17511
17512 2022-01-18 Richard Biener <rguenther@suse.de>
17513
17514 PR ipa/103989
17515 * ipa-inline.cc (inline_small_functions): Do not enqueue call
17516 edges originating in functions compiled with -Og.
17517
17518 2022-01-18 Richard Biener <rguenther@suse.de>
17519
17520 PR ipa/103989
17521 * passes.def (pass_all_optimizations_g): Remove pass_modref
17522 and pass_local_pure_const.
17523
17524 2022-01-18 Martin Liska <mliska@suse.cz>
17525
17526 * config/s390/s390.cc: Fix -Wformat-diag warnings.
17527
17528 2022-01-18 Martin Liska <mliska@suse.cz>
17529
17530 * config/s390/s390-c.cc (s390_expand_overloaded_builtin): Wrap
17531 keyword in quotes.
17532 (s390_resolve_overloaded_builtin): Remove trailing dot.
17533 * config/s390/s390.cc (s390_const_operand_ok): Use - for range.
17534 (s390_expand_builtin): Remove trailing dot.
17535 (s390_emit_prologue): Likewise, use semicolon.
17536 (s390_option_override_internal): Update keyword.
17537 * varasm.cc (do_assemble_alias): Wrap keyword in quotes.
17538
17539 2022-01-18 Martin Liska <mliska@suse.cz>
17540
17541 * config/rs6000/rs6000-call.cc (rs6000_expand_builtin): Wrap
17542 keywords and use %qs instead of %<%s%>.
17543
17544 2022-01-18 Richard Biener <rguenther@suse.de>
17545
17546 PR tree-optimization/103987
17547 * tree-ssa-dse.cc (dse_optimize_call): Properly guard modref
17548 query with a pointer check.
17549
17550 2022-01-18 Richard Sandiford <richard.sandiford@arm.com>
17551
17552 PR target/104005
17553 * config/aarch64/aarch64.cc (aarch64_check_consecutive_mems):
17554 When using MEM_EXPR, require the base to be a decl.
17555
17556 2022-01-18 Richard Biener <rguenther@suse.de>
17557
17558 * cgraph.h (struct cgraph_simd_clone_arg): Re-arrange fields to
17559 avoid padding.
17560 * function.h (struct function): Likewise.
17561
17562 2022-01-18 Arnaud Charlet <charlet@adacore.com>
17563
17564 * doc/install.texi: Update prerequisites for GNAT
17565
17566 2022-01-18 Andrew Pinski <apinski@marvell.com>
17567
17568 PR tree-optimization/101941
17569 * ipa-split.cc (visit_bb): Disallow function calls where
17570 the function has either error or warning attribute.
17571
17572 2022-01-18 Richard Biener <rguenther@suse.de>
17573
17574 PR tree-optimization/104064
17575 * tree-vect-data-refs.cc (vect_analyze_data_ref_accesses): Check
17576 DR_INIT fits in a signed HWI, represent the difference from the
17577 first DR in unsigned.
17578
17579 2022-01-17 Martin Liska <mliska@suse.cz>
17580
17581 * Makefile.in: Rename .c names to .cc.
17582 * config.gcc: Likewise.
17583 * configure: Regenerate. Likewise.
17584 * configure.ac: Likewise.
17585 * gengtype.cc (set_gc_used): Likewise.
17586 (source_dot_c_frul): Likewise.
17587 (source_dot_cc_frul): Likewise.
17588 (struct file_rule_st): Likewise.
17589 (close_output_files): Likewise.
17590 * config/avr/t-avr: Use CXXFLAGS_* and CXX_FOR_BUILD.
17591
17592 2022-01-17 Martin Liska <mliska@suse.cz>
17593
17594 * Makefile.in: Rename .c names to .cc.
17595 * alias.h: Likewise.
17596 * asan.cc: Likewise.
17597 * auto-profile.h: Likewise.
17598 * basic-block.h (struct basic_block_d): Likewise.
17599 * btfout.cc: Likewise.
17600 * builtins.cc (expand_builtin_longjmp): Likewise.
17601 (validate_arg): Likewise.
17602 (access_ref::offset_bounded): Likewise.
17603 * caller-save.cc (reg_restore_code): Likewise.
17604 (setup_save_areas): Likewise.
17605 * calls.cc (initialize_argument_information): Likewise.
17606 (expand_call): Likewise.
17607 (emit_library_call_value_1): Likewise.
17608 * cfg-flags.def (RTL): Likewise.
17609 (SIBCALL): Likewise.
17610 (CAN_FALLTHRU): Likewise.
17611 * cfganal.cc (post_order_compute): Likewise.
17612 * cfgcleanup.cc (try_simplify_condjump): Likewise.
17613 (merge_blocks_move_predecessor_nojumps): Likewise.
17614 (merge_blocks_move_successor_nojumps): Likewise.
17615 (merge_blocks_move): Likewise.
17616 (old_insns_match_p): Likewise.
17617 (try_crossjump_bb): Likewise.
17618 * cfgexpand.cc (expand_gimple_stmt): Likewise.
17619 * cfghooks.cc (split_block_before_cond_jump): Likewise.
17620 (profile_record_check_consistency): Likewise.
17621 * cfghooks.h: Likewise.
17622 * cfgrtl.cc (pass_free_cfg::execute): Likewise.
17623 (rtl_can_merge_blocks): Likewise.
17624 (try_redirect_by_replacing_jump): Likewise.
17625 (make_pass_outof_cfg_layout_mode): Likewise.
17626 (cfg_layout_can_merge_blocks_p): Likewise.
17627 * cgraph.cc (release_function_body): Likewise.
17628 (cgraph_node::get_fun): Likewise.
17629 * cgraph.h (struct cgraph_node): Likewise.
17630 (asmname_hasher::equal): Likewise.
17631 (cgraph_inline_failed_type): Likewise.
17632 (thunk_adjust): Likewise.
17633 (dump_callgraph_transformation): Likewise.
17634 (record_references_in_initializer): Likewise.
17635 (ipa_discover_variable_flags): Likewise.
17636 * cgraphclones.cc (GTY): Likewise.
17637 * cgraphunit.cc (symbol_table::finalize_compilation_unit): Likewise.
17638 * collect-utils.h (GCC_COLLECT_UTILS_H): Likewise.
17639 * collect2-aix.h (GCC_COLLECT2_AIX_H): Likewise.
17640 * collect2.cc (maybe_run_lto_and_relink): Likewise.
17641 * combine-stack-adj.cc: Likewise.
17642 * combine.cc (setup_incoming_promotions): Likewise.
17643 (combine_simplify_rtx): Likewise.
17644 (count_rtxs): Likewise.
17645 * common.opt: Likewise.
17646 * common/config/aarch64/aarch64-common.cc: Likewise.
17647 * common/config/arm/arm-common.cc (arm_asm_auto_mfpu): Likewise.
17648 * common/config/avr/avr-common.cc: Likewise.
17649 * common/config/i386/i386-isas.h (struct _isa_names_table): Likewise.
17650 * conditions.h: Likewise.
17651 * config.gcc: Likewise.
17652 * config/aarch64/aarch64-builtins.cc (aarch64_resolve_overloaded_memtag): Likewise.
17653 * config/aarch64/aarch64-protos.h (aarch64_classify_address): Likewise.
17654 (aarch64_get_extension_string_for_isa_flags): Likewise.
17655 * config/aarch64/aarch64-sve-builtins.cc (function_builder::add_function): Likewise.
17656 * config/aarch64/aarch64.cc (aarch64_regmode_natural_size): Likewise.
17657 (aarch64_sched_first_cycle_multipass_dfa_lookahead): Likewise.
17658 (aarch64_option_valid_attribute_p): Likewise.
17659 (aarch64_short_vector_p): Likewise.
17660 (aarch64_float_const_representable_p): Likewise.
17661 * config/aarch64/aarch64.h (DBX_REGISTER_NUMBER): Likewise.
17662 (ASM_OUTPUT_POOL_EPILOGUE): Likewise.
17663 (GTY): Likewise.
17664 * config/aarch64/cortex-a57-fma-steering.cc: Likewise.
17665 * config/aarch64/driver-aarch64.cc (contains_core_p): Likewise.
17666 * config/aarch64/t-aarch64: Likewise.
17667 * config/aarch64/x-aarch64: Likewise.
17668 * config/aarch64/x-darwin: Likewise.
17669 * config/alpha/alpha-protos.h: Likewise.
17670 * config/alpha/alpha.cc (alpha_scalar_mode_supported_p): Likewise.
17671 * config/alpha/alpha.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
17672 (enum reg_class): Likewise.
17673 * config/alpha/alpha.md: Likewise.
17674 * config/alpha/driver-alpha.cc (AMASK_LOCKPFTCHOK): Likewise.
17675 * config/alpha/x-alpha: Likewise.
17676 * config/arc/arc-protos.h (arc_eh_uses): Likewise.
17677 * config/arc/arc.cc (ARC_OPT): Likewise.
17678 (arc_ccfsm_advance): Likewise.
17679 (arc_arg_partial_bytes): Likewise.
17680 (conditionalize_nonjump): Likewise.
17681 * config/arc/arc.md: Likewise.
17682 * config/arc/builtins.def: Likewise.
17683 * config/arc/t-arc: Likewise.
17684 * config/arm/arm-c.cc (arm_resolve_overloaded_builtin): Likewise.
17685 (arm_pragma_target_parse): Likewise.
17686 * config/arm/arm-protos.h (save_restore_target_globals): Likewise.
17687 (arm_cpu_cpp_builtins): Likewise.
17688 * config/arm/arm.cc (vfp3_const_double_index): Likewise.
17689 (shift_op): Likewise.
17690 (thumb2_final_prescan_insn): Likewise.
17691 (arm_final_prescan_insn): Likewise.
17692 (arm_asm_output_labelref): Likewise.
17693 (arm_small_register_classes_for_mode_p): Likewise.
17694 * config/arm/arm.h: Likewise.
17695 * config/arm/arm.md: Likewise.
17696 * config/arm/driver-arm.cc: Likewise.
17697 * config/arm/symbian.h: Likewise.
17698 * config/arm/t-arm: Likewise.
17699 * config/arm/thumb1.md: Likewise.
17700 * config/arm/x-arm: Likewise.
17701 * config/avr/avr-c.cc (avr_register_target_pragmas): Likewise.
17702 * config/avr/avr-fixed.md: Likewise.
17703 * config/avr/avr-log.cc (avr_log_vadump): Likewise.
17704 * config/avr/avr-mcus.def: Likewise.
17705 * config/avr/avr-modes.def (FRACTIONAL_INT_MODE): Likewise.
17706 * config/avr/avr-passes.def (INSERT_PASS_BEFORE): Likewise.
17707 * config/avr/avr-protos.h (make_avr_pass_casesi): Likewise.
17708 * config/avr/avr.cc (avr_option_override): Likewise.
17709 (avr_build_builtin_va_list): Likewise.
17710 (avr_mode_dependent_address_p): Likewise.
17711 (avr_function_arg_advance): Likewise.
17712 (avr_asm_output_aligned_decl_common): Likewise.
17713 * config/avr/avr.h (RETURN_ADDR_RTX): Likewise.
17714 (SUPPORTS_INIT_PRIORITY): Likewise.
17715 * config/avr/avr.md: Likewise.
17716 * config/avr/builtins.def: Likewise.
17717 * config/avr/gen-avr-mmcu-specs.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
17718 * config/avr/gen-avr-mmcu-texi.cc (IN_GEN_AVR_MMCU_TEXI): Likewise.
17719 (main): Likewise.
17720 * config/avr/t-avr: Likewise.
17721 * config/bfin/bfin.cc (frame_related_constant_load): Likewise.
17722 * config/bpf/bpf-protos.h (GCC_BPF_PROTOS_H): Likewise.
17723 * config/bpf/bpf.h (enum reg_class): Likewise.
17724 * config/bpf/t-bpf: Likewise.
17725 * config/c6x/c6x-protos.h (GCC_C6X_PROTOS_H): Likewise.
17726 * config/cr16/cr16-protos.h: Likewise.
17727 * config/cris/cris.cc (cris_address_cost): Likewise.
17728 (cris_side_effect_mode_ok): Likewise.
17729 (cris_init_machine_status): Likewise.
17730 (cris_emit_movem_store): Likewise.
17731 * config/cris/cris.h (INDEX_REG_CLASS): Likewise.
17732 (enum reg_class): Likewise.
17733 (struct cum_args): Likewise.
17734 * config/cris/cris.opt: Likewise.
17735 * config/cris/sync.md: Likewise.
17736 * config/csky/csky.cc (csky_expand_prologue): Likewise.
17737 * config/darwin-c.cc: Likewise.
17738 * config/darwin-f.cc: Likewise.
17739 * config/darwin-sections.def (zobj_const_section): Likewise.
17740 * config/darwin.cc (output_objc_section_asm_op): Likewise.
17741 (fprintf): Likewise.
17742 * config/darwin.h (GTY): Likewise.
17743 * config/elfos.h: Likewise.
17744 * config/epiphany/epiphany-sched.md: Likewise.
17745 * config/epiphany/epiphany.cc (epiphany_function_value): Likewise.
17746 * config/epiphany/epiphany.h (GTY): Likewise.
17747 (NO_FUNCTION_CSE): Likewise.
17748 * config/epiphany/mode-switch-use.cc: Likewise.
17749 * config/epiphany/predicates.md: Likewise.
17750 * config/epiphany/t-epiphany: Likewise.
17751 * config/fr30/fr30-protos.h: Likewise.
17752 * config/frv/frv-protos.h: Likewise.
17753 * config/frv/frv.cc (TLS_BIAS): Likewise.
17754 * config/frv/frv.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
17755 * config/ft32/ft32-protos.h: Likewise.
17756 * config/gcn/gcn-hsa.h (ASM_APP_OFF): Likewise.
17757 * config/gcn/gcn.cc (gcn_init_libfuncs): Likewise.
17758 * config/gcn/mkoffload.cc (copy_early_debug_info): Likewise.
17759 * config/gcn/t-gcn-hsa: Likewise.
17760 * config/gcn/t-omp-device: Likewise.
17761 * config/h8300/h8300-protos.h (GCC_H8300_PROTOS_H): Likewise.
17762 (same_cmp_following_p): Likewise.
17763 * config/h8300/h8300.cc (F): Likewise.
17764 * config/h8300/h8300.h (struct cum_arg): Likewise.
17765 (BRANCH_COST): Likewise.
17766 * config/i386/cygming.h (DEFAULT_PCC_STRUCT_RETURN): Likewise.
17767 * config/i386/djgpp.h (TARGET_ASM_LTO_END): Likewise.
17768 * config/i386/dragonfly.h (NO_PROFILE_COUNTERS): Likewise.
17769 * config/i386/driver-i386.cc (detect_caches_intel): Likewise.
17770 * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise.
17771 * config/i386/i386-c.cc (ix86_target_macros): Likewise.
17772 * config/i386/i386-expand.cc (get_mode_wider_vector): Likewise.
17773 * config/i386/i386-options.cc (ix86_set_func_type): Likewise.
17774 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): Likewise.
17775 (ix86_register_pragmas): Likewise.
17776 (ix86_d_has_stdcall_convention): Likewise.
17777 (i386_pe_seh_init_sections): Likewise.
17778 * config/i386/i386.cc (ix86_function_arg_regno_p): Likewise.
17779 (ix86_function_value_regno_p): Likewise.
17780 (ix86_compute_frame_layout): Likewise.
17781 (legitimize_pe_coff_symbol): Likewise.
17782 (output_pic_addr_const): Likewise.
17783 * config/i386/i386.h (defined): Likewise.
17784 (host_detect_local_cpu): Likewise.
17785 (CONSTANT_ADDRESS_P): Likewise.
17786 (DEFAULT_LARGE_SECTION_THRESHOLD): Likewise.
17787 (struct machine_frame_state): Likewise.
17788 * config/i386/i386.md: Likewise.
17789 * config/i386/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
17790 * config/i386/mmx.md: Likewise.
17791 * config/i386/sse.md: Likewise.
17792 * config/i386/t-cygming: Likewise.
17793 * config/i386/t-djgpp: Likewise.
17794 * config/i386/t-gnu-property: Likewise.
17795 * config/i386/t-i386: Likewise.
17796 * config/i386/t-intelmic: Likewise.
17797 * config/i386/t-omp-device: Likewise.
17798 * config/i386/winnt-cxx.cc (i386_pe_type_dllimport_p): Likewise.
17799 (i386_pe_adjust_class_at_definition): Likewise.
17800 * config/i386/winnt.cc (gen_stdcall_or_fastcall_suffix): Likewise.
17801 (i386_pe_mangle_decl_assembler_name): Likewise.
17802 (i386_pe_encode_section_info): Likewise.
17803 * config/i386/x-cygwin: Likewise.
17804 * config/i386/x-darwin: Likewise.
17805 * config/i386/x-i386: Likewise.
17806 * config/i386/x-mingw32: Likewise.
17807 * config/i386/x86-tune-sched-core.cc: Likewise.
17808 * config/i386/x86-tune.def: Likewise.
17809 * config/i386/xm-djgpp.h (STANDARD_STARTFILE_PREFIX_1): Likewise.
17810 * config/ia64/freebsd.h: Likewise.
17811 * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Likewise.
17812 * config/ia64/ia64-protos.h (ia64_except_unwind_info): Likewise.
17813 * config/ia64/ia64.cc (ia64_function_value_regno_p): Likewise.
17814 (ia64_secondary_reload_class): Likewise.
17815 (bundling): Likewise.
17816 * config/ia64/ia64.h: Likewise.
17817 * config/ia64/ia64.md: Likewise.
17818 * config/ia64/predicates.md: Likewise.
17819 * config/ia64/sysv4.h: Likewise.
17820 * config/ia64/t-ia64: Likewise.
17821 * config/iq2000/iq2000.h (FUNCTION_MODE): Likewise.
17822 * config/iq2000/iq2000.md: Likewise.
17823 * config/linux.h (TARGET_HAS_BIONIC): Likewise.
17824 (if): Likewise.
17825 * config/m32c/m32c.cc (m32c_function_needs_enter): Likewise.
17826 * config/m32c/m32c.h (MAX_REGS_PER_ADDRESS): Likewise.
17827 * config/m32c/t-m32c: Likewise.
17828 * config/m32r/m32r-protos.h: Likewise.
17829 * config/m32r/m32r.cc (m32r_print_operand): Likewise.
17830 * config/m32r/m32r.h: Likewise.
17831 * config/m32r/m32r.md: Likewise.
17832 * config/m68k/m68k-isas.def: Likewise.
17833 * config/m68k/m68k-microarchs.def: Likewise.
17834 * config/m68k/m68k-protos.h (strict_low_part_peephole_ok): Likewise.
17835 (m68k_epilogue_uses): Likewise.
17836 * config/m68k/m68k.cc (m68k_call_tls_get_addr): Likewise.
17837 (m68k_sched_adjust_cost): Likewise.
17838 (m68k_sched_md_init): Likewise.
17839 * config/m68k/m68k.h (__transfer_from_trampoline): Likewise.
17840 (enum m68k_function_kind): Likewise.
17841 * config/m68k/m68k.md: Likewise.
17842 * config/m68k/m68kemb.h: Likewise.
17843 * config/m68k/uclinux.h (ENDFILE_SPEC): Likewise.
17844 * config/mcore/mcore-protos.h: Likewise.
17845 * config/mcore/mcore.cc (mcore_expand_insv): Likewise.
17846 (mcore_expand_prolog): Likewise.
17847 * config/mcore/mcore.h (TARGET_MCORE): Likewise.
17848 * config/mcore/mcore.md: Likewise.
17849 * config/microblaze/microblaze-protos.h: Likewise.
17850 * config/microblaze/microblaze.cc (microblaze_legitimate_pic_operand): Likewise.
17851 (microblaze_function_prologue): Likewise.
17852 (microblaze_function_epilogue): Likewise.
17853 (microblaze_select_section): Likewise.
17854 (microblaze_asm_output_mi_thunk): Likewise.
17855 (microblaze_eh_return): Likewise.
17856 * config/microblaze/microblaze.h: Likewise.
17857 * config/microblaze/microblaze.md: Likewise.
17858 * config/microblaze/t-microblaze: Likewise.
17859 * config/mips/driver-native.cc: Likewise.
17860 * config/mips/loongson2ef.md: Likewise.
17861 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Likewise.
17862 * config/mips/mips.cc (mips_rtx_costs): Likewise.
17863 (mips_output_filename): Likewise.
17864 (mips_output_function_prologue): Likewise.
17865 (mips_output_function_epilogue): Likewise.
17866 (mips_output_mi_thunk): Likewise.
17867 * config/mips/mips.h: Likewise.
17868 * config/mips/mips.md: Likewise.
17869 * config/mips/t-mips: Likewise.
17870 * config/mips/x-native: Likewise.
17871 * config/mmix/mmix-protos.h: Likewise.
17872 * config/mmix/mmix.cc (mmix_option_override): Likewise.
17873 (mmix_dbx_register_number): Likewise.
17874 (mmix_expand_prologue): Likewise.
17875 * config/mmix/mmix.h: Likewise.
17876 * config/mmix/mmix.md: Likewise.
17877 * config/mmix/predicates.md: Likewise.
17878 * config/mn10300/mn10300.cc (mn10300_symbolic_operand): Likewise.
17879 (mn10300_legitimate_pic_operand_p): Likewise.
17880 * config/mn10300/mn10300.h (enum reg_class): Likewise.
17881 (NO_FUNCTION_CSE): Likewise.
17882 * config/moxie/moxie-protos.h: Likewise.
17883 * config/moxie/uclinux.h (TARGET_LIBC_HAS_FUNCTION): Likewise.
17884 * config/msp430/msp430-devices.cc (extract_devices_dir_from_exec_prefix): Likewise.
17885 * config/msp430/msp430.cc (msp430_gimplify_va_arg_expr): Likewise.
17886 (msp430_incoming_return_addr_rtx): Likewise.
17887 * config/msp430/msp430.h (msp430_get_linker_devices_include_path): Likewise.
17888 * config/msp430/t-msp430: Likewise.
17889 * config/nds32/nds32-cost.cc (nds32_rtx_costs_speed_prefer): Likewise.
17890 (nds32_rtx_costs_size_prefer): Likewise.
17891 (nds32_init_rtx_costs): Likewise.
17892 * config/nds32/nds32-doubleword.md: Likewise.
17893 * config/nds32/nds32.cc (nds32_memory_move_cost): Likewise.
17894 (nds32_builtin_decl): Likewise.
17895 * config/nds32/nds32.h (enum nds32_16bit_address_type): Likewise.
17896 (enum nds32_isr_nested_type): Likewise.
17897 (enum reg_class): Likewise.
17898 * config/nds32/predicates.md: Likewise.
17899 * config/nds32/t-nds32: Likewise.
17900 * config/nios2/nios2.cc (nios2_pragma_target_parse): Likewise.
17901 * config/nvptx/nvptx-protos.h: Likewise.
17902 * config/nvptx/nvptx.cc (nvptx_goacc_expand_var_decl): Likewise.
17903 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Likewise.
17904 * config/nvptx/t-nvptx: Likewise.
17905 * config/nvptx/t-omp-device: Likewise.
17906 * config/pa/elf.h: Likewise.
17907 * config/pa/pa-linux.h (GLOBAL_ASM_OP): Likewise.
17908 * config/pa/pa-netbsd.h (GLOBAL_ASM_OP): Likewise.
17909 * config/pa/pa-openbsd.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
17910 * config/pa/pa-protos.h (pa_eh_return_handler_rtx): Likewise.
17911 (pa_legitimize_reload_address): Likewise.
17912 (pa_can_use_return_insn): Likewise.
17913 * config/pa/pa.cc (mem_shadd_or_shadd_rtx_p): Likewise.
17914 (som_output_text_section_asm_op): Likewise.
17915 * config/pa/pa.h (PROFILE_BEFORE_PROLOGUE): Likewise.
17916 * config/pa/pa.md: Likewise.
17917 * config/pa/som.h: Likewise.
17918 * config/pa/t-pa: Likewise.
17919 * config/pdp11/pdp11.cc (decode_pdp11_d): Likewise.
17920 * config/pdp11/pdp11.h: Likewise.
17921 * config/pdp11/pdp11.md: Likewise.
17922 * config/pdp11/t-pdp11: Likewise.
17923 * config/pru/pru.md: Likewise.
17924 * config/pru/t-pru: Likewise.
17925 * config/riscv/riscv-protos.h (NUM_SYMBOL_TYPES): Likewise.
17926 (riscv_gpr_save_operation_p): Likewise.
17927 (riscv_d_register_target_info): Likewise.
17928 (riscv_init_builtins): Likewise.
17929 * config/riscv/riscv.cc (riscv_output_mi_thunk): Likewise.
17930 * config/riscv/riscv.h (CSW_MAX_OFFSET): Likewise.
17931 * config/riscv/t-riscv: Likewise.
17932 * config/rl78/rl78.cc (rl78_asm_ctor_dtor): Likewise.
17933 * config/rl78/t-rl78: Likewise.
17934 * config/rs6000/aix.h: Likewise.
17935 * config/rs6000/aix71.h (ASM_SPEC_COMMON): Likewise.
17936 * config/rs6000/aix72.h (ASM_SPEC_COMMON): Likewise.
17937 * config/rs6000/aix73.h (ASM_SPEC_COMMON): Likewise.
17938 * config/rs6000/darwin.h (TARGET_ASM_GLOBALIZE_LABEL): Likewise.
17939 * config/rs6000/driver-rs6000.cc: Likewise.
17940 * config/rs6000/freebsd.h: Likewise.
17941 * config/rs6000/freebsd64.h: Likewise.
17942 * config/rs6000/lynx.h (ASM_OUTPUT_ALIGN): Likewise.
17943 * config/rs6000/rbtree.cc: Likewise.
17944 * config/rs6000/rbtree.h: Likewise.
17945 * config/rs6000/rs6000-c.cc (rs6000_target_modify_macros): Likewise.
17946 * config/rs6000/rs6000-call.cc (rs6000_invalid_builtin): Likewise.
17947 (rs6000_expand_builtin): Likewise.
17948 (rs6000_init_builtins): Likewise.
17949 * config/rs6000/rs6000-cpus.def: Likewise.
17950 * config/rs6000/rs6000-gen-builtins.cc (write_init_ovld_table): Likewise.
17951 * config/rs6000/rs6000-internal.h (ALTIVEC_REG_BIT): Likewise.
17952 (quad_address_offset_p): Likewise.
17953 * config/rs6000/rs6000-logue.cc (interesting_frame_related_regno): Likewise.
17954 (rs6000_emit_epilogue): Likewise.
17955 * config/rs6000/rs6000-overload.def: Likewise.
17956 * config/rs6000/rs6000-p8swap.cc: Likewise.
17957 * config/rs6000/rs6000-protos.h (GCC_RS6000_PROTOS_H): Likewise.
17958 (rs6000_const_f32_to_i32): Likewise.
17959 * config/rs6000/rs6000.cc (legitimate_lo_sum_address_p): Likewise.
17960 (rs6000_debug_legitimize_address): Likewise.
17961 (rs6000_mode_dependent_address): Likewise.
17962 (rs6000_adjust_priority): Likewise.
17963 (rs6000_c_mode_for_suffix): Likewise.
17964 * config/rs6000/rs6000.h (defined): Likewise.
17965 (LONG_DOUBLE_TYPE_SIZE): Likewise.
17966 * config/rs6000/rs6000.md: Likewise.
17967 * config/rs6000/sysv4.h: Likewise.
17968 * config/rs6000/t-linux: Likewise.
17969 * config/rs6000/t-linux64: Likewise.
17970 * config/rs6000/t-rs6000: Likewise.
17971 * config/rs6000/x-darwin: Likewise.
17972 * config/rs6000/x-darwin64: Likewise.
17973 * config/rs6000/x-rs6000: Likewise.
17974 * config/rs6000/xcoff.h (ASM_OUTPUT_LABELREF): Likewise.
17975 * config/rx/rx.cc (rx_expand_builtin): Likewise.
17976 * config/s390/constraints.md: Likewise.
17977 * config/s390/driver-native.cc: Likewise.
17978 * config/s390/htmxlintrin.h: Likewise.
17979 * config/s390/s390-builtins.def (B_DEF): Likewise.
17980 (OB_DEF_VAR): Likewise.
17981 * config/s390/s390-builtins.h: Likewise.
17982 * config/s390/s390-c.cc: Likewise.
17983 * config/s390/s390-opts.h: Likewise.
17984 * config/s390/s390-protos.h (s390_check_symref_alignment): Likewise.
17985 (s390_register_target_pragmas): Likewise.
17986 * config/s390/s390.cc (s390_init_builtins): Likewise.
17987 (s390_expand_plus_operand): Likewise.
17988 (s390_expand_atomic): Likewise.
17989 (s390_valid_target_attribute_inner_p): Likewise.
17990 * config/s390/s390.h (LONG_DOUBLE_TYPE_SIZE): Likewise.
17991 * config/s390/s390.md: Likewise.
17992 * config/s390/t-s390: Likewise.
17993 * config/s390/vx-builtins.md: Likewise.
17994 * config/s390/x-native: Likewise.
17995 * config/sh/divtab-sh4-300.cc (main): Likewise.
17996 * config/sh/divtab-sh4.cc (main): Likewise.
17997 * config/sh/divtab.cc (main): Likewise.
17998 * config/sh/elf.h: Likewise.
17999 * config/sh/sh-protos.h (sh_fsca_int2sf): Likewise.
18000 * config/sh/sh.cc (SYMBOL_FLAG_FUNCVEC_FUNCTION): Likewise.
18001 (sh_struct_value_rtx): Likewise.
18002 (sh_remove_reg_dead_or_unused_notes): Likewise.
18003 * config/sh/sh.h (MIN_UNITS_PER_WORD): Likewise.
18004 * config/sh/t-sh: Likewise.
18005 * config/sol2-protos.h (solaris_override_options): Likewise.
18006 * config/sol2.h: Likewise.
18007 * config/sparc/driver-sparc.cc: Likewise.
18008 * config/sparc/freebsd.h: Likewise.
18009 * config/sparc/sparc-protos.h (make_pass_work_around_errata): Likewise.
18010 * config/sparc/sparc.cc (sparc_output_mi_thunk): Likewise.
18011 (sparc_asan_shadow_offset): Likewise.
18012 * config/sparc/sparc.h: Likewise.
18013 * config/sparc/sparc.md: Likewise.
18014 * config/sparc/t-sparc: Likewise.
18015 * config/sparc/x-sparc: Likewise.
18016 * config/stormy16/stormy16.cc (xstormy16_mode_dependent_address_p): Likewise.
18017 * config/t-darwin: Likewise.
18018 * config/t-dragonfly: Likewise.
18019 * config/t-freebsd: Likewise.
18020 * config/t-glibc: Likewise.
18021 * config/t-linux: Likewise.
18022 * config/t-netbsd: Likewise.
18023 * config/t-openbsd: Likewise.
18024 * config/t-pnt16-warn: Likewise.
18025 * config/t-sol2: Likewise.
18026 * config/t-vxworks: Likewise.
18027 * config/t-winnt: Likewise.
18028 * config/tilegx/t-tilegx: Likewise.
18029 * config/tilegx/tilegx-c.cc: Likewise.
18030 * config/tilegx/tilegx-protos.h (tilegx_function_profiler): Likewise.
18031 * config/tilegx/tilegx.md: Likewise.
18032 * config/tilepro/t-tilepro: Likewise.
18033 * config/tilepro/tilepro-c.cc: Likewise.
18034 * config/v850/t-v850: Likewise.
18035 * config/v850/v850-protos.h: Likewise.
18036 * config/v850/v850.cc (F): Likewise.
18037 * config/v850/v850.h (enum reg_class): Likewise.
18038 (SLOW_BYTE_ACCESS): Likewise.
18039 * config/vax/vax.cc (vax_mode_dependent_address_p): Likewise.
18040 * config/vax/vax.h (enum reg_class): Likewise.
18041 * config/vax/vax.md: Likewise.
18042 * config/visium/visium.cc (visium_legitimate_address_p): Likewise.
18043 * config/visium/visium.h: Likewise.
18044 * config/vms/t-vms: Likewise.
18045 * config/vms/vms-crtlmap.map: Likewise.
18046 * config/vms/vms-protos.h (vms_c_get_vms_ver): Likewise.
18047 * config/vx-common.h: Likewise.
18048 * config/x-darwin: Likewise.
18049 * config/x-hpux: Likewise.
18050 * config/x-linux: Likewise.
18051 * config/x-netbsd: Likewise.
18052 * config/x-openbsd: Likewise.
18053 * config/x-solaris: Likewise.
18054 * config/xtensa/xtensa-protos.h (xtensa_mem_offset): Likewise.
18055 * config/xtensa/xtensa.cc (xtensa_option_override): Likewise.
18056 * config/xtensa/xtensa.h: Likewise.
18057 * configure.ac: Likewise.
18058 * context.cc: Likewise.
18059 * convert.h: Likewise.
18060 * coretypes.h: Likewise.
18061 * coverage.cc: Likewise.
18062 * coverage.h: Likewise.
18063 * cppdefault.h (struct default_include): Likewise.
18064 * cprop.cc (local_cprop_pass): Likewise.
18065 (one_cprop_pass): Likewise.
18066 * cse.cc (hash_rtx_cb): Likewise.
18067 (fold_rtx): Likewise.
18068 * ctfc.h (ctfc_get_num_vlen_bytes): Likewise.
18069 * data-streamer.h (bp_unpack_var_len_int): Likewise.
18070 (streamer_write_widest_int): Likewise.
18071 * dbgcnt.def: Likewise.
18072 * dbxout.cc (dbxout_early_global_decl): Likewise.
18073 (dbxout_common_check): Likewise.
18074 * dbxout.h: Likewise.
18075 * debug.h (struct gcc_debug_hooks): Likewise.
18076 (dump_go_spec_init): Likewise.
18077 * df-core.cc: Likewise.
18078 * df-scan.cc (df_insn_info_delete): Likewise.
18079 (df_insn_delete): Likewise.
18080 * df.h (debug_df_chain): Likewise.
18081 (can_move_insns_across): Likewise.
18082 * dfp.cc (decimal_from_binary): Likewise.
18083 * diagnostic-color.cc: Likewise.
18084 * diagnostic-event-id.h: Likewise.
18085 * diagnostic-show-locus.cc (test_one_liner_labels): Likewise.
18086 * diagnostic.cc (bt_callback): Likewise.
18087 (num_digits): Likewise.
18088 * doc/avr-mmcu.texi: Likewise.
18089 * doc/cfg.texi: Likewise.
18090 * doc/contrib.texi: Likewise.
18091 * doc/cppinternals.texi: Likewise.
18092 * doc/extend.texi: Likewise.
18093 * doc/generic.texi: Likewise.
18094 * doc/gimple.texi: Likewise.
18095 * doc/gty.texi: Likewise.
18096 * doc/invoke.texi: Likewise.
18097 * doc/loop.texi: Likewise.
18098 * doc/lto.texi: Likewise.
18099 * doc/match-and-simplify.texi: Likewise.
18100 * doc/md.texi: Likewise.
18101 * doc/optinfo.texi: Likewise.
18102 * doc/options.texi: Likewise.
18103 * doc/passes.texi: Likewise.
18104 * doc/plugins.texi: Likewise.
18105 * doc/rtl.texi: Likewise.
18106 * doc/sourcebuild.texi: Likewise.
18107 * doc/tm.texi: Likewise.
18108 * doc/tm.texi.in: Likewise.
18109 * doc/tree-ssa.texi: Likewise.
18110 * dojump.cc (do_jump): Likewise.
18111 * dojump.h: Likewise.
18112 * dumpfile.cc (test_impl_location): Likewise.
18113 (test_capture_of_dump_calls): Likewise.
18114 * dumpfile.h (enum dump_kind): Likewise.
18115 (class dump_location_t): Likewise.
18116 (dump_enabled_p): Likewise.
18117 (enable_rtl_dump_file): Likewise.
18118 (dump_combine_total_stats): Likewise.
18119 * dwarf2asm.cc (dw2_asm_output_delta_uleb128): Likewise.
18120 * dwarf2ctf.h (ctf_debug_finish): Likewise.
18121 * dwarf2out.cc (dwarf2out_begin_prologue): Likewise.
18122 (struct loc_descr_context): Likewise.
18123 (rtl_for_decl_location): Likewise.
18124 (gen_subprogram_die): Likewise.
18125 (gen_label_die): Likewise.
18126 (is_trivial_indirect_ref): Likewise.
18127 (dwarf2out_late_global_decl): Likewise.
18128 (dwarf_file_hasher::hash): Likewise.
18129 (dwarf2out_end_source_file): Likewise.
18130 (dwarf2out_define): Likewise.
18131 (dwarf2out_early_finish): Likewise.
18132 * dwarf2out.h (struct dw_fde_node): Likewise.
18133 (struct dw_discr_list_node): Likewise.
18134 (output_loc_sequence_raw): Likewise.
18135 * emit-rtl.cc (gen_raw_REG): Likewise.
18136 (maybe_set_max_label_num): Likewise.
18137 * emit-rtl.h (struct rtl_data): Likewise.
18138 * errors.cc (internal_error): Likewise.
18139 (trim_filename): Likewise.
18140 * et-forest.cc: Likewise.
18141 * except.cc (init_eh_for_function): Likewise.
18142 * explow.cc (promote_ssa_mode): Likewise.
18143 (get_dynamic_stack_size): Likewise.
18144 * explow.h: Likewise.
18145 * expmed.h: Likewise.
18146 * expr.cc (safe_from_p): Likewise.
18147 (expand_expr_real_2): Likewise.
18148 (expand_expr_real_1): Likewise.
18149 * file-prefix-map.cc (remap_filename): Likewise.
18150 * final.cc (app_enable): Likewise.
18151 (make_pass_compute_alignments): Likewise.
18152 (final_scan_insn_1): Likewise.
18153 (final_scan_insn): Likewise.
18154 * fixed-value.h (fixed_from_string): Likewise.
18155 * flag-types.h (NO_DEBUG): Likewise.
18156 (DWARF2_DEBUG): Likewise.
18157 (VMS_DEBUG): Likewise.
18158 (BTF_DEBUG): Likewise.
18159 (enum ctf_debug_info_levels): Likewise.
18160 * fold-const.cc (const_binop): Likewise.
18161 (fold_binary_loc): Likewise.
18162 (fold_checksum_tree): Likewise.
18163 * fp-test.cc: Likewise.
18164 * function.cc (expand_function_end): Likewise.
18165 * function.h (struct function): Likewise.
18166 * fwprop.cc (should_replace_address): Likewise.
18167 * gcc-main.cc: Likewise.
18168 * gcc-rich-location.h (class gcc_rich_location): Likewise.
18169 * gcc-symtab.h: Likewise.
18170 * gcc.cc (MIN_FATAL_STATUS): Likewise.
18171 (driver_handle_option): Likewise.
18172 (quote_spec_arg): Likewise.
18173 (driver::finalize): Likewise.
18174 * gcc.h (set_input): Likewise.
18175 * gcov-dump.cc: Likewise.
18176 * gcov.cc (solve_flow_graph): Likewise.
18177 * gcse-common.cc: Likewise.
18178 * gcse.cc (make_pass_rtl_hoist): Likewise.
18179 * genattr-common.cc: Likewise.
18180 * genattrtab.cc (min_fn): Likewise.
18181 (write_const_num_delay_slots): Likewise.
18182 * genautomata.cc: Likewise.
18183 * genconditions.cc (write_one_condition): Likewise.
18184 * genconstants.cc: Likewise.
18185 * genemit.cc (gen_exp): Likewise.
18186 * generic-match-head.cc: Likewise.
18187 * genextract.cc: Likewise.
18188 * gengenrtl.cc (always_void_p): Likewise.
18189 * gengtype-parse.cc (gtymarker_opt): Likewise.
18190 * gengtype-state.cc (state_writer::state_writer): Likewise.
18191 (write_state_trailer): Likewise.
18192 (equals_type_number): Likewise.
18193 (read_state): Likewise.
18194 * gengtype.cc (open_base_files): Likewise.
18195 (struct file_rule_st): Likewise.
18196 (header_dot_h_frul): Likewise.
18197 * gengtype.h: Likewise.
18198 * genmatch.cc (main): Likewise.
18199 * genmddeps.cc: Likewise.
18200 * genmodes.cc (emit_mode_inner): Likewise.
18201 (emit_mode_unit_size): Likewise.
18202 * genpeep.cc (gen_peephole): Likewise.
18203 * genpreds.cc (write_tm_preds_h): Likewise.
18204 * genrecog.cc (validate_pattern): Likewise.
18205 (write_header): Likewise.
18206 (main): Likewise.
18207 * gensupport.cc (change_subst_attribute): Likewise.
18208 (traverse_c_tests): Likewise.
18209 (add_predicate): Likewise.
18210 (init_predicate_table): Likewise.
18211 * gensupport.h (struct optab_pattern): Likewise.
18212 (get_num_insn_codes): Likewise.
18213 (maybe_eval_c_test): Likewise.
18214 (struct pred_data): Likewise.
18215 * ggc-internal.h: Likewise.
18216 * gimple-fold.cc (maybe_fold_reference): Likewise.
18217 (get_range_strlen_tree): Likewise.
18218 * gimple-fold.h (gimple_stmt_integer_valued_real_p): Likewise.
18219 * gimple-low.cc: Likewise.
18220 * gimple-match-head.cc (directly_supported_p): Likewise.
18221 * gimple-pretty-print.h: Likewise.
18222 * gimple-ssa-sprintf.cc (format_percent): Likewise.
18223 (adjust_range_for_overflow): Likewise.
18224 * gimple-streamer.h: Likewise.
18225 * gimple.h (struct GTY): Likewise.
18226 (is_gimple_resx): Likewise.
18227 * gimplify.cc (gimplify_expr): Likewise.
18228 (gimplify_init_constructor): Likewise.
18229 (omp_construct_selector_matches): Likewise.
18230 (gimplify_omp_target_update): Likewise.
18231 (gimplify_omp_ordered): Likewise.
18232 (gimplify_va_arg_expr): Likewise.
18233 * graphite-isl-ast-to-gimple.cc (should_copy_to_new_region): Likewise.
18234 * haifa-sched.cc (increase_insn_priority): Likewise.
18235 (try_ready): Likewise.
18236 (sched_create_recovery_edges): Likewise.
18237 * ifcvt.cc (find_if_case_1): Likewise.
18238 (find_if_case_2): Likewise.
18239 * inchash.h: Likewise.
18240 * incpath.cc (add_env_var_paths): Likewise.
18241 * input.cc (dump_location_info): Likewise.
18242 (assert_loceq): Likewise.
18243 (test_lexer_string_locations_concatenation_1): Likewise.
18244 (test_lexer_string_locations_concatenation_2): Likewise.
18245 (test_lexer_string_locations_concatenation_3): Likewise.
18246 * input.h (BUILTINS_LOCATION): Likewise.
18247 (class string_concat_db): Likewise.
18248 * internal-fn.cc (expand_MUL_OVERFLOW): Likewise.
18249 (expand_LOOP_VECTORIZED): Likewise.
18250 * ipa-cp.cc (make_pass_ipa_cp): Likewise.
18251 * ipa-fnsummary.cc (remap_freqcounting_preds_after_dup): Likewise.
18252 (ipa_fn_summary_t::duplicate): Likewise.
18253 (make_pass_ipa_fn_summary): Likewise.
18254 * ipa-fnsummary.h (enum ipa_hints_vals): Likewise.
18255 * ipa-free-lang-data.cc (fld_simplified_type): Likewise.
18256 (free_lang_data_in_decl): Likewise.
18257 * ipa-inline.cc (compute_inlined_call_time): Likewise.
18258 (inline_always_inline_functions): Likewise.
18259 * ipa-inline.h (free_growth_caches): Likewise.
18260 (inline_account_function_p): Likewise.
18261 * ipa-modref.cc (modref_access_analysis::analyze_stmt): Likewise.
18262 (modref_eaf_analysis::analyze_ssa_name): Likewise.
18263 * ipa-param-manipulation.cc (ipa_param_body_adjustments::mark_dead_statements): Likewise.
18264 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise.
18265 * ipa-prop.cc (ipa_set_node_agg_value_chain): Likewise.
18266 * ipa-prop.h (IPA_UNDESCRIBED_USE): Likewise.
18267 (unadjusted_ptr_and_unit_offset): Likewise.
18268 * ipa-reference.cc (make_pass_ipa_reference): Likewise.
18269 * ipa-reference.h (GCC_IPA_REFERENCE_H): Likewise.
18270 * ipa-split.cc (consider_split): Likewise.
18271 * ipa-sra.cc (isra_read_node_info): Likewise.
18272 * ipa-utils.h (struct ipa_dfs_info): Likewise.
18273 (recursive_call_p): Likewise.
18274 (ipa_make_function_pure): Likewise.
18275 * ira-build.cc (ira_create_allocno): Likewise.
18276 (ira_flattening): Likewise.
18277 * ira-color.cc (do_coloring): Likewise.
18278 (update_curr_costs): Likewise.
18279 * ira-conflicts.cc (process_regs_for_copy): Likewise.
18280 * ira-int.h (struct ira_emit_data): Likewise.
18281 (ira_prohibited_mode_move_regs): Likewise.
18282 (ira_get_dup_out_num): Likewise.
18283 (ira_destroy): Likewise.
18284 (ira_tune_allocno_costs): Likewise.
18285 (ira_implicitly_set_insn_hard_regs): Likewise.
18286 (ira_build_conflicts): Likewise.
18287 (ira_color): Likewise.
18288 * ira-lives.cc (process_bb_node_lives): Likewise.
18289 * ira.cc (class ira_spilled_reg_stack_slot): Likewise.
18290 (setup_uniform_class_p): Likewise.
18291 (def_dominates_uses): Likewise.
18292 * ira.h (ira_nullify_asm_goto): Likewise.
18293 * langhooks.cc (lhd_post_options): Likewise.
18294 * langhooks.h (class substring_loc): Likewise.
18295 (struct lang_hooks_for_tree_inlining): Likewise.
18296 (struct lang_hooks_for_types): Likewise.
18297 (struct lang_hooks): Likewise.
18298 * libfuncs.h (synchronize_libfunc): Likewise.
18299 * loop-doloop.cc (doloop_condition_get): Likewise.
18300 * loop-init.cc (fix_loop_structure): Likewise.
18301 * loop-invariant.cc: Likewise.
18302 * lower-subreg.h: Likewise.
18303 * lra-constraints.cc (curr_insn_transform): Likewise.
18304 * lra-int.h (struct lra_insn_reg): Likewise.
18305 (lra_undo_inheritance): Likewise.
18306 (lra_setup_reload_pseudo_preferenced_hard_reg): Likewise.
18307 (lra_split_hard_reg_for): Likewise.
18308 (lra_coalesce): Likewise.
18309 (lra_final_code_change): Likewise.
18310 * lra-spills.cc (lra_final_code_change): Likewise.
18311 * lra.cc (lra_process_new_insns): Likewise.
18312 * lto-compress.h (struct lto_compression_stream): Likewise.
18313 * lto-streamer-out.cc (DFS::DFS_write_tree_body): Likewise.
18314 (write_symbol): Likewise.
18315 * lto-streamer.h (enum LTO_tags): Likewise.
18316 (lto_value_range_error): Likewise.
18317 (lto_append_block): Likewise.
18318 (lto_streamer_hooks_init): Likewise.
18319 (stream_read_tree_ref): Likewise.
18320 (lto_prepare_function_for_streaming): Likewise.
18321 (select_what_to_stream): Likewise.
18322 (omp_lto_input_declare_variant_alt): Likewise.
18323 (cl_optimization_stream_in): Likewise.
18324 * lto-wrapper.cc (append_compiler_options): Likewise.
18325 * machmode.def: Likewise.
18326 * machmode.h (struct int_n_data_t): Likewise.
18327 * main.cc (main): Likewise.
18328 * match.pd: Likewise.
18329 * omp-builtins.def (BUILT_IN_GOMP_CRITICAL_NAME_END): Likewise.
18330 (BUILT_IN_GOMP_LOOP_ULL_ORDERED_RUNTIME_NEXT): Likewise.
18331 * omp-expand.cc (expand_omp_atomic_fetch_op): Likewise.
18332 (make_pass_expand_omp_ssa): Likewise.
18333 * omp-low.cc (struct omp_context): Likewise.
18334 (struct omp_taskcopy_context): Likewise.
18335 (lower_omp): Likewise.
18336 * omp-oacc-neuter-broadcast.cc (omp_sese_active_worker_call): Likewise.
18337 (mask_name): Likewise.
18338 (omp_sese_dump_pars): Likewise.
18339 (worker_single_simple): Likewise.
18340 * omp-offload.cc (omp_finish_file): Likewise.
18341 (execute_oacc_loop_designation): Likewise.
18342 * optabs-query.cc (lshift_cheap_p): Likewise.
18343 * optc-gen.awk: Likewise.
18344 * optc-save-gen.awk: Likewise.
18345 * optinfo-emit-json.cc (optrecord_json_writer::optrecord_json_writer): Likewise.
18346 * opts-common.cc: Likewise.
18347 * output.h (app_enable): Likewise.
18348 (output_operand_lossage): Likewise.
18349 (insn_current_reference_address): Likewise.
18350 (get_insn_template): Likewise.
18351 (output_quoted_string): Likewise.
18352 * pass_manager.h (struct register_pass_info): Likewise.
18353 * plugin.cc: Likewise.
18354 * plugin.def (PLUGIN_ANALYZER_INIT): Likewise.
18355 * plugin.h (invoke_plugin_callbacks): Likewise.
18356 * pointer-query.cc (handle_mem_ref): Likewise.
18357 * postreload-gcse.cc (alloc_mem): Likewise.
18358 * predict.h (enum prediction): Likewise.
18359 (add_reg_br_prob_note): Likewise.
18360 * prefix.h: Likewise.
18361 * profile.h (get_working_sets): Likewise.
18362 * read-md.cc: Likewise.
18363 * read-md.h (struct mapping): Likewise.
18364 (class md_reader): Likewise.
18365 (class noop_reader): Likewise.
18366 * read-rtl-function.cc (function_reader::create_function): Likewise.
18367 (function_reader::extra_parsing_for_operand_code_0): Likewise.
18368 * read-rtl.cc (initialize_iterators): Likewise.
18369 * real.cc: Likewise.
18370 * real.h (struct real_value): Likewise.
18371 (format_helper::format_helper): Likewise.
18372 (real_hash): Likewise.
18373 (real_can_shorten_arithmetic): Likewise.
18374 * recog.cc (struct target_recog): Likewise.
18375 (offsettable_nonstrict_memref_p): Likewise.
18376 (constrain_operands): Likewise.
18377 * recog.h (MAX_RECOG_ALTERNATIVES): Likewise.
18378 (which_op_alt): Likewise.
18379 (struct insn_gen_fn): Likewise.
18380 * reg-notes.def (REG_NOTE): Likewise.
18381 * reg-stack.cc: Likewise.
18382 * regs.h (reg_is_parm_p): Likewise.
18383 * regset.h: Likewise.
18384 * reload.cc (push_reload): Likewise.
18385 (find_reloads): Likewise.
18386 (find_reloads_address_1): Likewise.
18387 (find_replacement): Likewise.
18388 (refers_to_regno_for_reload_p): Likewise.
18389 (refers_to_mem_for_reload_p): Likewise.
18390 * reload.h (push_reload): Likewise.
18391 (deallocate_reload_reg): Likewise.
18392 * reload1.cc (emit_input_reload_insns): Likewise.
18393 * reorg.cc (relax_delay_slots): Likewise.
18394 * rtl.def (UNKNOWN): Likewise.
18395 (SEQUENCE): Likewise.
18396 (BARRIER): Likewise.
18397 (ASM_OPERANDS): Likewise.
18398 (EQ_ATTR_ALT): Likewise.
18399 * rtl.h (struct GTY): Likewise.
18400 (LABEL_NAME): Likewise.
18401 (LABEL_ALT_ENTRY_P): Likewise.
18402 (SUBREG_BYTE): Likewise.
18403 (get_stack_check_protect): Likewise.
18404 (dump_rtx_statistics): Likewise.
18405 (unwrap_const_vec_duplicate): Likewise.
18406 (subreg_promoted_mode): Likewise.
18407 (gen_lowpart_common): Likewise.
18408 (operand_subword): Likewise.
18409 (immed_wide_int_const): Likewise.
18410 (decide_function_section): Likewise.
18411 (active_insn_p): Likewise.
18412 (delete_related_insns): Likewise.
18413 (try_split): Likewise.
18414 (val_signbit_known_clear_p): Likewise.
18415 (simplifiable_subregs): Likewise.
18416 (set_insn_deleted): Likewise.
18417 (subreg_get_info): Likewise.
18418 (remove_free_EXPR_LIST_node): Likewise.
18419 (finish_subregs_of_mode): Likewise.
18420 (get_mem_attrs): Likewise.
18421 (lookup_constant_def): Likewise.
18422 (rtx_to_tree_code): Likewise.
18423 (hash_rtx): Likewise.
18424 (condjump_in_parallel_p): Likewise.
18425 (validate_subreg): Likewise.
18426 (make_compound_operation): Likewise.
18427 (schedule_ebbs): Likewise.
18428 (print_inline_rtx): Likewise.
18429 (fixup_args_size_notes): Likewise.
18430 (expand_dec): Likewise.
18431 (prepare_copy_insn): Likewise.
18432 (mark_elimination): Likewise.
18433 (valid_mode_changes_for_regno): Likewise.
18434 (make_debug_expr_from_rtl): Likewise.
18435 (delete_vta_debug_insns): Likewise.
18436 (simplify_using_condition): Likewise.
18437 (set_insn_locations): Likewise.
18438 (fatal_insn_not_found): Likewise.
18439 (word_register_operation_p): Likewise.
18440 * rtlanal.cc (get_call_fndecl): Likewise.
18441 (side_effects_p): Likewise.
18442 (subreg_nregs): Likewise.
18443 (rtx_cost): Likewise.
18444 (canonicalize_condition): Likewise.
18445 * rtlanal.h (rtx_properties::try_to_add_note): Likewise.
18446 * run-rtl-passes.cc (run_rtl_passes): Likewise.
18447 * sanitizer.def (BUILT_IN_ASAN_VERSION_MISMATCH_CHECK): Likewise.
18448 * sched-deps.cc (add_dependence_1): Likewise.
18449 * sched-ebb.cc (begin_move_insn): Likewise.
18450 (add_deps_for_risky_insns): Likewise.
18451 (advance_target_bb): Likewise.
18452 * sched-int.h (reemit_notes): Likewise.
18453 (struct _haifa_insn_data): Likewise.
18454 (HID): Likewise.
18455 (DEP_CANCELLED): Likewise.
18456 (debug_ds): Likewise.
18457 (number_in_ready): Likewise.
18458 (schedule_ebbs_finish): Likewise.
18459 (find_modifiable_mems): Likewise.
18460 * sched-rgn.cc (debug_rgn_dependencies): Likewise.
18461 * sel-sched-dump.cc (dump_lv_set): Likewise.
18462 * sel-sched-dump.h: Likewise.
18463 * sel-sched-ir.cc (sel_insn_rtx_cost): Likewise.
18464 (setup_id_reg_sets): Likewise.
18465 (has_dependence_p): Likewise.
18466 (sel_num_cfg_preds_gt_1): Likewise.
18467 (bb_ends_ebb_p): Likewise.
18468 * sel-sched-ir.h (struct _list_node): Likewise.
18469 (struct idata_def): Likewise.
18470 (bb_next_bb): Likewise.
18471 * sel-sched.cc (vinsn_writes_one_of_regs_p): Likewise.
18472 (choose_best_pseudo_reg): Likewise.
18473 (verify_target_availability): Likewise.
18474 (can_speculate_dep_p): Likewise.
18475 (sel_rank_for_schedule): Likewise.
18476 * selftest-run-tests.cc (selftest::run_tests): Likewise.
18477 * selftest.h (class auto_fix_quotes): Likewise.
18478 * shrink-wrap.cc (handle_simple_exit): Likewise.
18479 * shrink-wrap.h: Likewise.
18480 * simplify-rtx.cc (simplify_context::simplify_associative_operation): Likewise.
18481 (simplify_context::simplify_gen_vec_select): Likewise.
18482 * spellcheck-tree.h: Likewise.
18483 * spellcheck.h: Likewise.
18484 * statistics.h (struct function): Likewise.
18485 * stmt.cc (conditional_probability): Likewise.
18486 * stmt.h: Likewise.
18487 * stor-layout.h: Likewise.
18488 * streamer-hooks.h: Likewise.
18489 * stringpool.h: Likewise.
18490 * symtab.cc (symbol_table::change_decl_assembler_name): Likewise.
18491 * target.def (HOOK_VECTOR_END): Likewise.
18492 (type.): Likewise.
18493 * target.h (union cumulative_args_t): Likewise.
18494 (by_pieces_ninsns): Likewise.
18495 (class predefined_function_abi): Likewise.
18496 * targhooks.cc (default_translate_mode_attribute): Likewise.
18497 * timevar.def: Likewise.
18498 * timevar.h (class timer): Likewise.
18499 * toplev.h (enable_rtl_dump_file): Likewise.
18500 * trans-mem.cc (collect_bb2reg): Likewise.
18501 * tree-call-cdce.cc (gen_conditions_for_pow): Likewise.
18502 * tree-cfg.cc (remove_bb): Likewise.
18503 (verify_gimple_debug): Likewise.
18504 (remove_edge_and_dominated_blocks): Likewise.
18505 (push_fndecl): Likewise.
18506 * tree-cfgcleanup.h (GCC_TREE_CFGCLEANUP_H): Likewise.
18507 * tree-complex.cc (expand_complex_multiplication): Likewise.
18508 (expand_complex_div_straight): Likewise.
18509 * tree-core.h (enum tree_index): Likewise.
18510 (enum operand_equal_flag): Likewise.
18511 * tree-eh.cc (honor_protect_cleanup_actions): Likewise.
18512 * tree-if-conv.cc (if_convertible_gimple_assign_stmt_p): Likewise.
18513 * tree-inline.cc (initialize_inlined_parameters): Likewise.
18514 * tree-inline.h (force_value_to_type): Likewise.
18515 * tree-nested.cc (get_chain_decl): Likewise.
18516 (walk_all_functions): Likewise.
18517 * tree-object-size.h: Likewise.
18518 * tree-outof-ssa.cc: Likewise.
18519 * tree-parloops.cc (create_parallel_loop): Likewise.
18520 * tree-pretty-print.cc (print_generic_expr_to_str): Likewise.
18521 (dump_generic_node): Likewise.
18522 * tree-profile.cc (tree_profiling): Likewise.
18523 * tree-sra.cc (maybe_add_sra_candidate): Likewise.
18524 * tree-ssa-address.cc: Likewise.
18525 * tree-ssa-alias.cc: Likewise.
18526 * tree-ssa-alias.h (ao_ref::max_size_known_p): Likewise.
18527 (dump_alias_stats): Likewise.
18528 * tree-ssa-ccp.cc: Likewise.
18529 * tree-ssa-coalesce.h: Likewise.
18530 * tree-ssa-live.cc (remove_unused_scope_block_p): Likewise.
18531 * tree-ssa-loop-manip.cc (copy_phi_node_args): Likewise.
18532 * tree-ssa-loop-unswitch.cc: Likewise.
18533 * tree-ssa-math-opts.cc: Likewise.
18534 * tree-ssa-operands.cc (class operands_scanner): Likewise.
18535 * tree-ssa-pre.cc: Likewise.
18536 * tree-ssa-reassoc.cc (optimize_ops_list): Likewise.
18537 (debug_range_entry): Likewise.
18538 * tree-ssa-sccvn.cc (eliminate_dom_walker::eliminate_stmt): Likewise.
18539 * tree-ssa-sccvn.h (TREE_SSA_SCCVN_H): Likewise.
18540 * tree-ssa-scopedtables.cc (add_expr_commutative): Likewise.
18541 (equal_mem_array_ref_p): Likewise.
18542 * tree-ssa-strlen.cc (is_strlen_related_p): Likewise.
18543 * tree-ssa-strlen.h (get_range_strlen_dynamic): Likewise.
18544 * tree-ssa-tail-merge.cc (stmt_local_def): Likewise.
18545 * tree-ssa-ter.h: Likewise.
18546 * tree-ssa-threadupdate.h (enum bb_dom_status): Likewise.
18547 * tree-streamer-in.cc (lto_input_ts_block_tree_pointers): Likewise.
18548 * tree-streamer-out.cc (pack_ts_block_value_fields): Likewise.
18549 (write_ts_block_tree_pointers): Likewise.
18550 * tree-streamer.h (struct streamer_tree_cache_d): Likewise.
18551 (streamer_read_tree_bitfields): Likewise.
18552 (streamer_write_integer_cst): Likewise.
18553 * tree-vect-patterns.cc (apply_binop_and_append_stmt): Likewise.
18554 (vect_synth_mult_by_constant): Likewise.
18555 * tree-vect-stmts.cc (vectorizable_operation): Likewise.
18556 * tree-vectorizer.cc: Likewise.
18557 * tree-vectorizer.h (class auto_purge_vect_location): Likewise.
18558 (vect_update_inits_of_drs): Likewise.
18559 (vect_get_mask_type_for_stmt): Likewise.
18560 (vect_rgroup_iv_might_wrap_p): Likewise.
18561 (cse_and_gimplify_to_preheader): Likewise.
18562 (vect_free_slp_tree): Likewise.
18563 (vect_pattern_recog): Likewise.
18564 (vect_stmt_dominates_stmt_p): Likewise.
18565 * tree.cc (initialize_tree_contains_struct): Likewise.
18566 (need_assembler_name_p): Likewise.
18567 (type_with_interoperable_signedness): Likewise.
18568 * tree.def (SWITCH_EXPR): Likewise.
18569 * tree.h (TYPE_SYMTAB_ADDRESS): Likewise.
18570 (poly_int_tree_p): Likewise.
18571 (inlined_function_outer_scope_p): Likewise.
18572 (tree_code_for_canonical_type_merging): Likewise.
18573 * value-prof.cc: Likewise.
18574 * value-prof.h (get_nth_most_common_value): Likewise.
18575 (find_func_by_profile_id): Likewise.
18576 * value-range.cc (vrp_operand_equal_p): Likewise.
18577 * value-range.h: Likewise.
18578 * var-tracking.cc: Likewise.
18579 * varasm.cc (default_function_section): Likewise.
18580 (function_section_1): Likewise.
18581 (assemble_variable): Likewise.
18582 (handle_vtv_comdat_section): Likewise.
18583 * vec.h (struct vec_prefix): Likewise.
18584 * vmsdbgout.cc (full_name): Likewise.
18585 * vtable-verify.cc: Likewise.
18586 * vtable-verify.h (struct vtv_graph_node): Likewise.
18587 * xcoffout.cc: Likewise.
18588 * xcoffout.h (DEBUG_SYMS_TEXT): Likewise.
18589
18590 2022-01-17 Martin Liska <mliska@suse.cz>
18591
18592 * adjust-alignment.c: Moved to...
18593 * adjust-alignment.cc: ...here.
18594 * alias.c: Moved to...
18595 * alias.cc: ...here.
18596 * alloc-pool.c: Moved to...
18597 * alloc-pool.cc: ...here.
18598 * asan.c: Moved to...
18599 * asan.cc: ...here.
18600 * attribs.c: Moved to...
18601 * attribs.cc: ...here.
18602 * auto-inc-dec.c: Moved to...
18603 * auto-inc-dec.cc: ...here.
18604 * auto-profile.c: Moved to...
18605 * auto-profile.cc: ...here.
18606 * bb-reorder.c: Moved to...
18607 * bb-reorder.cc: ...here.
18608 * bitmap.c: Moved to...
18609 * bitmap.cc: ...here.
18610 * btfout.c: Moved to...
18611 * btfout.cc: ...here.
18612 * builtins.c: Moved to...
18613 * builtins.cc: ...here.
18614 * caller-save.c: Moved to...
18615 * caller-save.cc: ...here.
18616 * calls.c: Moved to...
18617 * calls.cc: ...here.
18618 * ccmp.c: Moved to...
18619 * ccmp.cc: ...here.
18620 * cfg.c: Moved to...
18621 * cfg.cc: ...here.
18622 * cfganal.c: Moved to...
18623 * cfganal.cc: ...here.
18624 * cfgbuild.c: Moved to...
18625 * cfgbuild.cc: ...here.
18626 * cfgcleanup.c: Moved to...
18627 * cfgcleanup.cc: ...here.
18628 * cfgexpand.c: Moved to...
18629 * cfgexpand.cc: ...here.
18630 * cfghooks.c: Moved to...
18631 * cfghooks.cc: ...here.
18632 * cfgloop.c: Moved to...
18633 * cfgloop.cc: ...here.
18634 * cfgloopanal.c: Moved to...
18635 * cfgloopanal.cc: ...here.
18636 * cfgloopmanip.c: Moved to...
18637 * cfgloopmanip.cc: ...here.
18638 * cfgrtl.c: Moved to...
18639 * cfgrtl.cc: ...here.
18640 * cgraph.c: Moved to...
18641 * cgraph.cc: ...here.
18642 * cgraphbuild.c: Moved to...
18643 * cgraphbuild.cc: ...here.
18644 * cgraphclones.c: Moved to...
18645 * cgraphclones.cc: ...here.
18646 * cgraphunit.c: Moved to...
18647 * cgraphunit.cc: ...here.
18648 * collect-utils.c: Moved to...
18649 * collect-utils.cc: ...here.
18650 * collect2-aix.c: Moved to...
18651 * collect2-aix.cc: ...here.
18652 * collect2.c: Moved to...
18653 * collect2.cc: ...here.
18654 * combine-stack-adj.c: Moved to...
18655 * combine-stack-adj.cc: ...here.
18656 * combine.c: Moved to...
18657 * combine.cc: ...here.
18658 * common/common-targhooks.c: Moved to...
18659 * common/common-targhooks.cc: ...here.
18660 * common/config/aarch64/aarch64-common.c: Moved to...
18661 * common/config/aarch64/aarch64-common.cc: ...here.
18662 * common/config/alpha/alpha-common.c: Moved to...
18663 * common/config/alpha/alpha-common.cc: ...here.
18664 * common/config/arc/arc-common.c: Moved to...
18665 * common/config/arc/arc-common.cc: ...here.
18666 * common/config/arm/arm-common.c: Moved to...
18667 * common/config/arm/arm-common.cc: ...here.
18668 * common/config/avr/avr-common.c: Moved to...
18669 * common/config/avr/avr-common.cc: ...here.
18670 * common/config/bfin/bfin-common.c: Moved to...
18671 * common/config/bfin/bfin-common.cc: ...here.
18672 * common/config/bpf/bpf-common.c: Moved to...
18673 * common/config/bpf/bpf-common.cc: ...here.
18674 * common/config/c6x/c6x-common.c: Moved to...
18675 * common/config/c6x/c6x-common.cc: ...here.
18676 * common/config/cr16/cr16-common.c: Moved to...
18677 * common/config/cr16/cr16-common.cc: ...here.
18678 * common/config/cris/cris-common.c: Moved to...
18679 * common/config/cris/cris-common.cc: ...here.
18680 * common/config/csky/csky-common.c: Moved to...
18681 * common/config/csky/csky-common.cc: ...here.
18682 * common/config/default-common.c: Moved to...
18683 * common/config/default-common.cc: ...here.
18684 * common/config/epiphany/epiphany-common.c: Moved to...
18685 * common/config/epiphany/epiphany-common.cc: ...here.
18686 * common/config/fr30/fr30-common.c: Moved to...
18687 * common/config/fr30/fr30-common.cc: ...here.
18688 * common/config/frv/frv-common.c: Moved to...
18689 * common/config/frv/frv-common.cc: ...here.
18690 * common/config/gcn/gcn-common.c: Moved to...
18691 * common/config/gcn/gcn-common.cc: ...here.
18692 * common/config/h8300/h8300-common.c: Moved to...
18693 * common/config/h8300/h8300-common.cc: ...here.
18694 * common/config/i386/i386-common.c: Moved to...
18695 * common/config/i386/i386-common.cc: ...here.
18696 * common/config/ia64/ia64-common.c: Moved to...
18697 * common/config/ia64/ia64-common.cc: ...here.
18698 * common/config/iq2000/iq2000-common.c: Moved to...
18699 * common/config/iq2000/iq2000-common.cc: ...here.
18700 * common/config/lm32/lm32-common.c: Moved to...
18701 * common/config/lm32/lm32-common.cc: ...here.
18702 * common/config/m32r/m32r-common.c: Moved to...
18703 * common/config/m32r/m32r-common.cc: ...here.
18704 * common/config/m68k/m68k-common.c: Moved to...
18705 * common/config/m68k/m68k-common.cc: ...here.
18706 * common/config/mcore/mcore-common.c: Moved to...
18707 * common/config/mcore/mcore-common.cc: ...here.
18708 * common/config/microblaze/microblaze-common.c: Moved to...
18709 * common/config/microblaze/microblaze-common.cc: ...here.
18710 * common/config/mips/mips-common.c: Moved to...
18711 * common/config/mips/mips-common.cc: ...here.
18712 * common/config/mmix/mmix-common.c: Moved to...
18713 * common/config/mmix/mmix-common.cc: ...here.
18714 * common/config/mn10300/mn10300-common.c: Moved to...
18715 * common/config/mn10300/mn10300-common.cc: ...here.
18716 * common/config/msp430/msp430-common.c: Moved to...
18717 * common/config/msp430/msp430-common.cc: ...here.
18718 * common/config/nds32/nds32-common.c: Moved to...
18719 * common/config/nds32/nds32-common.cc: ...here.
18720 * common/config/nios2/nios2-common.c: Moved to...
18721 * common/config/nios2/nios2-common.cc: ...here.
18722 * common/config/nvptx/nvptx-common.c: Moved to...
18723 * common/config/nvptx/nvptx-common.cc: ...here.
18724 * common/config/or1k/or1k-common.c: Moved to...
18725 * common/config/or1k/or1k-common.cc: ...here.
18726 * common/config/pa/pa-common.c: Moved to...
18727 * common/config/pa/pa-common.cc: ...here.
18728 * common/config/pdp11/pdp11-common.c: Moved to...
18729 * common/config/pdp11/pdp11-common.cc: ...here.
18730 * common/config/pru/pru-common.c: Moved to...
18731 * common/config/pru/pru-common.cc: ...here.
18732 * common/config/riscv/riscv-common.c: Moved to...
18733 * common/config/riscv/riscv-common.cc: ...here.
18734 * common/config/rs6000/rs6000-common.c: Moved to...
18735 * common/config/rs6000/rs6000-common.cc: ...here.
18736 * common/config/rx/rx-common.c: Moved to...
18737 * common/config/rx/rx-common.cc: ...here.
18738 * common/config/s390/s390-common.c: Moved to...
18739 * common/config/s390/s390-common.cc: ...here.
18740 * common/config/sh/sh-common.c: Moved to...
18741 * common/config/sh/sh-common.cc: ...here.
18742 * common/config/sparc/sparc-common.c: Moved to...
18743 * common/config/sparc/sparc-common.cc: ...here.
18744 * common/config/tilegx/tilegx-common.c: Moved to...
18745 * common/config/tilegx/tilegx-common.cc: ...here.
18746 * common/config/tilepro/tilepro-common.c: Moved to...
18747 * common/config/tilepro/tilepro-common.cc: ...here.
18748 * common/config/v850/v850-common.c: Moved to...
18749 * common/config/v850/v850-common.cc: ...here.
18750 * common/config/vax/vax-common.c: Moved to...
18751 * common/config/vax/vax-common.cc: ...here.
18752 * common/config/visium/visium-common.c: Moved to...
18753 * common/config/visium/visium-common.cc: ...here.
18754 * common/config/xstormy16/xstormy16-common.c: Moved to...
18755 * common/config/xstormy16/xstormy16-common.cc: ...here.
18756 * common/config/xtensa/xtensa-common.c: Moved to...
18757 * common/config/xtensa/xtensa-common.cc: ...here.
18758 * compare-elim.c: Moved to...
18759 * compare-elim.cc: ...here.
18760 * config/aarch64/aarch64-bti-insert.c: Moved to...
18761 * config/aarch64/aarch64-bti-insert.cc: ...here.
18762 * config/aarch64/aarch64-builtins.c: Moved to...
18763 * config/aarch64/aarch64-builtins.cc: ...here.
18764 * config/aarch64/aarch64-c.c: Moved to...
18765 * config/aarch64/aarch64-c.cc: ...here.
18766 * config/aarch64/aarch64-d.c: Moved to...
18767 * config/aarch64/aarch64-d.cc: ...here.
18768 * config/aarch64/aarch64.c: Moved to...
18769 * config/aarch64/aarch64.cc: ...here.
18770 * config/aarch64/cortex-a57-fma-steering.c: Moved to...
18771 * config/aarch64/cortex-a57-fma-steering.cc: ...here.
18772 * config/aarch64/driver-aarch64.c: Moved to...
18773 * config/aarch64/driver-aarch64.cc: ...here.
18774 * config/aarch64/falkor-tag-collision-avoidance.c: Moved to...
18775 * config/aarch64/falkor-tag-collision-avoidance.cc: ...here.
18776 * config/aarch64/host-aarch64-darwin.c: Moved to...
18777 * config/aarch64/host-aarch64-darwin.cc: ...here.
18778 * config/alpha/alpha.c: Moved to...
18779 * config/alpha/alpha.cc: ...here.
18780 * config/alpha/driver-alpha.c: Moved to...
18781 * config/alpha/driver-alpha.cc: ...here.
18782 * config/arc/arc-c.c: Moved to...
18783 * config/arc/arc-c.cc: ...here.
18784 * config/arc/arc.c: Moved to...
18785 * config/arc/arc.cc: ...here.
18786 * config/arc/driver-arc.c: Moved to...
18787 * config/arc/driver-arc.cc: ...here.
18788 * config/arm/aarch-common.c: Moved to...
18789 * config/arm/aarch-common.cc: ...here.
18790 * config/arm/arm-builtins.c: Moved to...
18791 * config/arm/arm-builtins.cc: ...here.
18792 * config/arm/arm-c.c: Moved to...
18793 * config/arm/arm-c.cc: ...here.
18794 * config/arm/arm-d.c: Moved to...
18795 * config/arm/arm-d.cc: ...here.
18796 * config/arm/arm.c: Moved to...
18797 * config/arm/arm.cc: ...here.
18798 * config/arm/driver-arm.c: Moved to...
18799 * config/arm/driver-arm.cc: ...here.
18800 * config/avr/avr-c.c: Moved to...
18801 * config/avr/avr-c.cc: ...here.
18802 * config/avr/avr-devices.c: Moved to...
18803 * config/avr/avr-devices.cc: ...here.
18804 * config/avr/avr-log.c: Moved to...
18805 * config/avr/avr-log.cc: ...here.
18806 * config/avr/avr.c: Moved to...
18807 * config/avr/avr.cc: ...here.
18808 * config/avr/driver-avr.c: Moved to...
18809 * config/avr/driver-avr.cc: ...here.
18810 * config/avr/gen-avr-mmcu-specs.c: Moved to...
18811 * config/avr/gen-avr-mmcu-specs.cc: ...here.
18812 * config/avr/gen-avr-mmcu-texi.c: Moved to...
18813 * config/avr/gen-avr-mmcu-texi.cc: ...here.
18814 * config/bfin/bfin.c: Moved to...
18815 * config/bfin/bfin.cc: ...here.
18816 * config/bpf/bpf.c: Moved to...
18817 * config/bpf/bpf.cc: ...here.
18818 * config/bpf/coreout.c: Moved to...
18819 * config/bpf/coreout.cc: ...here.
18820 * config/c6x/c6x.c: Moved to...
18821 * config/c6x/c6x.cc: ...here.
18822 * config/cr16/cr16.c: Moved to...
18823 * config/cr16/cr16.cc: ...here.
18824 * config/cris/cris.c: Moved to...
18825 * config/cris/cris.cc: ...here.
18826 * config/csky/csky.c: Moved to...
18827 * config/csky/csky.cc: ...here.
18828 * config/darwin-c.c: Moved to...
18829 * config/darwin-c.cc: ...here.
18830 * config/darwin-d.c: Moved to...
18831 * config/darwin-d.cc: ...here.
18832 * config/darwin-driver.c: Moved to...
18833 * config/darwin-driver.cc: ...here.
18834 * config/darwin-f.c: Moved to...
18835 * config/darwin-f.cc: ...here.
18836 * config/darwin.c: Moved to...
18837 * config/darwin.cc: ...here.
18838 * config/default-c.c: Moved to...
18839 * config/default-c.cc: ...here.
18840 * config/default-d.c: Moved to...
18841 * config/default-d.cc: ...here.
18842 * config/dragonfly-d.c: Moved to...
18843 * config/dragonfly-d.cc: ...here.
18844 * config/epiphany/epiphany.c: Moved to...
18845 * config/epiphany/epiphany.cc: ...here.
18846 * config/epiphany/mode-switch-use.c: Moved to...
18847 * config/epiphany/mode-switch-use.cc: ...here.
18848 * config/epiphany/resolve-sw-modes.c: Moved to...
18849 * config/epiphany/resolve-sw-modes.cc: ...here.
18850 * config/fr30/fr30.c: Moved to...
18851 * config/fr30/fr30.cc: ...here.
18852 * config/freebsd-d.c: Moved to...
18853 * config/freebsd-d.cc: ...here.
18854 * config/frv/frv.c: Moved to...
18855 * config/frv/frv.cc: ...here.
18856 * config/ft32/ft32.c: Moved to...
18857 * config/ft32/ft32.cc: ...here.
18858 * config/gcn/driver-gcn.c: Moved to...
18859 * config/gcn/driver-gcn.cc: ...here.
18860 * config/gcn/gcn-run.c: Moved to...
18861 * config/gcn/gcn-run.cc: ...here.
18862 * config/gcn/gcn-tree.c: Moved to...
18863 * config/gcn/gcn-tree.cc: ...here.
18864 * config/gcn/gcn.c: Moved to...
18865 * config/gcn/gcn.cc: ...here.
18866 * config/gcn/mkoffload.c: Moved to...
18867 * config/gcn/mkoffload.cc: ...here.
18868 * config/glibc-c.c: Moved to...
18869 * config/glibc-c.cc: ...here.
18870 * config/glibc-d.c: Moved to...
18871 * config/glibc-d.cc: ...here.
18872 * config/h8300/h8300.c: Moved to...
18873 * config/h8300/h8300.cc: ...here.
18874 * config/host-darwin.c: Moved to...
18875 * config/host-darwin.cc: ...here.
18876 * config/host-hpux.c: Moved to...
18877 * config/host-hpux.cc: ...here.
18878 * config/host-linux.c: Moved to...
18879 * config/host-linux.cc: ...here.
18880 * config/host-netbsd.c: Moved to...
18881 * config/host-netbsd.cc: ...here.
18882 * config/host-openbsd.c: Moved to...
18883 * config/host-openbsd.cc: ...here.
18884 * config/host-solaris.c: Moved to...
18885 * config/host-solaris.cc: ...here.
18886 * config/i386/djgpp.c: Moved to...
18887 * config/i386/djgpp.cc: ...here.
18888 * config/i386/driver-i386.c: Moved to...
18889 * config/i386/driver-i386.cc: ...here.
18890 * config/i386/driver-mingw32.c: Moved to...
18891 * config/i386/driver-mingw32.cc: ...here.
18892 * config/i386/gnu-property.c: Moved to...
18893 * config/i386/gnu-property.cc: ...here.
18894 * config/i386/host-cygwin.c: Moved to...
18895 * config/i386/host-cygwin.cc: ...here.
18896 * config/i386/host-i386-darwin.c: Moved to...
18897 * config/i386/host-i386-darwin.cc: ...here.
18898 * config/i386/host-mingw32.c: Moved to...
18899 * config/i386/host-mingw32.cc: ...here.
18900 * config/i386/i386-builtins.c: Moved to...
18901 * config/i386/i386-builtins.cc: ...here.
18902 * config/i386/i386-c.c: Moved to...
18903 * config/i386/i386-c.cc: ...here.
18904 * config/i386/i386-d.c: Moved to...
18905 * config/i386/i386-d.cc: ...here.
18906 * config/i386/i386-expand.c: Moved to...
18907 * config/i386/i386-expand.cc: ...here.
18908 * config/i386/i386-features.c: Moved to...
18909 * config/i386/i386-features.cc: ...here.
18910 * config/i386/i386-options.c: Moved to...
18911 * config/i386/i386-options.cc: ...here.
18912 * config/i386/i386.c: Moved to...
18913 * config/i386/i386.cc: ...here.
18914 * config/i386/intelmic-mkoffload.c: Moved to...
18915 * config/i386/intelmic-mkoffload.cc: ...here.
18916 * config/i386/msformat-c.c: Moved to...
18917 * config/i386/msformat-c.cc: ...here.
18918 * config/i386/winnt-cxx.c: Moved to...
18919 * config/i386/winnt-cxx.cc: ...here.
18920 * config/i386/winnt-d.c: Moved to...
18921 * config/i386/winnt-d.cc: ...here.
18922 * config/i386/winnt-stubs.c: Moved to...
18923 * config/i386/winnt-stubs.cc: ...here.
18924 * config/i386/winnt.c: Moved to...
18925 * config/i386/winnt.cc: ...here.
18926 * config/i386/x86-tune-sched-atom.c: Moved to...
18927 * config/i386/x86-tune-sched-atom.cc: ...here.
18928 * config/i386/x86-tune-sched-bd.c: Moved to...
18929 * config/i386/x86-tune-sched-bd.cc: ...here.
18930 * config/i386/x86-tune-sched-core.c: Moved to...
18931 * config/i386/x86-tune-sched-core.cc: ...here.
18932 * config/i386/x86-tune-sched.c: Moved to...
18933 * config/i386/x86-tune-sched.cc: ...here.
18934 * config/ia64/ia64-c.c: Moved to...
18935 * config/ia64/ia64-c.cc: ...here.
18936 * config/ia64/ia64.c: Moved to...
18937 * config/ia64/ia64.cc: ...here.
18938 * config/iq2000/iq2000.c: Moved to...
18939 * config/iq2000/iq2000.cc: ...here.
18940 * config/linux.c: Moved to...
18941 * config/linux.cc: ...here.
18942 * config/lm32/lm32.c: Moved to...
18943 * config/lm32/lm32.cc: ...here.
18944 * config/m32c/m32c-pragma.c: Moved to...
18945 * config/m32c/m32c-pragma.cc: ...here.
18946 * config/m32c/m32c.c: Moved to...
18947 * config/m32c/m32c.cc: ...here.
18948 * config/m32r/m32r.c: Moved to...
18949 * config/m32r/m32r.cc: ...here.
18950 * config/m68k/m68k.c: Moved to...
18951 * config/m68k/m68k.cc: ...here.
18952 * config/mcore/mcore.c: Moved to...
18953 * config/mcore/mcore.cc: ...here.
18954 * config/microblaze/microblaze-c.c: Moved to...
18955 * config/microblaze/microblaze-c.cc: ...here.
18956 * config/microblaze/microblaze.c: Moved to...
18957 * config/microblaze/microblaze.cc: ...here.
18958 * config/mips/driver-native.c: Moved to...
18959 * config/mips/driver-native.cc: ...here.
18960 * config/mips/frame-header-opt.c: Moved to...
18961 * config/mips/frame-header-opt.cc: ...here.
18962 * config/mips/mips-d.c: Moved to...
18963 * config/mips/mips-d.cc: ...here.
18964 * config/mips/mips.c: Moved to...
18965 * config/mips/mips.cc: ...here.
18966 * config/mmix/mmix.c: Moved to...
18967 * config/mmix/mmix.cc: ...here.
18968 * config/mn10300/mn10300.c: Moved to...
18969 * config/mn10300/mn10300.cc: ...here.
18970 * config/moxie/moxie.c: Moved to...
18971 * config/moxie/moxie.cc: ...here.
18972 * config/msp430/driver-msp430.c: Moved to...
18973 * config/msp430/driver-msp430.cc: ...here.
18974 * config/msp430/msp430-c.c: Moved to...
18975 * config/msp430/msp430-c.cc: ...here.
18976 * config/msp430/msp430-devices.c: Moved to...
18977 * config/msp430/msp430-devices.cc: ...here.
18978 * config/msp430/msp430.c: Moved to...
18979 * config/msp430/msp430.cc: ...here.
18980 * config/nds32/nds32-cost.c: Moved to...
18981 * config/nds32/nds32-cost.cc: ...here.
18982 * config/nds32/nds32-fp-as-gp.c: Moved to...
18983 * config/nds32/nds32-fp-as-gp.cc: ...here.
18984 * config/nds32/nds32-intrinsic.c: Moved to...
18985 * config/nds32/nds32-intrinsic.cc: ...here.
18986 * config/nds32/nds32-isr.c: Moved to...
18987 * config/nds32/nds32-isr.cc: ...here.
18988 * config/nds32/nds32-md-auxiliary.c: Moved to...
18989 * config/nds32/nds32-md-auxiliary.cc: ...here.
18990 * config/nds32/nds32-memory-manipulation.c: Moved to...
18991 * config/nds32/nds32-memory-manipulation.cc: ...here.
18992 * config/nds32/nds32-pipelines-auxiliary.c: Moved to...
18993 * config/nds32/nds32-pipelines-auxiliary.cc: ...here.
18994 * config/nds32/nds32-predicates.c: Moved to...
18995 * config/nds32/nds32-predicates.cc: ...here.
18996 * config/nds32/nds32-relax-opt.c: Moved to...
18997 * config/nds32/nds32-relax-opt.cc: ...here.
18998 * config/nds32/nds32-utils.c: Moved to...
18999 * config/nds32/nds32-utils.cc: ...here.
19000 * config/nds32/nds32.c: Moved to...
19001 * config/nds32/nds32.cc: ...here.
19002 * config/netbsd-d.c: Moved to...
19003 * config/netbsd-d.cc: ...here.
19004 * config/netbsd.c: Moved to...
19005 * config/netbsd.cc: ...here.
19006 * config/nios2/nios2.c: Moved to...
19007 * config/nios2/nios2.cc: ...here.
19008 * config/nvptx/mkoffload.c: Moved to...
19009 * config/nvptx/mkoffload.cc: ...here.
19010 * config/nvptx/nvptx-c.c: Moved to...
19011 * config/nvptx/nvptx-c.cc: ...here.
19012 * config/nvptx/nvptx.c: Moved to...
19013 * config/nvptx/nvptx.cc: ...here.
19014 * config/openbsd-d.c: Moved to...
19015 * config/openbsd-d.cc: ...here.
19016 * config/or1k/or1k.c: Moved to...
19017 * config/or1k/or1k.cc: ...here.
19018 * config/pa/pa-d.c: Moved to...
19019 * config/pa/pa-d.cc: ...here.
19020 * config/pa/pa.c: Moved to...
19021 * config/pa/pa.cc: ...here.
19022 * config/pdp11/pdp11.c: Moved to...
19023 * config/pdp11/pdp11.cc: ...here.
19024 * config/pru/pru-passes.c: Moved to...
19025 * config/pru/pru-passes.cc: ...here.
19026 * config/pru/pru-pragma.c: Moved to...
19027 * config/pru/pru-pragma.cc: ...here.
19028 * config/pru/pru.c: Moved to...
19029 * config/pru/pru.cc: ...here.
19030 * config/riscv/riscv-builtins.c: Moved to...
19031 * config/riscv/riscv-builtins.cc: ...here.
19032 * config/riscv/riscv-c.c: Moved to...
19033 * config/riscv/riscv-c.cc: ...here.
19034 * config/riscv/riscv-d.c: Moved to...
19035 * config/riscv/riscv-d.cc: ...here.
19036 * config/riscv/riscv-shorten-memrefs.c: Moved to...
19037 * config/riscv/riscv-shorten-memrefs.cc: ...here.
19038 * config/riscv/riscv-sr.c: Moved to...
19039 * config/riscv/riscv-sr.cc: ...here.
19040 * config/riscv/riscv.c: Moved to...
19041 * config/riscv/riscv.cc: ...here.
19042 * config/rl78/rl78-c.c: Moved to...
19043 * config/rl78/rl78-c.cc: ...here.
19044 * config/rl78/rl78.c: Moved to...
19045 * config/rl78/rl78.cc: ...here.
19046 * config/rs6000/driver-rs6000.c: Moved to...
19047 * config/rs6000/driver-rs6000.cc: ...here.
19048 * config/rs6000/host-darwin.c: Moved to...
19049 * config/rs6000/host-darwin.cc: ...here.
19050 * config/rs6000/host-ppc64-darwin.c: Moved to...
19051 * config/rs6000/host-ppc64-darwin.cc: ...here.
19052 * config/rs6000/rbtree.c: Moved to...
19053 * config/rs6000/rbtree.cc: ...here.
19054 * config/rs6000/rs6000-c.c: Moved to...
19055 * config/rs6000/rs6000-c.cc: ...here.
19056 * config/rs6000/rs6000-call.c: Moved to...
19057 * config/rs6000/rs6000-call.cc: ...here.
19058 * config/rs6000/rs6000-d.c: Moved to...
19059 * config/rs6000/rs6000-d.cc: ...here.
19060 * config/rs6000/rs6000-gen-builtins.c: Moved to...
19061 * config/rs6000/rs6000-gen-builtins.cc: ...here.
19062 * config/rs6000/rs6000-linux.c: Moved to...
19063 * config/rs6000/rs6000-linux.cc: ...here.
19064 * config/rs6000/rs6000-logue.c: Moved to...
19065 * config/rs6000/rs6000-logue.cc: ...here.
19066 * config/rs6000/rs6000-p8swap.c: Moved to...
19067 * config/rs6000/rs6000-p8swap.cc: ...here.
19068 * config/rs6000/rs6000-pcrel-opt.c: Moved to...
19069 * config/rs6000/rs6000-pcrel-opt.cc: ...here.
19070 * config/rs6000/rs6000-string.c: Moved to...
19071 * config/rs6000/rs6000-string.cc: ...here.
19072 * config/rs6000/rs6000.c: Moved to...
19073 * config/rs6000/rs6000.cc: ...here.
19074 * config/rx/rx.c: Moved to...
19075 * config/rx/rx.cc: ...here.
19076 * config/s390/driver-native.c: Moved to...
19077 * config/s390/driver-native.cc: ...here.
19078 * config/s390/s390-c.c: Moved to...
19079 * config/s390/s390-c.cc: ...here.
19080 * config/s390/s390-d.c: Moved to...
19081 * config/s390/s390-d.cc: ...here.
19082 * config/s390/s390.c: Moved to...
19083 * config/s390/s390.cc: ...here.
19084 * config/sh/divtab-sh4-300.c: Moved to...
19085 * config/sh/divtab-sh4-300.cc: ...here.
19086 * config/sh/divtab-sh4.c: Moved to...
19087 * config/sh/divtab-sh4.cc: ...here.
19088 * config/sh/divtab.c: Moved to...
19089 * config/sh/divtab.cc: ...here.
19090 * config/sh/sh-c.c: Moved to...
19091 * config/sh/sh-c.cc: ...here.
19092 * config/sh/sh.c: Moved to...
19093 * config/sh/sh.cc: ...here.
19094 * config/sol2-c.c: Moved to...
19095 * config/sol2-c.cc: ...here.
19096 * config/sol2-cxx.c: Moved to...
19097 * config/sol2-cxx.cc: ...here.
19098 * config/sol2-d.c: Moved to...
19099 * config/sol2-d.cc: ...here.
19100 * config/sol2-stubs.c: Moved to...
19101 * config/sol2-stubs.cc: ...here.
19102 * config/sol2.c: Moved to...
19103 * config/sol2.cc: ...here.
19104 * config/sparc/driver-sparc.c: Moved to...
19105 * config/sparc/driver-sparc.cc: ...here.
19106 * config/sparc/sparc-c.c: Moved to...
19107 * config/sparc/sparc-c.cc: ...here.
19108 * config/sparc/sparc-d.c: Moved to...
19109 * config/sparc/sparc-d.cc: ...here.
19110 * config/sparc/sparc.c: Moved to...
19111 * config/sparc/sparc.cc: ...here.
19112 * config/stormy16/stormy16.c: Moved to...
19113 * config/stormy16/stormy16.cc: ...here.
19114 * config/tilegx/mul-tables.c: Moved to...
19115 * config/tilegx/mul-tables.cc: ...here.
19116 * config/tilegx/tilegx-c.c: Moved to...
19117 * config/tilegx/tilegx-c.cc: ...here.
19118 * config/tilegx/tilegx.c: Moved to...
19119 * config/tilegx/tilegx.cc: ...here.
19120 * config/tilepro/mul-tables.c: Moved to...
19121 * config/tilepro/mul-tables.cc: ...here.
19122 * config/tilepro/tilepro-c.c: Moved to...
19123 * config/tilepro/tilepro-c.cc: ...here.
19124 * config/tilepro/tilepro.c: Moved to...
19125 * config/tilepro/tilepro.cc: ...here.
19126 * config/v850/v850-c.c: Moved to...
19127 * config/v850/v850-c.cc: ...here.
19128 * config/v850/v850.c: Moved to...
19129 * config/v850/v850.cc: ...here.
19130 * config/vax/vax.c: Moved to...
19131 * config/vax/vax.cc: ...here.
19132 * config/visium/visium.c: Moved to...
19133 * config/visium/visium.cc: ...here.
19134 * config/vms/vms-c.c: Moved to...
19135 * config/vms/vms-c.cc: ...here.
19136 * config/vms/vms-f.c: Moved to...
19137 * config/vms/vms-f.cc: ...here.
19138 * config/vms/vms.c: Moved to...
19139 * config/vms/vms.cc: ...here.
19140 * config/vxworks-c.c: Moved to...
19141 * config/vxworks-c.cc: ...here.
19142 * config/vxworks.c: Moved to...
19143 * config/vxworks.cc: ...here.
19144 * config/winnt-c.c: Moved to...
19145 * config/winnt-c.cc: ...here.
19146 * config/xtensa/xtensa.c: Moved to...
19147 * config/xtensa/xtensa.cc: ...here.
19148 * context.c: Moved to...
19149 * context.cc: ...here.
19150 * convert.c: Moved to...
19151 * convert.cc: ...here.
19152 * coverage.c: Moved to...
19153 * coverage.cc: ...here.
19154 * cppbuiltin.c: Moved to...
19155 * cppbuiltin.cc: ...here.
19156 * cppdefault.c: Moved to...
19157 * cppdefault.cc: ...here.
19158 * cprop.c: Moved to...
19159 * cprop.cc: ...here.
19160 * cse.c: Moved to...
19161 * cse.cc: ...here.
19162 * cselib.c: Moved to...
19163 * cselib.cc: ...here.
19164 * ctfc.c: Moved to...
19165 * ctfc.cc: ...here.
19166 * ctfout.c: Moved to...
19167 * ctfout.cc: ...here.
19168 * data-streamer-in.c: Moved to...
19169 * data-streamer-in.cc: ...here.
19170 * data-streamer-out.c: Moved to...
19171 * data-streamer-out.cc: ...here.
19172 * data-streamer.c: Moved to...
19173 * data-streamer.cc: ...here.
19174 * dbgcnt.c: Moved to...
19175 * dbgcnt.cc: ...here.
19176 * dbxout.c: Moved to...
19177 * dbxout.cc: ...here.
19178 * dce.c: Moved to...
19179 * dce.cc: ...here.
19180 * ddg.c: Moved to...
19181 * ddg.cc: ...here.
19182 * debug.c: Moved to...
19183 * debug.cc: ...here.
19184 * df-core.c: Moved to...
19185 * df-core.cc: ...here.
19186 * df-problems.c: Moved to...
19187 * df-problems.cc: ...here.
19188 * df-scan.c: Moved to...
19189 * df-scan.cc: ...here.
19190 * dfp.c: Moved to...
19191 * dfp.cc: ...here.
19192 * diagnostic-color.c: Moved to...
19193 * diagnostic-color.cc: ...here.
19194 * diagnostic-show-locus.c: Moved to...
19195 * diagnostic-show-locus.cc: ...here.
19196 * diagnostic-spec.c: Moved to...
19197 * diagnostic-spec.cc: ...here.
19198 * diagnostic.c: Moved to...
19199 * diagnostic.cc: ...here.
19200 * dojump.c: Moved to...
19201 * dojump.cc: ...here.
19202 * dominance.c: Moved to...
19203 * dominance.cc: ...here.
19204 * domwalk.c: Moved to...
19205 * domwalk.cc: ...here.
19206 * double-int.c: Moved to...
19207 * double-int.cc: ...here.
19208 * dse.c: Moved to...
19209 * dse.cc: ...here.
19210 * dumpfile.c: Moved to...
19211 * dumpfile.cc: ...here.
19212 * dwarf2asm.c: Moved to...
19213 * dwarf2asm.cc: ...here.
19214 * dwarf2cfi.c: Moved to...
19215 * dwarf2cfi.cc: ...here.
19216 * dwarf2ctf.c: Moved to...
19217 * dwarf2ctf.cc: ...here.
19218 * dwarf2out.c: Moved to...
19219 * dwarf2out.cc: ...here.
19220 * early-remat.c: Moved to...
19221 * early-remat.cc: ...here.
19222 * edit-context.c: Moved to...
19223 * edit-context.cc: ...here.
19224 * emit-rtl.c: Moved to...
19225 * emit-rtl.cc: ...here.
19226 * errors.c: Moved to...
19227 * errors.cc: ...here.
19228 * et-forest.c: Moved to...
19229 * et-forest.cc: ...here.
19230 * except.c: Moved to...
19231 * except.cc: ...here.
19232 * explow.c: Moved to...
19233 * explow.cc: ...here.
19234 * expmed.c: Moved to...
19235 * expmed.cc: ...here.
19236 * expr.c: Moved to...
19237 * expr.cc: ...here.
19238 * fibonacci_heap.c: Moved to...
19239 * fibonacci_heap.cc: ...here.
19240 * file-find.c: Moved to...
19241 * file-find.cc: ...here.
19242 * file-prefix-map.c: Moved to...
19243 * file-prefix-map.cc: ...here.
19244 * final.c: Moved to...
19245 * final.cc: ...here.
19246 * fixed-value.c: Moved to...
19247 * fixed-value.cc: ...here.
19248 * fold-const-call.c: Moved to...
19249 * fold-const-call.cc: ...here.
19250 * fold-const.c: Moved to...
19251 * fold-const.cc: ...here.
19252 * fp-test.c: Moved to...
19253 * fp-test.cc: ...here.
19254 * function-tests.c: Moved to...
19255 * function-tests.cc: ...here.
19256 * function.c: Moved to...
19257 * function.cc: ...here.
19258 * fwprop.c: Moved to...
19259 * fwprop.cc: ...here.
19260 * gcc-ar.c: Moved to...
19261 * gcc-ar.cc: ...here.
19262 * gcc-main.c: Moved to...
19263 * gcc-main.cc: ...here.
19264 * gcc-rich-location.c: Moved to...
19265 * gcc-rich-location.cc: ...here.
19266 * gcc.c: Moved to...
19267 * gcc.cc: ...here.
19268 * gcov-dump.c: Moved to...
19269 * gcov-dump.cc: ...here.
19270 * gcov-io.c: Moved to...
19271 * gcov-io.cc: ...here.
19272 * gcov-tool.c: Moved to...
19273 * gcov-tool.cc: ...here.
19274 * gcov.c: Moved to...
19275 * gcov.cc: ...here.
19276 * gcse-common.c: Moved to...
19277 * gcse-common.cc: ...here.
19278 * gcse.c: Moved to...
19279 * gcse.cc: ...here.
19280 * genattr-common.c: Moved to...
19281 * genattr-common.cc: ...here.
19282 * genattr.c: Moved to...
19283 * genattr.cc: ...here.
19284 * genattrtab.c: Moved to...
19285 * genattrtab.cc: ...here.
19286 * genautomata.c: Moved to...
19287 * genautomata.cc: ...here.
19288 * gencfn-macros.c: Moved to...
19289 * gencfn-macros.cc: ...here.
19290 * gencheck.c: Moved to...
19291 * gencheck.cc: ...here.
19292 * genchecksum.c: Moved to...
19293 * genchecksum.cc: ...here.
19294 * gencodes.c: Moved to...
19295 * gencodes.cc: ...here.
19296 * genconditions.c: Moved to...
19297 * genconditions.cc: ...here.
19298 * genconfig.c: Moved to...
19299 * genconfig.cc: ...here.
19300 * genconstants.c: Moved to...
19301 * genconstants.cc: ...here.
19302 * genemit.c: Moved to...
19303 * genemit.cc: ...here.
19304 * genenums.c: Moved to...
19305 * genenums.cc: ...here.
19306 * generic-match-head.c: Moved to...
19307 * generic-match-head.cc: ...here.
19308 * genextract.c: Moved to...
19309 * genextract.cc: ...here.
19310 * genflags.c: Moved to...
19311 * genflags.cc: ...here.
19312 * gengenrtl.c: Moved to...
19313 * gengenrtl.cc: ...here.
19314 * gengtype-parse.c: Moved to...
19315 * gengtype-parse.cc: ...here.
19316 * gengtype-state.c: Moved to...
19317 * gengtype-state.cc: ...here.
19318 * gengtype.c: Moved to...
19319 * gengtype.cc: ...here.
19320 * genhooks.c: Moved to...
19321 * genhooks.cc: ...here.
19322 * genmatch.c: Moved to...
19323 * genmatch.cc: ...here.
19324 * genmddeps.c: Moved to...
19325 * genmddeps.cc: ...here.
19326 * genmddump.c: Moved to...
19327 * genmddump.cc: ...here.
19328 * genmodes.c: Moved to...
19329 * genmodes.cc: ...here.
19330 * genopinit.c: Moved to...
19331 * genopinit.cc: ...here.
19332 * genoutput.c: Moved to...
19333 * genoutput.cc: ...here.
19334 * genpeep.c: Moved to...
19335 * genpeep.cc: ...here.
19336 * genpreds.c: Moved to...
19337 * genpreds.cc: ...here.
19338 * genrecog.c: Moved to...
19339 * genrecog.cc: ...here.
19340 * gensupport.c: Moved to...
19341 * gensupport.cc: ...here.
19342 * gentarget-def.c: Moved to...
19343 * gentarget-def.cc: ...here.
19344 * genversion.c: Moved to...
19345 * genversion.cc: ...here.
19346 * ggc-common.c: Moved to...
19347 * ggc-common.cc: ...here.
19348 * ggc-none.c: Moved to...
19349 * ggc-none.cc: ...here.
19350 * ggc-page.c: Moved to...
19351 * ggc-page.cc: ...here.
19352 * ggc-tests.c: Moved to...
19353 * ggc-tests.cc: ...here.
19354 * gimple-builder.c: Moved to...
19355 * gimple-builder.cc: ...here.
19356 * gimple-expr.c: Moved to...
19357 * gimple-expr.cc: ...here.
19358 * gimple-fold.c: Moved to...
19359 * gimple-fold.cc: ...here.
19360 * gimple-iterator.c: Moved to...
19361 * gimple-iterator.cc: ...here.
19362 * gimple-laddress.c: Moved to...
19363 * gimple-laddress.cc: ...here.
19364 * gimple-loop-jam.c: Moved to...
19365 * gimple-loop-jam.cc: ...here.
19366 * gimple-low.c: Moved to...
19367 * gimple-low.cc: ...here.
19368 * gimple-match-head.c: Moved to...
19369 * gimple-match-head.cc: ...here.
19370 * gimple-pretty-print.c: Moved to...
19371 * gimple-pretty-print.cc: ...here.
19372 * gimple-ssa-backprop.c: Moved to...
19373 * gimple-ssa-backprop.cc: ...here.
19374 * gimple-ssa-evrp-analyze.c: Moved to...
19375 * gimple-ssa-evrp-analyze.cc: ...here.
19376 * gimple-ssa-evrp.c: Moved to...
19377 * gimple-ssa-evrp.cc: ...here.
19378 * gimple-ssa-isolate-paths.c: Moved to...
19379 * gimple-ssa-isolate-paths.cc: ...here.
19380 * gimple-ssa-nonnull-compare.c: Moved to...
19381 * gimple-ssa-nonnull-compare.cc: ...here.
19382 * gimple-ssa-split-paths.c: Moved to...
19383 * gimple-ssa-split-paths.cc: ...here.
19384 * gimple-ssa-sprintf.c: Moved to...
19385 * gimple-ssa-sprintf.cc: ...here.
19386 * gimple-ssa-store-merging.c: Moved to...
19387 * gimple-ssa-store-merging.cc: ...here.
19388 * gimple-ssa-strength-reduction.c: Moved to...
19389 * gimple-ssa-strength-reduction.cc: ...here.
19390 * gimple-ssa-warn-alloca.c: Moved to...
19391 * gimple-ssa-warn-alloca.cc: ...here.
19392 * gimple-ssa-warn-restrict.c: Moved to...
19393 * gimple-ssa-warn-restrict.cc: ...here.
19394 * gimple-streamer-in.c: Moved to...
19395 * gimple-streamer-in.cc: ...here.
19396 * gimple-streamer-out.c: Moved to...
19397 * gimple-streamer-out.cc: ...here.
19398 * gimple-walk.c: Moved to...
19399 * gimple-walk.cc: ...here.
19400 * gimple-warn-recursion.c: Moved to...
19401 * gimple-warn-recursion.cc: ...here.
19402 * gimple.c: Moved to...
19403 * gimple.cc: ...here.
19404 * gimplify-me.c: Moved to...
19405 * gimplify-me.cc: ...here.
19406 * gimplify.c: Moved to...
19407 * gimplify.cc: ...here.
19408 * godump.c: Moved to...
19409 * godump.cc: ...here.
19410 * graph.c: Moved to...
19411 * graph.cc: ...here.
19412 * graphds.c: Moved to...
19413 * graphds.cc: ...here.
19414 * graphite-dependences.c: Moved to...
19415 * graphite-dependences.cc: ...here.
19416 * graphite-isl-ast-to-gimple.c: Moved to...
19417 * graphite-isl-ast-to-gimple.cc: ...here.
19418 * graphite-optimize-isl.c: Moved to...
19419 * graphite-optimize-isl.cc: ...here.
19420 * graphite-poly.c: Moved to...
19421 * graphite-poly.cc: ...here.
19422 * graphite-scop-detection.c: Moved to...
19423 * graphite-scop-detection.cc: ...here.
19424 * graphite-sese-to-poly.c: Moved to...
19425 * graphite-sese-to-poly.cc: ...here.
19426 * graphite.c: Moved to...
19427 * graphite.cc: ...here.
19428 * haifa-sched.c: Moved to...
19429 * haifa-sched.cc: ...here.
19430 * hash-map-tests.c: Moved to...
19431 * hash-map-tests.cc: ...here.
19432 * hash-set-tests.c: Moved to...
19433 * hash-set-tests.cc: ...here.
19434 * hash-table.c: Moved to...
19435 * hash-table.cc: ...here.
19436 * hooks.c: Moved to...
19437 * hooks.cc: ...here.
19438 * host-default.c: Moved to...
19439 * host-default.cc: ...here.
19440 * hw-doloop.c: Moved to...
19441 * hw-doloop.cc: ...here.
19442 * hwint.c: Moved to...
19443 * hwint.cc: ...here.
19444 * ifcvt.c: Moved to...
19445 * ifcvt.cc: ...here.
19446 * inchash.c: Moved to...
19447 * inchash.cc: ...here.
19448 * incpath.c: Moved to...
19449 * incpath.cc: ...here.
19450 * init-regs.c: Moved to...
19451 * init-regs.cc: ...here.
19452 * input.c: Moved to...
19453 * input.cc: ...here.
19454 * internal-fn.c: Moved to...
19455 * internal-fn.cc: ...here.
19456 * intl.c: Moved to...
19457 * intl.cc: ...here.
19458 * ipa-comdats.c: Moved to...
19459 * ipa-comdats.cc: ...here.
19460 * ipa-cp.c: Moved to...
19461 * ipa-cp.cc: ...here.
19462 * ipa-devirt.c: Moved to...
19463 * ipa-devirt.cc: ...here.
19464 * ipa-fnsummary.c: Moved to...
19465 * ipa-fnsummary.cc: ...here.
19466 * ipa-icf-gimple.c: Moved to...
19467 * ipa-icf-gimple.cc: ...here.
19468 * ipa-icf.c: Moved to...
19469 * ipa-icf.cc: ...here.
19470 * ipa-inline-analysis.c: Moved to...
19471 * ipa-inline-analysis.cc: ...here.
19472 * ipa-inline-transform.c: Moved to...
19473 * ipa-inline-transform.cc: ...here.
19474 * ipa-inline.c: Moved to...
19475 * ipa-inline.cc: ...here.
19476 * ipa-modref-tree.c: Moved to...
19477 * ipa-modref-tree.cc: ...here.
19478 * ipa-modref.c: Moved to...
19479 * ipa-modref.cc: ...here.
19480 * ipa-param-manipulation.c: Moved to...
19481 * ipa-param-manipulation.cc: ...here.
19482 * ipa-polymorphic-call.c: Moved to...
19483 * ipa-polymorphic-call.cc: ...here.
19484 * ipa-predicate.c: Moved to...
19485 * ipa-predicate.cc: ...here.
19486 * ipa-profile.c: Moved to...
19487 * ipa-profile.cc: ...here.
19488 * ipa-prop.c: Moved to...
19489 * ipa-prop.cc: ...here.
19490 * ipa-pure-const.c: Moved to...
19491 * ipa-pure-const.cc: ...here.
19492 * ipa-ref.c: Moved to...
19493 * ipa-ref.cc: ...here.
19494 * ipa-reference.c: Moved to...
19495 * ipa-reference.cc: ...here.
19496 * ipa-split.c: Moved to...
19497 * ipa-split.cc: ...here.
19498 * ipa-sra.c: Moved to...
19499 * ipa-sra.cc: ...here.
19500 * ipa-utils.c: Moved to...
19501 * ipa-utils.cc: ...here.
19502 * ipa-visibility.c: Moved to...
19503 * ipa-visibility.cc: ...here.
19504 * ipa.c: Moved to...
19505 * ipa.cc: ...here.
19506 * ira-build.c: Moved to...
19507 * ira-build.cc: ...here.
19508 * ira-color.c: Moved to...
19509 * ira-color.cc: ...here.
19510 * ira-conflicts.c: Moved to...
19511 * ira-conflicts.cc: ...here.
19512 * ira-costs.c: Moved to...
19513 * ira-costs.cc: ...here.
19514 * ira-emit.c: Moved to...
19515 * ira-emit.cc: ...here.
19516 * ira-lives.c: Moved to...
19517 * ira-lives.cc: ...here.
19518 * ira.c: Moved to...
19519 * ira.cc: ...here.
19520 * jump.c: Moved to...
19521 * jump.cc: ...here.
19522 * langhooks.c: Moved to...
19523 * langhooks.cc: ...here.
19524 * lcm.c: Moved to...
19525 * lcm.cc: ...here.
19526 * lists.c: Moved to...
19527 * lists.cc: ...here.
19528 * loop-doloop.c: Moved to...
19529 * loop-doloop.cc: ...here.
19530 * loop-init.c: Moved to...
19531 * loop-init.cc: ...here.
19532 * loop-invariant.c: Moved to...
19533 * loop-invariant.cc: ...here.
19534 * loop-iv.c: Moved to...
19535 * loop-iv.cc: ...here.
19536 * loop-unroll.c: Moved to...
19537 * loop-unroll.cc: ...here.
19538 * lower-subreg.c: Moved to...
19539 * lower-subreg.cc: ...here.
19540 * lra-assigns.c: Moved to...
19541 * lra-assigns.cc: ...here.
19542 * lra-coalesce.c: Moved to...
19543 * lra-coalesce.cc: ...here.
19544 * lra-constraints.c: Moved to...
19545 * lra-constraints.cc: ...here.
19546 * lra-eliminations.c: Moved to...
19547 * lra-eliminations.cc: ...here.
19548 * lra-lives.c: Moved to...
19549 * lra-lives.cc: ...here.
19550 * lra-remat.c: Moved to...
19551 * lra-remat.cc: ...here.
19552 * lra-spills.c: Moved to...
19553 * lra-spills.cc: ...here.
19554 * lra.c: Moved to...
19555 * lra.cc: ...here.
19556 * lto-cgraph.c: Moved to...
19557 * lto-cgraph.cc: ...here.
19558 * lto-compress.c: Moved to...
19559 * lto-compress.cc: ...here.
19560 * lto-opts.c: Moved to...
19561 * lto-opts.cc: ...here.
19562 * lto-section-in.c: Moved to...
19563 * lto-section-in.cc: ...here.
19564 * lto-section-out.c: Moved to...
19565 * lto-section-out.cc: ...here.
19566 * lto-streamer-in.c: Moved to...
19567 * lto-streamer-in.cc: ...here.
19568 * lto-streamer-out.c: Moved to...
19569 * lto-streamer-out.cc: ...here.
19570 * lto-streamer.c: Moved to...
19571 * lto-streamer.cc: ...here.
19572 * lto-wrapper.c: Moved to...
19573 * lto-wrapper.cc: ...here.
19574 * main.c: Moved to...
19575 * main.cc: ...here.
19576 * mcf.c: Moved to...
19577 * mcf.cc: ...here.
19578 * mode-switching.c: Moved to...
19579 * mode-switching.cc: ...here.
19580 * modulo-sched.c: Moved to...
19581 * modulo-sched.cc: ...here.
19582 * multiple_target.c: Moved to...
19583 * multiple_target.cc: ...here.
19584 * omp-expand.c: Moved to...
19585 * omp-expand.cc: ...here.
19586 * omp-general.c: Moved to...
19587 * omp-general.cc: ...here.
19588 * omp-low.c: Moved to...
19589 * omp-low.cc: ...here.
19590 * omp-offload.c: Moved to...
19591 * omp-offload.cc: ...here.
19592 * omp-simd-clone.c: Moved to...
19593 * omp-simd-clone.cc: ...here.
19594 * opt-suggestions.c: Moved to...
19595 * opt-suggestions.cc: ...here.
19596 * optabs-libfuncs.c: Moved to...
19597 * optabs-libfuncs.cc: ...here.
19598 * optabs-query.c: Moved to...
19599 * optabs-query.cc: ...here.
19600 * optabs-tree.c: Moved to...
19601 * optabs-tree.cc: ...here.
19602 * optabs.c: Moved to...
19603 * optabs.cc: ...here.
19604 * opts-common.c: Moved to...
19605 * opts-common.cc: ...here.
19606 * opts-global.c: Moved to...
19607 * opts-global.cc: ...here.
19608 * opts.c: Moved to...
19609 * opts.cc: ...here.
19610 * passes.c: Moved to...
19611 * passes.cc: ...here.
19612 * plugin.c: Moved to...
19613 * plugin.cc: ...here.
19614 * postreload-gcse.c: Moved to...
19615 * postreload-gcse.cc: ...here.
19616 * postreload.c: Moved to...
19617 * postreload.cc: ...here.
19618 * predict.c: Moved to...
19619 * predict.cc: ...here.
19620 * prefix.c: Moved to...
19621 * prefix.cc: ...here.
19622 * pretty-print.c: Moved to...
19623 * pretty-print.cc: ...here.
19624 * print-rtl-function.c: Moved to...
19625 * print-rtl-function.cc: ...here.
19626 * print-rtl.c: Moved to...
19627 * print-rtl.cc: ...here.
19628 * print-tree.c: Moved to...
19629 * print-tree.cc: ...here.
19630 * profile-count.c: Moved to...
19631 * profile-count.cc: ...here.
19632 * profile.c: Moved to...
19633 * profile.cc: ...here.
19634 * read-md.c: Moved to...
19635 * read-md.cc: ...here.
19636 * read-rtl-function.c: Moved to...
19637 * read-rtl-function.cc: ...here.
19638 * read-rtl.c: Moved to...
19639 * read-rtl.cc: ...here.
19640 * real.c: Moved to...
19641 * real.cc: ...here.
19642 * realmpfr.c: Moved to...
19643 * realmpfr.cc: ...here.
19644 * recog.c: Moved to...
19645 * recog.cc: ...here.
19646 * ree.c: Moved to...
19647 * ree.cc: ...here.
19648 * reg-stack.c: Moved to...
19649 * reg-stack.cc: ...here.
19650 * regcprop.c: Moved to...
19651 * regcprop.cc: ...here.
19652 * reginfo.c: Moved to...
19653 * reginfo.cc: ...here.
19654 * regrename.c: Moved to...
19655 * regrename.cc: ...here.
19656 * regstat.c: Moved to...
19657 * regstat.cc: ...here.
19658 * reload.c: Moved to...
19659 * reload.cc: ...here.
19660 * reload1.c: Moved to...
19661 * reload1.cc: ...here.
19662 * reorg.c: Moved to...
19663 * reorg.cc: ...here.
19664 * resource.c: Moved to...
19665 * resource.cc: ...here.
19666 * rtl-error.c: Moved to...
19667 * rtl-error.cc: ...here.
19668 * rtl-tests.c: Moved to...
19669 * rtl-tests.cc: ...here.
19670 * rtl.c: Moved to...
19671 * rtl.cc: ...here.
19672 * rtlanal.c: Moved to...
19673 * rtlanal.cc: ...here.
19674 * rtlhash.c: Moved to...
19675 * rtlhash.cc: ...here.
19676 * rtlhooks.c: Moved to...
19677 * rtlhooks.cc: ...here.
19678 * rtx-vector-builder.c: Moved to...
19679 * rtx-vector-builder.cc: ...here.
19680 * run-rtl-passes.c: Moved to...
19681 * run-rtl-passes.cc: ...here.
19682 * sancov.c: Moved to...
19683 * sancov.cc: ...here.
19684 * sanopt.c: Moved to...
19685 * sanopt.cc: ...here.
19686 * sbitmap.c: Moved to...
19687 * sbitmap.cc: ...here.
19688 * sched-deps.c: Moved to...
19689 * sched-deps.cc: ...here.
19690 * sched-ebb.c: Moved to...
19691 * sched-ebb.cc: ...here.
19692 * sched-rgn.c: Moved to...
19693 * sched-rgn.cc: ...here.
19694 * sel-sched-dump.c: Moved to...
19695 * sel-sched-dump.cc: ...here.
19696 * sel-sched-ir.c: Moved to...
19697 * sel-sched-ir.cc: ...here.
19698 * sel-sched.c: Moved to...
19699 * sel-sched.cc: ...here.
19700 * selftest-diagnostic.c: Moved to...
19701 * selftest-diagnostic.cc: ...here.
19702 * selftest-rtl.c: Moved to...
19703 * selftest-rtl.cc: ...here.
19704 * selftest-run-tests.c: Moved to...
19705 * selftest-run-tests.cc: ...here.
19706 * selftest.c: Moved to...
19707 * selftest.cc: ...here.
19708 * sese.c: Moved to...
19709 * sese.cc: ...here.
19710 * shrink-wrap.c: Moved to...
19711 * shrink-wrap.cc: ...here.
19712 * simplify-rtx.c: Moved to...
19713 * simplify-rtx.cc: ...here.
19714 * sparseset.c: Moved to...
19715 * sparseset.cc: ...here.
19716 * spellcheck-tree.c: Moved to...
19717 * spellcheck-tree.cc: ...here.
19718 * spellcheck.c: Moved to...
19719 * spellcheck.cc: ...here.
19720 * sreal.c: Moved to...
19721 * sreal.cc: ...here.
19722 * stack-ptr-mod.c: Moved to...
19723 * stack-ptr-mod.cc: ...here.
19724 * statistics.c: Moved to...
19725 * statistics.cc: ...here.
19726 * stmt.c: Moved to...
19727 * stmt.cc: ...here.
19728 * stor-layout.c: Moved to...
19729 * stor-layout.cc: ...here.
19730 * store-motion.c: Moved to...
19731 * store-motion.cc: ...here.
19732 * streamer-hooks.c: Moved to...
19733 * streamer-hooks.cc: ...here.
19734 * stringpool.c: Moved to...
19735 * stringpool.cc: ...here.
19736 * substring-locations.c: Moved to...
19737 * substring-locations.cc: ...here.
19738 * symtab.c: Moved to...
19739 * symtab.cc: ...here.
19740 * target-globals.c: Moved to...
19741 * target-globals.cc: ...here.
19742 * targhooks.c: Moved to...
19743 * targhooks.cc: ...here.
19744 * timevar.c: Moved to...
19745 * timevar.cc: ...here.
19746 * toplev.c: Moved to...
19747 * toplev.cc: ...here.
19748 * tracer.c: Moved to...
19749 * tracer.cc: ...here.
19750 * trans-mem.c: Moved to...
19751 * trans-mem.cc: ...here.
19752 * tree-affine.c: Moved to...
19753 * tree-affine.cc: ...here.
19754 * tree-call-cdce.c: Moved to...
19755 * tree-call-cdce.cc: ...here.
19756 * tree-cfg.c: Moved to...
19757 * tree-cfg.cc: ...here.
19758 * tree-cfgcleanup.c: Moved to...
19759 * tree-cfgcleanup.cc: ...here.
19760 * tree-chrec.c: Moved to...
19761 * tree-chrec.cc: ...here.
19762 * tree-complex.c: Moved to...
19763 * tree-complex.cc: ...here.
19764 * tree-data-ref.c: Moved to...
19765 * tree-data-ref.cc: ...here.
19766 * tree-dfa.c: Moved to...
19767 * tree-dfa.cc: ...here.
19768 * tree-diagnostic.c: Moved to...
19769 * tree-diagnostic.cc: ...here.
19770 * tree-dump.c: Moved to...
19771 * tree-dump.cc: ...here.
19772 * tree-eh.c: Moved to...
19773 * tree-eh.cc: ...here.
19774 * tree-emutls.c: Moved to...
19775 * tree-emutls.cc: ...here.
19776 * tree-if-conv.c: Moved to...
19777 * tree-if-conv.cc: ...here.
19778 * tree-inline.c: Moved to...
19779 * tree-inline.cc: ...here.
19780 * tree-into-ssa.c: Moved to...
19781 * tree-into-ssa.cc: ...here.
19782 * tree-iterator.c: Moved to...
19783 * tree-iterator.cc: ...here.
19784 * tree-loop-distribution.c: Moved to...
19785 * tree-loop-distribution.cc: ...here.
19786 * tree-nested.c: Moved to...
19787 * tree-nested.cc: ...here.
19788 * tree-nrv.c: Moved to...
19789 * tree-nrv.cc: ...here.
19790 * tree-object-size.c: Moved to...
19791 * tree-object-size.cc: ...here.
19792 * tree-outof-ssa.c: Moved to...
19793 * tree-outof-ssa.cc: ...here.
19794 * tree-parloops.c: Moved to...
19795 * tree-parloops.cc: ...here.
19796 * tree-phinodes.c: Moved to...
19797 * tree-phinodes.cc: ...here.
19798 * tree-predcom.c: Moved to...
19799 * tree-predcom.cc: ...here.
19800 * tree-pretty-print.c: Moved to...
19801 * tree-pretty-print.cc: ...here.
19802 * tree-profile.c: Moved to...
19803 * tree-profile.cc: ...here.
19804 * tree-scalar-evolution.c: Moved to...
19805 * tree-scalar-evolution.cc: ...here.
19806 * tree-sra.c: Moved to...
19807 * tree-sra.cc: ...here.
19808 * tree-ssa-address.c: Moved to...
19809 * tree-ssa-address.cc: ...here.
19810 * tree-ssa-alias.c: Moved to...
19811 * tree-ssa-alias.cc: ...here.
19812 * tree-ssa-ccp.c: Moved to...
19813 * tree-ssa-ccp.cc: ...here.
19814 * tree-ssa-coalesce.c: Moved to...
19815 * tree-ssa-coalesce.cc: ...here.
19816 * tree-ssa-copy.c: Moved to...
19817 * tree-ssa-copy.cc: ...here.
19818 * tree-ssa-dce.c: Moved to...
19819 * tree-ssa-dce.cc: ...here.
19820 * tree-ssa-dom.c: Moved to...
19821 * tree-ssa-dom.cc: ...here.
19822 * tree-ssa-dse.c: Moved to...
19823 * tree-ssa-dse.cc: ...here.
19824 * tree-ssa-forwprop.c: Moved to...
19825 * tree-ssa-forwprop.cc: ...here.
19826 * tree-ssa-ifcombine.c: Moved to...
19827 * tree-ssa-ifcombine.cc: ...here.
19828 * tree-ssa-live.c: Moved to...
19829 * tree-ssa-live.cc: ...here.
19830 * tree-ssa-loop-ch.c: Moved to...
19831 * tree-ssa-loop-ch.cc: ...here.
19832 * tree-ssa-loop-im.c: Moved to...
19833 * tree-ssa-loop-im.cc: ...here.
19834 * tree-ssa-loop-ivcanon.c: Moved to...
19835 * tree-ssa-loop-ivcanon.cc: ...here.
19836 * tree-ssa-loop-ivopts.c: Moved to...
19837 * tree-ssa-loop-ivopts.cc: ...here.
19838 * tree-ssa-loop-manip.c: Moved to...
19839 * tree-ssa-loop-manip.cc: ...here.
19840 * tree-ssa-loop-niter.c: Moved to...
19841 * tree-ssa-loop-niter.cc: ...here.
19842 * tree-ssa-loop-prefetch.c: Moved to...
19843 * tree-ssa-loop-prefetch.cc: ...here.
19844 * tree-ssa-loop-split.c: Moved to...
19845 * tree-ssa-loop-split.cc: ...here.
19846 * tree-ssa-loop-unswitch.c: Moved to...
19847 * tree-ssa-loop-unswitch.cc: ...here.
19848 * tree-ssa-loop.c: Moved to...
19849 * tree-ssa-loop.cc: ...here.
19850 * tree-ssa-math-opts.c: Moved to...
19851 * tree-ssa-math-opts.cc: ...here.
19852 * tree-ssa-operands.c: Moved to...
19853 * tree-ssa-operands.cc: ...here.
19854 * tree-ssa-phiopt.c: Moved to...
19855 * tree-ssa-phiopt.cc: ...here.
19856 * tree-ssa-phiprop.c: Moved to...
19857 * tree-ssa-phiprop.cc: ...here.
19858 * tree-ssa-pre.c: Moved to...
19859 * tree-ssa-pre.cc: ...here.
19860 * tree-ssa-propagate.c: Moved to...
19861 * tree-ssa-propagate.cc: ...here.
19862 * tree-ssa-reassoc.c: Moved to...
19863 * tree-ssa-reassoc.cc: ...here.
19864 * tree-ssa-sccvn.c: Moved to...
19865 * tree-ssa-sccvn.cc: ...here.
19866 * tree-ssa-scopedtables.c: Moved to...
19867 * tree-ssa-scopedtables.cc: ...here.
19868 * tree-ssa-sink.c: Moved to...
19869 * tree-ssa-sink.cc: ...here.
19870 * tree-ssa-strlen.c: Moved to...
19871 * tree-ssa-strlen.cc: ...here.
19872 * tree-ssa-structalias.c: Moved to...
19873 * tree-ssa-structalias.cc: ...here.
19874 * tree-ssa-tail-merge.c: Moved to...
19875 * tree-ssa-tail-merge.cc: ...here.
19876 * tree-ssa-ter.c: Moved to...
19877 * tree-ssa-ter.cc: ...here.
19878 * tree-ssa-threadbackward.c: Moved to...
19879 * tree-ssa-threadbackward.cc: ...here.
19880 * tree-ssa-threadedge.c: Moved to...
19881 * tree-ssa-threadedge.cc: ...here.
19882 * tree-ssa-threadupdate.c: Moved to...
19883 * tree-ssa-threadupdate.cc: ...here.
19884 * tree-ssa-uncprop.c: Moved to...
19885 * tree-ssa-uncprop.cc: ...here.
19886 * tree-ssa-uninit.c: Moved to...
19887 * tree-ssa-uninit.cc: ...here.
19888 * tree-ssa.c: Moved to...
19889 * tree-ssa.cc: ...here.
19890 * tree-ssanames.c: Moved to...
19891 * tree-ssanames.cc: ...here.
19892 * tree-stdarg.c: Moved to...
19893 * tree-stdarg.cc: ...here.
19894 * tree-streamer-in.c: Moved to...
19895 * tree-streamer-in.cc: ...here.
19896 * tree-streamer-out.c: Moved to...
19897 * tree-streamer-out.cc: ...here.
19898 * tree-streamer.c: Moved to...
19899 * tree-streamer.cc: ...here.
19900 * tree-switch-conversion.c: Moved to...
19901 * tree-switch-conversion.cc: ...here.
19902 * tree-tailcall.c: Moved to...
19903 * tree-tailcall.cc: ...here.
19904 * tree-vect-data-refs.c: Moved to...
19905 * tree-vect-data-refs.cc: ...here.
19906 * tree-vect-generic.c: Moved to...
19907 * tree-vect-generic.cc: ...here.
19908 * tree-vect-loop-manip.c: Moved to...
19909 * tree-vect-loop-manip.cc: ...here.
19910 * tree-vect-loop.c: Moved to...
19911 * tree-vect-loop.cc: ...here.
19912 * tree-vect-patterns.c: Moved to...
19913 * tree-vect-patterns.cc: ...here.
19914 * tree-vect-slp-patterns.c: Moved to...
19915 * tree-vect-slp-patterns.cc: ...here.
19916 * tree-vect-slp.c: Moved to...
19917 * tree-vect-slp.cc: ...here.
19918 * tree-vect-stmts.c: Moved to...
19919 * tree-vect-stmts.cc: ...here.
19920 * tree-vector-builder.c: Moved to...
19921 * tree-vector-builder.cc: ...here.
19922 * tree-vectorizer.c: Moved to...
19923 * tree-vectorizer.cc: ...here.
19924 * tree-vrp.c: Moved to...
19925 * tree-vrp.cc: ...here.
19926 * tree.c: Moved to...
19927 * tree.cc: ...here.
19928 * tsan.c: Moved to...
19929 * tsan.cc: ...here.
19930 * typed-splay-tree.c: Moved to...
19931 * typed-splay-tree.cc: ...here.
19932 * ubsan.c: Moved to...
19933 * ubsan.cc: ...here.
19934 * valtrack.c: Moved to...
19935 * valtrack.cc: ...here.
19936 * value-prof.c: Moved to...
19937 * value-prof.cc: ...here.
19938 * var-tracking.c: Moved to...
19939 * var-tracking.cc: ...here.
19940 * varasm.c: Moved to...
19941 * varasm.cc: ...here.
19942 * varpool.c: Moved to...
19943 * varpool.cc: ...here.
19944 * vec-perm-indices.c: Moved to...
19945 * vec-perm-indices.cc: ...here.
19946 * vec.c: Moved to...
19947 * vec.cc: ...here.
19948 * vmsdbgout.c: Moved to...
19949 * vmsdbgout.cc: ...here.
19950 * vr-values.c: Moved to...
19951 * vr-values.cc: ...here.
19952 * vtable-verify.c: Moved to...
19953 * vtable-verify.cc: ...here.
19954 * web.c: Moved to...
19955 * web.cc: ...here.
19956 * xcoffout.c: Moved to...
19957 * xcoffout.cc: ...here.
19958
19959 2022-01-17 qing zhao <qing.zhao@oracle.com>
19960
19961 * tree-ssa-uninit.c (warn_uninit): Delete the 4th parameter. Handle
19962 .DEFERRED_INIT call with an anonymous SSA_NAME specially.
19963 (check_defs): Handle .DEFERRED_INIT call with an anonymous SSA_NAME
19964 specially.
19965 (warn_uninit_phi_uses): Delete the 4th actual when call warn_uninit.
19966 (warn_uninitialized_vars): Likewise.
19967 (warn_uninitialized_phi): Likewise.
19968
19969 2022-01-17 Jason Merrill <jason@redhat.com>
19970
19971 * diagnostic.h (struct diagnostic_context): Add includes_seen.
19972 * diagnostic.c (diagnostic_initialize): Initialize it.
19973 (diagnostic_finish): Clean it up.
19974 (includes_seen): New function.
19975 (diagnostic_report_current_module): Use it.
19976
19977 2022-01-17 Richard Biener <rguenther@suse.de>
19978
19979 PR middle-end/101292
19980 * diagnostic-spec.c (copy_warning): Make sure to not
19981 reference old hashtable content on possible resize.
19982 * warning-control.cc (copy_warning): Likewise.
19983
19984 2022-01-17 Jakub Jelinek <jakub@redhat.com>
19985
19986 PR target/103973
19987 * tree-cfg.h (cond_only_block_p): Declare.
19988 * tree-ssa-phiopt.c (cond_only_block_p): Move function to ...
19989 * tree-cfg.c (cond_only_block_p): ... here. No longer static.
19990 * optabs.def (spaceship_optab): New optab.
19991 * internal-fn.def (SPACESHIP): New internal function.
19992 * internal-fn.h (expand_SPACESHIP): Declare.
19993 * internal-fn.c (expand_PHI): Formatting fix.
19994 (expand_SPACESHIP): New function.
19995 * tree-ssa-math-opts.c (optimize_spaceship): New function.
19996 (math_opts_dom_walker::after_dom_children): Use it.
19997 * config/i386/i386.md (spaceship<mode>3): New define_expand.
19998 * config/i386/i386-protos.h (ix86_expand_fp_spaceship): Declare.
19999 * config/i386/i386-expand.c (ix86_expand_fp_spaceship): New function.
20000 * doc/md.texi (spaceship@var{m}3): Document.
20001
20002 2022-01-17 Kewen Lin <linkw@linux.ibm.com>
20003
20004 * config/rs6000/altivec.md (altivec_vreveti2): Remove.
20005 * config/rs6000/vsx.md (*vsx_extract_si, *vsx_extract_si_<uns>float_df,
20006 *vsx_extract_si_<uns>float_<mode>, *vsx_insert_extract_v4sf_p9): Use
20007 known constant values to simplify code.
20008
20009 2022-01-17 Haochen Gui <guihaoc@gcc.gnu.org>
20010
20011 PR target/103124
20012 * config/rs6000/vsx.md (split pattern for TI to V1TI move): Defined.
20013
20014 2022-01-16 wwwhhhyyy <hongyu.wang@intel.com>
20015
20016 * config/i386/i386.h (TARGET_DEST_FALSE_DEP_FOR_GLC): New macro.
20017 * config/i386/sse.md (<avx512>_<complexopname>_<mode><maskc_name><round_name>):
20018 Insert zero-idiom in output template when attr enabled, set new attribute to
20019 true for non-mask/maskz insn.
20020 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>):
20021 Likewise.
20022 (avx512dq_mul<mode>3<mask_name>): Likewise.
20023 (<avx2_avx512>_permvar<mode><mask_name>): Likewise.
20024 (avx2_perm<mode>_1<mask_name>): Likewise.
20025 (avx512f_perm<mode>_1<mask_name>): Likewise.
20026 (avx512dq_rangep<mode><mask_name><round_saeonly_name>): Likewise.
20027 (avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>):
20028 Likewise.
20029 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Likewise.
20030 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>):
20031 Likewise.
20032 * config/i386/subst.md (mask3_dest_false_dep_for_glc_cond): New
20033 subst_attr.
20034 (mask4_dest_false_dep_for_glc_cond): Likewise.
20035 (mask6_dest_false_dep_for_glc_cond): Likewise.
20036 (mask10_dest_false_dep_for_glc_cond): Likewise.
20037 (maskc_dest_false_dep_for_glc_cond): Likewise.
20038 (mask_scalar4_dest_false_dep_for_glc_cond): Likewise.
20039 (mask_scalarc_dest_false_dep_for_glc_cond): Likewise.
20040 * config/i386/x86-tune.def (X86_TUNE_DEST_FALSE_DEP_FOR_GLC): New
20041 DEF_TUNE enabled for m_SAPPHIRERAPIDS and m_ALDERLAKE
20042
20043 2022-01-15 Martin Sebor <msebor@redhat.com>
20044
20045 PR c/63272
20046 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
20047 -Wdangling-pointer.
20048 * doc/invoke.texi (-Wdangling-pointer): Document new option.
20049 * gimple-ssa-warn-access.cc (pass_waccess::clone): Set new member.
20050 (pass_waccess::check_pointer_uses): New function.
20051 (pass_waccess::gimple_call_return_arg): New function.
20052 (pass_waccess::gimple_call_return_arg_ref): New function.
20053 (pass_waccess::check_call_dangling): New function.
20054 (pass_waccess::check_dangling_uses): New function overloads.
20055 (pass_waccess::check_dangling_stores): New function.
20056 (pass_waccess::check_dangling_stores): New function.
20057 (pass_waccess::m_clobbers): New data member.
20058 (pass_waccess::m_func): New data member.
20059 (pass_waccess::m_run_number): New data member.
20060 (pass_waccess::m_check_dangling_p): New data member.
20061 (pass_waccess::check_alloca): Check m_early_checks_p.
20062 (pass_waccess::check_alloc_size_call): Same.
20063 (pass_waccess::check_strcat): Same.
20064 (pass_waccess::check_strncat): Same.
20065 (pass_waccess::check_stxcpy): Same.
20066 (pass_waccess::check_stxncpy): Same.
20067 (pass_waccess::check_strncmp): Same.
20068 (pass_waccess::check_memop_access): Same.
20069 (pass_waccess::check_read_access): Same.
20070 (pass_waccess::check_builtin): Call check_pointer_uses.
20071 (pass_waccess::warn_invalid_pointer): Add arguments.
20072 (is_auto_decl): New function.
20073 (pass_waccess::check_stmt): New function.
20074 (pass_waccess::check_block): Call check_stmt.
20075 (pass_waccess::execute): Call check_dangling_uses,
20076 check_dangling_stores. Empty m_clobbers.
20077 * passes.def (pass_warn_access): Invoke pass two more times.
20078
20079 2022-01-15 Martin Sebor <msebor@redhat.com>
20080
20081 PR tree-optimization/80532
20082 * common.opt (-Wuse-after-free): New options.
20083 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Handle
20084 OPT_Wreturn_local_addr and OPT_Wuse_after_free_.
20085 * diagnostic-spec.h (NW_DANGLING): New enumerator.
20086 * doc/invoke.texi (-Wuse-after-free): Document new option.
20087 * gimple-ssa-warn-access.cc (pass_waccess::check_call): Rename...
20088 (pass_waccess::check_call_access): ...to this.
20089 (pass_waccess::check): Rename...
20090 (pass_waccess::check_block): ...to this.
20091 (pass_waccess::check_pointer_uses): New function.
20092 (pass_waccess::gimple_call_return_arg): New function.
20093 (pass_waccess::warn_invalid_pointer): New function.
20094 (pass_waccess::check_builtin): Handle free and realloc.
20095 (gimple_use_after_inval_p): New function.
20096 (get_realloc_lhs): New function.
20097 (maybe_warn_mismatched_realloc): New function.
20098 (pointers_related_p): New function.
20099 (pass_waccess::check_call): Call check_pointer_uses.
20100 (pass_waccess::execute): Compute and free dominance info.
20101
20102 2022-01-15 Uroš Bizjak <ubizjak@gmail.com>
20103
20104 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use
20105 expand_simple_unop and expand_simple_binop instead of manually
20106 constructing NOT, AND and IOR RTXes. Use vector_all_ones_operand
20107 consistently. Eliminate common subexpressions and simplify code.
20108 * config/i386/sse.md (<any_logic:code><MODEF:mode>3): New expander.
20109 (<any_logic:code><MODEF:mode>3): Make public.
20110
20111 2022-01-14 Eric Botcazou <ebotcazou@adacore.com>
20112
20113 * ipa-param-manipulation.c (ipa_dump_adjusted_parameters): Dump
20114 reverse flag as "reverse" for the sake of consistency.
20115 * ipa-sra.c: Fix copyright year.
20116 (ipa_sra_function_summaries::duplicate): Copy the reverse flag.
20117 (dump_isra_access): Tweak dump line.
20118 (isra_write_node_summary): Write the reverse flag.
20119 (isra_read_node_info): Read it.
20120 (pull_accesses_from_callee): Test its consistency and copy it.
20121
20122 2022-01-14 Richard Sandiford <richard.sandiford@arm.com>
20123
20124 PR middle-end/104026
20125 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
20126 partial_load_store_bias.
20127
20128 2022-01-14 Martin Sebor <msebor@redhat.com>
20129
20130 PR middle-end/101475
20131 * pointer-query.cc (handle_component_ref): Use the size of
20132 the enclosing object if it's smaller than the member.
20133
20134 2022-01-14 Martin Liska <mliska@suse.cz>
20135
20136 * configure: Regenerate.
20137
20138 2022-01-14 Uroš Bizjak <ubizjak@gmail.com>
20139
20140 * config/i386/i386.md (*add<mode>_1_slp"):
20141 Mark alternative 1 output operand earlyclobbered.
20142 (*sub<mode>_1_slp): Ditto.
20143 (*and<mode>_1_slp): Ditto.
20144 (*<code><mode>_1_slp): Ditto.
20145 (*neg<mode>_1_slp): Ditto.
20146 (*one_cmpl<mode>_1_slp): Ditto.
20147 (*ashl<mode>3_1_slp): Ditto.
20148 (*<insn><mode>3_1_slp): Ditto.
20149 (*<insn><mode>3_1_slp): Ditto.
20150
20151 2022-01-14 Kewen Lin <linkw@linux.ibm.com>
20152
20153 PR tree-optimization/104015
20154 * tree-vect-loop.c (vect_analyze_loop): Check
20155 param_vect_partial_vector_usage for supports_partial_vectors.
20156
20157 2022-01-14 Jakub Jelinek <jakub@redhat.com>
20158
20159 PR c++/89074
20160 * fold-const.c (address_compare): Punt on comparison of address of
20161 one object with address of end of another object if
20162 folding_initializer.
20163
20164 2022-01-14 Jakub Jelinek <jakub@redhat.com>
20165
20166 PR target/98737
20167 * tree-ssa-forwprop.c (simplify_builtin_call): Canonicalize
20168 __atomic_fetch_op (p, x, y) op x into __atomic_op_fetch (p, x, y)
20169 and __atomic_op_fetch (p, x, y) iop x into
20170 __atomic_fetch_op (p, x, y).
20171
20172 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
20173
20174 * config/arc/arc.h (DWARF_FRAME_REGNUM): Update definition.
20175 (DWARF_FRAME_RETURN_COLUMN): Use RETURN_ADDR_REGNUM macro.
20176 (INCOMING_RETURN_ADDR_RTX): Likewise.
20177 (DWARF_ALT_FRAME_RETURN_COLUMN): Define.
20178
20179 2022-01-14 Claudiu Zissulescu <claziss@synopsys.com>
20180
20181 * config/arc/arc.c (arc_compute_frame_size): Remove condition when
20182 computin checking accumulator regs.
20183 (arc_expand_prologue): Update comments.
20184 (arc_expand_epilogue): Likewise.
20185
20186 2022-01-14 Roger Sayle <roger@nextmovesoftware.com>
20187 Uroš Bizjak <ubizjak@gmail.com>
20188
20189 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Use force_reg.
20190 (ix86_expand_ti_to_v1ti): Use force_reg.
20191 (ix86_expand_v1ti_shift): Use force_reg.
20192 (ix86_expand_v1ti_rotate): Use force_reg.
20193 (ix86_expand_v1ti_ashiftrt): Provide new three operation
20194 implementations for shifts by 111..126 bits. Use force_reg.
20195
20196 2022-01-14 Martin Liska <mliska@suse.cz>
20197
20198 * common/config/arm/arm-common.c (arm_target_mode): Fix
20199 warning: unterminated quoting directive [-Wformat=].
20200
20201 2022-01-14 Siddhesh Poyarekar <siddhesh@gotplt.org>
20202
20203 PR tree-optimization/104009
20204 * tree-object-size.c (compute_builtin_object_size): Bail out on
20205 negative offset.
20206 (plus_stmt_object_size): Return maximum of wholesize and minimum
20207 of 0 for negative offset.
20208
20209 2022-01-14 liuhongt <hongtao.liu@intel.com>
20210
20211 PR target/104001
20212 PR target/94790
20213 PR target/104014
20214 * config/i386/i386.md (*xor2andn): Refine predicate of
20215 operands[0] from nonimmediate_operand to
20216 register_operand, remove TARGET_AVX512BW from condition.
20217
20218 2022-01-14 David Malcolm <dmalcolm@redhat.com>
20219
20220 * doc/extend.texi (Function Attributes): Note that "tainted_args" can
20221 be used on field decls.
20222 (Common Function Attributes): Add entry on "tainted_args" attribute.
20223
20224 2022-01-13 Anthony Sharp <anthonysharp15@gmail.com>
20225 Jason Merrill <jason@redhat.com>
20226
20227 PR c++/70417
20228 * doc/invoke.texi: Documentation for Wmissing-template-keyword.
20229
20230 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20231
20232 PR target/103861
20233 * config/i386/i386.md (*ashlqi_ext<mode>_2): New insn pattern.
20234 (*<any_shiftrt:insn>qi_ext<mode>_2): Ditto.
20235 * config/i386/mmx.md (<any_shift:insn>v2qi):
20236 New insn_and_split pattern.
20237
20238 2022-01-13 Robin Dapp <rdapp@linux.ibm.com>
20239
20240 * internal-fn.c (expand_partial_load_optab_fn): Add bias.
20241 (expand_partial_store_optab_fn): Likewise.
20242 (internal_len_load_store_bias): New function.
20243 * internal-fn.h (VECT_PARTIAL_BIAS_UNSUPPORTED): New define.
20244 (internal_len_load_store_bias): New function.
20245 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Set bias.
20246 (vect_set_loop_condition_partial_vectors): Add header_seq parameter.
20247 * tree-vect-loop.c (vect_verify_loop_lens): Verify bias.
20248 (vect_estimate_min_profitable_iters): Account for bias.
20249 (vect_get_loop_len): Add bias-adjusted length.
20250 * tree-vect-stmts.c (vectorizable_store): Use.
20251 (vectorizable_load): Use.
20252 * tree-vectorizer.h (struct rgroup_controls): Add bias-adjusted length.
20253 (LOOP_VINFO_PARTIAL_LOAD_STORE_BIAS): New macro.
20254 * config/rs6000/vsx.md: Use const0 bias predicate.
20255 * doc/md.texi: Document bias value.
20256
20257 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
20258
20259 PR tree-optimization/83072
20260 PR tree-optimization/83073
20261 PR tree-optimization/97909
20262 * fold-const.c (expr_not_equal_to): Use a multi-range class.
20263
20264 2022-01-13 Andrew MacLeod <amacleod@redhat.com>
20265
20266 PR tree-optimization/96707
20267 * range-op.cc (operator_rshift::lhs_op1_relation): New.
20268
20269 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20270
20271 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
20272 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
20273 (negv2qi splitters): Use lowpart_subreg instead of
20274 gen_lowpart to create subreg.
20275 (<plusminus:insn>v2qi3): Disparage GPR alternative a bit.
20276 Disable for TARGET_PARTIAL_REG_STALL unless optimizing for size.
20277 (<plusminus:insn>v2qi3 splitters): Use lowpart_subreg instead of
20278 gen_lowpart to create subreg.
20279 * config/i386/i386.md (*subqi_ext<mode>_2): Move.
20280
20281 2022-01-13 Uroš Bizjak <ubizjak@gmail.com>
20282
20283 PR target/104003
20284 * config/i386/mmx.md (*xop_pcmov_<mode>): Use VI_16_32 mode iterator.
20285
20286 2022-01-13 Martin Liska <mliska@suse.cz>
20287
20288 * common/config/arm/arm-common.c (arm_target_mode): Wrap
20289 keywords with %<, %> and remove trailing punctuation char.
20290 (arm_canon_arch_option_1): Likewise.
20291 (arm_asm_auto_mfpu): Likewise.
20292 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
20293 * config/arm/arm.c (arm_options_perform_arch_sanity_checks): Likewise.
20294 (use_vfp_abi): Likewise.
20295 (aapcs_vfp_is_call_or_return_candidate): Likewise.
20296 (arm_handle_cmse_nonsecure_entry): Likewise.
20297 (arm_handle_cmse_nonsecure_call): Likewise.
20298 (thumb1_md_asm_adjust): Likewise.
20299
20300 2022-01-13 Paul A. Clarke <pc@us.ibm.com>
20301
20302 * config/rs6000/smmintrin.h (_mm_round_pd, _mm_round_ps,
20303 _mm_round_sd, _mm_round_ss, _MM_FROUND_TO_NEAREST_INT,
20304 _MM_FROUND_TO_ZERO, _MM_FROUND_TO_POS_INF, _MM_FROUND_TO_NEG_INF,
20305 _MM_FROUND_CUR_DIRECTION, _MM_FROUND_RAISE_EXC, _MM_FROUND_NO_EXC,
20306 _MM_FROUND_NINT, _MM_FROUND_FLOOR, _MM_FROUND_CEIL, _MM_FROUND_TRUNC,
20307 _MM_FROUND_RINT, _MM_FROUND_NEARBYINT): New.
20308 (_mm_ceil_pd, _mm_ceil_ps, _mm_ceil_sd, _mm_ceil_ss, _mm_floor_pd,
20309 _mm_floor_ps, _mm_floor_sd, _mm_floor_ss): Convert from function to
20310 macro.
20311
20312 2022-01-13 Jakub Jelinek <jakub@redhat.com>
20313
20314 PR tree-optimization/103989
20315 * tree-inline.c (setup_one_parameter): Don't copy parms with
20316 empty type.
20317
20318 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
20319
20320 * tree-streamer-out.c (pack_ts_base_value_fields): Don't pack
20321 'TYPE_ADDR_SPACE' for offloading.
20322 * tree-streamer-in.c (unpack_ts_base_value_fields): Don't unpack
20323 'TYPE_ADDR_SPACE' for offloading.
20324
20325 2022-01-13 Julian Brown <julian@codesourcery.com>
20326 Thomas Schwinge <thomas@codesourcery.com>
20327
20328 * omp-oacc-kernels-decompose.cc (add_wait): New function, split out
20329 of...
20330 (add_async_clauses_and_wait): ...here. Call new outlined function.
20331 (decompose_kernels_region_body): Add wait at the end of
20332 explicitly-asynchronous kernels regions.
20333
20334 2022-01-13 Thomas Schwinge <thomas@codesourcery.com>
20335
20336 PR middle-end/100280
20337 * omp-oacc-kernels-decompose.cc (maybe_build_inner_data_region):
20338 Mark variables used in synthesized data clauses as addressable.
20339
20340 2022-01-13 Martin Liska <mliska@suse.cz>
20341
20342 * config/epiphany/epiphany.c (epiphany_mode_priority):
20343 Use gcc_unreachable for not handled cases.
20344
20345 2022-01-13 Martin Liska <mliska@suse.cz>
20346
20347 * config/epiphany/epiphany.c (epiphany_handle_interrupt_attribute):
20348 Use %qs format specifier.
20349 (epiphany_override_options): Wrap keyword in %<, %>.
20350
20351 2022-01-13 Haochen Jiang <haochen.jiang@intel.com>
20352
20353 PR target/94790
20354 * config/i386/i386.md (*xor2andn): New define_insn_and_split.
20355
20356 2022-01-13 Xionghu Luo <luoxhu@linux.ibm.com>
20357
20358 * config/rs6000/altivec.md (sldoi_to_mov<mode>): New.
20359
20360 2022-01-12 Uroš Bizjak <ubizjak@gmail.com>
20361
20362 PR target/100637
20363 PR target/103861
20364 * config/i386/i386-expand.c (ix86_emit_vec_binop): New static function.
20365 (ix86_expand_sse_movcc): Use ix86_emit_vec_binop instead of gen_rtx_X
20366 when constructing vector logic RTXes.
20367 (expand_vec_perm_pshufb2): Ditto.
20368 * config/i386/mmx.md (negv2qi): Disparage GPR alternative a bit.
20369 (<plusminus:insn>v2qi3): Ditto.
20370 (vcond<mode><mode>): Re-enable for TARGET_SSE2.
20371 (vcondu<mode><mode>): Ditto.
20372 (vcond_mask_<mode><mode>): Ditto.
20373 (one_cmpl<VI_32:mode>2): Remove expander.
20374 (one_cmpl<VI_16_32:mode>2): Rename from one_cmplv2qi.
20375 Use VI_16_32 mode iterator.
20376 (one_cmpl<VI_16_32:mode>2 splitters): Use VI_16_32 mode iterator.
20377 Use lowpart_subreg instead of gen_lowpart to create subreg.
20378 (*andnot<VI_16_32:mode>3): Merge from "*andnot<VI_32:mode>" and
20379 "*andnotv2qi3" insn patterns using VI_16_32 mode iterator.
20380 Disparage GPR alternative a bit. Add CC clobber.
20381 (*andnot<VI_16_32:mode>3 splitters): Use VI_16_32 mode iterator.
20382 Use lowpart_subreg instead of gen_lowpart to create subreg.
20383 (*<any_logic:code><VI_16_32:mode>3): Merge from
20384 "*<any_logic:code><VI_32:mode>" and "*<any_logic:code>v2qi3" insn patterns
20385 using VI_16_32 mode iterator. Disparage GPR alternative a bit.
20386 Add CC clobber.
20387 (*<any_logic:code><VI_16_32:mode>3 splitters):Use VI_16_32 mode
20388 iterator. Use lowpart_subreg instead of gen_lowpart to create subreg.
20389
20390 2022-01-12 Clément Chigot <clement.chigot@atos.net>
20391
20392 * configure.ac: Check sizeof ino_t and dev_t.
20393 (HOST_STAT_FOR_64BIT_INODES): New AC_DEFINE to provide stat
20394 syscall being able to handle 64bit inodes.
20395 * config.in: Regenerate.
20396 * configure: Regenerate.
20397 * incpath.c (HOST_STAT_FOR_64BIT_INODES): New define.
20398 (remove_duplicates): Use it.
20399
20400 2022-01-12 Andrew MacLeod <amacleod@redhat.com>
20401
20402 PR tree-optimization/103551
20403 * tree-vrp.c (execute_ranger_vrp): Always set EDGE_EXECUTABLE.
20404
20405 2022-01-12 Richard Biener <rguenther@suse.de>
20406
20407 PR tree-optimization/103990
20408 * tree-pass.h (tail_merge_optimize): Drop unused argument.
20409 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise.
20410 * tree-ssa-pre.c (pass_pre::execute): Retain TODO_cleanup_cfg
20411 and adjust call to tail_merge_optimize.
20412
20413 2022-01-12 Andre Vieira <andre.simoesdiasvieira@arm.com>
20414
20415 * tree-vect-loop.c (vect-analyze-loop): Handle scenario where target
20416 does not add autovectorize_vector_modes.
20417
20418 2022-01-12 Martin Liska <mliska@suse.cz>
20419
20420 * config/aarch64/aarch64.c (aarch64_parse_boolean_options): Use
20421 %qs where possible.
20422 (aarch64_parse_sve_width_string): Likewise.
20423 (aarch64_override_options_internal): Likewise.
20424 (aarch64_print_hint_for_extensions): Likewise.
20425 (aarch64_validate_sls_mitigation): Likewise.
20426 (aarch64_handle_attr_arch): Likewise.
20427 (aarch64_handle_attr_cpu): Likewise.
20428 (aarch64_handle_attr_tune): Likewise.
20429 (aarch64_handle_attr_isa_flags): Likewise.
20430
20431 2022-01-12 Martin Liska <mliska@suse.cz>
20432
20433 * config.gcc: Include elfos.h before ${tm_file}.
20434
20435 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
20436
20437 * config/cris/cris.c: Quote identifiers in parameters to error
20438 and internal_error, and remove extraneous spaces with punctuation.
20439 * config/cris/cris.h (CRIS_ASSERT): When passing on stringified
20440 expression to internal_error, pass it as a parameter instead of
20441 appending it to the format part.
20442
20443 2022-01-12 Hans-Peter Nilsson <hp@axis.com>
20444
20445 * config/cris/cris.c (cris_postdbr_cmpelim): Parenthesize
20446 parameter to as_a.
20447
20448 2022-01-11 qing zhao <qing.zhao@oracle.com>
20449
20450 * gimplify.c (gimple_add_init_for_auto_var): Delete the 3rd argument.
20451 Change the 3rd argument of function .DEFERRED_INIT to the name of the
20452 decl.
20453 (gimplify_decl_expr): Delete the 3rd argument when call
20454 gimple_add_init_for_auto_var.
20455 * internal-fn.c (expand_DEFERRED_INIT): Update comments to reflect
20456 the 3rd argument change of function .DEFERRED_INIT.
20457 * tree-cfg.c (verify_gimple_call): Update comments and verification
20458 to reflect the 3rd argument change of function .DEFERRED_INIT.
20459 * tree-sra.c (generate_subtree_deferred_init): Delete the 3rd argument.
20460 (sra_modify_deferred_init): Change the 3rd argument of function
20461 .DEFERRED_INIT to the name of the decl.
20462
20463 2022-01-11 Thomas Koenig <tkoenig@gcc.gnu.org>
20464
20465 * flag-types.h (enum gfc_convert): Add flags for
20466 conversion.
20467
20468 2022-01-11 Michael Meissner <meissner@the-meissners.org>
20469
20470 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
20471 checks for only C/C++ front ends before allowing the long double
20472 format to change without a warning.
20473
20474 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
20475
20476 PR rtl-optimization/103974
20477 * ira-int.h (ira_subloop_allocnos_can_differ_p): Take an
20478 extra argument, default true, that says whether old-reload
20479 targets should be excluded.
20480 * ira-color.c (color_pass): Pass false.
20481
20482 2022-01-11 Uroš Bizjak <ubizjak@gmail.com>
20483
20484 PR target/103861
20485 * config/i386/mmx.md (vcond<mode><mode>):
20486 Use VI_16_32 mode iterator. Enable for TARGET_SSE4_1.
20487 (vcondu<mode><mode>): Ditto.
20488 (vcond_mask_<mode><mode>): Ditto.
20489 (mmx_pblendvb_v8qi): Rename from mmx_pblendvb64.
20490 (mmx_pblendvb_<mode>): Rename from mmx_pblendvb32.
20491 Use VI_16_32 mode iterator.
20492 * config/i386/i386-expand.c (ix86_expand_sse_movcc):
20493 Update for rename. Handle V2QImode.
20494 (expand_vec_perm_blend): Update for rename.
20495
20496 2022-01-11 Jakub Jelinek <jakub@redhat.com>
20497
20498 PR c++/101597
20499 * tree.def (OBJ_TYPE_REF): Document type of OBJ_TYPE_REF_TOKEN.
20500
20501 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20502
20503 PR middle-end/70090
20504 * tree-object-size.c (size_valid_p): New function.
20505 (size_for_offset): Remove OFFSET constness assertion.
20506 (addr_object_size): Build dynamic expressions for object
20507 sizes and use size_valid_p to decide if it is valid for the
20508 given OBJECT_SIZE_TYPE.
20509 (compute_builtin_object_size): Allow dynamic offsets when
20510 computing size at O0.
20511 (call_object_size): Call size_valid_p.
20512 (plus_stmt_object_size): Allow non-constant offset and use
20513 size_valid_p to decide if it is valid for the given
20514 OBJECT_SIZE_TYPE.
20515
20516 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20517
20518 PR middle-end/70090
20519 * tree-object-size.c (alloc_object_size): Make and return
20520 non-constant size expression.
20521 (call_object_size): Return expression or unknown based on
20522 whether dynamic object size is requested.
20523
20524 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20525
20526 PR middle-end/70090
20527 * tree-object-size.c: Include tree-dfa.h.
20528 (parm_object_size): New function.
20529 (collect_object_sizes_for): Call it.
20530
20531 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20532
20533 PR middle-end/70090
20534 * builtins.c (fold_builtin_object_size): Adjust for dynamic size
20535 expressions.
20536 * tree-object-size.c: Include gimplify-me.h.
20537 (struct object_size_info): New member UNKNOWNS.
20538 (size_initval_p, size_usable_p, object_sizes_get_raw): New
20539 functions.
20540 (object_sizes_get): Return suitable gimple variable for
20541 object size.
20542 (bundle_sizes): New function.
20543 (object_sizes_set): Use it and handle dynamic object size
20544 expressions.
20545 (object_sizes_set_temp): New function.
20546 (size_for_offset): Adjust for dynamic size expressions.
20547 (emit_phi_nodes, propagate_unknowns, gimplify_size_expressions):
20548 New functions.
20549 (compute_builtin_object_size): Call gimplify_size_expressions
20550 for OST_DYNAMIC.
20551 (dynamic_object_size): New function.
20552 (cond_expr_object_size): Use it.
20553 (phi_dynamic_object_size): New function.
20554 (collect_object_sizes_for): Call it for OST_DYNAMIC. Adjust to
20555 accommodate dynamic object sizes.
20556
20557 2022-01-11 Siddhesh Poyarekar <siddhesh@gotplt.org>
20558 Jakub Jelinek <jakub@redhat.com>
20559
20560 PR tree-optimization/103961
20561 * tree-object-size.c (plus_stmt_object_size): Always avoid
20562 computing offset for -1 size.
20563
20564 2022-01-11 Andrew MacLeod <amacleod@redhat.com>
20565
20566 PR tree-optimization/103821
20567 * range-op.cc (range_operator::fold_range): Only do precise ranges
20568 when there are not too many subranges.
20569
20570 2022-01-11 Richard Sandiford <richard.sandiford@arm.com>
20571
20572 * ira-costs.c (ira_tune_allocno_costs): Fix missing rclass
20573 definition in IRA_HARD_REGNO_ADD_COST_MULTIPLIER code.
20574
20575 2022-01-11 Roger Sayle <roger@nextmovesoftware.com>
20576 Richard Biener <rguenther@suse.de>
20577
20578 * tree-ssa-math-opts.c (struct widen_mul_stats): Add a
20579 highpart_mults_inserted field.
20580 (convert_mult_to_highpart): New function to convert right shift
20581 of a widening multiply into a MULT_HIGHPART_EXPR.
20582 (math_opts_dom_walker::after_dom_children) [RSHIFT_EXPR]:
20583 Call new convert_mult_to_highpart function.
20584 (pass_optimize_widening_mul::execute): Add a statistics counter
20585 for tracking "highpart multiplications inserted" events.
20586
20587 2022-01-11 Xionghu Luo <luoxhu@linux.ibm.com>
20588
20589 PR target/102239
20590 * config/rs6000/rs6000-protos.h (rs6000_is_valid_rotate_dot_mask): New
20591 declare.
20592 * config/rs6000/rs6000.c (rs6000_is_valid_rotate_dot_mask): New
20593 function.
20594 * config/rs6000/rs6000.md (*branch_anddi3_dot): New.
20595
20596 2022-01-11 Olivier Hainque <hainque@adacore.com>
20597
20598 * gcc.c (driver_handle_option): State --sysroot as
20599 validated.
20600
20601 2022-01-11 Kewen Lin <linkw@linux.ibm.com>
20602
20603 * config/rs6000/rs6000.c (rs6000_disable_incompatible_switches): Remove
20604 useless related to option -mno-power10.
20605
20606 2022-01-11 Haochen Jiang <haochen.jiang@intel.com>
20607
20608 PR target/53652
20609 * config/i386/sse.md (*andnot<mode>3): Extend predicate of
20610 operands[1] from register_operand to vector_operand.
20611
20612 2022-01-10 Uroš Bizjak <ubizjak@gmail.com>
20613
20614 PR target/103861
20615 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
20616 Handle V2QImode.
20617 * config/i386/mmx.md (<sat_plusminus:insn><mode>3):
20618 Use VI1_16_32 mode iterator.
20619 (*eq<mode>3): Ditto.
20620 (*gt<mode>3): Ditto.
20621 (*xop_maskcmp<mode>3): Ditto.
20622 (*xop_maskcmp_uns<mode>3): Ditto.
20623 (vec_cmp<mode><mode>): Ditto.
20624 (vec_cmpu<mode><mode>): Ditto.
20625
20626 2022-01-10 Richard Biener <rguenther@suse.de>
20627
20628 PR tree-optimization/103948
20629 * tree-vect-generic.c (expand_vector_condition): Return true if
20630 all ones vector is returned for true, all zeros vector for false
20631 and the target defines corresponding vec_cmp{,u}MN named RTX pattern.
20632
20633 2022-01-10 Paul A. Clarke <pc@us.ibm.com>
20634
20635 * config/rs6000/smmintrin.h (_mm_blendv_epi8): Use vec_blendv
20636 when _ARCH_PWR10. Use signed types.
20637 (_mm_blendv_ps): Use vec_blendv when _ARCH_PWR10.
20638 (_mm_blendv_pd): Likewise.
20639
20640 2022-01-10 Andre Vieira <andre.simoesdiasvieira@arm.com>
20641
20642 * tree-vectorizer.c (better_epilogue_loop_than_p): Round factors up for
20643 epilogue costing.
20644 * tree-vect-loop.c (vect_analyze_loop): Re-analyze all modes for
20645 epilogues, unless we are guaranteed that we can't have partial vectors.
20646 * genopinit.c: (partial_vectors_supported): Generate new function.
20647
20648 2022-01-10 Jakub Jelinek <jakub@redhat.com>
20649
20650 PR target/102024
20651 * config/i386/i386.c (classify_argument): Add zero_width_bitfields
20652 argument, when seeing DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD bitfields,
20653 always ignore them, when seeing other zero sized bitfields, either
20654 set zero_width_bitfields to 1 and ignore it or if equal to 2 process
20655 it. Pass it to recursive calls. Add wrapper
20656 with old arguments and diagnose ABI differences for C structures
20657 with zero width bitfields. Formatting fixes.
20658
20659 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20660
20661 PR rtl-optimization/98782
20662 * ira-int.h (ira_soft_conflict): Declare.
20663 * ira-color.c (max_soft_conflict_loop_depth): New constant.
20664 (ira_soft_conflict): New function.
20665 (spill_soft_conflicts): Likewise.
20666 (assign_hard_reg): Use them to handle the case described by
20667 the comment above ira_soft_conflict.
20668 (improve_allocation): Likewise.
20669 * ira.c (check_allocation): Allow allocnos with "soft" conflicts
20670 to share the same register.
20671
20672 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20673
20674 PR rtl-optimization/98782
20675 * ira-int.h (ira_caller_save_cost): New function.
20676 (ira_caller_save_loop_spill_p): Likewise.
20677 * ira-build.c (ira_propagate_hard_reg_costs): Test whether it is
20678 cheaper to spill a call-clobbered register throughout a loop rather
20679 than spill it around each individual call. If so, treat all
20680 call-clobbered registers as conflicts and...
20681 (propagate_allocno_info): ...do not propagate call information
20682 from the child to the parent.
20683 * ira-color.c (move_spill_restore): Update accordingly.
20684 * ira-costs.c (ira_tune_allocno_costs): Use ira_caller_save_cost.
20685
20686 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20687
20688 PR rtl-optimization/98782
20689 * ira-int.h (ira_allocno::might_conflict_with_parent_p): New field.
20690 (ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P): New macro.
20691 (ira_single_region_allocno_p): New function.
20692 (ira_total_conflict_hard_regs): Likewise.
20693 * ira-build.c (ira_create_allocno): Initialize
20694 ALLOCNO_MIGHT_CONFLICT_WITH_PARENT_P.
20695 (ira_propagate_hard_reg_costs): New function.
20696 (propagate_allocno_info): Use it. Try to avoid propagating
20697 hard register conflicts to parent allocnos if we can handle
20698 the conflicts by spilling instead. Limit the propagated
20699 register costs to the cost of spilling throughout the child loop.
20700 * ira-color.c (color_pass): Use ira_single_region_allocno_p to
20701 test whether a child and parent allocno can share the same
20702 register.
20703 (move_spill_restore): Adjust for the new behavior of
20704 propagate_allocno_info.
20705
20706 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20707
20708 PR rtl-optimization/98782
20709 * ira-int.h (ira_subloop_allocnos_can_differ_p): New function,
20710 extracted from...
20711 * ira-color.c (color_pass): ...here.
20712
20713 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20714
20715 PR rtl-optimization/98782
20716 * ira-color.c (color_pass): Add comments to describe the spill costs.
20717 (move_spill_restore): Likewise. Fix reversed calculation.
20718
20719 2022-01-10 Richard Sandiford <richard.sandiford@arm.com>
20720
20721 PR rtl-optimization/98782
20722 * ira-int.h (ira_loop_border_costs): New class.
20723 * ira-color.c (ira_loop_border_costs::ira_loop_border_costs):
20724 New constructor.
20725 (calculate_allocno_spill_cost): Use ira_loop_border_costs.
20726 (color_pass): Likewise.
20727 (move_spill_restore): Likewise.
20728
20729 2022-01-10 Eric Botcazou <ebotcazou@adacore.com>
20730
20731 PR target/103465
20732 * coretypes.h (unwind_info_type): Swap UI_SEH and UI_TARGET.
20733
20734 2022-01-10 Richard Biener <rguenther@suse.de>
20735
20736 PR tree-optimization/100359
20737 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
20738 Allow non-growing peeling with !allow_peel and UL_ALL.
20739
20740 2022-01-08 Roger Sayle <roger@nextmovesoftware.com>
20741
20742 * config/i386/i386-expand.c (ix86_expand_vector_move): Add
20743 special case for TImode to V1TImode moves, going via V2DImode.
20744
20745 2022-01-08 Jakub Jelinek <jakub@redhat.com>
20746
20747 PR c++/89074
20748 * match.pd ((ptr) (x p+ y) p+ z -> (ptr) (x p+ (y + z))): New GENERIC
20749 simplification.
20750
20751 2022-01-08 David Malcolm <dmalcolm@redhat.com>
20752
20753 * doc/analyzer.texi
20754 (Special Functions for Debugging the Analyzer): Document
20755 __analyzer_dump_escaped.
20756
20757 2022-01-08 David Malcolm <dmalcolm@redhat.com>
20758
20759 * doc/analyzer.texi (Other Debugging Techniques): Document
20760 region::is_named_decl_p.
20761
20762 2022-01-07 Andrew Pinski <apinski@marvell.com>
20763
20764 PR target/102941
20765 * config/arm/aarch-common.c (arm_md_asm_adjust):
20766 Use a temp if !REG_P.
20767
20768 2022-01-07 Uroš Bizjak <ubizjak@gmail.com>
20769
20770 * config/i386/mmx.md (*move<V_32:mode>_internal): Add isa attribute.
20771 (*movv2qi_internal): Remve sse2 requirement for alternatives 4,5.
20772
20773 2022-01-07 liuhongt <hongtao.liu@intel.com>
20774
20775 PR rtl-optimization/103750
20776 * fwprop.c (forward_propagate_into): Allow propagations from
20777 inner loop to outer loop.
20778
20779 2022-01-07 Roger Sayle <roger@nextmovesoftware.com>
20780
20781 * config/nvptx/nvptx.md (*cnot<mode>2): New define_insn.
20782
20783 2022-01-07 Haochen Gui <guihaoc@gcc.gnu.org>
20784
20785 * config/rs6000/rs6000.md (rs6000_mffscrni): Define.
20786 (rs6000_set_fpscr_rn): Change the type of operand[0] from DI to SI.
20787 Call gen_rs6000_mffscrni when operand[0] is a const_0_to_3_operand.
20788
20789 2022-01-07 liuhongt <hongtao.liu@intel.com>
20790
20791 * config/i386/sse.md
20792 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Extend to
20793 UNSPEC_PCMP_UNSIGNED.
20794
20795 2022-01-07 liuhongt <hongtao.liu@intel.com>
20796
20797 PR target/103753
20798 * config/i386/i386-expand.c (ix86_expand_vector_set): Not use
20799 gen_avx2_pblendph_1 when elt == 0.
20800 * config/i386/sse.md (avx2_pblendph): Rename to ..
20801 (avx2_pblend<ssemodesuffix>_1).. this, and extend to V16HI.
20802 (*avx2_pblendw): Rename to ..
20803 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
20804 (avx2_pblendw): Rename to ..
20805 (*avx2_pblend<ssemodesuffix>): .. this, and extend to V16HF.
20806 (blendsuf): Removed.
20807 (sse4_1_pblend<blendsuf>): Renamed to ..
20808 (sse4_1_pblend<ssemodesuffix>): .. this.
20809
20810 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
20811
20812 PR target/103925
20813 * config/i386/i386.c (ix86_output_indirect_function_return):
20814 Generate INT3 after indirect jmp for -mharden-sls=indirect-jmp.
20815
20816 2022-01-06 H.J. Lu <hjl.tools@gmail.com>
20817
20818 PR target/102952
20819 * config/i386/i386-opts.h (harden_sls): Replace
20820 harden_sls_indirect_branch with harden_sls_indirect_jmp.
20821 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect):
20822 Likewise.
20823 (ix86_output_indirect_jmp): Likewise.
20824 (ix86_output_call_insn): Likewise.
20825 * config/i386/i386.opt: Replace indirect-branch with
20826 indirect-jmp. Replace harden_sls_indirect_branch with
20827 harden_sls_indirect_jmp.
20828 * doc/invoke.texi (-harden-sls=): Replace indirect-branch with
20829 indirect-jmp.
20830
20831 2022-01-06 Uroš Bizjak <ubizjak@gmail.com>
20832
20833 * config/i386/i386.c (ix86_output_ssemov) <MODE_DI>:
20834 Add %q modifier for operands in general registers.
20835 <MODE_SI>: Add %q modifier for operands in general registers.
20836 * config/i386/i386.md (*movhi_internal): Change type attribute of
20837 xmm-gpr interunit alternatives 9,10 to ssemov and mode attribute
20838 to SImode for non-avx512fp16 targets.
20839 (*movhf_internal): Ditto for xmm-gpr interunit alternatives 6,8.
20840 * config/i386/mmx.md (*movv2qi_internal):
20841 Ditto for xmm-gpr interunit alternatives 8,9.
20842
20843 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
20844
20845 * common/config/riscv/riscv-common.c (riscv_implied_info): Add
20846 vector extensions.
20847 (riscv_ext_version_table): Add version info for vector extensions.
20848 (riscv_ext_flag_table): Add option mask for vector extensions.
20849 * config/riscv/riscv-opts.h (MASK_VECTOR_EEW_32): New.
20850 (MASK_VECTOR_EEW_64): New.
20851 (MASK_VECTOR_EEW_FP_32): New.
20852 (MASK_VECTOR_EEW_FP_64): New.
20853 (MASK_ZVL32B): New.
20854 (MASK_ZVL64B): New.
20855 (MASK_ZVL128B): New.
20856 (MASK_ZVL256B): New.
20857 (MASK_ZVL512B): New.
20858 (MASK_ZVL1024B): New.
20859 (MASK_ZVL2048B): New.
20860 (MASK_ZVL4096B): New.
20861 (MASK_ZVL8192B): New.
20862 (MASK_ZVL16384B): New.
20863 (MASK_ZVL32768B): New.
20864 (MASK_ZVL65536B): New.
20865 (TARGET_ZVL32B): New.
20866 (TARGET_ZVL64B): New.
20867 (TARGET_ZVL128B): New.
20868 (TARGET_ZVL256B): New.
20869 (TARGET_ZVL512B): New.
20870 (TARGET_ZVL1024B): New.
20871 (TARGET_ZVL2048B): New.
20872 (TARGET_ZVL4096B): New.
20873 (TARGET_ZVL8192B): New.
20874 (TARGET_ZVL16384B): New.
20875 (TARGET_ZVL32768B): New.
20876 (TARGET_ZVL65536B): New.
20877 * config/riscv/riscv.opt (Mask(VECTOR)): New.
20878 (riscv_vector_eew_flags): New.
20879 (riscv_zvl_flags): New.
20880
20881 2022-01-06 Kito Cheng <kito.cheng@sifive.com>
20882
20883 * common/config/riscv/riscv-common.c
20884 (riscv_subset_list::parse_multiletter_ext): Allow ext. name has
20885 digit.
20886
20887 2022-01-06 Jakub Jelinek <jakub@redhat.com>
20888
20889 PR tree-optimization/103899
20890 * expr.c (expand_expr_real_1): Add a workaround for bogus uninit
20891 warning by moving context variable to the only spot where it is used
20892 and moving gcc_assert into if body.
20893
20894 2022-01-06 Jakub Jelinek <jakub@redhat.com>
20895
20896 PR rtl-optimization/103908
20897 * ifcvt.c (bb_valid_for_noce_process_p): Punt on bbs ending with
20898 asm goto.
20899
20900 2022-01-05 Bill Schmidt <wschmidt@linux.ibm.com>
20901
20902 PR target/103622
20903 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
20904 Skip over instances with undefined function types.
20905
20906 2022-01-05 Andrew Pinski <apinski@marvell.com>
20907
20908 PR target/103910
20909 * config/i386/i386.h (x86_mfence): Mark with GTY.
20910
20911 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
20912
20913 PR target/103861
20914 * config/i386/mmx.md (VI_16_32): New mode iterator.
20915 (VI1_16_32): Ditto.
20916 (mmxvecsize): Handle V2QI mode.
20917 (<smaxmin:code><mode>3): Rename from <smaxmin:code>v4qi3.
20918 Use VI1_16_32 mode iterator.
20919 (<umaxmin:code><mode>3): Rename from <umaxmin:code>v4qi3.
20920 Use VI1_16_32 mode iterator.
20921 (abs<mode>2): Use VI_16_32 mode iterator.
20922 (uavgv2qi3_ceil): New insn pattern.
20923
20924 2022-01-05 Martin Sebor <msebor@redhat.com>
20925
20926 * gimple-ssa-warn-access.cc (pass_waccess::maybe_warn_memmodel): Use
20927 %qs to avoid -Wformat-diag.
20928
20929 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
20930
20931 PR target/103915
20932 * config/i386/mmx.md (one_cmplv2qi2): Change
20933 alternatives 1,2 type from sselog to sselog1.
20934
20935 2022-01-05 Uroš Bizjak <ubizjak@gmail.com>
20936
20937 PR target/103905
20938 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Fix number of
20939 narrow mode remapped elements for !one_operand_p case.
20940
20941 2022-01-05 Richard Biener <rguenther@suse.de>
20942
20943 PR tree-optimization/103816
20944 * tree-vect-data-refs.c (vect_analyze_group_access_1): Also
20945 check DR_GROUP_GAP compute for overflow and representability.
20946
20947 2022-01-05 Jakub Jelinek <jakub@redhat.com>
20948
20949 PR fortran/103691
20950 * gimple-fold.c (fold_stmt_1): Don't call maybe_fold_reference
20951 for DEBUG stmts with ADDR_EXPR gimple_debug_bind_get_value,
20952 it can do unwanted rhs folding like &a[0] into &2.0 etc.
20953
20954 2022-01-05 Kewen Lin <linkw@linux.ibm.com>
20955
20956 PR ipa/102059
20957 * config/rs6000/rs6000.c (TARGET_NEED_IPA_FN_TARGET_INFO): New macro.
20958 (TARGET_UPDATE_IPA_FN_TARGET_INFO): Likewise.
20959 (rs6000_need_ipa_fn_target_info): New function.
20960 (rs6000_update_ipa_fn_target_info): Likewise.
20961 (rs6000_can_inline_p): Adjust for ipa function summary target info.
20962 * config/rs6000/rs6000.h (RS6000_FN_TARGET_INFO_HTM): New macro.
20963 * ipa-fnsummary.c (ipa_dump_fn_summary): Adjust for ipa function
20964 summary target info.
20965 (analyze_function_body): Adjust for ipa function summary target info
20966 and call hook rs6000_need_ipa_fn_target_info and
20967 rs6000_update_ipa_fn_target_info.
20968 (ipa_merge_fn_summary_after_inlining): Adjust for ipa function summary
20969 target info.
20970 (inline_read_section): Likewise.
20971 (ipa_fn_summary_write): Likewise.
20972 * ipa-fnsummary.h (ipa_fn_summary::target_info): New member.
20973 * doc/tm.texi: Regenerate.
20974 * doc/tm.texi.in (TARGET_UPDATE_IPA_FN_TARGET_INFO): Document new hook.
20975 (TARGET_NEED_IPA_FN_TARGET_INFO): Likewise.
20976 * target.def (update_ipa_fn_target_info): New hook.
20977 (need_ipa_fn_target_info): Likewise.
20978 * targhooks.c (default_need_ipa_fn_target_info): New function.
20979 (default_update_ipa_fn_target_info): Likewise.
20980 * targhooks.h (default_update_ipa_fn_target_info): New declare.
20981 (default_need_ipa_fn_target_info): Likewise.
20982
20983 2022-01-04 Martin Sebor <msebor@redhat.com>
20984
20985 PR middle-end/99612
20986 * builtins.c (get_memmodel): Move warning code to
20987 gimple-ssa-warn-access.cc.
20988 (expand_builtin_atomic_compare_exchange): Same.
20989 (expand_ifn_atomic_compare_exchange): Same.
20990 (expand_builtin_atomic_load): Same.
20991 (expand_builtin_atomic_store): Same.
20992 (expand_builtin_atomic_clear): Same.
20993 * doc/extend.texi (__atomic_exchange_n): Update valid memory
20994 models.
20995 * gimple-ssa-warn-access.cc (memmodel_to_uhwi): New function.
20996 (struct memmodel_pair): New struct.
20997 (memmodel_name): New function.
20998 (pass_waccess::maybe_warn_memmodel): New function.
20999 (pass_waccess::check_atomic_memmodel): New function.
21000 (pass_waccess::check_atomic_builtin): Handle memory model.
21001 * input.c (expansion_point_location_if_in_system_header): Return
21002 original location if expansion location is in a system header.
21003
21004 2022-01-04 Uroš Bizjak <ubizjak@gmail.com>
21005
21006 PR target/103861
21007 * config/i386/mmx.md (one_cmplv2qi3): New insn pattern.
21008 (one_cmplv2qi3 splitters): New post-reload splitters.
21009 (*andnotv2qi3): New insn pattern.
21010 (andnotv2qi3 splitters): New post-reload splitters.
21011 (<any_logic:code>v2qi3): New insn pattern.
21012 (<any_logic:insn>v2qi3 splitters): New post-reload splitters.
21013
21014 2022-01-04 Richard Biener <rguenther@suse.de>
21015
21016 PR tree-optimization/103800
21017 * tree-vect-loop.c (vectorizable_phi): Remove assert and
21018 expand comment.
21019
21020 2022-01-04 Richard Biener <rguenther@suse.de>
21021
21022 PR tree-optimization/103690
21023 * tree-pass.h (tail_merge_optimize): Adjust.
21024 * tree-ssa-tail-merge.c (tail_merge_optimize): Pass in whether
21025 to re-split critical edges, move CFG cleanup ...
21026 * tree-ssa-pre.c (pass_pre::execute): ... here, before
21027 simple_dce_from_worklist and delay freeing inserted_exprs from
21028 ...
21029 (fini_pre): .. here.
21030
21031 2022-01-04 Roger Sayle <roger@nextmovesoftware.com>
21032
21033 * config/nvptx/nvptx.h (STORE_FLAG_VALUE): Change to 1.
21034 * config/nvptx/nvptx.md (movbi): Use P1 constraint for true.
21035 (setcc_from_bi): Remove SImode specific pattern.
21036 (setcc<mode>_from_bi): Provide more general HSDIM pattern.
21037 (extendbi<mode>2, zeroextendbi<mode>2): Provide instructions
21038 for sign- and zero-extending BImode predicates to integers.
21039 (setcc_int<mode>): Remove previous (-1-based) instructions.
21040 (cstorebi4): Remove BImode to SImode specific expander.
21041 (cstore<mode>4): Fix indentation. Expand using setccsi_from_bi.
21042 (cstore<mode>4): For both integer and floating point modes.
21043
21044 2022-01-04 Olivier Hainque <hainque@adacore.com>
21045
21046 * gcc.c (driver_handle_option): do_save --sysroot.
21047
21048 2022-01-04 Richard Biener <rguenther@suse.de>
21049
21050 PR tree-optimization/103864
21051 PR tree-optimization/103544
21052 * tree-vect-slp.c (vect_analyze_slp_instance): Exclude
21053 reductions wrapped in conversions from SLP handling.
21054 (vect_analyze_slp): Revert PR103544 change.
21055
21056 2022-01-04 Jakub Jelinek <jakub@redhat.com>
21057
21058 PR rtl-optimization/103860
21059 * shrink-wrap.c (try_shrink_wrapping): Don't call can_get_prologue
21060 uselessly for blocks for which it has been called already.
21061
21062 2022-01-04 Cui,Lili <lili.cui@intel.com>
21063
21064 * common/config/i386/cpuinfo.h (get_intel_cpu): Add new model values
21065 to Alderlake and Rocketlake.
21066
21067 2022-01-04 Chung-Lin Tang <cltang@codesourcery.com>
21068
21069 PR middle-end/103643
21070 * gimplify.c (gimplify_omp_affinity): Adjust gimplify_expr of entire
21071 OMP_CLAUSE_DECL to use 'is_gimple_lvalue, fb_lvalue'
21072
21073 2022-01-04 liuhongt <hongtao.liu@intel.com>
21074
21075 PR target/103895
21076 * config/i386/sse.md (*bit_and_float_vector_all_ones):
21077 Force_reg operand 1 to avoid ICE.
21078
21079 2022-01-04 Jason Merrill <jason@redhat.com>
21080
21081 * tree-pretty-print.c (do_niy): Add spc parameter.
21082 (NIY): Pass it.
21083 (print_call_name): Add spc local variable.
21084
21085 2022-01-03 Uroš Bizjak <ubizjak@gmail.com>
21086
21087 PR target/103894
21088 * config/i386/mmx.md (mov<V_32:mode>): Remove TARGET_SSE2 constraint.
21089 (mov<V_32:mode>_internal): Ditto.
21090 (*push<V_32:mode>_rex64): Ditto.
21091 (movmisalign<V_32:mode>): Ditto.
21092 (*push<V_32:mode>_rex64 splitter): Enable for
21093 TARGET_64BIT && TARGET_SSE.
21094 (*push<V_32:mode>2): Remove insn pattern.
21095
21096 2022-01-03 Andrew Pinski <apinski@marvell.com>
21097
21098 PR c/33193
21099 * doc/extend.texi: Extend the documentation about Complex
21100 types for casting and also rewrite the __real__/__imag__
21101 expression portion to use tables.
21102 Move __builtin_complex to the Complex type section.
21103
21104 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21105
21106 PR target/98737
21107 * internal-fn.def (ATOMIC_ADD_FETCH_CMP_0, ATOMIC_SUB_FETCH_CMP_0,
21108 ATOMIC_AND_FETCH_CMP_0, ATOMIC_OR_FETCH_CMP_0, ATOMIC_XOR_FETCH_CMP_0):
21109 New internal fns.
21110 * internal-fn.h (ATOMIC_OP_FETCH_CMP_0_EQ, ATOMIC_OP_FETCH_CMP_0_NE,
21111 ATOMIC_OP_FETCH_CMP_0_LT, ATOMIC_OP_FETCH_CMP_0_LE,
21112 ATOMIC_OP_FETCH_CMP_0_GT, ATOMIC_OP_FETCH_CMP_0_GE): New enumerators.
21113 * internal-fn.c (expand_ATOMIC_ADD_FETCH_CMP_0,
21114 expand_ATOMIC_SUB_FETCH_CMP_0, expand_ATOMIC_AND_FETCH_CMP_0,
21115 expand_ATOMIC_OR_FETCH_CMP_0, expand_ATOMIC_XOR_FETCH_CMP_0): New
21116 functions.
21117 * optabs.def (atomic_add_fetch_cmp_0_optab,
21118 atomic_sub_fetch_cmp_0_optab, atomic_and_fetch_cmp_0_optab,
21119 atomic_or_fetch_cmp_0_optab, atomic_xor_fetch_cmp_0_optab): New
21120 direct optabs.
21121 * builtins.h (expand_ifn_atomic_op_fetch_cmp_0): Declare.
21122 * builtins.c (expand_ifn_atomic_op_fetch_cmp_0): New function.
21123 * tree-ssa-ccp.c: Include internal-fn.h.
21124 (optimize_atomic_bit_test_and): Add . before internal fn call
21125 in function comment. Change return type from void to bool and
21126 return true only if successfully replaced.
21127 (optimize_atomic_op_fetch_cmp_0): New function.
21128 (pass_fold_builtins::execute): Use optimize_atomic_op_fetch_cmp_0
21129 for BUILT_IN_ATOMIC_{ADD,SUB,AND,OR,XOR}_FETCH_{1,2,4,8,16} and
21130 BUILT_IN_SYNC_{ADD,SUB,AND,OR,XOR}_AND_FETCH_{1,2,4,8,16},
21131 for *XOR* ones only if optimize_atomic_bit_test_and failed.
21132 * config/i386/sync.md (atomic_<plusminus_mnemonic>_fetch_cmp_0<mode>,
21133 atomic_<logic>_fetch_cmp_0<mode>): New define_expand patterns.
21134 (atomic_add_fetch_cmp_0<mode>_1, atomic_sub_fetch_cmp_0<mode>_1,
21135 atomic_<logic>_fetch_cmp_0<mode>_1): New define_insn patterns.
21136 * doc/md.texi (atomic_add_fetch_cmp_0<mode>,
21137 atomic_sub_fetch_cmp_0<mode>, atomic_and_fetch_cmp_0<mode>,
21138 atomic_or_fetch_cmp_0<mode>, atomic_xor_fetch_cmp_0<mode>): Document
21139 new named patterns.
21140
21141 2022-01-03 Richard Biener <rguenther@suse.de>
21142
21143 PR middle-end/103851
21144 * tree-cfg.c (move_sese_region_to_fn): Always release SSA names.
21145
21146 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21147
21148 PR c++/94716
21149 * symtab.c: Include fold-const.h.
21150 (symtab_node::equal_address_to): If folding_initializer is true,
21151 handle it like memory_accessed. Simplify.
21152
21153 2022-01-03 Martin Liska <mliska@suse.cz>
21154
21155 * doc/extend.texi: Use ; for function declarations.
21156
21157 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21158
21159 PR c++/103600
21160 * symtab.c (symtab_node::equal_address_to): Return 0 if one of
21161 VAR_DECLs has "non overlapping" attribute and rs1 != rs2.
21162
21163 2022-01-03 Jakub Jelinek <jakub@redhat.com>
21164
21165 * gcc.c (process_command): Update copyright notice dates.
21166 * gcov-dump.c (print_version): Ditto.
21167 * gcov.c (print_version): Ditto.
21168 * gcov-tool.c (print_version): Ditto.
21169 * gengtype.c (create_file): Ditto.
21170 * doc/cpp.texi: Bump @copying's copyright year.
21171 * doc/cppinternals.texi: Ditto.
21172 * doc/gcc.texi: Ditto.
21173 * doc/gccint.texi: Ditto.
21174 * doc/gcov.texi: Ditto.
21175 * doc/install.texi: Ditto.
21176 * doc/invoke.texi: Ditto.
21177
21178 2022-01-02 Uroš Bizjak <ubizjak@gmail.com>
21179
21180 PR target/103861
21181 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V2QImode.
21182 (VALID_INT_MODE_P): Ditto.
21183 * config/i386/i386.c (ix86_secondary_reload): Handle
21184 V2QImode reloads from SSE register to memory.
21185 (vector_mode_supported_p): Always return true for V2QImode.
21186 * config/i386/i386.md (*subqi_ext<mode>_2): New insn pattern.
21187 (*negqi_ext<mode>_2): Ditto.
21188 * config/i386/mmx.md (movv2qi): New expander.
21189 (movmisalignv2qi): Ditto.
21190 (*movv2qi_internal): New insn pattern.
21191 (*pushv2qi2): Ditto.
21192 (negv2qi2 and splitters): Ditto.
21193 (<plusminus:insn>v2qi3 and splitters): Ditto.
21194
21195 2022-01-02 John David Anglin <danglin@gcc.gnu.org>
21196
21197 * config/pa/pa.md (atomic_storeq): Use optab_libfunc to access
21198 sync_lock_test_and_set libfunc. Call convert_memory_address to
21199 convert memory address to Pmode.
21200 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise.
21201
21202 \f
21203 Copyright (C) 2022 Free Software Foundation, Inc.
21204
21205 Copying and distribution of this file, with or without modification,
21206 are permitted in any medium without royalty provided the copyright
21207 notice and this notice are preserved.
This page took 0.814284 seconds and 6 git commands to generate.